@excalidraw/excalidraw 0.17.1-d2f67e6 → 0.17.1-e63dd02

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 (252) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/browser/dev/excalidraw-assets-dev/CascadiaCode-Regular-TMZI7IJ5.woff2 +0 -0
  3. package/dist/browser/dev/excalidraw-assets-dev/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
  4. package/dist/browser/dev/excalidraw-assets-dev/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
  5. package/dist/browser/dev/excalidraw-assets-dev/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
  6. package/dist/browser/dev/excalidraw-assets-dev/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
  7. package/dist/browser/dev/excalidraw-assets-dev/{chunk-EM6LVGFW.js → chunk-IT7T3AIK.js} +23 -5
  8. package/dist/browser/dev/excalidraw-assets-dev/chunk-IT7T3AIK.js.map +7 -0
  9. package/dist/browser/dev/excalidraw-assets-dev/{chunk-B4UMSLQQ.js → chunk-RNHSD5AR.js} +7451 -2098
  10. package/dist/browser/dev/excalidraw-assets-dev/chunk-RNHSD5AR.js.map +7 -0
  11. package/dist/browser/dev/excalidraw-assets-dev/{dist-6QVAH5JA.js → dist-DNSPZDOZ.js} +31 -19
  12. package/dist/browser/dev/excalidraw-assets-dev/dist-DNSPZDOZ.js.map +7 -0
  13. package/dist/browser/dev/excalidraw-assets-dev/{en-AZFA5HJJ.js → en-XV7OZCPP.js} +6 -2
  14. package/dist/browser/dev/excalidraw-assets-dev/{image-V7E6IT6R.js → image-77HZYGLG.js} +2 -2
  15. package/dist/browser/dev/excalidraw-assets-dev/{image-O66MQ7WQ.css → image-WDHYGKKP.css} +1 -1
  16. package/dist/browser/dev/excalidraw-assets-dev/{image-O66MQ7WQ.css.map → image-WDHYGKKP.css.map} +2 -2
  17. package/dist/browser/dev/index.css +449 -114
  18. package/dist/browser/dev/index.css.map +3 -3
  19. package/dist/browser/dev/index.js +4143 -5956
  20. package/dist/browser/dev/index.js.map +4 -4
  21. package/dist/browser/prod/excalidraw-assets/CascadiaCode-Regular-TMZI7IJ5.woff2 +0 -0
  22. package/dist/browser/prod/excalidraw-assets/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
  23. package/dist/browser/prod/excalidraw-assets/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
  24. package/dist/browser/prod/excalidraw-assets/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
  25. package/dist/browser/prod/excalidraw-assets/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
  26. package/dist/browser/prod/excalidraw-assets/chunk-OYEADJSR.js +63 -0
  27. package/dist/browser/prod/excalidraw-assets/{chunk-7DXALCB2.js → chunk-PDYFZJMS.js} +3 -3
  28. package/dist/browser/prod/excalidraw-assets/dist-NLUQPPQQ.js +7 -0
  29. package/dist/browser/prod/excalidraw-assets/en-YVAVVILW.js +1 -0
  30. package/dist/browser/prod/excalidraw-assets/image-X3GFZHNN.js +1 -0
  31. package/dist/browser/prod/index.css +1 -1
  32. package/dist/browser/prod/index.js +40 -50
  33. package/dist/dev/CascadiaCode-Regular-TMZI7IJ5.woff2 +0 -0
  34. package/dist/dev/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
  35. package/dist/dev/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
  36. package/dist/dev/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
  37. package/dist/dev/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
  38. package/dist/dev/{en-EB2MBPAV.json → en-YNVBSAIL.json} +18 -4
  39. package/dist/dev/index.css +449 -114
  40. package/dist/dev/index.css.map +3 -3
  41. package/dist/dev/index.js +21626 -18122
  42. package/dist/dev/index.js.map +4 -4
  43. package/dist/excalidraw/actions/actionAddToLibrary.d.ts +9 -3
  44. package/dist/excalidraw/actions/actionBoundText.d.ts +6 -2
  45. package/dist/excalidraw/actions/actionCanvas.d.ts +36 -12
  46. package/dist/excalidraw/actions/actionClipboard.d.ts +22 -7
  47. package/dist/excalidraw/actions/actionDeleteSelected.d.ts +12 -5
  48. package/dist/excalidraw/actions/actionDeleteSelected.js +24 -5
  49. package/dist/excalidraw/actions/actionDuplicateSelection.js +1 -2
  50. package/dist/excalidraw/actions/actionElementLock.d.ts +6 -2
  51. package/dist/excalidraw/actions/actionExport.d.ts +27 -9
  52. package/dist/excalidraw/actions/actionFinalize.d.ts +6 -2
  53. package/dist/excalidraw/actions/actionFinalize.js +2 -2
  54. package/dist/excalidraw/actions/actionFlip.js +2 -2
  55. package/dist/excalidraw/actions/actionFrame.d.ts +12 -4
  56. package/dist/excalidraw/actions/actionGroup.d.ts +6 -2
  57. package/dist/excalidraw/actions/actionHistory.js +4 -4
  58. package/dist/excalidraw/actions/actionLinearEditor.d.ts +3 -1
  59. package/dist/excalidraw/actions/actionLinearEditor.js +3 -2
  60. package/dist/excalidraw/actions/actionLink.d.ts +3 -1
  61. package/dist/excalidraw/actions/actionMenu.d.ts +9 -3
  62. package/dist/excalidraw/actions/actionNavigate.d.ts +6 -2
  63. package/dist/excalidraw/actions/actionProperties.d.ts +411 -56
  64. package/dist/excalidraw/actions/actionProperties.js +383 -58
  65. package/dist/excalidraw/actions/actionSelectAll.d.ts +3 -1
  66. package/dist/excalidraw/actions/actionStyles.d.ts +3 -1
  67. package/dist/excalidraw/actions/actionStyles.js +3 -2
  68. package/dist/excalidraw/actions/actionToggleGridMode.d.ts +3 -1
  69. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +3 -1
  70. package/dist/excalidraw/actions/actionToggleStats.d.ts +3 -1
  71. package/dist/excalidraw/actions/actionToggleViewMode.d.ts +3 -1
  72. package/dist/excalidraw/actions/actionToggleZenMode.d.ts +3 -1
  73. package/dist/excalidraw/actions/types.d.ts +1 -1
  74. package/dist/excalidraw/analytics.js +9 -7
  75. package/dist/excalidraw/appState.d.ts +1 -0
  76. package/dist/excalidraw/appState.js +9 -1
  77. package/dist/excalidraw/binaryheap.d.ts +12 -0
  78. package/dist/excalidraw/binaryheap.js +93 -0
  79. package/dist/excalidraw/change.d.ts +2 -1
  80. package/dist/excalidraw/change.js +6 -4
  81. package/dist/excalidraw/charts.js +0 -10
  82. package/dist/excalidraw/components/Actions.js +7 -5
  83. package/dist/excalidraw/components/App.d.ts +5 -9
  84. package/dist/excalidraw/components/App.js +218 -161
  85. package/dist/excalidraw/components/ButtonIcon.d.ts +15 -0
  86. package/dist/excalidraw/components/ButtonIcon.js +8 -0
  87. package/dist/excalidraw/components/ButtonIconSelect.js +2 -3
  88. package/dist/excalidraw/components/ButtonSeparator.d.ts +2 -0
  89. package/dist/excalidraw/components/ButtonSeparator.js +7 -0
  90. package/dist/excalidraw/components/ColorPicker/ColorPicker.js +47 -79
  91. package/dist/excalidraw/components/ColorPicker/Picker.js +1 -1
  92. package/dist/excalidraw/components/FontPicker/FontPicker.d.ts +21 -0
  93. package/dist/excalidraw/components/FontPicker/FontPicker.js +49 -0
  94. package/dist/excalidraw/components/FontPicker/FontPickerList.d.ts +25 -0
  95. package/dist/excalidraw/components/FontPicker/FontPickerList.js +119 -0
  96. package/dist/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +7 -0
  97. package/dist/excalidraw/components/FontPicker/FontPickerTrigger.js +13 -0
  98. package/dist/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +14 -0
  99. package/dist/excalidraw/components/FontPicker/keyboardNavHandlers.js +38 -0
  100. package/dist/excalidraw/components/HelpDialog.js +1 -1
  101. package/dist/excalidraw/components/HintViewer.js +6 -3
  102. package/dist/excalidraw/components/PropertiesPopover.d.ts +15 -0
  103. package/dist/excalidraw/components/PropertiesPopover.js +31 -0
  104. package/dist/excalidraw/components/QuickSearch.d.ts +9 -0
  105. package/dist/excalidraw/components/QuickSearch.js +8 -0
  106. package/dist/excalidraw/components/ScrollableList.d.ts +9 -0
  107. package/dist/excalidraw/components/ScrollableList.js +8 -0
  108. package/dist/excalidraw/components/Stats/Angle.d.ts +7 -3
  109. package/dist/excalidraw/components/Stats/Angle.js +39 -31
  110. package/dist/excalidraw/components/Stats/Dimension.d.ts +6 -3
  111. package/dist/excalidraw/components/Stats/Dimension.js +51 -49
  112. package/dist/excalidraw/components/Stats/DragInput.d.ts +15 -6
  113. package/dist/excalidraw/components/Stats/DragInput.js +59 -26
  114. package/dist/excalidraw/components/Stats/FontSize.d.ts +8 -4
  115. package/dist/excalidraw/components/Stats/FontSize.js +39 -36
  116. package/dist/excalidraw/components/Stats/MultiAngle.d.ts +5 -3
  117. package/dist/excalidraw/components/Stats/MultiAngle.js +43 -34
  118. package/dist/excalidraw/components/Stats/MultiDimension.d.ts +5 -3
  119. package/dist/excalidraw/components/Stats/MultiDimension.js +101 -99
  120. package/dist/excalidraw/components/Stats/MultiFontSize.d.ts +6 -3
  121. package/dist/excalidraw/components/Stats/MultiFontSize.js +47 -32
  122. package/dist/excalidraw/components/Stats/MultiPosition.d.ts +3 -1
  123. package/dist/excalidraw/components/Stats/MultiPosition.js +52 -48
  124. package/dist/excalidraw/components/Stats/Position.d.ts +5 -1
  125. package/dist/excalidraw/components/Stats/Position.js +31 -29
  126. package/dist/excalidraw/components/Stats/index.js +5 -17
  127. package/dist/excalidraw/components/Stats/utils.d.ts +14 -3
  128. package/dist/excalidraw/components/Stats/utils.js +48 -9
  129. package/dist/excalidraw/components/TTDDialog/common.d.ts +2 -2
  130. package/dist/excalidraw/components/TTDDialog/common.js +3 -7
  131. package/dist/excalidraw/components/UserList.js +22 -22
  132. package/dist/excalidraw/components/canvases/StaticCanvas.js +1 -0
  133. package/dist/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +12 -3
  134. package/dist/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +24 -4
  135. package/dist/excalidraw/components/dropdownMenu/DropdownMenuItem.js +55 -14
  136. package/dist/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +2 -1
  137. package/dist/excalidraw/components/dropdownMenu/DropdownMenuItemContent.js +2 -2
  138. package/dist/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  139. package/dist/excalidraw/components/dropdownMenu/common.js +3 -2
  140. package/dist/excalidraw/components/icons.d.ts +4 -0
  141. package/dist/excalidraw/components/icons.js +7 -0
  142. package/dist/excalidraw/components/main-menu/MainMenu.d.ts +12 -3
  143. package/dist/excalidraw/components/welcome-screen/WelcomeScreen.Center.js +2 -2
  144. package/dist/excalidraw/components/welcome-screen/WelcomeScreen.Hints.js +3 -3
  145. package/dist/excalidraw/constants.d.ts +17 -2
  146. package/dist/excalidraw/constants.js +21 -4
  147. package/dist/excalidraw/data/reconcile.js +18 -1
  148. package/dist/excalidraw/data/restore.js +55 -9
  149. package/dist/excalidraw/data/transform.js +8 -5
  150. package/dist/excalidraw/element/binding.d.ts +28 -9
  151. package/dist/excalidraw/element/binding.js +303 -71
  152. package/dist/excalidraw/element/collision.d.ts +1 -1
  153. package/dist/excalidraw/element/collision.js +4 -1
  154. package/dist/excalidraw/element/dragElements.d.ts +2 -2
  155. package/dist/excalidraw/element/dragElements.js +13 -3
  156. package/dist/excalidraw/element/embeddable.d.ts +3 -1
  157. package/dist/excalidraw/element/heading.d.ts +11 -0
  158. package/dist/excalidraw/element/heading.js +81 -0
  159. package/dist/excalidraw/element/index.d.ts +1 -1
  160. package/dist/excalidraw/element/index.js +1 -1
  161. package/dist/excalidraw/element/linearElementEditor.d.ts +21 -13
  162. package/dist/excalidraw/element/linearElementEditor.js +133 -56
  163. package/dist/excalidraw/element/newElement.d.ts +8 -3
  164. package/dist/excalidraw/element/newElement.js +15 -2
  165. package/dist/excalidraw/element/resizeElements.d.ts +4 -3
  166. package/dist/excalidraw/element/resizeElements.js +47 -23
  167. package/dist/excalidraw/element/routing.d.ts +13 -0
  168. package/dist/excalidraw/element/routing.js +641 -0
  169. package/dist/excalidraw/element/textElement.d.ts +3 -26
  170. package/dist/excalidraw/element/textElement.js +54 -110
  171. package/dist/excalidraw/element/textWysiwyg.js +39 -47
  172. package/dist/excalidraw/element/transformHandles.js +7 -2
  173. package/dist/excalidraw/element/typeChecks.d.ts +5 -2
  174. package/dist/excalidraw/element/typeChecks.js +17 -0
  175. package/dist/excalidraw/element/types.d.ts +12 -1
  176. package/dist/excalidraw/fonts/ExcalidrawFont.d.ts +21 -0
  177. package/dist/excalidraw/fonts/ExcalidrawFont.js +112 -0
  178. package/dist/excalidraw/fonts/index.d.ts +58 -0
  179. package/dist/excalidraw/fonts/index.js +240 -0
  180. package/dist/excalidraw/fonts/metadata.d.ts +36 -0
  181. package/dist/excalidraw/fonts/metadata.js +91 -0
  182. package/dist/excalidraw/fractionalIndex.d.ts +11 -4
  183. package/dist/excalidraw/fractionalIndex.js +38 -6
  184. package/dist/excalidraw/frame.d.ts +1 -1
  185. package/dist/excalidraw/frame.js +3 -3
  186. package/dist/excalidraw/history.d.ts +4 -3
  187. package/dist/excalidraw/history.js +8 -8
  188. package/dist/excalidraw/index.d.ts +1 -1
  189. package/dist/excalidraw/index.js +3 -3
  190. package/dist/excalidraw/locales/en.json +18 -4
  191. package/dist/excalidraw/math.d.ts +43 -0
  192. package/dist/excalidraw/math.js +110 -0
  193. package/dist/excalidraw/mermaid.js +4 -3
  194. package/dist/excalidraw/renderer/interactiveScene.js +33 -17
  195. package/dist/excalidraw/renderer/renderElement.d.ts +2 -0
  196. package/dist/excalidraw/renderer/renderElement.js +74 -54
  197. package/dist/excalidraw/renderer/staticSvgScene.js +2 -1
  198. package/dist/excalidraw/scene/Scene.js +9 -3
  199. package/dist/excalidraw/scene/Shape.js +56 -5
  200. package/dist/excalidraw/scene/comparisons.d.ts +1 -0
  201. package/dist/excalidraw/scene/comparisons.js +1 -1
  202. package/dist/excalidraw/scene/export.d.ts +2 -1
  203. package/dist/excalidraw/scene/export.js +33 -35
  204. package/dist/excalidraw/scene/types.d.ts +1 -4
  205. package/dist/excalidraw/shapes.d.ts +8 -0
  206. package/dist/excalidraw/shapes.js +57 -0
  207. package/dist/excalidraw/types.d.ts +8 -3
  208. package/dist/excalidraw/utils.d.ts +11 -1
  209. package/dist/excalidraw/utils.js +22 -0
  210. package/dist/prod/CascadiaCode-Regular-TMZI7IJ5.woff2 +0 -0
  211. package/dist/prod/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
  212. package/dist/prod/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
  213. package/dist/prod/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
  214. package/dist/prod/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
  215. package/dist/prod/{en-EB2MBPAV.json → en-YNVBSAIL.json} +18 -4
  216. package/dist/prod/index.css +1 -1
  217. package/dist/prod/index.js +49 -53
  218. package/dist/utils/export.d.ts +2 -1
  219. package/dist/utils/export.js +2 -1
  220. package/dist/utils/geometry/geometry.d.ts +2 -1
  221. package/dist/utils/geometry/geometry.js +5 -1
  222. package/dist/utils/index.d.ts +1 -0
  223. package/dist/utils/index.js +1 -0
  224. package/history.ts +9 -2
  225. package/package.json +2 -2
  226. package/dist/browser/dev/Cascadia-CYPE3OJC.woff2 +0 -0
  227. package/dist/browser/dev/Virgil-UZN6MUT6.woff2 +0 -0
  228. package/dist/browser/dev/excalidraw-assets-dev/chunk-B4UMSLQQ.js.map +0 -7
  229. package/dist/browser/dev/excalidraw-assets-dev/chunk-EM6LVGFW.js.map +0 -7
  230. package/dist/browser/dev/excalidraw-assets-dev/dist-6QVAH5JA.js.map +0 -7
  231. package/dist/browser/prod/Cascadia-CYPE3OJC.woff2 +0 -0
  232. package/dist/browser/prod/Virgil-UZN6MUT6.woff2 +0 -0
  233. package/dist/browser/prod/excalidraw-assets/chunk-EGOLGOLD.js +0 -55
  234. package/dist/browser/prod/excalidraw-assets/dist-567JAXHK.js +0 -7
  235. package/dist/browser/prod/excalidraw-assets/en-6E7MYLWO.js +0 -1
  236. package/dist/browser/prod/excalidraw-assets/image-SI7BKULC.js +0 -1
  237. package/dist/dev/Cascadia-CYPE3OJC.woff2 +0 -0
  238. package/dist/dev/Virgil-UZN6MUT6.woff2 +0 -0
  239. package/dist/excalidraw/scene/Fonts.d.ts +0 -19
  240. package/dist/excalidraw/scene/Fonts.js +0 -66
  241. package/dist/prod/Cascadia-CYPE3OJC.woff2 +0 -0
  242. package/dist/prod/Virgil-UZN6MUT6.woff2 +0 -0
  243. /package/dist/browser/dev/{Assistant-Bold-ZDZZ6JHA.woff2 → excalidraw-assets-dev/Assistant-Bold-ZDZZ6JHA.woff2} +0 -0
  244. /package/dist/browser/dev/{Assistant-Medium-DZ25RZU3.woff2 → excalidraw-assets-dev/Assistant-Medium-DZ25RZU3.woff2} +0 -0
  245. /package/dist/browser/dev/{Assistant-Regular-PLF2XOGW.woff2 → excalidraw-assets-dev/Assistant-Regular-PLF2XOGW.woff2} +0 -0
  246. /package/dist/browser/dev/{Assistant-SemiBold-CZ5MX6FK.woff2 → excalidraw-assets-dev/Assistant-SemiBold-CZ5MX6FK.woff2} +0 -0
  247. /package/dist/browser/dev/excalidraw-assets-dev/{en-AZFA5HJJ.js.map → en-XV7OZCPP.js.map} +0 -0
  248. /package/dist/browser/dev/excalidraw-assets-dev/{image-V7E6IT6R.js.map → image-77HZYGLG.js.map} +0 -0
  249. /package/dist/browser/prod/{Assistant-Bold-ZDZZ6JHA.woff2 → excalidraw-assets/Assistant-Bold-ZDZZ6JHA.woff2} +0 -0
  250. /package/dist/browser/prod/{Assistant-Medium-DZ25RZU3.woff2 → excalidraw-assets/Assistant-Medium-DZ25RZU3.woff2} +0 -0
  251. /package/dist/browser/prod/{Assistant-Regular-PLF2XOGW.woff2 → excalidraw-assets/Assistant-Regular-PLF2XOGW.woff2} +0 -0
  252. /package/dist/browser/prod/{Assistant-SemiBold-CZ5MX6FK.woff2 → excalidraw-assets/Assistant-SemiBold-CZ5MX6FK.woff2} +0 -0
@@ -1,28 +1,28 @@
1
- import{$ as ll,$a as ep,$b as qw,$c as hp,$d as Md,$e as V3,$f as v5,A as ca,Aa as Jt,Ab as Gw,Ac as Cs,Ad as Pr,Af as m5,Ag as L5,B as al,Ba as Yo,Bb as ip,Bc as lp,Bd as yp,Be as P3,Bf as Dp,Bg as G0,C as ld,Ca as _w,Cb as bd,Cc as r3,Cd as x3,Ce as R3,Cf as u5,Cg as Ds,D as n0,Da as md,Db as xd,Dc as ul,Dd as Mn,De as kp,Df as Ps,Dg as _D,E as Hu,Ea as bo,Eb as pa,Ec as sp,Ed as v3,Ee as _p,Ef as bl,Eg as V0,F as sd,Fa as Aw,Fb as $r,Fc as Sd,Fd as y3,Fe as _0,Ff as O0,Fg as K0,G as He,Ga as Mw,Gb as ml,Gc as cp,Gd as Is,Ge as Ap,Gf as Nd,Gg as Ze,H as In,Ha as d0,Hb as gs,Hc as Td,Hd as Zt,He as D3,Hf as CD,Hg as Y0,I as kn,Ia as ma,Ib as ve,Ic as y0,Id as E3,Ie as A0,If as SD,Ig as Ns,J as ps,Ja as Lw,Jb as g0,Jc as o3,Jd as w3,Je as Mi,Jf as TD,Jg as P5,K as Uu,Ka as Pw,Kb as vd,Kc as Id,Kd as C3,Ke as N3,Kf as ID,Kg as Z0,L as i0,La as Rw,Lb as Ve,Lc as pl,Ld as hl,Le as Mp,Lf as Np,Lg as xt,M as Wu,Ma as Zo,Mb as lt,Mc as dp,Md as S3,Me as O3,Mf as p5,Mg as R5,N as cw,Na as m0,Nb as Hr,Nc as mp,Nd as _i,Ne as Rd,Nf as F0,Ng as Ge,O as cd,Oa as Lr,Ob as Vw,Oc as E0,Od as Ai,Oe as M0,Of as f5,Og as Gp,P as dw,Pa as ud,Pb as wi,Pc as Fe,Pd as Ep,Pe as F3,Pf as Ea,Pg as vt,Q as mw,Qa as Qu,Qb as Kw,Qc as n3,Qd as T3,Qe as z3,Qf as h5,Qg as D5,R as Ei,Ra as sl,Rb as Ci,Rc as kd,Rd as I3,Re as B3,Rf as Rs,Rg as vl,S as uw,Sa as Dw,Sb as Yw,Sc as i3,Sd as ne,Se as L0,Sf as g5,Sg as Li,T as Mr,Ta as Nw,Tb as jn,Tc as a3,Td as Jo,Te as Lp,Tf as Op,Tg as Pi,U as Gu,Ua as cl,Ub as nr,Uc as _d,Ud as bt,Ue as P0,Uf as b5,V as pw,Va as Kt,Vb as bs,Vc as Ur,Vd as k3,Ve as R0,Vf as Fp,W as fw,Wa as X,Wb as Zw,Wc as up,Wd as Ln,We as $3,Wf as zp,X as hw,Xa as Dt,Xb as Xw,Xc as pp,Xd as xa,Xe as H3,Xf as x5,Y as gw,Ya as no,Yb as jw,Yc as fp,Yd as C0,Ye as U3,Yf as Bp,Z as bw,Za as pd,Zb as fa,Zc as Ti,Zd as _3,Ze as W3,Zf as qn,_ as xw,_a as fd,_b as xs,_c as l3,_d as wp,_e as G3,_f as z0,a as Sr,aa as Vu,ab as u0,ac as Jw,ad as s3,ae as va,af as K3,ag as $p,b as QE,ba as a0,bb as p0,bc as Mo,bd as gp,be as ya,bf as Y3,bg as y5,c as nl,ca as vw,cb as dl,cc as ha,cd as bp,ce as A3,cf as Z3,cg as E5,d as ew,da as yw,db as tp,dc as Xo,dd as c3,de as Ld,df as X3,dg as kD,e as tw,ea as Ku,eb as Ow,ec as Qw,ed as ct,ee as Cp,ef as j3,eg as en,f as vi,fa as Yu,fb as Fw,fc as An,fd as fl,fe as ks,ff as D0,fg as pe,g as Ou,ga as l0,gb as zw,gc as Si,gd as xp,ge as Sp,gf as Ms,gg as De,h as Fu,ha as Ew,hb as Oe,hc as ga,hd as d3,he as Tp,hf as q3,hg as B0,i as zu,ia as ww,ib as Bw,ic as yd,id as m3,ie as Qo,if as J3,ig as xl,j as rw,ja as Cw,jb as hd,jc as io,jd as u3,je as Y,jf as Q3,jg as Od,k as ow,ka as Sw,kb as $w,kc as e3,kd as p3,ke as M3,kf as e5,kg as $0,l as nw,la as Tw,lb as rp,lc as vs,ld as Ss,le as S0,lf as t5,lg as w5,m as Tn,ma as Zu,mb as fs,mc as ys,md as Ad,me as gl,mf as Pp,mg as Hp,n as Bu,na as da,nb as Hw,nc as Ed,nd as f3,ne as L3,nf as Dd,ng as C5,o as yi,oa as Iw,ob as hs,oc as wd,od as h3,oe as _s,of as r5,og as S5,p as iw,pa as s0,pb as gd,pc as ba,pd as Ii,pe as As,pf as o5,pg as Up,q as aw,qa as kw,qb as xr,qc as Cd,qd as g3,qe as Ip,qf as n5,qg as H0,r as id,ra as Xu,rb as ua,rc as b0,rd as Wr,re as T0,rf as i5,rg as U0,s as ad,sa as c0,sb as op,sc as x0,sd as mt,se as I0,sf as a5,sg as W0,t as il,ta as Vo,tb as Uw,tc as v0,td as vp,te as wD,tf as Rp,tg as T5,u as $u,ua as dd,ub as f0,uc as Es,ud as jo,ue as k0,uf as l5,ug as Wp,v as lw,va as Ko,vb as Xn,vc as t3,vd as w0,ve as Pd,vf as s5,vg as I5,w as r0,wa as ju,wb as h0,wc as Be,wd as Ts,wf as N0,wg as k5,x as sw,xa as qu,xb as np,xc as R,xd as qo,xf as Ls,xg as _5,y as o0,ya as _n,yb as Yt,yc as ws,yd as ki,yf as c5,yg as A5,z as gt,za as Ju,zb as Ww,zc as ap,zd as b3,zf as d5,zg as M5}from"./excalidraw-assets/chunk-EGOLGOLD.js";import{a as v,b as A}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{F as t0}from"./excalidraw-assets/chunk-7DXALCB2.js";import{aa as JE}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as jE,d as Sn,e as qE,f as S}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var ee=Sn((aH,N5)=>{v();N5.exports=React});var G5=Sn(ef=>{"use strict";v();var BD=ee(),$D=Symbol.for("react.element"),HD=Symbol.for("react.fragment"),UD=Object.prototype.hasOwnProperty,WD=BD.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,GD={key:!0,ref:!0,__self:!0,__source:!0};function W5(e,t,r){var o,i={},a=null,s=null;r!==void 0&&(a=""+r),t.key!==void 0&&(a=""+t.key),t.ref!==void 0&&(s=t.ref);for(o in t)UD.call(t,o)&&!GD.hasOwnProperty(o)&&(i[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps,t)i[o]===void 0&&(i[o]=t[o]);return{$$typeof:$D,type:e,key:a,ref:s,props:i,_owner:WD.current}}ef.Fragment=HD;ef.jsx=W5;ef.jsxs=W5});var P=Sn((AH,V5)=>{"use strict";v();V5.exports=G5()});var Qn=Sn((YH,j5)=>{v();j5.exports=ReactDOM});var qx=Sn((jie,uI)=>{v();var mI="Expected a function",cI=NaN,BF="[object Symbol]",$F=/^\s+|\s+$/g,HF=/^[-+]0x[0-9a-f]+$/i,UF=/^0b[01]+$/i,WF=/^0o[0-7]+$/i,GF=parseInt,VF=typeof global=="object"&&global&&global.Object===Object&&global,KF=typeof self=="object"&&self&&self.Object===Object&&self,YF=VF||KF||Function("return this")(),ZF=Object.prototype,XF=ZF.toString,jF=Math.max,qF=Math.min,jx=function(){return YF.Date.now()};function JF(e,t,r){var o,i,a,s,c,d,p=0,f=!1,m=!1,h=!0;if(typeof e!="function")throw new TypeError(mI);t=dI(t)||0,_h(r)&&(f=!!r.leading,m="maxWait"in r,a=m?jF(dI(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h);function b(D){var z=o,B=i;return o=i=void 0,p=D,s=e.apply(B,z),s}function y(D){return p=D,c=setTimeout(M,t),f?b(D):s}function w(D){var z=D-d,B=D-p,q=t-z;return m?qF(q,a-B):q}function C(D){var z=D-d,B=D-p;return d===void 0||z>=t||z<0||m&&B>=a}function M(){var D=jx();if(C(D))return _(D);c=setTimeout(M,w(D))}function _(D){return c=void 0,h&&o?b(D):(o=i=void 0,s)}function I(){c!==void 0&&clearTimeout(c),p=0,o=d=i=c=void 0}function N(){return c===void 0?s:_(jx())}function $(){var D=jx(),z=C(D);if(o=arguments,i=this,d=D,z){if(c===void 0)return y(d);if(m)return c=setTimeout(M,t),b(d)}return c===void 0&&(c=setTimeout(M,t)),s}return $.cancel=I,$.flush=N,$}function QF(e,t,r){var o=!0,i=!0;if(typeof e!="function")throw new TypeError(mI);return _h(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),JF(e,t,{leading:o,maxWait:t,trailing:i})}function _h(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function ez(e){return!!e&&typeof e=="object"}function tz(e){return typeof e=="symbol"||ez(e)&&XF.call(e)==BF}function dI(e){if(typeof e=="number")return e;if(tz(e))return cI;if(_h(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=_h(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace($F,"");var r=UF.test(e);return r||WF.test(e)?GF(e.slice(2),r?2:8):HF.test(e)?cI:+e}uI.exports=QF});var EI=Sn((vI,yI)=>{v();(function(){var e=this,t={};typeof vI<"u"?yI.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||"",m=i.post||"",h=i.caseSensitive&&o||o.toLowerCase(),b;r=i.caseSensitive&&r||r.toLowerCase();for(var y=0;y<c;y++)b=o[y],h[y]===r[a]?(b=f+b+m,a+=1,p+=1+p):p=0,d+=p,s[s.length]=b;return a===r.length?(d=h===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 kI=Sn(II=>{"use strict";v();var Ic=ee();function bz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var xz=typeof Object.is=="function"?Object.is:bz,vz=Ic.useState,yz=Ic.useEffect,Ez=Ic.useLayoutEffect,wz=Ic.useDebugValue;function Cz(e,t){var r=t(),o=vz({inst:{value:r,getSnapshot:t}}),i=o[0].inst,a=o[1];return Ez(function(){i.value=r,i.getSnapshot=t,ev(i)&&a({inst:i})},[e,r,t]),yz(function(){return ev(i)&&a({inst:i}),e(function(){ev(i)&&a({inst:i})})},[e]),wz(r),r}function ev(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!xz(e,r)}catch{return!0}}function Sz(e,t){return t()}var Tz=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Sz:Cz;II.useSyncExternalStore=Ic.useSyncExternalStore!==void 0?Ic.useSyncExternalStore:Tz});var AI=Sn((Ole,_I)=>{"use strict";v();_I.exports=kI()});var LI=Sn(MI=>{"use strict";v();var Lh=ee(),Iz=AI();function kz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var _z=typeof Object.is=="function"?Object.is:kz,Az=Iz.useSyncExternalStore,Mz=Lh.useRef,Lz=Lh.useEffect,Pz=Lh.useMemo,Rz=Lh.useDebugValue;MI.useSyncExternalStoreWithSelector=function(e,t,r,o,i){var a=Mz(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=Pz(function(){function d(b){if(!p){if(p=!0,f=b,b=o(b),i!==void 0&&s.hasValue){var y=s.value;if(i(y,b))return m=y}return m=b}if(y=m,_z(f,b))return y;var w=o(b);return i!==void 0&&i(y,w)?y:(f=b,m=w)}var p=!1,f,m,h=r===void 0?null:r;return[function(){return d(t())},h===null?void 0:function(){return d(h())}]},[t,r,o,i]);var c=Az(e,a[0],a[1]);return Lz(function(){s.hasValue=!0,s.value=c},[c]),Rz(c),c}});var RI=Sn(($le,PI)=>{"use strict";v();PI.exports=LI()});var b_=Sn((Dc,Pm)=>{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,m=4,h=1,b=2,y=1,w=2,C=4,M=8,_=16,I=32,N=64,$=128,D=256,z=512,B=30,q="...",V=800,te=16,me=1,K=2,de=3,Ee=1/0,Ie=9007199254740991,tt=17976931348623157e292,Se=NaN,fe=4294967295,W=fe-1,Z=fe>>>1,ce=[["ary",$],["bind",y],["bindKey",w],["curry",M],["curryRight",_],["flip",z],["partial",I],["partialRight",N],["rearg",D]],ie="[object Arguments]",ae="[object Array]",ue="[object AsyncFunction]",ge="[object Boolean]",Ce="[object Date]",_t="[object DOMException]",Ct="[object Error]",Pt="[object Function]",yt="[object GeneratorFunction]",$t="[object Map]",hr="[object Number]",Lg="[object Null]",xn="[object Object]",Ym="[object Promise]",Pg="[object Proxy]",Ka="[object RegExp]",Er="[object Set]",vn="[object String]",Ya="[object Symbol]",Ji="[object Undefined]",Za="[object WeakMap]",Rg="[object WeakSet]",Wc="[object ArrayBuffer]",Ql="[object DataView]",Dg="[object Float32Array]",Ng="[object Float64Array]",Og="[object Int8Array]",Fg="[object Int16Array]",zg="[object Int32Array]",Bg="[object Uint8Array]",$g="[object Uint8ClampedArray]",Hg="[object Uint16Array]",Ug="[object Uint32Array]",W8=/\b__p \+= '';/g,G8=/\b(__p \+=) '' \+/g,V8=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ey=/&(?:amp|lt|gt|quot|#39);/g,wy=/[&<>"']/g,K8=RegExp(Ey.source),Y8=RegExp(wy.source),Z8=/<%-([\s\S]+?)%>/g,X8=/<%([\s\S]+?)%>/g,Cy=/<%=([\s\S]+?)%>/g,j8=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,q8=/^\w*$/,J8=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wg=/[\\^$.*+?()[\]{}|]/g,Q8=RegExp(Wg.source),Gg=/^\s+/,eA=/\s/,tA=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,rA=/\{\n\/\* \[wrapped with (.+)\] \*/,oA=/,? & /,nA=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,iA=/[()=,{}\[\]\/\s]/,aA=/\\(\\)?/g,lA=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Sy=/\w*$/,sA=/^[-+]0x[0-9a-f]+$/i,cA=/^0b[01]+$/i,dA=/^\[object .+?Constructor\]$/,mA=/^0o[0-7]+$/i,uA=/^(?:0|[1-9]\d*)$/,pA=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Zm=/($^)/,fA=/['\n\r\u2028\u2029\\]/g,Xm="\\ud800-\\udfff",hA="\\u0300-\\u036f",gA="\\ufe20-\\ufe2f",bA="\\u20d0-\\u20ff",Ty=hA+gA+bA,Iy="\\u2700-\\u27bf",ky="a-z\\xdf-\\xf6\\xf8-\\xff",xA="\\xac\\xb1\\xd7\\xf7",vA="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",yA="\\u2000-\\u206f",EA=" \\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",_y="A-Z\\xc0-\\xd6\\xd8-\\xde",Ay="\\ufe0e\\ufe0f",My=xA+vA+yA+EA,Vg="['\u2019]",wA="["+Xm+"]",Ly="["+My+"]",jm="["+Ty+"]",Py="\\d+",CA="["+Iy+"]",Ry="["+ky+"]",Dy="[^"+Xm+My+Py+Iy+ky+_y+"]",Kg="\\ud83c[\\udffb-\\udfff]",SA="(?:"+jm+"|"+Kg+")",Ny="[^"+Xm+"]",Yg="(?:\\ud83c[\\udde6-\\uddff]){2}",Zg="[\\ud800-\\udbff][\\udc00-\\udfff]",es="["+_y+"]",Oy="\\u200d",Fy="(?:"+Ry+"|"+Dy+")",TA="(?:"+es+"|"+Dy+")",zy="(?:"+Vg+"(?:d|ll|m|re|s|t|ve))?",By="(?:"+Vg+"(?:D|LL|M|RE|S|T|VE))?",$y=SA+"?",Hy="["+Ay+"]?",IA="(?:"+Oy+"(?:"+[Ny,Yg,Zg].join("|")+")"+Hy+$y+")*",kA="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",_A="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Uy=Hy+$y+IA,AA="(?:"+[CA,Yg,Zg].join("|")+")"+Uy,MA="(?:"+[Ny+jm+"?",jm,Yg,Zg,wA].join("|")+")",LA=RegExp(Vg,"g"),PA=RegExp(jm,"g"),Xg=RegExp(Kg+"(?="+Kg+")|"+MA+Uy,"g"),RA=RegExp([es+"?"+Ry+"+"+zy+"(?="+[Ly,es,"$"].join("|")+")",TA+"+"+By+"(?="+[Ly,es+Fy,"$"].join("|")+")",es+"?"+Fy+"+"+zy,es+"+"+By,_A,kA,Py,AA].join("|"),"g"),DA=RegExp("["+Oy+Xm+Ty+Ay+"]"),NA=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,OA=["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"],FA=-1,Rt={};Rt[Dg]=Rt[Ng]=Rt[Og]=Rt[Fg]=Rt[zg]=Rt[Bg]=Rt[$g]=Rt[Hg]=Rt[Ug]=!0,Rt[ie]=Rt[ae]=Rt[Wc]=Rt[ge]=Rt[Ql]=Rt[Ce]=Rt[Ct]=Rt[Pt]=Rt[$t]=Rt[hr]=Rt[xn]=Rt[Ka]=Rt[Er]=Rt[vn]=Rt[Za]=!1;var At={};At[ie]=At[ae]=At[Wc]=At[Ql]=At[ge]=At[Ce]=At[Dg]=At[Ng]=At[Og]=At[Fg]=At[zg]=At[$t]=At[hr]=At[xn]=At[Ka]=At[Er]=At[vn]=At[Ya]=At[Bg]=At[$g]=At[Hg]=At[Ug]=!0,At[Ct]=At[Pt]=At[Za]=!1;var zA={\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"},BA={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},$A={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},HA={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},UA=parseFloat,WA=parseInt,Wy=typeof global=="object"&&global&&global.Object===Object&&global,GA=typeof self=="object"&&self&&self.Object===Object&&self,wr=Wy||GA||Function("return this")(),jg=typeof Dc=="object"&&Dc&&!Dc.nodeType&&Dc,Xa=jg&&typeof Pm=="object"&&Pm&&!Pm.nodeType&&Pm,Gy=Xa&&Xa.exports===jg,qg=Gy&&Wy.process,Fo=function(){try{var H=Xa&&Xa.require&&Xa.require("util").types;return H||qg&&qg.binding&&qg.binding("util")}catch{}}(),Vy=Fo&&Fo.isArrayBuffer,Ky=Fo&&Fo.isDate,Yy=Fo&&Fo.isMap,Zy=Fo&&Fo.isRegExp,Xy=Fo&&Fo.isSet,jy=Fo&&Fo.isTypedArray;function So(H,J,j){switch(j.length){case 0:return H.call(J);case 1:return H.call(J,j[0]);case 2:return H.call(J,j[0],j[1]);case 3:return H.call(J,j[0],j[1],j[2])}return H.apply(J,j)}function VA(H,J,j,we){for(var $e=-1,pt=H==null?0:H.length;++$e<pt;){var gr=H[$e];J(we,gr,j(gr),H)}return we}function zo(H,J){for(var j=-1,we=H==null?0:H.length;++j<we&&J(H[j],j,H)!==!1;);return H}function KA(H,J){for(var j=H==null?0:H.length;j--&&J(H[j],j,H)!==!1;);return H}function qy(H,J){for(var j=-1,we=H==null?0:H.length;++j<we;)if(!J(H[j],j,H))return!1;return!0}function Qi(H,J){for(var j=-1,we=H==null?0:H.length,$e=0,pt=[];++j<we;){var gr=H[j];J(gr,j,H)&&(pt[$e++]=gr)}return pt}function qm(H,J){var j=H==null?0:H.length;return!!j&&ts(H,J,0)>-1}function Jg(H,J,j){for(var we=-1,$e=H==null?0:H.length;++we<$e;)if(j(J,H[we]))return!0;return!1}function Ht(H,J){for(var j=-1,we=H==null?0:H.length,$e=Array(we);++j<we;)$e[j]=J(H[j],j,H);return $e}function ea(H,J){for(var j=-1,we=J.length,$e=H.length;++j<we;)H[$e+j]=J[j];return H}function Qg(H,J,j,we){var $e=-1,pt=H==null?0:H.length;for(we&&pt&&(j=H[++$e]);++$e<pt;)j=J(j,H[$e],$e,H);return j}function YA(H,J,j,we){var $e=H==null?0:H.length;for(we&&$e&&(j=H[--$e]);$e--;)j=J(j,H[$e],$e,H);return j}function e1(H,J){for(var j=-1,we=H==null?0:H.length;++j<we;)if(J(H[j],j,H))return!0;return!1}var ZA=t1("length");function XA(H){return H.split("")}function jA(H){return H.match(nA)||[]}function Jy(H,J,j){var we;return j(H,function($e,pt,gr){if(J($e,pt,gr))return we=pt,!1}),we}function Jm(H,J,j,we){for(var $e=H.length,pt=j+(we?1:-1);we?pt--:++pt<$e;)if(J(H[pt],pt,H))return pt;return-1}function ts(H,J,j){return J===J?s7(H,J,j):Jm(H,Qy,j)}function qA(H,J,j,we){for(var $e=j-1,pt=H.length;++$e<pt;)if(we(H[$e],J))return $e;return-1}function Qy(H){return H!==H}function e2(H,J){var j=H==null?0:H.length;return j?o1(H,J)/j:Se}function t1(H){return function(J){return J==null?e:J[H]}}function r1(H){return function(J){return H==null?e:H[J]}}function t2(H,J,j,we,$e){return $e(H,function(pt,gr,Tt){j=we?(we=!1,pt):J(j,pt,gr,Tt)}),j}function JA(H,J){var j=H.length;for(H.sort(J);j--;)H[j]=H[j].value;return H}function o1(H,J){for(var j,we=-1,$e=H.length;++we<$e;){var pt=J(H[we]);pt!==e&&(j=j===e?pt:j+pt)}return j}function n1(H,J){for(var j=-1,we=Array(H);++j<H;)we[j]=J(j);return we}function QA(H,J){return Ht(J,function(j){return[j,H[j]]})}function r2(H){return H&&H.slice(0,a2(H)+1).replace(Gg,"")}function To(H){return function(J){return H(J)}}function i1(H,J){return Ht(J,function(j){return H[j]})}function Gc(H,J){return H.has(J)}function o2(H,J){for(var j=-1,we=H.length;++j<we&&ts(J,H[j],0)>-1;);return j}function n2(H,J){for(var j=H.length;j--&&ts(J,H[j],0)>-1;);return j}function e7(H,J){for(var j=H.length,we=0;j--;)H[j]===J&&++we;return we}var t7=r1(zA),r7=r1(BA);function o7(H){return"\\"+HA[H]}function n7(H,J){return H==null?e:H[J]}function rs(H){return DA.test(H)}function i7(H){return NA.test(H)}function a7(H){for(var J,j=[];!(J=H.next()).done;)j.push(J.value);return j}function a1(H){var J=-1,j=Array(H.size);return H.forEach(function(we,$e){j[++J]=[$e,we]}),j}function i2(H,J){return function(j){return H(J(j))}}function ta(H,J){for(var j=-1,we=H.length,$e=0,pt=[];++j<we;){var gr=H[j];(gr===J||gr===d)&&(H[j]=d,pt[$e++]=j)}return pt}function Qm(H){var J=-1,j=Array(H.size);return H.forEach(function(we){j[++J]=we}),j}function l7(H){var J=-1,j=Array(H.size);return H.forEach(function(we){j[++J]=[we,we]}),j}function s7(H,J,j){for(var we=j-1,$e=H.length;++we<$e;)if(H[we]===J)return we;return-1}function c7(H,J,j){for(var we=j+1;we--;)if(H[we]===J)return we;return we}function os(H){return rs(H)?m7(H):ZA(H)}function yn(H){return rs(H)?u7(H):XA(H)}function a2(H){for(var J=H.length;J--&&eA.test(H.charAt(J)););return J}var d7=r1($A);function m7(H){for(var J=Xg.lastIndex=0;Xg.test(H);)++J;return J}function u7(H){return H.match(Xg)||[]}function p7(H){return H.match(RA)||[]}var f7=function H(J){J=J==null?wr:ra.defaults(wr.Object(),J,ra.pick(wr,OA));var j=J.Array,we=J.Date,$e=J.Error,pt=J.Function,gr=J.Math,Tt=J.Object,l1=J.RegExp,h7=J.String,Bo=J.TypeError,eu=j.prototype,g7=pt.prototype,ns=Tt.prototype,tu=J["__core-js_shared__"],ru=g7.toString,Et=ns.hasOwnProperty,b7=0,l2=function(){var n=/[^.]+$/.exec(tu&&tu.keys&&tu.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ou=ns.toString,x7=ru.call(Tt),v7=wr._,y7=l1("^"+ru.call(Et).replace(Wg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nu=Gy?J.Buffer:e,oa=J.Symbol,iu=J.Uint8Array,s2=nu?nu.allocUnsafe:e,au=i2(Tt.getPrototypeOf,Tt),c2=Tt.create,d2=ns.propertyIsEnumerable,lu=eu.splice,m2=oa?oa.isConcatSpreadable:e,Vc=oa?oa.iterator:e,ja=oa?oa.toStringTag:e,su=function(){try{var n=tl(Tt,"defineProperty");return n({},"",{}),n}catch{}}(),E7=J.clearTimeout!==wr.clearTimeout&&J.clearTimeout,w7=we&&we.now!==wr.Date.now&&we.now,C7=J.setTimeout!==wr.setTimeout&&J.setTimeout,cu=gr.ceil,du=gr.floor,s1=Tt.getOwnPropertySymbols,S7=nu?nu.isBuffer:e,u2=J.isFinite,T7=eu.join,I7=i2(Tt.keys,Tt),br=gr.max,zr=gr.min,k7=we.now,_7=J.parseInt,p2=gr.random,A7=eu.reverse,c1=tl(J,"DataView"),Kc=tl(J,"Map"),d1=tl(J,"Promise"),is=tl(J,"Set"),Yc=tl(J,"WeakMap"),Zc=tl(Tt,"create"),mu=Yc&&new Yc,as={},M7=rl(c1),L7=rl(Kc),P7=rl(d1),R7=rl(is),D7=rl(Yc),uu=oa?oa.prototype:e,Xc=uu?uu.valueOf:e,f2=uu?uu.toString:e;function k(n){if(qt(n)&&!We(n)&&!(n instanceof rt)){if(n instanceof $o)return n;if(Et.call(n,"__wrapped__"))return hE(n)}return new $o(n)}var ls=function(){function n(){}return function(l){if(!Vt(l))return{};if(c2)return c2(l);n.prototype=l;var u=new n;return n.prototype=e,u}}();function pu(){}function $o(n,l){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}k.templateSettings={escape:Z8,evaluate:X8,interpolate:Cy,variable:"",imports:{_:k}},k.prototype=pu.prototype,k.prototype.constructor=k,$o.prototype=ls(pu.prototype),$o.prototype.constructor=$o;function rt(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=fe,this.__views__=[]}function N7(){var n=new rt(this.__wrapped__);return n.__actions__=po(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=po(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=po(this.__views__),n}function O7(){if(this.__filtered__){var n=new rt(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function F7(){var n=this.__wrapped__.value(),l=this.__dir__,u=We(n),x=l<0,T=u?n.length:0,L=XM(0,T,this.__views__),O=L.start,F=L.end,U=F-O,re=x?F:O-1,oe=this.__iteratees__,le=oe.length,be=0,Te=zr(U,this.__takeCount__);if(!u||!x&&T==U&&Te==U)return z2(n,this.__actions__);var Pe=[];e:for(;U--&&be<Te;){re+=l;for(var Ye=-1,Re=n[re];++Ye<le;){var et=oe[Ye],nt=et.iteratee,_o=et.type,oo=nt(Re);if(_o==K)Re=oo;else if(!oo){if(_o==me)continue e;break e}}Pe[be++]=Re}return Pe}rt.prototype=ls(pu.prototype),rt.prototype.constructor=rt;function qa(n){var l=-1,u=n==null?0:n.length;for(this.clear();++l<u;){var x=n[l];this.set(x[0],x[1])}}function z7(){this.__data__=Zc?Zc(null):{},this.size=0}function B7(n){var l=this.has(n)&&delete this.__data__[n];return this.size-=l?1:0,l}function $7(n){var l=this.__data__;if(Zc){var u=l[n];return u===s?e:u}return Et.call(l,n)?l[n]:e}function H7(n){var l=this.__data__;return Zc?l[n]!==e:Et.call(l,n)}function U7(n,l){var u=this.__data__;return this.size+=this.has(n)?0:1,u[n]=Zc&&l===e?s:l,this}qa.prototype.clear=z7,qa.prototype.delete=B7,qa.prototype.get=$7,qa.prototype.has=H7,qa.prototype.set=U7;function di(n){var l=-1,u=n==null?0:n.length;for(this.clear();++l<u;){var x=n[l];this.set(x[0],x[1])}}function W7(){this.__data__=[],this.size=0}function G7(n){var l=this.__data__,u=fu(l,n);if(u<0)return!1;var x=l.length-1;return u==x?l.pop():lu.call(l,u,1),--this.size,!0}function V7(n){var l=this.__data__,u=fu(l,n);return u<0?e:l[u][1]}function K7(n){return fu(this.__data__,n)>-1}function Y7(n,l){var u=this.__data__,x=fu(u,n);return x<0?(++this.size,u.push([n,l])):u[x][1]=l,this}di.prototype.clear=W7,di.prototype.delete=G7,di.prototype.get=V7,di.prototype.has=K7,di.prototype.set=Y7;function mi(n){var l=-1,u=n==null?0:n.length;for(this.clear();++l<u;){var x=n[l];this.set(x[0],x[1])}}function Z7(){this.size=0,this.__data__={hash:new qa,map:new(Kc||di),string:new qa}}function X7(n){var l=Iu(this,n).delete(n);return this.size-=l?1:0,l}function j7(n){return Iu(this,n).get(n)}function q7(n){return Iu(this,n).has(n)}function J7(n,l){var u=Iu(this,n),x=u.size;return u.set(n,l),this.size+=u.size==x?0:1,this}mi.prototype.clear=Z7,mi.prototype.delete=X7,mi.prototype.get=j7,mi.prototype.has=q7,mi.prototype.set=J7;function Ja(n){var l=-1,u=n==null?0:n.length;for(this.__data__=new mi;++l<u;)this.add(n[l])}function Q7(n){return this.__data__.set(n,s),this}function eM(n){return this.__data__.has(n)}Ja.prototype.add=Ja.prototype.push=Q7,Ja.prototype.has=eM;function En(n){var l=this.__data__=new di(n);this.size=l.size}function tM(){this.__data__=new di,this.size=0}function rM(n){var l=this.__data__,u=l.delete(n);return this.size=l.size,u}function oM(n){return this.__data__.get(n)}function nM(n){return this.__data__.has(n)}function iM(n,l){var u=this.__data__;if(u instanceof di){var x=u.__data__;if(!Kc||x.length<r-1)return x.push([n,l]),this.size=++u.size,this;u=this.__data__=new mi(x)}return u.set(n,l),this.size=u.size,this}En.prototype.clear=tM,En.prototype.delete=rM,En.prototype.get=oM,En.prototype.has=nM,En.prototype.set=iM;function h2(n,l){var u=We(n),x=!u&&ol(n),T=!u&&!x&&sa(n),L=!u&&!x&&!T&&ms(n),O=u||x||T||L,F=O?n1(n.length,h7):[],U=F.length;for(var re in n)(l||Et.call(n,re))&&!(O&&(re=="length"||T&&(re=="offset"||re=="parent")||L&&(re=="buffer"||re=="byteLength"||re=="byteOffset")||hi(re,U)))&&F.push(re);return F}function g2(n){var l=n.length;return l?n[E1(0,l-1)]:e}function aM(n,l){return ku(po(n),Qa(l,0,n.length))}function lM(n){return ku(po(n))}function m1(n,l,u){(u!==e&&!wn(n[l],u)||u===e&&!(l in n))&&ui(n,l,u)}function jc(n,l,u){var x=n[l];(!(Et.call(n,l)&&wn(x,u))||u===e&&!(l in n))&&ui(n,l,u)}function fu(n,l){for(var u=n.length;u--;)if(wn(n[u][0],l))return u;return-1}function sM(n,l,u,x){return na(n,function(T,L,O){l(x,T,u(T),O)}),x}function b2(n,l){return n&&Yn(l,Cr(l),n)}function cM(n,l){return n&&Yn(l,ho(l),n)}function ui(n,l,u){l=="__proto__"&&su?su(n,l,{configurable:!0,enumerable:!0,value:u,writable:!0}):n[l]=u}function u1(n,l){for(var u=-1,x=l.length,T=j(x),L=n==null;++u<x;)T[u]=L?e:K1(n,l[u]);return T}function Qa(n,l,u){return n===n&&(u!==e&&(n=n<=u?n:u),l!==e&&(n=n>=l?n:l)),n}function Ho(n,l,u,x,T,L){var O,F=l&p,U=l&f,re=l&m;if(u&&(O=T?u(n,x,T,L):u(n)),O!==e)return O;if(!Vt(n))return n;var oe=We(n);if(oe){if(O=qM(n),!F)return po(n,O)}else{var le=Br(n),be=le==Pt||le==yt;if(sa(n))return H2(n,F);if(le==xn||le==ie||be&&!T){if(O=U||be?{}:aE(n),!F)return U?$M(n,cM(O,n)):BM(n,b2(O,n))}else{if(!At[le])return T?n:{};O=JM(n,le,F)}}L||(L=new En);var Te=L.get(n);if(Te)return Te;L.set(n,O),NE(n)?n.forEach(function(Re){O.add(Ho(Re,l,u,Re,n,L))}):RE(n)&&n.forEach(function(Re,et){O.set(et,Ho(Re,l,u,et,n,L))});var Pe=re?U?P1:L1:U?ho:Cr,Ye=oe?e:Pe(n);return zo(Ye||n,function(Re,et){Ye&&(et=Re,Re=n[et]),jc(O,et,Ho(Re,l,u,et,n,L))}),O}function dM(n){var l=Cr(n);return function(u){return x2(u,n,l)}}function x2(n,l,u){var x=u.length;if(n==null)return!x;for(n=Tt(n);x--;){var T=u[x],L=l[T],O=n[T];if(O===e&&!(T in n)||!L(O))return!1}return!0}function v2(n,l,u){if(typeof n!="function")throw new Bo(i);return od(function(){n.apply(e,u)},l)}function qc(n,l,u,x){var T=-1,L=qm,O=!0,F=n.length,U=[],re=l.length;if(!F)return U;u&&(l=Ht(l,To(u))),x?(L=Jg,O=!1):l.length>=r&&(L=Gc,O=!1,l=new Ja(l));e:for(;++T<F;){var oe=n[T],le=u==null?oe:u(oe);if(oe=x||oe!==0?oe:0,O&&le===le){for(var be=re;be--;)if(l[be]===le)continue e;U.push(oe)}else L(l,le,x)||U.push(oe)}return U}var na=K2(Kn),y2=K2(f1,!0);function mM(n,l){var u=!0;return na(n,function(x,T,L){return u=!!l(x,T,L),u}),u}function hu(n,l,u){for(var x=-1,T=n.length;++x<T;){var L=n[x],O=l(L);if(O!=null&&(F===e?O===O&&!ko(O):u(O,F)))var F=O,U=L}return U}function uM(n,l,u,x){var T=n.length;for(u=Ke(u),u<0&&(u=-u>T?0:T+u),x=x===e||x>T?T:Ke(x),x<0&&(x+=T),x=u>x?0:FE(x);u<x;)n[u++]=l;return n}function E2(n,l){var u=[];return na(n,function(x,T,L){l(x,T,L)&&u.push(x)}),u}function Ar(n,l,u,x,T){var L=-1,O=n.length;for(u||(u=eL),T||(T=[]);++L<O;){var F=n[L];l>0&&u(F)?l>1?Ar(F,l-1,u,x,T):ea(T,F):x||(T[T.length]=F)}return T}var p1=Y2(),w2=Y2(!0);function Kn(n,l){return n&&p1(n,l,Cr)}function f1(n,l){return n&&w2(n,l,Cr)}function gu(n,l){return Qi(l,function(u){return gi(n[u])})}function el(n,l){l=aa(l,n);for(var u=0,x=l.length;n!=null&&u<x;)n=n[Zn(l[u++])];return u&&u==x?n:e}function C2(n,l,u){var x=l(n);return We(n)?x:ea(x,u(n))}function to(n){return n==null?n===e?Ji:Lg:ja&&ja in Tt(n)?ZM(n):lL(n)}function h1(n,l){return n>l}function pM(n,l){return n!=null&&Et.call(n,l)}function fM(n,l){return n!=null&&l in Tt(n)}function hM(n,l,u){return n>=zr(l,u)&&n<br(l,u)}function g1(n,l,u){for(var x=u?Jg:qm,T=n[0].length,L=n.length,O=L,F=j(L),U=1/0,re=[];O--;){var oe=n[O];O&&l&&(oe=Ht(oe,To(l))),U=zr(oe.length,U),F[O]=!u&&(l||T>=120&&oe.length>=120)?new Ja(O&&oe):e}oe=n[0];var le=-1,be=F[0];e:for(;++le<T&&re.length<U;){var Te=oe[le],Pe=l?l(Te):Te;if(Te=u||Te!==0?Te:0,!(be?Gc(be,Pe):x(re,Pe,u))){for(O=L;--O;){var Ye=F[O];if(!(Ye?Gc(Ye,Pe):x(n[O],Pe,u)))continue e}be&&be.push(Pe),re.push(Te)}}return re}function gM(n,l,u,x){return Kn(n,function(T,L,O){l(x,u(T),L,O)}),x}function Jc(n,l,u){l=aa(l,n),n=dE(n,l);var x=n==null?n:n[Zn(Wo(l))];return x==null?e:So(x,n,u)}function S2(n){return qt(n)&&to(n)==ie}function bM(n){return qt(n)&&to(n)==Wc}function xM(n){return qt(n)&&to(n)==Ce}function Qc(n,l,u,x,T){return n===l?!0:n==null||l==null||!qt(n)&&!qt(l)?n!==n&&l!==l:vM(n,l,u,x,Qc,T)}function vM(n,l,u,x,T,L){var O=We(n),F=We(l),U=O?ae:Br(n),re=F?ae:Br(l);U=U==ie?xn:U,re=re==ie?xn:re;var oe=U==xn,le=re==xn,be=U==re;if(be&&sa(n)){if(!sa(l))return!1;O=!0,oe=!1}if(be&&!oe)return L||(L=new En),O||ms(n)?oE(n,l,u,x,T,L):KM(n,l,U,u,x,T,L);if(!(u&h)){var Te=oe&&Et.call(n,"__wrapped__"),Pe=le&&Et.call(l,"__wrapped__");if(Te||Pe){var Ye=Te?n.value():n,Re=Pe?l.value():l;return L||(L=new En),T(Ye,Re,u,x,L)}}return be?(L||(L=new En),YM(n,l,u,x,T,L)):!1}function yM(n){return qt(n)&&Br(n)==$t}function b1(n,l,u,x){var T=u.length,L=T,O=!x;if(n==null)return!L;for(n=Tt(n);T--;){var F=u[T];if(O&&F[2]?F[1]!==n[F[0]]:!(F[0]in n))return!1}for(;++T<L;){F=u[T];var U=F[0],re=n[U],oe=F[1];if(O&&F[2]){if(re===e&&!(U in n))return!1}else{var le=new En;if(x)var be=x(re,oe,U,n,l,le);if(!(be===e?Qc(oe,re,h|b,x,le):be))return!1}}return!0}function T2(n){if(!Vt(n)||rL(n))return!1;var l=gi(n)?y7:dA;return l.test(rl(n))}function EM(n){return qt(n)&&to(n)==Ka}function wM(n){return qt(n)&&Br(n)==Er}function CM(n){return qt(n)&&Ru(n.length)&&!!Rt[to(n)]}function I2(n){return typeof n=="function"?n:n==null?go:typeof n=="object"?We(n)?A2(n[0],n[1]):_2(n):ZE(n)}function x1(n){if(!rd(n))return I7(n);var l=[];for(var u in Tt(n))Et.call(n,u)&&u!="constructor"&&l.push(u);return l}function SM(n){if(!Vt(n))return aL(n);var l=rd(n),u=[];for(var x in n)x=="constructor"&&(l||!Et.call(n,x))||u.push(x);return u}function v1(n,l){return n<l}function k2(n,l){var u=-1,x=fo(n)?j(n.length):[];return na(n,function(T,L,O){x[++u]=l(T,L,O)}),x}function _2(n){var l=D1(n);return l.length==1&&l[0][2]?sE(l[0][0],l[0][1]):function(u){return u===n||b1(u,n,l)}}function A2(n,l){return O1(n)&&lE(l)?sE(Zn(n),l):function(u){var x=K1(u,n);return x===e&&x===l?Y1(u,n):Qc(l,x,h|b)}}function bu(n,l,u,x,T){n!==l&&p1(l,function(L,O){if(T||(T=new En),Vt(L))TM(n,l,O,u,bu,x,T);else{var F=x?x(z1(n,O),L,O+"",n,l,T):e;F===e&&(F=L),m1(n,O,F)}},ho)}function TM(n,l,u,x,T,L,O){var F=z1(n,u),U=z1(l,u),re=O.get(U);if(re){m1(n,u,re);return}var oe=L?L(F,U,u+"",n,l,O):e,le=oe===e;if(le){var be=We(U),Te=!be&&sa(U),Pe=!be&&!Te&&ms(U);oe=U,be||Te||Pe?We(F)?oe=F:rr(F)?oe=po(F):Te?(le=!1,oe=H2(U,!0)):Pe?(le=!1,oe=U2(U,!0)):oe=[]:nd(U)||ol(U)?(oe=F,ol(F)?oe=zE(F):(!Vt(F)||gi(F))&&(oe=aE(U))):le=!1}le&&(O.set(U,oe),T(oe,U,x,L,O),O.delete(U)),m1(n,u,oe)}function M2(n,l){var u=n.length;if(u)return l+=l<0?u:0,hi(l,u)?n[l]:e}function L2(n,l,u){l.length?l=Ht(l,function(L){return We(L)?function(O){return el(O,L.length===1?L[0]:L)}:L}):l=[go];var x=-1;l=Ht(l,To(Le()));var T=k2(n,function(L,O,F){var U=Ht(l,function(re){return re(L)});return{criteria:U,index:++x,value:L}});return JA(T,function(L,O){return zM(L,O,u)})}function IM(n,l){return P2(n,l,function(u,x){return Y1(n,x)})}function P2(n,l,u){for(var x=-1,T=l.length,L={};++x<T;){var O=l[x],F=el(n,O);u(F,O)&&ed(L,aa(O,n),F)}return L}function kM(n){return function(l){return el(l,n)}}function y1(n,l,u,x){var T=x?qA:ts,L=-1,O=l.length,F=n;for(n===l&&(l=po(l)),u&&(F=Ht(n,To(u)));++L<O;)for(var U=0,re=l[L],oe=u?u(re):re;(U=T(F,oe,U,x))>-1;)F!==n&&lu.call(F,U,1),lu.call(n,U,1);return n}function R2(n,l){for(var u=n?l.length:0,x=u-1;u--;){var T=l[u];if(u==x||T!==L){var L=T;hi(T)?lu.call(n,T,1):S1(n,T)}}return n}function E1(n,l){return n+du(p2()*(l-n+1))}function _M(n,l,u,x){for(var T=-1,L=br(cu((l-n)/(u||1)),0),O=j(L);L--;)O[x?L:++T]=n,n+=u;return O}function w1(n,l){var u="";if(!n||l<1||l>Ie)return u;do l%2&&(u+=n),l=du(l/2),l&&(n+=n);while(l);return u}function Xe(n,l){return B1(cE(n,l,go),n+"")}function AM(n){return g2(us(n))}function MM(n,l){var u=us(n);return ku(u,Qa(l,0,u.length))}function ed(n,l,u,x){if(!Vt(n))return n;l=aa(l,n);for(var T=-1,L=l.length,O=L-1,F=n;F!=null&&++T<L;){var U=Zn(l[T]),re=u;if(U==="__proto__"||U==="constructor"||U==="prototype")return n;if(T!=O){var oe=F[U];re=x?x(oe,U,F):e,re===e&&(re=Vt(oe)?oe:hi(l[T+1])?[]:{})}jc(F,U,re),F=F[U]}return n}var D2=mu?function(n,l){return mu.set(n,l),n}:go,LM=su?function(n,l){return su(n,"toString",{configurable:!0,enumerable:!1,value:X1(l),writable:!0})}:go;function PM(n){return ku(us(n))}function Uo(n,l,u){var x=-1,T=n.length;l<0&&(l=-l>T?0:T+l),u=u>T?T:u,u<0&&(u+=T),T=l>u?0:u-l>>>0,l>>>=0;for(var L=j(T);++x<T;)L[x]=n[x+l];return L}function RM(n,l){var u;return na(n,function(x,T,L){return u=l(x,T,L),!u}),!!u}function xu(n,l,u){var x=0,T=n==null?x:n.length;if(typeof l=="number"&&l===l&&T<=Z){for(;x<T;){var L=x+T>>>1,O=n[L];O!==null&&!ko(O)&&(u?O<=l:O<l)?x=L+1:T=L}return T}return C1(n,l,go,u)}function C1(n,l,u,x){var T=0,L=n==null?0:n.length;if(L===0)return 0;l=u(l);for(var O=l!==l,F=l===null,U=ko(l),re=l===e;T<L;){var oe=du((T+L)/2),le=u(n[oe]),be=le!==e,Te=le===null,Pe=le===le,Ye=ko(le);if(O)var Re=x||Pe;else re?Re=Pe&&(x||be):F?Re=Pe&&be&&(x||!Te):U?Re=Pe&&be&&!Te&&(x||!Ye):Te||Ye?Re=!1:Re=x?le<=l:le<l;Re?T=oe+1:L=oe}return zr(L,W)}function N2(n,l){for(var u=-1,x=n.length,T=0,L=[];++u<x;){var O=n[u],F=l?l(O):O;if(!u||!wn(F,U)){var U=F;L[T++]=O===0?0:O}}return L}function O2(n){return typeof n=="number"?n:ko(n)?Se:+n}function Io(n){if(typeof n=="string")return n;if(We(n))return Ht(n,Io)+"";if(ko(n))return f2?f2.call(n):"";var l=n+"";return l=="0"&&1/n==-Ee?"-0":l}function ia(n,l,u){var x=-1,T=qm,L=n.length,O=!0,F=[],U=F;if(u)O=!1,T=Jg;else if(L>=r){var re=l?null:GM(n);if(re)return Qm(re);O=!1,T=Gc,U=new Ja}else U=l?[]:F;e:for(;++x<L;){var oe=n[x],le=l?l(oe):oe;if(oe=u||oe!==0?oe:0,O&&le===le){for(var be=U.length;be--;)if(U[be]===le)continue e;l&&U.push(le),F.push(oe)}else T(U,le,u)||(U!==F&&U.push(le),F.push(oe))}return F}function S1(n,l){return l=aa(l,n),n=dE(n,l),n==null||delete n[Zn(Wo(l))]}function F2(n,l,u,x){return ed(n,l,u(el(n,l)),x)}function vu(n,l,u,x){for(var T=n.length,L=x?T:-1;(x?L--:++L<T)&&l(n[L],L,n););return u?Uo(n,x?0:L,x?L+1:T):Uo(n,x?L+1:0,x?T:L)}function z2(n,l){var u=n;return u instanceof rt&&(u=u.value()),Qg(l,function(x,T){return T.func.apply(T.thisArg,ea([x],T.args))},u)}function T1(n,l,u){var x=n.length;if(x<2)return x?ia(n[0]):[];for(var T=-1,L=j(x);++T<x;)for(var O=n[T],F=-1;++F<x;)F!=T&&(L[T]=qc(L[T]||O,n[F],l,u));return ia(Ar(L,1),l,u)}function B2(n,l,u){for(var x=-1,T=n.length,L=l.length,O={};++x<T;){var F=x<L?l[x]:e;u(O,n[x],F)}return O}function I1(n){return rr(n)?n:[]}function k1(n){return typeof n=="function"?n:go}function aa(n,l){return We(n)?n:O1(n,l)?[n]:fE(ht(n))}var DM=Xe;function la(n,l,u){var x=n.length;return u=u===e?x:u,!l&&u>=x?n:Uo(n,l,u)}var $2=E7||function(n){return wr.clearTimeout(n)};function H2(n,l){if(l)return n.slice();var u=n.length,x=s2?s2(u):new n.constructor(u);return n.copy(x),x}function _1(n){var l=new n.constructor(n.byteLength);return new iu(l).set(new iu(n)),l}function NM(n,l){var u=l?_1(n.buffer):n.buffer;return new n.constructor(u,n.byteOffset,n.byteLength)}function OM(n){var l=new n.constructor(n.source,Sy.exec(n));return l.lastIndex=n.lastIndex,l}function FM(n){return Xc?Tt(Xc.call(n)):{}}function U2(n,l){var u=l?_1(n.buffer):n.buffer;return new n.constructor(u,n.byteOffset,n.length)}function W2(n,l){if(n!==l){var u=n!==e,x=n===null,T=n===n,L=ko(n),O=l!==e,F=l===null,U=l===l,re=ko(l);if(!F&&!re&&!L&&n>l||L&&O&&U&&!F&&!re||x&&O&&U||!u&&U||!T)return 1;if(!x&&!L&&!re&&n<l||re&&u&&T&&!x&&!L||F&&u&&T||!O&&T||!U)return-1}return 0}function zM(n,l,u){for(var x=-1,T=n.criteria,L=l.criteria,O=T.length,F=u.length;++x<O;){var U=W2(T[x],L[x]);if(U){if(x>=F)return U;var re=u[x];return U*(re=="desc"?-1:1)}}return n.index-l.index}function G2(n,l,u,x){for(var T=-1,L=n.length,O=u.length,F=-1,U=l.length,re=br(L-O,0),oe=j(U+re),le=!x;++F<U;)oe[F]=l[F];for(;++T<O;)(le||T<L)&&(oe[u[T]]=n[T]);for(;re--;)oe[F++]=n[T++];return oe}function V2(n,l,u,x){for(var T=-1,L=n.length,O=-1,F=u.length,U=-1,re=l.length,oe=br(L-F,0),le=j(oe+re),be=!x;++T<oe;)le[T]=n[T];for(var Te=T;++U<re;)le[Te+U]=l[U];for(;++O<F;)(be||T<L)&&(le[Te+u[O]]=n[T++]);return le}function po(n,l){var u=-1,x=n.length;for(l||(l=j(x));++u<x;)l[u]=n[u];return l}function Yn(n,l,u,x){var T=!u;u||(u={});for(var L=-1,O=l.length;++L<O;){var F=l[L],U=x?x(u[F],n[F],F,u,n):e;U===e&&(U=n[F]),T?ui(u,F,U):jc(u,F,U)}return u}function BM(n,l){return Yn(n,N1(n),l)}function $M(n,l){return Yn(n,nE(n),l)}function yu(n,l){return function(u,x){var T=We(u)?VA:sM,L=l?l():{};return T(u,n,Le(x,2),L)}}function ss(n){return Xe(function(l,u){var x=-1,T=u.length,L=T>1?u[T-1]:e,O=T>2?u[2]:e;for(L=n.length>3&&typeof L=="function"?(T--,L):e,O&&ro(u[0],u[1],O)&&(L=T<3?e:L,T=1),l=Tt(l);++x<T;){var F=u[x];F&&n(l,F,x,L)}return l})}function K2(n,l){return function(u,x){if(u==null)return u;if(!fo(u))return n(u,x);for(var T=u.length,L=l?T:-1,O=Tt(u);(l?L--:++L<T)&&x(O[L],L,O)!==!1;);return u}}function Y2(n){return function(l,u,x){for(var T=-1,L=Tt(l),O=x(l),F=O.length;F--;){var U=O[n?F:++T];if(u(L[U],U,L)===!1)break}return l}}function HM(n,l,u){var x=l&y,T=td(n);function L(){var O=this&&this!==wr&&this instanceof L?T:n;return O.apply(x?u:this,arguments)}return L}function Z2(n){return function(l){l=ht(l);var u=rs(l)?yn(l):e,x=u?u[0]:l.charAt(0),T=u?la(u,1).join(""):l.slice(1);return x[n]()+T}}function cs(n){return function(l){return Qg(KE(VE(l).replace(LA,"")),n,"")}}function td(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 u=ls(n.prototype),x=n.apply(u,l);return Vt(x)?x:u}}function UM(n,l,u){var x=td(n);function T(){for(var L=arguments.length,O=j(L),F=L,U=ds(T);F--;)O[F]=arguments[F];var re=L<3&&O[0]!==U&&O[L-1]!==U?[]:ta(O,U);if(L-=re.length,L<u)return Q2(n,l,Eu,T.placeholder,e,O,re,e,e,u-L);var oe=this&&this!==wr&&this instanceof T?x:n;return So(oe,this,O)}return T}function X2(n){return function(l,u,x){var T=Tt(l);if(!fo(l)){var L=Le(u,3);l=Cr(l),u=function(F){return L(T[F],F,T)}}var O=n(l,u,x);return O>-1?T[L?l[O]:O]:e}}function j2(n){return fi(function(l){var u=l.length,x=u,T=$o.prototype.thru;for(n&&l.reverse();x--;){var L=l[x];if(typeof L!="function")throw new Bo(i);if(T&&!O&&Tu(L)=="wrapper")var O=new $o([],!0)}for(x=O?x:u;++x<u;){L=l[x];var F=Tu(L),U=F=="wrapper"?R1(L):e;U&&F1(U[0])&&U[1]==($|M|I|D)&&!U[4].length&&U[9]==1?O=O[Tu(U[0])].apply(O,U[3]):O=L.length==1&&F1(L)?O[F]():O.thru(L)}return function(){var re=arguments,oe=re[0];if(O&&re.length==1&&We(oe))return O.plant(oe).value();for(var le=0,be=u?l[le].apply(this,re):oe;++le<u;)be=l[le].call(this,be);return be}})}function Eu(n,l,u,x,T,L,O,F,U,re){var oe=l&$,le=l&y,be=l&w,Te=l&(M|_),Pe=l&z,Ye=be?e:td(n);function Re(){for(var et=arguments.length,nt=j(et),_o=et;_o--;)nt[_o]=arguments[_o];if(Te)var oo=ds(Re),Ao=e7(nt,oo);if(x&&(nt=G2(nt,x,T,Te)),L&&(nt=V2(nt,L,O,Te)),et-=Ao,Te&&et<re){var or=ta(nt,oo);return Q2(n,l,Eu,Re.placeholder,u,nt,or,F,U,re-et)}var Cn=le?u:this,xi=be?Cn[n]:n;return et=nt.length,F?nt=sL(nt,F):Pe&&et>1&&nt.reverse(),oe&&U<et&&(nt.length=U),this&&this!==wr&&this instanceof Re&&(xi=Ye||td(xi)),xi.apply(Cn,nt)}return Re}function q2(n,l){return function(u,x){return gM(u,n,l(x),{})}}function wu(n,l){return function(u,x){var T;if(u===e&&x===e)return l;if(u!==e&&(T=u),x!==e){if(T===e)return x;typeof u=="string"||typeof x=="string"?(u=Io(u),x=Io(x)):(u=O2(u),x=O2(x)),T=n(u,x)}return T}}function A1(n){return fi(function(l){return l=Ht(l,To(Le())),Xe(function(u){var x=this;return n(l,function(T){return So(T,x,u)})})})}function Cu(n,l){l=l===e?" ":Io(l);var u=l.length;if(u<2)return u?w1(l,n):l;var x=w1(l,cu(n/os(l)));return rs(l)?la(yn(x),0,n).join(""):x.slice(0,n)}function WM(n,l,u,x){var T=l&y,L=td(n);function O(){for(var F=-1,U=arguments.length,re=-1,oe=x.length,le=j(oe+U),be=this&&this!==wr&&this instanceof O?L:n;++re<oe;)le[re]=x[re];for(;U--;)le[re++]=arguments[++F];return So(be,T?u:this,le)}return O}function J2(n){return function(l,u,x){return x&&typeof x!="number"&&ro(l,u,x)&&(u=x=e),l=bi(l),u===e?(u=l,l=0):u=bi(u),x=x===e?l<u?1:-1:bi(x),_M(l,u,x,n)}}function Su(n){return function(l,u){return typeof l=="string"&&typeof u=="string"||(l=Go(l),u=Go(u)),n(l,u)}}function Q2(n,l,u,x,T,L,O,F,U,re){var oe=l&M,le=oe?O:e,be=oe?e:O,Te=oe?L:e,Pe=oe?e:L;l|=oe?I:N,l&=~(oe?N:I),l&C||(l&=~(y|w));var Ye=[n,l,T,Te,le,Pe,be,F,U,re],Re=u.apply(e,Ye);return F1(n)&&mE(Re,Ye),Re.placeholder=x,uE(Re,n,l)}function M1(n){var l=gr[n];return function(u,x){if(u=Go(u),x=x==null?0:zr(Ke(x),292),x&&u2(u)){var T=(ht(u)+"e").split("e"),L=l(T[0]+"e"+(+T[1]+x));return T=(ht(L)+"e").split("e"),+(T[0]+"e"+(+T[1]-x))}return l(u)}}var GM=is&&1/Qm(new is([,-0]))[1]==Ee?function(n){return new is(n)}:J1;function eE(n){return function(l){var u=Br(l);return u==$t?a1(l):u==Er?l7(l):QA(l,n(l))}}function pi(n,l,u,x,T,L,O,F){var U=l&w;if(!U&&typeof n!="function")throw new Bo(i);var re=x?x.length:0;if(re||(l&=~(I|N),x=T=e),O=O===e?O:br(Ke(O),0),F=F===e?F:Ke(F),re-=T?T.length:0,l&N){var oe=x,le=T;x=T=e}var be=U?e:R1(n),Te=[n,l,u,x,T,oe,le,L,O,F];if(be&&iL(Te,be),n=Te[0],l=Te[1],u=Te[2],x=Te[3],T=Te[4],F=Te[9]=Te[9]===e?U?0:n.length:br(Te[9]-re,0),!F&&l&(M|_)&&(l&=~(M|_)),!l||l==y)var Pe=HM(n,l,u);else l==M||l==_?Pe=UM(n,l,F):(l==I||l==(y|I))&&!T.length?Pe=WM(n,l,u,x):Pe=Eu.apply(e,Te);var Ye=be?D2:mE;return uE(Ye(Pe,Te),n,l)}function tE(n,l,u,x){return n===e||wn(n,ns[u])&&!Et.call(x,u)?l:n}function rE(n,l,u,x,T,L){return Vt(n)&&Vt(l)&&(L.set(l,n),bu(n,l,e,rE,L),L.delete(l)),n}function VM(n){return nd(n)?e:n}function oE(n,l,u,x,T,L){var O=u&h,F=n.length,U=l.length;if(F!=U&&!(O&&U>F))return!1;var re=L.get(n),oe=L.get(l);if(re&&oe)return re==l&&oe==n;var le=-1,be=!0,Te=u&b?new Ja:e;for(L.set(n,l),L.set(l,n);++le<F;){var Pe=n[le],Ye=l[le];if(x)var Re=O?x(Ye,Pe,le,l,n,L):x(Pe,Ye,le,n,l,L);if(Re!==e){if(Re)continue;be=!1;break}if(Te){if(!e1(l,function(et,nt){if(!Gc(Te,nt)&&(Pe===et||T(Pe,et,u,x,L)))return Te.push(nt)})){be=!1;break}}else if(!(Pe===Ye||T(Pe,Ye,u,x,L))){be=!1;break}}return L.delete(n),L.delete(l),be}function KM(n,l,u,x,T,L,O){switch(u){case Ql:if(n.byteLength!=l.byteLength||n.byteOffset!=l.byteOffset)return!1;n=n.buffer,l=l.buffer;case Wc:return!(n.byteLength!=l.byteLength||!L(new iu(n),new iu(l)));case ge:case Ce:case hr:return wn(+n,+l);case Ct:return n.name==l.name&&n.message==l.message;case Ka:case vn:return n==l+"";case $t:var F=a1;case Er:var U=x&h;if(F||(F=Qm),n.size!=l.size&&!U)return!1;var re=O.get(n);if(re)return re==l;x|=b,O.set(n,l);var oe=oE(F(n),F(l),x,T,L,O);return O.delete(n),oe;case Ya:if(Xc)return Xc.call(n)==Xc.call(l)}return!1}function YM(n,l,u,x,T,L){var O=u&h,F=L1(n),U=F.length,re=L1(l),oe=re.length;if(U!=oe&&!O)return!1;for(var le=U;le--;){var be=F[le];if(!(O?be in l:Et.call(l,be)))return!1}var Te=L.get(n),Pe=L.get(l);if(Te&&Pe)return Te==l&&Pe==n;var Ye=!0;L.set(n,l),L.set(l,n);for(var Re=O;++le<U;){be=F[le];var et=n[be],nt=l[be];if(x)var _o=O?x(nt,et,be,l,n,L):x(et,nt,be,n,l,L);if(!(_o===e?et===nt||T(et,nt,u,x,L):_o)){Ye=!1;break}Re||(Re=be=="constructor")}if(Ye&&!Re){var oo=n.constructor,Ao=l.constructor;oo!=Ao&&"constructor"in n&&"constructor"in l&&!(typeof oo=="function"&&oo instanceof oo&&typeof Ao=="function"&&Ao instanceof Ao)&&(Ye=!1)}return L.delete(n),L.delete(l),Ye}function fi(n){return B1(cE(n,e,xE),n+"")}function L1(n){return C2(n,Cr,N1)}function P1(n){return C2(n,ho,nE)}var R1=mu?function(n){return mu.get(n)}:J1;function Tu(n){for(var l=n.name+"",u=as[l],x=Et.call(as,l)?u.length:0;x--;){var T=u[x],L=T.func;if(L==null||L==n)return T.name}return l}function ds(n){var l=Et.call(k,"placeholder")?k:n;return l.placeholder}function Le(){var n=k.iteratee||j1;return n=n===j1?I2:n,arguments.length?n(arguments[0],arguments[1]):n}function Iu(n,l){var u=n.__data__;return tL(l)?u[typeof l=="string"?"string":"hash"]:u.map}function D1(n){for(var l=Cr(n),u=l.length;u--;){var x=l[u],T=n[x];l[u]=[x,T,lE(T)]}return l}function tl(n,l){var u=n7(n,l);return T2(u)?u:e}function ZM(n){var l=Et.call(n,ja),u=n[ja];try{n[ja]=e;var x=!0}catch{}var T=ou.call(n);return x&&(l?n[ja]=u:delete n[ja]),T}var N1=s1?function(n){return n==null?[]:(n=Tt(n),Qi(s1(n),function(l){return d2.call(n,l)}))}:Q1,nE=s1?function(n){for(var l=[];n;)ea(l,N1(n)),n=au(n);return l}:Q1,Br=to;(c1&&Br(new c1(new ArrayBuffer(1)))!=Ql||Kc&&Br(new Kc)!=$t||d1&&Br(d1.resolve())!=Ym||is&&Br(new is)!=Er||Yc&&Br(new Yc)!=Za)&&(Br=function(n){var l=to(n),u=l==xn?n.constructor:e,x=u?rl(u):"";if(x)switch(x){case M7:return Ql;case L7:return $t;case P7:return Ym;case R7:return Er;case D7:return Za}return l});function XM(n,l,u){for(var x=-1,T=u.length;++x<T;){var L=u[x],O=L.size;switch(L.type){case"drop":n+=O;break;case"dropRight":l-=O;break;case"take":l=zr(l,n+O);break;case"takeRight":n=br(n,l-O);break}}return{start:n,end:l}}function jM(n){var l=n.match(rA);return l?l[1].split(oA):[]}function iE(n,l,u){l=aa(l,n);for(var x=-1,T=l.length,L=!1;++x<T;){var O=Zn(l[x]);if(!(L=n!=null&&u(n,O)))break;n=n[O]}return L||++x!=T?L:(T=n==null?0:n.length,!!T&&Ru(T)&&hi(O,T)&&(We(n)||ol(n)))}function qM(n){var l=n.length,u=new n.constructor(l);return l&&typeof n[0]=="string"&&Et.call(n,"index")&&(u.index=n.index,u.input=n.input),u}function aE(n){return typeof n.constructor=="function"&&!rd(n)?ls(au(n)):{}}function JM(n,l,u){var x=n.constructor;switch(l){case Wc:return _1(n);case ge:case Ce:return new x(+n);case Ql:return NM(n,u);case Dg:case Ng:case Og:case Fg:case zg:case Bg:case $g:case Hg:case Ug:return U2(n,u);case $t:return new x;case hr:case vn:return new x(n);case Ka:return OM(n);case Er:return new x;case Ya:return FM(n)}}function QM(n,l){var u=l.length;if(!u)return n;var x=u-1;return l[x]=(u>1?"& ":"")+l[x],l=l.join(u>2?", ":" "),n.replace(tA,`{
1
+ import{$ as OS,$a as X,$b as Is,$c as Nd,$d as fT,$e as jT,$f as xa,$g as Ud,$h as mf,$i as EI,A as Ju,Aa as sp,Ab as Dx,Ac as A2,Ad as Kx,Ae as NT,Ag as jp,Ah as JC,Ai as dI,Aj as LI,B as kS,Ba as cp,Bb as vo,Bc as k2,Bd as Yx,Be as OT,Bg as wl,Bh as Ea,Bi as bf,Bj as Oe,C as Cx,Ca as In,Cb as Nx,Cc as re,Cd as Vx,Ce as FT,Cg as Jp,Ch as QC,Ci as xf,Cj as Sf,D as pt,Da as dp,Db as hp,Dc as Jo,Dd as Xx,De as BT,Df as mC,Dg as Hd,Dh as Ks,Di as mI,Dj as ht,E as sa,Ea as Zt,Eb as Wt,Ec as ft,Ed as J2,Ee as Pp,Ef as uC,Eg as Hs,Eh as eI,Ei as je,Ej as RI,F as al,Fa as qo,Fb as m2,Fc as P2,Fd as Q2,Fe as Mp,Ff as Bp,Fg as PC,Fh as af,Fi as Il,Fj as Al,G as Sd,Ga as ZS,Gb as u2,Gc as An,Gd as Zx,Ge as Rs,Gf as zp,Gg as va,Gh as tI,Gi as vf,Gj as Pi,H as ys,Ha as Id,Hb as bp,Hc as ha,Hd as qx,He as Lp,Hf as cv,Hg as ya,Hh as lf,Hi as uI,Hj as Mi,I as Qu,Ia as xo,Ib as Pd,Ic as yp,Id as Ip,Ie as Ds,If as $p,Ig as pv,Ih as sf,Ii as pI,J as ll,Ja as Cr,Jb as Md,Jc as M2,Jd as Qo,Je as Fd,Jf as pC,Jg as fv,Jh as rI,Ji as fI,K as Be,Ka as qS,Kb as pa,Kc as L2,Kd as jx,Ke as zT,Kf as dv,Kg as Qp,Kh as cf,Ki as gI,L as Cn,La as jS,Lb as $r,Lc as R2,Ld as Jx,Le as Ns,Lf as Ci,Lg as ef,Lh as Vn,Li as Zs,M as Es,Ma as Mx,Mb as fl,Mc as hl,Md as eT,Me as $T,Mf as fC,Mg as MC,Mh as vv,Mi as qd,N as ws,Na as da,Nb as Cs,Nc as Ps,Nd as tT,Ne as HT,Nf as Hp,Ng as en,Nh as oI,Ni as hI,O as ep,Oa as JS,Ob as he,Oc as D2,Od as rT,Oe as UT,Of as gC,Og as W,Oh as df,Oi as bI,P as Ix,Pa as QS,Pb as Ld,Pc as N2,Pd as oT,Pe as Rp,Pf as zd,Pg as LC,Ph as nI,Pi as xI,Q as tp,Qa as e2,Qb as He,Qc as O2,Qd as Qx,Qe as GT,Qf as mv,Qg as gv,Qh as iI,Qi as vI,R as PS,Ra as Yn,Rb as Qe,Rc as F2,Rd as nT,Re as WT,Rf as hC,Rg as Sl,Rh as G7,Ri as yI,S as Td,Sa as cl,Sb as _t,Sc as Ep,Sd as iT,Se as KT,Sf as bC,Sg as RC,Sh as wa,Si as Do,T as MS,Ta as ro,Tb as dt,Tc as B2,Td as aT,Te as Dp,Tf as xC,Tg as Us,Th as Wd,Ti as ki,U as LS,Ua as dl,Ub as p2,Uc as Ox,Ud as lT,Ue as YT,Uf as vl,Ug as DC,Uh as yv,Ui as rn,V as yi,Va as mp,Vb as Ei,Vc as Fx,Vd as sT,Ve as VT,Vf as Ii,Vg as NC,Vh as Ev,Vi as ce,W as RS,Wa as ml,Wb as f2,Wc as z2,Wd as cT,We as XT,Wf as ba,Wg as OC,Wh as wv,Wi as ke,X as Lr,Xa as t2,Xb as wi,Xc as kn,Xd as dT,Xe as ZT,Xf as uv,Xg as FC,Xh as Sv,Xi as Cv,Y as rp,Ya as r2,Yb as g2,Yc as $2,Yd as mT,Ye as rv,Yf as vC,Yg as BC,Yh as Ys,Yi as _l,Z as DS,Za as ul,Zb as yo,Zc as Rd,Zd as uT,Ze as Np,Zf as Up,Zg as zC,Zh as Eo,Zi as jd,_ as NS,_a as Gt,_b as Ir,_c as Dd,_d as pT,_e as qT,_f as $d,_g as tf,_h as lt,_i as Iv,a as j,aa as FS,ab as Mt,ac as h2,ad as wp,ae as ev,af as JT,ag as yC,ah as $C,ai as tn,aj as yf,b as M,ba as BS,bb as oo,bc as b2,bd as bl,be as gT,bf as QT,bg as EC,bh as HC,bi as Tv,bj as wI,c as q,ca as zS,cb as _d,cc as x2,cd as Ms,ce as hT,cf as eC,cg as Gp,ch as UC,ci as Pn,cj as SI,d as zr,da as sl,db as ma,dc as fa,dd as H2,de as bT,df as tC,dg as Wp,dh as GC,di as _i,dj as Ef,e as vS,ea as op,eb as up,ec as _s,ed as Bx,ee as xT,ef as rC,eg as Kp,eh as WC,ei as Sa,ej as _v,f as nl,fa as _x,fb as Lx,fc as v2,fd as Sp,fe as vT,ff as oC,fg as Fs,fh as rf,fi as Kd,fj as Av,g as yS,ga as $S,gb as Rx,gc as As,gd as U2,ge as yT,gf as nC,gg as Yp,gh as KC,gi as no,gj as kv,h as ES,ha as HS,hb as pl,hc as jo,hd as G2,he as ET,hf as iC,hg as Vp,hh as YC,hi as uf,hj as TI,i as xi,ia as np,ib as pp,ic as Si,id as W2,ie as wT,if as aC,ig as wC,ih as hv,ii as Vs,ij as wf,j as Vu,ja as ip,jb as o2,jc as y2,jd as Od,je as ST,jf as lC,jg as Ne,jh as Gs,ji as Xs,jj as CI,k as Xu,ka as Ax,kb as n2,kc as Rr,kd as K2,ke as TT,kf as sC,kg as R,kh as VC,ki as Yd,kj as II,l as Zu,la as US,lb as i2,lc as xp,ld as Y2,le as xl,lf as Os,lg as Bs,lh as XC,li as Vd,lj as _I,m as wS,ma as GS,mb as Re,mc as E2,md as Ls,me as CT,mf as Op,mg as Xp,mh as ZC,mi as Cl,mj as AI,n as SS,na as WS,nb as a2,nc as _n,nd as V2,ne as IT,nf as ov,ng as zs,nh as of,ni as Le,nj as kI,o as TS,oa as KS,ob as l2,oc as w2,od as Tp,oe as _T,of as nv,og as Zp,oh as qC,oi as aI,oj as PI,p as Tn,pa as YS,pb as Ad,pc as S2,pd as Cp,pe as AT,pf as Fp,pg as SC,ph as Ws,pi as Xd,pj as Pv,q as qu,qa as ap,qb as s2,qc as ks,qd as X2,qe as kT,qf as iv,qg as $s,qh as Tl,qi as lI,qj as qs,r as vi,ra as ca,rb as fp,rc as Kt,rd as Z2,re as PT,rf as av,rg as TC,rh as bv,ri as sI,rj as W7,s as CS,sa as VS,sb as Ss,sc as T2,sd as zx,se as MT,sf as cC,sg as CC,sh as Gd,si as Zd,sj as Mv,t as IS,ta as kx,tb as c2,tc as C2,td as $x,te as LT,tf as dC,tg as IC,th as z7,ti as qt,tj as Lv,u as _S,ua as XS,ub as Ts,uc as I2,ud as q2,ue as _p,uf as lv,ug as qp,uh as $7,ui as pf,uj as We,v as Ed,va as lp,vb as kd,vc as gl,vd as j2,ve as RT,vf as B7,vg as _C,vh as H7,vi as ff,vj as Rv,w as wd,wa as Px,wb as br,wc as _2,wd as Hx,we as Ap,wf as sv,wg as yl,wh as U7,wi as gf,wj as js,x as il,xa as Zo,xb as ua,xc as ga,xd as Ux,xe as tv,xf as Bd,xg as AC,xh as nf,xi as Ai,xj as MI,y as ju,ya as Cd,yb as gp,yc as Ti,yd as Gx,ye as kp,yg as kC,yh as jC,yi as cI,yj as Dv,z as AS,za as bo,zb as d2,zc as vp,zd as Wx,ze as DT,zg as El,zh as xv,zi as hf,zj as gt}from"./excalidraw-assets/chunk-OYEADJSR.js";import{a as v,b as A}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{H as Tx}from"./excalidraw-assets/chunk-PDYFZJMS.js";import{aa as xS}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as hS,d as la,e as bS,f as w}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var Zn=la((iU,WI)=>{v();WI.exports=ReactDOM});var bE=la((ele,k5)=>{v();var A5="Expected a function",I5=NaN,qF="[object Symbol]",jF=/^\s+|\s+$/g,JF=/^[-+]0x[0-9a-f]+$/i,QF=/^0b[01]+$/i,eB=/^0o[0-7]+$/i,tB=parseInt,rB=typeof global=="object"&&global&&global.Object===Object&&global,oB=typeof self=="object"&&self&&self.Object===Object&&self,nB=rB||oB||Function("return this")(),iB=Object.prototype,aB=iB.toString,lB=Math.max,sB=Math.min,hE=function(){return nB.Date.now()};function cB(e,t,r){var o,i,a,s,c,d,u=0,f=!1,m=!1,g=!0;if(typeof e!="function")throw new TypeError(A5);t=_5(t)||0,Jg(r)&&(f=!!r.leading,m="maxWait"in r,a=m?lB(_5(r.maxWait)||0,t):a,g="trailing"in r?!!r.trailing:g);function h(L){var F=o,D=i;return o=i=void 0,u=L,s=e.apply(D,F),s}function b(L){return u=L,c=setTimeout(k,t),f?h(L):s}function y(L){var F=L-d,D=L-u,V=t-F;return m?sB(V,a-D):V}function T(L){var F=L-d,D=L-u;return d===void 0||F>=t||F<0||m&&D>=a}function k(){var L=hE();if(T(L))return I(L);c=setTimeout(k,y(L))}function I(L){return c=void 0,g&&o?h(L):(o=i=void 0,s)}function C(){c!==void 0&&clearTimeout(c),u=0,o=d=i=c=void 0}function O(){return c===void 0?s:I(hE())}function z(){var L=hE(),F=T(L);if(o=arguments,i=this,d=L,F){if(c===void 0)return b(d);if(m)return c=setTimeout(k,t),h(d)}return c===void 0&&(c=setTimeout(k,t)),s}return z.cancel=C,z.flush=O,z}function dB(e,t,r){var o=!0,i=!0;if(typeof e!="function")throw new TypeError(A5);return Jg(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),cB(e,t,{leading:o,maxWait:t,trailing:i})}function Jg(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function mB(e){return!!e&&typeof e=="object"}function uB(e){return typeof e=="symbol"||mB(e)&&aB.call(e)==qF}function _5(e){if(typeof e=="number")return e;if(uB(e))return I5;if(Jg(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Jg(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(jF,"");var r=QF.test(e);return r||eB.test(e)?tB(e.slice(2),r?2:8):JF.test(e)?I5:+e}k5.exports=dB});var B5=la((O5,F5)=>{v();(function(){var e=this,t={};typeof O5<"u"?F5.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,u=0,f=i.pre||"",m=i.post||"",g=i.caseSensitive&&o||o.toLowerCase(),h;r=i.caseSensitive&&r||r.toLowerCase();for(var b=0;b<c;b++)h=o[b],g[b]===r[a]?(h=f+h+m,a+=1,u+=1+u):u=0,d+=u,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 u=s;i.extract&&(u=i.extract(s));var f=t.match(r,u,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 G5=la(U5=>{"use strict";v();var $c=j();function AB(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var kB=typeof Object.is=="function"?Object.is:AB,PB=$c.useState,MB=$c.useEffect,LB=$c.useLayoutEffect,RB=$c.useDebugValue;function DB(e,t){var r=t(),o=PB({inst:{value:r,getSnapshot:t}}),i=o[0].inst,a=o[1];return LB(function(){i.value=r,i.getSnapshot=t,yE(i)&&a({inst:i})},[e,r,t]),MB(function(){return yE(i)&&a({inst:i}),e(function(){yE(i)&&a({inst:i})})},[e]),RB(r),r}function yE(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!kB(e,r)}catch{return!0}}function NB(e,t){return t()}var OB=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?NB:DB;U5.useSyncExternalStore=$c.useSyncExternalStore!==void 0?$c.useSyncExternalStore:OB});var K5=la((Ose,W5)=>{"use strict";v();W5.exports=G5()});var V5=la(Y5=>{"use strict";v();var th=j(),FB=K5();function BB(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var zB=typeof Object.is=="function"?Object.is:BB,$B=FB.useSyncExternalStore,HB=th.useRef,UB=th.useEffect,GB=th.useMemo,WB=th.useDebugValue;Y5.useSyncExternalStoreWithSelector=function(e,t,r,o,i){var a=HB(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=GB(function(){function d(h){if(!u){if(u=!0,f=h,h=o(h),i!==void 0&&s.hasValue){var b=s.value;if(i(b,h))return m=b}return m=h}if(b=m,zB(f,h))return b;var y=o(h);return i!==void 0&&i(b,y)?b:(f=h,m=y)}var u=!1,f,m,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=$B(e,a[0],a[1]);return UB(function(){s.hasValue=!0,s.value=c},[c]),WB(c),c}});var Z5=la(($se,X5)=>{"use strict";v();X5.exports=V5()});var RP=la((Xc,Gm)=>{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__",u=1,f=2,m=4,g=1,h=2,b=1,y=2,T=4,k=8,I=16,C=32,O=64,z=128,L=256,F=512,D=30,V="...",U=800,Q=16,me=1,K=2,se=3,be=1/0,_e=9007199254740991,nt=17976931348623157e292,Ee=NaN,ue=4294967295,G=ue-1,Y=ue>>>1,oe=[["ary",z],["bind",b],["bindKey",y],["curry",k],["curryRight",I],["flip",F],["partial",C],["partialRight",O],["rearg",L]],ie="[object Arguments]",le="[object Array]",de="[object AsyncFunction]",pe="[object Boolean]",ye="[object Date]",Ct="[object DOMException]",vt="[object Error]",Ft="[object Function]",Et="[object GeneratorFunction]",er="[object Map]",Jr="[object Number]",si="[object Null]",ar="[object Object]",nu="[object Promise]",tb="[object Proxy]",Ya="[object RegExp]",wr="[object Set]",vn="[object String]",Va="[object Symbol]",qi="[object Undefined]",Xa="[object WeakMap]",rb="[object WeakSet]",id="[object ArrayBuffer]",as="[object DataView]",ob="[object Float32Array]",nb="[object Float64Array]",ib="[object Int8Array]",ab="[object Int16Array]",lb="[object Int32Array]",sb="[object Uint8Array]",cb="[object Uint8ClampedArray]",db="[object Uint16Array]",mb="[object Uint32Array]",iL=/\b__p \+= '';/g,aL=/\b(__p \+=) '' \+/g,lL=/(__e\(.*?\)|\b__t\)) \+\n'';/g,H0=/&(?:amp|lt|gt|quot|#39);/g,U0=/[&<>"']/g,sL=RegExp(H0.source),cL=RegExp(U0.source),dL=/<%-([\s\S]+?)%>/g,mL=/<%([\s\S]+?)%>/g,G0=/<%=([\s\S]+?)%>/g,uL=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pL=/^\w*$/,fL=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ub=/[\\^$.*+?()[\]{}|]/g,gL=RegExp(ub.source),pb=/^\s+/,hL=/\s/,bL=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,xL=/\{\n\/\* \[wrapped with (.+)\] \*/,vL=/,? & /,yL=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,EL=/[()=,{}\[\]\/\s]/,wL=/\\(\\)?/g,SL=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,W0=/\w*$/,TL=/^[-+]0x[0-9a-f]+$/i,CL=/^0b[01]+$/i,IL=/^\[object .+?Constructor\]$/,_L=/^0o[0-7]+$/i,AL=/^(?:0|[1-9]\d*)$/,kL=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,iu=/($^)/,PL=/['\n\r\u2028\u2029\\]/g,au="\\ud800-\\udfff",ML="\\u0300-\\u036f",LL="\\ufe20-\\ufe2f",RL="\\u20d0-\\u20ff",K0=ML+LL+RL,Y0="\\u2700-\\u27bf",V0="a-z\\xdf-\\xf6\\xf8-\\xff",DL="\\xac\\xb1\\xd7\\xf7",NL="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",OL="\\u2000-\\u206f",FL=" \\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",X0="A-Z\\xc0-\\xd6\\xd8-\\xde",Z0="\\ufe0e\\ufe0f",q0=DL+NL+OL+FL,fb="['\u2019]",BL="["+au+"]",j0="["+q0+"]",lu="["+K0+"]",J0="\\d+",zL="["+Y0+"]",Q0="["+V0+"]",ew="[^"+au+q0+J0+Y0+V0+X0+"]",gb="\\ud83c[\\udffb-\\udfff]",$L="(?:"+lu+"|"+gb+")",tw="[^"+au+"]",hb="(?:\\ud83c[\\udde6-\\uddff]){2}",bb="[\\ud800-\\udbff][\\udc00-\\udfff]",ls="["+X0+"]",rw="\\u200d",ow="(?:"+Q0+"|"+ew+")",HL="(?:"+ls+"|"+ew+")",nw="(?:"+fb+"(?:d|ll|m|re|s|t|ve))?",iw="(?:"+fb+"(?:D|LL|M|RE|S|T|VE))?",aw=$L+"?",lw="["+Z0+"]?",UL="(?:"+rw+"(?:"+[tw,hb,bb].join("|")+")"+lw+aw+")*",GL="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",WL="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",sw=lw+aw+UL,KL="(?:"+[zL,hb,bb].join("|")+")"+sw,YL="(?:"+[tw+lu+"?",lu,hb,bb,BL].join("|")+")",VL=RegExp(fb,"g"),XL=RegExp(lu,"g"),xb=RegExp(gb+"(?="+gb+")|"+YL+sw,"g"),ZL=RegExp([ls+"?"+Q0+"+"+nw+"(?="+[j0,ls,"$"].join("|")+")",HL+"+"+iw+"(?="+[j0,ls+ow,"$"].join("|")+")",ls+"?"+ow+"+"+nw,ls+"+"+iw,WL,GL,J0,KL].join("|"),"g"),qL=RegExp("["+rw+au+K0+Z0+"]"),jL=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,JL=["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"],QL=-1,Pt={};Pt[ob]=Pt[nb]=Pt[ib]=Pt[ab]=Pt[lb]=Pt[sb]=Pt[cb]=Pt[db]=Pt[mb]=!0,Pt[ie]=Pt[le]=Pt[id]=Pt[pe]=Pt[as]=Pt[ye]=Pt[vt]=Pt[Ft]=Pt[er]=Pt[Jr]=Pt[ar]=Pt[Ya]=Pt[wr]=Pt[vn]=Pt[Xa]=!1;var It={};It[ie]=It[le]=It[id]=It[as]=It[pe]=It[ye]=It[ob]=It[nb]=It[ib]=It[ab]=It[lb]=It[er]=It[Jr]=It[ar]=It[Ya]=It[wr]=It[vn]=It[Va]=It[sb]=It[cb]=It[db]=It[mb]=!0,It[vt]=It[Ft]=It[Xa]=!1;var eR={\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"},tR={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},rR={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},oR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},nR=parseFloat,iR=parseInt,cw=typeof global=="object"&&global&&global.Object===Object&&global,aR=typeof self=="object"&&self&&self.Object===Object&&self,Sr=cw||aR||Function("return this")(),vb=typeof Xc=="object"&&Xc&&!Xc.nodeType&&Xc,Za=vb&&typeof Gm=="object"&&Gm&&!Gm.nodeType&&Gm,dw=Za&&Za.exports===vb,yb=dw&&cw.process,Ho=function(){try{var $=Za&&Za.require&&Za.require("util").types;return $||yb&&yb.binding&&yb.binding("util")}catch{}}(),mw=Ho&&Ho.isArrayBuffer,uw=Ho&&Ho.isDate,pw=Ho&&Ho.isMap,fw=Ho&&Ho.isRegExp,gw=Ho&&Ho.isSet,hw=Ho&&Ho.isTypedArray;function Ao($,J,Z){switch(Z.length){case 0:return $.call(J);case 1:return $.call(J,Z[0]);case 2:return $.call(J,Z[0],Z[1]);case 3:return $.call(J,Z[0],Z[1],Z[2])}return $.apply(J,Z)}function lR($,J,Z,ve){for(var Fe=-1,ct=$==null?0:$.length;++Fe<ct;){var gr=$[Fe];J(ve,gr,Z(gr),$)}return ve}function Uo($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve&&J($[Z],Z,$)!==!1;);return $}function sR($,J){for(var Z=$==null?0:$.length;Z--&&J($[Z],Z,$)!==!1;);return $}function bw($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve;)if(!J($[Z],Z,$))return!1;return!0}function ji($,J){for(var Z=-1,ve=$==null?0:$.length,Fe=0,ct=[];++Z<ve;){var gr=$[Z];J(gr,Z,$)&&(ct[Fe++]=gr)}return ct}function su($,J){var Z=$==null?0:$.length;return!!Z&&ss($,J,0)>-1}function Eb($,J,Z){for(var ve=-1,Fe=$==null?0:$.length;++ve<Fe;)if(Z(J,$[ve]))return!0;return!1}function Bt($,J){for(var Z=-1,ve=$==null?0:$.length,Fe=Array(ve);++Z<ve;)Fe[Z]=J($[Z],Z,$);return Fe}function Ji($,J){for(var Z=-1,ve=J.length,Fe=$.length;++Z<ve;)$[Fe+Z]=J[Z];return $}function wb($,J,Z,ve){var Fe=-1,ct=$==null?0:$.length;for(ve&&ct&&(Z=$[++Fe]);++Fe<ct;)Z=J(Z,$[Fe],Fe,$);return Z}function cR($,J,Z,ve){var Fe=$==null?0:$.length;for(ve&&Fe&&(Z=$[--Fe]);Fe--;)Z=J(Z,$[Fe],Fe,$);return Z}function Sb($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve;)if(J($[Z],Z,$))return!0;return!1}var dR=Tb("length");function mR($){return $.split("")}function uR($){return $.match(yL)||[]}function xw($,J,Z){var ve;return Z($,function(Fe,ct,gr){if(J(Fe,ct,gr))return ve=ct,!1}),ve}function cu($,J,Z,ve){for(var Fe=$.length,ct=Z+(ve?1:-1);ve?ct--:++ct<Fe;)if(J($[ct],ct,$))return ct;return-1}function ss($,J,Z){return J===J?TR($,J,Z):cu($,vw,Z)}function pR($,J,Z,ve){for(var Fe=Z-1,ct=$.length;++Fe<ct;)if(ve($[Fe],J))return Fe;return-1}function vw($){return $!==$}function yw($,J){var Z=$==null?0:$.length;return Z?Ib($,J)/Z:Ee}function Tb($){return function(J){return J==null?e:J[$]}}function Cb($){return function(J){return $==null?e:$[J]}}function Ew($,J,Z,ve,Fe){return Fe($,function(ct,gr,wt){Z=ve?(ve=!1,ct):J(Z,ct,gr,wt)}),Z}function fR($,J){var Z=$.length;for($.sort(J);Z--;)$[Z]=$[Z].value;return $}function Ib($,J){for(var Z,ve=-1,Fe=$.length;++ve<Fe;){var ct=J($[ve]);ct!==e&&(Z=Z===e?ct:Z+ct)}return Z}function _b($,J){for(var Z=-1,ve=Array($);++Z<$;)ve[Z]=J(Z);return ve}function gR($,J){return Bt(J,function(Z){return[Z,$[Z]]})}function ww($){return $&&$.slice(0,Iw($)+1).replace(pb,"")}function ko($){return function(J){return $(J)}}function Ab($,J){return Bt(J,function(Z){return $[Z]})}function ad($,J){return $.has(J)}function Sw($,J){for(var Z=-1,ve=$.length;++Z<ve&&ss(J,$[Z],0)>-1;);return Z}function Tw($,J){for(var Z=$.length;Z--&&ss(J,$[Z],0)>-1;);return Z}function hR($,J){for(var Z=$.length,ve=0;Z--;)$[Z]===J&&++ve;return ve}var bR=Cb(eR),xR=Cb(tR);function vR($){return"\\"+oR[$]}function yR($,J){return $==null?e:$[J]}function cs($){return qL.test($)}function ER($){return jL.test($)}function wR($){for(var J,Z=[];!(J=$.next()).done;)Z.push(J.value);return Z}function kb($){var J=-1,Z=Array($.size);return $.forEach(function(ve,Fe){Z[++J]=[Fe,ve]}),Z}function Cw($,J){return function(Z){return $(J(Z))}}function Qi($,J){for(var Z=-1,ve=$.length,Fe=0,ct=[];++Z<ve;){var gr=$[Z];(gr===J||gr===d)&&($[Z]=d,ct[Fe++]=Z)}return ct}function du($){var J=-1,Z=Array($.size);return $.forEach(function(ve){Z[++J]=ve}),Z}function SR($){var J=-1,Z=Array($.size);return $.forEach(function(ve){Z[++J]=[ve,ve]}),Z}function TR($,J,Z){for(var ve=Z-1,Fe=$.length;++ve<Fe;)if($[ve]===J)return ve;return-1}function CR($,J,Z){for(var ve=Z+1;ve--;)if($[ve]===J)return ve;return ve}function ds($){return cs($)?_R($):dR($)}function yn($){return cs($)?AR($):mR($)}function Iw($){for(var J=$.length;J--&&hL.test($.charAt(J)););return J}var IR=Cb(rR);function _R($){for(var J=xb.lastIndex=0;xb.test($);)++J;return J}function AR($){return $.match(xb)||[]}function kR($){return $.match(ZL)||[]}var PR=function $(J){J=J==null?Sr:ea.defaults(Sr.Object(),J,ea.pick(Sr,JL));var Z=J.Array,ve=J.Date,Fe=J.Error,ct=J.Function,gr=J.Math,wt=J.Object,Pb=J.RegExp,MR=J.String,Go=J.TypeError,mu=Z.prototype,LR=ct.prototype,ms=wt.prototype,uu=J["__core-js_shared__"],pu=LR.toString,bt=ms.hasOwnProperty,RR=0,_w=function(){var n=/[^.]+$/.exec(uu&&uu.keys&&uu.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),fu=ms.toString,DR=pu.call(wt),NR=Sr._,OR=Pb("^"+pu.call(bt).replace(ub,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),gu=dw?J.Buffer:e,ta=J.Symbol,hu=J.Uint8Array,Aw=gu?gu.allocUnsafe:e,bu=Cw(wt.getPrototypeOf,wt),kw=wt.create,Pw=ms.propertyIsEnumerable,xu=mu.splice,Mw=ta?ta.isConcatSpreadable:e,ld=ta?ta.iterator:e,qa=ta?ta.toStringTag:e,vu=function(){try{var n=tl(wt,"defineProperty");return n({},"",{}),n}catch{}}(),FR=J.clearTimeout!==Sr.clearTimeout&&J.clearTimeout,BR=ve&&ve.now!==Sr.Date.now&&ve.now,zR=J.setTimeout!==Sr.setTimeout&&J.setTimeout,yu=gr.ceil,Eu=gr.floor,Mb=wt.getOwnPropertySymbols,$R=gu?gu.isBuffer:e,Lw=J.isFinite,HR=mu.join,UR=Cw(wt.keys,wt),hr=gr.max,Fr=gr.min,GR=ve.now,WR=J.parseInt,Rw=gr.random,KR=mu.reverse,Lb=tl(J,"DataView"),sd=tl(J,"Map"),Rb=tl(J,"Promise"),us=tl(J,"Set"),cd=tl(J,"WeakMap"),dd=tl(wt,"create"),wu=cd&&new cd,ps={},YR=rl(Lb),VR=rl(sd),XR=rl(Rb),ZR=rl(us),qR=rl(cd),Su=ta?ta.prototype:e,md=Su?Su.valueOf:e,Dw=Su?Su.toString:e;function _(n){if(Xt(n)&&!$e(n)&&!(n instanceof Je)){if(n instanceof Wo)return n;if(bt.call(n,"__wrapped__"))return N1(n)}return new Wo(n)}var fs=function(){function n(){}return function(l){if(!Ut(l))return{};if(kw)return kw(l);n.prototype=l;var p=new n;return n.prototype=e,p}}();function Tu(){}function Wo(n,l){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}_.templateSettings={escape:dL,evaluate:mL,interpolate:G0,variable:"",imports:{_}},_.prototype=Tu.prototype,_.prototype.constructor=_,Wo.prototype=fs(Tu.prototype),Wo.prototype.constructor=Wo;function Je(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ue,this.__views__=[]}function jR(){var n=new Je(this.__wrapped__);return n.__actions__=po(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=po(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=po(this.__views__),n}function JR(){if(this.__filtered__){var n=new Je(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function QR(){var n=this.__wrapped__.value(),l=this.__dir__,p=$e(n),x=l<0,S=p?n.length:0,P=m6(0,S,this.__views__),N=P.start,B=P.end,H=B-N,ee=x?B:N-1,te=this.__iteratees__,ae=te.length,fe=0,we=Fr(H,this.__takeCount__);if(!p||!x&&S==H&&we==H)return n1(n,this.__actions__);var Pe=[];e:for(;H--&&fe<we;){ee+=l;for(var Ge=-1,Me=n[ee];++Ge<ae;){var qe=te[Ge],tt=qe.iteratee,Lo=qe.type,to=tt(Me);if(Lo==K)Me=to;else if(!to){if(Lo==me)continue e;break e}}Pe[fe++]=Me}return Pe}Je.prototype=fs(Tu.prototype),Je.prototype.constructor=Je;function ja(n){var l=-1,p=n==null?0:n.length;for(this.clear();++l<p;){var x=n[l];this.set(x[0],x[1])}}function eD(){this.__data__=dd?dd(null):{},this.size=0}function tD(n){var l=this.has(n)&&delete this.__data__[n];return this.size-=l?1:0,l}function rD(n){var l=this.__data__;if(dd){var p=l[n];return p===s?e:p}return bt.call(l,n)?l[n]:e}function oD(n){var l=this.__data__;return dd?l[n]!==e:bt.call(l,n)}function nD(n,l){var p=this.__data__;return this.size+=this.has(n)?0:1,p[n]=dd&&l===e?s:l,this}ja.prototype.clear=eD,ja.prototype.delete=tD,ja.prototype.get=rD,ja.prototype.has=oD,ja.prototype.set=nD;function ci(n){var l=-1,p=n==null?0:n.length;for(this.clear();++l<p;){var x=n[l];this.set(x[0],x[1])}}function iD(){this.__data__=[],this.size=0}function aD(n){var l=this.__data__,p=Cu(l,n);if(p<0)return!1;var x=l.length-1;return p==x?l.pop():xu.call(l,p,1),--this.size,!0}function lD(n){var l=this.__data__,p=Cu(l,n);return p<0?e:l[p][1]}function sD(n){return Cu(this.__data__,n)>-1}function cD(n,l){var p=this.__data__,x=Cu(p,n);return x<0?(++this.size,p.push([n,l])):p[x][1]=l,this}ci.prototype.clear=iD,ci.prototype.delete=aD,ci.prototype.get=lD,ci.prototype.has=sD,ci.prototype.set=cD;function di(n){var l=-1,p=n==null?0:n.length;for(this.clear();++l<p;){var x=n[l];this.set(x[0],x[1])}}function dD(){this.size=0,this.__data__={hash:new ja,map:new(sd||ci),string:new ja}}function mD(n){var l=Fu(this,n).delete(n);return this.size-=l?1:0,l}function uD(n){return Fu(this,n).get(n)}function pD(n){return Fu(this,n).has(n)}function fD(n,l){var p=Fu(this,n),x=p.size;return p.set(n,l),this.size+=p.size==x?0:1,this}di.prototype.clear=dD,di.prototype.delete=mD,di.prototype.get=uD,di.prototype.has=pD,di.prototype.set=fD;function Ja(n){var l=-1,p=n==null?0:n.length;for(this.__data__=new di;++l<p;)this.add(n[l])}function gD(n){return this.__data__.set(n,s),this}function hD(n){return this.__data__.has(n)}Ja.prototype.add=Ja.prototype.push=gD,Ja.prototype.has=hD;function En(n){var l=this.__data__=new ci(n);this.size=l.size}function bD(){this.__data__=new ci,this.size=0}function xD(n){var l=this.__data__,p=l.delete(n);return this.size=l.size,p}function vD(n){return this.__data__.get(n)}function yD(n){return this.__data__.has(n)}function ED(n,l){var p=this.__data__;if(p instanceof ci){var x=p.__data__;if(!sd||x.length<r-1)return x.push([n,l]),this.size=++p.size,this;p=this.__data__=new di(x)}return p.set(n,l),this.size=p.size,this}En.prototype.clear=bD,En.prototype.delete=xD,En.prototype.get=vD,En.prototype.has=yD,En.prototype.set=ED;function Nw(n,l){var p=$e(n),x=!p&&ol(n),S=!p&&!x&&aa(n),P=!p&&!x&&!S&&xs(n),N=p||x||S||P,B=N?_b(n.length,MR):[],H=B.length;for(var ee in n)(l||bt.call(n,ee))&&!(N&&(ee=="length"||S&&(ee=="offset"||ee=="parent")||P&&(ee=="buffer"||ee=="byteLength"||ee=="byteOffset")||fi(ee,H)))&&B.push(ee);return B}function Ow(n){var l=n.length;return l?n[Wb(0,l-1)]:e}function wD(n,l){return Bu(po(n),Qa(l,0,n.length))}function SD(n){return Bu(po(n))}function Db(n,l,p){(p!==e&&!wn(n[l],p)||p===e&&!(l in n))&&mi(n,l,p)}function ud(n,l,p){var x=n[l];(!(bt.call(n,l)&&wn(x,p))||p===e&&!(l in n))&&mi(n,l,p)}function Cu(n,l){for(var p=n.length;p--;)if(wn(n[p][0],l))return p;return-1}function TD(n,l,p,x){return ra(n,function(S,P,N){l(x,S,p(S),N)}),x}function Fw(n,l){return n&&Wn(l,Tr(l),n)}function CD(n,l){return n&&Wn(l,go(l),n)}function mi(n,l,p){l=="__proto__"&&vu?vu(n,l,{configurable:!0,enumerable:!0,value:p,writable:!0}):n[l]=p}function Nb(n,l){for(var p=-1,x=l.length,S=Z(x),P=n==null;++p<x;)S[p]=P?e:gx(n,l[p]);return S}function Qa(n,l,p){return n===n&&(p!==e&&(n=n<=p?n:p),l!==e&&(n=n>=l?n:l)),n}function Ko(n,l,p,x,S,P){var N,B=l&u,H=l&f,ee=l&m;if(p&&(N=S?p(n,x,S,P):p(n)),N!==e)return N;if(!Ut(n))return n;var te=$e(n);if(te){if(N=p6(n),!B)return po(n,N)}else{var ae=Br(n),fe=ae==Ft||ae==Et;if(aa(n))return l1(n,B);if(ae==ar||ae==ie||fe&&!S){if(N=H||fe?{}:I1(n),!B)return H?r6(n,CD(N,n)):t6(n,Fw(N,n))}else{if(!It[ae])return S?n:{};N=f6(n,ae,B)}}P||(P=new En);var we=P.get(n);if(we)return we;P.set(n,N),tS(n)?n.forEach(function(Me){N.add(Ko(Me,l,p,Me,n,P))}):Q1(n)&&n.forEach(function(Me,qe){N.set(qe,Ko(Me,l,p,qe,n,P))});var Pe=ee?H?tx:ex:H?go:Tr,Ge=te?e:Pe(n);return Uo(Ge||n,function(Me,qe){Ge&&(qe=Me,Me=n[qe]),ud(N,qe,Ko(Me,l,p,qe,n,P))}),N}function ID(n){var l=Tr(n);return function(p){return Bw(p,n,l)}}function Bw(n,l,p){var x=p.length;if(n==null)return!x;for(n=wt(n);x--;){var S=p[x],P=l[S],N=n[S];if(N===e&&!(S in n)||!P(N))return!1}return!0}function zw(n,l,p){if(typeof n!="function")throw new Go(i);return vd(function(){n.apply(e,p)},l)}function pd(n,l,p,x){var S=-1,P=su,N=!0,B=n.length,H=[],ee=l.length;if(!B)return H;p&&(l=Bt(l,ko(p))),x?(P=Eb,N=!1):l.length>=r&&(P=ad,N=!1,l=new Ja(l));e:for(;++S<B;){var te=n[S],ae=p==null?te:p(te);if(te=x||te!==0?te:0,N&&ae===ae){for(var fe=ee;fe--;)if(l[fe]===ae)continue e;H.push(te)}else P(l,ae,x)||H.push(te)}return H}var ra=u1(Gn),$w=u1(Fb,!0);function _D(n,l){var p=!0;return ra(n,function(x,S,P){return p=!!l(x,S,P),p}),p}function Iu(n,l,p){for(var x=-1,S=n.length;++x<S;){var P=n[x],N=l(P);if(N!=null&&(B===e?N===N&&!Mo(N):p(N,B)))var B=N,H=P}return H}function AD(n,l,p,x){var S=n.length;for(p=Ue(p),p<0&&(p=-p>S?0:S+p),x=x===e||x>S?S:Ue(x),x<0&&(x+=S),x=p>x?0:oS(x);p<x;)n[p++]=l;return n}function Hw(n,l){var p=[];return ra(n,function(x,S,P){l(x,S,P)&&p.push(x)}),p}function Mr(n,l,p,x,S){var P=-1,N=n.length;for(p||(p=h6),S||(S=[]);++P<N;){var B=n[P];l>0&&p(B)?l>1?Mr(B,l-1,p,x,S):Ji(S,B):x||(S[S.length]=B)}return S}var Ob=p1(),Uw=p1(!0);function Gn(n,l){return n&&Ob(n,l,Tr)}function Fb(n,l){return n&&Uw(n,l,Tr)}function _u(n,l){return ji(l,function(p){return gi(n[p])})}function el(n,l){l=na(l,n);for(var p=0,x=l.length;n!=null&&p<x;)n=n[Kn(l[p++])];return p&&p==x?n:e}function Gw(n,l,p){var x=l(n);return $e(n)?x:Ji(x,p(n))}function Qr(n){return n==null?n===e?qi:si:qa&&qa in wt(n)?d6(n):S6(n)}function Bb(n,l){return n>l}function kD(n,l){return n!=null&&bt.call(n,l)}function PD(n,l){return n!=null&&l in wt(n)}function MD(n,l,p){return n>=Fr(l,p)&&n<hr(l,p)}function zb(n,l,p){for(var x=p?Eb:su,S=n[0].length,P=n.length,N=P,B=Z(P),H=1/0,ee=[];N--;){var te=n[N];N&&l&&(te=Bt(te,ko(l))),H=Fr(te.length,H),B[N]=!p&&(l||S>=120&&te.length>=120)?new Ja(N&&te):e}te=n[0];var ae=-1,fe=B[0];e:for(;++ae<S&&ee.length<H;){var we=te[ae],Pe=l?l(we):we;if(we=p||we!==0?we:0,!(fe?ad(fe,Pe):x(ee,Pe,p))){for(N=P;--N;){var Ge=B[N];if(!(Ge?ad(Ge,Pe):x(n[N],Pe,p)))continue e}fe&&fe.push(Pe),ee.push(we)}}return ee}function LD(n,l,p,x){return Gn(n,function(S,P,N){l(x,p(S),P,N)}),x}function fd(n,l,p){l=na(l,n),n=P1(n,l);var x=n==null?n:n[Kn(Vo(l))];return x==null?e:Ao(x,n,p)}function Ww(n){return Xt(n)&&Qr(n)==ie}function RD(n){return Xt(n)&&Qr(n)==id}function DD(n){return Xt(n)&&Qr(n)==ye}function gd(n,l,p,x,S){return n===l?!0:n==null||l==null||!Xt(n)&&!Xt(l)?n!==n&&l!==l:ND(n,l,p,x,gd,S)}function ND(n,l,p,x,S,P){var N=$e(n),B=$e(l),H=N?le:Br(n),ee=B?le:Br(l);H=H==ie?ar:H,ee=ee==ie?ar:ee;var te=H==ar,ae=ee==ar,fe=H==ee;if(fe&&aa(n)){if(!aa(l))return!1;N=!0,te=!1}if(fe&&!te)return P||(P=new En),N||xs(n)?S1(n,l,p,x,S,P):s6(n,l,H,p,x,S,P);if(!(p&g)){var we=te&&bt.call(n,"__wrapped__"),Pe=ae&&bt.call(l,"__wrapped__");if(we||Pe){var Ge=we?n.value():n,Me=Pe?l.value():l;return P||(P=new En),S(Ge,Me,p,x,P)}}return fe?(P||(P=new En),c6(n,l,p,x,S,P)):!1}function OD(n){return Xt(n)&&Br(n)==er}function $b(n,l,p,x){var S=p.length,P=S,N=!x;if(n==null)return!P;for(n=wt(n);S--;){var B=p[S];if(N&&B[2]?B[1]!==n[B[0]]:!(B[0]in n))return!1}for(;++S<P;){B=p[S];var H=B[0],ee=n[H],te=B[1];if(N&&B[2]){if(ee===e&&!(H in n))return!1}else{var ae=new En;if(x)var fe=x(ee,te,H,n,l,ae);if(!(fe===e?gd(te,ee,g|h,x,ae):fe))return!1}}return!0}function Kw(n){if(!Ut(n)||x6(n))return!1;var l=gi(n)?OR:IL;return l.test(rl(n))}function FD(n){return Xt(n)&&Qr(n)==Ya}function BD(n){return Xt(n)&&Br(n)==wr}function zD(n){return Xt(n)&&Wu(n.length)&&!!Pt[Qr(n)]}function Yw(n){return typeof n=="function"?n:n==null?ho:typeof n=="object"?$e(n)?Zw(n[0],n[1]):Xw(n):fS(n)}function Hb(n){if(!xd(n))return UR(n);var l=[];for(var p in wt(n))bt.call(n,p)&&p!="constructor"&&l.push(p);return l}function $D(n){if(!Ut(n))return w6(n);var l=xd(n),p=[];for(var x in n)x=="constructor"&&(l||!bt.call(n,x))||p.push(x);return p}function Ub(n,l){return n<l}function Vw(n,l){var p=-1,x=fo(n)?Z(n.length):[];return ra(n,function(S,P,N){x[++p]=l(S,P,N)}),x}function Xw(n){var l=ox(n);return l.length==1&&l[0][2]?A1(l[0][0],l[0][1]):function(p){return p===n||$b(p,n,l)}}function Zw(n,l){return ix(n)&&_1(l)?A1(Kn(n),l):function(p){var x=gx(p,n);return x===e&&x===l?hx(p,n):gd(l,x,g|h)}}function Au(n,l,p,x,S){n!==l&&Ob(l,function(P,N){if(S||(S=new En),Ut(P))HD(n,l,N,p,Au,x,S);else{var B=x?x(lx(n,N),P,N+"",n,l,S):e;B===e&&(B=P),Db(n,N,B)}},go)}function HD(n,l,p,x,S,P,N){var B=lx(n,p),H=lx(l,p),ee=N.get(H);if(ee){Db(n,p,ee);return}var te=P?P(B,H,p+"",n,l,N):e,ae=te===e;if(ae){var fe=$e(H),we=!fe&&aa(H),Pe=!fe&&!we&&xs(H);te=H,fe||we||Pe?$e(B)?te=B:tr(B)?te=po(B):we?(ae=!1,te=l1(H,!0)):Pe?(ae=!1,te=s1(H,!0)):te=[]:yd(H)||ol(H)?(te=B,ol(B)?te=nS(B):(!Ut(B)||gi(B))&&(te=I1(H))):ae=!1}ae&&(N.set(H,te),S(te,H,x,P,N),N.delete(H)),Db(n,p,te)}function qw(n,l){var p=n.length;if(p)return l+=l<0?p:0,fi(l,p)?n[l]:e}function jw(n,l,p){l.length?l=Bt(l,function(P){return $e(P)?function(N){return el(N,P.length===1?P[0]:P)}:P}):l=[ho];var x=-1;l=Bt(l,ko(Ae()));var S=Vw(n,function(P,N,B){var H=Bt(l,function(ee){return ee(P)});return{criteria:H,index:++x,value:P}});return fR(S,function(P,N){return e6(P,N,p)})}function UD(n,l){return Jw(n,l,function(p,x){return hx(n,x)})}function Jw(n,l,p){for(var x=-1,S=l.length,P={};++x<S;){var N=l[x],B=el(n,N);p(B,N)&&hd(P,na(N,n),B)}return P}function GD(n){return function(l){return el(l,n)}}function Gb(n,l,p,x){var S=x?pR:ss,P=-1,N=l.length,B=n;for(n===l&&(l=po(l)),p&&(B=Bt(n,ko(p)));++P<N;)for(var H=0,ee=l[P],te=p?p(ee):ee;(H=S(B,te,H,x))>-1;)B!==n&&xu.call(B,H,1),xu.call(n,H,1);return n}function Qw(n,l){for(var p=n?l.length:0,x=p-1;p--;){var S=l[p];if(p==x||S!==P){var P=S;fi(S)?xu.call(n,S,1):Vb(n,S)}}return n}function Wb(n,l){return n+Eu(Rw()*(l-n+1))}function WD(n,l,p,x){for(var S=-1,P=hr(yu((l-n)/(p||1)),0),N=Z(P);P--;)N[x?P:++S]=n,n+=p;return N}function Kb(n,l){var p="";if(!n||l<1||l>_e)return p;do l%2&&(p+=n),l=Eu(l/2),l&&(n+=n);while(l);return p}function Ke(n,l){return sx(k1(n,l,ho),n+"")}function KD(n){return Ow(vs(n))}function YD(n,l){var p=vs(n);return Bu(p,Qa(l,0,p.length))}function hd(n,l,p,x){if(!Ut(n))return n;l=na(l,n);for(var S=-1,P=l.length,N=P-1,B=n;B!=null&&++S<P;){var H=Kn(l[S]),ee=p;if(H==="__proto__"||H==="constructor"||H==="prototype")return n;if(S!=N){var te=B[H];ee=x?x(te,H,B):e,ee===e&&(ee=Ut(te)?te:fi(l[S+1])?[]:{})}ud(B,H,ee),B=B[H]}return n}var e1=wu?function(n,l){return wu.set(n,l),n}:ho,VD=vu?function(n,l){return vu(n,"toString",{configurable:!0,enumerable:!1,value:xx(l),writable:!0})}:ho;function XD(n){return Bu(vs(n))}function Yo(n,l,p){var x=-1,S=n.length;l<0&&(l=-l>S?0:S+l),p=p>S?S:p,p<0&&(p+=S),S=l>p?0:p-l>>>0,l>>>=0;for(var P=Z(S);++x<S;)P[x]=n[x+l];return P}function ZD(n,l){var p;return ra(n,function(x,S,P){return p=l(x,S,P),!p}),!!p}function ku(n,l,p){var x=0,S=n==null?x:n.length;if(typeof l=="number"&&l===l&&S<=Y){for(;x<S;){var P=x+S>>>1,N=n[P];N!==null&&!Mo(N)&&(p?N<=l:N<l)?x=P+1:S=P}return S}return Yb(n,l,ho,p)}function Yb(n,l,p,x){var S=0,P=n==null?0:n.length;if(P===0)return 0;l=p(l);for(var N=l!==l,B=l===null,H=Mo(l),ee=l===e;S<P;){var te=Eu((S+P)/2),ae=p(n[te]),fe=ae!==e,we=ae===null,Pe=ae===ae,Ge=Mo(ae);if(N)var Me=x||Pe;else ee?Me=Pe&&(x||fe):B?Me=Pe&&fe&&(x||!we):H?Me=Pe&&fe&&!we&&(x||!Ge):we||Ge?Me=!1:Me=x?ae<=l:ae<l;Me?S=te+1:P=te}return Fr(P,G)}function t1(n,l){for(var p=-1,x=n.length,S=0,P=[];++p<x;){var N=n[p],B=l?l(N):N;if(!p||!wn(B,H)){var H=B;P[S++]=N===0?0:N}}return P}function r1(n){return typeof n=="number"?n:Mo(n)?Ee:+n}function Po(n){if(typeof n=="string")return n;if($e(n))return Bt(n,Po)+"";if(Mo(n))return Dw?Dw.call(n):"";var l=n+"";return l=="0"&&1/n==-be?"-0":l}function oa(n,l,p){var x=-1,S=su,P=n.length,N=!0,B=[],H=B;if(p)N=!1,S=Eb;else if(P>=r){var ee=l?null:a6(n);if(ee)return du(ee);N=!1,S=ad,H=new Ja}else H=l?[]:B;e:for(;++x<P;){var te=n[x],ae=l?l(te):te;if(te=p||te!==0?te:0,N&&ae===ae){for(var fe=H.length;fe--;)if(H[fe]===ae)continue e;l&&H.push(ae),B.push(te)}else S(H,ae,p)||(H!==B&&H.push(ae),B.push(te))}return B}function Vb(n,l){return l=na(l,n),n=P1(n,l),n==null||delete n[Kn(Vo(l))]}function o1(n,l,p,x){return hd(n,l,p(el(n,l)),x)}function Pu(n,l,p,x){for(var S=n.length,P=x?S:-1;(x?P--:++P<S)&&l(n[P],P,n););return p?Yo(n,x?0:P,x?P+1:S):Yo(n,x?P+1:0,x?S:P)}function n1(n,l){var p=n;return p instanceof Je&&(p=p.value()),wb(l,function(x,S){return S.func.apply(S.thisArg,Ji([x],S.args))},p)}function Xb(n,l,p){var x=n.length;if(x<2)return x?oa(n[0]):[];for(var S=-1,P=Z(x);++S<x;)for(var N=n[S],B=-1;++B<x;)B!=S&&(P[S]=pd(P[S]||N,n[B],l,p));return oa(Mr(P,1),l,p)}function i1(n,l,p){for(var x=-1,S=n.length,P=l.length,N={};++x<S;){var B=x<P?l[x]:e;p(N,n[x],B)}return N}function Zb(n){return tr(n)?n:[]}function qb(n){return typeof n=="function"?n:ho}function na(n,l){return $e(n)?n:ix(n,l)?[n]:D1(ut(n))}var qD=Ke;function ia(n,l,p){var x=n.length;return p=p===e?x:p,!l&&p>=x?n:Yo(n,l,p)}var a1=FR||function(n){return Sr.clearTimeout(n)};function l1(n,l){if(l)return n.slice();var p=n.length,x=Aw?Aw(p):new n.constructor(p);return n.copy(x),x}function jb(n){var l=new n.constructor(n.byteLength);return new hu(l).set(new hu(n)),l}function jD(n,l){var p=l?jb(n.buffer):n.buffer;return new n.constructor(p,n.byteOffset,n.byteLength)}function JD(n){var l=new n.constructor(n.source,W0.exec(n));return l.lastIndex=n.lastIndex,l}function QD(n){return md?wt(md.call(n)):{}}function s1(n,l){var p=l?jb(n.buffer):n.buffer;return new n.constructor(p,n.byteOffset,n.length)}function c1(n,l){if(n!==l){var p=n!==e,x=n===null,S=n===n,P=Mo(n),N=l!==e,B=l===null,H=l===l,ee=Mo(l);if(!B&&!ee&&!P&&n>l||P&&N&&H&&!B&&!ee||x&&N&&H||!p&&H||!S)return 1;if(!x&&!P&&!ee&&n<l||ee&&p&&S&&!x&&!P||B&&p&&S||!N&&S||!H)return-1}return 0}function e6(n,l,p){for(var x=-1,S=n.criteria,P=l.criteria,N=S.length,B=p.length;++x<N;){var H=c1(S[x],P[x]);if(H){if(x>=B)return H;var ee=p[x];return H*(ee=="desc"?-1:1)}}return n.index-l.index}function d1(n,l,p,x){for(var S=-1,P=n.length,N=p.length,B=-1,H=l.length,ee=hr(P-N,0),te=Z(H+ee),ae=!x;++B<H;)te[B]=l[B];for(;++S<N;)(ae||S<P)&&(te[p[S]]=n[S]);for(;ee--;)te[B++]=n[S++];return te}function m1(n,l,p,x){for(var S=-1,P=n.length,N=-1,B=p.length,H=-1,ee=l.length,te=hr(P-B,0),ae=Z(te+ee),fe=!x;++S<te;)ae[S]=n[S];for(var we=S;++H<ee;)ae[we+H]=l[H];for(;++N<B;)(fe||S<P)&&(ae[we+p[N]]=n[S++]);return ae}function po(n,l){var p=-1,x=n.length;for(l||(l=Z(x));++p<x;)l[p]=n[p];return l}function Wn(n,l,p,x){var S=!p;p||(p={});for(var P=-1,N=l.length;++P<N;){var B=l[P],H=x?x(p[B],n[B],B,p,n):e;H===e&&(H=n[B]),S?mi(p,B,H):ud(p,B,H)}return p}function t6(n,l){return Wn(n,nx(n),l)}function r6(n,l){return Wn(n,T1(n),l)}function Mu(n,l){return function(p,x){var S=$e(p)?lR:TD,P=l?l():{};return S(p,n,Ae(x,2),P)}}function gs(n){return Ke(function(l,p){var x=-1,S=p.length,P=S>1?p[S-1]:e,N=S>2?p[2]:e;for(P=n.length>3&&typeof P=="function"?(S--,P):e,N&&eo(p[0],p[1],N)&&(P=S<3?e:P,S=1),l=wt(l);++x<S;){var B=p[x];B&&n(l,B,x,P)}return l})}function u1(n,l){return function(p,x){if(p==null)return p;if(!fo(p))return n(p,x);for(var S=p.length,P=l?S:-1,N=wt(p);(l?P--:++P<S)&&x(N[P],P,N)!==!1;);return p}}function p1(n){return function(l,p,x){for(var S=-1,P=wt(l),N=x(l),B=N.length;B--;){var H=N[n?B:++S];if(p(P[H],H,P)===!1)break}return l}}function o6(n,l,p){var x=l&b,S=bd(n);function P(){var N=this&&this!==Sr&&this instanceof P?S:n;return N.apply(x?p:this,arguments)}return P}function f1(n){return function(l){l=ut(l);var p=cs(l)?yn(l):e,x=p?p[0]:l.charAt(0),S=p?ia(p,1).join(""):l.slice(1);return x[n]()+S}}function hs(n){return function(l){return wb(uS(mS(l).replace(VL,"")),n,"")}}function bd(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 p=fs(n.prototype),x=n.apply(p,l);return Ut(x)?x:p}}function n6(n,l,p){var x=bd(n);function S(){for(var P=arguments.length,N=Z(P),B=P,H=bs(S);B--;)N[B]=arguments[B];var ee=P<3&&N[0]!==H&&N[P-1]!==H?[]:Qi(N,H);if(P-=ee.length,P<p)return v1(n,l,Lu,S.placeholder,e,N,ee,e,e,p-P);var te=this&&this!==Sr&&this instanceof S?x:n;return Ao(te,this,N)}return S}function g1(n){return function(l,p,x){var S=wt(l);if(!fo(l)){var P=Ae(p,3);l=Tr(l),p=function(B){return P(S[B],B,S)}}var N=n(l,p,x);return N>-1?S[P?l[N]:N]:e}}function h1(n){return pi(function(l){var p=l.length,x=p,S=Wo.prototype.thru;for(n&&l.reverse();x--;){var P=l[x];if(typeof P!="function")throw new Go(i);if(S&&!N&&Ou(P)=="wrapper")var N=new Wo([],!0)}for(x=N?x:p;++x<p;){P=l[x];var B=Ou(P),H=B=="wrapper"?rx(P):e;H&&ax(H[0])&&H[1]==(z|k|C|L)&&!H[4].length&&H[9]==1?N=N[Ou(H[0])].apply(N,H[3]):N=P.length==1&&ax(P)?N[B]():N.thru(P)}return function(){var ee=arguments,te=ee[0];if(N&&ee.length==1&&$e(te))return N.plant(te).value();for(var ae=0,fe=p?l[ae].apply(this,ee):te;++ae<p;)fe=l[ae].call(this,fe);return fe}})}function Lu(n,l,p,x,S,P,N,B,H,ee){var te=l&z,ae=l&b,fe=l&y,we=l&(k|I),Pe=l&F,Ge=fe?e:bd(n);function Me(){for(var qe=arguments.length,tt=Z(qe),Lo=qe;Lo--;)tt[Lo]=arguments[Lo];if(we)var to=bs(Me),Ro=hR(tt,to);if(x&&(tt=d1(tt,x,S,we)),P&&(tt=m1(tt,P,N,we)),qe-=Ro,we&&qe<ee){var rr=Qi(tt,to);return v1(n,l,Lu,Me.placeholder,p,tt,rr,B,H,ee-qe)}var Sn=ae?p:this,bi=fe?Sn[n]:n;return qe=tt.length,B?tt=T6(tt,B):Pe&&qe>1&&tt.reverse(),te&&H<qe&&(tt.length=H),this&&this!==Sr&&this instanceof Me&&(bi=Ge||bd(bi)),bi.apply(Sn,tt)}return Me}function b1(n,l){return function(p,x){return LD(p,n,l(x),{})}}function Ru(n,l){return function(p,x){var S;if(p===e&&x===e)return l;if(p!==e&&(S=p),x!==e){if(S===e)return x;typeof p=="string"||typeof x=="string"?(p=Po(p),x=Po(x)):(p=r1(p),x=r1(x)),S=n(p,x)}return S}}function Jb(n){return pi(function(l){return l=Bt(l,ko(Ae())),Ke(function(p){var x=this;return n(l,function(S){return Ao(S,x,p)})})})}function Du(n,l){l=l===e?" ":Po(l);var p=l.length;if(p<2)return p?Kb(l,n):l;var x=Kb(l,yu(n/ds(l)));return cs(l)?ia(yn(x),0,n).join(""):x.slice(0,n)}function i6(n,l,p,x){var S=l&b,P=bd(n);function N(){for(var B=-1,H=arguments.length,ee=-1,te=x.length,ae=Z(te+H),fe=this&&this!==Sr&&this instanceof N?P:n;++ee<te;)ae[ee]=x[ee];for(;H--;)ae[ee++]=arguments[++B];return Ao(fe,S?p:this,ae)}return N}function x1(n){return function(l,p,x){return x&&typeof x!="number"&&eo(l,p,x)&&(p=x=e),l=hi(l),p===e?(p=l,l=0):p=hi(p),x=x===e?l<p?1:-1:hi(x),WD(l,p,x,n)}}function Nu(n){return function(l,p){return typeof l=="string"&&typeof p=="string"||(l=Xo(l),p=Xo(p)),n(l,p)}}function v1(n,l,p,x,S,P,N,B,H,ee){var te=l&k,ae=te?N:e,fe=te?e:N,we=te?P:e,Pe=te?e:P;l|=te?C:O,l&=~(te?O:C),l&T||(l&=~(b|y));var Ge=[n,l,S,we,ae,Pe,fe,B,H,ee],Me=p.apply(e,Ge);return ax(n)&&M1(Me,Ge),Me.placeholder=x,L1(Me,n,l)}function Qb(n){var l=gr[n];return function(p,x){if(p=Xo(p),x=x==null?0:Fr(Ue(x),292),x&&Lw(p)){var S=(ut(p)+"e").split("e"),P=l(S[0]+"e"+(+S[1]+x));return S=(ut(P)+"e").split("e"),+(S[0]+"e"+(+S[1]-x))}return l(p)}}var a6=us&&1/du(new us([,-0]))[1]==be?function(n){return new us(n)}:Ex;function y1(n){return function(l){var p=Br(l);return p==er?kb(l):p==wr?SR(l):gR(l,n(l))}}function ui(n,l,p,x,S,P,N,B){var H=l&y;if(!H&&typeof n!="function")throw new Go(i);var ee=x?x.length:0;if(ee||(l&=~(C|O),x=S=e),N=N===e?N:hr(Ue(N),0),B=B===e?B:Ue(B),ee-=S?S.length:0,l&O){var te=x,ae=S;x=S=e}var fe=H?e:rx(n),we=[n,l,p,x,S,te,ae,P,N,B];if(fe&&E6(we,fe),n=we[0],l=we[1],p=we[2],x=we[3],S=we[4],B=we[9]=we[9]===e?H?0:n.length:hr(we[9]-ee,0),!B&&l&(k|I)&&(l&=~(k|I)),!l||l==b)var Pe=o6(n,l,p);else l==k||l==I?Pe=n6(n,l,B):(l==C||l==(b|C))&&!S.length?Pe=i6(n,l,p,x):Pe=Lu.apply(e,we);var Ge=fe?e1:M1;return L1(Ge(Pe,we),n,l)}function E1(n,l,p,x){return n===e||wn(n,ms[p])&&!bt.call(x,p)?l:n}function w1(n,l,p,x,S,P){return Ut(n)&&Ut(l)&&(P.set(l,n),Au(n,l,e,w1,P),P.delete(l)),n}function l6(n){return yd(n)?e:n}function S1(n,l,p,x,S,P){var N=p&g,B=n.length,H=l.length;if(B!=H&&!(N&&H>B))return!1;var ee=P.get(n),te=P.get(l);if(ee&&te)return ee==l&&te==n;var ae=-1,fe=!0,we=p&h?new Ja:e;for(P.set(n,l),P.set(l,n);++ae<B;){var Pe=n[ae],Ge=l[ae];if(x)var Me=N?x(Ge,Pe,ae,l,n,P):x(Pe,Ge,ae,n,l,P);if(Me!==e){if(Me)continue;fe=!1;break}if(we){if(!Sb(l,function(qe,tt){if(!ad(we,tt)&&(Pe===qe||S(Pe,qe,p,x,P)))return we.push(tt)})){fe=!1;break}}else if(!(Pe===Ge||S(Pe,Ge,p,x,P))){fe=!1;break}}return P.delete(n),P.delete(l),fe}function s6(n,l,p,x,S,P,N){switch(p){case as:if(n.byteLength!=l.byteLength||n.byteOffset!=l.byteOffset)return!1;n=n.buffer,l=l.buffer;case id:return!(n.byteLength!=l.byteLength||!P(new hu(n),new hu(l)));case pe:case ye:case Jr:return wn(+n,+l);case vt:return n.name==l.name&&n.message==l.message;case Ya:case vn:return n==l+"";case er:var B=kb;case wr:var H=x&g;if(B||(B=du),n.size!=l.size&&!H)return!1;var ee=N.get(n);if(ee)return ee==l;x|=h,N.set(n,l);var te=S1(B(n),B(l),x,S,P,N);return N.delete(n),te;case Va:if(md)return md.call(n)==md.call(l)}return!1}function c6(n,l,p,x,S,P){var N=p&g,B=ex(n),H=B.length,ee=ex(l),te=ee.length;if(H!=te&&!N)return!1;for(var ae=H;ae--;){var fe=B[ae];if(!(N?fe in l:bt.call(l,fe)))return!1}var we=P.get(n),Pe=P.get(l);if(we&&Pe)return we==l&&Pe==n;var Ge=!0;P.set(n,l),P.set(l,n);for(var Me=N;++ae<H;){fe=B[ae];var qe=n[fe],tt=l[fe];if(x)var Lo=N?x(tt,qe,fe,l,n,P):x(qe,tt,fe,n,l,P);if(!(Lo===e?qe===tt||S(qe,tt,p,x,P):Lo)){Ge=!1;break}Me||(Me=fe=="constructor")}if(Ge&&!Me){var to=n.constructor,Ro=l.constructor;to!=Ro&&"constructor"in n&&"constructor"in l&&!(typeof to=="function"&&to instanceof to&&typeof Ro=="function"&&Ro instanceof Ro)&&(Ge=!1)}return P.delete(n),P.delete(l),Ge}function pi(n){return sx(k1(n,e,B1),n+"")}function ex(n){return Gw(n,Tr,nx)}function tx(n){return Gw(n,go,T1)}var rx=wu?function(n){return wu.get(n)}:Ex;function Ou(n){for(var l=n.name+"",p=ps[l],x=bt.call(ps,l)?p.length:0;x--;){var S=p[x],P=S.func;if(P==null||P==n)return S.name}return l}function bs(n){var l=bt.call(_,"placeholder")?_:n;return l.placeholder}function Ae(){var n=_.iteratee||vx;return n=n===vx?Yw:n,arguments.length?n(arguments[0],arguments[1]):n}function Fu(n,l){var p=n.__data__;return b6(l)?p[typeof l=="string"?"string":"hash"]:p.map}function ox(n){for(var l=Tr(n),p=l.length;p--;){var x=l[p],S=n[x];l[p]=[x,S,_1(S)]}return l}function tl(n,l){var p=yR(n,l);return Kw(p)?p:e}function d6(n){var l=bt.call(n,qa),p=n[qa];try{n[qa]=e;var x=!0}catch{}var S=fu.call(n);return x&&(l?n[qa]=p:delete n[qa]),S}var nx=Mb?function(n){return n==null?[]:(n=wt(n),ji(Mb(n),function(l){return Pw.call(n,l)}))}:wx,T1=Mb?function(n){for(var l=[];n;)Ji(l,nx(n)),n=bu(n);return l}:wx,Br=Qr;(Lb&&Br(new Lb(new ArrayBuffer(1)))!=as||sd&&Br(new sd)!=er||Rb&&Br(Rb.resolve())!=nu||us&&Br(new us)!=wr||cd&&Br(new cd)!=Xa)&&(Br=function(n){var l=Qr(n),p=l==ar?n.constructor:e,x=p?rl(p):"";if(x)switch(x){case YR:return as;case VR:return er;case XR:return nu;case ZR:return wr;case qR:return Xa}return l});function m6(n,l,p){for(var x=-1,S=p.length;++x<S;){var P=p[x],N=P.size;switch(P.type){case"drop":n+=N;break;case"dropRight":l-=N;break;case"take":l=Fr(l,n+N);break;case"takeRight":n=hr(n,l-N);break}}return{start:n,end:l}}function u6(n){var l=n.match(xL);return l?l[1].split(vL):[]}function C1(n,l,p){l=na(l,n);for(var x=-1,S=l.length,P=!1;++x<S;){var N=Kn(l[x]);if(!(P=n!=null&&p(n,N)))break;n=n[N]}return P||++x!=S?P:(S=n==null?0:n.length,!!S&&Wu(S)&&fi(N,S)&&($e(n)||ol(n)))}function p6(n){var l=n.length,p=new n.constructor(l);return l&&typeof n[0]=="string"&&bt.call(n,"index")&&(p.index=n.index,p.input=n.input),p}function I1(n){return typeof n.constructor=="function"&&!xd(n)?fs(bu(n)):{}}function f6(n,l,p){var x=n.constructor;switch(l){case id:return jb(n);case pe:case ye:return new x(+n);case as:return jD(n,p);case ob:case nb:case ib:case ab:case lb:case sb:case cb:case db:case mb:return s1(n,p);case er:return new x;case Jr:case vn:return new x(n);case Ya:return JD(n);case wr:return new x;case Va:return QD(n)}}function g6(n,l){var p=l.length;if(!p)return n;var x=p-1;return l[x]=(p>1?"& ":"")+l[x],l=l.join(p>2?", ":" "),n.replace(bL,`{
2
2
  /* [wrapped with `+l+`] */
3
- `)}function eL(n){return We(n)||ol(n)||!!(m2&&n&&n[m2])}function hi(n,l){var u=typeof n;return l=l??Ie,!!l&&(u=="number"||u!="symbol"&&uA.test(n))&&n>-1&&n%1==0&&n<l}function ro(n,l,u){if(!Vt(u))return!1;var x=typeof l;return(x=="number"?fo(u)&&hi(l,u.length):x=="string"&&l in u)?wn(u[l],n):!1}function O1(n,l){if(We(n))return!1;var u=typeof n;return u=="number"||u=="symbol"||u=="boolean"||n==null||ko(n)?!0:q8.test(n)||!j8.test(n)||l!=null&&n in Tt(l)}function tL(n){var l=typeof n;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?n!=="__proto__":n===null}function F1(n){var l=Tu(n),u=k[l];if(typeof u!="function"||!(l in rt.prototype))return!1;if(n===u)return!0;var x=R1(u);return!!x&&n===x[0]}function rL(n){return!!l2&&l2 in n}var oL=tu?gi:e0;function rd(n){var l=n&&n.constructor,u=typeof l=="function"&&l.prototype||ns;return n===u}function lE(n){return n===n&&!Vt(n)}function sE(n,l){return function(u){return u==null?!1:u[n]===l&&(l!==e||n in Tt(u))}}function nL(n){var l=Lu(n,function(x){return u.size===c&&u.clear(),x}),u=l.cache;return l}function iL(n,l){var u=n[1],x=l[1],T=u|x,L=T<(y|w|$),O=x==$&&u==M||x==$&&u==D&&n[7].length<=l[8]||x==($|D)&&l[7].length<=l[8]&&u==M;if(!(L||O))return n;x&y&&(n[2]=l[2],T|=u&y?0:C);var F=l[3];if(F){var U=n[3];n[3]=U?G2(U,F,l[4]):F,n[4]=U?ta(n[3],d):l[4]}return F=l[5],F&&(U=n[5],n[5]=U?V2(U,F,l[6]):F,n[6]=U?ta(n[5],d):l[6]),F=l[7],F&&(n[7]=F),x&$&&(n[8]=n[8]==null?l[8]:zr(n[8],l[8])),n[9]==null&&(n[9]=l[9]),n[0]=l[0],n[1]=T,n}function aL(n){var l=[];if(n!=null)for(var u in Tt(n))l.push(u);return l}function lL(n){return ou.call(n)}function cE(n,l,u){return l=br(l===e?n.length-1:l,0),function(){for(var x=arguments,T=-1,L=br(x.length-l,0),O=j(L);++T<L;)O[T]=x[l+T];T=-1;for(var F=j(l+1);++T<l;)F[T]=x[T];return F[l]=u(O),So(n,this,F)}}function dE(n,l){return l.length<2?n:el(n,Uo(l,0,-1))}function sL(n,l){for(var u=n.length,x=zr(l.length,u),T=po(n);x--;){var L=l[x];n[x]=hi(L,u)?T[L]:e}return n}function z1(n,l){if(!(l==="constructor"&&typeof n[l]=="function")&&l!="__proto__")return n[l]}var mE=pE(D2),od=C7||function(n,l){return wr.setTimeout(n,l)},B1=pE(LM);function uE(n,l,u){var x=l+"";return B1(n,QM(x,cL(jM(x),u)))}function pE(n){var l=0,u=0;return function(){var x=k7(),T=te-(x-u);if(u=x,T>0){if(++l>=V)return arguments[0]}else l=0;return n.apply(e,arguments)}}function ku(n,l){var u=-1,x=n.length,T=x-1;for(l=l===e?x:l;++u<l;){var L=E1(u,T),O=n[L];n[L]=n[u],n[u]=O}return n.length=l,n}var fE=nL(function(n){var l=[];return n.charCodeAt(0)===46&&l.push(""),n.replace(J8,function(u,x,T,L){l.push(T?L.replace(aA,"$1"):x||u)}),l});function Zn(n){if(typeof n=="string"||ko(n))return n;var l=n+"";return l=="0"&&1/n==-Ee?"-0":l}function rl(n){if(n!=null){try{return ru.call(n)}catch{}try{return n+""}catch{}}return""}function cL(n,l){return zo(ce,function(u){var x="_."+u[0];l&u[1]&&!qm(n,x)&&n.push(x)}),n.sort()}function hE(n){if(n instanceof rt)return n.clone();var l=new $o(n.__wrapped__,n.__chain__);return l.__actions__=po(n.__actions__),l.__index__=n.__index__,l.__values__=n.__values__,l}function dL(n,l,u){(u?ro(n,l,u):l===e)?l=1:l=br(Ke(l),0);var x=n==null?0:n.length;if(!x||l<1)return[];for(var T=0,L=0,O=j(cu(x/l));T<x;)O[L++]=Uo(n,T,T+=l);return O}function mL(n){for(var l=-1,u=n==null?0:n.length,x=0,T=[];++l<u;){var L=n[l];L&&(T[x++]=L)}return T}function uL(){var n=arguments.length;if(!n)return[];for(var l=j(n-1),u=arguments[0],x=n;x--;)l[x-1]=arguments[x];return ea(We(u)?po(u):[u],Ar(l,1))}var pL=Xe(function(n,l){return rr(n)?qc(n,Ar(l,1,rr,!0)):[]}),fL=Xe(function(n,l){var u=Wo(l);return rr(u)&&(u=e),rr(n)?qc(n,Ar(l,1,rr,!0),Le(u,2)):[]}),hL=Xe(function(n,l){var u=Wo(l);return rr(u)&&(u=e),rr(n)?qc(n,Ar(l,1,rr,!0),e,u):[]});function gL(n,l,u){var x=n==null?0:n.length;return x?(l=u||l===e?1:Ke(l),Uo(n,l<0?0:l,x)):[]}function bL(n,l,u){var x=n==null?0:n.length;return x?(l=u||l===e?1:Ke(l),l=x-l,Uo(n,0,l<0?0:l)):[]}function xL(n,l){return n&&n.length?vu(n,Le(l,3),!0,!0):[]}function vL(n,l){return n&&n.length?vu(n,Le(l,3),!0):[]}function yL(n,l,u,x){var T=n==null?0:n.length;return T?(u&&typeof u!="number"&&ro(n,l,u)&&(u=0,x=T),uM(n,l,u,x)):[]}function gE(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var T=u==null?0:Ke(u);return T<0&&(T=br(x+T,0)),Jm(n,Le(l,3),T)}function bE(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var T=x-1;return u!==e&&(T=Ke(u),T=u<0?br(x+T,0):zr(T,x-1)),Jm(n,Le(l,3),T,!0)}function xE(n){var l=n==null?0:n.length;return l?Ar(n,1):[]}function EL(n){var l=n==null?0:n.length;return l?Ar(n,Ee):[]}function wL(n,l){var u=n==null?0:n.length;return u?(l=l===e?1:Ke(l),Ar(n,l)):[]}function CL(n){for(var l=-1,u=n==null?0:n.length,x={};++l<u;){var T=n[l];x[T[0]]=T[1]}return x}function vE(n){return n&&n.length?n[0]:e}function SL(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var T=u==null?0:Ke(u);return T<0&&(T=br(x+T,0)),ts(n,l,T)}function TL(n){var l=n==null?0:n.length;return l?Uo(n,0,-1):[]}var IL=Xe(function(n){var l=Ht(n,I1);return l.length&&l[0]===n[0]?g1(l):[]}),kL=Xe(function(n){var l=Wo(n),u=Ht(n,I1);return l===Wo(u)?l=e:u.pop(),u.length&&u[0]===n[0]?g1(u,Le(l,2)):[]}),_L=Xe(function(n){var l=Wo(n),u=Ht(n,I1);return l=typeof l=="function"?l:e,l&&u.pop(),u.length&&u[0]===n[0]?g1(u,e,l):[]});function AL(n,l){return n==null?"":T7.call(n,l)}function Wo(n){var l=n==null?0:n.length;return l?n[l-1]:e}function ML(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var T=x;return u!==e&&(T=Ke(u),T=T<0?br(x+T,0):zr(T,x-1)),l===l?c7(n,l,T):Jm(n,Qy,T,!0)}function LL(n,l){return n&&n.length?M2(n,Ke(l)):e}var PL=Xe(yE);function yE(n,l){return n&&n.length&&l&&l.length?y1(n,l):n}function RL(n,l,u){return n&&n.length&&l&&l.length?y1(n,l,Le(u,2)):n}function DL(n,l,u){return n&&n.length&&l&&l.length?y1(n,l,e,u):n}var NL=fi(function(n,l){var u=n==null?0:n.length,x=u1(n,l);return R2(n,Ht(l,function(T){return hi(T,u)?+T:T}).sort(W2)),x});function OL(n,l){var u=[];if(!(n&&n.length))return u;var x=-1,T=[],L=n.length;for(l=Le(l,3);++x<L;){var O=n[x];l(O,x,n)&&(u.push(O),T.push(x))}return R2(n,T),u}function $1(n){return n==null?n:A7.call(n)}function FL(n,l,u){var x=n==null?0:n.length;return x?(u&&typeof u!="number"&&ro(n,l,u)?(l=0,u=x):(l=l==null?0:Ke(l),u=u===e?x:Ke(u)),Uo(n,l,u)):[]}function zL(n,l){return xu(n,l)}function BL(n,l,u){return C1(n,l,Le(u,2))}function $L(n,l){var u=n==null?0:n.length;if(u){var x=xu(n,l);if(x<u&&wn(n[x],l))return x}return-1}function HL(n,l){return xu(n,l,!0)}function UL(n,l,u){return C1(n,l,Le(u,2),!0)}function WL(n,l){var u=n==null?0:n.length;if(u){var x=xu(n,l,!0)-1;if(wn(n[x],l))return x}return-1}function GL(n){return n&&n.length?N2(n):[]}function VL(n,l){return n&&n.length?N2(n,Le(l,2)):[]}function KL(n){var l=n==null?0:n.length;return l?Uo(n,1,l):[]}function YL(n,l,u){return n&&n.length?(l=u||l===e?1:Ke(l),Uo(n,0,l<0?0:l)):[]}function ZL(n,l,u){var x=n==null?0:n.length;return x?(l=u||l===e?1:Ke(l),l=x-l,Uo(n,l<0?0:l,x)):[]}function XL(n,l){return n&&n.length?vu(n,Le(l,3),!1,!0):[]}function jL(n,l){return n&&n.length?vu(n,Le(l,3)):[]}var qL=Xe(function(n){return ia(Ar(n,1,rr,!0))}),JL=Xe(function(n){var l=Wo(n);return rr(l)&&(l=e),ia(Ar(n,1,rr,!0),Le(l,2))}),QL=Xe(function(n){var l=Wo(n);return l=typeof l=="function"?l:e,ia(Ar(n,1,rr,!0),e,l)});function eP(n){return n&&n.length?ia(n):[]}function tP(n,l){return n&&n.length?ia(n,Le(l,2)):[]}function rP(n,l){return l=typeof l=="function"?l:e,n&&n.length?ia(n,e,l):[]}function H1(n){if(!(n&&n.length))return[];var l=0;return n=Qi(n,function(u){if(rr(u))return l=br(u.length,l),!0}),n1(l,function(u){return Ht(n,t1(u))})}function EE(n,l){if(!(n&&n.length))return[];var u=H1(n);return l==null?u:Ht(u,function(x){return So(l,e,x)})}var oP=Xe(function(n,l){return rr(n)?qc(n,l):[]}),nP=Xe(function(n){return T1(Qi(n,rr))}),iP=Xe(function(n){var l=Wo(n);return rr(l)&&(l=e),T1(Qi(n,rr),Le(l,2))}),aP=Xe(function(n){var l=Wo(n);return l=typeof l=="function"?l:e,T1(Qi(n,rr),e,l)}),lP=Xe(H1);function sP(n,l){return B2(n||[],l||[],jc)}function cP(n,l){return B2(n||[],l||[],ed)}var dP=Xe(function(n){var l=n.length,u=l>1?n[l-1]:e;return u=typeof u=="function"?(n.pop(),u):e,EE(n,u)});function wE(n){var l=k(n);return l.__chain__=!0,l}function mP(n,l){return l(n),n}function _u(n,l){return l(n)}var uP=fi(function(n){var l=n.length,u=l?n[0]:0,x=this.__wrapped__,T=function(L){return u1(L,n)};return l>1||this.__actions__.length||!(x instanceof rt)||!hi(u)?this.thru(T):(x=x.slice(u,+u+(l?1:0)),x.__actions__.push({func:_u,args:[T],thisArg:e}),new $o(x,this.__chain__).thru(function(L){return l&&!L.length&&L.push(e),L}))});function pP(){return wE(this)}function fP(){return new $o(this.value(),this.__chain__)}function hP(){this.__values__===e&&(this.__values__=OE(this.value()));var n=this.__index__>=this.__values__.length,l=n?e:this.__values__[this.__index__++];return{done:n,value:l}}function gP(){return this}function bP(n){for(var l,u=this;u instanceof pu;){var x=hE(u);x.__index__=0,x.__values__=e,l?T.__wrapped__=x:l=x;var T=x;u=u.__wrapped__}return T.__wrapped__=n,l}function xP(){var n=this.__wrapped__;if(n instanceof rt){var l=n;return this.__actions__.length&&(l=new rt(this)),l=l.reverse(),l.__actions__.push({func:_u,args:[$1],thisArg:e}),new $o(l,this.__chain__)}return this.thru($1)}function vP(){return z2(this.__wrapped__,this.__actions__)}var yP=yu(function(n,l,u){Et.call(n,u)?++n[u]:ui(n,u,1)});function EP(n,l,u){var x=We(n)?qy:mM;return u&&ro(n,l,u)&&(l=e),x(n,Le(l,3))}function wP(n,l){var u=We(n)?Qi:E2;return u(n,Le(l,3))}var CP=X2(gE),SP=X2(bE);function TP(n,l){return Ar(Au(n,l),1)}function IP(n,l){return Ar(Au(n,l),Ee)}function kP(n,l,u){return u=u===e?1:Ke(u),Ar(Au(n,l),u)}function CE(n,l){var u=We(n)?zo:na;return u(n,Le(l,3))}function SE(n,l){var u=We(n)?KA:y2;return u(n,Le(l,3))}var _P=yu(function(n,l,u){Et.call(n,u)?n[u].push(l):ui(n,u,[l])});function AP(n,l,u,x){n=fo(n)?n:us(n),u=u&&!x?Ke(u):0;var T=n.length;return u<0&&(u=br(T+u,0)),Du(n)?u<=T&&n.indexOf(l,u)>-1:!!T&&ts(n,l,u)>-1}var MP=Xe(function(n,l,u){var x=-1,T=typeof l=="function",L=fo(n)?j(n.length):[];return na(n,function(O){L[++x]=T?So(l,O,u):Jc(O,l,u)}),L}),LP=yu(function(n,l,u){ui(n,u,l)});function Au(n,l){var u=We(n)?Ht:k2;return u(n,Le(l,3))}function PP(n,l,u,x){return n==null?[]:(We(l)||(l=l==null?[]:[l]),u=x?e:u,We(u)||(u=u==null?[]:[u]),L2(n,l,u))}var RP=yu(function(n,l,u){n[u?0:1].push(l)},function(){return[[],[]]});function DP(n,l,u){var x=We(n)?Qg:t2,T=arguments.length<3;return x(n,Le(l,4),u,T,na)}function NP(n,l,u){var x=We(n)?YA:t2,T=arguments.length<3;return x(n,Le(l,4),u,T,y2)}function OP(n,l){var u=We(n)?Qi:E2;return u(n,Pu(Le(l,3)))}function FP(n){var l=We(n)?g2:AM;return l(n)}function zP(n,l,u){(u?ro(n,l,u):l===e)?l=1:l=Ke(l);var x=We(n)?aM:MM;return x(n,l)}function BP(n){var l=We(n)?lM:PM;return l(n)}function $P(n){if(n==null)return 0;if(fo(n))return Du(n)?os(n):n.length;var l=Br(n);return l==$t||l==Er?n.size:x1(n).length}function HP(n,l,u){var x=We(n)?e1:RM;return u&&ro(n,l,u)&&(l=e),x(n,Le(l,3))}var UP=Xe(function(n,l){if(n==null)return[];var u=l.length;return u>1&&ro(n,l[0],l[1])?l=[]:u>2&&ro(l[0],l[1],l[2])&&(l=[l[0]]),L2(n,Ar(l,1),[])}),Mu=w7||function(){return wr.Date.now()};function WP(n,l){if(typeof l!="function")throw new Bo(i);return n=Ke(n),function(){if(--n<1)return l.apply(this,arguments)}}function TE(n,l,u){return l=u?e:l,l=n&&l==null?n.length:l,pi(n,$,e,e,e,e,l)}function IE(n,l){var u;if(typeof l!="function")throw new Bo(i);return n=Ke(n),function(){return--n>0&&(u=l.apply(this,arguments)),n<=1&&(l=e),u}}var U1=Xe(function(n,l,u){var x=y;if(u.length){var T=ta(u,ds(U1));x|=I}return pi(n,x,l,u,T)}),kE=Xe(function(n,l,u){var x=y|w;if(u.length){var T=ta(u,ds(kE));x|=I}return pi(l,x,n,u,T)});function _E(n,l,u){l=u?e:l;var x=pi(n,M,e,e,e,e,e,l);return x.placeholder=_E.placeholder,x}function AE(n,l,u){l=u?e:l;var x=pi(n,_,e,e,e,e,e,l);return x.placeholder=AE.placeholder,x}function ME(n,l,u){var x,T,L,O,F,U,re=0,oe=!1,le=!1,be=!0;if(typeof n!="function")throw new Bo(i);l=Go(l)||0,Vt(u)&&(oe=!!u.leading,le="maxWait"in u,L=le?br(Go(u.maxWait)||0,l):L,be="trailing"in u?!!u.trailing:be);function Te(or){var Cn=x,xi=T;return x=T=e,re=or,O=n.apply(xi,Cn),O}function Pe(or){return re=or,F=od(et,l),oe?Te(or):O}function Ye(or){var Cn=or-U,xi=or-re,XE=l-Cn;return le?zr(XE,L-xi):XE}function Re(or){var Cn=or-U,xi=or-re;return U===e||Cn>=l||Cn<0||le&&xi>=L}function et(){var or=Mu();if(Re(or))return nt(or);F=od(et,Ye(or))}function nt(or){return F=e,be&&x?Te(or):(x=T=e,O)}function _o(){F!==e&&$2(F),re=0,x=U=T=F=e}function oo(){return F===e?O:nt(Mu())}function Ao(){var or=Mu(),Cn=Re(or);if(x=arguments,T=this,U=or,Cn){if(F===e)return Pe(U);if(le)return $2(F),F=od(et,l),Te(U)}return F===e&&(F=od(et,l)),O}return Ao.cancel=_o,Ao.flush=oo,Ao}var GP=Xe(function(n,l){return v2(n,1,l)}),VP=Xe(function(n,l,u){return v2(n,Go(l)||0,u)});function KP(n){return pi(n,z)}function Lu(n,l){if(typeof n!="function"||l!=null&&typeof l!="function")throw new Bo(i);var u=function(){var x=arguments,T=l?l.apply(this,x):x[0],L=u.cache;if(L.has(T))return L.get(T);var O=n.apply(this,x);return u.cache=L.set(T,O)||L,O};return u.cache=new(Lu.Cache||mi),u}Lu.Cache=mi;function Pu(n){if(typeof n!="function")throw new Bo(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 YP(n){return IE(2,n)}var ZP=DM(function(n,l){l=l.length==1&&We(l[0])?Ht(l[0],To(Le())):Ht(Ar(l,1),To(Le()));var u=l.length;return Xe(function(x){for(var T=-1,L=zr(x.length,u);++T<L;)x[T]=l[T].call(this,x[T]);return So(n,this,x)})}),W1=Xe(function(n,l){var u=ta(l,ds(W1));return pi(n,I,e,l,u)}),LE=Xe(function(n,l){var u=ta(l,ds(LE));return pi(n,N,e,l,u)}),XP=fi(function(n,l){return pi(n,D,e,e,e,l)});function jP(n,l){if(typeof n!="function")throw new Bo(i);return l=l===e?l:Ke(l),Xe(n,l)}function qP(n,l){if(typeof n!="function")throw new Bo(i);return l=l==null?0:br(Ke(l),0),Xe(function(u){var x=u[l],T=la(u,0,l);return x&&ea(T,x),So(n,this,T)})}function JP(n,l,u){var x=!0,T=!0;if(typeof n!="function")throw new Bo(i);return Vt(u)&&(x="leading"in u?!!u.leading:x,T="trailing"in u?!!u.trailing:T),ME(n,l,{leading:x,maxWait:l,trailing:T})}function QP(n){return TE(n,1)}function e9(n,l){return W1(k1(l),n)}function t9(){if(!arguments.length)return[];var n=arguments[0];return We(n)?n:[n]}function r9(n){return Ho(n,m)}function o9(n,l){return l=typeof l=="function"?l:e,Ho(n,m,l)}function n9(n){return Ho(n,p|m)}function i9(n,l){return l=typeof l=="function"?l:e,Ho(n,p|m,l)}function a9(n,l){return l==null||x2(n,l,Cr(l))}function wn(n,l){return n===l||n!==n&&l!==l}var l9=Su(h1),s9=Su(function(n,l){return n>=l}),ol=S2(function(){return arguments}())?S2:function(n){return qt(n)&&Et.call(n,"callee")&&!d2.call(n,"callee")},We=j.isArray,c9=Vy?To(Vy):bM;function fo(n){return n!=null&&Ru(n.length)&&!gi(n)}function rr(n){return qt(n)&&fo(n)}function d9(n){return n===!0||n===!1||qt(n)&&to(n)==ge}var sa=S7||e0,m9=Ky?To(Ky):xM;function u9(n){return qt(n)&&n.nodeType===1&&!nd(n)}function p9(n){if(n==null)return!0;if(fo(n)&&(We(n)||typeof n=="string"||typeof n.splice=="function"||sa(n)||ms(n)||ol(n)))return!n.length;var l=Br(n);if(l==$t||l==Er)return!n.size;if(rd(n))return!x1(n).length;for(var u in n)if(Et.call(n,u))return!1;return!0}function f9(n,l){return Qc(n,l)}function h9(n,l,u){u=typeof u=="function"?u:e;var x=u?u(n,l):e;return x===e?Qc(n,l,e,u):!!x}function G1(n){if(!qt(n))return!1;var l=to(n);return l==Ct||l==_t||typeof n.message=="string"&&typeof n.name=="string"&&!nd(n)}function g9(n){return typeof n=="number"&&u2(n)}function gi(n){if(!Vt(n))return!1;var l=to(n);return l==Pt||l==yt||l==ue||l==Pg}function PE(n){return typeof n=="number"&&n==Ke(n)}function Ru(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=Ie}function Vt(n){var l=typeof n;return n!=null&&(l=="object"||l=="function")}function qt(n){return n!=null&&typeof n=="object"}var RE=Yy?To(Yy):yM;function b9(n,l){return n===l||b1(n,l,D1(l))}function x9(n,l,u){return u=typeof u=="function"?u:e,b1(n,l,D1(l),u)}function v9(n){return DE(n)&&n!=+n}function y9(n){if(oL(n))throw new $e(o);return T2(n)}function E9(n){return n===null}function w9(n){return n==null}function DE(n){return typeof n=="number"||qt(n)&&to(n)==hr}function nd(n){if(!qt(n)||to(n)!=xn)return!1;var l=au(n);if(l===null)return!0;var u=Et.call(l,"constructor")&&l.constructor;return typeof u=="function"&&u instanceof u&&ru.call(u)==x7}var V1=Zy?To(Zy):EM;function C9(n){return PE(n)&&n>=-Ie&&n<=Ie}var NE=Xy?To(Xy):wM;function Du(n){return typeof n=="string"||!We(n)&&qt(n)&&to(n)==vn}function ko(n){return typeof n=="symbol"||qt(n)&&to(n)==Ya}var ms=jy?To(jy):CM;function S9(n){return n===e}function T9(n){return qt(n)&&Br(n)==Za}function I9(n){return qt(n)&&to(n)==Rg}var k9=Su(v1),_9=Su(function(n,l){return n<=l});function OE(n){if(!n)return[];if(fo(n))return Du(n)?yn(n):po(n);if(Vc&&n[Vc])return a7(n[Vc]());var l=Br(n),u=l==$t?a1:l==Er?Qm:us;return u(n)}function bi(n){if(!n)return n===0?n:0;if(n=Go(n),n===Ee||n===-Ee){var l=n<0?-1:1;return l*tt}return n===n?n:0}function Ke(n){var l=bi(n),u=l%1;return l===l?u?l-u:l:0}function FE(n){return n?Qa(Ke(n),0,fe):0}function Go(n){if(typeof n=="number")return n;if(ko(n))return Se;if(Vt(n)){var l=typeof n.valueOf=="function"?n.valueOf():n;n=Vt(l)?l+"":l}if(typeof n!="string")return n===0?n:+n;n=r2(n);var u=cA.test(n);return u||mA.test(n)?WA(n.slice(2),u?2:8):sA.test(n)?Se:+n}function zE(n){return Yn(n,ho(n))}function A9(n){return n?Qa(Ke(n),-Ie,Ie):n===0?n:0}function ht(n){return n==null?"":Io(n)}var M9=ss(function(n,l){if(rd(l)||fo(l)){Yn(l,Cr(l),n);return}for(var u in l)Et.call(l,u)&&jc(n,u,l[u])}),BE=ss(function(n,l){Yn(l,ho(l),n)}),Nu=ss(function(n,l,u,x){Yn(l,ho(l),n,x)}),L9=ss(function(n,l,u,x){Yn(l,Cr(l),n,x)}),P9=fi(u1);function R9(n,l){var u=ls(n);return l==null?u:b2(u,l)}var D9=Xe(function(n,l){n=Tt(n);var u=-1,x=l.length,T=x>2?l[2]:e;for(T&&ro(l[0],l[1],T)&&(x=1);++u<x;)for(var L=l[u],O=ho(L),F=-1,U=O.length;++F<U;){var re=O[F],oe=n[re];(oe===e||wn(oe,ns[re])&&!Et.call(n,re))&&(n[re]=L[re])}return n}),N9=Xe(function(n){return n.push(e,rE),So($E,e,n)});function O9(n,l){return Jy(n,Le(l,3),Kn)}function F9(n,l){return Jy(n,Le(l,3),f1)}function z9(n,l){return n==null?n:p1(n,Le(l,3),ho)}function B9(n,l){return n==null?n:w2(n,Le(l,3),ho)}function $9(n,l){return n&&Kn(n,Le(l,3))}function H9(n,l){return n&&f1(n,Le(l,3))}function U9(n){return n==null?[]:gu(n,Cr(n))}function W9(n){return n==null?[]:gu(n,ho(n))}function K1(n,l,u){var x=n==null?e:el(n,l);return x===e?u:x}function G9(n,l){return n!=null&&iE(n,l,pM)}function Y1(n,l){return n!=null&&iE(n,l,fM)}var V9=q2(function(n,l,u){l!=null&&typeof l.toString!="function"&&(l=ou.call(l)),n[l]=u},X1(go)),K9=q2(function(n,l,u){l!=null&&typeof l.toString!="function"&&(l=ou.call(l)),Et.call(n,l)?n[l].push(u):n[l]=[u]},Le),Y9=Xe(Jc);function Cr(n){return fo(n)?h2(n):x1(n)}function ho(n){return fo(n)?h2(n,!0):SM(n)}function Z9(n,l){var u={};return l=Le(l,3),Kn(n,function(x,T,L){ui(u,l(x,T,L),x)}),u}function X9(n,l){var u={};return l=Le(l,3),Kn(n,function(x,T,L){ui(u,T,l(x,T,L))}),u}var j9=ss(function(n,l,u){bu(n,l,u)}),$E=ss(function(n,l,u,x){bu(n,l,u,x)}),q9=fi(function(n,l){var u={};if(n==null)return u;var x=!1;l=Ht(l,function(L){return L=aa(L,n),x||(x=L.length>1),L}),Yn(n,P1(n),u),x&&(u=Ho(u,p|f|m,VM));for(var T=l.length;T--;)S1(u,l[T]);return u});function J9(n,l){return HE(n,Pu(Le(l)))}var Q9=fi(function(n,l){return n==null?{}:IM(n,l)});function HE(n,l){if(n==null)return{};var u=Ht(P1(n),function(x){return[x]});return l=Le(l),P2(n,u,function(x,T){return l(x,T[0])})}function eR(n,l,u){l=aa(l,n);var x=-1,T=l.length;for(T||(T=1,n=e);++x<T;){var L=n==null?e:n[Zn(l[x])];L===e&&(x=T,L=u),n=gi(L)?L.call(n):L}return n}function tR(n,l,u){return n==null?n:ed(n,l,u)}function rR(n,l,u,x){return x=typeof x=="function"?x:e,n==null?n:ed(n,l,u,x)}var UE=eE(Cr),WE=eE(ho);function oR(n,l,u){var x=We(n),T=x||sa(n)||ms(n);if(l=Le(l,4),u==null){var L=n&&n.constructor;T?u=x?new L:[]:Vt(n)?u=gi(L)?ls(au(n)):{}:u={}}return(T?zo:Kn)(n,function(O,F,U){return l(u,O,F,U)}),u}function nR(n,l){return n==null?!0:S1(n,l)}function iR(n,l,u){return n==null?n:F2(n,l,k1(u))}function aR(n,l,u,x){return x=typeof x=="function"?x:e,n==null?n:F2(n,l,k1(u),x)}function us(n){return n==null?[]:i1(n,Cr(n))}function lR(n){return n==null?[]:i1(n,ho(n))}function sR(n,l,u){return u===e&&(u=l,l=e),u!==e&&(u=Go(u),u=u===u?u:0),l!==e&&(l=Go(l),l=l===l?l:0),Qa(Go(n),l,u)}function cR(n,l,u){return l=bi(l),u===e?(u=l,l=0):u=bi(u),n=Go(n),hM(n,l,u)}function dR(n,l,u){if(u&&typeof u!="boolean"&&ro(n,l,u)&&(l=u=e),u===e&&(typeof l=="boolean"?(u=l,l=e):typeof n=="boolean"&&(u=n,n=e)),n===e&&l===e?(n=0,l=1):(n=bi(n),l===e?(l=n,n=0):l=bi(l)),n>l){var x=n;n=l,l=x}if(u||n%1||l%1){var T=p2();return zr(n+T*(l-n+UA("1e-"+((T+"").length-1))),l)}return E1(n,l)}var mR=cs(function(n,l,u){return l=l.toLowerCase(),n+(u?GE(l):l)});function GE(n){return Z1(ht(n).toLowerCase())}function VE(n){return n=ht(n),n&&n.replace(pA,t7).replace(PA,"")}function uR(n,l,u){n=ht(n),l=Io(l);var x=n.length;u=u===e?x:Qa(Ke(u),0,x);var T=u;return u-=l.length,u>=0&&n.slice(u,T)==l}function pR(n){return n=ht(n),n&&Y8.test(n)?n.replace(wy,r7):n}function fR(n){return n=ht(n),n&&Q8.test(n)?n.replace(Wg,"\\$&"):n}var hR=cs(function(n,l,u){return n+(u?"-":"")+l.toLowerCase()}),gR=cs(function(n,l,u){return n+(u?" ":"")+l.toLowerCase()}),bR=Z2("toLowerCase");function xR(n,l,u){n=ht(n),l=Ke(l);var x=l?os(n):0;if(!l||x>=l)return n;var T=(l-x)/2;return Cu(du(T),u)+n+Cu(cu(T),u)}function vR(n,l,u){n=ht(n),l=Ke(l);var x=l?os(n):0;return l&&x<l?n+Cu(l-x,u):n}function yR(n,l,u){n=ht(n),l=Ke(l);var x=l?os(n):0;return l&&x<l?Cu(l-x,u)+n:n}function ER(n,l,u){return u||l==null?l=0:l&&(l=+l),_7(ht(n).replace(Gg,""),l||0)}function wR(n,l,u){return(u?ro(n,l,u):l===e)?l=1:l=Ke(l),w1(ht(n),l)}function CR(){var n=arguments,l=ht(n[0]);return n.length<3?l:l.replace(n[1],n[2])}var SR=cs(function(n,l,u){return n+(u?"_":"")+l.toLowerCase()});function TR(n,l,u){return u&&typeof u!="number"&&ro(n,l,u)&&(l=u=e),u=u===e?fe:u>>>0,u?(n=ht(n),n&&(typeof l=="string"||l!=null&&!V1(l))&&(l=Io(l),!l&&rs(n))?la(yn(n),0,u):n.split(l,u)):[]}var IR=cs(function(n,l,u){return n+(u?" ":"")+Z1(l)});function kR(n,l,u){return n=ht(n),u=u==null?0:Qa(Ke(u),0,n.length),l=Io(l),n.slice(u,u+l.length)==l}function _R(n,l,u){var x=k.templateSettings;u&&ro(n,l,u)&&(l=e),n=ht(n),l=Nu({},l,x,tE);var T=Nu({},l.imports,x.imports,tE),L=Cr(T),O=i1(T,L),F,U,re=0,oe=l.interpolate||Zm,le="__p += '",be=l1((l.escape||Zm).source+"|"+oe.source+"|"+(oe===Cy?lA:Zm).source+"|"+(l.evaluate||Zm).source+"|$","g"),Te="//# sourceURL="+(Et.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++FA+"]")+`
4
- `;n.replace(be,function(Re,et,nt,_o,oo,Ao){return nt||(nt=_o),le+=n.slice(re,Ao).replace(fA,o7),et&&(F=!0,le+=`' +
5
- __e(`+et+`) +
6
- '`),oo&&(U=!0,le+=`';
7
- `+oo+`;
8
- __p += '`),nt&&(le+=`' +
9
- ((__t = (`+nt+`)) == null ? '' : __t) +
10
- '`),re=Ao+Re.length,Re}),le+=`';
11
- `;var Pe=Et.call(l,"variable")&&l.variable;if(!Pe)le=`with (obj) {
12
- `+le+`
3
+ `)}function h6(n){return $e(n)||ol(n)||!!(Mw&&n&&n[Mw])}function fi(n,l){var p=typeof n;return l=l??_e,!!l&&(p=="number"||p!="symbol"&&AL.test(n))&&n>-1&&n%1==0&&n<l}function eo(n,l,p){if(!Ut(p))return!1;var x=typeof l;return(x=="number"?fo(p)&&fi(l,p.length):x=="string"&&l in p)?wn(p[l],n):!1}function ix(n,l){if($e(n))return!1;var p=typeof n;return p=="number"||p=="symbol"||p=="boolean"||n==null||Mo(n)?!0:pL.test(n)||!uL.test(n)||l!=null&&n in wt(l)}function b6(n){var l=typeof n;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?n!=="__proto__":n===null}function ax(n){var l=Ou(n),p=_[l];if(typeof p!="function"||!(l in Je.prototype))return!1;if(n===p)return!0;var x=rx(p);return!!x&&n===x[0]}function x6(n){return!!_w&&_w in n}var v6=uu?gi:Sx;function xd(n){var l=n&&n.constructor,p=typeof l=="function"&&l.prototype||ms;return n===p}function _1(n){return n===n&&!Ut(n)}function A1(n,l){return function(p){return p==null?!1:p[n]===l&&(l!==e||n in wt(p))}}function y6(n){var l=Uu(n,function(x){return p.size===c&&p.clear(),x}),p=l.cache;return l}function E6(n,l){var p=n[1],x=l[1],S=p|x,P=S<(b|y|z),N=x==z&&p==k||x==z&&p==L&&n[7].length<=l[8]||x==(z|L)&&l[7].length<=l[8]&&p==k;if(!(P||N))return n;x&b&&(n[2]=l[2],S|=p&b?0:T);var B=l[3];if(B){var H=n[3];n[3]=H?d1(H,B,l[4]):B,n[4]=H?Qi(n[3],d):l[4]}return B=l[5],B&&(H=n[5],n[5]=H?m1(H,B,l[6]):B,n[6]=H?Qi(n[5],d):l[6]),B=l[7],B&&(n[7]=B),x&z&&(n[8]=n[8]==null?l[8]:Fr(n[8],l[8])),n[9]==null&&(n[9]=l[9]),n[0]=l[0],n[1]=S,n}function w6(n){var l=[];if(n!=null)for(var p in wt(n))l.push(p);return l}function S6(n){return fu.call(n)}function k1(n,l,p){return l=hr(l===e?n.length-1:l,0),function(){for(var x=arguments,S=-1,P=hr(x.length-l,0),N=Z(P);++S<P;)N[S]=x[l+S];S=-1;for(var B=Z(l+1);++S<l;)B[S]=x[S];return B[l]=p(N),Ao(n,this,B)}}function P1(n,l){return l.length<2?n:el(n,Yo(l,0,-1))}function T6(n,l){for(var p=n.length,x=Fr(l.length,p),S=po(n);x--;){var P=l[x];n[x]=fi(P,p)?S[P]:e}return n}function lx(n,l){if(!(l==="constructor"&&typeof n[l]=="function")&&l!="__proto__")return n[l]}var M1=R1(e1),vd=zR||function(n,l){return Sr.setTimeout(n,l)},sx=R1(VD);function L1(n,l,p){var x=l+"";return sx(n,g6(x,C6(u6(x),p)))}function R1(n){var l=0,p=0;return function(){var x=GR(),S=Q-(x-p);if(p=x,S>0){if(++l>=U)return arguments[0]}else l=0;return n.apply(e,arguments)}}function Bu(n,l){var p=-1,x=n.length,S=x-1;for(l=l===e?x:l;++p<l;){var P=Wb(p,S),N=n[P];n[P]=n[p],n[p]=N}return n.length=l,n}var D1=y6(function(n){var l=[];return n.charCodeAt(0)===46&&l.push(""),n.replace(fL,function(p,x,S,P){l.push(S?P.replace(wL,"$1"):x||p)}),l});function Kn(n){if(typeof n=="string"||Mo(n))return n;var l=n+"";return l=="0"&&1/n==-be?"-0":l}function rl(n){if(n!=null){try{return pu.call(n)}catch{}try{return n+""}catch{}}return""}function C6(n,l){return Uo(oe,function(p){var x="_."+p[0];l&p[1]&&!su(n,x)&&n.push(x)}),n.sort()}function N1(n){if(n instanceof Je)return n.clone();var l=new Wo(n.__wrapped__,n.__chain__);return l.__actions__=po(n.__actions__),l.__index__=n.__index__,l.__values__=n.__values__,l}function I6(n,l,p){(p?eo(n,l,p):l===e)?l=1:l=hr(Ue(l),0);var x=n==null?0:n.length;if(!x||l<1)return[];for(var S=0,P=0,N=Z(yu(x/l));S<x;)N[P++]=Yo(n,S,S+=l);return N}function _6(n){for(var l=-1,p=n==null?0:n.length,x=0,S=[];++l<p;){var P=n[l];P&&(S[x++]=P)}return S}function A6(){var n=arguments.length;if(!n)return[];for(var l=Z(n-1),p=arguments[0],x=n;x--;)l[x-1]=arguments[x];return Ji($e(p)?po(p):[p],Mr(l,1))}var k6=Ke(function(n,l){return tr(n)?pd(n,Mr(l,1,tr,!0)):[]}),P6=Ke(function(n,l){var p=Vo(l);return tr(p)&&(p=e),tr(n)?pd(n,Mr(l,1,tr,!0),Ae(p,2)):[]}),M6=Ke(function(n,l){var p=Vo(l);return tr(p)&&(p=e),tr(n)?pd(n,Mr(l,1,tr,!0),e,p):[]});function L6(n,l,p){var x=n==null?0:n.length;return x?(l=p||l===e?1:Ue(l),Yo(n,l<0?0:l,x)):[]}function R6(n,l,p){var x=n==null?0:n.length;return x?(l=p||l===e?1:Ue(l),l=x-l,Yo(n,0,l<0?0:l)):[]}function D6(n,l){return n&&n.length?Pu(n,Ae(l,3),!0,!0):[]}function N6(n,l){return n&&n.length?Pu(n,Ae(l,3),!0):[]}function O6(n,l,p,x){var S=n==null?0:n.length;return S?(p&&typeof p!="number"&&eo(n,l,p)&&(p=0,x=S),AD(n,l,p,x)):[]}function O1(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=p==null?0:Ue(p);return S<0&&(S=hr(x+S,0)),cu(n,Ae(l,3),S)}function F1(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=x-1;return p!==e&&(S=Ue(p),S=p<0?hr(x+S,0):Fr(S,x-1)),cu(n,Ae(l,3),S,!0)}function B1(n){var l=n==null?0:n.length;return l?Mr(n,1):[]}function F6(n){var l=n==null?0:n.length;return l?Mr(n,be):[]}function B6(n,l){var p=n==null?0:n.length;return p?(l=l===e?1:Ue(l),Mr(n,l)):[]}function z6(n){for(var l=-1,p=n==null?0:n.length,x={};++l<p;){var S=n[l];x[S[0]]=S[1]}return x}function z1(n){return n&&n.length?n[0]:e}function $6(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=p==null?0:Ue(p);return S<0&&(S=hr(x+S,0)),ss(n,l,S)}function H6(n){var l=n==null?0:n.length;return l?Yo(n,0,-1):[]}var U6=Ke(function(n){var l=Bt(n,Zb);return l.length&&l[0]===n[0]?zb(l):[]}),G6=Ke(function(n){var l=Vo(n),p=Bt(n,Zb);return l===Vo(p)?l=e:p.pop(),p.length&&p[0]===n[0]?zb(p,Ae(l,2)):[]}),W6=Ke(function(n){var l=Vo(n),p=Bt(n,Zb);return l=typeof l=="function"?l:e,l&&p.pop(),p.length&&p[0]===n[0]?zb(p,e,l):[]});function K6(n,l){return n==null?"":HR.call(n,l)}function Vo(n){var l=n==null?0:n.length;return l?n[l-1]:e}function Y6(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=x;return p!==e&&(S=Ue(p),S=S<0?hr(x+S,0):Fr(S,x-1)),l===l?CR(n,l,S):cu(n,vw,S,!0)}function V6(n,l){return n&&n.length?qw(n,Ue(l)):e}var X6=Ke($1);function $1(n,l){return n&&n.length&&l&&l.length?Gb(n,l):n}function Z6(n,l,p){return n&&n.length&&l&&l.length?Gb(n,l,Ae(p,2)):n}function q6(n,l,p){return n&&n.length&&l&&l.length?Gb(n,l,e,p):n}var j6=pi(function(n,l){var p=n==null?0:n.length,x=Nb(n,l);return Qw(n,Bt(l,function(S){return fi(S,p)?+S:S}).sort(c1)),x});function J6(n,l){var p=[];if(!(n&&n.length))return p;var x=-1,S=[],P=n.length;for(l=Ae(l,3);++x<P;){var N=n[x];l(N,x,n)&&(p.push(N),S.push(x))}return Qw(n,S),p}function cx(n){return n==null?n:KR.call(n)}function Q6(n,l,p){var x=n==null?0:n.length;return x?(p&&typeof p!="number"&&eo(n,l,p)?(l=0,p=x):(l=l==null?0:Ue(l),p=p===e?x:Ue(p)),Yo(n,l,p)):[]}function e4(n,l){return ku(n,l)}function t4(n,l,p){return Yb(n,l,Ae(p,2))}function r4(n,l){var p=n==null?0:n.length;if(p){var x=ku(n,l);if(x<p&&wn(n[x],l))return x}return-1}function o4(n,l){return ku(n,l,!0)}function n4(n,l,p){return Yb(n,l,Ae(p,2),!0)}function i4(n,l){var p=n==null?0:n.length;if(p){var x=ku(n,l,!0)-1;if(wn(n[x],l))return x}return-1}function a4(n){return n&&n.length?t1(n):[]}function l4(n,l){return n&&n.length?t1(n,Ae(l,2)):[]}function s4(n){var l=n==null?0:n.length;return l?Yo(n,1,l):[]}function c4(n,l,p){return n&&n.length?(l=p||l===e?1:Ue(l),Yo(n,0,l<0?0:l)):[]}function d4(n,l,p){var x=n==null?0:n.length;return x?(l=p||l===e?1:Ue(l),l=x-l,Yo(n,l<0?0:l,x)):[]}function m4(n,l){return n&&n.length?Pu(n,Ae(l,3),!1,!0):[]}function u4(n,l){return n&&n.length?Pu(n,Ae(l,3)):[]}var p4=Ke(function(n){return oa(Mr(n,1,tr,!0))}),f4=Ke(function(n){var l=Vo(n);return tr(l)&&(l=e),oa(Mr(n,1,tr,!0),Ae(l,2))}),g4=Ke(function(n){var l=Vo(n);return l=typeof l=="function"?l:e,oa(Mr(n,1,tr,!0),e,l)});function h4(n){return n&&n.length?oa(n):[]}function b4(n,l){return n&&n.length?oa(n,Ae(l,2)):[]}function x4(n,l){return l=typeof l=="function"?l:e,n&&n.length?oa(n,e,l):[]}function dx(n){if(!(n&&n.length))return[];var l=0;return n=ji(n,function(p){if(tr(p))return l=hr(p.length,l),!0}),_b(l,function(p){return Bt(n,Tb(p))})}function H1(n,l){if(!(n&&n.length))return[];var p=dx(n);return l==null?p:Bt(p,function(x){return Ao(l,e,x)})}var v4=Ke(function(n,l){return tr(n)?pd(n,l):[]}),y4=Ke(function(n){return Xb(ji(n,tr))}),E4=Ke(function(n){var l=Vo(n);return tr(l)&&(l=e),Xb(ji(n,tr),Ae(l,2))}),w4=Ke(function(n){var l=Vo(n);return l=typeof l=="function"?l:e,Xb(ji(n,tr),e,l)}),S4=Ke(dx);function T4(n,l){return i1(n||[],l||[],ud)}function C4(n,l){return i1(n||[],l||[],hd)}var I4=Ke(function(n){var l=n.length,p=l>1?n[l-1]:e;return p=typeof p=="function"?(n.pop(),p):e,H1(n,p)});function U1(n){var l=_(n);return l.__chain__=!0,l}function _4(n,l){return l(n),n}function zu(n,l){return l(n)}var A4=pi(function(n){var l=n.length,p=l?n[0]:0,x=this.__wrapped__,S=function(P){return Nb(P,n)};return l>1||this.__actions__.length||!(x instanceof Je)||!fi(p)?this.thru(S):(x=x.slice(p,+p+(l?1:0)),x.__actions__.push({func:zu,args:[S],thisArg:e}),new Wo(x,this.__chain__).thru(function(P){return l&&!P.length&&P.push(e),P}))});function k4(){return U1(this)}function P4(){return new Wo(this.value(),this.__chain__)}function M4(){this.__values__===e&&(this.__values__=rS(this.value()));var n=this.__index__>=this.__values__.length,l=n?e:this.__values__[this.__index__++];return{done:n,value:l}}function L4(){return this}function R4(n){for(var l,p=this;p instanceof Tu;){var x=N1(p);x.__index__=0,x.__values__=e,l?S.__wrapped__=x:l=x;var S=x;p=p.__wrapped__}return S.__wrapped__=n,l}function D4(){var n=this.__wrapped__;if(n instanceof Je){var l=n;return this.__actions__.length&&(l=new Je(this)),l=l.reverse(),l.__actions__.push({func:zu,args:[cx],thisArg:e}),new Wo(l,this.__chain__)}return this.thru(cx)}function N4(){return n1(this.__wrapped__,this.__actions__)}var O4=Mu(function(n,l,p){bt.call(n,p)?++n[p]:mi(n,p,1)});function F4(n,l,p){var x=$e(n)?bw:_D;return p&&eo(n,l,p)&&(l=e),x(n,Ae(l,3))}function B4(n,l){var p=$e(n)?ji:Hw;return p(n,Ae(l,3))}var z4=g1(O1),$4=g1(F1);function H4(n,l){return Mr($u(n,l),1)}function U4(n,l){return Mr($u(n,l),be)}function G4(n,l,p){return p=p===e?1:Ue(p),Mr($u(n,l),p)}function G1(n,l){var p=$e(n)?Uo:ra;return p(n,Ae(l,3))}function W1(n,l){var p=$e(n)?sR:$w;return p(n,Ae(l,3))}var W4=Mu(function(n,l,p){bt.call(n,p)?n[p].push(l):mi(n,p,[l])});function K4(n,l,p,x){n=fo(n)?n:vs(n),p=p&&!x?Ue(p):0;var S=n.length;return p<0&&(p=hr(S+p,0)),Ku(n)?p<=S&&n.indexOf(l,p)>-1:!!S&&ss(n,l,p)>-1}var Y4=Ke(function(n,l,p){var x=-1,S=typeof l=="function",P=fo(n)?Z(n.length):[];return ra(n,function(N){P[++x]=S?Ao(l,N,p):fd(N,l,p)}),P}),V4=Mu(function(n,l,p){mi(n,p,l)});function $u(n,l){var p=$e(n)?Bt:Vw;return p(n,Ae(l,3))}function X4(n,l,p,x){return n==null?[]:($e(l)||(l=l==null?[]:[l]),p=x?e:p,$e(p)||(p=p==null?[]:[p]),jw(n,l,p))}var Z4=Mu(function(n,l,p){n[p?0:1].push(l)},function(){return[[],[]]});function q4(n,l,p){var x=$e(n)?wb:Ew,S=arguments.length<3;return x(n,Ae(l,4),p,S,ra)}function j4(n,l,p){var x=$e(n)?cR:Ew,S=arguments.length<3;return x(n,Ae(l,4),p,S,$w)}function J4(n,l){var p=$e(n)?ji:Hw;return p(n,Gu(Ae(l,3)))}function Q4(n){var l=$e(n)?Ow:KD;return l(n)}function eN(n,l,p){(p?eo(n,l,p):l===e)?l=1:l=Ue(l);var x=$e(n)?wD:YD;return x(n,l)}function tN(n){var l=$e(n)?SD:XD;return l(n)}function rN(n){if(n==null)return 0;if(fo(n))return Ku(n)?ds(n):n.length;var l=Br(n);return l==er||l==wr?n.size:Hb(n).length}function oN(n,l,p){var x=$e(n)?Sb:ZD;return p&&eo(n,l,p)&&(l=e),x(n,Ae(l,3))}var nN=Ke(function(n,l){if(n==null)return[];var p=l.length;return p>1&&eo(n,l[0],l[1])?l=[]:p>2&&eo(l[0],l[1],l[2])&&(l=[l[0]]),jw(n,Mr(l,1),[])}),Hu=BR||function(){return Sr.Date.now()};function iN(n,l){if(typeof l!="function")throw new Go(i);return n=Ue(n),function(){if(--n<1)return l.apply(this,arguments)}}function K1(n,l,p){return l=p?e:l,l=n&&l==null?n.length:l,ui(n,z,e,e,e,e,l)}function Y1(n,l){var p;if(typeof l!="function")throw new Go(i);return n=Ue(n),function(){return--n>0&&(p=l.apply(this,arguments)),n<=1&&(l=e),p}}var mx=Ke(function(n,l,p){var x=b;if(p.length){var S=Qi(p,bs(mx));x|=C}return ui(n,x,l,p,S)}),V1=Ke(function(n,l,p){var x=b|y;if(p.length){var S=Qi(p,bs(V1));x|=C}return ui(l,x,n,p,S)});function X1(n,l,p){l=p?e:l;var x=ui(n,k,e,e,e,e,e,l);return x.placeholder=X1.placeholder,x}function Z1(n,l,p){l=p?e:l;var x=ui(n,I,e,e,e,e,e,l);return x.placeholder=Z1.placeholder,x}function q1(n,l,p){var x,S,P,N,B,H,ee=0,te=!1,ae=!1,fe=!0;if(typeof n!="function")throw new Go(i);l=Xo(l)||0,Ut(p)&&(te=!!p.leading,ae="maxWait"in p,P=ae?hr(Xo(p.maxWait)||0,l):P,fe="trailing"in p?!!p.trailing:fe);function we(rr){var Sn=x,bi=S;return x=S=e,ee=rr,N=n.apply(bi,Sn),N}function Pe(rr){return ee=rr,B=vd(qe,l),te?we(rr):N}function Ge(rr){var Sn=rr-H,bi=rr-ee,gS=l-Sn;return ae?Fr(gS,P-bi):gS}function Me(rr){var Sn=rr-H,bi=rr-ee;return H===e||Sn>=l||Sn<0||ae&&bi>=P}function qe(){var rr=Hu();if(Me(rr))return tt(rr);B=vd(qe,Ge(rr))}function tt(rr){return B=e,fe&&x?we(rr):(x=S=e,N)}function Lo(){B!==e&&a1(B),ee=0,x=H=S=B=e}function to(){return B===e?N:tt(Hu())}function Ro(){var rr=Hu(),Sn=Me(rr);if(x=arguments,S=this,H=rr,Sn){if(B===e)return Pe(H);if(ae)return a1(B),B=vd(qe,l),we(H)}return B===e&&(B=vd(qe,l)),N}return Ro.cancel=Lo,Ro.flush=to,Ro}var aN=Ke(function(n,l){return zw(n,1,l)}),lN=Ke(function(n,l,p){return zw(n,Xo(l)||0,p)});function sN(n){return ui(n,F)}function Uu(n,l){if(typeof n!="function"||l!=null&&typeof l!="function")throw new Go(i);var p=function(){var x=arguments,S=l?l.apply(this,x):x[0],P=p.cache;if(P.has(S))return P.get(S);var N=n.apply(this,x);return p.cache=P.set(S,N)||P,N};return p.cache=new(Uu.Cache||di),p}Uu.Cache=di;function Gu(n){if(typeof n!="function")throw new Go(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 cN(n){return Y1(2,n)}var dN=qD(function(n,l){l=l.length==1&&$e(l[0])?Bt(l[0],ko(Ae())):Bt(Mr(l,1),ko(Ae()));var p=l.length;return Ke(function(x){for(var S=-1,P=Fr(x.length,p);++S<P;)x[S]=l[S].call(this,x[S]);return Ao(n,this,x)})}),ux=Ke(function(n,l){var p=Qi(l,bs(ux));return ui(n,C,e,l,p)}),j1=Ke(function(n,l){var p=Qi(l,bs(j1));return ui(n,O,e,l,p)}),mN=pi(function(n,l){return ui(n,L,e,e,e,l)});function uN(n,l){if(typeof n!="function")throw new Go(i);return l=l===e?l:Ue(l),Ke(n,l)}function pN(n,l){if(typeof n!="function")throw new Go(i);return l=l==null?0:hr(Ue(l),0),Ke(function(p){var x=p[l],S=ia(p,0,l);return x&&Ji(S,x),Ao(n,this,S)})}function fN(n,l,p){var x=!0,S=!0;if(typeof n!="function")throw new Go(i);return Ut(p)&&(x="leading"in p?!!p.leading:x,S="trailing"in p?!!p.trailing:S),q1(n,l,{leading:x,maxWait:l,trailing:S})}function gN(n){return K1(n,1)}function hN(n,l){return ux(qb(l),n)}function bN(){if(!arguments.length)return[];var n=arguments[0];return $e(n)?n:[n]}function xN(n){return Ko(n,m)}function vN(n,l){return l=typeof l=="function"?l:e,Ko(n,m,l)}function yN(n){return Ko(n,u|m)}function EN(n,l){return l=typeof l=="function"?l:e,Ko(n,u|m,l)}function wN(n,l){return l==null||Bw(n,l,Tr(l))}function wn(n,l){return n===l||n!==n&&l!==l}var SN=Nu(Bb),TN=Nu(function(n,l){return n>=l}),ol=Ww(function(){return arguments}())?Ww:function(n){return Xt(n)&&bt.call(n,"callee")&&!Pw.call(n,"callee")},$e=Z.isArray,CN=mw?ko(mw):RD;function fo(n){return n!=null&&Wu(n.length)&&!gi(n)}function tr(n){return Xt(n)&&fo(n)}function IN(n){return n===!0||n===!1||Xt(n)&&Qr(n)==pe}var aa=$R||Sx,_N=uw?ko(uw):DD;function AN(n){return Xt(n)&&n.nodeType===1&&!yd(n)}function kN(n){if(n==null)return!0;if(fo(n)&&($e(n)||typeof n=="string"||typeof n.splice=="function"||aa(n)||xs(n)||ol(n)))return!n.length;var l=Br(n);if(l==er||l==wr)return!n.size;if(xd(n))return!Hb(n).length;for(var p in n)if(bt.call(n,p))return!1;return!0}function PN(n,l){return gd(n,l)}function MN(n,l,p){p=typeof p=="function"?p:e;var x=p?p(n,l):e;return x===e?gd(n,l,e,p):!!x}function px(n){if(!Xt(n))return!1;var l=Qr(n);return l==vt||l==Ct||typeof n.message=="string"&&typeof n.name=="string"&&!yd(n)}function LN(n){return typeof n=="number"&&Lw(n)}function gi(n){if(!Ut(n))return!1;var l=Qr(n);return l==Ft||l==Et||l==de||l==tb}function J1(n){return typeof n=="number"&&n==Ue(n)}function Wu(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=_e}function Ut(n){var l=typeof n;return n!=null&&(l=="object"||l=="function")}function Xt(n){return n!=null&&typeof n=="object"}var Q1=pw?ko(pw):OD;function RN(n,l){return n===l||$b(n,l,ox(l))}function DN(n,l,p){return p=typeof p=="function"?p:e,$b(n,l,ox(l),p)}function NN(n){return eS(n)&&n!=+n}function ON(n){if(v6(n))throw new Fe(o);return Kw(n)}function FN(n){return n===null}function BN(n){return n==null}function eS(n){return typeof n=="number"||Xt(n)&&Qr(n)==Jr}function yd(n){if(!Xt(n)||Qr(n)!=ar)return!1;var l=bu(n);if(l===null)return!0;var p=bt.call(l,"constructor")&&l.constructor;return typeof p=="function"&&p instanceof p&&pu.call(p)==DR}var fx=fw?ko(fw):FD;function zN(n){return J1(n)&&n>=-_e&&n<=_e}var tS=gw?ko(gw):BD;function Ku(n){return typeof n=="string"||!$e(n)&&Xt(n)&&Qr(n)==vn}function Mo(n){return typeof n=="symbol"||Xt(n)&&Qr(n)==Va}var xs=hw?ko(hw):zD;function $N(n){return n===e}function HN(n){return Xt(n)&&Br(n)==Xa}function UN(n){return Xt(n)&&Qr(n)==rb}var GN=Nu(Ub),WN=Nu(function(n,l){return n<=l});function rS(n){if(!n)return[];if(fo(n))return Ku(n)?yn(n):po(n);if(ld&&n[ld])return wR(n[ld]());var l=Br(n),p=l==er?kb:l==wr?du:vs;return p(n)}function hi(n){if(!n)return n===0?n:0;if(n=Xo(n),n===be||n===-be){var l=n<0?-1:1;return l*nt}return n===n?n:0}function Ue(n){var l=hi(n),p=l%1;return l===l?p?l-p:l:0}function oS(n){return n?Qa(Ue(n),0,ue):0}function Xo(n){if(typeof n=="number")return n;if(Mo(n))return Ee;if(Ut(n)){var l=typeof n.valueOf=="function"?n.valueOf():n;n=Ut(l)?l+"":l}if(typeof n!="string")return n===0?n:+n;n=ww(n);var p=CL.test(n);return p||_L.test(n)?iR(n.slice(2),p?2:8):TL.test(n)?Ee:+n}function nS(n){return Wn(n,go(n))}function KN(n){return n?Qa(Ue(n),-_e,_e):n===0?n:0}function ut(n){return n==null?"":Po(n)}var YN=gs(function(n,l){if(xd(l)||fo(l)){Wn(l,Tr(l),n);return}for(var p in l)bt.call(l,p)&&ud(n,p,l[p])}),iS=gs(function(n,l){Wn(l,go(l),n)}),Yu=gs(function(n,l,p,x){Wn(l,go(l),n,x)}),VN=gs(function(n,l,p,x){Wn(l,Tr(l),n,x)}),XN=pi(Nb);function ZN(n,l){var p=fs(n);return l==null?p:Fw(p,l)}var qN=Ke(function(n,l){n=wt(n);var p=-1,x=l.length,S=x>2?l[2]:e;for(S&&eo(l[0],l[1],S)&&(x=1);++p<x;)for(var P=l[p],N=go(P),B=-1,H=N.length;++B<H;){var ee=N[B],te=n[ee];(te===e||wn(te,ms[ee])&&!bt.call(n,ee))&&(n[ee]=P[ee])}return n}),jN=Ke(function(n){return n.push(e,w1),Ao(aS,e,n)});function JN(n,l){return xw(n,Ae(l,3),Gn)}function QN(n,l){return xw(n,Ae(l,3),Fb)}function e8(n,l){return n==null?n:Ob(n,Ae(l,3),go)}function t8(n,l){return n==null?n:Uw(n,Ae(l,3),go)}function r8(n,l){return n&&Gn(n,Ae(l,3))}function o8(n,l){return n&&Fb(n,Ae(l,3))}function n8(n){return n==null?[]:_u(n,Tr(n))}function i8(n){return n==null?[]:_u(n,go(n))}function gx(n,l,p){var x=n==null?e:el(n,l);return x===e?p:x}function a8(n,l){return n!=null&&C1(n,l,kD)}function hx(n,l){return n!=null&&C1(n,l,PD)}var l8=b1(function(n,l,p){l!=null&&typeof l.toString!="function"&&(l=fu.call(l)),n[l]=p},xx(ho)),s8=b1(function(n,l,p){l!=null&&typeof l.toString!="function"&&(l=fu.call(l)),bt.call(n,l)?n[l].push(p):n[l]=[p]},Ae),c8=Ke(fd);function Tr(n){return fo(n)?Nw(n):Hb(n)}function go(n){return fo(n)?Nw(n,!0):$D(n)}function d8(n,l){var p={};return l=Ae(l,3),Gn(n,function(x,S,P){mi(p,l(x,S,P),x)}),p}function m8(n,l){var p={};return l=Ae(l,3),Gn(n,function(x,S,P){mi(p,S,l(x,S,P))}),p}var u8=gs(function(n,l,p){Au(n,l,p)}),aS=gs(function(n,l,p,x){Au(n,l,p,x)}),p8=pi(function(n,l){var p={};if(n==null)return p;var x=!1;l=Bt(l,function(P){return P=na(P,n),x||(x=P.length>1),P}),Wn(n,tx(n),p),x&&(p=Ko(p,u|f|m,l6));for(var S=l.length;S--;)Vb(p,l[S]);return p});function f8(n,l){return lS(n,Gu(Ae(l)))}var g8=pi(function(n,l){return n==null?{}:UD(n,l)});function lS(n,l){if(n==null)return{};var p=Bt(tx(n),function(x){return[x]});return l=Ae(l),Jw(n,p,function(x,S){return l(x,S[0])})}function h8(n,l,p){l=na(l,n);var x=-1,S=l.length;for(S||(S=1,n=e);++x<S;){var P=n==null?e:n[Kn(l[x])];P===e&&(x=S,P=p),n=gi(P)?P.call(n):P}return n}function b8(n,l,p){return n==null?n:hd(n,l,p)}function x8(n,l,p,x){return x=typeof x=="function"?x:e,n==null?n:hd(n,l,p,x)}var sS=y1(Tr),cS=y1(go);function v8(n,l,p){var x=$e(n),S=x||aa(n)||xs(n);if(l=Ae(l,4),p==null){var P=n&&n.constructor;S?p=x?new P:[]:Ut(n)?p=gi(P)?fs(bu(n)):{}:p={}}return(S?Uo:Gn)(n,function(N,B,H){return l(p,N,B,H)}),p}function y8(n,l){return n==null?!0:Vb(n,l)}function E8(n,l,p){return n==null?n:o1(n,l,qb(p))}function w8(n,l,p,x){return x=typeof x=="function"?x:e,n==null?n:o1(n,l,qb(p),x)}function vs(n){return n==null?[]:Ab(n,Tr(n))}function S8(n){return n==null?[]:Ab(n,go(n))}function T8(n,l,p){return p===e&&(p=l,l=e),p!==e&&(p=Xo(p),p=p===p?p:0),l!==e&&(l=Xo(l),l=l===l?l:0),Qa(Xo(n),l,p)}function C8(n,l,p){return l=hi(l),p===e?(p=l,l=0):p=hi(p),n=Xo(n),MD(n,l,p)}function I8(n,l,p){if(p&&typeof p!="boolean"&&eo(n,l,p)&&(l=p=e),p===e&&(typeof l=="boolean"?(p=l,l=e):typeof n=="boolean"&&(p=n,n=e)),n===e&&l===e?(n=0,l=1):(n=hi(n),l===e?(l=n,n=0):l=hi(l)),n>l){var x=n;n=l,l=x}if(p||n%1||l%1){var S=Rw();return Fr(n+S*(l-n+nR("1e-"+((S+"").length-1))),l)}return Wb(n,l)}var _8=hs(function(n,l,p){return l=l.toLowerCase(),n+(p?dS(l):l)});function dS(n){return bx(ut(n).toLowerCase())}function mS(n){return n=ut(n),n&&n.replace(kL,bR).replace(XL,"")}function A8(n,l,p){n=ut(n),l=Po(l);var x=n.length;p=p===e?x:Qa(Ue(p),0,x);var S=p;return p-=l.length,p>=0&&n.slice(p,S)==l}function k8(n){return n=ut(n),n&&cL.test(n)?n.replace(U0,xR):n}function P8(n){return n=ut(n),n&&gL.test(n)?n.replace(ub,"\\$&"):n}var M8=hs(function(n,l,p){return n+(p?"-":"")+l.toLowerCase()}),L8=hs(function(n,l,p){return n+(p?" ":"")+l.toLowerCase()}),R8=f1("toLowerCase");function D8(n,l,p){n=ut(n),l=Ue(l);var x=l?ds(n):0;if(!l||x>=l)return n;var S=(l-x)/2;return Du(Eu(S),p)+n+Du(yu(S),p)}function N8(n,l,p){n=ut(n),l=Ue(l);var x=l?ds(n):0;return l&&x<l?n+Du(l-x,p):n}function O8(n,l,p){n=ut(n),l=Ue(l);var x=l?ds(n):0;return l&&x<l?Du(l-x,p)+n:n}function F8(n,l,p){return p||l==null?l=0:l&&(l=+l),WR(ut(n).replace(pb,""),l||0)}function B8(n,l,p){return(p?eo(n,l,p):l===e)?l=1:l=Ue(l),Kb(ut(n),l)}function z8(){var n=arguments,l=ut(n[0]);return n.length<3?l:l.replace(n[1],n[2])}var $8=hs(function(n,l,p){return n+(p?"_":"")+l.toLowerCase()});function H8(n,l,p){return p&&typeof p!="number"&&eo(n,l,p)&&(l=p=e),p=p===e?ue:p>>>0,p?(n=ut(n),n&&(typeof l=="string"||l!=null&&!fx(l))&&(l=Po(l),!l&&cs(n))?ia(yn(n),0,p):n.split(l,p)):[]}var U8=hs(function(n,l,p){return n+(p?" ":"")+bx(l)});function G8(n,l,p){return n=ut(n),p=p==null?0:Qa(Ue(p),0,n.length),l=Po(l),n.slice(p,p+l.length)==l}function W8(n,l,p){var x=_.templateSettings;p&&eo(n,l,p)&&(l=e),n=ut(n),l=Yu({},l,x,E1);var S=Yu({},l.imports,x.imports,E1),P=Tr(S),N=Ab(S,P),B,H,ee=0,te=l.interpolate||iu,ae="__p += '",fe=Pb((l.escape||iu).source+"|"+te.source+"|"+(te===G0?SL:iu).source+"|"+(l.evaluate||iu).source+"|$","g"),we="//# sourceURL="+(bt.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++QL+"]")+`
4
+ `;n.replace(fe,function(Me,qe,tt,Lo,to,Ro){return tt||(tt=Lo),ae+=n.slice(ee,Ro).replace(PL,vR),qe&&(B=!0,ae+=`' +
5
+ __e(`+qe+`) +
6
+ '`),to&&(H=!0,ae+=`';
7
+ `+to+`;
8
+ __p += '`),tt&&(ae+=`' +
9
+ ((__t = (`+tt+`)) == null ? '' : __t) +
10
+ '`),ee=Ro+Me.length,Me}),ae+=`';
11
+ `;var Pe=bt.call(l,"variable")&&l.variable;if(!Pe)ae=`with (obj) {
12
+ `+ae+`
13
13
  }
14
- `;else if(iA.test(Pe))throw new $e(a);le=(U?le.replace(W8,""):le).replace(G8,"$1").replace(V8,"$1;"),le="function("+(Pe||"obj")+`) {
14
+ `;else if(EL.test(Pe))throw new Fe(a);ae=(H?ae.replace(iL,""):ae).replace(aL,"$1").replace(lL,"$1;"),ae="function("+(Pe||"obj")+`) {
15
15
  `+(Pe?"":`obj || (obj = {});
16
- `)+"var __t, __p = ''"+(F?", __e = _.escape":"")+(U?`, __j = Array.prototype.join;
16
+ `)+"var __t, __p = ''"+(B?", __e = _.escape":"")+(H?`, __j = Array.prototype.join;
17
17
  function print() { __p += __j.call(arguments, '') }
18
18
  `:`;
19
- `)+le+`return __p
20
- }`;var Ye=YE(function(){return pt(L,Te+"return "+le).apply(e,O)});if(Ye.source=le,G1(Ye))throw Ye;return Ye}function AR(n){return ht(n).toLowerCase()}function MR(n){return ht(n).toUpperCase()}function LR(n,l,u){if(n=ht(n),n&&(u||l===e))return r2(n);if(!n||!(l=Io(l)))return n;var x=yn(n),T=yn(l),L=o2(x,T),O=n2(x,T)+1;return la(x,L,O).join("")}function PR(n,l,u){if(n=ht(n),n&&(u||l===e))return n.slice(0,a2(n)+1);if(!n||!(l=Io(l)))return n;var x=yn(n),T=n2(x,yn(l))+1;return la(x,0,T).join("")}function RR(n,l,u){if(n=ht(n),n&&(u||l===e))return n.replace(Gg,"");if(!n||!(l=Io(l)))return n;var x=yn(n),T=o2(x,yn(l));return la(x,T).join("")}function DR(n,l){var u=B,x=q;if(Vt(l)){var T="separator"in l?l.separator:T;u="length"in l?Ke(l.length):u,x="omission"in l?Io(l.omission):x}n=ht(n);var L=n.length;if(rs(n)){var O=yn(n);L=O.length}if(u>=L)return n;var F=u-os(x);if(F<1)return x;var U=O?la(O,0,F).join(""):n.slice(0,F);if(T===e)return U+x;if(O&&(F+=U.length-F),V1(T)){if(n.slice(F).search(T)){var re,oe=U;for(T.global||(T=l1(T.source,ht(Sy.exec(T))+"g")),T.lastIndex=0;re=T.exec(oe);)var le=re.index;U=U.slice(0,le===e?F:le)}}else if(n.indexOf(Io(T),F)!=F){var be=U.lastIndexOf(T);be>-1&&(U=U.slice(0,be))}return U+x}function NR(n){return n=ht(n),n&&K8.test(n)?n.replace(Ey,d7):n}var OR=cs(function(n,l,u){return n+(u?" ":"")+l.toUpperCase()}),Z1=Z2("toUpperCase");function KE(n,l,u){return n=ht(n),l=u?e:l,l===e?i7(n)?p7(n):jA(n):n.match(l)||[]}var YE=Xe(function(n,l){try{return So(n,e,l)}catch(u){return G1(u)?u:new $e(u)}}),FR=fi(function(n,l){return zo(l,function(u){u=Zn(u),ui(n,u,U1(n[u],n))}),n});function zR(n){var l=n==null?0:n.length,u=Le();return n=l?Ht(n,function(x){if(typeof x[1]!="function")throw new Bo(i);return[u(x[0]),x[1]]}):[],Xe(function(x){for(var T=-1;++T<l;){var L=n[T];if(So(L[0],this,x))return So(L[1],this,x)}})}function BR(n){return dM(Ho(n,p))}function X1(n){return function(){return n}}function $R(n,l){return n==null||n!==n?l:n}var HR=j2(),UR=j2(!0);function go(n){return n}function j1(n){return I2(typeof n=="function"?n:Ho(n,p))}function WR(n){return _2(Ho(n,p))}function GR(n,l){return A2(n,Ho(l,p))}var VR=Xe(function(n,l){return function(u){return Jc(u,n,l)}}),KR=Xe(function(n,l){return function(u){return Jc(n,u,l)}});function q1(n,l,u){var x=Cr(l),T=gu(l,x);u==null&&!(Vt(l)&&(T.length||!x.length))&&(u=l,l=n,n=this,T=gu(l,Cr(l)));var L=!(Vt(u)&&"chain"in u)||!!u.chain,O=gi(n);return zo(T,function(F){var U=l[F];n[F]=U,O&&(n.prototype[F]=function(){var re=this.__chain__;if(L||re){var oe=n(this.__wrapped__),le=oe.__actions__=po(this.__actions__);return le.push({func:U,args:arguments,thisArg:n}),oe.__chain__=re,oe}return U.apply(n,ea([this.value()],arguments))})}),n}function YR(){return wr._===this&&(wr._=v7),this}function J1(){}function ZR(n){return n=Ke(n),Xe(function(l){return M2(l,n)})}var XR=A1(Ht),jR=A1(qy),qR=A1(e1);function ZE(n){return O1(n)?t1(Zn(n)):kM(n)}function JR(n){return function(l){return n==null?e:el(n,l)}}var QR=J2(),eD=J2(!0);function Q1(){return[]}function e0(){return!1}function tD(){return{}}function rD(){return""}function oD(){return!0}function nD(n,l){if(n=Ke(n),n<1||n>Ie)return[];var u=fe,x=zr(n,fe);l=Le(l),n-=fe;for(var T=n1(x,l);++u<n;)l(u);return T}function iD(n){return We(n)?Ht(n,Zn):ko(n)?[n]:po(fE(ht(n)))}function aD(n){var l=++b7;return ht(n)+l}var lD=wu(function(n,l){return n+l},0),sD=M1("ceil"),cD=wu(function(n,l){return n/l},1),dD=M1("floor");function mD(n){return n&&n.length?hu(n,go,h1):e}function uD(n,l){return n&&n.length?hu(n,Le(l,2),h1):e}function pD(n){return e2(n,go)}function fD(n,l){return e2(n,Le(l,2))}function hD(n){return n&&n.length?hu(n,go,v1):e}function gD(n,l){return n&&n.length?hu(n,Le(l,2),v1):e}var bD=wu(function(n,l){return n*l},1),xD=M1("round"),vD=wu(function(n,l){return n-l},0);function yD(n){return n&&n.length?o1(n,go):0}function ED(n,l){return n&&n.length?o1(n,Le(l,2)):0}return k.after=WP,k.ary=TE,k.assign=M9,k.assignIn=BE,k.assignInWith=Nu,k.assignWith=L9,k.at=P9,k.before=IE,k.bind=U1,k.bindAll=FR,k.bindKey=kE,k.castArray=t9,k.chain=wE,k.chunk=dL,k.compact=mL,k.concat=uL,k.cond=zR,k.conforms=BR,k.constant=X1,k.countBy=yP,k.create=R9,k.curry=_E,k.curryRight=AE,k.debounce=ME,k.defaults=D9,k.defaultsDeep=N9,k.defer=GP,k.delay=VP,k.difference=pL,k.differenceBy=fL,k.differenceWith=hL,k.drop=gL,k.dropRight=bL,k.dropRightWhile=xL,k.dropWhile=vL,k.fill=yL,k.filter=wP,k.flatMap=TP,k.flatMapDeep=IP,k.flatMapDepth=kP,k.flatten=xE,k.flattenDeep=EL,k.flattenDepth=wL,k.flip=KP,k.flow=HR,k.flowRight=UR,k.fromPairs=CL,k.functions=U9,k.functionsIn=W9,k.groupBy=_P,k.initial=TL,k.intersection=IL,k.intersectionBy=kL,k.intersectionWith=_L,k.invert=V9,k.invertBy=K9,k.invokeMap=MP,k.iteratee=j1,k.keyBy=LP,k.keys=Cr,k.keysIn=ho,k.map=Au,k.mapKeys=Z9,k.mapValues=X9,k.matches=WR,k.matchesProperty=GR,k.memoize=Lu,k.merge=j9,k.mergeWith=$E,k.method=VR,k.methodOf=KR,k.mixin=q1,k.negate=Pu,k.nthArg=ZR,k.omit=q9,k.omitBy=J9,k.once=YP,k.orderBy=PP,k.over=XR,k.overArgs=ZP,k.overEvery=jR,k.overSome=qR,k.partial=W1,k.partialRight=LE,k.partition=RP,k.pick=Q9,k.pickBy=HE,k.property=ZE,k.propertyOf=JR,k.pull=PL,k.pullAll=yE,k.pullAllBy=RL,k.pullAllWith=DL,k.pullAt=NL,k.range=QR,k.rangeRight=eD,k.rearg=XP,k.reject=OP,k.remove=OL,k.rest=jP,k.reverse=$1,k.sampleSize=zP,k.set=tR,k.setWith=rR,k.shuffle=BP,k.slice=FL,k.sortBy=UP,k.sortedUniq=GL,k.sortedUniqBy=VL,k.split=TR,k.spread=qP,k.tail=KL,k.take=YL,k.takeRight=ZL,k.takeRightWhile=XL,k.takeWhile=jL,k.tap=mP,k.throttle=JP,k.thru=_u,k.toArray=OE,k.toPairs=UE,k.toPairsIn=WE,k.toPath=iD,k.toPlainObject=zE,k.transform=oR,k.unary=QP,k.union=qL,k.unionBy=JL,k.unionWith=QL,k.uniq=eP,k.uniqBy=tP,k.uniqWith=rP,k.unset=nR,k.unzip=H1,k.unzipWith=EE,k.update=iR,k.updateWith=aR,k.values=us,k.valuesIn=lR,k.without=oP,k.words=KE,k.wrap=e9,k.xor=nP,k.xorBy=iP,k.xorWith=aP,k.zip=lP,k.zipObject=sP,k.zipObjectDeep=cP,k.zipWith=dP,k.entries=UE,k.entriesIn=WE,k.extend=BE,k.extendWith=Nu,q1(k,k),k.add=lD,k.attempt=YE,k.camelCase=mR,k.capitalize=GE,k.ceil=sD,k.clamp=sR,k.clone=r9,k.cloneDeep=n9,k.cloneDeepWith=i9,k.cloneWith=o9,k.conformsTo=a9,k.deburr=VE,k.defaultTo=$R,k.divide=cD,k.endsWith=uR,k.eq=wn,k.escape=pR,k.escapeRegExp=fR,k.every=EP,k.find=CP,k.findIndex=gE,k.findKey=O9,k.findLast=SP,k.findLastIndex=bE,k.findLastKey=F9,k.floor=dD,k.forEach=CE,k.forEachRight=SE,k.forIn=z9,k.forInRight=B9,k.forOwn=$9,k.forOwnRight=H9,k.get=K1,k.gt=l9,k.gte=s9,k.has=G9,k.hasIn=Y1,k.head=vE,k.identity=go,k.includes=AP,k.indexOf=SL,k.inRange=cR,k.invoke=Y9,k.isArguments=ol,k.isArray=We,k.isArrayBuffer=c9,k.isArrayLike=fo,k.isArrayLikeObject=rr,k.isBoolean=d9,k.isBuffer=sa,k.isDate=m9,k.isElement=u9,k.isEmpty=p9,k.isEqual=f9,k.isEqualWith=h9,k.isError=G1,k.isFinite=g9,k.isFunction=gi,k.isInteger=PE,k.isLength=Ru,k.isMap=RE,k.isMatch=b9,k.isMatchWith=x9,k.isNaN=v9,k.isNative=y9,k.isNil=w9,k.isNull=E9,k.isNumber=DE,k.isObject=Vt,k.isObjectLike=qt,k.isPlainObject=nd,k.isRegExp=V1,k.isSafeInteger=C9,k.isSet=NE,k.isString=Du,k.isSymbol=ko,k.isTypedArray=ms,k.isUndefined=S9,k.isWeakMap=T9,k.isWeakSet=I9,k.join=AL,k.kebabCase=hR,k.last=Wo,k.lastIndexOf=ML,k.lowerCase=gR,k.lowerFirst=bR,k.lt=k9,k.lte=_9,k.max=mD,k.maxBy=uD,k.mean=pD,k.meanBy=fD,k.min=hD,k.minBy=gD,k.stubArray=Q1,k.stubFalse=e0,k.stubObject=tD,k.stubString=rD,k.stubTrue=oD,k.multiply=bD,k.nth=LL,k.noConflict=YR,k.noop=J1,k.now=Mu,k.pad=xR,k.padEnd=vR,k.padStart=yR,k.parseInt=ER,k.random=dR,k.reduce=DP,k.reduceRight=NP,k.repeat=wR,k.replace=CR,k.result=eR,k.round=xD,k.runInContext=H,k.sample=FP,k.size=$P,k.snakeCase=SR,k.some=HP,k.sortedIndex=zL,k.sortedIndexBy=BL,k.sortedIndexOf=$L,k.sortedLastIndex=HL,k.sortedLastIndexBy=UL,k.sortedLastIndexOf=WL,k.startCase=IR,k.startsWith=kR,k.subtract=vD,k.sum=yD,k.sumBy=ED,k.template=_R,k.times=nD,k.toFinite=bi,k.toInteger=Ke,k.toLength=FE,k.toLower=AR,k.toNumber=Go,k.toSafeInteger=A9,k.toString=ht,k.toUpper=MR,k.trim=LR,k.trimEnd=PR,k.trimStart=RR,k.truncate=DR,k.unescape=NR,k.uniqueId=aD,k.upperCase=OR,k.upperFirst=Z1,k.each=CE,k.eachRight=SE,k.first=vE,q1(k,function(){var n={};return Kn(k,function(l,u){Et.call(k.prototype,u)||(n[u]=l)}),n}(),{chain:!1}),k.VERSION=t,zo(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){k[n].placeholder=k}),zo(["drop","take"],function(n,l){rt.prototype[n]=function(u){u=u===e?1:br(Ke(u),0);var x=this.__filtered__&&!l?new rt(this):this.clone();return x.__filtered__?x.__takeCount__=zr(u,x.__takeCount__):x.__views__.push({size:zr(u,fe),type:n+(x.__dir__<0?"Right":"")}),x},rt.prototype[n+"Right"]=function(u){return this.reverse()[n](u).reverse()}}),zo(["filter","map","takeWhile"],function(n,l){var u=l+1,x=u==me||u==de;rt.prototype[n]=function(T){var L=this.clone();return L.__iteratees__.push({iteratee:Le(T,3),type:u}),L.__filtered__=L.__filtered__||x,L}}),zo(["head","last"],function(n,l){var u="take"+(l?"Right":"");rt.prototype[n]=function(){return this[u](1).value()[0]}}),zo(["initial","tail"],function(n,l){var u="drop"+(l?"":"Right");rt.prototype[n]=function(){return this.__filtered__?new rt(this):this[u](1)}}),rt.prototype.compact=function(){return this.filter(go)},rt.prototype.find=function(n){return this.filter(n).head()},rt.prototype.findLast=function(n){return this.reverse().find(n)},rt.prototype.invokeMap=Xe(function(n,l){return typeof n=="function"?new rt(this):this.map(function(u){return Jc(u,n,l)})}),rt.prototype.reject=function(n){return this.filter(Pu(Le(n)))},rt.prototype.slice=function(n,l){n=Ke(n);var u=this;return u.__filtered__&&(n>0||l<0)?new rt(u):(n<0?u=u.takeRight(-n):n&&(u=u.drop(n)),l!==e&&(l=Ke(l),u=l<0?u.dropRight(-l):u.take(l-n)),u)},rt.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},rt.prototype.toArray=function(){return this.take(fe)},Kn(rt.prototype,function(n,l){var u=/^(?:filter|find|map|reject)|While$/.test(l),x=/^(?:head|last)$/.test(l),T=k[x?"take"+(l=="last"?"Right":""):l],L=x||/^find/.test(l);T&&(k.prototype[l]=function(){var O=this.__wrapped__,F=x?[1]:arguments,U=O instanceof rt,re=F[0],oe=U||We(O),le=function(et){var nt=T.apply(k,ea([et],F));return x&&be?nt[0]:nt};oe&&u&&typeof re=="function"&&re.length!=1&&(U=oe=!1);var be=this.__chain__,Te=!!this.__actions__.length,Pe=L&&!be,Ye=U&&!Te;if(!L&&oe){O=Ye?O:new rt(this);var Re=n.apply(O,F);return Re.__actions__.push({func:_u,args:[le],thisArg:e}),new $o(Re,be)}return Pe&&Ye?n.apply(this,F):(Re=this.thru(le),Pe?x?Re.value()[0]:Re.value():Re)})}),zo(["pop","push","shift","sort","splice","unshift"],function(n){var l=eu[n],u=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",x=/^(?:pop|shift)$/.test(n);k.prototype[n]=function(){var T=arguments;if(x&&!this.__chain__){var L=this.value();return l.apply(We(L)?L:[],T)}return this[u](function(O){return l.apply(We(O)?O:[],T)})}}),Kn(rt.prototype,function(n,l){var u=k[l];if(u){var x=u.name+"";Et.call(as,x)||(as[x]=[]),as[x].push({name:l,func:u})}}),as[Eu(e,w).name]=[{name:"wrapper",func:e}],rt.prototype.clone=N7,rt.prototype.reverse=O7,rt.prototype.value=F7,k.prototype.at=uP,k.prototype.chain=pP,k.prototype.commit=fP,k.prototype.next=hP,k.prototype.plant=bP,k.prototype.reverse=xP,k.prototype.toJSON=k.prototype.valueOf=k.prototype.value=vP,k.prototype.first=k.prototype.head,Vc&&(k.prototype[Vc]=gP),k},ra=f7();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(wr._=ra,define(function(){return ra})):Xa?((Xa.exports=ra)._=ra,jg._=ra):wr._=ra}).call(Dc)});v();var Mg=S(ee(),1);v();var nf=S(ee(),1);v();v();v();v();var ir=S(ee(),1);v();var AD=0;function O5(e,t){let r=`atom${++AD}`,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 wa=Symbol(),j0=e=>!!e[wa],Vp=e=>!e[wa].c,Fd=e=>{var t;let{b:r,c:o}=e[wa];o&&(o(),(t=LD.get(r))==null||t())},Yp=(e,t)=>{let r=e[wa].o,o=t[wa].o;return r===o||e===o||j0(r)&&Yp(r,t)},q0=(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[wa]=r,o},MD=e=>q0(e[wa].b,e[wa].o),LD=new WeakMap;var Kp=e=>"init"in e,zd="r",Zp="w",Bd="c",Xp="s",F5="h",PD="n",RD="l",DD="a",ND="m",z5=e=>{let t=new WeakMap,r=new WeakMap,o=new Map,i,a;if((A&&A.MODE)!=="production"&&(i=new Set,a=new Set),e)for(let[W,Z]of e){let ce={v:Z,r:0,y:!0,d:new Map};(A&&A.MODE)!=="production"&&(Object.freeze(ce),Kp(W)||console.warn("Found initial value for derived atom which can cause unexpected behavior",W)),t.set(W,ce)}let s=new WeakMap,c=(W,Z,ce)=>{let ie=s.get(Z);ie||(ie=new Map,s.set(Z,ie)),ce.then(()=>{ie.get(W)===ce&&(ie.delete(W),ie.size||s.delete(Z))}),ie.set(W,ce)},d=W=>{let Z=new Set,ce=s.get(W);return ce&&(s.delete(W),ce.forEach((ie,ae)=>{Fd(ie),Z.add(ae)})),Z},p=new WeakMap,f=W=>{let Z=p.get(W);return Z||(Z=new Map,p.set(W,Z)),Z},m=(W,Z)=>{if(W){let ce=f(W),ie=ce.get(Z);return ie||(ie=m(W.p,Z),ie&&"p"in ie&&Vp(ie.p)&&(ie=void 0),ie&&ce.set(Z,ie)),ie}return t.get(Z)},h=(W,Z,ce)=>{if((A&&A.MODE)!=="production"&&Object.freeze(ce),W)f(W).set(Z,ce);else{let ie=t.get(Z);t.set(Z,ce),o.has(Z)||o.set(Z,ie)}},b=(W,Z=new Map,ce)=>{if(!ce)return Z;let ie=new Map,ae=!1;return ce.forEach(ue=>{var ge;let Ce=((ge=m(W,ue))==null?void 0:ge.r)||0;ie.set(ue,Ce),Z.get(ue)!==Ce&&(ae=!0)}),Z.size===ie.size&&!ae?Z:ie},y=(W,Z,ce,ie,ae)=>{let ue=m(W,Z);if(ue){if(ae&&(!("p"in ue)||!Yp(ue.p,ae)))return ue;"p"in ue&&Fd(ue.p)}let ge={v:ce,r:ue?.r||0,y:!0,d:b(W,ue?.d,ie)},Ce=!ue?.y;return!ue||!("v"in ue)||!Object.is(ue.v,ce)?(Ce=!0,++ge.r,ge.d.has(Z)&&(ge.d=new Map(ge.d).set(Z,ge.r))):ge.d!==ue.d&&(ge.d.size!==ue.d.size||!Array.from(ge.d.keys()).every(_t=>ue.d.has(_t)))&&(Ce=!0,Promise.resolve().then(()=>{Ee(W)})),ue&&!Ce?ue:(h(W,Z,ge),ge)},w=(W,Z,ce,ie,ae)=>{let ue=m(W,Z);if(ue){if(ae&&(!("p"in ue)||!Yp(ue.p,ae)))return ue;"p"in ue&&Fd(ue.p)}let ge={e:ce,r:(ue?.r||0)+1,y:!0,d:b(W,ue?.d,ie)};return h(W,Z,ge),ge},C=(W,Z,ce,ie)=>{let ae=m(W,Z);if(ae&&"p"in ae){if(Yp(ae.p,ce)&&!Vp(ae.p))return ae.y?ae:{...ae,y:!0};Fd(ae.p)}c(W,Z,ce);let ue={p:ce,r:(ae?.r||0)+1,y:!0,d:b(W,ae?.d,ie)};return h(W,Z,ue),ue},M=(W,Z,ce,ie)=>{if(ce instanceof Promise){let ae=q0(ce,ce.then(ue=>{y(W,Z,ue,ie,ae)}).catch(ue=>{if(ue instanceof Promise)return j0(ue)?ue.then(()=>{I(W,Z,!0)}):ue;w(W,Z,ue,ie,ae)}));return C(W,Z,ae,ie)}return y(W,Z,ce,ie)},_=(W,Z)=>{let ce=m(W,Z);if(ce){let ie={...ce,y:!1};h(W,Z,ie)}else(A&&A.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",Z)},I=(W,Z,ce)=>{if(!ce){let ae=m(W,Z);if(ae){if(ae.y&&"p"in ae&&!Vp(ae.p))return ae;if(ae.d.forEach((ue,ge)=>{if(ge!==Z)if(!r.has(ge))I(W,ge);else{let Ce=m(W,ge);Ce&&!Ce.y&&I(W,ge)}}),Array.from(ae.d).every(([ue,ge])=>{let Ce=m(W,ue);return Ce&&!("p"in Ce)&&Ce.r===ge}))return ae.y?ae:{...ae,y:!0}}}let ie=new Set;try{let ae=Z.read(ue=>{ie.add(ue);let ge=ue===Z?m(W,ue):I(W,ue);if(ge){if("e"in ge)throw ge.e;if("p"in ge)throw ge.p;return ge.v}if(Kp(ue))return ue.init;throw new Error("no atom init")});return M(W,Z,ae,ie)}catch(ae){if(ae instanceof Promise){let ue=j0(ae)&&Vp(ae)?MD(ae):q0(ae,ae);return C(W,Z,ue,ie)}return w(W,Z,ae,ie)}},N=(W,Z)=>I(Z,W),$=(W,Z)=>{let ce=r.get(Z);return ce||(ce=me(W,Z)),ce},D=(W,Z)=>!Z.l.size&&(!Z.t.size||Z.t.size===1&&Z.t.has(W)),z=(W,Z)=>{let ce=r.get(Z);ce&&D(Z,ce)&&K(W,Z)},B=(W,Z)=>{let ce=r.get(Z);ce?.t.forEach(ie=>{ie!==Z&&(_(W,ie),B(W,ie))})},q=(W,Z,ce)=>{let ie=!0,ae=(Ce,_t)=>{let Ct=I(W,Ce);if("e"in Ct)throw Ct.e;if("p"in Ct){if(_t?.unstable_promise)return Ct.p.then(()=>{let Pt=m(W,Ce);return Pt&&"p"in Pt&&Pt.p===Ct.p?new Promise(yt=>setTimeout(yt)).then(()=>ae(Ce,_t)):ae(Ce,_t)});throw(A&&A.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",Ce),Ct.p}if("v"in Ct)return Ct.v;throw(A&&A.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",Ce),new Error("no value found")},ue=(Ce,_t)=>{let Ct;if(Ce===Z){if(!Kp(Ce))throw new Error("atom not writable");d(Ce).forEach(hr=>{hr!==W&&M(hr,Ce,_t)});let yt=m(W,Ce),$t=M(W,Ce,_t);yt!==$t&&B(W,Ce)}else Ct=q(W,Ce,_t);return ie||Ee(W),Ct},ge=Z.write(ae,ue,ce);return ie=!1,ge},V=(W,Z,ce)=>{let ie=q(ce,W,Z);return Ee(ce),ie},te=W=>!!W.write,me=(W,Z,ce)=>{let ie={t:new Set(ce&&[ce]),l:new Set};if(r.set(Z,ie),(A&&A.MODE)!=="production"&&a.add(Z),I(void 0,Z).d.forEach((ue,ge)=>{let Ce=r.get(ge);Ce?Ce.t.add(Z):ge!==Z&&me(W,ge,Z)}),te(Z)&&Z.onMount){let ue=Ce=>V(Z,Ce,W),ge=Z.onMount(ue);W=void 0,ge&&(ie.u=ge)}return ie},K=(W,Z)=>{var ce;let ie=(ce=r.get(Z))==null?void 0:ce.u;ie&&ie(),r.delete(Z),(A&&A.MODE)!=="production"&&a.delete(Z);let ae=m(W,Z);ae?("p"in ae&&Fd(ae.p),ae.d.forEach((ue,ge)=>{if(ge!==Z){let Ce=r.get(ge);Ce&&(Ce.t.delete(Z),D(ge,Ce)&&K(W,ge))}})):(A&&A.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",Z)},de=(W,Z,ce,ie)=>{let ae=new Set(ce.d.keys());ie?.forEach((ue,ge)=>{if(ae.has(ge)){ae.delete(ge);return}let Ce=r.get(ge);Ce&&(Ce.t.delete(Z),D(ge,Ce)&&K(W,ge))}),ae.forEach(ue=>{let ge=r.get(ue);ge?ge.t.add(Z):r.has(Z)&&me(W,ue,Z)})},Ee=W=>{if(W){f(W).forEach((ce,ie)=>{let ae=t.get(ie);if(ce!==ae){let ue=r.get(ie);ue?.l.forEach(ge=>ge(W))}});return}for(;o.size;){let Z=Array.from(o);o.clear(),Z.forEach(([ce,ie])=>{let ae=m(void 0,ce);if(ae&&ae.d!==ie?.d&&de(void 0,ce,ae,ie?.d),ie&&!ie.y&&ae?.y)return;let ue=r.get(ce);ue?.l.forEach(ge=>ge())})}(A&&A.MODE)!=="production"&&i.forEach(Z=>Z())},Ie=W=>{f(W).forEach((ce,ie)=>{let ae=t.get(ie);(!ae||ce.r>ae.r||ce.y!==ae.y||ce.r===ae.r&&ce.d!==ae.d)&&(t.set(ie,ce),ce.d!==ae?.d&&de(W,ie,ce,ae?.d))})},tt=(W,Z)=>{Z&&Ie(Z),Ee(void 0)},Se=(W,Z,ce)=>{let ae=$(ce,W).l;return ae.add(Z),()=>{ae.delete(Z),z(ce,W)}},fe=(W,Z)=>{for(let[ce,ie]of W)Kp(ce)&&(M(Z,ce,ie),B(Z,ce));Ee(Z)};return(A&&A.MODE)!=="production"?{[zd]:N,[Zp]:V,[Bd]:tt,[Xp]:Se,[F5]:fe,[PD]:W=>(i.add(W),()=>{i.delete(W)}),[RD]:()=>a.values(),[DD]:W=>t.get(W),[ND]:W=>r.get(W)}:{[zd]:N,[Zp]:V,[Bd]:tt,[Xp]:Se,[F5]:fe}},B5=e=>{let t=z5(e),r=s=>{let c=t[zd](s);if("e"in c)throw c.e;if(!("p"in c))return c.v},o=s=>new Promise((c,d)=>{let p=t[zd](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[Zp](s,c),sub:(s,c)=>t[Xp](s,c),SECRET_INTERNAL_store:t}},$5=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:z5(e)}),X0=new Map,J0=e=>(X0.has(e)||X0.set(e,(0,ir.createContext)($5())),X0.get(e)),jp=({children:e,initialValues:t,scope:r,unstable_createStore:o,unstable_enableVersionedWrite:i})=>{let[a,s]=(0,ir.useState)({});(0,ir.useEffect)(()=>{let p=c.current;p.w&&(p.s[Bd](null,a),delete a.p,p.v=a)},[a]);let c=(0,ir.useRef)();if(!c.current){let p=$5(t,o);if(i){let f=0;p.w=m=>{s(h=>{let b=f?h:{p:h};return m(b),b})},p.v=a,p.r=m=>{++f,m(),--f}}c.current=p}let d=J0(r);return(0,ir.createElement)(d.Provider,{value:c.current},e)};function It(e,t){return O5(e,t)}function $d(e,t){let r=J0(t),o=(0,ir.useContext)(r),{s:i,v:a}=o,s=h=>{let b=i[zd](e,h);if((A&&A.MODE)!=="production"&&!b.y)throw new Error("should not be invalidated");if("e"in b)throw b.e;if("p"in b)throw b.p;if("v"in b)return b.v;throw new Error("no atom value")},[[c,d,p],f]=(0,ir.useReducer)((h,b)=>{let y=s(b);return Object.is(h[1],y)&&h[2]===e?h:[b,y,e]},a,h=>{let b=s(h);return[h,b,e]}),m=d;return p!==e&&(f(c),m=s(c)),(0,ir.useEffect)(()=>{let{v:h}=o;h&&i[Bd](e,h);let b=i[Xp](e,f,h);return f(h),b},[i,e,o]),(0,ir.useEffect)(()=>{i[Bd](e,c)}),(0,ir.useDebugValue)(m),m}function Ri(e,t){let r=J0(t),{s:o,w:i}=(0,ir.useContext)(r);return(0,ir.useCallback)(s=>{if((A&&A.MODE)!=="production"&&!("write"in e))throw new Error("not writable atom");let c=d=>o[Zp](e,s,d);return i?i(c):c()},[o,i,e])}function qe(e,t){return"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope),[$d(e,t),Ri(e,t)]}var OD=S(ee(),1),ft=Symbol(),Gr=B5();var FD=jE({"./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 zD=85,Jn={code:"en",label:"English"},Fs=[Jn,...[{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=>JE[e.code]>=zD).sort((e,t)=>e.label>t.label?1:-1)],Jp="__test__";A.DEV&&Fs.unshift({code:Jp,label:"test language"},{code:`${Jp}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var Os=Jn,qp={},Qp=async e=>{if(Os=e,document.documentElement.dir=Os.rtl?"rtl":"ltr",document.documentElement.lang=Os.code,e.code.startsWith(Jp))qp={};else try{qp=await FD(`./locales/${Os.code}.json`)}catch(t){console.error(`Failed to load language ${e.code}:`,t.message),qp=t0}Gr.set(U5,e.code)},Di=()=>Os,H5=(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},E=(e,t,r)=>{if(Os.code.startsWith(Jp))return`\u202A[[${t?`${e}(${JSON.stringify(t).slice(1,-1)})`:e}]]\u202C`;let o=e.split("."),i=H5(qp,o)||H5(t0,o)||r;if(i===void 0){let a=`Can't find translation for ${e}`;if(A.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},U5=It(Jn.code),sr=()=>{let e=$d(U5,ft);return{t:E,langCode:e}};var rf=S(ee(),1);v();var K5=S(ee(),1);var tf=S(P(),1),VD=({size:e="1em",circleWidth:t=8,synchronized:r=!1})=>{let i=-(K5.default.useRef(Date.now()).current%1600);return(0,tf.jsx)("div",{className:"Spinner",children:(0,tf.jsx)("svg",{viewBox:"0 0 100 100",style:{width:e,height:e,"--spinner-delay":r?`${i}ms`:0},children:(0,tf.jsx)("circle",{cx:"50",cy:"50",r:50-t/2,strokeWidth:t,fill:"none",strokeMiterlimit:"10"})})})},Rr=VD;v();function Y5(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(r=Y5(e[t]))&&(o&&(o+=" "),o+=r);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function Q(){for(var e=0,t,r,o="";e<arguments.length;)(t=arguments[e++])&&(r=Y5(t))&&(o&&(o+=" "),o+=r);return o}var zs=S(P(),1),of=({delay:e,theme:t})=>{let[r,o]=(0,rf.useState)(!!e);return(0,rf.useEffect)(()=>{if(!e)return;let i=setTimeout(()=>{o(!1)},e);return()=>clearTimeout(i)},[e]),r?null:(0,zs.jsxs)("div",{className:Q("LoadingMessage",{"LoadingMessage--dark":t===He.DARK}),children:[(0,zs.jsx)("div",{children:(0,zs.jsx)(Rr,{})}),(0,zs.jsx)("div",{className:"LoadingMessage-text",children:E("labels.loadingScene")})]})};var X5=S(P(),1),Z5=e=>{let[t,r]=(0,nf.useState)(!0);return(0,nf.useEffect)(()=>{let o=async()=>{await Qp(i),r(!1)},i=Fs.find(a=>a.code===e.langCode)||Jn;o()},[e.langCode]),t?(0,X5.jsx)(of,{theme:e.theme}):e.children};v();var fr=S(ee(),1),Cg=S(Qn(),1);v();v();v();var Pn=S(ee(),1);var tn=S(P(),1),Ae=Pn.default.forwardRef((e,t)=>{let{id:r}=Tr(),o=Pn.default.useRef(null);Pn.default.useImperativeHandle(t,()=>o.current);let i=`ToolIcon_size_${e.size}`,[a,s]=(0,Pn.useState)(!1),c=(0,Pn.useRef)(!0),d=async f=>{let m="onClick"in e&&e.onClick?.(f);if(hs(m))try{s(!0),await m}catch(h){if(h instanceof xs)console.warn(h);else throw h}finally{c.current&&s(!1)}};(0,Pn.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let p=(0,Pn.useRef)(null);if(e.type==="button"||e.type==="icon"||e.type==="submit"){let f=e.type==="icon"?"button":e.type;return(0,tn.jsxs)("button",{className:Q("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,tn.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!e.disabled,children:[e.icon||e.label,e.keyBindingLabel&&(0,tn.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel}),e.isLoading&&(0,tn.jsx)(Rr,{})]}),e.showAriaLabel&&(0,tn.jsxs)("div",{className:"ToolIcon__label",children:[e["aria-label"]," ",a&&(0,tn.jsx)(Rr,{})]}),e.children]})}return(0,tn.jsxs)("label",{className:Q("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,tn.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,tn.jsxs)("div",{className:"ToolIcon__icon",children:[e.icon,e.keyBindingLabel&&(0,tn.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel})]})]})});Ae.defaultProps={visible:!0,className:"",size:"medium"};Ae.displayName="ToolButton";v();var ao=S(ee(),1);var g=S(P(),1),Rn=e=>"var(--icon-fill-color)",q5=e=>e===He.LIGHT?Sr.white:"#1e1e1e",G=(e,t=512)=>{let{width:r=512,height:o=r,mirror:i,style:a,...s}=typeof t=="number"?{width:t}:t;return(0,g.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${r} ${o}`,className:Q({"rtl-mirror":i}),style:a,...s,children:typeof e=="string"?(0,g.jsx)("path",{fill:"currentColor",d:e}):e})},he={width:24,height:24,fill:"none",strokeWidth:2,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},Ne={width:20,height:20,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},sU=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,g.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,g.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,g.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"})]}),he),af=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,g.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,g.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,g.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,g.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),he),J5=G((0,g.jsxs)("svg",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,g.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),he),Q5=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,g.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,g.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),he),e6=G((0,g.jsxs)("svg",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,g.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,g.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),he),yl=G((0,g.jsxs)("g",{children:[(0,g.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,g.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,g.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,g.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,g.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,g.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"})})]}),Ne),Bs=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.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,g.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,g.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"})]}),Ne),t6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.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,g.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,g.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"}),r6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.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,g.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,g.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"}),o6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.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,g.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,g.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"}),cU=G((0,g.jsx)("g",{fill:"currentColor",children:(0,g.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"}),n6=G((0,g.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),i6=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),he),a6=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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"})]}),he),l6=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),he),s6=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,g.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,g.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),he),c6=G((0,g.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),Ne),d6=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,g.jsx)("path",{d:"M16 7h4"}),(0,g.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),he),$s=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.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,g.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),Ne),m6=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,g.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,g.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,g.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,g.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),he),u6=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M12.5 6.667h.01"}),(0,g.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,g.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,g.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),Ne),p6=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),he),Q0=G((0,g.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),Ne),eb=G((0,g.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),Ne),f6=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M21 21l-6 -6"}),(0,g.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,g.jsx)("path",{d:"M3 4v4h4"})]}),he),Dn=G((0,g.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"}),Ne),h6=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,g.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),Ne),Hd=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.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,g.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"})]}),Ne),Ud=G((0,g.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"}),Ne),Wd=G((0,g.jsx)("g",{stroke:"currentColor",strokeLinejoin:"round",children:(0,g.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"})}),{...Ne,strokeWidth:1.5}),lf=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,g.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,g.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),he),El=G((0,g.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"}),Ne),Hs=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,g.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,g.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),he),g6=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,g.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,g.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),he),tb=G((0,g.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"}),Ne),sf=G((0,g.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"}),Ne),b6=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.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,g.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"})]}),Ne),x6=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,g.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),he),v6=G((0,g.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Gd=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.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,g.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"})]}),Ne),y6=G("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}),E6=G("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}),Us=G((0,g.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"}),Ne),dU=G("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}),w6=G("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"),cf=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z"}),(0,g.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,g.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"})]}),he),df=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M15 8h.01"}),(0,g.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,g.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,g.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,g.jsx)("path",{d:"M19 16v6"}),(0,g.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),he),C6=G("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}),mU=G("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}),uU=G("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}),S6=G("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"),pU=G("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"),rb=G((0,g.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"}),Ne),ob=G((0,g.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"}),Ne),T6=G("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}),I6=G((0,g.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"}),Ne),fU=G("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"),hU=G("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}),gU=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M12 14v-11"}),(0,g.jsx)("path",{d:"M9 6l3 -3l3 3"})]}),he),bU=G((0,g.jsxs)(g.Fragment,{children:[(0,g.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,g.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}),xU=G((0,g.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}),k6=(0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M12 10l0 10"}),(0,g.jsx)("path",{d:"M12 10l4 4"}),(0,g.jsx)("path",{d:"M12 10l-4 4"}),(0,g.jsx)("path",{d:"M4 4l16 0"})]}),_6=(0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M12 5l0 14"}),(0,g.jsx)("path",{d:"M16 9l-4 -4"}),(0,g.jsx)("path",{d:"M8 9l4 -4"})]}),nb=G(_6,he),ib=G(_6,{...he,style:{transform:"rotate(180deg)"}}),ab=G(k6,he),lb=G(k6,{...he,style:{transform:"rotate(180deg)"}}),sb=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),cb=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),db=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),mb=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),A6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),M6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),ub=G((0,g.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,g.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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"})]}),Ne),pb=G((0,g.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,g.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,g.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"})]}),Ne),mf=G((0,g.jsxs)("g",{strokeWidth:"1.5",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,g.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,g.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,g.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),he),vU=G("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"),yU=G("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"),rn=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,g.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),EU=G("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}),wU=G("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}),CU=G("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}),fb=ao.default.memo(({theme:e})=>G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{d:"M25 26H111V111H25",fill:Rn(e)}),(0,g.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:Rn(e),strokeWidth:"2"}),(0,g.jsx)("path",{d:"M100 100H160V160H100",fill:Rn(e)}),(0,g.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:Rn(e),strokeWidth:"2"}),(0,g.jsxs)("g",{fill:q5(e),stroke:Rn(e),strokeWidth:"6",children:[(0,g.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),hb=ao.default.memo(({theme:e})=>G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{d:"M25 26H111V111H25",fill:Rn(e)}),(0,g.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:Rn(e),strokeWidth:"2"}),(0,g.jsx)("path",{d:"M100 100H160V160H100",fill:Rn(e)}),(0,g.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:Rn(e),strokeWidth:"2"}),(0,g.jsxs)("g",{fill:q5(e),stroke:Rn(e),strokeWidth:"6",children:[(0,g.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,g.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),L6=G((0,g.jsx)("g",{strokeWidth:1.25,children:(0,g.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"})}),Ne),P6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.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,g.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,g.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,g.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,g.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"})})]}),Ne),R6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("g",{clipPath:"url(#a)",children:[(0,g.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,g.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,g.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,g.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),D6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("g",{clipPath:"url(#a)",children:(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...Ne,fill:"currentColor"}),gb=G((0,g.jsx)(g.Fragment,{children:(0,g.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),Ne),N6=G((0,g.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),Ne),O6=G((0,g.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),Ne),SU=ao.default.memo(({theme:e})=>G((0,g.jsx)("path",{d:"M6 10H34",stroke:Rn(e),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),F6=G((0,g.jsxs)("g",{strokeWidth:"2",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M5 12h2"}),(0,g.jsx)("path",{d:"M17 12h2"}),(0,g.jsx)("path",{d:"M11 12h2"})]}),he),z6=G((0,g.jsxs)("g",{strokeWidth:"2",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M4 12v.01"}),(0,g.jsx)("path",{d:"M8 12v.01"}),(0,g.jsx)("path",{d:"M12 12v.01"}),(0,g.jsx)("path",{d:"M16 12v.01"}),(0,g.jsx)("path",{d:"M20 12v.01"})]}),he),B6=G((0,g.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"}),Ne),$6=G((0,g.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"}),Ne),H6=G((0,g.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"}),Ne),U6=G((0,g.jsxs)("svg",{strokeWidth:"1.5",children:[(0,g.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,g.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,g.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,g.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,g.jsx)("path",{d:"M16.6667 10V10.01"}),(0,g.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,g.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,g.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,g.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,g.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,g.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,g.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),Ne),W6=G((0,g.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,g.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,g.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,g.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,g.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,g.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,g.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,g.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,g.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,g.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,g.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,g.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),he),G6=G((0,g.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),V6=ao.default.memo(({flip:e=!1})=>G((0,g.jsxs)("g",{transform:e?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,g.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,g.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),bb=ao.default.memo(({flip:e=!1})=>G((0,g.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:e?"translate(40, 0) scale(-1, 1)":"",children:[(0,g.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,g.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),K6=ao.default.memo(({flip:e=!1})=>G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",transform:e?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,g.jsx)("path",{d:"M26 10L6 10"}),(0,g.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),Y6=ao.default.memo(({flip:e=!1})=>G((0,g.jsx)("g",{transform:e?"translate(40, 0) scale(-1, 1)":"",children:(0,g.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),Z6=ao.default.memo(({flip:e=!1})=>G((0,g.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:e?"translate(40, 0) scale(-1, 1)":"",children:[(0,g.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,g.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),X6=ao.default.memo(({flip:e=!1})=>G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",transform:e?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,g.jsx)("path",{d:"M6,9.5H27"}),(0,g.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),j6=ao.default.memo(({flip:e=!1})=>G((0,g.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:e?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,g.jsx)("path",{d:"M6,9.5H20"}),(0,g.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),q6=ao.default.memo(({flip:e=!1})=>G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",transform:e?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,g.jsx)("path",{d:"M6,9.5H20"}),(0,g.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),J6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("g",{clipPath:"url(#a)",children:(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),Q6=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("g",{clipPath:"url(#a)",children:(0,g.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),e4=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("g",{clipPath:"url(#a)",children:(0,g.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),t4=G((0,g.jsx)(g.Fragment,{children:(0,g.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"})}),Ne),wl=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M3 7v-2h13v2"}),(0,g.jsx)("path",{d:"M10 5v14"}),(0,g.jsx)("path",{d:"M12 19h-4"}),(0,g.jsx)("path",{d:"M15 13v-1h6v1"}),(0,g.jsx)("path",{d:"M18 12v7"}),(0,g.jsx)("path",{d:"M17 19h2"})]}),he),r4=G((0,g.jsx)(g.Fragment,{children:(0,g.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,g.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"})})}),Ne),o4=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,g.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,g.jsx)("defs",{children:(0,g.jsx)("clipPath",{id:"a",children:(0,g.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),Ne),n4=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,g.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,g.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),he),i4=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,g.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,g.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),he),a4=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,g.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,g.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),he),l4=ao.default.memo(({theme:e})=>G((0,g.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,g.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),he)),s4=ao.default.memo(({theme:e})=>G((0,g.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,g.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),he)),c4=ao.default.memo(({theme:e})=>G((0,g.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,g.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,g.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),he)),uf=G((0,g.jsxs)("g",{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M21 19h-18l9 -15"}),(0,g.jsx)("path",{d:"M20.615 15.171h.015"}),(0,g.jsx)("path",{d:"M19.515 11.771h.015"}),(0,g.jsx)("path",{d:"M17.715 8.671h.015"}),(0,g.jsx)("path",{d:"M15.415 5.971h.015"})]}),he),d4=G((0,g.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}),TU=G((0,g.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"})),pf=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,g.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,g.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,g.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"})]}),he),xb=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,g.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,g.jsx)("path",{d:"M12 4l0 12"})]}),he),ff=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.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"})]}),he),m4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M7 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,g.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,g.jsx)("path",{d:"M9.15 14.85l8.85 -10.85"}),(0,g.jsx)("path",{d:"M6 4l8.85 10.85"})]}),he),u4=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,g.jsx)("path",{d:"M12 17l0 .01"}),(0,g.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),he),IU=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M7 4v16l13 -8z"})]}),he),kU=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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"})]}),he),_U=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),he),p4=G((0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M12 9v4"}),(0,g.jsx)("path",{d:"M12 17h.01"})]}),he),f4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M11 7l6 6"}),(0,g.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"})]}),he),h4=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,g.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,g.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"})]}),he),hf=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M4 7l16 0"}),(0,g.jsx)("path",{d:"M4 17l16 0"}),(0,g.jsx)("path",{d:"M7 4l0 16"}),(0,g.jsx)("path",{d:"M17 4l0 16"})]}),he),gf=G((0,g.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"})),Ws=G((0,g.jsxs)("g",{strokeWidth:"1.25",children:[(0,g.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,g.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,g.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),Ne),bf=G((0,g.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,g.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,g.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),Gs=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,g.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,g.jsx)("path",{d:"M15 6l3 3"}),(0,g.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,g.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"})]}),he),AU=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,g.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,g.jsx)("path",{d:"M15 6l3 3"}),(0,g.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,g.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"})]}),he),Vd=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,g.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,g.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,g.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,g.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,g.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"})]}),he),g4=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,g.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,g.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,g.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),he),Vs=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,g.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"})]}),he),b4=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,g.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,g.jsx)("path",{d:"M3 3l18 18"})]}),he),x4=G((0,g.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.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,g.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,g.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,g.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,g.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),he),v4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.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,g.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,g.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,g.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,g.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),he),xf=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,g.jsx)("path",{d:"M21 21l-6 -6"})]}),he),y4=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M20.984 12.53a9 9 0 1 0 -7.552 8.355"}),(0,g.jsx)("path",{d:"M12 7v5l3 3"}),(0,g.jsx)("path",{d:"M19 16l-2 3h4l-2 3"})]}),he),E4=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M5 10a7 7 0 0 0 14 0"}),(0,g.jsx)("path",{d:"M8 21l8 0"}),(0,g.jsx)("path",{d:"M12 17l0 4"})]}),he),w4=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M3 3l18 18"}),(0,g.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,g.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,g.jsx)("path",{d:"M8 21l8 0"}),(0,g.jsx)("path",{d:"M12 17l0 4"})]}),he),vf=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"})]}),he),C4=G((0,g.jsxs)("g",{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M12 20v.01"}),(0,g.jsx)("path",{d:"M16 20v.01"}),(0,g.jsx)("path",{d:"M8 20v.01"}),(0,g.jsx)("path",{d:"M4 20v.01"}),(0,g.jsx)("path",{d:"M4 16v.01"}),(0,g.jsx)("path",{d:"M4 12v.01"}),(0,g.jsx)("path",{d:"M4 8v.01"}),(0,g.jsx)("path",{d:"M4 4v.01"}),(0,g.jsx)("path",{d:"M8 4v.01"}),(0,g.jsx)("path",{d:"M12 4v.01"}),(0,g.jsx)("path",{d:"M16 4v.01"}),(0,g.jsx)("path",{d:"M20 4v.01"}),(0,g.jsx)("path",{d:"M20 8v.01"}),(0,g.jsx)("path",{d:"M20 12v.01"}),(0,g.jsx)("path",{d:"M20 16v.01"}),(0,g.jsx)("path",{d:"M20 20v.01"})]}),he),S4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M5 3v18"}),(0,g.jsx)("path",{d:"M19 21v-18"}),(0,g.jsx)("path",{d:"M5 7h14"}),(0,g.jsx)("path",{d:"M5 15h14"}),(0,g.jsx)("path",{d:"M8 13v4"}),(0,g.jsx)("path",{d:"M11 13v4"}),(0,g.jsx)("path",{d:"M16 13v4"}),(0,g.jsx)("path",{d:"M14 5v4"}),(0,g.jsx)("path",{d:"M11 5v4"}),(0,g.jsx)("path",{d:"M8 5v4"}),(0,g.jsx)("path",{d:"M3 21h18"})]}),he),T4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M3 12l18 0"}),(0,g.jsx)("path",{d:"M7 16l10 0l-10 5l0 -5"}),(0,g.jsx)("path",{d:"M7 8l10 0l-10 -5l0 5"})]}),he),I4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M12 3l0 18"}),(0,g.jsx)("path",{d:"M16 7l0 10l5 0l-5 -10"}),(0,g.jsx)("path",{d:"M8 7l0 10l-5 0l5 -10"})]}),he),vb=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M19 6h1a2 2 0 0 1 2 2a5 5 0 0 1 -5 5l-5 0v2"}),(0,g.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"})]}),he),yf=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M15 15m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"}),(0,g.jsx)("path",{d:"M22 22l-3 -3"}),(0,g.jsx)("path",{d:"M6 18h-1a2 2 0 0 1 -2 -2v-1"}),(0,g.jsx)("path",{d:"M3 11v-1"}),(0,g.jsx)("path",{d:"M3 6v-1a2 2 0 0 1 2 -2h1"}),(0,g.jsx)("path",{d:"M10 3h1"}),(0,g.jsx)("path",{d:"M15 3h1a2 2 0 0 1 2 2v1"})]}),he),k4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,g.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,g.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,g.jsx)("path",{d:"M10 15l2 6l2 -6"}),(0,g.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"})]}),he),_4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,g.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,g.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"}),(0,g.jsx)("path",{d:"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"}),(0,g.jsx)("path",{d:"M11 21v-6l3 6v-6"})]}),he),A4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M4 8l5 0"}),(0,g.jsx)("path",{d:"M15 8l4 0"})]}),he),M4=G((0,g.jsxs)("g",{strokeWidth:1.25,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M8 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,g.jsx)("path",{d:"M12 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,g.jsx)("path",{d:"M3 10h14v5a6 6 0 0 1 -6 6h-2a6 6 0 0 1 -6 -6v-5z"}),(0,g.jsx)("path",{d:"M16.746 16.726a3 3 0 1 0 .252 -5.555"})]}),he),L4=G((0,g.jsxs)("g",{stroke:"currentColor",children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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"})]}),{...he,strokeWidth:1.5}),MU=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M15 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2"}),(0,g.jsx)("path",{d:"M21 12h-13l3 -3"}),(0,g.jsx)("path",{d:"M11 15l-3 -3"})]}),he),P4=G((0,g.jsxs)("g",{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.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,g.jsx)("path",{d:"M10 9l5 3l-5 3z"})]}),he),R4=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M3 6h18"}),(0,g.jsx)("path",{d:"M3 12h18"}),(0,g.jsx)("path",{d:"M3 18h18"}),(0,g.jsx)("path",{d:"M6 3v18"}),(0,g.jsx)("path",{d:"M12 3v18"}),(0,g.jsx)("path",{d:"M18 3v18"})]}),he),D4=G((0,g.jsxs)("g",{strokeWidth:1.5,children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M17 3m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"}),(0,g.jsx)("path",{d:"M3 17m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"}),(0,g.jsx)("path",{d:"M17 5c-6.627 0 -12 5.373 -12 12"})]}),he),N4=G((0,g.jsxs)("g",{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M6 9l6 6l6 -6"})]}),he),O4=G((0,g.jsxs)("g",{children:[(0,g.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,g.jsx)("path",{d:"M6 15l6 -6l6 6"})]}),he);var z4=S(P(),1),KD=(e,t)=>{let r=new Set(Ge(e.filter(o=>Ve(o)),t).map(o=>o.id));return{elements:e.map(o=>t.selectedElementIds[o.id]?De(o,{isDeleted:!0}):o.frameId&&r.has(o.frameId)?De(o,{isDeleted:!0}):nr(o)&&t.selectedElementIds[o.containerId]?De(o,{isDeleted:!0}):o),appState:{...t,selectedElementIds:{},selectedGroupIds:{}}}},F4=(e,t)=>{if(e.editingGroupId){let r=Zt(Ze(t),e.editingGroupId);if(r.length)return{...e,selectedElementIds:{[r[0].id]:!0}}}return e},Kd=ne({name:"deleteSelectedElements",label:"labels.delete",icon:Dn,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(),m=Fe.getElement(s,f);if(!m||c==null)return!1;if(m.points.length<2){let b=e.map(w=>w.id===m.id?De(w,{isDeleted:!0}):w),y=F4(t,b);return{elements:b,appState:{...y,editingLinearElement:null},storeAction:Y.CAPTURE}}let h={startBindingElement:c?.includes(0)?null:d,endBindingElement:c?.includes(m.points.length-1)?null:p};return Fe.deletePoints(m,c),{elements:e,appState:{...t,editingLinearElement:{...t.editingLinearElement,...h,selectedPointsIndices:c?.[0]>0?[c[0]-1]:[0]}},storeAction:Y.CAPTURE}}let{elements:i,appState:a}=KD(e,t);return mp(i,e.filter(({id:s})=>t.selectedElementIds[s])),a=F4(a,i),{elements:i,appState:{...a,activeTool:Kt(t,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:xt(Ze(e),t)?Y.CAPTURE:Y.NONE}},keyTest:(e,t,r)=>(e.key===R.BACKSPACE||e.key===R.DELETE)&&!e[R.CTRL_OR_CMD],PanelComponent:({elements:e,appState:t,updateData:r})=>(0,z4.jsx)(Ae,{type:"button",icon:Dn,title:E("labels.delete"),"aria-label":E("labels.delete"),onClick:()=>r(null),visible:xt(Ze(e),t)})});v();v();var yb=(e,t)=>e.frameId===t||e.id===t,$4=(e,t,r)=>{let o=[],i=[],a=null,s=-1,c=Oe(r||Ge(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},YD=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),[])},B4=(e,t,r)=>{if("containerId"in e&&e.containerId)if(r==="left"){let o=Xo.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=Xo.getScene(e).getElement(o);if(i)return t.indexOf(i)}}},ZD=(e,t)=>{let r=-1,o=-1;return e.forEach((i,a)=>{yb(i,t)&&(r===-1&&(r=a),o=a)}),r===-1?[]:e.slice(r,o+1)},XD=(e,t,r,o,i)=>{let a=t[r],s=m=>m.isDeleted?!1:i?m.frameId===i:e.editingGroupId?m.groupIds.includes(e.editingGroupId):!0,c=o==="left"?p0(t,m=>s(m),Math.max(0,r-1)):u0(t,m=>s(m),r+1),d=t[c];if(!d)return-1;if(e.editingGroupId){if(a?.groupIds.join("")===d?.groupIds.join(""))return B4(d,t,o)??c;if(!d?.groupIds.includes(e.editingGroupId))return-1}if(!i&&(d.frameId||Ve(d))){let m=ZD(t,d.frameId||d.id);return o==="left"?t.indexOf(m[0]):t.indexOf(m[m.length-1])}if(!d.groupIds.length)return B4(d,t,o)??c;let p=e.editingGroupId?d.groupIds[d.groupIds.indexOf(e.editingGroupId)-1]:d.groupIds[d.groupIds.length-1],f=Zt(t,p);return f.length?o==="left"?t.indexOf(f[0]):t.indexOf(f[f.length-1]):c},H4=(e,t)=>t.reduce((r,o)=>{let i=e[o];return r.set(i.id,i),r},new Map),U4=(e,t,r)=>{let o=$4(e,t),i=H4(e,o),a=YD(o);r==="right"&&(a=a.reverse());let s=new Set(o.filter(c=>Ve(e[c])).map(c=>e[c].id));return a.forEach((c,d)=>{let p=c[0],f=c[c.length-1],m=r==="left"?p:f,h=c.some(_=>{let I=e[_];return I.frameId&&s.has(I.frameId)})?null:e[m]?.frameId,b=XD(t,e,m,r,h);if(b===-1||m===b)return;let y=r==="left"?e.slice(0,b):e.slice(0,p),w=e.slice(p,f+1),C=r==="left"?e.slice(b,p):e.slice(f+1,b+1),M=r==="left"?e.slice(f+1):e.slice(b+1);e=r==="left"?[...y,...w,...C,...M]:[...y,...C,...w,...M]}),Mo(e,i),e},W4=(e,t,r,o,i)=>{let a=$4(e,t,i),s=H4(e,a),c=[],d,p;if(r==="left"){if(o)d=u0(e,y=>yb(y,o));else if(t.editingGroupId){let y=Zt(e,t.editingGroupId);if(!y.length)return e;d=e.indexOf(y[0])}else d=0;p=a[a.length-1]}else{if(o)p=p0(e,y=>yb(y,o));else if(t.editingGroupId){let y=Zt(e,t.editingGroupId);if(!y.length)return e;p=e.indexOf(y[y.length-1])}else p=e.length-1;d=a[0]}d===-1&&(d=0);for(let y=d;y<p+1;y++)a.includes(y)||c.push(e[y]);let f=Array.from(s.values()),m=e.slice(0,d),h=e.slice(p+1),b=r==="left"?[...m,...f,...c,...h]:[...m,...c,...f,...h];return Mo(b,s),b};function G4(e,t,r,o){let i=Oe(Ge(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),a={regularElements:[],frameChildren:new Map},s=new Set;for(let p of e)i.has(p.id)&&Ve(p)&&s.add(p.id);for(let p of e)if(i.has(p.id))if(Ve(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 V4=(e,t)=>U4(e,t,"left"),K4=(e,t)=>U4(e,t,"right"),Y4=(e,t)=>G4(e,t,"left",W4),Z4=(e,t)=>G4(e,t,"right",W4);var Yd=S(P(),1),Eb=ne({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:ib,trackEvent:{category:"element"},perform:(e,t)=>({elements:V4(e,t),appState:t,storeAction:Y.CAPTURE}),keyPriority:40,keyTest:e=>e[R.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Be.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,Yd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendBackward")} \u2014 ${X("CtrlOrCmd+[")}`,children:ib})}),wb=ne({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:nb,trackEvent:{category:"element"},perform:(e,t)=>({elements:K4(e,t),appState:t,storeAction:Y.CAPTURE}),keyPriority:40,keyTest:e=>e[R.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Be.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,Yd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.bringForward")} \u2014 ${X("CtrlOrCmd+]")}`,children:nb})}),Cb=ne({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:lb,trackEvent:{category:"element"},perform:(e,t)=>({elements:Y4(e,t),appState:t,storeAction:Y.CAPTURE}),keyTest:e=>Tn?e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.BRACKET_LEFT:e[R.CTRL_OR_CMD]&&e.shiftKey&&e.code===Be.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,Yd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendToBack")} \u2014 ${Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")}`,children:lb})}),Sb=ne({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:ab,trackEvent:{category:"element"},perform:(e,t)=>({elements:Z4(e,t),appState:t,storeAction:Y.CAPTURE}),keyTest:e=>Tn?e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.BRACKET_RIGHT:e[R.CTRL_OR_CMD]&&e.shiftKey&&e.code===Be.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,Yd.jsx)("button",{type:"button",className:"zIndexButton",onClick:r=>e(null),title:`${E("labels.bringToFront")} \u2014 ${Tn?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")}`,children:ab})});v();var Tb=ne({name:"selectAll",label:"labels.selectAll",icon:C4,trackEvent:{category:"canvas"},viewMode:!1,perform:(e,t,r,o)=>{if(t.editingLinearElement)return!1;let i=Ns(e.filter(a=>!a.isDeleted&&!(ve(a)&&a.containerId)&&!a.locked)).reduce((a,s)=>(a[s.id]=!0,a),{});return{appState:{...t,...Pr({editingGroupId:null,selectedElementIds:i},Ze(e),t,o),selectedLinearElement:Object.keys(i).length===1&&lt(e[0])?new Fe(e[0]):null},storeAction:Y.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.A});v();v();var jD=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(m=>m===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]},qD=e=>{let t=Bw(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]},X4=e=>qD(jD(e));var j4=S(P(),1),Ib=ne({name:"duplicateSelection",label:"labels.duplicateSelection",icon:Hd,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=o.scene.getNonDeletedElementsMap();if(t.editingLinearElement){let a=Fe.duplicateSelectedPoints(t,i);return a?{elements:e,appState:a.appState,storeAction:Y.CAPTURE}:!1}return{...JD(e,t),storeAction:Y.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.D,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,j4.jsx)(Ae,{type:"button",icon:Hd,title:`${E("labels.duplicateSelection")} \u2014 ${X("CtrlOrCmd+D")}`,"aria-label":E("labels.duplicateSelection"),onClick:()=>r(null),visible:xt(Ze(e),t)})}),JD=(e,t)=>{let r=X4(e),o=new Map,i=[],a=[],s=new Map,c=new Map,d=_=>{let I=Sp(t.editingGroupId,o,_,{x:_.x+Ei/2,y:_.y+Ei/2});return c.set(I.id,I),s.set(_.id,I.id),a.push(_),i.push(I),I},p=Oe(Ge(r,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),f=new Map,m=_=>{for(let I of _)f.set(I.id,!0);return _},h=[],b=-1;for(;++b<r.length;){let _=r[b];if(f.get(_.id))continue;let I=ct(_,Oe(e)),N=Ve(_);if(p.get(_.id)){if(_.groupIds.length||I||N){let $=x3(t,_);if($){let D=Zt(r,$).flatMap(z=>Ve(z)?[...Ea(e,z.id),z]:[z]);h.push(...m([...D,...D.map(z=>d(z))]));continue}if(I){h.push(...m([_,I,d(_),d(I)]));continue}if(N){let D=Ea(r,_.id);h.push(...m([...D,_,...D.map(z=>d(z)),d(_)]));continue}}(!_.frameId||!p.has(_.frameId))&&h.push(...m([_,d(_)]))}else h.push(...m([_]))}let y=[],w=new Map;for(b=h.length;--b>=0;){let _=h[b];w.get(_.id)||(w.set(_.id,!0),y.push(_))}let C=Mo(y.reverse(),Oe(i));up(h,a,s),dp(h,a,s),Np(C,a,s);let M=Ns(i);return{elements:C,appState:{...t,...Pr({editingGroupId:t.editingGroupId,selectedElementIds:M.reduce((_,I)=>(nr(I)||(_[I.id]=!0),_),{})},Ze(C),t,null)}}};v();v();var QD=["ai","command_palette"],Ue=(e,t,r,o)=>{try{if(typeof window>"u"||A.VITE_WORKER_ID||A.PROD||!QD.includes(e))return;A.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 Ks=S(P(),1),ei=e=>(0,Ks.jsx)("div",{className:"buttonList buttonListIcon",children:e.options.map(t=>e.type==="button"?(0,Ks.jsx)("button",{type:"button",onClick:r=>e.onClick(t.value,r),className:Q({active:t.active??e.value===t.value}),"data-testid":t.testId,title:t.text,children:t.icon},t.text):(0,Ks.jsxs)("label",{className:Q({active:e.value===t.value}),title:t.text,children:[(0,Ks.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 Ef=S(P(),1),q4=({onChange:e,type:t,activeColor:r,topPicks:o})=>{let i;return t==="elementStroke"&&(i=Ou),t==="elementBackground"&&(i=Fu),t==="canvasBackground"&&(i=zu),o&&(i=o),i?(0,Ef.jsx)("div",{className:"color-picker__top-picks",children:i.map(a=>(0,Ef.jsx)("button",{className:Q("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,Ef.jsx)("div",{className:"color-picker__button-outline"})},a))}):(console.error("Invalid type for TopPicks"),null)};v();var Sa=S(ee(),1);v();var wf=S(ee(),1);v();var Ca=({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},Zd=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),kb=({color:e,palette:t})=>!Object.values(t).flat().includes(e),Q4=(e,t,r)=>{let o={elementBackground:"backgroundColor",elementStroke:"strokeColor"},i=e.filter(s=>{if(s.isDeleted)return!1;let c=s[o[t]];return kb({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,QE)},on=It(null),J4=(e,t,r)=>(e*299+t*587+r*114)/1e3>=160?"black":"white",eC=(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 J4(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 J4(r,o,i)};v();var tC=S(P(),1),eN=({color:e,keyLabel:t,isCustomColor:r=!1,isShade:o=!1})=>(0,tC.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:eC(e,r)},children:[o&&"\u21E7",t]}),Ys=eN;var Ni=S(P(),1),rC=({hex:e,onChange:t,palette:r})=>{let o=Ca({color:e||"transparent",palette:r}),[i,a]=qe(on),s=(0,wf.useRef)(null);if((0,wf.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,Ni.jsx)("div",{className:"color-picker-content--default shades",children:p.map((f,m)=>(0,Ni.jsxs)("button",{ref:m===d&&i==="shades"?s:void 0,tabIndex:-1,type:"button",className:Q("color-picker__button color-picker__button--large",{active:m===d}),"aria-label":"Shade",title:`${c} - ${m+1}`,style:f?{"--swatch-color":f}:void 0,onClick:()=>{t(f),a("shades")},children:[(0,Ni.jsx)("div",{className:"color-picker__button-outline"}),(0,Ni.jsx)(Ys,{color:f,keyLabel:m+1,isShade:!0})]},m))})}return(0,Ni.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Ni.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Ni.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:E("colorPicker.noShades")})]})};v();var Cf=S(ee(),1);var Zs=S(P(),1),tN=({palette:e,color:t,onChange:r,label:o,activeShade:i})=>{let a=Ca({color:t||"transparent",palette:e}),[s,c]=qe(on),d=(0,Cf.useRef)(null);return(0,Cf.useEffect)(()=>{d.current&&s==="baseColors"&&d.current.focus()},[a?.colorName,s]),(0,Zs.jsx)("div",{className:"color-picker-content--default",children:Object.entries(e).map(([p,f],m)=>{let h=(Array.isArray(f)?f[i]:f)||"transparent",b=Zd[m],y=E(`colors.${p.replace(/\d+/,"")}`,null,"");return(0,Zs.jsxs)("button",{ref:a?.colorName===p?d:void 0,tabIndex:-1,type:"button",className:Q("color-picker__button color-picker__button--large",{active:a?.colorName===p,"is-transparent":h==="transparent"||!h}),onClick:()=>{r(h),c("baseColors")},title:`${y}${h.startsWith("#")?` ${h}`:""} \u2014 ${b}`,"aria-label":`${y} \u2014 ${b}`,style:h?{"--swatch-color":h}:void 0,"data-testid":`color-${p}`,children:[(0,Zs.jsx)("div",{className:"color-picker__button-outline"}),(0,Zs.jsx)(Ys,{color:h,keyLabel:b})]},p)})})},oC=tN;v();var Sf=S(ee(),1);var Xs=S(P(),1),nC=({colors:e,color:t,onChange:r,label:o})=>{let[i,a]=qe(on),s=(0,Sf.useRef)(null);return(0,Sf.useEffect)(()=>{s.current&&s.current.focus()},[t,i]),(0,Xs.jsx)("div",{className:"color-picker-content--default",children:e.map((c,d)=>(0,Xs.jsxs)("button",{ref:t===c?s:void 0,tabIndex:-1,type:"button",className:Q("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,Xs.jsx)("div",{className:"color-picker__button-outline"}),(0,Xs.jsx)(Ys,{color:c,keyLabel:d+1,isCustomColor:!0})]},d))})};v();var _b=(e,t,r)=>{let o=Math.ceil(r/nl);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+nl;return i>=r?t%nl:i}case"ArrowUp":{let i=t-nl,a=i<0?nl*o+i:i;return a>=r?void 0:a}}},rN=({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(Zd.includes(e.key)){let c=Zd.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},iC=({event:e,activeColorPickerSection:t,palette:r,color:o,onChange:i,customColors:a,setActiveColorPickerSection:s,updateData:c,activeShade:d,onEyeDropperToggle:p,onEscape:f})=>{if(e[R.CTRL_OR_CMD])return!1;if(e.key===R.ESCAPE)return f(e),!0;if(e.key===R.ALT)return p(!0),!0;if(e.key===R.I)return p(),!0;let m=Ca({color:o,palette:r});if(e.key===R.TAB){let h={custom:!!a.length,baseColors:!0,shades:m?.shade!=null,hex:!0},b=Object.entries(h).reduce((_,[I,N])=>(N&&_.push(I),_),[]),y=b.indexOf(t),w=e.shiftKey?-1:1,C=y+w>b.length-1?0:y+w<0?b.length-1:y+w,M=b[C];return M&&s(M),M==="custom"?i(a[0]):M==="baseColors"&&(Object.entries(r).find(([I,N])=>Array.isArray(N)?N.includes(o):N===o?I:null)||i(vi.black)),e.preventDefault(),e.stopPropagation(),!0}if(rN({e,colorObj:m,onChange:i,palette:r,customColors:a,setActiveColorPickerSection:s,activeShade:d}))return!0;if(t==="shades"&&m){let{shade:h}=m,b=_b(e.key,h,nl);if(b!==void 0)return i(r[m.colorName][b]),!0}if(t==="baseColors"&&m){let{colorName:h}=m,b=Object.keys(r),y=b.indexOf(h),w=_b(e.key,y,b.length);if(w!==void 0){let C=b[w],M=r[C];return i(Array.isArray(M)?M[d]:M),!0}}if(t==="custom"){let h=a.indexOf(o),b=_b(e.key,h,a.length);if(b!==void 0){let y=a[b];return i(y),!0}}return!1};v();var aC=S(P(),1),oN=({children:e})=>(0,aC.jsx)("div",{className:"color-picker__heading",children:e}),js=oN;var Lo=S(P(),1),lC=({color:e,onChange:t,label:r,type:o,elements:i,palette:a,updateData:s,children:c,onEyeDropperToggle:d,onEscape:p})=>{let[f]=Sa.default.useState(()=>o==="canvasBackground"?[]:Q4(i,o,a)),[m,h]=qe(on),b=Ca({color:e,palette:a});(0,Sa.useEffect)(()=>{if(!m){let M=kb({color:e,palette:a}),_=M&&!f.includes(e);h(_?"hex":M?"custom":b?.shade!=null?"shades":"baseColors")}},[m,e,a,h,b,f]);let[y,w]=(0,Sa.useState)(b?.shade??(o==="elementBackground"?tw:ew));(0,Sa.useEffect)(()=>{b?.shade!=null&&w(b.shade);let M=_=>{_.key===R.ALT&&d(!1)};return document.addEventListener("keyup",M,{capture:!0}),()=>{document.removeEventListener("keyup",M,{capture:!0})}},[b,d]);let C=Sa.default.useRef(null);return(0,Lo.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":E("labels.colorPicker"),children:(0,Lo.jsxs)("div",{ref:C,onKeyDown:M=>{iC({event:M,activeColorPickerSection:m,palette:a,color:e,onChange:t,onEyeDropperToggle:d,customColors:f,setActiveColorPickerSection:h,updateData:s,activeShade:y,onEscape:p})&&(M.preventDefault(),M.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!f.length&&(0,Lo.jsxs)("div",{children:[(0,Lo.jsx)(js,{children:E("colorPicker.mostUsedCustomColors")}),(0,Lo.jsx)(nC,{colors:f,color:e,label:E("colorPicker.mostUsedCustomColors"),onChange:t})]}),(0,Lo.jsxs)("div",{children:[(0,Lo.jsx)(js,{children:E("colorPicker.colors")}),(0,Lo.jsx)(oC,{color:e,label:r,palette:a,onChange:t,activeShade:y})]}),(0,Lo.jsxs)("div",{children:[(0,Lo.jsx)(js,{children:E("colorPicker.shades")}),(0,Lo.jsx)(rC,{hex:e,onChange:t,palette:a})]}),c]})})};v();v();function je(){return je=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},je.apply(this,arguments)}var Je=S(ee());v();function cr(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e?.(i),r===!1||!i.defaultPrevented)return t?.(i)}}v();var sC=S(ee());function nN(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Ab(...e){return t=>e.forEach(r=>nN(r,t))}function Dr(...e){return(0,sC.useCallback)(Ab(...e),e)}v();var On=S(ee());function ti(e,t=[]){let r=[];function o(a,s){let c=(0,On.createContext)(s),d=r.length;r=[...r,s];function p(m){let{scope:h,children:b,...y}=m,w=h?.[e][d]||c,C=(0,On.useMemo)(()=>y,Object.values(y));return(0,On.createElement)(w.Provider,{value:C},b)}function f(m,h){let b=h?.[e][d]||c,y=(0,On.useContext)(b);if(y)return y;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${a}\``)}return p.displayName=a+"Provider",[p,f]}let i=()=>{let a=r.map(s=>(0,On.createContext)(s));return function(c){let d=c?.[e]||a;return(0,On.useMemo)(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return i.scopeName=e,[o,iN(i,...t)]}function iN(...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 m=d(a)[`__scope${p}`];return{...c,...m}},{});return(0,On.useMemo)(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}v();var ar=S(ee());v();var qs=S(ee()),cC=S(Qn());v();var Xt=S(ee());var Ta=(0,Xt.forwardRef)((e,t)=>{let{children:r,...o}=e,i=Xt.Children.toArray(r),a=i.find(lN);if(a){let s=a.props.children,c=i.map(d=>d===a?Xt.Children.count(s)>1?Xt.Children.only(null):(0,Xt.isValidElement)(s)?s.props.children:null:d);return(0,Xt.createElement)(Mb,je({},o,{ref:t}),(0,Xt.isValidElement)(s)?(0,Xt.cloneElement)(s,void 0,c):null)}return(0,Xt.createElement)(Mb,je({},o,{ref:t}),r)});Ta.displayName="Slot";var Mb=(0,Xt.forwardRef)((e,t)=>{let{children:r,...o}=e;return(0,Xt.isValidElement)(r)?(0,Xt.cloneElement)(r,{...sN(o,r.props),ref:Ab(t,r.ref)}):Xt.Children.count(r)>1?Xt.Children.only(null):null});Mb.displayName="SlotClone";var aN=({children:e})=>(0,Xt.createElement)(Xt.Fragment,null,e);function lN(e){return(0,Xt.isValidElement)(e)&&e.type===aN}function sN(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 cN=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],Qt=cN.reduce((e,t)=>{let r=(0,qs.forwardRef)((o,i)=>{let{asChild:a,...s}=o,c=a?Ta:t;return(0,qs.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,qs.createElement)(c,je({},s,{ref:i}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function dC(e,t){e&&(0,cC.flushSync)(()=>e.dispatchEvent(t))}v();var Js=S(ee());function lo(e){let t=(0,Js.useRef)(e);return(0,Js.useEffect)(()=>{t.current=e}),(0,Js.useMemo)(()=>(...r)=>{var o;return(o=t.current)===null||o===void 0?void 0:o.call(t,...r)},[])}v();var mC=S(ee());function uC(e,t=globalThis?.document){let r=lo(e);(0,mC.useEffect)(()=>{let o=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)},[r,t])}var Lb="dismissableLayer.update",dN="dismissableLayer.pointerDownOutside",mN="dismissableLayer.focusOutside",pC,uN=(0,ar.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),hC=(0,ar.forwardRef)((e,t)=>{var r;let{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:c,onDismiss:d,...p}=e,f=(0,ar.useContext)(uN),[m,h]=(0,ar.useState)(null),b=(r=m?.ownerDocument)!==null&&r!==void 0?r:globalThis?.document,[,y]=(0,ar.useState)({}),w=Dr(t,B=>h(B)),C=Array.from(f.layers),[M]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),_=C.indexOf(M),I=m?C.indexOf(m):-1,N=f.layersWithOutsidePointerEventsDisabled.size>0,$=I>=_,D=pN(B=>{let q=B.target,V=[...f.branches].some(te=>te.contains(q));!$||V||(a?.(B),c?.(B),B.defaultPrevented||d?.())},b),z=fN(B=>{let q=B.target;[...f.branches].some(te=>te.contains(q))||(s?.(B),c?.(B),B.defaultPrevented||d?.())},b);return uC(B=>{I===f.layers.size-1&&(i?.(B),!B.defaultPrevented&&d&&(B.preventDefault(),d()))},b),(0,ar.useEffect)(()=>{if(m)return o&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(pC=b.body.style.pointerEvents,b.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),fC(),()=>{o&&f.layersWithOutsidePointerEventsDisabled.size===1&&(b.body.style.pointerEvents=pC)}},[m,b,o,f]),(0,ar.useEffect)(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),fC())},[m,f]),(0,ar.useEffect)(()=>{let B=()=>y({});return document.addEventListener(Lb,B),()=>document.removeEventListener(Lb,B)},[]),(0,ar.createElement)(Qt.div,je({},p,{ref:w,style:{pointerEvents:N?$?"auto":"none":void 0,...e.style},onFocusCapture:cr(e.onFocusCapture,z.onFocusCapture),onBlurCapture:cr(e.onBlurCapture,z.onBlurCapture),onPointerDownCapture:cr(e.onPointerDownCapture,D.onPointerDownCapture)}))});function pN(e,t=globalThis?.document){let r=lo(e),o=(0,ar.useRef)(!1),i=(0,ar.useRef)(()=>{});return(0,ar.useEffect)(()=>{let a=c=>{if(c.target&&!o.current){let p=function(){gC(dN,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 fN(e,t=globalThis?.document){let r=lo(e),o=(0,ar.useRef)(!1);return(0,ar.useEffect)(()=>{let i=a=>{a.target&&!o.current&&gC(mN,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 fC(){let e=new CustomEvent(Lb);document.dispatchEvent(e)}function gC(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?dC(i,a):i.dispatchEvent(a)}v();var xC=S(ee()),Pb=0;function vC(){(0,xC.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:bC()),document.body.insertAdjacentElement("beforeend",(t=r[1])!==null&&t!==void 0?t:bC()),Pb++,()=>{Pb===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(o=>o.remove()),Pb--}},[])}function bC(){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 xo=S(ee());var Rb="focusScope.autoFocusOnMount",Db="focusScope.autoFocusOnUnmount",yC={bubbles:!1,cancelable:!0};var SC=(0,xo.forwardRef)((e,t)=>{let{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...s}=e,[c,d]=(0,xo.useState)(null),p=lo(i),f=lo(a),m=(0,xo.useRef)(null),h=Dr(t,w=>d(w)),b=(0,xo.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,xo.useEffect)(()=>{if(o){let w=function(M){if(b.paused||!c)return;let _=M.target;c.contains(_)?m.current=_:Cl(m.current,{select:!0})},C=function(M){b.paused||!c||c.contains(M.relatedTarget)||Cl(m.current,{select:!0})};return document.addEventListener("focusin",w),document.addEventListener("focusout",C),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",C)}}},[o,c,b.paused]),(0,xo.useEffect)(()=>{if(c){wC.add(b);let w=document.activeElement;if(!c.contains(w)){let M=new CustomEvent(Rb,yC);c.addEventListener(Rb,p),c.dispatchEvent(M),M.defaultPrevented||(hN(yN(TC(c)),{select:!0}),document.activeElement===w&&Cl(c))}return()=>{c.removeEventListener(Rb,p),setTimeout(()=>{let M=new CustomEvent(Db,yC);c.addEventListener(Db,f),c.dispatchEvent(M),M.defaultPrevented||Cl(w??document.body,{select:!0}),c.removeEventListener(Db,f),wC.remove(b)},0)}}},[c,p,f,b]);let y=(0,xo.useCallback)(w=>{if(!r&&!o||b.paused)return;let C=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,M=document.activeElement;if(C&&M){let _=w.currentTarget,[I,N]=gN(_);I&&N?!w.shiftKey&&M===N?(w.preventDefault(),r&&Cl(I,{select:!0})):w.shiftKey&&M===I&&(w.preventDefault(),r&&Cl(N,{select:!0})):M===_&&w.preventDefault()}},[r,o,b.paused]);return(0,xo.createElement)(Qt.div,je({tabIndex:-1},s,{ref:h,onKeyDown:y}))});function hN(e,{select:t=!1}={}){let r=document.activeElement;for(let o of e)if(Cl(o,{select:t}),document.activeElement!==r)return}function gN(e){let t=TC(e),r=EC(t,e),o=EC(t.reverse(),e);return[r,o]}function TC(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 EC(e,t){for(let r of e)if(!bN(r,{upTo:t}))return r}function bN(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 xN(e){return e instanceof HTMLInputElement&&"select"in e}function Cl(e,{select:t=!1}={}){if(e&&e.focus){let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&xN(e)&&t&&e.select()}}var wC=vN();function vN(){let e=[];return{add(t){let r=e[0];t!==r&&r?.pause(),e=CC(e,t),e.unshift(t)},remove(t){var r;e=CC(e,t),(r=e[0])===null||r===void 0||r.resume()}}}function CC(e,t){let r=[...e],o=r.indexOf(t);return o!==-1&&r.splice(o,1),r}function yN(e){return e.filter(t=>t.tagName!=="A")}v();var Tf=S(ee());v();var IC=S(ee()),nn=globalThis?.document?IC.useLayoutEffect:()=>{};var EN=Tf.useId||(()=>{}),wN=0;function Qs(e){let[t,r]=Tf.useState(EN());return nn(()=>{e||r(o=>o??String(wN++))},[e]),e||(t?`radix-${t}`:"")}v();var Nt=S(ee());v();v();v();function Tl(e){return e.split("-")[0]}function jd(e){return e.split("-")[1]}function tc(e){return["top","bottom"].includes(Tl(e))?"x":"y"}function Ob(e){return e==="y"?"height":"width"}function kC(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=tc(t),d=Ob(c),p=o[d]/2-i[d]/2,f=c==="x",m;switch(Tl(t)){case"top":m={x:a,y:o.y-i.height};break;case"bottom":m={x:a,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:s};break;case"left":m={x:o.x-i.width,y:s};break;default:m={x:o.x,y:o.y}}switch(jd(t)){case"start":m[c]-=p*(r&&f?-1:1);break;case"end":m[c]+=p*(r&&f?-1:1)}return m}var LC=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}=kC(d,o,c),m=o,h={},b=0;for(let y=0;y<a.length;y++){let{name:w,fn:C}=a[y],{x:M,y:_,data:I,reset:N}=await C({x:p,y:f,initialPlacement:o,placement:m,strategy:i,middlewareData:h,rects:d,platform:s,elements:{reference:e,floating:t}});p=M??p,f=_??f,h={...h,[w]:{...h[w],...I}},N&&b<=50&&(b++,typeof N=="object"&&(N.placement&&(m=N.placement),N.rects&&(d=N.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:i}):N.rects),{x:p,y:f}=kC(d,m,c)),y=-1)}return{x:p,y:f,placement:m,strategy:i,middlewareData:h}};function PC(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 Xd(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function ec(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:m="floating",altBoundary:h=!1,padding:b=0}=t,y=PC(b),w=c[h?m==="floating"?"reference":"floating":m],C=Xd(await a.getClippingRect({element:(r=await(a.isElement==null?void 0:a.isElement(w)))==null||r?w:w.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(c.floating)),boundary:p,rootBoundary:f,strategy:d})),M=Xd(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({rect:m==="floating"?{...s.floating,x:o,y:i}:s.reference,offsetParent:await(a.getOffsetParent==null?void 0:a.getOffsetParent(c.floating)),strategy:d}):s[m]);return{top:C.top-M.top+y.top,bottom:M.bottom-C.bottom+y.bottom,left:C.left-M.left+y.left,right:M.right-C.right+y.right}}var CN=Math.min,Sl=Math.max;function Nb(e,t,r){return Sl(e,CN(t,r))}var kf=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=PC(o),f={x:i,y:a},m=tc(s),h=jd(s),b=Ob(m),y=await d.getDimensions(r),w=m==="y"?"top":"left",C=m==="y"?"bottom":"right",M=c.reference[b]+c.reference[m]-f[m]-c.floating[b],_=f[m]-c.reference[m],I=await(d.getOffsetParent==null?void 0:d.getOffsetParent(r)),N=I?m==="y"?I.clientHeight||0:I.clientWidth||0:0;N===0&&(N=c.floating[b]);let $=M/2-_/2,D=p[w],z=N-y[b]-p[C],B=N/2-y[b]/2+$,q=Nb(D,B,z),V=(h==="start"?p[w]:p[C])>0&&B!==q&&c.reference[b]<=c.floating[b];return{[m]:f[m]-(V?B<D?D-B:z-B:0),data:{[m]:q,centerOffset:B-q}}}}),SN={left:"right",right:"left",bottom:"top",top:"bottom"};function If(e){return e.replace(/left|right|bottom|top/g,t=>SN[t])}function TN(e,t,r){r===void 0&&(r=!1);let o=jd(e),i=tc(e),a=Ob(i),s=i==="x"?o===(r?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(s=If(s)),{main:s,cross:If(s)}}var IN={start:"end",end:"start"};function _C(e){return e.replace(/start|end/g,t=>IN[t])}var RC=["top","right","bottom","left"],zV=RC.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);var Fb=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:m,fallbackStrategy:h="bestFit",flipAlignment:b=!0,...y}=e,w=Tl(o),C=m||(w===s||!b?[If(s)]:function(B){let q=If(B);return[_C(B),q,_C(q)]}(s)),M=[s,...C],_=await ec(t,y),I=[],N=((r=i.flip)==null?void 0:r.overflows)||[];if(p&&I.push(_[w]),f){let{main:B,cross:q}=TN(o,a,await(c.isRTL==null?void 0:c.isRTL(d.floating)));I.push(_[B],_[q])}if(N=[...N,{placement:o,overflows:I}],!I.every(B=>B<=0)){var $,D;let B=(($=(D=i.flip)==null?void 0:D.index)!=null?$:0)+1,q=M[B];if(q)return{data:{index:B,overflows:N},reset:{placement:q}};let V="bottom";switch(h){case"bestFit":{var z;let te=(z=N.map(me=>[me,me.overflows.filter(K=>K>0).reduce((K,de)=>K+de,0)]).sort((me,K)=>me[1]-K[1])[0])==null?void 0:z[0].placement;te&&(V=te);break}case"initialPlacement":V=s}if(o!==V)return{reset:{placement:V}}}return{}}}};function AC(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function MC(e){return RC.some(t=>e[t]>=0)}var zb=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=AC(await ec(o,{...r,elementContext:"reference"}),i.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:MC(a)}}}case"escaped":{let a=AC(await ec(o,{...r,altBoundary:!0}),i.floating);return{data:{escapedOffsets:a,escaped:MC(a)}}}default:return{}}}}},Bb=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)),m=Tl(c),h=jd(c),b=tc(c)==="x",y=["left","top"].includes(m)?-1:1,w=f&&b?-1:1,C=typeof s=="function"?s(a):s,{mainAxis:M,crossAxis:_,alignmentAxis:I}=typeof C=="number"?{mainAxis:C,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...C};return h&&typeof I=="number"&&(_=h==="end"?-1*I:I),b?{x:_*w,y:M*y}:{x:M*y,y:_*w}}(t,e);return{x:r+i.x,y:o+i.y,data:i}}}};function DC(e){return e==="x"?"y":"x"}var $b=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:C=>{let{x:M,y:_}=C;return{x:M,y:_}}},...d}=e,p={x:r,y:o},f=await ec(t,d),m=tc(Tl(i)),h=DC(m),b=p[m],y=p[h];if(a){let C=m==="y"?"bottom":"right";b=Nb(b+f[m==="y"?"top":"left"],b,b-f[C])}if(s){let C=h==="y"?"bottom":"right";y=Nb(y+f[h==="y"?"top":"left"],y,y-f[C])}let w=c.fn({...t,[m]:b,[h]:y});return{...w,data:{x:w.x-r,y:w.y-o}}}}},Hb=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},m=tc(i),h=DC(m),b=f[m],y=f[h],w=typeof c=="function"?c({...a,placement:i}):c,C=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){let $=m==="y"?"height":"width",D=a.reference[m]-a.floating[$]+C.mainAxis,z=a.reference[m]+a.reference[$]-C.mainAxis;b<D?b=D:b>z&&(b=z)}if(p){var M,_,I,N;let $=m==="y"?"width":"height",D=["top","left"].includes(Tl(i)),z=a.reference[h]-a.floating[$]+(D&&(M=(_=s.offset)==null?void 0:_[h])!=null?M:0)+(D?0:C.crossAxis),B=a.reference[h]+a.reference[$]+(D?0:(I=(N=s.offset)==null?void 0:N[h])!=null?I:0)-(D?C.crossAxis:0);y<z?y=z:y>B&&(y=B)}return{[m]:b,[h]:y}}}},Ub=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 ec(t,c),p=Tl(r),f=jd(r),m,h;p==="top"||p==="bottom"?(m=p,h=f===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?"start":"end")?"left":"right"):(h=p,m=f==="end"?"top":"bottom");let b=Sl(d.left,0),y=Sl(d.right,0),w=Sl(d.top,0),C=Sl(d.bottom,0),M={availableHeight:o.floating.height-(["left","right"].includes(r)?2*(w!==0||C!==0?w+C:Sl(d.top,d.bottom)):d[m]),availableWidth:o.floating.width-(["top","bottom"].includes(r)?2*(b!==0||y!==0?b+y:Sl(d.left,d.right)):d[h])},_=await i.getDimensions(a.floating);s?.({...t,...M});let I=await i.getDimensions(a.floating);return _.width!==I.width||_.height!==I.height?{reset:{rects:!0}}:{}}}};function $C(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function zi(e){if(e==null)return window;if(!$C(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function Jd(e){return zi(e).getComputedStyle(e)}function Oi(e){return $C(e)?"":e?(e.nodeName||"").toLowerCase():""}function HC(){let e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function ri(e){return e instanceof zi(e).HTMLElement}function ka(e){return e instanceof zi(e).Element}function Gb(e){return typeof ShadowRoot>"u"?!1:e instanceof zi(e).ShadowRoot||e instanceof ShadowRoot}function Mf(e){let{overflow:t,overflowX:r,overflowY:o}=Jd(e);return/auto|scroll|overlay|hidden/.test(t+o+r)}function kN(e){return["table","td","th"].includes(Oi(e))}function NC(e){let t=/firefox/i.test(HC()),r=Jd(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 UC(){return!/^((?!chrome|android).)*safari/i.test(HC())}var OC=Math.min,qd=Math.max,_f=Math.round;function Fi(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&&ri(e)&&(d=e.offsetWidth>0&&_f(c.width)/e.offsetWidth||1,p=e.offsetHeight>0&&_f(c.height)/e.offsetHeight||1);let f=ka(e)?zi(e):window,m=!UC()&&r,h=(c.left+(m&&(o=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?o:0))/d,b=(c.top+(m&&(a=(s=f.visualViewport)==null?void 0:s.offsetTop)!=null?a:0))/p,y=c.width/d,w=c.height/p;return{width:y,height:w,top:b,right:h+y,bottom:b+w,left:h,x:h,y:b}}function Ia(e){return(t=e,(t instanceof zi(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function Lf(e){return ka(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function WC(e){return Fi(Ia(e)).left+Lf(e).scrollLeft}function _N(e,t,r){let o=ri(t),i=Ia(t),a=Fi(e,o&&function(d){let p=Fi(d);return _f(p.width)!==d.offsetWidth||_f(p.height)!==d.offsetHeight}(t),r==="fixed"),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if(o||!o&&r!=="fixed")if((Oi(t)!=="body"||Mf(i))&&(s=Lf(t)),ri(t)){let d=Fi(t,!0);c.x=d.x+t.clientLeft,c.y=d.y+t.clientTop}else i&&(c.x=WC(i));return{x:a.left+s.scrollLeft-c.x,y:a.top+s.scrollTop-c.y,width:a.width,height:a.height}}function GC(e){return Oi(e)==="html"?e:e.assignedSlot||e.parentNode||(Gb(e)?e.host:null)||Ia(e)}function FC(e){return ri(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function Wb(e){let t=zi(e),r=FC(e);for(;r&&kN(r)&&getComputedStyle(r).position==="static";)r=FC(r);return r&&(Oi(r)==="html"||Oi(r)==="body"&&getComputedStyle(r).position==="static"&&!NC(r))?t:r||function(o){let i=GC(o);for(Gb(i)&&(i=i.host);ri(i)&&!["html","body"].includes(Oi(i));){if(NC(i))return i;i=i.parentNode}return null}(e)||t}function zC(e){if(ri(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=Fi(e);return{width:t.width,height:t.height}}function VC(e){let t=GC(e);return["html","body","#document"].includes(Oi(t))?e.ownerDocument.body:ri(t)&&Mf(t)?t:VC(t)}function Af(e,t){var r;t===void 0&&(t=[]);let o=VC(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=zi(o),s=i?[a].concat(a.visualViewport||[],Mf(o)?o:[]):o,c=t.concat(s);return i?c:c.concat(Af(s))}function BC(e,t,r){return t==="viewport"?Xd(function(o,i){let a=zi(o),s=Ia(o),c=a.visualViewport,d=s.clientWidth,p=s.clientHeight,f=0,m=0;if(c){d=c.width,p=c.height;let h=UC();(h||!h&&i==="fixed")&&(f=c.offsetLeft,m=c.offsetTop)}return{width:d,height:p,x:f,y:m}}(e,r)):ka(t)?function(o,i){let a=Fi(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):Xd(function(o){var i;let a=Ia(o),s=Lf(o),c=(i=o.ownerDocument)==null?void 0:i.body,d=qd(a.scrollWidth,a.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),p=qd(a.scrollHeight,a.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),f=-s.scrollLeft+WC(o),m=-s.scrollTop;return Jd(c||a).direction==="rtl"&&(f+=qd(a.clientWidth,c?c.clientWidth:0)-d),{width:d,height:p,x:f,y:m}}(Ia(e)))}function AN(e){let t=Af(e),r=["absolute","fixed"].includes(Jd(e).position)&&ri(e)?Wb(e):e;return ka(r)?t.filter(o=>ka(o)&&function(i,a){let s=a.getRootNode==null?void 0:a.getRootNode();if(i.contains(a))return!0;if(s&&Gb(s)){let c=a;do{if(c&&i===c)return!0;c=c.parentNode||c.host}while(c)}return!1}(o,r)&&Oi(o)!=="body"):[]}var MN={getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:o,strategy:i}=e,a=[...r==="clippingAncestors"?AN(t):[].concat(r),o],s=a[0],c=a.reduce((d,p)=>{let f=BC(t,p,i);return d.top=qd(f.top,d.top),d.right=OC(f.right,d.right),d.bottom=OC(f.bottom,d.bottom),d.left=qd(f.left,d.left),d},BC(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=ri(r),a=Ia(r);if(r===a)return t;let s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if((i||!i&&o!=="fixed")&&((Oi(r)!=="body"||Mf(a))&&(s=Lf(r)),ri(r))){let d=Fi(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:ka,getDimensions:zC,getOffsetParent:Wb,getDocumentElement:Ia,getElementRects:e=>{let{reference:t,floating:r,strategy:o}=e;return{reference:_N(t,Wb(r),o),floating:{...zC(r),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>Jd(e).direction==="rtl"};function KC(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?[...ka(e)?Af(e):[],...Af(t)]:[];f.forEach(y=>{d&&y.addEventListener("scroll",r,{passive:!0}),p&&y.addEventListener("resize",r)});let m,h=null;if(s){let y=!0;h=new ResizeObserver(()=>{y||r(),y=!1}),ka(e)&&!c&&h.observe(e),h.observe(t)}let b=c?Fi(e):null;return c&&function y(){let w=Fi(e);!b||w.x===b.x&&w.y===b.y&&w.width===b.width&&w.height===b.height||r(),b=w,m=requestAnimationFrame(y)}(),r(),()=>{var y;f.forEach(w=>{d&&w.removeEventListener("scroll",r),p&&w.removeEventListener("resize",r)}),(y=h)==null||y.disconnect(),h=null,c&&cancelAnimationFrame(m)}}var YC=(e,t,r)=>LC(e,t,{platform:MN,...r});var Nr=S(ee()),Pf=S(ee()),ZC=S(Qn()),Vb=typeof document<"u"?Pf.useLayoutEffect:Pf.useEffect;function Kb(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(!Kb(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)&&!Kb(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function LN(e){let t=Nr.useRef(e);return Vb(()=>{t.current=e}),t}function XC(e){let{middleware:t,placement:r="bottom",strategy:o="absolute",whileElementsMounted:i}=e===void 0?{}:e,a=Nr.useRef(null),s=Nr.useRef(null),c=LN(i),d=Nr.useRef(null),[p,f]=Nr.useState({x:null,y:null,strategy:o,placement:r,middlewareData:{}}),[m,h]=Nr.useState(t);Kb(m?.map(I=>{let{options:N}=I;return N}),t?.map(I=>{let{options:N}=I;return N}))||h(t);let b=Nr.useCallback(()=>{!a.current||!s.current||YC(a.current,s.current,{middleware:m,placement:r,strategy:o}).then(I=>{y.current&&ZC.flushSync(()=>{f(I)})})},[m,r,o]);Vb(()=>{y.current&&b()},[b]);let y=Nr.useRef(!1);Vb(()=>(y.current=!0,()=>{y.current=!1}),[]);let w=Nr.useCallback(()=>{if(typeof d.current=="function"&&(d.current(),d.current=null),a.current&&s.current)if(c.current){let I=c.current(a.current,s.current,b);d.current=I}else b()},[b,c]),C=Nr.useCallback(I=>{a.current=I,w()},[w]),M=Nr.useCallback(I=>{s.current=I,w()},[w]),_=Nr.useMemo(()=>({reference:a,floating:s}),[]);return Nr.useMemo(()=>({...p,update:b,refs:_,reference:C,floating:M}),[p,b,_,C,M])}var jC=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?kf({element:t.current,padding:r}).fn(i):{}:t?kf({element:t,padding:r}).fn(i):{}}}};v();var Qd=S(ee());var PN=(0,Qd.forwardRef)((e,t)=>{let{children:r,width:o=10,height:i=5,...a}=e;return(0,Qd.createElement)(Qt.svg,je({},a,{ref:t,width:o,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),e.asChild?r:(0,Qd.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),qC=PN;v();var JC=S(ee());function QC(e){let[t,r]=(0,JC.useState)(void 0);return nn(()=>{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 eS="Popper",[Yb,Zb]=ti(eS),[RN,tS]=Yb(eS),DN=e=>{let{__scopePopper:t,children:r}=e,[o,i]=(0,Nt.useState)(null);return(0,Nt.createElement)(RN,{scope:t,anchor:o,onAnchorChange:i},r)},NN="PopperAnchor",ON=(0,Nt.forwardRef)((e,t)=>{let{__scopePopper:r,virtualRef:o,...i}=e,a=tS(NN,r),s=(0,Nt.useRef)(null),c=Dr(t,s);return(0,Nt.useEffect)(()=>{a.onAnchorChange(o?.current||s.current)}),o?null:(0,Nt.createElement)(Qt.div,je({},i,{ref:c}))}),Rf="PopperContent",[FN,zN]=Yb(Rf),[BN,$N]=Yb(Rf,{hasParent:!1,positionUpdateFns:new Set}),HN=(0,Nt.forwardRef)((e,t)=>{var r,o,i,a,s,c,d,p;let{__scopePopper:f,side:m="bottom",sideOffset:h=0,align:b="center",alignOffset:y=0,arrowPadding:w=0,collisionBoundary:C=[],collisionPadding:M=0,sticky:_="partial",hideWhenDetached:I=!1,avoidCollisions:N=!0,onPlaced:$,...D}=e,z=tS(Rf,f),[B,q]=(0,Nt.useState)(null),V=Dr(t,Ji=>q(Ji)),[te,me]=(0,Nt.useState)(null),K=QC(te),de=(r=K?.width)!==null&&r!==void 0?r:0,Ee=(o=K?.height)!==null&&o!==void 0?o:0,Ie=m+(b!=="center"?"-"+b:""),tt=typeof M=="number"?M:{top:0,right:0,bottom:0,left:0,...M},Se=Array.isArray(C)?C:[C],fe=Se.length>0,W={padding:tt,boundary:Se.filter(KN),altBoundary:fe},{reference:Z,floating:ce,strategy:ie,x:ae,y:ue,placement:ge,middlewareData:Ce,update:_t}=XC({strategy:"fixed",placement:Ie,whileElementsMounted:KC,middleware:[YN(),Bb({mainAxis:h+Ee,alignmentAxis:y}),N?$b({mainAxis:!0,crossAxis:!1,limiter:_==="partial"?Hb():void 0,...W}):void 0,te?jC({element:te,padding:w}):void 0,N?Fb({...W}):void 0,Ub({...W,apply:({elements:Ji,availableWidth:Za,availableHeight:Rg})=>{Ji.floating.style.setProperty("--radix-popper-available-width",`${Za}px`),Ji.floating.style.setProperty("--radix-popper-available-height",`${Rg}px`)}}),ZN({arrowWidth:de,arrowHeight:Ee}),I?zb({strategy:"referenceHidden"}):void 0].filter(VN)});nn(()=>{Z(z.anchor)},[Z,z.anchor]);let Ct=ae!==null&&ue!==null,[Pt,yt]=rS(ge),$t=lo($);nn(()=>{Ct&&$t?.()},[Ct,$t]);let hr=(i=Ce.arrow)===null||i===void 0?void 0:i.x,Lg=(a=Ce.arrow)===null||a===void 0?void 0:a.y,xn=((s=Ce.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[Ym,Pg]=(0,Nt.useState)();nn(()=>{B&&Pg(window.getComputedStyle(B).zIndex)},[B]);let{hasParent:Ka,positionUpdateFns:Er}=$N(Rf,f),vn=!Ka;(0,Nt.useLayoutEffect)(()=>{if(!vn)return Er.add(_t),()=>{Er.delete(_t)}},[vn,Er,_t]),nn(()=>{vn&&Ct&&Array.from(Er).reverse().forEach(Ji=>requestAnimationFrame(Ji))},[vn,Ct,Er]);let Ya={"data-side":Pt,"data-align":yt,...D,ref:V,style:{...D.style,animation:Ct?void 0:"none",opacity:(c=Ce.hide)!==null&&c!==void 0&&c.referenceHidden?0:void 0}};return(0,Nt.createElement)("div",{ref:ce,"data-radix-popper-content-wrapper":"",style:{position:ie,left:0,top:0,transform:Ct?`translate3d(${Math.round(ae)}px, ${Math.round(ue)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:Ym,"--radix-popper-transform-origin":[(d=Ce.transformOrigin)===null||d===void 0?void 0:d.x,(p=Ce.transformOrigin)===null||p===void 0?void 0:p.y].join(" ")},dir:e.dir},(0,Nt.createElement)(FN,{scope:f,placedSide:Pt,onArrowChange:me,arrowX:hr,arrowY:Lg,shouldHideArrow:xn},vn?(0,Nt.createElement)(BN,{scope:f,hasParent:!0,positionUpdateFns:Er},(0,Nt.createElement)(Qt.div,Ya)):(0,Nt.createElement)(Qt.div,Ya)))}),UN="PopperArrow",WN={top:"bottom",right:"left",bottom:"top",left:"right"},GN=(0,Nt.forwardRef)(function(t,r){let{__scopePopper:o,...i}=t,a=zN(UN,o),s=WN[a.placedSide];return(0,Nt.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,Nt.createElement)(qC,je({},i,{ref:r,style:{...i.style,display:"block"}})))});function VN(e){return e!==void 0}function KN(e){return e!==null}var YN=()=>({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`),{}}}),ZN=e=>({name:"transformOrigin",options:e,fn(t){var r,o,i,a,s;let{placement:c,rects:d,middlewareData:p}=t,m=((r=p.arrow)===null||r===void 0?void 0:r.centerOffset)!==0,h=m?0:e.arrowWidth,b=m?0:e.arrowHeight,[y,w]=rS(c),C={start:"0%",center:"50%",end:"100%"}[w],M=((o=(i=p.arrow)===null||i===void 0?void 0:i.x)!==null&&o!==void 0?o:0)+h/2,_=((a=(s=p.arrow)===null||s===void 0?void 0:s.y)!==null&&a!==void 0?a:0)+b/2,I="",N="";return y==="bottom"?(I=m?C:`${M}px`,N=`${-b}px`):y==="top"?(I=m?C:`${M}px`,N=`${d.floating.height+b}px`):y==="right"?(I=`${-b}px`,N=m?C:`${_}px`):y==="left"&&(I=`${d.floating.width+b}px`,N=m?C:`${_}px`),{data:{x:I,y:N}}}});function rS(e){let[t,r="center"]=e.split("-");return[t,r]}var oS=DN,nS=ON,iS=HN,aS=GN;v();var Df=S(ee()),lS=S(Qn());var sS=(0,Df.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?lS.default.createPortal((0,Df.createElement)(Qt.div,je({},i,{ref:t})),o):null});v();var Vr=S(ee()),cS=S(Qn());function XN(e,t){return(0,Vr.useReducer)((r,o)=>{let i=t[r][o];return i??r},e)}var rc=e=>{let{present:t,children:r}=e,o=jN(t),i=typeof r=="function"?r({present:o.isPresent}):Vr.Children.only(r),a=Dr(o.ref,i.ref);return typeof r=="function"||o.isPresent?(0,Vr.cloneElement)(i,{ref:a}):null};rc.displayName="Presence";function jN(e){let[t,r]=(0,Vr.useState)(),o=(0,Vr.useRef)({}),i=(0,Vr.useRef)(e),a=(0,Vr.useRef)("none"),s=e?"mounted":"unmounted",[c,d]=XN(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Vr.useEffect)(()=>{let p=Nf(o.current);a.current=c==="mounted"?p:"none"},[c]),nn(()=>{let p=o.current,f=i.current;if(f!==e){let h=a.current,b=Nf(p);e?d("MOUNT"):b==="none"||p?.display==="none"?d("UNMOUNT"):d(f&&h!==b?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),nn(()=>{if(t){let p=m=>{let b=Nf(o.current).includes(m.animationName);m.target===t&&b&&(0,cS.flushSync)(()=>d("ANIMATION_END"))},f=m=>{m.target===t&&(a.current=Nf(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,Vr.useCallback)(p=>{p&&(o.current=getComputedStyle(p)),r(p)},[])}}function Nf(e){return e?.animationName||"none"}v();var _a=S(ee());function oc({prop:e,defaultProp:t,onChange:r=()=>{}}){let[o,i]=qN({defaultProp:t,onChange:r}),a=e!==void 0,s=a?e:o,c=lo(r),d=(0,_a.useCallback)(p=>{if(a){let m=typeof p=="function"?p(e):p;m!==e&&c(m)}else i(p)},[a,e,i,c]);return[s,d]}function qN({defaultProp:e,onChange:t}){let r=(0,_a.useState)(e),[o]=r,i=(0,_a.useRef)(o),a=lo(t);return(0,_a.useEffect)(()=>{i.current!==o&&(a(o),i.current=o)},[o,i,a]),r}v();var JN=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},nc=new WeakMap,Of=new WeakMap,Ff={},Xb=0,dS=function(e){return e&&(e.host||dS(e.parentNode))},QN=function(e,t){return t.map(function(r){if(e.contains(r))return r;var o=dS(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})},eO=function(e,t,r,o){var i=QN(t,Array.isArray(e)?e:[e]);Ff[r]||(Ff[r]=new WeakMap);var a=Ff[r],s=[],c=new Set,d=new Set(i),p=function(m){!m||c.has(m)||(c.add(m),p(m.parentNode))};i.forEach(p);var f=function(m){!m||d.has(m)||Array.prototype.forEach.call(m.children,function(h){if(c.has(h))f(h);else try{var b=h.getAttribute(o),y=b!==null&&b!=="false",w=(nc.get(h)||0)+1,C=(a.get(h)||0)+1;nc.set(h,w),a.set(h,C),s.push(h),w===1&&y&&Of.set(h,!0),C===1&&h.setAttribute(r,"true"),y||h.setAttribute(o,"true")}catch(M){console.error("aria-hidden: cannot operate on ",h,M)}})};return f(t),c.clear(),Xb++,function(){s.forEach(function(m){var h=nc.get(m)-1,b=a.get(m)-1;nc.set(m,h),a.set(m,b),h||(Of.has(m)||m.removeAttribute(o),Of.delete(m)),b||m.removeAttribute(r)}),Xb--,Xb||(nc=new WeakMap,nc=new WeakMap,Of=new WeakMap,Ff={})}},mS=function(e,t,r){r===void 0&&(r="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),i=t||JN(e);return i?(o.push.apply(o,Array.from(i.querySelectorAll("[aria-live]"))),eO(o,i,r,"aria-hidden")):function(){return null}};v();v();v();var vo=function(){return vo=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},vo.apply(this,arguments)};function zf(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 uS(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 Wf=S(ee());v();var Kr=S(ee());v();var Il="right-scroll-bar-position",kl="width-before-scroll-bar",jb="with-scroll-bars-hidden",qb="--removed-body-scroll-bar-size";v();v();function Bf(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}v();var pS=S(ee());function fS(e,t){var r=(0,pS.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 $f=S(ee());var tO=typeof window<"u"?$f.useLayoutEffect:$f.useEffect,hS=new WeakMap;function Jb(e,t){var r=fS(t||null,function(o){return e.forEach(function(i){return Bf(i,o)})});return tO(function(){var o=hS.get(r);if(o){var i=new Set(o),a=new Set(e),s=r.current;i.forEach(function(c){a.has(c)||Bf(c,null)}),a.forEach(function(c){i.has(c)||Bf(c,s)})}hS.set(r,e)},[e]),r}v();v();v();function rO(e){return e}function oO(e,t){t===void 0&&(t=rO);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 Qb(e){e===void 0&&(e={});var t=oO(null);return t.options=vo({async:!0,ssr:!1},e),t}v();var gS=S(ee()),bS=function(e){var t=e.sideCar,r=zf(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 gS.createElement(o,vo({},r))};bS.isSideCarExport=!0;function ex(e,t){return e.useMedium(t),bS}var Hf=Qb();var tx=function(){},em=Kr.forwardRef(function(e,t){var r=Kr.useRef(null),o=Kr.useState({onScrollCapture:tx,onWheelCapture:tx,onTouchMoveCapture:tx}),i=o[0],a=o[1],s=e.forwardProps,c=e.children,d=e.className,p=e.removeScrollBar,f=e.enabled,m=e.shards,h=e.sideCar,b=e.noIsolation,y=e.inert,w=e.allowPinchZoom,C=e.as,M=C===void 0?"div":C,_=zf(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),I=h,N=Jb([r,t]),$=vo(vo({},_),i);return Kr.createElement(Kr.Fragment,null,f&&Kr.createElement(I,{sideCar:Hf,removeScrollBar:p,shards:m,noIsolation:b,inert:y,setCallbacks:a,allowPinchZoom:!!w,lockRef:r}),s?Kr.cloneElement(Kr.Children.only(c),vo(vo({},$),{ref:N})):Kr.createElement(M,vo({},$,{className:d,ref:N}),c))});em.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};em.classNames={fullWidth:kl,zeroRight:Il};v();v();var Ot=S(ee());v();v();var ac=S(ee());v();v();v();var yS=S(ee());v();v();var xS;var vS=function(){if(xS)return xS;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function nO(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=vS();return t&&e.setAttribute("nonce",t),e}function iO(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function aO(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var rx=function(){var e=0,t=null;return{add:function(r){e==0&&(t=nO())&&(iO(t,r),aO(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}};var ox=function(){var e=rx();return function(t,r){yS.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}};var tm=function(){var e=ox(),t=function(r){var o=r.styles,i=r.dynamic;return e(o,i),null};return t};v();var lO={left:0,top:0,right:0,gap:0},nx=function(e){return parseInt(e||"",10)||0},sO=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[nx(r),nx(o),nx(i)]},ix=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return lO;var t=sO(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 cO=tm(),ic="data-scroll-locked",dO=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(jb,` {
19
+ `)+ae+`return __p
20
+ }`;var Ge=pS(function(){return ct(P,we+"return "+ae).apply(e,N)});if(Ge.source=ae,px(Ge))throw Ge;return Ge}function K8(n){return ut(n).toLowerCase()}function Y8(n){return ut(n).toUpperCase()}function V8(n,l,p){if(n=ut(n),n&&(p||l===e))return ww(n);if(!n||!(l=Po(l)))return n;var x=yn(n),S=yn(l),P=Sw(x,S),N=Tw(x,S)+1;return ia(x,P,N).join("")}function X8(n,l,p){if(n=ut(n),n&&(p||l===e))return n.slice(0,Iw(n)+1);if(!n||!(l=Po(l)))return n;var x=yn(n),S=Tw(x,yn(l))+1;return ia(x,0,S).join("")}function Z8(n,l,p){if(n=ut(n),n&&(p||l===e))return n.replace(pb,"");if(!n||!(l=Po(l)))return n;var x=yn(n),S=Sw(x,yn(l));return ia(x,S).join("")}function q8(n,l){var p=D,x=V;if(Ut(l)){var S="separator"in l?l.separator:S;p="length"in l?Ue(l.length):p,x="omission"in l?Po(l.omission):x}n=ut(n);var P=n.length;if(cs(n)){var N=yn(n);P=N.length}if(p>=P)return n;var B=p-ds(x);if(B<1)return x;var H=N?ia(N,0,B).join(""):n.slice(0,B);if(S===e)return H+x;if(N&&(B+=H.length-B),fx(S)){if(n.slice(B).search(S)){var ee,te=H;for(S.global||(S=Pb(S.source,ut(W0.exec(S))+"g")),S.lastIndex=0;ee=S.exec(te);)var ae=ee.index;H=H.slice(0,ae===e?B:ae)}}else if(n.indexOf(Po(S),B)!=B){var fe=H.lastIndexOf(S);fe>-1&&(H=H.slice(0,fe))}return H+x}function j8(n){return n=ut(n),n&&sL.test(n)?n.replace(H0,IR):n}var J8=hs(function(n,l,p){return n+(p?" ":"")+l.toUpperCase()}),bx=f1("toUpperCase");function uS(n,l,p){return n=ut(n),l=p?e:l,l===e?ER(n)?kR(n):uR(n):n.match(l)||[]}var pS=Ke(function(n,l){try{return Ao(n,e,l)}catch(p){return px(p)?p:new Fe(p)}}),Q8=pi(function(n,l){return Uo(l,function(p){p=Kn(p),mi(n,p,mx(n[p],n))}),n});function e7(n){var l=n==null?0:n.length,p=Ae();return n=l?Bt(n,function(x){if(typeof x[1]!="function")throw new Go(i);return[p(x[0]),x[1]]}):[],Ke(function(x){for(var S=-1;++S<l;){var P=n[S];if(Ao(P[0],this,x))return Ao(P[1],this,x)}})}function t7(n){return ID(Ko(n,u))}function xx(n){return function(){return n}}function r7(n,l){return n==null||n!==n?l:n}var o7=h1(),n7=h1(!0);function ho(n){return n}function vx(n){return Yw(typeof n=="function"?n:Ko(n,u))}function i7(n){return Xw(Ko(n,u))}function a7(n,l){return Zw(n,Ko(l,u))}var l7=Ke(function(n,l){return function(p){return fd(p,n,l)}}),s7=Ke(function(n,l){return function(p){return fd(n,p,l)}});function yx(n,l,p){var x=Tr(l),S=_u(l,x);p==null&&!(Ut(l)&&(S.length||!x.length))&&(p=l,l=n,n=this,S=_u(l,Tr(l)));var P=!(Ut(p)&&"chain"in p)||!!p.chain,N=gi(n);return Uo(S,function(B){var H=l[B];n[B]=H,N&&(n.prototype[B]=function(){var ee=this.__chain__;if(P||ee){var te=n(this.__wrapped__),ae=te.__actions__=po(this.__actions__);return ae.push({func:H,args:arguments,thisArg:n}),te.__chain__=ee,te}return H.apply(n,Ji([this.value()],arguments))})}),n}function c7(){return Sr._===this&&(Sr._=NR),this}function Ex(){}function d7(n){return n=Ue(n),Ke(function(l){return qw(l,n)})}var m7=Jb(Bt),u7=Jb(bw),p7=Jb(Sb);function fS(n){return ix(n)?Tb(Kn(n)):GD(n)}function f7(n){return function(l){return n==null?e:el(n,l)}}var g7=x1(),h7=x1(!0);function wx(){return[]}function Sx(){return!1}function b7(){return{}}function x7(){return""}function v7(){return!0}function y7(n,l){if(n=Ue(n),n<1||n>_e)return[];var p=ue,x=Fr(n,ue);l=Ae(l),n-=ue;for(var S=_b(x,l);++p<n;)l(p);return S}function E7(n){return $e(n)?Bt(n,Kn):Mo(n)?[n]:po(D1(ut(n)))}function w7(n){var l=++RR;return ut(n)+l}var S7=Ru(function(n,l){return n+l},0),T7=Qb("ceil"),C7=Ru(function(n,l){return n/l},1),I7=Qb("floor");function _7(n){return n&&n.length?Iu(n,ho,Bb):e}function A7(n,l){return n&&n.length?Iu(n,Ae(l,2),Bb):e}function k7(n){return yw(n,ho)}function P7(n,l){return yw(n,Ae(l,2))}function M7(n){return n&&n.length?Iu(n,ho,Ub):e}function L7(n,l){return n&&n.length?Iu(n,Ae(l,2),Ub):e}var R7=Ru(function(n,l){return n*l},1),D7=Qb("round"),N7=Ru(function(n,l){return n-l},0);function O7(n){return n&&n.length?Ib(n,ho):0}function F7(n,l){return n&&n.length?Ib(n,Ae(l,2)):0}return _.after=iN,_.ary=K1,_.assign=YN,_.assignIn=iS,_.assignInWith=Yu,_.assignWith=VN,_.at=XN,_.before=Y1,_.bind=mx,_.bindAll=Q8,_.bindKey=V1,_.castArray=bN,_.chain=U1,_.chunk=I6,_.compact=_6,_.concat=A6,_.cond=e7,_.conforms=t7,_.constant=xx,_.countBy=O4,_.create=ZN,_.curry=X1,_.curryRight=Z1,_.debounce=q1,_.defaults=qN,_.defaultsDeep=jN,_.defer=aN,_.delay=lN,_.difference=k6,_.differenceBy=P6,_.differenceWith=M6,_.drop=L6,_.dropRight=R6,_.dropRightWhile=D6,_.dropWhile=N6,_.fill=O6,_.filter=B4,_.flatMap=H4,_.flatMapDeep=U4,_.flatMapDepth=G4,_.flatten=B1,_.flattenDeep=F6,_.flattenDepth=B6,_.flip=sN,_.flow=o7,_.flowRight=n7,_.fromPairs=z6,_.functions=n8,_.functionsIn=i8,_.groupBy=W4,_.initial=H6,_.intersection=U6,_.intersectionBy=G6,_.intersectionWith=W6,_.invert=l8,_.invertBy=s8,_.invokeMap=Y4,_.iteratee=vx,_.keyBy=V4,_.keys=Tr,_.keysIn=go,_.map=$u,_.mapKeys=d8,_.mapValues=m8,_.matches=i7,_.matchesProperty=a7,_.memoize=Uu,_.merge=u8,_.mergeWith=aS,_.method=l7,_.methodOf=s7,_.mixin=yx,_.negate=Gu,_.nthArg=d7,_.omit=p8,_.omitBy=f8,_.once=cN,_.orderBy=X4,_.over=m7,_.overArgs=dN,_.overEvery=u7,_.overSome=p7,_.partial=ux,_.partialRight=j1,_.partition=Z4,_.pick=g8,_.pickBy=lS,_.property=fS,_.propertyOf=f7,_.pull=X6,_.pullAll=$1,_.pullAllBy=Z6,_.pullAllWith=q6,_.pullAt=j6,_.range=g7,_.rangeRight=h7,_.rearg=mN,_.reject=J4,_.remove=J6,_.rest=uN,_.reverse=cx,_.sampleSize=eN,_.set=b8,_.setWith=x8,_.shuffle=tN,_.slice=Q6,_.sortBy=nN,_.sortedUniq=a4,_.sortedUniqBy=l4,_.split=H8,_.spread=pN,_.tail=s4,_.take=c4,_.takeRight=d4,_.takeRightWhile=m4,_.takeWhile=u4,_.tap=_4,_.throttle=fN,_.thru=zu,_.toArray=rS,_.toPairs=sS,_.toPairsIn=cS,_.toPath=E7,_.toPlainObject=nS,_.transform=v8,_.unary=gN,_.union=p4,_.unionBy=f4,_.unionWith=g4,_.uniq=h4,_.uniqBy=b4,_.uniqWith=x4,_.unset=y8,_.unzip=dx,_.unzipWith=H1,_.update=E8,_.updateWith=w8,_.values=vs,_.valuesIn=S8,_.without=v4,_.words=uS,_.wrap=hN,_.xor=y4,_.xorBy=E4,_.xorWith=w4,_.zip=S4,_.zipObject=T4,_.zipObjectDeep=C4,_.zipWith=I4,_.entries=sS,_.entriesIn=cS,_.extend=iS,_.extendWith=Yu,yx(_,_),_.add=S7,_.attempt=pS,_.camelCase=_8,_.capitalize=dS,_.ceil=T7,_.clamp=T8,_.clone=xN,_.cloneDeep=yN,_.cloneDeepWith=EN,_.cloneWith=vN,_.conformsTo=wN,_.deburr=mS,_.defaultTo=r7,_.divide=C7,_.endsWith=A8,_.eq=wn,_.escape=k8,_.escapeRegExp=P8,_.every=F4,_.find=z4,_.findIndex=O1,_.findKey=JN,_.findLast=$4,_.findLastIndex=F1,_.findLastKey=QN,_.floor=I7,_.forEach=G1,_.forEachRight=W1,_.forIn=e8,_.forInRight=t8,_.forOwn=r8,_.forOwnRight=o8,_.get=gx,_.gt=SN,_.gte=TN,_.has=a8,_.hasIn=hx,_.head=z1,_.identity=ho,_.includes=K4,_.indexOf=$6,_.inRange=C8,_.invoke=c8,_.isArguments=ol,_.isArray=$e,_.isArrayBuffer=CN,_.isArrayLike=fo,_.isArrayLikeObject=tr,_.isBoolean=IN,_.isBuffer=aa,_.isDate=_N,_.isElement=AN,_.isEmpty=kN,_.isEqual=PN,_.isEqualWith=MN,_.isError=px,_.isFinite=LN,_.isFunction=gi,_.isInteger=J1,_.isLength=Wu,_.isMap=Q1,_.isMatch=RN,_.isMatchWith=DN,_.isNaN=NN,_.isNative=ON,_.isNil=BN,_.isNull=FN,_.isNumber=eS,_.isObject=Ut,_.isObjectLike=Xt,_.isPlainObject=yd,_.isRegExp=fx,_.isSafeInteger=zN,_.isSet=tS,_.isString=Ku,_.isSymbol=Mo,_.isTypedArray=xs,_.isUndefined=$N,_.isWeakMap=HN,_.isWeakSet=UN,_.join=K6,_.kebabCase=M8,_.last=Vo,_.lastIndexOf=Y6,_.lowerCase=L8,_.lowerFirst=R8,_.lt=GN,_.lte=WN,_.max=_7,_.maxBy=A7,_.mean=k7,_.meanBy=P7,_.min=M7,_.minBy=L7,_.stubArray=wx,_.stubFalse=Sx,_.stubObject=b7,_.stubString=x7,_.stubTrue=v7,_.multiply=R7,_.nth=V6,_.noConflict=c7,_.noop=Ex,_.now=Hu,_.pad=D8,_.padEnd=N8,_.padStart=O8,_.parseInt=F8,_.random=I8,_.reduce=q4,_.reduceRight=j4,_.repeat=B8,_.replace=z8,_.result=h8,_.round=D7,_.runInContext=$,_.sample=Q4,_.size=rN,_.snakeCase=$8,_.some=oN,_.sortedIndex=e4,_.sortedIndexBy=t4,_.sortedIndexOf=r4,_.sortedLastIndex=o4,_.sortedLastIndexBy=n4,_.sortedLastIndexOf=i4,_.startCase=U8,_.startsWith=G8,_.subtract=N7,_.sum=O7,_.sumBy=F7,_.template=W8,_.times=y7,_.toFinite=hi,_.toInteger=Ue,_.toLength=oS,_.toLower=K8,_.toNumber=Xo,_.toSafeInteger=KN,_.toString=ut,_.toUpper=Y8,_.trim=V8,_.trimEnd=X8,_.trimStart=Z8,_.truncate=q8,_.unescape=j8,_.uniqueId=w7,_.upperCase=J8,_.upperFirst=bx,_.each=G1,_.eachRight=W1,_.first=z1,yx(_,function(){var n={};return Gn(_,function(l,p){bt.call(_.prototype,p)||(n[p]=l)}),n}(),{chain:!1}),_.VERSION=t,Uo(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){_[n].placeholder=_}),Uo(["drop","take"],function(n,l){Je.prototype[n]=function(p){p=p===e?1:hr(Ue(p),0);var x=this.__filtered__&&!l?new Je(this):this.clone();return x.__filtered__?x.__takeCount__=Fr(p,x.__takeCount__):x.__views__.push({size:Fr(p,ue),type:n+(x.__dir__<0?"Right":"")}),x},Je.prototype[n+"Right"]=function(p){return this.reverse()[n](p).reverse()}}),Uo(["filter","map","takeWhile"],function(n,l){var p=l+1,x=p==me||p==se;Je.prototype[n]=function(S){var P=this.clone();return P.__iteratees__.push({iteratee:Ae(S,3),type:p}),P.__filtered__=P.__filtered__||x,P}}),Uo(["head","last"],function(n,l){var p="take"+(l?"Right":"");Je.prototype[n]=function(){return this[p](1).value()[0]}}),Uo(["initial","tail"],function(n,l){var p="drop"+(l?"":"Right");Je.prototype[n]=function(){return this.__filtered__?new Je(this):this[p](1)}}),Je.prototype.compact=function(){return this.filter(ho)},Je.prototype.find=function(n){return this.filter(n).head()},Je.prototype.findLast=function(n){return this.reverse().find(n)},Je.prototype.invokeMap=Ke(function(n,l){return typeof n=="function"?new Je(this):this.map(function(p){return fd(p,n,l)})}),Je.prototype.reject=function(n){return this.filter(Gu(Ae(n)))},Je.prototype.slice=function(n,l){n=Ue(n);var p=this;return p.__filtered__&&(n>0||l<0)?new Je(p):(n<0?p=p.takeRight(-n):n&&(p=p.drop(n)),l!==e&&(l=Ue(l),p=l<0?p.dropRight(-l):p.take(l-n)),p)},Je.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Je.prototype.toArray=function(){return this.take(ue)},Gn(Je.prototype,function(n,l){var p=/^(?:filter|find|map|reject)|While$/.test(l),x=/^(?:head|last)$/.test(l),S=_[x?"take"+(l=="last"?"Right":""):l],P=x||/^find/.test(l);S&&(_.prototype[l]=function(){var N=this.__wrapped__,B=x?[1]:arguments,H=N instanceof Je,ee=B[0],te=H||$e(N),ae=function(qe){var tt=S.apply(_,Ji([qe],B));return x&&fe?tt[0]:tt};te&&p&&typeof ee=="function"&&ee.length!=1&&(H=te=!1);var fe=this.__chain__,we=!!this.__actions__.length,Pe=P&&!fe,Ge=H&&!we;if(!P&&te){N=Ge?N:new Je(this);var Me=n.apply(N,B);return Me.__actions__.push({func:zu,args:[ae],thisArg:e}),new Wo(Me,fe)}return Pe&&Ge?n.apply(this,B):(Me=this.thru(ae),Pe?x?Me.value()[0]:Me.value():Me)})}),Uo(["pop","push","shift","sort","splice","unshift"],function(n){var l=mu[n],p=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",x=/^(?:pop|shift)$/.test(n);_.prototype[n]=function(){var S=arguments;if(x&&!this.__chain__){var P=this.value();return l.apply($e(P)?P:[],S)}return this[p](function(N){return l.apply($e(N)?N:[],S)})}}),Gn(Je.prototype,function(n,l){var p=_[l];if(p){var x=p.name+"";bt.call(ps,x)||(ps[x]=[]),ps[x].push({name:l,func:p})}}),ps[Lu(e,y).name]=[{name:"wrapper",func:e}],Je.prototype.clone=jR,Je.prototype.reverse=JR,Je.prototype.value=QR,_.prototype.at=A4,_.prototype.chain=k4,_.prototype.commit=P4,_.prototype.next=M4,_.prototype.plant=R4,_.prototype.reverse=D4,_.prototype.toJSON=_.prototype.valueOf=_.prototype.value=N4,_.prototype.first=_.prototype.head,ld&&(_.prototype[ld]=L4),_},ea=PR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Sr._=ea,define(function(){return ea})):Za?((Za.exports=ea)._=ea,vb._=ea):Sr._=ea}).call(Xc)});v();var eb=w(j(),1);v();var Of=w(j(),1);v();v();v();v();var or=w(j(),1);v();var K7=0;function DI(e,t){let r=`atom${++K7}`,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 Ta=Symbol(),Ov=e=>!!e[Ta],Tf=e=>!e[Ta].c,Jd=e=>{var t;let{b:r,c:o}=e[Ta];o&&(o(),(t=V7.get(r))==null||t())},If=(e,t)=>{let r=e[Ta].o,o=t[Ta].o;return r===o||e===o||Ov(r)&&If(r,t)},Fv=(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[Ta]=r,o},Y7=e=>Fv(e[Ta].b,e[Ta].o),V7=new WeakMap;var Cf=e=>"init"in e,Qd="r",_f="w",em="c",Af="s",NI="h",X7="n",Z7="l",q7="a",j7="m",OI=e=>{let t=new WeakMap,r=new WeakMap,o=new Map,i,a;if((A&&A.MODE)!=="production"&&(i=new Set,a=new Set),e)for(let[G,Y]of e){let oe={v:Y,r:0,y:!0,d:new Map};(A&&A.MODE)!=="production"&&(Object.freeze(oe),Cf(G)||console.warn("Found initial value for derived atom which can cause unexpected behavior",G)),t.set(G,oe)}let s=new WeakMap,c=(G,Y,oe)=>{let ie=s.get(Y);ie||(ie=new Map,s.set(Y,ie)),oe.then(()=>{ie.get(G)===oe&&(ie.delete(G),ie.size||s.delete(Y))}),ie.set(G,oe)},d=G=>{let Y=new Set,oe=s.get(G);return oe&&(s.delete(G),oe.forEach((ie,le)=>{Jd(ie),Y.add(le)})),Y},u=new WeakMap,f=G=>{let Y=u.get(G);return Y||(Y=new Map,u.set(G,Y)),Y},m=(G,Y)=>{if(G){let oe=f(G),ie=oe.get(Y);return ie||(ie=m(G.p,Y),ie&&"p"in ie&&Tf(ie.p)&&(ie=void 0),ie&&oe.set(Y,ie)),ie}return t.get(Y)},g=(G,Y,oe)=>{if((A&&A.MODE)!=="production"&&Object.freeze(oe),G)f(G).set(Y,oe);else{let ie=t.get(Y);t.set(Y,oe),o.has(Y)||o.set(Y,ie)}},h=(G,Y=new Map,oe)=>{if(!oe)return Y;let ie=new Map,le=!1;return oe.forEach(de=>{var pe;let ye=((pe=m(G,de))==null?void 0:pe.r)||0;ie.set(de,ye),Y.get(de)!==ye&&(le=!0)}),Y.size===ie.size&&!le?Y:ie},b=(G,Y,oe,ie,le)=>{let de=m(G,Y);if(de){if(le&&(!("p"in de)||!If(de.p,le)))return de;"p"in de&&Jd(de.p)}let pe={v:oe,r:de?.r||0,y:!0,d:h(G,de?.d,ie)},ye=!de?.y;return!de||!("v"in de)||!Object.is(de.v,oe)?(ye=!0,++pe.r,pe.d.has(Y)&&(pe.d=new Map(pe.d).set(Y,pe.r))):pe.d!==de.d&&(pe.d.size!==de.d.size||!Array.from(pe.d.keys()).every(Ct=>de.d.has(Ct)))&&(ye=!0,Promise.resolve().then(()=>{be(G)})),de&&!ye?de:(g(G,Y,pe),pe)},y=(G,Y,oe,ie,le)=>{let de=m(G,Y);if(de){if(le&&(!("p"in de)||!If(de.p,le)))return de;"p"in de&&Jd(de.p)}let pe={e:oe,r:(de?.r||0)+1,y:!0,d:h(G,de?.d,ie)};return g(G,Y,pe),pe},T=(G,Y,oe,ie)=>{let le=m(G,Y);if(le&&"p"in le){if(If(le.p,oe)&&!Tf(le.p))return le.y?le:{...le,y:!0};Jd(le.p)}c(G,Y,oe);let de={p:oe,r:(le?.r||0)+1,y:!0,d:h(G,le?.d,ie)};return g(G,Y,de),de},k=(G,Y,oe,ie)=>{if(oe instanceof Promise){let le=Fv(oe,oe.then(de=>{b(G,Y,de,ie,le)}).catch(de=>{if(de instanceof Promise)return Ov(de)?de.then(()=>{C(G,Y,!0)}):de;y(G,Y,de,ie,le)}));return T(G,Y,le,ie)}return b(G,Y,oe,ie)},I=(G,Y)=>{let oe=m(G,Y);if(oe){let ie={...oe,y:!1};g(G,Y,ie)}else(A&&A.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",Y)},C=(G,Y,oe)=>{if(!oe){let le=m(G,Y);if(le){if(le.y&&"p"in le&&!Tf(le.p))return le;if(le.d.forEach((de,pe)=>{if(pe!==Y)if(!r.has(pe))C(G,pe);else{let ye=m(G,pe);ye&&!ye.y&&C(G,pe)}}),Array.from(le.d).every(([de,pe])=>{let ye=m(G,de);return ye&&!("p"in ye)&&ye.r===pe}))return le.y?le:{...le,y:!0}}}let ie=new Set;try{let le=Y.read(de=>{ie.add(de);let pe=de===Y?m(G,de):C(G,de);if(pe){if("e"in pe)throw pe.e;if("p"in pe)throw pe.p;return pe.v}if(Cf(de))return de.init;throw new Error("no atom init")});return k(G,Y,le,ie)}catch(le){if(le instanceof Promise){let de=Ov(le)&&Tf(le)?Y7(le):Fv(le,le);return T(G,Y,de,ie)}return y(G,Y,le,ie)}},O=(G,Y)=>C(Y,G),z=(G,Y)=>{let oe=r.get(Y);return oe||(oe=me(G,Y)),oe},L=(G,Y)=>!Y.l.size&&(!Y.t.size||Y.t.size===1&&Y.t.has(G)),F=(G,Y)=>{let oe=r.get(Y);oe&&L(Y,oe)&&K(G,Y)},D=(G,Y)=>{let oe=r.get(Y);oe?.t.forEach(ie=>{ie!==Y&&(I(G,ie),D(G,ie))})},V=(G,Y,oe)=>{let ie=!0,le=(ye,Ct)=>{let vt=C(G,ye);if("e"in vt)throw vt.e;if("p"in vt){if(Ct?.unstable_promise)return vt.p.then(()=>{let Ft=m(G,ye);return Ft&&"p"in Ft&&Ft.p===vt.p?new Promise(Et=>setTimeout(Et)).then(()=>le(ye,Ct)):le(ye,Ct)});throw(A&&A.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(A&&A.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")},de=(ye,Ct)=>{let vt;if(ye===Y){if(!Cf(ye))throw new Error("atom not writable");d(ye).forEach(Jr=>{Jr!==G&&k(Jr,ye,Ct)});let Et=m(G,ye),er=k(G,ye,Ct);Et!==er&&D(G,ye)}else vt=V(G,ye,Ct);return ie||be(G),vt},pe=Y.write(le,de,oe);return ie=!1,pe},U=(G,Y,oe)=>{let ie=V(oe,G,Y);return be(oe),ie},Q=G=>!!G.write,me=(G,Y,oe)=>{let ie={t:new Set(oe&&[oe]),l:new Set};if(r.set(Y,ie),(A&&A.MODE)!=="production"&&a.add(Y),C(void 0,Y).d.forEach((de,pe)=>{let ye=r.get(pe);ye?ye.t.add(Y):pe!==Y&&me(G,pe,Y)}),Q(Y)&&Y.onMount){let de=ye=>U(Y,ye,G),pe=Y.onMount(de);G=void 0,pe&&(ie.u=pe)}return ie},K=(G,Y)=>{var oe;let ie=(oe=r.get(Y))==null?void 0:oe.u;ie&&ie(),r.delete(Y),(A&&A.MODE)!=="production"&&a.delete(Y);let le=m(G,Y);le?("p"in le&&Jd(le.p),le.d.forEach((de,pe)=>{if(pe!==Y){let ye=r.get(pe);ye&&(ye.t.delete(Y),L(pe,ye)&&K(G,pe))}})):(A&&A.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",Y)},se=(G,Y,oe,ie)=>{let le=new Set(oe.d.keys());ie?.forEach((de,pe)=>{if(le.has(pe)){le.delete(pe);return}let ye=r.get(pe);ye&&(ye.t.delete(Y),L(pe,ye)&&K(G,pe))}),le.forEach(de=>{let pe=r.get(de);pe?pe.t.add(Y):r.has(Y)&&me(G,de,Y)})},be=G=>{if(G){f(G).forEach((oe,ie)=>{let le=t.get(ie);if(oe!==le){let de=r.get(ie);de?.l.forEach(pe=>pe(G))}});return}for(;o.size;){let Y=Array.from(o);o.clear(),Y.forEach(([oe,ie])=>{let le=m(void 0,oe);if(le&&le.d!==ie?.d&&se(void 0,oe,le,ie?.d),ie&&!ie.y&&le?.y)return;let de=r.get(oe);de?.l.forEach(pe=>pe())})}(A&&A.MODE)!=="production"&&i.forEach(Y=>Y())},_e=G=>{f(G).forEach((oe,ie)=>{let le=t.get(ie);(!le||oe.r>le.r||oe.y!==le.y||oe.r===le.r&&oe.d!==le.d)&&(t.set(ie,oe),oe.d!==le?.d&&se(G,ie,oe,le?.d))})},nt=(G,Y)=>{Y&&_e(Y),be(void 0)},Ee=(G,Y,oe)=>{let le=z(oe,G).l;return le.add(Y),()=>{le.delete(Y),F(oe,G)}},ue=(G,Y)=>{for(let[oe,ie]of G)Cf(oe)&&(k(Y,oe,ie),D(Y,oe));be(Y)};return(A&&A.MODE)!=="production"?{[Qd]:O,[_f]:U,[em]:nt,[Af]:Ee,[NI]:ue,[X7]:G=>(i.add(G),()=>{i.delete(G)}),[Z7]:()=>a.values(),[q7]:G=>t.get(G),[j7]:G=>r.get(G)}:{[Qd]:O,[_f]:U,[em]:nt,[Af]:Ee,[NI]:ue}},FI=e=>{let t=OI(e),r=s=>{let c=t[Qd](s);if("e"in c)throw c.e;if(!("p"in c))return c.v},o=s=>new Promise((c,d)=>{let u=t[Qd](s);"e"in u?d(u.e):"p"in u?c(u.p.then(()=>o(s))):c(u.v)});return{get:r,asyncGet:o,set:(s,c)=>t[_f](s,c),sub:(s,c)=>t[Af](s,c),SECRET_INTERNAL_store:t}},BI=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:OI(e)}),Nv=new Map,Bv=e=>(Nv.has(e)||Nv.set(e,(0,or.createContext)(BI())),Nv.get(e)),kf=({children:e,initialValues:t,scope:r,unstable_createStore:o,unstable_enableVersionedWrite:i})=>{let[a,s]=(0,or.useState)({});(0,or.useEffect)(()=>{let u=c.current;u.w&&(u.s[em](null,a),delete a.p,u.v=a)},[a]);let c=(0,or.useRef)();if(!c.current){let u=BI(t,o);if(i){let f=0;u.w=m=>{s(g=>{let h=f?g:{p:g};return m(h),h})},u.v=a,u.r=m=>{++f,m(),--f}}c.current=u}let d=Bv(r);return(0,or.createElement)(d.Provider,{value:c.current},e)};function St(e,t){return DI(e,t)}function tm(e,t){let r=Bv(t),o=(0,or.useContext)(r),{s:i,v:a}=o,s=g=>{let h=i[Qd](e,g);if((A&&A.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,u],f]=(0,or.useReducer)((g,h)=>{let b=s(h);return Object.is(g[1],b)&&g[2]===e?g:[h,b,e]},a,g=>{let h=s(g);return[g,h,e]}),m=d;return u!==e&&(f(c),m=s(c)),(0,or.useEffect)(()=>{let{v:g}=o;g&&i[em](e,g);let h=i[Af](e,f,g);return f(g),h},[i,e,o]),(0,or.useEffect)(()=>{i[em](e,c)}),(0,or.useDebugValue)(m),m}function Li(e,t){let r=Bv(t),{s:o,w:i}=(0,or.useContext)(r);return(0,or.useCallback)(s=>{if((A&&A.MODE)!=="production"&&!("write"in e))throw new Error("not writable atom");let c=d=>o[_f](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),[tm(e,t),Li(e,t)]}var J7=w(j(),1),mt=Symbol(),Hr=FI();var Q7=hS({"./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-YVAVVILW.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 eO=85,Xn={code:"en",label:"English"},Qs=[Xn,...[{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=>xS[e.code]>=eO).sort((e,t)=>e.label>t.label?1:-1)],Mf="__test__";A.DEV&&Qs.unshift({code:Mf,label:"test language"},{code:`${Mf}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var Js=Xn,Pf={},Lf=async e=>{if(Js=e,document.documentElement.dir=Js.rtl?"rtl":"ltr",document.documentElement.lang=Js.code,e.code.startsWith(Mf))Pf={};else try{Pf=await Q7(`./locales/${Js.code}.json`)}catch(t){console.error(`Failed to load language ${e.code}:`,t.message),Pf=Tx}Hr.set($I,e.code)},Ri=()=>Js,zI=(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},E=(e,t,r)=>{if(Js.code.startsWith(Mf))return`\u202A[[${t?`${e}(${JSON.stringify(t).slice(1,-1)})`:e}]]\u202C`;let o=e.split("."),i=zI(Pf,o)||zI(Tx,o)||r;if(i===void 0){let a=`Can't find translation for ${e}`;if(A.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},$I=St(Xn.code),lr=()=>{let e=tm($I,mt);return{t:E,langCode:e}};var Df=w(j(),1);v();var HI=w(j(),1);var Rf=w(M(),1),tO=({size:e="1em",circleWidth:t=8,synchronized:r=!1})=>{let i=-(HI.default.useRef(Date.now()).current%1600);return(0,Rf.jsx)("div",{className:"Spinner",children:(0,Rf.jsx)("svg",{viewBox:"0 0 100 100",style:{width:e,height:e,"--spinner-delay":r?`${i}ms`:0},children:(0,Rf.jsx)("circle",{cx:"50",cy:"50",r:50-t/2,strokeWidth:t,fill:"none",strokeMiterlimit:"10"})})})},Dr=tO;var ec=w(M(),1),Nf=({delay:e,theme:t})=>{let[r,o]=(0,Df.useState)(!!e);return(0,Df.useEffect)(()=>{if(!e)return;let i=setTimeout(()=>{o(!1)},e);return()=>clearTimeout(i)},[e]),r?null:(0,ec.jsxs)("div",{className:q("LoadingMessage",{"LoadingMessage--dark":t===Be.DARK}),children:[(0,ec.jsx)("div",{children:(0,ec.jsx)(Dr,{})}),(0,ec.jsx)("div",{className:"LoadingMessage-text",children:E("labels.loadingScene")})]})};var GI=w(M(),1),UI=e=>{let[t,r]=(0,Of.useState)(!0);return(0,Of.useEffect)(()=>{let o=async()=>{await Lf(i),r(!1)},i=Qs.find(a=>a.code===e.langCode)||Xn;o()},[e.langCode]),t?(0,GI.jsx)(Nf,{theme:e.theme}):e.children};v();var fr=w(j(),1),Vh=w(Zn(),1);v();v();v();var Mn=w(j(),1);var on=w(M(),1),Ie=Mn.default.forwardRef((e,t)=>{let{id:r}=sr(),o=Mn.default.useRef(null);Mn.default.useImperativeHandle(t,()=>o.current);let i=`ToolIcon_size_${e.size}`,[a,s]=(0,Mn.useState)(!1),c=(0,Mn.useRef)(!0),d=async f=>{let m="onClick"in e&&e.onClick?.(f);if(Ts(m))try{s(!0),await m}catch(g){if(g instanceof _s)console.warn(g);else throw g}finally{c.current&&s(!1)}};(0,Mn.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let u=(0,Mn.useRef)(null);if(e.type==="button"||e.type==="icon"||e.type==="submit"){let f=e.type==="icon"?"button":e.type;return(0,on.jsxs)("button",{className:q("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,on.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!e.disabled,children:[e.icon||e.label,e.keyBindingLabel&&(0,on.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel}),e.isLoading&&(0,on.jsx)(Dr,{})]}),e.showAriaLabel&&(0,on.jsxs)("div",{className:"ToolIcon__label",children:[e["aria-label"]," ",a&&(0,on.jsx)(Dr,{})]}),e.children]})}return(0,on.jsxs)("label",{className:q("ToolIcon",e.className),title:e.title,onPointerDown:f=>{u.current=f.pointerType||null,e.onPointerDown?.({pointerType:f.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{u.current=null})},children:[(0,on.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:u.current})},checked:e.checked,ref:o}),(0,on.jsxs)("div",{className:"ToolIcon__icon",children:[e.icon,e.keyBindingLabel&&(0,on.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel})]})]})});Ie.defaultProps={visible:!0,className:"",size:"medium"};Ie.displayName="ToolButton";var YI=w(M(),1),rO=(e,t,r)=>{let o=new Set(Oe(e.filter(i=>He(i)),t).map(i=>i.id));return{elements:e.map(i=>t.selectedElementIds[i.id]?(i.boundElements&&i.boundElements.forEach(a=>{let s=r.scene.getNonDeletedElementsMap().get(a.id);s&&dt(s)&&(ce(s,{startBinding:i.id===s.startBinding?.elementId?null:s.startBinding,endBinding:i.id===s.endBinding?.elementId?null:s.endBinding}),Cl(s,r.scene,s.points))}),ke(i,{isDeleted:!0})):i.frameId&&o.has(i.frameId)?ke(i,{isDeleted:!0}):Ir(i)&&t.selectedElementIds[i.containerId]?ke(i,{isDeleted:!0}):i),appState:{...t,selectedElementIds:{},selectedGroupIds:{}}}},KI=(e,t)=>{if(e.editingGroupId){let r=Kt(We(t),e.editingGroupId);if(r.length)return{...e,selectedElementIds:{[r[0].id]:!0}}}return e},rm=re({name:"deleteSelectedElements",label:"labels.delete",icon:kn,trackEvent:{category:"element",action:"delete"},perform:(e,t,r,o)=>{if(t.editingLinearElement){let{elementId:s,selectedPointsIndices:c,startBindingElement:d,endBindingElement:u}=t.editingLinearElement,f=o.scene.getNonDeletedElementsMap(),m=Le.getElement(s,f);if(!m||c==null)return!1;if(m.points.length<2){let h=e.map(y=>y.id===m.id?ke(y,{isDeleted:!0}):y),b=KI(t,h);return{elements:h,appState:{...b,editingLinearElement:null},storeAction:W.CAPTURE}}let g={startBindingElement:c?.includes(0)?null:d,endBindingElement:c?.includes(m.points.length-1)?null:u};return Le.deletePoints(m,c,o.scene),{elements:e,appState:{...t,editingLinearElement:{...t.editingLinearElement,...g,selectedPointsIndices:c?.[0]>0?[c[0]-1]:[0]}},storeAction:W.CAPTURE}}let{elements:i,appState:a}=rO(e,t,o);return ef(i,e.filter(({id:s})=>t.selectedElementIds[s])),a=KI(a,i),{elements:i,appState:{...a,activeTool:Gt(t,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:gt(We(e),t)?W.CAPTURE:W.NONE}},keyTest:(e,t,r)=>(e.key===R.BACKSPACE||e.key===R.DELETE)&&!e[R.CTRL_OR_CMD],PanelComponent:({elements:e,appState:t,updateData:r})=>(0,YI.jsx)(Ie,{type:"button",icon:kn,title:E("labels.delete"),"aria-label":E("labels.delete"),onClick:()=>r(null),visible:gt(We(e),t)})});v();v();var zv=(e,t)=>e.frameId===t||e.id===t,XI=(e,t,r)=>{let o=[],i=[],a=null,s=-1,c=Re(r||Oe(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},oO=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),[])},VI=(e,t,r)=>{if("containerId"in e&&e.containerId)if(r==="left"){let o=rn.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=rn.getScene(e).getElement(o);if(i)return t.indexOf(i)}}},nO=(e,t)=>{let r=-1,o=-1;return e.forEach((i,a)=>{zv(i,t)&&(r===-1&&(r=a),o=a)}),r===-1?[]:e.slice(r,o+1)},iO=(e,t,r,o,i)=>{let a=t[r],s=m=>m.isDeleted?!1:i?m.frameId===i:e.editingGroupId?m.groupIds.includes(e.editingGroupId):!0,c=o==="left"?Rx(t,m=>s(m),Math.max(0,r-1)):Lx(t,m=>s(m),r+1),d=t[c];if(!d)return-1;if(e.editingGroupId){if(a?.groupIds.join("")===d?.groupIds.join(""))return VI(d,t,o)??c;if(!d?.groupIds.includes(e.editingGroupId))return-1}if(!i&&(d.frameId||He(d))){let m=nO(t,d.frameId||d.id);return o==="left"?t.indexOf(m[0]):t.indexOf(m[m.length-1])}if(!d.groupIds.length)return VI(d,t,o)??c;let u=e.editingGroupId?d.groupIds[d.groupIds.indexOf(e.editingGroupId)-1]:d.groupIds[d.groupIds.length-1],f=Kt(t,u);return f.length?o==="left"?t.indexOf(f[0]):t.indexOf(f[f.length-1]):c},ZI=(e,t)=>t.reduce((r,o)=>{let i=e[o];return r.set(i.id,i),r},new Map),qI=(e,t,r)=>{let o=XI(e,t),i=ZI(e,o),a=oO(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 u=c[0],f=c[c.length-1],m=r==="left"?u:f,g=c.some(I=>{let C=e[I];return C.frameId&&s.has(C.frameId)})?null:e[m]?.frameId,h=iO(t,e,m,r,g);if(h===-1||m===h)return;let b=r==="left"?e.slice(0,h):e.slice(0,u),y=e.slice(u,f+1),T=r==="left"?e.slice(h,u):e.slice(f+1,h+1),k=r==="left"?e.slice(f+1):e.slice(h+1);e=r==="left"?[...b,...y,...T,...k]:[...b,...T,...y,...k]}),Do(e,i),e},jI=(e,t,r,o,i)=>{let a=XI(e,t,i),s=ZI(e,a),c=[],d,u;if(r==="left"){if(o)d=Lx(e,b=>zv(b,o));else if(t.editingGroupId){let b=Kt(e,t.editingGroupId);if(!b.length)return e;d=e.indexOf(b[0])}else d=0;u=a[a.length-1]}else{if(o)u=Rx(e,b=>zv(b,o));else if(t.editingGroupId){let b=Kt(e,t.editingGroupId);if(!b.length)return e;u=e.indexOf(b[b.length-1])}else u=e.length-1;d=a[0]}d===-1&&(d=0);for(let b=d;b<u+1;b++)a.includes(b)||c.push(e[b]);let f=Array.from(s.values()),m=e.slice(0,d),g=e.slice(u+1),h=r==="left"?[...m,...f,...c,...g]:[...m,...c,...f,...g];return Do(h,s),h};function JI(e,t,r,o){let i=Re(Oe(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),a={regularElements:[],frameChildren:new Map},s=new Set;for(let u of e)i.has(u.id)&&He(u)&&s.add(u.id);for(let u of e)if(i.has(u.id))if(He(u)||u.frameId&&s.has(u.frameId))a.regularElements.push(u);else if(!u.frameId)a.regularElements.push(u);else{let f=a.frameChildren.get(u.frameId)||[];f.push(u),a.frameChildren.set(u.frameId,f)}let c=e,d=Array.from(a.frameChildren.entries());for(let[u,f]of d)c=o(e,t,r,u,f);return o(c,t,r,null,a.regularElements)}var QI=(e,t)=>qI(e,t,"left"),e_=(e,t)=>qI(e,t,"right"),t_=(e,t)=>JI(e,t,"left",jI),r_=(e,t)=>JI(e,t,"right",jI);var om=w(M(),1),$v=re({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:Ux,trackEvent:{category:"element"},perform:(e,t)=>({elements:QI(e,t),appState:t,storeAction:W.CAPTURE}),keyPriority:40,keyTest:e=>e[R.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Ne.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendBackward")} \u2014 ${X("CtrlOrCmd+[")}`,children:Ux})}),Hv=re({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:Hx,trackEvent:{category:"element"},perform:(e,t)=>({elements:e_(e,t),appState:t,storeAction:W.CAPTURE}),keyPriority:40,keyTest:e=>e[R.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Ne.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.bringForward")} \u2014 ${X("CtrlOrCmd+]")}`,children:Hx})}),Uv=re({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:Wx,trackEvent:{category:"element"},perform:(e,t)=>({elements:t_(e,t),appState:t,storeAction:W.CAPTURE}),keyTest:e=>Tn?e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.BRACKET_LEFT:e[R.CTRL_OR_CMD]&&e.shiftKey&&e.code===Ne.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendToBack")} \u2014 ${Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")}`,children:Wx})}),Gv=re({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:Gx,trackEvent:{category:"element"},perform:(e,t)=>({elements:r_(e,t),appState:t,storeAction:W.CAPTURE}),keyTest:e=>Tn?e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.BRACKET_RIGHT:e[R.CTRL_OR_CMD]&&e.shiftKey&&e.code===Ne.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:r=>e(null),title:`${E("labels.bringToFront")} \u2014 ${Tn?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")}`,children:Gx})});v();var Wv=re({name:"selectAll",label:"labels.selectAll",icon:YT,trackEvent:{category:"canvas"},viewMode:!1,perform:(e,t,r,o)=>{if(t.editingLinearElement)return!1;let i=js(e.filter(a=>!a.isDeleted&&!(he(a)&&a.containerId)&&!a.locked)).reduce((a,s)=>(a[s.id]=!0,a),{});return{appState:{...t,...Rr({editingGroupId:null,selectedElementIds:i},We(e),t,o),selectedLinearElement:Object.keys(i).length===1&&Qe(e[0])?new Le(e[0]):null},storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.A});v();v();var aO=e=>{let t=e.slice(),r=new Set,o=a=>{let s=a[0]?.groupIds?.join(""),c=[a[0]],d=[];for(let u of a.slice(1))u.groupIds?.join("")===s?c.push(u):d.push(u);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(u=>{let f=u?.groupIds?.some(m=>m===c);return f&&i.set(u.id,!0),f});for(let u of o(d))r.add(u)}else r.add(a)}),r.size!==e.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),e):[...r]},lO=e=>{let t=a2(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]},o_=e=>lO(aO(e));var n_=w(M(),1),Kv=re({name:"duplicateSelection",label:"labels.duplicateSelection",icon:Rd,trackEvent:{category:"element"},perform:(e,t,r,o)=>{if(t.editingLinearElement){let i=Le.duplicateSelectedPoints(t,o.scene);return i?{elements:e,appState:i.appState,storeAction:W.CAPTURE}:!1}return{...sO(e,t),storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.D,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,n_.jsx)(Ie,{type:"button",icon:Rd,title:`${E("labels.duplicateSelection")} \u2014 ${X("CtrlOrCmd+D")}`,"aria-label":E("labels.duplicateSelection"),onClick:()=>r(null),visible:gt(We(e),t)})}),sO=(e,t)=>{let r=o_(e),o=new Map,i=[],a=[],s=new Map,c=new Map,d=I=>{let C=Yp(t.editingGroupId,o,I,{x:I.x+yi/2,y:I.y+yi/2});return c.set(C.id,C),s.set(I.id,C.id),a.push(I),i.push(C),C},u=Re(Oe(r,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),f=new Map,m=I=>{for(let C of I)f.set(C.id,!0);return I},g=[],h=-1;for(;++h<r.length;){let I=r[h];if(f.get(I.id))continue;let C=je(I,Re(e)),O=He(I);if(u.get(I.id)){if(I.groupIds.length||C||O){let z=E2(t,I);if(z){let L=Kt(r,z).flatMap(F=>He(F)?[...Ea(e,F.id),F]:[F]);g.push(...m([...L,...L.map(F=>d(F))]));continue}if(C){g.push(...m([I,C,d(I),d(C)]));continue}if(O){let L=Ea(r,I.id);g.push(...m([...L,I,...L.map(F=>d(F)),d(I)]));continue}}(!I.frameId||!u.has(I.frameId))&&g.push(...m([I,d(I)]))}else g.push(...m([I]))}let b=[],y=new Map;for(h=g.length;--h>=0;){let I=g[h];y.get(I.id)||(y.set(I.id,!0),b.push(I))}let T=Do(b.reverse(),Re(i));pf(g,a,s),Qp(g,a,s),nf(T,a,s);let k=js(i);return{elements:T,appState:{...t,...Rr({editingGroupId:t.editingGroupId,selectedElementIds:k.reduce((I,C)=>(Ir(C)||(I[C.id]=!0),I),{})},We(T),t,null)}}};v();var sn=w(j(),1);v();var cO=new Set(["command_palette"]),ze=(e,t,r,o)=>{try{if(typeof window>"u"||A.VITE_WORKER_ID||A.VITE_APP_ENABLE_TRACKING!=="true"||!cO.has(e)||A.DEV)return;A.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();v();var i_=w(j(),1);var a_=w(M(),1),Ff=(0,i_.forwardRef)((e,t)=>{let{title:r,className:o,testId:i,active:a,standalone:s,icon:c,onClick:d}=e;return(0,a_.jsx)("button",{type:"button",ref:t,title:r,"data-testid":i,className:q(o,{standalone:s,active:a}),onClick:d,children:c},r)});var tc=w(M(),1),nn=e=>(0,tc.jsx)("div",{className:"buttonList",children:e.options.map(t=>e.type==="button"?(0,tc.jsx)(Ff,{icon:t.icon,title:t.text,testId:t.testId,active:t.active??e.value===t.value,onClick:r=>e.onClick(t.value,r)},t.text):(0,tc.jsxs)("label",{className:q({active:e.value===t.value}),title:t.text,children:[(0,tc.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 Bf=w(M(),1),l_=({onChange:e,type:t,activeColor:r,topPicks:o})=>{let i;return t==="elementStroke"&&(i=Vu),t==="elementBackground"&&(i=Xu),t==="canvasBackground"&&(i=Zu),o&&(i=o),i?(0,Bf.jsx)("div",{className:"color-picker__top-picks",children:i.map(a=>(0,Bf.jsx)("button",{className:q("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,Bf.jsx)("div",{className:"color-picker__button-outline"})},a))}):(console.error("Invalid type for TopPicks"),null)};v();var s_=w(M(),1),zf=()=>(0,s_.jsx)("div",{style:{width:1,height:"1rem",backgroundColor:"var(--default-border-color)",margin:"0 auto"}});v();var Ia=w(j(),1);v();var $f=w(j(),1);v();var Ca=({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},nm=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),Yv=({color:e,palette:t})=>!Object.values(t).flat().includes(e),d_=(e,t,r)=>{let o={elementBackground:"backgroundColor",elementStroke:"strokeColor"},i=e.filter(s=>{if(s.isDeleted)return!1;let c=s[o[t]];return Yv({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,vS)},an=St(null),c_=(e,t,r)=>(e*299+t*587+r*114)/1e3>=160?"black":"white",m_=(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]),u=parseInt(s[2]);return c_(c,d,u)}}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 c_(r,o,i)};v();var u_=w(M(),1),dO=({color:e,keyLabel:t,isCustomColor:r=!1,isShade:o=!1})=>(0,u_.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:m_(e,r)},children:[o&&"\u21E7",t]}),rc=dO;var Di=w(M(),1),p_=({hex:e,onChange:t,palette:r})=>{let o=Ca({color:e||"transparent",palette:r}),[i,a]=Ve(an),s=(0,$f.useRef)(null);if((0,$f.useEffect)(()=>{s.current&&i==="shades"&&s.current.focus()},[o,i]),o){let{colorName:c,shade:d}=o,u=r[c];if(Array.isArray(u))return(0,Di.jsx)("div",{className:"color-picker-content--default shades",children:u.map((f,m)=>(0,Di.jsxs)("button",{ref:m===d&&i==="shades"?s:void 0,tabIndex:-1,type:"button",className:q("color-picker__button color-picker__button--large",{active:m===d}),"aria-label":"Shade",title:`${c} - ${m+1}`,style:f?{"--swatch-color":f}:void 0,onClick:()=>{t(f),a("shades")},children:[(0,Di.jsx)("div",{className:"color-picker__button-outline"}),(0,Di.jsx)(rc,{color:f,keyLabel:m+1,isShade:!0})]},m))})}return(0,Di.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Di.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Di.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:E("colorPicker.noShades")})]})};v();var Hf=w(j(),1);var oc=w(M(),1),mO=({palette:e,color:t,onChange:r,label:o,activeShade:i})=>{let a=Ca({color:t||"transparent",palette:e}),[s,c]=Ve(an),d=(0,Hf.useRef)(null);return(0,Hf.useEffect)(()=>{d.current&&s==="baseColors"&&d.current.focus()},[a?.colorName,s]),(0,oc.jsx)("div",{className:"color-picker-content--default",children:Object.entries(e).map(([u,f],m)=>{let g=(Array.isArray(f)?f[i]:f)||"transparent",h=nm[m],b=E(`colors.${u.replace(/\d+/,"")}`,null,"");return(0,oc.jsxs)("button",{ref:a?.colorName===u?d:void 0,tabIndex:-1,type:"button",className:q("color-picker__button color-picker__button--large",{active:a?.colorName===u,"is-transparent":g==="transparent"||!g}),onClick:()=>{r(g),c("baseColors")},title:`${b}${g.startsWith("#")?` ${g}`:""} \u2014 ${h}`,"aria-label":`${b} \u2014 ${h}`,style:g?{"--swatch-color":g}:void 0,"data-testid":`color-${u}`,children:[(0,oc.jsx)("div",{className:"color-picker__button-outline"}),(0,oc.jsx)(rc,{color:g,keyLabel:h})]},u)})})},f_=mO;v();var Uf=w(j(),1);var nc=w(M(),1),g_=({colors:e,color:t,onChange:r,label:o})=>{let[i,a]=Ve(an),s=(0,Uf.useRef)(null);return(0,Uf.useEffect)(()=>{s.current&&s.current.focus()},[t,i]),(0,nc.jsx)("div",{className:"color-picker-content--default",children:e.map((c,d)=>(0,nc.jsxs)("button",{ref:t===c?s:void 0,tabIndex:-1,type:"button",className:q("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,nc.jsx)("div",{className:"color-picker__button-outline"}),(0,nc.jsx)(rc,{color:c,keyLabel:d+1,isCustomColor:!0})]},d))})};v();var Vv=(e,t,r)=>{let o=Math.ceil(r/nl);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+nl;return i>=r?t%nl:i}case"ArrowUp":{let i=t-nl,a=i<0?nl*o+i:i;return a>=r?void 0:a}}},uO=({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(nm.includes(e.key)){let c=nm.indexOf(e.key),d=Object.keys(o)[c],u=o[d],f=Array.isArray(u)?u[s]:u;return r(f),a("baseColors"),!0}return!1},h_=({event:e,activeColorPickerSection:t,palette:r,color:o,onChange:i,customColors:a,setActiveColorPickerSection:s,updateData:c,activeShade:d,onEyeDropperToggle:u,onEscape:f})=>{if(e[R.CTRL_OR_CMD])return!1;if(e.key===R.ESCAPE)return f(e),!0;if(e.key===R.ALT)return u(!0),!0;if(e.key===R.I)return u(),!0;let m=Ca({color:o,palette:r});if(e.key===R.TAB){let g={custom:!!a.length,baseColors:!0,shades:m?.shade!=null,hex:!0},h=Object.entries(g).reduce((I,[C,O])=>(O&&I.push(C),I),[]),b=h.indexOf(t),y=e.shiftKey?-1:1,T=b+y>h.length-1?0:b+y<0?h.length-1:b+y,k=h[T];return k&&s(k),k==="custom"?i(a[0]):k==="baseColors"&&(Object.entries(r).find(([C,O])=>Array.isArray(O)?O.includes(o):O===o?C:null)||i(xi.black)),e.preventDefault(),e.stopPropagation(),!0}if(uO({e,colorObj:m,onChange:i,palette:r,customColors:a,setActiveColorPickerSection:s,activeShade:d}))return!0;if(t==="shades"&&m){let{shade:g}=m,h=Vv(e.key,g,nl);if(h!==void 0)return i(r[m.colorName][h]),!0}if(t==="baseColors"&&m){let{colorName:g}=m,h=Object.keys(r),b=h.indexOf(g),y=Vv(e.key,b,h.length);if(y!==void 0){let T=h[y],k=r[T];return i(Array.isArray(k)?k[d]:k),!0}}if(t==="custom"){let g=a.indexOf(o),h=Vv(e.key,g,a.length);if(h!==void 0){let b=a[h];return i(b),!0}}return!1};v();var b_=w(M(),1),pO=({children:e})=>(0,b_.jsx)("div",{className:"color-picker__heading",children:e}),ic=pO;var No=w(M(),1),x_=({color:e,onChange:t,label:r,type:o,elements:i,palette:a,updateData:s,children:c,onEyeDropperToggle:d,onEscape:u})=>{let[f]=Ia.default.useState(()=>o==="canvasBackground"?[]:d_(i,o,a)),[m,g]=Ve(an),h=Ca({color:e,palette:a});(0,Ia.useEffect)(()=>{if(!m){let k=Yv({color:e,palette:a}),I=k&&!f.includes(e);g(I?"hex":k?"custom":h?.shade!=null?"shades":"baseColors")}},[m,e,a,g,h,f]);let[b,y]=(0,Ia.useState)(h?.shade??(o==="elementBackground"?ES:yS));(0,Ia.useEffect)(()=>{h?.shade!=null&&y(h.shade);let k=I=>{I.key===R.ALT&&d(!1)};return document.addEventListener("keyup",k,{capture:!0}),()=>{document.removeEventListener("keyup",k,{capture:!0})}},[h,d]);let T=Ia.default.useRef(null);return(0,No.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":E("labels.colorPicker"),children:(0,No.jsxs)("div",{ref:T,onKeyDown:k=>{h_({event:k,activeColorPickerSection:m,palette:a,color:e,onChange:t,onEyeDropperToggle:d,customColors:f,setActiveColorPickerSection:g,updateData:s,activeShade:b,onEscape:u})&&(k.preventDefault(),k.stopPropagation())},className:"color-picker-content properties-content",tabIndex:-1,children:[!!f.length&&(0,No.jsxs)("div",{children:[(0,No.jsx)(ic,{children:E("colorPicker.mostUsedCustomColors")}),(0,No.jsx)(g_,{colors:f,color:e,label:E("colorPicker.mostUsedCustomColors"),onChange:t})]}),(0,No.jsxs)("div",{children:[(0,No.jsx)(ic,{children:E("colorPicker.colors")}),(0,No.jsx)(f_,{color:e,label:r,palette:a,onChange:t,activeShade:b})]}),(0,No.jsxs)("div",{children:[(0,No.jsx)(ic,{children:E("colorPicker.shades")}),(0,No.jsx)(p_,{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 cr(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e?.(i),r===!1||!i.defaultPrevented)return t?.(i)}}v();var v_=w(j());function fO(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Xv(...e){return t=>e.forEach(r=>fO(r,t))}function Nr(...e){return(0,v_.useCallback)(Xv(...e),e)}v();var Rn=w(j());function qn(e,t=[]){let r=[];function o(a,s){let c=(0,Rn.createContext)(s),d=r.length;r=[...r,s];function u(m){let{scope:g,children:h,...b}=m,y=g?.[e][d]||c,T=(0,Rn.useMemo)(()=>b,Object.values(b));return(0,Rn.createElement)(y.Provider,{value:T},h)}function f(m,g){let h=g?.[e][d]||c,b=(0,Rn.useContext)(h);if(b)return b;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${a}\``)}return u.displayName=a+"Provider",[u,f]}let i=()=>{let a=r.map(s=>(0,Rn.createContext)(s));return function(c){let d=c?.[e]||a;return(0,Rn.useMemo)(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return i.scopeName=e,[o,gO(i,...t)]}function gO(...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:u})=>{let m=d(a)[`__scope${u}`];return{...c,...m}},{});return(0,Rn.useMemo)(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}v();var nr=w(j());v();var ac=w(j()),y_=w(Zn());v();var Yt=w(j());var _a=(0,Yt.forwardRef)((e,t)=>{let{children:r,...o}=e,i=Yt.Children.toArray(r),a=i.find(bO);if(a){let s=a.props.children,c=i.map(d=>d===a?Yt.Children.count(s)>1?Yt.Children.only(null):(0,Yt.isValidElement)(s)?s.props.children:null:d);return(0,Yt.createElement)(Zv,Ye({},o,{ref:t}),(0,Yt.isValidElement)(s)?(0,Yt.cloneElement)(s,void 0,c):null)}return(0,Yt.createElement)(Zv,Ye({},o,{ref:t}),r)});_a.displayName="Slot";var Zv=(0,Yt.forwardRef)((e,t)=>{let{children:r,...o}=e;return(0,Yt.isValidElement)(r)?(0,Yt.cloneElement)(r,{...xO(o,r.props),ref:Xv(t,r.ref)}):Yt.Children.count(r)>1?Yt.Children.only(null):null});Zv.displayName="SlotClone";var hO=({children:e})=>(0,Yt.createElement)(Yt.Fragment,null,e);function bO(e){return(0,Yt.isValidElement)(e)&&e.type===hO}function xO(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 vO=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],jt=vO.reduce((e,t)=>{let r=(0,ac.forwardRef)((o,i)=>{let{asChild:a,...s}=o,c=a?_a:t;return(0,ac.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,ac.createElement)(c,Ye({},s,{ref:i}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function E_(e,t){e&&(0,y_.flushSync)(()=>e.dispatchEvent(t))}v();var lc=w(j());function io(e){let t=(0,lc.useRef)(e);return(0,lc.useEffect)(()=>{t.current=e}),(0,lc.useMemo)(()=>(...r)=>{var o;return(o=t.current)===null||o===void 0?void 0:o.call(t,...r)},[])}v();var w_=w(j());function S_(e,t=globalThis?.document){let r=io(e);(0,w_.useEffect)(()=>{let o=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)},[r,t])}var qv="dismissableLayer.update",yO="dismissableLayer.pointerDownOutside",EO="dismissableLayer.focusOutside",T_,wO=(0,nr.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I_=(0,nr.forwardRef)((e,t)=>{var r;let{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:c,onDismiss:d,...u}=e,f=(0,nr.useContext)(wO),[m,g]=(0,nr.useState)(null),h=(r=m?.ownerDocument)!==null&&r!==void 0?r:globalThis?.document,[,b]=(0,nr.useState)({}),y=Nr(t,D=>g(D)),T=Array.from(f.layers),[k]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),I=T.indexOf(k),C=m?T.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,z=C>=I,L=SO(D=>{let V=D.target,U=[...f.branches].some(Q=>Q.contains(V));!z||U||(a?.(D),c?.(D),D.defaultPrevented||d?.())},h),F=TO(D=>{let V=D.target;[...f.branches].some(Q=>Q.contains(V))||(s?.(D),c?.(D),D.defaultPrevented||d?.())},h);return S_(D=>{C===f.layers.size-1&&(i?.(D),!D.defaultPrevented&&d&&(D.preventDefault(),d()))},h),(0,nr.useEffect)(()=>{if(m)return o&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(T_=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),C_(),()=>{o&&f.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=T_)}},[m,h,o,f]),(0,nr.useEffect)(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),C_())},[m,f]),(0,nr.useEffect)(()=>{let D=()=>b({});return document.addEventListener(qv,D),()=>document.removeEventListener(qv,D)},[]),(0,nr.createElement)(jt.div,Ye({},u,{ref:y,style:{pointerEvents:O?z?"auto":"none":void 0,...e.style},onFocusCapture:cr(e.onFocusCapture,F.onFocusCapture),onBlurCapture:cr(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:cr(e.onPointerDownCapture,L.onPointerDownCapture)}))});function SO(e,t=globalThis?.document){let r=io(e),o=(0,nr.useRef)(!1),i=(0,nr.useRef)(()=>{});return(0,nr.useEffect)(()=>{let a=c=>{if(c.target&&!o.current){let u=function(){__(yO,r,d,{discrete:!0})},d={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=u,t.addEventListener("click",i.current,{once:!0})):u()}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 TO(e,t=globalThis?.document){let r=io(e),o=(0,nr.useRef)(!1);return(0,nr.useEffect)(()=>{let i=a=>{a.target&&!o.current&&__(EO,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 C_(){let e=new CustomEvent(qv);document.dispatchEvent(e)}function __(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?E_(i,a):i.dispatchEvent(a)}v();var k_=w(j()),jv=0;function P_(){(0,k_.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:A_()),document.body.insertAdjacentElement("beforeend",(t=r[1])!==null&&t!==void 0?t:A_()),jv++,()=>{jv===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(o=>o.remove()),jv--}},[])}function A_(){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 wo=w(j());var Jv="focusScope.autoFocusOnMount",Qv="focusScope.autoFocusOnUnmount",M_={bubbles:!1,cancelable:!0};var N_=(0,wo.forwardRef)((e,t)=>{let{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...s}=e,[c,d]=(0,wo.useState)(null),u=io(i),f=io(a),m=(0,wo.useRef)(null),g=Nr(t,y=>d(y)),h=(0,wo.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,wo.useEffect)(()=>{if(o){let y=function(k){if(h.paused||!c)return;let I=k.target;c.contains(I)?m.current=I:kl(m.current,{select:!0})},T=function(k){h.paused||!c||c.contains(k.relatedTarget)||kl(m.current,{select:!0})};return document.addEventListener("focusin",y),document.addEventListener("focusout",T),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",T)}}},[o,c,h.paused]),(0,wo.useEffect)(()=>{if(c){R_.add(h);let y=document.activeElement;if(!c.contains(y)){let k=new CustomEvent(Jv,M_);c.addEventListener(Jv,u),c.dispatchEvent(k),k.defaultPrevented||(CO(PO(O_(c)),{select:!0}),document.activeElement===y&&kl(c))}return()=>{c.removeEventListener(Jv,u),setTimeout(()=>{let k=new CustomEvent(Qv,M_);c.addEventListener(Qv,f),c.dispatchEvent(k),k.defaultPrevented||kl(y??document.body,{select:!0}),c.removeEventListener(Qv,f),R_.remove(h)},0)}}},[c,u,f,h]);let b=(0,wo.useCallback)(y=>{if(!r&&!o||h.paused)return;let T=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,k=document.activeElement;if(T&&k){let I=y.currentTarget,[C,O]=IO(I);C&&O?!y.shiftKey&&k===O?(y.preventDefault(),r&&kl(C,{select:!0})):y.shiftKey&&k===C&&(y.preventDefault(),r&&kl(O,{select:!0})):k===I&&y.preventDefault()}},[r,o,h.paused]);return(0,wo.createElement)(jt.div,Ye({tabIndex:-1},s,{ref:g,onKeyDown:b}))});function CO(e,{select:t=!1}={}){let r=document.activeElement;for(let o of e)if(kl(o,{select:t}),document.activeElement!==r)return}function IO(e){let t=O_(e),r=L_(t,e),o=L_(t.reverse(),e);return[r,o]}function O_(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 L_(e,t){for(let r of e)if(!_O(r,{upTo:t}))return r}function _O(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 AO(e){return e instanceof HTMLInputElement&&"select"in e}function kl(e,{select:t=!1}={}){if(e&&e.focus){let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&AO(e)&&t&&e.select()}}var R_=kO();function kO(){let e=[];return{add(t){let r=e[0];t!==r&&r?.pause(),e=D_(e,t),e.unshift(t)},remove(t){var r;e=D_(e,t),(r=e[0])===null||r===void 0||r.resume()}}}function D_(e,t){let r=[...e],o=r.indexOf(t);return o!==-1&&r.splice(o,1),r}function PO(e){return e.filter(t=>t.tagName!=="A")}v();var Gf=w(j());v();var F_=w(j()),ln=globalThis?.document?F_.useLayoutEffect:()=>{};var MO=Gf.useId||(()=>{}),LO=0;function sc(e){let[t,r]=Gf.useState(MO());return ln(()=>{e||r(o=>o??String(LO++))},[e]),e||(t?`radix-${t}`:"")}v();var Lt=w(j());v();v();v();function Ml(e){return e.split("-")[0]}function am(e){return e.split("-")[1]}function dc(e){return["top","bottom"].includes(Ml(e))?"x":"y"}function ty(e){return e==="y"?"height":"width"}function B_(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=dc(t),d=ty(c),u=o[d]/2-i[d]/2,f=c==="x",m;switch(Ml(t)){case"top":m={x:a,y:o.y-i.height};break;case"bottom":m={x:a,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:s};break;case"left":m={x:o.x-i.width,y:s};break;default:m={x:o.x,y:o.y}}switch(am(t)){case"start":m[c]-=u*(r&&f?-1:1);break;case"end":m[c]+=u*(r&&f?-1:1)}return m}var U_=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:u,y:f}=B_(d,o,c),m=o,g={},h=0;for(let b=0;b<a.length;b++){let{name:y,fn:T}=a[b],{x:k,y:I,data:C,reset:O}=await T({x:u,y:f,initialPlacement:o,placement:m,strategy:i,middlewareData:g,rects:d,platform:s,elements:{reference:e,floating:t}});u=k??u,f=I??f,g={...g,[y]:{...g[y],...C}},O&&h<=50&&(h++,typeof O=="object"&&(O.placement&&(m=O.placement),O.rects&&(d=O.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:i}):O.rects),{x:u,y:f}=B_(d,m,c)),b=-1)}return{x:u,y:f,placement:m,strategy:i,middlewareData:g}};function G_(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 im(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function cc(e,t){var r;t===void 0&&(t={});let{x:o,y:i,platform:a,rects:s,elements:c,strategy:d}=e,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:m="floating",altBoundary:g=!1,padding:h=0}=t,b=G_(h),y=c[g?m==="floating"?"reference":"floating":m],T=im(await a.getClippingRect({element:(r=await(a.isElement==null?void 0:a.isElement(y)))==null||r?y:y.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(c.floating)),boundary:u,rootBoundary:f,strategy:d})),k=im(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({rect:m==="floating"?{...s.floating,x:o,y:i}:s.reference,offsetParent:await(a.getOffsetParent==null?void 0:a.getOffsetParent(c.floating)),strategy:d}):s[m]);return{top:T.top-k.top+b.top,bottom:k.bottom-T.bottom+b.bottom,left:T.left-k.left+b.left,right:k.right-T.right+b.right}}var RO=Math.min,Pl=Math.max;function ey(e,t,r){return Pl(e,RO(t,r))}var Kf=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 u=G_(o),f={x:i,y:a},m=dc(s),g=am(s),h=ty(m),b=await d.getDimensions(r),y=m==="y"?"top":"left",T=m==="y"?"bottom":"right",k=c.reference[h]+c.reference[m]-f[m]-c.floating[h],I=f[m]-c.reference[m],C=await(d.getOffsetParent==null?void 0:d.getOffsetParent(r)),O=C?m==="y"?C.clientHeight||0:C.clientWidth||0:0;O===0&&(O=c.floating[h]);let z=k/2-I/2,L=u[y],F=O-b[h]-u[T],D=O/2-b[h]/2+z,V=ey(L,D,F),U=(g==="start"?u[y]:u[T])>0&&D!==V&&c.reference[h]<=c.floating[h];return{[m]:f[m]-(U?D<L?L-D:F-D:0),data:{[m]:V,centerOffset:D-V}}}}),DO={left:"right",right:"left",bottom:"top",top:"bottom"};function Wf(e){return e.replace(/left|right|bottom|top/g,t=>DO[t])}function NO(e,t,r){r===void 0&&(r=!1);let o=am(e),i=dc(e),a=ty(i),s=i==="x"?o===(r?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(s=Wf(s)),{main:s,cross:Wf(s)}}var OO={start:"end",end:"start"};function z_(e){return e.replace(/start|end/g,t=>OO[t])}var W_=["top","right","bottom","left"],LK=W_.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);var ry=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:u=!0,crossAxis:f=!0,fallbackPlacements:m,fallbackStrategy:g="bestFit",flipAlignment:h=!0,...b}=e,y=Ml(o),T=m||(y===s||!h?[Wf(s)]:function(D){let V=Wf(D);return[z_(D),V,z_(V)]}(s)),k=[s,...T],I=await cc(t,b),C=[],O=((r=i.flip)==null?void 0:r.overflows)||[];if(u&&C.push(I[y]),f){let{main:D,cross:V}=NO(o,a,await(c.isRTL==null?void 0:c.isRTL(d.floating)));C.push(I[D],I[V])}if(O=[...O,{placement:o,overflows:C}],!C.every(D=>D<=0)){var z,L;let D=((z=(L=i.flip)==null?void 0:L.index)!=null?z:0)+1,V=k[D];if(V)return{data:{index:D,overflows:O},reset:{placement:V}};let U="bottom";switch(g){case"bestFit":{var F;let Q=(F=O.map(me=>[me,me.overflows.filter(K=>K>0).reduce((K,se)=>K+se,0)]).sort((me,K)=>me[1]-K[1])[0])==null?void 0:F[0].placement;Q&&(U=Q);break}case"initialPlacement":U=s}if(o!==U)return{reset:{placement:U}}}return{}}}};function $_(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function H_(e){return W_.some(t=>e[t]>=0)}var oy=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=$_(await cc(o,{...r,elementContext:"reference"}),i.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:H_(a)}}}case"escaped":{let a=$_(await cc(o,{...r,altBoundary:!0}),i.floating);return{data:{escapedOffsets:a,escaped:H_(a)}}}default:return{}}}}},ny=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:u}=a,f=await(d.isRTL==null?void 0:d.isRTL(u.floating)),m=Ml(c),g=am(c),h=dc(c)==="x",b=["left","top"].includes(m)?-1:1,y=f&&h?-1:1,T=typeof s=="function"?s(a):s,{mainAxis:k,crossAxis:I,alignmentAxis:C}=typeof T=="number"?{mainAxis:T,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...T};return g&&typeof C=="number"&&(I=g==="end"?-1*C:C),h?{x:I*y,y:k*b}:{x:k*b,y:I*y}}(t,e);return{x:r+i.x,y:o+i.y,data:i}}}};function K_(e){return e==="x"?"y":"x"}var iy=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:k,y:I}=T;return{x:k,y:I}}},...d}=e,u={x:r,y:o},f=await cc(t,d),m=dc(Ml(i)),g=K_(m),h=u[m],b=u[g];if(a){let T=m==="y"?"bottom":"right";h=ey(h+f[m==="y"?"top":"left"],h,h-f[T])}if(s){let T=g==="y"?"bottom":"right";b=ey(b+f[g==="y"?"top":"left"],b,b-f[T])}let y=c.fn({...t,[m]:h,[g]:b});return{...y,data:{x:y.x-r,y:y.y-o}}}}},ay=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:u=!0}=e,f={x:r,y:o},m=dc(i),g=K_(m),h=f[m],b=f[g],y=typeof c=="function"?c({...a,placement:i}):c,T=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(d){let z=m==="y"?"height":"width",L=a.reference[m]-a.floating[z]+T.mainAxis,F=a.reference[m]+a.reference[z]-T.mainAxis;h<L?h=L:h>F&&(h=F)}if(u){var k,I,C,O;let z=m==="y"?"width":"height",L=["top","left"].includes(Ml(i)),F=a.reference[g]-a.floating[z]+(L&&(k=(I=s.offset)==null?void 0:I[g])!=null?k:0)+(L?0:T.crossAxis),D=a.reference[g]+a.reference[z]+(L?0:(C=(O=s.offset)==null?void 0:O[g])!=null?C:0)-(L?T.crossAxis:0);b<F?b=F:b>D&&(b=D)}return{[m]:h,[g]:b}}}},ly=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 cc(t,c),u=Ml(r),f=am(r),m,g;u==="top"||u==="bottom"?(m=u,g=f===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?"start":"end")?"left":"right"):(g=u,m=f==="end"?"top":"bottom");let h=Pl(d.left,0),b=Pl(d.right,0),y=Pl(d.top,0),T=Pl(d.bottom,0),k={availableHeight:o.floating.height-(["left","right"].includes(r)?2*(y!==0||T!==0?y+T:Pl(d.top,d.bottom)):d[m]),availableWidth:o.floating.width-(["top","bottom"].includes(r)?2*(h!==0||b!==0?h+b:Pl(d.left,d.right)):d[g])},I=await i.getDimensions(a.floating);s?.({...t,...k});let C=await i.getDimensions(a.floating);return I.width!==C.width||I.height!==C.height?{reset:{rects:!0}}:{}}}};function j_(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function Fi(e){if(e==null)return window;if(!j_(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function sm(e){return Fi(e).getComputedStyle(e)}function Ni(e){return j_(e)?"":e?(e.nodeName||"").toLowerCase():""}function J_(){let e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function jn(e){return e instanceof Fi(e).HTMLElement}function ka(e){return e instanceof Fi(e).Element}function cy(e){return typeof ShadowRoot>"u"?!1:e instanceof Fi(e).ShadowRoot||e instanceof ShadowRoot}function Xf(e){let{overflow:t,overflowX:r,overflowY:o}=sm(e);return/auto|scroll|overlay|hidden/.test(t+o+r)}function FO(e){return["table","td","th"].includes(Ni(e))}function Y_(e){let t=/firefox/i.test(J_()),r=sm(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 Q_(){return!/^((?!chrome|android).)*safari/i.test(J_())}var V_=Math.min,lm=Math.max,Yf=Math.round;function Oi(e,t,r){var o,i,a,s;t===void 0&&(t=!1),r===void 0&&(r=!1);let c=e.getBoundingClientRect(),d=1,u=1;t&&jn(e)&&(d=e.offsetWidth>0&&Yf(c.width)/e.offsetWidth||1,u=e.offsetHeight>0&&Yf(c.height)/e.offsetHeight||1);let f=ka(e)?Fi(e):window,m=!Q_()&&r,g=(c.left+(m&&(o=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?o:0))/d,h=(c.top+(m&&(a=(s=f.visualViewport)==null?void 0:s.offsetTop)!=null?a:0))/u,b=c.width/d,y=c.height/u;return{width:b,height:y,top:h,right:g+b,bottom:h+y,left:g,x:g,y:h}}function Aa(e){return(t=e,(t instanceof Fi(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function Zf(e){return ka(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function eA(e){return Oi(Aa(e)).left+Zf(e).scrollLeft}function BO(e,t,r){let o=jn(t),i=Aa(t),a=Oi(e,o&&function(d){let u=Oi(d);return Yf(u.width)!==d.offsetWidth||Yf(u.height)!==d.offsetHeight}(t),r==="fixed"),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if(o||!o&&r!=="fixed")if((Ni(t)!=="body"||Xf(i))&&(s=Zf(t)),jn(t)){let d=Oi(t,!0);c.x=d.x+t.clientLeft,c.y=d.y+t.clientTop}else i&&(c.x=eA(i));return{x:a.left+s.scrollLeft-c.x,y:a.top+s.scrollTop-c.y,width:a.width,height:a.height}}function tA(e){return Ni(e)==="html"?e:e.assignedSlot||e.parentNode||(cy(e)?e.host:null)||Aa(e)}function X_(e){return jn(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function sy(e){let t=Fi(e),r=X_(e);for(;r&&FO(r)&&getComputedStyle(r).position==="static";)r=X_(r);return r&&(Ni(r)==="html"||Ni(r)==="body"&&getComputedStyle(r).position==="static"&&!Y_(r))?t:r||function(o){let i=tA(o);for(cy(i)&&(i=i.host);jn(i)&&!["html","body"].includes(Ni(i));){if(Y_(i))return i;i=i.parentNode}return null}(e)||t}function Z_(e){if(jn(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=Oi(e);return{width:t.width,height:t.height}}function rA(e){let t=tA(e);return["html","body","#document"].includes(Ni(t))?e.ownerDocument.body:jn(t)&&Xf(t)?t:rA(t)}function Vf(e,t){var r;t===void 0&&(t=[]);let o=rA(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=Fi(o),s=i?[a].concat(a.visualViewport||[],Xf(o)?o:[]):o,c=t.concat(s);return i?c:c.concat(Vf(s))}function q_(e,t,r){return t==="viewport"?im(function(o,i){let a=Fi(o),s=Aa(o),c=a.visualViewport,d=s.clientWidth,u=s.clientHeight,f=0,m=0;if(c){d=c.width,u=c.height;let g=Q_();(g||!g&&i==="fixed")&&(f=c.offsetLeft,m=c.offsetTop)}return{width:d,height:u,x:f,y:m}}(e,r)):ka(t)?function(o,i){let a=Oi(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):im(function(o){var i;let a=Aa(o),s=Zf(o),c=(i=o.ownerDocument)==null?void 0:i.body,d=lm(a.scrollWidth,a.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),u=lm(a.scrollHeight,a.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),f=-s.scrollLeft+eA(o),m=-s.scrollTop;return sm(c||a).direction==="rtl"&&(f+=lm(a.clientWidth,c?c.clientWidth:0)-d),{width:d,height:u,x:f,y:m}}(Aa(e)))}function zO(e){let t=Vf(e),r=["absolute","fixed"].includes(sm(e).position)&&jn(e)?sy(e):e;return ka(r)?t.filter(o=>ka(o)&&function(i,a){let s=a.getRootNode==null?void 0:a.getRootNode();if(i.contains(a))return!0;if(s&&cy(s)){let c=a;do{if(c&&i===c)return!0;c=c.parentNode||c.host}while(c)}return!1}(o,r)&&Ni(o)!=="body"):[]}var $O={getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:o,strategy:i}=e,a=[...r==="clippingAncestors"?zO(t):[].concat(r),o],s=a[0],c=a.reduce((d,u)=>{let f=q_(t,u,i);return d.top=lm(f.top,d.top),d.right=V_(f.right,d.right),d.bottom=V_(f.bottom,d.bottom),d.left=lm(f.left,d.left),d},q_(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=jn(r),a=Aa(r);if(r===a)return t;let s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if((i||!i&&o!=="fixed")&&((Ni(r)!=="body"||Xf(a))&&(s=Zf(r)),jn(r))){let d=Oi(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:ka,getDimensions:Z_,getOffsetParent:sy,getDocumentElement:Aa,getElementRects:e=>{let{reference:t,floating:r,strategy:o}=e;return{reference:BO(t,sy(r),o),floating:{...Z_(r),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>sm(e).direction==="rtl"};function oA(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,u=a&&!c,f=d||u?[...ka(e)?Vf(e):[],...Vf(t)]:[];f.forEach(b=>{d&&b.addEventListener("scroll",r,{passive:!0}),u&&b.addEventListener("resize",r)});let m,g=null;if(s){let b=!0;g=new ResizeObserver(()=>{b||r(),b=!1}),ka(e)&&!c&&g.observe(e),g.observe(t)}let h=c?Oi(e):null;return c&&function b(){let y=Oi(e);!h||y.x===h.x&&y.y===h.y&&y.width===h.width&&y.height===h.height||r(),h=y,m=requestAnimationFrame(b)}(),r(),()=>{var b;f.forEach(y=>{d&&y.removeEventListener("scroll",r),u&&y.removeEventListener("resize",r)}),(b=g)==null||b.disconnect(),g=null,c&&cancelAnimationFrame(m)}}var nA=(e,t,r)=>U_(e,t,{platform:$O,...r});var Or=w(j()),qf=w(j()),iA=w(Zn()),dy=typeof document<"u"?qf.useLayoutEffect:qf.useEffect;function my(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(!my(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)&&!my(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function HO(e){let t=Or.useRef(e);return dy(()=>{t.current=e}),t}function aA(e){let{middleware:t,placement:r="bottom",strategy:o="absolute",whileElementsMounted:i}=e===void 0?{}:e,a=Or.useRef(null),s=Or.useRef(null),c=HO(i),d=Or.useRef(null),[u,f]=Or.useState({x:null,y:null,strategy:o,placement:r,middlewareData:{}}),[m,g]=Or.useState(t);my(m?.map(C=>{let{options:O}=C;return O}),t?.map(C=>{let{options:O}=C;return O}))||g(t);let h=Or.useCallback(()=>{!a.current||!s.current||nA(a.current,s.current,{middleware:m,placement:r,strategy:o}).then(C=>{b.current&&iA.flushSync(()=>{f(C)})})},[m,r,o]);dy(()=>{b.current&&h()},[h]);let b=Or.useRef(!1);dy(()=>(b.current=!0,()=>{b.current=!1}),[]);let y=Or.useCallback(()=>{if(typeof d.current=="function"&&(d.current(),d.current=null),a.current&&s.current)if(c.current){let C=c.current(a.current,s.current,h);d.current=C}else h()},[h,c]),T=Or.useCallback(C=>{a.current=C,y()},[y]),k=Or.useCallback(C=>{s.current=C,y()},[y]),I=Or.useMemo(()=>({reference:a,floating:s}),[]);return Or.useMemo(()=>({...u,update:h,refs:I,reference:T,floating:k}),[u,h,I,T,k])}var lA=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?Kf({element:t.current,padding:r}).fn(i):{}:t?Kf({element:t,padding:r}).fn(i):{}}}};v();var cm=w(j());var UO=(0,cm.forwardRef)((e,t)=>{let{children:r,width:o=10,height:i=5,...a}=e;return(0,cm.createElement)(jt.svg,Ye({},a,{ref:t,width:o,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),e.asChild?r:(0,cm.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),sA=UO;v();var cA=w(j());function dA(e){let[t,r]=(0,cA.useState)(void 0);return ln(()=>{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,u=Array.isArray(d)?d[0]:d;s=u.inlineSize,c=u.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 mA="Popper",[uy,py]=qn(mA),[GO,uA]=uy(mA),WO=e=>{let{__scopePopper:t,children:r}=e,[o,i]=(0,Lt.useState)(null);return(0,Lt.createElement)(GO,{scope:t,anchor:o,onAnchorChange:i},r)},KO="PopperAnchor",YO=(0,Lt.forwardRef)((e,t)=>{let{__scopePopper:r,virtualRef:o,...i}=e,a=uA(KO,r),s=(0,Lt.useRef)(null),c=Nr(t,s);return(0,Lt.useEffect)(()=>{a.onAnchorChange(o?.current||s.current)}),o?null:(0,Lt.createElement)(jt.div,Ye({},i,{ref:c}))}),jf="PopperContent",[VO,XO]=uy(jf),[ZO,qO]=uy(jf,{hasParent:!1,positionUpdateFns:new Set}),jO=(0,Lt.forwardRef)((e,t)=>{var r,o,i,a,s,c,d,u;let{__scopePopper:f,side:m="bottom",sideOffset:g=0,align:h="center",alignOffset:b=0,arrowPadding:y=0,collisionBoundary:T=[],collisionPadding:k=0,sticky:I="partial",hideWhenDetached:C=!1,avoidCollisions:O=!0,onPlaced:z,...L}=e,F=uA(jf,f),[D,V]=(0,Lt.useState)(null),U=Nr(t,qi=>V(qi)),[Q,me]=(0,Lt.useState)(null),K=dA(Q),se=(r=K?.width)!==null&&r!==void 0?r:0,be=(o=K?.height)!==null&&o!==void 0?o:0,_e=m+(h!=="center"?"-"+h:""),nt=typeof k=="number"?k:{top:0,right:0,bottom:0,left:0,...k},Ee=Array.isArray(T)?T:[T],ue=Ee.length>0,G={padding:nt,boundary:Ee.filter(r9),altBoundary:ue},{reference:Y,floating:oe,strategy:ie,x:le,y:de,placement:pe,middlewareData:ye,update:Ct}=aA({strategy:"fixed",placement:_e,whileElementsMounted:oA,middleware:[o9(),ny({mainAxis:g+be,alignmentAxis:b}),O?iy({mainAxis:!0,crossAxis:!1,limiter:I==="partial"?ay():void 0,...G}):void 0,Q?lA({element:Q,padding:y}):void 0,O?ry({...G}):void 0,ly({...G,apply:({elements:qi,availableWidth:Xa,availableHeight:rb})=>{qi.floating.style.setProperty("--radix-popper-available-width",`${Xa}px`),qi.floating.style.setProperty("--radix-popper-available-height",`${rb}px`)}}),n9({arrowWidth:se,arrowHeight:be}),C?oy({strategy:"referenceHidden"}):void 0].filter(t9)});ln(()=>{Y(F.anchor)},[Y,F.anchor]);let vt=le!==null&&de!==null,[Ft,Et]=pA(pe),er=io(z);ln(()=>{vt&&er?.()},[vt,er]);let Jr=(i=ye.arrow)===null||i===void 0?void 0:i.x,si=(a=ye.arrow)===null||a===void 0?void 0:a.y,ar=((s=ye.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[nu,tb]=(0,Lt.useState)();ln(()=>{D&&tb(window.getComputedStyle(D).zIndex)},[D]);let{hasParent:Ya,positionUpdateFns:wr}=qO(jf,f),vn=!Ya;(0,Lt.useLayoutEffect)(()=>{if(!vn)return wr.add(Ct),()=>{wr.delete(Ct)}},[vn,wr,Ct]),ln(()=>{vn&&vt&&Array.from(wr).reverse().forEach(qi=>requestAnimationFrame(qi))},[vn,vt,wr]);let Va={"data-side":Ft,"data-align":Et,...L,ref:U,style:{...L.style,animation:vt?void 0:"none",opacity:(c=ye.hide)!==null&&c!==void 0&&c.referenceHidden?0:void 0}};return(0,Lt.createElement)("div",{ref:oe,"data-radix-popper-content-wrapper":"",style:{position:ie,left:0,top:0,transform:vt?`translate3d(${Math.round(le)}px, ${Math.round(de)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:nu,"--radix-popper-transform-origin":[(d=ye.transformOrigin)===null||d===void 0?void 0:d.x,(u=ye.transformOrigin)===null||u===void 0?void 0:u.y].join(" ")},dir:e.dir},(0,Lt.createElement)(VO,{scope:f,placedSide:Ft,onArrowChange:me,arrowX:Jr,arrowY:si,shouldHideArrow:ar},vn?(0,Lt.createElement)(ZO,{scope:f,hasParent:!0,positionUpdateFns:wr},(0,Lt.createElement)(jt.div,Va)):(0,Lt.createElement)(jt.div,Va)))}),JO="PopperArrow",QO={top:"bottom",right:"left",bottom:"top",left:"right"},e9=(0,Lt.forwardRef)(function(t,r){let{__scopePopper:o,...i}=t,a=XO(JO,o),s=QO[a.placedSide];return(0,Lt.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,Lt.createElement)(sA,Ye({},i,{ref:r,style:{...i.style,display:"block"}})))});function t9(e){return e!==void 0}function r9(e){return e!==null}var o9=()=>({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`),{}}}),n9=e=>({name:"transformOrigin",options:e,fn(t){var r,o,i,a,s;let{placement:c,rects:d,middlewareData:u}=t,m=((r=u.arrow)===null||r===void 0?void 0:r.centerOffset)!==0,g=m?0:e.arrowWidth,h=m?0:e.arrowHeight,[b,y]=pA(c),T={start:"0%",center:"50%",end:"100%"}[y],k=((o=(i=u.arrow)===null||i===void 0?void 0:i.x)!==null&&o!==void 0?o:0)+g/2,I=((a=(s=u.arrow)===null||s===void 0?void 0:s.y)!==null&&a!==void 0?a:0)+h/2,C="",O="";return b==="bottom"?(C=m?T:`${k}px`,O=`${-h}px`):b==="top"?(C=m?T:`${k}px`,O=`${d.floating.height+h}px`):b==="right"?(C=`${-h}px`,O=m?T:`${I}px`):b==="left"&&(C=`${d.floating.width+h}px`,O=m?T:`${I}px`),{data:{x:C,y:O}}}});function pA(e){let[t,r="center"]=e.split("-");return[t,r]}var fA=WO,gA=YO,hA=jO,bA=e9;v();var Jf=w(j()),xA=w(Zn());var vA=(0,Jf.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?xA.default.createPortal((0,Jf.createElement)(jt.div,Ye({},i,{ref:t})),o):null});v();var Ur=w(j()),yA=w(Zn());function i9(e,t){return(0,Ur.useReducer)((r,o)=>{let i=t[r][o];return i??r},e)}var mc=e=>{let{present:t,children:r}=e,o=a9(t),i=typeof r=="function"?r({present:o.isPresent}):Ur.Children.only(r),a=Nr(o.ref,i.ref);return typeof r=="function"||o.isPresent?(0,Ur.cloneElement)(i,{ref:a}):null};mc.displayName="Presence";function a9(e){let[t,r]=(0,Ur.useState)(),o=(0,Ur.useRef)({}),i=(0,Ur.useRef)(e),a=(0,Ur.useRef)("none"),s=e?"mounted":"unmounted",[c,d]=i9(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Ur.useEffect)(()=>{let u=Qf(o.current);a.current=c==="mounted"?u:"none"},[c]),ln(()=>{let u=o.current,f=i.current;if(f!==e){let g=a.current,h=Qf(u);e?d("MOUNT"):h==="none"||u?.display==="none"?d("UNMOUNT"):d(f&&g!==h?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),ln(()=>{if(t){let u=m=>{let h=Qf(o.current).includes(m.animationName);m.target===t&&h&&(0,yA.flushSync)(()=>d("ANIMATION_END"))},f=m=>{m.target===t&&(a.current=Qf(o.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",u),t.addEventListener("animationend",u),()=>{t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",u),t.removeEventListener("animationend",u)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:(0,Ur.useCallback)(u=>{u&&(o.current=getComputedStyle(u)),r(u)},[])}}function Qf(e){return e?.animationName||"none"}v();var Pa=w(j());function uc({prop:e,defaultProp:t,onChange:r=()=>{}}){let[o,i]=l9({defaultProp:t,onChange:r}),a=e!==void 0,s=a?e:o,c=io(r),d=(0,Pa.useCallback)(u=>{if(a){let m=typeof u=="function"?u(e):u;m!==e&&c(m)}else i(u)},[a,e,i,c]);return[s,d]}function l9({defaultProp:e,onChange:t}){let r=(0,Pa.useState)(e),[o]=r,i=(0,Pa.useRef)(o),a=io(t);return(0,Pa.useEffect)(()=>{i.current!==o&&(a(o),i.current=o)},[o,i,a]),r}v();var s9=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},pc=new WeakMap,eg=new WeakMap,tg={},fy=0,EA=function(e){return e&&(e.host||EA(e.parentNode))},c9=function(e,t){return t.map(function(r){if(e.contains(r))return r;var o=EA(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})},d9=function(e,t,r,o){var i=c9(t,Array.isArray(e)?e:[e]);tg[r]||(tg[r]=new WeakMap);var a=tg[r],s=[],c=new Set,d=new Set(i),u=function(m){!m||c.has(m)||(c.add(m),u(m.parentNode))};i.forEach(u);var f=function(m){!m||d.has(m)||Array.prototype.forEach.call(m.children,function(g){if(c.has(g))f(g);else try{var h=g.getAttribute(o),b=h!==null&&h!=="false",y=(pc.get(g)||0)+1,T=(a.get(g)||0)+1;pc.set(g,y),a.set(g,T),s.push(g),y===1&&b&&eg.set(g,!0),T===1&&g.setAttribute(r,"true"),b||g.setAttribute(o,"true")}catch(k){console.error("aria-hidden: cannot operate on ",g,k)}})};return f(t),c.clear(),fy++,function(){s.forEach(function(m){var g=pc.get(m)-1,h=a.get(m)-1;pc.set(m,g),a.set(m,h),g||(eg.has(m)||m.removeAttribute(o),eg.delete(m)),h||m.removeAttribute(r)}),fy--,fy||(pc=new WeakMap,pc=new WeakMap,eg=new WeakMap,tg={})}},wA=function(e,t,r){r===void 0&&(r="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),i=t||s9(e);return i?(o.push.apply(o,Array.from(i.querySelectorAll("[aria-live]"))),d9(o,i,r,"aria-hidden")):function(){return null}};v();v();v();var So=function(){return So=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},So.apply(this,arguments)};function rg(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 SA(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 lg=w(j());v();var Gr=w(j());v();var Ll="right-scroll-bar-position",Rl="width-before-scroll-bar",gy="with-scroll-bars-hidden",hy="--removed-body-scroll-bar-size";v();v();function og(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}v();var TA=w(j());function CA(e,t){var r=(0,TA.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 ng=w(j());var m9=typeof window<"u"?ng.useLayoutEffect:ng.useEffect,IA=new WeakMap;function by(e,t){var r=CA(t||null,function(o){return e.forEach(function(i){return og(i,o)})});return m9(function(){var o=IA.get(r);if(o){var i=new Set(o),a=new Set(e),s=r.current;i.forEach(function(c){a.has(c)||og(c,null)}),a.forEach(function(c){i.has(c)||og(c,s)})}IA.set(r,e)},[e]),r}v();v();v();function u9(e){return e}function p9(e,t){t===void 0&&(t=u9);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)},u=function(){return Promise.resolve().then(d)};u(),r={push:function(f){s.push(f),u()},filter:function(f){return s=s.filter(f),r}}}};return i}function xy(e){e===void 0&&(e={});var t=p9(null);return t.options=So({async:!0,ssr:!1},e),t}v();var _A=w(j()),AA=function(e){var t=e.sideCar,r=rg(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 _A.createElement(o,So({},r))};AA.isSideCarExport=!0;function vy(e,t){return e.useMedium(t),AA}var ig=xy();var yy=function(){},dm=Gr.forwardRef(function(e,t){var r=Gr.useRef(null),o=Gr.useState({onScrollCapture:yy,onWheelCapture:yy,onTouchMoveCapture:yy}),i=o[0],a=o[1],s=e.forwardProps,c=e.children,d=e.className,u=e.removeScrollBar,f=e.enabled,m=e.shards,g=e.sideCar,h=e.noIsolation,b=e.inert,y=e.allowPinchZoom,T=e.as,k=T===void 0?"div":T,I=rg(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),C=g,O=by([r,t]),z=So(So({},I),i);return Gr.createElement(Gr.Fragment,null,f&&Gr.createElement(C,{sideCar:ig,removeScrollBar:u,shards:m,noIsolation:h,inert:b,setCallbacks:a,allowPinchZoom:!!y,lockRef:r}),s?Gr.cloneElement(Gr.Children.only(c),So(So({},z),{ref:O})):Gr.createElement(k,So({},z,{className:d,ref:O}),c))});dm.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};dm.classNames={fullWidth:Rl,zeroRight:Ll};v();v();var Rt=w(j());v();v();var gc=w(j());v();v();v();var MA=w(j());v();v();var kA;var PA=function(){if(kA)return kA;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function f9(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=PA();return t&&e.setAttribute("nonce",t),e}function g9(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function h9(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Ey=function(){var e=0,t=null;return{add:function(r){e==0&&(t=f9())&&(g9(t,r),h9(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}};var wy=function(){var e=Ey();return function(t,r){MA.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}};var mm=function(){var e=wy(),t=function(r){var o=r.styles,i=r.dynamic;return e(o,i),null};return t};v();var b9={left:0,top:0,right:0,gap:0},Sy=function(e){return parseInt(e||"",10)||0},x9=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[Sy(r),Sy(o),Sy(i)]},Ty=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return b9;var t=x9(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 v9=mm(),fc="data-scroll-locked",y9=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(gy,` {
22
22
  overflow: hidden `).concat(o,`;
23
23
  padding-right: `).concat(c,"px ").concat(o,`;
24
24
  }
25
- body[`).concat(ic,`] {
25
+ body[`).concat(fc,`] {
26
26
  overflow: hidden `).concat(o,`;
27
27
  overscroll-behavior: contain;
28
28
  `).concat([t&&"position: relative ".concat(o,";"),r==="margin"&&`
@@ -35,39 +35,40 @@ function print() { __p += __j.call(arguments, '') }
35
35
  `),r==="padding"&&"padding-right: ".concat(c,"px ").concat(o,";")].filter(Boolean).join(""),`
36
36
  }
37
37
 
38
- .`).concat(Il,` {
38
+ .`).concat(Ll,` {
39
39
  right: `).concat(c,"px ").concat(o,`;
40
40
  }
41
41
 
42
- .`).concat(kl,` {
42
+ .`).concat(Rl,` {
43
43
  margin-right: `).concat(c,"px ").concat(o,`;
44
44
  }
45
45
 
46
- .`).concat(Il," .").concat(Il,` {
46
+ .`).concat(Ll," .").concat(Ll,` {
47
47
  right: 0 `).concat(o,`;
48
48
  }
49
49
 
50
- .`).concat(kl," .").concat(kl,` {
50
+ .`).concat(Rl," .").concat(Rl,` {
51
51
  margin-right: 0 `).concat(o,`;
52
52
  }
53
53
 
54
- body[`).concat(ic,`] {
55
- `).concat(qb,": ").concat(c,`px;
54
+ body[`).concat(fc,`] {
55
+ `).concat(hy,": ").concat(c,`px;
56
56
  }
57
- `)},ES=function(){var e=parseInt(document.body.getAttribute(ic)||"0",10);return isFinite(e)?e:0},mO=function(){ac.useEffect(function(){return document.body.setAttribute(ic,(ES()+1).toString()),function(){var e=ES()-1;e<=0?document.body.removeAttribute(ic):document.body.setAttribute(ic,e.toString())}},[])},ax=function(e){var t=e.noRelative,r=e.noImportant,o=e.gapMode,i=o===void 0?"margin":o;mO();var a=ac.useMemo(function(){return ix(i)},[i]);return ac.createElement(cO,{styles:dO(a,!t,i,r?"":"!important")})};v();var lx=!1;if(typeof window<"u")try{rm=Object.defineProperty({},"passive",{get:function(){return lx=!0,!0}}),window.addEventListener("test",rm,rm),window.removeEventListener("test",rm,rm)}catch{lx=!1}var rm,_l=lx?{passive:!1}:!1;v();var uO=function(e){return e.tagName==="TEXTAREA"},wS=function(e,t){var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!uO(e)&&r[t]==="visible")},pO=function(e){return wS(e,"overflowY")},fO=function(e){return wS(e,"overflowX")},sx=function(e,t){var r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=CS(e,r);if(o){var i=SS(e,r),a=i[1],s=i[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==document.body);return!1},hO=function(e){var t=e.scrollTop,r=e.scrollHeight,o=e.clientHeight;return[t,r,o]},gO=function(e){var t=e.scrollLeft,r=e.scrollWidth,o=e.clientWidth;return[t,r,o]},CS=function(e,t){return e==="v"?pO(t):fO(t)},SS=function(e,t){return e==="v"?hO(t):gO(t)},bO=function(e,t){return e==="h"&&t==="rtl"?-1:1},TS=function(e,t,r,o,i){var a=bO(e,window.getComputedStyle(t).direction),s=a*o,c=r.target,d=t.contains(c),p=!1,f=s>0,m=0,h=0;do{var b=SS(e,c),y=b[0],w=b[1],C=b[2],M=w-C-a*y;(y||M)&&CS(e,c)&&(m+=M,h+=y),c=c.parentNode}while(!d&&c!==document.body||d&&(t.contains(c)||t===c));return(f&&(i&&m===0||!i&&s>m)||!f&&(i&&h===0||!i&&-s>h))&&(p=!0),p};var Uf=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},IS=function(e){return[e.deltaX,e.deltaY]},kS=function(e){return e&&"current"in e?e.current:e},xO=function(e,t){return e[0]===t[0]&&e[1]===t[1]},vO=function(e){return`
57
+ `)},LA=function(){var e=parseInt(document.body.getAttribute(fc)||"0",10);return isFinite(e)?e:0},E9=function(){gc.useEffect(function(){return document.body.setAttribute(fc,(LA()+1).toString()),function(){var e=LA()-1;e<=0?document.body.removeAttribute(fc):document.body.setAttribute(fc,e.toString())}},[])},Cy=function(e){var t=e.noRelative,r=e.noImportant,o=e.gapMode,i=o===void 0?"margin":o;E9();var a=gc.useMemo(function(){return Ty(i)},[i]);return gc.createElement(v9,{styles:y9(a,!t,i,r?"":"!important")})};v();var Iy=!1;if(typeof window<"u")try{um=Object.defineProperty({},"passive",{get:function(){return Iy=!0,!0}}),window.addEventListener("test",um,um),window.removeEventListener("test",um,um)}catch{Iy=!1}var um,Dl=Iy?{passive:!1}:!1;v();var w9=function(e){return e.tagName==="TEXTAREA"},RA=function(e,t){var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!w9(e)&&r[t]==="visible")},S9=function(e){return RA(e,"overflowY")},T9=function(e){return RA(e,"overflowX")},_y=function(e,t){var r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=DA(e,r);if(o){var i=NA(e,r),a=i[1],s=i[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==document.body);return!1},C9=function(e){var t=e.scrollTop,r=e.scrollHeight,o=e.clientHeight;return[t,r,o]},I9=function(e){var t=e.scrollLeft,r=e.scrollWidth,o=e.clientWidth;return[t,r,o]},DA=function(e,t){return e==="v"?S9(t):T9(t)},NA=function(e,t){return e==="v"?C9(t):I9(t)},_9=function(e,t){return e==="h"&&t==="rtl"?-1:1},OA=function(e,t,r,o,i){var a=_9(e,window.getComputedStyle(t).direction),s=a*o,c=r.target,d=t.contains(c),u=!1,f=s>0,m=0,g=0;do{var h=NA(e,c),b=h[0],y=h[1],T=h[2],k=y-T-a*b;(b||k)&&DA(e,c)&&(m+=k,g+=b),c=c.parentNode}while(!d&&c!==document.body||d&&(t.contains(c)||t===c));return(f&&(i&&m===0||!i&&s>m)||!f&&(i&&g===0||!i&&-s>g))&&(u=!0),u};var ag=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},FA=function(e){return[e.deltaX,e.deltaY]},BA=function(e){return e&&"current"in e?e.current:e},A9=function(e,t){return e[0]===t[0]&&e[1]===t[1]},k9=function(e){return`
58
58
  .block-interactivity-`.concat(e,` {pointer-events: none;}
59
59
  .allow-interactivity-`).concat(e,` {pointer-events: all;}
60
- `)},yO=0,lc=[];function _S(e){var t=Ot.useRef([]),r=Ot.useRef([0,0]),o=Ot.useRef(),i=Ot.useState(yO++)[0],a=Ot.useState(function(){return tm()})[0],s=Ot.useRef(e);Ot.useEffect(function(){s.current=e},[e]),Ot.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var w=uS([e.lockRef.current],(e.shards||[]).map(kS),!0).filter(Boolean);return w.forEach(function(C){return C.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),w.forEach(function(C){return C.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var c=Ot.useCallback(function(w,C){if("touches"in w&&w.touches.length===2)return!s.current.allowPinchZoom;var M=Uf(w),_=r.current,I="deltaX"in w?w.deltaX:_[0]-M[0],N="deltaY"in w?w.deltaY:_[1]-M[1],$,D=w.target,z=Math.abs(I)>Math.abs(N)?"h":"v";if("touches"in w&&z==="h"&&D.type==="range")return!1;var B=sx(z,D);if(!B)return!0;if(B?$=z:($=z==="v"?"h":"v",B=sx(z,D)),!B)return!1;if(!o.current&&"changedTouches"in w&&(I||N)&&(o.current=$),!$)return!0;var q=o.current||$;return TS(q,C,w,q==="h"?I:N,!0)},[]),d=Ot.useCallback(function(w){var C=w;if(!(!lc.length||lc[lc.length-1]!==a)){var M="deltaY"in C?IS(C):Uf(C),_=t.current.filter(function($){return $.name===C.type&&$.target===C.target&&xO($.delta,M)})[0];if(_&&_.should){C.cancelable&&C.preventDefault();return}if(!_){var I=(s.current.shards||[]).map(kS).filter(Boolean).filter(function($){return $.contains(C.target)}),N=I.length>0?c(C,I[0]):!s.current.noIsolation;N&&C.cancelable&&C.preventDefault()}}},[]),p=Ot.useCallback(function(w,C,M,_){var I={name:w,delta:C,target:M,should:_};t.current.push(I),setTimeout(function(){t.current=t.current.filter(function(N){return N!==I})},1)},[]),f=Ot.useCallback(function(w){r.current=Uf(w),o.current=void 0},[]),m=Ot.useCallback(function(w){p(w.type,IS(w),w.target,c(w,e.lockRef.current))},[]),h=Ot.useCallback(function(w){p(w.type,Uf(w),w.target,c(w,e.lockRef.current))},[]);Ot.useEffect(function(){return lc.push(a),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:h}),document.addEventListener("wheel",d,_l),document.addEventListener("touchmove",d,_l),document.addEventListener("touchstart",f,_l),function(){lc=lc.filter(function(w){return w!==a}),document.removeEventListener("wheel",d,_l),document.removeEventListener("touchmove",d,_l),document.removeEventListener("touchstart",f,_l)}},[]);var b=e.removeScrollBar,y=e.inert;return Ot.createElement(Ot.Fragment,null,y?Ot.createElement(a,{styles:vO(i)}):null,b?Ot.createElement(ax,{gapMode:"margin"}):null)}var AS=ex(Hf,_S);var MS=Wf.forwardRef(function(e,t){return Wf.createElement(em,vo({},e,{ref:t,sideCar:AS}))});MS.classNames=em.classNames;var cx=MS;var LS="Popover",[PS,CZ]=ti(LS,[Zb]),Gf=Zb(),[EO,sc]=PS(LS),wO=e=>{let{__scopePopover:t,children:r,open:o,defaultOpen:i,onOpenChange:a,modal:s=!1}=e,c=Gf(t),d=(0,Je.useRef)(null),[p,f]=(0,Je.useState)(!1),[m=!1,h]=oc({prop:o,defaultProp:i,onChange:a});return(0,Je.createElement)(oS,c,(0,Je.createElement)(EO,{scope:t,contentId:Qs(),triggerRef:d,open:m,onOpenChange:h,onOpenToggle:(0,Je.useCallback)(()=>h(b=>!b),[h]),hasCustomAnchor:p,onCustomAnchorAdd:(0,Je.useCallback)(()=>f(!0),[]),onCustomAnchorRemove:(0,Je.useCallback)(()=>f(!1),[]),modal:s},r))};var CO="PopoverTrigger",SO=(0,Je.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=sc(CO,r),a=Gf(r),s=Dr(t,i.triggerRef),c=(0,Je.createElement)(Qt.button,je({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":NS(i.open)},o,{ref:s,onClick:cr(e.onClick,i.onOpenToggle)}));return i.hasCustomAnchor?c:(0,Je.createElement)(nS,je({asChild:!0},a),c)}),RS="PopoverPortal",[TO,IO]=PS(RS,{forceMount:void 0}),kO=e=>{let{__scopePopover:t,forceMount:r,children:o,container:i}=e,a=sc(RS,t);return(0,Je.createElement)(TO,{scope:t,forceMount:r},(0,Je.createElement)(rc,{present:r||a.open},(0,Je.createElement)(sS,{asChild:!0,container:i},o)))},om="PopoverContent",_O=(0,Je.forwardRef)((e,t)=>{let r=IO(om,e.__scopePopover),{forceMount:o=r.forceMount,...i}=e,a=sc(om,e.__scopePopover);return(0,Je.createElement)(rc,{present:o||a.open},a.modal?(0,Je.createElement)(AO,je({},i,{ref:t})):(0,Je.createElement)(MO,je({},i,{ref:t})))}),AO=(0,Je.forwardRef)((e,t)=>{let r=sc(om,e.__scopePopover),o=(0,Je.useRef)(null),i=Dr(t,o),a=(0,Je.useRef)(!1);return(0,Je.useEffect)(()=>{let s=o.current;if(s)return mS(s)},[]),(0,Je.createElement)(cx,{as:Ta,allowPinchZoom:!0},(0,Je.createElement)(DS,je({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:cr(e.onCloseAutoFocus,s=>{var c;s.preventDefault(),a.current||(c=r.triggerRef.current)===null||c===void 0||c.focus()}),onPointerDownOutside:cr(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:cr(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1})})))}),MO=(0,Je.forwardRef)((e,t)=>{let r=sc(om,e.__scopePopover),o=(0,Je.useRef)(!1);return(0,Je.createElement)(DS,je({},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()}}))}),DS=(0,Je.forwardRef)((e,t)=>{let{__scopePopover:r,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onInteractOutside:f,...m}=e,h=sc(om,r),b=Gf(r);return vC(),(0,Je.createElement)(SC,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:a},(0,Je.createElement)(hC,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:f,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onDismiss:()=>h.onOpenChange(!1)},(0,Je.createElement)(iS,je({"data-state":NS(h.open),role:"dialog",id:h.contentId},b,m,{ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var LO=(0,Je.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=Gf(r);return(0,Je.createElement)(aS,je({},i,o,{ref:t}))});function NS(e){return e?"open":"closed"}var Vf=wO;var Kf=SO,OS=kO,Yf=_O;var FS=LO;v();var Fn=S(ee(),1);v();var Xf=S(ee(),1),HS=S(Qn(),1);v();var dx=S(ee(),1),mx=dx.default.createContext(null),st=()=>dx.default.useContext(mx);v();var nm=S(ee(),1);var Zf=e=>{let[t,r]=(0,nm.useState)(null),o=it(),{theme:i}=st(),{container:a}=Tr();return(0,nm.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===He.DARK))},[t,i,o.editor.isMobile,e?.className]),(0,nm.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 BS=S(ee(),1);function cc(e,t,r){(0,BS.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 $S=S(ee(),1),dc=e=>{let t=(0,$S.useRef)(e);return Object.assign(t.current,e),t.current};var WS=S(P(),1),Aa=It(null),US=({onCancel:e,onChange:t,onSelect:r,colorPickerType:o})=>{let i=Zf({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),a=st(),s=Ma(),c=Yr(),d=Ge(s,a),p=dc({app:c,onCancel:e,onChange:t,onSelect:r,selectedElements:d}),{container:f}=Tr();(0,Xf.useEffect)(()=>{let h=m.current;if(!h||!c.canvas||!i)return;let b=!1,y=c.canvas.getContext("2d"),w=({clientX:D,clientY:z})=>{let B=y.getImageData((D-a.offsetLeft)*window.devicePixelRatio,(z-a.offsetTop)*window.devicePixelRatio,1,1).data;return nw(B[0],B[1],B[2])},C=({clientX:D,clientY:z,altKey:B})=>{h.style.top=`${z+20}px`,h.style.left=`${D+20}px`;let q=w({clientX:D,clientY:z});b&&p.onChange(o,q,p.selectedElements,{altKey:B}),h.style.background=q},M=()=>{p.onCancel()},_=(D,z)=>{p.onSelect(D,z)},I=D=>{b=!0,D.stopImmediatePropagation()},N=D=>{b=!1,f?.focus(),D.stopImmediatePropagation(),D.preventDefault(),_(w(D),D)},$=D=>{D.key===R.ESCAPE&&(D.preventDefault(),D.stopImmediatePropagation(),M())};return i.tabIndex=-1,i.focus(),C({clientX:p.app.lastViewportPosition.x,clientY:p.app.lastViewportPosition.y,altKey:!1}),i.addEventListener("keydown",$),i.addEventListener("pointerdown",I),i.addEventListener("pointerup",N),window.addEventListener("pointermove",C,{passive:!0}),window.addEventListener("blur",M),()=>{b=!1,i.removeEventListener("keydown",$),i.removeEventListener("pointerdown",I),i.removeEventListener("pointerup",N),window.removeEventListener("pointermove",C),window.removeEventListener("blur",M)}},[p,c.canvas,i,o,f,a.offsetLeft,a.offsetTop]);let m=(0,Xf.useRef)(null);return cc(m,()=>{e()},h=>!!h.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),i?(0,HS.createPortal)((0,WS.jsx)("div",{ref:m,className:"excalidraw-eye-dropper-preview"}),i):null};var oi=S(P(),1),GS=({color:e,onChange:t,label:r,colorPickerType:o})=>{let i=it(),[a,s]=(0,Fn.useState)(e),[c,d]=qe(on);(0,Fn.useEffect)(()=>{s(e)},[e]);let p=(0,Fn.useCallback)(y=>{let w=y.toLowerCase(),C=VS(w);C&&t(C),s(w)},[t]),f=(0,Fn.useRef)(null),m=(0,Fn.useRef)(null);(0,Fn.useEffect)(()=>{f.current&&f.current.focus()},[c]);let[h,b]=qe(Aa,ft);return(0,Fn.useEffect)(()=>()=>{b(null)},[b]),(0,oi.jsxs)("div",{className:"color-picker__input-label",children:[(0,oi.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,oi.jsx)("input",{ref:c==="hex"?f:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":r,onChange:y=>{p(y.target.value)},value:(a||"").replace(/^#/,""),onBlur:()=>{s(e)},tabIndex:-1,onFocus:()=>d("hex"),onKeyDown:y=>{y.key!==R.TAB&&(y.key===R.ESCAPE&&m.current?.focus(),y.stopPropagation())}}),!i.editor.isMobile&&(0,oi.jsxs)(oi.Fragment,{children:[(0,oi.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,oi.jsx)("div",{ref:m,className:Q("excalidraw-eye-dropper-trigger",{selected:h}),onClick:()=>b(y=>y?null:{keepOpenOnAlt:!1,onSelect:w=>t(w),colorPickerType:o}),title:`${E("labels.eyeDropper")} \u2014 ${R.I.toLocaleUpperCase()} or ${X("Alt")} `,children:f4})]})]})};var YS=S(ee(),1);var Ir=S(P(),1),KS=e=>{let t=new Option().style;return t.color=e,!!t.color},VS=e=>dl(e)?e:KS(`#${e}`)?`#${e}`:KS(e)?e:null,PO=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=vi,updateData:s})=>{let[,c]=qe(on),[d,p]=qe(Aa,ft),{container:f}=Tr(),m=it(),h=(0,Ir.jsxs)("div",{children:[(0,Ir.jsx)(js,{children:E("colorPicker.hexCode")}),(0,Ir.jsx)(GS,{color:t,label:o,onChange:w=>{r(w)},colorPickerType:e})]}),b=(0,YS.useRef)(null),y=()=>{b.current?.querySelector(".color-picker-content")?.focus()};return(0,Ir.jsx)(OS,{container:f,children:(0,Ir.jsxs)(Yf,{ref:b,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:w=>{y(),w.preventDefault()},onPointerDownOutside:w=>{d&&w.preventDefault()},onCloseAutoFocus:w=>{w.stopPropagation(),w.preventDefault(),f&&!Rw(document.activeElement)&&f.focus(),s({openPopup:null}),c(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:[a?(0,Ir.jsx)(lC,{palette:a,color:t,onChange:w=>{r(w)},onEyeDropperToggle:w=>{p(C=>w?(C=C||{keepOpenOnAlt:!0,onSelect:r,colorPickerType:e},C.keepOpenOnAlt=!0,C):w===!1||C?null:{keepOpenOnAlt:!1,onSelect:r,colorPickerType:e})},onEscape:w=>{d?p(null):Zo(w.target)?y():s({openPopup:null})},label:o,type:e,elements:i,updateData:s,children:h}):h,(0,Ir.jsx)(FS,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},RO=({label:e,color:t,type:r})=>(0,Ir.jsx)(Kf,{type:"button",className:Q("color-picker__button active-color",{"is-transparent":t==="transparent"||!t}),"aria-label":e,style:t?{"--swatch-color":t}:void 0,title:r==="elementStroke"?E("labels.showStroke"):E("labels.showBackground"),children:(0,Ir.jsx)("div",{className:"color-picker__button-outline"})}),im=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=vi,topPicks:s,updateData:c,appState:d})=>(0,Ir.jsx)("div",{children:(0,Ir.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,Ir.jsx)(q4,{activeColor:t,onChange:r,type:e,topPicks:s}),(0,Ir.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,Ir.jsxs)(Vf,{open:d.openPopup===e,onOpenChange:p=>{c({openPopup:p?e:null})},children:[(0,Ir.jsx)(RO,{color:t,label:o,type:e}),d.openPopup===e&&(0,Ir.jsx)(PO,{type:e,color:t,onChange:r,label:o,elements:i,palette:a,updateData:c})]})]})});v();var Pa=S(ee(),1);v();var La=S(ee(),1);var ZS=S(Qn(),1);var XS=S(P(),1),jf=({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,La.useRef)(null);(0,La.useEffect)(()=>{let m=p.current;if(!m)return;m.contains(document.activeElement)||m.focus();let h=b=>{if(b.key===R.TAB){let y=gd(m),{activeElement:w}=document,C=y.findIndex(M=>M===w);w===m?(b.shiftKey?y[y.length-1]?.focus():y[0].focus(),b.preventDefault(),b.stopImmediatePropagation()):C===0&&b.shiftKey?(y[y.length-1]?.focus(),b.preventDefault(),b.stopImmediatePropagation()):C===y.length-1&&!b.shiftKey&&(y[0]?.focus(),b.preventDefault(),b.stopImmediatePropagation())}};return m.addEventListener("keydown",h),()=>m.removeEventListener("keydown",h)},[]);let f=(0,La.useRef)(null);return(0,La.useLayoutEffect)(()=>{if(i&&p.current&&r!=null&&t!=null){let m=p.current,{width:h,height:b}=m.getBoundingClientRect();if(f.current?.top===r&&f.current?.left===t)return;f.current={top:r,left:t},h>=c?(m.style.width=`${c}px`,m.style.left="0px",m.style.overflowX="scroll"):t+h-a>c?m.style.left=`${c-h-10}px`:m.style.left=`${t}px`,b>=d?(m.style.height=`${d-20}px`,m.style.top="10px",m.style.overflowY="scroll"):r+b-s>d?m.style.top=`${d-b}px`:m.style.top=`${r}px`}},[r,t,i,c,d,a,s]),(0,La.useEffect)(()=>{if(o){let m=h=>{p.current?.contains(h.target)||(0,ZS.unstable_batchedUpdates)(()=>o(h))};return document.addEventListener("pointerdown",m,!1),()=>document.removeEventListener("pointerdown",m,!1)}},[o]),(0,XS.jsx)("div",{className:"popover",ref:p,tabIndex:-1,children:e})};var so=S(P(),1);function DO({options:e,value:t,label:r,onChange:o,onClose:i}){let a=Pa.default.useRef(),s=Pa.default.useRef(),c=Pa.default.useRef(null);return Pa.default.useEffect(()=>{s.current?s.current.focus():c.current&&c.current.focus()},[]),(0,so.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":r,onKeyDown:p=>{let f=e.find(m=>m.keyBinding===p.key.toLowerCase());if(!(p.metaKey||p.altKey||p.ctrlKey)&&f){let m=e.indexOf(f);c.current.children[m].focus(),p.preventDefault()}else if(p.key===R.TAB)setTimeout(()=>{let m=s.current,h=document.activeElement;m!==h&&i()},0);else if(ws(p.key)){let{activeElement:m}=document,h=Di().rtl,b=Array.prototype.indexOf.call(c.current.children,m);if(b!==-1){let y=e.length,w=b;switch(p.key){case(h?R.ARROW_LEFT:R.ARROW_RIGHT):case R.ARROW_DOWN:{w=(b+1)%y;break}case(h?R.ARROW_RIGHT:R.ARROW_LEFT):case R.ARROW_UP:{w=(y+b-1)%y;break}}c.current.children[w].focus()}p.preventDefault()}else(p.key===R.ESCAPE||p.key===R.ENTER)&&(p.preventDefault(),i());p.nativeEvent.stopImmediatePropagation(),p.stopPropagation()},children:(0,so.jsx)("div",{className:"picker-content",ref:c,children:e.map((p,f)=>(0,so.jsxs)("button",{type:"button",className:Q("picker-option",{active:t===p.value}),onClick:m=>{m.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:m=>{m&&f===0&&(a.current=m),m&&p.value===t&&(s.current=m)},onFocus:()=>{o(p.value)},children:[p.icon,p.keyBinding&&(0,so.jsx)("span",{className:"picker-keybinding",children:p.keyBinding})]},p.text))})})}function ux({value:e,label:t,options:r,onChange:o,group:i=""}){let[a,s]=Pa.default.useState(!1),c=Pa.default.useRef(null),d=Di().rtl;return(0,so.jsxs)("div",{children:[(0,so.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,so.jsx)(Pa.default.Suspense,{fallback:"",children:a?(0,so.jsxs)(so.Fragment,{children:[(0,so.jsx)(jf,{onCloseRequest:p=>p.target!==c.current&&s(!1),...d?{right:5.5}:{left:-5.5},children:(0,so.jsx)(DO,{options:r.filter(p=>p.showInPicker!==!1),value:e,label:t,onChange:o,onClose:()=>{s(!1),c.current?.focus()}})}),(0,so.jsx)("div",{className:"picker-triangle"})]}):null})]})}var Me=S(P(),1),qS=.1,Po=(e,t,r,o=!1)=>{let i=Oe(Ge(e,t,{includeBoundTextElement:o}));return e.map(a=>i.get(a.id)||a.id===t.editingElement?.id?r(a):a)},yo=function(e,t,r,o,i){let a=t.editingElement,s=Ze(e),c=null;return a&&(c=r(a)),c||(xt(s,t)?c=R5(o===!0?s:s.filter(p=>o(p)),t,r)??(typeof i=="function"?i(!0):i):c=typeof i=="function"?i(!1):i),c},NO=(e,t)=>nr(t)||!t.autoResize?t:pe(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),px=(e,t,r,o,i)=>{let a=new Set;return{elements:Po(e,t,s=>{if(ve(s)){let c=o(s);a.add(c);let d=De(s,{fontSize:c});return Ur(d,r.scene.getContainerElement(s),r.scene.getNonDeletedElementsMap()),d=NO(s,d),d}return s},!0),appState:{...t,currentItemFontSize:a.size===1?[...a][0]:i??t.currentItemFontSize},storeAction:Y.CAPTURE}},OO=ne({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemStrokeColor&&{elements:Po(e,t,o=>Cd(o.type)?De(o,{strokeColor:r.currentItemStrokeColor}):o,!0)},appState:{...t,...r},storeAction:r.currentItemStrokeColor?Y.CAPTURE:Y.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)("h3",{"aria-hidden":"true",children:E("labels.stroke")}),(0,Me.jsx)(im,{topPicks:Ou,palette:rw,type:"elementStroke",label:E("labels.stroke"),color:yo(e,t,i=>i.strokeColor,!0,t.currentItemStrokeColor),onChange:i=>r({currentItemStrokeColor:i}),elements:e,appState:t,updateData:r})]})}),FO=ne({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemBackgroundColor&&{elements:Po(e,t,o=>De(o,{backgroundColor:r.currentItemBackgroundColor}))},appState:{...t,...r},storeAction:r.currentItemBackgroundColor?Y.CAPTURE:Y.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)("h3",{"aria-hidden":"true",children:E("labels.background")}),(0,Me.jsx)(im,{topPicks:Fu,palette:ow,type:"elementBackground",label:E("labels.background"),color:yo(e,t,i=>i.backgroundColor,!0,t.currentItemBackgroundColor),onChange:i=>r({currentItemBackgroundColor:i}),elements:e,appState:t,updateData:r})]})}),zO=ne({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(e,t,r,o)=>(Ue("element","changeFillStyle",`${r} (${o.device.editor.isMobile?"mobile":"desktop"})`),{elements:Po(e,t,i=>De(i,{fillStyle:r})),appState:{...t,currentItemFillStyle:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Ge(e,t),i=o.length>0&&o.every(a=>a.fillStyle==="zigzag");return(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.fill")}),(0,Me.jsx)(ei,{type:"button",options:[{value:"hachure",text:`${i?E("labels.zigzag"):E("labels.hachure")} (${X("Alt-Click")})`,icon:i?L6:P6,active:i?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:E("labels.crossHatch"),icon:R6,testId:"fill-cross-hatch"},{value:"solid",text:E("labels.solid"),icon:D6,testId:"fill-solid"}],value:yo(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)}})]})}}),BO=ne({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(e,t,r)=>({elements:Po(e,t,o=>De(o,{strokeWidth:r})),appState:{...t,currentItemStrokeWidth:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.strokeWidth")}),(0,Me.jsx)(ei,{group:"stroke-width",options:[{value:ju.thin,text:E("labels.thin"),icon:gb,testId:"strokeWidth-thin"},{value:ju.bold,text:E("labels.bold"),icon:N6,testId:"strokeWidth-bold"},{value:ju.extraBold,text:E("labels.extraBold"),icon:O6,testId:"strokeWidth-extraBold"}],value:yo(e,t,o=>o.strokeWidth,o=>o.hasOwnProperty("strokeWidth"),o=>o?null:t.currentItemStrokeWidth),onChange:o=>r(o)})]})}),$O=ne({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(e,t,r)=>({elements:Po(e,t,o=>De(o,{seed:jw(),roughness:r})),appState:{...t,currentItemRoughness:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.sloppiness")}),(0,Me.jsx)(ei,{group:"sloppiness",options:[{value:0,text:E("labels.architect"),icon:B6},{value:1,text:E("labels.artist"),icon:$6},{value:2,text:E("labels.cartoonist"),icon:H6}],value:yo(e,t,o=>o.roughness,o=>o.hasOwnProperty("roughness"),o=>o?null:t.currentItemRoughness),onChange:o=>r(o)})]})}),mj=ne({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(e,t,r)=>({elements:Po(e,t,o=>De(o,{strokeStyle:r})),appState:{...t,currentItemStrokeStyle:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.strokeStyle")}),(0,Me.jsx)(ei,{group:"strokeStyle",options:[{value:"solid",text:E("labels.strokeStyle_solid"),icon:gb},{value:"dashed",text:E("labels.strokeStyle_dashed"),icon:F6},{value:"dotted",text:E("labels.strokeStyle_dotted"),icon:z6}],value:yo(e,t,o=>o.strokeStyle,o=>o.hasOwnProperty("strokeStyle"),o=>o?null:t.currentItemStrokeStyle),onChange:o=>r(o)})]})}),HO=ne({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(e,t,r)=>({elements:Po(e,t,o=>De(o,{opacity:r}),!0),appState:{...t,currentItemOpacity:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Me.jsxs)("label",{className:"control-label",children:[E("labels.opacity"),(0,Me.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:o=>r(+o.target.value),value:yo(e,t,o=>o.opacity,!0,t.currentItemOpacity)??void 0})]})}),UO=ne({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(e,t,r,o)=>px(e,t,o,()=>r,r),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.fontSize")}),(0,Me.jsx)(ei,{group:"font-size",options:[{value:16,text:E("labels.small"),icon:J6,testId:"fontSize-small"},{value:20,text:E("labels.medium"),icon:Q6,testId:"fontSize-medium"},{value:28,text:E("labels.large"),icon:e4,testId:"fontSize-large"},{value:36,text:E("labels.veryLarge"),icon:t4,testId:"fontSize-veryLarge"}],value:yo(e,t,i=>{if(ve(i))return i.fontSize;let a=ct(i,o.scene.getNonDeletedElementsMap());return a?a.fontSize:null},i=>ve(i)||ct(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:t.currentItemFontSize||kn),onChange:i=>r(i)})]})}),fx=ne({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:wl,trackEvent:!1,perform:(e,t,r,o)=>px(e,t,o,i=>Math.round(1/(1+qS)*i.fontSize)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_LEFT||e.key===R.COMMA)}),hx=ne({name:"increaseFontSize",label:"labels.increaseFontSize",icon:wl,trackEvent:!1,perform:(e,t,r,o)=>px(e,t,o,i=>Math.round(i.fontSize*(1+qS))),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_RIGHT||e.key===R.PERIOD)}),WO=ne({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(e,t,r,o)=>({elements:Po(e,t,i=>{if(ve(i)){let a=De(i,{fontFamily:r,lineHeight:Ii(r)});return Ur(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t,currentItemFontFamily:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>{let i=[{value:sd.Virgil,text:E("labels.handDrawn"),icon:$s,testId:"font-family-virgil"},{value:sd.Helvetica,text:E("labels.normal"),icon:r4,testId:"font-family-normal"},{value:sd.Cascadia,text:E("labels.code"),icon:o4,testId:"font-family-code"}];return(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.fontFamily")}),(0,Me.jsx)(ei,{group:"font-family",options:i,value:yo(e,t,a=>{if(ve(a))return a.fontFamily;let s=ct(a,o.scene.getNonDeletedElementsMap());return s?s.fontFamily:null},a=>ve(a)||ct(a,o.scene.getNonDeletedElementsMap())!==null,a=>a?null:t.currentItemFontFamily||ps),onChange:a=>r(a)})]})}}),GO=ne({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(e,t,r,o)=>({elements:Po(e,t,i=>{if(ve(i)){let a=De(i,{textAlign:r});return Ur(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t,currentItemTextAlign:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>{let i=o.scene.getNonDeletedElementsMap();return(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.textAlign")}),(0,Me.jsx)(ei,{group:"text-align",options:[{value:"left",text:E("labels.left"),icon:n4,testId:"align-left"},{value:"center",text:E("labels.center"),icon:i4,testId:"align-horizontal-center"},{value:"right",text:E("labels.right"),icon:a4,testId:"align-right"}],value:yo(e,t,a=>{if(ve(a))return a.textAlign;let s=ct(a,i);return s?s.textAlign:null},a=>ve(a)||ct(a,i)!==null,a=>a?null:t.currentItemTextAlign),onChange:a=>r(a)})]})}}),VO=ne({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Po(e,t,i=>{if(ve(i)){let a=De(i,{verticalAlign:r});return Ur(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Me.jsx)("fieldset",{children:(0,Me.jsx)(ei,{group:"text-align",options:[{value:Vo.TOP,text:E("labels.alignTop"),icon:(0,Me.jsx)(l4,{theme:t.theme}),testId:"align-top"},{value:Vo.MIDDLE,text:E("labels.centerVertically"),icon:(0,Me.jsx)(c4,{theme:t.theme}),testId:"align-middle"},{value:Vo.BOTTOM,text:E("labels.alignBottom"),icon:(0,Me.jsx)(s4,{theme:t.theme}),testId:"align-bottom"}],value:yo(e,t,i=>{if(ve(i)&&i.containerId)return i.verticalAlign;let a=ct(i,o.scene.getNonDeletedElementsMap());return a?a.verticalAlign:null},i=>ve(i)||ct(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:Vo.MIDDLE),onChange:i=>r(i)})})}),uj=ne({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(e,t,r)=>({elements:Po(e,t,o=>De(o,{roundness:r==="round"?{type:bs(o.type)?Ko.ADAPTIVE_RADIUS:Ko.PROPORTIONAL_RADIUS}:null})),appState:{...t,currentItemRoundness:r},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let i=Gp(Ze(e),t).some(a=>a.roundness?.type===Ko.LEGACY);return(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.edges")}),(0,Me.jsx)(ei,{group:"edges",options:[{value:"sharp",text:E("labels.sharp"),icon:U6},{value:"round",text:E("labels.round"),icon:W6}],value:yo(e,t,a=>i?null:a.roundness?"round":"sharp",a=>a.hasOwnProperty("roundness"),a=>a?null:t.currentItemRoundness),onChange:a=>r(a)})]})}}),jS=e=>[{value:null,text:E("labels.arrowhead_none"),keyBinding:"q",icon:G6},{value:"arrow",text:E("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,Me.jsx)(V6,{flip:e})},{value:"bar",text:E("labels.arrowhead_bar"),keyBinding:"e",icon:(0,Me.jsx)(Y6,{flip:e})},{value:"dot",text:E("labels.arrowhead_circle"),keyBinding:null,icon:(0,Me.jsx)(bb,{flip:e}),showInPicker:!1},{value:"circle",text:E("labels.arrowhead_circle"),keyBinding:"r",icon:(0,Me.jsx)(bb,{flip:e}),showInPicker:!1},{value:"circle_outline",text:E("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,Me.jsx)(K6,{flip:e}),showInPicker:!1},{value:"triangle",text:E("labels.arrowhead_triangle"),icon:(0,Me.jsx)(Z6,{flip:e}),keyBinding:"t"},{value:"triangle_outline",text:E("labels.arrowhead_triangle_outline"),icon:(0,Me.jsx)(X6,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond",text:E("labels.arrowhead_diamond"),icon:(0,Me.jsx)(j6,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:E("labels.arrowhead_diamond_outline"),icon:(0,Me.jsx)(q6,{flip:e}),keyBinding:null,showInPicker:!1}],pj=ne({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(e,t,r)=>({elements:Po(e,t,o=>{if(lt(o)){let{position:i,type:a}=r;if(i==="start")return De(o,{startArrowhead:a});if(i==="end")return De(o,{endArrowhead:a})}return o}),appState:{...t,[r.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:r.type},storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Di().rtl;return(0,Me.jsxs)("fieldset",{children:[(0,Me.jsx)("legend",{children:E("labels.arrowheads")}),(0,Me.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,Me.jsx)(ux,{label:"arrowhead_start",options:jS(!o),value:yo(e,t,i=>lt(i)&&Es(i.type)?i.startArrowhead:t.currentItemStartArrowhead,!0,t.currentItemStartArrowhead),onChange:i=>r({position:"start",type:i})}),(0,Me.jsx)(ux,{label:"arrowhead_end",group:"arrowheads",options:jS(!!o),value:yo(e,t,i=>lt(i)&&Es(i.type)?i.endArrowhead:t.currentItemEndArrowhead,!0,t.currentItemEndArrowhead),onChange:i=>r({position:"end",type:i})})]})]})}});v();v();var JS=S(ee(),1),QS=S(P(),1),mc=()=>{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},gx=(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`})},KO=(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();gx(t,i)},Ro=({children:e,label:t,long:r=!1,style:o,disabled:i})=>((0,JS.useEffect)(()=>()=>mc().classList.remove("excalidraw-tooltip--visible"),[]),i?null:(0,QS.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:a=>KO(a.currentTarget,mc(),t,r),onPointerLeave:()=>mc().classList.remove("excalidraw-tooltip--visible"),style:o,children:e}));var Ml=S(P(),1),YO=ne({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?Y.CAPTURE:Y.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Ml.jsx)(im,{palette:null,topPicks:zu,label:E("labels.canvasBackground"),type:"canvasBackground",color:t.viewBackgroundColor,onChange:i=>r({viewBackgroundColor:i}),"data-testid":"canvas-background-picker",elements:e,appState:t,updateData:r})}),Bi=ne({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:Dn,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=>De(i,{isDeleted:!0})),appState:{...Ts(),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:Y.CAPTURE})}),qf=ne({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Q0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Pi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Li(t.zoom.value+ll)},t),userToFollow:null},storeAction:Y.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ml.jsx)(Ae,{type:"button",className:"zoom-in-button zoom-button",icon:Q0,title:`${E("buttons.zoomIn")} \u2014 ${X("CtrlOrCmd++")}`,"aria-label":E("buttons.zoomIn"),disabled:t.zoom.value>=a0,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Be.EQUAL||e.code===Be.NUM_ADD)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),Jf=ne({name:"zoomOut",label:"buttons.zoomOut",icon:eb,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Pi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Li(t.zoom.value-ll)},t),userToFollow:null},storeAction:Y.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ml.jsx)(Ae,{type:"button",className:"zoom-out-button zoom-button",icon:eb,title:`${E("buttons.zoomOut")} \u2014 ${X("CtrlOrCmd+-")}`,"aria-label":E("buttons.zoomOut"),disabled:t.zoom.value<=Vu,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Be.MINUS||e.code===Be.NUM_SUBTRACT)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),ZO=ne({name:"resetZoom",label:"buttons.resetZoom",icon:f6,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Pi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Li(1)},t),userToFollow:null},storeAction:Y.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ml.jsx)(Ro,{label:E("buttons.resetZoom"),style:{height:"100%"},children:(0,Ml.jsxs)(Ae,{type:"button",className:"reset-zoom-button zoom-button",title:E("buttons.resetZoom"),"aria-label":E("buttons.resetZoom"),onClick:()=>{e(null)},children:[(t.zoom.value*100).toFixed(0),"%"]})}),keyTest:e=>(e.code===Be.ZERO||e.code===Be.NUM_ZERO)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),XO=(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),m=Math.floor(f/ll)*ll;return Math.min(Math.max(m,Vu),1)},eT=({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,m,h;if(r){let b=s-i,y=c-a;f=Math.min(t.width/b,t.height/y)*Math.min(1,Math.max(o,.1)),f=Math.min(Math.max(f,Vu),a0);let w=t.width;if(t.openSidebar){let M=document.querySelector(".sidebar")?.offsetWidth??0;w=document.documentElement.getAttribute("dir")==="rtl"?t.width+M:t.width-M}m=w/2*(1/f)-d,h=t.height/2*(1/f)-p}else{f=XO(e,{width:t.width,height:t.height});let b=D5({scenePoint:{x:d,y:p},viewportDimensions:{width:t.width,height:t.height},zoom:{value:f}});m=b.scrollX,h=b.scrollY}return{appState:{...t,scrollX:m,scrollY:h,zoom:{value:f}},storeAction:Y.NONE}},am=({targetElements:e,appState:t,fitToViewport:r,viewportZoomFactor:o})=>{let i=mt(Ze(e));return eT({bounds:i,appState:t,fitToViewport:r,viewportZoomFactor:o})},$j=ne({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:yf,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return am({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!1})},keyTest:e=>e.code===Be.TWO&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),Hj=ne({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:yf,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return am({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!0})},keyTest:e=>e.code===Be.THREE&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),jO=ne({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:yf,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t)=>am({targetElements:e,appState:{...t,userToFollow:null},fitToViewport:!1}),keyTest:e=>e.code===Be.ONE&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),Al=ne({name:"toggleTheme",label:(e,t)=>t.theme===He.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:e=>e.theme===He.LIGHT?Ud:Wd,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r)=>({appState:{...t,theme:r||(t.theme===He.LIGHT?He.DARK:He.LIGHT)},storeAction:Y.NONE}),keyTest:e=>e.altKey&&e.shiftKey&&e.code===Be.D,predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.toggleTheme}),Uj=ne({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(e,t)=>{let r;return qo(t)?r=Kt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):r=Kt(t,{type:"eraser",lastActiveToolBeforeEraser:t.activeTool}),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:r},storeAction:Y.CAPTURE}},keyTest:e=>e.key===R.E}),tT=ne({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:pf,viewMode:!1,perform:(e,t,r,o)=>{let i;return ki(t)?i=Kt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(i=Kt(t,{type:"hand",lastActiveToolBeforeEraser:t.activeTool}),bt(o.interactiveCanvas,gt.GRAB)),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:i},storeAction:Y.CAPTURE}},keyTest:e=>!e.altKey&&!e[R.CTRL_OR_CMD]&&e.key===R.H});v();var rT=S(P(),1),an=ne({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:h,startBindingElement:b,endBindingElement:y}=t.editingLinearElement,w=Fe.getElement(h,c);if(w)return wi(w)&&sp(w,b,y,c),{elements:w.points.length<2||xl(w)?e.filter(C=>C.id!==w.id):void 0,appState:{...t,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:Y.CAPTURE}}let d=e,p=t.pendingImageElementId&&s.getElement(t.pendingImageElementId);p&&pe(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:b,lastCommittedPoint:y}=f;(!y||b[b.length-1]!==y)&&pe(f,{points:f.points.slice(0,-1)})}xl(f)&&(d=d.filter(b=>b.id!==f.id));let h=yd(f.points,t.zoom.value);if((f.type==="line"||f.type==="freedraw")&&h){let b=f.points,y=b[0];pe(f,{points:b.map((w,C)=>C===b.length-1?[y[0],y[1]]:w)})}if(wi(f)&&!h&&f.points.length>1){let[b,y]=Fe.getPointAtIndexGlobalCoordinates(f,-1,Oe(e));Td(f,t,{x:b,y},o)}}(!t.activeTool.locked&&t.activeTool.type!=="freedraw"||!f)&&Jo(i);let m;return t.activeTool.type==="eraser"?m=Kt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=Kt(t,{type:"selection"}),{elements:d,appState:{...t,cursorButton:"up",activeTool:(t.activeTool.locked||t.activeTool.type==="freedraw")&&f?t.activeTool:m,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&&lt(f)?new Fe(f):t.selectedLinearElement,pendingImageElementId:null},storeAction:Y.CAPTURE}},keyTest:(e,t)=>e.key===R.ESCAPE&&(t.editingLinearElement!==null||!t.draggingElement&&t.multiElement===null)||(e.key===R.ESCAPE||e.key===R.ENTER)&&t.multiElement!==null,PanelComponent:({appState:e,updateData:t,data:r})=>(0,rT.jsx)(Ae,{type:"button",icon:S6,title:E("buttons.done"),"aria-label":E("buttons.done"),onClick:t,visible:e.multiElement!=null,size:r?.size||"medium"})});v();v();var oT=S(ee(),1);var lm=S(P(),1),nT=e=>{let{id:t}=Tr(),[r,o]=(0,oT.useState)(e.value),i=s=>{e.ignoreFocus||Fw(s.target);let c=s.target.value;c!==e.value&&e.onChange(c)},a=s=>{if(s.key===R.ENTER){if(s.preventDefault(),s.nativeEvent.isComposing||s.keyCode===229)return;s.currentTarget.blur()}};return(0,lm.jsxs)("div",{className:"ProjectName",children:[(0,lm.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${e.label}:`}),(0,lm.jsx)("input",{type:"text",className:"TextInput",onBlur:i,onKeyDown:a,id:`${t}-filename`,value:r,onChange:s=>o(s.target.value)})]})};v();var uc=S(P(),1),aT=e=>{let t=e.title||(e.value===He.DARK?E("buttons.lightMode"):E("buttons.darkMode"));return(0,uc.jsx)(Ae,{type:"icon",icon:e.value===He.LIGHT?iT.MOON:iT.SUN,title:t,"aria-label":t,onClick:()=>e.onChange(e.value===He.DARK?He.LIGHT:He.DARK),"data-testid":"toggle-dark-mode"})},iT={SUN:(0,uc.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,uc.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,uc.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,uc.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 Ll=(e,{selectedElementIds:t},r)=>{e=Ze(e);let o=r&&xt(e,{selectedElementIds:t}),i=null,a=o?Ge(e,{selectedElementIds:t},{includeBoundTextElement:!0}):e;return o&&(a.length===1&&Ve(a[0])?(i=a[0],a=$p(e,i)):a.length>1&&(a=Ge(e,{selectedElementIds:t},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:i,exportedElements:Xn(a)}},Pl=async(e,t,r,o,{exportBackground:i,exportPadding:a=da,viewBackgroundColor:s,name:c=r.name||_w,fileHandle:d=null,exportingFrame:p=null})=>{if(t.length===0)throw new Error(E("alerts.cannotExportEmptyCanvas"));if(e==="svg"||e==="clipboard-svg"){let m=Rp(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 T0(m.then(h=>new Blob([h.outerHTML],{type:Mr.svg})),{description:"Export to SVG",name:c,extension:r.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:d});if(e==="clipboard-svg"){let h=await m.then(b=>b.outerHTML);try{await Ps(h)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return}}let f=a5(t,r,o,{exportBackground:i,viewBackgroundColor:s,exportPadding:a,exportingFrame:p});if(e==="png"){let m=Mi(f);return r.exportEmbedScene&&(m=m.then(h=>import("./excalidraw-assets/image-SI7BKULC.js").then(({encodePngMetadata:b})=>b({blob:h,metadata:L0(t,r,o,"local")})))),T0(m,{description:"Export to PNG",name:c,extension:"png",fileHandle:d})}else if(e==="clipboard")try{let m=Mi(f);await u5(m)}catch(m){throw console.warn(m),m.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):yi&&m.name==="TypeError"?new Error(`${E("alerts.couldNotCopyToClipboard")}
60
+ `)},P9=0,hc=[];function zA(e){var t=Rt.useRef([]),r=Rt.useRef([0,0]),o=Rt.useRef(),i=Rt.useState(P9++)[0],a=Rt.useState(function(){return mm()})[0],s=Rt.useRef(e);Rt.useEffect(function(){s.current=e},[e]),Rt.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=SA([e.lockRef.current],(e.shards||[]).map(BA),!0).filter(Boolean);return y.forEach(function(T){return T.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(T){return T.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var c=Rt.useCallback(function(y,T){if("touches"in y&&y.touches.length===2)return!s.current.allowPinchZoom;var k=ag(y),I=r.current,C="deltaX"in y?y.deltaX:I[0]-k[0],O="deltaY"in y?y.deltaY:I[1]-k[1],z,L=y.target,F=Math.abs(C)>Math.abs(O)?"h":"v";if("touches"in y&&F==="h"&&L.type==="range")return!1;var D=_y(F,L);if(!D)return!0;if(D?z=F:(z=F==="v"?"h":"v",D=_y(F,L)),!D)return!1;if(!o.current&&"changedTouches"in y&&(C||O)&&(o.current=z),!z)return!0;var V=o.current||z;return OA(V,T,y,V==="h"?C:O,!0)},[]),d=Rt.useCallback(function(y){var T=y;if(!(!hc.length||hc[hc.length-1]!==a)){var k="deltaY"in T?FA(T):ag(T),I=t.current.filter(function(z){return z.name===T.type&&z.target===T.target&&A9(z.delta,k)})[0];if(I&&I.should){T.cancelable&&T.preventDefault();return}if(!I){var C=(s.current.shards||[]).map(BA).filter(Boolean).filter(function(z){return z.contains(T.target)}),O=C.length>0?c(T,C[0]):!s.current.noIsolation;O&&T.cancelable&&T.preventDefault()}}},[]),u=Rt.useCallback(function(y,T,k,I){var C={name:y,delta:T,target:k,should:I};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(O){return O!==C})},1)},[]),f=Rt.useCallback(function(y){r.current=ag(y),o.current=void 0},[]),m=Rt.useCallback(function(y){u(y.type,FA(y),y.target,c(y,e.lockRef.current))},[]),g=Rt.useCallback(function(y){u(y.type,ag(y),y.target,c(y,e.lockRef.current))},[]);Rt.useEffect(function(){return hc.push(a),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Dl),document.addEventListener("touchmove",d,Dl),document.addEventListener("touchstart",f,Dl),function(){hc=hc.filter(function(y){return y!==a}),document.removeEventListener("wheel",d,Dl),document.removeEventListener("touchmove",d,Dl),document.removeEventListener("touchstart",f,Dl)}},[]);var h=e.removeScrollBar,b=e.inert;return Rt.createElement(Rt.Fragment,null,b?Rt.createElement(a,{styles:k9(i)}):null,h?Rt.createElement(Cy,{gapMode:"margin"}):null)}var $A=vy(ig,zA);var HA=lg.forwardRef(function(e,t){return lg.createElement(dm,So({},e,{ref:t,sideCar:$A}))});HA.classNames=dm.classNames;var Ay=HA;var UA="Popover",[GA,bX]=qn(UA,[py]),sg=py(),[M9,bc]=GA(UA),L9=e=>{let{__scopePopover:t,children:r,open:o,defaultOpen:i,onOpenChange:a,modal:s=!1}=e,c=sg(t),d=(0,Xe.useRef)(null),[u,f]=(0,Xe.useState)(!1),[m=!1,g]=uc({prop:o,defaultProp:i,onChange:a});return(0,Xe.createElement)(fA,c,(0,Xe.createElement)(M9,{scope:t,contentId:sc(),triggerRef:d,open:m,onOpenChange:g,onOpenToggle:(0,Xe.useCallback)(()=>g(h=>!h),[g]),hasCustomAnchor:u,onCustomAnchorAdd:(0,Xe.useCallback)(()=>f(!0),[]),onCustomAnchorRemove:(0,Xe.useCallback)(()=>f(!1),[]),modal:s},r))};var R9="PopoverTrigger",D9=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=bc(R9,r),a=sg(r),s=Nr(t,i.triggerRef),c=(0,Xe.createElement)(jt.button,Ye({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":YA(i.open)},o,{ref:s,onClick:cr(e.onClick,i.onOpenToggle)}));return i.hasCustomAnchor?c:(0,Xe.createElement)(gA,Ye({asChild:!0},a),c)}),WA="PopoverPortal",[N9,O9]=GA(WA,{forceMount:void 0}),F9=e=>{let{__scopePopover:t,forceMount:r,children:o,container:i}=e,a=bc(WA,t);return(0,Xe.createElement)(N9,{scope:t,forceMount:r},(0,Xe.createElement)(mc,{present:r||a.open},(0,Xe.createElement)(vA,{asChild:!0,container:i},o)))},pm="PopoverContent",B9=(0,Xe.forwardRef)((e,t)=>{let r=O9(pm,e.__scopePopover),{forceMount:o=r.forceMount,...i}=e,a=bc(pm,e.__scopePopover);return(0,Xe.createElement)(mc,{present:o||a.open},a.modal?(0,Xe.createElement)(z9,Ye({},i,{ref:t})):(0,Xe.createElement)($9,Ye({},i,{ref:t})))}),z9=(0,Xe.forwardRef)((e,t)=>{let r=bc(pm,e.__scopePopover),o=(0,Xe.useRef)(null),i=Nr(t,o),a=(0,Xe.useRef)(!1);return(0,Xe.useEffect)(()=>{let s=o.current;if(s)return wA(s)},[]),(0,Xe.createElement)(Ay,{as:_a,allowPinchZoom:!0},(0,Xe.createElement)(KA,Ye({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:cr(e.onCloseAutoFocus,s=>{var c;s.preventDefault(),a.current||(c=r.triggerRef.current)===null||c===void 0||c.focus()}),onPointerDownOutside:cr(e.onPointerDownOutside,s=>{let c=s.detail.originalEvent,d=c.button===0&&c.ctrlKey===!0,u=c.button===2||d;a.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:cr(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1})})))}),$9=(0,Xe.forwardRef)((e,t)=>{let r=bc(pm,e.__scopePopover),o=(0,Xe.useRef)(!1);return(0,Xe.createElement)(KA,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()}}))}),KA=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:f,...m}=e,g=bc(pm,r),h=sg(r);return P_(),(0,Xe.createElement)(N_,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:a},(0,Xe.createElement)(I_,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:f,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onDismiss:()=>g.onOpenChange(!1)},(0,Xe.createElement)(hA,Ye({"data-state":YA(g.open),role:"dialog",id:g.contentId},h,m,{ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var H9=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=sg(r);return(0,Xe.createElement)(bA,Ye({},i,o,{ref:t}))});function YA(e){return e?"open":"closed"}var xc=L9;var vc=D9,VA=F9,cg=B9;var dg=H9;var ik=w(j(),1);v();var Dn=w(j(),1);v();var ug=w(j(),1),qA=w(Zn(),1);v();var ky=w(j(),1),Py=ky.default.createContext(null),it=()=>ky.default.useContext(Py);v();var gm=w(j(),1);var mg=e=>{let[t,r]=(0,gm.useState)(null),o=rt(),{theme:i}=it(),{container:a}=sr();return(0,gm.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===Be.DARK))},[t,i,o.editor.isMobile,e?.className]),(0,gm.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 XA=w(j(),1);function yc(e,t,r){(0,XA.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 ZA=w(j(),1),Ec=e=>{let t=(0,ZA.useRef)(e);return Object.assign(t.current,e),t.current};var JA=w(M(),1),Ma=St(null),jA=({onCancel:e,onChange:t,onSelect:r,colorPickerType:o})=>{let i=mg({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),a=it(),s=La(),c=_r(),d=Oe(s,a),u=Ec({app:c,onCancel:e,onChange:t,onSelect:r,selectedElements:d}),{container:f}=sr();(0,ug.useEffect)(()=>{let g=m.current;if(!g||!c.canvas||!i)return;let h=!1,b=c.canvas.getContext("2d"),y=({clientX:L,clientY:F})=>{let D=b.getImageData((L-a.offsetLeft)*window.devicePixelRatio,(F-a.offsetTop)*window.devicePixelRatio,1,1).data;return TS(D[0],D[1],D[2])},T=({clientX:L,clientY:F,altKey:D})=>{g.style.top=`${F+20}px`,g.style.left=`${L+20}px`;let V=y({clientX:L,clientY:F});h&&u.onChange(o,V,u.selectedElements,{altKey:D}),g.style.background=V},k=()=>{u.onCancel()},I=(L,F)=>{u.onSelect(L,F)},C=L=>{h=!0,L.stopImmediatePropagation()},O=L=>{h=!1,f?.focus(),L.stopImmediatePropagation(),L.preventDefault(),I(y(L),L)},z=L=>{L.key===R.ESCAPE&&(L.preventDefault(),L.stopImmediatePropagation(),k())};return i.tabIndex=-1,i.focus(),T({clientX:u.app.lastViewportPosition.x,clientY:u.app.lastViewportPosition.y,altKey:!1}),i.addEventListener("keydown",z),i.addEventListener("pointerdown",C),i.addEventListener("pointerup",O),window.addEventListener("pointermove",T,{passive:!0}),window.addEventListener("blur",k),()=>{h=!1,i.removeEventListener("keydown",z),i.removeEventListener("pointerdown",C),i.removeEventListener("pointerup",O),window.removeEventListener("pointermove",T),window.removeEventListener("blur",k)}},[u,c.canvas,i,o,f,a.offsetLeft,a.offsetTop]);let m=(0,ug.useRef)(null);return yc(m,()=>{e()},g=>!!g.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),i?(0,qA.createPortal)((0,JA.jsx)("div",{ref:m,className:"excalidraw-eye-dropper-preview"}),i):null};var Jn=w(M(),1),QA=({color:e,onChange:t,label:r,colorPickerType:o})=>{let i=rt(),[a,s]=(0,Dn.useState)(e),[c,d]=Ve(an);(0,Dn.useEffect)(()=>{s(e)},[e]);let u=(0,Dn.useCallback)(b=>{let y=b.toLowerCase(),T=ek(y);T&&t(T),s(y)},[t]),f=(0,Dn.useRef)(null),m=(0,Dn.useRef)(null);(0,Dn.useEffect)(()=>{f.current&&f.current.focus()},[c]);let[g,h]=Ve(Ma,mt);return(0,Dn.useEffect)(()=>()=>{h(null)},[h]),(0,Jn.jsxs)("div",{className:"color-picker__input-label",children:[(0,Jn.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,Jn.jsx)("input",{ref:c==="hex"?f:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":r,onChange:b=>{u(b.target.value)},value:(a||"").replace(/^#/,""),onBlur:()=>{s(e)},tabIndex:-1,onFocus:()=>d("hex"),onKeyDown:b=>{b.key!==R.TAB&&(b.key===R.ESCAPE&&m.current?.focus(),b.stopPropagation())}}),!i.editor.isMobile&&(0,Jn.jsxs)(Jn.Fragment,{children:[(0,Jn.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,Jn.jsx)("div",{ref:m,className:q("excalidraw-eye-dropper-trigger",{selected:g}),onClick:()=>h(b=>b?null:{keepOpenOnAlt:!1,onSelect:y=>t(y),colorPickerType:o}),title:`${E("labels.eyeDropper")} \u2014 ${R.I.toLocaleUpperCase()} or ${X("Alt")} `,children:FT})]})]})};v();var ok=w(j(),1);v();var tk=w(j(),1);var rk=w(M(),1),xr=tk.default.forwardRef(({children:e,padding:t,className:r,style:o},i)=>(0,rk.jsx)("div",{className:q("Island",r),style:{"--padding":t,...o},ref:i,children:e}));var wc=w(M(),1),pg=ok.default.forwardRef(({className:e,container:t,children:r,style:o,onClose:i,onKeyDown:a,onFocusOutside:s,onPointerLeave:c,onPointerDownOutside:d},u)=>{let f=rt();return(0,wc.jsx)(VA,{container:t,children:(0,wc.jsxs)(cg,{ref:u,className:q("focus-visible-none",e),"data-prevent-outside-click":!0,side:f.editor.isMobile&&!f.viewport.isLandscape?"bottom":"right",align:f.editor.isMobile&&!f.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-popup)"},onPointerLeave:c,onKeyDown:a,onFocusOutside:s,onPointerDownOutside:d,onCloseAutoFocus:m=>{m.stopPropagation(),m.preventDefault(),t&&!e2(document.activeElement)&&t.focus(),i()},children:[(0,wc.jsx)(xr,{padding:3,style:o,children:r}),(0,wc.jsx)(dg,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})});var Wr=w(M(),1),nk=e=>{let t=new Option().style;return t.color=e,!!t.color},ek=e=>pl(e)?e:nk(`#${e}`)?`#${e}`:nk(e)?e:null,U9=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=xi,updateData:s})=>{let{container:c}=sr(),[,d]=Ve(an),[u,f]=Ve(Ma,mt),m=(0,Wr.jsxs)("div",{children:[(0,Wr.jsx)(ic,{children:E("colorPicker.hexCode")}),(0,Wr.jsx)(QA,{color:t,label:o,onChange:b=>{r(b)},colorPickerType:e})]}),g=(0,ik.useRef)(null),h=()=>{g.current?.querySelector(".color-picker-content")?.focus()};return(0,Wr.jsx)(pg,{container:c,style:{maxWidth:"208px"},onFocusOutside:b=>{h(),b.preventDefault()},onPointerDownOutside:b=>{u&&b.preventDefault()},onClose:()=>{s({openPopup:null}),d(null)},children:a?(0,Wr.jsx)(x_,{palette:a,color:t,onChange:b=>{r(b)},onEyeDropperToggle:b=>{f(y=>b?(y=y||{keepOpenOnAlt:!0,onSelect:r,colorPickerType:e},y.keepOpenOnAlt=!0,y):b===!1||y?null:{keepOpenOnAlt:!1,onSelect:r,colorPickerType:e})},onEscape:b=>{u?f(null):s({openPopup:null})},label:o,type:e,elements:i,updateData:s,children:m}):m})},G9=({label:e,color:t,type:r})=>(0,Wr.jsx)(vc,{type:"button",className:q("color-picker__button active-color properties-trigger",{"is-transparent":t==="transparent"||!t}),"aria-label":e,style:t?{"--swatch-color":t}:void 0,title:r==="elementStroke"?E("labels.showStroke"):E("labels.showBackground"),children:(0,Wr.jsx)("div",{className:"color-picker__button-outline"})}),hm=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=xi,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)(l_,{activeColor:t,onChange:r,type:e,topPicks:s}),(0,Wr.jsx)(zf,{}),(0,Wr.jsxs)(xc,{open:d.openPopup===e,onOpenChange:u=>{c({openPopup:u?e:null})},children:[(0,Wr.jsx)(G9,{color:t,label:o,type:e}),d.openPopup===e&&(0,Wr.jsx)(U9,{type:e,color:t,onChange:r,label:o,elements:i,palette:a,updateData:c})]})]})});v();var Da=w(j(),1);v();var Ra=w(j(),1);var ak=w(Zn(),1);var lk=w(M(),1),fg=({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 u=(0,Ra.useRef)(null);(0,Ra.useEffect)(()=>{let m=u.current;if(!m)return;m.contains(document.activeElement)||m.focus();let g=h=>{if(h.key===R.TAB){let b=kd(m),{activeElement:y}=document,T=b.findIndex(k=>k===y);y===m?(h.shiftKey?b[b.length-1]?.focus():b[0].focus(),h.preventDefault(),h.stopImmediatePropagation()):T===0&&h.shiftKey?(b[b.length-1]?.focus(),h.preventDefault(),h.stopImmediatePropagation()):T===b.length-1&&!h.shiftKey&&(b[0]?.focus(),h.preventDefault(),h.stopImmediatePropagation())}};return m.addEventListener("keydown",g),()=>m.removeEventListener("keydown",g)},[]);let f=(0,Ra.useRef)(null);return(0,Ra.useLayoutEffect)(()=>{if(i&&u.current&&r!=null&&t!=null){let m=u.current,{width:g,height:h}=m.getBoundingClientRect();if(f.current?.top===r&&f.current?.left===t)return;f.current={top:r,left:t},g>=c?(m.style.width=`${c}px`,m.style.left="0px",m.style.overflowX="scroll"):t+g-a>c?m.style.left=`${c-g-10}px`:m.style.left=`${t}px`,h>=d?(m.style.height=`${d-20}px`,m.style.top="10px",m.style.overflowY="scroll"):r+h-s>d?m.style.top=`${d-h}px`:m.style.top=`${r}px`}},[r,t,i,c,d,a,s]),(0,Ra.useEffect)(()=>{if(o){let m=g=>{u.current?.contains(g.target)||(0,ak.unstable_batchedUpdates)(()=>o(g))};return document.addEventListener("pointerdown",m,!1),()=>document.removeEventListener("pointerdown",m,!1)}},[o]),(0,lk.jsx)("div",{className:"popover",ref:u,tabIndex:-1,children:e})};var ao=w(M(),1);function W9({options:e,value:t,label:r,onChange:o,onClose:i}){let a=Da.default.useRef(),s=Da.default.useRef(),c=Da.default.useRef(null);return Da.default.useEffect(()=>{s.current?s.current.focus():c.current&&c.current.focus()},[]),(0,ao.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":r,onKeyDown:u=>{let f=e.find(m=>m.keyBinding===u.key.toLowerCase());if(!(u.metaKey||u.altKey||u.ctrlKey)&&f){let m=e.indexOf(f);c.current.children[m].focus(),u.preventDefault()}else if(u.key===R.TAB)setTimeout(()=>{let m=s.current,g=document.activeElement;m!==g&&i()},0);else if(Bs(u.key)){let{activeElement:m}=document,g=Ri().rtl,h=Array.prototype.indexOf.call(c.current.children,m);if(h!==-1){let b=e.length,y=h;switch(u.key){case(g?R.ARROW_LEFT:R.ARROW_RIGHT):case R.ARROW_DOWN:{y=(h+1)%b;break}case(g?R.ARROW_RIGHT:R.ARROW_LEFT):case R.ARROW_UP:{y=(b+h-1)%b;break}}c.current.children[y].focus()}u.preventDefault()}else(u.key===R.ESCAPE||u.key===R.ENTER)&&(u.preventDefault(),i());u.nativeEvent.stopImmediatePropagation(),u.stopPropagation()},children:(0,ao.jsx)("div",{className:"picker-content",ref:c,children:e.map((u,f)=>(0,ao.jsxs)("button",{type:"button",className:q("picker-option",{active:t===u.value}),onClick:m=>{m.currentTarget.focus(),o(u.value)},title:`${u.text} ${u.keyBinding&&`\u2014 ${u.keyBinding.toUpperCase()}`}`,"aria-label":u.text||"none","aria-keyshortcuts":u.keyBinding||void 0,ref:m=>{m&&f===0&&(a.current=m),m&&u.value===t&&(s.current=m)},onFocus:()=>{o(u.value)},children:[u.icon,u.keyBinding&&(0,ao.jsx)("span",{className:"picker-keybinding",children:u.keyBinding})]},u.text))})})}function My({value:e,label:t,options:r,onChange:o,group:i=""}){let[a,s]=Da.default.useState(!1),c=Da.default.useRef(null),d=Ri().rtl;return(0,ao.jsxs)("div",{children:[(0,ao.jsx)("button",{name:i,type:"button",className:a?"active":"","aria-label":t,onClick:()=>s(!a),ref:c,children:r.find(u=>u.value===e)?.icon}),(0,ao.jsx)(Da.default.Suspense,{fallback:"",children:a?(0,ao.jsxs)(ao.Fragment,{children:[(0,ao.jsx)(fg,{onCloseRequest:u=>u.target!==c.current&&s(!1),...d?{right:5.5}:{left:-5.5},children:(0,ao.jsx)(W9,{options:r.filter(u=>u.showInPicker!==!1),value:e,label:t,onChange:o,onClose:()=>{s(!1),c.current?.focus()}})}),(0,ao.jsx)("div",{className:"picker-triangle"})]}):null})]})}v();var Tc=w(j(),1);v();var vr=w(j(),1);v();var sk=w(j(),1);var hg=w(M(),1),gg=sk.default.forwardRef(({className:e,placeholder:t,onChange:r},o)=>(0,hg.jsxs)("div",{className:q("QuickSearch__wrapper",e),children:[Rp,(0,hg.jsx)("input",{ref:o,className:"QuickSearch__input",type:"text",placeholder:t,onChange:i=>r(i.target.value.trim().toLowerCase())})]}));v();var ck=w(j(),1);var Ly=w(M(),1),bg=({className:e,placeholder:t,children:r})=>{let o=!ck.Children.count(r);return(0,Ly.jsx)("div",{className:q("ScrollableList__wrapper",e),role:"menu",children:o?(0,Ly.jsx)("div",{className:"empty",children:t}):r})};v();var xg=w(M(),1),dk=({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]}),bm=dk;dk.displayName="DropdownMenuGroup";v();var Tg=w(j(),1);v();var vg=w(j(),1);var Ry=vg.default.createContext({}),yg=(e="",t=!1,r=!1)=>`dropdown-menu-item dropdown-menu-item-base ${e}
61
+ ${t?"dropdown-menu-item--selected":""} ${r?"dropdown-menu-item--hovered":""}`.trim(),Eg=(e,t)=>{let r=(0,vg.useContext)(Ry);return ua(e,o=>{let i=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});t?.(i),i.defaultPrevented||r.onSelect?.(i)})};v();var Na=w(M(),1),K9=({textStyle:e,icon:t,shortcut:r,children:o})=>{let i=rt();return(0,Na.jsxs)(Na.Fragment,{children:[t&&(0,Na.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,Na.jsx)("div",{style:e,className:"dropdown-menu-item__text",children:o}),r&&!i.editor.isMobile&&(0,Na.jsx)("div",{className:"dropdown-menu-item__shortcut",children:r})]})},wg=K9;var Sg=w(M(),1),Dy=({icon:e,value:t,order:r,children:o,shortcut:i,className:a,hovered:s,selected:c,textStyle:d,onSelect:u,onClick:f,...m})=>{let g=Eg(f,u),h=(0,Tg.useRef)(null);return(0,Tg.useEffect)(()=>{s&&(r===0?h.current?.scrollIntoView({block:"end"}):h.current?.scrollIntoView({block:"nearest"}))},[s,r]),(0,Sg.jsx)("button",{...m,ref:h,value:t,onClick:g,className:yg(a,c,s),title:m.title??m["aria-label"],children:(0,Sg.jsx)(wg,{textStyle:d,icon:e,shortcut:i,children:o})})};Dy.displayName="DropdownMenuItem";var Sc={GREEN:"green",RED:"red",BLUE:"blue"},Cg=({type:e=Sc.BLUE,children:t})=>{let{theme:r}=Qn(),o={display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:9,fontFamily:"Cascadia, monospace",border:r===Be.LIGHT?"1.5px solid white":"none"};switch(e){case Sc.GREEN:Object.assign(o,{backgroundColor:"var(--background-color-badge)",color:"var(--color-badge)"});break;case Sc.RED:Object.assign(o,{backgroundColor:"pink",color:"darkred"});break;case Sc.BLUE:default:Object.assign(o,{background:"var(--color-promo)",color:"var(--color-surface-lowest)"})}return(0,Sg.jsx)("div",{className:"DropDownMenuItemBadge",style:o,children:t})};Cg.displayName="DropdownMenuItemBadge";Dy.Badge=Cg;var To=Dy;v();var mk=({event:e,inputRef:t,hoveredFont:r,filteredFonts:o,onClose:i,onSelect:a,onHover:s})=>{if(!e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key.toLowerCase()===R.F)return t.current?.focus(),!0;if(e.key===R.ESCAPE)return i(),!0;if(e.key===R.ENTER)return r?.value&&a(r.value),!0;if(e.key===R.ARROW_DOWN)return r?.next?s(r.next.value):o[0]?.value&&s(o[0].value),!0;if(e.key===R.ARROW_UP)return r?.prev?s(r.prev.value):o[o.length-1]?.value&&s(o[o.length-1].value),!0};var Bi=w(M(),1),uk=vr.default.memo(({selectedFontFamily:e,hoveredFontFamily:t,onSelect:r,onHover:o,onLeave:i,onOpen:a,onClose:s})=>{let{container:c}=sr(),{fonts:d}=_r(),{showDeprecatedFonts:u}=ei(),[f,m]=(0,vr.useState)(""),g=(0,vr.useRef)(null),h=(0,vr.useMemo)(()=>Array.from(vl.registered.entries()).filter(([D,{metadata:V}])=>!V.serverSide).map(([D,{metadata:V,fonts:U}])=>{let Q={value:D,icon:V.icon,text:U[0].fontFace.family};return V.deprecated&&Object.assign(Q,{deprecated:V.deprecated,badge:{type:Sc.RED,placeholder:E("fontList.badge.old")}}),Q}).sort((D,V)=>D.text.toLowerCase()>V.text.toLowerCase()?1:-1),[]),b=(0,vr.useMemo)(()=>new Set(d.getSceneFontFamilies()),[e]),y=(0,vr.useMemo)(()=>h.filter(D=>b.has(D.value)),[h,b]),T=(0,vr.useMemo)(()=>h.filter(D=>!b.has(D.value)&&(u||!D.deprecated)),[h,b,u]),k=(0,vr.useMemo)(()=>l2([...y,...T].filter(D=>D.text?.toLowerCase().includes(f))),[y,T,f]),I=(0,vr.useMemo)(()=>{let D;return t?D=k.find(V=>V.value===t):e&&(D=k.find(V=>V.value===e)),!D&&f&&(k[0]?.value?o(k[0].value):i()),D},[t,e,f,k,o,i]),C=(0,vr.useCallback)(D=>{mk({event:D,inputRef:g,hoveredFont:I,filteredFonts:k,onSelect:r,onHover:o,onClose:s})&&(D.preventDefault(),D.stopPropagation())},[I,k,r,o,s]);(0,vr.useEffect)(()=>(a(),()=>{s()}),[]);let O=(0,vr.useMemo)(()=>k.filter(D=>b.has(D.value)),[k,b]),z=(0,vr.useMemo)(()=>k.filter(D=>!b.has(D.value)),[k,b]),L=(D,V)=>(0,Bi.jsxs)(To,{icon:D.icon,value:D.value,order:V,textStyle:{fontFamily:cl({fontFamily:D.value})},hovered:D.value===I?.value,selected:D.value===e,tabIndex:D.value===e?0:-1,onClick:U=>{r(Number(U.currentTarget.value))},onMouseMove:()=>{I?.value!==D.value&&o(D.value)},children:[D.text,D.badge&&(0,Bi.jsx)(Cg,{type:D.badge.type,children:D.badge.placeholder})]},D.value),F=[];return O.length&&F.push((0,Bi.jsx)(bm,{title:E("fontList.sceneFonts"),children:O.map(L)},"group_1")),z.length&&F.push((0,Bi.jsx)(bm,{title:E("fontList.availableFonts"),children:z.map((D,V)=>L(D,V+O.length))},"group_2")),(0,Bi.jsxs)(pg,{className:"properties-content",container:c,style:{width:"15rem"},onClose:s,onPointerLeave:i,onKeyDown:C,children:[(0,Bi.jsx)(gg,{ref:g,placeholder:E("quickSearch.placeholder"),onChange:dl(m,20)}),(0,Bi.jsx)(bg,{className:"dropdown-menu fonts manual-hover",placeholder:E("fontList.empty"),children:F.length?F:null})]})},(e,t)=>e.selectedFontFamily===t.selectedFontFamily&&e.hoveredFontFamily===t.hoveredFontFamily);v();var pk=w(j(),1);var Ig=w(M(),1),fk=({selectedFontFamily:e})=>{let t=(0,pk.useMemo)(()=>!!(e&&!gk(e)),[e]);return(0,Ig.jsx)(vc,{asChild:!0,children:(0,Ig.jsx)("div",{children:(0,Ig.jsx)(Ff,{standalone:!0,icon:B2,title:E("labels.showFonts"),className:"properties-trigger",testId:"font-family-show-fonts",active:t,onClick:()=>{}})})})};var Oa=w(M(),1),hk=[{value:ll.Excalifont,icon:Ep,text:E("labels.handDrawn"),testId:"font-family-handrawn"},{value:ll.Nunito,icon:CT,text:E("labels.normal"),testId:"font-family-normal"},{value:ll["Comic Shanns"],icon:IT,text:E("labels.code"),testId:"font-family-code"}],Y9=new Set(hk.map(e=>e.value)),gk=e=>e?Y9.has(e):!1,bk=Tc.default.memo(({isOpened:e,selectedFontFamily:t,hoveredFontFamily:r,onSelect:o,onHover:i,onLeave:a,onPopupChange:s})=>{let c=(0,Tc.useMemo)(()=>hk,[]),d=(0,Tc.useCallback)(u=>{u&&o(u)},[o]);return(0,Oa.jsxs)("div",{role:"dialog","aria-modal":"true",className:"FontPicker__container",children:[(0,Oa.jsx)(nn,{type:"button",options:c,value:t,onClick:d}),(0,Oa.jsx)(zf,{}),(0,Oa.jsxs)(xc,{open:e,onOpenChange:s,children:[(0,Oa.jsx)(fk,{selectedFontFamily:t}),e&&(0,Oa.jsx)(uk,{selectedFontFamily:t,hoveredFontFamily:r,onSelect:d,onHover:i,onLeave:a,onOpen:()=>s(!0),onClose:()=>s(!1)})]})]})},(e,t)=>e.isOpened===t.isOpened&&e.selectedFontFamily===t.selectedFontFamily&&e.hoveredFontFamily===t.hoveredFontFamily);var Se=w(M(),1),vk=.1,lo=(e,t,r,o=!1)=>{let i=Re(Oe(e,t,{includeBoundTextElement:o}));return e.map(a=>i.get(a.id)||a.id===t.editingElement?.id?r(a):a)},so=function(e,t,r,o,i){let a=t.editingElement,s=We(e),c=null;return a&&(c=r(a)),c||(gt(s,t)?c=LI(o===!0?s:s.filter(u=>o(u)),t,r)??(typeof i=="function"?i(!0):i):c=typeof i=="function"?i(!1):i),c},V9=(e,t)=>Ir(t)||!t.autoResize?t:ce(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),Ny=(e,t,r,o,i)=>{let a=new Set;return{elements:lo(e,t,s=>{if(he(s)){let c=o(s);a.add(c);let d=ke(s,{fontSize:c});return qt(d,r.scene.getContainerElement(s),r.scene.getNonDeletedElementsMap()),d=V9(s,d),d}return s},!0),appState:{...t,currentItemFontSize:a.size===1?[...a][0]:i??t.currentItemFontSize},storeAction:W.CAPTURE}},X9=re({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemStrokeColor&&{elements:lo(e,t,o=>Wd(o.type)?ke(o,{strokeColor:r.currentItemStrokeColor}):o,!0)},appState:{...t,...r},storeAction:r.currentItemStrokeColor?W.CAPTURE:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Se.jsxs)(Se.Fragment,{children:[(0,Se.jsx)("h3",{"aria-hidden":"true",children:E("labels.stroke")}),(0,Se.jsx)(hm,{topPicks:Vu,palette:wS,type:"elementStroke",label:E("labels.stroke"),color:so(e,t,i=>i.strokeColor,!0,t.currentItemStrokeColor),onChange:i=>r({currentItemStrokeColor:i}),elements:e,appState:t,updateData:r})]})}),Z9=re({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemBackgroundColor&&{elements:lo(e,t,o=>ke(o,{backgroundColor:r.currentItemBackgroundColor}))},appState:{...t,...r},storeAction:r.currentItemBackgroundColor?W.CAPTURE:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Se.jsxs)(Se.Fragment,{children:[(0,Se.jsx)("h3",{"aria-hidden":"true",children:E("labels.background")}),(0,Se.jsx)(hm,{topPicks:Xu,palette:SS,type:"elementBackground",label:E("labels.background"),color:so(e,t,i=>i.backgroundColor,!0,t.currentItemBackgroundColor),onChange:i=>r({currentItemBackgroundColor:i}),elements:e,appState:t,updateData:r})]})}),q9=re({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(e,t,r,o)=>(ze("element","changeFillStyle",`${r} (${o.device.editor.isMobile?"mobile":"desktop"})`),{elements:lo(e,t,i=>ke(i,{fillStyle:r})),appState:{...t,currentItemFillStyle:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Oe(e,t),i=o.length>0&&o.every(a=>a.fillStyle==="zigzag");return(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.fill")}),(0,Se.jsx)(nn,{type:"button",options:[{value:"hachure",text:`${i?E("labels.zigzag"):E("labels.hachure")} (${X("Alt-Click")})`,icon:i?eT:tT,active:i?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:E("labels.crossHatch"),icon:rT,testId:"fill-cross-hatch"},{value:"solid",text:E("labels.solid"),icon:oT,testId:"fill-solid"}],value:so(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)}})]})}}),j9=re({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{strokeWidth:r})),appState:{...t,currentItemStrokeWidth:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.strokeWidth")}),(0,Se.jsx)(nn,{group:"stroke-width",options:[{value:sp.thin,text:E("labels.thin"),icon:Qx,testId:"strokeWidth-thin"},{value:sp.bold,text:E("labels.bold"),icon:nT,testId:"strokeWidth-bold"},{value:sp.extraBold,text:E("labels.extraBold"),icon:iT,testId:"strokeWidth-extraBold"}],value:so(e,t,o=>o.strokeWidth,o=>o.hasOwnProperty("strokeWidth"),o=>o?null:t.currentItemStrokeWidth),onChange:o=>r(o)})]})}),J9=re({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{seed:x2(),roughness:r})),appState:{...t,currentItemRoughness:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.sloppiness")}),(0,Se.jsx)(nn,{group:"sloppiness",options:[{value:0,text:E("labels.architect"),icon:sT},{value:1,text:E("labels.artist"),icon:cT},{value:2,text:E("labels.cartoonist"),icon:dT}],value:so(e,t,o=>o.roughness,o=>o.hasOwnProperty("roughness"),o=>o?null:t.currentItemRoughness),onChange:o=>r(o)})]})}),Lj=re({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{strokeStyle:r})),appState:{...t,currentItemStrokeStyle:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.strokeStyle")}),(0,Se.jsx)(nn,{group:"strokeStyle",options:[{value:"solid",text:E("labels.strokeStyle_solid"),icon:Qx},{value:"dashed",text:E("labels.strokeStyle_dashed"),icon:aT},{value:"dotted",text:E("labels.strokeStyle_dotted"),icon:lT}],value:so(e,t,o=>o.strokeStyle,o=>o.hasOwnProperty("strokeStyle"),o=>o?null:t.currentItemStrokeStyle),onChange:o=>r(o)})]})}),Q9=re({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{opacity:r}),!0),appState:{...t,currentItemOpacity:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("label",{className:"control-label",children:[E("labels.opacity"),(0,Se.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:o=>r(+o.target.value),value:so(e,t,o=>o.opacity,!0,t.currentItemOpacity)??void 0})]})}),eF=re({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(e,t,r,o)=>Ny(e,t,o,()=>r,r),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.fontSize")}),(0,Se.jsx)(nn,{group:"font-size",options:[{value:16,text:E("labels.small"),icon:ET,testId:"fontSize-small"},{value:20,text:E("labels.medium"),icon:wT,testId:"fontSize-medium"},{value:28,text:E("labels.large"),icon:ST,testId:"fontSize-large"},{value:36,text:E("labels.veryLarge"),icon:TT,testId:"fontSize-veryLarge"}],value:so(e,t,i=>{if(he(i))return i.fontSize;let a=je(i,o.scene.getNonDeletedElementsMap());return a?a.fontSize:null},i=>he(i)||je(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:t.currentItemFontSize||Es),onChange:i=>r(i)})]})}),Oy=re({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:xl,trackEvent:!1,perform:(e,t,r,o)=>Ny(e,t,o,i=>Math.round(1/(1+vk)*i.fontSize)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_LEFT||e.key===R.COMMA)}),Fy=re({name:"increaseFontSize",label:"labels.increaseFontSize",icon:xl,trackEvent:!1,perform:(e,t,r,o)=>Ny(e,t,o,i=>Math.round(i.fontSize*(1+vk))),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_RIGHT||e.key===R.PERIOD)}),tF=re({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(e,t,r,o)=>{let{cachedElements:i,resetAll:a,resetContainers:s,...c}=r;if(a)return{elements:lo(e,t,y=>{let T=i?.get(y.id);return T?ke(y,{...T}):y},!0),appState:{...t,...c},storeAction:W.UPDATE};let{currentItemFontFamily:d,currentHoveredFontFamily:u}=r,f=W.NONE,m,g=!1;if(d)m=d,f=W.CAPTURE;else if(u){m=u,f=W.NONE;let b=Oe(e,t,{includeBoundTextElement:!0}).filter(y=>he(y));if(b.length>200)g=!0;else{let y=0,T=0;for(;y<b.length&&T<5e3;){let k=b[y];T+=k?.originalText.length||0,y++}T>5e3&&(g=!0)}}let h={appState:{...t,...c},storeAction:f};if(m&&!g){let b=new Map,y=new Set,T=!1,k=Array.from(vl.loadedFontsCache.values()),I=Object.entries(ll).find(([z,L])=>L===m)?.[0];u&&I&&k.some(z=>z.startsWith(I))&&(T=!0),Object.assign(h,{elements:lo(e,t,z=>{if(he(z)&&(z.fontFamily!==m||d)){let L=ke(z,{fontFamily:m,lineHeight:Ii(m)}),F=i?.get(z.containerId||"")||{},D=o.scene.getContainerElement(z);return s&&D&&F&&ce(D,{...F},!1),T||(y=new Set([...y,...Array.from(L.originalText)])),b.set(L,D),L}return z},!0)});let C=`10px ${cl({fontFamily:m})}`,O=Array.from(y.values()).join();if(T||window.document.fonts.check(C,O))for(let[z,L]of b)qt(z,L,o.scene.getNonDeletedElementsMap(),!1);else window.document.fonts.load(C,O).then(z=>{for(let[L,F]of b){let D=o.scene.getElement(L.id),V=F?o.scene.getElement(F.id):null;D&&qt(D,V,o.scene.getNonDeletedElementsMap(),!1)}o.fonts.onLoaded(z)})}return h},PanelComponent:({elements:e,appState:t,app:r,updateData:o})=>{let i=(0,sn.useRef)(new Map),a=(0,sn.useRef)(null),[s,c]=(0,sn.useState)({}),d=(0,sn.useRef)(!0),u=(0,sn.useMemo)(()=>{let f=(m,g)=>so(m,t,h=>{if(he(h))return h.fontFamily;let b=je(h,g);return b?b.fontFamily:null},h=>he(h)||je(h,g)!==null,h=>h?null:t.currentItemFontFamily||ws);return s.openPopup==="fontFamily"&&t.openPopup==="fontFamily"?f(Array.from(i.current?.values()??[]),i.current):!s.openPopup&&t.openPopup!=="fontFamily"?f(e,r.scene.getNonDeletedElementsMap()):a.current},[s.openPopup,t,e,r.scene]);return(0,sn.useEffect)(()=>{a.current=u},[u]),(0,sn.useEffect)(()=>{Object.keys(s).length&&(o(s),c({}))},[s]),(0,sn.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.fontFamily")}),(0,Se.jsx)(bk,{isOpened:t.openPopup==="fontFamily",selectedFontFamily:u,hoveredFontFamily:t.currentHoveredFontFamily,onSelect:f=>{c({openPopup:null,currentHoveredFontFamily:null,currentItemFontFamily:f}),i.current.clear()},onHover:f=>{c({currentHoveredFontFamily:f,cachedElements:new Map(i.current),resetContainers:!0})},onLeave:()=>{c({currentHoveredFontFamily:null,cachedElements:new Map(i.current),resetAll:!0})},onPopupChange:f=>{if(f){i.current.clear();let{editingElement:m}=t;if(m?.type==="text"){let g=r.scene.getElement(m.id);i.current.set(m.id,ke(g||m,{},!0))}else{let g=Oe(e,t,{includeBoundTextElement:!0});for(let h of g)i.current.set(h.id,ke(h,{},!0))}c({openPopup:"fontFamily"})}else{let m={openPopup:null,currentHoveredFontFamily:null,cachedElements:new Map(i.current),resetAll:!0};d.current?o({...s,...m}):c(m),i.current.clear()}}})]})}}),rF=re({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(e,t,r,o)=>({elements:lo(e,t,i=>{if(he(i)){let a=ke(i,{textAlign:r});return qt(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t,currentItemTextAlign:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>{let i=o.scene.getNonDeletedElementsMap();return(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.textAlign")}),(0,Se.jsx)(nn,{group:"text-align",options:[{value:"left",text:E("labels.left"),icon:_T,testId:"align-left"},{value:"center",text:E("labels.center"),icon:AT,testId:"align-horizontal-center"},{value:"right",text:E("labels.right"),icon:kT,testId:"align-right"}],value:so(e,t,a=>{if(he(a))return a.textAlign;let s=je(a,i);return s?s.textAlign:null},a=>he(a)||je(a,i)!==null,a=>a?null:t.currentItemTextAlign),onChange:a=>r(a)})]})}}),oF=re({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:lo(e,t,i=>{if(he(i)){let a=ke(i,{verticalAlign:r});return qt(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Se.jsx)("fieldset",{children:(0,Se.jsx)(nn,{group:"text-align",options:[{value:Zo.TOP,text:E("labels.alignTop"),icon:(0,Se.jsx)(PT,{theme:t.theme}),testId:"align-top"},{value:Zo.MIDDLE,text:E("labels.centerVertically"),icon:(0,Se.jsx)(LT,{theme:t.theme}),testId:"align-middle"},{value:Zo.BOTTOM,text:E("labels.alignBottom"),icon:(0,Se.jsx)(MT,{theme:t.theme}),testId:"align-bottom"}],value:so(e,t,i=>{if(he(i)&&i.containerId)return i.verticalAlign;let a=je(i,o.scene.getNonDeletedElementsMap());return a?a.verticalAlign:null},i=>he(i)||je(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:Zo.MIDDLE),onChange:i=>r(i)})})}),Rj=re({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>dt(o)?o:ke(o,{roundness:r==="round"?{type:Is(o.type)?bo.ADAPTIVE_RADIUS:bo.PROPORTIONAL_RADIUS}:null})),appState:{...t,currentItemRoundness:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let i=Sf(We(e),t).some(a=>a.roundness?.type===bo.LEGACY);return(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.edges")}),(0,Se.jsx)(nn,{group:"edges",options:[{value:"sharp",text:E("labels.sharp"),icon:mT},{value:"round",text:E("labels.round"),icon:uT}],value:so(e,t,a=>i?null:a.roundness?"round":"sharp",a=>!_t(a)&&a.hasOwnProperty("roundness"),a=>a?null:t.currentItemRoundness),onChange:a=>r(a)})]})}}),xk=e=>[{value:null,text:E("labels.arrowhead_none"),keyBinding:"q",icon:pT},{value:"arrow",text:E("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,Se.jsx)(fT,{flip:e})},{value:"bar",text:E("labels.arrowhead_bar"),keyBinding:"e",icon:(0,Se.jsx)(hT,{flip:e})},{value:"dot",text:E("labels.arrowhead_circle"),keyBinding:null,icon:(0,Se.jsx)(ev,{flip:e}),showInPicker:!1},{value:"circle",text:E("labels.arrowhead_circle"),keyBinding:"r",icon:(0,Se.jsx)(ev,{flip:e}),showInPicker:!1},{value:"circle_outline",text:E("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,Se.jsx)(gT,{flip:e}),showInPicker:!1},{value:"triangle",text:E("labels.arrowhead_triangle"),icon:(0,Se.jsx)(bT,{flip:e}),keyBinding:"t"},{value:"triangle_outline",text:E("labels.arrowhead_triangle_outline"),icon:(0,Se.jsx)(xT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond",text:E("labels.arrowhead_diamond"),icon:(0,Se.jsx)(vT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:E("labels.arrowhead_diamond_outline"),icon:(0,Se.jsx)(yT,{flip:e}),keyBinding:null,showInPicker:!1}],Dj=re({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>{if(Qe(o)){let{position:i,type:a}=r;if(i==="start")return ke(o,{startArrowhead:a});if(i==="end")return ke(o,{endArrowhead:a})}return o}),appState:{...t,[r.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:r.type},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Ri().rtl;return(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.arrowheads")}),(0,Se.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,Se.jsx)(My,{label:"arrowhead_start",options:xk(!o),value:so(e,t,i=>Qe(i)&&Ys(i.type)?i.startArrowhead:t.currentItemStartArrowhead,!0,t.currentItemStartArrowhead),onChange:i=>r({position:"start",type:i})}),(0,Se.jsx)(My,{label:"arrowhead_end",group:"arrowheads",options:xk(!!o),value:so(e,t,i=>Qe(i)&&Ys(i.type)?i.endArrowhead:t.currentItemEndArrowhead,!0,t.currentItemEndArrowhead),onChange:i=>r({position:"end",type:i})})]})]})}}),Nj=re({name:"changeArrowType",label:"Change arrow types",trackEvent:!1,perform:(e,t,r,o)=>({elements:lo(e,t,i=>{if(!_t(i))return i;let a=ke(i,{roundness:r===Cr.round?{type:bo.PROPORTIONAL_RADIUS}:null,elbowed:r===Cr.elbow,points:r===Cr.elbow||i.elbowed?[i.points[0],i.points[i.points.length-1]]:i.points});if(dt(a)){let s=o.scene.getNonDeletedElementsMap();o.dismissLinearEditor();let c=Le.getPointAtIndexGlobalCoordinates(a,0,s),d=Le.getPointAtIndexGlobalCoordinates(a,-1,s),u=!a.startBinding&&va(ma(c),e,s,!0),f=!a.endBinding&&va(ma(d),e,s,!0),m=u||a.startBinding&&s.get(a.startBinding.elementId),g=f||a.endBinding&&s.get(a.endBinding.elementId),h=u?pv(c,d,u,s):c,b=f?pv(d,c,f,s):d;u&&Hs(a,u,"start",s),f&&Hs(a,f,"end",s),Cl(a,o.scene,[h,b].map(y=>[y[0]-a.x,y[1]-a.y]),[0,0],{...m&&a.startBinding?{startBinding:{...a.startBinding,...fv(a,m,"start",s)}}:{},...g&&a.endBinding?{endBinding:{...a.endBinding,...fv(a,g,"end",s)}}:{}})}else ce(a,{startBinding:a.startBinding?{...a.startBinding,fixedPoint:null}:null,endBinding:a.endBinding?{...a.endBinding,fixedPoint:null}:null},!1);return a}),appState:{...t,currentItemArrowType:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.arrowtypes")}),(0,Se.jsx)(nn,{group:"arrowtypes",options:[{value:Cr.sharp,text:E("labels.arrowtype_sharp"),icon:nC,testId:"sharp-arrow"},{value:Cr.round,text:E("labels.arrowtype_round"),icon:aC,testId:"round-arrow"},{value:Cr.elbow,text:E("labels.arrowtype_elbowed"),icon:iC,testId:"elbow-arrow"}],value:so(e,t,o=>_t(o)?o.elbowed?Cr.elbow:o.roundness?Cr.round:Cr.sharp:null,o=>_t(o),o=>o?null:t.currentItemArrowType),onChange:o=>r(o)})]})});v();v();var yk=w(j(),1),Ek=w(M(),1),Cc=()=>{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},By=(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`})},nF=(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();By(t,i)},Oo=({children:e,label:t,long:r=!1,style:o,disabled:i})=>((0,yk.useEffect)(()=>()=>Cc().classList.remove("excalidraw-tooltip--visible"),[]),i?null:(0,Ek.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:a=>nF(a.currentTarget,Cc(),t,r),onPointerLeave:()=>Cc().classList.remove("excalidraw-tooltip--visible"),style:o,children:e}));var Ol=w(M(),1),iF=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?W.CAPTURE:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Ol.jsx)(hm,{palette:null,topPicks:Zu,label:E("labels.canvasBackground"),type:"canvasBackground",color:t.viewBackgroundColor,onChange:i=>r({viewBackgroundColor:i}),"data-testid":"canvas-background-picker",elements:e,appState:t,updateData:r})}),zi=re({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:kn,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=>ke(i,{isDeleted:!0})),appState:{...As(),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:W.CAPTURE})}),_g=re({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Ox,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Mi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Pi(t.zoom.value+sl)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ol.jsx)(Ie,{type:"button",className:"zoom-in-button zoom-button",icon:Ox,title:`${E("buttons.zoomIn")} \u2014 ${X("CtrlOrCmd++")}`,"aria-label":E("buttons.zoomIn"),disabled:t.zoom.value>=_x,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.EQUAL||e.code===Ne.NUM_ADD)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),Ag=re({name:"zoomOut",label:"buttons.zoomOut",icon:Fx,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Mi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Pi(t.zoom.value-sl)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ol.jsx)(Ie,{type:"button",className:"zoom-out-button zoom-button",icon:Fx,title:`${E("buttons.zoomOut")} \u2014 ${X("CtrlOrCmd+-")}`,"aria-label":E("buttons.zoomOut"),disabled:t.zoom.value<=op,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.MINUS||e.code===Ne.NUM_SUBTRACT)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),aF=re({name:"resetZoom",label:"buttons.resetZoom",icon:z2,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Mi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Pi(1)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ol.jsx)(Oo,{label:E("buttons.resetZoom"),style:{height:"100%"},children:(0,Ol.jsxs)(Ie,{type:"button",className:"reset-zoom-button zoom-button",title:E("buttons.resetZoom"),"aria-label":E("buttons.resetZoom"),onClick:()=>{e(null)},children:[(t.zoom.value*100).toFixed(0),"%"]})}),keyTest:e=>(e.code===Ne.ZERO||e.code===Ne.NUM_ZERO)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),lF=(e,t)=>{let[r,o,i,a]=e,s=i-r,c=t.width/s,d=a-o,u=t.height/d,f=Math.min(c,u),m=Math.floor(f/sl)*sl;return Math.min(Math.max(m,op),1)},wk=({bounds:e,appState:t,fitToViewport:r=!1,viewportZoomFactor:o=.7})=>{let[i,a,s,c]=e,d=(i+s)/2,u=(a+c)/2,f,m,g;if(r){let h=s-i,b=c-a;f=Math.min(t.width/h,t.height/b)*Math.min(1,Math.max(o,.1)),f=Math.min(Math.max(f,op),_x);let y=t.width;if(t.openSidebar){let k=document.querySelector(".sidebar")?.offsetWidth??0;y=document.documentElement.getAttribute("dir")==="rtl"?t.width+k:t.width-k}m=y/2*(1/f)-d,g=t.height/2*(1/f)-u}else{f=lF(e,{width:t.width,height:t.height});let h=RI({scenePoint:{x:d,y:u},viewportDimensions:{width:t.width,height:t.height},zoom:{value:f}});m=h.scrollX,g=h.scrollY}return{appState:{...t,scrollX:m,scrollY:g,zoom:{value:f}},storeAction:W.NONE}},xm=({targetElements:e,appState:t,fitToViewport:r,viewportZoomFactor:o})=>{let i=lt(We(e));return wk({bounds:i,appState:t,fitToViewport:r,viewportZoomFactor:o})},sJ=re({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:Np,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return xm({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!1})},keyTest:e=>e.code===Ne.TWO&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),cJ=re({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:Np,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return xm({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!0})},keyTest:e=>e.code===Ne.THREE&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),sF=re({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:Np,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t)=>xm({targetElements:e,appState:{...t,userToFollow:null},fitToViewport:!1}),keyTest:e=>e.code===Ne.ONE&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),Nl=re({name:"toggleTheme",label:(e,t)=>t.theme===Be.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:e=>e.theme===Be.LIGHT?Dd:Nd,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r)=>({appState:{...t,theme:r||(t.theme===Be.LIGHT?Be.DARK:Be.LIGHT)},storeAction:W.NONE}),keyTest:e=>e.altKey&&e.shiftKey&&e.code===Ne.D,predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.toggleTheme}),dJ=re({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(e,t)=>{let r;return jo(t)?r=Gt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):r=Gt(t,{type:"eraser",lastActiveToolBeforeEraser:t.activeTool}),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:r},storeAction:W.CAPTURE}},keyTest:e=>e.key===R.E}),Sk=re({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:Ap,viewMode:!1,perform:(e,t,r,o)=>{let i;return Si(t)?i=Gt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(i=Gt(t,{type:"hand",lastActiveToolBeforeEraser:t.activeTool}),ft(o.interactiveCanvas,pt.GRAB)),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:i},storeAction:W.CAPTURE}},keyTest:e=>!e.altKey&&!e[R.CTRL_OR_CMD]&&e.key===R.H});v();var Tk=w(M(),1),Fo=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:b}=t.editingLinearElement,y=Le.getElement(g,c);if(y)return Ei(y)&&jp(y,h,b,c,s),{elements:y.points.length<2||_l(y)?e.filter(T=>T.id!==y.id):void 0,appState:{...t,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:W.CAPTURE}}let d=e,u=t.pendingImageElementId&&s.getElement(t.pendingImageElementId);u&&ce(u,{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:b}=f;(!b||h[h.length-1]!==b)&&ce(f,{points:f.points.slice(0,-1)})}_l(f)&&(d=d.filter(h=>h.id!==f.id));let g=Kd(f.points,t.zoom.value);if((f.type==="line"||f.type==="freedraw")&&g){let h=f.points,b=h[0];ce(f,{points:h.map((y,T)=>T===h.length-1?[b[0],b[1]]:y)})}if(Ei(f)&&!g&&f.points.length>1){let[h,b]=Le.getPointAtIndexGlobalCoordinates(f,-1,Re(e));Hd(f,t,{x:h,y:b},c,e)}}(!t.activeTool.locked&&t.activeTool.type!=="freedraw"||!f)&&Jo(i);let m;return t.activeTool.type==="eraser"?m=Gt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=Gt(t,{type:"selection"}),{elements:d,appState:{...t,cursorButton:"up",activeTool:(t.activeTool.locked||t.activeTool.type==="freedraw")&&f?t.activeTool:m,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&&Qe(f)?new Le(f):t.selectedLinearElement,pendingImageElementId:null},storeAction:W.CAPTURE}},keyTest:(e,t)=>e.key===R.ESCAPE&&(t.editingLinearElement!==null||!t.draggingElement&&t.multiElement===null)||(e.key===R.ESCAPE||e.key===R.ENTER)&&t.multiElement!==null,PanelComponent:({appState:e,updateData:t,data:r})=>(0,Tk.jsx)(Ie,{type:"button",icon:Z2,title:E("buttons.done"),"aria-label":E("buttons.done"),onClick:t,visible:e.multiElement!=null,size:r?.size||"medium"})});v();v();var Ck=w(j(),1);var vm=w(M(),1),Ik=e=>{let{id:t}=sr(),[r,o]=(0,Ck.useState)(e.value),i=s=>{e.ignoreFocus||n2(s.target);let c=s.target.value;c!==e.value&&e.onChange(c)},a=s=>{if(s.key===R.ENTER){if(s.preventDefault(),s.nativeEvent.isComposing||s.keyCode===229)return;s.currentTarget.blur()}};return(0,vm.jsxs)("div",{className:"ProjectName",children:[(0,vm.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${e.label}:`}),(0,vm.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(M(),1),Ak=e=>{let t=e.title||(e.value===Be.DARK?E("buttons.lightMode"):E("buttons.darkMode"));return(0,Ic.jsx)(Ie,{type:"icon",icon:e.value===Be.LIGHT?_k.MOON:_k.SUN,title:t,"aria-label":t,onClick:()=>e.onChange(e.value===Be.DARK?Be.LIGHT:Be.DARK),"data-testid":"toggle-dark-mode"})},_k={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 Fl=(e,{selectedElementIds:t},r)=>{e=We(e);let o=r&&gt(e,{selectedElementIds:t}),i=null,a=o?Oe(e,{selectedElementIds:t},{includeBoundTextElement:!0}):e;return o&&(a.length===1&&He(a[0])?(i=a[0],a=df(e,i)):a.length>1&&(a=Oe(e,{selectedElementIds:t},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:i,exportedElements:vo(a)}},Bl=async(e,t,r,o,{exportBackground:i,exportPadding:a=ca,viewBackgroundColor:s,name:c=r.name||ZS,fileHandle:d=null,exportingFrame:u=null})=>{if(t.length===0)throw new Error(E("alerts.cannotExportEmptyCanvas"));if(e==="svg"||e==="clipboard-svg"){let m=rf(t,{exportBackground:i,exportWithDarkMode:r.exportWithDarkMode,viewBackgroundColor:s,exportPadding:a,exportScale:r.exportScale,exportEmbedScene:r.exportEmbedScene&&e==="svg"},o,{exportingFrame:u});if(e==="svg")return ov(m.then(g=>new Blob([g.outerHTML],{type:Lr.svg})),{description:"Export to SVG",name:c,extension:r.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:d});if(e==="clipboard-svg"){let g=await m.then(h=>h.outerHTML);try{await Ws(g)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return}}let f=WC(t,r,o,{exportBackground:i,viewBackgroundColor:s,exportPadding:a,exportingFrame:u});if(e==="png"){let m=Ci(f);return r.exportEmbedScene&&(m=m.then(g=>import("./excalidraw-assets/image-X3GFZHNN.js").then(({encodePngMetadata:h})=>h({blob:g,metadata:nv(t,r,o,"local")})))),ov(m,{description:"Export to PNG",name:c,extension:"png",fileHandle:d})}else if(e==="clipboard")try{let m=Ci(f);await qC(m)}catch(m){throw console.warn(m),m.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):vi&&m.name==="TypeError"?new Error(`${E("alerts.couldNotCopyToClipboard")}
61
62
 
62
- ${E("hints.firefox_clipboard_write")}`):new Error(E("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};v();var lT=async(e,t,r,o)=>{let{exportBackground:i,viewBackgroundColor:a,fileHandle:s}=t,c=P3(s);if(!s||!R3(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}=Ll(e,t,!1);return await Pl(c,d,t,r,{exportBackground:i,viewBackgroundColor:a,name:o,fileHandle:s,exportingFrame:p}),{fileHandle:s}};v();var sm=S(P(),1),Rl=({children:e,checked:t,onChange:r,className:o})=>(0,sm.jsxs)("div",{className:Q("Checkbox",o,{"is-checked":t}),onClick:i=>{r(!t,i),i.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,sm.jsx)("button",{type:"button",className:"Checkbox-box",role:"checkbox","aria-checked":t,children:v6}),(0,sm.jsx)("div",{className:"Checkbox-label",children:e})]});var Eo=S(P(),1),bx=ne({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(e,t,r)=>({appState:{...t,name:r},storeAction:Y.NONE}),PanelComponent:({appState:e,updateData:t,appProps:r,data:o,app:i})=>(0,Eo.jsx)(nT,{label:E("labels.fileTitle"),value:i.getName(),onChange:a=>t(a),ignoreFocus:o?.ignoreFocus??!1})}),sT=ne({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(e,t,r)=>({appState:{...t,exportScale:r},storeAction:Y.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Ze(e),a=xt(o,t)?Ge(o,t):o;return(0,Eo.jsx)(Eo.Fragment,{children:Zu.map(s=>{let[c,d]=l5(a,da,s),p=`${E("imageExportDialog.label.scale")} ${s}x (${c}x${d})`;return(0,Eo.jsx)(Ae,{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)})})}}),xx=ne({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(e,t,r)=>({appState:{...t,exportBackground:r},storeAction:Y.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Eo.jsx)(Rl,{checked:e.exportBackground,onChange:r=>t(r),children:E("imageExportDialog.label.withBackground")})}),Qf=ne({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(e,t,r)=>({appState:{...t,exportEmbedScene:r},storeAction:Y.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Eo.jsxs)(Rl,{checked:e.exportEmbedScene,onChange:r=>t(r),children:[E("imageExportDialog.label.embedScene"),(0,Eo.jsx)(Ro,{label:E("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,Eo.jsx)("div",{className:"excalidraw-tooltip-icon",children:T6})})]})}),eh=ne({name:"saveToActiveFile",label:"buttons.save",icon:El,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}=kp(t.fileHandle)?await lT(e,t,o.files,o.getName()):await Lp(e,t,o.files,o.getName());return{storeAction:Y.NONE,appState:{...t,fileHandle:a,toast:i?{message:a?.name?E("toast.fileSavedToFilename").replace("{filename}",`"${a.name}"`):E("toast.fileSaved")}:null}}}catch(a){return a?.name!=="AbortError"?console.error(a):console.warn(a),{storeAction:Y.NONE}}},keyTest:e=>e.key===R.S&&e[R.CTRL_OR_CMD]&&!e.shiftKey}),cm=ne({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:El,viewMode:!0,trackEvent:{category:"export"},perform:async(e,t,r,o)=>{try{let{fileHandle:i}=await Lp(e,{...t,fileHandle:null},o.files,o.getName());return{storeAction:Y.NONE,appState:{...t,openDialog:null,fileHandle:i,toast:{message:E("toast.fileSaved")}}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{storeAction:Y.NONE}}},keyTest:e=>e.key===R.S&&e.shiftKey&&e[R.CTRL_OR_CMD],PanelComponent:({updateData:e})=>(0,Eo.jsx)(Ae,{type:"button",icon:E6,title:E("buttons.saveAs"),"aria-label":E("buttons.saveAs"),showAriaLabel:it().editor.isMobile,hidden:!As,onClick:()=>e(null),"data-testid":"save-as-button"})}),pc=ne({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 P0(t,e);return{elements:i,appState:a,files:s,storeAction:Y.CAPTURE}}catch(i){return i?.name==="AbortError"?(console.warn(i),!1):{elements:e,appState:{...t,errorMessage:i.message},files:o.files,storeAction:Y.NONE}}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.O}),cT=ne({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(e,t,r)=>({appState:{...t,exportWithDarkMode:r},storeAction:Y.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Eo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,Eo.jsx)(aT,{value:e.exportWithDarkMode?He.DARK:He.LIGHT,onChange:r=>{t(r===He.DARK)},title:E("imageExportDialog.label.darkMode")})})});v();var dT="{}",vx=ne({name:"copyStyles",label:"labels.copyStyles",icon:vb,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=[],a=e.find(s=>t.selectedElementIds[s.id]);if(i.push(a),a&&jn(a)){let s=ct(a,o.scene.getNonDeletedElementsMap());i.push(s)}return a&&(dT=JSON.stringify(i)),{appState:{...t,toast:{message:E("toast.copyStyles")}},storeAction:Y.NONE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.C}),yx=ne({name:"pasteStyles",label:"labels.pasteStyles",icon:vb,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=JSON.parse(dT),a=i[0],s=i[1];if(!Yw(a))return{elements:e,storeAction:Y.NONE};let c=Ge(e,t,{includeBoundTextElement:!0}),d=c.map(p=>p.id);return{elements:e.map(p=>{if(d.includes(p.id)){let f=a;if(ve(p)&&p.containerId&&(f=s),!f)return p;let m=De(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?Zw(f.roundness.type,p)?f.roundness:Xw(p):null});if(ve(m)){let h=f.fontSize||kn,b=f.fontFamily||ps;m=De(m,{fontSize:h,fontFamily:b,textAlign:f.textAlign||Uu,lineHeight:f.lineHeight||Ii(b)});let y=null;m.containerId&&(y=c.find(w=>ve(m)&&w.id===m.containerId)||null),Ur(m,y,o.scene.getNonDeletedElementsMap())}return m.type==="arrow"&&Hr(f)&&(m=De(m,{startArrowhead:f.startArrowhead,endArrowhead:f.endArrowhead})),Ve(p)&&(m=De(m,{roundness:null,backgroundColor:"transparent"})),m}return p}),storeAction:Y.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.V});v();var Ex=S(P(),1),qO=ne({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="canvas"?null:"canvas"},storeAction:Y.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Ex.jsx)(Ae,{type:"button",icon:lf,"aria-label":E("buttons.menu"),onClick:t,selected:e.openMenu==="canvas"})}),JO=ne({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="shape"?null:"shape"},storeAction:Y.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Ex.jsx)(Ae,{visible:Ds(t,Ze(e)),type:"button",icon:w6,"aria-label":E("buttons.edit"),onClick:r,selected:t.openMenu==="shape"})}),Dl=ne({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:g6,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:Y.NONE}),keyTest:e=>e.key===R.QUESTION_MARK});v();var Nl=S(P(),1),QO=e=>{if(e.length>=2){let t=e[0].groupIds;for(let r of t)if(e.reduce((o,i)=>o&&Is(i,r),!0))return!0}return!1},mT=(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0});return o.length>=2&&!QO(o)},wx=ne({name:"group",label:"labels.group",icon:e=>(0,Nl.jsx)(fb,{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:Y.NONE};let a=Mn(t);if(a.length===1){let C=a[0],M=new Set(Zt(e,C).map(N=>N.id)),_=new Set(i.map(N=>N.id));if(new Set([...Array.from(M),...Array.from(_)]).size===M.size)return{appState:t,elements:e,storeAction:Y.NONE}}let s=[...e];new Set(i.map(C=>C.frameId)).size>1&&f5(i).forEach((M,_)=>{zp(M,o.scene.getNonDeletedElementsMap())});let d=fa(),p=Oe(i);s=s.map(C=>p.get(C.id)?De(C,{groupIds:w3(C.groupIds,d,t.editingGroupId)}):C);let f=Zt(s,d),m=f[f.length-1],h=s.lastIndexOf(m),b=s.slice(h+1),y=s.slice(0,h).filter(C=>!Is(C,d)),w=Mo([...y,...f,...b],Oe(f));return{appState:{...t,...b3(d,{...t,selectedGroupIds:{}},Ze(s))},elements:w,storeAction:Y.CAPTURE}},predicate:(e,t,r,o)=>mT(e,t,o),keyTest:e=>!e.shiftKey&&e[R.CTRL_OR_CMD]&&e.key===R.G,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Nl.jsx)(Ae,{hidden:!mT(e,t,o),type:"button",icon:(0,Nl.jsx)(fb,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.group")} \u2014 ${X("CtrlOrCmd+G")}`,"aria-label":E("labels.group"),visible:xt(Ze(e),t)})}),Cx=ne({name:"ungroup",label:"labels.ungroup",icon:e=>(0,Nl.jsx)(hb,{theme:e.theme}),trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=Mn(t),a=Oe(e);if(i.length===0)return{appState:t,elements:e,storeAction:Y.NONE};let s=[...e],c=[];s=s.map(h=>{nr(h)&&c.push(h.id);let b=C3(h.groupIds,t.selectedGroupIds);return b.length===h.groupIds.length?h:De(h,{groupIds:b})});let d=Pr(t,Ze(s),t,null),p=o.scene.getSelectedElements(t),f=new Set(p.filter(h=>h.frameId).map(h=>h.frameId));return h5(e).filter(h=>f.has(h.id)).forEach(h=>{h&&(s=Bp(s,Rs(s,h,t,a),h,o))}),d.selectedElementIds=Object.entries(d.selectedElementIds).reduce((h,[b,y])=>(y&&!c.includes(b)&&(h[b]=!0),h),{}),{appState:{...t,...d},elements:s,storeAction:Y.CAPTURE}},keyTest:e=>e.shiftKey&&e[R.CTRL_OR_CMD]&&e.key===R.G.toUpperCase(),predicate:(e,t)=>Mn(t).length>0,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Nl.jsx)(Ae,{type:"button",hidden:Mn(t).length===0,icon:(0,Nl.jsx)(hb,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.ungroup")} \u2014 ${X("CtrlOrCmd+Shift+G")}`,"aria-label":E("labels.ungroup"),visible:xt(Ze(e),t)})});v();v();v();var th=(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 eF(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 Ol=(e,t)=>`hsl(${Math.abs(eF(t?.id||e))%37*10}, 100%, 83%)`,uT=e=>{let t=e?.trim()?.codePointAt(0);return(t?String.fromCodePoint(t):"?").toUpperCase()},pT=({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,m=14,h=c<0||c>o-f||d<0||d>i-m;c=Math.max(c,0),c=Math.min(c,o-f),d=Math.max(d,0),d=Math.min(d,i-m);let b=Ol(a,p);e.save(),e.strokeStyle=b,e.fillStyle=b;let y=t.remotePointerUserStates.get(a),w=h||y==="idle"||y==="away";w&&(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=b,e.stroke(),e.closePath());let C=r.theme===He.DARK?"#2f6330":mw,M=p?.isSpeaking;M&&(e.fillStyle=C,e.strokeStyle=C,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=cd,e.strokeStyle=cd,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=b,e.strokeStyle=b,e.lineWidth=2,e.lineJoin="round",e.beginPath(),w?(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 _=t.remotePointerUsernames.get(a)||"";if(!h&&_){e.font="600 12px sans-serif";let I=(M?c+0:c)+f/2,N=(M?d+0:d)+m+2,$=5,D=3,z=e.measureText(_),B=z.actualBoundingBoxDescent+z.actualBoundingBoxAscent,q=Math.max(B,12),V=I-1,te=N-1,me=z.width+2+$*2+2,K=q+2+D*2+2;if(e.roundRect?(e.beginPath(),e.roundRect(V,te,me,K,8),e.fillStyle=b,e.fill(),e.strokeStyle=cd,e.stroke(),M&&(e.beginPath(),e.roundRect(V-2,te-2,me+4,K+4,8),e.strokeStyle=C,e.stroke())):th(e,V,te,me,K,8,cd),e.fillStyle=dw,e.fillText(_,I+$+1,N+D+z.actualBoundingBoxAscent+Math.floor((q-B)/2)+2),M){e.fillStyle=C;let de=8,Ee=8,Ie=5;e.fillRect(V+me+Ee,te+(K/2-de/2),2,de),e.fillRect(V+me+Ee+Ie,te+(K/2-de*2/2),2,de*2),e.fillRect(V+me+Ee+Ie*2,te+(K/2-de/2),2,de)}}e.restore(),e.closePath()}};v();var fT=S(ee(),1);var Sx=S(P(),1),Tx=({color:e,onClick:t,name:r,src:o,className:i})=>{let a=uT(r),[s,c]=(0,fT.useState)(!1),d=!s&&o,p=d?void 0:{background:e};return(0,Sx.jsx)("div",{className:Q("Avatar",i),style:p,onClick:t,children:d?(0,Sx.jsx)("img",{className:"Avatar-img",src:o,alt:a,referrerPolicy:"no-referrer",onError:()=>c(!0)}):a})};var Zr=S(P(),1),tF=ne({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:Y.NONE}:{appState:{...t,userToFollow:{socketId:r.socketId,username:r.username||""},openMenu:t.openMenu==="canvas"?null:t.openMenu},storeAction:Y.NONE},PanelComponent:({updateData:e,data:t,appState:r})=>{let{socketId:o,collaborator:i,withName:a,isBeingFollowed:s}=t,c=Ol(o,i),d=Q({"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,Zr.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:E("userList.hint.isSpeaking"),children:[(0,Zr.jsx)("div",{}),(0,Zr.jsx)("div",{}),(0,Zr.jsx)("div",{})]}):i.isMuted?(0,Zr.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:E("userList.hint.micMuted"),children:w4}):(0,Zr.jsx)("div",{title:E("userList.hint.inCall"),children:E4}):null;return a?(0,Zr.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${d}`,style:{"--avatar-size":"1.5rem"},onClick:()=>e(i),children:[(0,Zr.jsx)(Tx,{color:c,onClick:()=>{},name:i.username||"",src:i.avatarUrl,className:d}),(0,Zr.jsx)("div",{className:"UserList__collaborator-name",children:i.username}),(0,Zr.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[s&&(0,Zr.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:E("userList.hint.followStatus"),children:Vs}),p]})]}):(0,Zr.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${d}`,children:[(0,Zr.jsx)(Tx,{color:c,onClick:()=>{e(i)},name:i.username||"",src:i.avatarUrl,className:d}),p&&(0,Zr.jsx)("div",{className:"UserList__collaborator-status-icon",children:p})]})}});v();var Ix=ne({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 Ju)if(i.some(s=>s.type===a))return{storeAction:Y.NONE,appState:{...t,errorMessage:E(`errors.libraryElementTypeError.${a}`)}};return o.library.getLatestLibrary().then(a=>o.library.setLibrary([{id:fa(),status:"unpublished",elements:i.map(ks),created:Date.now()},...a])).then(()=>({storeAction:Y.NONE,appState:{...t,toast:{message:E("toast.addedToLibrary")}}})).catch(a=>({storeAction:Y.NONE,appState:{...t,errorMessage:a.message}}))},label:"labels.addToLibrary"});v();v();var hT=(e,t,r)=>{let o=hl(e,t),i=jo(e);return o.flatMap(a=>{let s=rF(a,i,r);return a.map(c=>De(c,{x:c.x+s.x,y:c.y+s.y}))})},rF=(e,t,{axis:r,position:o})=>{let i=jo(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 Fl=S(P(),1),ln=(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return i.length>1&&!i.some(a=>Ve(a))},fc=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=Oe(e),s=hT(i,a,o),c=Oe(s);return qn(e.map(d=>c.get(d.id)||d),t,r)},oF=ne({name:"alignTop",label:"labels.alignTop",icon:sb,trackEvent:{category:"element"},predicate:ln,perform:(e,t,r,o)=>({appState:t,elements:fc(e,t,o,{position:"start",axis:"y"}),storeAction:Y.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_UP,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Fl.jsx)(Ae,{hidden:!ln(e,t,null,o),type:"button",icon:sb,onClick:()=>r(null),title:`${E("labels.alignTop")} \u2014 ${X("CtrlOrCmd+Shift+Up")}`,"aria-label":E("labels.alignTop"),visible:xt(Ze(e),t)})}),nF=ne({name:"alignBottom",label:"labels.alignBottom",icon:cb,trackEvent:{category:"element"},predicate:ln,perform:(e,t,r,o)=>({appState:t,elements:fc(e,t,o,{position:"end",axis:"y"}),storeAction:Y.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_DOWN,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Fl.jsx)(Ae,{hidden:!ln(e,t,null,o),type:"button",icon:cb,onClick:()=>r(null),title:`${E("labels.alignBottom")} \u2014 ${X("CtrlOrCmd+Shift+Down")}`,"aria-label":E("labels.alignBottom"),visible:xt(Ze(e),t)})}),iF=ne({name:"alignLeft",label:"labels.alignLeft",icon:db,trackEvent:{category:"element"},predicate:ln,perform:(e,t,r,o)=>({appState:t,elements:fc(e,t,o,{position:"start",axis:"x"}),storeAction:Y.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_LEFT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Fl.jsx)(Ae,{hidden:!ln(e,t,null,o),type:"button",icon:db,onClick:()=>r(null),title:`${E("labels.alignLeft")} \u2014 ${X("CtrlOrCmd+Shift+Left")}`,"aria-label":E("labels.alignLeft"),visible:xt(Ze(e),t)})}),aF=ne({name:"alignRight",label:"labels.alignRight",icon:mb,trackEvent:{category:"element"},predicate:ln,perform:(e,t,r,o)=>({appState:t,elements:fc(e,t,o,{position:"end",axis:"x"}),storeAction:Y.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_RIGHT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Fl.jsx)(Ae,{hidden:!ln(e,t,null,o),type:"button",icon:mb,onClick:()=>r(null),title:`${E("labels.alignRight")} \u2014 ${X("CtrlOrCmd+Shift+Right")}`,"aria-label":E("labels.alignRight"),visible:xt(Ze(e),t)})}),lF=ne({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:ub,trackEvent:{category:"element"},predicate:ln,perform:(e,t,r,o)=>({appState:t,elements:fc(e,t,o,{position:"center",axis:"y"}),storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Fl.jsx)(Ae,{hidden:!ln(e,t,null,o),type:"button",icon:ub,onClick:()=>r(null),title:E("labels.centerVertically"),"aria-label":E("labels.centerVertically"),visible:xt(Ze(e),t)})}),sF=ne({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:pb,trackEvent:{category:"element"},predicate:ln,perform:(e,t,r,o)=>({appState:t,elements:fc(e,t,o,{position:"center",axis:"x"}),storeAction:Y.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Fl.jsx)(Ae,{hidden:!ln(e,t,null,o),type:"button",icon:pb,onClick:()=>r(null),title:E("labels.centerHorizontally"),"aria-label":E("labels.centerHorizontally"),visible:xt(Ze(e),t)})});v();v();var gT=(e,t,r)=>{let[o,i,a,s]=r.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],c=jo(e),d=hl(e,t).map(h=>[h,jo(h)]).sort((h,b)=>h[1][i]-b[1][i]),p=0;for(let h of d)p+=h[1][s];let f=(c[s]-p)/(d.length-1);if(f<0){let h=d.findIndex(C=>C[1][o]===c[o]),b=d.findIndex(C=>C[1][a]===c[a]),y=(d[b][1][i]-d[h][1][i])/(d.length-1),w=d[h][1][i];return d.flatMap(([C,M],_)=>{let I={x:0,y:0};return _!==h&&_!==b&&(w+=y,I[r.axis]=w-M[i]),C.map(N=>De(N,{x:N.x+I.x,y:N.y+I.y}))})}let m=c[o];return d.flatMap(([h,b])=>{let y={x:0,y:0};return y[r.axis]=m-b[o],m+=f,m+=b[s],h.map(w=>De(w,{x:w.x+y.x,y:w.y+y.y}))})};var kx=S(P(),1),bT=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length>1&&!r.some(o=>Ve(o))},xT=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=gT(i,r.scene.getNonDeletedElementsMap(),o),s=Oe(a);return qn(e.map(c=>s.get(c.id)||c),t,r)},cF=ne({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:xT(e,t,o,{space:"between",axis:"x"}),storeAction:Y.CAPTURE}),keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.H,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,kx.jsx)(Ae,{hidden:!bT(t,o),type:"button",icon:A6,onClick:()=>r(null),title:`${E("labels.distributeHorizontally")} \u2014 ${X("Alt+H")}`,"aria-label":E("labels.distributeHorizontally"),visible:xt(Ze(e),t)})}),dF=ne({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:xT(e,t,o,{space:"between",axis:"y"}),storeAction:Y.CAPTURE}),keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.V,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,kx.jsx)(Ae,{hidden:!bT(t,o),type:"button",icon:M6,onClick:()=>r(null),title:`${E("labels.distributeVertically")} \u2014 ${X("Alt+V")}`,"aria-label":E("labels.distributeVertically"),visible:xt(Ze(e),t)})});v();var _x=ne({name:"flipHorizontal",label:"labels.flipHorizontal",icon:I4,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:qn(vT(e,o.scene.getNonDeletedElementsMap(),t,"horizontal",o),t,o),appState:t,storeAction:Y.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Be.H}),Ax=ne({name:"flipVertical",label:"labels.flipVertical",icon:T4,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:qn(vT(e,o.scene.getNonDeletedElementsMap(),t,"vertical",o),t,o),appState:t,storeAction:Y.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Be.V&&!e[R.CTRL_OR_CMD]}),vT=(e,t,r,o,i)=>{let a=Ge(Ze(e),r,{includeBoundTextElement:!0,includeElementsInFrames:!0}),s=mF(a,t,r,o,i),c=Oe(s);return e.map(d=>c.get(d.id)||d)},mF=(e,t,r,o,i)=>{let{minX:a,minY:s,maxX:c,maxY:d}=jo(e);return k5(t,e,t,"nw",!0,!0,o==="horizontal"?c:a,o==="horizontal"?s:d),Sd(e.filter(lt),i,ul(r),[]),e};v();var hc=ne({name:"copy",label:"labels.copy",icon:Hd,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await d5(i,o.files,r)}catch(a){return{storeAction:Y.NONE,appState:{...t,errorMessage:a.message}}}return{storeAction:Y.NONE}},keyTest:void 0}),Mx=ne({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i;try{i=await m5()}catch(a){return a.name==="AbortError"||a.name==="NotAllowedError"?!1:(console.error(`actionPaste ${a.name}: ${a.message}`),yi?{storeAction:Y.NONE,appState:{...t,errorMessage:E("hints.firefox_clipboard_write")}}:{storeAction:Y.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnRead")}})}try{o.pasteFromClipboard(c5({types:i}))}catch(a){return console.error(a),{storeAction:Y.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnParse")}}}return{storeAction:Y.NONE}},keyTest:void 0}),rh=ne({name:"cut",label:"labels.cut",icon:m4,trackEvent:{category:"element"},perform:(e,t,r,o)=>(hc.perform(e,t,r,o),Kd.perform(e,t,null,o)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.X}),oh=ne({name:"copyAsSvg",label:"labels.copyAsSvg",icon:k4,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:Y.NONE};let{exportedElements:i,exportingFrame:a}=Ll(e,t,!0);try{return await Pl("clipboard-svg",i,t,o.files,{...t,exportingFrame:a,name:o.getName()}),{storeAction:Y.NONE}}catch(s){return console.error(s),{appState:{...t,errorMessage:s.message},storeAction:Y.NONE}}},predicate:e=>N0&&e.length>0,keywords:["svg","clipboard","copy"]}),nh=ne({name:"copyAsPng",label:"labels.copyAsPng",icon:_4,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:Y.NONE};let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:a,exportingFrame:s}=Ll(e,t,!0);try{return await Pl("clipboard",a,t,o.files,{...t,exportingFrame:s,name:o.getName()}),{appState:{...t,toast:{message:E("toast.copyToClipboardAsPng",{exportSelection:i.length?E("toast.selection"):E("toast.canvas"),exportColorScheme:t.exportWithDarkMode?E("buttons.darkMode"):E("buttons.lightMode")})}},storeAction:Y.NONE}}catch(c){return console.error(c),{appState:{...t,errorMessage:c.message},storeAction:Y.NONE}}},predicate:e=>Ls&&e.length>0,keyTest:e=>e.code===Be.C&&e.altKey&&e.shiftKey,keywords:["png","clipboard","copy"]}),ih=ne({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)=>(ve(c)&&s.push(c.text),s),[]).join(`
63
+ ${E("hints.firefox_clipboard_write")}`):new Error(E("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};v();var kk=async(e,t,r,o)=>{let{exportBackground:i,viewBackgroundColor:a,fileHandle:s}=t,c=mC(s);if(!s||!uC(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:u}=Fl(e,t,!1);return await Bl(c,d,t,r,{exportBackground:i,viewBackgroundColor:a,name:o,fileHandle:s,exportingFrame:u}),{fileHandle:s}};v();var ym=w(M(),1),zl=({children:e,checked:t,onChange:r,className:o})=>(0,ym.jsxs)("div",{className:q("Checkbox",o,{"is-checked":t}),onClick:i=>{r(!t,i),i.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,ym.jsx)("button",{type:"button",className:"Checkbox-box",role:"checkbox","aria-checked":t,children:W2}),(0,ym.jsx)("div",{className:"Checkbox-label",children:e})]});var Co=w(M(),1),zy=re({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(e,t,r)=>({appState:{...t,name:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t,appProps:r,data:o,app:i})=>(0,Co.jsx)(Ik,{label:E("labels.fileTitle"),value:i.getName(),onChange:a=>t(a),ignoreFocus:o?.ignoreFocus??!1})}),Pk=re({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(e,t,r)=>({appState:{...t,exportScale:r},storeAction:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=We(e),a=gt(o,t)?Oe(o,t):o;return(0,Co.jsx)(Co.Fragment,{children:ap.map(s=>{let[c,d]=KC(a,ca,s),u=`${E("imageExportDialog.label.scale")} ${s}x (${c}x${d})`;return(0,Co.jsx)(Ie,{size:"small",type:"radio",icon:`${s}x`,name:"export-canvas-scale",title:u,"aria-label":u,id:"export-canvas-scale",checked:s===t.exportScale,onChange:()=>r(s)},s)})})}}),$y=re({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(e,t,r)=>({appState:{...t,exportBackground:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Co.jsx)(zl,{checked:e.exportBackground,onChange:r=>t(r),children:E("imageExportDialog.label.withBackground")})}),kg=re({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(e,t,r)=>({appState:{...t,exportEmbedScene:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Co.jsxs)(zl,{checked:e.exportEmbedScene,onChange:r=>t(r),children:[E("imageExportDialog.label.embedScene"),(0,Co.jsx)(Oo,{label:E("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,Co.jsx)("div",{className:"excalidraw-tooltip-icon",children:q2})})]})}),Pg=re({name:"saveToActiveFile",label:"buttons.save",icon:bl,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 kk(e,t,o.files,o.getName()):await Fp(e,t,o.files,o.getName());return{storeAction:W.NONE,appState:{...t,fileHandle:a,toast:i?{message:a?.name?E("toast.fileSavedToFilename").replace("{filename}",`"${a.name}"`):E("toast.fileSaved")}:null}}}catch(a){return a?.name!=="AbortError"?console.error(a):console.warn(a),{storeAction:W.NONE}}},keyTest:e=>e.key===R.S&&e[R.CTRL_OR_CMD]&&!e.shiftKey}),Em=re({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:bl,viewMode:!0,trackEvent:{category:"export"},perform:async(e,t,r,o)=>{try{let{fileHandle:i}=await Fp(e,{...t,fileHandle:null},o.files,o.getName());return{storeAction:W.NONE,appState:{...t,openDialog:null,fileHandle:i,toast:{message:E("toast.fileSaved")}}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{storeAction:W.NONE}}},keyTest:e=>e.key===R.S&&e.shiftKey&&e[R.CTRL_OR_CMD],PanelComponent:({updateData:e})=>(0,Co.jsx)(Ie,{type:"button",icon:Y2,title:E("buttons.saveAs"),"aria-label":E("buttons.saveAs"),showAriaLabel:rt().editor.isMobile,hidden:!Os,onClick:()=>e(null),"data-testid":"save-as-button"})}),_c=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 iv(t,e);return{elements:i,appState:a,files:s,storeAction:W.CAPTURE}}catch(i){return i?.name==="AbortError"?(console.warn(i),!1):{elements:e,appState:{...t,errorMessage:i.message},files:o.files,storeAction:W.NONE}}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.O}),Mk=re({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(e,t,r)=>({appState:{...t,exportWithDarkMode:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Co.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,Co.jsx)(Ak,{value:e.exportWithDarkMode?Be.DARK:Be.LIGHT,onChange:r=>{t(r===Be.DARK)},title:E("imageExportDialog.label.darkMode")})})});v();var Lk="{}",Hy=re({name:"copyStyles",label:"labels.copyStyles",icon:rv,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=[],a=e.find(s=>t.selectedElementIds[s.id]);if(i.push(a),a&&yo(a)){let s=je(a,o.scene.getNonDeletedElementsMap());i.push(s)}return a&&(Lk=JSON.stringify(i)),{appState:{...t,toast:{message:E("toast.copyStyles")}},storeAction:W.NONE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.C}),Uy=re({name:"pasteStyles",label:"labels.pasteStyles",icon:rv,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=JSON.parse(Lk),a=i[0],s=i[1];if(!g2(a))return{elements:e,storeAction:W.NONE};let c=Oe(e,t,{includeBoundTextElement:!0}),d=c.map(u=>u.id);return{elements:e.map(u=>{if(d.includes(u.id)){let f=a;if(he(u)&&u.containerId&&(f=s),!f)return u;let m=ke(u,{backgroundColor:f?.backgroundColor,strokeWidth:f?.strokeWidth,strokeColor:f?.strokeColor,strokeStyle:f?.strokeStyle,fillStyle:f?.fillStyle,opacity:f?.opacity,roughness:f?.roughness,roundness:f.roundness?h2(f.roundness.type,u)?f.roundness:b2(u):null});if(he(m)){let g=f.fontSize||Es,h=f.fontFamily||ws;m=ke(m,{fontSize:g,fontFamily:h,textAlign:f.textAlign||ep,lineHeight:f.lineHeight||Ii(h)});let b=null;m.containerId&&(b=c.find(y=>he(m)&&y.id===m.containerId)||null),qt(m,b,o.scene.getNonDeletedElementsMap())}return m.type==="arrow"&&_t(f)&&(m=ke(m,{startArrowhead:f.startArrowhead,endArrowhead:f.endArrowhead})),He(u)&&(m=ke(m,{roundness:null,backgroundColor:"transparent"})),m}return u}),storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.V});v();var Gy=w(M(),1),cF=re({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="canvas"?null:"canvas"},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Gy.jsx)(Ie,{type:"button",icon:wp,"aria-label":E("buttons.menu"),onClick:t,selected:e.openMenu==="canvas"})}),dF=re({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="shape"?null:"shape"},storeAction:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Gy.jsx)(Ie,{visible:qs(t,We(e)),type:"button",icon:V2,"aria-label":E("buttons.edit"),onClick:r,selected:t.openMenu==="shape"})}),$l=re({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:H2,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:W.NONE}),keyTest:e=>e.key===R.QUESTION_MARK});v();var Hl=w(M(),1),mF=e=>{if(e.length>=2){let t=e[0].groupIds;for(let r of t)if(e.reduce((o,i)=>o&&ks(i,r),!0))return!0}return!1},Rk=(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0});return o.length>=2&&!mF(o)},Wy=re({name:"group",label:"labels.group",icon:e=>(0,Hl.jsx)(jx,{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:W.NONE};let a=_n(t);if(a.length===1){let T=a[0],k=new Set(Kt(e,T).map(O=>O.id)),I=new Set(i.map(O=>O.id));if(new Set([...Array.from(k),...Array.from(I)]).size===k.size)return{appState:t,elements:e,storeAction:W.NONE}}let s=[...e];new Set(i.map(T=>T.frameId)).size>1&&JC(i).forEach((k,I)=>{sf(k,o.scene.getNonDeletedElementsMap())});let d=fa(),u=Re(i);s=s.map(T=>u.get(T.id)?ke(T,{groupIds:C2(T.groupIds,d,t.editingGroupId)}):T);let f=Kt(s,d),m=f[f.length-1],g=s.lastIndexOf(m),h=s.slice(g+1),b=s.slice(0,g).filter(T=>!ks(T,d)),y=Do([...b,...f,...h],Re(f));return{appState:{...t,...y2(d,{...t,selectedGroupIds:{}},We(s))},elements:y,storeAction:W.CAPTURE}},predicate:(e,t,r,o)=>Rk(e,t,o),keyTest:e=>!e.shiftKey&&e[R.CTRL_OR_CMD]&&e.key===R.G,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Hl.jsx)(Ie,{hidden:!Rk(e,t,o),type:"button",icon:(0,Hl.jsx)(jx,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.group")} \u2014 ${X("CtrlOrCmd+G")}`,"aria-label":E("labels.group"),visible:gt(We(e),t)})}),Ky=re({name:"ungroup",label:"labels.ungroup",icon:e=>(0,Hl.jsx)(Jx,{theme:e.theme}),trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=_n(t),a=Re(e);if(i.length===0)return{appState:t,elements:e,storeAction:W.NONE};let s=[...e],c=[];s=s.map(g=>{Ir(g)&&c.push(g.id);let h=I2(g.groupIds,t.selectedGroupIds);return h.length===g.groupIds.length?g:ke(g,{groupIds:h})});let d=Rr(t,We(s),t,null),u=o.scene.getSelectedElements(t),f=new Set(u.filter(g=>g.frameId).map(g=>g.frameId));return QC(e).filter(g=>f.has(g.id)).forEach(g=>{g&&(s=cf(s,Ks(s,g,t,a),g,o))}),d.selectedElementIds=Object.entries(d.selectedElementIds).reduce((g,[h,b])=>(b&&!c.includes(h)&&(g[h]=!0),g),{}),{appState:{...t,...d},elements:s,storeAction:W.CAPTURE}},keyTest:e=>e.shiftKey&&e[R.CTRL_OR_CMD]&&e.key===R.G.toUpperCase(),predicate:(e,t)=>_n(t).length>0,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Hl.jsx)(Ie,{type:"button",hidden:_n(t).length===0,icon:(0,Hl.jsx)(Jx,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.ungroup")} \u2014 ${X("CtrlOrCmd+Shift+G")}`,"aria-label":E("labels.ungroup"),visible:gt(We(e),t)})});v();v();v();var Mg=(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 uF(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 Ul=(e,t)=>`hsl(${Math.abs(uF(t?.id||e))%37*10}, 100%, 83%)`,Dk=e=>{let t=e?.trim()?.codePointAt(0);return(t?String.fromCodePoint(t):"?").toUpperCase()},Nk=({context:e,renderConfig:t,appState:r,normalizedWidth:o,normalizedHeight:i})=>{for(let[a,s]of t.remotePointerViewportCoords){let{x:c,y:d}=s,u=r.collaborators.get(a);c-=r.offsetLeft,d-=r.offsetTop;let f=11,m=14,g=c<0||c>o-f||d<0||d>i-m;c=Math.max(c,0),c=Math.min(c,o-f),d=Math.max(d,0),d=Math.min(d,i-m);let h=Ul(a,u);e.save(),e.strokeStyle=h,e.fillStyle=h;let b=t.remotePointerUserStates.get(a),y=g||b==="idle"||b==="away";y&&(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===Be.DARK?"#2f6330":LS,k=u?.isSpeaking;k&&(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=Td,e.strokeStyle=Td,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(),y?(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 C=(k?c+0:c)+f/2,O=(k?d+0:d)+m+2,z=5,L=3,F=e.measureText(I),D=F.actualBoundingBoxDescent+F.actualBoundingBoxAscent,V=Math.max(D,12),U=C-1,Q=O-1,me=F.width+2+z*2+2,K=V+2+L*2+2;if(e.roundRect?(e.beginPath(),e.roundRect(U,Q,me,K,8),e.fillStyle=h,e.fill(),e.strokeStyle=Td,e.stroke(),k&&(e.beginPath(),e.roundRect(U-2,Q-2,me+4,K+4,8),e.strokeStyle=T,e.stroke())):Mg(e,U,Q,me,K,8,Td),e.fillStyle=MS,e.fillText(I,C+z+1,O+L+F.actualBoundingBoxAscent+Math.floor((V-D)/2)+2),k){e.fillStyle=T;let se=8,be=8,_e=5;e.fillRect(U+me+be,Q+(K/2-se/2),2,se),e.fillRect(U+me+be+_e,Q+(K/2-se*2/2),2,se*2),e.fillRect(U+me+be+_e*2,Q+(K/2-se/2),2,se)}}e.restore(),e.closePath()}};v();var Ok=w(j(),1);var Yy=w(M(),1),Vy=({color:e,onClick:t,name:r,src:o,className:i})=>{let a=Dk(r),[s,c]=(0,Ok.useState)(!1),d=!s&&o,u=d?void 0:{background:e};return(0,Yy.jsx)("div",{className:q("Avatar",i),style:u,onClick:t,children:d?(0,Yy.jsx)("img",{className:"Avatar-img",src:o,alt:a,referrerPolicy:"no-referrer",onError:()=>c(!0)}):a})};var Kr=w(M(),1),pF=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:W.NONE}:{appState:{...t,userToFollow:{socketId:r.socketId,username:r.username||""},openMenu:t.openMenu==="canvas"?null:t.openMenu},storeAction:W.NONE},PanelComponent:({updateData:e,data:t,appState:r})=>{let{socketId:o,collaborator:i,withName:a,isBeingFollowed:s}=t,c=Ul(o,i),d=q({"is-followed":s,"is-current-user":i.isCurrentUser===!0,"is-speaking":i.isSpeaking,"is-in-call":i.isInCall,"is-muted":i.isMuted}),u=i.isInCall?i.isSpeaking?(0,Kr.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:E("userList.hint.isSpeaking"),children:[(0,Kr.jsx)("div",{}),(0,Kr.jsx)("div",{}),(0,Kr.jsx)("div",{})]}):i.isMuted?(0,Kr.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:E("userList.hint.micMuted"),children:KT}):(0,Kr.jsx)("div",{title:E("userList.hint.inCall"),children:WT}):null;return a?(0,Kr.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${d}`,style:{"--avatar-size":"1.5rem"},onClick:()=>e(i),children:[(0,Kr.jsx)(Vy,{color:c,onClick:()=>{},name:i.username||"",src:i.avatarUrl,className:d}),(0,Kr.jsx)("div",{className:"UserList__collaborator-name",children:i.username}),(0,Kr.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[s&&(0,Kr.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:E("userList.hint.followStatus"),children:Ns}),u]})]}):(0,Kr.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${d}`,children:[(0,Kr.jsx)(Vy,{color:c,onClick:()=>{e(i)},name:i.username||"",src:i.avatarUrl,className:d}),u&&(0,Kr.jsx)("div",{className:"UserList__collaborator-status-icon",children:u})]})}});v();var Xy=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 dp)if(i.some(s=>s.type===a))return{storeAction:W.NONE,appState:{...t,errorMessage:E(`errors.libraryElementTypeError.${a}`)}};return o.library.getLatestLibrary().then(a=>o.library.setLibrary([{id:fa(),status:"unpublished",elements:i.map(Fs),created:Date.now()},...a])).then(()=>({storeAction:W.NONE,appState:{...t,toast:{message:E("toast.addedToLibrary")}}})).catch(a=>({storeAction:W.NONE,appState:{...t,errorMessage:a.message}}))},label:"labels.addToLibrary"});v();v();var Fk=(e,t,r)=>{let o=gl(e,t),i=tn(e);return o.flatMap(a=>{let s=fF(a,i,r);return a.map(c=>ke(c,{x:c.x+s.x,y:c.y+s.y}))})},fF=(e,t,{axis:r,position:o})=>{let i=tn(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 Gl=w(M(),1),cn=(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return i.length>1&&!i.some(a=>He(a))},Ac=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=Re(e),s=Fk(i,a,o),c=Re(s);return Vn(e.map(d=>c.get(d.id)||d),t,r)},gF=re({name:"alignTop",label:"labels.alignTop",icon:Kx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"start",axis:"y"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_UP,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Kx,onClick:()=>r(null),title:`${E("labels.alignTop")} \u2014 ${X("CtrlOrCmd+Shift+Up")}`,"aria-label":E("labels.alignTop"),visible:gt(We(e),t)})}),hF=re({name:"alignBottom",label:"labels.alignBottom",icon:Yx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"end",axis:"y"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_DOWN,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Yx,onClick:()=>r(null),title:`${E("labels.alignBottom")} \u2014 ${X("CtrlOrCmd+Shift+Down")}`,"aria-label":E("labels.alignBottom"),visible:gt(We(e),t)})}),bF=re({name:"alignLeft",label:"labels.alignLeft",icon:Vx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"start",axis:"x"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_LEFT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Vx,onClick:()=>r(null),title:`${E("labels.alignLeft")} \u2014 ${X("CtrlOrCmd+Shift+Left")}`,"aria-label":E("labels.alignLeft"),visible:gt(We(e),t)})}),xF=re({name:"alignRight",label:"labels.alignRight",icon:Xx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"end",axis:"x"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_RIGHT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Xx,onClick:()=>r(null),title:`${E("labels.alignRight")} \u2014 ${X("CtrlOrCmd+Shift+Right")}`,"aria-label":E("labels.alignRight"),visible:gt(We(e),t)})}),vF=re({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Zx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"center",axis:"y"}),storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Zx,onClick:()=>r(null),title:E("labels.centerVertically"),"aria-label":E("labels.centerVertically"),visible:gt(We(e),t)})}),yF=re({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:qx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"center",axis:"x"}),storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:qx,onClick:()=>r(null),title:E("labels.centerHorizontally"),"aria-label":E("labels.centerHorizontally"),visible:gt(We(e),t)})});v();v();var Bk=(e,t,r)=>{let[o,i,a,s]=r.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],c=tn(e),d=gl(e,t).map(g=>[g,tn(g)]).sort((g,h)=>g[1][i]-h[1][i]),u=0;for(let g of d)u+=g[1][s];let f=(c[s]-u)/(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]),b=(d[h][1][i]-d[g][1][i])/(d.length-1),y=d[g][1][i];return d.flatMap(([T,k],I)=>{let C={x:0,y:0};return I!==g&&I!==h&&(y+=b,C[r.axis]=y-k[i]),T.map(O=>ke(O,{x:O.x+C.x,y:O.y+C.y}))})}let m=c[o];return d.flatMap(([g,h])=>{let b={x:0,y:0};return b[r.axis]=m-h[o],m+=f,m+=h[s],g.map(y=>ke(y,{x:y.x+b.x,y:y.y+b.y}))})};var Zy=w(M(),1),zk=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length>1&&!r.some(o=>He(o))},$k=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=Bk(i,r.scene.getNonDeletedElementsMap(),o),s=Re(a);return Vn(e.map(c=>s.get(c.id)||c),t,r)},EF=re({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:$k(e,t,o,{space:"between",axis:"x"}),storeAction:W.CAPTURE}),keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.H,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Zy.jsx)(Ie,{hidden:!zk(t,o),type:"button",icon:J2,onClick:()=>r(null),title:`${E("labels.distributeHorizontally")} \u2014 ${X("Alt+H")}`,"aria-label":E("labels.distributeHorizontally"),visible:gt(We(e),t)})}),wF=re({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:$k(e,t,o,{space:"between",axis:"y"}),storeAction:W.CAPTURE}),keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.V,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Zy.jsx)(Ie,{hidden:!zk(t,o),type:"button",icon:Q2,onClick:()=>r(null),title:`${E("labels.distributeVertically")} \u2014 ${X("Alt+V")}`,"aria-label":E("labels.distributeVertically"),visible:gt(We(e),t)})});v();var qy=re({name:"flipHorizontal",label:"labels.flipHorizontal",icon:ZT,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Vn(Hk(e,o.scene.getNonDeletedElementsMap(),t,"horizontal",o),t,o),appState:t,storeAction:W.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Ne.H}),jy=re({name:"flipVertical",label:"labels.flipVertical",icon:XT,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Vn(Hk(e,o.scene.getNonDeletedElementsMap(),t,"vertical",o),t,o),appState:t,storeAction:W.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Ne.V&&!e[R.CTRL_OR_CMD]}),Hk=(e,t,r,o,i)=>{let a=Oe(We(e),r,{includeBoundTextElement:!0,includeElementsInFrames:!0}),s=SF(a,t,r,o,i),c=Re(s);return e.map(d=>c.get(d.id)||d)},SF=(e,t,r,o,i)=>{let{minX:a,minY:s,maxX:c,maxY:d}=tn(e);return II(t,e,t,"nw",!0,!0,o==="horizontal"?c:a,o==="horizontal"?s:d,i.scene),wl(e.filter(Qe),t,i.scene.getNonDeletedElements(),i.scene,El(r),[]),e};v();var kc=re({name:"copy",label:"labels.copy",icon:Rd,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await XC(i,o.files,r)}catch(a){return{storeAction:W.NONE,appState:{...t,errorMessage:a.message}}}return{storeAction:W.NONE}},keyTest:void 0}),Jy=re({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i;try{i=await ZC()}catch(a){return a.name==="AbortError"||a.name==="NotAllowedError"?!1:(console.error(`actionPaste ${a.name}: ${a.message}`),vi?{storeAction:W.NONE,appState:{...t,errorMessage:E("hints.firefox_clipboard_write")}}:{storeAction:W.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnRead")}})}try{o.pasteFromClipboard(VC({types:i}))}catch(a){return console.error(a),{storeAction:W.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnParse")}}}return{storeAction:W.NONE}},keyTest:void 0}),Lg=re({name:"cut",label:"labels.cut",icon:DT,trackEvent:{category:"element"},perform:(e,t,r,o)=>(kc.perform(e,t,r,o),rm.perform(e,t,null,o)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.X}),Rg=re({name:"copyAsSvg",label:"labels.copyAsSvg",icon:qT,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:W.NONE};let{exportedElements:i,exportingFrame:a}=Fl(e,t,!0);try{return await Bl("clipboard-svg",i,t,o.files,{...t,exportingFrame:a,name:o.getName()}),{storeAction:W.NONE}}catch(s){return console.error(s),{appState:{...t,errorMessage:s.message},storeAction:W.NONE}}},predicate:e=>hv&&e.length>0,keywords:["svg","clipboard","copy"]}),Dg=re({name:"copyAsPng",label:"labels.copyAsPng",icon:jT,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:W.NONE};let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:a,exportingFrame:s}=Fl(e,t,!0);try{return await Bl("clipboard",a,t,o.files,{...t,exportingFrame:s,name:o.getName()}),{appState:{...t,toast:{message:E("toast.copyToClipboardAsPng",{exportSelection:i.length?E("toast.selection"):E("toast.canvas"),exportColorScheme:t.exportWithDarkMode?E("buttons.darkMode"):E("buttons.lightMode")})}},storeAction:W.NONE}}catch(c){return console.error(c),{appState:{...t,errorMessage:c.message},storeAction:W.NONE}}},predicate:e=>Gs&&e.length>0,keyTest:e=>e.code===Ne.C&&e.altKey&&e.shiftKey,keywords:["png","clipboard","copy"]}),Ng=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)=>(he(c)&&s.push(c.text),s),[]).join(`
63
64
 
64
- `);try{Ps(a)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return{storeAction:Y.NONE}},predicate:(e,t,r,o)=>N0&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0}).some(ve),keywords:["text","clipboard","copy"]});v();var ah=ne({name:"gridMode",icon:R4,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:Ei,objectsSnapModeEnabled:!1},storeAction:Y.NONE}},checked:e=>e.gridSize!==null,predicate:(e,t,r)=>typeof r.gridModeEnabled>"u",keyTest:e=>e[R.CTRL_OR_CMD]&&e.code===Be.QUOTE});v();var gc=ne({name:"zenMode",label:"buttons.zenMode",icon:M4,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.zenModeEnabled},perform(e,t){return{appState:{...t,zenModeEnabled:!this.checked(t)},storeAction:Y.NONE}},checked:e=>e.zenModeEnabled,predicate:(e,t,r)=>typeof r.zenModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.Z});v();var Lx=ne({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:A4,viewMode:!1,trackEvent:{category:"canvas",predicate:e=>!e.objectsSnapModeEnabled},perform(e,t){return{appState:{...t,objectsSnapModeEnabled:!this.checked(t),gridSize:null},storeAction:Y.NONE}},checked:e=>e.objectsSnapModeEnabled,predicate:(e,t,r)=>typeof r.objectsSnapModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.S});v();var bc=ne({name:"stats",label:"stats.fullTitle",icon:S4,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:Y.NONE}},checked:e=>e.stats.open,keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.SLASH});v();var Px=ne({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>o.scene.getSelectedElements(t).some(a=>jn(a)),perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=o.scene.getNonDeletedElementsMap();return i.forEach(s=>{let c=ct(s,a);if(c){let{width:d,height:p}=Ti(c.originalText,Lr(c),c.lineHeight),f=a3(s.id);i3(s.id);let{x:m,y:h}=fp(s,c,a);pe(c,{containerId:null,width:d,height:p,text:c.originalText,x:m,y:h}),pe(s,{boundElements:s.boundElements?.filter(b=>b.id!==c.id),height:f||s.height})}}),{elements:e,appState:t,storeAction:Y.CAPTURE}}}),Rx=ne({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=ve(i[0])||ve(i[1]),s;if(Ci(i[0])?s=i[0]:Ci(i[1])&&(s=i[1]),a&&s&&ct(s,o.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a,s;ve(i[0])&&Ci(i[1])?(a=i[0],s=i[1]):(a=i[1],s=i[0]),pe(a,{containerId:s.id,verticalAlign:Vo.MIDDLE,textAlign:dd.CENTER,autoResize:!0}),pe(s,{boundElements:(s.boundElements||[]).concat({type:"text",id:a.id})});let c=s.height;return Ur(a,s,o.scene.getNonDeletedElementsMap()),kd(s.id,c),{elements:uF(e,s,a),appState:{...t,selectedElementIds:{[s.id]:!0}},storeAction:Y.CAPTURE}}}),uF=(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),Mo(o,Oe([t,r])),o},pF=(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),Mo(o,Oe([t,r])),o},yT=ne({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=i.every(s=>ve(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(ve(c)){let d=xa({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:bs("rectangle")?Ko.ADAPTIVE_RADIUS:Ko.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:c.x-c0,y:c.y-c0,width:Ss(c.width,"rectangle"),height:Ss(c.height,"rectangle"),groupIds:c.groupIds,frameId:c.frameId});if(c.boundElements?.length){let p=c.boundElements.filter(m=>m.type==="arrow").map(m=>m.id);a.filter(m=>p.includes(m.id)).forEach(m=>{let h=m.startBinding,b=m.endBinding;h?.elementId===c.id&&(h={...h,elementId:d.id}),b?.elementId===c.id&&(b={...b,elementId:d.id}),(h||b)&&pe(m,{startBinding:h,endBinding:b},!1)})}pe(c,{containerId:d.id,verticalAlign:Vo.MIDDLE,boundElements:null,textAlign:dd.CENTER,autoResize:!0},!1),Ur(c,d,o.scene.getNonDeletedElementsMap()),a=pF([...a,d],d,c),s[d.id]=!0}return{elements:a,appState:{...t,selectedElementIds:s},storeAction:Y.CAPTURE}}});v();v();var zn=S(ee(),1);var $i=S(P(),1),Ox=320,ET=85,Dx=5,fF=42,hF=500,Nx=!1,lh=new Map,wT=({element:e,elementsMap:t,setAppState:r,onLinkOpen:o,setToast:i,updateEmbedValidationStatus:a})=>{let s=Da(),c=Ra(),d=e.link||"",[p,f]=(0,zn.useState)(d),m=(0,zn.useRef)(null),h=s.showHyperlinkPopup==="editor",b=(0,zn.useCallback)(()=>{if(!m.current)return;let _=Ai(m.current.value)||null;if(!e.link&&_&&Ue("hyperlink","create"),$r(e)){if(s.activeEmbeddable?.element===e&&r({activeEmbeddable:null}),!_){pe(e,{link:null}),a(e,!1);return}if(!_s(_,c.validateEmbeddable))_&&i({message:E("toast.unableToEmbed"),closable:!0}),e.link&&lh.set(e.id,e.link),pe(e,{link:_}),a(e,!1);else{let{width:I,height:N}=e,$=gl(_);$?.error instanceof URIError&&i({message:E("toast.unrecognizedLinkFormat"),closable:!0});let D=$?$.intrinsicSize.w/$.intrinsicSize.h:1,z=lh.get(e.id)!==e.link;pe(e,{...z?{width:$?.type==="video"?I>N?I:N*D:I,height:$?.type==="video"&&I>N?I/D:N}:{},link:_}),a(e,!0),lh.has(e.id)&&lh.delete(e.id)}}else pe(e,{link:_})},[e,i,c.validateEmbeddable,s.activeEmbeddable,r,a]);(0,zn.useLayoutEffect)(()=>()=>{b()},[b]),(0,zn.useEffect)(()=>{let _=null,I=N=>{if(h)return;_&&clearTimeout(_),bF(e,t,s,[N.clientX,N.clientY])&&(_=window.setTimeout(()=>{r({showHyperlinkPopup:!1})},hF))};return window.addEventListener("pointermove",I,!1),()=>{window.removeEventListener("pointermove",I,!1),_&&clearTimeout(_)}},[s,e,h,r,t]);let y=(0,zn.useCallback)(()=>{Ue("hyperlink","delete"),pe(e,{link:null}),h&&(m.current.value=""),r({showHyperlinkPopup:!1})},[r,e,h]),w=()=>{Ue("hyperlink","edit","popup-ui"),r({showHyperlinkPopup:"editor"})},{x:C,y:M}=CT(e,s,t);return s.contextMenu||s.draggingElement||s.resizingElement||s.isRotating||s.openMenu||s.viewModeEnabled?null:(0,$i.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${M}px`,left:`${C}px`,width:Ox,padding:Dx},onClick:()=>{!e.link&&!h&&r({showHyperlinkPopup:"editor"})},children:[h?(0,$i.jsx)("input",{className:Q("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:m,value:p,onChange:_=>f(_.target.value),autoFocus:!0,onKeyDown:_=>{_.stopPropagation(),_[R.CTRL_OR_CMD]&&_.key===R.K&&_.preventDefault(),(_.key===R.ENTER||_.key===R.ESCAPE)&&(b(),r({showHyperlinkPopup:"info"}))}}):e.link?(0,$i.jsx)("a",{href:Ai(e.link||""),className:"excalidraw-hyperlinkContainer-link",target:Ep(e.link)?"_self":"_blank",onClick:_=>{if(e.link&&o){let I=rp("excalidraw-link",_.nativeEvent);o({...e,link:Ai(e.link)},I),I.defaultPrevented&&_.preventDefault()}},rel:"noopener noreferrer",children:e.link}):(0,$i.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:E("labels.link.empty")}),(0,$i.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!h&&(0,$i.jsx)(Ae,{type:"button",title:E("buttons.edit"),"aria-label":E("buttons.edit"),label:E("buttons.edit"),onClick:w,className:"excalidraw-hyperlinkContainer--edit",icon:$s}),d&&!$r(e)&&(0,$i.jsx)(Ae,{type:"button",title:E("buttons.remove"),"aria-label":E("buttons.remove"),label:E("buttons.remove"),onClick:y,className:"excalidraw-hyperlinkContainer--remove",icon:Dn})]})]})},CT=(e,t,r)=>{let[o,i]=Wr(e,r),{x:a,y:s}=no({sceneX:o+e.width/2,sceneY:i},t),c=a-t.offsetLeft-Ox/2,d=s-t.offsetTop-ET;return{x:c,y:d}},Fx=(e,t)=>{let r=Ge(e,t);return r[0]?.link?$r(r[0])?"labels.link.editEmbed":"labels.link.edit":$r(r[0])?"labels.link.createEmbed":"labels.link.create"},dm=null,ST=(e,t,r)=>{dm&&clearTimeout(dm),dm=window.setTimeout(()=>gF(e,t,r),vw)},gF=(e,t,r)=>{if(!e.link)return;let o=mc();o.classList.add("excalidraw-tooltip--visible"),o.style.maxWidth="20rem",o.textContent=e.link;let[i,a,s,c]=Wr(e,r),[d,p,f,m]=e5([i,a,s,c],e.angle,t),h=no({sceneX:d,sceneY:p},t);gx(o,{left:h.x,top:h.y,width:f,height:m},"top"),Ue("hyperlink","tooltip","link-icon"),Nx=!0},TT=()=>{dm&&clearTimeout(dm),Nx&&(Nx=!1,mc().classList.remove("excalidraw-tooltip--visible"))},bF=(e,t,r,[o,i])=>{let{x:a,y:s}=Dt({clientX:o,clientY:i},r),c=15/r.zoom.value;if(q3(a,s,e,t))return!1;let[d,p,f]=Wr(e,t);if(a>=d&&a<=f&&s>=p-ET&&s<=p)return!1;let{x:m,y:h}=CT(e,r,t);return!(o>=m-c&&o<=m+Ox+Dx*2+c&&i>=h-c&&i<=h+c+Dx*2+fF)};var IT=S(P(),1),mm=ne({name:"hyperlink",label:(e,t)=>Fx(e,t),icon:Gd,perform:(e,t)=>t.showHyperlinkPopup==="editor"?!1:{elements:e,appState:{...t,showHyperlinkPopup:"editor",openMenu:null},storeAction:Y.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.K,predicate:(e,t)=>Ge(e,t).length===1,PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Ge(e,t);return(0,IT.jsx)(Ae,{type:"button",icon:Gd,"aria-label":E(Fx(e,t)),title:`${$r(e[0])?E("labels.link.labelEmbed"):E("labels.link.label")} - ${X("CtrlOrCmd+K")}`,onClick:()=>r(null),selected:o.length===1&&!!o[0].link})}});v();var zx=e=>e.every(t=>!t.locked),Bx=ne({name:"toggleElementLock",label:(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return o.length===1&&!Ve(o[0])?o[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":zx(o)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(e,t)=>{let r=Ge(t,e);return zx(r)?Bs:yl},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=zx(i),s=Oe(i);return{elements:e.map(c=>s.has(c.id)?De(c,{locked:a}):c),appState:{...t,selectedLinearElement:a?null:t.selectedLinearElement},storeAction:Y.CAPTURE}},keyTest:(e,t,r,o)=>e.key.toLocaleLowerCase()===R.L&&e[R.CTRL_OR_CMD]&&e.shiftKey&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1}).length>0}),kT=ne({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:yl,predicate:(e,t)=>Ge(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?De(o,{locked:!1}):o),appState:{...t,selectedElementIds:Object.fromEntries(r.map(o=>[o.id,!0]))},storeAction:Y.CAPTURE}},label:"labels.elementLock.unlockAll"});v();v();var mn=S(ee(),1);v();var Ah=S(ee(),1);v();var sh=S(ee(),1),_T=()=>{let[e,t]=(0,sh.useState)(null),r=(0,sh.useCallback)(o=>t(o),[]);return[e,r]};v();var AT=S(ee(),1);var MT=S(P(),1),Or=AT.default.forwardRef(({children:e,padding:t,className:r,style:o},i)=>(0,MT.jsx)("div",{className:Q("Island",r),style:{"--padding":t,...o},ref:i,children:e}));v();var LT=S(Qn(),1);var PT=S(ee(),1),um=S(P(),1),RT=e=>{let{closeOnClickOutside:t=!0}=e,r=Zf({className:"excalidraw-modal-container"}),o=(0,PT.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!r)return null;let i=a=>{a.key===R.ESCAPE&&(a.nativeEvent.stopImmediatePropagation(),a.stopPropagation(),e.onCloseRequest())};return(0,LT.createPortal)((0,um.jsxs)("div",{className:Q("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,um.jsx)("div",{className:"Modal__background",onClick:t?e.onCloseRequest:void 0}),(0,um.jsx)("div",{className:"Modal__content",style:{"--max-width":`${e.maxWidth}px`},tabIndex:0,children:e.children})]}),r)};v();var No=S(ee(),1);v();var vc=S(ee(),1);v();var ch=S(ee(),1);var $x=It(new Map),DT=async e=>await Nd({elements:e,appState:{exportBackground:!1,viewBackgroundColor:vi.white},files:null,renderEmbeddables:!1}),NT=(e,t,r)=>{let[o,i]=(0,ch.useState)();return(0,ch.useEffect)(()=>{if(t)if(e){let a=r.get(e);a?i(a):(async()=>{let s=await DT(t);s.querySelector(".style-fonts")?.remove(),s&&(r.set(e,s),i(s))})()}else(async()=>{let a=await DT(t);i(a)})()},[e,t,r,i]),o},dh=()=>{let[e]=qe($x,ft);return{clearLibraryCache:()=>e.clear(),deleteItemsFromLibraryCache:o=>{o.forEach(i=>e.delete(i))},svgCache:e}};v();var mh=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(bd(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...r){let o=tp();return this.jobs.push({jobFactory:t,promise:o,args:r}),this.tick(),o}};var FT=new Qo,zl=It({status:"loaded",isInitialized:!1,libraryItems:[]}),pm=e=>Xn(e),xF=(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)),zT=(e,t)=>{let r=[];for(let o of t)xF(e,o)&&r.push(o);return[...r,...e]},BT=(e,t)=>{let r=Oe(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=Oe(e);for(let a of t)i.has(a.id)||o.addedItems.set(a.id,a);return o},Hx=class{currLibraryItems=[];prevLibraryItems=pm(this.currLibraryItems);app;constructor(t){this.app=t}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Gr.set(zl,t=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:t.isInitialized}));else{Gr.set(zl,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let t=this.prevLibraryItems;this.prevLibraryItems=pm(this.currLibraryItems);let r=pm(this.currLibraryItems);this.app.props.onLibraryChange?.(r),FT.trigger(BT(t,r),r)}catch(t){console.error(t)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Gr.set($x,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(pm(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:_n.name,tab:qu}}),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 A0(d,a):p=Pd(d,a),!r||window.confirm(E("alerts.confirmAddLibrary",{numShapes:p.length}))?(r&&this.app.focusContainer(),s(o?zT(this.currLibraryItems,p):p)):c(new xs)}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=pm(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}},$T=Hx,fh=e=>{let r=Math.ceil(Math.sqrt(e.length)),o=[],i=b=>e.slice(b*r,b*r+r).reduce((w,C)=>{let{height:M}=jo(C.elements);return Math.max(w,M)},0),a=b=>{let y=0,w=0,C=0;for(let M of e){if(y%r===0&&(w=0),w===b){let{width:_}=jo(M.elements);C=Math.max(C,_)}y++,w++}return C},s=0,c=0,d=0,p=0,f=0,m=0,h=0;for(let b of e){f&&f%r===0&&(c+=d+50,s=0,m=0,h++),m===0&&(d=i(h)),p=a(m);let{minX:y,minY:w,width:C,height:M}=jo(b.elements),_=(p-C)/2,I=(d-M)/2;o.push(...b.elements.map(N=>({...N,x:N.x+s+_-y,y:N.y+c+I-w}))),s+=p+50,f++,m++}return o},Ux=()=>{let e=new URLSearchParams(window.location.hash.slice(1)).get(Yu.addLibrary)||new URLSearchParams(window.location.search).get(Ku.addLibrary),t=e?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return e?{libraryUrl:e,idToken:t}:null},xc=class e{static queue=new mh;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)}},fm=0,uh=0,ph=e=>K0(e.map(t=>`${t.id}:${V0(t.elements)}`).sort().join()),OT=async(e,t)=>{try{return uh++,await xc.run(e,async r=>{let o=Oe(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=ph(a);return s!==fm&&await e.save({libraryItems:a}),fm=s,a})}finally{uh--}},vF=e=>{let{excalidrawAPI:t}=e,r=(0,vc.useRef)(e);r.current=e;let o=(0,vc.useRef)(!1);(0,vc.useEffect)(()=>{if(!t)return;o.current=!1;let i=async({libraryUrl:c,idToken:d})=>{let p=new Promise(async(m,h)=>{try{let y=await(await fetch(decodeURIComponent(c))).blob();m(y)}catch(b){h(b)}}),f=d!==t.id;await(f&&document.hidden?new Promise(m=>{window.addEventListener("focus",()=>m(),{once:!0})}):null);try{await t.updateLibrary({libraryItems:p,prompt:f,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(Yu.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(Yu.addLibrary),window.history.replaceState({},ad,`#${m.toString()}`)}else if(window.location.search.includes(Ku.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(Ku.addLibrary),window.history.replaceState({},ad,`?${m.toString()}`)}}},a=c=>{c.preventDefault();let d=Ux();d&&(c.stopImmediatePropagation(),window.history.replaceState({},"",c.oldURL),i(d))},s=Ux();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=tp();d?p.resolve(bd(d.load).then(async f=>{let m=null;try{if(!f)return xc.getLibraryItems(c,"load");m=Pd(f.libraryItems||[],"published");let h=await OT(c,BT([],m));try{await d.clear()}catch(b){console.error(`couldn't delete legacy library data: ${b.message}`)}return h}catch(h){return console.error(`couldn't migrate legacy library data: ${h.message}`),m}}).catch(f=>(console.error(`error during library migration: ${f.message}`),xc.getLibraryItems(c,"load")))):p.resolve(bd(xc.getLibraryItems,c,"load")),t.updateLibrary({libraryItems:p.then(f=>{let m=f||[];return fm=ph(m),m}),merge:!0}).finally(()=>{o.current=!0})}return window.addEventListener("hashchange",a),()=>{window.removeEventListener("hashchange",a)}},[t]),(0,vc.useEffect)(()=>{let i=FT.on(async(s,c)=>{let d=o.current,p="adapter"in r.current&&r.current.adapter||null;try{p&&fm!==ph(c)&&await OT(p,s)}catch(f){console.error(`couldn't persist library update: ${f.message}`,s),d&&r.current.excalidrawAPI&&r.current.excalidrawAPI.updateScene({appState:{errorMessage:E("errors.saveLibraryError")}})}}),a=s=>{uh&&zw(s)};return window.addEventListener("beforeunload",a),()=>{window.removeEventListener("beforeunload",a),i(),fm=0,uh=0}},[])};v();var Xr=S(ee(),1);v();var Wx=S(ee(),1);var Gx=S(P(),1),yF=(0,Wx.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,Gx.jsx)("div",{className:Q("Stack Stack_horizontal",i),style:{"--gap":t,alignItems:r,justifyContent:o,...a},ref:s,children:e})),EF=(0,Wx.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,Gx.jsx)("div",{className:Q("Stack Stack_vertical",i),style:{"--gap":t,justifyItems:r,justifyContent:o,...a},ref:s,children:e})),kr={Row:yF,Col:EF};v();v();var UT=S(P(),1),wF=({theme:e,id:t,libraryReturnUrl:r})=>{let o=r||window.location.origin+window.location.pathname;return(0,UT.jsx)("a",{className:"library-menu-browse-button",href:`${A.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${o}&useHash=true&token=${t}&theme=${e}&version=${Xu.excalidrawLibrary}`,target:"_excalidraw_libraries",children:E("labels.libraries")})},HT=wF;var gh=S(P(),1),hh=({libraryReturnUrl:e,theme:t,id:r,style:o,children:i,className:a})=>(0,gh.jsxs)("div",{className:Q("library-menu-control-buttons",a),style:o,children:[(0,gh.jsx)(HT,{id:r,libraryReturnUrl:e,theme:t}),i]});v();var Sc=S(ee(),1);v();var hm=S(ee(),1);var CF=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,SF=/{{([\w-]+)}}/,TF=/<([\w-]+)>/,IF=/<\/([\w-]+)>/,kF=(e,t)=>{let r=[{name:"",children:[]}];return e.split(CF).filter(Boolean).forEach(o=>{let i=o.match(TF),a=o.match(IF),s=o.match(SF);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=hm.default.createElement(hm.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},_F=({i18nKey:e,children:t,...r})=>{let{t:o}=sr();return hm.default.createElement(hm.default.Fragment,{},...kF(o(e),r))},co=_F;v();v();var Bl=S(P(),1),AF=({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,Bl.jsxs)("button",{className:Q("Dialog__action-button",d,r),type:a,"aria-label":e,onClick:t,...c,children:[o&&(0,Bl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:o}),(0,Bl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:e}),s&&(0,Bl.jsx)("div",{style:{position:"absolute",inset:0},children:(0,Bl.jsx)(Rr,{})})]})},yc=AF;var Ec=S(P(),1),MF=e=>{let{onConfirm:t,onCancel:r,children:o,confirmText:i=E("buttons.confirm"),cancelText:a=E("buttons.cancel"),className:s="",...c}=e,d=at(),p=Ri(wc,ft),{container:f}=Tr();return(0,Ec.jsxs)(Ut,{onCloseRequest:r,size:"small",...c,className:`confirm-dialog ${s}`,children:[o,(0,Ec.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Ec.jsx)(yc,{label:a,onClick:()=>{d({openMenu:null}),p(!1),r(),f?.focus()}}),(0,Ec.jsx)(yc,{label:i,onClick:()=>{d({openMenu:null}),p(!1),t(),f?.focus()},actionType:"danger"})]})]})},bh=MF;v();var Do=S(ee(),1);v();var wo=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 ke=S(P(),1),LF=async e=>{let o=Math.round(8),i=Math.max(Math.round(128/64),2),a=Nw(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=Sr.white,c.fillRect(0,0,s.width,s.height);for(let[d,p]of e.entries()){let f=await bl({elements:p.elements,files:null,maxWidthOrHeight:128}),{width:m,height:h}=f,b=Math.floor(d/6)*(128+o*2),y=d%6*(128+o*2);c.drawImage(f,y+(128-m)/2+o,b+(128-h)/2+o),c.lineWidth=i,c.strokeStyle=Sr.gray[4],c.strokeRect(y+o/2,b+o/2,128+o,128+o)}return await Rd(new File([await Mi(s)],"preview",{type:Mr.png}),{outputType:Mr.jpg,maxWidthOrHeight:5e3})},PF=({libItem:e,appState:t,index:r,onChange:o,onRemove:i})=>{let a=(0,Do.useRef)(null),s=(0,Do.useRef)(null);return(0,Do.useEffect)(()=>{let c=a.current;c&&(async()=>{let d=await Nd({elements:e.elements,appState:{...t,viewBackgroundColor:Sr.white,exportBackground:!0},files:null});c.innerHTML=d.outerHTML})()},[e.elements,t]),(0,ke.jsxs)("div",{className:"single-library-item",children:[e.status==="published"&&(0,ke.jsx)("span",{className:"single-library-item-status",children:E("labels.statusPublished")}),(0,ke.jsx)("div",{ref:a,className:"single-library-item__svg"}),(0,ke.jsx)(Ae,{"aria-label":E("buttons.remove"),type:"button",icon:rn,className:"single-library-item--remove",onClick:i.bind(null,e.id),title:E("buttons.remove")}),(0,ke.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,ke.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,ke.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,ke.jsx)("span",{style:{fontWeight:500,color:Sr.gray[6]},children:E("publishDialog.itemName")}),(0,ke.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ke.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,ke.jsx)("span",{className:"error",children:e.error})]})]})},RF=({onClose:e,libraryItems:t,appState:r,onSuccess:o,onError:i,updateItemsInStorage:a,onRemove:s})=>{let[c,d]=(0,Do.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[p,f]=(0,Do.useState)(!1);(0,Do.useEffect)(()=>{let I=wo.get(Yo.PUBLISH_LIBRARY);I&&d(I)},[]);let[m,h]=(0,Do.useState)(t.slice());(0,Do.useEffect)(()=>{h(t.slice())},[t]);let b=I=>{d({...c,[I.target.name]:I.target.value})},y=async I=>{I.preventDefault(),f(!0);let N=[],$=!1;if(m.forEach(te=>{let me="";te.name||(me=E("publishDialog.errors.required"),$=!0),N.push({...te,error:me})}),$){h(N),f(!1);return}let D=await LF(m),z={type:pw.excalidrawLibrary,version:Xu.excalidrawLibrary,source:fw,libraryItems:m},B=JSON.stringify(z,null,2),q=new Blob([B],{type:"application/json"}),V=new FormData;V.append("excalidrawLib",q),V.append("previewImage",D),V.append("previewImageType",D.type),V.append("title",c.name),V.append("authorName",c.authorName),V.append("githubHandle",c.githubHandle),V.append("name",c.name),V.append("description",c.description),V.append("twitterHandle",c.twitterHandle),V.append("website",c.website),fetch(`${A.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:V}).then(te=>te.ok?te.json().then(({url:me})=>{wo.delete(Yo.PUBLISH_LIBRARY),o({url:me,authorName:c.authorName,items:m})}):te.json().catch(()=>{throw new Error(te.statusText||"something went wrong")}).then(me=>{throw new Error(me.message||te.statusText||"something went wrong")}),te=>{console.error(te),i(te),f(!1)}).catch(te=>{console.error(te),i(te),f(!1)})},w=()=>{let I=[];return m.forEach((N,$)=>{I.push((0,ke.jsx)("div",{className:"single-library-item-wrapper",children:(0,ke.jsx)(PF,{libItem:N,appState:r,index:$,onChange:(D,z)=>{let B=m.slice();B[z].name=D,h(B)},onRemove:s})},$))}),(0,ke.jsx)("div",{className:"selected-library-items",children:I})},C=(0,Do.useCallback)(()=>{a(m),wo.set(Yo.PUBLISH_LIBRARY,c),e()},[m,e,a,c]),M=!!t.length,_=t.some(I=>I.status==="published");return(0,ke.jsx)(Ut,{onCloseRequest:C,title:E("publishDialog.title"),className:"publish-library",children:M?(0,ke.jsxs)("form",{onSubmit:y,children:[(0,ke.jsx)("div",{className:"publish-library-note",children:(0,ke.jsx)(co,{i18nKey:"publishDialog.noteDescription",link:I=>(0,ke.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:I})})}),(0,ke.jsx)("span",{className:"publish-library-note",children:(0,ke.jsx)(co,{i18nKey:"publishDialog.noteGuidelines",link:I=>(0,ke.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:I})})}),(0,ke.jsx)("div",{className:"publish-library-note",children:E("publishDialog.noteItems")}),_&&(0,ke.jsx)("span",{className:"publish-library-note publish-library-warning",children:E("publishDialog.republishWarning")}),w(),(0,ke.jsxs)("div",{className:"publish-library__fields",children:[(0,ke.jsxs)("label",{children:[(0,ke.jsxs)("div",{children:[(0,ke.jsx)("span",{children:E("publishDialog.libraryName")}),(0,ke.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ke.jsx)("input",{type:"text",name:"name",required:!0,value:c.name,onChange:b,placeholder:E("publishDialog.placeholder.libraryName")})]}),(0,ke.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,ke.jsxs)("div",{children:[(0,ke.jsx)("span",{children:E("publishDialog.libraryDesc")}),(0,ke.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ke.jsx)("textarea",{name:"description",rows:4,required:!0,value:c.description,onChange:b,placeholder:E("publishDialog.placeholder.libraryDesc")})]}),(0,ke.jsxs)("label",{children:[(0,ke.jsxs)("div",{children:[(0,ke.jsx)("span",{children:E("publishDialog.authorName")}),(0,ke.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ke.jsx)("input",{type:"text",name:"authorName",required:!0,value:c.authorName,onChange:b,placeholder:E("publishDialog.placeholder.authorName")})]}),(0,ke.jsxs)("label",{children:[(0,ke.jsx)("span",{children:E("publishDialog.githubUsername")}),(0,ke.jsx)("input",{type:"text",name:"githubHandle",value:c.githubHandle,onChange:b,placeholder:E("publishDialog.placeholder.githubHandle")})]}),(0,ke.jsxs)("label",{children:[(0,ke.jsx)("span",{children:E("publishDialog.twitterUsername")}),(0,ke.jsx)("input",{type:"text",name:"twitterHandle",value:c.twitterHandle,onChange:b,placeholder:E("publishDialog.placeholder.twitterHandle")})]}),(0,ke.jsxs)("label",{children:[(0,ke.jsx)("span",{children:E("publishDialog.website")}),(0,ke.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:E("publishDialog.errors.website"),value:c.website,onChange:b,placeholder:E("publishDialog.placeholder.website")})]}),(0,ke.jsx)("span",{className:"publish-library-note",children:(0,ke.jsx)(co,{i18nKey:"publishDialog.noteLicense",link:I=>(0,ke.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:I})})})]}),(0,ke.jsxs)("div",{className:"publish-library__buttons",children:[(0,ke.jsx)(yc,{label:E("buttons.cancel"),onClick:C,"data-testid":"cancel-clear-canvas-button"}),(0,ke.jsx)(yc,{type:"submit",label:E("buttons.submit"),actionType:"primary",isLoading:p})]})]}):(0,ke.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:E("publishDialog.atleastOneLibItem")})})},WT=RF;v();v();var KT=S(P(),1),GT=({className:e="",children:t,onToggle:r,title:o,...i})=>{let a=it(),s=Q(`dropdown-menu-button ${e}`,"zen-mode-transition",{"dropdown-menu-button--mobile":a.editor.isMobile}).trim();return(0,KT.jsx)("button",{"data-prevent-outside-click":!0,className:s,onClick:r,type:"button","data-testid":"dropdown-menu-button",title:o,...i,children:t})},VT=GT;GT.displayName="DropdownMenuTrigger";v();v();var xh=S(ee(),1);var Vx=xh.default.createContext({}),vh=(e="",t=!1)=>`dropdown-menu-item dropdown-menu-item-base ${e} ${t?"dropdown-menu-item--selected":""}`.trim(),yh=(e,t)=>{let r=(0,xh.useContext)(Vx);return ua(e,o=>{let i=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});t?.(i),i.defaultPrevented||r.onSelect?.(i)})};v();var Na=S(P(),1),DF=({icon:e,shortcut:t,children:r})=>{let o=it();return(0,Na.jsxs)(Na.Fragment,{children:[(0,Na.jsx)("div",{className:"dropdown-menu-item__icon",children:e}),(0,Na.jsx)("div",{className:"dropdown-menu-item__text",children:r}),t&&!o.editor.isMobile&&(0,Na.jsx)("div",{className:"dropdown-menu-item__shortcut",children:t})]})},Eh=DF;var wh=S(P(),1),Kx=({icon:e,onSelect:t,children:r,shortcut:o,className:i,selected:a,...s})=>{let c=yh(s.onClick,t);return(0,wh.jsx)("button",{...s,onClick:c,type:"button",className:vh(i,a),title:s.title??s["aria-label"],children:(0,wh.jsx)(Eh,{icon:e,shortcut:o,children:r})})};Kx.displayName="DropdownMenuItem";var YT=({children:e})=>(0,wh.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});YT.displayName="DropdownMenuItemBadge";Kx.Badge=YT;var sn=Kx;v();var jT=S(P(),1),ZT=()=>(0,jT.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),XT=ZT;ZT.displayName="DropdownMenuSeparator";v();var Ch=S(P(),1),qT=({children:e,className:t="",style:r,title:o})=>(0,Ch.jsxs)("div",{className:`dropdown-menu-group ${t}`,style:r,children:[o&&(0,Ch.jsx)("p",{className:"dropdown-menu-group-title",children:o}),e]}),JT=qT;qT.displayName="DropdownMenuGroup";v();var Sh=S(ee(),1);var gm=S(P(),1),QT=({children:e,onClickOutside:t,className:r="",onSelect:o,style:i})=>{let a=it(),s=(0,Sh.useRef)(null),c=dc({onClickOutside:t});cc(s,()=>{c.onClickOutside?.()}),(0,Sh.useEffect)(()=>{let p=m=>{m.key===R.ESCAPE&&(m.stopImmediatePropagation(),c.onClickOutside?.())},f={capture:!0};return document.addEventListener("keydown",p,f),()=>{document.removeEventListener("keydown",p,f)}},[c]);let d=Q(`dropdown-menu ${r}`,{"dropdown-menu--mobile":a.editor.isMobile}).trim();return(0,gm.jsx)(Vx.Provider,{value:{onSelect:o},children:(0,gm.jsx)("div",{ref:s,className:d,style:i,"data-testid":"dropdown-menu",children:a.editor.isMobile?(0,gm.jsx)(kr.Col,{className:"dropdown-menu-container",children:e}):(0,gm.jsx)(Or,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:e})})})};QT.displayName="DropdownMenuContent";var eI=QT;v();var Yx=S(P(),1),tI=({icon:e,shortcut:t,href:r,children:o,onSelect:i,className:a="",selected:s,...c})=>{let d=yh(c.onClick,i);return(0,Yx.jsx)("a",{...c,href:r,target:"_blank",rel:"noreferrer",className:vh(a,s),title:c.title??c["aria-label"],onClick:d,children:(0,Yx.jsx)(Eh,{icon:e,shortcut:t,children:o})})},Cc=tI;tI.displayName="DropdownMenuItemLink";v();var oI=S(P(),1),NF=({children:e,className:t="",selected:r,...o})=>(0,oI.jsx)("div",{...o,className:`dropdown-menu-item-base dropdown-menu-item-custom ${t} ${r?"dropdown-menu-item--selected":""}`.trim(),children:e}),rI=NF;v();var bm=S(ee(),1),nI=e=>{let t=bm.default.Children.toArray(e).find(r=>bm.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuTrigger");return t||null},iI=e=>{let t=bm.default.Children.toArray(e).find(r=>bm.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuContent");return t||null};var Th=S(P(),1),Hi=({children:e,open:t})=>{let r=nI(e),o=iI(e);return(0,Th.jsxs)(Th.Fragment,{children:[r,t&&o]})};Hi.Trigger=VT;Hi.Content=eI;Hi.Item=sn;Hi.ItemLink=Cc;Hi.ItemCustom=rI;Hi.Group=JT;Hi.Separator=XT;var ut=Hi;Hi.displayName="DropdownMenu";var dr=S(P(),1),OF=(e,t)=>e.filter(r=>t.includes(r.id)),FF=({setAppState:e,selectedItems:t,library:r,onRemoveFromLibrary:o,resetLibrary:i,onSelectItems:a,appState:s,className:c})=>{let[d]=qe(zl,ft),[p,f]=qe(wc,ft),m=()=>{let V=t.length?E("alerts.removeItemsFromsLibrary",{count:t.length}):E("alerts.resetLibrary"),te=t.length?E("confirmDialog.removeItemsFromLib"):E("confirmDialog.resetLibrary");return(0,dr.jsx)(bh,{onConfirm:()=>{t.length?o():i(),b(!1)},onCancel:()=>{b(!1)},title:te,children:(0,dr.jsx)("p",{children:V})})},[h,b]=(0,Sc.useState)(!1),y=!!t.length,w=y?d.libraryItems.filter(V=>t.includes(V.id)):d.libraryItems,C=y?E("buttons.remove"):E("buttons.resetLibrary"),[M,_]=(0,Sc.useState)(!1),[I,N]=(0,Sc.useState)(null),$=(0,Sc.useCallback)(()=>(0,dr.jsxs)(Ut,{onCloseRequest:()=>N(null),title:E("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,dr.jsx)("p",{children:(0,dr.jsx)(co,{i18nKey:"publishSuccessDialog.content",authorName:I.authorName,link:V=>(0,dr.jsx)("a",{href:I?.url,target:"_blank",rel:"noopener noreferrer",children:V})})}),(0,dr.jsx)(Ae,{type:"button",title:E("buttons.close"),"aria-label":E("buttons.close"),label:E("buttons.close"),onClick:()=>N(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[N,I]),D=(V,te)=>{_(!1),N({url:V.url,authorName:V.authorName});let me=te.slice();me.forEach(K=>{t.includes(K.id)&&(K.status="published")}),r.setLibrary(me)},z=async()=>{try{await r.updateLibrary({libraryItems:Ip({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(V){if(V?.name==="AbortError"){console.warn(V);return}e({errorMessage:E("errors.importLibraryError")})}},B=async()=>{let V=y?w:await r.getLatestLibrary();$3(V).catch(ep).catch(te=>{e({errorMessage:te.message})})},q=()=>(0,dr.jsxs)(ut,{open:p,children:[(0,dr.jsx)(ut.Trigger,{onToggle:()=>f(!p),children:Q5}),(0,dr.jsxs)(ut.Content,{onClickOutside:()=>f(!1),onSelect:()=>f(!1),className:"library-menu",children:[!y&&(0,dr.jsx)(ut.Item,{onSelect:z,icon:Us,"data-testid":"lib-dropdown--load",children:E("buttons.load")}),!!w.length&&(0,dr.jsx)(ut.Item,{onSelect:B,icon:El,"data-testid":"lib-dropdown--export",children:E("buttons.export")}),!!w.length&&(0,dr.jsx)(ut.Item,{onSelect:()=>b(!0),icon:Dn,children:C}),y&&(0,dr.jsx)(ut.Item,{icon:d4,onSelect:()=>_(!0),"data-testid":"lib-dropdown--remove",children:E("buttons.publishLibrary")})]})]});return(0,dr.jsxs)("div",{className:Q("library-menu-dropdown-container",c),children:[q(),t.length>0&&(0,dr.jsx)("div",{className:"library-actions-counter",children:t.length}),h&&m(),M&&(0,dr.jsx)(WT,{onClose:()=>_(!1),libraryItems:OF(d.libraryItems,t),appState:s,onSuccess:V=>D(V,d.libraryItems),onError:V=>window.alert(V),updateItemsInStorage:()=>r.setLibrary(d.libraryItems),onRemove:V=>a(t.filter(te=>te!==V))}),I&&$()]})},Zx=({selectedItems:e,onSelectItems:t,className:r})=>{let{library:o}=Yr(),{clearLibraryCache:i,deleteItemsFromLibraryCache:a}=dh(),s=st(),c=at(),[d]=qe(zl,ft),p=async m=>{let h=m.filter(b=>!e.includes(b.id));o.setLibrary(h).catch(()=>{c({errorMessage:E("alerts.errorRemovingFromLibrary")})}),a(e),t([])};return(0,dr.jsx)(FF,{appState:s,setAppState:c,selectedItems:e,onSelectItems:t,library:o,onRemoveFromLibrary:()=>p(d.libraryItems),resetLibrary:()=>{o.resetLibrary(),i()},className:r})};v();var Tc=S(ee(),1);v();var Oa=S(ee(),1);var $l=S(P(),1),aI=(0,Oa.memo)(({id:e,elements:t,isPending:r,onClick:o,selected:i,onToggle:a,onDrag:s,svgCache:c})=>{let d=(0,Oa.useRef)(null),p=NT(e,t,c);(0,Oa.useEffect)(()=>{let y=d.current;if(y)return p&&(y.innerHTML=p.outerHTML),()=>{y.innerHTML=""}},[p]);let[f,m]=(0,Oa.useState)(!1),h=it().editor.isMobile,b=r&&(0,$l.jsx)("div",{className:"library-unit__adder",children:J5});return(0,$l.jsxs)("div",{className:Q("library-unit",{"library-unit__active":t,"library-unit--hover":t&&f,"library-unit--selected":i,"library-unit--skeleton":!p}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,$l.jsx)("div",{className:Q("library-unit__dragger",{"library-unit__pulse":!!r}),ref:d,draggable:!!t,onClick:t||r?y=>{e&&y.shiftKey?a(e,y):o(e)}:void 0,onDragStart:y=>{if(!e){y.preventDefault();return}m(!1),s(e,y)}}),b,e&&t&&(f||h||i)&&(0,$l.jsx)(Rl,{checked:i,onChange:(y,w)=>a(e,w),className:"library-unit__checkbox"})]})}),lI=()=>(0,$l.jsx)("div",{className:"library-unit library-unit--skeleton"});v();var Ih=S(ee(),1);function zF(){return[!1,(0,Ih.useCallback)(t=>t(),[])]}var sI=Ih.default.useTransition||zF;var Hl=S(P(),1),Xx=({children:e})=>(0,Hl.jsx)("div",{className:"library-menu-items-container__grid",children:e}),kh=(0,Tc.memo)(({items:e,onItemSelectToggle:t,onItemDrag:r,isItemSelected:o,onClick:i,svgCache:a,itemsRenderedPerBatch:s})=>{let[,c]=sI(),[d,p]=(0,Tc.useState)(0);return(0,Tc.useEffect)(()=>{d<e.length&&c(()=>{p(d+s)})},[d,e.length,c,s]),(0,Hl.jsx)(Hl.Fragment,{children:e.map((f,m)=>m<d?(0,Hl.jsx)(aI,{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??m):(0,Hl.jsx)(lI,{},m))})});v();var pI=S(ee(),1);var fI=S(qx(),1),rz=It(0),hI=e=>{let[t,r]=qe(rz);return(0,pI.useEffect)(()=>{let{current:o}=e;if(!o)return;let i=(0,fI.default)(()=>{let{scrollTop:a}=o;r(a)},200);return o.addEventListener("scroll",i),()=>{i.cancel(),o.removeEventListener("scroll",i)}},[e,r]),t};var Ft=S(P(),1),oz=17,nz=64;function Jx({isLoading:e,libraryItems:t,onAddToLibrary:r,onInsertLibraryItems:o,pendingElements:i,theme:a,id:s,libraryReturnUrl:c,onSelectItems:d,selectedItems:p}){let f=(0,Xr.useRef)(null),m=hI(f);(0,Xr.useEffect)(()=>{m>0&&f.current?.scrollTo(0,m)},[]);let{svgCache:h}=dh(),b=(0,Xr.useMemo)(()=>t.filter(V=>V.status!=="published"),[t]),y=(0,Xr.useMemo)(()=>t.filter(V=>V.status==="published"),[t]),w=!t.length&&!i.length,C=!i.length&&!b.length&&!y.length,[M,_]=(0,Xr.useState)(null),I=(0,Xr.useCallback)((V,te)=>{let me=!p.includes(V),K=[...b,...y];if(me){if(te.shiftKey&&M){let de=K.findIndex(Se=>Se.id===M),Ee=K.findIndex(Se=>Se.id===V);if(de===-1||Ee===-1){d([...p,V]);return}let Ie=Oe(p),tt=K.reduce((Se,fe,W)=>((W>=de&&W<=Ee||Ie.has(fe.id))&&Se.push(fe.id),Se),[]);d(tt)}else d([...p,V]);_(V)}else _(null),d(p.filter(de=>de!==V))},[M,d,y,p,b]),N=(0,Xr.useCallback)(V=>{let te;return p.includes(V)?te=t.filter(me=>p.includes(me.id)):te=t.filter(me=>me.id===V),te.map(me=>({...me,elements:Tp(me.elements,{randomizeSeed:!0})}))},[t,p]),$=(0,Xr.useCallback)((V,te)=>{te.dataTransfer.setData(Mr.excalidrawlib,R0(N(V)))},[N]),D=(0,Xr.useCallback)(V=>V?p.includes(V):!1,[p]),z=(0,Xr.useCallback)(()=>{r(i)},[i,r]),B=(0,Xr.useCallback)(V=>{V&&o(N(V))},[N,o]),q=h.size>=t.length?nz:oz;return(0,Ft.jsxs)("div",{className:"library-menu-items-container",style:i.length||b.length||y.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!C&&(0,Ft.jsx)(Zx,{selectedItems:p,onSelectItems:d,className:"library-menu-dropdown-container--in-heading"}),(0,Ft.jsxs)(kr.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:y.length>0?1:"0 1 auto",marginBottom:0},ref:f,children:[(0,Ft.jsxs)(Ft.Fragment,{children:[!C&&(0,Ft.jsx)("div",{className:"library-menu-items-container__header",children:E("labels.personalLib")}),e&&(0,Ft.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,Ft.jsx)(Rr,{})}),!i.length&&!b.length?(0,Ft.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,Ft.jsx)("div",{className:"library-menu-items__no-items__label",children:E("library.noItems")}),(0,Ft.jsx)("div",{className:"library-menu-items__no-items__hint",children:y.length>0?E("library.hint_emptyPrivateLibrary"):E("library.hint_emptyLibrary")})]}):(0,Ft.jsxs)(Xx,{children:[i.length>0&&(0,Ft.jsx)(kh,{itemsRenderedPerBatch:q,items:[{id:null,elements:i}],onItemSelectToggle:I,onItemDrag:$,onClick:z,isItemSelected:D,svgCache:h}),(0,Ft.jsx)(kh,{itemsRenderedPerBatch:q,items:b,onItemSelectToggle:I,onItemDrag:$,onClick:B,isItemSelected:D,svgCache:h})]})]}),(0,Ft.jsxs)(Ft.Fragment,{children:[(y.length>0||i.length>0||b.length>0)&&(0,Ft.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:E("labels.excalidrawLib")}),y.length>0?(0,Ft.jsx)(Xx,{children:(0,Ft.jsx)(kh,{itemsRenderedPerBatch:q,items:y,onItemSelectToggle:I,onItemDrag:$,onClick:B,isItemSelected:D,svgCache:h})}):b.length>0?(0,Ft.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:E("library.noItems")}):null]}),w&&(0,Ft.jsx)(hh,{style:{padding:"16px 0",width:"100%"},id:s,libraryReturnUrl:c,theme:a,children:(0,Ft.jsx)(Zx,{selectedItems:p,onSelectItems:d})})]})]})}var cn=S(P(),1),wc=It(!1),gI=({children:e})=>(0,cn.jsx)("div",{className:"layer-ui__library",children:e}),iz=({onInsertLibraryItems:e,pendingElements:t,onAddToLibrary:r,setAppState:o,libraryReturnUrl:i,library:a,id:s,theme:c,selectedItems:d,onSelectItems:p})=>{let[f]=qe(zl,ft),m=(0,No.useCallback)(y=>{(async(C,M)=>{Ue("element","addToLibrary","ui");for(let I of Ju)if(C.some(N=>N.type===I))return o({errorMessage:E(`errors.libraryElementTypeError.${I}`)});let _=[{status:"unpublished",elements:C,id:fa(),created:Date.now()},...M];r(),a.setLibrary(_).catch(()=>{o({errorMessage:E("alerts.errorAddingToLibrary")})})})(y,f.libraryItems)},[r,a,o,f.libraryItems]),h=(0,No.useMemo)(()=>f.libraryItems,[f]);if(f.status==="loading"&&!f.isInitialized)return(0,cn.jsx)(gI,{children:(0,cn.jsx)("div",{className:"layer-ui__library-message",children:(0,cn.jsxs)("div",{children:[(0,cn.jsx)(Rr,{size:"2em"}),(0,cn.jsx)("span",{children:E("labels.libraryLoadingMessage")})]})})});let b=f.libraryItems.length>0||t.length>0;return(0,cn.jsxs)(gI,{children:[(0,cn.jsx)(Jx,{isLoading:f.status==="loading",libraryItems:h,onAddToLibrary:m,onInsertLibraryItems:e,pendingElements:t,id:s,libraryReturnUrl:i,theme:c,onSelectItems:p,selectedItems:d}),b&&(0,cn.jsx)(hh,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:s,libraryReturnUrl:i,theme:c})]})},az=(e,t)=>{let r=()=>Ge(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}),o=(0,No.useRef)(r()),i=(0,No.useRef)(e),a=(0,No.useRef)(t);return(!xr(e.selectedElementIds,i.current.selectedElementIds)||!xr(t,a.current))&&(o.current=r(),i.current=e,a.current=t),o.current},bI=()=>{let{library:e,id:t,onInsertElements:r}=Yr(),o=Ra(),i=st(),a=at(),s=Ma(),[c,d]=(0,No.useState)([]),p=(0,No.useMemo)(()=>e,[e]),f=az(i,s),m=(0,No.useCallback)(b=>{r(fh(b))},[r]),h=(0,No.useCallback)(()=>{a({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[a]);return(0,cn.jsx)(iz,{pendingElements:f,onInsertLibraryItems:m,onAddToLibrary:h,setAppState:a,libraryReturnUrl:o.libraryReturnUrl,library:p,id:t,theme:i.theme,selectedItems:c,onSelectItems:d})};var Fa=S(P(),1);function lz(e){if(e&&typeof e=="number")return e;switch(e){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var Ut=e=>{let[t,r]=_T(),[o]=(0,Ah.useState)(document.activeElement),{id:i}=Tr(),a=it().viewport.isMobile;(0,Ah.useEffect)(()=>{if(!t)return;let p=gd(t);setTimeout(()=>{p.length>0&&e.autofocus!==!1&&(p[1]||p[0]).focus()});let f=m=>{if(m.key===R.TAB){let h=gd(t),{activeElement:b}=document,y=h.findIndex(w=>w===b);y===0&&m.shiftKey?(h[h.length-1].focus(),m.preventDefault()):y===h.length-1&&!m.shiftKey&&(h[0].focus(),m.preventDefault())}};return t.addEventListener("keydown",f),()=>t.removeEventListener("keydown",f)},[t,e.autofocus]);let s=at(),c=Ri(wc,ft),d=()=>{s({openMenu:null}),c(!1),o.focus(),e.onCloseRequest()};return(0,Fa.jsx)(RT,{className:Q("Dialog",e.className,{"Dialog--fullscreen":a}),labelledBy:"dialog-title",maxWidth:lz(e.size),onCloseRequest:d,closeOnClickOutside:e.closeOnClickOutside,children:(0,Fa.jsxs)(Or,{ref:r,children:[e.title&&(0,Fa.jsx)("h2",{id:`${i}-dialog-title`,className:"Dialog__title",children:(0,Fa.jsx)("span",{className:"Dialog__titleContent",children:e.title})}),a&&(0,Fa.jsx)("button",{className:"Dialog__close",onClick:d,title:E("buttons.close"),"aria-label":E("buttons.close"),type:"button",children:rn}),(0,Fa.jsx)("div",{className:"Dialog__content",children:e.children})]})})};v();var ii=S(ee(),1);v();var xI=S(P(),1),ni=({type:e="button",onSelect:t,selected:r,children:o,className:i="",...a})=>(0,xI.jsx)("button",{onClick:ua(a.onClick,s=>{t()}),type:e,className:Q("excalidraw-button",i,{selected:r}),...a,children:o});var Ul=S(P(),1),Mh=(0,ii.forwardRef)(({onChange:e,label:t,fullWidth:r,placeholder:o,readonly:i,selectOnRender:a,onKeyDown:s,isRedacted:c=!1,...d},p)=>{let f=(0,ii.useRef)(null);(0,ii.useImperativeHandle)(p,()=>f.current),(0,ii.useLayoutEffect)(()=>{a&&f.current?.select()},[a]);let[m,h]=(0,ii.useState)(!1);return(0,Ul.jsxs)("div",{className:Q("ExcTextField",{"ExcTextField--fullWidth":r}),onClick:()=>{f.current?.focus()},children:[(0,Ul.jsx)("div",{className:"ExcTextField__label",children:t}),(0,Ul.jsxs)("div",{className:Q("ExcTextField__input",{"ExcTextField__input--readonly":i}),children:[(0,Ul.jsx)("input",{className:Q({"is-redacted":"value"in d&&d.value&&c&&!m}),readOnly:i,value:"value"in d?d.value:void 0,defaultValue:"defaultValue"in d?d.defaultValue:void 0,placeholder:o,ref:f,onChange:b=>e?.(b.target.value),onKeyDown:s}),c&&(0,Ul.jsx)(ni,{onSelect:()=>h(!m),style:{border:0,userSelect:"none"},children:m?b4:Vs})]})]})});v();var sz={toggleTheme:[X("Shift+Alt+D")],saveScene:[X("CtrlOrCmd+S")],loadScene:[X("CtrlOrCmd+O")],clearCanvas:[X("CtrlOrCmd+Delete")],imageExport:[X("CtrlOrCmd+Shift+E")],commandPalette:[X("CtrlOrCmd+/"),X("CtrlOrCmd+Shift+P")],cut:[X("CtrlOrCmd+X")],copy:[X("CtrlOrCmd+C")],paste:[X("CtrlOrCmd+V")],copyStyles:[X("CtrlOrCmd+Alt+C")],pasteStyles:[X("CtrlOrCmd+Alt+V")],selectAll:[X("CtrlOrCmd+A")],deleteSelectedElements:[X("Delete")],duplicateSelection:[X("CtrlOrCmd+D"),X(`Alt+${E("helpDialog.drag")}`)],sendBackward:[X("CtrlOrCmd+[")],bringForward:[X("CtrlOrCmd+]")],sendToBack:[Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")],bringToFront:[Tn?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")],copyAsPng:[X("Shift+Alt+C")],copyAsSvg:[],group:[X("CtrlOrCmd+G")],ungroup:[X("CtrlOrCmd+Shift+G")],gridMode:[X("CtrlOrCmd+'")],zenMode:[X("Alt+Z")],objectsSnapMode:[X("Alt+S")],stats:[X("Alt+/")],addToLibrary:[],flipHorizontal:[X("Shift+H")],flipVertical:[X("Shift+V")],viewMode:[X("Alt+R")],hyperlink:[X("CtrlOrCmd+K")],toggleElementLock:[X("CtrlOrCmd+Shift+L")],resetZoom:[X("CtrlOrCmd+0")],zoomOut:[X("CtrlOrCmd+-")],zoomIn:[X("CtrlOrCmd++")],zoomToFitSelection:[X("Shift+3")],zoomToFit:[X("Shift+1")],zoomToFitSelectionInViewport:[X("Shift+2")],toggleEraserTool:[X("E")],toggleHandTool:[X("H")],setFrameAsActiveTool:[X("F")],saveFileToDisk:[X("CtrlOrCmd+S")],saveToActiveFile:[X("CtrlOrCmd+S")],toggleShortcuts:[X("?")]},mr=(e,t=0)=>{let r=sz[e];return r&&r.length>0?r[t]||r[0]:""};var qI=S(EI(),1);v();var cz="\\u0300-\\u036f",dz="\\ufe20-\\ufe2f",mz="\\u20d0-\\u20ff",uz=cz+dz+mz,pz=`[${uz}]`,fz=RegExp(pz,"g"),hz=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,gz={\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"},Qx=e=>e.replace(hz,t=>gz[t]||t).replace(fz,"");v();var wI=S(P(),1),dn=({icon:e})=>(0,wI.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:e});v();var xm=[{icon:n6,value:"selection",key:R.V,numericKey:R[1],fillable:!0},{icon:i6,value:"rectangle",key:R.R,numericKey:R[2],fillable:!0},{icon:a6,value:"diamond",key:R.D,numericKey:R[3],fillable:!0},{icon:l6,value:"ellipse",key:R.O,numericKey:R[4],fillable:!0},{icon:s6,value:"arrow",key:R.A,numericKey:R[5],fillable:!0},{icon:c6,value:"line",key:R.L,numericKey:R[6],fillable:!0},{icon:$s,value:"freedraw",key:[R.P,R.X],numericKey:R[7],fillable:!1},{icon:m6,value:"text",key:R.T,numericKey:R[8],fillable:!1},{icon:u6,value:"image",key:null,numericKey:R[9],fillable:!1},{icon:p6,value:"eraser",key:R.E,numericKey:R[0],fillable:!1}],CI=e=>xm.find((r,o)=>r.numericKey!=null&&e===r.numericKey.toString()||r.key&&(typeof r.key=="string"?r.key===e:r.key.includes(e)))?.value||null;v();var WI=S(ee(),1);v();var Ph=S(ee(),1);v();var vm=S(ee());v();v();var SI=e=>{let t,r=new Set,o=(f,m)=>{let h=typeof f=="function"?f(t):f;if(!Object.is(h,t)){let b=t;t=m??(typeof h!="object"||h===null)?h:Object.assign({},t,h),r.forEach(y=>y(t,b))}},i=()=>t,d={setState:o,getState:i,getInitialState:()=>p,subscribe:f=>(r.add(f),()=>r.delete(f)),destroy:()=>{(A?A.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},TI=e=>e?SI(e):SI;var OI=S(ee(),1),FI=S(RI(),1),{useDebugValue:Dz}=OI.default,{useSyncExternalStoreWithSelector:Nz}=FI.default,DI=!1,Oz=e=>e;function Fz(e,t=Oz,r){(A?A.MODE:void 0)!=="production"&&r&&!DI&&(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"),DI=!0);let o=Nz(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return Dz(o),o}var NI=e=>{(A?A.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"?TI(e):e,r=(o,i)=>Fz(t,o,i);return Object.assign(r,t),r},zI=e=>e?NI(e):NI;var BI,$I,HI=typeof window<"u"&&((BI=window.document)!=null&&BI.createElement||(($I=window.navigator)==null?void 0:$I.product)==="ReactNative")?vm.default.useLayoutEffect:vm.default.useEffect;function Bn(){let e=zI(t=>({current:new Array,version:0,set:t}));return{In:({children:t})=>{let r=e(i=>i.set),o=e(i=>i.version);return HI(()=>{r(i=>({version:i.version+1}))},[]),HI(()=>(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 vm.default.createElement(vm.default.Fragment,null,t)}}}var tv=Ph.default.createContext(null),Mt=()=>Ph.default.useContext(tv),UI=()=>Ph.default.useMemo(()=>({MainMenuTunnel:Bn(),WelcomeScreenMenuHintTunnel:Bn(),WelcomeScreenToolbarHintTunnel:Bn(),WelcomeScreenHelpHintTunnel:Bn(),WelcomeScreenCenterTunnel:Bn(),FooterCenterTunnel:Bn(),DefaultSidebarTriggerTunnel:Bn(),DefaultSidebarTabTriggersTunnel:Bn(),OverwriteConfirmDialogTunnel:Bn(),TTDDialogTriggerTunnel:Bn(),jotaiScope:Symbol()}),[]);var _e=S(P(),1),rv=(e,t)=>{let r=t[0]?.type||null;for(let o of t)if(o.type!==r){r=null;break}return Cd(e.activeTool.type)&&e.activeTool.type!=="image"&&r!=="image"&&r!=="frame"&&r!=="magicframe"||t.some(o=>Cd(o.type))},ov=(e,t)=>ba(e.activeTool.type)||t.some(r=>ba(r.type)),Rh=({appState:e,elementsMap:t,renderAction:r})=>{let o=Gp(t,e),i=!1;o.length===2&&(jn(o[0])||jn(o[1]))&&(i=!0);let a=!!e.editingElement,s=it(),c=document.documentElement.getAttribute("dir")==="rtl",d=ba(e.activeTool.type)&&!dl(e.currentItemBackgroundColor)||o.some(m=>ba(m.type)&&!dl(m.backgroundColor)),p=o.length===1||i,f=!e.editingLinearElement&&o.length===1&&lt(o[0]);return(0,_e.jsxs)("div",{className:"panelColumn",children:[(0,_e.jsx)("div",{children:rv(e,o)&&r("changeStrokeColor")}),ov(e,o)&&(0,_e.jsx)("div",{children:r("changeBackgroundColor")}),d&&r("changeFillStyle"),(b0(e.activeTool.type)||o.some(m=>b0(m.type)))&&r("changeStrokeWidth"),(e.activeTool.type==="freedraw"||o.some(m=>m.type==="freedraw"))&&r("changeStrokeShape"),(x0(e.activeTool.type)||o.some(m=>x0(m.type)))&&(0,_e.jsxs)(_e.Fragment,{children:[r("changeStrokeStyle"),r("changeSloppiness")]}),(v0(e.activeTool.type)||o.some(m=>v0(m.type)))&&(0,_e.jsx)(_e.Fragment,{children:r("changeRoundness")}),(e.activeTool.type==="text"||o.some(ve))&&(0,_e.jsxs)(_e.Fragment,{children:[r("changeFontSize"),r("changeFontFamily"),(e.activeTool.type==="text"||u3(o,t))&&r("changeTextAlign")]}),m3(o,t)&&r("changeVerticalAlign"),(Es(e.activeTool.type)||o.some(m=>Es(m.type)))&&(0,_e.jsx)(_e.Fragment,{children:r("changeArrowhead")}),r("changeOpacity"),(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:E("labels.layers")}),(0,_e.jsxs)("div",{className:"buttonList",children:[r("sendToBack"),r("sendBackward"),r("bringForward"),r("bringToFront")]})]}),o.length>1&&!i&&(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:E("labels.align")}),(0,_e.jsxs)("div",{className:"buttonList",children:[c?(0,_e.jsxs)(_e.Fragment,{children:[r("alignRight"),r("alignHorizontallyCentered"),r("alignLeft")]}):(0,_e.jsxs)(_e.Fragment,{children:[r("alignLeft"),r("alignHorizontallyCentered"),r("alignRight")]}),o.length>2&&r("distributeHorizontally"),(0,_e.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,_e.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,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:E("labels.actions")}),(0,_e.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")]})]})]})},Dh=({activeTool:e,appState:t,app:r,UIOptions:o})=>{let[i,a]=(0,WI.useState)(!1),s=e.type==="frame",c=e.type==="laser",d=e.type==="embeddable",{TTDDialogTriggerTunnel:p}=Mt();return(0,_e.jsxs)(_e.Fragment,{children:[xm.map(({value:f,icon:m,key:h,numericKey:b,fillable:y},w)=>{if(o.tools?.[f]===!1)return null;let C=E(`toolBar.${f}`),M=h&&ma(typeof h=="string"?h:h[0]),_=M?`${M} ${E("helpDialog.or")} ${b}`:`${b}`;return(0,_e.jsx)(Ae,{className:Q("Shape",{fillable:y}),type:"radio",icon:m,checked:e.type===f,name:"editor-current-shape",title:`${ma(C)} \u2014 ${_}`,keyBindingLabel:b||M,"aria-label":ma(C),"aria-keyshortcuts":_,"data-testid":`toolbar-${f}`,onPointerDown:({pointerType:I})=>{!t.penDetected&&I==="pen"&&r.togglePenMode(!0)},onChange:({pointerType:I})=>{t.activeTool.type!==f&&Ue("toolbar",f,"ui"),f==="image"?r.setActiveTool({type:f,insertOnCanvasDirectly:I!=="mouse"}):r.setActiveTool({type:f})}},f)}),(0,_e.jsx)("div",{className:"App-toolbar__divider"}),(0,_e.jsxs)(ut,{open:i,children:[(0,_e.jsxs)(ut.Trigger,{className:Q("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":s||d||c&&!r.props.isCollaborating}),onToggle:()=>a(!i),title:E("toolBar.extraTools"),children:[h4,r.props.aiEnabled!==!1&&(0,_e.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,_e.jsxs)(ut.Content,{onClickOutside:()=>a(!1),onSelect:()=>a(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,_e.jsx)(ut.Item,{onSelect:()=>r.setActiveTool({type:"frame"}),icon:hf,shortcut:R.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:s,children:E("toolBar.frame")}),(0,_e.jsx)(ut.Item,{onSelect:()=>r.setActiveTool({type:"embeddable"}),icon:h6,"data-testid":"toolbar-embeddable",selected:d,children:E("toolBar.embeddable")}),(0,_e.jsx)(ut.Item,{onSelect:()=>r.setActiveTool({type:"laser"}),icon:bf,"data-testid":"toolbar-laser",selected:c,shortcut:R.K.toLocaleUpperCase(),children:E("toolBar.laser")}),(0,_e.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),r.props.aiEnabled!==!1&&(0,_e.jsx)(p.Out,{}),(0,_e.jsx)(ut.Item,{onSelect:()=>r.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:gf,"data-testid":"toolbar-embeddable",children:E("toolBar.mermaidToExcalidraw")}),r.props.aiEnabled!==!1&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)(ut.Item,{onSelect:()=>r.onMagicframeToolSelect(),icon:Gs,"data-testid":"toolbar-magicframe",children:[E("toolBar.magicframe"),(0,_e.jsx)(ut.Item.Badge,{children:"AI"})]}),(0,_e.jsx)(ut.Item,{onSelect:()=>{Ue("ai","open-settings","d2c"),r.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Vd,"data-testid":"toolbar-magicSettings",children:E("toolBar.magicSettings")})]})]})]})]})},GI=({renderAction:e,zoom:t})=>(0,_e.jsx)(kr.Col,{gap:1,className:"zoom-actions",children:(0,_e.jsxs)(kr.Row,{align:"center",children:[e("zoomOut"),e("resetZoom"),e("zoomIn")]})}),VI=({renderAction:e,className:t})=>(0,_e.jsxs)("div",{className:`undo-redo-buttons ${t}`,children:[(0,_e.jsx)("div",{className:"undo-button-container",children:(0,_e.jsx)(Ro,{label:E("buttons.undo"),children:e("undo")})}),(0,_e.jsx)("div",{className:"redo-button-container",children:(0,_e.jsxs)(Ro,{label:E("buttons.redo"),children:[" ",e("redo")]})})]}),KI=({actionManager:e,showExitZenModeBtn:t})=>(0,_e.jsx)("button",{type:"button",className:Q("disable-zen-mode",{"disable-zen-mode--visible":t}),onClick:()=>e.executeAction(gc),children:E("buttons.exitZenMode")}),YI=({renderAction:e,className:t})=>(0,_e.jsx)("div",{className:`finalize-button ${t}`,children:e("finalize",{size:"small"})});v();var ZI=S(ee(),1),nv=e=>{let t=(0,ZI.useRef)({userFn:e});return t.current.userFn=e,t.current.stableFn||(t.current.stableFn=(...r)=>t.current.userFn(...r)),t.current.stableFn};v();var Nh=S(P(),1),Wl=It(null),XI=()=>{let[e,t]=qe(Wl,ft),r=vr();return e&&e==="clearCanvas"?(0,Nh.jsx)(bh,{onConfirm:()=>{r.executeAction(Bi),t(null)},onCancel:()=>t(null),title:E("clearCanvasDialog.title"),children:(0,Nh.jsxs)("p",{className:"clear-canvas__content",children:[" ",E("alerts.clearReset")]})}):null};var iv={};qE(iv,{toggleTheme:()=>zz});v();var zz={...Al,category:"App",label:"Toggle theme",perform:({actionManager:e})=>{e.executeAction(Al,"commandPalette")}};var kt=S(P(),1),Bz=It(null),er={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},$z=e=>{switch(e){case er.app:return 1;case er.export:return 2;case er.editor:return 3;case er.tools:return 4;case er.elements:return 5;case er.links:return 6;default:return 10}},Oh=({shortcut:e,className:t,children:r})=>{let o=e.replace("++","+$").split("+");return(0,kt.jsxs)("div",{className:Q("shortcut",t),children:[o.map((i,a)=>(0,kt.jsx)("div",{className:"shortcut-wrapper",children:(0,kt.jsx)("div",{className:"shortcut-key",children:i==="$"?"+":i})},i)),(0,kt.jsx)("div",{className:"shortcut-desc",children:r})]})},JI=e=>!e.altKey&&e[R.CTRL_OR_CMD]&&(e.shiftKey&&e.key.toLowerCase()===R.P||e.key===R.SLASH),oce=Object.assign(e=>{let t=st(),r=at();return(0,mn.useEffect)(()=>{let o=i=>{JI(i)&&(i.preventDefault(),i.stopPropagation(),r(a=>{let s=a.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return s&&Ue("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,kt.jsx)(Hz,{...e})},{defaultItems:iv});function Hz({customCommandPaletteItems:e}){let t=Yr(),r=st(),o=at(),i=Ra(),a=vr(),[s,c]=qe(Bz),[d,p]=(0,mn.useState)(null),f=(0,mn.useRef)(null),m=dc({uiAppState:r,customCommandPaletteItems:e,appProps:i});(0,mn.useEffect)(()=>{let{uiAppState:D,customCommandPaletteItems:z,appProps:B}=m,q=K=>{let de="";return K.label&&(typeof K.label=="function"?de=E(K.label(t.scene.getNonDeletedElements(),D,t)):de=E(K.label)),de},V=K=>typeof K.icon=="function"?K.icon(D,t.scene.getNonDeletedElements()):K.icon,te=[],me=(K,de,Ee)=>{let Ie={label:q(K),icon:V(K),category:de,shortcut:mr(K.name),keywords:K.keywords,predicate:K.predicate,viewMode:K.viewMode,perform:()=>{a.executeAction(K,"commandPalette")}};return Ee?Ee(Ie,K):Ie};if(D&&t.scene&&a){let K=[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,mm].map(fe=>me(fe,er.elements,(W,Z)=>({...W,predicate:Z.predicate?Z.predicate:(ce,ie,ae,ue)=>Ge(ce,ie).length>0}))),de=[a.actions.toggleHandTool,a.actions.setFrameAsActiveTool].map(fe=>me(fe,er.tools)),Ee=[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(fe=>me(fe,er.editor)),Ie=[a.actions.saveToActiveFile,a.actions.saveFileToDisk,a.actions.copyAsPng,a.actions.copyAsSvg].map(fe=>me(fe,er.export));te=[...K,...Ee,{label:q(Bi),icon:V(Bi),shortcut:mr(Bi.name),category:er.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Gr.set(Wl,"clearCanvas")}},{label:E("buttons.exportImage"),category:er.export,icon:df,shortcut:mr("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{o({openDialog:{name:"imageExport"}})}},...Ie];let tt=[{label:E("toolBar.library"),category:er.app,icon:af,viewMode:!1,perform:()=>{D.openSidebar?o({openSidebar:null}):o({openSidebar:{name:_n.name,tab:_n.defaultTab}})}},{label:E("labels.changeStroke"),keywords:["color","outline"],category:er.elements,icon:cf,viewMode:!1,predicate:(fe,W)=>{let Z=Ge(fe,W);return Z.length>0&&rv(W,Z)},perform:()=>{o(fe=>({openMenu:fe.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:E("labels.changeBackground"),keywords:["color","fill"],icon:cf,category:er.elements,viewMode:!1,predicate:(fe,W)=>{let Z=Ge(fe,W);return Z.length>0&&ov(W,Z)},perform:()=>{o(fe=>({openMenu:fe.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:E("labels.canvasBackground"),keywords:["color"],icon:cf,category:er.editor,viewMode:!1,perform:()=>{o(fe=>({openMenu:fe.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...xm.reduce((fe,W)=>{let{value:Z,icon:ce,key:ie,numericKey:ae}=W;if(B.UIOptions.tools?.[Z]===!1)return fe;let ge=ie&&ma(typeof ie=="string"?ie:ie[0])||ae,Ce={label:E(`toolBar.${Z}`),category:er.tools,shortcut:ge,icon:ce,keywords:["toolbar"],viewMode:!1,perform:({event:_t})=>{Z==="image"?t.setActiveTool({type:Z,insertOnCanvasDirectly:_t.type==="keydown"}):t.setActiveTool({type:Z})}};return fe.push(Ce),fe},[]),...de,{label:E("toolBar.lock"),category:er.tools,icon:D.activeTool.locked?Bs:yl,shortcut:R.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{t.toggleLock()}},{label:`${E("labels.textToDiagram")}...`,category:er.tools,icon:v4,viewMode:!1,predicate:B.aiEnabled,perform:()=>{o(fe=>({...fe,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${E("toolBar.mermaidToExcalidraw")}...`,category:er.tools,icon:gf,viewMode:!1,predicate:B.aiEnabled,perform:()=>{o(fe=>({...fe,openDialog:{name:"ttd",tab:"mermaid"}}))}}],Se=[...te,...tt,...z||[]].map(fe=>({...fe,icon:fe.icon||vf,order:fe.order??$z(fe.category),haystack:`${Qx(fe.label.toLocaleLowerCase())} ${fe.keywords?.join(" ")||""}`}));p(Se),c(Se.find(fe=>fe.label===s?.label)??null)}},[m,t,a,p,s?.label,c,o]);let[h,b]=(0,mn.useState)(""),[y,w]=(0,mn.useState)(null),[C,M]=(0,mn.useState)({}),_=D=>{o({openDialog:null},D),b("")},I=(D,z)=>{r.openDialog?.name==="commandPalette"&&(z.stopPropagation(),z.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),_(()=>{D.perform({actionManager:a,event:z}),c(D),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},N=nv(D=>D.viewMode===!1&&r.viewModeEnabled?!1:typeof D.predicate=="function"?D.predicate(t.scene.getNonDeletedElements(),r,i,t):D.predicate===void 0||D.predicate),$=nv(D=>{let z=Zo(D.target)||JI(D)||D.key===R.ESCAPE;if(z&&D.key!==R.ARROW_UP&&D.key!==R.ARROW_DOWN&&D.key!==R.ENTER)return;let B=Object.values(C).flat(),q=s&&!h&&N(s);if(D.key===R.ARROW_UP){D.preventDefault();let V=B.findIndex(K=>K.label===y?.label);if(q){if(V===0){w(s);return}if(y===s){let K=B[B.length-1];K&&w(K);return}}let te;V===-1?te=B.length-1:te=V===0?B.length-1:(V-1)%B.length;let me=B[te];me&&w(me);return}if(D.key===R.ARROW_DOWN){D.preventDefault();let V=B.findIndex(K=>K.label===y?.label);if(q){if(!y||V===B.length-1){w(s);return}if(y===s){let K=B[0];K&&w(K);return}}let te=(V+1)%B.length,me=B[te];me&&w(me);return}if(D.key===R.ENTER&&y&&setTimeout(()=>{I(y,D)}),!z){if(D.stopPropagation(),/^[a-zA-Z0-9]$/.test(D.key)){f?.current?.focus();return}D.preventDefault()}});return(0,mn.useEffect)(()=>(window.addEventListener("keydown",$,{capture:!0}),()=>window.removeEventListener("keydown",$,{capture:!0})),[$]),(0,mn.useEffect)(()=>{if(!d)return;let D=V=>{let te={};for(let me of V)te[me.category]?te[me.category].push(me):te[me.category]=[me];return te},z=d.filter(N).sort((V,te)=>V.order-te.order),B=!h&&s&&N(s);if(!h){M(D(B?z.filter(V=>V.label!==s?.label):z)),w(B?s:z[0]||null);return}let q=Qx(h.toLocaleLowerCase().replace(/[<>_| -]/g,""));z=qI.default.filter(q,z,{extract:V=>V.haystack}).sort((V,te)=>te.score-V.score).map(V=>V.original),M(D(z)),w(z[0]??null)},[h,d,N,s]),(0,kt.jsxs)(Ut,{onCloseRequest:()=>_(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,kt.jsx)(Mh,{value:h,placeholder:E("commandPalette.search.placeholder"),onChange:D=>{b(D)},selectOnRender:!0,ref:f}),!t.device.viewport.isMobile&&(0,kt.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,kt.jsx)(Oh,{shortcut:"\u2191\u2193",children:E("commandPalette.shortcuts.select")}),(0,kt.jsx)(Oh,{shortcut:"\u21B5",children:E("commandPalette.shortcuts.confirm")}),(0,kt.jsx)(Oh,{shortcut:X("Esc"),children:E("commandPalette.shortcuts.close")})]}),(0,kt.jsxs)("div",{className:"commands",children:[s&&!h&&(0,kt.jsxs)("div",{className:"command-category",children:[(0,kt.jsxs)("div",{className:"command-category-title",children:[E("commandPalette.recents"),(0,kt.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:y4})]}),(0,kt.jsx)(jI,{command:s,isSelected:s.label===y?.label,onClick:D=>I(s,D),disabled:!N(s),onMouseMove:()=>w(s),showShortcut:!t.device.viewport.isMobile,appState:r})]}),Object.keys(C).length>0?Object.keys(C).map((D,z)=>(0,kt.jsxs)("div",{className:"command-category",children:[(0,kt.jsx)("div",{className:"command-category-title",children:D}),C[D].map(B=>(0,kt.jsx)(jI,{command:B,isSelected:B.label===y?.label,onClick:q=>I(B,q),onMouseMove:()=>w(B),showShortcut:!t.device.viewport.isMobile,appState:r},B.label))]},D)):d?(0,kt.jsxs)("div",{className:"no-match",children:[(0,kt.jsx)("div",{className:"icon",children:xf})," ",E("commandPalette.search.noMatch")]}):null]})]})}var jI=({command:e,isSelected:t,disabled:r,onMouseMove:o,onClick:i,showShortcut:a,appState:s})=>{let c=()=>{};return(0,kt.jsxs)("div",{className:Q("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?E("commandPalette.itemNotAvailable"):"",children:[(0,kt.jsxs)("div",{className:"name",children:[e.icon&&(0,kt.jsx)(dn,{icon:typeof e.icon=="function"?e.icon(s):e.icon}),e.label]}),a&&e.shortcut&&(0,kt.jsx)(Oh,{shortcut:e.shortcut})]})};var QI=S(P(),1),av=ne({name:"toggleLinearEditor",category:er.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&&lt(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 Fe(i);return{appState:{...t,editingLinearElement:a},storeAction:Y.CAPTURE}},PanelComponent:({appState:e,updateData:t,app:r})=>{let o=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds})[0],i=E(o.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit");return(0,QI.jsx)(Ae,{type:"button",icon:D4,title:i,"aria-label":i,onClick:()=>t(null)})}});v();v();var Gl=class{constructor(t=!0,r=!0){this.isUndoStackEmpty=t;this.isRedoStackEmpty=r}},ym=class e{onHistoryChangedEmitter=new Qo;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=lv.create(r,t);o.isEmpty()||(this.undoStack.push(o.inverse()),o.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new Gl(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 Gl(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)}},lv=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 Fh=S(ee(),1),sv=(e,t)=>{let[r,o]=(0,Fh.useState)(t);return(0,Fh.useEffect)(()=>{let i=e.on(a=>{o(a)});return()=>{i()}},[e]),r};var cv=S(P(),1),ek=(e,t)=>{if(!e.multiElement&&!e.resizingElement&&!e.editingElement&&!e.draggingElement){let r=t();if(!r)return{storeAction:Y.NONE};let[o,i]=r,a=Array.from(o.values());return{appState:i,elements:a,storeAction:Y.UPDATE}}return{storeAction:Y.NONE}},tk=(e,t)=>({name:"undo",label:"buttons.undo",icon:rb,trackEvent:{category:"history"},viewMode:!1,perform:(r,o)=>ek(o,()=>e.undo(Oe(r),o,t.snapshot)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.key.toLowerCase()===R.Z&&!r.shiftKey,PanelComponent:({updateData:r,data:o})=>{let{isUndoStackEmpty:i}=sv(e.onHistoryChangedEmitter,new Gl(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,cv.jsx)(Ae,{type:"button",icon:rb,"aria-label":E("buttons.undo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-undo"})}}),rk=(e,t)=>({name:"redo",label:"buttons.redo",icon:ob,trackEvent:{category:"history"},viewMode:!1,perform:(r,o)=>ek(o,()=>e.redo(Oe(r),o,t.snapshot)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.shiftKey&&r.key.toLowerCase()===R.Z||Bu&&r.ctrlKey&&!r.shiftKey&&r.key===R.Y,PanelComponent:({updateData:r,data:o})=>{let{isRedoStackEmpty:i}=sv(e.onHistoryChangedEmitter,new Gl(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,cv.jsx)(Ae,{type:"button",icon:ob,"aria-label":E("buttons.redo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-redo"})}});v();var ok=S(P(),1),dv=(e,t,r,o,i,a)=>{if(e.trackEvent)try{typeof e.trackEvent=="object"&&(!e.trackEvent.predicate||e.trackEvent.predicate(r,o,a))&&Ue(e.trackEvent.category,e.trackEvent.action||e.name,`${t} (${i.device.editor.isMobile?"mobile":"desktop"})`)}catch(s){console.error("error while logging action:",s)}},zh=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(t,r,o,i){this.updater=a=>{if(hs(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 dv(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();dv(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=>{dv(i,"ui",c,s,this.app,p),this.updater(i.perform(this.getElementsIncludingDeleted(),this.getAppState(),p,this.app))};return(0,ok.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 mv=e=>{let t=Array.from(e.values());return{x:nk(t,r=>r.x)/t.length,y:nk(t,r=>r.y)/t.length}},uv=([e,t])=>Math.hypot(e.x-t.x,e.y-t.y),nk=(e,t)=>e.reduce((r,o)=>r+t(o),0);v();var ik=S(ee(),1),Ui=S(P(),1),jr="separator",ak=ik.default.memo(({actionManager:e,items:t,top:r,left:o,onClose:i})=>{let a=Da(),s=Ma(),c=t.reduce((d,p)=>(p&&(p===jr||!p.predicate||p.predicate(s,a,e.app.props,e.app))&&d.push(p),d),[]);return(0,Ui.jsx)(jf,{onCloseRequest:()=>{i()},top:r,left:o,fitInViewport:!0,offsetLeft:a.offsetLeft,offsetTop:a.offsetTop,viewportWidth:a.width,viewportHeight:a.height,children:(0,Ui.jsx)("ul",{className:"context-menu",onContextMenu:d=>d.preventDefault(),children:c.map((d,p)=>{if(d===jr)return!c[p-1]||c[p-1]===jr?null:(0,Ui.jsx)("hr",{className:"context-menu-item-separator"},p);let f=d.name,m="";return d.label&&(typeof d.label=="function"?m=E(d.label(s,a,e.app)):m=E(d.label)),(0,Ui.jsx)("li",{"data-testid":f,onClick:()=>{i(()=>{e.executeAction(d,"contextMenu")})},children:(0,Ui.jsxs)("button",{type:"button",className:Q("context-menu-item",{dangerous:f==="deleteSelectedElements",checkmark:d.checked?.(a)}),children:[(0,Ui.jsx)("div",{className:"context-menu-item__label",children:m}),(0,Ui.jsx)("kbd",{className:"context-menu-item__shortcut",children:f?mr(f):""})]})},p)})})})});v();var H_=S(ee(),1);v();var Bh=S(ee(),1);var kc=S(P(),1),lk=({children:e,onClose:t})=>{let[r,o]=(0,Bh.useState)(!!e),{container:i}=Tr(),a=Bh.default.useCallback(()=>{o(!1),t&&t(),i?.focus()},[t,i]);return(0,kc.jsx)(kc.Fragment,{children:r&&(0,kc.jsx)(Ut,{size:"small",onCloseRequest:a,title:E("errorDialog.title"),children:(0,kc.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:e})})})};v();var Oo=S(ee(),1);v();var Em=S(P(),1),$h=function({onChange:e,value:t,choices:r,name:o}){return(0,Em.jsx)("div",{className:"RadioGroup",children:r.map(i=>(0,Em.jsxs)("div",{className:Q("RadioGroup__choice",{active:i.value===t}),title:i.ariaLabel,children:[(0,Em.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 pv=S(P(),1),wm=({title:e,name:t,checked:r,onChange:o,disabled:i=!1})=>(0,pv.jsx)("div",{className:Q("Switch",{toggled:r,disabled:i}),children:(0,pv.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 Hh=S(ee(),1);var _c=S(P(),1),ai=(0,Hh.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,m]=(0,Hh.useState)(!1),h=async b=>{let y=r?.(b);if(hs(y))try{m(!0),await y}catch(w){if(w instanceof xs)console.warn(w);else throw w}finally{m(!1)}};return(0,_c.jsx)("button",{className:Q("ExcButton",`ExcButton--color-${a}`,`ExcButton--variant-${i}`,`ExcButton--size-${s}`,{"ExcButton--fullWidth":c},d),onClick:h,type:"button","aria-label":o,ref:p,disabled:f,children:(0,_c.jsxs)("div",{className:"ExcButton__contents",children:[f&&(0,_c.jsx)(Rr,{}),t&&(0,_c.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:t}),i!=="icon"&&(e??o)]})})});var ot=S(P(),1),Uz="filter"in document.createElement("canvas").getContext("2d"),Wz=()=>(0,ot.jsxs)("div",{children:[(0,ot.jsx)("h3",{children:E("canvasError.cannotShowPreview")}),(0,ot.jsx)("p",{children:(0,ot.jsx)("span",{children:E("canvasError.canvasTooBig")})}),(0,ot.jsxs)("em",{children:["(",E("canvasError.canvasTooBigTip"),")"]})]}),Gz=({appStateSnapshot:e,elementsSnapshot:t,files:r,actionManager:o,onExportImage:i,name:a})=>{let s=xt(t,e),[c,d]=(0,Oo.useState)(a),[p,f]=(0,Oo.useState)(s),[m,h]=(0,Oo.useState)(e.exportBackground),[b,y]=(0,Oo.useState)(e.exportWithDarkMode),[w,C]=(0,Oo.useState)(e.exportEmbedScene),[M,_]=(0,Oo.useState)(e.exportScale),I=(0,Oo.useRef)(null),[N,$]=(0,Oo.useState)(null),{exportedElements:D,exportingFrame:z}=Ll(t,e,p);return(0,Oo.useEffect)(()=>{let B=I.current;if(!B)return;let q=B.offsetWidth,V=B.offsetHeight;q&&bl({elements:D,appState:{...e,name:c,exportBackground:m,exportWithDarkMode:b,exportScale:M,exportEmbedScene:w},files:r,exportPadding:da,maxWidthOrHeight:Math.max(q,V),exportingFrame:z}).then(te=>($(null),Mi(te).then(()=>{B.replaceChildren(te)}).catch(me=>{throw me.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):me}))).catch(te=>{console.error(te),$(te)})},[e,r,D,z,c,m,b,M,w]),(0,ot.jsxs)("div",{className:"ImageExportModal",children:[(0,ot.jsx)("h3",{children:E("imageExportDialog.header")}),(0,ot.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,ot.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:I,children:N&&(0,ot.jsx)(Wz,{})}),(0,ot.jsx)("div",{className:"ImageExportModal__preview__filename",children:!As&&(0,ot.jsx)("input",{type:"text",className:"TextInput",value:c,style:{width:"30ch"},onChange:B=>{d(B.target.value),o.executeAction(bx,"ui",B.target.value)}})})]}),(0,ot.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,ot.jsx)("h3",{children:E("imageExportDialog.header")}),s&&(0,ot.jsx)(Cm,{label:E("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,ot.jsx)(wm,{name:"exportOnlySelected",checked:p,onChange:B=>{f(B)}})}),(0,ot.jsx)(Cm,{label:E("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,ot.jsx)(wm,{name:"exportBackgroundSwitch",checked:m,onChange:B=>{h(B),o.executeAction(xx,"ui",B)}})}),Uz&&(0,ot.jsx)(Cm,{label:E("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,ot.jsx)(wm,{name:"exportDarkModeSwitch",checked:b,onChange:B=>{y(B),o.executeAction(cT,"ui",B)}})}),(0,ot.jsx)(Cm,{label:E("imageExportDialog.label.embedScene"),tooltip:E("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,ot.jsx)(wm,{name:"exportEmbedSwitch",checked:w,onChange:B=>{C(B),o.executeAction(Qf,"ui",B)}})}),(0,ot.jsx)(Cm,{label:E("imageExportDialog.label.scale"),name:"exportScale",children:(0,ot.jsx)($h,{name:"exportScale",value:M,onChange:B=>{_(B),o.executeAction(sT,"ui",B)},choices:Zu.map(B=>({value:B,label:`${B}\xD7`}))})}),(0,ot.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,ot.jsx)(ai,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToPng"),onClick:()=>i(Gu.png,D,{exportingFrame:z}),icon:xb,children:E("imageExportDialog.button.exportToPng")}),(0,ot.jsx)(ai,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToSvg"),onClick:()=>i(Gu.svg,D,{exportingFrame:z}),icon:xb,children:E("imageExportDialog.button.exportToSvg")}),(Ls||yi)&&(0,ot.jsx)(ai,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.copyPngToClipboard"),onClick:()=>i(Gu.clipboard,D,{exportingFrame:z}),icon:ff,children:E("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Cm=({label:e,children:t,tooltip:r,name:o})=>(0,ot.jsxs)("div",{className:"ImageExportModal__settings__setting",title:e,children:[(0,ot.jsxs)("label",{htmlFor:o,className:"ImageExportModal__settings__setting__label",children:[e,r&&(0,ot.jsx)(Ro,{label:r,long:!0,children:u4})]}),(0,ot.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:t})]}),sk=({elements:e,appState:t,files:r,actionManager:o,onExportImage:i,onCloseRequest:a,name:s})=>{let[{appStateSnapshot:c,elementsSnapshot:d}]=(0,Oo.useState)(()=>({appStateSnapshot:Xn(t),elementsSnapshot:Xn(e)}));return(0,ot.jsx)(Ut,{onCloseRequest:a,size:"wide",title:!1,children:(0,ot.jsx)(Gz,{elementsSnapshot:d,appStateSnapshot:c,files:r,actionManager:o,onExportImage:i,name:s})})};v();var ck=S(P(),1),Uh=({children:e,side:t,className:r})=>(0,ck.jsx)("div",{className:Q("FixedSideContainer",`FixedSideContainer_side_${t}`,r),children:e});v();var fv=S(P(),1),Vz=({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(qo(e))return E("hints.eraserRevert");if(i.type==="arrow"||i.type==="line")return d?E("hints.linearElementMulti"):E("hints.linearElement");if(i.type==="freedraw")return E("hints.freeDraw");if(i.type==="text")return E("hints.text");if(i.type==="embeddable")return E("hints.embeddable");if(e.activeTool.type==="image"&&e.pendingImageElementId)return E("hints.placeImage");let p=o.scene.getSelectedElements(e);if(a&&c==="mouse"&&p.length===1){let f=p[0];return lt(f)&&f.points.length===2?E("hints.lockAngle"):pa(f)?E("hints.resizeImage"):E("hints.resize")}if(s&&c==="mouse")return E("hints.rotate");if(p.length===1&&ve(p[0]))return E("hints.text_selected");if(e.editingElement&&ve(e.editingElement))return E("hints.text_editing");if(i.type==="selection"){if(e.draggingElement?.type==="selection"&&!p.length&&!e.editingElement&&!e.editingLinearElement)return E("hints.deepBoxSelect");if(e.gridSize&&e.draggingElement)return E("hints.disableSnapping");if(!p.length&&!t)return E("hints.canvasPanning");if(p.length===1){if(lt(p[0]))return e.editingLinearElement?e.editingLinearElement.selectedPointsIndices?E("hints.lineEditor_pointSelected"):E("hints.lineEditor_nothingSelected"):E("hints.lineEditor_info");if(!e.draggingElement&&Ci(p[0]))return E("hints.bindTextToElement")}}return null},Wh=({appState:e,isMobile:t,device:r,app:o})=>{let i=Vz({appState:e,isMobile:t,device:r,app:o});return i?(i=X(i),(0,fv.jsx)("div",{className:"HintViewer",children:(0,fv.jsx)("span",{children:i})})):null};v();var Sm=S(P(),1),Kz="medium",dk={CHECKED:Bs,UNCHECKED:yl},Gh=e=>(0,Sm.jsxs)("label",{className:Q("ToolIcon ToolIcon__lock",`ToolIcon_size_${Kz}`,{"is-mobile":e.isMobile}),title:`${e.title} \u2014 Q`,children:[(0,Sm.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,Sm.jsx)("div",{className:"ToolIcon__icon",children:e.checked?dk.CHECKED:dk.UNCHECKED})]});v();v();var Vl=S(P(),1),za=({heading:e,children:t,...r})=>{let{id:o}=Tr(),i=(0,Vl.jsx)("h2",{className:"visually-hidden",id:`${o}-${e}-title`,children:E(`headings.${e}`)});return(0,Vl.jsx)("section",{...r,"aria-labelledby":`${o}-${e}-title`,children:typeof t=="function"?t(i):(0,Vl.jsxs)(Vl.Fragment,{children:[i,t]})})};v();var $n=4,li=6,mk="rgba(0,0,0,0.3)",uk=(e,t,r,o)=>{if(!e.length)return{horizontal:null,vertical:null};let[i,a,s,c]=mt(e),d=t/o.zoom.value,p=r/o.zoom.value,f=t-d,m=r-p,h={top:parseInt(pd("sat"))||0,bottom:parseInt(pd("sab"))||0,left:parseInt(pd("sal"))||0,right:parseInt(pd("sar"))||0},b=Di().rtl,y=-o.scrollX+f/2+h.left,w=-o.scrollY+m/2+h.top,C=y+d-h.right,M=w+p-h.bottom,_=Math.min(i,y),I=Math.min(a,w),N=Math.max(s,C),$=Math.max(c,M);return{horizontal:y===_&&C===N?null:{x:Math.max(h.left,$n)+(y-_)/(N-_)*t,y:r-li-Math.max($n,h.bottom),width:(C-y)/(N-_)*t-Math.max($n*2,h.left+h.right),height:li},vertical:w===I&&M===$?null:{x:b?Math.max(h.left,$n):t-li-Math.max(h.right,$n),y:(w-I)/($-I)*r+Math.max(h.top,$n),width:li,height:(M-w)/($-I)*r-Math.max($n*2,h.top+h.bottom)}}},hv=(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 Tm=S(P(),1),Yz="medium",Vh=e=>e.penDetected?(0,Tm.jsxs)("label",{className:Q("ToolIcon ToolIcon__penMode",`ToolIcon_size_${Yz}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Tm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Tm.jsx)("div",{className:"ToolIcon__icon",children:d6})]}):null;v();var pk=S(P(),1),Kh=e=>(0,pk.jsx)(Ae,{className:Q("Shape",{fillable:!1}),type:"radio",icon:pf,name:"editor-current-shape",checked:e.checked,title:`${e.title} \u2014 H`,keyBindingLabel:e.isMobile?void 0:R.H.toLocaleUpperCase(),"aria-label":`${e.title} \u2014 H`,"aria-keyshortcuts":R.H,"data-testid":"toolbar-hand",onChange:()=>e.onChange?.()});var wt=S(P(),1),fk=({appState:e,elements:t,actionManager:r,setAppState:o,onLockToggle:i,onHandToolToggle:a,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:d,renderSidebars:p,device:f,renderWelcomeScreen:m,UIOptions:h,app:b})=>{let{WelcomeScreenCenterTunnel:y,MainMenuTunnel:w,DefaultSidebarTriggerTunnel:C}=Mt(),M=()=>(0,wt.jsxs)(Uh,{side:"top",className:"App-top-bar",children:[m&&(0,wt.jsx)(y.Out,{}),(0,wt.jsx)(za,{heading:"shapes",children:I=>(0,wt.jsx)(kr.Col,{gap:4,align:"center",children:(0,wt.jsxs)(kr.Row,{gap:1,className:"App-toolbar-container",children:[(0,wt.jsxs)(Or,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[I,(0,wt.jsx)(kr.Row,{gap:1,children:(0,wt.jsx)(Dh,{appState:e,activeTool:e.activeTool,UIOptions:h,app:b})})]}),c&&c(!0,e),(0,wt.jsxs)("div",{className:"mobile-misc-tools-container",children:[!e.viewModeEnabled&&(0,wt.jsx)(C.Out,{}),(0,wt.jsx)(Vh,{checked:e.penMode,onChange:()=>s(null),title:E("toolBar.penMode"),isMobile:!0,penDetected:e.penDetected}),(0,wt.jsx)(Gh,{checked:e.activeTool.locked,onChange:i,title:E("toolBar.lock"),isMobile:!0}),(0,wt.jsx)(Kh,{checked:ki(e),onChange:()=>a(),title:E("toolBar.hand"),isMobile:!0})]})]})})}),(0,wt.jsx)(Wh,{appState:e,isMobile:!0,device:f,app:b})]}),_=()=>e.viewModeEnabled?(0,wt.jsx)("div",{className:"App-toolbar-content",children:(0,wt.jsx)(w.Out,{})}):(0,wt.jsxs)("div",{className:"App-toolbar-content",children:[(0,wt.jsx)(w.Out,{}),r.renderAction("toggleEditMenu"),r.renderAction("undo"),r.renderAction("redo"),r.renderAction(e.multiElement?"finalize":"duplicateSelection"),r.renderAction("deleteSelectedElements")]});return(0,wt.jsxs)(wt.Fragment,{children:[p(),!e.viewModeEnabled&&M(),(0,wt.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:li+$n*2,marginLeft:li+$n*2,marginRight:li+$n*2},children:(0,wt.jsxs)(Or,{padding:0,children:[e.openMenu==="shape"&&!e.viewModeEnabled&&Ds(e,t)?(0,wt.jsx)(za,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,wt.jsx)(Rh,{appState:e,elementsMap:b.scene.getNonDeletedElementsMap(),renderAction:r.renderAction})}):null,(0,wt.jsxs)("footer",{className:"App-toolbar",children:[_(),e.scrolledOutside&&!e.openMenu&&!e.openSidebar&&(0,wt.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(I=>({...vl(t,I)}))},children:E("buttons.scrollBackToContent")})]})]})})]})};v();var $a=S(ee(),1);var Ba=S(P(),1),hk=e=>{let t=(0,$a.useRef)(null),[r,o]=(0,$a.useState)(null);return(0,$a.useLayoutEffect)(()=>{if(!e.spreadsheet)return;let i=s5(e.chartType,e.spreadsheet,0,0);o(i);let a,s=t.current;return(async()=>(a=await Rp(i,{exportBackground:!1,viewBackgroundColor:Sr.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,Ba.jsx)("button",{type:"button",className:"ChartPreview",onClick:()=>{r&&e.onClick(e.chartType,r)},children:(0,Ba.jsx)("div",{ref:t})})},gk=({setAppState:e,appState:t,onClose:r})=>{let{onInsertElements:o}=Yr(),i=$a.default.useCallback(()=>{r&&r()},[r]),a=(s,c)=>{o(c),Ue("paste","chart",s),e({currentChartType:s,pasteDialog:{shown:!1,data:null}})};return(0,Ba.jsx)(Ut,{size:"small",onCloseRequest:i,title:E("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,Ba.jsxs)("div",{className:"container",children:[(0,Ba.jsx)(hk,{chartType:"bar",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="bar",onClick:a}),(0,Ba.jsx)(hk,{chartType:"line",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="line",onClick:a})]})})};v();var bk=S(ee(),1);var se=S(P(),1),Zz=()=>(0,se.jsxs)("div",{className:"HelpDialog__header",children:[(0,se.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,se.jsx)("div",{className:"HelpDialog__link-icon",children:tb}),E("helpDialog.documentation")]}),(0,se.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,se.jsx)("div",{className:"HelpDialog__link-icon",children:tb}),E("helpDialog.blog")]}),(0,se.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,se.jsx)("div",{className:"HelpDialog__link-icon",children:sf}),E("helpDialog.github")]}),(0,se.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,se.jsx)("div",{className:"HelpDialog__link-icon",children:P4}),"YouTube"]})]}),Xz=e=>(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("h3",{children:e.title}),(0,se.jsx)("div",{className:"HelpDialog__islands-container",children:e.children})]}),gv=e=>(0,se.jsxs)("div",{className:`HelpDialog__island ${e.className}`,children:[(0,se.jsx)("h4",{className:"HelpDialog__island-title",children:e.caption}),(0,se.jsx)("div",{className:"HelpDialog__island-content",children:e.children})]});function*jz(e,t){let r=!0;for(let o of e)r||(yield t),r=!1,yield o}var qz=e=>e.replace(/\b[a-z]\b/,t=>t.toUpperCase()),ye=({label:e,shortcuts:t,isOr:r=!0})=>{let o=t.map(i=>(i.endsWith("++")?[...i.slice(0,-2).split("+"),"+"]:i.split("+")).map(s=>(0,se.jsx)(Jz,{children:qz(s)},s)));return(0,se.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,se.jsx)("div",{children:e}),(0,se.jsx)("div",{className:"HelpDialog__key-container",children:[...jz(o,r?E("helpDialog.or"):null)]})]})},Jz=e=>(0,se.jsx)("kbd",{className:"HelpDialog__key",...e}),xk=({onClose:e})=>{let t=bk.default.useCallback(()=>{e&&e()},[e]);return(0,se.jsx)(se.Fragment,{children:(0,se.jsxs)(Ut,{onCloseRequest:t,title:E("helpDialog.title"),className:"HelpDialog",children:[(0,se.jsx)(Zz,{}),(0,se.jsxs)(Xz,{title:E("helpDialog.shortcuts"),children:[(0,se.jsxs)(gv,{className:"HelpDialog__island--tools",caption:E("helpDialog.tools"),children:[(0,se.jsx)(ye,{label:E("toolBar.hand"),shortcuts:[R.H]}),(0,se.jsx)(ye,{label:E("toolBar.selection"),shortcuts:[R.V,R[1]]}),(0,se.jsx)(ye,{label:E("toolBar.rectangle"),shortcuts:[R.R,R[2]]}),(0,se.jsx)(ye,{label:E("toolBar.diamond"),shortcuts:[R.D,R[3]]}),(0,se.jsx)(ye,{label:E("toolBar.ellipse"),shortcuts:[R.O,R[4]]}),(0,se.jsx)(ye,{label:E("toolBar.arrow"),shortcuts:[R.A,R[5]]}),(0,se.jsx)(ye,{label:E("toolBar.line"),shortcuts:[R.L,R[6]]}),(0,se.jsx)(ye,{label:E("toolBar.freedraw"),shortcuts:[R.P,R[7]]}),(0,se.jsx)(ye,{label:E("toolBar.text"),shortcuts:[R.T,R[8]]}),(0,se.jsx)(ye,{label:E("toolBar.image"),shortcuts:[R[9]]}),(0,se.jsx)(ye,{label:E("toolBar.eraser"),shortcuts:[R.E,R[0]]}),(0,se.jsx)(ye,{label:E("toolBar.frame"),shortcuts:[R.F]}),(0,se.jsx)(ye,{label:E("toolBar.laser"),shortcuts:[R.K]}),(0,se.jsx)(ye,{label:E("labels.eyeDropper"),shortcuts:[R.I,"Shift+S","Shift+G"]}),(0,se.jsx)(ye,{label:E("helpDialog.editLineArrowPoints"),shortcuts:[X("CtrlOrCmd+Enter")]}),(0,se.jsx)(ye,{label:E("helpDialog.editText"),shortcuts:[X("Enter")]}),(0,se.jsx)(ye,{label:E("helpDialog.textNewLine"),shortcuts:[X("Enter"),X("Shift+Enter")]}),(0,se.jsx)(ye,{label:E("helpDialog.textFinish"),shortcuts:[X("Esc"),X("CtrlOrCmd+Enter")]}),(0,se.jsx)(ye,{label:E("helpDialog.curvedArrow"),shortcuts:["A",E("helpDialog.click"),E("helpDialog.click"),E("helpDialog.click")],isOr:!1}),(0,se.jsx)(ye,{label:E("helpDialog.curvedLine"),shortcuts:["L",E("helpDialog.click"),E("helpDialog.click"),E("helpDialog.click")],isOr:!1}),(0,se.jsx)(ye,{label:E("toolBar.lock"),shortcuts:[R.Q]}),(0,se.jsx)(ye,{label:E("helpDialog.preventBinding"),shortcuts:[X("CtrlOrCmd")]}),(0,se.jsx)(ye,{label:E("toolBar.link"),shortcuts:[X("CtrlOrCmd+K")]})]}),(0,se.jsxs)(gv,{className:"HelpDialog__island--view",caption:E("helpDialog.view"),children:[(0,se.jsx)(ye,{label:E("buttons.zoomIn"),shortcuts:[X("CtrlOrCmd++")]}),(0,se.jsx)(ye,{label:E("buttons.zoomOut"),shortcuts:[X("CtrlOrCmd+-")]}),(0,se.jsx)(ye,{label:E("buttons.resetZoom"),shortcuts:[X("CtrlOrCmd+0")]}),(0,se.jsx)(ye,{label:E("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,se.jsx)(ye,{label:E("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,se.jsx)(ye,{label:E("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,se.jsx)(ye,{label:E("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,se.jsx)(ye,{label:E("buttons.zenMode"),shortcuts:[X("Alt+Z")]}),(0,se.jsx)(ye,{label:E("buttons.objectsSnapMode"),shortcuts:[X("Alt+S")]}),(0,se.jsx)(ye,{label:E("labels.toggleGrid"),shortcuts:[X("CtrlOrCmd+'")]}),(0,se.jsx)(ye,{label:E("labels.viewMode"),shortcuts:[X("Alt+R")]}),(0,se.jsx)(ye,{label:E("labels.toggleTheme"),shortcuts:[X("Alt+Shift+D")]}),(0,se.jsx)(ye,{label:E("stats.fullTitle"),shortcuts:[X("Alt+/")]}),(0,se.jsx)(ye,{label:E("commandPalette.title"),shortcuts:yi?[mr("commandPalette")]:[mr("commandPalette"),mr("commandPalette",1)]})]}),(0,se.jsxs)(gv,{className:"HelpDialog__island--editor",caption:E("helpDialog.editor"),children:[(0,se.jsx)(ye,{label:E("labels.moveCanvas"),shortcuts:[X(`Space+${E("helpDialog.drag")}`),X(`Wheel+${E("helpDialog.drag")}`)],isOr:!0}),(0,se.jsx)(ye,{label:E("buttons.clearReset"),shortcuts:[X("CtrlOrCmd+Delete")]}),(0,se.jsx)(ye,{label:E("labels.delete"),shortcuts:[X("Delete")]}),(0,se.jsx)(ye,{label:E("labels.cut"),shortcuts:[X("CtrlOrCmd+X")]}),(0,se.jsx)(ye,{label:E("labels.copy"),shortcuts:[X("CtrlOrCmd+C")]}),(0,se.jsx)(ye,{label:E("labels.paste"),shortcuts:[X("CtrlOrCmd+V")]}),(0,se.jsx)(ye,{label:E("labels.pasteAsPlaintext"),shortcuts:[X("CtrlOrCmd+Shift+V")]}),(0,se.jsx)(ye,{label:E("labels.selectAll"),shortcuts:[X("CtrlOrCmd+A")]}),(0,se.jsx)(ye,{label:E("labels.multiSelect"),shortcuts:[X(`Shift+${E("helpDialog.click")}`)]}),(0,se.jsx)(ye,{label:E("helpDialog.deepSelect"),shortcuts:[X(`CtrlOrCmd+${E("helpDialog.click")}`)]}),(0,se.jsx)(ye,{label:E("helpDialog.deepBoxSelect"),shortcuts:[X(`CtrlOrCmd+${E("helpDialog.drag")}`)]}),(Ls||yi)&&(0,se.jsx)(ye,{label:E("labels.copyAsPng"),shortcuts:[X("Shift+Alt+C")]}),(0,se.jsx)(ye,{label:E("labels.copyStyles"),shortcuts:[X("CtrlOrCmd+Alt+C")]}),(0,se.jsx)(ye,{label:E("labels.pasteStyles"),shortcuts:[X("CtrlOrCmd+Alt+V")]}),(0,se.jsx)(ye,{label:E("labels.sendToBack"),shortcuts:[Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")]}),(0,se.jsx)(ye,{label:E("labels.bringToFront"),shortcuts:[Tn?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")]}),(0,se.jsx)(ye,{label:E("labels.sendBackward"),shortcuts:[X("CtrlOrCmd+[")]}),(0,se.jsx)(ye,{label:E("labels.bringForward"),shortcuts:[X("CtrlOrCmd+]")]}),(0,se.jsx)(ye,{label:E("labels.alignTop"),shortcuts:[X("CtrlOrCmd+Shift+Up")]}),(0,se.jsx)(ye,{label:E("labels.alignBottom"),shortcuts:[X("CtrlOrCmd+Shift+Down")]}),(0,se.jsx)(ye,{label:E("labels.alignLeft"),shortcuts:[X("CtrlOrCmd+Shift+Left")]}),(0,se.jsx)(ye,{label:E("labels.alignRight"),shortcuts:[X("CtrlOrCmd+Shift+Right")]}),(0,se.jsx)(ye,{label:E("labels.duplicateSelection"),shortcuts:[X("CtrlOrCmd+D"),X(`Alt+${E("helpDialog.drag")}`)]}),(0,se.jsx)(ye,{label:E("helpDialog.toggleElementLock"),shortcuts:[X("CtrlOrCmd+Shift+L")]}),(0,se.jsx)(ye,{label:E("buttons.undo"),shortcuts:[X("CtrlOrCmd+Z")]}),(0,se.jsx)(ye,{label:E("buttons.redo"),shortcuts:Bu?[X("CtrlOrCmd+Y"),X("CtrlOrCmd+Shift+Z")]:[X("CtrlOrCmd+Shift+Z")]}),(0,se.jsx)(ye,{label:E("labels.group"),shortcuts:[X("CtrlOrCmd+G")]}),(0,se.jsx)(ye,{label:E("labels.ungroup"),shortcuts:[X("CtrlOrCmd+Shift+G")]}),(0,se.jsx)(ye,{label:E("labels.flipHorizontal"),shortcuts:[X("Shift+H")]}),(0,se.jsx)(ye,{label:E("labels.flipVertical"),shortcuts:[X("Shift+V")]}),(0,se.jsx)(ye,{label:E("labels.showStroke"),shortcuts:[X("S")]}),(0,se.jsx)(ye,{label:E("labels.showBackground"),shortcuts:[X("G")]}),(0,se.jsx)(ye,{label:E("labels.decreaseFontSize"),shortcuts:[X("CtrlOrCmd+Shift+<")]}),(0,se.jsx)(ye,{label:E("labels.increaseFontSize"),shortcuts:[X("CtrlOrCmd+Shift+>")]})]})]})]})})};v();var Ha=S(ee(),1);var Fr=S(P(),1),Qz=4,eB=8,tB=({shouldWrap:e,children:t,username:r})=>e?(0,Fr.jsx)(Ro,{label:r||"Unknown user",children:t}):(0,Fr.jsx)(Ha.default.Fragment,{children:t}),bv=({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,Fr.jsx)(tB,{username:t.username,shouldWrap:i,children:c},r)},rB=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],Yh=Ha.default.memo(({className:e,mobile:t,collaborators:r,userToFollow:o})=>{let i=vr(),a=new Map;r.forEach((C,M)=>{let _=C.id||M;a.set(_,{...C,socketId:M})});let s=Array.from(a.values()).filter(C=>C.username?.trim()),[c,d]=Ha.default.useState(""),p=Ha.default.useRef(null);(0,Ha.useLayoutEffect)(()=>{if(p.current){let C=_=>{let I=Math.max(1,Math.min(8,Math.floor(_/38)));m(I)};if(C(p.current.clientWidth),!id)return;let M=new ResizeObserver(_=>{for(let I of _){let{width:N}=I.contentRect;C(N)}});return M.observe(p.current),()=>{M.disconnect()}}},[]);let[f,m]=Ha.default.useState(Qz),b=c.trim().toLowerCase()?s.filter(C=>C.username?.toLowerCase().includes(c)):s,w=s.slice(0,f-1).map(C=>bv({actionManager:i,collaborator:C,socketId:C.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:C.socketId===o}));return t?(0,Fr.jsx)("div",{className:Q("UserList UserList_mobile",e),children:s.map(C=>bv({actionManager:i,collaborator:C,socketId:C.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:C.socketId===o}))}):(0,Fr.jsx)("div",{className:"UserList-wrapper",ref:p,children:(0,Fr.jsxs)("div",{className:Q("UserList",e),style:{"--max-avatars":f},children:[w,s.length>f-1&&(0,Fr.jsxs)(Vf,{onOpenChange:C=>{C||d("")},children:[(0,Fr.jsxs)(Kf,{className:"UserList__more",children:["+",s.length-f+1]}),(0,Fr.jsx)(Yf,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,Fr.jsxs)(Or,{style:{overflow:"hidden"},children:[s.length>=eB&&(0,Fr.jsxs)("div",{className:"UserList__search-wrapper",children:[xf,(0,Fr.jsx)("input",{className:"UserList__search",type:"text",placeholder:E("userList.search.placeholder"),value:c,onChange:C=>{d(C.target.value)}})]}),(0,Fr.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[b.length===0&&(0,Fr.jsx)("div",{className:"UserList__collaborators__empty",children:E("userList.search.empty")}),(0,Fr.jsx)("div",{className:"UserList__hint",children:E("userList.hint.text")}),b.map(C=>bv({actionManager:i,collaborator:C,socketId:C.socketId,withName:!0,isBeingFollowed:C.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||!xr(i,a,rB))return!1}return!0});v();var yk=S(ee(),1);v();var vk=S(P(),1),xv=({children:e,color:t})=>(0,vk.jsx)("div",{className:"Card",style:{"--card-color":t==="primary"?"var(--color-primary)":Sr[t][7],"--card-color-darker":t==="primary"?"var(--color-primary-darker)":Sr[t][8],"--card-color-darkest":t==="primary"?"var(--color-primary-darkest)":Sr[t][9]},children:e});var yr=S(P(),1),oB=({elements:e,appState:t,setAppState:r,files:o,actionManager:i,exportOpts:a,canvas:s,onCloseRequest:c})=>{let{onExportToBackend:d}=a;return(0,yr.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,yr.jsxs)("div",{className:"ExportDialog-cards",children:[a.saveFileToDisk&&(0,yr.jsxs)(xv,{color:"lime",children:[(0,yr.jsx)("div",{className:"Card-icon",children:C6}),(0,yr.jsx)("h2",{children:E("exportDialog.disk_title")}),(0,yr.jsxs)("div",{className:"Card-details",children:[E("exportDialog.disk_details"),!As&&i.renderAction("changeProjectName")]}),(0,yr.jsx)(Ae,{className:"Card-button",type:"button",title:E("exportDialog.disk_button"),"aria-label":E("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{i.executeAction(cm,"ui")}})]}),d&&(0,yr.jsxs)(xv,{color:"pink",children:[(0,yr.jsx)("div",{className:"Card-icon",children:Gd}),(0,yr.jsx)("h2",{children:E("exportDialog.link_title")}),(0,yr.jsx)("div",{className:"Card-details",children:E("exportDialog.link_details")}),(0,yr.jsx)(Ae,{className:"Card-button",type:"button",title:E("exportDialog.link_button"),"aria-label":E("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{Ue("export","link",`ui (${Hw()})`),await d(e,t,o),c()}catch(p){r({errorMessage:p.message})}}})]}),a.renderCustomUI&&a.renderCustomUI(e,t,o,s)]})})},Ek=({elements:e,appState:t,files:r,actionManager:o,exportOpts:i,canvas:a,setAppState:s})=>{let c=yk.default.useCallback(()=>{s({openDialog:null})},[s]);return(0,yr.jsx)(yr.Fragment,{children:t.openDialog?.name==="jsonExport"&&(0,yr.jsx)(Ut,{onCloseRequest:c,title:E("buttons.export"),children:(0,yr.jsx)(oB,{elements:e,appState:t,setAppState:s,files:r,actionManager:o,onCloseRequest:c,exportOpts:i,canvas:a})})})};v();v();var Ck=S(P(),1),wk=e=>(0,Ck.jsx)("button",{className:"help-icon",onClick:e.onClick,type:"button",title:`${E("helpDialog.title")} \u2014 ?`,"aria-label":E("helpDialog.title"),children:Hs});var mo=S(P(),1),Sk=({appState:e,actionManager:t,showExitZenModeBtn:r,renderWelcomeScreen:o})=>{let{FooterCenterTunnel:i,WelcomeScreenHelpHintTunnel:a}=Mt(),s=it(),c=!e.viewModeEnabled&&e.multiElement&&s.isTouchScreen;return(0,mo.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,mo.jsx)("div",{className:Q("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled}),children:(0,mo.jsx)(kr.Col,{gap:2,children:(0,mo.jsxs)(za,{heading:"canvasActions",children:[(0,mo.jsx)(GI,{renderAction:t.renderAction,zoom:e.zoom}),!e.viewModeEnabled&&(0,mo.jsx)(VI,{renderAction:t.renderAction,className:Q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":e.zenModeEnabled})}),c&&(0,mo.jsx)(YI,{renderAction:t.renderAction,className:Q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled})})]})})}),(0,mo.jsx)(i.Out,{}),(0,mo.jsx)("div",{className:Q("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:(0,mo.jsxs)("div",{style:{position:"relative"},children:[o&&(0,mo.jsx)(a.Out,{}),(0,mo.jsx)(wk,{onClick:()=>t.executeAction(Dl)})]})}),(0,mo.jsx)(KI,{actionManager:t,showExitZenModeBtn:r})]})},Tk=Sk;Sk.displayName="Footer";v();var ur=S(ee(),1);v();var Ik=S(ee(),1),Zh=Ik.default.createContext({});v();var kk=S(ee(),1);var Kl=S(P(),1),vv=({children:e,className:t})=>{let r=it(),o=(0,kk.useContext)(Zh),i=!!(r.editor.canFitSidebar&&o.shouldRenderDockButton);return(0,Kl.jsxs)("div",{className:Q("sidebar__header",t),"data-testid":"sidebar-header",children:[e,(0,Kl.jsxs)("div",{className:"sidebar__header__buttons",children:[i&&(0,Kl.jsx)(Ro,{label:E("labels.sidebarLock"),children:(0,Kl.jsx)(ni,{onSelect:()=>o.onDock?.(!o.docked),selected:!!o.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":E("labels.sidebarLock"),children:e6})}),(0,Kl.jsx)(ni,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:o.onCloseRequest,"aria-label":E("buttons.close"),children:rn})]})]})};vv.displayName="SidebarHeader";v();var Yl=S(P(),1),yv=({name:e,tab:t,icon:r,title:o,children:i,onToggle:a,className:s,style:c})=>{let d=at(),p=st();return(0,Yl.jsxs)("label",{title:o,className:"sidebar-trigger__label-element",children:[(0,Yl.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:f=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let m=f.target.checked;d({openSidebar:m?{name:e,tab:t}:null}),a?.(m)},checked:p.openSidebar?.name===e,"aria-label":o,"aria-keyshortcuts":"0"}),(0,Yl.jsxs)("div",{className:Q("sidebar-trigger",s),style:c,children:[r&&(0,Yl.jsx)("div",{children:r}),i&&(0,Yl.jsx)("div",{className:"sidebar-trigger__label",children:i})]})]})};yv.displayName="SidebarTrigger";v();v();var _r=S(ee());v();var Lt=S(ee());v();var Hn=S(ee());function _k(e){let t=e+"CollectionProvider",[r,o]=ti(t),[i,a]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=b=>{let{scope:y,children:w}=b,C=Hn.default.useRef(null),M=Hn.default.useRef(new Map).current;return Hn.default.createElement(i,{scope:y,itemMap:M,collectionRef:C},w)},c=e+"CollectionSlot",d=Hn.default.forwardRef((b,y)=>{let{scope:w,children:C}=b,M=a(c,w),_=Dr(y,M.collectionRef);return Hn.default.createElement(Ta,{ref:_},C)}),p=e+"CollectionItemSlot",f="data-radix-collection-item",m=Hn.default.forwardRef((b,y)=>{let{scope:w,children:C,...M}=b,_=Hn.default.useRef(null),I=Dr(y,_),N=a(p,w);return Hn.default.useEffect(()=>(N.itemMap.set(_,{ref:_,...M}),()=>void N.itemMap.delete(_))),Hn.default.createElement(Ta,{[f]:"",ref:I},C)});function h(b){let y=a(e+"CollectionConsumer",b);return Hn.default.useCallback(()=>{let C=y.collectionRef.current;if(!C)return[];let M=Array.from(C.querySelectorAll(`[${f}]`));return Array.from(y.itemMap.values()).sort((N,$)=>M.indexOf(N.ref.current)-M.indexOf($.ref.current))},[y.collectionRef,y.itemMap])}return[{Provider:s,Slot:d,ItemSlot:m},h,o]}v();var Im=S(ee()),nB=(0,Im.createContext)(void 0);function Xh(e){let t=(0,Im.useContext)(nB);return e||t||"ltr"}var Ev="rovingFocusGroup.onEntryFocus",iB={bubbles:!1,cancelable:!0},Cv="RovingFocusGroup",[wv,Ak,aB]=_k(Cv),[lB,Sv]=ti(Cv,[aB]),[sB,cB]=lB(Cv),dB=(0,Lt.forwardRef)((e,t)=>(0,Lt.createElement)(wv.Provider,{scope:e.__scopeRovingFocusGroup},(0,Lt.createElement)(wv.Slot,{scope:e.__scopeRovingFocusGroup},(0,Lt.createElement)(mB,je({},e,{ref:t}))))),mB=(0,Lt.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:o,loop:i=!1,dir:a,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:p,...f}=e,m=(0,Lt.useRef)(null),h=Dr(t,m),b=Xh(a),[y=null,w]=oc({prop:s,defaultProp:c,onChange:d}),[C,M]=(0,Lt.useState)(!1),_=lo(p),I=Ak(r),N=(0,Lt.useRef)(!1),[$,D]=(0,Lt.useState)(0);return(0,Lt.useEffect)(()=>{let z=m.current;if(z)return z.addEventListener(Ev,_),()=>z.removeEventListener(Ev,_)},[_]),(0,Lt.createElement)(sB,{scope:r,orientation:o,dir:b,loop:i,currentTabStopId:y,onItemFocus:(0,Lt.useCallback)(z=>w(z),[w]),onItemShiftTab:(0,Lt.useCallback)(()=>M(!0),[]),onFocusableItemAdd:(0,Lt.useCallback)(()=>D(z=>z+1),[]),onFocusableItemRemove:(0,Lt.useCallback)(()=>D(z=>z-1),[])},(0,Lt.createElement)(Qt.div,je({tabIndex:C||$===0?-1:0,"data-orientation":o},f,{ref:h,style:{outline:"none",...e.style},onMouseDown:cr(e.onMouseDown,()=>{N.current=!0}),onFocus:cr(e.onFocus,z=>{let B=!N.current;if(z.target===z.currentTarget&&B&&!C){let q=new CustomEvent(Ev,iB);if(z.currentTarget.dispatchEvent(q),!q.defaultPrevented){let V=I().filter(Ee=>Ee.focusable),te=V.find(Ee=>Ee.active),me=V.find(Ee=>Ee.id===y),de=[te,me,...V].filter(Boolean).map(Ee=>Ee.ref.current);Mk(de)}}N.current=!1}),onBlur:cr(e.onBlur,()=>M(!1))})))}),uB="RovingFocusGroupItem",pB=(0,Lt.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:o=!0,active:i=!1,tabStopId:a,...s}=e,c=Qs(),d=a||c,p=cB(uB,r),f=p.currentTabStopId===d,m=Ak(r),{onFocusableItemAdd:h,onFocusableItemRemove:b}=p;return(0,Lt.useEffect)(()=>{if(o)return h(),()=>b()},[o,h,b]),(0,Lt.createElement)(wv.ItemSlot,{scope:r,id:d,focusable:o,active:i},(0,Lt.createElement)(Qt.span,je({tabIndex:f?0:-1,"data-orientation":p.orientation},s,{ref:t,onMouseDown:cr(e.onMouseDown,y=>{o?p.onItemFocus(d):y.preventDefault()}),onFocus:cr(e.onFocus,()=>p.onItemFocus(d)),onKeyDown:cr(e.onKeyDown,y=>{if(y.key==="Tab"&&y.shiftKey){p.onItemShiftTab();return}if(y.target!==y.currentTarget)return;let w=gB(y,p.orientation,p.dir);if(w!==void 0){y.preventDefault();let M=m().filter(_=>_.focusable).map(_=>_.ref.current);if(w==="last")M.reverse();else if(w==="prev"||w==="next"){w==="prev"&&M.reverse();let _=M.indexOf(y.currentTarget);M=p.loop?bB(M,_+1):M.slice(_+1)}setTimeout(()=>Mk(M))}})})))}),fB={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function hB(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function gB(e,t,r){let o=hB(e.key,r);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return fB[o]}function Mk(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 Lk=dB,Pk=pB;var Rk="Tabs",[xB,Lfe]=ti(Rk,[Sv]),Dk=Sv(),[vB,Tv]=xB(Rk),yB=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,onValueChange:i,defaultValue:a,orientation:s="horizontal",dir:c,activationMode:d="automatic",...p}=e,f=Xh(c),[m,h]=oc({prop:o,onChange:i,defaultProp:a});return(0,_r.createElement)(vB,{scope:r,baseId:Qs(),value:m,onValueChange:h,orientation:s,dir:f,activationMode:d},(0,_r.createElement)(Qt.div,je({dir:f,"data-orientation":s},p,{ref:t})))}),EB="TabsList",wB=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,loop:o=!0,...i}=e,a=Tv(EB,r),s=Dk(r);return(0,_r.createElement)(Lk,je({asChild:!0},s,{orientation:a.orientation,dir:a.dir,loop:o}),(0,_r.createElement)(Qt.div,je({role:"tablist","aria-orientation":a.orientation},i,{ref:t})))}),CB="TabsTrigger",SB=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,disabled:i=!1,...a}=e,s=Tv(CB,r),c=Dk(r),d=Nk(s.baseId,o),p=Ok(s.baseId,o),f=o===s.value;return(0,_r.createElement)(Pk,je({asChild:!0},c,{focusable:!i,active:f}),(0,_r.createElement)(Qt.button,je({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:cr(e.onMouseDown,m=>{!i&&m.button===0&&m.ctrlKey===!1?s.onValueChange(o):m.preventDefault()}),onKeyDown:cr(e.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&s.onValueChange(o)}),onFocus:cr(e.onFocus,()=>{let m=s.activationMode!=="manual";!f&&!i&&m&&s.onValueChange(o)})})))}),TB="TabsContent",IB=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,forceMount:i,children:a,...s}=e,c=Tv(TB,r),d=Nk(c.baseId,o),p=Ok(c.baseId,o),f=o===c.value,m=(0,_r.useRef)(f);return(0,_r.useEffect)(()=>{let h=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(h)},[]),(0,_r.createElement)(rc,{present:i||f},({present:h})=>(0,_r.createElement)(Qt.div,je({"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!h,id:p,tabIndex:0},s,{ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0}}),h&&a))});function Nk(e,t){return`${e}-trigger-${t}`}function Ok(e,t){return`${e}-content-${t}`}var jh=yB,qh=wB,Jh=SB,Qh=IB;var Fk=S(P(),1),Iv=({children:e,...t})=>(0,Fk.jsx)(qh,{className:"sidebar-triggers",...t,children:e});Iv.displayName="SidebarTabTriggers";v();var kv=S(P(),1),_v=({children:e,tab:t,onSelect:r,...o})=>(0,kv.jsx)(Jh,{value:t,asChild:!0,onSelect:r,children:(0,kv.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...o,children:e})});_v.displayName="SidebarTabTrigger";v();var zk=S(P(),1),Av=({children:e,...t})=>{let r=st(),o=at();if(!r.openSidebar)return null;let{name:i}=r.openSidebar;return(0,zk.jsx)(jh,{className:"sidebar-tabs-root",value:r.openSidebar.tab,onValueChange:a=>o(s=>({...s,openSidebar:{...s.openSidebar,name:i,tab:a}})),...t,children:e})};Av.displayName="SidebarTabs";v();var Bk=S(P(),1),Mv=({tab:e,children:t,...r})=>(0,Bk.jsx)(Qh,{...r,value:e,"data-testid":e,children:t});Mv.displayName="SidebarTab";var Lv=S(P(),1),Hk=S(ee(),1),km=It(!1),$k=(0,ur.forwardRef)(({name:e,children:t,onDock:r,docked:o,className:i,...a},s)=>{A.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=at(),d=Ri(km,ft);(0,ur.useLayoutEffect)(()=>(d(!!o),()=>{d(!1)}),[d,o]);let p=(0,ur.useRef)({});p.current.onCloseRequest=()=>{c({openSidebar:null})},p.current.onDock=b=>r?.(b),p.current=fs(p.current,{docked:o,shouldRenderDockButton:!!r&&o!=null});let f=(0,ur.useRef)(null);(0,ur.useImperativeHandle)(s,()=>f.current);let m=it(),h=(0,ur.useCallback)(()=>{document.querySelector(".Dialog")||c({openSidebar:null})},[c]);return cc(f,(0,ur.useCallback)(b=>{b.target.closest(".sidebar-trigger")||(!o||!m.editor.canFitSidebar)&&h()},[h,o,m.editor.canFitSidebar])),(0,ur.useEffect)(()=>{let b=y=>{y.key===R.ESCAPE&&(!o||!m.editor.canFitSidebar)&&h()};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b)}},[h,o,m.editor.canFitSidebar]),(0,Lv.jsx)(Or,{...a,className:Q("sidebar",{"sidebar--docked":o},i),ref:f,children:(0,Lv.jsx)(Zh.Provider,{value:p.current,children:t})})});$k.displayName="SidebarInner";var Wi=Object.assign((0,ur.forwardRef)((e,t)=>{let r=st(),{onStateChange:o}=e,i=(0,ur.useRef)(r.openSidebar);(0,ur.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,ur.useState)(!1);return(0,ur.useLayoutEffect)(()=>(s(!0),()=>s(!1)),[]),a&&r.openSidebar?.name===e.name?(0,Hk.createElement)($k,{...e,ref:t,key:e.name}):null}),{Header:vv,TabTriggers:Iv,TabTrigger:_v,Tabs:Av,Tab:Mv,Trigger:yv});Wi.displayName="Sidebar";v();var Rv={};qE(Rv,{ChangeCanvasBackground:()=>Jk,ClearCanvas:()=>jk,CommandPalette:()=>Zk,Export:()=>Qk,Help:()=>Xk,LiveCollaborationTrigger:()=>t_,LoadScene:()=>Vk,SaveAsImage:()=>Yk,SaveToActiveFile:()=>Kk,Socials:()=>e_,ToggleTheme:()=>qk});v();v();var Pv=It({active:!1});async function Uk({title:e,description:t,actionLabel:r,color:o}){return new Promise(i=>{Gr.set(Pv,{active:!0,onConfirm:()=>i(!0),onClose:()=>i(!1),onReject:()=>i(!1),title:e,description:t,actionLabel:r,color:o})})}v();var Gi=S(P(),1),Wk=({value:e,shortcut:t,onChange:r,choices:o,children:i,name:a})=>{let s=it();return(0,Gi.jsxs)(Gi.Fragment,{children:[(0,Gi.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,Gi.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:a,children:i}),(0,Gi.jsx)($h,{name:a,value:e,onChange:r,choices:o})]}),t&&!s.editor.isMobile&&(0,Gi.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:t})]})};Wk.displayName="DropdownMenuItemContentRadio";var Gk=Wk;var Wt=S(P(),1),Vk=()=>{let{t:e}=sr(),t=vr(),r=Ma();return t.isActionEnabled(pc)?(0,Wt.jsx)(sn,{icon:Us,onSelect:async()=>{(!r.length||await Uk({title:e("overwriteConfirm.modal.loadFromFile.title"),actionLabel:e("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,Wt.jsx)(co,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:i=>(0,Wt.jsx)("strong",{children:i}),br:()=>(0,Wt.jsx)("br",{})})}))&&t.executeAction(pc)},"data-testid":"load-button",shortcut:mr("loadScene"),"aria-label":e("buttons.load"),children:e("buttons.load")}):null};Vk.displayName="LoadScene";var Kk=()=>{let{t:e}=sr(),t=vr();return t.isActionEnabled(eh)?(0,Wt.jsx)(sn,{shortcut:mr("saveScene"),"data-testid":"save-button",onSelect:()=>t.executeAction(eh),icon:y6,"aria-label":`${e("buttons.save")}`,children:`${e("buttons.save")}`}):null};Kk.displayName="SaveToActiveFile";var Yk=()=>{let e=at(),{t}=sr();return(0,Wt.jsx)(sn,{icon:df,"data-testid":"image-export-button",onSelect:()=>e({openDialog:{name:"imageExport"}}),shortcut:mr("imageExport"),"aria-label":t("buttons.exportImage"),children:t("buttons.exportImage")})};Yk.displayName="SaveAsImage";var Zk=e=>{let t=at(),{t:r}=sr();return(0,Wt.jsx)(sn,{icon:vf,"data-testid":"command-palette-button",onSelect:()=>{Ue("command_palette","open","menu"),t({openDialog:{name:"commandPalette"}})},shortcut:mr("commandPalette"),"aria-label":r("commandPalette.title"),className:e?.className,children:r("commandPalette.title")})};Zk.displayName="CommandPalette";var Xk=()=>{let{t:e}=sr(),t=vr();return(0,Wt.jsx)(sn,{"data-testid":"help-menu-item",icon:Hs,onSelect:()=>t.executeAction(Dl),shortcut:"?","aria-label":e("helpDialog.title"),children:e("helpDialog.title")})};Xk.displayName="Help";var jk=()=>{let{t:e}=sr(),t=Ri(Wl,ft);return vr().isActionEnabled(Bi)?(0,Wt.jsx)(sn,{icon:Dn,onSelect:()=>t("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":e("buttons.clearReset"),children:e("buttons.clearReset")}):null};jk.displayName="ClearCanvas";var qk=e=>{let{t}=sr(),r=st(),o=vr(),i=mr("toggleTheme");return o.isActionEnabled(Al)?e?.allowSystemTheme?(0,Wt.jsx)(Gk,{name:"theme",value:e.theme,onChange:a=>e.onSelect(a),choices:[{value:He.LIGHT,label:Wd,ariaLabel:`${t("buttons.lightMode")} - ${i}`},{value:He.DARK,label:Ud,ariaLabel:`${t("buttons.darkMode")} - ${i}`},{value:"system",label:L4,ariaLabel:t("buttons.systemMode")}],children:t("labels.theme")}):(0,Wt.jsx)(sn,{onSelect:a=>{if(a.preventDefault(),e?.onSelect)e.onSelect(r.theme===He.DARK?He.LIGHT:He.DARK);else return o.executeAction(Al)},icon:r.theme===He.DARK?Wd:Ud,"data-testid":"toggle-dark-mode",shortcut:i,"aria-label":r.theme===He.DARK?t("buttons.lightMode"):t("buttons.darkMode"),children:r.theme===He.DARK?t("buttons.lightMode"):t("buttons.darkMode")}):null};qk.displayName="ToggleTheme";var Jk=()=>{let{t:e}=sr(),t=st(),r=vr(),o=Ra();return t.viewModeEnabled||!o.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,Wt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,Wt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:e("labels.canvasBackground")}),(0,Wt.jsx)("div",{style:{padding:"0 0.625rem"},children:r.renderAction("changeViewBackgroundColor")})]})};Jk.displayName="ChangeCanvasBackground";var Qk=()=>{let{t:e}=sr(),t=at();return(0,Wt.jsx)(sn,{icon:El,onSelect:()=>{t({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":e("buttons.export"),children:e("buttons.export")})};Qk.displayName="Export";var e_=()=>{let{t:e}=sr();return(0,Wt.jsxs)(Wt.Fragment,{children:[(0,Wt.jsx)(Cc,{icon:sf,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,Wt.jsx)(Cc,{icon:x6,href:"https://x.com/excalidraw","aria-label":"X",children:e("labels.followUs")}),(0,Wt.jsx)(Cc,{icon:b6,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:e("labels.discordChat")})]})};e_.displayName="Socials";var t_=({onSelect:e,isCollaborating:t})=>{let{t:r}=sr();return(0,Wt.jsx)(sn,{"data-testid":"collab-button",icon:mf,className:Q({"active-collab":t}),onSelect:e,children:r("labels.liveCollaboration")})};t_.displayName="LiveCollaborationTrigger";v();var eg=S(ee(),1);var r_=S(P(),1),Vi=(e,t)=>{let r=It(0),o=i=>{let{jotaiScope:a}=Mt(),[,s]=qe(r,a),c=(0,eg.useRef)({preferHost:!1,counter:0});return(0,eg.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,r_.jsx)(t,{...i})};return o.displayName=e,o};var Ki=S(P(),1),kB=Object.assign(Vi("MainMenu",({children:e,onSelect:t})=>{let{MainMenuTunnel:r}=Mt(),o=it(),i=st(),a=at(),s=o.editor.isMobile?void 0:()=>a({openMenu:null});return(0,Ki.jsx)(r.In,{children:(0,Ki.jsxs)(ut,{open:i.openMenu==="canvas",children:[(0,Ki.jsx)(ut.Trigger,{onToggle:()=>{a({openMenu:i.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:lf}),(0,Ki.jsxs)(ut.Content,{onClickOutside:s,onSelect:ua(t,()=>{a({openMenu:null})}),children:[e,o.editor.isMobile&&i.collaborators.size>0&&(0,Ki.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,Ki.jsx)("legend",{children:E("labels.collaborators")}),(0,Ki.jsx)(Yh,{mobile:!0,collaborators:i.collaborators,userToFollow:i.userToFollow?.socketId||null})]})]})]})})}),{Trigger:ut.Trigger,Item:ut.Item,ItemLink:ut.ItemLink,ItemCustom:ut.ItemCustom,Group:ut.Group,Separator:ut.Separator,DefaultItems:Rv}),uo=kB;v();v();var Yi=S(P(),1),tg=({title:e,children:t,actionLabel:r,onClick:o})=>(0,Yi.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Yi.jsx)("h4",{children:e}),(0,Yi.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:t}),(0,Yi.jsx)(ai,{variant:"outlined",color:"muted",label:r,size:"large",fullWidth:!0,onClick:o})]}),_B=()=>{let{t:e}=sr(),t=vr(),r=at();return(0,Yi.jsx)(tg,{title:e("overwriteConfirm.action.exportToImage.title"),actionLabel:e("overwriteConfirm.action.exportToImage.button"),onClick:()=>{t.executeAction(Qf,"ui",!0),r({openDialog:{name:"imageExport"}})},children:e("overwriteConfirm.action.exportToImage.description")})},AB=()=>{let{t:e}=sr(),t=vr();return(0,Yi.jsx)(tg,{title:e("overwriteConfirm.action.saveToDisk.title"),actionLabel:e("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{t.executeAction(cm,"ui")},children:e("overwriteConfirm.action.saveToDisk.description")})},Dv=Object.assign(({children:e})=>(0,Yi.jsx)("div",{className:"OverwriteConfirm__Actions",children:e}),{ExportToImage:_B,SaveToDisk:AB});var un=S(P(),1),rg=Object.assign(Vi("OverwriteConfirmDialog",({children:e})=>{let{OverwriteConfirmDialogTunnel:t}=Mt(),[r,o]=qe(Pv,ft);if(!r.active)return null;let i=()=>{r.onClose(),o(s=>({...s,active:!1}))},a=()=>{r.onConfirm(),o(s=>({...s,active:!1}))};return(0,un.jsx)(t.In,{children:(0,un.jsx)(Ut,{onCloseRequest:i,title:!1,size:916,children:(0,un.jsxs)("div",{className:"OverwriteConfirm",children:[(0,un.jsx)("h3",{children:r.title}),(0,un.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${r.color}`,children:[(0,un.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:p4}),(0,un.jsx)("div",{children:r.description}),(0,un.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,un.jsx)(ai,{color:r.color,size:"large",label:r.actionLabel,onClick:a})]}),(0,un.jsx)(Dv,{children:e})]})})})}),{Actions:Dv,Action:tg});v();var pn=S(P(),1),i_=S(ee(),1),o_=Vi("DefaultSidebarTrigger",e=>{let{DefaultSidebarTriggerTunnel:t}=Mt();return(0,pn.jsx)(t.In,{children:(0,pn.jsx)(Wi.Trigger,{...e,className:"default-sidebar-trigger",name:_n.name})})});o_.displayName="DefaultSidebarTrigger";var n_=({children:e,...t})=>{let{DefaultSidebarTabTriggersTunnel:r}=Mt();return(0,pn.jsx)(r.In,{children:(0,pn.jsx)(Wi.TabTriggers,{...t,children:e})})};n_.displayName="DefaultTabTriggers";var og=Object.assign(Vi("DefaultSidebar",({children:e,className:t,onDock:r,docked:o,...i})=>{let a=st(),s=at(),{DefaultSidebarTabTriggersTunnel:c}=Mt();return(0,i_.createElement)(Wi,{...i,name:"default",key:"default",className:Q("default-sidebar",t),docked:o??a.defaultSidebarDockedPreference,onDock:r===!1||!r&&o!=null?void 0:ua(r,d=>{s({defaultSidebarDockedPreference:d})})},(0,pn.jsxs)(Wi.Tabs,{children:[(0,pn.jsxs)(Wi.Header,{children:[i.__fallback&&(0,pn.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:E("toolBar.library")}),(0,pn.jsx)(c.Out,{})]}),(0,pn.jsx)(Wi.Tab,{tab:qu,children:(0,pn.jsx)(bI,{})}),e]}))}),{Trigger:o_,TabTriggers:n_});v();var _m=S(P(),1),MB="small",a_=e=>(0,_m.jsxs)("label",{className:Q("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${MB}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,_m.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,_m.jsx)("div",{className:"ToolIcon__icon",children:bf})]});v();var Ov=S(ee(),1);v();var l_=S(P(),1),Ac=e=>(0,l_.jsx)("p",{className:"excalidraw__paragraph",style:e.style,children:e.children});v();var Nv=S(ee(),1);var c_=S(P(),1),s_=e=>{let t=at(),r=(0,Nv.useRef)(null),o=(0,Nv.useRef)(0);return(0,c_.jsx)(jh,{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"&&f0(["text-to-diagram","diagram-to-code"],i)?t({openDialog:{name:e.dialog,tab:i,source:"settings"}}):e.dialog==="ttd"&&f0(["text-to-diagram","mermaid"],i)&&t({openDialog:{name:e.dialog,tab:i}})},children:e.children})};s_.displayName="TTDDialogTabs";var ng=s_;v();var d_=S(P(),1),Mc=({tab:e,children:t,...r})=>(0,d_.jsx)(Qh,{...r,value:e,children:t});Mc.displayName="TTDDialogTab";var lr=S(P(),1),m_=e=>{let[t,r]=(0,Ov.useState)(e.openAIKey||""),[o,i]=(0,Ov.useState)(e.isPersisted),a=st(),s=()=>{e.onConfirm(t.trim(),o)};return a.openDialog?.name!=="settings"?null:(0,lr.jsx)(Ut,{onCloseRequest:()=>{e.onClose(),e.onConfirm(t.trim(),o)},title:(0,lr.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,lr.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,lr.jsx)(ng,{dialog:"settings",tab:a.openDialog.tab,children:(0,lr.jsxs)(Mc,{tab:"diagram-to-code",children:[(0,lr.jsxs)(Ac,{children:["For the diagram-to-code feature we use"," ",(0,lr.jsx)(dn,{icon:Vd}),"OpenAI."]}),(0,lr.jsxs)(Ac,{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,lr.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,lr.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,lr.jsx)(Ac,{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,lr.jsx)(Mh,{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===R.ENTER&&s()}),(0,lr.jsx)(Ac,{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,lr.jsx)(Rl,{checked:o,onChange:i,children:"Persist API key in browser storage"}),(0,lr.jsxs)(Ac,{children:["Once API key is set, you can use the ",(0,lr.jsx)(dn,{icon:Gs})," ","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,lr.jsx)("b",{children:"AI Settings"})," ",(0,lr.jsx)(dn,{icon:Vd}),"."]}),(0,lr.jsx)(ai,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:s})]})})})};v();v();var Un=S(ee(),1);v();var LB=({canvasRef:e,setError:t})=>{let r=e.current;if(!r)return;let o=r.parentElement;o&&(o.style.background="",t(null),r.replaceChildren())},ig=async({canvasRef:e,mermaidToExcalidrawLib:t,mermaidDefinition:r,setError:o,data:i})=>{let a=e.current,s=a?.parentElement;if(!(!a||!s)){if(!r){LB({canvasRef:e,setError:o});return}try{let c=await t.api,d;try{d=await c.parseMermaidToExcalidraw(r,{fontSize:kn})}catch{d=await c.parseMermaidToExcalidraw(r.replace(/"/g,"'"),{fontSize:kn})}let{elements:p,files:f}=d;o(null),i.current={elements:Lc(p,{regenerateIds:!0}),files:f};let m=await bl({elements:i.current.elements,files:i.current.files,exportPadding:da,maxWidthOrHeight:Math.max(s.offsetWidth,s.offsetHeight)*window.devicePixelRatio});try{await Mi(m)}catch(h){throw h.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):h}s.style.background="var(--default-bg-color)",a.replaceChildren(m)}catch(c){throw s.style.background="var(--default-bg-color)",r&&o(c),c}}},Am=e=>{wo.set(Yo.MERMAID_TO_EXCALIDRAW,e)},ag=({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&&Am(r))};v();var u_=S(P(),1),lg=({children:e})=>(0,u_.jsx)("div",{className:"ttd-dialog-panels",children:e});v();var si=S(P(),1),Pc=({label:e,children:t,panelAction:r,panelActionDisabled:o=!1,onTextSubmitInProgess:i,renderTopRight:a,renderSubmitShortcut:s,renderBottomRight:c})=>(0,si.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,si.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,si.jsx)("label",{children:e}),a?.()]}),t,(0,si.jsxs)("div",{className:Q("ttd-dialog-panel-button-container",{invisible:!r}),style:{display:"flex",alignItems:"center"},children:[(0,si.jsxs)(ni,{className:"ttd-dialog-panel-button",onSelect:r?r.action:()=>{},disabled:o||i,children:[(0,si.jsxs)("div",{className:Q({invisible:i}),children:[r?.label,r?.icon&&(0,si.jsx)("span",{children:r.icon})]}),i&&(0,si.jsx)(Rr,{})]}),!o&&!i&&s?.(),c?.()]})]});v();var Mm=S(ee(),1);var p_=S(P(),1),sg=({input:e,placeholder:t,onChange:r,onKeyboardSubmit:o})=>{let i=(0,Mm.useRef)(null),a=(0,Mm.useRef)(o);return a.current=o,(0,Mm.useEffect)(()=>{if(!a.current)return;let s=i.current;if(s){let c=d=>{d[R.CTRL_OR_CMD]&&d.key===R.ENTER&&(d.preventDefault(),a.current?.())};return s.addEventListener("keydown",c),()=>{s.removeEventListener("keydown",c)}}},[]),(0,p_.jsx)("textarea",{className:"ttd-dialog-input",onChange:r,value:e,placeholder:t,autoFocus:!0,ref:i})};v();var Wa=S(P(),1),PB=({error:e})=>(0,Wa.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,Wa.jsx)("p",{children:e})]}),cg=({error:e,canvasRef:t,loaded:r})=>(0,Wa.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[e&&(0,Wa.jsx)(PB,{error:e.message}),r?(0,Wa.jsx)("div",{ref:t,style:{opacity:e?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,Wa.jsx)(Rr,{size:"2rem"})]});v();var Lm=S(P(),1),dg=()=>(0,Lm.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Lm.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("CtrlOrCmd")}),(0,Lm.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("Enter")})]});var qr=S(P(),1),RB=`flowchart TD
65
+ `);try{Ws(a)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return{storeAction:W.NONE}},predicate:(e,t,r,o)=>hv&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0}).some(he),keywords:["text","clipboard","copy"]});v();var Og=re({name:"gridMode",icon:rC,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:yi,objectsSnapModeEnabled:!1},storeAction:W.NONE}},checked:e=>e.gridSize!==null,predicate:(e,t,r)=>typeof r.gridModeEnabled>"u",keyTest:e=>e[R.CTRL_OR_CMD]&&e.code===Ne.QUOTE});v();var Pc=re({name:"zenMode",label:"buttons.zenMode",icon:QT,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.zenModeEnabled},perform(e,t){return{appState:{...t,zenModeEnabled:!this.checked(t)},storeAction:W.NONE}},checked:e=>e.zenModeEnabled,predicate:(e,t,r)=>typeof r.zenModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.Z});v();var Qy=re({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:JT,viewMode:!1,trackEvent:{category:"canvas",predicate:e=>!e.objectsSnapModeEnabled},perform(e,t){return{appState:{...t,objectsSnapModeEnabled:!this.checked(t),gridSize:null},storeAction:W.NONE}},checked:e=>e.objectsSnapModeEnabled,predicate:(e,t,r)=>typeof r.objectsSnapModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.S});v();var Mc=re({name:"stats",label:"stats.fullTitle",icon:VT,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:W.NONE}},checked:e=>e.stats.open,keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.SLASH});v();var eE=re({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>o.scene.getSelectedElements(t).some(a=>yo(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:u}=Ai(c.originalText,ro(c),c.lineHeight),f=sI(s.id);lI(s.id);let{x:m,y:g}=gf(s,c,a);ce(c,{containerId:null,width:d,height:u,text:c.originalText,x:m,y:g}),ce(s,{boundElements:s.boundElements?.filter(h=>h.id!==c.id),height:f||s.height})}}),{elements:e,appState:t,storeAction:W.CAPTURE}}}),tE=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=he(i[0])||he(i[1]),s;if(wi(i[0])?s=i[0]:wi(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;he(i[0])&&wi(i[1])?(a=i[0],s=i[1]):(a=i[1],s=i[0]),ce(a,{containerId:s.id,verticalAlign:Zo.MIDDLE,textAlign:Cd.CENTER,autoResize:!0}),ce(s,{boundElements:(s.boundElements||[]).concat({type:"text",id:a.id})});let c=s.height;return qt(a,s,o.scene.getNonDeletedElementsMap()),Xd(s.id,c),{elements:TF(e,s,a),appState:{...t,selectedElementIds:{[s.id]:!0}},storeAction:W.CAPTURE}}}),TF=(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),Do(o,Re([t,r])),o},CF=(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),Do(o,Re([t,r])),o},Uk=re({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=i.every(s=>he(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(he(c)){let d=ba({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:Is("rectangle")?bo.ADAPTIVE_RADIUS:bo.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:c.x-Px,y:c.y-Px,width:Zs(c.width,"rectangle"),height:Zs(c.height,"rectangle"),groupIds:c.groupIds,frameId:c.frameId});if(c.boundElements?.length){let u=c.boundElements.filter(m=>m.type==="arrow").map(m=>m.id);a.filter(m=>u.includes(m.id)).forEach(m=>{let g=m.startBinding,h=m.endBinding;g?.elementId===c.id&&(g={...g,elementId:d.id}),h?.elementId===c.id&&(h={...h,elementId:d.id}),(g||h)&&ce(m,{startBinding:g,endBinding:h},!1)})}ce(c,{containerId:d.id,verticalAlign:Zo.MIDDLE,boundElements:null,textAlign:Cd.CENTER,autoResize:!0},!1),qt(c,d,o.scene.getNonDeletedElementsMap()),a=CF([...a,d],d,c),s[d.id]=!0}return{elements:a,appState:{...t,selectedElementIds:s},storeAction:W.CAPTURE}}});v();v();var Nn=w(j(),1);var $i=w(M(),1),nE=320,Gk=85,rE=5,IF=42,_F=500,oE=!1,Fg=new Map,Wk=({element:e,elementsMap:t,setAppState:r,onLinkOpen:o,setToast:i,updateEmbedValidationStatus:a})=>{let s=Qn(),c=ei(),d=e.link||"",[u,f]=(0,Nn.useState)(d),m=(0,Nn.useRef)(null),g=s.showHyperlinkPopup==="editor",h=(0,Nn.useCallback)(()=>{if(!m.current)return;let I=Ti(m.current.value)||null;if(!e.link&&I&&ze("hyperlink","create"),$r(e)){if(s.activeEmbeddable?.element===e&&r({activeEmbeddable:null}),!I){ce(e,{link:null}),a(e,!1);return}if(!Us(I,c.validateEmbeddable))I&&i({message:E("toast.unableToEmbed"),closable:!0}),e.link&&Fg.set(e.id,e.link),ce(e,{link:I}),a(e,!1);else{let{width:C,height:O}=e,z=Sl(I);z?.error instanceof URIError&&i({message:E("toast.unrecognizedLinkFormat"),closable:!0});let L=z?z.intrinsicSize.w/z.intrinsicSize.h:1,F=Fg.get(e.id)!==e.link;ce(e,{...F?{width:z?.type==="video"?C>O?C:O*L:C,height:z?.type==="video"&&C>O?C/L:O}:{},link:I}),a(e,!0),Fg.has(e.id)&&Fg.delete(e.id)}}else ce(e,{link:I})},[e,i,c.validateEmbeddable,s.activeEmbeddable,r,a]);(0,Nn.useLayoutEffect)(()=>()=>{h()},[h]),(0,Nn.useEffect)(()=>{let I=null,C=O=>{if(g)return;I&&clearTimeout(I),kF(e,t,s,[O.clientX,O.clientY])&&(I=window.setTimeout(()=>{r({showHyperlinkPopup:!1})},_F))};return window.addEventListener("pointermove",C,!1),()=>{window.removeEventListener("pointermove",C,!1),I&&clearTimeout(I)}},[s,e,g,r,t]);let b=(0,Nn.useCallback)(()=>{ze("hyperlink","delete"),ce(e,{link:null}),g&&(m.current.value=""),r({showHyperlinkPopup:!1})},[r,e,g]),y=()=>{ze("hyperlink","edit","popup-ui"),r({showHyperlinkPopup:"editor"})},{x:T,y:k}=Kk(e,s,t);return s.contextMenu||s.draggingElement||s.resizingElement||s.isRotating||s.openMenu||s.viewModeEnabled?null:(0,$i.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${k}px`,left:`${T}px`,width:nE,padding:rE},onClick:()=>{!e.link&&!g&&r({showHyperlinkPopup:"editor"})},children:[g?(0,$i.jsx)("input",{className:q("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:m,value:u,onChange:I=>f(I.target.value),autoFocus:!0,onKeyDown:I=>{I.stopPropagation(),I[R.CTRL_OR_CMD]&&I.key===R.K&&I.preventDefault(),(I.key===R.ENTER||I.key===R.ESCAPE)&&(h(),r({showHyperlinkPopup:"info"}))}}):e.link?(0,$i.jsx)("a",{href:Ti(e.link||""),className:"excalidraw-hyperlinkContainer-link",target:vp(e.link)?"_self":"_blank",onClick:I=>{if(e.link&&o){let C=fp("excalidraw-link",I.nativeEvent);o({...e,link:Ti(e.link)},C),C.defaultPrevented&&I.preventDefault()}},rel:"noopener noreferrer",children:e.link}):(0,$i.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:E("labels.link.empty")}),(0,$i.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!g&&(0,$i.jsx)(Ie,{type:"button",title:E("buttons.edit"),"aria-label":E("buttons.edit"),label:E("buttons.edit"),onClick:y,className:"excalidraw-hyperlinkContainer--edit",icon:Ep}),d&&!$r(e)&&(0,$i.jsx)(Ie,{type:"button",title:E("buttons.remove"),"aria-label":E("buttons.remove"),label:E("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:kn})]})]})},Kk=(e,t,r)=>{let[o,i]=Eo(e,r),{x:a,y:s}=oo({sceneX:o+e.width/2,sceneY:i},t),c=a-t.offsetLeft-nE/2,d=s-t.offsetTop-Gk;return{x:c,y:d}},iE=(e,t)=>{let r=Oe(e,t);return r[0]?.link?$r(r[0])?"labels.link.editEmbed":"labels.link.edit":$r(r[0])?"labels.link.createEmbed":"labels.link.create"},wm=null,Yk=(e,t,r)=>{wm&&clearTimeout(wm),wm=window.setTimeout(()=>AF(e,t,r),$S)},AF=(e,t,r)=>{if(!e.link)return;let o=Cc();o.classList.add("excalidraw-tooltip--visible"),o.style.maxWidth="20rem",o.textContent=e.link;let[i,a,s,c]=Eo(e,r),[d,u,f,m]=BC([i,a,s,c],e.angle,t),g=oo({sceneX:d,sceneY:u},t);By(o,{left:g.x,top:g.y,width:f,height:m},"top"),ze("hyperlink","tooltip","link-icon"),oE=!0},Vk=()=>{wm&&clearTimeout(wm),oE&&(oE=!1,Cc().classList.remove("excalidraw-tooltip--visible"))},kF=(e,t,r,[o,i])=>{let{x:a,y:s}=Mt({clientX:o,clientY:i},r),c=15/r.zoom.value;if(TC(a,s,e,t))return!1;let[d,u,f]=Eo(e,t);if(a>=d&&a<=f&&s>=u-Gk&&s<=u)return!1;let{x:m,y:g}=Kk(e,r,t);return!(o>=m-c&&o<=m+nE+rE*2+c&&i>=g-c&&i<=g+c+rE*2+IF)};var Xk=w(M(),1),Sm=re({name:"hyperlink",label:(e,t)=>iE(e,t),icon:Od,perform:(e,t)=>t.showHyperlinkPopup==="editor"?!1:{elements:e,appState:{...t,showHyperlinkPopup:"editor",openMenu:null},storeAction:W.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.K,predicate:(e,t)=>Oe(e,t).length===1,PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Oe(e,t);return(0,Xk.jsx)(Ie,{type:"button",icon:Od,"aria-label":E(iE(e,t)),title:`${$r(e[0])?E("labels.link.labelEmbed"):E("labels.link.label")} - ${X("CtrlOrCmd+K")}`,onClick:()=>r(null),selected:o.length===1&&!!o[0].link})}});v();var aE=e=>e.every(t=>!t.locked),lE=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":aE(o)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(e,t)=>{let r=Oe(t,e);return aE(r)?Ps:hl},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=aE(i),s=Re(i);return{elements:e.map(c=>s.has(c.id)?ke(c,{locked:a}):c),appState:{...t,selectedLinearElement:a?null:t.selectedLinearElement},storeAction:W.CAPTURE}},keyTest:(e,t,r,o)=>e.key.toLocaleLowerCase()===R.L&&e[R.CTRL_OR_CMD]&&e.shiftKey&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1}).length>0}),Zk=re({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:hl,predicate:(e,t)=>Oe(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?ke(o,{locked:!1}):o),appState:{...t,selectedElementIds:Object.fromEntries(r.map(o=>[o.id,!0]))},storeAction:W.CAPTURE}},label:"labels.elementLock.unlockAll"});v();v();var un=w(j(),1);v();var Qg=w(j(),1);v();var Bg=w(j(),1),qk=()=>{let[e,t]=(0,Bg.useState)(null),r=(0,Bg.useCallback)(o=>t(o),[]);return[e,r]};v();var jk=w(Zn(),1);var Jk=w(j(),1),Tm=w(M(),1),Qk=e=>{let{closeOnClickOutside:t=!0}=e,r=mg({className:"excalidraw-modal-container"}),o=(0,Jk.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!r)return null;let i=a=>{a.key===R.ESCAPE&&(a.nativeEvent.stopImmediatePropagation(),a.stopPropagation(),e.onCloseRequest())};return(0,jk.createPortal)((0,Tm.jsxs)("div",{className:q("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,Tm.jsx)("div",{className:"Modal__background",onClick:t?e.onCloseRequest:void 0}),(0,Tm.jsx)("div",{className:"Modal__content",style:{"--max-width":`${e.maxWidth}px`},tabIndex:0,children:e.children})]}),r)};v();var zo=w(j(),1);v();var Rc=w(j(),1);v();var zg=w(j(),1);var sE=St(new Map),e5=async e=>await Gd({elements:e,appState:{exportBackground:!1,viewBackgroundColor:xi.white},files:null,renderEmbeddables:!1}),t5=(e,t,r)=>{let[o,i]=(0,zg.useState)();return(0,zg.useEffect)(()=>{if(t)if(e){let a=r.get(e);a?i(a):(async()=>{let s=await e5(t);s.querySelector(".style-fonts")?.remove(),s&&(r.set(e,s),i(s))})()}else(async()=>{let a=await e5(t);i(a)})()},[e,t,r,i]),o},$g=()=>{let[e]=Ve(sE,mt);return{clearLibraryCache:()=>e.clear(),deleteItemsFromLibraryCache:o=>{o.forEach(i=>e.delete(i))},svgCache:e}};v();var Hg=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(Pd(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...r){let o=pp();return this.jobs.push({jobFactory:t,promise:o,args:r}),this.tick(),o}};var o5=new en,Wl=St({status:"loaded",isInitialized:!1,libraryItems:[]}),Cm=e=>vo(e),PF=(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)),n5=(e,t)=>{let r=[];for(let o of t)PF(e,o)&&r.push(o);return[...r,...e]},i5=(e,t)=>{let r=Re(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=Re(e);for(let a of t)i.has(a.id)||o.addedItems.set(a.id,a);return o},cE=class{currLibraryItems=[];prevLibraryItems=Cm(this.currLibraryItems);app;constructor(t){this.app=t}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Hr.set(Wl,t=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:t.isInitialized}));else{Hr.set(Wl,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let t=this.prevLibraryItems;this.prevLibraryItems=Cm(this.currLibraryItems);let r=Cm(this.currLibraryItems);this.app.props.onLibraryChange?.(r),o5.trigger(i5(t,r),r)}catch(t){console.error(t)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Hr.set(sE,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(Cm(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:In.name,tab:cp}}),this.setLibrary(()=>new Promise(async(s,c)=>{try{let d=await(typeof t=="function"&&!(t instanceof Blob)?t(this.currLibraryItems):t),u;d instanceof Blob?u=await dv(d,a):u=Bd(d,a),!r||window.confirm(E("alerts.confirmAddLibrary",{numShapes:u.length}))?(r&&this.app.focusContainer(),s(o?n5(this.currLibraryItems,u):u)):c(new _s)}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=Cm(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}},a5=cE,Wg=e=>{let r=Math.ceil(Math.sqrt(e.length)),o=[],i=h=>e.slice(h*r,h*r+r).reduce((y,T)=>{let{height:k}=tn(T.elements);return Math.max(y,k)},0),a=h=>{let b=0,y=0,T=0;for(let k of e){if(b%r===0&&(y=0),y===h){let{width:I}=tn(k.elements);T=Math.max(T,I)}b++,y++}return T},s=0,c=0,d=0,u=0,f=0,m=0,g=0;for(let h of e){f&&f%r===0&&(c+=d+50,s=0,m=0,g++),m===0&&(d=i(g)),u=a(m);let{minX:b,minY:y,width:T,height:k}=tn(h.elements),I=(u-T)/2,C=(d-k)/2;o.push(...h.elements.map(O=>({...O,x:O.x+s+I-b,y:O.y+c+C-y}))),s+=u+50,f++,m++}return o},dE=()=>{let e=new URLSearchParams(window.location.hash.slice(1)).get(ip.addLibrary)||new URLSearchParams(window.location.search).get(np.addLibrary),t=e?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return e?{libraryUrl:e,idToken:t}:null},Lc=class e{static queue=new Hg;static async getLibraryItems(t,r,o=!0){let i=()=>new Promise(async(a,s)=>{try{let c=await t.load({source:r});a(Bd(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)}},Im=0,Ug=0,Gg=e=>Lv(e.map(t=>`${t.id}:${Mv(t.elements)}`).sort().join()),r5=async(e,t)=>{try{return Ug++,await Lc.run(e,async r=>{let o=Re(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=Gg(a);return s!==Im&&await e.save({libraryItems:a}),Im=s,a})}finally{Ug--}},MF=e=>{let{excalidrawAPI:t}=e,r=(0,Rc.useRef)(e);r.current=e;let o=(0,Rc.useRef)(!1);(0,Rc.useEffect)(()=>{if(!t)return;o.current=!1;let i=async({libraryUrl:c,idToken:d})=>{let u=new Promise(async(m,g)=>{try{let b=await(await fetch(decodeURIComponent(c))).blob();m(b)}catch(h){g(h)}}),f=d!==t.id;await(f&&document.hidden?new Promise(m=>{window.addEventListener("focus",()=>m(),{once:!0})}):null);try{await t.updateLibrary({libraryItems:u,prompt:f,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(ip.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(ip.addLibrary),window.history.replaceState({},wd,`#${m.toString()}`)}else if(window.location.search.includes(np.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(np.addLibrary),window.history.replaceState({},wd,`?${m.toString()}`)}}},a=c=>{c.preventDefault();let d=dE();d&&(c.stopImmediatePropagation(),window.history.replaceState({},"",c.oldURL),i(d))},s=dE();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,u=pp();d?u.resolve(Pd(d.load).then(async f=>{let m=null;try{if(!f)return Lc.getLibraryItems(c,"load");m=Bd(f.libraryItems||[],"published");let g=await r5(c,i5([],m));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}`),m}}).catch(f=>(console.error(`error during library migration: ${f.message}`),Lc.getLibraryItems(c,"load")))):u.resolve(Pd(Lc.getLibraryItems,c,"load")),t.updateLibrary({libraryItems:u.then(f=>{let m=f||[];return Im=Gg(m),m}),merge:!0}).finally(()=>{o.current=!0})}return window.addEventListener("hashchange",a),()=>{window.removeEventListener("hashchange",a)}},[t]),(0,Rc.useEffect)(()=>{let i=o5.on(async(s,c)=>{let d=o.current,u="adapter"in r.current&&r.current.adapter||null;try{u&&Im!==Gg(c)&&await r5(u,s)}catch(f){console.error(`couldn't persist library update: ${f.message}`,s),d&&r.current.excalidrawAPI&&r.current.excalidrawAPI.updateScene({appState:{errorMessage:E("errors.saveLibraryError")}})}}),a=s=>{Ug&&i2(s)};return window.addEventListener("beforeunload",a),()=>{window.removeEventListener("beforeunload",a),i(),Im=0,Ug=0}},[])};v();var Yr=w(j(),1);v();var mE=w(j(),1);var uE=w(M(),1),LF=(0,mE.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,uE.jsx)("div",{className:q("Stack Stack_horizontal",i),style:{"--gap":t,alignItems:r,justifyContent:o,...a},ref:s,children:e})),RF=(0,mE.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,uE.jsx)("div",{className:q("Stack Stack_vertical",i),style:{"--gap":t,justifyItems:r,justifyContent:o,...a},ref:s,children:e})),Ar={Row:LF,Col:RF};v();v();var s5=w(M(),1),DF=({theme:e,id:t,libraryReturnUrl:r})=>{let o=r||window.location.origin+window.location.pathname;return(0,s5.jsx)("a",{className:"library-menu-browse-button",href:`${A.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${o}&useHash=true&token=${t}&theme=${e}&version=${lp.excalidrawLibrary}`,target:"_excalidraw_libraries",children:E("labels.libraries")})},l5=DF;var Yg=w(M(),1),Kg=({libraryReturnUrl:e,theme:t,id:r,style:o,children:i,className:a})=>(0,Yg.jsxs)("div",{className:q("library-menu-control-buttons",a),style:o,children:[(0,Yg.jsx)(l5,{id:r,libraryReturnUrl:e,theme:t}),i]});v();var Bc=w(j(),1);v();var _m=w(j(),1);var NF=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,OF=/{{([\w-]+)}}/,FF=/<([\w-]+)>/,BF=/<\/([\w-]+)>/,zF=(e,t)=>{let r=[{name:"",children:[]}];return e.split(NF).filter(Boolean).forEach(o=>{let i=o.match(FF),a=o.match(BF),s=o.match(OF);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(),u=_m.default.createElement(_m.default.Fragment,{},...d.children),f=t[d.name];typeof f=="function"&&r[r.length-1].children.push(f(u))}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},$F=({i18nKey:e,children:t,...r})=>{let{t:o}=lr();return _m.default.createElement(_m.default.Fragment,{},...zF(o(e),r))},co=$F;v();v();var Kl=w(M(),1),HF=({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,Kl.jsxs)("button",{className:q("Dialog__action-button",d,r),type:a,"aria-label":e,onClick:t,...c,children:[o&&(0,Kl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:o}),(0,Kl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:e}),s&&(0,Kl.jsx)("div",{style:{position:"absolute",inset:0},children:(0,Kl.jsx)(Dr,{})})]})},Dc=HF;var Nc=w(M(),1),UF=e=>{let{onConfirm:t,onCancel:r,children:o,confirmText:i=E("buttons.confirm"),cancelText:a=E("buttons.cancel"),className:s="",...c}=e,d=ot(),u=Li(Oc,mt),{container:f}=sr();return(0,Nc.jsxs)(zt,{onCloseRequest:r,size:"small",...c,className:`confirm-dialog ${s}`,children:[o,(0,Nc.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Nc.jsx)(Dc,{label:a,onClick:()=>{d({openMenu:null}),u(!1),r(),f?.focus()}}),(0,Nc.jsx)(Dc,{label:i,onClick:()=>{d({openMenu:null}),u(!1),t(),f?.focus()},actionType:"danger"})]})]})},Vg=UF;v();var Bo=w(j(),1);v();var Io=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 Ce=w(M(),1),GF=async e=>{let o=Math.round(8),i=Math.max(Math.round(128/64),2),a=r2(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=zr.white,c.fillRect(0,0,s.width,s.height);for(let[d,u]of e.entries()){let f=await Tl({elements:u.elements,files:null,maxWidthOrHeight:128}),{width:m,height:g}=f,h=Math.floor(d/6)*(128+o*2),b=d%6*(128+o*2);c.drawImage(f,b+(128-m)/2+o,h+(128-g)/2+o),c.lineWidth=i,c.strokeStyle=zr.gray[4],c.strokeRect(b+o/2,h+o/2,128+o,128+o)}return await zd(new File([await Ci(s)],"preview",{type:Lr.png}),{outputType:Lr.jpg,maxWidthOrHeight:5e3})},WF=({libItem:e,appState:t,index:r,onChange:o,onRemove:i})=>{let a=(0,Bo.useRef)(null),s=(0,Bo.useRef)(null);return(0,Bo.useEffect)(()=>{let c=a.current;c&&(async()=>{let d=await Gd({elements:e.elements,appState:{...t,viewBackgroundColor:zr.white,exportBackground:!0},files:null});c.innerHTML=d.outerHTML})()},[e.elements,t]),(0,Ce.jsxs)("div",{className:"single-library-item",children:[e.status==="published"&&(0,Ce.jsx)("span",{className:"single-library-item-status",children:E("labels.statusPublished")}),(0,Ce.jsx)("div",{ref:a,className:"single-library-item__svg"}),(0,Ce.jsx)(Ie,{"aria-label":E("buttons.remove"),type:"button",icon:Qo,className:"single-library-item--remove",onClick:i.bind(null,e.id),title:E("buttons.remove")}),(0,Ce.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,Ce.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,Ce.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,Ce.jsx)("span",{style:{fontWeight:500,color:zr.gray[6]},children:E("publishDialog.itemName")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.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,Ce.jsx)("span",{className:"error",children:e.error})]})]})},KF=({onClose:e,libraryItems:t,appState:r,onSuccess:o,onError:i,updateItemsInStorage:a,onRemove:s})=>{let[c,d]=(0,Bo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[u,f]=(0,Bo.useState)(!1);(0,Bo.useEffect)(()=>{let C=Io.get(qo.PUBLISH_LIBRARY);C&&d(C)},[]);let[m,g]=(0,Bo.useState)(t.slice());(0,Bo.useEffect)(()=>{g(t.slice())},[t]);let h=C=>{d({...c,[C.target.name]:C.target.value})},b=async C=>{C.preventDefault(),f(!0);let O=[],z=!1;if(m.forEach(Q=>{let me="";Q.name||(me=E("publishDialog.errors.required"),z=!0),O.push({...Q,error:me})}),z){g(O),f(!1);return}let L=await GF(m),F={type:DS.excalidrawLibrary,version:lp.excalidrawLibrary,source:NS,libraryItems:m},D=JSON.stringify(F,null,2),V=new Blob([D],{type:"application/json"}),U=new FormData;U.append("excalidrawLib",V),U.append("previewImage",L),U.append("previewImageType",L.type),U.append("title",c.name),U.append("authorName",c.authorName),U.append("githubHandle",c.githubHandle),U.append("name",c.name),U.append("description",c.description),U.append("twitterHandle",c.twitterHandle),U.append("website",c.website),fetch(`${A.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:U}).then(Q=>Q.ok?Q.json().then(({url:me})=>{Io.delete(qo.PUBLISH_LIBRARY),o({url:me,authorName:c.authorName,items:m})}):Q.json().catch(()=>{throw new Error(Q.statusText||"something went wrong")}).then(me=>{throw new Error(me.message||Q.statusText||"something went wrong")}),Q=>{console.error(Q),i(Q),f(!1)}).catch(Q=>{console.error(Q),i(Q),f(!1)})},y=()=>{let C=[];return m.forEach((O,z)=>{C.push((0,Ce.jsx)("div",{className:"single-library-item-wrapper",children:(0,Ce.jsx)(WF,{libItem:O,appState:r,index:z,onChange:(L,F)=>{let D=m.slice();D[F].name=L,g(D)},onRemove:s})},z))}),(0,Ce.jsx)("div",{className:"selected-library-items",children:C})},T=(0,Bo.useCallback)(()=>{a(m),Io.set(qo.PUBLISH_LIBRARY,c),e()},[m,e,a,c]),k=!!t.length,I=t.some(C=>C.status==="published");return(0,Ce.jsx)(zt,{onCloseRequest:T,title:E("publishDialog.title"),className:"publish-library",children:k?(0,Ce.jsxs)("form",{onSubmit:b,children:[(0,Ce.jsx)("div",{className:"publish-library-note",children:(0,Ce.jsx)(co,{i18nKey:"publishDialog.noteDescription",link:C=>(0,Ce.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,Ce.jsx)("span",{className:"publish-library-note",children:(0,Ce.jsx)(co,{i18nKey:"publishDialog.noteGuidelines",link:C=>(0,Ce.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,Ce.jsx)("div",{className:"publish-library-note",children:E("publishDialog.noteItems")}),I&&(0,Ce.jsx)("span",{className:"publish-library-note publish-library-warning",children:E("publishDialog.republishWarning")}),y(),(0,Ce.jsxs)("div",{className:"publish-library__fields",children:[(0,Ce.jsxs)("label",{children:[(0,Ce.jsxs)("div",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.libraryName")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.jsx)("input",{type:"text",name:"name",required:!0,value:c.name,onChange:h,placeholder:E("publishDialog.placeholder.libraryName")})]}),(0,Ce.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,Ce.jsxs)("div",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.libraryDesc")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.jsx)("textarea",{name:"description",rows:4,required:!0,value:c.description,onChange:h,placeholder:E("publishDialog.placeholder.libraryDesc")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsxs)("div",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.authorName")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.jsx)("input",{type:"text",name:"authorName",required:!0,value:c.authorName,onChange:h,placeholder:E("publishDialog.placeholder.authorName")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.githubUsername")}),(0,Ce.jsx)("input",{type:"text",name:"githubHandle",value:c.githubHandle,onChange:h,placeholder:E("publishDialog.placeholder.githubHandle")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.twitterUsername")}),(0,Ce.jsx)("input",{type:"text",name:"twitterHandle",value:c.twitterHandle,onChange:h,placeholder:E("publishDialog.placeholder.twitterHandle")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.website")}),(0,Ce.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:E("publishDialog.errors.website"),value:c.website,onChange:h,placeholder:E("publishDialog.placeholder.website")})]}),(0,Ce.jsx)("span",{className:"publish-library-note",children:(0,Ce.jsx)(co,{i18nKey:"publishDialog.noteLicense",link:C=>(0,Ce.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:C})})})]}),(0,Ce.jsxs)("div",{className:"publish-library__buttons",children:[(0,Ce.jsx)(Dc,{label:E("buttons.cancel"),onClick:T,"data-testid":"cancel-clear-canvas-button"}),(0,Ce.jsx)(Dc,{type:"submit",label:E("buttons.submit"),actionType:"primary",isLoading:u})]})]}):(0,Ce.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:E("publishDialog.atleastOneLibItem")})})},c5=KF;v();v();var u5=w(M(),1),d5=({className:e="",children:t,onToggle:r,title:o,...i})=>{let a=rt(),s=q(`dropdown-menu-button ${e}`,"zen-mode-transition",{"dropdown-menu-button--mobile":a.editor.isMobile}).trim();return(0,u5.jsx)("button",{"data-prevent-outside-click":!0,className:s,onClick:r,type:"button","data-testid":"dropdown-menu-button",title:o,...i,children:t})},m5=d5;d5.displayName="DropdownMenuTrigger";v();var g5=w(M(),1),p5=()=>(0,g5.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),f5=p5;p5.displayName="DropdownMenuSeparator";v();var Xg=w(j(),1);var Am=w(M(),1),h5=({children:e,onClickOutside:t,className:r="",onSelect:o,style:i})=>{let a=rt(),s=(0,Xg.useRef)(null),c=Ec({onClickOutside:t});yc(s,()=>{c.onClickOutside?.()}),(0,Xg.useEffect)(()=>{let u=m=>{m.key===R.ESCAPE&&(m.stopImmediatePropagation(),c.onClickOutside?.())},f={capture:!0};return document.addEventListener("keydown",u,f),()=>{document.removeEventListener("keydown",u,f)}},[c]);let d=q(`dropdown-menu ${r}`,{"dropdown-menu--mobile":a.editor.isMobile}).trim();return(0,Am.jsx)(Ry.Provider,{value:{onSelect:o},children:(0,Am.jsx)("div",{ref:s,className:d,style:i,"data-testid":"dropdown-menu",children:a.editor.isMobile?(0,Am.jsx)(Ar.Col,{className:"dropdown-menu-container",children:e}):(0,Am.jsx)(xr,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:e})})})};h5.displayName="DropdownMenuContent";var b5=h5;v();var pE=w(M(),1),x5=({icon:e,shortcut:t,href:r,children:o,onSelect:i,className:a="",selected:s,...c})=>{let d=Eg(c.onClick,i);return(0,pE.jsx)("a",{...c,href:r,target:"_blank",rel:"noreferrer",className:yg(a,s),title:c.title??c["aria-label"],onClick:d,children:(0,pE.jsx)(wg,{icon:e,shortcut:t,children:o})})},Fc=x5;x5.displayName="DropdownMenuItemLink";v();var y5=w(M(),1),YF=({children:e,className:t="",selected:r,...o})=>(0,y5.jsx)("div",{...o,className:`dropdown-menu-item-base dropdown-menu-item-custom ${t} ${r?"dropdown-menu-item--selected":""}`.trim(),children:e}),v5=YF;v();var km=w(j(),1),E5=e=>{let t=km.default.Children.toArray(e).find(r=>km.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuTrigger");return t||null},w5=e=>{let t=km.default.Children.toArray(e).find(r=>km.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuContent");return t||null};var Zg=w(M(),1),Hi=({children:e,open:t})=>{let r=E5(e),o=w5(e);return(0,Zg.jsxs)(Zg.Fragment,{children:[r,t&&o]})};Hi.Trigger=m5;Hi.Content=b5;Hi.Item=To;Hi.ItemLink=Fc;Hi.ItemCustom=v5;Hi.Group=bm;Hi.Separator=f5;var st=Hi;Hi.displayName="DropdownMenu";var dr=w(M(),1),VF=(e,t)=>e.filter(r=>t.includes(r.id)),XF=({setAppState:e,selectedItems:t,library:r,onRemoveFromLibrary:o,resetLibrary:i,onSelectItems:a,appState:s,className:c})=>{let[d]=Ve(Wl,mt),[u,f]=Ve(Oc,mt),m=()=>{let U=t.length?E("alerts.removeItemsFromsLibrary",{count:t.length}):E("alerts.resetLibrary"),Q=t.length?E("confirmDialog.removeItemsFromLib"):E("confirmDialog.resetLibrary");return(0,dr.jsx)(Vg,{onConfirm:()=>{t.length?o():i(),h(!1)},onCancel:()=>{h(!1)},title:Q,children:(0,dr.jsx)("p",{children:U})})},[g,h]=(0,Bc.useState)(!1),b=!!t.length,y=b?d.libraryItems.filter(U=>t.includes(U.id)):d.libraryItems,T=b?E("buttons.remove"):E("buttons.resetLibrary"),[k,I]=(0,Bc.useState)(!1),[C,O]=(0,Bc.useState)(null),z=(0,Bc.useCallback)(()=>(0,dr.jsxs)(zt,{onCloseRequest:()=>O(null),title:E("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,dr.jsx)("p",{children:(0,dr.jsx)(co,{i18nKey:"publishSuccessDialog.content",authorName:C.authorName,link:U=>(0,dr.jsx)("a",{href:C?.url,target:"_blank",rel:"noopener noreferrer",children:U})})}),(0,dr.jsx)(Ie,{type:"button",title:E("buttons.close"),"aria-label":E("buttons.close"),label:E("buttons.close"),onClick:()=>O(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[O,C]),L=(U,Q)=>{I(!1),O({url:U.url,authorName:U.authorName});let me=Q.slice();me.forEach(K=>{t.includes(K.id)&&(K.status="published")}),r.setLibrary(me)},F=async()=>{try{await r.updateLibrary({libraryItems:Op({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(U){if(U?.name==="AbortError"){console.warn(U);return}e({errorMessage:E("errors.importLibraryError")})}},D=async()=>{let U=b?y:await r.getLatestLibrary();cC(U).catch(up).catch(Q=>{e({errorMessage:Q.message})})},V=()=>(0,dr.jsxs)(st,{open:u,children:[(0,dr.jsx)(st.Trigger,{onToggle:()=>f(!u),children:L2}),(0,dr.jsxs)(st.Content,{onClickOutside:()=>f(!1),onSelect:()=>f(!1),className:"library-menu",children:[!b&&(0,dr.jsx)(st.Item,{onSelect:F,icon:Ls,"data-testid":"lib-dropdown--load",children:E("buttons.load")}),!!y.length&&(0,dr.jsx)(st.Item,{onSelect:D,icon:bl,"data-testid":"lib-dropdown--export",children:E("buttons.export")}),!!y.length&&(0,dr.jsx)(st.Item,{onSelect:()=>h(!0),icon:kn,children:T}),b&&(0,dr.jsx)(st.Item,{icon:RT,onSelect:()=>I(!0),"data-testid":"lib-dropdown--remove",children:E("buttons.publishLibrary")})]})]});return(0,dr.jsxs)("div",{className:q("library-menu-dropdown-container",c),children:[V(),t.length>0&&(0,dr.jsx)("div",{className:"library-actions-counter",children:t.length}),g&&m(),k&&(0,dr.jsx)(c5,{onClose:()=>I(!1),libraryItems:VF(d.libraryItems,t),appState:s,onSuccess:U=>L(U,d.libraryItems),onError:U=>window.alert(U),updateItemsInStorage:()=>r.setLibrary(d.libraryItems),onRemove:U=>a(t.filter(Q=>Q!==U))}),C&&z()]})},fE=({selectedItems:e,onSelectItems:t,className:r})=>{let{library:o}=_r(),{clearLibraryCache:i,deleteItemsFromLibraryCache:a}=$g(),s=it(),c=ot(),[d]=Ve(Wl,mt),u=async m=>{let g=m.filter(h=>!e.includes(h.id));o.setLibrary(g).catch(()=>{c({errorMessage:E("alerts.errorRemovingFromLibrary")})}),a(e),t([])};return(0,dr.jsx)(XF,{appState:s,setAppState:c,selectedItems:e,onSelectItems:t,library:o,onRemoveFromLibrary:()=>u(d.libraryItems),resetLibrary:()=>{o.resetLibrary(),i()},className:r})};v();var zc=w(j(),1);v();var Fa=w(j(),1);var Yl=w(M(),1),S5=(0,Fa.memo)(({id:e,elements:t,isPending:r,onClick:o,selected:i,onToggle:a,onDrag:s,svgCache:c})=>{let d=(0,Fa.useRef)(null),u=t5(e,t,c);(0,Fa.useEffect)(()=>{let b=d.current;if(b)return u&&(b.innerHTML=u.outerHTML),()=>{b.innerHTML=""}},[u]);let[f,m]=(0,Fa.useState)(!1),g=rt().editor.isMobile,h=r&&(0,Yl.jsx)("div",{className:"library-unit__adder",children:M2});return(0,Yl.jsxs)("div",{className:q("library-unit",{"library-unit__active":t,"library-unit--hover":t&&f,"library-unit--selected":i,"library-unit--skeleton":!u}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,Yl.jsx)("div",{className:q("library-unit__dragger",{"library-unit__pulse":!!r}),ref:d,draggable:!!t,onClick:t||r?b=>{e&&b.shiftKey?a(e,b):o(e)}:void 0,onDragStart:b=>{if(!e){b.preventDefault();return}m(!1),s(e,b)}}),h,e&&t&&(f||g||i)&&(0,Yl.jsx)(zl,{checked:i,onChange:(b,y)=>a(e,y),className:"library-unit__checkbox"})]})}),T5=()=>(0,Yl.jsx)("div",{className:"library-unit library-unit--skeleton"});v();var qg=w(j(),1);function ZF(){return[!1,(0,qg.useCallback)(t=>t(),[])]}var C5=qg.default.useTransition||ZF;var Vl=w(M(),1),gE=({children:e})=>(0,Vl.jsx)("div",{className:"library-menu-items-container__grid",children:e}),jg=(0,zc.memo)(({items:e,onItemSelectToggle:t,onItemDrag:r,isItemSelected:o,onClick:i,svgCache:a,itemsRenderedPerBatch:s})=>{let[,c]=C5(),[d,u]=(0,zc.useState)(0);return(0,zc.useEffect)(()=>{d<e.length&&c(()=>{u(d+s)})},[d,e.length,c,s]),(0,Vl.jsx)(Vl.Fragment,{children:e.map((f,m)=>m<d?(0,Vl.jsx)(S5,{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??m):(0,Vl.jsx)(T5,{},m))})});v();var P5=w(j(),1);var M5=w(bE(),1),pB=St(0),L5=e=>{let[t,r]=Ve(pB);return(0,P5.useEffect)(()=>{let{current:o}=e;if(!o)return;let i=(0,M5.default)(()=>{let{scrollTop:a}=o;r(a)},200);return o.addEventListener("scroll",i),()=>{i.cancel(),o.removeEventListener("scroll",i)}},[e,r]),t};var Dt=w(M(),1),fB=17,gB=64;function xE({isLoading:e,libraryItems:t,onAddToLibrary:r,onInsertLibraryItems:o,pendingElements:i,theme:a,id:s,libraryReturnUrl:c,onSelectItems:d,selectedItems:u}){let f=(0,Yr.useRef)(null),m=L5(f);(0,Yr.useEffect)(()=>{m>0&&f.current?.scrollTo(0,m)},[]);let{svgCache:g}=$g(),h=(0,Yr.useMemo)(()=>t.filter(U=>U.status!=="published"),[t]),b=(0,Yr.useMemo)(()=>t.filter(U=>U.status==="published"),[t]),y=!t.length&&!i.length,T=!i.length&&!h.length&&!b.length,[k,I]=(0,Yr.useState)(null),C=(0,Yr.useCallback)((U,Q)=>{let me=!u.includes(U),K=[...h,...b];if(me){if(Q.shiftKey&&k){let se=K.findIndex(Ee=>Ee.id===k),be=K.findIndex(Ee=>Ee.id===U);if(se===-1||be===-1){d([...u,U]);return}let _e=Re(u),nt=K.reduce((Ee,ue,G)=>((G>=se&&G<=be||_e.has(ue.id))&&Ee.push(ue.id),Ee),[]);d(nt)}else d([...u,U]);I(U)}else I(null),d(u.filter(se=>se!==U))},[k,d,b,u,h]),O=(0,Yr.useCallback)(U=>{let Q;return u.includes(U)?Q=t.filter(me=>u.includes(me.id)):Q=t.filter(me=>me.id===U),Q.map(me=>({...me,elements:Vp(me.elements,{randomizeSeed:!0})}))},[t,u]),z=(0,Yr.useCallback)((U,Q)=>{Q.dataTransfer.setData(Lr.excalidrawlib,av(O(U)))},[O]),L=(0,Yr.useCallback)(U=>U?u.includes(U):!1,[u]),F=(0,Yr.useCallback)(()=>{r(i)},[i,r]),D=(0,Yr.useCallback)(U=>{U&&o(O(U))},[O,o]),V=g.size>=t.length?gB:fB;return(0,Dt.jsxs)("div",{className:"library-menu-items-container",style:i.length||h.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!T&&(0,Dt.jsx)(fE,{selectedItems:u,onSelectItems:d,className:"library-menu-dropdown-container--in-heading"}),(0,Dt.jsxs)(Ar.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:b.length>0?1:"0 1 auto",marginBottom:0},ref:f,children:[(0,Dt.jsxs)(Dt.Fragment,{children:[!T&&(0,Dt.jsx)("div",{className:"library-menu-items-container__header",children:E("labels.personalLib")}),e&&(0,Dt.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,Dt.jsx)(Dr,{})}),!i.length&&!h.length?(0,Dt.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,Dt.jsx)("div",{className:"library-menu-items__no-items__label",children:E("library.noItems")}),(0,Dt.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?E("library.hint_emptyPrivateLibrary"):E("library.hint_emptyLibrary")})]}):(0,Dt.jsxs)(gE,{children:[i.length>0&&(0,Dt.jsx)(jg,{itemsRenderedPerBatch:V,items:[{id:null,elements:i}],onItemSelectToggle:C,onItemDrag:z,onClick:F,isItemSelected:L,svgCache:g}),(0,Dt.jsx)(jg,{itemsRenderedPerBatch:V,items:h,onItemSelectToggle:C,onItemDrag:z,onClick:D,isItemSelected:L,svgCache:g})]})]}),(0,Dt.jsxs)(Dt.Fragment,{children:[(b.length>0||i.length>0||h.length>0)&&(0,Dt.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:E("labels.excalidrawLib")}),b.length>0?(0,Dt.jsx)(gE,{children:(0,Dt.jsx)(jg,{itemsRenderedPerBatch:V,items:b,onItemSelectToggle:C,onItemDrag:z,onClick:D,isItemSelected:L,svgCache:g})}):h.length>0?(0,Dt.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:E("library.noItems")}):null]}),y&&(0,Dt.jsx)(Kg,{style:{padding:"16px 0",width:"100%"},id:s,libraryReturnUrl:c,theme:a,children:(0,Dt.jsx)(fE,{selectedItems:u,onSelectItems:d})})]})]})}var dn=w(M(),1),Oc=St(!1),R5=({children:e})=>(0,dn.jsx)("div",{className:"layer-ui__library",children:e}),hB=({onInsertLibraryItems:e,pendingElements:t,onAddToLibrary:r,setAppState:o,libraryReturnUrl:i,library:a,id:s,theme:c,selectedItems:d,onSelectItems:u})=>{let[f]=Ve(Wl,mt),m=(0,zo.useCallback)(b=>{(async(T,k)=>{ze("element","addToLibrary","ui");for(let C of dp)if(T.some(O=>O.type===C))return o({errorMessage:E(`errors.libraryElementTypeError.${C}`)});let I=[{status:"unpublished",elements:T,id:fa(),created:Date.now()},...k];r(),a.setLibrary(I).catch(()=>{o({errorMessage:E("alerts.errorAddingToLibrary")})})})(b,f.libraryItems)},[r,a,o,f.libraryItems]),g=(0,zo.useMemo)(()=>f.libraryItems,[f]);if(f.status==="loading"&&!f.isInitialized)return(0,dn.jsx)(R5,{children:(0,dn.jsx)("div",{className:"layer-ui__library-message",children:(0,dn.jsxs)("div",{children:[(0,dn.jsx)(Dr,{size:"2em"}),(0,dn.jsx)("span",{children:E("labels.libraryLoadingMessage")})]})})});let h=f.libraryItems.length>0||t.length>0;return(0,dn.jsxs)(R5,{children:[(0,dn.jsx)(xE,{isLoading:f.status==="loading",libraryItems:g,onAddToLibrary:m,onInsertLibraryItems:e,pendingElements:t,id:s,libraryReturnUrl:i,theme:c,onSelectItems:u,selectedItems:d}),h&&(0,dn.jsx)(Kg,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:s,libraryReturnUrl:i,theme:c})]})},bB=(e,t)=>{let r=()=>Oe(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}),o=(0,zo.useRef)(r()),i=(0,zo.useRef)(e),a=(0,zo.useRef)(t);return(!br(e.selectedElementIds,i.current.selectedElementIds)||!br(t,a.current))&&(o.current=r(),i.current=e,a.current=t),o.current},D5=()=>{let{library:e,id:t,onInsertElements:r}=_r(),o=ei(),i=it(),a=ot(),s=La(),[c,d]=(0,zo.useState)([]),u=(0,zo.useMemo)(()=>e,[e]),f=bB(i,s),m=(0,zo.useCallback)(h=>{r(Wg(h))},[r]),g=(0,zo.useCallback)(()=>{a({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[a]);return(0,dn.jsx)(hB,{pendingElements:f,onInsertLibraryItems:m,onAddToLibrary:g,setAppState:a,libraryReturnUrl:o.libraryReturnUrl,library:u,id:t,theme:i.theme,selectedItems:c,onSelectItems:d})};var Ba=w(M(),1);function xB(e){if(e&&typeof e=="number")return e;switch(e){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var zt=e=>{let[t,r]=qk(),[o]=(0,Qg.useState)(document.activeElement),{id:i}=sr(),a=rt().viewport.isMobile;(0,Qg.useEffect)(()=>{if(!t)return;let u=kd(t);setTimeout(()=>{u.length>0&&e.autofocus!==!1&&(u[1]||u[0]).focus()});let f=m=>{if(m.key===R.TAB){let g=kd(t),{activeElement:h}=document,b=g.findIndex(y=>y===h);b===0&&m.shiftKey?(g[g.length-1].focus(),m.preventDefault()):b===g.length-1&&!m.shiftKey&&(g[0].focus(),m.preventDefault())}};return t.addEventListener("keydown",f),()=>t.removeEventListener("keydown",f)},[t,e.autofocus]);let s=ot(),c=Li(Oc,mt),d=()=>{s({openMenu:null}),c(!1),o.focus(),e.onCloseRequest()};return(0,Ba.jsx)(Qk,{className:q("Dialog",e.className,{"Dialog--fullscreen":a}),labelledBy:"dialog-title",maxWidth:xB(e.size),onCloseRequest:d,closeOnClickOutside:e.closeOnClickOutside,children:(0,Ba.jsxs)(xr,{ref:r,children:[e.title&&(0,Ba.jsx)("h2",{id:`${i}-dialog-title`,className:"Dialog__title",children:(0,Ba.jsx)("span",{className:"Dialog__titleContent",children:e.title})}),a&&(0,Ba.jsx)("button",{className:"Dialog__close",onClick:d,title:E("buttons.close"),"aria-label":E("buttons.close"),type:"button",children:Qo}),(0,Ba.jsx)("div",{className:"Dialog__content",children:e.children})]})})};v();var ri=w(j(),1);v();var N5=w(M(),1),ti=({type:e="button",onSelect:t,selected:r,children:o,className:i="",...a})=>(0,N5.jsx)("button",{onClick:ua(a.onClick,s=>{t()}),type:e,className:q("excalidraw-button",i,{selected:r}),...a,children:o});var Xl=w(M(),1),eh=(0,ri.forwardRef)(({onChange:e,label:t,fullWidth:r,placeholder:o,readonly:i,selectOnRender:a,onKeyDown:s,isRedacted:c=!1,...d},u)=>{let f=(0,ri.useRef)(null);(0,ri.useImperativeHandle)(u,()=>f.current),(0,ri.useLayoutEffect)(()=>{a&&f.current?.select()},[a]);let[m,g]=(0,ri.useState)(!1);return(0,Xl.jsxs)("div",{className:q("ExcTextField",{"ExcTextField--fullWidth":r}),onClick:()=>{f.current?.focus()},children:[(0,Xl.jsx)("div",{className:"ExcTextField__label",children:t}),(0,Xl.jsxs)("div",{className:q("ExcTextField__input",{"ExcTextField__input--readonly":i}),children:[(0,Xl.jsx)("input",{className:q({"is-redacted":"value"in d&&d.value&&c&&!m}),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,Xl.jsx)(ti,{onSelect:()=>g(!m),style:{border:0,userSelect:"none"},children:m?$T:Ns})]})]})});v();var vB={toggleTheme:[X("Shift+Alt+D")],saveScene:[X("CtrlOrCmd+S")],loadScene:[X("CtrlOrCmd+O")],clearCanvas:[X("CtrlOrCmd+Delete")],imageExport:[X("CtrlOrCmd+Shift+E")],commandPalette:[X("CtrlOrCmd+/"),X("CtrlOrCmd+Shift+P")],cut:[X("CtrlOrCmd+X")],copy:[X("CtrlOrCmd+C")],paste:[X("CtrlOrCmd+V")],copyStyles:[X("CtrlOrCmd+Alt+C")],pasteStyles:[X("CtrlOrCmd+Alt+V")],selectAll:[X("CtrlOrCmd+A")],deleteSelectedElements:[X("Delete")],duplicateSelection:[X("CtrlOrCmd+D"),X(`Alt+${E("helpDialog.drag")}`)],sendBackward:[X("CtrlOrCmd+[")],bringForward:[X("CtrlOrCmd+]")],sendToBack:[Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")],bringToFront:[Tn?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")],copyAsPng:[X("Shift+Alt+C")],copyAsSvg:[],group:[X("CtrlOrCmd+G")],ungroup:[X("CtrlOrCmd+Shift+G")],gridMode:[X("CtrlOrCmd+'")],zenMode:[X("Alt+Z")],objectsSnapMode:[X("Alt+S")],stats:[X("Alt+/")],addToLibrary:[],flipHorizontal:[X("Shift+H")],flipVertical:[X("Shift+V")],viewMode:[X("Alt+R")],hyperlink:[X("CtrlOrCmd+K")],toggleElementLock:[X("CtrlOrCmd+Shift+L")],resetZoom:[X("CtrlOrCmd+0")],zoomOut:[X("CtrlOrCmd+-")],zoomIn:[X("CtrlOrCmd++")],zoomToFitSelection:[X("Shift+3")],zoomToFit:[X("Shift+1")],zoomToFitSelectionInViewport:[X("Shift+2")],toggleEraserTool:[X("E")],toggleHandTool:[X("H")],setFrameAsActiveTool:[X("F")],saveFileToDisk:[X("CtrlOrCmd+S")],saveToActiveFile:[X("CtrlOrCmd+S")],toggleShortcuts:[X("?")]},mr=(e,t=0)=>{let r=vB[e];return r&&r.length>0?r[t]||r[0]:""};var p3=w(B5(),1);v();var yB="\\u0300-\\u036f",EB="\\ufe20-\\ufe2f",wB="\\u20d0-\\u20ff",SB=yB+EB+wB,TB=`[${SB}]`,CB=RegExp(TB,"g"),IB=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_B={\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"},vE=e=>e.replace(IB,t=>_B[t]||t).replace(CB,"");v();var z5=w(M(),1),mn=({icon:e})=>(0,z5.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:e});v();var i3=w(j(),1);v();var rh=w(j(),1);v();var Pm=w(j());v();v();var $5=e=>{let t,r=new Set,o=(f,m)=>{let g=typeof f=="function"?f(t):f;if(!Object.is(g,t)){let h=t;t=m??(typeof g!="object"||g===null)?g:Object.assign({},t,g),r.forEach(b=>b(t,h))}},i=()=>t,d={setState:o,getState:i,getInitialState:()=>u,subscribe:f=>(r.add(f),()=>r.delete(f)),destroy:()=>{(A?A.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()}},u=t=e(o,i,d);return d},H5=e=>e?$5(e):$5;var J5=w(j(),1),Q5=w(Z5(),1),{useDebugValue:KB}=J5.default,{useSyncExternalStoreWithSelector:YB}=Q5.default,q5=!1,VB=e=>e;function XB(e,t=VB,r){(A?A.MODE:void 0)!=="production"&&r&&!q5&&(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"),q5=!0);let o=YB(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return KB(o),o}var j5=e=>{(A?A.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"?H5(e):e,r=(o,i)=>XB(t,o,i);return Object.assign(r,t),r},e3=e=>e?j5(e):j5;var t3,r3,o3=typeof window<"u"&&((t3=window.document)!=null&&t3.createElement||((r3=window.navigator)==null?void 0:r3.product)==="ReactNative")?Pm.default.useLayoutEffect:Pm.default.useEffect;function On(){let e=e3(t=>({current:new Array,version:0,set:t}));return{In:({children:t})=>{let r=e(i=>i.set),o=e(i=>i.version);return o3(()=>{r(i=>({version:i.version+1}))},[]),o3(()=>(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 Pm.default.createElement(Pm.default.Fragment,null,t)}}}var EE=rh.default.createContext(null),At=()=>rh.default.useContext(EE),n3=()=>rh.default.useMemo(()=>({MainMenuTunnel:On(),WelcomeScreenMenuHintTunnel:On(),WelcomeScreenToolbarHintTunnel:On(),WelcomeScreenHelpHintTunnel:On(),WelcomeScreenCenterTunnel:On(),FooterCenterTunnel:On(),DefaultSidebarTriggerTunnel:On(),DefaultSidebarTabTriggersTunnel:On(),OverwriteConfirmDialogTunnel:On(),TTDDialogTriggerTunnel:On(),jotaiScope:Symbol()}),[]);var Te=w(M(),1),wE=(e,t)=>{let r=t[0]?.type||null;for(let o of t)if(o.type!==r){r=null;break}return Wd(e.activeTool.type)&&e.activeTool.type!=="image"&&r!=="image"&&r!=="frame"&&r!=="magicframe"||t.some(o=>Wd(o.type))},SE=(e,t)=>wa(e.activeTool.type)||t.some(r=>wa(r.type)),oh=({appState:e,elementsMap:t,renderAction:r})=>{let o=Sf(t,e),i=!1;o.length===2&&(yo(o[0])||yo(o[1]))&&(i=!0);let a=!!e.editingElement,s=rt(),c=document.documentElement.getAttribute("dir")==="rtl",d=wa(e.activeTool.type)&&!pl(e.currentItemBackgroundColor)||o.some(m=>wa(m.type)&&!pl(m.backgroundColor)),u=o.length===1||i,f=!e.editingLinearElement&&o.length===1&&Qe(o[0])&&!dt(o[0]);return(0,Te.jsxs)("div",{className:"panelColumn",children:[(0,Te.jsx)("div",{children:wE(e,o)&&r("changeStrokeColor")}),SE(e,o)&&(0,Te.jsx)("div",{children:r("changeBackgroundColor")}),d&&r("changeFillStyle"),(yv(e.activeTool.type)||o.some(m=>yv(m.type)))&&r("changeStrokeWidth"),(e.activeTool.type==="freedraw"||o.some(m=>m.type==="freedraw"))&&r("changeStrokeShape"),(Ev(e.activeTool.type)||o.some(m=>Ev(m.type)))&&(0,Te.jsxs)(Te.Fragment,{children:[r("changeStrokeStyle"),r("changeSloppiness")]}),(wv(e.activeTool.type)||o.some(m=>wv(m.type)))&&(0,Te.jsx)(Te.Fragment,{children:r("changeRoundness")}),(Sv(e.activeTool.type)||o.some(m=>Sv(m.type)))&&(0,Te.jsx)(Te.Fragment,{children:r("changeArrowType")}),(e.activeTool.type==="text"||o.some(he))&&(0,Te.jsxs)(Te.Fragment,{children:[r("changeFontFamily"),r("changeFontSize"),(e.activeTool.type==="text"||fI(o,t))&&r("changeTextAlign")]}),pI(o,t)&&r("changeVerticalAlign"),(Ys(e.activeTool.type)||o.some(m=>Ys(m.type)))&&(0,Te.jsx)(Te.Fragment,{children:r("changeArrowhead")}),r("changeOpacity"),(0,Te.jsxs)("fieldset",{children:[(0,Te.jsx)("legend",{children:E("labels.layers")}),(0,Te.jsxs)("div",{className:"buttonList",children:[r("sendToBack"),r("sendBackward"),r("bringForward"),r("bringToFront")]})]}),o.length>1&&!i&&(0,Te.jsxs)("fieldset",{children:[(0,Te.jsx)("legend",{children:E("labels.align")}),(0,Te.jsxs)("div",{className:"buttonList",children:[c?(0,Te.jsxs)(Te.Fragment,{children:[r("alignRight"),r("alignHorizontallyCentered"),r("alignLeft")]}):(0,Te.jsxs)(Te.Fragment,{children:[r("alignLeft"),r("alignHorizontallyCentered"),r("alignRight")]}),o.length>2&&r("distributeHorizontally"),(0,Te.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,Te.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,Te.jsxs)("fieldset",{children:[(0,Te.jsx)("legend",{children:E("labels.actions")}),(0,Te.jsxs)("div",{className:"buttonList",children:[!s.editor.isMobile&&r("duplicateSelection"),!s.editor.isMobile&&r("deleteSelectedElements"),r("group"),r("ungroup"),u&&r("hyperlink"),f&&r("toggleLinearEditor")]})]})]})},nh=({activeTool:e,appState:t,app:r,UIOptions:o})=>{let[i,a]=(0,i3.useState)(!1),s=e.type==="frame",c=e.type==="laser",d=e.type==="embeddable",{TTDDialogTriggerTunnel:u}=At();return(0,Te.jsxs)(Te.Fragment,{children:[qp.map(({value:f,icon:m,key:g,numericKey:h,fillable:b},y)=>{if(o.tools?.[f]===!1)return null;let T=E(`toolBar.${f}`),k=g&&da(typeof g=="string"?g:g[0]),I=k?`${k} ${E("helpDialog.or")} ${h}`:`${h}`;return(0,Te.jsx)(Ie,{className:q("Shape",{fillable:b}),type:"radio",icon:m,checked:e.type===f,name:"editor-current-shape",title:`${da(T)} \u2014 ${I}`,keyBindingLabel:h||k,"aria-label":da(T),"aria-keyshortcuts":I,"data-testid":`toolbar-${f}`,onPointerDown:({pointerType:C})=>{!t.penDetected&&C==="pen"&&r.togglePenMode(!0)},onChange:({pointerType:C})=>{t.activeTool.type!==f&&ze("toolbar",f,"ui"),f==="image"?r.setActiveTool({type:f,insertOnCanvasDirectly:C!=="mouse"}):r.setActiveTool({type:f})}},f)}),(0,Te.jsx)("div",{className:"App-toolbar__divider"}),(0,Te.jsxs)(st,{open:i,children:[(0,Te.jsxs)(st.Trigger,{className:q("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":s||d||c&&!r.props.isCollaborating}),onToggle:()=>a(!i),title:E("toolBar.extraTools"),children:[BT,r.props.aiEnabled!==!1&&(0,Te.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,Te.jsxs)(st.Content,{onClickOutside:()=>a(!1),onSelect:()=>a(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,Te.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"frame"}),icon:Pp,shortcut:R.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:s,children:E("toolBar.frame")}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"embeddable"}),icon:$2,"data-testid":"toolbar-embeddable",selected:d,children:E("toolBar.embeddable")}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"laser"}),icon:Lp,"data-testid":"toolbar-laser",selected:c,shortcut:R.K.toLocaleUpperCase(),children:E("toolBar.laser")}),(0,Te.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),r.props.aiEnabled!==!1&&(0,Te.jsx)(u.Out,{}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:Mp,"data-testid":"toolbar-embeddable",children:E("toolBar.mermaidToExcalidraw")}),r.props.aiEnabled!==!1&&(0,Te.jsxs)(Te.Fragment,{children:[(0,Te.jsxs)(st.Item,{onSelect:()=>r.onMagicframeToolSelect(),icon:Ds,"data-testid":"toolbar-magicframe",children:[E("toolBar.magicframe"),(0,Te.jsx)(st.Item.Badge,{children:"AI"})]}),(0,Te.jsx)(st.Item,{onSelect:()=>{ze("ai","open-settings","d2c"),r.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Fd,"data-testid":"toolbar-magicSettings",children:E("toolBar.magicSettings")})]})]})]})]})},a3=({renderAction:e,zoom:t})=>(0,Te.jsx)(Ar.Col,{gap:1,className:"zoom-actions",children:(0,Te.jsxs)(Ar.Row,{align:"center",children:[e("zoomOut"),e("resetZoom"),e("zoomIn")]})}),l3=({renderAction:e,className:t})=>(0,Te.jsxs)("div",{className:`undo-redo-buttons ${t}`,children:[(0,Te.jsx)("div",{className:"undo-button-container",children:(0,Te.jsx)(Oo,{label:E("buttons.undo"),children:e("undo")})}),(0,Te.jsx)("div",{className:"redo-button-container",children:(0,Te.jsxs)(Oo,{label:E("buttons.redo"),children:[" ",e("redo")]})})]}),s3=({actionManager:e,showExitZenModeBtn:t})=>(0,Te.jsx)("button",{type:"button",className:q("disable-zen-mode",{"disable-zen-mode--visible":t}),onClick:()=>e.executeAction(Pc),children:E("buttons.exitZenMode")}),c3=({renderAction:e,className:t})=>(0,Te.jsx)("div",{className:`finalize-button ${t}`,children:e("finalize",{size:"small"})});v();var d3=w(j(),1),TE=e=>{let t=(0,d3.useRef)({userFn:e});return t.current.userFn=e,t.current.stableFn||(t.current.stableFn=(...r)=>t.current.userFn(...r)),t.current.stableFn};v();var ih=w(M(),1),Zl=St(null),m3=()=>{let[e,t]=Ve(Zl,mt),r=yr();return e&&e==="clearCanvas"?(0,ih.jsx)(Vg,{onConfirm:()=>{r.executeAction(zi),t(null)},onCancel:()=>t(null),title:E("clearCanvasDialog.title"),children:(0,ih.jsxs)("p",{className:"clear-canvas__content",children:[" ",E("alerts.clearReset")]})}):null};var CE={};bS(CE,{toggleTheme:()=>ZB});v();var ZB={...Nl,category:"App",label:"Toggle theme",perform:({actionManager:e})=>{e.executeAction(Nl,"commandPalette")}};var Tt=w(M(),1),qB=St(null),Jt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},jB=e=>{switch(e){case Jt.app:return 1;case Jt.export:return 2;case Jt.editor:return 3;case Jt.tools:return 4;case Jt.elements:return 5;case Jt.links:return 6;default:return 10}},ah=({shortcut:e,className:t,children:r})=>{let o=e.replace("++","+$").split("+");return(0,Tt.jsxs)("div",{className:q("shortcut",t),children:[o.map((i,a)=>(0,Tt.jsx)("div",{className:"shortcut-wrapper",children:(0,Tt.jsx)("div",{className:"shortcut-key",children:i==="$"?"+":i})},i)),(0,Tt.jsx)("div",{className:"shortcut-desc",children:r})]})},f3=e=>!e.altKey&&e[R.CTRL_OR_CMD]&&(e.shiftKey&&e.key.toLowerCase()===R.P||e.key===R.SLASH),ode=Object.assign(e=>{let t=it(),r=ot();return(0,un.useEffect)(()=>{let o=i=>{f3(i)&&(i.preventDefault(),i.stopPropagation(),r(a=>{let s=a.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return s&&ze("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,Tt.jsx)(JB,{...e})},{defaultItems:CE});function JB({customCommandPaletteItems:e}){let t=_r(),r=it(),o=ot(),i=ei(),a=yr(),[s,c]=Ve(qB),[d,u]=(0,un.useState)(null),f=(0,un.useRef)(null),m=Ec({uiAppState:r,customCommandPaletteItems:e,appProps:i});(0,un.useEffect)(()=>{let{uiAppState:L,customCommandPaletteItems:F,appProps:D}=m,V=K=>{let se="";return K.label&&(typeof K.label=="function"?se=E(K.label(t.scene.getNonDeletedElements(),L,t)):se=E(K.label)),se},U=K=>typeof K.icon=="function"?K.icon(L,t.scene.getNonDeletedElements()):K.icon,Q=[],me=(K,se,be)=>{let _e={label:V(K),icon:U(K),category:se,shortcut:mr(K.name),keywords:K.keywords,predicate:K.predicate,viewMode:K.viewMode,perform:()=>{a.executeAction(K,"commandPalette")}};return be?be(_e,K):_e};if(L&&t.scene&&a){let K=[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,Sm].map(ue=>me(ue,Jt.elements,(G,Y)=>({...G,predicate:Y.predicate?Y.predicate:(oe,ie,le,de)=>Oe(oe,ie).length>0}))),se=[a.actions.toggleHandTool,a.actions.setFrameAsActiveTool].map(ue=>me(ue,Jt.tools)),be=[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=>me(ue,Jt.editor)),_e=[a.actions.saveToActiveFile,a.actions.saveFileToDisk,a.actions.copyAsPng,a.actions.copyAsSvg].map(ue=>me(ue,Jt.export));Q=[...K,...be,{label:V(zi),icon:U(zi),shortcut:mr(zi.name),category:Jt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Hr.set(Zl,"clearCanvas")}},{label:E("buttons.exportImage"),category:Jt.export,icon:Cp,shortcut:mr("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{o({openDialog:{name:"imageExport"}})}},..._e];let nt=[{label:E("toolBar.library"),category:Jt.app,icon:yp,viewMode:!1,perform:()=>{L.openSidebar?o({openSidebar:null}):o({openSidebar:{name:In.name,tab:In.defaultTab}})}},{label:E("labels.changeStroke"),keywords:["color","outline"],category:Jt.elements,icon:Tp,viewMode:!1,predicate:(ue,G)=>{let Y=Oe(ue,G);return Y.length>0&&wE(G,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:E("labels.changeBackground"),keywords:["color","fill"],icon:Tp,category:Jt.elements,viewMode:!1,predicate:(ue,G)=>{let Y=Oe(ue,G);return Y.length>0&&SE(G,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:E("labels.canvasBackground"),keywords:["color"],icon:Tp,category:Jt.editor,viewMode:!1,perform:()=>{o(ue=>({openMenu:ue.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...qp.reduce((ue,G)=>{let{value:Y,icon:oe,key:ie,numericKey:le}=G;if(D.UIOptions.tools?.[Y]===!1)return ue;let pe=ie&&da(typeof ie=="string"?ie:ie[0])||le,ye={label:E(`toolBar.${Y}`),category:Jt.tools,shortcut:pe,icon:oe,keywords:["toolbar"],viewMode:!1,perform:({event:Ct})=>{Y==="image"?t.setActiveTool({type:Y,insertOnCanvasDirectly:Ct.type==="keydown"}):t.setActiveTool({type:Y})}};return ue.push(ye),ue},[]),...se,{label:E("toolBar.lock"),category:Jt.tools,icon:L.activeTool.locked?Ps:hl,shortcut:R.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{t.toggleLock()}},{label:`${E("labels.textToDiagram")}...`,category:Jt.tools,icon:UT,viewMode:!1,predicate:D.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${E("toolBar.mermaidToExcalidraw")}...`,category:Jt.tools,icon:Mp,viewMode:!1,predicate:D.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"mermaid"}}))}}],Ee=[...Q,...nt,...F||[]].map(ue=>({...ue,icon:ue.icon||Dp,order:ue.order??jB(ue.category),haystack:`${vE(ue.label.toLocaleLowerCase())} ${ue.keywords?.join(" ")||""}`}));u(Ee),c(Ee.find(ue=>ue.label===s?.label)??null)}},[m,t,a,u,s?.label,c,o]);let[g,h]=(0,un.useState)(""),[b,y]=(0,un.useState)(null),[T,k]=(0,un.useState)({}),I=L=>{o({openDialog:null},L),h("")},C=(L,F)=>{r.openDialog?.name==="commandPalette"&&(F.stopPropagation(),F.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),I(()=>{L.perform({actionManager:a,event:F}),c(L),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},O=TE(L=>L.viewMode===!1&&r.viewModeEnabled?!1:typeof L.predicate=="function"?L.predicate(t.scene.getNonDeletedElements(),r,i,t):L.predicate===void 0||L.predicate),z=TE(L=>{let F=Yn(L.target)||f3(L)||L.key===R.ESCAPE;if(F&&L.key!==R.ARROW_UP&&L.key!==R.ARROW_DOWN&&L.key!==R.ENTER)return;let D=Object.values(T).flat(),V=s&&!g&&O(s);if(L.key===R.ARROW_UP){L.preventDefault();let U=D.findIndex(K=>K.label===b?.label);if(V){if(U===0){y(s);return}if(b===s){let K=D[D.length-1];K&&y(K);return}}let Q;U===-1?Q=D.length-1:Q=U===0?D.length-1:(U-1)%D.length;let me=D[Q];me&&y(me);return}if(L.key===R.ARROW_DOWN){L.preventDefault();let U=D.findIndex(K=>K.label===b?.label);if(V){if(!b||U===D.length-1){y(s);return}if(b===s){let K=D[0];K&&y(K);return}}let Q=(U+1)%D.length,me=D[Q];me&&y(me);return}if(L.key===R.ENTER&&b&&setTimeout(()=>{C(b,L)}),!F){if(L.stopPropagation(),/^[a-zA-Z0-9]$/.test(L.key)){f?.current?.focus();return}L.preventDefault()}});return(0,un.useEffect)(()=>(window.addEventListener("keydown",z,{capture:!0}),()=>window.removeEventListener("keydown",z,{capture:!0})),[z]),(0,un.useEffect)(()=>{if(!d)return;let L=U=>{let Q={};for(let me of U)Q[me.category]?Q[me.category].push(me):Q[me.category]=[me];return Q},F=d.filter(O).sort((U,Q)=>U.order-Q.order),D=!g&&s&&O(s);if(!g){k(L(D?F.filter(U=>U.label!==s?.label):F)),y(D?s:F[0]||null);return}let V=vE(g.toLocaleLowerCase().replace(/[<>_| -]/g,""));F=p3.default.filter(V,F,{extract:U=>U.haystack}).sort((U,Q)=>Q.score-U.score).map(U=>U.original),k(L(F)),y(F[0]??null)},[g,d,O,s]),(0,Tt.jsxs)(zt,{onCloseRequest:()=>I(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,Tt.jsx)(eh,{value:g,placeholder:E("commandPalette.search.placeholder"),onChange:L=>{h(L)},selectOnRender:!0,ref:f}),!t.device.viewport.isMobile&&(0,Tt.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,Tt.jsx)(ah,{shortcut:"\u2191\u2193",children:E("commandPalette.shortcuts.select")}),(0,Tt.jsx)(ah,{shortcut:"\u21B5",children:E("commandPalette.shortcuts.confirm")}),(0,Tt.jsx)(ah,{shortcut:X("Esc"),children:E("commandPalette.shortcuts.close")})]}),(0,Tt.jsxs)("div",{className:"commands",children:[s&&!g&&(0,Tt.jsxs)("div",{className:"command-category",children:[(0,Tt.jsxs)("div",{className:"command-category-title",children:[E("commandPalette.recents"),(0,Tt.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:GT})]}),(0,Tt.jsx)(u3,{command:s,isSelected:s.label===b?.label,onClick:L=>C(s,L),disabled:!O(s),onMouseMove:()=>y(s),showShortcut:!t.device.viewport.isMobile,appState:r})]}),Object.keys(T).length>0?Object.keys(T).map((L,F)=>(0,Tt.jsxs)("div",{className:"command-category",children:[(0,Tt.jsx)("div",{className:"command-category-title",children:L}),T[L].map(D=>(0,Tt.jsx)(u3,{command:D,isSelected:D.label===b?.label,onClick:V=>C(D,V),onMouseMove:()=>y(D),showShortcut:!t.device.viewport.isMobile,appState:r},D.label))]},L)):d?(0,Tt.jsxs)("div",{className:"no-match",children:[(0,Tt.jsx)("div",{className:"icon",children:Rp})," ",E("commandPalette.search.noMatch")]}):null]})]})}var u3=({command:e,isSelected:t,disabled:r,onMouseMove:o,onClick:i,showShortcut:a,appState:s})=>{let c=()=>{};return(0,Tt.jsxs)("div",{className:q("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?E("commandPalette.itemNotAvailable"):"",children:[(0,Tt.jsxs)("div",{className:"name",children:[e.icon&&(0,Tt.jsx)(mn,{icon:typeof e.icon=="function"?e.icon(s):e.icon}),e.label]}),a&&e.shortcut&&(0,Tt.jsx)(ah,{shortcut:e.shortcut})]})};var g3=w(M(),1),IE=re({name:"toggleLinearEditor",category:Jt.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&&Qe(i[0])&&!dt(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:W.CAPTURE}},PanelComponent:({appState:e,updateData:t,app:r})=>{let o=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds})[0],i=E(o.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit");return(0,g3.jsx)(Ie,{type:"button",icon:oC,title:i,"aria-label":i,onClick:()=>t(null)})}});v();v();var ql=class{constructor(t=!0,r=!0){this.isUndoStackEmpty=t;this.isRedoStackEmpty=r}},Mm=class e{onHistoryChangedEmitter=new en;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=_E.create(r,t);o.isEmpty()||(this.undoStack.push(o.inverse()),o.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new ql(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(t,r,o,i){return this.perform(t,r,o,()=>e.pop(this.undoStack),a=>e.push(this.redoStack,a,t),i)}redo(t,r,o,i){return this.perform(t,r,o,()=>e.pop(this.redoStack),a=>e.push(this.undoStack,a,t),i)}perform(t,r,o,i,a,s){try{let c=i();if(c===null)return;let d=t,u=r,f=!1;for(;c;){try{[d,u,f]=c.applyTo(d,u,o,s)}finally{a(c)}if(f)break;c=i()}return[d,u]}finally{this.onHistoryChangedEmitter.trigger(new ql(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)}},_E=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,i){let[a,s]=this.elementsChange.applyTo(t,o.elements,i),[c,d]=this.appStateChange.applyTo(r,a);return[a,c,s||d]}applyLatestChanges(t){let r=this.elementsChange.applyLatestChanges(t);return e.create(this.appStateChange,r)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};v();var lh=w(j(),1),AE=(e,t)=>{let[r,o]=(0,lh.useState)(t);return(0,lh.useEffect)(()=>{let i=e.on(a=>{o(a)});return()=>{i()}},[e]),r};var kE=w(M(),1),h3=(e,t)=>{if(!e.multiElement&&!e.resizingElement&&!e.editingElement&&!e.draggingElement){let r=t();if(!r)return{storeAction:W.NONE};let[o,i]=r,a=Array.from(o.values());return{appState:i,elements:a,storeAction:W.UPDATE}}return{storeAction:W.NONE}},b3=(e,t)=>({name:"undo",label:"buttons.undo",icon:zx,trackEvent:{category:"history"},viewMode:!1,perform:(r,o,i,a)=>h3(o,()=>e.undo(Re(r),o,t.snapshot,a.scene)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.key.toLowerCase()===R.Z&&!r.shiftKey,PanelComponent:({updateData:r,data:o})=>{let{isUndoStackEmpty:i}=AE(e.onHistoryChangedEmitter,new ql(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,kE.jsx)(Ie,{type:"button",icon:zx,"aria-label":E("buttons.undo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-undo"})}}),x3=(e,t)=>({name:"redo",label:"buttons.redo",icon:$x,trackEvent:{category:"history"},viewMode:!1,perform:(r,o,i,a)=>h3(o,()=>e.redo(Re(r),o,t.snapshot,a.scene)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.shiftKey&&r.key.toLowerCase()===R.Z||qu&&r.ctrlKey&&!r.shiftKey&&r.key===R.Y,PanelComponent:({updateData:r,data:o})=>{let{isRedoStackEmpty:i}=AE(e.onHistoryChangedEmitter,new ql(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,kE.jsx)(Ie,{type:"button",icon:$x,"aria-label":E("buttons.redo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-redo"})}});v();var v3=w(M(),1),PE=(e,t,r,o,i,a)=>{if(e.trackEvent)try{typeof e.trackEvent=="object"&&(!e.trackEvent.predicate||e.trackEvent.predicate(r,o,a))&&ze(e.trackEvent.category,e.trackEvent.action||e.name,`${t} (${i.device.editor.isMobile?"mobile":"desktop"})`)}catch(s){console.error("error while logging action:",s)}},sh=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(t,r,o,i){this.updater=a=>{if(Ts(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,u)=>(u.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 PE(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();PE(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=u=>{PE(i,"ui",c,s,this.app,u),this.updater(i.perform(this.getElementsIncludingDeleted(),this.getAppState(),u,this.app))};return(0,v3.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 ME=e=>{let t=Array.from(e.values());return{x:y3(t,r=>r.x)/t.length,y:y3(t,r=>r.y)/t.length}},LE=([e,t])=>Math.hypot(e.x-t.x,e.y-t.y),y3=(e,t)=>e.reduce((r,o)=>r+t(o),0);v();var E3=w(j(),1),Ui=w(M(),1),Vr="separator",w3=E3.default.memo(({actionManager:e,items:t,top:r,left:o,onClose:i})=>{let a=Qn(),s=La(),c=t.reduce((d,u)=>(u&&(u===Vr||!u.predicate||u.predicate(s,a,e.app.props,e.app))&&d.push(u),d),[]);return(0,Ui.jsx)(fg,{onCloseRequest:()=>{i()},top:r,left:o,fitInViewport:!0,offsetLeft:a.offsetLeft,offsetTop:a.offsetTop,viewportWidth:a.width,viewportHeight:a.height,children:(0,Ui.jsx)("ul",{className:"context-menu",onContextMenu:d=>d.preventDefault(),children:c.map((d,u)=>{if(d===Vr)return!c[u-1]||c[u-1]===Vr?null:(0,Ui.jsx)("hr",{className:"context-menu-item-separator"},u);let f=d.name,m="";return d.label&&(typeof d.label=="function"?m=E(d.label(s,a,e.app)):m=E(d.label)),(0,Ui.jsx)("li",{"data-testid":f,onClick:()=>{i(()=>{e.executeAction(d,"contextMenu")})},children:(0,Ui.jsxs)("button",{type:"button",className:q("context-menu-item",{dangerous:f==="deleteSelectedElements",checkmark:d.checked?.(a)}),children:[(0,Ui.jsx)("div",{className:"context-menu-item__label",children:m}),(0,Ui.jsx)("kbd",{className:"context-menu-item__shortcut",children:f?mr(f):""})]})},u)})})})});v();var oM=w(j(),1);v();var ch=w(j(),1);var Hc=w(M(),1),S3=({children:e,onClose:t})=>{let[r,o]=(0,ch.useState)(!!e),{container:i}=sr(),a=ch.default.useCallback(()=>{o(!1),t&&t(),i?.focus()},[t,i]);return(0,Hc.jsx)(Hc.Fragment,{children:r&&(0,Hc.jsx)(zt,{size:"small",onCloseRequest:a,title:E("errorDialog.title"),children:(0,Hc.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:e})})})};v();var $o=w(j(),1);v();var Lm=w(M(),1),dh=function({onChange:e,value:t,choices:r,name:o}){return(0,Lm.jsx)("div",{className:"RadioGroup",children:r.map(i=>(0,Lm.jsxs)("div",{className:q("RadioGroup__choice",{active:i.value===t}),title:i.ariaLabel,children:[(0,Lm.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 RE=w(M(),1),Rm=({title:e,name:t,checked:r,onChange:o,disabled:i=!1})=>(0,RE.jsx)("div",{className:q("Switch",{toggled:r,disabled:i}),children:(0,RE.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 mh=w(j(),1);var Uc=w(M(),1),oi=(0,mh.forwardRef)(({children:e,icon:t,onClick:r,label:o,variant:i="filled",color:a="primary",size:s="medium",fullWidth:c,className:d},u)=>{let[f,m]=(0,mh.useState)(!1),g=async h=>{let b=r?.(h);if(Ts(b))try{m(!0),await b}catch(y){if(y instanceof _s)console.warn(y);else throw y}finally{m(!1)}};return(0,Uc.jsx)("button",{className:q("ExcButton",`ExcButton--color-${a}`,`ExcButton--variant-${i}`,`ExcButton--size-${s}`,{"ExcButton--fullWidth":c},d),onClick:g,type:"button","aria-label":o,ref:u,disabled:f,children:(0,Uc.jsxs)("div",{className:"ExcButton__contents",children:[f&&(0,Uc.jsx)(Dr,{}),t&&(0,Uc.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:t}),i!=="icon"&&(e??o)]})})});var et=w(M(),1),QB="filter"in document.createElement("canvas").getContext("2d"),ez=()=>(0,et.jsxs)("div",{children:[(0,et.jsx)("h3",{children:E("canvasError.cannotShowPreview")}),(0,et.jsx)("p",{children:(0,et.jsx)("span",{children:E("canvasError.canvasTooBig")})}),(0,et.jsxs)("em",{children:["(",E("canvasError.canvasTooBigTip"),")"]})]}),tz=({appStateSnapshot:e,elementsSnapshot:t,files:r,actionManager:o,onExportImage:i,name:a})=>{let s=gt(t,e),[c,d]=(0,$o.useState)(a),[u,f]=(0,$o.useState)(s),[m,g]=(0,$o.useState)(e.exportBackground),[h,b]=(0,$o.useState)(e.exportWithDarkMode),[y,T]=(0,$o.useState)(e.exportEmbedScene),[k,I]=(0,$o.useState)(e.exportScale),C=(0,$o.useRef)(null),[O,z]=(0,$o.useState)(null),{exportedElements:L,exportingFrame:F}=Fl(t,e,u);return(0,$o.useEffect)(()=>{let D=C.current;if(!D)return;let V=D.offsetWidth,U=D.offsetHeight;V&&Tl({elements:L,appState:{...e,name:c,exportBackground:m,exportWithDarkMode:h,exportScale:k,exportEmbedScene:y},files:r,exportPadding:ca,maxWidthOrHeight:Math.max(V,U),exportingFrame:F}).then(Q=>(z(null),Ci(Q).then(()=>{D.replaceChildren(Q)}).catch(me=>{throw me.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):me}))).catch(Q=>{console.error(Q),z(Q)})},[e,r,L,F,c,m,h,k,y]),(0,et.jsxs)("div",{className:"ImageExportModal",children:[(0,et.jsx)("h3",{children:E("imageExportDialog.header")}),(0,et.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,et.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:C,children:O&&(0,et.jsx)(ez,{})}),(0,et.jsx)("div",{className:"ImageExportModal__preview__filename",children:!Os&&(0,et.jsx)("input",{type:"text",className:"TextInput",value:c,style:{width:"30ch"},onChange:D=>{d(D.target.value),o.executeAction(zy,"ui",D.target.value)}})})]}),(0,et.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,et.jsx)("h3",{children:E("imageExportDialog.header")}),s&&(0,et.jsx)(Dm,{label:E("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,et.jsx)(Rm,{name:"exportOnlySelected",checked:u,onChange:D=>{f(D)}})}),(0,et.jsx)(Dm,{label:E("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,et.jsx)(Rm,{name:"exportBackgroundSwitch",checked:m,onChange:D=>{g(D),o.executeAction($y,"ui",D)}})}),QB&&(0,et.jsx)(Dm,{label:E("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,et.jsx)(Rm,{name:"exportDarkModeSwitch",checked:h,onChange:D=>{b(D),o.executeAction(Mk,"ui",D)}})}),(0,et.jsx)(Dm,{label:E("imageExportDialog.label.embedScene"),tooltip:E("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,et.jsx)(Rm,{name:"exportEmbedSwitch",checked:y,onChange:D=>{T(D),o.executeAction(kg,"ui",D)}})}),(0,et.jsx)(Dm,{label:E("imageExportDialog.label.scale"),name:"exportScale",children:(0,et.jsx)(dh,{name:"exportScale",value:k,onChange:D=>{I(D),o.executeAction(Pk,"ui",D)},choices:ap.map(D=>({value:D,label:`${D}\xD7`}))})}),(0,et.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,et.jsx)(oi,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToPng"),onClick:()=>i(rp.png,L,{exportingFrame:F}),icon:tv,children:E("imageExportDialog.button.exportToPng")}),(0,et.jsx)(oi,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToSvg"),onClick:()=>i(rp.svg,L,{exportingFrame:F}),icon:tv,children:E("imageExportDialog.button.exportToSvg")}),(Gs||vi)&&(0,et.jsx)(oi,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.copyPngToClipboard"),onClick:()=>i(rp.clipboard,L,{exportingFrame:F}),icon:kp,children:E("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Dm=({label:e,children:t,tooltip:r,name:o})=>(0,et.jsxs)("div",{className:"ImageExportModal__settings__setting",title:e,children:[(0,et.jsxs)("label",{htmlFor:o,className:"ImageExportModal__settings__setting__label",children:[e,r&&(0,et.jsx)(Oo,{label:r,long:!0,children:NT})]}),(0,et.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:t})]}),T3=({elements:e,appState:t,files:r,actionManager:o,onExportImage:i,onCloseRequest:a,name:s})=>{let[{appStateSnapshot:c,elementsSnapshot:d}]=(0,$o.useState)(()=>({appStateSnapshot:vo(t),elementsSnapshot:vo(e)}));return(0,et.jsx)(zt,{onCloseRequest:a,size:"wide",title:!1,children:(0,et.jsx)(tz,{elementsSnapshot:d,appStateSnapshot:c,files:r,actionManager:o,onExportImage:i,name:s})})};v();var C3=w(M(),1),uh=({children:e,side:t,className:r})=>(0,C3.jsx)("div",{className:q("FixedSideContainer",`FixedSideContainer_side_${t}`,r),children:e});v();var DE=w(M(),1),rz=({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(jo(e))return E("hints.eraserRevert");if(i.type==="arrow"||i.type==="line")return d?E("hints.linearElementMulti"):i.type==="arrow"?E("hints.arrowTool",{arrowShortcut:X("A")}):E("hints.linearElement");if(i.type==="freedraw")return E("hints.freeDraw");if(i.type==="text")return E("hints.text");if(i.type==="embeddable")return E("hints.embeddable");if(e.activeTool.type==="image"&&e.pendingImageElementId)return E("hints.placeImage");let u=o.scene.getSelectedElements(e);if(a&&c==="mouse"&&u.length===1){let f=u[0];return Qe(f)&&f.points.length===2?E("hints.lockAngle"):pa(f)?E("hints.resizeImage"):E("hints.resize")}if(s&&c==="mouse")return E("hints.rotate");if(u.length===1&&he(u[0]))return E("hints.text_selected");if(e.editingElement&&he(e.editingElement))return E("hints.text_editing");if(i.type==="selection"){if(e.draggingElement?.type==="selection"&&!u.length&&!e.editingElement&&!e.editingLinearElement)return E("hints.deepBoxSelect");if(e.gridSize&&e.draggingElement)return E("hints.disableSnapping");if(!u.length&&!t)return E("hints.canvasPanning");if(u.length===1){if(Qe(u[0]))return e.editingLinearElement?e.editingLinearElement.selectedPointsIndices?E("hints.lineEditor_pointSelected"):E("hints.lineEditor_nothingSelected"):E("hints.lineEditor_info");if(!e.draggingElement&&wi(u[0]))return E("hints.bindTextToElement")}}return null},ph=({appState:e,isMobile:t,device:r,app:o})=>{let i=rz({appState:e,isMobile:t,device:r,app:o});return i?(i=X(i),(0,DE.jsx)("div",{className:"HintViewer",children:(0,DE.jsx)("span",{children:i})})):null};v();var Nm=w(M(),1),oz="medium",I3={CHECKED:Ps,UNCHECKED:hl},fh=e=>(0,Nm.jsxs)("label",{className:q("ToolIcon ToolIcon__lock",`ToolIcon_size_${oz}`,{"is-mobile":e.isMobile}),title:`${e.title} \u2014 Q`,children:[(0,Nm.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,Nm.jsx)("div",{className:"ToolIcon__icon",children:e.checked?I3.CHECKED:I3.UNCHECKED})]});v();v();var jl=w(M(),1),za=({heading:e,children:t,...r})=>{let{id:o}=sr(),i=(0,jl.jsx)("h2",{className:"visually-hidden",id:`${o}-${e}-title`,children:E(`headings.${e}`)});return(0,jl.jsx)("section",{...r,"aria-labelledby":`${o}-${e}-title`,children:typeof t=="function"?t(i):(0,jl.jsxs)(jl.Fragment,{children:[i,t]})})};v();var Fn=4,ni=6,_3="rgba(0,0,0,0.3)",A3=(e,t,r,o)=>{if(!e.length)return{horizontal:null,vertical:null};let[i,a,s,c]=lt(e),d=t/o.zoom.value,u=r/o.zoom.value,f=t-d,m=r-u,g={top:parseInt(_d("sat"))||0,bottom:parseInt(_d("sab"))||0,left:parseInt(_d("sal"))||0,right:parseInt(_d("sar"))||0},h=Ri().rtl,b=-o.scrollX+f/2+g.left,y=-o.scrollY+m/2+g.top,T=b+d-g.right,k=y+u-g.bottom,I=Math.min(i,b),C=Math.min(a,y),O=Math.max(s,T),z=Math.max(c,k);return{horizontal:b===I&&T===O?null:{x:Math.max(g.left,Fn)+(b-I)/(O-I)*t,y:r-ni-Math.max(Fn,g.bottom),width:(T-b)/(O-I)*t-Math.max(Fn*2,g.left+g.right),height:ni},vertical:y===C&&k===z?null:{x:h?Math.max(g.left,Fn):t-ni-Math.max(g.right,Fn),y:(y-C)/(z-C)*r+Math.max(g.top,Fn),width:ni,height:(k-y)/(z-C)*r-Math.max(Fn*2,g.top+g.bottom)}}},NE=(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 Om=w(M(),1),nz="medium",gh=e=>e.penDetected?(0,Om.jsxs)("label",{className:q("ToolIcon ToolIcon__penMode",`ToolIcon_size_${nz}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Om.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Om.jsx)("div",{className:"ToolIcon__icon",children:F2})]}):null;v();var k3=w(M(),1),hh=e=>(0,k3.jsx)(Ie,{className:q("Shape",{fillable:!1}),type:"radio",icon:Ap,name:"editor-current-shape",checked:e.checked,title:`${e.title} \u2014 H`,keyBindingLabel:e.isMobile?void 0:R.H.toLocaleUpperCase(),"aria-label":`${e.title} \u2014 H`,"aria-keyshortcuts":R.H,"data-testid":"toolbar-hand",onChange:()=>e.onChange?.()});var xt=w(M(),1),P3=({appState:e,elements:t,actionManager:r,setAppState:o,onLockToggle:i,onHandToolToggle:a,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:d,renderSidebars:u,device:f,renderWelcomeScreen:m,UIOptions:g,app:h})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:y,DefaultSidebarTriggerTunnel:T}=At(),k=()=>(0,xt.jsxs)(uh,{side:"top",className:"App-top-bar",children:[m&&(0,xt.jsx)(b.Out,{}),(0,xt.jsx)(za,{heading:"shapes",children:C=>(0,xt.jsx)(Ar.Col,{gap:4,align:"center",children:(0,xt.jsxs)(Ar.Row,{gap:1,className:"App-toolbar-container",children:[(0,xt.jsxs)(xr,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[C,(0,xt.jsx)(Ar.Row,{gap:1,children:(0,xt.jsx)(nh,{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)(gh,{checked:e.penMode,onChange:()=>s(null),title:E("toolBar.penMode"),isMobile:!0,penDetected:e.penDetected}),(0,xt.jsx)(fh,{checked:e.activeTool.locked,onChange:i,title:E("toolBar.lock"),isMobile:!0}),(0,xt.jsx)(hh,{checked:Si(e),onChange:()=>a(),title:E("toolBar.hand"),isMobile:!0})]})]})})}),(0,xt.jsx)(ph,{appState:e,isMobile:!0,device:f,app:h})]}),I=()=>e.viewModeEnabled?(0,xt.jsx)("div",{className:"App-toolbar-content",children:(0,xt.jsx)(y.Out,{})}):(0,xt.jsxs)("div",{className:"App-toolbar-content",children:[(0,xt.jsx)(y.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:[u(),!e.viewModeEnabled&&k(),(0,xt.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:ni+Fn*2,marginLeft:ni+Fn*2,marginRight:ni+Fn*2},children:(0,xt.jsxs)(xr,{padding:0,children:[e.openMenu==="shape"&&!e.viewModeEnabled&&qs(e,t)?(0,xt.jsx)(za,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,xt.jsx)(oh,{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(C=>({...Al(t,C)}))},children:E("buttons.scrollBackToContent")})]})]})})]})};v();var Ha=w(j(),1);var $a=w(M(),1),M3=e=>{let t=(0,Ha.useRef)(null),[r,o]=(0,Ha.useState)(null);return(0,Ha.useLayoutEffect)(()=>{if(!e.spreadsheet)return;let i=YC(e.chartType,e.spreadsheet,0,0);o(i);let a,s=t.current;return(async()=>(a=await rf(i,{exportBackground:!1,viewBackgroundColor:zr.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,$a.jsx)("button",{type:"button",className:"ChartPreview",onClick:()=>{r&&e.onClick(e.chartType,r)},children:(0,$a.jsx)("div",{ref:t})})},L3=({setAppState:e,appState:t,onClose:r})=>{let{onInsertElements:o}=_r(),i=Ha.default.useCallback(()=>{r&&r()},[r]),a=(s,c)=>{o(c),ze("paste","chart",s),e({currentChartType:s,pasteDialog:{shown:!1,data:null}})};return(0,$a.jsx)(zt,{size:"small",onCloseRequest:i,title:E("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,$a.jsxs)("div",{className:"container",children:[(0,$a.jsx)(M3,{chartType:"bar",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="bar",onClick:a}),(0,$a.jsx)(M3,{chartType:"line",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="line",onClick:a})]})})};v();var R3=w(j(),1);var ne=w(M(),1),iz=()=>(0,ne.jsxs)("div",{className:"HelpDialog__header",children:[(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:Bx}),E("helpDialog.documentation")]}),(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:Bx}),E("helpDialog.blog")]}),(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:Sp}),E("helpDialog.github")]}),(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:tC}),"YouTube"]})]}),az=e=>(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)("h3",{children:e.title}),(0,ne.jsx)("div",{className:"HelpDialog__islands-container",children:e.children})]}),OE=e=>(0,ne.jsxs)("div",{className:`HelpDialog__island ${e.className}`,children:[(0,ne.jsx)("h4",{className:"HelpDialog__island-title",children:e.caption}),(0,ne.jsx)("div",{className:"HelpDialog__island-content",children:e.children})]});function*lz(e,t){let r=!0;for(let o of e)r||(yield t),r=!1,yield o}var sz=e=>e.replace(/\b[a-z]\b/,t=>t.toUpperCase()),xe=({label:e,shortcuts:t,isOr:r=!0})=>{let o=t.map(i=>(i.endsWith("++")?[...i.slice(0,-2).split("+"),"+"]:i.split("+")).map(s=>(0,ne.jsx)(cz,{children:sz(s)},s)));return(0,ne.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,ne.jsx)("div",{children:e}),(0,ne.jsx)("div",{className:"HelpDialog__key-container",children:[...lz(o,r?E("helpDialog.or"):null)]})]})},cz=e=>(0,ne.jsx)("kbd",{className:"HelpDialog__key",...e}),D3=({onClose:e})=>{let t=R3.default.useCallback(()=>{e&&e()},[e]);return(0,ne.jsx)(ne.Fragment,{children:(0,ne.jsxs)(zt,{onCloseRequest:t,title:E("helpDialog.title"),className:"HelpDialog",children:[(0,ne.jsx)(iz,{}),(0,ne.jsxs)(az,{title:E("helpDialog.shortcuts"),children:[(0,ne.jsxs)(OE,{className:"HelpDialog__island--tools",caption:E("helpDialog.tools"),children:[(0,ne.jsx)(xe,{label:E("toolBar.hand"),shortcuts:[R.H]}),(0,ne.jsx)(xe,{label:E("toolBar.selection"),shortcuts:[R.V,R[1]]}),(0,ne.jsx)(xe,{label:E("toolBar.rectangle"),shortcuts:[R.R,R[2]]}),(0,ne.jsx)(xe,{label:E("toolBar.diamond"),shortcuts:[R.D,R[3]]}),(0,ne.jsx)(xe,{label:E("toolBar.ellipse"),shortcuts:[R.O,R[4]]}),(0,ne.jsx)(xe,{label:E("toolBar.arrow"),shortcuts:[R.A,R[5]]}),(0,ne.jsx)(xe,{label:E("toolBar.line"),shortcuts:[R.L,R[6]]}),(0,ne.jsx)(xe,{label:E("toolBar.freedraw"),shortcuts:[R.P,R[7]]}),(0,ne.jsx)(xe,{label:E("toolBar.text"),shortcuts:[R.T,R[8]]}),(0,ne.jsx)(xe,{label:E("toolBar.image"),shortcuts:[R[9]]}),(0,ne.jsx)(xe,{label:E("toolBar.eraser"),shortcuts:[R.E,R[0]]}),(0,ne.jsx)(xe,{label:E("toolBar.frame"),shortcuts:[R.F]}),(0,ne.jsx)(xe,{label:E("toolBar.laser"),shortcuts:[R.K]}),(0,ne.jsx)(xe,{label:E("labels.eyeDropper"),shortcuts:[R.I,"Shift+S","Shift+G"]}),(0,ne.jsx)(xe,{label:E("helpDialog.editLineArrowPoints"),shortcuts:[X("CtrlOrCmd+Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.editText"),shortcuts:[X("Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.textNewLine"),shortcuts:[X("Enter"),X("Shift+Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.textFinish"),shortcuts:[X("Esc"),X("CtrlOrCmd+Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.curvedArrow"),shortcuts:["A",E("helpDialog.click"),E("helpDialog.click"),E("helpDialog.click")],isOr:!1}),(0,ne.jsx)(xe,{label:E("helpDialog.curvedLine"),shortcuts:["L",E("helpDialog.click"),E("helpDialog.click"),E("helpDialog.click")],isOr:!1}),(0,ne.jsx)(xe,{label:E("toolBar.lock"),shortcuts:[R.Q]}),(0,ne.jsx)(xe,{label:E("helpDialog.preventBinding"),shortcuts:[X("CtrlOrCmd")]}),(0,ne.jsx)(xe,{label:E("toolBar.link"),shortcuts:[X("CtrlOrCmd+K")]})]}),(0,ne.jsxs)(OE,{className:"HelpDialog__island--view",caption:E("helpDialog.view"),children:[(0,ne.jsx)(xe,{label:E("buttons.zoomIn"),shortcuts:[X("CtrlOrCmd++")]}),(0,ne.jsx)(xe,{label:E("buttons.zoomOut"),shortcuts:[X("CtrlOrCmd+-")]}),(0,ne.jsx)(xe,{label:E("buttons.resetZoom"),shortcuts:[X("CtrlOrCmd+0")]}),(0,ne.jsx)(xe,{label:E("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,ne.jsx)(xe,{label:E("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,ne.jsx)(xe,{label:E("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,ne.jsx)(xe,{label:E("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,ne.jsx)(xe,{label:E("buttons.zenMode"),shortcuts:[X("Alt+Z")]}),(0,ne.jsx)(xe,{label:E("buttons.objectsSnapMode"),shortcuts:[X("Alt+S")]}),(0,ne.jsx)(xe,{label:E("labels.toggleGrid"),shortcuts:[X("CtrlOrCmd+'")]}),(0,ne.jsx)(xe,{label:E("labels.viewMode"),shortcuts:[X("Alt+R")]}),(0,ne.jsx)(xe,{label:E("labels.toggleTheme"),shortcuts:[X("Alt+Shift+D")]}),(0,ne.jsx)(xe,{label:E("stats.fullTitle"),shortcuts:[X("Alt+/")]}),(0,ne.jsx)(xe,{label:E("commandPalette.title"),shortcuts:vi?[mr("commandPalette")]:[mr("commandPalette"),mr("commandPalette",1)]})]}),(0,ne.jsxs)(OE,{className:"HelpDialog__island--editor",caption:E("helpDialog.editor"),children:[(0,ne.jsx)(xe,{label:E("labels.moveCanvas"),shortcuts:[X(`Space+${E("helpDialog.drag")}`),X(`Wheel+${E("helpDialog.drag")}`)],isOr:!0}),(0,ne.jsx)(xe,{label:E("buttons.clearReset"),shortcuts:[X("CtrlOrCmd+Delete")]}),(0,ne.jsx)(xe,{label:E("labels.delete"),shortcuts:[X("Delete")]}),(0,ne.jsx)(xe,{label:E("labels.cut"),shortcuts:[X("CtrlOrCmd+X")]}),(0,ne.jsx)(xe,{label:E("labels.copy"),shortcuts:[X("CtrlOrCmd+C")]}),(0,ne.jsx)(xe,{label:E("labels.paste"),shortcuts:[X("CtrlOrCmd+V")]}),(0,ne.jsx)(xe,{label:E("labels.pasteAsPlaintext"),shortcuts:[X("CtrlOrCmd+Shift+V")]}),(0,ne.jsx)(xe,{label:E("labels.selectAll"),shortcuts:[X("CtrlOrCmd+A")]}),(0,ne.jsx)(xe,{label:E("labels.multiSelect"),shortcuts:[X(`Shift+${E("helpDialog.click")}`)]}),(0,ne.jsx)(xe,{label:E("helpDialog.deepSelect"),shortcuts:[X(`CtrlOrCmd+${E("helpDialog.click")}`)]}),(0,ne.jsx)(xe,{label:E("helpDialog.deepBoxSelect"),shortcuts:[X(`CtrlOrCmd+${E("helpDialog.drag")}`)]}),(Gs||vi)&&(0,ne.jsx)(xe,{label:E("labels.copyAsPng"),shortcuts:[X("Shift+Alt+C")]}),(0,ne.jsx)(xe,{label:E("labels.copyStyles"),shortcuts:[X("CtrlOrCmd+Alt+C")]}),(0,ne.jsx)(xe,{label:E("labels.pasteStyles"),shortcuts:[X("CtrlOrCmd+Alt+V")]}),(0,ne.jsx)(xe,{label:E("labels.sendToBack"),shortcuts:[Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")]}),(0,ne.jsx)(xe,{label:E("labels.bringToFront"),shortcuts:[Tn?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")]}),(0,ne.jsx)(xe,{label:E("labels.sendBackward"),shortcuts:[X("CtrlOrCmd+[")]}),(0,ne.jsx)(xe,{label:E("labels.bringForward"),shortcuts:[X("CtrlOrCmd+]")]}),(0,ne.jsx)(xe,{label:E("labels.alignTop"),shortcuts:[X("CtrlOrCmd+Shift+Up")]}),(0,ne.jsx)(xe,{label:E("labels.alignBottom"),shortcuts:[X("CtrlOrCmd+Shift+Down")]}),(0,ne.jsx)(xe,{label:E("labels.alignLeft"),shortcuts:[X("CtrlOrCmd+Shift+Left")]}),(0,ne.jsx)(xe,{label:E("labels.alignRight"),shortcuts:[X("CtrlOrCmd+Shift+Right")]}),(0,ne.jsx)(xe,{label:E("labels.duplicateSelection"),shortcuts:[X("CtrlOrCmd+D"),X(`Alt+${E("helpDialog.drag")}`)]}),(0,ne.jsx)(xe,{label:E("helpDialog.toggleElementLock"),shortcuts:[X("CtrlOrCmd+Shift+L")]}),(0,ne.jsx)(xe,{label:E("buttons.undo"),shortcuts:[X("CtrlOrCmd+Z")]}),(0,ne.jsx)(xe,{label:E("buttons.redo"),shortcuts:qu?[X("CtrlOrCmd+Y"),X("CtrlOrCmd+Shift+Z")]:[X("CtrlOrCmd+Shift+Z")]}),(0,ne.jsx)(xe,{label:E("labels.group"),shortcuts:[X("CtrlOrCmd+G")]}),(0,ne.jsx)(xe,{label:E("labels.ungroup"),shortcuts:[X("CtrlOrCmd+Shift+G")]}),(0,ne.jsx)(xe,{label:E("labels.flipHorizontal"),shortcuts:[X("Shift+H")]}),(0,ne.jsx)(xe,{label:E("labels.flipVertical"),shortcuts:[X("Shift+V")]}),(0,ne.jsx)(xe,{label:E("labels.showStroke"),shortcuts:[X("S")]}),(0,ne.jsx)(xe,{label:E("labels.showBackground"),shortcuts:[X("G")]}),(0,ne.jsx)(xe,{label:E("labels.showFonts"),shortcuts:[X("Shift+F")]}),(0,ne.jsx)(xe,{label:E("labels.decreaseFontSize"),shortcuts:[X("CtrlOrCmd+Shift+<")]}),(0,ne.jsx)(xe,{label:E("labels.increaseFontSize"),shortcuts:[X("CtrlOrCmd+Shift+>")]})]})]})]})})};v();var Jl=w(j(),1);var kr=w(M(),1),dz=4,mz=8,uz=({shouldWrap:e,children:t,username:r})=>e?(0,kr.jsx)(Oo,{label:r||"Unknown user",children:t}):(0,kr.jsx)(kr.Fragment,{children:t}),FE=({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,kr.jsx)(uz,{username:t.username,shouldWrap:i,children:c},r)},pz=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],bh=Jl.default.memo(({className:e,mobile:t,collaborators:r,userToFollow:o})=>{let i=yr(),a=new Map;r.forEach((y,T)=>{let k=y.id||T;a.set(k,{...y,socketId:T})});let s=Array.from(a.values()).filter(y=>y.username?.trim()),[c,d]=Jl.default.useState(""),u=s.filter(y=>y.username?.toLowerCase().includes(c)),f=Jl.default.useRef(null);(0,Jl.useLayoutEffect)(()=>{if(f.current){let y=k=>{let I=Math.max(1,Math.min(8,Math.floor(k/38)));g(I)};if(y(f.current.clientWidth),!Ed)return;let T=new ResizeObserver(k=>{for(let I of k){let{width:C}=I.contentRect;y(C)}});return T.observe(f.current),()=>{T.disconnect()}}},[]);let[m,g]=Jl.default.useState(dz),b=s.slice(0,m-1).map(y=>FE({actionManager:i,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===o}));return t?(0,kr.jsx)("div",{className:q("UserList UserList_mobile",e),children:s.map(y=>FE({actionManager:i,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===o}))}):(0,kr.jsx)("div",{className:"UserList__wrapper",ref:f,children:(0,kr.jsxs)("div",{className:q("UserList",e),style:{"--max-avatars":m},children:[b,s.length>m-1&&(0,kr.jsxs)(xc,{children:[(0,kr.jsxs)(vc,{className:"UserList__more",children:["+",s.length-m+1]}),(0,kr.jsx)(cg,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,kr.jsxs)(xr,{padding:2,children:[s.length>=mz&&(0,kr.jsx)(gg,{placeholder:E("quickSearch.placeholder"),onChange:d}),(0,kr.jsx)(bg,{className:"dropdown-menu UserList__collaborators",placeholder:E("userList.empty"),children:u.length>0?[(0,kr.jsx)("div",{className:"hint",children:E("userList.hint.text")}),u.map(y=>FE({actionManager:i,collaborator:y,socketId:y.socketId,withName:!0,isBeingFollowed:y.socketId===o}))]:[]}),(0,kr.jsx)(dg,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})]})]})})},(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||!br(i,a,pz))return!1}return!0});v();var O3=w(j(),1);v();var N3=w(M(),1),BE=({children:e,color:t})=>(0,N3.jsx)("div",{className:"Card",style:{"--card-color":t==="primary"?"var(--color-primary)":zr[t][7],"--card-color-darker":t==="primary"?"var(--color-primary-darker)":zr[t][8],"--card-color-darkest":t==="primary"?"var(--color-primary-darkest)":zr[t][9]},children:e});var Er=w(M(),1),fz=({elements:e,appState:t,setAppState:r,files:o,actionManager:i,exportOpts:a,canvas:s,onCloseRequest:c})=>{let{onExportToBackend:d}=a;return(0,Er.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,Er.jsxs)("div",{className:"ExportDialog-cards",children:[a.saveFileToDisk&&(0,Er.jsxs)(BE,{color:"lime",children:[(0,Er.jsx)("div",{className:"Card-icon",children:X2}),(0,Er.jsx)("h2",{children:E("exportDialog.disk_title")}),(0,Er.jsxs)("div",{className:"Card-details",children:[E("exportDialog.disk_details"),!Os&&i.renderAction("changeProjectName")]}),(0,Er.jsx)(Ie,{className:"Card-button",type:"button",title:E("exportDialog.disk_button"),"aria-label":E("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{i.executeAction(Em,"ui")}})]}),d&&(0,Er.jsxs)(BE,{color:"pink",children:[(0,Er.jsx)("div",{className:"Card-icon",children:Od}),(0,Er.jsx)("h2",{children:E("exportDialog.link_title")}),(0,Er.jsx)("div",{className:"Card-details",children:E("exportDialog.link_details")}),(0,Er.jsx)(Ie,{className:"Card-button",type:"button",title:E("exportDialog.link_button"),"aria-label":E("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{ze("export","link",`ui (${c2()})`),await d(e,t,o),c()}catch(u){r({errorMessage:u.message})}}})]}),a.renderCustomUI&&a.renderCustomUI(e,t,o,s)]})})},F3=({elements:e,appState:t,files:r,actionManager:o,exportOpts:i,canvas:a,setAppState:s})=>{let c=O3.default.useCallback(()=>{s({openDialog:null})},[s]);return(0,Er.jsx)(Er.Fragment,{children:t.openDialog?.name==="jsonExport"&&(0,Er.jsx)(zt,{onCloseRequest:c,title:E("buttons.export"),children:(0,Er.jsx)(fz,{elements:e,appState:t,setAppState:s,files:r,actionManager:o,onCloseRequest:c,exportOpts:i,canvas:a})})})};v();v();var z3=w(M(),1),B3=e=>(0,z3.jsx)("button",{className:"help-icon",onClick:e.onClick,type:"button",title:`${E("helpDialog.title")} \u2014 ?`,"aria-label":E("helpDialog.title"),children:Ms});var mo=w(M(),1),$3=({appState:e,actionManager:t,showExitZenModeBtn:r,renderWelcomeScreen:o})=>{let{FooterCenterTunnel:i,WelcomeScreenHelpHintTunnel:a}=At(),s=rt(),c=!e.viewModeEnabled&&e.multiElement&&s.isTouchScreen;return(0,mo.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,mo.jsx)("div",{className:q("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled}),children:(0,mo.jsx)(Ar.Col,{gap:2,children:(0,mo.jsxs)(za,{heading:"canvasActions",children:[(0,mo.jsx)(a3,{renderAction:t.renderAction,zoom:e.zoom}),!e.viewModeEnabled&&(0,mo.jsx)(l3,{renderAction:t.renderAction,className:q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":e.zenModeEnabled})}),c&&(0,mo.jsx)(c3,{renderAction:t.renderAction,className:q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled})})]})})}),(0,mo.jsx)(i.Out,{}),(0,mo.jsx)("div",{className:q("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:(0,mo.jsxs)("div",{style:{position:"relative"},children:[o&&(0,mo.jsx)(a.Out,{}),(0,mo.jsx)(B3,{onClick:()=>t.executeAction($l)})]})}),(0,mo.jsx)(s3,{actionManager:t,showExitZenModeBtn:r})]})},H3=$3;$3.displayName="Footer";v();var ur=w(j(),1);v();var U3=w(j(),1),xh=U3.default.createContext({});v();var G3=w(j(),1);var Ql=w(M(),1),zE=({children:e,className:t})=>{let r=rt(),o=(0,G3.useContext)(xh),i=!!(r.editor.canFitSidebar&&o.shouldRenderDockButton);return(0,Ql.jsxs)("div",{className:q("sidebar__header",t),"data-testid":"sidebar-header",children:[e,(0,Ql.jsxs)("div",{className:"sidebar__header__buttons",children:[i&&(0,Ql.jsx)(Oo,{label:E("labels.sidebarLock"),children:(0,Ql.jsx)(ti,{onSelect:()=>o.onDock?.(!o.docked),selected:!!o.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":E("labels.sidebarLock"),children:R2})}),(0,Ql.jsx)(ti,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:o.onCloseRequest,"aria-label":E("buttons.close"),children:Qo})]})]})};zE.displayName="SidebarHeader";v();var es=w(M(),1),$E=({name:e,tab:t,icon:r,title:o,children:i,onToggle:a,className:s,style:c})=>{let d=ot(),u=it();return(0,es.jsxs)("label",{title:o,className:"sidebar-trigger__label-element",children:[(0,es.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:f=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let m=f.target.checked;d({openSidebar:m?{name:e,tab:t}:null}),a?.(m)},checked:u.openSidebar?.name===e,"aria-label":o,"aria-keyshortcuts":"0"}),(0,es.jsxs)("div",{className:q("sidebar-trigger",s),style:c,children:[r&&(0,es.jsx)("div",{children:r}),i&&(0,es.jsx)("div",{className:"sidebar-trigger__label",children:i})]})]})};$E.displayName="SidebarTrigger";v();v();var Pr=w(j());v();var kt=w(j());v();var Bn=w(j());function W3(e){let t=e+"CollectionProvider",[r,o]=qn(t),[i,a]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=h=>{let{scope:b,children:y}=h,T=Bn.default.useRef(null),k=Bn.default.useRef(new Map).current;return Bn.default.createElement(i,{scope:b,itemMap:k,collectionRef:T},y)},c=e+"CollectionSlot",d=Bn.default.forwardRef((h,b)=>{let{scope:y,children:T}=h,k=a(c,y),I=Nr(b,k.collectionRef);return Bn.default.createElement(_a,{ref:I},T)}),u=e+"CollectionItemSlot",f="data-radix-collection-item",m=Bn.default.forwardRef((h,b)=>{let{scope:y,children:T,...k}=h,I=Bn.default.useRef(null),C=Nr(b,I),O=a(u,y);return Bn.default.useEffect(()=>(O.itemMap.set(I,{ref:I,...k}),()=>void O.itemMap.delete(I))),Bn.default.createElement(_a,{[f]:"",ref:C},T)});function g(h){let b=a(e+"CollectionConsumer",h);return Bn.default.useCallback(()=>{let T=b.collectionRef.current;if(!T)return[];let k=Array.from(T.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((O,z)=>k.indexOf(O.ref.current)-k.indexOf(z.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:s,Slot:d,ItemSlot:m},g,o]}v();var Fm=w(j()),gz=(0,Fm.createContext)(void 0);function vh(e){let t=(0,Fm.useContext)(gz);return e||t||"ltr"}var HE="rovingFocusGroup.onEntryFocus",hz={bubbles:!1,cancelable:!0},GE="RovingFocusGroup",[UE,K3,bz]=W3(GE),[xz,WE]=qn(GE,[bz]),[vz,yz]=xz(GE),Ez=(0,kt.forwardRef)((e,t)=>(0,kt.createElement)(UE.Provider,{scope:e.__scopeRovingFocusGroup},(0,kt.createElement)(UE.Slot,{scope:e.__scopeRovingFocusGroup},(0,kt.createElement)(wz,Ye({},e,{ref:t}))))),wz=(0,kt.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:o,loop:i=!1,dir:a,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:u,...f}=e,m=(0,kt.useRef)(null),g=Nr(t,m),h=vh(a),[b=null,y]=uc({prop:s,defaultProp:c,onChange:d}),[T,k]=(0,kt.useState)(!1),I=io(u),C=K3(r),O=(0,kt.useRef)(!1),[z,L]=(0,kt.useState)(0);return(0,kt.useEffect)(()=>{let F=m.current;if(F)return F.addEventListener(HE,I),()=>F.removeEventListener(HE,I)},[I]),(0,kt.createElement)(vz,{scope:r,orientation:o,dir:h,loop:i,currentTabStopId:b,onItemFocus:(0,kt.useCallback)(F=>y(F),[y]),onItemShiftTab:(0,kt.useCallback)(()=>k(!0),[]),onFocusableItemAdd:(0,kt.useCallback)(()=>L(F=>F+1),[]),onFocusableItemRemove:(0,kt.useCallback)(()=>L(F=>F-1),[])},(0,kt.createElement)(jt.div,Ye({tabIndex:T||z===0?-1:0,"data-orientation":o},f,{ref:g,style:{outline:"none",...e.style},onMouseDown:cr(e.onMouseDown,()=>{O.current=!0}),onFocus:cr(e.onFocus,F=>{let D=!O.current;if(F.target===F.currentTarget&&D&&!T){let V=new CustomEvent(HE,hz);if(F.currentTarget.dispatchEvent(V),!V.defaultPrevented){let U=C().filter(be=>be.focusable),Q=U.find(be=>be.active),me=U.find(be=>be.id===b),se=[Q,me,...U].filter(Boolean).map(be=>be.ref.current);Y3(se)}}O.current=!1}),onBlur:cr(e.onBlur,()=>k(!1))})))}),Sz="RovingFocusGroupItem",Tz=(0,kt.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:o=!0,active:i=!1,tabStopId:a,...s}=e,c=sc(),d=a||c,u=yz(Sz,r),f=u.currentTabStopId===d,m=K3(r),{onFocusableItemAdd:g,onFocusableItemRemove:h}=u;return(0,kt.useEffect)(()=>{if(o)return g(),()=>h()},[o,g,h]),(0,kt.createElement)(UE.ItemSlot,{scope:r,id:d,focusable:o,active:i},(0,kt.createElement)(jt.span,Ye({tabIndex:f?0:-1,"data-orientation":u.orientation},s,{ref:t,onMouseDown:cr(e.onMouseDown,b=>{o?u.onItemFocus(d):b.preventDefault()}),onFocus:cr(e.onFocus,()=>u.onItemFocus(d)),onKeyDown:cr(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){u.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let y=_z(b,u.orientation,u.dir);if(y!==void 0){b.preventDefault();let k=m().filter(I=>I.focusable).map(I=>I.ref.current);if(y==="last")k.reverse();else if(y==="prev"||y==="next"){y==="prev"&&k.reverse();let I=k.indexOf(b.currentTarget);k=u.loop?Az(k,I+1):k.slice(I+1)}setTimeout(()=>Y3(k))}})})))}),Cz={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Iz(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function _z(e,t,r){let o=Iz(e.key,r);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Cz[o]}function Y3(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}function Az(e,t){return e.map((r,o)=>e[(t+o)%e.length])}var V3=Ez,X3=Tz;var Z3="Tabs",[kz,Lge]=qn(Z3,[WE]),q3=WE(),[Pz,KE]=kz(Z3),Mz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,onValueChange:i,defaultValue:a,orientation:s="horizontal",dir:c,activationMode:d="automatic",...u}=e,f=vh(c),[m,g]=uc({prop:o,onChange:i,defaultProp:a});return(0,Pr.createElement)(Pz,{scope:r,baseId:sc(),value:m,onValueChange:g,orientation:s,dir:f,activationMode:d},(0,Pr.createElement)(jt.div,Ye({dir:f,"data-orientation":s},u,{ref:t})))}),Lz="TabsList",Rz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,loop:o=!0,...i}=e,a=KE(Lz,r),s=q3(r);return(0,Pr.createElement)(V3,Ye({asChild:!0},s,{orientation:a.orientation,dir:a.dir,loop:o}),(0,Pr.createElement)(jt.div,Ye({role:"tablist","aria-orientation":a.orientation},i,{ref:t})))}),Dz="TabsTrigger",Nz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,disabled:i=!1,...a}=e,s=KE(Dz,r),c=q3(r),d=j3(s.baseId,o),u=J3(s.baseId,o),f=o===s.value;return(0,Pr.createElement)(X3,Ye({asChild:!0},c,{focusable:!i,active:f}),(0,Pr.createElement)(jt.button,Ye({type:"button",role:"tab","aria-selected":f,"aria-controls":u,"data-state":f?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:d},a,{ref:t,onMouseDown:cr(e.onMouseDown,m=>{!i&&m.button===0&&m.ctrlKey===!1?s.onValueChange(o):m.preventDefault()}),onKeyDown:cr(e.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&s.onValueChange(o)}),onFocus:cr(e.onFocus,()=>{let m=s.activationMode!=="manual";!f&&!i&&m&&s.onValueChange(o)})})))}),Oz="TabsContent",Fz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,forceMount:i,children:a,...s}=e,c=KE(Oz,r),d=j3(c.baseId,o),u=J3(c.baseId,o),f=o===c.value,m=(0,Pr.useRef)(f);return(0,Pr.useEffect)(()=>{let g=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(g)},[]),(0,Pr.createElement)(mc,{present:i||f},({present:g})=>(0,Pr.createElement)(jt.div,Ye({"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:u,tabIndex:0},s,{ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0}}),g&&a))});function j3(e,t){return`${e}-trigger-${t}`}function J3(e,t){return`${e}-content-${t}`}var yh=Mz,Eh=Rz,wh=Nz,Sh=Fz;var Q3=w(M(),1),YE=({children:e,...t})=>(0,Q3.jsx)(Eh,{className:"sidebar-triggers",...t,children:e});YE.displayName="SidebarTabTriggers";v();var VE=w(M(),1),XE=({children:e,tab:t,onSelect:r,...o})=>(0,VE.jsx)(wh,{value:t,asChild:!0,onSelect:r,children:(0,VE.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...o,children:e})});XE.displayName="SidebarTabTrigger";v();var eP=w(M(),1),ZE=({children:e,...t})=>{let r=it(),o=ot();if(!r.openSidebar)return null;let{name:i}=r.openSidebar;return(0,eP.jsx)(yh,{className:"sidebar-tabs-root",value:r.openSidebar.tab,onValueChange:a=>o(s=>({...s,openSidebar:{...s.openSidebar,name:i,tab:a}})),...t,children:e})};ZE.displayName="SidebarTabs";v();var tP=w(M(),1),qE=({tab:e,children:t,...r})=>(0,tP.jsx)(Sh,{...r,value:e,"data-testid":e,children:t});qE.displayName="SidebarTab";var jE=w(M(),1),oP=w(j(),1),Bm=St(!1),rP=(0,ur.forwardRef)(({name:e,children:t,onDock:r,docked:o,className:i,...a},s)=>{A.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=ot(),d=Li(Bm,mt);(0,ur.useLayoutEffect)(()=>(d(!!o),()=>{d(!1)}),[d,o]);let u=(0,ur.useRef)({});u.current.onCloseRequest=()=>{c({openSidebar:null})},u.current.onDock=h=>r?.(h),u.current=Ss(u.current,{docked:o,shouldRenderDockButton:!!r&&o!=null});let f=(0,ur.useRef)(null);(0,ur.useImperativeHandle)(s,()=>f.current);let m=rt(),g=(0,ur.useCallback)(()=>{document.querySelector(".Dialog")||c({openSidebar:null})},[c]);return yc(f,(0,ur.useCallback)(h=>{h.target.closest(".sidebar-trigger")||(!o||!m.editor.canFitSidebar)&&g()},[g,o,m.editor.canFitSidebar])),(0,ur.useEffect)(()=>{let h=b=>{b.key===R.ESCAPE&&(!o||!m.editor.canFitSidebar)&&g()};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h)}},[g,o,m.editor.canFitSidebar]),(0,jE.jsx)(xr,{...a,className:q("sidebar",{"sidebar--docked":o},i),ref:f,children:(0,jE.jsx)(xh.Provider,{value:u.current,children:t})})});rP.displayName="SidebarInner";var Gi=Object.assign((0,ur.forwardRef)((e,t)=>{let r=it(),{onStateChange:o}=e,i=(0,ur.useRef)(r.openSidebar);(0,ur.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,ur.useState)(!1);return(0,ur.useLayoutEffect)(()=>(s(!0),()=>s(!1)),[]),a&&r.openSidebar?.name===e.name?(0,oP.createElement)(rP,{...e,ref:t,key:e.name}):null}),{Header:zE,TabTriggers:YE,TabTrigger:XE,Tabs:ZE,Tab:qE,Trigger:$E});Gi.displayName="Sidebar";v();var QE={};bS(QE,{ChangeCanvasBackground:()=>fP,ClearCanvas:()=>uP,CommandPalette:()=>dP,Export:()=>gP,Help:()=>mP,LiveCollaborationTrigger:()=>bP,LoadScene:()=>lP,SaveAsImage:()=>cP,SaveToActiveFile:()=>sP,Socials:()=>hP,ToggleTheme:()=>pP});v();v();var JE=St({active:!1});async function nP({title:e,description:t,actionLabel:r,color:o}){return new Promise(i=>{Hr.set(JE,{active:!0,onConfirm:()=>i(!0),onClose:()=>i(!1),onReject:()=>i(!1),title:e,description:t,actionLabel:r,color:o})})}v();var Wi=w(M(),1),iP=({value:e,shortcut:t,onChange:r,choices:o,children:i,name:a})=>{let s=rt();return(0,Wi.jsxs)(Wi.Fragment,{children:[(0,Wi.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,Wi.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:a,children:i}),(0,Wi.jsx)(dh,{name:a,value:e,onChange:r,choices:o})]}),t&&!s.editor.isMobile&&(0,Wi.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:t})]})};iP.displayName="DropdownMenuItemContentRadio";var aP=iP;var $t=w(M(),1),lP=()=>{let{t:e}=lr(),t=yr(),r=La();return t.isActionEnabled(_c)?(0,$t.jsx)(To,{icon:Ls,onSelect:async()=>{(!r.length||await nP({title:e("overwriteConfirm.modal.loadFromFile.title"),actionLabel:e("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,$t.jsx)(co,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:i=>(0,$t.jsx)("strong",{children:i}),br:()=>(0,$t.jsx)("br",{})})}))&&t.executeAction(_c)},"data-testid":"load-button",shortcut:mr("loadScene"),"aria-label":e("buttons.load"),children:e("buttons.load")}):null};lP.displayName="LoadScene";var sP=()=>{let{t:e}=lr(),t=yr();return t.isActionEnabled(Pg)?(0,$t.jsx)(To,{shortcut:mr("saveScene"),"data-testid":"save-button",onSelect:()=>t.executeAction(Pg),icon:K2,"aria-label":`${e("buttons.save")}`,children:`${e("buttons.save")}`}):null};sP.displayName="SaveToActiveFile";var cP=()=>{let e=ot(),{t}=lr();return(0,$t.jsx)(To,{icon:Cp,"data-testid":"image-export-button",onSelect:()=>e({openDialog:{name:"imageExport"}}),shortcut:mr("imageExport"),"aria-label":t("buttons.exportImage"),children:t("buttons.exportImage")})};cP.displayName="SaveAsImage";var dP=e=>{let t=ot(),{t:r}=lr();return(0,$t.jsx)(To,{icon:Dp,"data-testid":"command-palette-button",onSelect:()=>{ze("command_palette","open","menu"),t({openDialog:{name:"commandPalette"}})},shortcut:mr("commandPalette"),"aria-label":r("commandPalette.title"),className:e?.className,children:r("commandPalette.title")})};dP.displayName="CommandPalette";var mP=()=>{let{t:e}=lr(),t=yr();return(0,$t.jsx)(To,{"data-testid":"help-menu-item",icon:Ms,onSelect:()=>t.executeAction($l),shortcut:"?","aria-label":e("helpDialog.title"),children:e("helpDialog.title")})};mP.displayName="Help";var uP=()=>{let{t:e}=lr(),t=Li(Zl,mt);return yr().isActionEnabled(zi)?(0,$t.jsx)(To,{icon:kn,onSelect:()=>t("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":e("buttons.clearReset"),children:e("buttons.clearReset")}):null};uP.displayName="ClearCanvas";var pP=e=>{let{t}=lr(),r=it(),o=yr(),i=mr("toggleTheme");return o.isActionEnabled(Nl)?e?.allowSystemTheme?(0,$t.jsx)(aP,{name:"theme",value:e.theme,onChange:a=>e.onSelect(a),choices:[{value:Be.LIGHT,label:Nd,ariaLabel:`${t("buttons.lightMode")} - ${i}`},{value:Be.DARK,label:Dd,ariaLabel:`${t("buttons.darkMode")} - ${i}`},{value:"system",label:eC,ariaLabel:t("buttons.systemMode")}],children:t("labels.theme")}):(0,$t.jsx)(To,{onSelect:a=>{if(a.preventDefault(),e?.onSelect)e.onSelect(r.theme===Be.DARK?Be.LIGHT:Be.DARK);else return o.executeAction(Nl)},icon:r.theme===Be.DARK?Nd:Dd,"data-testid":"toggle-dark-mode",shortcut:i,"aria-label":r.theme===Be.DARK?t("buttons.lightMode"):t("buttons.darkMode"),children:r.theme===Be.DARK?t("buttons.lightMode"):t("buttons.darkMode")}):null};pP.displayName="ToggleTheme";var fP=()=>{let{t:e}=lr(),t=it(),r=yr(),o=ei();return t.viewModeEnabled||!o.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,$t.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,$t.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:e("labels.canvasBackground")}),(0,$t.jsx)("div",{style:{padding:"0 0.625rem"},children:r.renderAction("changeViewBackgroundColor")})]})};fP.displayName="ChangeCanvasBackground";var gP=()=>{let{t:e}=lr(),t=ot();return(0,$t.jsx)(To,{icon:bl,onSelect:()=>{t({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":e("buttons.export"),children:e("buttons.export")})};gP.displayName="Export";var hP=()=>{let{t:e}=lr();return(0,$t.jsxs)($t.Fragment,{children:[(0,$t.jsx)(Fc,{icon:Sp,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,$t.jsx)(Fc,{icon:G2,href:"https://x.com/excalidraw","aria-label":"X",children:e("labels.followUs")}),(0,$t.jsx)(Fc,{icon:U2,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:e("labels.discordChat")})]})};hP.displayName="Socials";var bP=({onSelect:e,isCollaborating:t})=>{let{t:r}=lr();return(0,$t.jsx)(To,{"data-testid":"collab-button",icon:Ip,className:q({"active-collab":t}),onSelect:e,children:r("labels.liveCollaboration")})};bP.displayName="LiveCollaborationTrigger";v();var Th=w(j(),1);var xP=w(M(),1),Ki=(e,t)=>{let r=St(0),o=i=>{let{jotaiScope:a}=At(),[,s]=Ve(r,a),c=(0,Th.useRef)({preferHost:!1,counter:0});return(0,Th.useLayoutEffect)(()=>{let d=c.current;return s(u=>{let f=u+1;return d.counter=f,f}),()=>{s(u=>{let f=u-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,xP.jsx)(t,{...i})};return o.displayName=e,o};var Yi=w(M(),1),Bz=Object.assign(Ki("MainMenu",({children:e,onSelect:t})=>{let{MainMenuTunnel:r}=At(),o=rt(),i=it(),a=ot(),s=o.editor.isMobile?void 0:()=>a({openMenu:null});return(0,Yi.jsx)(r.In,{children:(0,Yi.jsxs)(st,{open:i.openMenu==="canvas",children:[(0,Yi.jsx)(st.Trigger,{onToggle:()=>{a({openMenu:i.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:wp}),(0,Yi.jsxs)(st.Content,{onClickOutside:s,onSelect:ua(t,()=>{a({openMenu:null})}),children:[e,o.editor.isMobile&&i.collaborators.size>0&&(0,Yi.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,Yi.jsx)("legend",{children:E("labels.collaborators")}),(0,Yi.jsx)(bh,{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:QE}),uo=Bz;v();v();var Vi=w(M(),1),Ch=({title:e,children:t,actionLabel:r,onClick:o})=>(0,Vi.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Vi.jsx)("h4",{children:e}),(0,Vi.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:t}),(0,Vi.jsx)(oi,{variant:"outlined",color:"muted",label:r,size:"large",fullWidth:!0,onClick:o})]}),zz=()=>{let{t:e}=lr(),t=yr(),r=ot();return(0,Vi.jsx)(Ch,{title:e("overwriteConfirm.action.exportToImage.title"),actionLabel:e("overwriteConfirm.action.exportToImage.button"),onClick:()=>{t.executeAction(kg,"ui",!0),r({openDialog:{name:"imageExport"}})},children:e("overwriteConfirm.action.exportToImage.description")})},$z=()=>{let{t:e}=lr(),t=yr();return(0,Vi.jsx)(Ch,{title:e("overwriteConfirm.action.saveToDisk.title"),actionLabel:e("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{t.executeAction(Em,"ui")},children:e("overwriteConfirm.action.saveToDisk.description")})},e0=Object.assign(({children:e})=>(0,Vi.jsx)("div",{className:"OverwriteConfirm__Actions",children:e}),{ExportToImage:zz,SaveToDisk:$z});var pn=w(M(),1),Ih=Object.assign(Ki("OverwriteConfirmDialog",({children:e})=>{let{OverwriteConfirmDialogTunnel:t}=At(),[r,o]=Ve(JE,mt);if(!r.active)return null;let i=()=>{r.onClose(),o(s=>({...s,active:!1}))},a=()=>{r.onConfirm(),o(s=>({...s,active:!1}))};return(0,pn.jsx)(t.In,{children:(0,pn.jsx)(zt,{onCloseRequest:i,title:!1,size:916,children:(0,pn.jsxs)("div",{className:"OverwriteConfirm",children:[(0,pn.jsx)("h3",{children:r.title}),(0,pn.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${r.color}`,children:[(0,pn.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:OT}),(0,pn.jsx)("div",{children:r.description}),(0,pn.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,pn.jsx)(oi,{color:r.color,size:"large",label:r.actionLabel,onClick:a})]}),(0,pn.jsx)(e0,{children:e})]})})})}),{Actions:e0,Action:Ch});v();var fn=w(M(),1),EP=w(j(),1),vP=Ki("DefaultSidebarTrigger",e=>{let{DefaultSidebarTriggerTunnel:t}=At();return(0,fn.jsx)(t.In,{children:(0,fn.jsx)(Gi.Trigger,{...e,className:"default-sidebar-trigger",name:In.name})})});vP.displayName="DefaultSidebarTrigger";var yP=({children:e,...t})=>{let{DefaultSidebarTabTriggersTunnel:r}=At();return(0,fn.jsx)(r.In,{children:(0,fn.jsx)(Gi.TabTriggers,{...t,children:e})})};yP.displayName="DefaultTabTriggers";var _h=Object.assign(Ki("DefaultSidebar",({children:e,className:t,onDock:r,docked:o,...i})=>{let a=it(),s=ot(),{DefaultSidebarTabTriggersTunnel:c}=At();return(0,EP.createElement)(Gi,{...i,name:"default",key:"default",className:q("default-sidebar",t),docked:o??a.defaultSidebarDockedPreference,onDock:r===!1||!r&&o!=null?void 0:ua(r,d=>{s({defaultSidebarDockedPreference:d})})},(0,fn.jsxs)(Gi.Tabs,{children:[(0,fn.jsxs)(Gi.Header,{children:[i.__fallback&&(0,fn.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:E("toolBar.library")}),(0,fn.jsx)(c.Out,{})]}),(0,fn.jsx)(Gi.Tab,{tab:cp,children:(0,fn.jsx)(D5,{})}),e]}))}),{Trigger:vP,TabTriggers:yP});v();var zm=w(M(),1),Hz="small",wP=e=>(0,zm.jsxs)("label",{className:q("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${Hz}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,zm.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,zm.jsx)("div",{className:"ToolIcon__icon",children:Lp})]});v();var r0=w(j(),1);v();var SP=w(M(),1),Gc=e=>(0,SP.jsx)("p",{className:"excalidraw__paragraph",style:e.style,children:e.children});v();var t0=w(j(),1);var CP=w(M(),1),TP=e=>{let t=ot(),r=(0,t0.useRef)(null),o=(0,t0.useRef)(0);return(0,CP.jsx)(yh,{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"&&Dx(["text-to-diagram","diagram-to-code"],i)?t({openDialog:{name:e.dialog,tab:i,source:"settings"}}):e.dialog==="ttd"&&Dx(["text-to-diagram","mermaid"],i)&&t({openDialog:{name:e.dialog,tab:i}})},children:e.children})};TP.displayName="TTDDialogTabs";var Ah=TP;v();var IP=w(M(),1),Wc=({tab:e,children:t,...r})=>(0,IP.jsx)(Sh,{...r,value:e,children:t});Wc.displayName="TTDDialogTab";var ir=w(M(),1),_P=e=>{let[t,r]=(0,r0.useState)(e.openAIKey||""),[o,i]=(0,r0.useState)(e.isPersisted),a=it(),s=()=>{e.onConfirm(t.trim(),o)};return a.openDialog?.name!=="settings"?null:(0,ir.jsx)(zt,{onCloseRequest:()=>{e.onClose(),e.onConfirm(t.trim(),o)},title:(0,ir.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,ir.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,ir.jsx)(Ah,{dialog:"settings",tab:a.openDialog.tab,children:(0,ir.jsxs)(Wc,{tab:"diagram-to-code",children:[(0,ir.jsxs)(Gc,{children:["For the diagram-to-code feature we use"," ",(0,ir.jsx)(mn,{icon:Fd}),"OpenAI."]}),(0,ir.jsxs)(Gc,{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,ir.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,ir.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,ir.jsx)(Gc,{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,ir.jsx)(eh,{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===R.ENTER&&s()}),(0,ir.jsx)(Gc,{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,ir.jsx)(zl,{checked:o,onChange:i,children:"Persist API key in browser storage"}),(0,ir.jsxs)(Gc,{children:["Once API key is set, you can use the ",(0,ir.jsx)(mn,{icon:Ds})," ","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,ir.jsx)("b",{children:"AI Settings"})," ",(0,ir.jsx)(mn,{icon:Fd}),"."]}),(0,ir.jsx)(oi,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:s})]})})})};v();v();var zn=w(j(),1);v();var Uz=({canvasRef:e,setError:t})=>{let r=e.current;if(!r)return;let o=r.parentElement;o&&(o.style.background="",t(null),r.replaceChildren())},kh=async({canvasRef:e,mermaidToExcalidrawLib:t,mermaidDefinition:r,setError:o,data:i})=>{let a=e.current,s=a?.parentElement;if(!(!a||!s)){if(!r){Uz({canvasRef:e,setError:o});return}try{let c=await t.api,d;try{d=await c.parseMermaidToExcalidraw(r)}catch{d=await c.parseMermaidToExcalidraw(r.replace(/"/g,"'"))}let{elements:u,files:f}=d;o(null),i.current={elements:Kc(u,{regenerateIds:!0}),files:f};let m=await Tl({elements:i.current.elements,files:i.current.files,exportPadding:ca,maxWidthOrHeight:Math.max(s.offsetWidth,s.offsetHeight)*window.devicePixelRatio});try{await Ci(m)}catch(g){throw g.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):g}s.style.background="var(--default-bg-color)",a.replaceChildren(m)}catch(c){throw s.style.background="var(--default-bg-color)",r&&o(c),c}}},$m=e=>{Io.set(qo.MERMAID_TO_EXCALIDRAW,e)},Ph=({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&&$m(r))};v();var AP=w(M(),1),Mh=({children:e})=>(0,AP.jsx)("div",{className:"ttd-dialog-panels",children:e});v();var ii=w(M(),1),Yc=({label:e,children:t,panelAction:r,panelActionDisabled:o=!1,onTextSubmitInProgess:i,renderTopRight:a,renderSubmitShortcut:s,renderBottomRight:c})=>(0,ii.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,ii.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,ii.jsx)("label",{children:e}),a?.()]}),t,(0,ii.jsxs)("div",{className:q("ttd-dialog-panel-button-container",{invisible:!r}),style:{display:"flex",alignItems:"center"},children:[(0,ii.jsxs)(ti,{className:"ttd-dialog-panel-button",onSelect:r?r.action:()=>{},disabled:o||i,children:[(0,ii.jsxs)("div",{className:q({invisible:i}),children:[r?.label,r?.icon&&(0,ii.jsx)("span",{children:r.icon})]}),i&&(0,ii.jsx)(Dr,{})]}),!o&&!i&&s?.(),c?.()]})]});v();var Hm=w(j(),1);var kP=w(M(),1),Lh=({input:e,placeholder:t,onChange:r,onKeyboardSubmit:o})=>{let i=(0,Hm.useRef)(null),a=(0,Hm.useRef)(o);return a.current=o,(0,Hm.useEffect)(()=>{if(!a.current)return;let s=i.current;if(s){let c=d=>{d[R.CTRL_OR_CMD]&&d.key===R.ENTER&&(d.preventDefault(),a.current?.())};return s.addEventListener("keydown",c),()=>{s.removeEventListener("keydown",c)}}},[]),(0,kP.jsx)("textarea",{className:"ttd-dialog-input",onChange:r,value:e,placeholder:t,autoFocus:!0,ref:i})};v();var Ga=w(M(),1),Gz=({error:e})=>(0,Ga.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,Ga.jsx)("p",{children:e})]}),Rh=({error:e,canvasRef:t,loaded:r})=>(0,Ga.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[e&&(0,Ga.jsx)(Gz,{error:e.message}),r?(0,Ga.jsx)("div",{ref:t,style:{opacity:e?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,Ga.jsx)(Dr,{size:"2rem"})]});v();var Um=w(M(),1),Dh=()=>(0,Um.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Um.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("CtrlOrCmd")}),(0,Um.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("Enter")})]});var Xr=w(M(),1),Wz=`flowchart TD
65
66
  A[Christmas] -->|Get money| B(Go shopping)
66
67
  B --> C{Let me think}
67
68
  C -->|One| D[Laptop]
68
69
  C -->|Two| E[iPhone]
69
- C -->|Three| F[Car]`,f_=ud(Am,300),DB=({mermaidToExcalidrawLib:e})=>{let[t,r]=(0,Un.useState)(()=>wo.get(Yo.MERMAID_TO_EXCALIDRAW)||RB),o=(0,Un.useDeferredValue)(t.trim()),[i,a]=(0,Un.useState)(null),s=(0,Un.useRef)(null),c=(0,Un.useRef)({elements:[],files:null}),d=Yr();(0,Un.useEffect)(()=>{ig({canvasRef:s,data:c,mermaidToExcalidrawLib:e,setError:a,mermaidDefinition:o}).catch(f=>{$w()&&console.error("Failed to parse mermaid definition",f)}),f_(o)},[o,e]),(0,Un.useEffect)(()=>()=>{f_.flush()},[]);let p=()=>{ag({app:d,data:c,text:t,shouldSaveMermaidDataToStorage:!0})};return(0,qr.jsxs)(qr.Fragment,{children:[(0,qr.jsx)("div",{className:"ttd-dialog-desc",children:(0,qr.jsx)(co,{i18nKey:"mermaid.description",flowchartLink:f=>(0,qr.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:f}),sequenceLink:f=>(0,qr.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:f}),classLink:f=>(0,qr.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:f})})}),(0,qr.jsxs)(lg,{children:[(0,qr.jsx)(Pc,{label:E("mermaid.syntax"),children:(0,qr.jsx)(sg,{input:t,placeholder:"Write Mermaid diagram defintion here...",onChange:f=>r(f.target.value),onKeyboardSubmit:()=>{p()}})}),(0,qr.jsx)(Pc,{label:E("mermaid.preview"),panelAction:{action:()=>{p()},label:E("mermaid.button"),icon:Ws},renderSubmitShortcut:()=>(0,qr.jsx)(dg,{}),children:(0,qr.jsx)(cg,{canvasRef:s,loaded:e.loaded,error:i})})]})]})},h_=DB;var Wn=S(ee(),1);v();var g_=S(P(),1),Fv=({children:e,...t})=>(0,g_.jsx)(qh,{className:"ttd-dialog-triggers",...t,children:e});Fv.displayName="TTDDialogTabTriggers";v();var zv=S(P(),1),mg=({children:e,tab:t,onSelect:r,...o})=>(0,zv.jsx)(Jh,{value:t,asChild:!0,onSelect:r,children:(0,zv.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...o,children:e})});mg.displayName="TTDDialogTabTrigger";var zt=S(P(),1),Bv=3,Rc=1e3,NB=It(null),OB=It(null),$v=e=>{let t=st();return t.openDialog?.name!=="ttd"?null:(0,zt.jsx)(FB,{...e,tab:t.openDialog.tab})},FB=Vi("TTDDialogBase",({tab:e,...t})=>{let r=Yr(),o=at(),i=(0,Wn.useRef)(null),[a,s]=qe(OB),[c,d]=(0,Wn.useState)(a?.prompt??""),p=c.trim(),f=D=>{d(D.target.value),s(z=>({generatedResponse:z?.generatedResponse??null,prompt:D.target.value}))},[m,h]=(0,Wn.useState)(!1),[b,y]=qe(NB),w=async()=>{if(p.length>Rc||p.length<Bv||m||b?.rateLimitRemaining===0||"__fallback"in t){p.length<Bv&&$(new Error(`Prompt is too short (min ${Bv} characters)`)),p.length>Rc&&$(new Error(`Prompt is too long (max ${Rc} characters)`));return}try{h(!0),Ue("ai","generate","ttd");let{generatedResponse:D,error:z,rateLimit:B,rateLimitRemaining:q}=await t.onTextSubmit(p);if(typeof D=="string"&&s(V=>({generatedResponse:D,prompt:V?.prompt??null})),h0(B)&&h0(q)&&y({rateLimit:B,rateLimitRemaining:q}),z){$(z);return}if(!D){$(new Error("Generation failed"));return}try{await ig({canvasRef:i,data:I,mermaidToExcalidrawLib:M,setError:$,mermaidDefinition:D}),Ue("ai","mermaid parse success","ttd")}catch(V){console.info(`%cTTD mermaid render errror: ${V.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
70
- TTD mermaid definition render errror: ${V.message}`,"color: yellow"),Ue("ai","mermaid parse failed","ttd"),$(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(D){let z=D.message;(!z||z==="Failed to fetch")&&(z="Request failed"),$(new Error(z))}finally{h(!1)}},C=(0,Wn.useRef)(w);C.current=w;let[M,_]=(0,Wn.useState)({loaded:!1,api:import("./excalidraw-assets/dist-567JAXHK.js")});(0,Wn.useEffect)(()=>{(async()=>{await M.api,_(z=>({...z,loaded:!0}))})()},[M.api]);let I=(0,Wn.useRef)({elements:[],files:null}),[N,$]=(0,Wn.useState)(null);return(0,zt.jsx)(Ut,{className:"ttd-dialog",onCloseRequest:()=>{r.setOpenDialog(null)},size:1200,title:!1,...t,autofocus:!1,children:(0,zt.jsxs)(ng,{dialog:"ttd",tab:e,children:["__fallback"in t&&t.__fallback?(0,zt.jsx)("p",{className:"dialog-mermaid-title",children:E("mermaid.title")}):(0,zt.jsxs)(Fv,{children:[(0,zt.jsx)(mg,{tab:"text-to-diagram",children:(0,zt.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[E("labels.textToDiagram"),(0,zt.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,zt.jsx)(mg,{tab:"mermaid",children:"Mermaid"})]}),(0,zt.jsx)(Mc,{className:"ttd-dialog-content",tab:"mermaid",children:(0,zt.jsx)(h_,{mermaidToExcalidrawLib:M})}),!("__fallback"in t)&&(0,zt.jsxs)(Mc,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,zt.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,zt.jsxs)(lg,{children:[(0,zt.jsx)(Pc,{label:E("labels.prompt"),panelAction:{action:w,label:"Generate",icon:Ws},onTextSubmitInProgess:m,panelActionDisabled:p.length>Rc||b?.rateLimitRemaining===0,renderTopRight:()=>b?(0,zt.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:b.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[b.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,zt.jsx)(dg,{}),renderBottomRight:()=>{if(typeof a?.generatedResponse=="string")return(0,zt.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof a?.generatedResponse=="string"&&(Am(a.generatedResponse),o({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,zt.jsx)(dn,{icon:Ws})]});let D=p.length/Rc;return D>.8?(0,zt.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:D>1?"var(--color-danger)":void 0},children:["Length: ",p.length,"/",Rc]}):null},children:(0,zt.jsx)(sg,{onChange:f,input:c,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{C.current()}})}),(0,zt.jsx)(Pc,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),ag({app:r,data:I})},label:"Insert",icon:Ws},children:(0,zt.jsx)(cg,{canvasRef:i,error:N,loaded:M.loaded})})]})]})]})})});v();var ci=S(ee(),1);var z_=S(b_(),1);v();v();var Xi=S(ee(),1);v();var x_=.01,Co=(e,t)=>!(t==="height"&&ve(e)||t==="width"&&ve(e)||t==="angle"&&Ve(e)),jt=(e,t)=>{let r=e+t/2;return r-r%t},Nc=(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),zB=(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)}),Oc=(e,t,r,o,i,a,s,c=!0)=>{let d={},p=ct(o,a);if(p){let f=bp(Lr(p),p.lineHeight),m=hp(p.fontSize,p.lineHeight);e=Math.max(e,f),t=Math.max(t,m)}if(pe(o,{...zB(o.x,o.y,o.width,o.height,e,t,o.angle),width:e,height:t,...Wp(i,e,t,!0)},c),p&&(d={fontSize:p.fontSize},r)){let f={...o,width:e,height:t};d={fontSize:I5(p,a,Ad(f,p))?.size??p.fontSize}}pl(o,a,{newSize:{width:e,height:t}}),p&&d&&pe(p,{fontSize:d.fontSize}),pp(o,a,"e",r)},Zl=(e,t,r,o,i,a,s=!0)=>{let[c,d]=[o.x+o.width/2,o.y+o.height/2],[p,f]=An(o.x,o.y,c,d,o.angle),m=e-p,h=t-f,[b,y]=An(e,t,c+m,d+h,-o.angle);pe(r,{x:b,y},s);let w=ct(o,a);if(w){let C=i.get(w.id);C&&pe(C,{x:w.x+m,y:w.y+h},s)}};var Zi=S(P(),1),BB=({label:e,icon:t,dragInputCallback:r,value:o,elements:i,editable:a=!0,shouldKeepAspectRatio:s})=>{let c=Yr(),d=(0,Xi.useRef)(null),p=(0,Xi.useRef)(null),[f,m]=(0,Xi.useState)(o.toString());(0,Xi.useEffect)(()=>{m(o.toString())},[o,i]);let h=y=>{let w=Number(y);if(isNaN(w)){m(o.toString());return}let C=Number(w.toFixed(2)),M=Number(o);(isNaN(M)||Math.abs(C-M)>=x_)&&(r({accumulatedChange:0,instantChange:0,originalElements:i,originalElementsMap:c.scene.getNonDeletedElementsMap(),shouldKeepAspectRatio:s,shouldChangeByStepSize:!1,nextValue:C}),c.syncActionResult({storeAction:Y.CAPTURE}))},b=(0,Xi.useRef)(h);return b.current=h,(0,Xi.useEffect)(()=>{let y=d.current;return()=>{let w=y?.value;w&&b.current(w)}},[]),a?(0,Zi.jsxs)("div",{className:Q("drag-input-container",!a&&"disabled"),"data-testid":e,children:[(0,Zi.jsx)("div",{className:"drag-input-label",ref:p,onPointerDown:y=>{if(d.current&&a){let w=Number(d.current.value);isNaN(w)&&(w=0);let C=null,M=null,_=null,I=null;document.body.classList.add("excalidraw-cursor-resize");let N=$=>{if(_||(_=c.scene.getNonDeletedElements().reduce((D,z)=>(D.set(z.id,ks(z)),D),new Map)),M||(M=i.map(D=>_.get(D.id))),I||(I=0),C&&_!==null&&I!==null){let D=$.clientX-C.x;I+=D,r({accumulatedChange:I,instantChange:D,originalElements:M,originalElementsMap:_,shouldKeepAspectRatio:s,shouldChangeByStepSize:$.shiftKey})}C={x:$.clientX,y:$.clientY}};window.addEventListener("pointermove",N,!1),window.addEventListener("pointerup",()=>{window.removeEventListener("pointermove",N,!1),c.syncActionResult({storeAction:Y.CAPTURE}),C=null,I=null,M=null,_=null,document.body.classList.remove("excalidraw-cursor-resize")},!1)}},onPointerEnter:()=>{p.current&&(p.current.style.cursor="ew-resize")},children:t?(0,Zi.jsx)(dn,{icon:t}):e}),(0,Zi.jsx)("input",{className:"drag-input",autoComplete:"off",spellCheck:"false",onKeyDown:y=>{if(a){let w=y.target;w instanceof HTMLInputElement&&y.key===R.ENTER&&(h(w.value),c.focusContainer())}},ref:d,value:f,onChange:y=>{m(y.target.value)},onFocus:y=>{y.target.select()},onBlur:y=>{f?a&&h(y.target.value):m(o.toString())},disabled:!a})]}):(0,Zi.jsx)(Zi.Fragment,{})},Jr=BB;var y_=S(P(),1),v_=10,$B=e=>e.type==="image",HB=({property:e,element:t,elementsMap:r})=>{let o=({accumulatedChange:a,originalElements:s,originalElementsMap:c,shouldKeepAspectRatio:d,shouldChangeByStepSize:p,nextValue:f})=>{let m=s[0];if(m){let h=d||$B(t),b=m.width/m.height;if(f!==void 0){let _=Math.max(e==="width"?f:h?f*b:m.width,bo),I=Math.max(e==="height"?f:h?f/b:m.height,bo);Oc(_,I,h,t,m,r,c);return}let y=e==="width"?a:0,w=e==="height"?a:0,C=Math.max(0,m.width+y);e==="width"&&(p?C=jt(C,v_):C=Math.round(C));let M=Math.max(0,m.height+w);e==="height"&&(p?M=jt(M,v_):M=Math.round(M)),h&&(e==="width"?M=Math.round(C/b*100)/100:C=Math.round(M*b*100)/100),M=Math.max(bo,M),C=Math.max(bo,C),Oc(C,M,h,t,m,r,c)}},i=Math.round((e==="width"?t.width:t.height)*100)/100;return(0,y_.jsx)(Jr,{label:e==="width"?"W":"H",elements:[t],dragInputCallback:o,value:i,editable:Co(t,e)})},Hv=HB;v();var w_=S(P(),1),UB=15,WB=({element:e,elementsMap:t})=>{let r=({accumulatedChange:o,originalElements:i,shouldChangeByStepSize:a,nextValue:s})=>{let c=i[0];if(c){if(s!==void 0){let b=ys(s);pe(e,{angle:b});let y=ct(e,t);y&&!Hr(e)&&pe(y,{angle:b});return}let d=Math.round(vs(c.angle)*100)/100,p=Math.round(o),f=(d+p)%360;a&&(f=jt(f,UB)),f=f<0?f+360:f;let m=ys(f);pe(e,{angle:m});let h=ct(e,t);h&&!Hr(e)&&pe(h,{angle:m})}};return(0,w_.jsx)(Jr,{label:"A",icon:uf,value:Math.round(vs(e.angle)%360*100)/100,elements:[e],dragInputCallback:r,editable:Co(e,"angle")})},E_=WB;v();var T_=S(P(),1),C_=4,GB=4,VB=({element:e,elementsMap:t})=>{let r=({accumulatedChange:o,originalElements:i,shouldChangeByStepSize:a,nextValue:s})=>{let c=i[0];if(c){if(s!==void 0){let d=Math.max(Math.round(s),C_),p={...e,fontSize:d},f=ya(p,null,t);pe(e,{...f,fontSize:d});return}if(c.type==="text"){let d=Math.round(c.fontSize),p=Math.round(o),f=Math.max(d+p,C_);a&&(f=jt(f,GB));let m={...e,fontSize:f},h=ya(m,null,t);pe(e,{...h,fontSize:f})}}};return(0,T_.jsx)(Jr,{label:"F",value:Math.round(e.fontSize*10)/10,elements:[e],dragInputCallback:r,icon:wl})},S_=VB;v();var k_=S(ee(),1);var __=S(P(),1),Fc=10,KB=(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,...Wp(o,s,c,!1),...ve(o)?{fontSize:o.fontSize*r}:{}}},YB=(e,t,r,o,i,a,s,c)=>{let d=KB(e,t,o,a);pe(i,d,!1);let p=ct(a,c);if(p){let f=p.fontSize*o;pl(i,s,{newSize:{width:d.width,height:d.height}});let m=s.get(p.id);m&&ve(m)&&(pe(m,{fontSize:f},!1),pp(i,s,r==="width"?"e":"s",!0))}},I_=(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 m=0;m<c.length;m++){let h=c[m],b=s[m];YB(i[0],i[1],a,f,b,h,d,p)}},ZB=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i})=>{let a=(0,k_.useMemo)(()=>o.map(p=>{let f=Nc(p,r);if(f.length>1){let[h,b,y,w]=mt(f.map(C=>C.latest));return Math.round((e==="width"?y-h:w-b)*100)/100}let[m]=f;return Math.round((e==="width"?m.latest.width:m.latest.height)*100)/100}),[r,o,e]),s=new Set(a).size===1?Math.round(a[0]*100)/100:"Mixed",c=a.length>0;return(0,__.jsx)(Jr,{label:e==="width"?"W":"H",elements:t,dragInputCallback:({accumulatedChange:p,originalElementsMap:f,shouldChangeByStepSize:m,nextValue:h})=>{if(h!==void 0){for(let w of o){let C=Nc(w,r,f);if(C.length>1){let M=C.map(me=>me.latest),_=C.map(me=>me.original),[I,N,$,D]=mt(_),z=$-I,B=D-N,q=z/B,V=Math.max(bo,e==="width"?Math.max(0,h):z),te=Math.max(bo,e==="height"?Math.max(0,h):B);I_(V,te,B,q,[I,N],e,M,_,r,f)}else{let[M]=C,_=M?.latest,I=M?.original;if(_&&I&&Co(_,e)){let N=e==="width"?Math.max(0,h):_.width;e==="width"&&(m?N=jt(N,Fc):N=Math.round(N));let $=e==="height"?Math.max(0,h):_.height;e==="height"&&(m?$=jt($,Fc):$=Math.round($)),N=Math.max(bo,N),$=Math.max(bo,$),Oc(N,$,!1,_,I,r,f,!1)}}}i.triggerUpdate();return}let b=e==="width"?p:0,y=e==="height"?p:0;for(let w of o){let C=Nc(w,r,f);if(C.length>1){let M=C.map(me=>me.latest),_=C.map(me=>me.original),[I,N,$,D]=mt(_),z=$-I,B=D-N,q=z/B,V=Math.max(0,z+b);e==="width"&&(m?V=jt(V,Fc):V=Math.round(V));let te=Math.max(0,B+y);e==="height"&&(m?te=jt(te,Fc):te=Math.round(te)),V=Math.max(bo,V),te=Math.max(bo,te),I_(V,te,B,q,[I,N],e,M,_,r,f)}else{let[M]=C,_=M?.latest,I=M?.original;if(_&&I&&Co(_,e)){let N=Math.max(0,I.width+b);e==="width"&&(m?N=jt(N,Fc):N=Math.round(N));let $=Math.max(0,I.height+y);e==="height"&&(m?$=jt($,Fc):$=Math.round($)),N=Math.max(bo,N),$=Math.max(bo,$),Oc(N,$,!1,_,I,r,f)}}}i.triggerUpdate()},value:s,editable:c})},Uv=ZB;v();var M_=S(P(),1),XB=15,jB=({elements:e,elementsMap:t,scene:r})=>{let o=({accumulatedChange:d,originalElements:p,shouldChangeByStepSize:f,nextValue:m})=>{let h=e.filter(y=>!_i(y)&&Co(y,"angle")),b=p.filter(y=>!_i(y)&&Co(y,"angle"));if(m!==void 0){let y=ys(m);for(let w of h){pe(w,{angle:y},!1);let C=ct(w,t);C&&!Hr(w)&&pe(C,{angle:y},!1)}r.triggerUpdate();return}for(let y=0;y<h.length;y++){let w=h[y],C=b[y],M=Math.round(vs(C.angle)*100)/100,_=Math.round(d),I=(M+_)%360;f&&(I=jt(I,XB)),I=I<0?I+360:I;let N=ys(I);pe(w,{angle:N},!1);let $=ct(w,t);$&&!Hr(w)&&pe($,{angle:N},!1)}r.triggerUpdate()},i=e.filter(d=>!_i(d)&&Co(d,"angle")),a=i.map(d=>Math.round(vs(d.angle)%360*100)/100),s=new Set(a).size===1?a[0]:"Mixed",c=i.some(d=>Co(d,"angle"));return(0,M_.jsx)(Jr,{label:"A",icon:uf,value:s,elements:e,dragInputCallback:o,editable:c})},A_=jB;v();var R_=S(P(),1),L_=4,qB=4,JB=({elements:e,elementsMap:t,scene:r})=>{let o=e.filter(d=>!_i(d)&&ve(d)&&!nr(d)),i=o.map(d=>Math.round(d.fontSize*10)/10),a=new Set(i).size===1?i[0]:"Mixed",s=i.length>0;return(0,R_.jsx)(Jr,{label:"F",icon:wl,elements:e,dragInputCallback:({accumulatedChange:d,originalElements:p,shouldChangeByStepSize:f,nextValue:m})=>{if(m){let b=Math.max(Math.round(m),L_);for(let y of o){let w={...y,fontSize:b},C=ya(w,null,t);pe(y,{...C,fontSize:b},!1)}r.triggerUpdate();return}let h=p.filter(b=>!_i(b)&&ve(b)&&!nr(b));for(let b=0;b<o.length;b++){let y=o[b],w=h[b],C=Math.round(w.fontSize),M=Math.round(d),_=Math.max(C+M,L_);f&&(_=jt(_,qB));let I={...y,fontSize:_},N=ya(I,null,t);pe(y,{...N,fontSize:_},!1)}r.triggerUpdate()},value:a,editable:s})},P_=JB;v();var N_=S(P(),1),D_=10,QB=({property:e,element:t,elementsMap:r})=>{let[o,i]=An(t.x,t.y,t.x+t.width/2,t.y+t.height/2,t.angle),a=Math.round((e==="x"?o:i)*100)/100;return(0,N_.jsx)(Jr,{label:e==="x"?"X":"Y",elements:[t],dragInputCallback:({accumulatedChange:c,originalElements:d,originalElementsMap:p,shouldChangeByStepSize:f,nextValue:m})=>{let h=d[0],[b,y]=[h.x+h.width/2,h.y+h.height/2],[w,C]=An(h.x,h.y,b,y,h.angle);if(m!==void 0){Zl(e==="x"?m:w,e==="y"?m:C,t,h,r,p);return}let M=e==="x"?c:0,_=e==="y"?c:0,I=e==="x"?Math.round(f?jt(h.x+M,D_):w+M):w,N=e==="y"?Math.round(f?jt(h.y+_,D_):C+_):C;Zl(I,N,t,h,r,p)},value:a})},Wv=QB;v();var O_=S(ee(),1);var F_=S(P(),1),e$=10,t$=(e,t,r,o,i,a,s)=>{for(let c=0;c<o.length;c++){let d=i[c],p=o[c],[f,m]=[d.x+d.width/2,d.y+d.height/2],[h,b]=An(d.x,d.y,f,m,d.angle),y=e==="x"?Math.round(h+t):h,w=e==="y"?Math.round(b+r):b;Zl(y,w,p,d,a,s,!1)}},r$=(e,t,r,o,i,a)=>{let[s,c,,]=mt(o),d=e-s,p=t-c;for(let f=0;f<r.length;f++){let m=o[f],h=r[f];if(!ve(h)||!h.containerId){let[b,y]=[h.x+h.width/2,h.y+h.height/2],[w,C]=An(h.x,h.y,b,y,h.angle);Zl(w+d,C+p,h,m,i,a,!1)}}},o$=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i})=>{let a=(0,O_.useMemo)(()=>o.map(d=>{let p=Object.keys(d).map(w=>r.get(w)).filter(w=>w!==void 0);if(p.length>1){let[w,C]=mt(p);return Math.round((e==="x"?w:C)*100)/100}let[f]=p,[m,h]=[f.x+f.width/2,f.y+f.height/2],[b,y]=An(f.x,f.y,m,h,f.angle);return Math.round((e==="x"?b:y)*100)/100}),[o,r,e]),s=new Set(a).size===1?a[0]:"Mixed";return(0,F_.jsx)(Jr,{label:e==="x"?"X":"Y",elements:t,dragInputCallback:({accumulatedChange:d,originalElements:p,originalElementsMap:f,shouldChangeByStepSize:m,nextValue:h})=>{if(h!==void 0){for(let C of o){let M=Nc(C,r,f);if(M.length>1){let[_,I,,]=mt(M.map(D=>D.latest));r$(e==="x"?h:_,e==="y"?h:I,M.map(D=>D.latest),M.map(D=>D.original),r,f)}else{let _=M[0]?.original,I=M[0]?.latest;if(_&&I&&Co(I,e)){let[N,$]=[_.x+_.width/2,_.y+_.height/2],[D,z]=An(_.x,_.y,N,$,_.angle);Zl(e==="x"?h:D,e==="y"?h:z,I,_,r,f,!1)}}}i.triggerUpdate();return}let b=m?jt(d,e$):d;t$(e,e==="x"?b:0,e==="y"?b:0,t,p,r,f),i.triggerUpdate()},value:s})},Gv=o$;v();var ji=S(P(),1),n$=({label:e,open:t,openTrigger:r,children:o})=>(0,ji.jsxs)(ji.Fragment,{children:[(0,ji.jsxs)("div",{style:{cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center"},onClick:r,children:[e,(0,ji.jsx)(dn,{icon:t?O4:N4})]}),t&&(0,ji.jsx)(ji.Fragment,{children:o})]}),Vv=n$;var ze=S(P(),1),i$=50,B_=e=>{let t=Da(),r=e.scene.getSceneNonce()||1,o=e.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return(0,ze.jsx)(a$,{...e,appState:t,sceneNonce:r,selectedElements:o})},a$=(0,ci.memo)(({scene:e,onClose:t,renderCustomStats:r,selectedElements:o,appState:i,sceneNonce:a})=>{let s=e.getNonDeletedElements(),c=e.getNonDeletedElementsMap(),d=at(),p=o.length===1?o[0]:null,f=o.length>1?o:null,[m,h]=(0,ci.useState)({width:0,height:0}),b=(0,ci.useMemo)(()=>(0,z_.throttle)(w=>{let C=mt(w);h({width:Math.round(C[2])-Math.round(C[0]),height:Math.round(C[3])-Math.round(C[1])})},i$),[]);(0,ci.useEffect)(()=>{b(s)},[a,s,b]),(0,ci.useEffect)(()=>()=>b.cancel(),[b]);let y=(0,ci.useMemo)(()=>{let C=Mn(i).map(M=>Zt(o,M).reduce((_,I)=>(_[I.id]=!0,_),{}));return o.filter(M=>!_i(M)).forEach(M=>{C.push({[M.id]:!0})}),C},[o,i]);return(0,ze.jsx)("div",{className:"Stats",children:(0,ze.jsxs)(Or,{padding:3,children:[(0,ze.jsxs)("div",{className:"title",children:[(0,ze.jsx)("h2",{children:E("stats.title")}),(0,ze.jsx)("div",{className:"close",onClick:t,children:rn})]}),(0,ze.jsx)(Vv,{label:(0,ze.jsx)("h3",{children:E("stats.generalStats")}),open:!!(i.stats.panels&md.generalStats),openTrigger:()=>d(w=>({...w,stats:{open:!0,panels:w.stats.panels^md.generalStats}})),children:(0,ze.jsx)("table",{children:(0,ze.jsxs)("tbody",{children:[(0,ze.jsx)("tr",{children:(0,ze.jsx)("th",{colSpan:2,children:E("stats.scene")})}),(0,ze.jsxs)("tr",{children:[(0,ze.jsx)("td",{children:E("stats.elements")}),(0,ze.jsx)("td",{children:s.length})]}),(0,ze.jsxs)("tr",{children:[(0,ze.jsx)("td",{children:E("stats.width")}),(0,ze.jsx)("td",{children:m.width})]}),(0,ze.jsxs)("tr",{children:[(0,ze.jsx)("td",{children:E("stats.height")}),(0,ze.jsx)("td",{children:m.height})]}),r?.(s,i)]})})}),o.length>0&&(0,ze.jsx)("div",{id:"elementStats",style:{marginTop:12},children:(0,ze.jsxs)(Vv,{label:(0,ze.jsx)("h3",{children:E("stats.elementProperties")}),open:!!(i.stats.panels&md.elementProperties),openTrigger:()=>d(w=>({...w,stats:{open:!0,panels:w.stats.panels^md.elementProperties}})),children:[p&&(0,ze.jsxs)("div",{className:"sectionContent",children:[(0,ze.jsx)("div",{className:"elementType",children:E(`element.${p.type}`)}),(0,ze.jsxs)("div",{className:"statsItem",children:[(0,ze.jsx)(Wv,{element:p,property:"x",elementsMap:c}),(0,ze.jsx)(Wv,{element:p,property:"y",elementsMap:c}),(0,ze.jsx)(Hv,{property:"width",element:p,elementsMap:c}),(0,ze.jsx)(Hv,{property:"height",element:p,elementsMap:c}),(0,ze.jsx)(E_,{element:p,elementsMap:c}),p.type==="text"&&(0,ze.jsx)(S_,{element:p,elementsMap:c})]})]}),f&&(0,ze.jsxs)("div",{className:"sectionContent",children:[S3(f)&&(0,ze.jsx)("div",{className:"elementType",children:E("element.group")}),(0,ze.jsxs)("div",{className:"elementsCount",children:[(0,ze.jsx)("div",{children:E("stats.elements")}),(0,ze.jsx)("div",{children:o.length})]}),(0,ze.jsxs)("div",{className:"statsItem",children:[(0,ze.jsx)(Gv,{property:"x",elements:f,elementsMap:c,atomicUnits:y,scene:e}),(0,ze.jsx)(Gv,{property:"y",elements:f,elementsMap:c,atomicUnits:y,scene:e}),(0,ze.jsx)(Uv,{property:"width",elements:f,elementsMap:c,atomicUnits:y,scene:e}),(0,ze.jsx)(Uv,{property:"height",elements:f,elementsMap:c,atomicUnits:y,scene:e}),(0,ze.jsx)(A_,{elements:f,elementsMap:c,scene:e}),(0,ze.jsx)(P_,{elements:f,elementsMap:c,scene:e})]})]})]})})]})})},(e,t)=>e.sceneNonce===t.sceneNonce&&e.selectedElements===t.selectedElements&&e.appState.stats.panels===t.appState.stats.panels);var xe=S(P(),1),l$=({UIOptions:e})=>(0,xe.jsxs)(uo,{__fallback:!0,children:[(0,xe.jsx)(uo.DefaultItems.LoadScene,{}),(0,xe.jsx)(uo.DefaultItems.SaveToActiveFile,{}),e.canvasActions.export&&(0,xe.jsx)(uo.DefaultItems.Export,{}),e.canvasActions.saveAsImage&&(0,xe.jsx)(uo.DefaultItems.SaveAsImage,{}),(0,xe.jsx)(uo.DefaultItems.Help,{}),(0,xe.jsx)(uo.DefaultItems.ClearCanvas,{}),(0,xe.jsx)(uo.Separator,{}),(0,xe.jsx)(uo.Group,{title:"Excalidraw links",children:(0,xe.jsx)(uo.DefaultItems.Socials,{})}),(0,xe.jsx)(uo.Separator,{}),(0,xe.jsx)(uo.DefaultItems.ToggleTheme,{}),(0,xe.jsx)(uo.DefaultItems.ChangeCanvasBackground,{})]}),s$=()=>(0,xe.jsxs)(rg,{__fallback:!0,children:[(0,xe.jsx)(rg.Actions.SaveToDisk,{}),(0,xe.jsx)(rg.Actions.ExportToImage,{})]}),c$=({actionManager:e,appState:t,files:r,setAppState:o,elements:i,canvas:a,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,showExitZenModeBtn:p,renderTopRightUI:f,renderCustomStats:m,UIOptions:h,onExportImage:b,renderWelcomeScreen:y,children:w,app:C,isCollaborating:M,openAIKey:_,isOpenAIKeyPersisted:I,onOpenAIAPIKeyChange:N,onMagicSettingsConfirm:$})=>{let D=it(),z=UI(),[B,q]=qe(Aa,ft),V=()=>h.canvasActions.export?(0,xe.jsx)(Ek,{elements:i,appState:t,files:r,actionManager:e,exportOpts:h.canvasActions.export,canvas:a,setAppState:o}):null,te=()=>!h.canvasActions.saveAsImage||t.openDialog?.name!=="imageExport"?null:(0,xe.jsx)(sk,{elements:i,appState:t,files:r,actionManager:e,onExportImage:b,onCloseRequest:()=>o({openDialog:null}),name:C.getName()}),me=()=>(0,xe.jsxs)("div",{style:{position:"relative"},children:[(0,xe.jsx)(z.MainMenuTunnel.Out,{}),y&&(0,xe.jsx)(z.WelcomeScreenMenuHintTunnel.Out,{})]}),K=()=>(0,xe.jsx)(za,{heading:"selectedShapeActions",className:Q("selected-shape-actions zen-mode-transition",{"transition-left":t.zenModeEnabled}),children:(0,xe.jsx)(Or,{className:Hu.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${t.height-166}px`},children:(0,xe.jsx)(Rh,{appState:t,elementsMap:C.scene.getNonDeletedElementsMap(),renderAction:e.renderAction})})}),de=()=>{let Se=Ds(t,i),fe=t.stats.open&&!t.zenModeEnabled&&!t.viewModeEnabled;return(0,xe.jsx)(Uh,{side:"top",children:(0,xe.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,xe.jsxs)(kr.Col,{gap:6,className:Q("App-menu_top__left"),children:[me(),Se&&K()]}),!t.viewModeEnabled&&(0,xe.jsx)(za,{heading:"shapes",className:"shapes-section",children:W=>(0,xe.jsxs)("div",{style:{position:"relative"},children:[y&&(0,xe.jsx)(z.WelcomeScreenToolbarHintTunnel.Out,{}),(0,xe.jsx)(kr.Col,{gap:4,align:"start",children:(0,xe.jsxs)(kr.Row,{gap:1,className:Q("App-toolbar-container",{"zen-mode":t.zenModeEnabled}),children:[(0,xe.jsxs)(Or,{padding:1,className:Q("App-toolbar",{"zen-mode":t.zenModeEnabled}),children:[(0,xe.jsx)(Wh,{appState:t,isMobile:D.editor.isMobile,device:D,app:C}),W,(0,xe.jsxs)(kr.Row,{gap:1,children:[(0,xe.jsx)(Vh,{zenModeEnabled:t.zenModeEnabled,checked:t.penMode,onChange:()=>d(null),title:E("toolBar.penMode"),penDetected:t.penDetected}),(0,xe.jsx)(Gh,{checked:t.activeTool.locked,onChange:s,title:E("toolBar.lock")}),(0,xe.jsx)("div",{className:"App-toolbar__divider"}),(0,xe.jsx)(Kh,{checked:ki(t),onChange:()=>c(),title:E("toolBar.hand"),isMobile:!0}),(0,xe.jsx)(Dh,{appState:t,activeTool:t.activeTool,UIOptions:h,app:C})]})]}),M&&(0,xe.jsx)(Or,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,xe.jsx)(a_,{title:E("toolBar.laser"),checked:t.activeTool.type===Jt.laser,onChange:()=>C.setActiveTool({type:Jt.laser}),isMobile:!0})})]})})]})}),(0,xe.jsxs)("div",{className:Q("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:[t.collaborators.size>0&&(0,xe.jsx)(Yh,{collaborators:t.collaborators,userToFollow:t.userToFollow?.socketId||null}),f?.(D.editor.isMobile,t),!t.viewModeEnabled&&(!Ie||t.openSidebar?.name!==_n.name)&&(0,xe.jsx)(z.DefaultSidebarTriggerTunnel.Out,{}),fe&&(0,xe.jsx)(B_,{scene:C.scene,onClose:()=>{e.executeAction(bc)},renderCustomStats:m})]})]})})},Ee=()=>(0,xe.jsx)(og,{__fallback:!0,onDock:Se=>{Ue("sidebar",`toggleDock (${Se?"dock":"undock"})`,`(${D.editor.isMobile?"mobile":"desktop"})`)}}),Ie=$d(km,ft),tt=(0,xe.jsxs)(xe.Fragment,{children:[w,(0,xe.jsx)(l$,{UIOptions:h}),(0,xe.jsx)(og.Trigger,{__fallback:!0,icon:af,title:ma(E("toolBar.library")),onToggle:Se=>{Se&&Ue("sidebar",`${_n.name} (open)`,`button (${D.editor.isMobile?"mobile":"desktop"})`)},tab:_n.defaultTab,children:E("toolBar.library")}),(0,xe.jsx)(s$,{}),t.openDialog?.name==="ttd"&&(0,xe.jsx)($v,{__fallback:!0}),t.isLoading&&(0,xe.jsx)(of,{delay:250}),t.errorMessage&&(0,xe.jsx)(lk,{onClose:()=>o({errorMessage:null}),children:t.errorMessage}),B&&!D.editor.isMobile&&(0,xe.jsx)(US,{colorPickerType:B.colorPickerType,onCancel:()=>{q(null)},onChange:(Se,fe,W,{altKey:Z})=>{if(!(Se!=="elementBackground"&&Se!=="elementStroke"))if(W.length){for(let ce of W)pe(ce,{[Z&&B.swapPreviewOnAlt?Se==="elementBackground"?"strokeColor":"backgroundColor":Se==="elementBackground"?"backgroundColor":"strokeColor"]:fe},!1),en.delete(ce);Xo.getScene(W[0])?.triggerUpdate()}else o(Se==="elementBackground"?{currentItemBackgroundColor:fe}:{currentItemStrokeColor:fe})},onSelect:(Se,fe)=>{q(W=>W?.keepOpenOnAlt&&fe.altKey?W:null),B?.onSelect?.(Se,fe)}}),t.openDialog?.name==="help"&&(0,xe.jsx)(xk,{onClose:()=>{o({openDialog:null})}}),t.openDialog?.name==="settings"&&(0,xe.jsx)(m_,{openAIKey:_,isPersisted:I,onChange:N,onConfirm:(Se,fe)=>{let W=t.openDialog?.name==="settings"?t.openDialog?.source:"settings";o({openDialog:null},()=>{$(Se,fe,W)})},onClose:()=>{o({openDialog:null})}}),(0,xe.jsx)(XI,{}),(0,xe.jsx)(z.OverwriteConfirmDialogTunnel.Out,{}),te(),V(),t.pasteDialog.shown&&(0,xe.jsx)(gk,{setAppState:o,appState:t,onClose:()=>o({pasteDialog:{shown:!1,data:null}})}),D.editor.isMobile&&(0,xe.jsx)(fk,{app:C,appState:t,elements:i,actionManager:e,renderJSONExportDialog:V,renderImageExportDialog:te,setAppState:o,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,renderTopRightUI:f,renderCustomStats:m,renderSidebars:Ee,device:D,renderWelcomeScreen:y,UIOptions:h}),!D.editor.isMobile&&(0,xe.jsxs)(xe.Fragment,{children:[(0,xe.jsxs)("div",{className:"layer-ui__wrapper",style:t.openSidebar&&Ie&&D.editor.canFitSidebar?{width:`calc(100% - ${Tw}px)`}:{},children:[y&&(0,xe.jsx)(z.WelcomeScreenCenterTunnel.Out,{}),de(),(0,xe.jsx)(Tk,{appState:t,actionManager:e,showExitZenModeBtn:p,renderWelcomeScreen:y}),t.scrolledOutside&&(0,xe.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(Se=>({...vl(i,Se)}))},children:E("buttons.scrollBackToContent")})]}),Ee()]})]});return(0,xe.jsx)(mx.Provider,{value:t,children:(0,xe.jsx)(jp,{scope:z.jotaiScope,children:(0,xe.jsx)(tv.Provider,{value:z,children:tt})})})},$_=e=>{let{suggestedBindings:t,startBoundElement:r,cursorButton:o,scrollX:i,scrollY:a,...s}=e;return s},d$=(e,t)=>{if(e.children!==t.children)return!1;let{canvas:r,appState:o,...i}=e,{canvas:a,appState:s,...c}=t;return xr($_(o),$_(s),{selectedElementIds:xr,selectedGroupIds:xr})&&xr(i,c)},U_=H_.default.memo(c$,d$);v();var zc=S(ee(),1);var Rm=S(P(),1),m$=5e3,W_=({message:e,onClose:t,closable:r=!1,duration:o=m$,style:i})=>{let a=(0,zc.useRef)(0),s=o!==1/0,c=(0,zc.useCallback)(()=>{s&&(a.current=window.setTimeout(()=>t(),o))},[t,o,s]);return(0,zc.useEffect)(()=>{if(s)return c(),()=>clearTimeout(a.current)},[c,e,o,s]),(0,Rm.jsxs)("div",{className:"Toast",onMouseEnter:s?()=>clearTimeout(a?.current):void 0,onMouseLeave:s?c:void 0,style:i,children:[(0,Rm.jsx)("p",{className:"Toast__message",children:e}),r&&(0,Rm.jsx)(Ae,{icon:rn,"aria-label":"close",type:"icon",onClick:t,className:"close"})]})};v();var Kv=ne({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:Vs,viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.viewModeEnabled},perform(e,t){return{appState:{...t,viewModeEnabled:!this.checked(t)},storeAction:Y.NONE}},checked:e=>e.viewModeEnabled,predicate:(e,t,r)=>typeof r.viewModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Be.R});var L8=S(qx(),1);v();var Dm=class e{scene;constructor({scene:t}){this.scene=t}static loadedFontFaces=new Set;onFontsLoaded=t=>{if(t.every(o=>{let i=`${o.family}-${o.style}-${o.weight}`;return e.loadedFontFaces.has(i)?!0:(e.loadedFontFaces.add(i),!1)}))return!1;let r=!1;this.scene.mapElements(o=>ve(o)?(r=!0,en.delete(o),De(o,{},!0)):o),r&&this.scene.triggerUpdate()};loadFontsForElements=async t=>{let r=await Promise.all([...new Set(t.filter(o=>ve(o)).map(o=>o.fontFamily))].map(o=>{let i=Lr({fontFamily:o,fontSize:16});if(!document.fonts?.check?.(i))return document.fonts?.load?.(i)}));this.onFontsLoaded(r.flat().filter(Boolean))}};v();var G_=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length===1&&Ve(r[0])},V_=ne({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t).at(0)||null;if(Ve(i)){let a=Ea(Ze(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:Y.CAPTURE}}return{elements:e,appState:t,storeAction:Y.NONE}},predicate:(e,t,r,o)=>G_(t,o)}),K_=ne({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t).at(0)||null;return Ve(i)?{elements:x5(e,i),appState:{...t,selectedElementIds:{[i.id]:!0}},storeAction:Y.CAPTURE}:{elements:e,appState:t,storeAction:Y.NONE}},predicate:(e,t,r,o)=>G_(t,o)}),iye=ne({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:Y.NONE}),checked:e=>e.frameRendering.enabled}),aye=ne({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:hf,viewMode:!1,perform:(e,t,r,o)=>{let i=Kt(t,{type:"frame"});return Ln(o.interactiveCanvas,{...t,activeTool:i}),{elements:e,appState:{...t,activeTool:Kt(t,{type:"frame"})},storeAction:Y.NONE}},keyTest:e=>!e[R.CTRL_OR_CMD]&&!e.shiftKey&&!e.altKey&&e.key.toLocaleLowerCase()===R.F});v();var u$=8,Y_=99999,ug=e=>u$/e,fn=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}},qi=({event:e,appState:t,selectedElements:r})=>e?t.objectsSnapModeEnabled&&!e[R.CTRL_OR_CMD]||!t.objectsSnapModeEnabled&&e[R.CTRL_OR_CMD]&&t.gridSize===null:r.length===1&&r[0].type==="arrow"?!1:t.objectsSnapModeEnabled,p$=(e,t,r=.01)=>Math.abs(e-t)<=r,Nm=(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,m,h]=Wr(s,t);i&&(c+=i.x,p+=i.x,m+=i.x,d+=i.y,f+=i.y,h+=i.y);let b=(p-c)/2,y=(f-d)/2;if((s.type==="diamond"||s.type==="ellipse")&&!o){let w=Si([c,d+y],[m,h],s.angle),C=Si([c+b,d],[m,h],s.angle),M=Si([p,d+y],[m,h],s.angle),_=Si([c+b,f],[m,h],s.angle);a=r?[w,C,M,_]:[w,C,M,_,[m,h]]}else{let w=Si([c,d],[m,h],s.angle),C=Si([p,d],[m,h],s.angle),M=Si([c,f],[m,h],s.angle),_=Si([p,f],[m,h],s.angle);a=r?[w,C,M,_]:[w,C,M,_,[m,h]]}}else if(e.length>1){let[s,c,d,p]=vp(e,i??{x:0,y:0}),f=d-s,m=p-c,h=[s,c],b=[d,c],y=[s,p],w=[d,p],C=[s+f/2,c+m/2];a=r?[h,b,y,w]:[h,b,y,w,C]}return a.map(s=>[Gt(s[0]),Gt(s[1])])},j_=(e,t,r,o)=>{let i=t.filter(a=>Ve(a)).map(a=>a.id);return Z0(e,t,r,o).filter(a=>!(a.frameId&&i.includes(a.frameId)))},q_=(e,t,r,o)=>{let i=j_(e,t,r,o),a=hl(i,o).filter(m=>!(m.length===1&&nr(m[0]))).map(m=>mt(m).map(h=>Gt(h))),s=a.sort((m,h)=>m[0]-h[0]),c=[],d=0;e:for(let m=0;m<s.length;m++){let h=s[m];for(let b=m+1;b<s.length;b++){if(++d>Y_)break e;let y=s[b],[,w,C,M]=h,[_,I,,N]=y;C<_&&Ed([w,M],[I,N])&&c.push({startBounds:h,endBounds:y,startSide:[[C,w],[C,M]],endSide:[[_,I],[_,N]],length:_-C,overlap:wd([w,M],[I,N])})}}let p=a.sort((m,h)=>m[1]-h[1]),f=[];d=0;e:for(let m=0;m<p.length;m++){let h=p[m];for(let b=m+1;b<p.length;b++){if(++d>Y_)break e;let y=p[b],[w,,C,M]=h,[_,I,N]=y;M<I&&Ed([w,C],[_,N])&&f.push({startBounds:h,endBounds:y,startSide:[[w,M],[C,M]],endSide:[[_,I],[N,I]],length:I-M,overlap:wd([w,C],[_,N])})}}return{horizontalGaps:c,verticalGaps:f}},Z_=(e,t,r,o,i,a,s)=>{if(!qi({appState:r,event:o,selectedElements:e}))return[];if(e.length===0)return[];let c=fn.getVisibleGaps();if(c){let{horizontalGaps:d,verticalGaps:p}=c,[f,m,h,b]=vp(e,t).map(C=>Gt(C)),y=(f+h)/2,w=(m+b)/2;for(let C of d){if(!Ed([m,b],C.overlap))continue;let M=C.startSide[0][0]+C.length/2,_=Gt(M-y);if(C.length>h-f&&Math.abs(_)<=s.x){Math.abs(_)<s.x&&(i.length=0),s.x=Math.abs(_);let V={type:"gap",direction:"center_horizontal",gap:C,offset:_};i.push(V);continue}let[,,N]=C.endBounds,$=f-N,D=Gt(C.length-$);if(Math.abs(D)<=s.x){Math.abs(D)<s.x&&(i.length=0),s.x=Math.abs(D);let V={type:"gap",direction:"side_right",gap:C,offset:D};i.push(V);continue}let[z,,,]=C.startBounds,B=z-h,q=Gt(B-C.length);if(Math.abs(q)<=s.x){Math.abs(q)<s.x&&(i.length=0),s.x=Math.abs(q);let V={type:"gap",direction:"side_left",gap:C,offset:q};i.push(V);continue}}for(let C of p){if(!Ed([f,h],C.overlap))continue;let M=C.startSide[0][1]+C.length/2,_=Gt(M-w);if(C.length>b-m&&Math.abs(_)<=s.y){Math.abs(_)<s.y&&(a.length=0),s.y=Math.abs(_);let V={type:"gap",direction:"center_vertical",gap:C,offset:_};a.push(V);continue}let[,N,,]=C.startBounds,$=N-b,D=Gt($-C.length);if(Math.abs(D)<=s.y){Math.abs(D)<s.y&&(a.length=0),s.y=Math.abs(D);let V={type:"gap",direction:"side_top",gap:C,offset:D};a.push(V);continue}let[,,,z]=C.endBounds,B=Gt(m-z),q=C.length-B;if(Math.abs(q)<=s.y){Math.abs(q)<s.y&&(a.length=0),s.y=Math.abs(q);let V={type:"gap",direction:"side_bottom",gap:C,offset:q};a.push(V);continue}}}},J_=(e,t,r,o)=>{let i=j_(e,t,r,o);return hl(i,o).filter(a=>!(a.length===1&&nr(a[0]))).flatMap(a=>Nm(a,o))},Bc=(e,t,r,o,i,a,s)=>{if(!qi({appState:r,event:o,selectedElements:e})||e.length===0&&t.length===0)return[];let c=fn.getReferenceSnapPoints();if(c)for(let d of t)for(let p of c){let f=p[0]-d[0],m=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(m)<=s.y&&(Math.abs(m)<s.y&&(a.length=0),a.push({type:"point",points:[d,p],offset:m}),s.y=Math.abs(m))}},Q_=(e,t,r,o,i)=>{let a=Ge(e,r);if(!qi({appState:r,event:o,selectedElements:a})||a.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};t.x=Gt(t.x),t.y=Gt(t.y);let s=[],c=[],d=ug(r.zoom.value),p={x:d,y:d},f=Nm(a,i,{dragOffset:t});Bc(a,f,r,o,s,c,p),Z_(a,t,r,o,s,c,p);let m={x:s[0]?.offset??0,y:c[0]?.offset??0};p.x=0,p.y=0,s.length=0,c.length=0;let h={x:Gt(t.x+m.x),y:Gt(t.y+m.y)};Bc(a,Nm(a,i,{dragOffset:h}),r,o,s,c,p),Z_(a,h,r,o,s,c,p);let b=Yv(s,c),y=h$(a,h,[...s,...c].filter(w=>w.type==="gap"));return{snapOffset:m,snapLines:[...b,...y]}},Gt=e=>Math.round(e*10**6)/10**6,X_=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())},Yv=(e,t)=>{let r={},o={};if(e.length>0){for(let i of e)if(i.type==="point"){let a=Gt(i.points[0][0]);r[a]||(r[a]=[]),r[a].push(...i.points.map(s=>[Gt(s[0]),Gt(s[1])]))}}if(t.length>0){for(let i of t)if(i.type==="point"){let a=Gt(i.points[0][1]);o[a]||(o[a]=[]),o[a].push(...i.points.map(s=>[Gt(s[0]),Gt(s[1])]))}}return Object.entries(r).map(([i,a])=>({type:"points",points:X_(a.map(s=>[Number(i),s[1]]).sort((s,c)=>s[1]-c[1]))})).concat(Object.entries(o).map(([i,a])=>({type:"points",points:X_(a.map(s=>[s[0],Number(i)]).sort((s,c)=>s[0]-c[0]))})))},f$=e=>{let t=new Map;for(let r of e){let o=r.points.flat().map(i=>[Gt(i)]).join(",");t.has(o)||t.set(o,r)}return Array.from(t.values())},h$=(e,t,r)=>{let[o,i,a,s]=vp(e,t),c=[];for(let d of r){let[p,f,m,h]=d.gap.startBounds,[b,y,w,C]=d.gap.endBounds,M=wd([i,s],d.gap.overlap),_=wd([o,a],d.gap.overlap);switch(d.direction){case"center_horizontal":{if(M){let I=(M[0]+M[1])/2;c.push({type:"gap",direction:"horizontal",points:[[d.gap.startSide[0][0],I],[o,I]]},{type:"gap",direction:"horizontal",points:[[a,I],[d.gap.endSide[0][0],I]]})}break}case"center_vertical":{if(_){let I=(_[0]+_[1])/2;c.push({type:"gap",direction:"vertical",points:[[I,d.gap.startSide[0][1]],[I,i]]},{type:"gap",direction:"vertical",points:[[I,s],[I,d.gap.endSide[0][1]]]})}break}case"side_right":{if(M){let I=(M[0]+M[1])/2;c.push({type:"gap",direction:"horizontal",points:[[m,I],[b,I]]},{type:"gap",direction:"horizontal",points:[[w,I],[o,I]]})}break}case"side_left":{if(M){let I=(M[0]+M[1])/2;c.push({type:"gap",direction:"horizontal",points:[[a,I],[p,I]]},{type:"gap",direction:"horizontal",points:[[m,I],[b,I]]})}break}case"side_top":{if(_){let I=(_[0]+_[1])/2;c.push({type:"gap",direction:"vertical",points:[[I,s],[I,f]]},{type:"gap",direction:"vertical",points:[[I,h],[I,y]]})}break}case"side_bottom":{if(_){let I=(_[0]+_[1])/2;c.push({type:"gap",direction:"vertical",points:[[I,h],[I,y]]},{type:"gap",direction:"vertical",points:[[I,C],[I,i]]})}break}}}return f$(c.map(d=>({...d,points:d.points.map(p=>[Gt(p[0]),Gt(p[1])])})))},e8=(e,t,r,o,i,a)=>{if(!qi({event:o,selectedElements:e,appState:r})||e.length===0||e.length===1&&!p$(e[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[s,c,d,p]=mt(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 m=ug(r.zoom.value),h={x:m,y:m},b=[],y=[];Bc(t,f,r,o,b,y,h);let w={x:b[0]?.offset??0,y:y[0]?.offset??0};h.x=0,h.y=0,b.length=0,y.length=0;let[C,M,_,I]=mt(e).map(D=>Gt(D));Bc(e,[[C,M],[C,I],[_,M],[_,I]],r,o,b,y,h);let $=Yv(b,y);return{snapOffset:w,snapLines:$}},t8=(e,t,r,o,i,a)=>{if(!qi({event:r,selectedElements:[e],appState:t}))return{snapOffset:{x:0,y:0},snapLines:[]};let s=[[o.x+i.x,o.y+i.y]],c=ug(t.zoom.value),d={x:c,y:c},p=[],f=[];Bc([e],s,t,r,p,f,d);let m={x:p[0]?.offset??0,y:f[0]?.offset??0};d.x=0,d.y=0,p.length=0,f.length=0;let h=Nm([e],a,{boundingBoxCorners:!0,omitCenter:!0});Bc([e],h,t,r,p,f,d);let b=Yv(p,f);return{snapOffset:m,snapLines:b}},r8=(e,t,r,o,i)=>{if(!qi({event:o,selectedElements:[],appState:t}))return{originOffset:{x:0,y:0},snapLines:[]};let a=Z0(e,[],t,i),s=ug(t.zoom.value),c={x:s,y:s},d=[],p=[];for(let f of a){let m=Nm([f],i);for(let h of m){let b=h[0]-r.x;Math.abs(b)<=Math.abs(c.x)&&(Math.abs(b)<Math.abs(c.x)&&(p.length=0),p.push({type:"pointer",points:[h,[h[0],r.y]],direction:"vertical"}),c.x=b);let y=h[1]-r.y;Math.abs(y)<=Math.abs(c.y)&&(Math.abs(y)<Math.abs(c.y)&&(d.length=0),d.push({type:"pointer",points:[h,[r.x,h[1]]],direction:"horizontal"}),c.y=y)}}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]}},o8=e=>e===Jt.rectangle||e===Jt.ellipse||e===Jt.diamond||e===Jt.frame||e===Jt.magicframe||e===Jt.image||e===Jt.text;v();var Qr=S(P(),1),g$=()=>(0,Qr.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Qr.jsx)("p",{children:(0,Qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line1",bold:e=>(0,Qr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,Qr.jsx)("p",{children:(0,Qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line2",bold:e=>(0,Qr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,Qr.jsx)("p",{children:(0,Qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line3",link:e=>(0,Qr.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:e})})}),(0,Qr.jsx)("p",{children:(0,Qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:e=>(0,Qr.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:e}),discordLink:e=>(0,Qr.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[e,"."]})})})]}),n8=g$;v();var pg={width:100,height:0},Ga=100,b$=(e,t,r)=>{let o=va({x:0,y:0,textAlign:dd.CENTER,verticalAlign:Vo.MIDDLE,...t,containerId:e.id,strokeColor:t.strokeColor||e.strokeColor});return Object.assign(e,{boundElements:(e.boundElements||[]).concat({type:"text",id:o.id})}),Ur(o,e,r),[e,o]},i8=(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??Ga,m=t?.height??Ga,h;t.id&&(h=o.getElement(t.id),h||console.error(`No element for start binding with id ${t.id} found`));let b=t.x||e.x-f,y=t.y||e.y-m/2,w=h?h.type:t.type;if(w){if(w==="text"){let C="";h&&h.type==="text"?C=h.text:t.type==="text"&&(C=t.text),C||console.error(`No text found for start binding text element for ${e.id}`),a=va({x:b,y,type:"text",...h,...t,text:C}),Object.assign(a,{x:t.x||e.x-a.width,y:t.y||e.y-a.height/2})}else switch(w){case"rectangle":case"ellipse":case"diamond":{a=xa({x:b,y,width:f,height:m,...h,...t,type:w});break}default:op(e,`Unhandled element start type "${t.type}"`,!0)}y0(e,a,"start",i)}}if(r){let f=r?.height??Ga,m=r?.width??Ga,h;r.id&&(h=o.getElement(r.id),h||console.error(`No element for end binding with id ${r.id} found`));let b=r.x||e.x+e.width,y=r.y||e.y-f/2,w=h?h.type:r.type;if(w){if(w==="text"){let C="";h&&h.type==="text"?C=h.text:r.type==="text"&&(C=r.text),C||console.error(`No text found for end binding text element for ${e.id}`),s=va({x:b,y,type:"text",...h,...r,text:C}),Object.assign(s,{y:r.y||e.y-s.height/2})}else switch(w){case"rectangle":case"ellipse":case"diamond":{s=xa({x:b,y,width:m,height:f,...h,...r,type:w});break}default:op(e,`Unhandled element end type "${w}"`,!0)}y0(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=Xn(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}},Zv=class{excalidrawElements=new Map;add=t=>{t&&this.excalidrawElements.set(t.id,t)};getElements=()=>ha(Array.from(this.excalidrawElements.values()));getElementsMap=()=>ip(Oe(this.getElements()));getElement=t=>this.excalidrawElements.get(t)},Lc=(e,t)=>{if(!e)return[];let r=Xn(e),o=new Zv,i=new Map,a=new Map;for(let c of r){let d,p=c.id;switch(t?.regenerateIds!==!1&&Object.assign(c,{id:fa()}),c.type){case"rectangle":case"ellipse":case"diamond":{let m=c?.label?.text&&c.width===void 0?0:c?.width||Ga,h=c?.label?.text&&c.height===void 0?0:c?.height||Ga;d=xa({...c,width:m,height:h});break}case"line":{let m=c.width||pg.width,h=c.height||pg.height;d=Ld({width:m,height:h,points:[[0,0],[m,h]],...c});break}case"arrow":{let m=c.width||pg.width,h=c.height||pg.height;d=Ld({width:m,height:h,endArrowhead:"arrow",points:[[0,0],[m,h]],...c}),Object.assign(d,Qw(d.points));break}case"text":{let m=c?.fontFamily||ps,h=c?.fontSize||kn,b=c?.lineHeight||Ii(m),y=c.text??"",w=_d(y),C=Ti(w,Lr({fontFamily:m,fontSize:h}),b);d=va({width:C.width,height:C.height,fontFamily:m,fontSize:h,...c});break}case"image":{d=Cp({width:c?.width||Ga,height:c?.height||Ga,...c});break}case"frame":{d=wp({x:0,y:0,...c});break}case"magicframe":{d=Md({x:0,y:0,...c});break}case"freedraw":case"iframe":case"embeddable":{d=c;break}default:d=c,op(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,m]=b$(p,d?.label,s);if(o.add(f),o.add(m),f.type==="arrow"){let h=d.type==="arrow"?d?.start:void 0,b=d.type==="arrow"?d?.end:void 0;if(h&&h.id){let M=a.get(h.id);M&&Object.assign(h,{id:M})}if(b&&b.id){let M=a.get(b.id);M&&Object.assign(b,{id:M})}let{linearElement:y,startBoundElement:w,endBoundElement:C}=i8(f,h,b,o,s);f=y,o.add(y),o.add(w),o.add(C)}}else switch(d.type){case"arrow":{let{start:f,end:m}=d;if(f&&f.id){let w=a.get(f.id);Object.assign(f,{id:w})}if(m&&m.id){let w=a.get(m.id);Object.assign(m,{id:w})}let{linearElement:h,startBoundElement:b,endBoundElement:y}=i8(p,f,m,o,s);o.add(h),o.add(b),o.add(y);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(_=>{let I=a.get(_);if(!I)throw new Error(`Element with ${_} wasn't mapped correctly`);let N=o.getElement(I);if(!N)throw new Error(`Frame element with id ${I} doesn't exist`);Object.assign(N,{frameId:p.id}),N?.boundElements?.forEach($=>{let D=o.getElement($.id);if(!D)throw new Error(`Bound element with id ${$.id} doesn't exist`);Object.assign(D,{frameId:p.id}),f.push(D)}),f.push(N)});let[m,h,b,y]=mt(f),w=10;m=m-w,h=h-w,b=b+w,y=y+w;let C=Math.max(p?.width,b-m),M=Math.max(p?.height,y-h);Object.assign(p,{x:m,y:h,width:C,height:M})}return o.getElements()};v();v();var $c=S(ee(),1);v();var Xv=S(Qn(),1),a8=S(ee(),1);var Bt=e=>t=>{(0,Xv.unstable_batchedUpdates)(e,t)},fg=e=>Qu(t=>{(0,Xv.unstable_batchedUpdates)(e,t)}),hg=(()=>{let e;try{let r=a8.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 x$="#ff6b6b",v$="#ff0000",l8=1,s8=2,c8=(e,t)=>{if(!t.snapLines.length)return;let r=t.theme===He.LIGHT||t.zenModeEnabled?x$:v$,o=(t.zenModeEnabled?l8*1.5:l8)/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,E$(i,e,t)):i.type==="gap"?(e.lineWidth=o,e.strokeStyle=r,w$(i.points[0],i.points[1],i.direction,t,e)):i.type==="points"&&(e.lineWidth=o,e.strokeStyle=r,y$(i,e,t));e.restore()},y$=(e,t,r)=>{if(!r.zenModeEnabled){let o=e.points[0],i=e.points[e.points.length-1];hn(o,i,t)}for(let o of e.points)d8(o,r,t)},E$=(e,t,r)=>{d8(e.points[0],r,t),r.zenModeEnabled||hn(e.points[0],e.points[1],t)},d8=([e,t],r,o)=>{o.save();let i=(r.zenModeEnabled?s8*1.5:s8)/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()},hn=(e,t,r)=>{r.beginPath(),r.lineTo(...e),r.lineTo(...t),r.stroke()},w$=(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||hn([e[0],e[1]-a],[e[0],e[1]+a],i),hn([d[0]-c,d[1]-s],[d[0]-c,d[1]+s],i),hn([d[0]+c,d[1]-s],[d[0]+c,d[1]+s],i),o.zenModeEnabled||(hn([t[0],t[1]-a],[t[0],t[1]+a],i),hn(e,t,i))}else{let d=[e[0],(e[1]+t[1])/2];o.zenModeEnabled||hn([e[0]-a,e[1]],[e[0]+a,e[1]],i),hn([d[0]-s,d[1]-c],[d[0]+s,d[1]-c],i),hn([d[0]-s,d[1]+c],[d[0]+s,d[1]+c],i),o.zenModeEnabled||(hn([t[0]-a,t[1]],[t[0]+a,t[1]],i),hn(e,t,i))}};var C$=(e,t,r)=>{let{elementId:o,hoverPointIndex:i}=t.selectedLinearElement;if(t.editingLinearElement?.selectedPointsIndices?.includes(i))return;let a=Fe.getElement(o,r);if(!a)return;let s=Fe.getPointAtIndexGlobalCoordinates(a,i,r);e.save(),e.translate(t.scrollX,t.scrollY),qv(s,e,t),e.restore()},qv=(e,t,r)=>{t.fillStyle="rgba(105, 101, 219, 0.4)",Dd(t,e[0],e[1],Fe.POINT_HANDLE_SIZE/r.zoom.value,!1)},Om=(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()},S$=(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()},gg=(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)"),Dd(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()},I$=(e,t,r)=>{let[o,i,a,s]=Wr(t,r),c=a-o,d=s-i,p=E0(t,c,d),f=4;e.strokeStyle="rgba(0,0,0,.05)",e.lineWidth=p-f;let m=f/2+p/2;switch(t.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Om(e,o-m,i-m,c+m*2,d+m*2,o+c/2,i+d/2,t.angle);break;case"diamond":let h=Math.hypot(c,d),b=m*h/d,y=m*h/c;S$(e,c+b*2,d+y*2,o+c/2,i+d/2,t.angle);break;case"ellipse":T$(e,c+m*2,d+m*2,o+c/2,i+d/2,t.angle);break}},k$=(e,t,r)=>{let[o,i,a]=t,s=E0(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]=Fe.getPointAtIndexGlobalCoordinates(o,d,r);Dd(e,p,f,s)})},u8=(e,t,r)=>{let{angle:o,elementX1:i,elementY1:a,elementX2:s,elementY2:c,selectionColors:d,cx:p,cy:f,dashed:m,activeEmbeddable:h}=r,b=s-i,y=c-a,C=Wu*2/t.zoom.value,M=8/t.zoom.value,_=4/t.zoom.value;e.save(),e.translate(t.scrollX,t.scrollY),e.lineWidth=(h?4:1)/t.zoom.value;let I=d.length;for(let N=0;N<I;++N)e.strokeStyle=d[N],m&&e.setLineDash([M,_+(M+_)*(I-1)]),e.lineDashOffset=(M+_)*N,Om(e,i-C,a-C,b+C*2,y+C*2,p,f,o);e.restore()},_$=(e,t,r,o)=>{let i=Array.isArray(r)?k$:I$;e.save(),e.translate(t.scrollX,t.scrollY),i(e,r,o),e.restore()},A$=(e,t,r,o)=>{let[i,a,s,c]=Wr(r,o),d=s-i,p=c-a;e.strokeStyle="rgb(0,118,255)",e.lineWidth=In.strokeWidth/t.zoom.value,e.save(),e.translate(t.scrollX,t.scrollY),Om(e,i,a,d,p,i+d/2,a+p/2,r.angle,!1,In.radius/t.zoom.value),e.restore()},M$=(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,m]=mt(c);return{angle:0,elementX1:d,elementX2:f,elementY1:p,elementY2:m,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:d+(f-d)/2,cy:p+(m-p)/2,activeEmbeddable:!1}},s=c=>{let d=Zt(r,c);return a(d)};Object.entries(v3(i,t)).filter(([c,d])=>d).map(([c,d])=>c).map(c=>s(c)).concat(o.map(c=>a([c]))).forEach(c=>u8(e,t,c))},jv=(e,t,r,o)=>{if(!t.selectedLinearElement)return;e.save(),e.translate(t.scrollX,t.scrollY),e.lineWidth=1/t.zoom.value;let i=Fe.getPointsGlobalCoordinates(r,o),{POINT_HANDLE_SIZE:a}=Fe,s=t.editingLinearElement?a:a/2;i.forEach((d,p)=>{let f=!!t.editingLinearElement?.selectedPointsIndices?.includes(p);gg(e,t,d,s,f)}),Fe.getEditorMidPoints(r,o,t).filter(d=>d!==null).forEach(d=>{t?.selectedLinearElement?.segmentMidPointHoveredCoords&&Fe.arePointsEqual(d,t.selectedLinearElement.segmentMidPointHoveredCoords)?t.editingLinearElement?(gg(e,t,d,s,!1),qv(d,e,t)):(qv(d,e,t),gg(e,t,d,s,!1)):(t.editingLinearElement||i.length===2)&&gg(e,t,d,a/2,!1,!0)}),e.restore()},m8=(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"?Dd(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()):Om(e,c,d,p,f,c+p/2,d+f/2,i,!0),e.restore()}})},L$=(e,t,r,o)=>{t.save();let i=Wu*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()},p8=({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]=r5(e,a),m=o5({canvas:e,scale:a,normalizedWidth:p,normalizedHeight:f});m.save(),m.scale(s.zoom.value,s.zoom.value);let h;if(r.forEach(w=>{s.editingLinearElement?.elementId===w.id&&w&&(h=w)}),h&&jv(m,s,h,t),s.selectionElement)try{E5(s.selectionElement,m,s,c.selectionColor)}catch(w){console.error(w)}if(s.editingElement&&ve(s.editingElement)){let w=i.get(s.editingElement.id);w&&!w.autoResize&&L$(w,m,s,c.selectionColor)}s.isBindingEnabled&&s.suggestedBindings.filter(w=>w!=null).forEach(w=>{_$(m,s,w,t)}),s.frameToHighlight&&A$(m,s,s.frameToHighlight,t),s.elementsToHighlight&&M$(m,s,s.elementsToHighlight);let b=o.some(w=>Ve(w));if(o.length===1&&s.editingLinearElement?.elementId===o[0].id&&jv(m,s,o[0],t),s.selectedLinearElement&&s.selectedLinearElement.hoverPointIndex>=0&&C$(m,s,t),!s.multiElement&&!s.editingLinearElement){let w=Up(o,s);o.length===1&&lt(o[0])&&s.selectedLinearElement?.elementId===o[0].id&&!o[0].locked&&jv(m,s,o[0],t);let M=c.selectionColor||Sr.black;if(w){let _=Oe(o),I=[];for(let $ of t.values()){let D=[];_.has($.id)&&!yp(s,$)&&D.push(M);let z=c.remoteSelectedElementIds.get($.id);if(z&&D.push(...z.map(B=>Ol(B,s.collaborators.get(B)))),D.length){let[B,q,V,te,me,K]=Wr($,t,!0);I.push({angle:$.angle,elementX1:B,elementY1:q,elementX2:V,elementY2:te,selectionColors:D,dashed:!!z,cx:me,cy:K,activeEmbeddable:s.activeEmbeddable?.element===$&&s.activeEmbeddable.state==="active"})}}let N=$=>{let D=Zt(t,$),[z,B,q,V]=mt(D);I.push({angle:0,elementX1:z,elementX2:q,elementY1:B,elementY2:V,selectionColors:[Sr.black],dashed:!0,cx:z+(q-z)/2,cy:B+(V-B)/2,activeEmbeddable:!1})};for(let $ of Mn(s))N($);s.editingGroupId&&N(s.editingGroupId),I.forEach($=>u8(m,s,$))}if(m.save(),m.translate(s.scrollX,s.scrollY),o.length===1){m.fillStyle=Sr.white;let _=S5(o[0],s.zoom,t,"mouse",Hp(d));!s.viewModeEnabled&&w&&!ve(s.editingElement)&&m8(m,c,s,_,o[0].angle)}else if(o.length>1&&!s.isRotating){let _=Wu*2/s.zoom.value;m.fillStyle=Sr.white;let[I,N,$,D]=mt(o),z=m.getLineDash();m.setLineDash([2/s.zoom.value]);let B=m.lineWidth;m.lineWidth=1/s.zoom.value,m.strokeStyle=M,Om(m,I-_,N-_,$-I+_*2,D-N+_*2,(I+$)/2,(N+D)/2,0),m.lineWidth=B,m.setLineDash(z);let q=C5([I,N,$,D,(I+$)/2,(N+D)/2],0,s.zoom,"mouse",b?{...Hp(d),rotation:!0}:Hp(d));o.some(V=>!V.locked)&&m8(m,c,s,q,0)}m.restore()}c8(m,s),m.restore(),pT({context:m,renderConfig:c,appState:s,normalizedWidth:p,normalizedHeight:f});let y;return c.renderScrollbars&&(y=uk(r,p,f,s),m.save(),m.fillStyle=mk,m.strokeStyle="rgba(255,255,255,0.8)",[y.horizontal,y.vertical].forEach(w=>{w&&th(m,w.x,w.y,w.width,w.height,li/2)}),m.restore()),{scrollBars:y,atLeastOneVisibleElement:r.length>0,elementsMap:t}},Jv=Qu(e=>{let t=p8(e);e.callback?.(t)},{trailing:!0}),f8=(e,t)=>{if(t){Jv(e);return}let r=p8(e);return e.callback(r),r};var g8=S(P(),1),P$=e=>{let t=(0,$c.useRef)(!1);return(0,$c.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,no({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";f8({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},hg())}),(0,g8.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:e.appState.width,height:e.appState.height,cursor:e.appState.viewModeEnabled?gt.GRAB:gt.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:E("labels.drawingCanvas")})},h8=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}),R$=(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:xr(h8(e.appState),h8(t.appState)),Qv=$c.default.memo(P$,R$);v();var Xl=S(ee(),1);var x8=S(P(),1),D$=e=>{let t=(0,Xl.useRef)(null),r=(0,Xl.useRef)(!1);return(0,Xl.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),i5({canvas:i,rc:e.rc,scale:e.scale,elementsMap:e.elementsMap,allElementsMap:e.allElementsMap,visibleElements:e.visibleElements,appState:e.appState,renderConfig:e.renderConfig},hg())}),(0,x8.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:t})},b8=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}),N$=(e,t)=>e.sceneNonce!==t.sceneNonce||e.scale!==t.scale||e.elementsMap!==t.elementsMap||e.visibleElements!==t.visibleElements?!1:xr(b8(e.appState),b8(t.appState))&&xr(e.renderConfig,t.renderConfig),ey=Xl.default.memo(D$,N$);v();var Fm=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 m=[];for(let h of o.values())Od(h,f,p,{zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d},o)&&m.push(h);return m},r=({elements:o,editingElement:i,pendingImageElementId:a})=>{let s=ip(new Map);for(let c of o)pa(c)&&a===c.id||(!i||i.type!=="text"||c.id!==i.id)&&s.set(c.id,c);return s};return Uw(({zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:p,editingElement:f,pendingImageElementId:m,sceneNonce:h})=>{let b=this.scene.getNonDeletedElements(),y=r({elements:b,editingElement:f,pendingImageElementId:m}),w=t({elementsMap:y,zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:p});return{elementsMap:y,visibleElements:w}})})();destroy(){Jv.cancel(),n5.cancel(),this.getRenderableElements.clear()}};v();var bg=S(ee(),1);var ty=S(P(),1),v8=({trails:e})=>{let t=(0,bg.useRef)(null);return(0,bg.useEffect)(()=>{if(t.current)for(let r of e)r.start(t.current);return()=>{for(let r of e)r.stop()}},e),(0,ty.jsx)("div",{className:"SVGLayer",children:(0,ty.jsx)("svg",{ref:t})})};v();var y8=S(P(),1),O$=5,F$=(e,t,r)=>{let[o,i]=Wr(e,r),{x:a,y:s}=no({sceneX:o+e.width,sceneY:i},t),c=a-t.offsetLeft+10,d=s-t.offsetTop;return{x:c,y:d}},ry=({children:e,element:t,elementsMap:r})=>{let o=Da();if(o.contextMenu||o.draggingElement||o.resizingElement||o.isRotating||o.openMenu||o.viewModeEnabled)return null;let{x:i,y:a}=F$(t,o,r);return(0,y8.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${a}px`,left:`${i}px`,padding:O$},children:e})};v();var z$=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
70
+ C -->|Three| F[Car]`,PP=dl($m,300),Kz=({mermaidToExcalidrawLib:e})=>{let[t,r]=(0,zn.useState)(()=>Io.get(qo.MERMAID_TO_EXCALIDRAW)||Wz),o=(0,zn.useDeferredValue)(t.trim()),[i,a]=(0,zn.useState)(null),s=(0,zn.useRef)(null),c=(0,zn.useRef)({elements:[],files:null}),d=_r();(0,zn.useEffect)(()=>{kh({canvasRef:s,data:c,mermaidToExcalidrawLib:e,setError:a,mermaidDefinition:o}).catch(f=>{s2()&&console.error("Failed to parse mermaid definition",f)}),PP(o)},[o,e]),(0,zn.useEffect)(()=>()=>{PP.flush()},[]);let u=()=>{Ph({app:d,data:c,text:t,shouldSaveMermaidDataToStorage:!0})};return(0,Xr.jsxs)(Xr.Fragment,{children:[(0,Xr.jsx)("div",{className:"ttd-dialog-desc",children:(0,Xr.jsx)(co,{i18nKey:"mermaid.description",flowchartLink:f=>(0,Xr.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:f}),sequenceLink:f=>(0,Xr.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:f}),classLink:f=>(0,Xr.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:f})})}),(0,Xr.jsxs)(Mh,{children:[(0,Xr.jsx)(Yc,{label:E("mermaid.syntax"),children:(0,Xr.jsx)(Lh,{input:t,placeholder:"Write Mermaid diagram defintion here...",onChange:f=>r(f.target.value),onKeyboardSubmit:()=>{u()}})}),(0,Xr.jsx)(Yc,{label:E("mermaid.preview"),panelAction:{action:()=>{u()},label:E("mermaid.button"),icon:Rs},renderSubmitShortcut:()=>(0,Xr.jsx)(Dh,{}),children:(0,Xr.jsx)(Rh,{canvasRef:s,loaded:e.loaded,error:i})})]})]})},MP=Kz;var $n=w(j(),1);v();var LP=w(M(),1),o0=({children:e,...t})=>(0,LP.jsx)(Eh,{className:"ttd-dialog-triggers",...t,children:e});o0.displayName="TTDDialogTabTriggers";v();var n0=w(M(),1),Nh=({children:e,tab:t,onSelect:r,...o})=>(0,n0.jsx)(wh,{value:t,asChild:!0,onSelect:r,children:(0,n0.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...o,children:e})});Nh.displayName="TTDDialogTabTrigger";var Nt=w(M(),1),i0=3,Vc=1e3,Yz=St(null),Vz=St(null),a0=e=>{let t=it();return t.openDialog?.name!=="ttd"?null:(0,Nt.jsx)(Xz,{...e,tab:t.openDialog.tab})},Xz=Ki("TTDDialogBase",({tab:e,...t})=>{let r=_r(),o=ot(),i=(0,$n.useRef)(null),[a,s]=Ve(Vz),[c,d]=(0,$n.useState)(a?.prompt??""),u=c.trim(),f=L=>{d(L.target.value),s(F=>({generatedResponse:F?.generatedResponse??null,prompt:L.target.value}))},[m,g]=(0,$n.useState)(!1),[h,b]=Ve(Yz),y=async()=>{if(u.length>Vc||u.length<i0||m||h?.rateLimitRemaining===0||"__fallback"in t){u.length<i0&&z(new Error(`Prompt is too short (min ${i0} characters)`)),u.length>Vc&&z(new Error(`Prompt is too long (max ${Vc} characters)`));return}try{g(!0),ze("ai","generate","ttd");let{generatedResponse:L,error:F,rateLimit:D,rateLimitRemaining:V}=await t.onTextSubmit(u);if(typeof L=="string"&&s(U=>({generatedResponse:L,prompt:U?.prompt??null})),Nx(D)&&Nx(V)&&b({rateLimit:D,rateLimitRemaining:V}),F){z(F);return}if(!L){z(new Error("Generation failed"));return}try{await kh({canvasRef:i,data:C,mermaidToExcalidrawLib:k,setError:z,mermaidDefinition:L}),ze("ai","mermaid parse success","ttd")}catch(U){console.info(`%cTTD mermaid render errror: ${U.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
71
+ TTD mermaid definition render errror: ${U.message}`,"color: yellow"),ze("ai","mermaid parse failed","ttd"),z(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(L){let F=L.message;(!F||F==="Failed to fetch")&&(F="Request failed"),z(new Error(F))}finally{g(!1)}},T=(0,$n.useRef)(y);T.current=y;let[k,I]=(0,$n.useState)({loaded:!1,api:import("./excalidraw-assets/dist-NLUQPPQQ.js")});(0,$n.useEffect)(()=>{(async()=>{await k.api,I(F=>({...F,loaded:!0}))})()},[k.api]);let C=(0,$n.useRef)({elements:[],files:null}),[O,z]=(0,$n.useState)(null);return(0,Nt.jsx)(zt,{className:"ttd-dialog",onCloseRequest:()=>{r.setOpenDialog(null)},size:1200,title:!1,...t,autofocus:!1,children:(0,Nt.jsxs)(Ah,{dialog:"ttd",tab:e,children:["__fallback"in t&&t.__fallback?(0,Nt.jsx)("p",{className:"dialog-mermaid-title",children:E("mermaid.title")}):(0,Nt.jsxs)(o0,{children:[(0,Nt.jsx)(Nh,{tab:"text-to-diagram",children:(0,Nt.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[E("labels.textToDiagram"),(0,Nt.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,Nt.jsx)(Nh,{tab:"mermaid",children:"Mermaid"})]}),(0,Nt.jsx)(Wc,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Nt.jsx)(MP,{mermaidToExcalidrawLib:k})}),!("__fallback"in t)&&(0,Nt.jsxs)(Wc,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Nt.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,Nt.jsxs)(Mh,{children:[(0,Nt.jsx)(Yc,{label:E("labels.prompt"),panelAction:{action:y,label:"Generate",icon:Rs},onTextSubmitInProgess:m,panelActionDisabled:u.length>Vc||h?.rateLimitRemaining===0,renderTopRight:()=>h?(0,Nt.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,Nt.jsx)(Dh,{}),renderBottomRight:()=>{if(typeof a?.generatedResponse=="string")return(0,Nt.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof a?.generatedResponse=="string"&&($m(a.generatedResponse),o({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Nt.jsx)(mn,{icon:Rs})]});let L=u.length/Vc;return L>.8?(0,Nt.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:L>1?"var(--color-danger)":void 0},children:["Length: ",u.length,"/",Vc]}):null},children:(0,Nt.jsx)(Lh,{onChange:f,input:c,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{T.current()}})}),(0,Nt.jsx)(Yc,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),Ph({app:r,data:C})},label:"Insert",icon:Rs},children:(0,Nt.jsx)(Rh,{canvasRef:i,error:O,loaded:k.loaded})})]})]})]})})});v();var li=w(j(),1);var eM=w(RP(),1);v();v();var ai=w(j(),1);v();var DP=.01,_o=(e,t)=>!(t==="height"&&he(e)||t==="width"&&he(e)||t==="angle"&&He(e)),Vt=(e,t)=>{let r=e+t/2;return r-r%t},Zc=(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),Zz=(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)}),qc=(e,t,r,o,i,a,s,c=!0)=>{let d=i.get(o.id);if(!d)return;let u={},f=je(d,i);if(f){let h=xf(ro(f),f.lineHeight),b=hf(f.fontSize,f.lineHeight);e=Math.max(e,h),t=Math.max(t,b)}let{width:m,height:g}=d;if(ce(d,{...Zz(d.x,d.y,d.width,d.height,e,t,d.angle),width:e,height:t,...wf(o,e,t,!0)},c),Wm(d,i,a,s,{newSize:{width:e,height:t}}),f&&(u={fontSize:f.fontSize},r)){let h={...d,width:e,height:t};u={fontSize:CI(f,i,qd(h,f))?.size??f.fontSize}}ya(d,i,s,{oldSize:{width:m,height:g}}),f&&u&&ce(f,{fontSize:u.fontSize}),ff(d,i,"e",r)},ts=(e,t,r,o,i,a,s,c=!0)=>{let d=o.get(r.id);if(!d)return;let[u,f]=[r.x+r.width/2,r.y+r.height/2],[m,g]=Pn(r.x,r.y,u,f,r.angle),h=e-m,b=t-g,[y,T]=Pn(e,t,u+h,f+b,-r.angle);ce(d,{x:y,y:T},c),Wm(d,o,i,a);let k=je(r,s);if(k){let I=o.get(k.id);I&&ce(I,{x:k.x+h,y:k.y+b},c)}},jc=(e,t)=>{let o=_n(t).map(i=>Kt(e,i).reduce((a,s)=>(a[s.id]=!0,a),{}));return e.filter(i=>!ga(i)).forEach(i=>{o.push({[i.id]:!0})}),o},Wm=(e,t,r,o,i)=>{Qe(e)?wl([e],t,r,o,!0,[]):ya(e,t,o,i)};var Jc=w(M(),1),qz=({label:e,icon:t,dragInputCallback:r,value:o,elements:i,editable:a=!0,shouldKeepAspectRatio:s,property:c,scene:d,appState:u})=>{let f=_r(),m=(0,ai.useRef)(null),g=(0,ai.useRef)(null),[h,b]=(0,ai.useState)(o.toString()),y=(0,ai.useRef)(null);y.current||(y.current={originalAppState:vo(u),originalElements:i,lastUpdatedValue:h,updatePending:!1}),(0,ai.useEffect)(()=>{let I=o.toString();b(I),y.current.lastUpdatedValue=I},[o]);let T=(I,C,O)=>{if(!y.current.updatePending)return!1;y.current.updatePending=!1;let z=Number(I);if(isNaN(z)){b(o.toString());return}let L=Number(z.toFixed(2)),F=Number(o);(isNaN(F)||Math.abs(L-F)>=DP)&&(y.current.lastUpdatedValue=I,r({accumulatedChange:0,instantChange:0,originalElements:C,originalElementsMap:f.scene.getNonDeletedElementsMap(),shouldKeepAspectRatio:s,shouldChangeByStepSize:!1,scene:d,nextValue:L,property:c,originalAppState:O}),f.syncActionResult({storeAction:W.CAPTURE}))},k=(0,ai.useRef)(T);return k.current=T,(0,ai.useEffect)(()=>{let I=m.current;return()=>{let C=I?.value;C&&k.current(C,y.current.originalElements,y.current.originalAppState)}},[a]),a?(0,Jc.jsxs)("div",{className:q("drag-input-container",!a&&"disabled"),"data-testid":e,children:[(0,Jc.jsx)("div",{className:"drag-input-label",ref:g,onPointerDown:I=>{if(m.current&&a){let C=Number(m.current.value);isNaN(C)&&(C=0);let O=null,z=f.scene.getNonDeletedElements().reduce((U,Q)=>(U.set(Q.id,Fs(Q)),U),new Map),L=i.map(U=>z.get(U.id)),F=vo(u),D=null;document.body.classList.add("excalidraw-cursor-resize");let V=U=>{if(D||(D=0),O&&z!==null&&L!==null&&D!==null){let Q=U.clientX-O.x;D+=Q,r({accumulatedChange:D,instantChange:Q,originalElements:L,originalElementsMap:z,shouldKeepAspectRatio:s,shouldChangeByStepSize:U.shiftKey,property:c,scene:d,originalAppState:F})}O={x:U.clientX,y:U.clientY}};window.addEventListener("pointermove",V,!1),window.addEventListener("pointerup",()=>{window.removeEventListener("pointermove",V,!1),f.syncActionResult({storeAction:W.CAPTURE}),O=null,D=null,L=null,z=null,document.body.classList.remove("excalidraw-cursor-resize")},!1)}},onPointerEnter:()=>{g.current&&(g.current.style.cursor="ew-resize")},children:t?(0,Jc.jsx)(mn,{icon:t}):e}),(0,Jc.jsx)("input",{className:"drag-input",autoComplete:"off",spellCheck:"false",onKeyDown:I=>{if(a){let C=I.target;C instanceof HTMLInputElement&&I.key===R.ENTER&&(T(C.value,i,u),f.focusContainer())}},ref:m,value:h,onChange:I=>{y.current.updatePending=!0,b(I.target.value)},onFocus:I=>{I.target.select(),y.current.originalElements=i,y.current.originalAppState=vo(u)},onBlur:I=>{h?a&&T(I.target.value,y.current.originalElements,y.current.originalAppState):b(o.toString())},disabled:!a})]}):null},Zr=qz;var OP=w(M(),1),NP=10,jz=e=>e.type==="image",Jz=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldKeepAspectRatio:o,shouldChangeByStepSize:i,nextValue:a,property:s,scene:c})=>{let d=c.getNonDeletedElementsMap(),u=c.getNonDeletedElements(),f=t[0];if(f){let m=o||jz(f),g=f.width/f.height;if(a!==void 0){let k=Math.max(s==="width"?a:m?a*g:f.width,xo),I=Math.max(s==="height"?a:m?a/g:f.height,xo);qc(k,I,m,f,d,u,c);return}let h=s==="width"?e:0,b=s==="height"?e:0,y=Math.max(0,f.width+h);s==="width"&&(i?y=Vt(y,NP):y=Math.round(y));let T=Math.max(0,f.height+b);s==="height"&&(i?T=Vt(T,NP):T=Math.round(T)),m&&(s==="width"?T=Math.round(y/g*100)/100:y=Math.round(T*g*100)/100),T=Math.max(xo,T),y=Math.max(xo,y),qc(y,T,m,f,d,u,c)}},Qz=({property:e,element:t,scene:r,appState:o})=>{let i=Math.round((e==="width"?t.width:t.height)*100)/100;return(0,OP.jsx)(Zr,{label:e==="width"?"W":"H",elements:[t],dragInputCallback:Jz,value:i,editable:_o(t,e),scene:r,appState:o,property:e})},l0=Qz;v();var BP=w(M(),1),e$=15,t$=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=i.getNonDeletedElements(),c=t[0];if(c&&!dt(c)){let d=a.get(c.id);if(!d)return;if(o!==void 0){let b=Xs(o);ce(d,{angle:b}),Wm(d,a,s,i);let y=je(d,a);y&&!_t(d)&&ce(y,{angle:b});return}let u=Math.round(Vs(c.angle)*100)/100,f=Math.round(e),m=(u+f)%360;r&&(m=Vt(m,e$)),m=m<0?m+360:m;let g=Xs(m);ce(d,{angle:g}),Wm(d,a,s,i);let h=je(d,a);h&&!_t(d)&&ce(h,{angle:g})}},r$=({element:e,scene:t,appState:r,property:o})=>(0,BP.jsx)(Zr,{label:"A",icon:_p,value:Math.round(Vs(e.angle)%360*100)/100,elements:[e],dragInputCallback:t$,editable:_o(e,"angle"),scene:t,appState:r,property:o}),FP=r$;v();var HP=w(M(),1),zP=4,o$=4,n$=({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||!he(c))return;let d;if(o!==void 0)d=Math.max(Math.round(o),zP);else if(s.type==="text"){let u=Math.round(s.fontSize),f=Math.round(e);d=Math.max(u+f,zP),r&&(d=Vt(d,o$))}d&&(ce(c,{fontSize:d}),qt(c,i.getContainerElement(c),i.getNonDeletedElementsMap()))}},i$=({element:e,scene:t,appState:r,property:o})=>{let i=he(e)?e:yo(e)?je(e,t.getNonDeletedElementsMap()):null;return i?(0,HP.jsx)(Zr,{label:"F",value:Math.round(i.fontSize*10)/10,elements:[i],dragInputCallback:n$,icon:xl,appState:r,scene:t,property:o}):null},$P=i$;v();var GP=w(j(),1);var WP=w(M(),1),Qc=10,a$=(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,u=t+a*r;return{width:s,height:c,x:d,y:u,...wf(o,s,c,!1),...he(o)?{fontSize:o.fontSize*r}:{}}},l$=(e,t,r,o,i,a,s,c,d)=>{let u=a$(e,t,o,a),{width:f,height:m}=i;ce(i,u,!1);let g=je(a,c);if(g){let h=g.fontSize*o;ya(i,s,d,{oldSize:{width:f,height:m}});let b=s.get(g.id);b&&he(b)&&(ce(b,{fontSize:h},!1),ff(i,s,r==="width"?"e":"s",!0))}},UP=(e,t,r,o,i,a,s,c,d,u,f)=>{a==="width"?t=Math.round(e/o*100)/100:e=Math.round(t*o*100)/100;let m=t/r;for(let g=0;g<c.length;g++){let h=c[g],b=s[g];l$(i[0],i[1],a,m,b,h,d,u,f)}},s$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,originalAppState:o,shouldChangeByStepSize:i,nextValue:a,scene:s,property:c})=>{let d=s.getNonDeletedElementsMap(),u=s.getNonDeletedElements(),f=jc(t,o);if(a!==void 0){for(let h of f){let b=Zc(h,d,r);if(b.length>1){let y=b.map(U=>U.latest),T=b.map(U=>U.original),[k,I,C,O]=lt(T),z=C-k,L=O-I,F=z/L,D=Math.max(xo,c==="width"?Math.max(0,a):z),V=Math.max(xo,c==="height"?Math.max(0,a):L);UP(D,V,L,F,[k,I],c,y,T,d,r,s)}else{let[y]=b,T=y?.latest,k=y?.original;if(T&&k&&_o(T,c)){let I=c==="width"?Math.max(0,a):T.width;c==="width"&&(i?I=Vt(I,Qc):I=Math.round(I));let C=c==="height"?Math.max(0,a):T.height;c==="height"&&(i?C=Vt(C,Qc):C=Math.round(C)),I=Math.max(xo,I),C=Math.max(xo,C),qc(I,C,!1,k,d,u,s,!1)}}}s.triggerUpdate();return}let m=c==="width"?e:0,g=c==="height"?e:0;for(let h of f){let b=Zc(h,d,r);if(b.length>1){let y=b.map(U=>U.latest),T=b.map(U=>U.original),[k,I,C,O]=lt(T),z=C-k,L=O-I,F=z/L,D=Math.max(0,z+m);c==="width"&&(i?D=Vt(D,Qc):D=Math.round(D));let V=Math.max(0,L+g);c==="height"&&(i?V=Vt(V,Qc):V=Math.round(V)),D=Math.max(xo,D),V=Math.max(xo,V),UP(D,V,L,F,[k,I],c,y,T,d,r,s)}else{let[y]=b,T=y?.latest,k=y?.original;if(T&&k&&_o(T,c)){let I=Math.max(0,k.width+m);c==="width"&&(i?I=Vt(I,Qc):I=Math.round(I));let C=Math.max(0,k.height+g);c==="height"&&(i?C=Vt(C,Qc):C=Math.round(C)),I=Math.max(xo,I),C=Math.max(xo,C),qc(I,C,!1,k,d,u,s)}}}s.triggerUpdate()},c$=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,GP.useMemo)(()=>o.map(u=>{let f=Zc(u,r);if(f.length>1){let[g,h,b,y]=lt(f.map(T=>T.latest));return Math.round((e==="width"?b-g:y-h)*100)/100}let[m]=f;return Math.round((e==="width"?m.latest.width:m.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,WP.jsx)(Zr,{label:e==="width"?"W":"H",elements:t,dragInputCallback:s$,value:c,editable:d,appState:a,property:e,scene:i})},s0=c$;v();var YP=w(M(),1),d$=15,m$=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,property:i,scene:a})=>{let s=a.getNonDeletedElementsMap(),c=t.map(u=>s.get(u.id)).filter(u=>u&&!ga(u)&&_o(u,i)),d=t.filter(u=>!ga(u)&&_o(u,i));if(o!==void 0){let u=Xs(o);for(let f of c){if(!f)continue;ce(f,{angle:u},!1);let m=je(f,s);m&&!_t(f)&&ce(m,{angle:u},!1)}a.triggerUpdate();return}for(let u=0;u<c.length;u++){let f=c[u];if(!f)continue;let m=d[u],g=Math.round(Vs(m.angle)*100)/100,h=Math.round(e),b=(g+h)%360;r&&(b=Vt(b,d$)),b=b<0?b+360:b;let y=Xs(b);ce(f,{angle:y},!1);let T=je(f,s);T&&!_t(f)&&ce(T,{angle:y},!1)}a.triggerUpdate()},u$=({elements:e,scene:t,appState:r,property:o})=>{let i=e.filter(d=>!ga(d)&&_o(d,"angle")),a=i.map(d=>Math.round(Vs(d.angle)%360*100)/100),s=new Set(a).size===1?a[0]:"Mixed",c=i.some(d=>_o(d,"angle"));return(0,YP.jsx)(Zr,{label:"A",icon:_p,value:s,elements:e,dragInputCallback:m$,editable:c,appState:r,scene:t,property:o})},KP=u$;v();var ZP=w(M(),1),VP=4,p$=4,f$=(e,t)=>e.reduce((r,o)=>{if(!o||ga(o))return r;if(he(o))return r.push(o),r;if(yo(o)){let i=je(o,t);if(i)return r.push(i),r}return r},[]),g$=({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),VP);for(let d of s)ce(d,{fontSize:c},!1),qt(d,i.getContainerElement(d),a,!1);i.triggerUpdate()}else{let d=t;for(let u=0;u<s.length;u++){let f=s[u],m=d[u],g=Math.round(m.fontSize),h=Math.round(e),b=Math.max(g+h,VP);r&&(b=Vt(b,p$)),ce(f,{fontSize:b},!1),qt(f,i.getContainerElement(f),a,!1)}i.triggerUpdate()}},h$=({elements:e,scene:t,appState:r,property:o,elementsMap:i})=>{let a=f$(e,i);if(!a.length)return null;let s=a.map(u=>Math.round(u.fontSize*10)/10),c=new Set(s).size===1?s[0]:"Mixed",d=s.length>0;return(0,ZP.jsx)(Zr,{label:"F",icon:xl,elements:a,dragInputCallback:g$,value:c,editable:d,scene:t,property:o,appState:r})},XP=h$;v();var jP=w(M(),1),qP=10,b$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s})=>{let c=s.getNonDeletedElementsMap(),d=s.getNonDeletedElements(),u=t[0],[f,m]=[u.x+u.width/2,u.y+u.height/2],[g,h]=Pn(u.x,u.y,f,m,u.angle);if(i!==void 0){ts(a==="x"?i:g,a==="y"?i:h,u,c,d,s,r);return}let b=a==="x"?e:0,y=a==="y"?e:0,T=a==="x"?Math.round(o?Vt(u.x+b,qP):g+b):g,k=a==="y"?Math.round(o?Vt(u.y+y,qP):h+y):h;ts(T,k,u,c,d,s,r)},x$=({property:e,element:t,elementsMap:r,scene:o,appState:i})=>{let[a,s]=Pn(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,jP.jsx)(Zr,{label:e==="x"?"X":"Y",elements:[t],dragInputCallback:b$,scene:o,value:c,property:e,appState:i})},c0=x$;v();var JP=w(j(),1);var QP=w(M(),1),v$=10,y$=(e,t,r,o,i,a,s,c)=>{for(let d=0;d<o.length;d++){let u=i[d],[f,m]=[u.x+u.width/2,u.y+u.height/2],[g,h]=Pn(u.x,u.y,f,m,u.angle),b=e==="x"?Math.round(g+t):g,y=e==="y"?Math.round(h+r):h;ts(b,y,u,a,o,c,s,!1)}},E$=(e,t,r,o,i,a,s)=>{let[c,d,,]=lt(r),u=e-c,f=t-d;for(let m=0;m<r.length;m++){let g=r[m],h=o.get(g.id);if(h&&(!he(h)||!h.containerId)){let[b,y]=[h.x+h.width/2,h.y+h.height/2],[T,k]=Pn(h.x,h.y,b,y,h.angle);ts(T+u,k+f,g,o,i,s,a,!1)}}},w$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s,originalAppState:c})=>{let d=s.getNonDeletedElementsMap(),u=s.getNonDeletedElements();if(i!==void 0){for(let h of jc(t,c)){let b=Zc(h,d,r);if(b.length>1){let[y,T,,]=lt(b.map(C=>C.latest));E$(a==="x"?i:y,a==="y"?i:T,b.map(C=>C.original),d,u,r,s)}else{let y=b[0]?.original,T=b[0]?.latest;if(y&&T&&_o(T,a)){let[k,I]=[y.x+y.width/2,y.y+y.height/2],[C,O]=Pn(y.x,y.y,k,I,y.angle);ts(a==="x"?i:C,a==="y"?i:O,y,d,u,s,r,!1)}}}s.triggerUpdate();return}let f=o?Vt(e,v$):e;y$(a,a==="x"?f:0,a==="y"?f:0,t,t,d,r,s),s.triggerUpdate()},S$=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,JP.useMemo)(()=>o.map(d=>{let u=Object.keys(d).map(y=>r.get(y)).filter(y=>y!==void 0);if(u.length>1){let[y,T]=lt(u);return Math.round((e==="x"?y:T)*100)/100}let[f]=u,[m,g]=[f.x+f.width/2,f.y+f.height/2],[h,b]=Pn(f.x,f.y,m,g,f.angle);return Math.round((e==="x"?h:b)*100)/100}),[o,r,e]),c=new Set(s).size===1?s[0]:"Mixed";return(0,QP.jsx)(Zr,{label:e==="x"?"X":"Y",elements:t,dragInputCallback:w$,value:c,property:e,scene:i,appState:a})},d0=S$;v();var Xi=w(M(),1),T$=({label:e,open:t,openTrigger:r,children:o})=>(0,Xi.jsxs)(Xi.Fragment,{children:[(0,Xi.jsxs)("div",{style:{cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center"},onClick:r,children:[e,(0,Xi.jsx)(mn,{icon:t?sC:lC})]}),t&&(0,Xi.jsx)(Xi.Fragment,{children:o})]}),m0=T$;var De=w(M(),1),C$=50,tM=e=>{let t=Qn(),r=e.scene.getSceneNonce()||1,o=e.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return(0,De.jsx)(I$,{...e,appState:t,sceneNonce:r,selectedElements:o})},I$=(0,li.memo)(({scene:e,onClose:t,renderCustomStats:r,selectedElements:o,appState:i,sceneNonce:a})=>{let s=e.getNonDeletedElements(),c=e.getNonDeletedElementsMap(),d=ot(),u=o.length===1?o[0]:null,f=o.length>1?o:null,[m,g]=(0,li.useState)({width:0,height:0}),h=(0,li.useMemo)(()=>(0,eM.throttle)(y=>{let T=lt(y);g({width:Math.round(T[2])-Math.round(T[0]),height:Math.round(T[3])-Math.round(T[1])})},C$),[]);(0,li.useEffect)(()=>{h(s)},[a,s,h]),(0,li.useEffect)(()=>()=>h.cancel(),[h]);let b=(0,li.useMemo)(()=>jc(o,i),[o,i]);return(0,De.jsx)("div",{className:"Stats",children:(0,De.jsxs)(xr,{padding:3,children:[(0,De.jsxs)("div",{className:"title",children:[(0,De.jsx)("h2",{children:E("stats.title")}),(0,De.jsx)("div",{className:"close",onClick:t,children:Qo})]}),(0,De.jsx)(m0,{label:(0,De.jsx)("h3",{children:E("stats.generalStats")}),open:!!(i.stats.panels&Id.generalStats),openTrigger:()=>d(y=>({...y,stats:{open:!0,panels:y.stats.panels^Id.generalStats}})),children:(0,De.jsx)("table",{children:(0,De.jsxs)("tbody",{children:[(0,De.jsx)("tr",{children:(0,De.jsx)("th",{colSpan:2,children:E("stats.scene")})}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:E("stats.elements")}),(0,De.jsx)("td",{children:s.length})]}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:E("stats.width")}),(0,De.jsx)("td",{children:m.width})]}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:E("stats.height")}),(0,De.jsx)("td",{children:m.height})]}),r?.(s,i)]})})}),o.length>0&&(0,De.jsx)("div",{id:"elementStats",style:{marginTop:12},children:(0,De.jsxs)(m0,{label:(0,De.jsx)("h3",{children:E("stats.elementProperties")}),open:!!(i.stats.panels&Id.elementProperties),openTrigger:()=>d(y=>({...y,stats:{open:!0,panels:y.stats.panels^Id.elementProperties}})),children:[u&&(0,De.jsxs)("div",{className:"sectionContent",children:[(0,De.jsx)("div",{className:"elementType",children:E(`element.${u.type}`)}),(0,De.jsxs)("div",{className:"statsItem",children:[(0,De.jsx)(c0,{element:u,property:"x",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(c0,{element:u,property:"y",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(l0,{property:"width",element:u,scene:e,appState:i}),(0,De.jsx)(l0,{property:"height",element:u,scene:e,appState:i}),!dt(u)&&(0,De.jsx)(FP,{property:"angle",element:u,scene:e,appState:i}),(0,De.jsx)($P,{property:"fontSize",element:u,scene:e,appState:i})]})]}),f&&(0,De.jsxs)("div",{className:"sectionContent",children:[_2(f)&&(0,De.jsx)("div",{className:"elementType",children:E("element.group")}),(0,De.jsxs)("div",{className:"elementsCount",children:[(0,De.jsx)("div",{children:E("stats.elements")}),(0,De.jsx)("div",{children:o.length})]}),(0,De.jsxs)("div",{className:"statsItem",children:[(0,De.jsx)(d0,{property:"x",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(d0,{property:"y",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(s0,{property:"width",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(s0,{property:"height",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(KP,{property:"angle",elements:f,scene:e,appState:i}),(0,De.jsx)(XP,{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 ge=w(M(),1),_$=({UIOptions:e})=>(0,ge.jsxs)(uo,{__fallback:!0,children:[(0,ge.jsx)(uo.DefaultItems.LoadScene,{}),(0,ge.jsx)(uo.DefaultItems.SaveToActiveFile,{}),e.canvasActions.export&&(0,ge.jsx)(uo.DefaultItems.Export,{}),e.canvasActions.saveAsImage&&(0,ge.jsx)(uo.DefaultItems.SaveAsImage,{}),(0,ge.jsx)(uo.DefaultItems.Help,{}),(0,ge.jsx)(uo.DefaultItems.ClearCanvas,{}),(0,ge.jsx)(uo.Separator,{}),(0,ge.jsx)(uo.Group,{title:"Excalidraw links",children:(0,ge.jsx)(uo.DefaultItems.Socials,{})}),(0,ge.jsx)(uo.Separator,{}),(0,ge.jsx)(uo.DefaultItems.ToggleTheme,{}),(0,ge.jsx)(uo.DefaultItems.ChangeCanvasBackground,{})]}),A$=()=>(0,ge.jsxs)(Ih,{__fallback:!0,children:[(0,ge.jsx)(Ih.Actions.SaveToDisk,{}),(0,ge.jsx)(Ih.Actions.ExportToImage,{})]}),k$=({actionManager:e,appState:t,files:r,setAppState:o,elements:i,canvas:a,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,showExitZenModeBtn:u,renderTopRightUI:f,renderCustomStats:m,UIOptions:g,onExportImage:h,renderWelcomeScreen:b,children:y,app:T,isCollaborating:k,openAIKey:I,isOpenAIKeyPersisted:C,onOpenAIAPIKeyChange:O,onMagicSettingsConfirm:z})=>{let L=rt(),F=n3(),[D,V]=Ve(Ma,mt),U=()=>g.canvasActions.export?(0,ge.jsx)(F3,{elements:i,appState:t,files:r,actionManager:e,exportOpts:g.canvasActions.export,canvas:a,setAppState:o}):null,Q=()=>!g.canvasActions.saveAsImage||t.openDialog?.name!=="imageExport"?null:(0,ge.jsx)(T3,{elements:i,appState:t,files:r,actionManager:e,onExportImage:h,onCloseRequest:()=>o({openDialog:null}),name:T.getName()}),me=()=>(0,ge.jsxs)("div",{style:{position:"relative"},children:[(0,ge.jsx)(F.MainMenuTunnel.Out,{}),b&&(0,ge.jsx)(F.WelcomeScreenMenuHintTunnel.Out,{})]}),K=()=>(0,ge.jsx)(za,{heading:"selectedShapeActions",className:q("selected-shape-actions zen-mode-transition",{"transition-left":t.zenModeEnabled}),children:(0,ge.jsx)(xr,{className:Qu.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${t.height-166}px`},children:(0,ge.jsx)(oh,{appState:t,elementsMap:T.scene.getNonDeletedElementsMap(),renderAction:e.renderAction})})}),se=()=>{let Ee=qs(t,i),ue=t.stats.open&&!t.zenModeEnabled&&!t.viewModeEnabled;return(0,ge.jsx)(uh,{side:"top",children:(0,ge.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,ge.jsxs)(Ar.Col,{gap:6,className:q("App-menu_top__left"),children:[me(),Ee&&K()]}),!t.viewModeEnabled&&(0,ge.jsx)(za,{heading:"shapes",className:"shapes-section",children:G=>(0,ge.jsxs)("div",{style:{position:"relative"},children:[b&&(0,ge.jsx)(F.WelcomeScreenToolbarHintTunnel.Out,{}),(0,ge.jsx)(Ar.Col,{gap:4,align:"start",children:(0,ge.jsxs)(Ar.Row,{gap:1,className:q("App-toolbar-container",{"zen-mode":t.zenModeEnabled}),children:[(0,ge.jsxs)(xr,{padding:1,className:q("App-toolbar",{"zen-mode":t.zenModeEnabled}),children:[(0,ge.jsx)(ph,{appState:t,isMobile:L.editor.isMobile,device:L,app:T}),G,(0,ge.jsxs)(Ar.Row,{gap:1,children:[(0,ge.jsx)(gh,{zenModeEnabled:t.zenModeEnabled,checked:t.penMode,onChange:()=>d(null),title:E("toolBar.penMode"),penDetected:t.penDetected}),(0,ge.jsx)(fh,{checked:t.activeTool.locked,onChange:s,title:E("toolBar.lock")}),(0,ge.jsx)("div",{className:"App-toolbar__divider"}),(0,ge.jsx)(hh,{checked:Si(t),onChange:()=>c(),title:E("toolBar.hand"),isMobile:!0}),(0,ge.jsx)(nh,{appState:t,activeTool:t.activeTool,UIOptions:g,app:T})]})]}),k&&(0,ge.jsx)(xr,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,ge.jsx)(wP,{title:E("toolBar.laser"),checked:t.activeTool.type===Zt.laser,onChange:()=>T.setActiveTool({type:Zt.laser}),isMobile:!0})})]})})]})}),(0,ge.jsxs)("div",{className:q("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:[t.collaborators.size>0&&(0,ge.jsx)(bh,{collaborators:t.collaborators,userToFollow:t.userToFollow?.socketId||null}),f?.(L.editor.isMobile,t),!t.viewModeEnabled&&(!_e||t.openSidebar?.name!==In.name)&&(0,ge.jsx)(F.DefaultSidebarTriggerTunnel.Out,{}),ue&&(0,ge.jsx)(tM,{scene:T.scene,onClose:()=>{e.executeAction(Mc)},renderCustomStats:m})]})]})})},be=()=>(0,ge.jsx)(_h,{__fallback:!0,onDock:Ee=>{ze("sidebar",`toggleDock (${Ee?"dock":"undock"})`,`(${L.editor.isMobile?"mobile":"desktop"})`)}}),_e=tm(Bm,mt),nt=(0,ge.jsxs)(ge.Fragment,{children:[y,(0,ge.jsx)(_$,{UIOptions:g}),(0,ge.jsx)(_h.Trigger,{__fallback:!0,icon:yp,title:da(E("toolBar.library")),onToggle:Ee=>{Ee&&ze("sidebar",`${In.name} (open)`,`button (${L.editor.isMobile?"mobile":"desktop"})`)},tab:In.defaultTab,children:E("toolBar.library")}),(0,ge.jsx)(A$,{}),t.openDialog?.name==="ttd"&&(0,ge.jsx)(a0,{__fallback:!0}),t.isLoading&&(0,ge.jsx)(Nf,{delay:250}),t.errorMessage&&(0,ge.jsx)(S3,{onClose:()=>o({errorMessage:null}),children:t.errorMessage}),D&&!L.editor.isMobile&&(0,ge.jsx)(jA,{colorPickerType:D.colorPickerType,onCancel:()=>{V(null)},onChange:(Ee,ue,G,{altKey:Y})=>{if(!(Ee!=="elementBackground"&&Ee!=="elementStroke"))if(G.length){for(let oe of G)ce(oe,{[Y&&D.swapPreviewOnAlt?Ee==="elementBackground"?"strokeColor":"backgroundColor":Ee==="elementBackground"?"backgroundColor":"strokeColor"]:ue},!1),ha.delete(oe);rn.getScene(G[0])?.triggerUpdate()}else o(Ee==="elementBackground"?{currentItemBackgroundColor:ue}:{currentItemStrokeColor:ue})},onSelect:(Ee,ue)=>{V(G=>G?.keepOpenOnAlt&&ue.altKey?G:null),D?.onSelect?.(Ee,ue)}}),t.openDialog?.name==="help"&&(0,ge.jsx)(D3,{onClose:()=>{o({openDialog:null})}}),t.openDialog?.name==="settings"&&(0,ge.jsx)(_P,{openAIKey:I,isPersisted:C,onChange:O,onConfirm:(Ee,ue)=>{let G=t.openDialog?.name==="settings"?t.openDialog?.source:"settings";o({openDialog:null},()=>{z(Ee,ue,G)})},onClose:()=>{o({openDialog:null})}}),(0,ge.jsx)(m3,{}),(0,ge.jsx)(F.OverwriteConfirmDialogTunnel.Out,{}),Q(),U(),t.pasteDialog.shown&&(0,ge.jsx)(L3,{setAppState:o,appState:t,onClose:()=>o({pasteDialog:{shown:!1,data:null}})}),L.editor.isMobile&&(0,ge.jsx)(P3,{app:T,appState:t,elements:i,actionManager:e,renderJSONExportDialog:U,renderImageExportDialog:Q,setAppState:o,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,renderTopRightUI:f,renderCustomStats:m,renderSidebars:be,device:L,renderWelcomeScreen:b,UIOptions:g}),!L.editor.isMobile&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsxs)("div",{className:"layer-ui__wrapper",style:t.openSidebar&&_e&&L.editor.canFitSidebar?{width:`calc(100% - ${YS}px)`}:{},children:[b&&(0,ge.jsx)(F.WelcomeScreenCenterTunnel.Out,{}),se(),(0,ge.jsx)(H3,{appState:t,actionManager:e,showExitZenModeBtn:u,renderWelcomeScreen:b}),t.scrolledOutside&&(0,ge.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(Ee=>({...Al(i,Ee)}))},children:E("buttons.scrollBackToContent")})]}),be()]})]});return(0,ge.jsx)(Py.Provider,{value:t,children:(0,ge.jsx)(kf,{scope:F.jotaiScope,children:(0,ge.jsx)(EE.Provider,{value:F,children:nt})})})},rM=e=>{let{suggestedBindings:t,startBoundElement:r,cursorButton:o,scrollX:i,scrollY:a,...s}=e;return s},P$=(e,t)=>{if(e.children!==t.children)return!1;let{canvas:r,appState:o,...i}=e,{canvas:a,appState:s,...c}=t;return br(rM(o),rM(s),{selectedElementIds:br,selectedGroupIds:br})&&br(i,c)},nM=oM.default.memo(k$,P$);v();var ed=w(j(),1);var Km=w(M(),1),M$=5e3,iM=({message:e,onClose:t,closable:r=!1,duration:o=M$,style:i})=>{let a=(0,ed.useRef)(0),s=o!==1/0,c=(0,ed.useCallback)(()=>{s&&(a.current=window.setTimeout(()=>t(),o))},[t,o,s]);return(0,ed.useEffect)(()=>{if(s)return c(),()=>clearTimeout(a.current)},[c,e,o,s]),(0,Km.jsxs)("div",{className:"Toast",onMouseEnter:s?()=>clearTimeout(a?.current):void 0,onMouseLeave:s?c:void 0,style:i,children:[(0,Km.jsx)("p",{className:"Toast__message",children:e}),r&&(0,Km.jsx)(Ie,{icon:Qo,"aria-label":"close",type:"icon",onClick:t,className:"close"})]})};v();var u0=re({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:Ns,viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.viewModeEnabled},perform(e,t){return{appState:{...t,viewModeEnabled:!this.checked(t)},storeAction:W.NONE}},checked:e=>e.viewModeEnabled,predicate:(e,t,r)=>typeof r.viewModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.R});var VM=w(bE(),1);v();var aM=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length===1&&He(r[0])},lM=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=Ea(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:W.CAPTURE}}return{elements:e,appState:t,storeAction:W.NONE}},predicate:(e,t,r,o)=>aM(t,o)}),sM=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:rI(e,i),appState:{...t,selectedElementIds:{[i.id]:!0}},storeAction:W.CAPTURE}:{elements:e,appState:t,storeAction:W.NONE}},predicate:(e,t,r,o)=>aM(t,o)}),lwe=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:W.NONE}),checked:e=>e.frameRendering.enabled}),swe=re({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:Pp,viewMode:!1,perform:(e,t,r,o)=>{let i=Gt(t,{type:"frame"});return An(o.interactiveCanvas,{...t,activeTool:i}),{elements:e,appState:{...t,activeTool:Gt(t,{type:"frame"})},storeAction:W.NONE}},keyTest:e=>!e[R.CTRL_OR_CMD]&&!e.shiftKey&&!e.altKey&&e.key.toLocaleLowerCase()===R.F});v();var L$=8,cM=99999,Oh=e=>L$/e,gn=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}},Zi=({event:e,appState:t,selectedElements:r})=>e?t.objectsSnapModeEnabled&&!e[R.CTRL_OR_CMD]||!t.objectsSnapModeEnabled&&e[R.CTRL_OR_CMD]&&t.gridSize===null:r.length===1&&r[0].type==="arrow"?!1:t.objectsSnapModeEnabled,R$=(e,t,r=.01)=>Math.abs(e-t)<=r,Ym=(e,t,{omitCenter:r,boundingBoxCorners:o,dragOffset:i}={omitCenter:!1,boundingBoxCorners:!1})=>{let a=[];if(e.length===1){let s=e[0],[c,d,u,f,m,g]=Eo(s,t);i&&(c+=i.x,u+=i.x,m+=i.x,d+=i.y,f+=i.y,g+=i.y);let h=(u-c)/2,b=(f-d)/2;if((s.type==="diamond"||s.type==="ellipse")&&!o){let y=_i([c,d+b],[m,g],s.angle),T=_i([c+h,d],[m,g],s.angle),k=_i([u,d+b],[m,g],s.angle),I=_i([c+h,f],[m,g],s.angle);a=r?[y,T,k,I]:[y,T,k,I,[m,g]]}else{let y=_i([c,d],[m,g],s.angle),T=_i([u,d],[m,g],s.angle),k=_i([c,f],[m,g],s.angle),I=_i([u,f],[m,g],s.angle);a=r?[y,T,k,I]:[y,T,k,I,[m,g]]}}else if(e.length>1){let[s,c,d,u]=mf(e,i??{x:0,y:0}),f=d-s,m=u-c,g=[s,c],h=[d,c],b=[s,u],y=[d,u],T=[s+f/2,c+m/2];a=r?[g,h,b,y]:[g,h,b,y,T]}return a.map(s=>[Ht(s[0]),Ht(s[1])])},uM=(e,t,r,o)=>{let i=t.filter(a=>He(a)).map(a=>a.id);return Dv(e,t,r,o).filter(a=>!(a.frameId&&i.includes(a.frameId)))},pM=(e,t,r,o)=>{let i=uM(e,t,r,o),a=gl(i,o).filter(m=>!(m.length===1&&Ir(m[0]))).map(m=>lt(m).map(g=>Ht(g))),s=a.sort((m,g)=>m[0]-g[0]),c=[],d=0;e:for(let m=0;m<s.length;m++){let g=s[m];for(let h=m+1;h<s.length;h++){if(++d>cM)break e;let b=s[h],[,y,T,k]=g,[I,C,,O]=b;T<I&&Yd([y,k],[C,O])&&c.push({startBounds:g,endBounds:b,startSide:[[T,y],[T,k]],endSide:[[I,C],[I,O]],length:I-T,overlap:Vd([y,k],[C,O])})}}let u=a.sort((m,g)=>m[1]-g[1]),f=[];d=0;e:for(let m=0;m<u.length;m++){let g=u[m];for(let h=m+1;h<u.length;h++){if(++d>cM)break e;let b=u[h],[y,,T,k]=g,[I,C,O]=b;k<C&&Yd([y,T],[I,O])&&f.push({startBounds:g,endBounds:b,startSide:[[y,k],[T,k]],endSide:[[I,C],[O,C]],length:C-k,overlap:Vd([y,T],[I,O])})}}return{horizontalGaps:c,verticalGaps:f}},dM=(e,t,r,o,i,a,s)=>{if(!Zi({appState:r,event:o,selectedElements:e}))return[];if(e.length===0)return[];let c=gn.getVisibleGaps();if(c){let{horizontalGaps:d,verticalGaps:u}=c,[f,m,g,h]=mf(e,t).map(T=>Ht(T)),b=(f+g)/2,y=(m+h)/2;for(let T of d){if(!Yd([m,h],T.overlap))continue;let k=T.startSide[0][0]+T.length/2,I=Ht(k-b);if(T.length>g-f&&Math.abs(I)<=s.x){Math.abs(I)<s.x&&(i.length=0),s.x=Math.abs(I);let U={type:"gap",direction:"center_horizontal",gap:T,offset:I};i.push(U);continue}let[,,O]=T.endBounds,z=f-O,L=Ht(T.length-z);if(Math.abs(L)<=s.x){Math.abs(L)<s.x&&(i.length=0),s.x=Math.abs(L);let U={type:"gap",direction:"side_right",gap:T,offset:L};i.push(U);continue}let[F,,,]=T.startBounds,D=F-g,V=Ht(D-T.length);if(Math.abs(V)<=s.x){Math.abs(V)<s.x&&(i.length=0),s.x=Math.abs(V);let U={type:"gap",direction:"side_left",gap:T,offset:V};i.push(U);continue}}for(let T of u){if(!Yd([f,g],T.overlap))continue;let k=T.startSide[0][1]+T.length/2,I=Ht(k-y);if(T.length>h-m&&Math.abs(I)<=s.y){Math.abs(I)<s.y&&(a.length=0),s.y=Math.abs(I);let U={type:"gap",direction:"center_vertical",gap:T,offset:I};a.push(U);continue}let[,O,,]=T.startBounds,z=O-h,L=Ht(z-T.length);if(Math.abs(L)<=s.y){Math.abs(L)<s.y&&(a.length=0),s.y=Math.abs(L);let U={type:"gap",direction:"side_top",gap:T,offset:L};a.push(U);continue}let[,,,F]=T.endBounds,D=Ht(m-F),V=T.length-D;if(Math.abs(V)<=s.y){Math.abs(V)<s.y&&(a.length=0),s.y=Math.abs(V);let U={type:"gap",direction:"side_bottom",gap:T,offset:V};a.push(U);continue}}}},fM=(e,t,r,o)=>{let i=uM(e,t,r,o);return gl(i,o).filter(a=>!(a.length===1&&Ir(a[0]))).flatMap(a=>Ym(a,o))},td=(e,t,r,o,i,a,s)=>{if(!Zi({appState:r,event:o,selectedElements:e})||e.length===0&&t.length===0)return[];let c=gn.getReferenceSnapPoints();if(c)for(let d of t)for(let u of c){let f=u[0]-d[0],m=u[1]-d[1];Math.abs(f)<=s.x&&(Math.abs(f)<s.x&&(i.length=0),i.push({type:"point",points:[d,u],offset:f}),s.x=Math.abs(f)),Math.abs(m)<=s.y&&(Math.abs(m)<s.y&&(a.length=0),a.push({type:"point",points:[d,u],offset:m}),s.y=Math.abs(m))}},gM=(e,t,r,o,i)=>{let a=Oe(e,r);if(!Zi({appState:r,event:o,selectedElements:a})||a.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};t.x=Ht(t.x),t.y=Ht(t.y);let s=[],c=[],d=Oh(r.zoom.value),u={x:d,y:d},f=Ym(a,i,{dragOffset:t});td(a,f,r,o,s,c,u),dM(a,t,r,o,s,c,u);let m={x:s[0]?.offset??0,y:c[0]?.offset??0};u.x=0,u.y=0,s.length=0,c.length=0;let g={x:Ht(t.x+m.x),y:Ht(t.y+m.y)};td(a,Ym(a,i,{dragOffset:g}),r,o,s,c,u),dM(a,g,r,o,s,c,u);let h=p0(s,c),b=N$(a,g,[...s,...c].filter(y=>y.type==="gap"));return{snapOffset:m,snapLines:[...h,...b]}},Ht=e=>Math.round(e*10**6)/10**6,mM=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())},p0=(e,t)=>{let r={},o={};if(e.length>0){for(let i of e)if(i.type==="point"){let a=Ht(i.points[0][0]);r[a]||(r[a]=[]),r[a].push(...i.points.map(s=>[Ht(s[0]),Ht(s[1])]))}}if(t.length>0){for(let i of t)if(i.type==="point"){let a=Ht(i.points[0][1]);o[a]||(o[a]=[]),o[a].push(...i.points.map(s=>[Ht(s[0]),Ht(s[1])]))}}return Object.entries(r).map(([i,a])=>({type:"points",points:mM(a.map(s=>[Number(i),s[1]]).sort((s,c)=>s[1]-c[1]))})).concat(Object.entries(o).map(([i,a])=>({type:"points",points:mM(a.map(s=>[s[0],Number(i)]).sort((s,c)=>s[0]-c[0]))})))},D$=e=>{let t=new Map;for(let r of e){let o=r.points.flat().map(i=>[Ht(i)]).join(",");t.has(o)||t.set(o,r)}return Array.from(t.values())},N$=(e,t,r)=>{let[o,i,a,s]=mf(e,t),c=[];for(let d of r){let[u,f,m,g]=d.gap.startBounds,[h,b,y,T]=d.gap.endBounds,k=Vd([i,s],d.gap.overlap),I=Vd([o,a],d.gap.overlap);switch(d.direction){case"center_horizontal":{if(k){let C=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[d.gap.startSide[0][0],C],[o,C]]},{type:"gap",direction:"horizontal",points:[[a,C],[d.gap.endSide[0][0],C]]})}break}case"center_vertical":{if(I){let C=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[C,d.gap.startSide[0][1]],[C,i]]},{type:"gap",direction:"vertical",points:[[C,s],[C,d.gap.endSide[0][1]]]})}break}case"side_right":{if(k){let C=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[m,C],[h,C]]},{type:"gap",direction:"horizontal",points:[[y,C],[o,C]]})}break}case"side_left":{if(k){let C=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[a,C],[u,C]]},{type:"gap",direction:"horizontal",points:[[m,C],[h,C]]})}break}case"side_top":{if(I){let C=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[C,s],[C,f]]},{type:"gap",direction:"vertical",points:[[C,g],[C,b]]})}break}case"side_bottom":{if(I){let C=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[C,g],[C,b]]},{type:"gap",direction:"vertical",points:[[C,T],[C,i]]})}break}}}return D$(c.map(d=>({...d,points:d.points.map(u=>[Ht(u[0]),Ht(u[1])])})))},hM=(e,t,r,o,i,a)=>{if(!Zi({event:o,selectedElements:e,appState:r})||e.length===0||e.length===1&&!R$(e[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[s,c,d,u]=lt(t);a&&(a.includes("e")?d+=i.x:a.includes("w")&&(s+=i.x),a.includes("n")?c+=i.y:a.includes("s")&&(u+=i.y));let f=[];if(a)switch(a){case"e":{f.push([d,c],[d,u]);break}case"w":{f.push([s,c],[s,u]);break}case"n":{f.push([s,c],[d,c]);break}case"s":{f.push([s,u],[d,u]);break}case"ne":{f.push([d,c]);break}case"nw":{f.push([s,c]);break}case"se":{f.push([d,u]);break}case"sw":{f.push([s,u]);break}}let m=Oh(r.zoom.value),g={x:m,y:m},h=[],b=[];td(t,f,r,o,h,b,g);let y={x:h[0]?.offset??0,y:b[0]?.offset??0};g.x=0,g.y=0,h.length=0,b.length=0;let[T,k,I,C]=lt(e).map(L=>Ht(L));td(e,[[T,k],[T,C],[I,k],[I,C]],r,o,h,b,g);let z=p0(h,b);return{snapOffset:y,snapLines:z}},bM=(e,t,r,o,i,a)=>{if(!Zi({event:r,selectedElements:[e],appState:t}))return{snapOffset:{x:0,y:0},snapLines:[]};let s=[[o.x+i.x,o.y+i.y]],c=Oh(t.zoom.value),d={x:c,y:c},u=[],f=[];td([e],s,t,r,u,f,d);let m={x:u[0]?.offset??0,y:f[0]?.offset??0};d.x=0,d.y=0,u.length=0,f.length=0;let g=Ym([e],a,{boundingBoxCorners:!0,omitCenter:!0});td([e],g,t,r,u,f,d);let h=p0(u,f);return{snapOffset:m,snapLines:h}},xM=(e,t,r,o,i)=>{if(!Zi({event:o,selectedElements:[],appState:t}))return{originOffset:{x:0,y:0},snapLines:[]};let a=Dv(e,[],t,i),s=Oh(t.zoom.value),c={x:s,y:s},d=[],u=[];for(let f of a){let m=Ym([f],i);for(let g of m){let h=g[0]-r.x;Math.abs(h)<=Math.abs(c.x)&&(Math.abs(h)<Math.abs(c.x)&&(u.length=0),u.push({type:"pointer",points:[g,[g[0],r.y]],direction:"vertical"}),c.x=h);let b=g[1]-r.y;Math.abs(b)<=Math.abs(c.y)&&(Math.abs(b)<Math.abs(c.y)&&(d.length=0),d.push({type:"pointer",points:[g,[r.x,g[1]]],direction:"horizontal"}),c.y=b)}}return{originOffset:{x:u.length>0?u[0].points[0][0]-r.x:0,y:d.length>0?d[0].points[0][1]-r.y:0},snapLines:[...u,...d]}},vM=e=>e===Zt.rectangle||e===Zt.ellipse||e===Zt.diamond||e===Zt.frame||e===Zt.magicframe||e===Zt.image||e===Zt.text;v();var qr=w(M(),1),O$=()=>(0,qr.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line1",bold:e=>(0,qr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line2",bold:e=>(0,qr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line3",link:e=>(0,qr.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:e})})}),(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:e=>(0,qr.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:e}),discordLink:e=>(0,qr.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[e,"."]})})})]}),yM=O$;v();var Fh={width:100,height:0},Wa=100,F$=(e,t,r)=>{let o=xa({x:0,y:0,textAlign:Cd.CENTER,verticalAlign:Zo.MIDDLE,...t,containerId:e.id,strokeColor:t.strokeColor||e.strokeColor});return Object.assign(e,{boundElements:(e.boundElements||[]).concat({type:"text",id:o.id})}),qt(o,e,r),[e,o]},EM=(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??Wa,m=t?.height??Wa,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,b=t.y||e.y-m/2,y=g?g.type:t.type;if(y){if(y==="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=xa({x:h,y:b,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(y){case"rectangle":case"ellipse":case"diamond":{a=ba({x:h,y:b,width:f,height:m,...g,...t,type:y});break}default:gp(e,`Unhandled element start type "${t.type}"`,!0)}Hs(e,a,"start",i)}}if(r){let f=r?.height??Wa,m=r?.width??Wa,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,b=r.y||e.y-f/2,y=g?g.type:r.type;if(y){if(y==="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=xa({x:h,y:b,type:"text",...g,...r,text:T}),Object.assign(s,{y:r.y||e.y-s.height/2})}else switch(y){case"rectangle":case"ellipse":case"diamond":{s=ba({x:h,y:b,width:m,height:f,...g,...r,type:y});break}default:gp(e,`Unhandled element end type "${y}"`,!0)}Hs(e,s,"end",i)}}if(e.points.length<2)return{linearElement:e,startBoundElement:a,endBoundElement:s};let c=e.points.length-1,d=.5,u=vo(e.points);return e.points[c][0]>e.points[c-1][0]&&(u[0][0]=d,u[c][0]-=d),e.points[c][0]<e.points[c-1][0]&&(u[0][0]=-d,u[c][0]+=d),e.points[c][1]>e.points[c-1][1]&&(u[0][1]=d,u[c][1]-=d),e.points[c][1]<e.points[c-1][1]&&(u[0][1]=-d,u[c][1]+=d),Object.assign(e,{points:u}),{linearElement:e,startBoundElement:a,endBoundElement:s}},f0=class{excalidrawElements=new Map;add=t=>{t&&this.excalidrawElements.set(t.id,t)};getElements=()=>ki(Array.from(this.excalidrawElements.values()));getElementsMap=()=>bp(Re(this.getElements()));getElement=t=>this.excalidrawElements.get(t)},Kc=(e,t)=>{if(!e)return[];let r=vo(e),o=new f0,i=new Map,a=new Map;for(let c of r){let d,u=c.id;switch(t?.regenerateIds!==!1&&Object.assign(c,{id:fa()}),c.type){case"rectangle":case"ellipse":case"diamond":{let m=c?.label?.text&&c.width===void 0?0:c?.width||Wa,g=c?.label?.text&&c.height===void 0?0:c?.height||Wa;d=ba({...c,width:m,height:g});break}case"line":{let m=c.width||Fh.width,g=c.height||Fh.height;d=Gp({width:m,height:g,points:[[0,0],[m,g]],...c});break}case"arrow":{let m=c.width||Fh.width,g=c.height||Fh.height;d=Wp({width:m,height:g,endArrowhead:"arrow",points:[[0,0],[m,g]],...c,type:"arrow"}),Object.assign(d,dC(d.points));break}case"text":{let m=c?.fontFamily||ws,g=c?.fontSize||Es,h=c?.lineHeight||Ii(m),b=c.text??"",y=Zd(b),T=Ai(y,ro({fontFamily:m,fontSize:g}),h);d=xa({width:T.width,height:T.height,fontFamily:m,fontSize:g,...c});break}case"image":{d=Kp({width:c?.width||Wa,height:c?.height||Wa,...c});break}case"frame":{d=Up({x:0,y:0,...c});break}case"magicframe":{d=$d({x:0,y:0,...c});break}case"freedraw":case"iframe":case"embeddable":{d=c;break}default:d=c,gp(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),u&&a.set(u,d.id))}let s=o.getElementsMap();for(let[c,d]of i){let u=o.getElement(c);switch(d.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(d.label?.text){let[f,m]=F$(u,d?.label,s);if(o.add(f),o.add(m),_t(f)){let g=d.type==="arrow"?d?.start:void 0,h=d.type==="arrow"?d?.end:void 0;if(g&&g.id){let k=a.get(g.id);k&&Object.assign(g,{id:k})}if(h&&h.id){let k=a.get(h.id);k&&Object.assign(h,{id:k})}let{linearElement:b,startBoundElement:y,endBoundElement:T}=EM(f,g,h,o,s);f=b,o.add(b),o.add(y),o.add(T)}}else switch(d.type){case"arrow":{let{start:f,end:m}=d;if(f&&f.id){let y=a.get(f.id);Object.assign(f,{id:y})}if(m&&m.id){let y=a.get(m.id);Object.assign(m,{id:y})}let{linearElement:g,startBoundElement:h,endBoundElement:b}=EM(u,f,m,o,s);o.add(g),o.add(h),o.add(b);break}}break}}}for(let[c,d]of i){if(d.type!=="frame"&&d.type!=="magicframe")continue;let u=o.getElement(c);if(!u)throw new Error(`Excalidraw element with id ${c} doesn't exist`);let f=[];d.children.forEach(I=>{let C=a.get(I);if(!C)throw new Error(`Element with ${I} wasn't mapped correctly`);let O=o.getElement(C);if(!O)throw new Error(`Frame element with id ${C} doesn't exist`);Object.assign(O,{frameId:u.id}),O?.boundElements?.forEach(z=>{let L=o.getElement(z.id);if(!L)throw new Error(`Bound element with id ${z.id} doesn't exist`);Object.assign(L,{frameId:u.id}),f.push(L)}),f.push(O)});let[m,g,h,b]=lt(f),y=10;m=m-y,g=g-y,h=h+y,b=b+y;let T=Math.max(u?.width,h-m),k=Math.max(u?.height,b-g);Object.assign(u,{x:m,y:g,width:T,height:k})}return o.getElements()};v();v();var rd=w(j(),1);v();var g0=w(Zn(),1),wM=w(j(),1);var Ot=e=>t=>{(0,g0.unstable_batchedUpdates)(e,t)},Bh=e=>mp(t=>{(0,g0.unstable_batchedUpdates)(e,t)}),zh=(()=>{let e;try{let r=wM.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 B$="#ff6b6b",z$="#ff0000",SM=1,TM=2,CM=(e,t)=>{if(!t.snapLines.length)return;let r=t.theme===Be.LIGHT||t.zenModeEnabled?B$:z$,o=(t.zenModeEnabled?SM*1.5:SM)/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,H$(i,e,t)):i.type==="gap"?(e.lineWidth=o,e.strokeStyle=r,U$(i.points[0],i.points[1],i.direction,t,e)):i.type==="points"&&(e.lineWidth=o,e.strokeStyle=r,$$(i,e,t));e.restore()},$$=(e,t,r)=>{if(!r.zenModeEnabled){let o=e.points[0],i=e.points[e.points.length-1];hn(o,i,t)}for(let o of e.points)IM(o,r,t)},H$=(e,t,r)=>{IM(e.points[0],r,t),r.zenModeEnabled||hn(e.points[0],e.points[1],t)},IM=([e,t],r,o)=>{o.save();let i=(r.zenModeEnabled?TM*1.5:TM)/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()},hn=(e,t,r)=>{r.beginPath(),r.lineTo(...e),r.lineTo(...t),r.stroke()},U$=(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||hn([e[0],e[1]-a],[e[0],e[1]+a],i),hn([d[0]-c,d[1]-s],[d[0]-c,d[1]+s],i),hn([d[0]+c,d[1]-s],[d[0]+c,d[1]+s],i),o.zenModeEnabled||(hn([t[0],t[1]-a],[t[0],t[1]+a],i),hn(e,t,i))}else{let d=[e[0],(e[1]+t[1])/2];o.zenModeEnabled||hn([e[0]-a,e[1]],[e[0]+a,e[1]],i),hn([d[0]-s,d[1]-c],[d[0]+s,d[1]-c],i),hn([d[0]-s,d[1]+c],[d[0]+s,d[1]+c],i),o.zenModeEnabled||(hn([t[0]-a,t[1]],[t[0]+a,t[1]],i),hn(e,t,i))}};var G$=(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),b0(s,e,t),e.restore()},b0=(e,t,r)=>{t.fillStyle="rgba(105, 101, 219, 0.4)",Ud(t,e[0],e[1],Le.POINT_HANDLE_SIZE/r.zoom.value,!1)},Vm=(e,t,r,o,i,a,s,c,d=!1,u=0)=>{e.save(),e.translate(a,s),e.rotate(c),d&&e.fillRect(t-a,r-s,o,i),u&&e.roundRect?(e.beginPath(),e.roundRect(t-a,r-s,o,i,u),e.stroke(),e.closePath()):e.strokeRect(t-a,r-s,o,i),e.restore()},W$=(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()},$h=(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)"),Ud(e,r[0],r[1],o/t.zoom.value,!a)},K$=(e,t,r,o,i,a)=>{e.beginPath(),e.ellipse(o,i,t/2,r/2,a,0,Math.PI*2),e.stroke()},Y$=(e,t,r)=>{let[o,i,a,s]=Eo(t,r),c=a-o,d=s-i,u=10,f=4;e.strokeStyle="rgba(0,0,0,.05)",e.lineWidth=u-f;let m=f/2+u/2,g=uf(Math.min(t.width,t.height),t);switch(t.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Vm(e,o-m,i-m,c+m*2,d+m*2,o+c/2,i+d/2,t.angle,void 0,g);break;case"diamond":let h=Math.hypot(c,d),b=m*h/d,y=m*h/c;W$(e,c+b*2,d+y*2,o+c/2,i+d/2,t.angle);break;case"ellipse":K$(e,c+m*2,d+m*2,o+c/2,i+d/2,t.angle);break}},V$=(e,t,r)=>{let[o,i,a]=t,s=MC(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[u,f]=Le.getPointAtIndexGlobalCoordinates(o,d,r);Ud(e,u,f,s)})},AM=(e,t,r)=>{let{angle:o,elementX1:i,elementY1:a,elementX2:s,elementY2:c,selectionColors:d,cx:u,cy:f,dashed:m,activeEmbeddable:g}=r,h=s-i,b=c-a,T=tp*2/t.zoom.value,k=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 C=d.length;for(let O=0;O<C;++O)e.strokeStyle=d[O],m&&e.setLineDash([k,I+(k+I)*(C-1)]),e.lineDashOffset=(k+I)*O,Vm(e,i-T,a-T,h+T*2,b+T*2,u,f,o);e.restore()},X$=(e,t,r,o)=>{let i=Array.isArray(r)?V$:Y$;e.save(),e.translate(t.scrollX,t.scrollY),i(e,r,o),e.restore()},Z$=(e,t,r,o)=>{let[i,a,s,c]=Eo(r,o),d=s-i,u=c-a;e.strokeStyle="rgb(0,118,255)",e.lineWidth=Cn.strokeWidth/t.zoom.value,e.save(),e.translate(t.scrollX,t.scrollY),Vm(e,i,a,d,u,i+d/2,a+u/2,r.angle,!1,Cn.radius/t.zoom.value),e.restore()},q$=(e,t,r)=>{let o=r.filter(c=>c.groupIds.length===0),i=r.filter(c=>c.groupIds.length>0),a=c=>{let[d,u,f,m]=lt(c);return{angle:0,elementX1:d,elementX2:f,elementY1:u,elementY2:m,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:d+(f-d)/2,cy:u+(m-u)/2,activeEmbeddable:!1}},s=c=>{let d=Kt(r,c);return a(d)};Object.entries(w2(i,t)).filter(([c,d])=>d).map(([c,d])=>c).map(c=>s(c)).concat(o.map(c=>a([c]))).forEach(c=>AM(e,t,c))},h0=(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,u)=>{if(dt(r)&&u!==0&&u!==i.length-1)return;let f=!!t.editingLinearElement?.selectedPointsIndices?.includes(u);$h(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?($h(e,t,d,s,!1),b0(d,e,t)):(b0(d,e,t),$h(e,t,d,s,!1)):(t.editingLinearElement||i.length===2)&&$h(e,t,d,a/2,!1,!0)}),e.restore()},_M=(e,t,r,o,i)=>{Object.keys(o).forEach(a=>{let s=o[a];if(s!==void 0){let[c,d,u,f]=s;e.save(),e.lineWidth=1/r.zoom.value,t.selectionColor&&(e.strokeStyle=t.selectionColor),a==="rotation"?Ud(e,c+u/2,d+f/2,u/2):e.roundRect?(e.beginPath(),e.roundRect(c,d,u,f,2/r.zoom.value),e.fill(),e.stroke()):Vm(e,c,d,u,f,c+u/2,d+f/2,i,!0),e.restore()}})},j$=(e,t,r,o)=>{t.save();let i=tp*2/r.zoom.value,a=e.width+i*2,s=e.height+i*2,c=e.x+a/2,d=e.y+s/2,u=-(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(u,f,a,s),t.restore()},kM=({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[u,f]=$C(e,a),m=HC({canvas:e,scale:a,normalizedWidth:u,normalizedHeight:f});m.save(),m.scale(s.zoom.value,s.zoom.value);let g;if(r.forEach(y=>{s.editingLinearElement?.elementId===y.id&&y&&(g=y)}),g&&h0(m,s,g,t),s.selectionElement)try{iI(s.selectionElement,m,s,c.selectionColor)}catch(y){console.error(y)}if(s.editingElement&&he(s.editingElement)){let y=i.get(s.editingElement.id);y&&!y.autoResize&&j$(y,m,s,c.selectionColor)}s.isBindingEnabled&&s.suggestedBindings.filter(y=>y!=null).forEach(y=>{X$(m,s,y,t)}),s.frameToHighlight&&Z$(m,s,s.frameToHighlight,t),s.elementsToHighlight&&q$(m,s,s.elementsToHighlight);let h=o.some(y=>He(y));if(o.length===1&&s.editingLinearElement?.elementId===o[0].id&&h0(m,s,o[0],t),s.selectedLinearElement&&s.selectedLinearElement.hoverPointIndex>=0&&!(dt(o[0])&&s.selectedLinearElement.hoverPointIndex>0&&s.selectedLinearElement.hoverPointIndex<o[0].points.length-1)&&G$(m,s,t),!s.multiElement&&!s.editingLinearElement){let y=Ef(o,s),T=o.length===1&&Qe(o[0]);T&&s.selectedLinearElement?.elementId===o[0].id&&!o[0].locked&&h0(m,s,o[0],t);let k=c.selectionColor||zr.black;if(y){let I=Re(o),C=[];for(let z of t.values()){let L=[],F=c.remoteSelectedElementIds.get(z.id);if(T&&_t(z)&&dt(z)&&(z.startBinding||z.endBinding)||(I.has(z.id)&&!xp(s,z)&&L.push(k),F&&L.push(...F.map(D=>Ul(D,s.collaborators.get(D))))),L.length){let[D,V,U,Q,me,K]=Eo(z,t,!0);C.push({angle:z.angle,elementX1:D,elementY1:V,elementX2:U,elementY2:Q,selectionColors:L,dashed:!!F,cx:me,cy:K,activeEmbeddable:s.activeEmbeddable?.element===z&&s.activeEmbeddable.state==="active"})}}let O=z=>{let L=Kt(t,z),[F,D,V,U]=lt(L);C.push({angle:0,elementX1:F,elementX2:V,elementY1:D,elementY2:U,selectionColors:[zr.black],dashed:!0,cx:F+(V-F)/2,cy:D+(U-D)/2,activeEmbeddable:!1})};for(let z of _n(s))O(z);s.editingGroupId&&O(s.editingGroupId),C.forEach(z=>AM(m,s,z))}if(m.save(),m.translate(s.scrollX,s.scrollY),o.length===1){m.fillStyle=zr.white;let I=SI(o[0],s.zoom,t,"mouse",yf(d));!s.viewModeEnabled&&y&&!he(s.editingElement)&&_M(m,c,s,I,o[0].angle)}else if(o.length>1&&!s.isRotating){let I=tp*2/s.zoom.value;m.fillStyle=zr.white;let[C,O,z,L]=lt(o),F=m.getLineDash();m.setLineDash([2/s.zoom.value]);let D=m.lineWidth;m.lineWidth=1/s.zoom.value,m.strokeStyle=k,Vm(m,C-I,O-I,z-C+I*2,L-O+I*2,(C+z)/2,(O+L)/2,0),m.lineWidth=D,m.setLineDash(F);let V=wI([C,O,z,L,(C+z)/2,(O+L)/2],0,s.zoom,"mouse",h?{...yf(d),rotation:!0}:yf(d));o.some(U=>!U.locked)&&_M(m,c,s,V,0)}m.restore()}CM(m,s),m.restore(),Nk({context:m,renderConfig:c,appState:s,normalizedWidth:u,normalizedHeight:f});let b;return c.renderScrollbars&&(b=A3(r,u,f,s),m.save(),m.fillStyle=_3,m.strokeStyle="rgba(255,255,255,0.8)",[b.horizontal,b.vertical].forEach(y=>{y&&Mg(m,y.x,y.y,y.width,y.height,ni/2)}),m.restore()),{scrollBars:b,atLeastOneVisibleElement:r.length>0,elementsMap:t}},x0=mp(e=>{let t=kM(e);e.callback?.(t)},{trailing:!0}),PM=(e,t)=>{if(t){x0(e);return}let r=kM(e);return e.callback(r),r};var LM=w(M(),1),J$=e=>{let t=(0,rd.useRef)(!1);return(0,rd.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,u)=>{if(d.selectedElementIds)for(let f of Object.keys(d.selectedElementIds))i.has(f)||i.set(f,[]),i.get(f).push(u);!d.pointer||d.pointer.renderCursor===!1||(d.username&&a.set(u,d.username),d.userState&&s.set(u,d.userState),o.set(u,oo({sceneX:d.pointer.x,sceneY:d.pointer.y},e.appState)),r.set(u,d.button))});let c=e.containerRef?.current&&getComputedStyle(e.containerRef.current).getPropertyValue("--color-selection")||"#6965db";PM({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},zh())}),(0,LM.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:e.appState.width,height:e.appState.height,cursor:e.appState.viewModeEnabled?pt.GRAB:pt.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:E("labels.drawingCanvas")})},MM=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}),Q$=(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:br(MM(e.appState),MM(t.appState)),v0=rd.default.memo(J$,Q$);v();var rs=w(j(),1);var DM=w(M(),1),eH=e=>{let t=(0,rs.useRef)(null),r=(0,rs.useRef)(!1);return(0,rs.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),GC({canvas:i,rc:e.rc,scale:e.scale,elementsMap:e.elementsMap,allElementsMap:e.allElementsMap,visibleElements:e.visibleElements,appState:e.appState,renderConfig:e.renderConfig},zh())}),(0,DM.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:t})},RM=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,currentHoveredFontFamily:e.currentHoveredFontFamily}),tH=(e,t)=>e.sceneNonce!==t.sceneNonce||e.scale!==t.scale||e.elementsMap!==t.elementsMap||e.visibleElements!==t.visibleElements?!1:br(RM(e.appState),RM(t.appState))&&br(e.renderConfig,t.renderConfig),y0=rs.default.memo(eH,tH);v();var Xm=class{scene;constructor(t){this.scene=t}getRenderableElements=(()=>{let t=({elementsMap:o,zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d,height:u,width:f})=>{let m=[];for(let g of o.values())jd(g,f,u,{zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d},o)&&m.push(g);return m},r=({elements:o,editingElement:i,pendingImageElementId:a})=>{let s=bp(new Map);for(let c of o)pa(c)&&a===c.id||(!i||i.type!=="text"||c.id!==i.id)&&s.set(c.id,c);return s};return d2(({zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:u,editingElement:f,pendingImageElementId:m,sceneNonce:g})=>{let h=this.scene.getNonDeletedElements(),b=r({elements:h,editingElement:f,pendingImageElementId:m}),y=t({elementsMap:b,zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:u});return{elementsMap:b,visibleElements:y}})})();destroy(){x0.cancel(),UC.cancel(),this.getRenderableElements.clear()}};v();var Hh=w(j(),1);var E0=w(M(),1),NM=({trails:e})=>{let t=(0,Hh.useRef)(null);return(0,Hh.useEffect)(()=>{if(t.current)for(let r of e)r.start(t.current);return()=>{for(let r of e)r.stop()}},e),(0,E0.jsx)("div",{className:"SVGLayer",children:(0,E0.jsx)("svg",{ref:t})})};v();var OM=w(M(),1),rH=5,oH=(e,t,r)=>{let[o,i]=Eo(e,r),{x:a,y:s}=oo({sceneX:o+e.width,sceneY:i},t),c=a-t.offsetLeft+10,d=s-t.offsetTop;return{x:c,y:d}},w0=({children:e,element:t,elementsMap:r})=>{let o=Qn();if(o.contextMenu||o.draggingElement||o.resizingElement||o.isRotating||o.openMenu||o.viewModeEnabled)return null;let{x:i,y:a}=oH(t,o,r);return(0,OM.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${a}px`,left:`${i}px`,padding:rH},children:e})};v();var nH=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
71
72
  Your role is to transform low-fidelity wireframes into working front-end HTML code.
72
73
 
73
74
  YOU MUST FOLLOW FOLLOWING RULES:
@@ -87,13 +88,13 @@ If the wireframes, diagrams, or text is unclear or unreadable, refer to provided
87
88
 
88
89
  Your goal is a production-ready prototype that brings the wireframes to life.
89
90
 
90
- Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function E8({image:e,apiKey:t,text:r,theme:o=He.LIGHT}){let i={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:z$},{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 zm=S(P(),1),B$="small",xg=e=>(0,zm.jsxs)("label",{className:Q("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${B$}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,zm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,zm.jsx)("div",{className:"ToolIcon__icon",children:e.icon})]});v();var jl=S(P(),1),$$=({height:e,width:t,userToFollow:r,onDisconnect:o})=>(0,jl.jsx)("div",{className:"follow-mode",style:{width:t,height:e},children:(0,jl.jsxs)("div",{className:"follow-mode__badge",children:[(0,jl.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,jl.jsx)("span",{className:"follow-mode__badge__username",title:r.username,children:r.username})]}),(0,jl.jsx)("button",{type:"button",onClick:o,className:"follow-mode__disconnect-btn",children:rn})]})}),w8=$$;v();var vg=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 H$(e,t,r,o){Object.defineProperty(e,t,{get:r,set:o,enumerable:!0,configurable:!0})}var U$={};H$(U$,"LaserPointer",()=>$m);function tr([e,t,r],[o,i,a]){return[e+o,t+i,r+a]}function Bm([e,t,r],[o,i,a]){return[e-o,t-i,r-a]}function pr([e,t,r],o){return[e*o,t*o,r*o]}function Hc([e,t,r]){return[e/Math.sqrt(e**2+t**2),t/Math.sqrt(e**2+t**2),r]}function eo([e,t,r],o){return[Math.cos(o)*e-Math.sin(o)*t,Math.sin(o)*e+Math.cos(o)*t,r]}function W$(e,t,r){return tr(e,pr(Bm(t,e),r))}function C8(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 S8(e){return Math.atan2(Math.sin(e),Math.cos(e))}function T8([e,t]){return Math.sqrt(e**2+t**2)}function Uc([e,t],[r,o]){return Math.sqrt((r-e)**2+(o-t)**2)}function G$(e){if(e.length<2)return 0;let t=0;for(let r=1;r<=e.length-1;r++)t+=Uc(e[r-1],e[r]);return t+=Uc(e[e.length-2],e[e.length-1]),t}var V$=(e,t,r)=>Math.max(t,Math.min(r,e));function K$(e,t,r){let o=Uc(t,r);if(o===0)return Uc(e,t);let i=V$(((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 Uc(a,e)}function yg(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=K$(d,r,o);return f>s?[f,p]:[s,c]},[0,-1]);if(i>=t){let s=e[a];return[...yg([r,...e.slice(1,a),s],t).slice(0,-1),s,...yg([s,...e.slice(a,-1),o],t).slice(1)]}else return[r,o]}var $m=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=W$(this.lastPoint,t,1-this.options.streamline)),this.tailPoints.push(t),G$(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=yg(r,this.options.simplify));let o=r.length;if(o===0)return[];if(o===1){let z=r[0],B=this.getSize(t,z[2],0,o,0);if(B<.5)return[];let q=[];for(let V=0;V<=Math.PI*2;V+=Math.PI/16)q.push(tr(z,pr(eo([1,0,0],V),B)));return q.push(tr(z,pr([1,0,0],this.getSize(t,z[2],0,o,0)))),q}if(o===2){let z=r[0],B=r[1],q=this.getSize(t,z[2],0,o,0),V=this.getSize(t,B[2],0,o,0);if(q<.5||V<.5)return[];let te=[],me=C8(z,[z[0],z[1]-100,z[2]],B);for(let K=me;K<=Math.PI+me;K+=Math.PI/16)te.push(tr(z,pr(eo([1,0,0],K),q)));for(let K=Math.PI+me;K<=Math.PI*2+me;K+=Math.PI/16)te.push(tr(B,pr(eo([1,0,0],K),V)));return te.push(te[0]),te}let i=[],a=[],s=0,c=0,d=0,p=0;for(let z=1;z<o-1;z++){let B=r[z-1],q=r[z],V=r[z+1],te=q[2],me=Uc(B,q);p+=me,s=c+(me-c)*.2;let K=this.getSize(t,te,z,o,p);if(K===0){d=z+1;continue}let de=Hc(Bm(B,q)),Ee=Hc(Bm(V,q)),Ie=eo(de,Math.PI/2),tt=eo(de,-Math.PI/2),Se=eo(Ee,Math.PI/2),fe=eo(Ee,-Math.PI/2),W=tr(q,pr(Ie,K)),Z=tr(q,pr(tt,K)),ce=tr(q,pr(Se,K)),ie=tr(q,pr(fe,K)),ae=tr(Ie,fe),ue=tr(tt,Se),ge=tr(q,pr(T8(ae)===0?de:Hc(ae),K)),Ce=tr(q,pr(T8(ue)===0?Ee:Hc(ue),K)),_t=S8(C8(q,B,V)),Ct=e.constants.cornerDetectionMaxAngle/180*Math.PI*e.constants.cornerDetectionVariance(s);if(Math.abs(_t)<Ct){let Pt=Math.abs(S8(Math.PI-_t));if(Pt===0)continue;if(_t<0){a.push(Z,Ce);for(let yt=0;yt<=Pt;yt+=Pt/4)i.push(tr(q,eo(pr(Ie,K),yt)));for(let yt=Pt;yt>=0;yt-=Pt/4)a.push(tr(q,eo(pr(Ie,K),yt)));a.push(Ce,ce)}else{i.push(W,ge);for(let yt=0;yt<=Pt;yt+=Pt/4)a.push(tr(q,eo(pr(Ie,-K),-yt)));for(let yt=Pt;yt>=0;yt-=Pt/4)i.push(tr(q,eo(pr(Ie,-K),-yt)));i.push(ge,ie)}}else i.push(ge),a.push(Ce);c=s}if(d>=o-2)if(this.options.keepHead){let z=r[o-1],B=[];for(let q=0;q<=Math.PI*2;q+=Math.PI/16)B.push(tr(z,pr(eo([1,0,0],q),this.options.size)));return B.push(tr(z,pr([1,0,0],this.options.size))),B}else return[];let f=r[d],m=r[d+1],h=r[o-2],b=r[o-1],y=Hc(Bm(m,f)),w=Hc(Bm(h,b)),C=eo(y,-Math.PI/2),M=eo(w,Math.PI/2),_=this.getSize(t,f[2],0,o,0),I=[],N=this.options.keepHead?this.options.size:this.getSize(t,h[2],o-2,o,p),$=[];if(_>1){for(let z=0;z<=Math.PI;z+=Math.PI/16)I.unshift(tr(f,eo(pr(C,_),-z)));I.unshift(tr(f,pr(C,-_)))}else I.push(f);for(let z=0;z<=Math.PI*3;z+=Math.PI/16)$.push(tr(b,eo(pr(M,-N),-z)));let D=[...I,...i,...$.reverse(),...a.reverse()];return I.length>0&&D.push(I[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?yg(D,this.options.simplify):D}};var ql=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(kw,"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 $m(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=no({sceneX:i,sceneY:a},r);return[s.x,s.y]});return Ww(o,!0)}};v();var Eg=class{constructor(t,r){this.animationFrameHandler=t;this.app=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new ql(t,r,{...this.getTrailOptions(),fill:()=>o0})}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(sl(a),sl(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 ql(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>r.pointer?.laserColor||Ol(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 Y$=(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)`},I8=({id:e,onChange:t,onSubmit:r,getViewportCoords:o,element:i,canvas:a,excalidrawContainer:s,app:c,autoSelect:d=!0})=>{let p=(K,de)=>{if(!de.style.fontFamily||!de.style.fontSize)return!1;let Ee=de.style.fontFamily.replace(/"/g,"");return m0({fontFamily:K.fontFamily})!==Ee||`${K.fontSize}px`!==de.style.fontSize},f=()=>{let K=c.state,de=Xo.getScene(i)?.getElement(e);if(!de)return;let{textAlign:Ee,verticalAlign:Ie}=de,tt=c.scene.getNonDeletedElementsMap();if(de&&ve(de)){let Se=de.x,fe=de.y,W=fl(de,c.scene.getNonDeletedElementsMap()),Z=de.width,ce=de.height,ie=de.width,ae=de.height;if(W&&de.containerId){if(Hr(W)){let hr=Fe.getBoundTextElementPosition(W,de,tt);Se=hr.x,fe=hr.y}let yt=p(de,m),$t;if(yt?$t=kd(W.id,W.height):($t=n3[W.id],$t||($t=kd(W.id,W.height))),Z=Ad(W,de),ce=f3(W,de),!Hr(W)&&ae>ce){let hr=Ss(ae,W.type);pe(W,{height:hr});return}else if(!Hr(W)&&W.height>$t.height&&ae<ce){let hr=Ss(ae,W.type);pe(W,{height:hr})}else{let{y:hr}=fp(W,de,tt);fe=hr}}let[ue,ge]=o(Se,fe),Ce=m.selectionStart,_t=m.selectionEnd,Ct=m.value.length;if(Ce===_t&&_t!==Ct){let yt=Ct-_t;m.selectionStart=m.value.length-yt,m.selectionEnd=m.value.length-yt}W?ie+=.5:(Z=(K.width-8-ue)/K.zoom.value,ie=Math.min(ie,Z));let Pt=(K.height-ge)/K.zoom.value;Object.assign(m.style,{font:Lr(de),lineHeight:de.lineHeight,width:`${ie}px`,height:`${ae}px`,left:`${ue}px`,top:`${ge}px`,transform:Y$(ie,ae,d3(de,W),K,Z,Pt),textAlign:Ee,verticalAlign:Ie,color:de.strokeColor,opacity:de.opacity/100,filter:"var(--theme-filter)",maxHeight:`${Pt}px`}),m.scrollTop=0,hd()&&(m.style.fontFamily=m0(de)),pe(de,{x:Se,y:fe})}},m=document.createElement("textarea");m.dir="auto",m.tabIndex=0,m.dataset.type="wysiwyg",m.wrap="off",m.classList.add("excalidraw-wysiwyg");let h="pre",b="normal";(nr(i)||!i.autoResize)&&(h="pre-wrap",b="break-word"),Object.assign(m.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:b,whiteSpace:h,overflowWrap:"break-word",boxSizing:"content-box"}),m.value=i.originalText,f(),t&&(m.onpaste=async K=>{let de=await Dp(K,!0);if(!de.text)return;let Ee=_d(de.text);if(!Ee)return;let Ie=fl(i,c.scene.getNonDeletedElementsMap()),tt=Lr({fontSize:c.state.currentItemFontSize,fontFamily:c.state.currentItemFontFamily});if(Ie){let Se=ct(Ie,c.scene.getNonDeletedElementsMap()),fe=gp(`${m.value}${Ee}`,tt,Ad(Ie,Se)),W=s3(fe,tt);m.style.width=`${W}px`}},m.oninput=()=>{t(_d(m.value))}),m.onkeydown=K=>{if(!K.shiftKey&&qf.keyTest(K))K.preventDefault(),c.actionManager.executeAction(qf),f();else if(!K.shiftKey&&Jf.keyTest(K))K.preventDefault(),c.actionManager.executeAction(Jf),f();else if(fx.keyTest(K))c.actionManager.executeAction(fx);else if(hx.keyTest(K))c.actionManager.executeAction(hx);else if(K.key===R.ESCAPE)K.preventDefault(),$=!0,D();else if(K.key===R.ENTER&&K[R.CTRL_OR_CMD]){if(K.preventDefault(),K.isComposing||K.keyCode===229)return;$=!0,D()}else if(K.key===R.TAB||K[R.CTRL_OR_CMD]&&(K.code===Be.BRACKET_LEFT||K.code===Be.BRACKET_RIGHT)){if(K.preventDefault(),K.isComposing)return;K.shiftKey||K.code===Be.BRACKET_LEFT?_():M(),m.dispatchEvent(new Event("input"))}};let y=4,w=" ".repeat(y),C=new RegExp(`^ {1,${y}}`),M=()=>{let{selectionStart:K,selectionEnd:de}=m,Ee=I(),Ie=m.value;Ee.forEach(tt=>{let Se=Ie.slice(0,tt),fe=Ie.slice(tt);Ie=`${Se}${w}${fe}`}),m.value=Ie,m.selectionStart=K+y,m.selectionEnd=de+y*Ee.length},_=()=>{let{selectionStart:K,selectionEnd:de}=m,Ee=I(),Ie=[],tt=m.value;Ee.forEach(Se=>{let fe=tt.slice(Se,Se+y).match(C);if(fe){let W=tt.slice(0,Se),Z=tt.slice(Se+fe[0].length);tt=`${W}${Z}`,Ie.push(Se)}}),m.value=tt,Ie.length&&(K>Ie[Ie.length-1]?m.selectionStart=Math.max(K-y,Ie[Ie.length-1]):m.selectionStart=K,m.selectionEnd=Math.max(m.selectionStart,de-y*Ie.length))},I=()=>{let{selectionStart:K,selectionEnd:de,value:Ee}=m,Ie=Ee.slice(0,K).match(/[^\n]*$/)[0].length;return K=K-Ie,Ee.slice(K,de).split(`
91
- `).reduce((Se,fe,W,Z)=>Se.concat(W?Se[W-1]+Z[W-1].length+1:K),[]).reverse()},N=K=>{K.preventDefault(),K.stopPropagation()},$=!1,D=()=>{if(te)return;te=!0,z();let K=Xo.getScene(i)?.getElement(i.id);if(!K)return;let de=fl(K,c.scene.getNonDeletedElementsMap());if(de){if(m.value.trim()){let Ee=c3(de);!Ee||Ee!==i.id?pe(de,{boundElements:(de.boundElements||[]).concat({type:"text",id:i.id})}):Hr(de)&&B0(de)}else pe(de,{boundElements:de.boundElements?.filter(Ee=>!ve(Ee))});Ur(K,de,c.scene.getNonDeletedElementsMap())}r({viaKeyboard:$,nextOriginalText:m.value})},z=()=>{m.onblur=null,m.oninput=null,m.onkeydown=null,me&&me.disconnect(),window.removeEventListener("resize",f),window.removeEventListener("wheel",N,!0),window.removeEventListener("pointerdown",q),window.removeEventListener("pointerup",B),window.removeEventListener("blur",D),window.removeEventListener("beforeunload",D),V(),m.remove()},B=K=>{window.removeEventListener("pointerup",B);let de=K?.target,Ee=de instanceof HTMLElement&&de.classList.contains("active-color");setTimeout(()=>{if(m.onblur=D,Ee){let Ie=(Se,fe)=>{Se.find(Z=>Z.removedNodes.length>0&&Z.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{m.focus()}),fe.disconnect())};new MutationObserver(Ie).observe(document.querySelector(".excalidraw-container"),{childList:!0})}Ee||m.focus()})},q=K=>{let de=K.target instanceof HTMLElement&&K.target.classList.contains("active-color");(K.target instanceof HTMLElement||K.target instanceof SVGElement)&&K.target.closest(`.${Hu.SHAPE_ACTIONS_MENU}`)&&!Zo(K.target)||de?(m.onblur=null,window.addEventListener("pointerup",B),window.addEventListener("blur",D)):K.target instanceof HTMLElement&&!K.target.contains(m)&&!hd()&&requestAnimationFrame(()=>{D()})},V=Xo.getScene(i).onUpdate(()=>{f(),!!document.activeElement?.closest(".color-picker-content")||m.focus()}),te=!1;d&&m.select(),B();let me=null;a&&"ResizeObserver"in window?(me=new window.ResizeObserver(()=>{f()}),me.observe(a)):window.addEventListener("resize",f),m.onpointerdown=K=>K.stopPropagation(),requestAnimationFrame(()=>{window.addEventListener("pointerdown",q,{capture:!0})}),window.addEventListener("wheel",N,{passive:!1,capture:!0}),window.addEventListener("beforeunload",D),s?.querySelector(".excalidraw-textEditorContainer").appendChild(m)};v();var k8=ne({name:"autoResize",label:"labels.autoResize",icon:null,trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=Ge(e,t);return i.length===1&&ve(i[0])&&!i[0].autoResize},perform:(e,t,r,o)=>{let i=Ge(e,t);return{appState:t,elements:e.map(a=>{if(a.id===i[0].id&&ve(a)){let s=Ti(a.originalText,Lr(a),a.lineHeight);return De(a,{autoResize:!0,width:s.width,height:s.height,text:a.originalText})}return a}),storeAction:Y.CAPTURE}}});v();var _8=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 Qe=S(P(),1),P8=fr.default.createContext(null),R8=fr.default.createContext(null),D8={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},sy=fr.default.createContext(D8);sy.displayName="DeviceContext";var cy=fr.default.createContext({container:null,id:null});cy.displayName="ExcalidrawContainerContext";var dy=fr.default.createContext([]);dy.displayName="ExcalidrawElementsContext";var my=fr.default.createContext({...Ts(),width:0,height:0,offsetLeft:0,offsetTop:0});my.displayName="ExcalidrawAppStateContext";var uy=fr.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});uy.displayName="ExcalidrawSetAppStateContext";var py=fr.default.createContext(null);py.displayName="ExcalidrawActionManagerContext";var Yr=()=>(0,fr.useContext)(P8),Ra=()=>(0,fr.useContext)(R8),it=()=>(0,fr.useContext)(sy),Tr=()=>(0,fr.useContext)(cy),Ma=()=>(0,fr.useContext)(dy),Da=()=>(0,fr.useContext)(my),at=()=>(0,fr.useContext)(uy),vr=()=>(0,fr.useContext)(py),Hm=!1,oy=0,Jl=!1,Um=!1,ny=!1,iy={horizontal:null,vertical:null},Va=0,Wm=!1,ay=new Map,wg=!1,A8=0,M8=!1,Gm=null,dt={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},ly=class e extends fr.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=D8;excalidrawContainerRef=fr.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 vg;laserTrails=new Eg(this.animationFrameHandler,this);eraserTrail=new ql(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(sl(a),sl(i))},fill:()=>this.state.theme===He.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new Qo;onPointerDownEmitter=new Qo;onPointerUpEmitter=new Qo;onUserFollowEmitter=new Qo;onScrollChangeEmitter=new Qo;missingPointerEventCleanupEmitter=new Qo;onRemoveEventListenersEmitter=new Qo;constructor(t){super(t);let r=Ts(),{excalidrawAPI:o,viewModeEnabled:i=!1,zenModeEnabled:a=!1,gridModeEnabled:s=!1,objectsSnapModeEnabled:c=!1,theme:d=r.theme,name:p=`${E("labels.untitled")}-${d0()}`}=t;if(this.state={...r,theme:d,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:i,zenModeEnabled:a,objectsSnapModeEnabled:c,gridSize:s?Ei:null,name:p,width:window.innerWidth,height:window.innerHeight},this.id=Mw(),this.library=new $T(this),this.actionManager=new zh(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new Xo,this.canvas=document.createElement("canvas"),this.rc=Aw.canvas(this.canvas),this.renderer=new Fm(this.scene),this.store=new M3,this.history=new ym,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: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 o=="function"?o(f):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new Dm({scene:this.scene}),this.history=new ym,this.actionManager.registerAll(I3),this.actionManager.registerAction(tk(this.history,this.store)),this.actionManager.registerAction(rk(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(ld).includes(i)&&ay.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),ml(t)))return;let r=this.getHTMLIFrameElement(t);if(r?.contentWindow){if(r.src.includes("youtube")){let o=ay.get(t.id);switch(o||(ay.set(t.id,ld.UNSTARTED),r.contentWindow.postMessage(JSON.stringify({event:"listening",id:t.id}),"*")),o){case ld.PLAYING:case ld.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),en.delete(t)};updateEmbeddables=()=>{let t=new Set,r=!1;this.scene.getNonDeletedElements().filter(o=>{if($r(o)){if(t.add(o.id),!this.embedsValidationStatus.has(o.id)){r=!0;let i=_s(o.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(o,i)}}else ml(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=>$r(a)&&this.embedsValidationStatus.get(a.id)===!0||ml(a));return(0,Qe.jsx)(Qe.Fragment,{children:i.map(a=>{let{x:s,y:c}=no({sceneX:a.x,sceneY:a.y},this.state),d=Od(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 m;if(ml(a)){m=null;let y=(a.customData?.generationData??this.magicGenerations.get(a.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(y.status==="done"){let w=y.html;m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>w}}else if(y.status==="pending")m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>S0(`
91
+ Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function FM({image:e,apiKey:t,text:r,theme:o=Be.LIGHT}){let i={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:nH},{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 Zm=w(M(),1),iH="small",Uh=e=>(0,Zm.jsxs)("label",{className:q("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${iH}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Zm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Zm.jsx)("div",{className:"ToolIcon__icon",children:e.icon})]});v();var os=w(M(),1),aH=({height:e,width:t,userToFollow:r,onDisconnect:o})=>(0,os.jsx)("div",{className:"follow-mode",style:{width:t,height:e},children:(0,os.jsxs)("div",{className:"follow-mode__badge",children:[(0,os.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,os.jsx)("span",{className:"follow-mode__badge__username",title:r.username,children:r.username})]}),(0,os.jsx)("button",{type:"button",onClick:o,className:"follow-mode__disconnect-btn",children:Qo})]})}),BM=aH;v();var Gh=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 lH(e,t,r,o){Object.defineProperty(e,t,{get:r,set:o,enumerable:!0,configurable:!0})}var sH={};lH(sH,"LaserPointer",()=>jm);function Qt([e,t,r],[o,i,a]){return[e+o,t+i,r+a]}function qm([e,t,r],[o,i,a]){return[e-o,t-i,r-a]}function pr([e,t,r],o){return[e*o,t*o,r*o]}function od([e,t,r]){return[e/Math.sqrt(e**2+t**2),t/Math.sqrt(e**2+t**2),r]}function jr([e,t,r],o){return[Math.cos(o)*e-Math.sin(o)*t,Math.sin(o)*e+Math.cos(o)*t,r]}function cH(e,t,r){return Qt(e,pr(qm(t,e),r))}function zM(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 $M(e){return Math.atan2(Math.sin(e),Math.cos(e))}function HM([e,t]){return Math.sqrt(e**2+t**2)}function nd([e,t],[r,o]){return Math.sqrt((r-e)**2+(o-t)**2)}function dH(e){if(e.length<2)return 0;let t=0;for(let r=1;r<=e.length-1;r++)t+=nd(e[r-1],e[r]);return t+=nd(e[e.length-2],e[e.length-1]),t}var mH=(e,t,r)=>Math.max(t,Math.min(r,e));function uH(e,t,r){let o=nd(t,r);if(o===0)return nd(e,t);let i=mH(((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 nd(a,e)}function Wh(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,u)=>{let f=uH(d,r,o);return f>s?[f,u]:[s,c]},[0,-1]);if(i>=t){let s=e[a];return[...Wh([r,...e.slice(1,a),s],t).slice(0,-1),s,...Wh([s,...e.slice(a,-1),o],t).slice(1)]}else return[r,o]}var jm=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=cH(this.lastPoint,t,1-this.options.streamline)),this.tailPoints.push(t),dH(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=Wh(r,this.options.simplify));let o=r.length;if(o===0)return[];if(o===1){let F=r[0],D=this.getSize(t,F[2],0,o,0);if(D<.5)return[];let V=[];for(let U=0;U<=Math.PI*2;U+=Math.PI/16)V.push(Qt(F,pr(jr([1,0,0],U),D)));return V.push(Qt(F,pr([1,0,0],this.getSize(t,F[2],0,o,0)))),V}if(o===2){let F=r[0],D=r[1],V=this.getSize(t,F[2],0,o,0),U=this.getSize(t,D[2],0,o,0);if(V<.5||U<.5)return[];let Q=[],me=zM(F,[F[0],F[1]-100,F[2]],D);for(let K=me;K<=Math.PI+me;K+=Math.PI/16)Q.push(Qt(F,pr(jr([1,0,0],K),V)));for(let K=Math.PI+me;K<=Math.PI*2+me;K+=Math.PI/16)Q.push(Qt(D,pr(jr([1,0,0],K),U)));return Q.push(Q[0]),Q}let i=[],a=[],s=0,c=0,d=0,u=0;for(let F=1;F<o-1;F++){let D=r[F-1],V=r[F],U=r[F+1],Q=V[2],me=nd(D,V);u+=me,s=c+(me-c)*.2;let K=this.getSize(t,Q,F,o,u);if(K===0){d=F+1;continue}let se=od(qm(D,V)),be=od(qm(U,V)),_e=jr(se,Math.PI/2),nt=jr(se,-Math.PI/2),Ee=jr(be,Math.PI/2),ue=jr(be,-Math.PI/2),G=Qt(V,pr(_e,K)),Y=Qt(V,pr(nt,K)),oe=Qt(V,pr(Ee,K)),ie=Qt(V,pr(ue,K)),le=Qt(_e,ue),de=Qt(nt,Ee),pe=Qt(V,pr(HM(le)===0?se:od(le),K)),ye=Qt(V,pr(HM(de)===0?be:od(de),K)),Ct=$M(zM(V,D,U)),vt=e.constants.cornerDetectionMaxAngle/180*Math.PI*e.constants.cornerDetectionVariance(s);if(Math.abs(Ct)<vt){let Ft=Math.abs($M(Math.PI-Ct));if(Ft===0)continue;if(Ct<0){a.push(Y,ye);for(let Et=0;Et<=Ft;Et+=Ft/4)i.push(Qt(V,jr(pr(_e,K),Et)));for(let Et=Ft;Et>=0;Et-=Ft/4)a.push(Qt(V,jr(pr(_e,K),Et)));a.push(ye,oe)}else{i.push(G,pe);for(let Et=0;Et<=Ft;Et+=Ft/4)a.push(Qt(V,jr(pr(_e,-K),-Et)));for(let Et=Ft;Et>=0;Et-=Ft/4)i.push(Qt(V,jr(pr(_e,-K),-Et)));i.push(pe,ie)}}else i.push(pe),a.push(ye);c=s}if(d>=o-2)if(this.options.keepHead){let F=r[o-1],D=[];for(let V=0;V<=Math.PI*2;V+=Math.PI/16)D.push(Qt(F,pr(jr([1,0,0],V),this.options.size)));return D.push(Qt(F,pr([1,0,0],this.options.size))),D}else return[];let f=r[d],m=r[d+1],g=r[o-2],h=r[o-1],b=od(qm(m,f)),y=od(qm(g,h)),T=jr(b,-Math.PI/2),k=jr(y,Math.PI/2),I=this.getSize(t,f[2],0,o,0),C=[],O=this.options.keepHead?this.options.size:this.getSize(t,g[2],o-2,o,u),z=[];if(I>1){for(let F=0;F<=Math.PI;F+=Math.PI/16)C.unshift(Qt(f,jr(pr(T,I),-F)));C.unshift(Qt(f,pr(T,-I)))}else C.push(f);for(let F=0;F<=Math.PI*3;F+=Math.PI/16)z.push(Qt(h,jr(pr(k,-O),-F)));let L=[...C,...i,...z.reverse(),...a.reverse()];return C.length>0&&L.push(C[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Wh(L,this.options.simplify):L}};var ns=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(XS,"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 jm(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=oo({sceneX:i,sceneY:a},r);return[s.x,s.y]});return m2(o,!0)}};v();var Kh=class{constructor(t,r){this.animationFrameHandler=t;this.app=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new ns(t,r,{...this.getTrailOptions(),fill:()=>Cx})}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(ml(a),ml(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 ns(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>r.pointer?.laserColor||Ul(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 pH=(e,t,r,o,i,a)=>{let{zoom:s}=o,c=180*r/Math.PI,d=e*(s.value-1)/2,u=t*(s.value-1)/2;return e>i&&s.value!==1&&(d=i*(s.value-1)/2),t>a&&s.value!==1&&(u=a*(s.value-1)/2),`translate(${d}px, ${u}px) scale(${s.value}) rotate(${c}deg)`},UM=({id:e,onChange:t,onSubmit:r,getViewportCoords:o,element:i,canvas:a,excalidrawContainer:s,app:c,autoSelect:d=!0})=>{let u=(K,se)=>{if(!se.style.fontFamily||!se.style.fontSize)return!1;let be=se.style.fontFamily.replace(/"/g,"");return cl({fontFamily:K.fontFamily})!==be||`${K.fontSize}px`!==se.style.fontSize},f=()=>{let K=c.state,se=rn.getScene(i)?.getElement(e);if(!se)return;let{textAlign:be,verticalAlign:_e}=se,nt=c.scene.getNonDeletedElementsMap();if(se&&he(se)){let Ee=se.x,ue=se.y,G=Il(se,c.scene.getNonDeletedElementsMap()),Y=se.width,oe=se.height,ie=se.width,le=se.height;if(G&&se.containerId){if(_t(G)){let ar=Le.getBoundTextElementPosition(G,se,nt);Ee=ar.x,ue=ar.y}let Jr=u(se,m),si;if(Jr?si=Xd(G.id,G.height):(si=aI[G.id],si||(si=Xd(G.id,G.height))),ie=qd(G,se),le=hI(G,se),!_t(G)&&oe>le){let ar=Zs(oe,G.type);ce(G,{height:ar});return}else if(!_t(G)&&G.height>si.height&&oe<le){let ar=Zs(oe,G.type);ce(G,{height:ar})}else{let{y:ar}=gf(G,se,nt);ue=ar}}let[de,pe]=o(Ee,ue),ye=m.selectionStart,Ct=m.selectionEnd,vt=m.value.length;if(ye===Ct&&Ct!==vt){let Jr=vt-Ct;m.selectionStart=m.value.length-Jr,m.selectionEnd=m.value.length-Jr}G?Y+=.5:(ie=(K.width-8-de)/K.zoom.value,Y=Math.min(Y,ie)),oe*=1.05;let Ft=ro(se),Et=CS?0:Math.ceil(se.fontSize/2),er=(K.height-pe)/K.zoom.value;Object.assign(m.style,{font:Ft,lineHeight:se.lineHeight,width:`${Y}px`,height:`${oe}px`,left:`${de-Et}px`,top:`${pe}px`,transform:pH(Y,oe,uI(se,G),K,ie,er),padding:`0 ${Et}px`,textAlign:be,verticalAlign:_e,color:se.strokeColor,opacity:se.opacity/100,filter:"var(--theme-filter)",maxHeight:`${er}px`}),m.scrollTop=0,Ad()&&(m.style.fontFamily=cl(se)),ce(se,{x:Ee,y:ue})}},m=document.createElement("textarea");m.dir="auto",m.tabIndex=0,m.dataset.type="wysiwyg",m.wrap="off",m.classList.add("excalidraw-wysiwyg");let g="pre",h="normal";(Ir(i)||!i.autoResize)&&(g="pre-wrap",h="break-word"),Object.assign(m.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin: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"}),m.value=i.originalText,f(),t&&(m.onpaste=async K=>{let se=await of(K,!0);if(!se.text)return;let be=Zd(se.text);if(!be)return;let _e=Il(i,c.scene.getNonDeletedElementsMap()),nt=ro({fontSize:c.state.currentItemFontSize,fontFamily:c.state.currentItemFontFamily});if(_e){let Ee=je(_e,c.scene.getNonDeletedElementsMap()),ue=bf(`${m.value}${be}`,nt,qd(_e,Ee)),G=dI(ue,nt,!0);m.style.width=`${G}px`}},m.oninput=()=>{t(Zd(m.value))}),m.onkeydown=K=>{if(!K.shiftKey&&_g.keyTest(K))K.preventDefault(),c.actionManager.executeAction(_g),f();else if(!K.shiftKey&&Ag.keyTest(K))K.preventDefault(),c.actionManager.executeAction(Ag),f();else if(Oy.keyTest(K))c.actionManager.executeAction(Oy);else if(Fy.keyTest(K))c.actionManager.executeAction(Fy);else if(K.key===R.ESCAPE)K.preventDefault(),z=!0,L();else if(K.key===R.ENTER&&K[R.CTRL_OR_CMD]){if(K.preventDefault(),K.isComposing||K.keyCode===229)return;z=!0,L()}else if(K.key===R.TAB||K[R.CTRL_OR_CMD]&&(K.code===Ne.BRACKET_LEFT||K.code===Ne.BRACKET_RIGHT)){if(K.preventDefault(),K.isComposing)return;K.shiftKey||K.code===Ne.BRACKET_LEFT?I():k(),m.dispatchEvent(new Event("input"))}};let b=4,y=" ".repeat(b),T=new RegExp(`^ {1,${b}}`),k=()=>{let{selectionStart:K,selectionEnd:se}=m,be=C(),_e=m.value;be.forEach(nt=>{let Ee=_e.slice(0,nt),ue=_e.slice(nt);_e=`${Ee}${y}${ue}`}),m.value=_e,m.selectionStart=K+b,m.selectionEnd=se+b*be.length},I=()=>{let{selectionStart:K,selectionEnd:se}=m,be=C(),_e=[],nt=m.value;be.forEach(Ee=>{let ue=nt.slice(Ee,Ee+b).match(T);if(ue){let G=nt.slice(0,Ee),Y=nt.slice(Ee+ue[0].length);nt=`${G}${Y}`,_e.push(Ee)}}),m.value=nt,_e.length&&(K>_e[_e.length-1]?m.selectionStart=Math.max(K-b,_e[_e.length-1]):m.selectionStart=K,m.selectionEnd=Math.max(m.selectionStart,se-b*_e.length))},C=()=>{let{selectionStart:K,selectionEnd:se,value:be}=m,_e=be.slice(0,K).match(/[^\n]*$/)[0].length;return K=K-_e,be.slice(K,se).split(`
92
+ `).reduce((Ee,ue,G,Y)=>Ee.concat(G?Ee[G-1]+Y[G-1].length+1:K),[]).reverse()},O=K=>{K.target instanceof HTMLCanvasElement&&(K.preventDefault(),K.stopPropagation())},z=!1,L=()=>{if(Q)return;Q=!0,F();let K=rn.getScene(i)?.getElement(i.id);if(!K)return;let se=Il(K,c.scene.getNonDeletedElementsMap());if(se){if(m.value.trim()){let be=mI(se);!be||be!==i.id?ce(se,{boundElements:(se.boundElements||[]).concat({type:"text",id:i.id})}):_t(se)&&Cv(se)}else ce(se,{boundElements:se.boundElements?.filter(be=>!he(be))});qt(K,se,c.scene.getNonDeletedElementsMap())}r({viaKeyboard:z,nextOriginalText:m.value})},F=()=>{m.onblur=null,m.oninput=null,m.onkeydown=null,me&&me.disconnect(),window.removeEventListener("resize",f),window.removeEventListener("wheel",O,!0),window.removeEventListener("pointerdown",V),window.removeEventListener("pointerup",D),window.removeEventListener("blur",L),window.removeEventListener("beforeunload",L),U(),m.remove()},D=K=>{window.removeEventListener("pointerup",D);let se=K?.target,be=se instanceof HTMLElement&&se.classList.contains("properties-trigger");setTimeout(()=>{m.onblur=L,be||m.focus()})},V=K=>{let se=K?.target,be=se instanceof HTMLElement&&se.classList.contains("properties-trigger");(K.target instanceof HTMLElement||K.target instanceof SVGElement)&&K.target.closest(`.${Qu.SHAPE_ACTIONS_MENU}`)&&!Yn(K.target)||be?(m.onblur=null,window.addEventListener("pointerup",D),window.addEventListener("blur",L)):K.target instanceof HTMLElement&&K.target instanceof HTMLCanvasElement&&!Ad()&&requestAnimationFrame(()=>{L()})},U=rn.getScene(i).onUpdate(()=>{f(),!!document.activeElement?.closest(".properties-content")||m.focus()}),Q=!1;d&&m.select(),D();let me=null;a&&"ResizeObserver"in window?(me=new window.ResizeObserver(()=>{f()}),me.observe(a)):window.addEventListener("resize",f),m.onpointerdown=K=>K.stopPropagation(),requestAnimationFrame(()=>{window.addEventListener("pointerdown",V,{capture:!0})}),window.addEventListener("wheel",O,{passive:!1,capture:!0}),window.addEventListener("beforeunload",L),s?.querySelector(".excalidraw-textEditorContainer").appendChild(m)};v();var GM=re({name:"autoResize",label:"labels.autoResize",icon:null,trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=Oe(e,t);return i.length===1&&he(i[0])&&!i[0].autoResize},perform:(e,t,r,o)=>{let i=Oe(e,t);return{appState:t,elements:e.map(a=>{if(a.id===i[0].id&&he(a)){let s=Ai(a.originalText,ro(a),a.lineHeight);return ke(a,{autoResize:!0,width:s.width,height:s.height,text:a.originalText})}return a}),storeAction:W.CAPTURE}}});v();var WM=e=>{let t=["flowchart","graph","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=>`\\s*${o}(-beta)?`).join("|")})\\b`).test(e.trim())};var Ze=w(M(),1),XM=fr.default.createContext(null),ZM=fr.default.createContext(null),qM={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},A0=fr.default.createContext(qM);A0.displayName="DeviceContext";var k0=fr.default.createContext({container:null,id:null});k0.displayName="ExcalidrawContainerContext";var P0=fr.default.createContext([]);P0.displayName="ExcalidrawElementsContext";var M0=fr.default.createContext({...As(),width:0,height:0,offsetLeft:0,offsetTop:0});M0.displayName="ExcalidrawAppStateContext";var L0=fr.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});L0.displayName="ExcalidrawSetAppStateContext";var R0=fr.default.createContext(null);R0.displayName="ExcalidrawActionManagerContext";var _r=()=>(0,fr.useContext)(XM),ei=()=>(0,fr.useContext)(ZM),rt=()=>(0,fr.useContext)(A0),sr=()=>(0,fr.useContext)(k0),La=()=>(0,fr.useContext)(P0),Qn=()=>(0,fr.useContext)(M0),ot=()=>(0,fr.useContext)(L0),yr=()=>(0,fr.useContext)(R0),Jm=!1,S0=0,is=!1,Qm=!1,T0=!1,C0={horizontal:null,vertical:null},Ka=0,eu=!1,I0=new Map,Yh=!1,KM=0,YM=!1,tu=null,at={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},_0=class e extends fr.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=qM;excalidrawContainerRef=fr.default.createRef();scene;fonts;renderer;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 Gh;laserTrails=new Kh(this.animationFrameHandler,this);eraserTrail=new ns(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(ml(a),ml(i))},fill:()=>this.state.theme===Be.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new en;onPointerDownEmitter=new en;onPointerUpEmitter=new en;onUserFollowEmitter=new en;onScrollChangeEmitter=new en;missingPointerEventCleanupEmitter=new en;onRemoveEventListenersEmitter=new en;constructor(t){super(t);let r=As(),{excalidrawAPI:o,viewModeEnabled:i=!1,zenModeEnabled:a=!1,gridModeEnabled:s=!1,objectsSnapModeEnabled:c=!1,theme:d=r.theme,name:u=`${E("labels.untitled")}-${Mx()}`}=t;if(this.state={...r,theme:d,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:i,zenModeEnabled:a,objectsSnapModeEnabled:c,gridSize:s?yi:null,name:u,width:window.innerWidth,height:window.innerHeight},this.id=jS(),this.library=new a5(this),this.actionManager=new sh(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new rn,this.canvas=document.createElement("canvas"),this.rc=qS.canvas(this.canvas),this.renderer=new Xm(this.scene),this.store=new LC,this.history=new Mm,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: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 o=="function"?o(f):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new vl({scene:this.scene}),this.history=new Mm,this.actionManager.registerAll(k2),this.actionManager.registerAction(b3(this.history,this.store)),this.actionManager.registerAction(x3(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(Sd).includes(i)&&I0.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),fl(t)))return;let r=this.getHTMLIFrameElement(t);if(r?.contentWindow){if(r.src.includes("youtube")){let o=I0.get(t.id);switch(o||(I0.set(t.id,Sd.UNSTARTED),r.contentWindow.postMessage(JSON.stringify({event:"listening",id:t.id}),"*")),o){case Sd.PLAYING:case Sd.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),ha.delete(t)};updateEmbeddables=()=>{let t=new Set,r=!1;this.scene.getNonDeletedElements().filter(o=>{if($r(o)){if(t.add(o.id),!this.embedsValidationStatus.has(o.id)){r=!0;let i=Us(o.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(o,i)}}else fl(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=>$r(a)&&this.embedsValidationStatus.get(a.id)===!0||fl(a));return(0,Ze.jsx)(Ze.Fragment,{children:i.map(a=>{let{x:s,y:c}=oo({sceneX:a.x,sceneY:a.y},this.state),d=jd(a,r,o,this.state,this.scene.getNonDeletedElementsMap()),u=this.initializedEmbeds.has(a.id);if(d&&!u&&this.initializedEmbeds.add(a.id),!(d||u))return null;let m;if(fl(a)){m=null;let b=(a.customData?.generationData??this.magicGenerations.get(a.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(b.status==="done"){let y=b.html;m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>y}}else if(b.status==="pending")m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>gv(`
92
93
  <style>
93
94
  html, body {
94
95
  width: 100%;
95
96
  height: 100%;
96
- color: ${this.state.theme===He.DARK?"white":"black"};
97
+ color: ${this.state.theme===Be.DARK?"white":"black"};
97
98
  }
98
99
  body {
99
100
  display: flex;
@@ -160,7 +161,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
160
161
  </svg>
161
162
  </div>
162
163
  <div>Generating...</div>
163
- `)};else{let w;y.code==="ERR_GENERATION_INTERRUPTED"?w="Generation was interrupted...":w=y.message||"Generation failed",m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>S0(`
164
+ `)};else{let y;b.code==="ERR_GENERATION_INTERRUPTED"?y="Generation was interrupted...":y=b.message||"Generation failed",m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>gv(`
164
165
  <style>
165
166
  html, body {
166
167
  height: 100%;
@@ -170,7 +171,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
170
171
  flex-direction: column;
171
172
  align-items: center;
172
173
  justify-content: center;
173
- color: ${vi.red[3]};
174
+ color: ${xi.red[3]};
174
175
  }
175
176
  h1, h3 {
176
177
  margin-top: 0;
@@ -178,26 +179,15 @@ Please output JUST THE HTML file containing your best attempt at implementing th
178
179
  }
179
180
  </style>
180
181
  <h1>Error!</h1>
181
- <h3>${w}</h3>
182
- `)}}}else m=gl(T3(a.link||""));let h=this.state.activeEmbeddable?.element===a&&this.state.activeEmbeddable?.state==="active",b=this.state.activeEmbeddable?.element===a&&this.state.activeEmbeddable?.state==="hover";return(0,Qe.jsx)("div",{className:Q("excalidraw__embeddable-container",{"is-hovered":b}),style:{transform:d?`translate(${s-this.state.offsetLeft}px, ${c-this.state.offsetTop}px) scale(${t})`:"none",display:d?"block":"none",opacity:y5(a,Op(a,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${e3(Math.min(a.width,a.height),a)}px`},children:(0,Qe.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:h?al.enabled:al.disabled},children:[b&&(0,Qe.jsx)("div",{className:"excalidraw__embeddable-hint",children:E("buttons.embeddableInteractionButton")}),(0,Qe.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${a.strokeWidth}px`},children:($r(a)?this.props.renderEmbeddable?.(a,this.state):null)??(0,Qe.jsx)("iframe",{ref:y=>this.cacheEmbeddableRef(a,y),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`})})]})},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=Dt({clientX:i.x,clientY:i.y},this.state),s=Dt({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===He.DARK,r=0,o=0;return this.scene.getNonDeletedFramesLikes().map(i=>{if(g0(i)?r++:o++,!Od(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}=no({sceneX:i.x,sceneY:i.y},this.state),c=6,d=()=>{pe(i,{name:i.name?.trim()||null}),this.setState({editingFrame:null})},p,f=v5(i,g0(i)?r:o);if(i.id===this.state.editingFrame){let m=f;p=(0,Qe.jsx)("input",{autoFocus:!0,value:m,onChange:h=>{pe(i,{name:h.target.value})},onFocus:h=>h.target.select(),onBlur:()=>d(),onKeyDown:h=>{(h.key===R.ESCAPE||h.key===R.ENTER)&&d()},style:{background:this.state.viewBackgroundColor,filter:t?yw:"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:m.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else p=f;return(0,Qe.jsx)("div",{id:this.getFrameNameDOMId(i),style:{position:"absolute",bottom:`${this.state.height+In.nameOffsetY-s+this.state.offsetTop}px`,left:`${a-this.state.offsetLeft}px`,zIndex:2,fontSize:In.nameFontSize,color:t?In.nameColorDarkTheme:In.nameColorLightTheme,lineHeight:In.nameLineHeight,width:"max-content",maxWidth:`${i.width}px`,overflow:i.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:gt.MOVE,pointerEvents:this.state.viewModeEnabled?al.disabled:al.enabled},onPointerDown:m=>this.handleCanvasPointerDown(m),onWheel:m=>this.handleWheel(m),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&&lt(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!ve(this.state.editingElement)),p=t[0];return(0,Qe.jsx)("div",{className:Q("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":d?al.disabled:al.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,Qe.jsx)(P8.Provider,{value:this,children:(0,Qe.jsx)(R8.Provider,{value:this.props,children:(0,Qe.jsx)(cy.Provider,{value:this.excalidrawContainerValue,children:(0,Qe.jsx)(sy.Provider,{value:this.device,children:(0,Qe.jsx)(uy.Provider,{value:this.setAppState,children:(0,Qe.jsx)(my.Provider,{value:this.state,children:(0,Qe.jsxs)(dy.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,Qe.jsxs)(py.Provider,{value:this.actionManager,children:[(0,Qe.jsx)(U_,{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:Di().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,Qe.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,Qe.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,Qe.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,Qe.jsx)(v8,{trails:[this.laserTrails,this.eraserTrail]}),t.length===1&&this.state.showHyperlinkPopup&&(0,Qe.jsx)(wT,{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&&vd(p)&&(0,Qe.jsx)(ry,{element:p,elementsMap:a,children:(0,Qe.jsx)(xg,{title:E("labels.convertToCode"),icon:Gs,checked:!1,onChange:()=>this.onMagicFrameGenerate(p,"button")})}),t.length===1&&ml(p)&&p.customData?.generationData?.status==="done"&&(0,Qe.jsxs)(ry,{element:p,elementsMap:a,children:[(0,Qe.jsx)(xg,{title:E("labels.copySource"),icon:ff,checked:!1,onChange:()=>this.onIframeSrcCopy(p)}),(0,Qe.jsx)(xg,{title:"Enter fullscreen",icon:g4,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(m){console.warn(m),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,Qe.jsx)(W_,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,Qe.jsx)(ak,{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,Qe.jsx)(ey,{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,Qe.jsx)(Qv,{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,Qe.jsx)(w8,{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)=>{Ue("export",t,"ui");let i=await Pl(t,r,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:o.exportingFrame}).catch(ep).catch(a=>{console.error(a),this.setState({errorMessage:a.message})});this.state.exportEmbedScene&&i&&kp(i)&&this.setState({fileHandle:i})};magicGenerations=new Map;updateMagicGeneration=({frameElement:t,data:r})=>{r.status==="pending"?pe(t,{customData:{generationData:void 0}},!1):pe(t,{customData:{generationData:r}},!1),this.magicGenerations.set(t.id,r),this.triggerRender()};getTextFromElements(t){return t.reduce((o,i)=>(ve(i)&&o.push(i.text),o),[]).join(`
182
+ <h3>${y}</h3>
183
+ `)}}}else m=Sl(A2(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:q("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:nI(a,af(a,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${uf(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?al.enabled:al.disabled},children:[h&&(0,Ze.jsx)("div",{className:"excalidraw__embeddable-hint",children:E("buttons.embeddableInteractionButton")}),(0,Ze.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${a.strokeWidth}px`},children:($r(a)?this.props.renderEmbeddable?.(a,this.state):null)??(0,Ze.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(a,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`})})]})},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===Be.DARK;return this.scene.getNonDeletedFramesLikes().map(r=>{if(!jd(r,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:o,y:i}=oo({sceneX:r.x,sceneY:r.y},this.state),a=6,s=()=>{ce(r,{name:r.name?.trim()||null}),this.setState({editingFrame:null})},c,d=oI(r);if(r.id===this.state.editingFrame){let u=d;c=(0,Ze.jsx)("input",{autoFocus:!0,value:u,onChange:f=>{ce(r,{name:f.target.value})},onFocus:f=>f.target.select(),onBlur:()=>s(),onKeyDown:f=>{(f.key===R.ESCAPE||f.key===R.ENTER)&&s()},style:{background:this.state.viewBackgroundColor,filter:t?HS:"none",zIndex:2,border:"none",display:"block",padding:`${a}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${a}px, ${a}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-o-a}px`},size:u.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else c=d;return(0,Ze.jsx)("div",{id:this.getFrameNameDOMId(r),style:{position:"absolute",bottom:`${this.state.height+Cn.nameOffsetY-i+this.state.offsetTop}px`,left:`${o-this.state.offsetLeft}px`,zIndex:2,fontSize:Cn.nameFontSize,color:t?Cn.nameColorDarkTheme:Cn.nameColorLightTheme,lineHeight:Cn.nameLineHeight,width:"max-content",maxWidth:`${r.width}px`,overflow:r.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:pt.MOVE,pointerEvents:this.state.viewModeEnabled?al.disabled:al.enabled},onPointerDown:u=>this.handleCanvasPointerDown(u),onWheel:u=>this.handleWheel(u),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:r.id})},children:c},r.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&&Qe(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!he(this.state.editingElement)),u=t[0];return(0,Ze.jsx)("div",{className:q("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":d?al.disabled:al.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)(XM.Provider,{value:this,children:(0,Ze.jsx)(ZM.Provider,{value:this.props,children:(0,Ze.jsx)(k0.Provider,{value:this.excalidrawContainerValue,children:(0,Ze.jsx)(A0.Provider,{value:this.device,children:(0,Ze.jsx)(L0.Provider,{value:this.setAppState,children:(0,Ze.jsx)(M0.Provider,{value:this.state,children:(0,Ze.jsxs)(P0.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,Ze.jsxs)(R0.Provider,{value:this.actionManager,children:[(0,Ze.jsx)(nM,{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:Ri().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)(NM,{trails:[this.laserTrails,this.eraserTrail]}),t.length===1&&this.state.showHyperlinkPopup&&(0,Ze.jsx)(Wk,{element:u,elementsMap:c,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},u.id),this.props.aiEnabled!==!1&&t.length===1&&Ld(u)&&(0,Ze.jsx)(w0,{element:u,elementsMap:a,children:(0,Ze.jsx)(Uh,{title:E("labels.convertToCode"),icon:Ds,checked:!1,onChange:()=>this.onMagicFrameGenerate(u,"button")})}),t.length===1&&fl(u)&&u.customData?.generationData?.status==="done"&&(0,Ze.jsxs)(w0,{element:u,elementsMap:a,children:[(0,Ze.jsx)(Uh,{title:E("labels.copySource"),icon:kp,checked:!1,onChange:()=>this.onIframeSrcCopy(u)}),(0,Ze.jsx)(Uh,{title:"Enter fullscreen",icon:zT,checked:!1,onChange:()=>{let f=this.getHTMLIFrameElement(u);if(f)try{f.requestFullscreen(),this.setState({activeEmbeddable:{element:u,state:"active"},selectedElementIds:{[u.id]:!0},draggingElement:null,selectionElement:null})}catch(m){console.warn(m),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,Ze.jsx)(iM,{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)(w3,{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)(y0,{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)(v0,{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)(BM,{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)=>{ze("export",t,"ui");let i=await Bl(t,r,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:o.exportingFrame}).catch(up).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"?ce(t,{customData:{generationData:void 0}},!1):ce(t,{customData:{generationData:r}},!1),this.magicGenerations.set(t.id,r),this.triggerRender()};getTextFromElements(t){return t.reduce((o,i)=>(he(i)&&o.push(i.text),o),[]).join(`
183
184
 
184
- `)}async onMagicFrameGenerate(t,r){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),Ue("ai","generate (missing key)","d2c");return}let o=$p(this.scene.getNonDeletedElements(),t).filter(m=>!vd(m));if(!o.length){r==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),Ue("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 O0({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:t,files:this.files}),s=await Mp(a),c=this.getTextFromElements(o);Ue("ai","generate (start)","d2c");let d=await E8({image:s,apiKey:this.OPENAI_KEY,text:c,theme:this.state.theme});if(!d.ok){Ue("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(Ue("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"&&(Ps(t.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=wo.get(Yo.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=wo.has(Yo.OAI_API_KEY)||!1;onOpenAIKeyChange=(t,r)=>{if(this.OPENAI_KEY=t||null,r){let o=wo.set(Yo.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"}):vd(i[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),Ue("ai","tool-select (missing key)","d2c");return}let t=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(t.length===0)this.setActiveTool({type:Jt.magicframe}),Ue("ai","tool-select (empty-selection)","d2c");else{let r=t.length===1&&vd(t[0])&&t[0];if(!r&&t.some(i=>Ve(i)||i.frameId)){this.setActiveTool({type:Jt.magicframe});return}Ue("ai","tool-select (existing selection)","d2c");let o;if(r)o=r;else{let[i,a,s,c]=mt(t),d=50;o=Md({...In,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)pe(p,{frameId:o.id});this.setState({selectedElementIds:{[o.id]:!0}})}this.onMagicFrameGenerate(o,"upstream")}};openEyeDropper=({type:t})=>{Gr.set(Aa,{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:Y.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:r},storeAction:Y.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(s=>this.state.selectedElementIds[s.id]?De(s,{[i?"strokeColor":"backgroundColor"]:r}):s),storeAction:Y.CAPTURE})},keepOpenOnAlt:!1})};syncActionResult=Bt(t=>{if(this.unmounted||t===!1)return;t.storeAction===Y.UPDATE?this.store.shouldUpdateSnapshot():t.storeAction===Y.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&&Y0(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||He.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?Ei: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!==Y.NONE&&this.scene.triggerUpdate()});onBlur=Bt(()=>{Jl=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=t=>{t.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Bt(t=>{this.scene.replaceAllElements([]),this.setState(r=>({...Ts(),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{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=k0(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,...vl(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:Y.UPDATE})};isMobileBreakpoint=(t,r)=>t<Ew||r<Cw&&t<ww;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:r,clientHeight:o}=document.body,i=this.device.viewport,a=fs(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:Sw,a=this.device.editor,s=fs(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,A.MODE===n0.TEST||A.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(),hd()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),id&&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),aw()&&!h3()&&this.setState({errorMessage:(0,Qe.jsx)(n8,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new Xo,this.fonts=new Dm({scene:this.scene}),this.renderer=new Fm(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(),en.destroy(),fn.destroy(),clearTimeout(Va),xt.clearCache(),Pr.clearCache(),Va=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Bt(()=>{this.scene.getElementsIncludingDeleted().forEach(t=>en.delete(t)),this.refreshViewportBreakpoints(),this.updateDOMRect(),id||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(Yt(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(Yt(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),Yt(window,"message",this.onWindowMessage,!1),Yt(document,"pointerup",this.removePointer),Yt(document,"copy",this.onCopy),Yt(document,"keyup",this.onKeyUp,{passive:!0}),Yt(document,"pointermove",this.updateCurrentCursorPosition),Yt(document.fonts,"loadingdone",t=>{let r=t.fontfaces;this.fonts.onFontsLoaded(r)}),Yt(document,"gesturestart",this.onGestureStart,!1),Yt(document,"gesturechange",this.onGestureChange,!1),Yt(document,"gestureend",this.onGestureEnd,!1),Yt(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null),this.triggerRender(!0)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(Yt(document,"fullscreenchange",this.onFullscreenChange),Yt(document,"paste",this.pasteFromClipboard),Yt(document,"cut",this.onCut),Yt(window,"resize",this.onResize,!1),Yt(window,"unload",this.onUnload,!1),Yt(window,"blur",this.onBlur,!1),Yt(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),Yt(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(Yt(Ow(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&&qo(this.state)&&this.setState({activeTool:Kt(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&r.theme!==this.state.theme&&k3(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(),qo(r)&&!qo(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?Ei:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme===He.DARK),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(an)}),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&&ul(this.state)&&wi(c,!1)&&Td(c,this.state,fd(Fe.getPointAtIndexGlobalCoordinates(c,-1,a)),this),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&&(iy=r);let i=ve(this.state.editingElement)?!1:!t&&o.size>0;this.state.scrolledOutside!==i&&this.setState({scrolledOutside:i}),this.scheduleImageRefresh()};onScroll=ud(()=>{let{offsetTop:t,offsetLeft:r}=this.getCanvasOffsets();this.setState(o=>o.offsetLeft===r&&o.offsetTop===t?null:{offsetTop:t,offsetLeft:r})},xw);onCut=Bt(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Zo(t.target)||(this.actionManager.executeAction(rh,"keyboard",t),t.preventDefault(),t.stopPropagation())});onCopy=Bt(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Zo(t.target)||(this.actionManager.executeAction(hc,"keyboard",t),t.preventDefault(),t.stopPropagation())});static resetTapTwice(){Hm=!1}onTouchStart=t=>{if(iw&&t.preventDefault(),!Hm){Hm=!0,clearTimeout(oy),oy=window.setTimeout(e.resetTapTwice,gw);return}if(Hm&&t.touches.length===1){let r=t.touches[0];this.handleCanvasDoubleClick({clientX:r.clientX,clientY:r.clientY}),Hm=!1,clearTimeout(oy)}t.touches.length===2&&this.setState({selectedElementIds:vt({},this.state),activeEmbeddable:null})};onTouchEnd=t=>{this.resetContextMenuTimer(),t.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:vt(this.state.previousSelectedElementIds,this.state)}):dt.pointers.clear()};pasteFromClipboard=Bt(async t=>{let r=!!wg,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)||Zo(o)))return;let{x:s,y:c}=Dt({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),d=t?.clipboardData?.files[0],p=await Dp(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=M0(f))}}if(_p(d)&&!p.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:E("errors.imageToolNotSupported")});return}let f=this.createImageElement({sceneX:s,sceneY:c});this.insertImageElement(f,d),this.initializeImageDimensions(f),this.setState({selectedElementIds:vt({[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?Lc(p.elements):p.elements;this.addElementsFromPasteOrLibrary({elements:f,files:p.files||null,position:"cursor",retainSeed:r})}else if(p.text){if(p.text&&_8(p.text)){let h=await import("./excalidraw-assets/dist-567JAXHK.js");try{let{elements:b,files:y}=await h.parseMermaidToExcalidraw(p.text,{fontSize:kn}),w=Lc(b,{regenerateIds:!0});this.addElementsFromPasteOrLibrary({elements:w,files:y,position:"cursor"});return}catch(b){console.warn(`parsing pasted text as mermaid definition failed: ${b.message}`)}}let f=Gw(p.text).split(/\n+/).map(h=>h.trim()).filter(Boolean),m=f.map(h=>L3(h)).filter(h=>_s(h,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(h)||gl(h)?.type==="video"));if(!wg&&m.length>0&&m.length===f.length){let h=[];for(let b of m){let y=h[h.length-1],w=this.insertEmbeddableElement({sceneX:y?y.x+y.width+20:s,sceneY:c,link:Ai(b)});w&&h.push(w)}h.length&&this.setState({selectedElementIds:Object.fromEntries(h.map(b=>[b.id,!0]))});return}this.addTextFromPaste(p.text,r)}this.setActiveTool({type:"selection"}),t?.preventDefault()});addElementsFromPasteOrLibrary=t=>{let r=I0(t.elements,null,void 0),[o,i,a,s]=mt(r),c=cl(o,a)/2,d=cl(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:m,y:h}=Dt({clientX:p,clientY:f},this.state),b=m-c,y=h-d,[w,C]=io(b,y,this.state.gridSize),M=Tp(r.map(D=>De(D,{x:D.x+w-o,y:D.y+C-i})),{randomizeSeed:!t.retainSeed}),I=[...this.scene.getElementsIncludingDeleted(),...M];Mo(I,Oe(M));let N=this.getTopLayerFrameAtSceneCoords({x:m,y:h});if(N){let D=b5(M,N);Fp(I,D,N)}this.scene.replaceAllElements(I),M.forEach(D=>{if(ve(D)&&nr(D)){let z=fl(D,this.scene.getElementsMapIncludingDeleted());Ur(D,z,this.scene.getElementsMapIncludingDeleted())}}),t.files&&(this.files={...this.files,...t.files}),this.store.shouldCaptureIncrement();let $=Ns(M);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Gr.get(km)?this.state.openSidebar:null,...Pr({editingGroupId:null,selectedElementIds:$.reduce((D,z)=>(nr(z)||(D[z.id]=!0),D),{})},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(m=>m.type==="imageUrl").map(m=>m.value),s=await Promise.all(a.map(async m=>{try{return{file:await F3(m)}}catch(h){let b=h.message;return h.cause==="FETCH_ERROR"?b=E("errors.failedToFetchImage"):h.cause==="UNSUPPORTED"&&(b=E("errors.unsupportedFileType")),{errorMessage:b}}})),c=i,d=!1,p={};for(let m of s)if(m.file){let h=this.createImageElement({sceneX:o,sceneY:c}),b=await this.insertImageElement(h,m.file);b&&(d||(d=!0,c-=b.height/2),pe(b,{y:c},!1),c=h.y+h.height+25,p[h.id]=!0)}this.setState({selectedElementIds:vt(p,this.state)});let f=s.find(m=>!!m.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(`
185
+ `)}async onMagicFrameGenerate(t,r){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),ze("ai","generate (missing key)","d2c");return}let o=df(this.scene.getNonDeletedElements(),t).filter(m=>!Ld(m));if(!o.length){r==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),ze("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 bv({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);ze("ai","generate (start)","d2c");let d=await FM({image:s,apiKey:this.OPENAI_KEY,text:c,theme:this.state.theme});if(!d.ok){ze("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(ze("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 u=d.choices[0].message.content,f=u.slice(u.indexOf("<!DOCTYPE html>"),u.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:i,data:{status:"done",html:f}})}onIframeSrcCopy(t){t.customData?.generationData?.status==="done"&&(Ws(t.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=Io.get(qo.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=Io.has(qo.OAI_API_KEY)||!1;onOpenAIKeyChange=(t,r)=>{if(this.OPENAI_KEY=t||null,r){let o=Io.set(qo.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"}):Ld(i[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),ze("ai","tool-select (missing key)","d2c");return}let t=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(t.length===0)this.setActiveTool({type:Zt.magicframe}),ze("ai","tool-select (empty-selection)","d2c");else{let r=t.length===1&&Ld(t[0])&&t[0];if(!r&&t.some(i=>He(i)||i.frameId)){this.setActiveTool({type:Zt.magicframe});return}ze("ai","tool-select (existing selection)","d2c");let o;if(r)o=r;else{let[i,a,s,c]=lt(t),d=50;o=$d({...Cn,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 u of t)ce(u,{frameId:o.id});this.setState({selectedElementIds:{[o.id]:!0}})}this.onMagicFrameGenerate(o,"upstream")}};openEyeDropper=({type:t})=>{Hr.set(Ma,{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:W.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:r},storeAction:W.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(s=>this.state.selectedElementIds[s.id]?ke(s,{[i?"strokeColor":"backgroundColor"]:r}):s),storeAction:W.CAPTURE})},keepOpenOnAlt:!1})};dismissLinearEditor=()=>{setTimeout(()=>{this.setState({editingLinearElement:null})})};syncActionResult=Ot(t=>{if(this.unmounted||t===!1)return;t.storeAction===W.UPDATE?this.store.shouldUpdateSnapshot():t.storeAction===W.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&&Rv(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||Be.LIGHT,d=t?.appState?.name??this.state.name,u=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?yi: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:u})),r=!0}!r&&t.storeAction!==W.NONE&&this.scene.triggerUpdate()});onBlur=Ot(()=>{is=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=t=>{t.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Ot(t=>{this.scene.replaceAllElements([]),this.setState(r=>({...As(),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=sv(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,...Al(r.elements,{...r.appState,width:this.state.width,height:this.state.height,offsetTop:this.state.offsetTop,offsetLeft:this.state.offsetLeft})}),this.resetStore(),this.resetHistory(),this.syncActionResult({...r,storeAction:W.UPDATE}),this.fonts.loadSceneFonts()};isMobileBreakpoint=(t,r)=>t<US||r<WS&&t<GS;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:KS,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,A.MODE===ys.TEST||A.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},fonts:{configurable:!0,value:this.fonts}})}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(),Ad()||(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),_S()&&!bI()&&this.setState({errorMessage:(0,Ze.jsx)(yM,{})})}componentWillUnmount(){window.launchQueue?.setConsumer(()=>{}),this.renderer.destroy(),this.scene.destroy(),this.scene=new rn,this.fonts=new vl({scene:this.scene}),this.renderer=new Xm(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(),ha.destroy(),gn.destroy(),clearTimeout(Ka),gt.clearCache(),Rr.clearCache(),Ka=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Ot(()=>{this.scene.getElementsIncludingDeleted().forEach(t=>ha.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(Wt(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(Wt(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),Wt(window,"message",this.onWindowMessage,!1),Wt(document,"pointerup",this.removePointer),Wt(document,"copy",this.onCopy),Wt(document,"keyup",this.onKeyUp,{passive:!0}),Wt(document,"pointermove",this.updateCurrentCursorPosition),Wt(document.fonts,"loadingdone",t=>{let r=t.fontfaces;this.fonts.onLoaded(r)}),Wt(document,"gesturestart",this.onGestureStart,!1),Wt(document,"gesturechange",this.onGestureChange,!1),Wt(document,"gestureend",this.onGestureEnd,!1),Wt(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null),this.triggerRender(!0)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(Wt(document,"fullscreenchange",this.onFullscreenChange),Wt(document,"paste",this.pasteFromClipboard),Wt(document,"cut",this.onCut),Wt(window,"resize",this.onResize,!1),Wt(window,"unload",this.onUnload,!1),Wt(window,"blur",this.onBlur,!1),Wt(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),Wt(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(Wt(o2(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&&jo(this.state)&&this.setState({activeTool:Gt(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&r.theme!==this.state.theme&&P2(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(),jo(r)&&!jo(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?yi: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(Fo)}),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&&El(this.state)&&Ei(c,!1)&&Hd(c,this.state,ma(Le.getPointAtIndexGlobalCoordinates(c,-1,a)),this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements()),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&&(C0=r);let i=he(this.state.editingElement)?!1:!t&&o.size>0;this.state.scrolledOutside!==i&&this.setState({scrolledOutside:i}),this.scheduleImageRefresh()};onScroll=dl(()=>{let{offsetTop:t,offsetLeft:r}=this.getCanvasOffsets();this.setState(o=>o.offsetLeft===r&&o.offsetTop===t?null:{offsetTop:t,offsetLeft:r})},zS);onCut=Ot(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Yn(t.target)||(this.actionManager.executeAction(Lg,"keyboard",t),t.preventDefault(),t.stopPropagation())});onCopy=Ot(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Yn(t.target)||(this.actionManager.executeAction(kc,"keyboard",t),t.preventDefault(),t.stopPropagation())});static resetTapTwice(){Jm=!1}onTouchStart=t=>{if(IS&&t.preventDefault(),!Jm){Jm=!0,clearTimeout(S0),S0=window.setTimeout(e.resetTapTwice,FS);return}if(Jm&&t.touches.length===1){let r=t.touches[0];this.handleCanvasDoubleClick({clientX:r.clientX,clientY:r.clientY}),Jm=!1,clearTimeout(S0)}t.touches.length===2&&this.setState({selectedElementIds:ht({},this.state),activeEmbeddable:null})};onTouchEnd=t=>{this.resetContextMenuTimer(),t.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:ht(this.state.previousSelectedElementIds,this.state)}):at.pointers.clear()};pasteFromClipboard=Ot(async t=>{let r=!!Yh,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)||Yn(o)))return;let{x:s,y:c}=Mt({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),d=t?.clipboardData?.files[0],u=await of(t,r);if(!d&&!r){if(u.mixedContent)return this.addElementsFromMixedContentPaste(u.mixedContent,{isPlainPaste:r,sceneX:s,sceneY:c});if(u.text){let f=u.text.trim();f.startsWith("<svg")&&f.endsWith("</svg>")&&(d=mv(f))}}if(zp(d)&&!u.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:E("errors.imageToolNotSupported")});return}let f=this.createImageElement({sceneX:s,sceneY:c});this.insertImageElement(f,d),this.initializeImageDimensions(f),this.setState({selectedElementIds:ht({[f.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(u,t)===!1)return}catch(f){console.error(f)}if(u.errorMessage)this.setState({errorMessage:u.errorMessage});else if(u.spreadsheet&&!r)this.setState({pasteDialog:{data:u.spreadsheet,shown:!0}});else if(u.elements){let f=u.programmaticAPI?Kc(u.elements):u.elements;this.addElementsFromPasteOrLibrary({elements:f,files:u.files||null,position:"cursor",retainSeed:r})}else if(u.text){if(u.text&&WM(u.text)){let g=await import("./excalidraw-assets/dist-NLUQPPQQ.js");try{let{elements:h,files:b}=await g.parseMermaidToExcalidraw(u.text),y=Kc(h,{regenerateIds:!0});this.addElementsFromPasteOrLibrary({elements:y,files:b,position:"cursor"});return}catch(h){console.warn(`parsing pasted text as mermaid definition failed: ${h.message}`)}}let f=u2(u.text).split(/\n+/).map(g=>g.trim()).filter(Boolean),m=f.map(g=>RC(g)).filter(g=>Us(g,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(g)||Sl(g)?.type==="video"));if(!Yh&&m.length>0&&m.length===f.length){let g=[];for(let h of m){let b=g[g.length-1],y=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:s,sceneY:c,link:Ti(h)});y&&g.push(y)}g.length&&this.setState({selectedElementIds:Object.fromEntries(g.map(h=>[h.id,!0]))});return}this.addTextFromPaste(u.text,r)}this.setActiveTool({type:"selection"}),t?.preventDefault()});addElementsFromPasteOrLibrary=t=>{let r=lv(t.elements,null,void 0),[o,i,a,s]=lt(r),c=ul(o,a)/2,d=ul(i,s)/2,u=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:m,y:g}=Mt({clientX:u,clientY:f},this.state),h=m-c,b=g-d,[y,T]=no(h,b,this.state.gridSize),k=Vp(r.map(L=>ke(L,{x:L.x+y-o,y:L.y+T-i})),{randomizeSeed:!t.retainSeed}),C=[...this.scene.getElementsIncludingDeleted(),...k];Do(C,Re(k));let O=this.getTopLayerFrameAtSceneCoords({x:m,y:g});if(O){let L=tI(k,O);lf(C,L,O)}this.scene.replaceAllElements(C),k.forEach(L=>{if(he(L)&&Ir(L)){let F=Il(L,this.scene.getElementsMapIncludingDeleted());qt(L,F,this.scene.getElementsMapIncludingDeleted())}}),t.files&&(this.files={...this.files,...t.files}),this.store.shouldCaptureIncrement();let z=js(k);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Hr.get(Bm)?this.state.openSidebar:null,...Rr({editingGroupId:null,selectedElementIds:z.reduce((L,F)=>(Ir(F)||(L[F.id]=!0),L),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{t.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),t.fitToContent&&this.scrollToContent(k,{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(m=>m.type==="imageUrl").map(m=>m.value),s=await Promise.all(a.map(async m=>{try{return{file:await hC(m)}}catch(g){let h=g.message;return g.cause==="FETCH_ERROR"?h=E("errors.failedToFetchImage"):g.cause==="UNSUPPORTED"&&(h=E("errors.unsupportedFileType")),{errorMessage:h}}})),c=i,d=!1,u={};for(let m of s)if(m.file){let g=this.createImageElement({sceneX:o,sceneY:c}),h=await this.insertImageElement(g,m.file);h&&(d||(d=!0,c-=h.height/2),ce(h,{y:c},!1),c=g.y+g.height+25,u[g.id]=!0)}this.setState({selectedElementIds:ht(u,this.state)});let f=s.find(m=>!!m.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(`
185
186
 
186
- `),r)}}addTextFromPaste(t,r=!1){let{x:o,y:i}=Dt({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:Uu,verticalAlign:i0,locked:!1},s=Lr({fontSize:a.fontSize,fontFamily:a.fontFamily}),c=Ii(a.fontFamily),[d,,p]=w0(this.state),f=Math.max(Math.min((p-d)*.5,800),200),m=10,h=i,b=r?[t]:t.split(`
187
- `),y=b.reduce((w,C,M)=>{let _=C.trim();if(_.length){let I=this.getTopLayerFrameAtSceneCoords({x:o,y:h}),N=Ti(_,s,c),$=N.width>f,D=$?gp(_,s,f):_;N=$?Ti(D,s,c):N;let z=o-N.width/2,B=h-N.height/2,q=va({...a,x:z,y:B,text:D,originalText:_,lineHeight:c,autoResize:!$,frameId:I?I.id:null});w.push(q),h+=q.height+m}else b[M-1]?.trim()&&(h+=l3(a.fontSize,c)+m);return w},[]);y.length!==0&&(this.scene.insertElements(y),this.setState({selectedElementIds:vt(Object.fromEntries(y.map(w=>[w.id,!0])),this.state)}),!r&&y.length>1&&M8===!1&&!this.device.editor.isMobile&&(this.setToast({message:E("toast.pasteAsSingleElement",{shortcut:X("CtrlOrCmd+Shift+V")}),duration:5e3}),M8=!0),this.store.shouldCaptureIncrement())}setAppState=(t,r)=>{this.setState(t,r)};removePointer=t=>{Va&&this.resetContextMenuTimer(),dt.pointers.delete(t.pointerId)};toggleLock=(t="ui")=>{this.state.activeTool.locked||Ue("toolbar","toggleLock",`${t} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(r=>({activeTool:{...r.activeTool,...Kt(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(tT)};zoomCanvas=t=>{this.setState({...Pi({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Li(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}=am({targetElements:o,appState:this.state,fitToViewport:!!r?.fitToViewport,viewportZoomFactor:r?.viewportZoomFactor});i=c.zoom,a=c.scrollX,s=c.scrollY}else{let c=vl(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=Dw({fromValues:{scrollX:c,scrollY:d,zoom:p},toValues:{scrollX:a,scrollY:s,zoom:i.value},interpolateValue:(m,h,b,y)=>{if(y==="zoom")return m*Math.pow(h/m,sl(b))},onStep:({scrollX:m,scrollY:h,zoom:b})=>{this.setState({scrollX:m,scrollY:h,zoom:{value:b}})},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,ad,window.location.pathname)}}catch(t){this.setState({errorMessage:t.message})}};addFiles=Bt(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=>{xd(o)&&r.has(o.fileId)&&(this.imageCache.delete(o.fileId),en.delete(o))}),this.scene.triggerUpdate(),this.addNewImagesToImageCache()});updateScene=Bt(t=>{let r=ha(t.elements??[]);if(t.storeAction&&t.storeAction!==Y.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(),Oe(r)):i;t.storeAction===Y.CAPTURE?this.store.captureIncrement(s,a):t.storeAction===Y.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=Bt(t=>{this.lastViewportPosition.x=t.clientX,this.lastViewportPosition.y=t.clientY});onKeyDown=Bt(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[R.CTRL_OR_CMD]&&t.key===R.P&&!t.shiftKey&&!t.altKey){this.setToast({message:E("commandPalette.shortcutHint",{shortcut:mr("commandPalette")})}),t.preventDefault();return}if(t[R.CTRL_OR_CMD]&&t.key.toLowerCase()===R.V&&(wg=t.shiftKey,clearTimeout(A8),A8=window.setTimeout(()=>{wg=!1},100)),t[R.CTRL_OR_CMD]&&Zo(t.target)&&(t.code===Be.MINUS||t.code===Be.EQUAL)){t.preventDefault();return}if(Zo(t.target)&&t.key!==R.ESCAPE||ws(t.key)&&Pw(t.target))return;if(t.key===R.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(t.key.toLowerCase()===R.E&&t.shiftKey&&t[R.CTRL_OR_CMD]){t.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(t.key===R.PAGE_UP||t.key===R.PAGE_DOWN){let a=(t.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;t.key===R.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[R.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),ws(t.key)){let a=this.state.gridSize&&(t.shiftKey?r0:this.state.gridSize)||(t.shiftKey?lw:r0),s=0,c=0;t.key===R.ARROW_LEFT?s=-a:t.key===R.ARROW_RIGHT?s=a:t.key===R.ARROW_UP?c=-a:t.key===R.ARROW_DOWN&&(c=a);let d=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});d.forEach(p=>{pe(p,{x:p.x+s,y:p.y+c}),pl(p,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:d})}),this.setState({suggestedBindings:cp(d,this)}),t.preventDefault()}else if(t.key===R.ENTER){let a=this.scene.getSelectedElements(this.state);if(a.length===1){let s=a[0];if(t[R.CTRL_OR_CMD])lt(s)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==a[0].id)&&(this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Fe(s)}));else if(ve(s)||p3(s)){let c;ve(s)||(c=s);let d=xp(s,this.state,this.scene.getNonDeletedElementsMap()),p=d.x,f=d.y;this.startTextEditing({sceneX:p,sceneY:f,container:c}),t.preventDefault();return}else Ve(s)&&this.setState({editingFrame:s.id})}}else if(!t.ctrlKey&&!t.altKey&&!t.metaKey&&this.state.draggingElement===null){let a=CI(t.key);a?(this.state.activeTool.type!==a&&Ue("toolbar",a,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:a}),t.stopPropagation()):t.key===R.Q&&(this.toggleLock("keyboard"),t.stopPropagation())}if(t.key===R.SPACE&&dt.pointers.size===0&&(Jl=!0,bt(this.interactiveCanvas,gt.GRAB),t.preventDefault()),(t.key===R.G||t.key===R.S)&&!t.altKey&&!t[R.CTRL_OR_CMD]){let a=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!a.length)return;t.key===R.G&&(ba(this.state.activeTool.type)||a.some(s=>ba(s.type)))&&(this.setState({openPopup:"elementBackground"}),t.stopPropagation()),t.key===R.S&&(this.setState({openPopup:"elementStroke"}),t.stopPropagation())}if(t.key===R.K&&!t.altKey&&!t[R.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}t[R.CTRL_OR_CMD]&&(t.key===R.BACKSPACE||t.key===R.DELETE)&&Gr.set(Wl,"clearCanvas");let r=t.key.toLocaleLowerCase(),o=r===R.S&&t.shiftKey,i=t.key===R.I||r===R.G&&t.shiftKey;(o||i)&&this.openEyeDropper({type:o?"stroke":"background"})});onWheel=Bt(t=>{!(t.target instanceof HTMLCanvasElement)&&t.ctrlKey&&t.preventDefault()});onKeyUp=Bt(t=>{t.key===R.SPACE&&(this.state.viewModeEnabled?bt(this.interactiveCanvas,gt.GRAB):this.state.activeTool.type==="selection"?Jo(this.interactiveCanvas):(Ln(this.interactiveCanvas,this.state),this.setState({selectedElementIds:vt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),Jl=!1),!t[R.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),ws(t.key)&&(Sd(this.scene.getSelectedElements(this.state).filter(lt),this,ul(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=Kt(this.state,t);r.type==="hand"?bt(this.interactiveCanvas,gt.GRAB):Jl||Ln(this.interactiveCanvas,this.state),Lw(document.activeElement)&&this.focusContainer(),Vw(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:vt({},o),selectedGroupIds:vt({},o),editingGroupId:null,multiElement:null,...i}:{...o,activeTool:r,...i}})};setOpenDialog=t=>{this.setState({openDialog:t})};setCursor=t=>{bt(this.interactiveCanvas,t)};resetCursor=()=>{Jo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>dt.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${E("labels.untitled")}-${d0()}`;onGestureStart=Bt(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:vt({},this.state),activeEmbeddable:null}),dt.initialScale=this.state.zoom.value});onGestureChange=Bt(t=>{if(t.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let r=dt.initialScale;r&&this.setState(o=>({...Pi({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Li(r*t.scale)},o)}))});onGestureEnd=Bt(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:vt(this.state.previousSelectedElementIds,this.state)}),dt.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&&ve(c)?De(c,{originalText:a,isDeleted:s??c.isDeleted,...ya(c,fl(c,o),o,a)}):c)])};I8({id:t.id,canvas:this.canvas,getViewportCoords:(a,s)=>{let{x:c,y:d}=no({sceneX:a,sceneY:s},this.state);return[c-this.state.offsetLeft,d-this.state.offsetTop]},onChange:Bt(a=>{i(a,!1),Y0(t)&&pl(t,o)}),onSubmit:Bt(({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:vt({...p.selectedElementIds,[d]:!0},p)}))}c&&mp(this.scene.getNonDeletedElements(),[t]),(!c||r)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&Ln(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:vt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(t,r){let o=this.getElementAtPosition(t,r,{includeBoundTextElement:!0});return o&&ve(o)&&!o.isDeleted?o:null}getElementShape(t){switch(t.type){case"rectangle":case"diamond":case"frame":case"magicframe":case"embeddable":case"image":case"iframe":case"text":case"selection":return V3(t);case"arrow":case"line":{let r=en.get(t)?.[0]??en.generateElementShape(t,null)[0],[,,,,o,i]=Wr(t,this.scene.getNonDeletedElementsMap());return D0(t)?j3(t,r,[t.x,t.y],t.angle,[o,i]):Z3(r,[t.x,t.y],t.angle,[o,i])}case"ellipse":return Y3(t);case"freedraw":{let[,,,,r,o]=Wr(t,this.scene.getNonDeletedElementsMap());return X3(t,[r,o],D0(t))}}}getBoundTextShape(t){let r=ct(t,this.scene.getNonDeletedElementsMap());return r?t.type==="arrow"?this.getElementShape({...r,...Fe.getBoundTextElementPosition(t,r,this.scene.getNonDeletedElementsMap())}):this.getElementShape(r):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 Ms({x:t,y:r,element:a,shape:this.getElementShape(a),threshold:this.getElementHitThreshold()/2,frameNameBound:Ve(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||!(ve(d)&&d.containerId)))).filter(d=>this.hitElement(t,r,d)).filter(d=>{let p=Op(d,s);return p&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?F0({x:t,y:r},p,s):!0}).filter(d=>ml(d)?(a.push(d),!1):!0).concat(a)}getElementHitThreshold(){return cw/this.state.zoom.value}hitElement(t,r,o,i=!0){if(i&&this.state.selectedElementIds[o.id]&&Up([o],this.state)){let s=K3(o,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return t3([t,r],s)}return Q3(t,r,this.getBoundTextShape(o))?!0:Ms({x:t,y:r,element:o,shape:this.getElementShape(o),threshold:this.getElementHitThreshold(),frameNameBound:Ve(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 Ci(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]=Wr(o[s],this.scene.getNonDeletedElementsMap());if(Hr(o[s])&&Ms({x:t,y:r,element:o[s],shape:this.getElementShape(o[s]),threshold:this.getElementHitThreshold()})){a=o[s];break}else if(c<t&&t<p&&d<r&&r<f){a=o[s];break}}return Ci(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&&(ct(i,this.scene.getNonDeletedElementsMap())||(s=!0));let d=null,p=this.scene.getSelectedElements(this.state);p.length===1?ve(p[0])?d=p[0]:i?d=ct(p[0],this.scene.getNonDeletedElementsMap()):d=this.getTextElementAtPosition(t,r):d=this.getTextElementAtPosition(t,r);let f=d?.fontFamily||this.state.currentItemFontFamily,m=d?.lineHeight||Ii(f),h=this.state.currentItemFontSize;if(!d&&s&&i&&!Hr(i)){let C=bp(Lr({fontSize:h,fontFamily:f}),m),M=hp(h,m),_=Math.max(i.height,M),I=Math.max(i.width,C);pe(i,{height:_,width:I}),t=i.x+I/2,r=i.y+_/2,c&&(c=this.getTextWysiwygSnappedToCenterPosition(t,r,this.state,i))}let b=this.getTopLayerFrameAtSceneCoords({x:t,y:r}),y=d||va({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:h,fontFamily:f,textAlign:c?"center":this.state.currentItemTextAlign,verticalAlign:c?Vo.MIDDLE:i0,containerId:s?i?.id:void 0,groupIds:i?.groupIds??[],lineHeight:m,angle:i?.angle??0,frameId:b?b.id:null});if(!d&&s&&i&&pe(i,{boundElements:(i.boundElements||[]).concat({type:"text",id:y.id})}),this.setState({editingElement:y}),!d)if(i&&s){let w=this.scene.getElementIndex(i.id);this.scene.insertElementAtIndex(y,w+1)}else this.scene.insertElement(y);a||d||i?this.handleTextWysiwyg(y,{isExistingElement:!!d}):this.setState({draggingElement:y,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&&lt(r[0])&&t[R.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==r[0].id)){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Fe(r[0])});return}Jo(this.interactiveCanvas);let{x:o,y:i}=Dt(t,this.state);if(Mn(this.state).length>0){let s=this.getElementAtPosition(o,i),c=s&&E3(s,this.state.selectedGroupIds);if(c){this.store.shouldCaptureIncrement(),this.setState(d=>({...d,...Pr({editingGroupId:c,selectedElementIds:{[s.id]:!0}},this.scene.getNonDeletedElements(),d,this)}));return}}if(Jo(this.interactiveCanvas),!t[R.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let s=this.getElementAtPosition(o,i);if(gs(s)){this.setState({activeEmbeddable:{element:s,state:"active"}});return}let c=this.getTextBindableContainerAtPosition(o,i);if(c&&(jn(c)||!dl(c.backgroundColor)||Ms({x:o,y:i,element:c,shape:this.getElementShape(c),threshold:this.getElementHitThreshold()}))){let d=xp(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&&Pp(a,this.scene.getNonDeletedElementsMap(),this.state,[t.x,t.y],this.device.editor.isMobile)))};redirectToLink=(t,r)=>{let o=ga(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||r&&o>il||!r&&o!==0)return;let i=Dt(this.lastPointerDownEvent,this.state),a=this.scene.getNonDeletedElementsMap(),s=Pp(this.hitLinkElement,a,this.state,[i.x,i.y],this.device.editor.isMobile),c=Dt(this.lastPointerUpEvent,this.state),d=Pp(this.hitLinkElement,a,this.state,[c.x,c.y],this.device.editor.isMobile);if(s&&d){let p=this.hitLinkElement.link;if(p){p=Ai(p);let f;if(this.props.onLinkOpen&&(f=rp("excalidraw-link",t.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:p},f)),!f?.defaultPrevented){let m=Ep(p)?"_self":"_blank",h=window.open(void 0,m);h&&(h.opener=null,h.location=p)}}}};getTopLayerFrameAtSceneCoords=t=>{let r=this.scene.getNonDeletedElementsMap(),o=this.scene.getNonDeletedFramesLikes().filter(i=>F0(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,dt.pointers.has(t.pointerId)&&dt.pointers.set(t.pointerId,{x:t.clientX,y:t.clientY});let r=dt.initialScale;if(dt.pointers.size===2&&dt.lastCenter&&r&&dt.initialDistance){let h=mv(dt.pointers),b=h.x-dt.lastCenter.x,y=h.y-dt.lastCenter.y;dt.lastCenter=h;let w=uv(Array.from(dt.pointers.values())),C=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:w/dt.initialDistance,M=C?Li(r*C):this.state.zoom.value;this.setState(_=>{let I=Pi({viewportX:h.x,viewportY:h.y,nextZoom:M},_);this.translateCanvas({zoom:I.zoom,scrollX:I.scrollX+2*(b/M),scrollY:I.scrollY+2*(y/M),shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else dt.lastCenter=dt.initialDistance=dt.initialScale=null;if(Jl||Um||ny||ki(this.state))return;let i=hv(iy,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(i?Jo(this.interactiveCanvas):Ln(this.interactiveCanvas,this.state));let a=Dt(t,this.state),{x:s,y:c}=a;if(!this.state.draggingElement&&o8(this.state.activeTool.type)){let{originOffset:h,snapLines:b}=r8(this.scene.getNonDeletedElements(),this.state,{x:s,y:c},t,this.scene.getNonDeletedElementsMap());this.setState(y=>{let w=np(y.snapLines,b),C=y.originSnapOffset?np(y.originSnapOffset,h):h;return y.snapLines===w&&y.originSnapOffset===C?null:{snapLines:w,originSnapOffset:C}})}else this.state.draggingElement||this.setState(h=>h.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let h=Fe.handlePointerMove(t,s,c,this.state,this.scene.getNonDeletedElementsMap());h&&h!==this.state.editingLinearElement&&(0,Cg.flushSync)(()=>{this.setState({editingLinearElement:h})}),h?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(a):(0,Cg.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(Kw(this.state.activeTool.type)){let{draggingElement:h}=this.state;wi(h,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(h,[a],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(a)}if(this.state.multiElement){let{multiElement:h}=this.state,{x:b,y}=h,{points:w,lastCommittedPoint:C}=h,M=w[w.length-1];if(Ln(this.interactiveCanvas,this.state),M===C)ga(s-b,c-y,M[0],M[1])>=$u?pe(h,{points:[...w,[s-b,c-y]]}):bt(this.interactiveCanvas,gt.POINTER);else if(w.length>2&&C&&ga(s-b,c-y,C[0],C[1])<$u)bt(this.interactiveCanvas,gt.POINTER),pe(h,{points:w.slice(0,-1)});else{let[_,I]=io(s,c,t[R.CTRL_OR_CMD]?null:this.state.gridSize),[N,$]=h?.lastCommittedPoint??[0,0],D=_-b-N,z=I-y-$;lp(t)&&({width:D,height:z}=$0(N+b,$+y,_,I)),yd(w,this.state.zoom.value)&&bt(this.interactiveCanvas,gt.POINTER),pe(h,{points:[...w.slice(0,-1),[N+D,$+z]]})}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 h=H0(p,this.state,s,c,this.state.zoom,t.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(h&&h.transformHandleType){bt(this.interactiveCanvas,W0(h));return}}}else if(f.length>1&&!i){let h=U0(mt(f),s,c,this.state.zoom,t.pointerType,this.device);if(h){bt(this.interactiveCanvas,W0({transformHandleType:h}));return}}let m=this.getElementAtPosition(a.x,a.y);this.hitLinkElement=this.getElementLinkAtPosition(a,m),!qo(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(bt(this.interactiveCanvas,gt.POINTER),ST(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(TT(),m&&(m.link||$r(m))&&this.state.selectedElementIds[m.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?bt(this.interactiveCanvas,ve(m)?gt.TEXT:gt.CROSSHAIR):this.state.viewModeEnabled?bt(this.interactiveCanvas,gt.GRAB):i?bt(this.interactiveCanvas,gt.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,s,c):t[R.CTRL_OR_CMD]?bt(this.interactiveCanvas,gt.AUTO):(m||this.isHittingCommonBoundingBoxOfSelectedElements(a,f))&&!m?.locked&&(m&&gs(m)&&this.isIframeLikeElementCenter(m,t,s,c)?(bt(this.interactiveCanvas,gt.POINTER),this.setState({activeEmbeddable:{element:m,state:"hover"}})):(bt(this.interactiveCanvas,gt.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=h=>{for(let b of h){if(b.locked)return;if(t.altKey?this.elementsPendingErasure.delete(b.id)&&(i=!0):this.elementsPendingErasure.has(b.id)||(i=!0,this.elementsPendingErasure.add(b.id)),i&&b.groupIds?.length){let y=b.groupIds.at(-1);if(!a.has(y)){a.add(y);let w=Zt(s,y);for(let C of w)t.altKey?this.elementsPendingErasure.delete(C.id):this.elementsPendingErasure.add(C.id)}}}},d=ga(r.lastCoords.x,r.lastCoords.y,o.x,o.y),p=this.getElementHitThreshold(),f={...r.lastCoords},m=0;for(;m<=d;){let h=this.getElementsAtPosition(f.x,f.y);if(c(h),m===d)break;m=Math.min(m+p,d);let b=m/d,y=(1-b)*f.x+b*o.x,w=(1-b)*f.y+b*o.y;f.x=y,f.y=w}if(r.lastCoords.x=o.x,r.lastCoords.y=o.y,i){for(let h of this.scene.getNonDeletedElements())nr(h)&&(this.elementsPendingErasure.has(h.id)||this.elementsPendingErasure.has(h.containerId))&&(t.altKey?(this.elementsPendingErasure.delete(h.id),this.elementsPendingErasure.delete(h.containerId)):(this.elementsPendingErasure.add(h.id),this.elementsPendingErasure.add(h.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.triggerRender()}};handleTouchMove=t=>{Wm=!0};handleHoverSelectedLinearElement(t,r,o){let i=this.scene.getNonDeletedElementsMap(),a=Fe.getElement(t.elementId,i);if(a)if(this.state.selectedLinearElement){let s=-1,c=null;Ms({x:r,y:o,element:a,shape:this.getElementShape(a)})?(s=Fe.getPointIndexUnderCursor(a,i,this.state.zoom,r,o),c=Fe.getSegmentMidpointHitCoords(t,{x:r,y:o},this.state,this.scene.getNonDeletedElementsMap()),s>=0||c?bt(this.interactiveCanvas,gt.POINTER):this.hitElement(r,o,a)&&bt(this.interactiveCanvas,gt.MOVE)):this.hitElement(r,o,a)&&bt(this.interactiveCanvas,gt.MOVE),this.state.selectedLinearElement.hoverPointIndex!==s&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:s}}),Fe.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,c)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:c}})}else bt(this.interactiveCanvas,gt.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:vt(Object.keys(this.state.selectedElementIds).filter(f=>f!==p.id).reduce((f,m)=>(f[m]=this.state.selectedElementIds[m],f),{}),this.state)},storeAction:Y.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=fs(this.device,{isTouchScreen:!0})),Um||(this.lastPointerDownEvent=t,this.handleCanvasPanUsingWheelOrSpaceDrag(t)))return;if(this.setState({lastPointerDownWith:t.pointerType,cursorButton:"down"}),this.savePointer(t.clientX,t.clientY,"down"),t.button===ca.ERASER&&this.state.activeTool.type!==Jt.eraser){this.setState({activeTool:Kt(this.state,{type:Jt.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(t);let p=()=>{f(),m?.(),qo(this.state)&&this.setState({activeTool:Kt(this.state,{...this.state.activeTool.lastActiveTool||{type:Jt.selection},lastActiveToolBeforeEraser:null})})},f=Yt(window,"pointerup",p,{once:!0}),m;requestAnimationFrame(()=>{m=this.missingPointerEventCleanupEmitter.once(p)})});return}if(t.button!==ca.MAIN&&t.button!==ca.TOUCH&&t.button!==ca.ERASER||dt.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"){bt(this.interactiveCanvas,gt.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:m}=Dt(t,this.state),h=this.getTopLayerFrameAtSceneCoords({x:f,y:m});pe(p,{x:f,y:m,frameId:h?h.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(t,this.state.activeTool.type,o):this.state.activeTool.type==="custom"?Ln(this.interactiveCanvas,this.state):this.state.activeTool.type===Jt.frame||this.state.activeTool.type===Jt.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=Dt({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(gs(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&&gs(this.hitLinkElement)&&!t5(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"&&(Wm=!1,Va?Wm=!0:Va=window.setTimeout(()=>{Va=0,Wm||this.handleCanvasContextMenu(t)},bw))};resetContextMenuTimer=()=>{clearTimeout(Va),Va=0,Wm=!1};maybeCleanupAfterMissingPointerUp=t=>{Gm?.(),this.missingPointerEventCleanupEmitter.trigger(t).clear()};handleCanvasPanUsingWheelOrSpaceDrag=t=>{if(!(dt.pointers.size<=1&&(t.button===ca.WHEEL||t.button===ca.MAIN&&Jl||ki(this.state)||this.state.viewModeEnabled))||ve(this.state.editingElement))return!1;Um=!0,t.preventDefault();let r=!1,o=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);bt(this.interactiveCanvas,gt.GRABBING);let{clientX:i,clientY:a}=t,s=fg(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 m=b=>{document.body.removeEventListener("paste",m),b.stopPropagation()},h=()=>{setTimeout(()=>{document.body.removeEventListener("paste",m),window.removeEventListener("pointerup",h)},100)};document.body.addEventListener("paste",m),window.addEventListener("pointerup",h)}this.translateCanvas({scrollX:this.state.scrollX-p/this.state.zoom.value,scrollY:this.state.scrollY-f/this.state.zoom.value})}),c=Bt(Gm=()=>{Gm=null,Um=!1,Jl||(this.state.viewModeEnabled?bt(this.interactiveCanvas,gt.GRAB):Ln(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){dt.pointers.set(t.pointerId,{x:t.clientX,y:t.clientY}),dt.pointers.size===2&&(dt.lastCenter=mv(dt.pointers),dt.initialScale=this.state.zoom.value,dt.initialDistance=uv(Array.from(dt.pointers.values())))}initialPointerDownState(t){let r=Dt(t,this.state),o=this.scene.getSelectedElements(this.state),[i,a,s,c]=mt(o);return{origin:r,withCmdOrCtrl:t[R.CTRL_OR_CMD],originInGrid:fd(io(r.x,r.y,t[R.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:hv(iy,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop),lastCoords:{...r},originalElements:this.scene.getNonDeletedElements().reduce((d,p)=>(d.set(p.id,ks(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;ny=!0,r.lastCoords.x=t.clientX,r.lastCoords.y=t.clientY;let o=fg(a=>{a.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(a,r)}),i=Bt(()=>{Gm=null,ny=!1,Ln(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 Gm=i,window.addEventListener("pointermove",o),window.addEventListener("pointerup",i),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:vt({},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=H0(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=U0(mt(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=fd(_5(r.resize.handleType,a,i,r.origin.x,r.origin.y)),a.length===1&&lt(a[0])&&a[0].points.length===2&&(r.resize.arrowDirection=A5(r.resize.handleType,a[0]));else{if(this.state.selectedLinearElement){let d=this.state.editingLinearElement||this.state.selectedLinearElement,p=Fe.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:vt({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(s!=null){if(t[R.CTRL_OR_CMD])return this.state.selectedElementIds[s.id]||(r.hit.wasAddedToSelection=!0),this.setState(d=>({...y3(d,s),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[s.id]||(this.state.editingGroupId&&!Is(s,this.state.editingGroupId)&&this.setState({selectedElementIds:vt({},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(m=>{let h=this.scene.getElement(m);h&&f.push(h)}),Ve(s))Ea(f,s.id).forEach(m=>{delete p[m.id]});else if(s.frameId)p[s.frameId]&&delete p[s.id];else{let m=s.groupIds,h=new Set(m.flatMap(b=>Zt(this.scene.getNonDeletedElements(),b)).filter(b=>Ve(b)).map(b=>b.id));h.size>0&&f.forEach(b=>{b.frameId&&h.has(b.frameId)&&(delete p[b.id],b.groupIds.flatMap(y=>Zt(this.scene.getNonDeletedElements(),y)).forEach(y=>{delete p[y.id]}))})}return{...Pr({editingGroupId:d.editingGroupId,selectedElementIds:p},this.scene.getNonDeletedElements(),d,this),showHyperlinkPopup:s.link||$r(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]=mt(r);return t.x>i-o&&t.x<s+o&&t.y>a-o&&t.y<c+o}handleTextOnPointerDown=(t,r)=>{if(ve(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);jn(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}),Jo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:Kt(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(t,r,o)=>{let[i,a]=io(o.origin.x,o.origin.y,null),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),c=A3({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 m={...f.selectedElementIds};return delete m[c.id],{selectedElementIds:vt(m,f)}});let d=c.simulatePressure?c.pressures:[...c.pressures,t.pressure];pe(c,{points:[[0,0]],pressures:d});let p=Id(o.origin,this);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]=io(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),c=_3({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]=io(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=gl(o);if(!s)return;s.error instanceof URIError&&this.setToast({message:E("toast.unrecognizedLinkFormat"),closable:!0});let c=C0({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]=io(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=o?this.getTopLayerFrameAtSceneCoords({x:i,y:a}):null;return Cp({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"&&yd(i.points,this.state.zoom.value)){pe(i,{lastCommittedPoint:i.points[i.points.length-1]}),this.actionManager.executeAction(an);return}let{x:a,y:s,lastCommittedPoint:c}=i;if(i.points.length>1&&c&&ga(o.origin.x-a,o.origin.y-s,c[0],c[1])<$u){this.actionManager.executeAction(an);return}this.setState(d=>({selectedElementIds:vt({...d.selectedElementIds,[i.id]:!0},d)})),pe(i,{lastCommittedPoint:i.points[i.points.length-1]}),bt(this.interactiveCanvas,gt.POINTER)}else{let[i,a]=io(o.origin.x,o.origin.y,t[R.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],m=Ld({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:Ko.PROPORTIONAL_RADIUS}:null,startArrowhead:p,endArrowhead:f,locked:!1,frameId:s?s.id:null});this.setState(b=>{let y={...b.selectedElementIds};return delete y[m.id],{selectedElementIds:vt(y,b)}}),pe(m,{points:[...m.points,[0,0]]});let h=Id(o.origin,this);this.scene.insertElement(m),this.setState({draggingElement:m,editingElement:m,startBoundElement:h,suggestedBindings:[]})}};getCurrentItemRoundness(t){return this.state.currentItemRoundness==="round"?{type:bs(t)?Ko.ADAPTIVE_RADIUS:Ko.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(t,r)=>{let[o,i]=io(r.origin.x,r.origin.y,this.lastPointerDownEvent?.[R.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=C0({type:"embeddable",...s}):c=xa({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]=io(t.origin.x,t.origin.y,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),a={x:o,y:i,opacity:this.state.currentItemOpacity,locked:!1,...In},s=r===Jt.magicframe?Md(a):wp(a);this.scene.insertElement(s),this.setState({multiElement:null,draggingElement:s,editingElement:s})};maybeCacheReferenceSnapPoints(t,r,o=!1){qi({event:t,appState:this.state,selectedElements:r})&&(o||!fn.getReferenceSnapPoints())&&fn.setReferenceSnapPoints(J_(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(t,r,o=!1){qi({event:t,appState:this.state,selectedElements:r})&&(o||!fn.getVisibleGaps())&&fn.setVisibleGaps(q_(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(t){return Bt(r=>{this.maybeHandleResize(t,r)||this.maybeDragNewGenericElement(t,r)})}onKeyUpFromPointerDownHandler(t){return Bt(r=>{r.key===R.ALT&&r.preventDefault(),!this.maybeHandleResize(t,r)&&this.maybeDragNewGenericElement(t,r)})}onPointerMoveFromPointerDownHandler(t){return fg(r=>{if(t.drag.offset===null&&(t.drag.offset=fd(L5(this.scene.getSelectedElements(this.state),t.origin.x,t.origin.y))),!(r.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(r,t))return;let i=Dt(r,this.state);if(qo(this.state)){this.handleEraser(r,t,i);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(i.x,i.y);let[a,s]=io(i.x,i.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize);if(!t.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&ga(i.x,i.y,t.origin.x,t.origin.y)<il)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 m=this.state.editingLinearElement||this.state.selectedLinearElement;if(Fe.shouldAddMidpoint(this.state.selectedLinearElement,i,this.state,c)){let b=Fe.addMidpoint(this.state.selectedLinearElement,i,this.state,!r[R.CTRL_OR_CMD],c);if(!b)return;(0,Cg.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:b.pointerDownState,selectedPointsIndices:b.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:b.pointerDownState,selectedPointsIndices:b.selectedPointsIndices}})});return}else if(m.pointerDownState.segmentMidpoint.value!==null&&!m.pointerDownState.segmentMidpoint.added)return;if(Fe.handlePointDragging(r,this.state,i.x,i.y,(b,y)=>{this.maybeSuggestBindingsForLinearElementAtCoords(b,y)},m,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(m=>this.isASelectedElement(m)),p=this.state.editingLinearElement&&r.shiftKey&&this.state.editingLinearElement.elementId===t.hit.element?.id;if((d||t.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!p){let m=this.scene.getSelectedElements(this.state);if(m.every(y=>y.locked))return;let h=m.find(y=>Ve(y)),b=this.getTopLayerFrameAtSceneCoords(i);if(this.setState({frameToHighlight:b&&!h?b:null}),t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),m.length>0&&!t.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let y={x:i.x-t.origin.x,y:i.y-t.origin.y},w=[...t.originalElements.values()],C=r.shiftKey;if(C){let I=Math.abs(y.x),N=Math.abs(y.y),$=C&&I<N,D=C&&I>N;$&&(y.x=0),D&&(y.y=0)}this.maybeCacheVisibleGaps(r,m),this.maybeCacheReferenceSnapPoints(r,m);let{snapOffset:M,snapLines:_}=Q_(w,y,this.state,r,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:_}),!this.state.editingFrame&&M5(t,m,y,this.state,this.scene,M,r[R.CTRL_OR_CMD]?null:this.state.gridSize),this.setState({suggestedBindings:cp(m,this)}),r.altKey&&!t.hit.hasBeenDuplicated){t.hit.hasBeenDuplicated=!0;let I=[],N=[],$=new Map,D=new Map,z=t.hit.element,B=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(te=>te.id)),q=this.scene.getElementsIncludingDeleted();for(let te of q)if(B.has(te.id)||te.id===z?.id&&t.hit.wasAddedToSelection){let me=Sp(this.state.editingGroupId,$,te),K=t.originalElements.get(te.id);pe(me,{x:K.x,y:K.y}),t.originalElements.set(me.id,me),I.push(me),N.push(te),D.set(te.id,me.id)}else I.push(te);let V=[...I,...N];Mo(V,Oe(N)),up(I,N,D),dp(V,N,D,"duplicatesServeAsOld"),Np(V,N,D),this.scene.replaceAllElements(V),this.maybeCacheVisibleGaps(r,m,!0),this.maybeCacheReferenceSnapPoints(r,m,!0)}return}}let f=this.state.draggingElement;if(f){if(f.type==="freedraw"){let m=f.points,h=i.x-f.x,b=i.y-f.y,y=m.length>0&&m[m.length-1];if(!(y&&y[0]===h&&y[1]===b)){let C=f.simulatePressure?f.pressures:[...f.pressures,r.pressure];pe(f,{points:[...m,[h,b]],pressures:C})}}else if(lt(f)){t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let m=f.points,h=a-f.x,b=s-f.y;lp(r)&&m.length===2&&({width:h,height:b}=$0(f.x,f.y,i.x,i.y)),m.length===1?pe(f,{points:[...m,[h,b]]}):m.length===2&&pe(f,{points:[...m.slice(0,-1),[h,b]]}),wi(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 m=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)Fe.handleBoxSelection(r,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let h=!0;!r.shiftKey&&xt(m,this.state)&&(t.withCmdOrCtrl&&t.hit.element?this.setState(y=>Pr({...y,selectedElementIds:{[t.hit.element.id]:!0}},this.scene.getNonDeletedElements(),y,this)):h=!1);let b=P5(m,f,this.scene.getNonDeletedElementsMap());this.setState(y=>{let w={...h&&y.selectedElementIds,...b.reduce((C,M)=>(C[M.id]=!0,C),{})};return t.hit.element&&(b.length?delete w[t.hit.element.id]:w[t.hit.element.id]=!0),y=h?y:{...y,selectedGroupIds:{},editingGroupId:null},{...Pr({editingGroupId:y.editingGroupId,selectedElementIds:w},this.scene.getNonDeletedElements(),y,this),selectedLinearElement:b.length===1&&lt(b[0])?new Fe(b[0]):null,showHyperlinkPopup:b.length===1&&(b[0].link||$r(b[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 Bt(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(b=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:a||ve(this.state.editingElement)?this.state.editingElement:null,snapLines:np(b.snapLines,[]),originSnapOffset:null})),fn.setReferenceSnapPoints(null),fn.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(an);else{let b=Fe.handlePointerUp(r,this.state.editingLinearElement,this.state,this);b!==this.state.editingLinearElement&&this.setState({editingLinearElement:b,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 b=Fe.handlePointerUp(r,this.state.selectedLinearElement,this.state,this),{startBindingElement:y,endBindingElement:w}=b,C=this.scene.getElement(b.elementId);wi(C)&&sp(C,y,w,p),b!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...b,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 b=Dt(r,this.state),y=o.points,w=b.x-o.x,C=b.y-o.y;w===y[0][0]&&C===y[0][1]&&(C+=1e-4,w+=1e-4);let M=o.simulatePressure?[]:[...o.pressures,r.pressure];pe(o,{points:[...y,[w,C]],pressures:M,lastCommittedPoint:[w,C]}),this.actionManager.executeAction(an);return}if(pa(o)){let b=o;try{this.initializeImageDimensions(b),this.setState({selectedElementIds:vt({[b.id]:!0},this.state)},()=>{this.actionManager.executeAction(an)})}catch(y){console.error(y),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(w=>w.id!==b.id)),this.actionManager.executeAction(an)}return}if(lt(o)){o.points.length>1&&this.store.shouldCaptureIncrement();let b=Dt(r,this.state);!t.drag.hasOccurred&&o&&!a?(pe(o,{points:[...o.points,[b.x-o.x,b.y-o.y]]}),this.setState({multiElement:o,editingElement:this.state.draggingElement})):t.drag.hasOccurred&&!a&&(ul(this.state)&&wi(o,!1)&&Td(o,this.state,b,this),this.setState({suggestedBindings:[],startBoundElement:null}),s.locked?this.setState(y=>({draggingElement:null})):(Jo(this.interactiveCanvas),this.setState(y=>({draggingElement:null,activeTool:Kt(this.state,{type:"selection"}),selectedElementIds:vt({...y.selectedElementIds,[o.id]:!0},y),selectedLinearElement:new Fe(o)}))));return}if(ve(o)){let b=g3(Lr({fontSize:o.fontSize,fontFamily:o.fontFamily}),o.lineHeight);o.width<b&&pe(o,{autoResize:!0}),this.resetCursor(),this.handleTextWysiwyg(o,{isExistingElement:!0})}if(s.type!=="selection"&&o&&xl(o)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(b=>b.id!==o.id),appState:{draggingElement:null},storeAction:Y.UPDATE});return}if(o){if(t.drag.hasOccurred){let b=Dt(r,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let y=this.scene.getElement(this.state.selectedLinearElement.elementId);if(y?.frameId){let w=Op(y,p);w&&y&&(p5(y,w,this.scene.getNonDeletedElementsMap())||(pe(y,{groupIds:[]}),zp([y],this.scene.getNonDeletedElementsMap()),this.scene.triggerUpdate()))}}else{let y=this.getTopLayerFrameAtSceneCoords(b),w=this.scene.getSelectedElements(this.state),C=this.scene.getElementsMapIncludingDeleted(),M=_=>{if(_.length>0){for(let I of _){let N=I.groupIds.indexOf(this.state.editingGroupId);pe(I,{groupIds:I.groupIds.slice(0,N)},!1)}C.forEach(I=>{I.groupIds.length&&Zt(C,I.groupIds[I.groupIds.length-1]).length<2&&pe(I,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(y&&!this.state.selectedElementIds[y.id]){let _=w.filter(I=>I.frameId!==y.id&&z0(I,C,this.state));this.state.editingGroupId&&M(_),C=Fp(C,_,y)}else if(!y&&this.state.editingGroupId){let _=w.filter(I=>I.frameId&&!z0(I,C,this.state));M(_)}C=qn(C,this.state,this),this.scene.replaceAllElements(C)}}if(Ve(o)){let b=g5(this.scene.getElementsIncludingDeleted(),o,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(Fp(this.scene.getElementsMapIncludingDeleted(),b,o))}pe(o,w5(o))}if(i&&this.store.shouldCaptureIncrement(),i&&xl(i)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(b=>b.id!==i.id),storeAction:Y.UPDATE}),t.resize.isResizing){let b=qn(this.scene.getElementsIncludingDeleted(),this.state,this),y=this.scene.getSelectedElements(this.state).filter(w=>Ve(w));for(let w of y)b=Bp(b,Rs(this.scene.getElementsIncludingDeleted(),w,this.state,p),w,this);this.scene.replaceAllElements(b)}let f=t.hit.element;this.state.selectedLinearElement?.elementId!==f?.id&&lt(f)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new Fe(f)});let m=this.lastPointerDownEvent,h=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(qo(this.state)&&m&&h){if(this.eraserTrail.endPath(),ga(m.clientX,m.clientY,h.clientX,h.clientY)===0){let y=Dt({clientX:h.clientX,clientY:h.clientY},this.state);this.getElementsAtPosition(y.x,y.y).forEach(C=>this.elementsPendingErasure.add(C.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]?yp(this.state,f)?this.setState(b=>{let y={...b.selectedElementIds};for(let w of f.groupIds.flatMap(C=>Zt(this.scene.getNonDeletedElements(),C)))delete y[w.id];return{selectedGroupIds:{...b.selectedElementIds,...f.groupIds.map(w=>({[w]:!1})).reduce((w,C)=>({...w,...C}),{})},selectedElementIds:vt(y,b)}}):this.state.selectedLinearElement?.isDragging||this.setState(b=>{let y={...b.selectedElementIds};delete y[f.id];let w=Ge(this.scene.getNonDeletedElements(),{selectedElementIds:y});return{...Pr({editingGroupId:b.editingGroupId,selectedElementIds:y},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:w.length===1&&lt(w[0])?new Fe(w[0]):b.selectedLinearElement}}):f.frameId&&this.state.selectedElementIds[f.frameId]?this.setState(b=>{let y={...b.selectedElementIds,[f.id]:!0};return delete y[f.frameId],(this.scene.getElement(f.frameId)?.groupIds??[]).flatMap(w=>Zt(this.scene.getNonDeletedElements(),w)).forEach(w=>{delete y[w.id]}),{...Pr({editingGroupId:b.editingGroupId,selectedElementIds:y},this.scene.getNonDeletedElements(),b,this),showHyperlinkPopup:f.link||$r(f)?"info":!1}}):this.setState(b=>({selectedElementIds:vt({...b.selectedElementIds,[f.id]:!0},b)})):this.setState(b=>({...Pr({editingGroupId:b.editingGroupId,selectedElementIds:{[f.id]:!0}},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:lt(f)&&b.selectedLinearElement?.elementId!==f.id?new Fe(f):b.selectedLinearElement}))),!t.drag.hasOccurred&&!this.state.isResizing&&(f&&J3({x:t.origin.x,y:t.origin.y,element:f,shape:this.getElementShape(f),threshold:this.getElementHitThreshold(),frameNameBound:Ve(f)?this.frameNameBoundsCache.get(f):null},p)||!f&&t.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:vt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),bt(this.interactiveCanvas,gt.AUTO);return}if(!s.locked&&s.type!=="freedraw"&&o&&o.type!=="selection"&&this.setState(b=>({selectedElementIds:vt({...b.selectedElementIds,[o.id]:!0},b),showHyperlinkPopup:$r(o)&&!o.link?"editor":b.showHyperlinkPopup})),(s.type!=="selection"||xt(this.scene.getNonDeletedElements(),this.state)||!xr(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),t.drag.hasOccurred||c||d){let b=this.scene.getSelectedElements(this.state).filter(lt);Sd(b,this,ul(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[])}if(s.type==="laser"){this.laserTrails.endPath();return}!s.locked&&s.type!=="freedraw"?(Jo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:Kt(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),f&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&dt.pointers.size<=1&&gs(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)||nr(o)&&this.elementsPendingErasure.has(o.containerId)?(t=!0,De(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(!_p(t))throw new Error(E("errors.unsupportedFileType"));let i=t.type;if(bt(this.interactiveCanvas,"wait"),i===Mr.svg)try{t=M0(await G3(await t.text()),t.name)}catch(p){throw console.warn(p),new Error(E("errors.svgImageInsertError"))}let a=await(this.props.generateIdForFile?.(t)||N3(t));if(!a)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(E("errors.imageInsertError"));if(!this.files[a]?.dataURL){try{t=await Rd(t,{maxWidthOrHeight:Iw})}catch(p){console.error("Error trying to resizing image file on insertion",p)}if(t.size>s0)throw new Error(E("errors.fileTooBig",{maxSize:`${Math.trunc(s0/1024/1024)}MB`}))}if(o){let p=this.files[a]?.dataURL,f=p&&O3(p);this.setImagePreviewCursor(f||t)}let c=this.files[a]?.dataURL||await Mp(t),d=pe(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 m=this.imageCache.get(a);m||(this.addNewImagesToImageCache(),await this.updateImageCache([d])),m?.image instanceof Promise&&await m.image,this.state.pendingImageElementId!==d.id&&this.state.draggingElement?.id!==d.id&&this.initializeImageDimensions(d,!0),p(d)}catch(m){console.error(m),f(new Error(E("errors.imageInsertError")))}finally{o||Jo(this.interactiveCanvas)}})};insertImageElement=async(t,r,o)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:E("errors.imageToolNotSupported")});return}this.scene.insertElement(t);try{return await this.initializeImage({imageFile:r,imageElement:t,showCursorImagePreview:o})}catch(i){return pe(t,{isDeleted:!0}),this.actionManager.executeAction(an),this.setState({errorMessage:i.message||E("errors.imageInsertError")}),null}};setImagePreviewCursor=async t=>{let o;try{o=await Rd(t,{maxWidthOrHeight:96})}catch(a){throw a.cause==="UNSUPPORTED"?new Error(E("errors.unsupportedFileType")):a}let i=await Mp(o);if(t.type===Mr.svg){let a=await H3(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(Mr.svg)}this.state.pendingImageElementId&&bt(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}=Dt({clientX:r,clientY:o},this.state),s=await Ip({description:"Image",extensions:Object.keys(uw)}),c=this.createImageElement({sceneX:i,sceneY:a,addToFrameUnderCursor:!1});t?(this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:vt({[c.id]:!0},this.state)},()=>{this.actionManager.executeAction(an)})):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:Kt(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(an)})}};initializeImageDimensions=(t,r=!1)=>{let o=xd(t)&&this.imageCache.get(t.fileId)?.image;if(!o||o instanceof Promise){if(t.width<il/this.state.zoom.value&&t.height<il/this.state.zoom.value){let i=100/this.state.zoom.value;pe(t,{x:t.x-i/2,y:t.y-i/2,width:i,height:i})}return}if(r||t.width<il/this.state.zoom.value&&t.height<il/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;pe(t,{x:d,y:p,width:c,height:s})}};updateImageCache=async(t,r=this.files)=>{let{updatedFiles:o,erroredFiles:i}=await U3({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)&&en.delete(a);return i.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(a=>xd(a)&&i.has(a.fileId)?De(a,{status:"error"}):a)),{updatedFiles:o,erroredFiles:i}};addNewImagesToImageCache=async(t=W3(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,L8.default)(()=>{this.addNewImagesToImageCache()},hw);updateBindingEnabledOnPointerMove=t=>{let r=r3(t);this.state.isBindingEnabled!==r&&this.setState({isBindingEnabled:r})};maybeSuggestBindingAtCursor=t=>{let r=Id(t,this);this.setState({suggestedBindings:r!=null?[r]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(t,r,o)=>{if(!r.length)return;let i=r.reduce((a,s)=>{let c=Id(s,this);return c!=null&&!o3(t,o?.id,c)&&a.push(c),a},[]);this.setState({suggestedBindings:i})};clearSelection(t){this.setState(r=>({selectedElementIds:vt({},r),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:r.editingGroupId&&t!=null&&Is(t,r.editingGroupId)?r.editingGroupId:null})),this.setState({selectedElementIds:vt({},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 z3(t),{x:i,y:a}=Dt(t,this.state);try{if(_p(r)&&this.isToolSupported("image")){if(r?.type===Mr.png||r?.type===Mr.svg)try{let d=await Ap(r,this.state,this.scene.getElementsIncludingDeleted(),o);this.syncActionResult({...d,appState:{...d.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:Y.CAPTURE});return}catch(d){if(d.name!=="EncodingError")throw new Error(E("alerts.couldNotLoadInvalidFile"))}let c=this.createImageElement({sceneX:i,sceneY:a});this.insertImageElement(c,r),this.initializeImageDimensions(c),this.setState({selectedElementIds:vt({[c.id]:!0},this.state)});return}}catch(c){return this.setState({isLoading:!1,errorMessage:c.message})}let s=t.dataTransfer.getData(Mr.excalidrawlib);if(s&&typeof s=="string"){try{let c=D3(s);this.addElementsFromPasteOrLibrary({elements:fh(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&&_s(c,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(c)||gl(c)?.type==="video")){let d=this.insertEmbeddableElement({sceneX:i,sceneY:a,link:Ai(c)});d&&this.setState({selectedElementIds:{[d.id]:!0}})}}};loadFileToCanvas=async(t,r)=>{t=await B3(t);try{let o=this.scene.getElementsIncludingDeleted(),i;try{i=await _0(t,this.state,o,r)}catch(a){let s=a instanceof qw;if(s&&a.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:E("errors.imageToolNotSupported")});return}let c=s?E("alerts.cannotRestoreFromImage"):E("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:c})}if(!i)return;i.type===Mr.excalidraw?(ha(o.concat(i.data.elements)),this.store.updateSnapshot(Oe(o),this.state),this.setState({isLoading:!0}),this.syncActionResult({...i.data,appState:{...i.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:Y.CAPTURE})):i.type===Mr.excalidrawlib&&await this.library.updateLibrary({libraryItems:t,merge:!0,openLibraryMenu:!0}).catch(a=>{console.error(a),this.setState({errorMessage:E("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!==ca.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:r,y:o}=Dt(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(),m=t.clientX-f,h=t.clientY-p;Ue("contextMenu","openContextMenu",c),this.setState({...i&&!this.state.selectedElementIds[i.id]?{...this.state,...Pr({editingGroupId:this.state.editingGroupId,selectedElementIds:{[i.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:lt(i)?new Fe(i):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:h,left:m,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")G0(o,this.state.activeTool.type,t.origin.x,t.origin.y,i.x,i.y,cl(t.origin.x,i.x),cl(t.origin.y,i.y),Cs(r),ap(r),this.state.zoom.value);else{let[a,s]=io(i.x,i.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),c=xd(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}=t8(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}),G0(o,this.state.activeTool.type,t.originInGrid.x,t.originInGrid.y,a,s,cl(t.originInGrid.x,a),cl(t.originInGrid.y,s),pa(o)?!Cs(r):Cs(r),ap(r),this.state.zoom.value,d,this.state.originSnapOffset),(this.state.activeTool.type===Jt.frame||this.state.activeTool.type===Jt.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=>Ve(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]=io(s.x-t.resize.offset.x,s.y-t.resize.offset.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),p=new Map;if(i.forEach(f=>{Ea(this.scene.getNonDeletedElements(),f.id).forEach(h=>{p.set(f.id+h.id,{x:h.x-f.x,y:h.y-f.y})})}),!this.state.selectedElementsAreBeingDragged){let[f,m]=io(s.x,s.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),h={x:f-t.originInGrid.x,y:m-t.originInGrid.y},b=[...t.originalElements.values()];this.maybeCacheReferenceSnapPoints(r,o);let{snapOffset:y,snapLines:w}=e8(o,Ge(b,this.state),this.state,r,h,a);c+=y.x,d+=y.y,this.setState({snapLines:w})}if(T5(t.originalElements,a,o,this.scene.getElementsMapIncludingDeleted(),lp(r),ap(r),o.some(f=>pa(f))?!Cs(r):Cs(r),c,d,t.resize.center.x,t.resize.center.y)){let f=cp(o,this),m=new Set;return i.forEach(h=>{Rs(this.scene.getNonDeletedElements(),h,this.state,this.scene.getNonDeletedElementsMap()).forEach(b=>m.add(b))}),this.setState({elementsToHighlight:[...m],suggestedBindings:f}),!0}return!1};getContextMenuItems=t=>{let r=[];return r.push(nh,oh),t==="canvas"?this.state.viewModeEnabled?[...r,ah,gc,Kv,bc]:[Mx,jr,nh,oh,ih,jr,Tb,kT,jr,ah,Lx,gc,Kv,bc]:(r.push(ih),this.state.viewModeEnabled?[hc,...r]:[jr,rh,hc,Mx,V_,K_,jr,...r,jr,vx,yx,jr,wx,k8,Px,Rx,yT,Cx,jr,Ix,jr,Eb,wb,Cb,Sb,jr,_x,Ax,jr,av,mm,Ib,Bx,jr,Kd])};handleWheel=Bt(t=>{if(t.preventDefault(),Um)return;let{deltaX:r,deltaY:o}=t;if(t.metaKey||t.ctrlKey){let i=Math.sign(o),a=ll*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=>({...Pi({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Li(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=xp(i,o,this.scene.getNonDeletedElementsMap());if(c&&(a=c.x,s=c.y),Math.hypot(t-a,r-s)<sw){let{x:f,y:m}=no({sceneX:a,sceneY:s},o);return{viewportX:f,viewportY:m,elementCenterX:a,elementCenterY:s}}}}savePointer=(t,r,o)=>{if(!t||!r)return;let{x:i,y:a}=Dt({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:dt.pointers})};resetShouldCacheIgnoreZoomDebounced=ud(()=>{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)||Jn;await Qp(t),this.setAppState({})}},Z$=()=>{(A.MODE===n0.TEST||A.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(ha(e))}}}))};Z$();var N8=ly;v();var X$=()=>{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)})},O8=X$;v();var fy=S(P(),1),F8=({children:e})=>{let{FooterCenterTunnel:t}=Mt(),r=st();return(0,fy.jsx)(t.In,{children:(0,fy.jsx)("div",{className:Q("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":r.zenModeEnabled}),children:e})})},j$=F8;F8.displayName="FooterCenter";v();v();v();var gn=S(P(),1),q$=()=>(0,gn.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,gn.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"})}),J$=()=>(0,gn.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,gn.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,gn.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,gn.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,gn.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)"})]}),z8=({style:e,size:t="small",withText:r})=>(0,gn.jsxs)("div",{className:`ExcalidrawLogo is-${t}`,style:e,children:[(0,gn.jsx)(q$,{}),r&&(0,gn.jsx)(J$,{})]});var St=S(P(),1),hy=({icon:e,shortcut:t,children:r})=>{let o=it();return(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)("div",{className:"welcome-screen-menu-item__icon",children:e}),(0,St.jsx)("div",{className:"welcome-screen-menu-item__text",children:r}),t&&!o.editor.isMobile&&(0,St.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:t})]})};hy.displayName="WelcomeScreenMenuItemContent";var Vm=({onSelect:e,children:t,icon:r,shortcut:o,className:i="",...a})=>(0,St.jsx)("button",{...a,type:"button",className:`welcome-screen-menu-item ${i}`,onClick:e,children:(0,St.jsx)(hy,{icon:r,shortcut:o,children:t})});Vm.displayName="WelcomeScreenMenuItem";var B8=({children:e,href:t,icon:r,shortcut:o,className:i="",...a})=>(0,St.jsx)("a",{...a,className:`welcome-screen-menu-item ${i}`,href:t,target:"_blank",rel:"noreferrer",children:(0,St.jsx)(hy,{icon:r,shortcut:o,children:e})});B8.displayName="WelcomeScreenMenuItemLink";var bn=({children:e})=>{let{WelcomeScreenCenterTunnel:t}=Mt();return(0,St.jsx)(t.In,{children:(0,St.jsx)("div",{className:"welcome-screen-center",children:e||(0,St.jsxs)(St.Fragment,{children:[(0,St.jsx)(gy,{}),(0,St.jsx)(by,{children:E("welcomeScreen.defaults.center_heading")}),(0,St.jsxs)(xy,{children:[(0,St.jsx)(yy,{}),(0,St.jsx)(vy,{})]})]})})})};bn.displayName="Center";var gy=({children:e})=>(0,St.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:e||(0,St.jsx)(z8,{withText:!0})});gy.displayName="Logo";var by=({children:e})=>(0,St.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:e});by.displayName="Heading";var xy=({children:e})=>(0,St.jsx)("div",{className:"welcome-screen-menu",children:e});xy.displayName="Menu";var vy=()=>{let e=vr();return(0,St.jsx)(Vm,{onSelect:()=>e.executeAction(Dl),shortcut:"?",icon:Hs,children:E("helpDialog.title")})};vy.displayName="MenuItemHelp";var yy=()=>{let e=st(),t=vr();return e.viewModeEnabled?null:(0,St.jsx)(Vm,{onSelect:()=>t.executeAction(pc),shortcut:mr("loadScene"),icon:Us,children:E("buttons.load")})};yy.displayName="MenuItemLoadScene";var $8=({onSelect:e})=>{let{t}=sr();return(0,St.jsx)(Vm,{shortcut:null,onSelect:e,icon:mf,children:t("labels.liveCollaboration")})};$8.displayName="MenuItemLiveCollaborationTrigger";bn.Logo=gy;bn.Heading=by;bn.Menu=xy;bn.MenuItem=Vm;bn.MenuItemLink=B8;bn.MenuItemHelp=vy;bn.MenuItemLoadScene=yy;bn.MenuItemLiveCollaborationTrigger=$8;v();var Gn=S(P(),1),Sg=({children:e})=>{let{WelcomeScreenMenuHintTunnel:t}=Mt();return(0,Gn.jsx)(t.In,{children:(0,Gn.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[t6,(0,Gn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.menuHint")})]})})};Sg.displayName="MenuHint";var Tg=({children:e})=>{let{WelcomeScreenToolbarHintTunnel:t}=Mt();return(0,Gn.jsx)(t.In,{children:(0,Gn.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,Gn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.toolbarHint")}),o6]})})};Tg.displayName="ToolbarHint";var Ig=({children:e})=>{let{WelcomeScreenHelpHintTunnel:t}=Mt();return(0,Gn.jsx)(t.In,{children:(0,Gn.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,Gn.jsx)("div",{children:e||E("welcomeScreen.defaults.helpHint")}),r6]})})};Ig.displayName="HelpHint";var Vn=S(P(),1),kg=e=>(0,Vn.jsx)(Vn.Fragment,{children:e.children||(0,Vn.jsxs)(Vn.Fragment,{children:[(0,Vn.jsx)(bn,{}),(0,Vn.jsx)(Sg,{}),(0,Vn.jsx)(Tg,{}),(0,Vn.jsx)(Ig,{})]})});kg.displayName="WelcomeScreen";kg.Center=bn;kg.Hints={MenuHint:Sg,ToolbarHint:Tg,HelpHint:Ig};var Q$=kg;v();var _g=S(P(),1),H8=({isCollaborating:e,onSelect:t,...r})=>{let o=st(),i=o.width<830;return(0,_g.jsxs)(ni,{...r,className:Q("collab-button",{active:e}),type:"button",onSelect:t,style:{position:"relative",width:i?void 0:"auto"},title:E("labels.liveCollaboration"),children:[i?I6:E("labels.share"),o.collaborators.size>0&&(0,_g.jsx)("div",{className:"CollabButton-collaborators",children:o.collaborators.size})]})},eH=H8;H8.displayName="LiveCollaborationTrigger";v();var tH=(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)),rH=(e,t,r)=>{let o=Oe(e),i=[],a=new Set;for(let c of t)if(!a.has(c.id)){let d=o.get(c.id),p=tH(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=Jw(i);return ha(s),s};v();var Km=S(P(),1),U8=({children:e,icon:t})=>{let{TTDDialogTriggerTunnel:r}=Mt(),o=at();return(0,Km.jsx)(r.In,{children:(0,Km.jsxs)(ut.Item,{onSelect:()=>{Ue("ai","dialog open","ttd"),o({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:t??x4,children:[e??E("labels.textToDiagram"),(0,Km.jsx)(ut.Item.Badge,{children:"AI"})]})})};U8.displayName="TTDDialogTrigger";var Ag=S(P(),1);O8();var oH=e=>{let{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i=!1,onPointerUpdate:a,renderTopRightUI:s,langCode:c=Jn.code,viewModeEnabled:d,zenModeEnabled:p,gridModeEnabled:f,libraryReturnUrl:m,theme:h,name:b,renderCustomStats:y,onPaste:w,detectScroll:C=!0,handleKeyboardGlobally:M=!1,onLibraryChange:_,autoFocus:I=!1,generateIdForFile:N,onLinkOpen:$,onPointerDown:D,onPointerUp:z,onScrollChange:B,children:q,validateEmbeddable:V,renderEmbeddable:te,aiEnabled:me}=e,K=e.UIOptions?.canvasActions,de={...e.UIOptions,canvasActions:{...l0.canvasActions,...K},tools:{image:e.UIOptions?.tools?.image??!0}};return K?.export&&(de.canvasActions.export.saveFileToDisk=K.export?.saveFileToDisk??l0.canvasActions.export.saveFileToDisk),de.canvasActions.toggleTheme===null&&typeof h>"u"&&(de.canvasActions.toggleTheme=!0),(0,Mg.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let Ie=tt=>{typeof tt.scale=="number"&&tt.scale!==1&&tt.preventDefault()};return document.addEventListener("touchmove",Ie,{passive:!1}),()=>{document.removeEventListener("touchmove",Ie)}},[]),(0,Ag.jsx)(jp,{unstable_createStore:()=>Gr,scope:ft,children:(0,Ag.jsx)(Z5,{langCode:c,theme:h,children:(0,Ag.jsx)(N8,{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i,onPointerUpdate:a,renderTopRightUI:s,langCode:c,viewModeEnabled:d,zenModeEnabled:p,gridModeEnabled:f,libraryReturnUrl:m,theme:h,name:b,renderCustomStats:y,UIOptions:de,onPaste:w,detectScroll:C,handleKeyboardGlobally:M,onLibraryChange:_,autoFocus:I,generateIdForFile:N,onLinkOpen:$,onPointerDown:D,onPointerUp:z,onScrollChange:B,validateEmbeddable:V,renderEmbeddable:te,aiEnabled:me!==!1,children:q})})})},nH=(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(m=>m==="canvasActions"?Object.keys(o.canvasActions).every(b=>b==="export"&&o?.canvasActions?.export&&s?.canvasActions?.export?o.canvasActions.export.saveFileToDisk===s.canvasActions.export.saveFileToDisk:o?.canvasActions?.[b]===s?.canvasActions?.[b]):o[m]===s[m])&&xr(i,c)},iH=Mg.default.memo(oH,nH);iH.displayName="Excalidraw";export{ni as Button,o0 as DEFAULT_LASER_COLOR,og as DefaultSidebar,iH as Excalidraw,sd as FONT_FAMILY,j$ as Footer,eH as LiveCollaborationTrigger,Mr as MIME_TYPES,uo as MainMenu,Ko as ROUNDNESS,Wi as Sidebar,Y as StoreAction,He as THEME,$v as TTDDialog,U8 as TTDDialogTrigger,Q$ as WelcomeScreen,B0 as bumpVersion,Lc as convertToExcalidrawElements,Jn as defaultLang,TD as elementPartiallyOverlapsWithOrContainsBBox,ID as elementsOverlappingBBox,O0 as exportToBlob,bl as exportToCanvas,CD as exportToClipboard,Nd as exportToSvg,mt as getCommonBounds,kD as getFreeDrawSvgPath,ph as getLibraryItemsHash,Ze as getNonDeletedElements,_D as getSceneVersion,w0 as getVisibleSceneBounds,V0 as hashElementsVersion,K0 as hashString,SD as isElementInsideBBox,xl as isInvisiblySmallElement,lt as isLinearElement,Fs as languages,Ap as loadFromBlob,A0 as loadLibraryFromBlob,_0 as loadSceneOrLibraryFromBlob,zT as mergeLibraryItems,pe as mutateElement,De as newElementWith,Ai as normalizeLink,Ux as parseLibraryTokensFromUrl,rH as reconcileElements,k0 as restore,wD as restoreAppState,I0 as restoreElements,Pd as restoreLibraryItems,no as sceneCoordsToViewportCoords,L0 as serializeAsJSON,R0 as serializeLibraryAsJSON,it as useDevice,vF as useHandleLibrary,sr as useI18n,Dt as viewportCoordsToSceneCoords,eT as zoomToFitBounds};
187
+ `),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:ep,verticalAlign:Ix,locked:!1},s=ro({fontSize:a.fontSize,fontFamily:a.fontFamily}),c=Ii(a.fontFamily),[d,,u]=Tv(this.state),f=Math.max(Math.min((u-d)*.5,800),200),m=10,g=i,h=r?[t]:t.split(`
188
+ `),b=h.reduce((y,T,k)=>{let I=T.trim();if(I.length){let C=this.getTopLayerFrameAtSceneCoords({x:o,y:g}),O=Ai(I,s,c),z=O.width>f,L=z?bf(I,s,f):I;O=z?Ai(L,s,c):O;let F=o-O.width/2,D=g-O.height/2,V=xa({...a,x:F,y:D,text:L,originalText:I,lineHeight:c,autoResize:!z,frameId:C?C.id:null});y.push(V),g+=V.height+m}else h[k-1]?.trim()&&(g+=cI(a.fontSize,c)+m);return y},[]);b.length!==0&&(this.scene.insertElements(b),this.setState({selectedElementIds:ht(Object.fromEntries(b.map(y=>[y.id,!0])),this.state)}),!r&&b.length>1&&YM===!1&&!this.device.editor.isMobile&&(this.setToast({message:E("toast.pasteAsSingleElement",{shortcut:X("CtrlOrCmd+Shift+V")}),duration:5e3}),YM=!0),this.store.shouldCaptureIncrement())}setAppState=(t,r)=>{this.setState(t,r)};removePointer=t=>{Ka&&this.resetContextMenuTimer(),at.pointers.delete(t.pointerId)};toggleLock=(t="ui")=>{this.state.activeTool.locked||ze("toolbar","toggleLock",`${t} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(r=>({activeTool:{...r.activeTool,...Gt(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(Sk)};zoomCanvas=t=>{this.setState({...Mi({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Pi(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}=xm({targetElements:o,appState:this.state,fitToViewport:!!r?.fitToViewport,viewportZoomFactor:r?.viewportZoomFactor});i=c.zoom,a=c.scrollX,s=c.scrollY}else{let c=Al(o,this.state);a=c.scrollX,s=c.scrollY}if(r?.animate){let c=this.state.scrollX,d=this.state.scrollY,u=this.state.zoom.value,f=t2({fromValues:{scrollX:c,scrollY:d,zoom:u},toValues:{scrollX:a,scrollY:s,zoom:i.value},interpolateValue:(m,g,h,b)=>{if(b==="zoom")return m*Math.pow(g/m,ml(h))},onStep:({scrollX:m,scrollY:g,zoom:h})=>{this.setState({scrollX:m,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,wd,window.location.pathname)}}catch(t){this.setState({errorMessage:t.message})}};addFiles=Ot(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=>{Md(o)&&r.has(o.fileId)&&(this.imageCache.delete(o.fileId),ha.delete(o))}),this.scene.triggerUpdate(),this.addNewImagesToImageCache()});updateScene=Ot(t=>{let r=ki(t.elements??[]);if(t.storeAction&&t.storeAction!==W.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(),Re(r)):i;t.storeAction===W.CAPTURE?this.store.captureIncrement(s,a):t.storeAction===W.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=Ot(t=>{this.lastViewportPosition.x=t.clientX,this.lastViewportPosition.y=t.clientY});onKeyDown=Ot(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[R.CTRL_OR_CMD]&&t.key===R.P&&!t.shiftKey&&!t.altKey){this.setToast({message:E("commandPalette.shortcutHint",{shortcut:mr("commandPalette")})}),t.preventDefault();return}if(t[R.CTRL_OR_CMD]&&t.key.toLowerCase()===R.V&&(Yh=t.shiftKey,clearTimeout(KM),KM=window.setTimeout(()=>{Yh=!1},100)),t[R.CTRL_OR_CMD]&&Yn(t.target)&&(t.code===Ne.MINUS||t.code===Ne.EQUAL)){t.preventDefault();return}if(Yn(t.target)&&t.key!==R.ESCAPE||Bs(t.key)&&QS(t.target))return;if(t.key===R.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(t.key.toLowerCase()===R.E&&t.shiftKey&&t[R.CTRL_OR_CMD]){t.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(t.key===R.PAGE_UP||t.key===R.PAGE_DOWN){let a=(t.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;t.key===R.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[R.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),Bs(t.key)){let a=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),s=a.find(dt),c=s?s.startBinding||s.endBinding?0:Ju:this.state.gridSize&&(t.shiftKey?Ju:this.state.gridSize)||(t.shiftKey?AS:Ju),d=0,u=0;t.key===R.ARROW_LEFT?d=-c:t.key===R.ARROW_RIGHT?d=c:t.key===R.ARROW_UP?u=-c:t.key===R.ARROW_DOWN&&(u=c),a.forEach(f=>{ce(f,{x:f.x+d,y:f.y+u}),ya(f,this.scene.getNonDeletedElementsMap(),this.scene,{simultaneouslyUpdated:a})}),this.setState({suggestedBindings:Jp(a.filter(f=>f.id!==s?.id||c!==0),this.scene.getNonDeletedElementsMap())}),t.preventDefault()}else if(t.key===R.ENTER){let a=this.scene.getSelectedElements(this.state);if(a.length===1){let s=a[0];if(t[R.CTRL_OR_CMD])Qe(s)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==a[0].id)&&(this.store.shouldCaptureIncrement(),dt(s)||this.setState({editingLinearElement:new Le(s)}));else if(he(s)||gI(s)){let c;he(s)||(c=s);let d=vf(s,this.state,this.scene.getNonDeletedElementsMap()),u=d.x,f=d.y;this.startTextEditing({sceneX:u,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=_C(t.key);a?(this.state.activeTool.type!==a&&ze("toolbar",a,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),a==="arrow"&&this.state.activeTool.type==="arrow"&&this.setState(s=>({currentItemArrowType:s.currentItemArrowType===Cr.sharp?Cr.round:s.currentItemArrowType===Cr.round?Cr.elbow:Cr.sharp})),this.setActiveTool({type:a}),t.stopPropagation()):t.key===R.Q&&(this.toggleLock("keyboard"),t.stopPropagation())}if(t.key===R.SPACE&&at.pointers.size===0&&(is=!0,ft(this.interactiveCanvas,pt.GRAB),t.preventDefault()),(t.key===R.G||t.key===R.S)&&!t.altKey&&!t[R.CTRL_OR_CMD]){let a=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!a.length)return;t.key===R.G&&(wa(this.state.activeTool.type)||a.some(s=>wa(s.type)))&&(this.setState({openPopup:"elementBackground"}),t.stopPropagation()),t.key===R.S&&(this.setState({openPopup:"elementStroke"}),t.stopPropagation())}if(!t[R.CTRL_OR_CMD]&&t.shiftKey&&t.key.toLowerCase()===R.F){let a=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!a.length)return;(this.state.activeTool.type==="text"||a.find(s=>he(s)||je(s,this.scene.getNonDeletedElementsMap())))&&(t.preventDefault(),this.setState({openPopup:"fontFamily"}))}if(t.key===R.K&&!t.altKey&&!t[R.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}t[R.CTRL_OR_CMD]&&(t.key===R.BACKSPACE||t.key===R.DELETE)&&Hr.set(Zl,"clearCanvas");let r=t.key.toLocaleLowerCase(),o=r===R.S&&t.shiftKey,i=t.key===R.I||r===R.G&&t.shiftKey;(o||i)&&this.openEyeDropper({type:o?"stroke":"background"})});onWheel=Ot(t=>{!(t.target instanceof HTMLCanvasElement)&&t.ctrlKey&&t.preventDefault()});onKeyUp=Ot(t=>{t.key===R.SPACE&&(this.state.viewModeEnabled?ft(this.interactiveCanvas,pt.GRAB):this.state.activeTool.type==="selection"?Jo(this.interactiveCanvas):(An(this.interactiveCanvas,this.state),this.setState({selectedElementIds:ht({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),is=!1),!t[R.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Bs(t.key)&&(wl(this.scene.getSelectedElements(this.state).filter(Qe),this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements(),this.scene,El(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=Gt(this.state,t);r.type==="hand"?ft(this.interactiveCanvas,pt.GRAB):is||An(this.interactiveCanvas,this.state),JS(document.activeElement)&&this.focusContainer(),p2(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:ht({},o),selectedGroupIds:ht({},o),editingGroupId:null,multiElement:null,...i}:{...o,activeTool:r,...i}})};setOpenDialog=t=>{this.setState({openDialog:t})};setCursor=t=>{ft(this.interactiveCanvas,t)};resetCursor=()=>{Jo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>at.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${E("labels.untitled")}-${Mx()}`;onGestureStart=Ot(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:ht({},this.state),activeEmbeddable:null}),at.initialScale=this.state.zoom.value});onGestureChange=Ot(t=>{if(t.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let r=at.initialScale;r&&this.setState(o=>({...Mi({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Pi(r*t.scale)},o)}))});onGestureEnd=Ot(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:ht(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&&he(c)?ke(c,{originalText:a,isDeleted:s??c.isDeleted,...yC(c,Il(c,o),o,a)}):c)])};UM({id:t.id,canvas:this.canvas,getViewportCoords:(a,s)=>{let{x:c,y:d}=oo({sceneX:a,sceneY:s},this.state);return[c-this.state.offsetLeft,d-this.state.offsetTop]},onChange:Ot(a=>{i(a,!1),Rv(t)&&ya(t,o,this.scene)}),onSubmit:Ot(({viaKeyboard:a,nextOriginalText:s})=>{let c=!s.trim();if(i(s,c),!c&&a){let d=t.containerId?t.containerId:t.id;this.setState(u=>({selectedElementIds:ht({...u.selectedElementIds,[d]:!0},u)}))}c&&ef(this.scene.getNonDeletedElements(),[t]),(!c||r)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&An(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:ht({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(t,r){let o=this.getElementAtPosition(t,r,{includeBoundTextElement:!0});return o&&he(o)&&!o.isDeleted?o: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 $s({x:t,y:r,element:a,shape:yl(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||!(he(d)&&d.containerId)))).filter(d=>this.hitElement(t,r,d)).filter(d=>{let u=af(d,s);return u&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?xv({x:t,y:r},u,s):!0}).filter(d=>fl(d)?(a.push(d),!1):!0).concat(a)}getElementHitThreshold(){return PS/this.state.zoom.value}hitElement(t,r,o,i=!0){if(i&&this.state.selectedElementIds[o.id]&&Ef([o],this.state)){let s=SC(o,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return wC([t,r],s)}return IC(t,r,AC(o,this.scene.getNonDeletedElementsMap()))?!0:$s({x:t,y:r,element:o,shape:yl(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 wi(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,u,f]=Eo(o[s],this.scene.getNonDeletedElementsMap());if(_t(o[s])&&$s({x:t,y:r,element:o[s],shape:yl(o[s],this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()})){a=o[s];break}else if(c<t&&t<u&&d<r&&r<f){a=o[s];break}}return wi(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,u=this.scene.getSelectedElements(this.state);u.length===1?he(u[0])?d=u[0]:i?d=je(u[0],this.scene.getNonDeletedElementsMap()):d=this.getTextElementAtPosition(t,r):d=this.getTextElementAtPosition(t,r);let f=d?.fontFamily||this.state.currentItemFontFamily,m=d?.lineHeight||Ii(f),g=this.state.currentItemFontSize;if(!d&&s&&i&&!_t(i)){let T=xf(ro({fontSize:g,fontFamily:f}),m),k=hf(g,m),I=Math.max(i.height,k),C=Math.max(i.width,T);ce(i,{height:I,width:C}),t=i.x+C/2,r=i.y+I/2,c&&(c=this.getTextWysiwygSnappedToCenterPosition(t,r,this.state,i))}let h=this.getTopLayerFrameAtSceneCoords({x:t,y:r}),b=d||xa({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?Zo.MIDDLE:Ix,containerId:s?i?.id:void 0,groupIds:i?.groupIds??[],lineHeight:m,angle:i?.angle??0,frameId:h?h.id:null});if(!d&&s&&i&&ce(i,{boundElements:(i.boundElements||[]).concat({type:"text",id:b.id})}),this.setState({editingElement:b}),!d)if(i&&s){let y=this.scene.getElementIndex(i.id);this.scene.insertElementAtIndex(b,y+1)}else this.scene.insertElement(b);a||d||i?this.handleTextWysiwyg(b,{isExistingElement:!!d}):this.setState({draggingElement:b,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&&Qe(r[0])&&t[R.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==r[0].id)&&!dt(r[0])){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Le(r[0])});return}Jo(this.interactiveCanvas);let{x:o,y:i}=Mt(t,this.state);if(_n(this.state).length>0){let s=this.getElementAtPosition(o,i),c=s&&T2(s,this.state.selectedGroupIds);if(c){this.store.shouldCaptureIncrement(),this.setState(d=>({...d,...Rr({editingGroupId:c,selectedElementIds:{[s.id]:!0}},this.scene.getNonDeletedElements(),d,this)}));return}}if(Jo(this.interactiveCanvas),!t[R.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let s=this.getElementAtPosition(o,i);if(Cs(s)){this.setState({activeEmbeddable:{element:s,state:"active"}});return}let c=this.getTextBindableContainerAtPosition(o,i);if(c&&(yo(c)||!pl(c.backgroundColor)||$s({x:o,y:i,element:c,shape:yl(c,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()}))){let d=vf(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&&tf(a,this.scene.getNonDeletedElementsMap(),this.state,[t.x,t.y],this.device.editor.isMobile)))};redirectToLink=(t,r)=>{let o=Sa(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||r&&o>il||!r&&o!==0)return;let i=Mt(this.lastPointerDownEvent,this.state),a=this.scene.getNonDeletedElementsMap(),s=tf(this.hitLinkElement,a,this.state,[i.x,i.y],this.device.editor.isMobile),c=Mt(this.lastPointerUpEvent,this.state),d=tf(this.hitLinkElement,a,this.state,[c.x,c.y],this.device.editor.isMobile);if(s&&d){let u=this.hitLinkElement.link;if(u){u=Ti(u);let f;if(this.props.onLinkOpen&&(f=fp("excalidraw-link",t.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:u},f)),!f?.defaultPrevented){let m=vp(u)?"_self":"_blank",g=window.open(void 0,m);g&&(g.opener=null,g.location=u)}}}};getTopLayerFrameAtSceneCoords=t=>{let r=this.scene.getNonDeletedElementsMap(),o=this.scene.getNonDeletedFramesLikes().filter(i=>xv(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=ME(at.pointers),h=g.x-at.lastCenter.x,b=g.y-at.lastCenter.y;at.lastCenter=g;let y=LE(Array.from(at.pointers.values())),T=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:y/at.initialDistance,k=T?Pi(r*T):this.state.zoom.value;this.setState(I=>{let C=Mi({viewportX:g.x,viewportY:g.y,nextZoom:k},I);this.translateCanvas({zoom:C.zoom,scrollX:C.scrollX+2*(h/k),scrollY:C.scrollY+2*(b/k),shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else at.lastCenter=at.initialDistance=at.initialScale=null;if(is||Qm||T0||Si(this.state))return;let i=NE(C0,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(i?Jo(this.interactiveCanvas):An(this.interactiveCanvas,this.state));let a=Mt(t,this.state),{x:s,y:c}=a;if(!this.state.draggingElement&&vM(this.state.activeTool.type)){let{originOffset:g,snapLines:h}=xM(this.scene.getNonDeletedElements(),this.state,{x:s,y:c},t,this.scene.getNonDeletedElementsMap());this.setState(b=>{let y=hp(b.snapLines,h),T=b.originSnapOffset?hp(b.originSnapOffset,g):g;return b.snapLines===y&&b.originSnapOffset===T?null:{snapLines:y,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);g&&g!==this.state.editingLinearElement&&(0,Vh.flushSync)(()=>{this.setState({editingLinearElement:g})}),g?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(a):(0,Vh.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(f2(this.state.activeTool.type)){let{draggingElement:g}=this.state;Ei(g,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(g,[a],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(a)}if(this.state.multiElement){let{multiElement:g}=this.state,{x:h,y:b}=g,{points:y,lastCommittedPoint:T}=g,k=y[y.length-1];if(An(this.interactiveCanvas,this.state),k===T)Sa(s-h,c-b,k[0],k[1])>=ju?ce(g,{points:[...y,[s-h,c-b]]}):ft(this.interactiveCanvas,pt.POINTER);else if(y.length>2&&T&&Sa(s-h,c-b,T[0],T[1])<ju)ft(this.interactiveCanvas,pt.POINTER),ce(g,{points:y.slice(0,-1)});else{let[I,C]=no(s,c,t[R.CTRL_OR_CMD]||dt(g)?null:this.state.gridSize),[O,z]=g?.lastCommittedPoint??[0,0],L=I-h-O,F=C-b-z;Zp(t)&&({width:L,height:F}=Iv(O+h,z+b,I,C)),Kd(y,this.state.zoom.value)&&ft(this.interactiveCanvas,pt.POINTER),dt(g)?Cl(g,this.scene,[...y.slice(0,-1),[O+L,z+F]],void 0,void 0,{isDragging:!0}):ce(g,{points:[...y.slice(0,-1),[O+L,z+F]]})}return}if(!!t.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let u=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)&&!(f.length===1&&dt(f[0]))){let g=_v(u,this.state,s,c,this.state.zoom,t.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(g&&g.transformHandleType){ft(this.interactiveCanvas,kv(g));return}}}else if(f.length>1&&!i){let g=Av(lt(f),s,c,this.state.zoom,t.pointerType,this.device);if(g){ft(this.interactiveCanvas,kv({transformHandleType:g}));return}}let m=this.getElementAtPosition(a.x,a.y);this.hitLinkElement=this.getElementLinkAtPosition(a,m),!jo(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(ft(this.interactiveCanvas,pt.POINTER),Yk(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(Vk(),m&&(m.link||$r(m))&&this.state.selectedElementIds[m.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?ft(this.interactiveCanvas,he(m)?pt.TEXT:pt.CROSSHAIR):this.state.viewModeEnabled?ft(this.interactiveCanvas,pt.GRAB):i?ft(this.interactiveCanvas,pt.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,s,c):t[R.CTRL_OR_CMD]?ft(this.interactiveCanvas,pt.AUTO):(m||this.isHittingCommonBoundingBoxOfSelectedElements(a,f))&&!m?.locked&&(m&&Cs(m)&&this.isIframeLikeElementCenter(m,t,s,c)?(ft(this.interactiveCanvas,pt.POINTER),this.setState({activeEmbeddable:{element:m,state:"hover"}})):(ft(this.interactiveCanvas,pt.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 b=h.groupIds.at(-1);if(!a.has(b)){a.add(b);let y=Kt(s,b);for(let T of y)t.altKey?this.elementsPendingErasure.delete(T.id):this.elementsPendingErasure.add(T.id)}}}},d=Sa(r.lastCoords.x,r.lastCoords.y,o.x,o.y),u=this.getElementHitThreshold(),f={...r.lastCoords},m=0;for(;m<=d;){let g=this.getElementsAtPosition(f.x,f.y);if(c(g),m===d)break;m=Math.min(m+u,d);let h=m/d,b=(1-h)*f.x+h*o.x,y=(1-h)*f.y+h*o.y;f.x=b,f.y=y}if(r.lastCoords.x=o.x,r.lastCoords.y=o.y,i){for(let g of this.scene.getNonDeletedElements())Ir(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=>{eu=!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;$s({x:r,y:o,element:a,shape:yl(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?ft(this.interactiveCanvas,pt.POINTER):this.hitElement(r,o,a)&&ft(this.interactiveCanvas,pt.MOVE)):this.hitElement(r,o,a)&&(!dt(a)||!(a.startBinding||a.endBinding))&&ft(this.interactiveCanvas,pt.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 ft(this.interactiveCanvas,pt.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 u=this.state.draggingElement;this.updateScene({...u.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==u.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:ht(Object.keys(this.state.selectedElementIds).filter(f=>f!==u.id).reduce((f,m)=>(f[m]=this.state.selectedElementIds[m],f),{}),this.state)},storeAction:W.UPDATE});return}let r=document.getSelection();if(r?.anchorNode&&r.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(t),!this.state.penDetected&&t.pointerType==="pen"&&this.setState(u=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(t.pointerType)&&(this.device=Ss(this.device,{isTouchScreen:!0})),Qm||(this.lastPointerDownEvent=t,this.handleCanvasPanUsingWheelOrSpaceDrag(t)))return;if(this.setState({lastPointerDownWith:t.pointerType,cursorButton:"down"}),this.savePointer(t.clientX,t.clientY,"down"),t.button===sa.ERASER&&this.state.activeTool.type!==Zt.eraser){this.setState({activeTool:Gt(this.state,{type:Zt.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(t);let u=()=>{f(),m?.(),jo(this.state)&&this.setState({activeTool:Gt(this.state,{...this.state.activeTool.lastActiveTool||{type:Zt.selection},lastActiveToolBeforeEraser:null})})},f=Wt(window,"pointerup",u,{once:!0}),m;requestAnimationFrame(()=>{m=this.missingPointerEventCleanupEmitter.once(u)})});return}if(t.button!==sa.MAIN&&t.button!==sa.TOUCH&&t.button!==sa.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"){ft(this.interactiveCanvas,pt.CROSSHAIR);let u=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!u)return;this.setState({draggingElement:u,editingElement:u,pendingImageElementId:null,multiElement:null});let{x:f,y:m}=Mt(t,this.state),g=this.getTopLayerFrameAtSceneCoords({x:f,y:m});ce(u,{x:f,y:m,frameId:g?g.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(t,this.state.activeTool.type,o):this.state.activeTool.type==="custom"?An(this.interactiveCanvas,this.state):this.state.activeTool.type===Zt.frame||this.state.activeTool.type===Zt.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(u=>s(u||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(Cs(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&&Cs(this.hitLinkElement)&&!zC(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"&&(eu=!1,Ka?eu=!0:Ka=window.setTimeout(()=>{Ka=0,eu||this.handleCanvasContextMenu(t)},BS))};resetContextMenuTimer=()=>{clearTimeout(Ka),Ka=0,eu=!1};maybeCleanupAfterMissingPointerUp=t=>{tu?.(),this.missingPointerEventCleanupEmitter.trigger(t).clear()};handleCanvasPanUsingWheelOrSpaceDrag=t=>{if(!(at.pointers.size<=1&&(t.button===sa.WHEEL||t.button===sa.MAIN&&is||Si(this.state)||this.state.viewModeEnabled))||he(this.state.editingElement))return!1;Qm=!0,t.preventDefault();let r=!1,o=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);ft(this.interactiveCanvas,pt.GRABBING);let{clientX:i,clientY:a}=t,s=Bh(d=>{let u=i-d.clientX,f=a-d.clientY;if(i=d.clientX,a=d.clientY,o&&!r&&(Math.abs(u)>1||Math.abs(f)>1)){r=!0;let m=h=>{document.body.removeEventListener("paste",m),h.stopPropagation()},g=()=>{setTimeout(()=>{document.body.removeEventListener("paste",m),window.removeEventListener("pointerup",g)},100)};document.body.addEventListener("paste",m),window.addEventListener("pointerup",g)}this.translateCanvas({scrollX:this.state.scrollX-u/this.state.zoom.value,scrollY:this.state.scrollY-f/this.state.zoom.value})}),c=Ot(tu=()=>{tu=null,Qm=!1,is||(this.state.viewModeEnabled?ft(this.interactiveCanvas,pt.GRAB):An(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=ME(at.pointers),at.initialScale=this.state.zoom.value,at.initialDistance=LE(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),d=o.findIndex(dt)===0;return{origin:r,withCmdOrCtrl:t[R.CTRL_OR_CMD],originInGrid:ma(no(r.x,r.y,t[R.CTRL_OR_CMD]||d?null:this.state.gridSize)),scrollbars:NE(C0,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop),lastCoords:{...r},originalElements:this.scene.getNonDeletedElements().reduce((u,f)=>(u.set(f.id,Fs(f)),u),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;T0=!0,r.lastCoords.x=t.clientX,r.lastCoords.y=t.clientY;let o=Bh(a=>{a.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(a,r)}),i=Ot(()=>{tu=null,T0=!1,An(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 tu=i,window.addEventListener("pointermove",o),window.addEventListener("pointerup",i),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:ht({},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=_v(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=Av(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=ma(_I(r.resize.handleType,a,i,r.origin.x,r.origin.y)),a.length===1&&Qe(a[0])&&a[0].points.length===2&&(r.resize.arrowDirection=AI(r.resize.handleType,a[0]));else{if(this.state.selectedLinearElement){let d=this.state.editingLinearElement||this.state.selectedLinearElement,u=Le.handlePointerDown(t,this.state,this.store,r.origin,d,this.scene);if(u.hitElement&&(r.hit.element=u.hitElement),u.linearElementEditor&&(this.setState({selectedLinearElement:u.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:u.linearElementEditor})),u.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:ht({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(s!=null){if(t[R.CTRL_OR_CMD])return this.state.selectedElementIds[s.id]||(r.hit.wasAddedToSelection=!0),this.setState(d=>({...S2(d,s),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[s.id]||(this.state.editingGroupId&&!ks(s,this.state.editingGroupId)&&this.setState({selectedElementIds:ht({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!c&&!r.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(d=>{let u={...d.selectedElementIds,[s.id]:!0},f=[];if(Object.keys(d.selectedElementIds).forEach(m=>{let g=this.scene.getElement(m);g&&f.push(g)}),He(s))Ea(f,s.id).forEach(m=>{delete u[m.id]});else if(s.frameId)u[s.frameId]&&delete u[s.id];else{let m=s.groupIds,g=new Set(m.flatMap(h=>Kt(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 u[h.id],h.groupIds.flatMap(b=>Kt(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete u[b.id]}))})}return{...Rr({editingGroupId:d.editingGroupId,selectedElementIds:u},this.scene.getNonDeletedElements(),d,this),showHyperlinkPopup:s.link||$r(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(he(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);yo(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}),Jo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:Gt(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(t,r,o)=>{let[i,a]=no(o.origin.x,o.origin.y,null),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),c=EC({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 m={...f.selectedElementIds};return delete m[c.id],{selectedElementIds:ht(m,f)}});let d=c.simulatePressure?c.pressures:[...c.pressures,t.pressure];ce(c,{points:[[0,0]],pressures:d});let u=va(o.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.insertElement(c),this.setState({draggingElement:c,editingElement:c,startBoundElement:u,suggestedBindings:[]})};insertIframeElement=({sceneX:t,sceneY:r,width:o,height:i})=>{let[a,s]=no(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),c=vC({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]=no(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=Sl(o);if(!s)return;s.error instanceof URIError&&this.setToast({message:E("toast.unrecognizedLinkFormat"),closable:!0});let c=uv({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]=no(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=o?this.getTopLayerFrameAtSceneCoords({x:i,y:a}):null;return Kp({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"&&Kd(i.points,this.state.zoom.value)){ce(i,{lastCommittedPoint:i.points[i.points.length-1]}),this.actionManager.executeAction(Fo);return}if(dt(i)&&i.points.length>1){ce(i,{lastCommittedPoint:i.points[i.points.length-1]}),this.actionManager.executeAction(Fo);return}let{x:a,y:s,lastCommittedPoint:c}=i;if(i.points.length>1&&c&&Sa(o.origin.x-a,o.origin.y-s,c[0],c[1])<ju){this.actionManager.executeAction(Fo);return}this.setState(d=>({selectedElementIds:ht({...d.selectedElementIds,[i.id]:!0},d)})),ce(i,{lastCommittedPoint:i.points[i.points.length-1]}),ft(this.interactiveCanvas,pt.POINTER)}else{let[i,a]=no(o.origin.x,o.origin.y,t[R.CTRL_OR_CMD]?null:this.state.gridSize),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),{currentItemStartArrowhead:c,currentItemEndArrowhead:d}=this.state,[u,f]=r==="arrow"?[c,d]:[null,null],m=r==="arrow"?Wp({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.currentItemArrowType===Cr.round?{type:bo.PROPORTIONAL_RADIUS}:null,startArrowhead:u,endArrowhead:f,locked:!1,frameId:s?s.id:null,elbowed:this.state.currentItemArrowType===Cr.elbow}):Gp({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:bo.PROPORTIONAL_RADIUS}:null,locked:!1,frameId:s?s.id:null});this.setState(h=>{let b={...h.selectedElementIds};return delete b[m.id],{selectedElementIds:ht(b,h)}}),ce(m,{points:[...m.points,[0,0]]});let g=va(o.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap(),dt(m));this.scene.insertElement(m),this.setState({draggingElement:m,editingElement:m,startBoundElement:g,suggestedBindings:[]})}};getCurrentItemRoundness(t){return this.state.currentItemRoundness==="round"?{type:Is(t)?bo.ADAPTIVE_RADIUS:bo.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(t,r)=>{let[o,i]=no(r.origin.x,r.origin.y,this.lastPointerDownEvent?.[R.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=uv({type:"embeddable",...s}):c=ba({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]=no(t.origin.x,t.origin.y,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),a={x:o,y:i,opacity:this.state.currentItemOpacity,locked:!1,...Cn},s=r===Zt.magicframe?$d(a):Up(a);this.scene.insertElement(s),this.setState({multiElement:null,draggingElement:s,editingElement:s})};maybeCacheReferenceSnapPoints(t,r,o=!1){Zi({event:t,appState:this.state,selectedElements:r})&&(o||!gn.getReferenceSnapPoints())&&gn.setReferenceSnapPoints(fM(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(t,r,o=!1){Zi({event:t,appState:this.state,selectedElements:r})&&(o||!gn.getVisibleGaps())&&gn.setVisibleGaps(pM(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(t){return Ot(r=>{this.maybeHandleResize(t,r)||this.maybeDragNewGenericElement(t,r)})}onKeyUpFromPointerDownHandler(t){return Ot(r=>{r.key===R.ALT&&r.preventDefault(),!this.maybeHandleResize(t,r)&&this.maybeDragNewGenericElement(t,r)})}onPointerMoveFromPointerDownHandler(t){return Bh(r=>{if(t.drag.offset===null&&(t.drag.offset=ma(PI(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(jo(this.state)){this.handleEraser(r,t,i);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(i.x,i.y);let[a,s]=no(i.x,i.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize);if(!t.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&Sa(i.x,i.y,t.origin.x,t.origin.y)<il)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 m=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[R.CTRL_OR_CMD],c);if(!h)return;(0,Vh.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(m.pointerDownState.segmentMidpoint.value!==null&&!m.pointerDownState.segmentMidpoint.added)return;if(Le.handlePointDragging(r,this.state,i.x,i.y,(h,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(h,b)},m,this.scene)){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(m=>this.isASelectedElement(m)),u=this.state.editingLinearElement&&r.shiftKey&&this.state.editingLinearElement.elementId===t.hit.element?.id;if((d||t.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!u){let m=this.scene.getSelectedElements(this.state);if(m.every(b=>b.locked))return;let g=m.find(b=>He(b)),h=this.getTopLayerFrameAtSceneCoords(i);if(this.setState({frameToHighlight:h&&!g?h:null}),t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),m.length>0&&!t.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let b={x:i.x-t.origin.x,y:i.y-t.origin.y},y=[...t.originalElements.values()],T=r.shiftKey;if(T){let C=Math.abs(b.x),O=Math.abs(b.y),z=T&&C<O,L=T&&C>O;z&&(b.x=0),L&&(b.y=0)}this.maybeCacheVisibleGaps(r,m),this.maybeCacheReferenceSnapPoints(r,m);let{snapOffset:k,snapLines:I}=gM(y,b,this.state,r,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:I}),!this.state.editingFrame&&kI(t,m,b,this.scene,k,r[R.CTRL_OR_CMD]?null:this.state.gridSize),(m.length!==1||!dt(m[0]))&&this.setState({suggestedBindings:Jp(m,this.scene.getNonDeletedElementsMap())}),r.altKey&&!t.hit.hasBeenDuplicated){t.hit.hasBeenDuplicated=!0;let C=[],O=[],z=new Map,L=new Map,F=t.hit.element,D=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(Q=>Q.id)),V=this.scene.getElementsIncludingDeleted();for(let Q of V)if(D.has(Q.id)||Q.id===F?.id&&t.hit.wasAddedToSelection){let me=Yp(this.state.editingGroupId,z,Q),K=t.originalElements.get(Q.id);ce(me,{x:K.x,y:K.y}),t.originalElements.set(me.id,me),C.push(me),O.push(Q),L.set(Q.id,me.id)}else C.push(Q);let U=[...C,...O];Do(U,Re(O)),pf(C,O,L),Qp(U,O,L,"duplicatesServeAsOld"),nf(U,O,L),this.scene.replaceAllElements(U),this.maybeCacheVisibleGaps(r,m,!0),this.maybeCacheReferenceSnapPoints(r,m,!0)}return}}let f=this.state.draggingElement;if(f){if(f.type==="freedraw"){let m=f.points,g=i.x-f.x,h=i.y-f.y,b=m.length>0&&m[m.length-1];if(!(b&&b[0]===g&&b[1]===h)){let T=f.simulatePressure?f.pressures:[...f.pressures,r.pressure];ce(f,{points:[...m,[g,h]],pressures:T})}}else if(Qe(f)){t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let m=f.points,g=a-f.x,h=s-f.y;Zp(r)&&m.length===2&&({width:g,height:h}=Iv(f.x,f.y,i.x,i.y)),m.length===1?ce(f,{points:[...m,[g,h]]}):m.length>1&&dt(f)?Cl(f,this.scene,[...m.slice(0,-1),[g,h]],[0,0],void 0,{isDragging:!0}):m.length===2&&ce(f,{points:[...m.slice(0,-1),[g,h]]}),Ei(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 m=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&&gt(m,this.state)&&(t.withCmdOrCtrl&&t.hit.element?this.setState(b=>Rr({...b,selectedElementIds:{[t.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):g=!1);let h=MI(m,f,this.scene.getNonDeletedElementsMap());this.setState(b=>{let y={...g&&b.selectedElementIds,...h.reduce((T,k)=>(T[k.id]=!0,T),{})};return t.hit.element&&(h.length?delete y[t.hit.element.id]:y[t.hit.element.id]=!0),b=g?b:{...b,selectedGroupIds:{},editingGroupId:null},{...Rr({editingGroupId:b.editingGroupId,selectedElementIds:y},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:h.length===1&&Qe(h[0])?new Le(h[0]):null,showHyperlinkPopup:h.length===1&&(h[0].link||$r(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 Ot(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||he(this.state.editingElement)?this.state.editingElement:null,snapLines:hp(h.snapLines,[]),originSnapOffset:null})),gn.setReferenceSnapPoints(null),gn.setVisibleGaps(null),this.savePointer(r.clientX,r.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let u=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!t.boxSelection.hasOccurred&&t.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(Fo);else{let h=Le.handlePointerUp(r,this.state.editingLinearElement,this.state,this.scene);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.scene),{startBindingElement:b,endBindingElement:y}=h,T=this.scene.getElement(h.elementId);Ei(T)&&jp(T,b,y,u,this.scene),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),b=o.points,y=h.x-o.x,T=h.y-o.y;y===b[0][0]&&T===b[0][1]&&(T+=1e-4,y+=1e-4);let k=o.simulatePressure?[]:[...o.pressures,r.pressure];ce(o,{points:[...b,[y,T]],pressures:k,lastCommittedPoint:[y,T]}),this.actionManager.executeAction(Fo);return}if(pa(o)){let h=o;try{this.initializeImageDimensions(h),this.setState({selectedElementIds:ht({[h.id]:!0},this.state)},()=>{this.actionManager.executeAction(Fo)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(y=>y.id!==h.id)),this.actionManager.executeAction(Fo)}return}if(Qe(o)){o.points.length>1&&this.store.shouldCaptureIncrement();let h=Mt(r,this.state);!t.drag.hasOccurred&&o&&!a?(ce(o,{points:[...o.points,[h.x-o.x,h.y-o.y]]}),this.setState({multiElement:o,editingElement:this.state.draggingElement})):t.drag.hasOccurred&&!a&&(El(this.state)&&Ei(o,!1)&&Hd(o,this.state,h,this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements()),this.setState({suggestedBindings:[],startBoundElement:null}),s.locked?this.setState(b=>({draggingElement:null})):(Jo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:Gt(this.state,{type:"selection"}),selectedElementIds:ht({...b.selectedElementIds,[o.id]:!0},b),selectedLinearElement:new Le(o)}))));return}if(he(o)){let h=xI(ro({fontSize:o.fontSize,fontFamily:o.fontFamily}),o.lineHeight);o.width<h&&ce(o,{autoResize:!0}),this.resetCursor(),this.handleTextWysiwyg(o,{isExistingElement:!0})}if(s.type!=="selection"&&o&&_l(o)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(h=>h.id!==o.id),appState:{draggingElement:null},storeAction:W.UPDATE});return}if(o){if(t.drag.hasOccurred){let h=Mt(r,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let b=this.scene.getElement(this.state.selectedLinearElement.elementId);if(b?.frameId){let y=af(b,u);y&&b&&(jC(b,y,this.scene.getNonDeletedElementsMap())||(ce(b,{groupIds:[]}),sf([b],this.scene.getNonDeletedElementsMap()),this.scene.triggerUpdate()))}}else{let b=this.getTopLayerFrameAtSceneCoords(h),y=this.scene.getSelectedElements(this.state),T=this.scene.getElementsMapIncludingDeleted(),k=I=>{if(I.length>0){for(let C of I){let O=C.groupIds.indexOf(this.state.editingGroupId);ce(C,{groupIds:C.groupIds.slice(0,O)},!1)}T.forEach(C=>{C.groupIds.length&&Kt(T,C.groupIds[C.groupIds.length-1]).length<2&&ce(C,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let I=y.filter(C=>C.frameId!==b.id&&vv(C,T,this.state));this.state.editingGroupId&&k(I),T=lf(T,I,b)}else if(!b&&this.state.editingGroupId){let I=y.filter(C=>C.frameId&&!vv(C,T,this.state));k(I)}T=Vn(T,this.state,this),this.scene.replaceAllElements(T)}}if(He(o)){let h=eI(this.scene.getElementsIncludingDeleted(),o,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(lf(this.scene.getElementsMapIncludingDeleted(),h,o))}ce(o,EI(o))}if(i&&this.store.shouldCaptureIncrement(),i&&_l(i)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(h=>h.id!==i.id),storeAction:W.UPDATE}),t.resize.isResizing){let h=Vn(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(y=>He(y));for(let y of b)h=cf(h,Ks(this.scene.getElementsIncludingDeleted(),y,this.state,u),y,this);this.scene.replaceAllElements(h)}let f=t.hit.element;this.state.selectedLinearElement?.elementId!==f?.id&&Qe(f)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new Le(f)});let m=this.lastPointerDownEvent,g=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(jo(this.state)&&m&&g){if(this.eraserTrail.endPath(),Sa(m.clientX,m.clientY,g.clientX,g.clientY)===0){let b=Mt({clientX:g.clientX,clientY:g.clientY},this.state);this.getElementsAtPosition(b.x,b.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]?xp(this.state,f)?this.setState(h=>{let b={...h.selectedElementIds};for(let y of f.groupIds.flatMap(T=>Kt(this.scene.getNonDeletedElements(),T)))delete b[y.id];return{selectedGroupIds:{...h.selectedElementIds,...f.groupIds.map(y=>({[y]:!1})).reduce((y,T)=>({...y,...T}),{})},selectedElementIds:ht(b,h)}}):this.state.selectedLinearElement?.isDragging||this.setState(h=>{let b={...h.selectedElementIds};delete b[f.id];let y=Oe(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...Rr({editingGroupId:h.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:y.length===1&&Qe(y[0])?new Le(y[0]):h.selectedLinearElement}}):f.frameId&&this.state.selectedElementIds[f.frameId]?this.setState(h=>{let b={...h.selectedElementIds,[f.id]:!0};return delete b[f.frameId],(this.scene.getElement(f.frameId)?.groupIds??[]).flatMap(y=>Kt(this.scene.getNonDeletedElements(),y)).forEach(y=>{delete b[y.id]}),{...Rr({editingGroupId:h.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),h,this),showHyperlinkPopup:f.link||$r(f)?"info":!1}}):this.setState(h=>({selectedElementIds:ht({...h.selectedElementIds,[f.id]:!0},h)})):this.setState(h=>({...Rr({editingGroupId:h.editingGroupId,selectedElementIds:{[f.id]:!0}},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:Qe(f)&&h.selectedLinearElement?.elementId!==f.id?new Le(f):h.selectedLinearElement}))),!t.drag.hasOccurred&&!this.state.isResizing&&(f&&CC({x:t.origin.x,y:t.origin.y,element:f,shape:yl(f,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold(),frameNameBound:He(f)?this.frameNameBoundsCache.get(f):null},u)||!f&&t.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:ht({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),ft(this.interactiveCanvas,pt.AUTO);return}if(!s.locked&&s.type!=="freedraw"&&o&&o.type!=="selection"&&this.setState(h=>({selectedElementIds:ht({...h.selectedElementIds,[o.id]:!0},h),showHyperlinkPopup:$r(o)&&!o.link?"editor":h.showHyperlinkPopup})),(s.type!=="selection"||gt(this.scene.getNonDeletedElements(),this.state)||!br(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),t.drag.hasOccurred||c||d){let h=this.scene.getSelectedElements(this.state).filter(Qe);wl(h,this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements(),this.scene,El(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[])}if(s.type==="laser"){this.laserTrails.endPath();return}!s.locked&&s.type!=="freedraw"?(Jo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:Gt(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&&Cs(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)||Ir(o)&&this.elementsPendingErasure.has(o.containerId)?(t=!0,ke(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(E("errors.unsupportedFileType"));let i=t.type;if(ft(this.interactiveCanvas,"wait"),i===Lr.svg)try{t=mv(await FC(await t.text()),t.name)}catch(u){throw console.warn(u),new Error(E("errors.svgImageInsertError"))}let a=await(this.props.generateIdForFile?.(t)||fC(t));if(!a)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(E("errors.imageInsertError"));if(!this.files[a]?.dataURL){try{t=await zd(t,{maxWidthOrHeight:VS})}catch(u){console.error("Error trying to resizing image file on insertion",u)}if(t.size>kx)throw new Error(E("errors.fileTooBig",{maxSize:`${Math.trunc(kx/1024/1024)}MB`}))}if(o){let u=this.files[a]?.dataURL,f=u&&gC(u);this.setImagePreviewCursor(f||t)}let c=this.files[a]?.dataURL||await Hp(t),d=ce(r,{fileId:a},!1);return new Promise(async(u,f)=>{try{this.files={...this.files,[a]:{mimeType:i,id:a,dataURL:c,created:Date.now(),lastRetrieved:Date.now()}};let m=this.imageCache.get(a);m||(this.addNewImagesToImageCache(),await this.updateImageCache([d])),m?.image instanceof Promise&&await m.image,this.state.pendingImageElementId!==d.id&&this.state.draggingElement?.id!==d.id&&this.initializeImageDimensions(d,!0),u(d)}catch(m){console.error(m),f(new Error(E("errors.imageInsertError")))}finally{o||Jo(this.interactiveCanvas)}})};insertImageElement=async(t,r,o)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:E("errors.imageToolNotSupported")});return}this.scene.insertElement(t);try{return await this.initializeImage({imageFile:r,imageElement:t,showCursorImagePreview:o})}catch(i){return ce(t,{isDeleted:!0}),this.actionManager.executeAction(Fo),this.setState({errorMessage:i.message||E("errors.imageInsertError")}),null}};setImagePreviewCursor=async t=>{let o;try{o=await zd(t,{maxWidthOrHeight:96})}catch(a){throw a.cause==="UNSUPPORTED"?new Error(E("errors.unsupportedFileType")):a}let i=await Hp(o);if(t.type===Lr.svg){let a=await DC(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(Lr.svg)}this.state.pendingImageElementId&&ft(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 Op({description:"Image",extensions:Object.keys(RS)}),c=this.createImageElement({sceneX:i,sceneY:a,addToFrameUnderCursor:!1});t?(this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:ht({[c.id]:!0},this.state)},()=>{this.actionManager.executeAction(Fo)})):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:Gt(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(Fo)})}};initializeImageDimensions=(t,r=!1)=>{let o=Md(t)&&this.imageCache.get(t.fileId)?.image;if(!o||o instanceof Promise){if(t.width<il/this.state.zoom.value&&t.height<il/this.state.zoom.value){let i=100/this.state.zoom.value;ce(t,{x:t.x-i/2,y:t.y-i/2,width:i,height:i})}return}if(r||t.width<il/this.state.zoom.value&&t.height<il/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,u=t.y+t.height/2-s/2;ce(t,{x:d,y:u,width:c,height:s})}};updateImageCache=async(t,r=this.files)=>{let{updatedFiles:o,erroredFiles:i}=await NC({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)&&ha.delete(a);return i.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(a=>Md(a)&&i.has(a.fileId)?ke(a,{status:"error"}):a)),{updatedFiles:o,erroredFiles:i}};addNewImagesToImageCache=async(t=OC(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,VM.default)(()=>{this.addNewImagesToImageCache()},OS);updateBindingEnabledOnPointerMove=t=>{let r=kC(t);this.state.isBindingEnabled!==r&&this.setState({isBindingEnabled:r})};maybeSuggestBindingAtCursor=t=>{let r=va(t,this.scene.getNonDeletedElements(),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=va(s,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap(),_t(t)&&dt(t));return c!=null&&!PC(t,o?.id,c)&&a.push(c),a},[]);this.setState({suggestedBindings:i})};clearSelection(t){this.setState(r=>({selectedElementIds:ht({},r),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:r.editingGroupId&&t!=null&&ks(t,r.editingGroupId)?r.editingGroupId:null})),this.setState({selectedElementIds:ht({},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 bC(t),{x:i,y:a}=Mt(t,this.state);try{if(zp(r)&&this.isToolSupported("image")){if(r?.type===Lr.png||r?.type===Lr.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:W.CAPTURE});return}catch(d){if(d.name!=="EncodingError")throw new Error(E("alerts.couldNotLoadInvalidFile"))}let c=this.createImageElement({sceneX:i,sceneY:a});this.insertImageElement(c,r),this.initializeImageDimensions(c),this.setState({selectedElementIds:ht({[c.id]:!0},this.state)});return}}catch(c){return this.setState({isLoading:!1,errorMessage:c.message})}let s=t.dataTransfer.getData(Lr.excalidrawlib);if(s&&typeof s=="string"){try{let c=pC(s);this.addElementsFromPasteOrLibrary({elements:Wg(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&&Us(c,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(c)||Sl(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 xC(t);try{let o=this.scene.getElementsIncludingDeleted(),i;try{i=await cv(t,this.state,o,r)}catch(a){let s=a instanceof v2;if(s&&a.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:E("errors.imageToolNotSupported")});return}let c=s?E("alerts.cannotRestoreFromImage"):E("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:c})}if(!i)return;i.type===Lr.excalidraw?(ki(o.concat(i.data.elements)),this.store.updateSnapshot(Re(o),this.state),this.setState({isLoading:!0}),this.syncActionResult({...i.data,appState:{...i.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:W.CAPTURE})):i.type===Lr.excalidrawlib&&await this.library.updateLibrary({libraryItems:t,merge:!0,openLibraryMenu:!0}).catch(a=>{console.error(a),this.setState({errorMessage:E("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!==sa.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:u,left:f}=d.getBoundingClientRect(),m=t.clientX-f,g=t.clientY-u;ze("contextMenu","openContextMenu",c),this.setState({...i&&!this.state.selectedElementIds[i.id]?{...this.state,...Rr({editingGroupId:this.state.editingGroupId,selectedElementIds:{[i.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:Qe(i)?new Le(i):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:g,left:m,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")Pv(o,this.state.activeTool.type,t.origin.x,t.origin.y,i.x,i.y,ul(t.origin.x,i.x),ul(t.origin.y,i.y),zs(r),Xp(r),this.state.zoom.value);else{let[a,s]=no(i.x,i.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),c=Md(o)&&this.imageCache.get(o.fileId)?.image,d=c&&!(c instanceof Promise)?c.width/c.height:null;this.maybeCacheReferenceSnapPoints(r,[o]);let{snapOffset:u,snapLines:f}=bM(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+=u.x,s+=u.y,this.setState({snapLines:f}),Pv(o,this.state.activeTool.type,t.originInGrid.x,t.originInGrid.y,a,s,ul(t.originInGrid.x,a),ul(t.originInGrid.y,s),pa(o)?!zs(r):zs(r),Xp(r),this.state.zoom.value,d,this.state.originSnapOffset),(this.state.activeTool.type===Zt.frame||this.state.activeTool.type===Zt.magicframe)&&this.setState({elementsToHighlight:Ks(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]=no(s.x-t.resize.offset.x,s.y-t.resize.offset.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),u=new Map;if(i.forEach(f=>{Ea(this.scene.getNonDeletedElements(),f.id).forEach(g=>{u.set(f.id+g.id,{x:g.x-f.x,y:g.y-f.y})})}),!this.state.selectedElementsAreBeingDragged){let[f,m]=no(s.x,s.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),g={x:f-t.originInGrid.x,y:m-t.originInGrid.y},h=[...t.originalElements.values()];this.maybeCacheReferenceSnapPoints(r,o);let{snapOffset:b,snapLines:y}=hM(o,Oe(h,this.state),this.state,r,g,a);c+=b.x,d+=b.y,this.setState({snapLines:y})}if(TI(t.originalElements,a,o,this.scene.getElementsMapIncludingDeleted(),Zp(r),Xp(r),o.some(f=>pa(f))?!zs(r):zs(r),c,d,t.resize.center.x,t.resize.center.y,this.scene)){let f=Jp(o,this.scene.getNonDeletedElementsMap()),m=new Set;return i.forEach(g=>{Ks(this.scene.getNonDeletedElements(),g,this.state,this.scene.getNonDeletedElementsMap()).forEach(h=>m.add(h))}),this.setState({elementsToHighlight:[...m],suggestedBindings:f}),!0}return!1};getContextMenuItems=t=>{let r=[];return r.push(Dg,Rg),t==="canvas"?this.state.viewModeEnabled?[...r,Og,Pc,u0,Mc]:[Jy,Vr,Dg,Rg,Ng,Vr,Wv,Zk,Vr,Og,Qy,Pc,u0,Mc]:(r.push(Ng),this.state.viewModeEnabled?[kc,...r]:[Vr,Lg,kc,Jy,lM,sM,Vr,...r,Vr,Hy,Uy,Vr,Wy,GM,eE,tE,Uk,Ky,Vr,Xy,Vr,$v,Hv,Uv,Gv,Vr,qy,jy,Vr,IE,Sm,Kv,lE,Vr,rm])};handleWheel=Ot(t=>{if(t.preventDefault(),Qm)return;let{deltaX:r,deltaY:o}=t;if(t.metaKey||t.ctrlKey){let i=Math.sign(o),a=sl*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(u=>({...Mi({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Pi(d)},u),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=vf(i,o,this.scene.getNonDeletedElementsMap());if(c&&(a=c.x,s=c.y),Math.hypot(t-a,r-s)<kS){let{x:f,y:m}=oo({sceneX:a,sceneY:s},o);return{viewportX:f,viewportY:m,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=dl(()=>{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:u,offsetLeft:f}=this.state;if(o===c&&i===d&&a===f&&s===u){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=Qs.find(r=>r.code===this.props.langCode)||Xn;await Lf(t),this.setAppState({})}},fH=()=>{(A.MODE===ys.TEST||A.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(ki(e))}},scene:{configurable:!0,get(){return this.app?.scene}}}))};fH();var jM=_0;v();var gH=()=>{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)})},JM=gH;v();var D0=w(M(),1),QM=({children:e})=>{let{FooterCenterTunnel:t}=At(),r=it();return(0,D0.jsx)(t.In,{children:(0,D0.jsx)("div",{className:q("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":r.zenModeEnabled}),children:e})})},hH=QM;QM.displayName="FooterCenter";v();v();v();var bn=w(M(),1),bH=()=>(0,bn.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,bn.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"})}),xH=()=>(0,bn.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,bn.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,bn.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,bn.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,bn.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)"})]}),eL=({style:e,size:t="small",withText:r})=>(0,bn.jsxs)("div",{className:`ExcalidrawLogo is-${t}`,style:e,children:[(0,bn.jsx)(bH,{}),r&&(0,bn.jsx)(xH,{})]});var yt=w(M(),1),N0=({icon:e,shortcut:t,children:r})=>{let o=rt();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})]})};N0.displayName="WelcomeScreenMenuItemContent";var ru=({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)(N0,{icon:r,shortcut:o,children:t})});ru.displayName="WelcomeScreenMenuItem";var tL=({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)(N0,{icon:r,shortcut:o,children:e})});tL.displayName="WelcomeScreenMenuItemLink";var xn=({children:e})=>{let{WelcomeScreenCenterTunnel:t}=At();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)(O0,{}),(0,yt.jsx)(F0,{children:E("welcomeScreen.defaults.center_heading")}),(0,yt.jsxs)(B0,{children:[(0,yt.jsx)($0,{}),(0,yt.jsx)(z0,{})]})]})})})};xn.displayName="Center";var O0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-center__logo excalifont welcome-screen-decor",children:e||(0,yt.jsx)(eL,{withText:!0})});O0.displayName="Logo";var F0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor excalifont",children:e});F0.displayName="Heading";var B0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-menu",children:e});B0.displayName="Menu";var z0=()=>{let e=yr();return(0,yt.jsx)(ru,{onSelect:()=>e.executeAction($l),shortcut:"?",icon:Ms,children:E("helpDialog.title")})};z0.displayName="MenuItemHelp";var $0=()=>{let e=it(),t=yr();return e.viewModeEnabled?null:(0,yt.jsx)(ru,{onSelect:()=>t.executeAction(_c),shortcut:mr("loadScene"),icon:Ls,children:E("buttons.load")})};$0.displayName="MenuItemLoadScene";var rL=({onSelect:e})=>{let{t}=lr();return(0,yt.jsx)(ru,{shortcut:null,onSelect:e,icon:Ip,children:t("labels.liveCollaboration")})};rL.displayName="MenuItemLiveCollaborationTrigger";xn.Logo=O0;xn.Heading=F0;xn.Menu=B0;xn.MenuItem=ru;xn.MenuItemLink=tL;xn.MenuItemHelp=z0;xn.MenuItemLoadScene=$0;xn.MenuItemLiveCollaborationTrigger=rL;v();var Hn=w(M(),1),Xh=({children:e})=>{let{WelcomeScreenMenuHintTunnel:t}=At();return(0,Hn.jsx)(t.In,{children:(0,Hn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[D2,(0,Hn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.menuHint")})]})})};Xh.displayName="MenuHint";var Zh=({children:e})=>{let{WelcomeScreenToolbarHintTunnel:t}=At();return(0,Hn.jsx)(t.In,{children:(0,Hn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,Hn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.toolbarHint")}),O2]})})};Zh.displayName="ToolbarHint";var qh=({children:e})=>{let{WelcomeScreenHelpHintTunnel:t}=At();return(0,Hn.jsx)(t.In,{children:(0,Hn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,Hn.jsx)("div",{children:e||E("welcomeScreen.defaults.helpHint")}),N2]})})};qh.displayName="HelpHint";var Un=w(M(),1),jh=e=>(0,Un.jsx)(Un.Fragment,{children:e.children||(0,Un.jsxs)(Un.Fragment,{children:[(0,Un.jsx)(xn,{}),(0,Un.jsx)(Xh,{}),(0,Un.jsx)(Zh,{}),(0,Un.jsx)(qh,{})]})});jh.displayName="WelcomeScreen";jh.Center=xn;jh.Hints={MenuHint:Xh,ToolbarHint:Zh,HelpHint:qh};var vH=jh;v();var Jh=w(M(),1),oL=({isCollaborating:e,onSelect:t,...r})=>{let o=it(),i=o.width<830;return(0,Jh.jsxs)(ti,{...r,className:q("collab-button",{active:e}),type:"button",onSelect:t,style:{position:"relative",width:i?void 0:"auto"},title:E("labels.liveCollaboration"),children:[i?j2:E("labels.share"),o.collaborators.size>0&&(0,Jh.jsx)("div",{className:"CollabButton-collaborators",children:o.collaborators.size})]})},yH=oL;oL.displayName="LiveCollaborationTrigger";v();var EH=(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)),wH=(e,t,r)=>{let o=Re(e),i=[],a=new Set;for(let c of t)if(!a.has(c.id)){let d=o.get(c.id),u=EH(r,d,c);d&&u?(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=yI(i);if(A.DEV||A.MODE===ys.TEST||window?.DEBUG_FRACTIONAL_INDICES){let c=ki(s.map(d=>({...d})));vI(c,{shouldThrow:A.DEV||A.MODE===ys.TEST,includeBoundTextValidation:!0,reconciliationContext:{localElements:e,remoteElements:t}})}return ki(s),s};v();var ou=w(M(),1),nL=({children:e,icon:t})=>{let{TTDDialogTriggerTunnel:r}=At(),o=ot();return(0,ou.jsx)(r.In,{children:(0,ou.jsxs)(st.Item,{onSelect:()=>{ze("ai","dialog open","ttd"),o({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:t??HT,children:[e??E("labels.textToDiagram"),(0,ou.jsx)(st.Item.Badge,{children:"AI"})]})})};nL.displayName="TTDDialogTrigger";var Qh=w(M(),1);JM();var SH=e=>{let{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i=!1,onPointerUpdate:a,renderTopRightUI:s,langCode:c=Xn.code,viewModeEnabled:d,zenModeEnabled:u,gridModeEnabled:f,libraryReturnUrl:m,theme:g,name:h,renderCustomStats:b,onPaste:y,detectScroll:T=!0,handleKeyboardGlobally:k=!1,onLibraryChange:I,autoFocus:C=!1,generateIdForFile:O,onLinkOpen:z,onPointerDown:L,onPointerUp:F,onScrollChange:D,children:V,validateEmbeddable:U,renderEmbeddable:Q,aiEnabled:me,showDeprecatedFonts:K}=e,se=e.UIOptions?.canvasActions,be={...e.UIOptions,canvasActions:{...Ax.canvasActions,...se},tools:{image:e.UIOptions?.tools?.image??!0}};return se?.export&&(be.canvasActions.export.saveFileToDisk=se.export?.saveFileToDisk??Ax.canvasActions.export.saveFileToDisk),be.canvasActions.toggleTheme===null&&typeof g>"u"&&(be.canvasActions.toggleTheme=!0),(0,eb.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let nt=Ee=>{typeof Ee.scale=="number"&&Ee.scale!==1&&Ee.preventDefault()};return document.addEventListener("touchmove",nt,{passive:!1}),()=>{document.removeEventListener("touchmove",nt)}},[]),(0,Qh.jsx)(kf,{unstable_createStore:()=>Hr,scope:mt,children:(0,Qh.jsx)(UI,{langCode:c,theme:g,children:(0,Qh.jsx)(jM,{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i,onPointerUpdate:a,renderTopRightUI:s,langCode:c,viewModeEnabled:d,zenModeEnabled:u,gridModeEnabled:f,libraryReturnUrl:m,theme:g,name:h,renderCustomStats:b,UIOptions:be,onPaste:y,detectScroll:T,handleKeyboardGlobally:k,onLibraryChange:I,autoFocus:C,generateIdForFile:O,onLinkOpen:z,onPointerDown:L,onPointerUp:F,onScrollChange:D,validateEmbeddable:U,renderEmbeddable:Q,aiEnabled:me!==!1,showDeprecatedFonts:K,children:V})})})},TH=(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),u=Object.keys(s);return d.length!==u.length?!1:d.every(m=>m==="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[m]===s[m])&&br(i,c)},CH=eb.default.memo(SH,TH);CH.displayName="Excalidraw";export{ti as Button,Cx as DEFAULT_LASER_COLOR,_h as DefaultSidebar,CH as Excalidraw,ll as FONT_FAMILY,hH as Footer,yH as LiveCollaborationTrigger,Lr as MIME_TYPES,uo as MainMenu,bo as ROUNDNESS,Gi as Sidebar,W as StoreAction,Be as THEME,a0 as TTDDialog,nL as TTDDialogTrigger,vH as WelcomeScreen,Cv as bumpVersion,Kc as convertToExcalidrawElements,Xn as defaultLang,H7 as elementPartiallyOverlapsWithOrContainsBBox,U7 as elementsOverlappingBBox,bv as exportToBlob,Tl as exportToCanvas,z7 as exportToClipboard,Gd as exportToSvg,lt as getCommonBounds,G7 as getFreeDrawSvgPath,Gg as getLibraryItemsHash,We as getNonDeletedElements,W7 as getSceneVersion,Tv as getVisibleSceneBounds,Mv as hashElementsVersion,Lv as hashString,$7 as isElementInsideBBox,_l as isInvisiblySmallElement,Qe as isLinearElement,Qs as languages,$p as loadFromBlob,dv as loadLibraryFromBlob,cv as loadSceneOrLibraryFromBlob,n5 as mergeLibraryItems,ce as mutateElement,ke as newElementWith,Ti as normalizeLink,dE as parseLibraryTokensFromUrl,wH as reconcileElements,sv as restore,B7 as restoreAppState,lv as restoreElements,Bd as restoreLibraryItems,oo as sceneCoordsToViewportCoords,nv as serializeAsJSON,av as serializeLibraryAsJSON,rt as useDevice,MF as useHandleLibrary,lr as useI18n,Mt as viewportCoordsToSceneCoords,wk as zoomToFitBounds};
188
189
  /*! Bundled license information:
189
190
 
190
- react/cjs/react-jsx-runtime.production.min.js:
191
- (**
192
- * @license React
193
- * react-jsx-runtime.production.min.js
194
- *
195
- * Copyright (c) Facebook, Inc. and its affiliates.
196
- *
197
- * This source code is licensed under the MIT license found in the
198
- * LICENSE file in the root directory of this source tree.
199
- *)
200
-
201
191
  use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js:
202
192
  (**
203
193
  * @license React