@excalidraw/excalidraw 0.17.1-1ed53b1 → 0.17.1-22b3927

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 (122) hide show
  1. package/dist/browser/dev/excalidraw-assets-dev/{chunk-JKPJV7MZ.js → chunk-Q6A4M3MN.js} +4 -2
  2. package/dist/browser/dev/excalidraw-assets-dev/chunk-Q6A4M3MN.js.map +7 -0
  3. package/dist/browser/dev/excalidraw-assets-dev/{chunk-OKAZAA6U.js → chunk-VC7RRIDZ.js} +230 -93
  4. package/dist/browser/dev/excalidraw-assets-dev/chunk-VC7RRIDZ.js.map +7 -0
  5. package/dist/browser/dev/excalidraw-assets-dev/{dist-ITJNUBZF.js → dist-6QVAH5JA.js} +36 -14
  6. package/dist/browser/dev/excalidraw-assets-dev/dist-6QVAH5JA.js.map +7 -0
  7. package/dist/browser/dev/excalidraw-assets-dev/{en-BF4XUPIZ.js → en-Y27YPU72.js} +2 -2
  8. package/dist/browser/dev/excalidraw-assets-dev/{image-LVS32KQQ.js → image-J7S3ALXP.js} +2 -2
  9. package/dist/browser/dev/index.js +335 -116
  10. package/dist/browser/dev/index.js.map +4 -4
  11. package/dist/browser/prod/excalidraw-assets/chunk-CWO763YJ.js +55 -0
  12. package/dist/browser/prod/excalidraw-assets/{chunk-O4AI3NNG.js → chunk-IZMZ6RPD.js} +1 -1
  13. package/dist/browser/prod/excalidraw-assets/dist-567JAXHK.js +7 -0
  14. package/dist/browser/prod/excalidraw-assets/{en-N7CLNF6C.js → en-GSUSWMSH.js} +1 -1
  15. package/dist/browser/prod/excalidraw-assets/image-SZBFRCU2.js +1 -0
  16. package/dist/browser/prod/index.js +24 -24
  17. package/dist/dev/{en-UQDDYCH7.json → en-OIPCBIOA.json} +3 -1
  18. package/dist/dev/index.js +576 -207
  19. package/dist/dev/index.js.map +4 -4
  20. package/dist/excalidraw/actions/actionAddToLibrary.d.ts +3 -3
  21. package/dist/excalidraw/actions/actionAlign.d.ts +6 -6
  22. package/dist/excalidraw/actions/actionBoundText.d.ts +3 -3
  23. package/dist/excalidraw/actions/actionBoundText.js +3 -1
  24. package/dist/excalidraw/actions/actionCanvas.d.ts +13 -13
  25. package/dist/excalidraw/actions/actionClipboard.d.ts +12 -12
  26. package/dist/excalidraw/actions/actionDeleteSelected.d.ts +3 -3
  27. package/dist/excalidraw/actions/actionDistribute.d.ts +2 -2
  28. package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +1 -1
  29. package/dist/excalidraw/actions/actionElementLock.d.ts +2 -2
  30. package/dist/excalidraw/actions/actionExport.d.ts +11 -11
  31. package/dist/excalidraw/actions/actionFinalize.d.ts +2 -2
  32. package/dist/excalidraw/actions/actionFlip.d.ts +2 -2
  33. package/dist/excalidraw/actions/actionFrame.d.ts +312 -4
  34. package/dist/excalidraw/actions/actionGroup.d.ts +312 -2
  35. package/dist/excalidraw/actions/actionHistory.js +4 -4
  36. package/dist/excalidraw/actions/actionLinearEditor.d.ts +1 -1
  37. package/dist/excalidraw/actions/actionLink.d.ts +1 -1
  38. package/dist/excalidraw/actions/actionMenu.d.ts +3 -3
  39. package/dist/excalidraw/actions/actionNavigate.d.ts +2 -2
  40. package/dist/excalidraw/actions/actionProperties.d.ts +13 -13
  41. package/dist/excalidraw/actions/actionProperties.js +1 -1
  42. package/dist/excalidraw/actions/actionSelectAll.d.ts +1 -1
  43. package/dist/excalidraw/actions/actionStyles.d.ts +5 -2
  44. package/dist/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
  45. package/dist/excalidraw/actions/actionTextAutoResize.js +38 -0
  46. package/dist/excalidraw/actions/actionToggleGridMode.d.ts +1 -1
  47. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +1 -1
  48. package/dist/excalidraw/actions/actionToggleStats.d.ts +1 -1
  49. package/dist/excalidraw/actions/actionToggleViewMode.d.ts +1 -1
  50. package/dist/excalidraw/actions/actionToggleZenMode.d.ts +1 -1
  51. package/dist/excalidraw/actions/actionZindex.d.ts +4 -4
  52. package/dist/excalidraw/actions/types.d.ts +1 -1
  53. package/dist/excalidraw/change.js +13 -6
  54. package/dist/excalidraw/components/Actions.js +1 -1
  55. package/dist/excalidraw/components/App.d.ts +2 -2
  56. package/dist/excalidraw/components/App.js +133 -51
  57. package/dist/excalidraw/components/ButtonIconSelect.js +1 -1
  58. package/dist/excalidraw/components/CheckboxItem.js +1 -1
  59. package/dist/excalidraw/components/CommandPalette/CommandPalette.js +2 -2
  60. package/dist/excalidraw/components/ContextMenu.js +1 -1
  61. package/dist/excalidraw/components/Dialog.js +1 -1
  62. package/dist/excalidraw/components/FollowMode/FollowMode.js +1 -1
  63. package/dist/excalidraw/components/IconPicker.js +2 -2
  64. package/dist/excalidraw/components/LayerUI.js +2 -2
  65. package/dist/excalidraw/components/MobileMenu.js +1 -1
  66. package/dist/excalidraw/components/PasteChartDialog.js +1 -1
  67. package/dist/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -2
  68. package/dist/excalidraw/components/canvases/InteractiveCanvas.js +4 -2
  69. package/dist/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  70. package/dist/excalidraw/components/canvases/StaticCanvas.js +2 -2
  71. package/dist/excalidraw/components/icons.js +6 -2
  72. package/dist/excalidraw/constants.d.ts +1 -0
  73. package/dist/excalidraw/constants.js +5 -0
  74. package/dist/excalidraw/data/restore.js +3 -0
  75. package/dist/excalidraw/element/dragElements.d.ts +2 -2
  76. package/dist/excalidraw/element/dragElements.js +27 -3
  77. package/dist/excalidraw/element/embeddable.d.ts +1 -1
  78. package/dist/excalidraw/element/index.d.ts +1 -1
  79. package/dist/excalidraw/element/index.js +1 -1
  80. package/dist/excalidraw/element/mutateElement.d.ts +1 -1
  81. package/dist/excalidraw/element/mutateElement.js +5 -3
  82. package/dist/excalidraw/element/newElement.d.ts +2 -5
  83. package/dist/excalidraw/element/newElement.js +16 -14
  84. package/dist/excalidraw/element/resizeElements.js +73 -21
  85. package/dist/excalidraw/element/resizeTest.js +2 -4
  86. package/dist/excalidraw/element/textElement.d.ts +1 -0
  87. package/dist/excalidraw/element/textElement.js +11 -3
  88. package/dist/excalidraw/element/textWysiwyg.d.ts +10 -4
  89. package/dist/excalidraw/element/textWysiwyg.js +38 -17
  90. package/dist/excalidraw/element/transformHandles.js +0 -10
  91. package/dist/excalidraw/element/types.d.ts +7 -0
  92. package/dist/excalidraw/fractionalIndex.js +2 -4
  93. package/dist/excalidraw/locales/en.json +3 -1
  94. package/dist/excalidraw/mermaid.d.ts +2 -0
  95. package/dist/excalidraw/mermaid.js +28 -0
  96. package/dist/excalidraw/renderer/interactiveScene.d.ts +1 -1
  97. package/dist/excalidraw/renderer/interactiveScene.js +31 -5
  98. package/dist/excalidraw/renderer/renderElement.d.ts +2 -2
  99. package/dist/excalidraw/renderer/renderElement.js +2 -2
  100. package/dist/excalidraw/scene/Fonts.d.ts +1 -3
  101. package/dist/excalidraw/scene/Fonts.js +6 -12
  102. package/dist/excalidraw/scene/Renderer.d.ts +1 -1
  103. package/dist/excalidraw/scene/Renderer.js +2 -3
  104. package/dist/excalidraw/scene/Scene.d.ts +10 -4
  105. package/dist/excalidraw/scene/Scene.js +14 -8
  106. package/dist/excalidraw/scene/export.js +1 -1
  107. package/dist/excalidraw/scene/types.d.ts +2 -1
  108. package/dist/excalidraw/snapping.js +2 -1
  109. package/dist/excalidraw/store.d.ts +32 -2
  110. package/dist/excalidraw/store.js +27 -0
  111. package/dist/excalidraw/types.d.ts +1 -0
  112. package/dist/prod/{en-UQDDYCH7.json → en-OIPCBIOA.json} +3 -1
  113. package/dist/prod/index.js +42 -42
  114. package/package.json +2 -2
  115. package/dist/browser/dev/excalidraw-assets-dev/chunk-JKPJV7MZ.js.map +0 -7
  116. package/dist/browser/dev/excalidraw-assets-dev/chunk-OKAZAA6U.js.map +0 -7
  117. package/dist/browser/dev/excalidraw-assets-dev/dist-ITJNUBZF.js.map +0 -7
  118. package/dist/browser/prod/excalidraw-assets/chunk-SXBDZOS3.js +0 -55
  119. package/dist/browser/prod/excalidraw-assets/dist-54276HPL.js +0 -6
  120. package/dist/browser/prod/excalidraw-assets/image-VAGBVQ3G.js +0 -1
  121. /package/dist/browser/dev/excalidraw-assets-dev/{en-BF4XUPIZ.js.map → en-Y27YPU72.js.map} +0 -0
  122. /package/dist/browser/dev/excalidraw-assets-dev/{image-LVS32KQQ.js.map → image-J7S3ALXP.js.map} +0 -0
@@ -1,9 +1,9 @@
1
- import{$ as Kn,$a as Zp,$b as ho,$c as Nr,$d as Lc,$e as a0,$f as Eu,A as an,Aa as ut,Ab as gl,Ac as Cl,Ad as ft,Ae as mu,Af as D6,Ag as _u,B as Vn,Ba as So,Bb as bl,Bc as bc,Bd as Mb,Be as $r,Bf as N6,Bg as Be,C as sl,Ca as D1,Cb as dn,Cc as Sl,Cd as _b,Ce as Gb,Cf as O6,Cg as H0,D as Bp,Da as N1,Db as Ht,Dc as tu,Dd as Lb,De as Oc,Df as Hc,Dg as we,E as Xs,Ea as O1,Eb as Xn,Ec as cb,Ed as Jn,Ee as Vb,Ef as w0,Eg as oa,F as cl,Fa as Vp,Fb as zi,Fc as Tl,Fd as zr,Fe as Ll,Ff as vu,Fg as ze,G as be,Ga as sn,Gb as ce,Gc as ou,Gd as kc,Ge as pu,Gf as C0,Gg as U0,H as Zo,Ha as F1,Hb as qp,Hc as xc,Hd as Pb,He as Kb,Hf as bn,Hg as oi,I as _r,Ia as B1,Ib as xl,Ic as vc,Id as Rb,Ie as Yb,If as S0,Ig as Hr,J as Oi,Ja as z1,Jb as ye,Jc as ru,Jd as W,Je as Zb,Jf as Qi,Jg as Ur,K as f1,Ka as To,Kb as _e,Kc as ue,Kd as Mo,Ke as uu,Kf as T0,L as zp,La as Kp,Lb as ur,Lc as db,Ld as Fe,Le as Fc,Lf as Uc,M as $p,Ma as Xo,Mb as q1,Mc as kl,Md as Db,Me as fu,Mf as k0,N as h1,Na as pl,Nb as Pr,Nc as mb,Nd as qo,Ne as hu,Nf as Wc,O as dl,Oa as ac,Ob as J1,Oc as pb,Od as hn,Oe as jb,Of as Gc,P as g1,Pa as Yn,Pb as Rr,Pc as Il,Pd as iu,Pe as Xb,Pf as I0,Q as b1,Qa as $1,Qb as Q1,Qc as Ut,Qd as Nb,Qe as qb,Qf as Vc,R as Lr,Ra as H1,Rb as fr,Rc as yc,Rd as Ic,Re as Jb,Rf as hr,S as x1,Sa as Zn,Sb as xt,Sc as Ec,Sd as Al,Se as Qb,Sf as yu,T as Dt,Ta as it,Tb as $i,Tc as wc,Td as gn,Te as e0,Tf as A0,U as qs,Ua as F,Ub as eb,Uc as ub,Ud as Ob,Ue as t0,Uf as Kc,V as v1,Va as Ye,Vb as tb,Vc as fb,Vd as Fb,Ve as o0,Vf as M0,W as y1,Wa as Qt,Wb as ob,Wc as hb,Wd as Bb,We as r0,Wf as _0,X as E1,Xa as ul,Xb as mn,Xc as gb,Xd as Ml,Xe as n0,Xf as F6,Y as w1,Ya as fl,Yb as Hi,Yc as bb,Yd as Ac,Ye as i0,Yf as Lo,Z as C1,Za as lc,Zb as rb,Zc as xb,Zd as Mc,Ze as gu,Zf as re,_ as S1,_a as Yp,_b as nb,_c as ct,_d as _c,_e as Xi,_f as he,a as Mt,aa as Js,ab as jn,ac as pn,ad as Cc,ae as _o,af as l0,ag as ti,b as n1,ba as Hp,bb as sc,bc as ko,bd as vb,be as P,bf as s0,bg as Dl,c as Wn,ca as T1,cb as U1,cc as ib,cd as yb,ce as zb,cf as c0,cg as wu,d as i1,da as k1,db as W1,dc as Dr,dd as Eb,de as au,df as d0,dg as L0,e as a1,ea as Qs,eb as G1,ec as un,ed as wb,ee as Qn,ef as Bc,eg as Yc,f as Ar,fa as ec,fb as pe,fc as vl,fd as Vi,fe as $b,ff as Pl,fg as P0,g as Vs,ga as Up,gb as V1,gc as eo,gd as nu,ge as Zi,gf as m0,gg as R0,h as Ks,ha as I1,hb as cc,hc as ab,hd as Cb,he as ji,hf as p0,hg as Zc,i as Ys,ia as A1,ib as K1,ic as yl,id as Sb,ie as Pc,if as u0,ig as Cu,j as l1,ja as M1,jb as dc,jc as El,jd as Or,je as lu,jf as f0,jg as Su,k as s1,ka as _1,kb as Fi,kc as fn,kd as Wt,ke as su,kf as h0,kg as Tu,l as c1,la as L1,lb as Y1,lc as wl,ld as Ze,le as P6,lf as zc,lg as D0,m as Yo,ma as tc,mb as Bi,mc as Jp,md as Sc,me as cu,mf as g0,mg as N0,n as Zs,na as ln,nb as hl,nc as Qp,nd as Io,ne as _l,nf as b0,ng as O0,o as Mr,oa as P1,ob as kt,oc as eu,od as L6,of as bu,og as F0,p as d1,pa as Wp,pb as cn,pc as Ui,pd as Ki,pf as qi,pg as B0,q as m1,qa as R1,qb as mc,qc as lb,qd as Ao,qf as x0,qg as z0,r as al,ra as oc,rb as Z1,rc as fe,rd as Fr,rf as v0,rg as ku,s as ll,sa as Gp,sb as jp,sc as S,sd as Tb,sf as y0,sg as ea,t as Gn,ta as wo,tb as pr,tc as Wi,td as Nt,te as Hb,tf as $c,tg as B6,u as js,ua as ml,ub as Xp,uc as fc,ud as Tc,ue as Ub,uf as E0,ug as Iu,v as p1,va as Co,vb as pc,vc as Gi,vd as kb,ve as Rc,vf as Ji,vg as Au,w as Op,wa as rc,wb as at,wc as hc,wd as Br,we as Dc,wf as ei,wg as Ee,x as u1,xa as nc,xb as j1,xc as sb,xd as Ib,xe as du,xf as xu,xg as Mu,y as Fp,ya as jo,yb as X1,yc as qn,yd as Ab,ye as Nc,yf as Rl,yg as ta,z as Oe,za as ic,zb as uc,zc as gc,zd as Yi,ze as Wb,zf as R6,zg as $0}from"./excalidraw-assets/chunk-SXBDZOS3.js";import{a as h,b as E}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{E as Np}from"./excalidraw-assets/chunk-O4AI3NNG.js";import{aa as r1}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as t1,d as mr,e as o1,f as v}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var H=mr((KI,W0)=>{h();W0.exports=React});var J0=mr(nd=>{"use strict";h();var j6=H(),X6=Symbol.for("react.element"),q6=Symbol.for("react.fragment"),J6=Object.prototype.hasOwnProperty,Q6=j6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,e4={key:!0,ref:!0,__self:!0,__source:!0};function q0(t,e,o){var r,n={},i=null,a=null;o!==void 0&&(i=""+o),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(a=e.ref);for(r in e)J6.call(e,r)&&!e4.hasOwnProperty(r)&&(n[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)n[r]===void 0&&(n[r]=e[r]);return{$$typeof:X6,type:t,key:i,ref:a,props:n,_owner:Q6.current}}nd.Fragment=q6;nd.jsx=q0;nd.jsxs=q0});var k=mr((h8,Q0)=>{"use strict";h();Q0.exports=J0()});var br=mr((R8,nx)=>{h();nx.exports=ReactDOM});var Nh=mr((OW,xw)=>{h();var bw="Expected a function",hw=NaN,jS="[object Symbol]",XS=/^\s+|\s+$/g,qS=/^[-+]0x[0-9a-f]+$/i,JS=/^0b[01]+$/i,QS=/^0o[0-7]+$/i,eT=parseInt,tT=typeof global=="object"&&global&&global.Object===Object&&global,oT=typeof self=="object"&&self&&self.Object===Object&&self,rT=tT||oT||Function("return this")(),nT=Object.prototype,iT=nT.toString,aT=Math.max,lT=Math.min,Dh=function(){return rT.Date.now()};function sT(t,e,o){var r,n,i,a,l,s,d=0,c=!1,m=!1,u=!0;if(typeof t!="function")throw new TypeError(bw);e=gw(e)||0,_m(o)&&(c=!!o.leading,m="maxWait"in o,i=m?aT(gw(o.maxWait)||0,e):i,u="trailing"in o?!!o.trailing:u);function f(I){var M=r,_=n;return r=n=void 0,d=I,a=t.apply(_,M),a}function b(I){return d=I,l=setTimeout(T,e),c?f(I):a}function x(I){var M=I-s,_=I-d,U=e-M;return m?lT(U,i-_):U}function y(I){var M=I-s,_=I-d;return s===void 0||M>=e||M<0||m&&_>=i}function T(){var I=Dh();if(y(I))return C(I);l=setTimeout(T,x(I))}function C(I){return l=void 0,u&&r?f(I):(r=n=void 0,a)}function w(){l!==void 0&&clearTimeout(l),d=0,r=s=n=l=void 0}function A(){return l===void 0?a:C(Dh())}function z(){var I=Dh(),M=y(I);if(r=arguments,n=this,s=I,M){if(l===void 0)return b(s);if(m)return l=setTimeout(T,e),f(s)}return l===void 0&&(l=setTimeout(T,e)),a}return z.cancel=w,z.flush=A,z}function cT(t,e,o){var r=!0,n=!0;if(typeof t!="function")throw new TypeError(bw);return _m(o)&&(r="leading"in o?!!o.leading:r,n="trailing"in o?!!o.trailing:n),sT(t,e,{leading:r,maxWait:e,trailing:n})}function _m(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function dT(t){return!!t&&typeof t=="object"}function mT(t){return typeof t=="symbol"||dT(t)&&iT.call(t)==jS}function gw(t){if(typeof t=="number")return t;if(mT(t))return hw;if(_m(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=_m(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(XS,"");var o=JS.test(t);return o||QS.test(t)?eT(t.slice(2),o?2:8):qS.test(t)?hw:+t}xw.exports=cT});var Iw=mr((Tw,kw)=>{h();(function(){var t=this,e={};typeof Tw<"u"?kw.exports=e:t.fuzzy=e,e.simpleFilter=function(o,r){return r.filter(function(n){return e.test(o,n)})},e.test=function(o,r){return e.match(o,r)!==null},e.match=function(o,r,n){n=n||{};var i=0,a=[],l=r.length,s=0,d=0,c=n.pre||"",m=n.post||"",u=n.caseSensitive&&r||r.toLowerCase(),f;o=n.caseSensitive&&o||o.toLowerCase();for(var b=0;b<l;b++)f=r[b],u[b]===o[i]?(f=c+f+m,i+=1,d+=1+d):d=0,s+=d,a[a.length]=f;return i===o.length?(s=u===o?1/0:s,{rendered:a.join(""),score:s}):null},e.filter=function(o,r,n){return!r||r.length===0?[]:typeof o!="string"?r:(n=n||{},r.reduce(function(i,a,l,s){var d=a;n.extract&&(d=n.extract(a));var c=e.match(o,d,n);return c!=null&&(i[i.length]={string:c.rendered,score:c.score,index:l,original:a}),i},[]).sort(function(i,a){var l=a.score-i.score;return l||i.index-a.index}))}})()});var Rw=mr(Pw=>{"use strict";h();var Ya=H();function IT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var AT=typeof Object.is=="function"?Object.is:IT,MT=Ya.useState,_T=Ya.useEffect,LT=Ya.useLayoutEffect,PT=Ya.useDebugValue;function RT(t,e){var o=e(),r=MT({inst:{value:o,getSnapshot:e}}),n=r[0].inst,i=r[1];return LT(function(){n.value=o,n.getSnapshot=e,Bh(n)&&i({inst:n})},[t,o,e]),_T(function(){return Bh(n)&&i({inst:n}),t(function(){Bh(n)&&i({inst:n})})},[t]),PT(o),o}function Bh(t){var e=t.getSnapshot;t=t.value;try{var o=e();return!AT(t,o)}catch{return!0}}function DT(t,e){return e()}var NT=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?DT:RT;Pw.useSyncExternalStore=Ya.useSyncExternalStore!==void 0?Ya.useSyncExternalStore:NT});var Nw=mr((wV,Dw)=>{"use strict";h();Dw.exports=Rw()});var Fw=mr(Ow=>{"use strict";h();var Rm=H(),OT=Nw();function FT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var BT=typeof Object.is=="function"?Object.is:FT,zT=OT.useSyncExternalStore,$T=Rm.useRef,HT=Rm.useEffect,UT=Rm.useMemo,WT=Rm.useDebugValue;Ow.useSyncExternalStoreWithSelector=function(t,e,o,r,n){var i=$T(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=UT(function(){function s(f){if(!d){if(d=!0,c=f,f=r(f),n!==void 0&&a.hasValue){var b=a.value;if(n(b,f))return m=b}return m=f}if(b=m,BT(c,f))return b;var x=r(f);return n!==void 0&&n(b,x)?b:(c=f,m=x)}var d=!1,c,m,u=o===void 0?null:o;return[function(){return s(e())},u===null?void 0:function(){return s(u())}]},[e,o,r,n]);var l=zT(t,i[0],i[1]);return HT(function(){a.hasValue=!0,a.value=l},[l]),WT(l),l}});var zw=mr((kV,Bw)=>{"use strict";h();Bw.exports=Fw()});h();var Dp=v(H(),1);h();var sd=v(H(),1);h();h();h();h();var ht=v(H(),1);h();var z6=0;function G0(t,e){let o=`atom${++z6}`,r={toString:()=>o};return typeof t=="function"?r.read=t:(r.init=t,r.read=n=>n(r),r.write=(n,i,a)=>i(r,typeof a=="function"?a(n(r)):a)),e&&(r.write=e),r}var xn=Symbol(),Pu=t=>!!t[xn],jc=t=>!t[xn].c,Nl=t=>{var e;let{b:o,c:r}=t[xn];r&&(r(),(e=H6.get(o))==null||e())},qc=(t,e)=>{let o=t[xn].o,r=e[xn].o;return o===r||t===r||Pu(o)&&qc(o,e)},Ru=(t,e)=>{let o={b:t,o:e,c:null},r=new Promise(n=>{o.c=()=>{o.c=null,n()},e.finally(o.c)});return r[xn]=o,r},$6=t=>Ru(t[xn].b,t[xn].o),H6=new WeakMap;var Xc=t=>"init"in t,Ol="r",Jc="w",Fl="c",Qc="s",V0="h",U6="n",W6="l",G6="a",V6="m",K0=t=>{let e=new WeakMap,o=new WeakMap,r=new Map,n,i;if((E&&E.MODE)!=="production"&&(n=new Set,i=new Set),t)for(let[R,N]of t){let K={v:N,r:0,y:!0,d:new Map};(E&&E.MODE)!=="production"&&(Object.freeze(K),Xc(R)||console.warn("Found initial value for derived atom which can cause unexpected behavior",R)),e.set(R,K)}let a=new WeakMap,l=(R,N,K)=>{let Y=a.get(N);Y||(Y=new Map,a.set(N,Y)),K.then(()=>{Y.get(R)===K&&(Y.delete(R),Y.size||a.delete(N))}),Y.set(R,K)},s=R=>{let N=new Set,K=a.get(R);return K&&(a.delete(R),K.forEach((Y,Z)=>{Nl(Y),N.add(Z)})),N},d=new WeakMap,c=R=>{let N=d.get(R);return N||(N=new Map,d.set(R,N)),N},m=(R,N)=>{if(R){let K=c(R),Y=K.get(N);return Y||(Y=m(R.p,N),Y&&"p"in Y&&jc(Y.p)&&(Y=void 0),Y&&K.set(N,Y)),Y}return e.get(N)},u=(R,N,K)=>{if((E&&E.MODE)!=="production"&&Object.freeze(K),R)c(R).set(N,K);else{let Y=e.get(N);e.set(N,K),r.has(N)||r.set(N,Y)}},f=(R,N=new Map,K)=>{if(!K)return N;let Y=new Map,Z=!1;return K.forEach(X=>{var ee;let ne=((ee=m(R,X))==null?void 0:ee.r)||0;Y.set(X,ne),N.get(X)!==ne&&(Z=!0)}),N.size===Y.size&&!Z?N:Y},b=(R,N,K,Y,Z)=>{let X=m(R,N);if(X){if(Z&&(!("p"in X)||!qc(X.p,Z)))return X;"p"in X&&Nl(X.p)}let ee={v:K,r:X?.r||0,y:!0,d:f(R,X?.d,Y)},ne=!X?.y;return!X||!("v"in X)||!Object.is(X.v,K)?(ne=!0,++ee.r,ee.d.has(N)&&(ee.d=new Map(ee.d).set(N,ee.r))):ee.d!==X.d&&(ee.d.size!==X.d.size||!Array.from(ee.d.keys()).every(rt=>X.d.has(rt)))&&(ne=!0,Promise.resolve().then(()=>{oe(R)})),X&&!ne?X:(u(R,N,ee),ee)},x=(R,N,K,Y,Z)=>{let X=m(R,N);if(X){if(Z&&(!("p"in X)||!qc(X.p,Z)))return X;"p"in X&&Nl(X.p)}let ee={e:K,r:(X?.r||0)+1,y:!0,d:f(R,X?.d,Y)};return u(R,N,ee),ee},y=(R,N,K,Y)=>{let Z=m(R,N);if(Z&&"p"in Z){if(qc(Z.p,K)&&!jc(Z.p))return Z.y?Z:{...Z,y:!0};Nl(Z.p)}l(R,N,K);let X={p:K,r:(Z?.r||0)+1,y:!0,d:f(R,Z?.d,Y)};return u(R,N,X),X},T=(R,N,K,Y)=>{if(K instanceof Promise){let Z=Ru(K,K.then(X=>{b(R,N,X,Y,Z)}).catch(X=>{if(X instanceof Promise)return Pu(X)?X.then(()=>{w(R,N,!0)}):X;x(R,N,X,Y,Z)}));return y(R,N,Z,Y)}return b(R,N,K,Y)},C=(R,N)=>{let K=m(R,N);if(K){let Y={...K,y:!1};u(R,N,Y)}else(E&&E.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",N)},w=(R,N,K)=>{if(!K){let Z=m(R,N);if(Z){if(Z.y&&"p"in Z&&!jc(Z.p))return Z;if(Z.d.forEach((X,ee)=>{if(ee!==N)if(!o.has(ee))w(R,ee);else{let ne=m(R,ee);ne&&!ne.y&&w(R,ee)}}),Array.from(Z.d).every(([X,ee])=>{let ne=m(R,X);return ne&&!("p"in ne)&&ne.r===ee}))return Z.y?Z:{...Z,y:!0}}}let Y=new Set;try{let Z=N.read(X=>{Y.add(X);let ee=X===N?m(R,X):w(R,X);if(ee){if("e"in ee)throw ee.e;if("p"in ee)throw ee.p;return ee.v}if(Xc(X))return X.init;throw new Error("no atom init")});return T(R,N,Z,Y)}catch(Z){if(Z instanceof Promise){let X=Pu(Z)&&jc(Z)?$6(Z):Ru(Z,Z);return y(R,N,X,Y)}return x(R,N,Z,Y)}},A=(R,N)=>w(N,R),z=(R,N)=>{let K=o.get(N);return K||(K=O(R,N)),K},I=(R,N)=>!N.l.size&&(!N.t.size||N.t.size===1&&N.t.has(R)),M=(R,N)=>{let K=o.get(N);K&&I(N,K)&&B(R,N)},_=(R,N)=>{let K=o.get(N);K?.t.forEach(Y=>{Y!==N&&(C(R,Y),_(R,Y))})},U=(R,N,K)=>{let Y=!0,Z=(ne,rt)=>{let nt=w(R,ne);if("e"in nt)throw nt.e;if("p"in nt){if(rt?.unstable_promise)return nt.p.then(()=>{let st=m(R,ne);return st&&"p"in st&&st.p===nt.p?new Promise(Ue=>setTimeout(Ue)).then(()=>Z(ne,rt)):Z(ne,rt)});throw(E&&E.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ne),nt.p}if("v"in nt)return nt.v;throw(E&&E.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",ne),new Error("no value found")},X=(ne,rt)=>{let nt;if(ne===N){if(!Xc(ne))throw new Error("atom not writable");s(ne).forEach(Gs=>{Gs!==R&&T(Gs,ne,rt)});let Ue=m(R,ne),Jt=T(R,ne,rt);Ue!==Jt&&_(R,ne)}else nt=U(R,ne,rt);return Y||oe(R),nt},ee=N.write(Z,X,K);return Y=!1,ee},D=(R,N,K)=>{let Y=U(K,R,N);return oe(K),Y},G=R=>!!R.write,O=(R,N,K)=>{let Y={t:new Set(K&&[K]),l:new Set};if(o.set(N,Y),(E&&E.MODE)!=="production"&&i.add(N),w(void 0,N).d.forEach((X,ee)=>{let ne=o.get(ee);ne?ne.t.add(N):ee!==N&&O(R,ee,N)}),G(N)&&N.onMount){let X=ne=>D(N,ne,R),ee=N.onMount(X);R=void 0,ee&&(Y.u=ee)}return Y},B=(R,N)=>{var K;let Y=(K=o.get(N))==null?void 0:K.u;Y&&Y(),o.delete(N),(E&&E.MODE)!=="production"&&i.delete(N);let Z=m(R,N);Z?("p"in Z&&Nl(Z.p),Z.d.forEach((X,ee)=>{if(ee!==N){let ne=o.get(ee);ne&&(ne.t.delete(N),I(ee,ne)&&B(R,ee))}})):(E&&E.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",N)},te=(R,N,K,Y)=>{let Z=new Set(K.d.keys());Y?.forEach((X,ee)=>{if(Z.has(ee)){Z.delete(ee);return}let ne=o.get(ee);ne&&(ne.t.delete(N),I(ee,ne)&&B(R,ee))}),Z.forEach(X=>{let ee=o.get(X);ee?ee.t.add(N):o.has(N)&&O(R,X,N)})},oe=R=>{if(R){c(R).forEach((K,Y)=>{let Z=e.get(Y);if(K!==Z){let X=o.get(Y);X?.l.forEach(ee=>ee(R))}});return}for(;r.size;){let N=Array.from(r);r.clear(),N.forEach(([K,Y])=>{let Z=m(void 0,K);if(Z&&Z.d!==Y?.d&&te(void 0,K,Z,Y?.d),Y&&!Y.y&&Z?.y)return;let X=o.get(K);X?.l.forEach(ee=>ee())})}(E&&E.MODE)!=="production"&&n.forEach(N=>N())},ve=R=>{c(R).forEach((K,Y)=>{let Z=e.get(Y);(!Z||K.r>Z.r||K.y!==Z.y||K.r===Z.r&&K.d!==Z.d)&&(e.set(Y,K),K.d!==Z?.d&&te(R,Y,K,Z?.d))})},Ie=(R,N)=>{N&&ve(N),oe(void 0)},de=(R,N,K)=>{let Z=z(K,R).l;return Z.add(N),()=>{Z.delete(N),M(K,R)}},j=(R,N)=>{for(let[K,Y]of R)Xc(K)&&(T(N,K,Y),_(N,K));oe(N)};return(E&&E.MODE)!=="production"?{[Ol]:A,[Jc]:D,[Fl]:Ie,[Qc]:de,[V0]:j,[U6]:R=>(n.add(R),()=>{n.delete(R)}),[W6]:()=>i.values(),[G6]:R=>e.get(R),[V6]:R=>o.get(R)}:{[Ol]:A,[Jc]:D,[Fl]:Ie,[Qc]:de,[V0]:j}},Y0=t=>{let e=K0(t),o=a=>{let l=e[Ol](a);if("e"in l)throw l.e;if(!("p"in l))return l.v},r=a=>new Promise((l,s)=>{let d=e[Ol](a);"e"in d?s(d.e):"p"in d?l(d.p.then(()=>r(a))):l(d.v)});return{get:o,asyncGet:r,set:(a,l)=>e[Jc](a,l),sub:(a,l)=>e[Qc](a,l),SECRET_INTERNAL_store:e}},Z0=(t,e)=>({s:e?e(t).SECRET_INTERNAL_store:K0(t)}),Lu=new Map,Du=t=>(Lu.has(t)||Lu.set(t,(0,ht.createContext)(Z0())),Lu.get(t)),ed=({children:t,initialValues:e,scope:o,unstable_createStore:r,unstable_enableVersionedWrite:n})=>{let[i,a]=(0,ht.useState)({});(0,ht.useEffect)(()=>{let d=l.current;d.w&&(d.s[Fl](null,i),delete i.p,d.v=i)},[i]);let l=(0,ht.useRef)();if(!l.current){let d=Z0(e,r);if(n){let c=0;d.w=m=>{a(u=>{let f=c?u:{p:u};return m(f),f})},d.v=i,d.r=m=>{++c,m(),--c}}l.current=d}let s=Du(o);return(0,ht.createElement)(s.Provider,{value:l.current},t)};function We(t,e){return G0(t,e)}function Bl(t,e){let o=Du(e),r=(0,ht.useContext)(o),{s:n,v:i}=r,a=u=>{let f=n[Ol](t,u);if((E&&E.MODE)!=="production"&&!f.y)throw new Error("should not be invalidated");if("e"in f)throw f.e;if("p"in f)throw f.p;if("v"in f)return f.v;throw new Error("no atom value")},[[l,s,d],c]=(0,ht.useReducer)((u,f)=>{let b=a(f);return Object.is(u[1],b)&&u[2]===t?u:[f,b,t]},i,u=>{let f=a(u);return[u,f,t]}),m=s;return d!==t&&(c(l),m=a(l)),(0,ht.useEffect)(()=>{let{v:u}=r;u&&n[Fl](t,u);let f=n[Qc](t,c,u);return c(u),f},[n,t,r]),(0,ht.useEffect)(()=>{n[Fl](t,l)}),(0,ht.useDebugValue)(m),m}function Wr(t,e){let o=Du(e),{s:r,w:n}=(0,ht.useContext)(o);return(0,ht.useCallback)(a=>{if((E&&E.MODE)!=="production"&&!("write"in t))throw new Error("not writable atom");let l=s=>r[Jc](t,a,s);return n?n(l):l()},[r,n,t])}function Se(t,e){return"scope"in t&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=t.scope),[Bl(t,e),Wr(t,e)]}var K6=v(H(),1),Ne=Symbol(),Gt=Y0();var Y6=t1({"./locales/ar-SA.json":()=>import("./excalidraw-assets/ar-SA-MV5ZQ2W5.js"),"./locales/az-AZ.json":()=>import("./excalidraw-assets/az-AZ-BK6PNAXT.js"),"./locales/bg-BG.json":()=>import("./excalidraw-assets/bg-BG-GCTBXIHZ.js"),"./locales/bn-BD.json":()=>import("./excalidraw-assets/bn-BD-QTMQMM2A.js"),"./locales/ca-ES.json":()=>import("./excalidraw-assets/ca-ES-CJKR7U4D.js"),"./locales/cs-CZ.json":()=>import("./excalidraw-assets/cs-CZ-E6RD7VRF.js"),"./locales/da-DK.json":()=>import("./excalidraw-assets/da-DK-GA7WAOB4.js"),"./locales/de-DE.json":()=>import("./excalidraw-assets/de-DE-WQGVYODE.js"),"./locales/el-GR.json":()=>import("./excalidraw-assets/el-GR-JRKZ7DCA.js"),"./locales/en.json":()=>import("./excalidraw-assets/en-N7CLNF6C.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 Z6=85,gr={code:"en",label:"English"},na=[gr,...[{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",rtl:!0},{code:"bg-BG",label:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438"},{code:"ca-ES",label:"Catal\xE0"},{code:"cs-CZ",label:"\u010Cesky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC"},{code:"es-ES",label:"Espa\xF1ol"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"\u0641\u0627\u0631\u0633\u06CC",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Fran\xE7ais"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",rtl:!0},{code:"hi-IN",label:"\u0939\u093F\u0928\u094D\u0926\u0940"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"\u049A\u0430\u0437\u0430\u049B \u0442\u0456\u043B\u0456"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4"},{code:"ku-TR",label:"Kurd\xEE"},{code:"lt-LT",label:"Lietuvi\u0173"},{code:"lv-LV",label:"Latvie\u0161u"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokm\xE5l"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Portugu\xEAs Brasileiro"},{code:"pt-PT",label:"Portugu\xEAs"},{code:"ro-RO",label:"Rom\xE2n\u0103"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{code:"sk-SK",label:"Sloven\u010Dina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Sloven\u0161\u010Dina"},{code:"tr-TR",label:"T\xFCrk\xE7e"},{code:"uk-UA",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{code:"zh-CN",label:"\u7B80\u4F53\u4E2D\u6587"},{code:"zh-TW",label:"\u7E41\u9AD4\u4E2D\u6587"},{code:"vi-VN",label:"Ti\u1EBFng Vi\u1EC7t"},{code:"mr-IN",label:"\u092E\u0930\u093E\u0920\u0940"}].filter(t=>r1[t.code]>=Z6).sort((t,e)=>t.label>e.label?1:-1)],od="__test__";E.DEV&&na.unshift({code:od,label:"test language"},{code:`${od}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var ra=gr,td={},rd=async t=>{if(ra=t,document.documentElement.dir=ra.rtl?"rtl":"ltr",document.documentElement.lang=ra.code,t.code.startsWith(od))td={};else try{td=await Y6(`./locales/${ra.code}.json`)}catch(e){console.error(`Failed to load language ${t.code}:`,e.message),td=Np}Gt.set(X0,t.code)},Gr=()=>ra,j0=(t,e)=>{for(let o=0;o<e.length;++o){let r=e[o];if(t[r]===void 0)return;t=t[r]}if(typeof t=="string")return t},g=(t,e,o)=>{if(ra.code.startsWith(od))return`\u202A[[${e?`${t}(${JSON.stringify(e).slice(1,-1)})`:t}]]\u202C`;let r=t.split("."),n=j0(td,r)||j0(Np,r)||o;if(n===void 0){let i=`Can't find translation for ${t}`;if(E.PROD)return console.warn(i),"";throw new Error(i)}if(e)for(let i in e)n=n.replace(`{{${i}}}`,String(e[i]));return n},X0=We(gr.code),vt=()=>{let t=Bl(X0,Ne);return{t:g,langCode:t}};var ad=v(H(),1);h();var ex=v(H(),1);var id=v(k(),1),t4=({size:t="1em",circleWidth:e=8,synchronized:o=!1})=>{let n=-(ex.default.useRef(Date.now()).current%1600);return(0,id.jsx)("div",{className:"Spinner",children:(0,id.jsx)("svg",{viewBox:"0 0 100 100",style:{width:t,height:t,"--spinner-delay":o?`${n}ms`:0},children:(0,id.jsx)("circle",{cx:"50",cy:"50",r:50-e/2,strokeWidth:e,fill:"none",strokeMiterlimit:"10"})})})},Ot=t4;h();function tx(t){var e,o,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e<t.length;e++)t[e]&&(o=tx(t[e]))&&(r&&(r+=" "),r+=o);else for(e in t)t[e]&&(r&&(r+=" "),r+=e);return r}function $(){for(var t=0,e,o,r="";t<arguments.length;)(e=arguments[t++])&&(o=tx(e))&&(r&&(r+=" "),r+=o);return r}var ia=v(k(),1),ld=({delay:t,theme:e})=>{let[o,r]=(0,ad.useState)(!!t);return(0,ad.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{r(!1)},t);return()=>clearTimeout(n)},[t]),o?null:(0,ia.jsxs)("div",{className:$("LoadingMessage",{"LoadingMessage--dark":e===be.DARK}),children:[(0,ia.jsx)("div",{children:(0,ia.jsx)(Ot,{})}),(0,ia.jsx)("div",{className:"LoadingMessage-text",children:g("labels.loadingScene")})]})};var rx=v(k(),1),ox=t=>{let[e,o]=(0,sd.useState)(!0);return(0,sd.useEffect)(()=>{let r=async()=>{await rd(n),o(!1)},n=na.find(i=>i.code===t.langCode)||gr;r()},[t.langCode]),e?(0,rx.jsx)(ld,{theme:t.theme}):t.children};h();var Tt=v(H(),1),Ip=v(br(),1);h();h();h();var Jo=v(H(),1);var Po=v(k(),1),le=Jo.default.forwardRef((t,e)=>{let{id:o}=_t(),r=Jo.default.useRef(null);Jo.default.useImperativeHandle(e,()=>r.current);let n=`ToolIcon_size_${t.size}`,[i,a]=(0,Jo.useState)(!1),l=(0,Jo.useRef)(!0),s=async c=>{let m="onClick"in t&&t.onClick?.(c);if(Bi(m))try{a(!0),await m}catch(u){if(u instanceof Hi)console.warn(u);else throw u}finally{l.current&&a(!1)}};(0,Jo.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let d=(0,Jo.useRef)(null);if(t.type==="button"||t.type==="icon"||t.type==="submit"){let c=t.type==="icon"?"button":t.type;return(0,Po.jsxs)("button",{className:$("ToolIcon_type_button",n,t.className,t.visible&&!t.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!t.hidden,"ToolIcon--selected":t.selected,"ToolIcon--plain":t.type==="icon"}),style:t.style,"data-testid":t["data-testid"],hidden:t.hidden,title:t.title,"aria-label":t["aria-label"],type:c,onClick:s,ref:r,disabled:i||t.isLoading||!!t.disabled,children:[(t.icon||t.label)&&(0,Po.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!t.disabled,children:[t.icon||t.label,t.keyBindingLabel&&(0,Po.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel}),t.isLoading&&(0,Po.jsx)(Ot,{})]}),t.showAriaLabel&&(0,Po.jsxs)("div",{className:"ToolIcon__label",children:[t["aria-label"]," ",i&&(0,Po.jsx)(Ot,{})]}),t.children]})}return(0,Po.jsxs)("label",{className:$("ToolIcon",t.className),title:t.title,onPointerDown:c=>{d.current=c.pointerType||null,t.onPointerDown?.({pointerType:c.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{d.current=null})},children:[(0,Po.jsx)("input",{className:`ToolIcon_type_radio ${n}`,type:"radio",name:t.name,"aria-label":t["aria-label"],"aria-keyshortcuts":t["aria-keyshortcuts"],"data-testid":t["data-testid"],id:`${o}-${t.id}`,onChange:()=>{t.onChange?.({pointerType:d.current})},checked:t.checked,ref:r}),(0,Po.jsxs)("div",{className:"ToolIcon__icon",children:[t.icon,t.keyBindingLabel&&(0,Po.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel})]})]})});le.defaultProps={visible:!0,className:"",size:"medium"};le.displayName="ToolButton";h();var to=v(H(),1);var p=v(k(),1),Qo=t=>"var(--icon-fill-color)",ix=t=>t===be.LIGHT?Mt.white:"#1e1e1e",L=(t,e=512)=>{let{width:o=512,height:r=o,mirror:n,style:i,...a}=typeof e=="number"?{width:e}:e;return(0,p.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${o} ${r}`,className:$({"rtl-mirror":n}),style:i,...a,children:typeof t=="string"?(0,p.jsx)("path",{fill:"currentColor",d:t}):t})},q={width:24,height:24,fill:"none",strokeWidth:2,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},me={width:20,height:20,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},Z8=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,p.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,p.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,p.jsx)("path",{d:"M7.5 8a2.5 2.5 0 0 1 0 -5a4.8 8 0 0 1 4.5 5a4.8 8 0 0 1 4.5 -5a2.5 2.5 0 0 1 0 5"})]}),q),cd=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,p.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),q),ax=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),q),lx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),q),sx=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,p.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,p.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),q),ri=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,p.jsx)("path",{stroke:"none",d:"M6.399 9.561V5.175c0-.93.401-1.823 1.116-2.48a3.981 3.981 0 0 1 2.693-1.028c1.01 0 1.98.37 2.694 1.027.715.658 1.116 1.55 1.116 2.481",fill:"#fff"})}),(0,p.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,p.jsx)("path",{stroke:"none",d:"M5.149 9.561v1.25h2.5v-1.25h-2.5Zm5.06-7.894V.417v1.25Zm2.559 3.508v1.25h2.5v-1.25h-2.5ZM7.648 8.51V5.175h-2.5V8.51h2.5Zm0-3.334c0-.564.243-1.128.713-1.561L6.668 1.775c-.959.883-1.52 2.104-1.52 3.4h2.5Zm.713-1.561a2.732 2.732 0 0 1 1.847-.697v-2.5c-1.31 0-2.585.478-3.54 1.358L8.36 3.614Zm1.847-.697c.71 0 1.374.26 1.847.697l1.694-1.839a5.231 5.231 0 0 0-3.54-1.358v2.5Zm1.847.697c.47.433.713.997.713 1.561h2.5c0-1.296-.56-2.517-1.52-3.4l-1.693 1.839Z",fill:"currentColor"})})]}),me),aa=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,p.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z"}),(0,p.jsx)("path",{d:"M6.667 8.333V5.417C6.667 3.806 8.159 2.5 10 2.5c1.841 0 3.333 1.306 3.333 2.917v2.916"})]}),me),cx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M38.5 83.5c-14-2-17.833-10.473-21-22.5C14.333 48.984 12 22 12 12.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M12.005 10.478c1.92 3.495 3.838 7 7.905 14.423m-7.905-14.423c3.11 5.683 6.23 11.368 7.905 14.423m0 0c-3.68.226-7.35.455-13.91.85m13.91-.85c-5.279.33-10.566.647-13.91.85m0 0c1.936-4.931 3.882-9.86 6.005-15.273M6 25.75c2.069-5.257 4.135-10.505 6.005-15.272",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:41,height:94,fill:"none"}),dx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M18.026 1.232c-5.268 13.125-5.548 33.555 3.285 42.311 8.823 8.75 33.31 12.304 42.422 13.523",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m72.181 59.247-13.058-10-2.948 13.62 16.006-3.62Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M72.181 59.247c-3.163-2.429-6.337-4.856-13.058-10m13.058 10c-5.145-3.936-10.292-7.882-13.058-10m0 0c-.78 3.603-1.563 7.196-2.948 13.62m2.948-13.62c-1.126 5.168-2.24 10.346-2.948 13.62m0 0c5.168-1.166 10.334-2.343 16.006-3.62m-16.006 3.62c5.51-1.248 11.01-2.495 16.006-3.62",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:85,height:71,fill:"none"}),mx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M1 77c14-2 31.833-11.973 35-24 3.167-12.016-6-35-9.5-43.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m24.165 1.093-2.132 16.309 13.27-4.258-11.138-12.05Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M24.165 1.093c-.522 3.953-1.037 7.916-2.132 16.309m2.131-16.309c-.835 6.424-1.68 12.854-2.13 16.308m0 0c3.51-1.125 7.013-2.243 13.27-4.257m-13.27 4.257c5.038-1.608 10.08-3.232 13.27-4.257m0 0c-3.595-3.892-7.197-7.777-11.14-12.05m11.14 12.05c-3.837-4.148-7.667-8.287-11.14-12.05",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:38,height:78,fill:"none"}),j8=L((0,p.jsx)("g",{fill:"currentColor",children:(0,p.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),{width:40,height:40,fill:"none"}),px=L((0,p.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M6 6l4.153 11.793a0.365 .365 0 0 0 .331 .207a0.366 .366 0 0 0 .332 -.207l2.184 -4.793l4.787 -1.994a0.355 .355 0 0 0 .213 -.323a0.355 .355 0 0 0 -.213 -.323l-11.787 -4.36z"}),(0,p.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),ux=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),q),fx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.5 20.4l-6.9 -6.9c-.781 -.781 -.781 -2.219 0 -3l6.9 -6.9c.781 -.781 2.219 -.781 3 0l6.9 6.9c.781 .781 .781 2.219 0 3l-6.9 6.9c-.781 .781 -2.219 .781 -3 0z"})]}),q),hx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),q),gx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),q),bx=L((0,p.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),me),xx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,p.jsx)("path",{d:"M16 7h4"}),(0,p.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),q),la=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{clipRule:"evenodd",d:"m7.643 15.69 7.774-7.773a2.357 2.357 0 1 0-3.334-3.334L4.31 12.357a3.333 3.333 0 0 0-.977 2.357v1.953h1.953c.884 0 1.732-.352 2.357-.977Z"}),(0,p.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),me),vx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,p.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,p.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,p.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,p.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),q),yx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M12.5 6.667h.01"}),(0,p.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z"}),(0,p.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,p.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),me),Ex=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M19 20h-10.5l-4.21 -4.3a1 1 0 0 1 0 -1.41l10 -10a1 1 0 0 1 1.41 0l5 5a1 1 0 0 1 0 1.41l-9.2 9.3"}),(0,p.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),q),Nu=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),me),Ou=L((0,p.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),me),wx=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"}),(0,p.jsx)("path",{d:"M3.268 12.043a7.017 7.017 0 0 0 6.634 4.957a7.012 7.012 0 0 0 7.043 -6.131a7 7 0 0 0 -5.314 -7.672a7.021 7.021 0 0 0 -8.241 4.403"}),(0,p.jsx)("path",{d:"M3 4v4h4"})]}),q),er=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M3.333 5.833h13.334M8.333 9.167v5M11.667 9.167v5M4.167 5.833l.833 10c0 .92.746 1.667 1.667 1.667h6.666c.92 0 1.667-.746 1.667-1.667l.833-10M7.5 5.833v-2.5c0-.46.373-.833.833-.833h3.334c.46 0 .833.373.833.833v2.5"}),me),Cx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,p.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),me),zl=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M14.375 6.458H8.958a2.5 2.5 0 0 0-2.5 2.5v5.417a2.5 2.5 0 0 0 2.5 2.5h5.417a2.5 2.5 0 0 0 2.5-2.5V8.958a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,p.jsx)("path",{clipRule:"evenodd",d:"M11.667 3.125c.517 0 .986.21 1.325.55.34.338.55.807.55 1.325v1.458H8.333c-.485 0-.927.185-1.26.487-.343.312-.57.75-.609 1.24l-.005 5.357H5a1.87 1.87 0 0 1-1.326-.55 1.87 1.87 0 0 1-.549-1.325V5c0-.518.21-.987.55-1.326.338-.34.807-.549 1.325-.549h6.667Z"})]}),me),$l=L((0,p.jsx)("path",{clipRule:"evenodd",d:"M10 2.5h.328a6.25 6.25 0 0 0 6.6 10.372A7.5 7.5 0 1 1 10 2.493V2.5Z",stroke:"currentColor"}),me),Hl=L((0,p.jsx)("g",{stroke:"currentColor",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M10 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM10 4.167V2.5M14.167 5.833l1.166-1.166M15.833 10H17.5M14.167 14.167l1.166 1.166M10 15.833V17.5M5.833 14.167l-1.166 1.166M5 10H3.333M5.833 5.833 4.667 4.667"})}),{...me,strokeWidth:1.5}),dd=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),q),ni=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M3.333 14.167v1.666c0 .92.747 1.667 1.667 1.667h10c.92 0 1.667-.746 1.667-1.667v-1.666M5.833 9.167 10 13.333l4.167-4.166M10 3.333v10"}),me),sa=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),q),Sx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),q),Fu=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M9.167 5.833H5.833c-1.254 0-2.5 1.282-2.5 2.5v5.834c0 1.283 1.252 2.5 2.5 2.5h5.834c1.251 0 2.5-1.25 2.5-2.5v-3.334M8.333 11.667l8.334-8.334M12.5 3.333h4.167V7.5"}),me),md=L((0,p.jsx)("path",{d:"M7.5 15.833c-3.583 1.167-3.583-2.083-5-2.5m10 4.167v-2.917c0-.833.083-1.166-.417-1.666 2.334-.25 4.584-1.167 4.584-5a3.833 3.833 0 0 0-1.084-2.667 3.5 3.5 0 0 0-.083-2.667s-.917-.25-2.917 1.084a10.25 10.25 0 0 0-5.166 0C5.417 2.333 4.5 2.583 4.5 2.583a3.5 3.5 0 0 0-.083 2.667 3.833 3.833 0 0 0-1.084 2.667c0 3.833 2.25 4.75 4.584 5-.5.5-.5 1-.417 1.666V17.5",strokeWidth:"1.25"}),me),Tx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M7.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM12.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM6.25 6.25c2.917-.833 4.583-.833 7.5 0M5.833 13.75c2.917.833 5.417.833 8.334 0"}),(0,p.jsx)("path",{d:"M12.917 14.167c0 .833 1.25 2.5 1.666 2.5 1.25 0 2.361-1.39 2.917-2.5.556-1.39.417-4.861-1.25-9.584-1.214-.846-2.5-1.116-3.75-1.25l-.833 2.084M7.083 14.167c0 .833-1.13 2.5-1.526 2.5-1.191 0-2.249-1.39-2.778-2.5-.529-1.39-.397-4.861 1.19-9.584 1.157-.846 2.318-1.116 3.531-1.25l.833 2.084"})]}),me),kx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,p.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),q),Ix=L((0,p.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Ul=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M8.333 11.667a2.917 2.917 0 0 0 4.167 0l3.333-3.334a2.946 2.946 0 1 0-4.166-4.166l-.417.416"}),(0,p.jsx)("path",{d:"M11.667 8.333a2.917 2.917 0 0 0-4.167 0l-3.333 3.334a2.946 2.946 0 0 0 4.166 4.166l.417-.416"})]}),me),Ax=L("M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z",{width:448,height:512}),Mx=L("M252 54L203 8a28 27 0 00-20-8H28C12 0 0 12 0 27v195c0 15 12 26 28 26h204c15 0 28-11 28-26V73a28 27 0 00-8-19zM130 213c-21 0-37-16-37-36 0-19 16-35 37-35 20 0 37 16 37 35 0 20-17 36-37 36zm56-169v56c0 4-4 6-7 6H44c-4 0-7-2-7-6V42c0-4 3-7 7-7h133l4 2 3 2a7 7 0 012 5z M296 201l87 95-188 205-78 9c-10 1-19-8-18-20l9-84zm141-14l-41-44a31 31 0 00-46 0l-38 41 87 95 38-42c13-14 13-36 0-50z",{width:448,height:512}),ca=L((0,p.jsx)("path",{d:"m9.257 6.351.183.183H15.819c.34 0 .727.182 1.051.506.323.323.505.708.505 1.05v5.819c0 .316-.183.7-.52 1.035-.337.338-.723.522-1.037.522H4.182c-.352 0-.74-.181-1.058-.5-.318-.318-.499-.705-.499-1.057V5.182c0-.351.181-.736.5-1.054.32-.321.71-.503 1.057-.503H6.53l2.726 2.726Z",strokeWidth:"1.25"}),me),X8=L("M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z",{width:384,height:512}),_x=L("M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"),pd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z"}),(0,p.jsx)("path",{d:"M13.737 9.737c2.299 -2.3 3.23 -5.095 2.081 -6.245c-1.15 -1.15 -3.945 -.217 -6.244 2.082c-2.3 2.299 -3.231 5.095 -2.082 6.244c1.15 1.15 3.946 .218 6.245 -2.081z"}),(0,p.jsx)("path",{d:"M7.492 11.818c.362 .362 .768 .676 1.208 .934l6.895 4.047c1.078 .557 2.255 -.075 3.692 -1.512c1.437 -1.437 2.07 -2.614 1.512 -3.692c-.372 -.718 -1.72 -3.017 -4.047 -6.895a6.015 6.015 0 0 0 -.934 -1.208"})]}),q),ud=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 8h.01"}),(0,p.jsx)("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),(0,p.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,p.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,p.jsx)("path",{d:"M19 16v6"}),(0,p.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),q),Lx=L("M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z",{width:512,height:512}),q8=L("M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",{width:448,height:512}),J8=L("M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",{width:448,height:512}),Px=L("M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"),Q8=L("M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"),Bu=L((0,p.jsx)("path",{d:"M7.5 10.833 4.167 7.5 7.5 4.167M4.167 7.5h9.166a3.333 3.333 0 0 1 0 6.667H12.5",strokeWidth:"1.25"}),me),zu=L((0,p.jsx)("path",{d:"M12.5 10.833 15.833 7.5 12.5 4.167M15.833 7.5H6.667a3.333 3.333 0 1 0 0 6.667H7.5",strokeWidth:"1.25"}),me),Rx=L("M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z",{mirror:!0}),Dx=L((0,p.jsx)("path",{d:"M5 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 17.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM7.25 8.917l5.5-2.834M7.25 11.083l5.5 2.834",strokeWidth:"1.5"}),me),e7=L("M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"),t7=L("M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6c-1.11 0-2-.9-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3c1.1 0 2 .89 2 2z",{width:24,height:24}),o7=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 9h-1a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-8a2 2 0 0 0 -2 -2h-1"}),(0,p.jsx)("path",{d:"M12 14v-11"}),(0,p.jsx)("path",{d:"M9 6l3 -3l3 3"})]}),q),r7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{fill:"currentColor",d:"M40 5.6v6.1l-4.1.7c-8.9 1.4-16.5 6.9-20.6 15C13 32 10.9 43 12.4 43c.4 0 2.4-1.3 4.4-3 5-3.9 12.1-7 18.2-7.7l5-.6v12.8l11.2-11.3L62.5 22 51.2 10.8 40-.5v6.1zm10.2 22.6L44 34.5v-6.8l-6.9.6c-3.9.3-9.8 1.7-13.2 3.1-3.5 1.4-6.5 2.4-6.7 2.2-.9-1 3-7.5 6.4-10.8C28 18.6 34.4 16 40.1 16c3.7 0 3.9-.1 3.9-3.2V9.5l6.2 6.3 6.3 6.2-6.3 6.2z"}),(0,p.jsx)("path",{stroke:"currentColor",fill:"currentColor",d:"M0 36v20h48v-6.2c0-6 0-6.1-2-4.3-1.1 1-2 2.9-2 4.2V52H4V34c0-17.3-.1-18-2-18s-2 .7-2 20z"})]}),{width:64,height:64}),n7=L((0,p.jsx)("path",{stroke:"currentColor",strokeWidth:"40",fill:"currentColor",d:"M148 560a318 318 0 0 0 522 110 316 316 0 0 0 0-450 316 316 0 0 0-450 0c-11 11-21 22-30 34v4h47c25 0 46 21 46 46s-21 45-46 45H90c-13 0-25-6-33-14-9-9-14-20-14-33V156c0-25 20-45 45-45s45 20 45 45v32l1 1a401 401 0 0 1 623 509l212 212a42 42 0 0 1-59 59L698 757A401 401 0 0 1 65 570a42 42 0 0 1 83-10z"}),{width:1024}),Nx=(0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 10l0 10"}),(0,p.jsx)("path",{d:"M12 10l4 4"}),(0,p.jsx)("path",{d:"M12 10l-4 4"}),(0,p.jsx)("path",{d:"M4 4l16 0"})]}),Ox=(0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 5l0 14"}),(0,p.jsx)("path",{d:"M16 9l-4 -4"}),(0,p.jsx)("path",{d:"M8 9l4 -4"})]}),$u=L(Ox,q),Hu=L(Ox,{...q,transform:"rotate(180)"}),Uu=L(Nx,q),Wu=L(Nx,{...q,transform:"rotate(180)"}),Gu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v7.083c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V8.125c0-.92-.746-1.667-1.666-1.667ZM6.875 6.458h-.417c-.92 0-1.666.747-1.666 1.667v3.75c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667v-3.75c0-.92-.747-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),Vu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M6.875 3.125h-.417c-.92 0-1.666.746-1.666 1.667v7.083c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667V4.792c0-.92-.747-1.667-1.667-1.667ZM13.542 5.817h-.417c-.92 0-1.667.747-1.667 1.667v4.391c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V7.484c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),Ku=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M15.208 4.792H8.125c-.92 0-1.667.746-1.667 1.666v.417c0 .92.747 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM12.516 11.458H8.125c-.92 0-1.667.746-1.667 1.667v.417c0 .92.747 1.666 1.667 1.666h4.391c.92 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),Yu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M11.875 4.792H4.792c-.92 0-1.667.746-1.667 1.666v.417c0 .92.746 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM11.683 11.458H7.292c-.92 0-1.667.746-1.667 1.667v.417c0 .92.746 1.666 1.667 1.666h4.39c.921 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),Fx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M14.375 10.208v-.416c0-.92-.746-1.667-1.667-1.667H7.292c-.92 0-1.667.746-1.667 1.667v.416c0 .92.746 1.667 1.667 1.667h5.416c.92 0 1.667-.746 1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),Bx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10.208 5.625h-.416c-.92 0-1.667.746-1.667 1.667v5.416c0 .92.746 1.667 1.667 1.667h.416c.92 0 1.667-.746 1.667-1.667V7.292c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),Zu=L((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M6.875 4.792h-.417c-.92 0-1.666.746-1.666 1.666v7.084c0 .92.746 1.666 1.666 1.666h.417c.92 0 1.667-.746 1.667-1.666V6.458c0-.92-.747-1.666-1.667-1.666ZM13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v3.75c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667v-3.75c0-.92-.746-1.667-1.666-1.667Z"})]}),me),ju=L((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M4.792 13.125v.417c0 .92.746 1.666 1.666 1.666h7.084c.92 0 1.666-.746 1.666-1.666v-.417c0-.92-.746-1.667-1.666-1.667H6.458c-.92 0-1.666.746-1.666 1.667ZM6.458 6.458v.417c0 .92.747 1.667 1.667 1.667h3.75c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666h-3.75c-.92 0-1.667.746-1.667 1.666Z"})]}),me),fd=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,p.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,p.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,p.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),q),i7=L("M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"),a7=L("M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"),Ro=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),l7=L("M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z",{mirror:!0}),s7=L("M11.553 22.894a.998.998 0 00.894 0s3.037-1.516 5.465-4.097C19.616 16.987 21 14.663 21 12V5a1 1 0 00-.649-.936l-8-3a.998.998 0 00-.702 0l-8 3A1 1 0 003 5v7c0 2.663 1.384 4.987 3.088 6.797 2.428 2.581 5.465 4.097 5.465 4.097zm-1.303-8.481l6.644-6.644a.856.856 0 111.212 1.212l-7.25 7.25a.856.856 0 01-1.212 0l-3.75-3.75a.856.856 0 111.212-1.212l3.144 3.144z",{width:24}),c7=L("M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z",{width:384,height:512}),Xu=to.default.memo(({theme:t})=>L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:Qo(t)}),(0,p.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:Qo(t)}),(0,p.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ix(t),stroke:Qo(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),qu=to.default.memo(({theme:t})=>L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:Qo(t)}),(0,p.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:Qo(t)}),(0,p.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ix(t),stroke:Qo(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),zx=L((0,p.jsx)("g",{strokeWidth:1.25,children:(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.27 3.27 0 0 1 3.254 3.254v8.242a3.27 3.27 0 0 1-3.254 3.254H5.88a3.27 3.27 0 0 1-3.254-3.254V5.88A3.27 3.27 0 0 1 5.88 2.626l-.001-.001ZM4.518 16.118l7.608-12.83m.198 13.934 5.051-9.897M2.778 9.675l9.348-6.387m-7.608 12.83 12.857-8.793"})}),me),$x=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"1.25"})}),(0,p.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,p.jsx)("path",{d:"M2.258 15.156 15.156 2.258M7.324 20.222 20.222 7.325m-20.444 5.35L12.675-.222m-8.157 18.34L17.416 5.22",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),me),Hx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",children:[(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,p.jsx)("path",{d:"M2.426 15.044 15.044 2.426M7.383 20 20 7.383M0 12.617 12.617 0m-7.98 17.941L17.256 5.324m-2.211 12.25L2.426 4.956M20 12.617 7.383 0m5.234 20L0 7.383m17.941 7.98L5.324 2.745",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,p.jsx)("path",{d:"M14.121 2H5.88A3.879 3.879 0 0 0 2 5.879v8.242A3.879 3.879 0 0 0 5.879 18h8.242A3.879 3.879 0 0 0 18 14.121V5.88A3.879 3.879 0 0 0 14.121 2Z",fill:"currentColor"})})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),Ux=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z",stroke:"currentColor",strokeWidth:"1.25"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...me,fill:"currentColor"}),Ju=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),me),Wx=L((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),me),Gx=L((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),me),d7=to.default.memo(({theme:t})=>L((0,p.jsx)("path",{d:"M6 10H34",stroke:Qo(t),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),Vx=L((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12h2"}),(0,p.jsx)("path",{d:"M17 12h2"}),(0,p.jsx)("path",{d:"M11 12h2"})]}),q),Kx=L((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M8 12v.01"}),(0,p.jsx)("path",{d:"M12 12v.01"}),(0,p.jsx)("path",{d:"M16 12v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"})]}),q),Yx=L((0,p.jsx)("path",{d:"M2.5 12.038c1.655-.885 5.9-3.292 8.568-4.354 2.668-1.063.101 2.821 1.32 3.104 1.218.283 5.112-1.814 5.112-1.814",strokeWidth:"1.25"}),me),Zx=L((0,p.jsx)("path",{d:"M2.5 12.563c1.655-.886 5.9-3.293 8.568-4.355 2.668-1.062.101 2.822 1.32 3.105 1.218.283 5.112-1.814 5.112-1.814m-13.469 2.23c2.963-1.586 6.13-5.62 7.468-4.998 1.338.623-1.153 4.11-.132 5.595 1.02 1.487 6.133-1.43 6.133-1.43",strokeWidth:"1.25"}),me),jx=L((0,p.jsx)("path",{d:"M2.5 11.936c1.737-.879 8.627-5.346 10.42-5.268 1.795.078-.418 5.138.345 5.736.763.598 3.53-1.789 4.235-2.147M2.929 9.788c1.164-.519 5.47-3.28 6.987-3.114 1.519.165 1 3.827 2.121 4.109 1.122.281 3.839-2.016 4.606-2.42",strokeWidth:"1.25"}),me),Xx=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{d:"M3.33334 9.99998V6.66665C3.33334 6.04326 3.33403 4.9332 3.33539 3.33646C4.95233 3.33436 6.06276 3.33331 6.66668 3.33331H10"}),(0,p.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,p.jsx)("path",{d:"M16.6667 10V10.01"}),(0,p.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),me),qx=L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,p.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,p.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,p.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,p.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,p.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,p.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,p.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),q),Jx=L((0,p.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),Qx=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,p.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,p.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),Qu=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),ev=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M26 10L6 10"}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),tv=to.default.memo(({flip:t=!1})=>L((0,p.jsx)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",children:(0,p.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),ov=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),rv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M6,9.5H27"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),nv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),iv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),av=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M14.167 6.667a3.333 3.333 0 0 0-3.334-3.334H9.167a3.333 3.333 0 0 0 0 6.667h1.666a3.333 3.333 0 0 1 0 6.667H9.167a3.333 3.333 0 0 1-3.334-3.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),lv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),sv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),cv=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("path",{d:"m1.667 3.333 6.666 13.334M8.333 3.333 1.667 16.667M11.667 3.333v13.334h6.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),me),ef=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 7v-2h13v2"}),(0,p.jsx)("path",{d:"M10 5v14"}),(0,p.jsx)("path",{d:"M12 19h-4"}),(0,p.jsx)("path",{d:"M15 13v-1h6v1"}),(0,p.jsx)("path",{d:"M18 12v7"}),(0,p.jsx)("path",{d:"M17 19h2"})]}),q),dv=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M5.833 16.667v-10a3.333 3.333 0 0 1 3.334-3.334h1.666a3.333 3.333 0 0 1 3.334 3.334v10M5.833 10.833h8.334"})})}),me),mv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M5.833 6.667 2.5 10l3.333 3.333M14.167 6.667 17.5 10l-3.333 3.333M11.667 3.333 8.333 16.667"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),me),pv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),q),uv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,p.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),q),fv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),q),hv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,p.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),q)),gv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,p.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),q)),bv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),q)),xv=L((0,p.jsx)("path",{d:"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z",fill:"currentColor"}),{width:640,height:512}),m7=L((0,p.jsx)("path",{d:"M480 416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H150.6C133.7 480 117.4 473.3 105.4 461.3L25.37 381.3C.3786 356.3 .3786 315.7 25.37 290.7L258.7 57.37C283.7 32.38 324.3 32.38 349.3 57.37L486.6 194.7C511.6 219.7 511.6 260.3 486.6 285.3L355.9 416H480zM265.4 416L332.7 348.7L195.3 211.3L70.63 336L150.6 416L265.4 416z"})),hd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,p.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.jsx)("path",{d:"M17 7.5a1.5 1.5 0 0 1 3 0v8.5a6 6 0 0 1 -6 6h-2h.208a6 6 0 0 1 -5.012 -2.7a69.74 69.74 0 0 1 -.196 -.3c-.312 -.479 -1.407 -2.388 -3.286 -5.728a1.5 1.5 0 0 1 .536 -2.022a1.867 1.867 0 0 1 2.28 .28l1.47 1.47"})]}),q),tf=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,p.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,p.jsx)("path",{d:"M12 4l0 12"})]}),q),gd=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"}),(0,p.jsx)("path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"})]}),q),vv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M9.15 14.85l8.85 -10.85"}),(0,p.jsx)("path",{d:"M6 4l8.85 10.85"})]}),q),yv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,p.jsx)("path",{d:"M12 17l0 .01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),q),p7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 4v16l13 -8z"})]}),q),u7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M17 4h-10a3 3 0 0 0 -3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3 -3v-10a3 3 0 0 0 -3 -3z",strokeWidth:"0",fill:"currentColor"})]}),q),f7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),q),Ev=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.24 3.957l-8.422 14.06a1.989 1.989 0 0 0 1.7 2.983h16.845a1.989 1.989 0 0 0 1.7 -2.983l-8.423 -14.06a1.989 1.989 0 0 0 -3.4 0z"}),(0,p.jsx)("path",{d:"M12 9v4"}),(0,p.jsx)("path",{d:"M12 17h.01"})]}),q),wv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11 7l6 6"}),(0,p.jsx)("path",{d:"M4 16l11.7 -11.7a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4l-11.7 11.7h-4v-4z"})]}),q),Cv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"})]}),q),bd=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 7l16 0"}),(0,p.jsx)("path",{d:"M4 17l16 0"}),(0,p.jsx)("path",{d:"M7 4l0 16"}),(0,p.jsx)("path",{d:"M17 4l0 16"})]}),q),xd=L((0,p.jsx)("path",{fill:"currentColor",d:"M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z"})),da=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,p.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,p.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),me),vd=L((0,p.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,p.jsx)("path",{clipRule:"evenodd",d:"m9.644 13.69 7.774-7.773a2.357 2.357 0 0 0-3.334-3.334l-7.773 7.774L8 12l1.643 1.69Z"}),(0,p.jsx)("path",{d:"m13.25 3.417 3.333 3.333M10 10l2-2M5 15l3-3M2.156 17.894l1-1M5.453 19.029l-.144-1.407M2.377 11.887l.866 1.118M8.354 17.273l-1.194-.758M.953 14.652l1.408.13"})]}),20),ma=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,p.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),q),h7=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,p.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),q),Wl=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,p.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,p.jsx)("path",{d:"M6 7.63c-1.391 -.236 -2.787 .395 -3.534 1.689a3.474 3.474 0 0 0 1.271 4.745l4.263 2.514l6 -3.348"}),(0,p.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,p.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,p.jsx)("path",{d:"M18 16.302c1.391 .236 2.787 -.395 3.534 -1.689a3.474 3.474 0 0 0 -1.271 -4.745l-4.308 -2.514l-5.955 3.42"})]}),q),Sv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,p.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,p.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,p.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),q),pa=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,p.jsx)("path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6"})]}),q),Tv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,p.jsx)("path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87"}),(0,p.jsx)("path",{d:"M3 3l18 18"})]}),q),kv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,p.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),q),Iv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,p.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),q),yd=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"})]}),q),Av=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20.984 12.53a9 9 0 1 0 -7.552 8.355"}),(0,p.jsx)("path",{d:"M12 7v5l3 3"}),(0,p.jsx)("path",{d:"M19 16l-2 3h4l-2 3"})]}),q),Mv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M9 2m0 3a3 3 0 0 1 3 -3h0a3 3 0 0 1 3 3v5a3 3 0 0 1 -3 3h0a3 3 0 0 1 -3 -3z"}),(0,p.jsx)("path",{d:"M5 10a7 7 0 0 0 14 0"}),(0,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),q),_v=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 3l18 18"}),(0,p.jsx)("path",{d:"M9 5a3 3 0 0 1 6 0v5a3 3 0 0 1 -.13 .874m-2 2a3 3 0 0 1 -3.87 -2.872v-1"}),(0,p.jsx)("path",{d:"M5 10a7 7 0 0 0 10.846 5.85m2 -2a6.967 6.967 0 0 0 1.152 -3.85"}),(0,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),q),Ed=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"})]}),q),Lv=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 8m0 1a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z"}),(0,p.jsx)("path",{d:"M12 20v.01"}),(0,p.jsx)("path",{d:"M16 20v.01"}),(0,p.jsx)("path",{d:"M8 20v.01"}),(0,p.jsx)("path",{d:"M4 20v.01"}),(0,p.jsx)("path",{d:"M4 16v.01"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M4 8v.01"}),(0,p.jsx)("path",{d:"M4 4v.01"}),(0,p.jsx)("path",{d:"M8 4v.01"}),(0,p.jsx)("path",{d:"M12 4v.01"}),(0,p.jsx)("path",{d:"M16 4v.01"}),(0,p.jsx)("path",{d:"M20 4v.01"}),(0,p.jsx)("path",{d:"M20 8v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"}),(0,p.jsx)("path",{d:"M20 16v.01"}),(0,p.jsx)("path",{d:"M20 20v.01"})]}),q),Pv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 3v18"}),(0,p.jsx)("path",{d:"M19 21v-18"}),(0,p.jsx)("path",{d:"M5 7h14"}),(0,p.jsx)("path",{d:"M5 15h14"}),(0,p.jsx)("path",{d:"M8 13v4"}),(0,p.jsx)("path",{d:"M11 13v4"}),(0,p.jsx)("path",{d:"M16 13v4"}),(0,p.jsx)("path",{d:"M14 5v4"}),(0,p.jsx)("path",{d:"M11 5v4"}),(0,p.jsx)("path",{d:"M8 5v4"}),(0,p.jsx)("path",{d:"M3 21h18"})]}),q),Rv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 12l18 0"}),(0,p.jsx)("path",{d:"M7 16l10 0l-10 5l0 -5"}),(0,p.jsx)("path",{d:"M7 8l10 0l-10 -5l0 5"})]}),q),Dv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l0 18"}),(0,p.jsx)("path",{d:"M16 7l0 10l5 0l-5 -10"}),(0,p.jsx)("path",{d:"M8 7l0 10l-5 0l5 -10"})]}),q),of=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z"}),(0,p.jsx)("path",{d:"M19 6h1a2 2 0 0 1 2 2a5 5 0 0 1 -5 5l-5 0v2"}),(0,p.jsx)("path",{d:"M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"})]}),q),wd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 15m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"}),(0,p.jsx)("path",{d:"M22 22l-3 -3"}),(0,p.jsx)("path",{d:"M6 18h-1a2 2 0 0 1 -2 -2v-1"}),(0,p.jsx)("path",{d:"M3 11v-1"}),(0,p.jsx)("path",{d:"M3 6v-1a2 2 0 0 1 2 -2h1"}),(0,p.jsx)("path",{d:"M10 3h1"}),(0,p.jsx)("path",{d:"M15 3h1a2 2 0 0 1 2 2v1"})]}),q),Nv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.jsx)("path",{d:"M4 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75"}),(0,p.jsx)("path",{d:"M10 15l2 6l2 -6"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"})]}),q),Ov=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"}),(0,p.jsx)("path",{d:"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"}),(0,p.jsx)("path",{d:"M11 21v-6l3 6v-6"})]}),q),Fv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 13v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a2 2 0 0 0 6 0v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a8 8 0 0 1 -16 0"}),(0,p.jsx)("path",{d:"M4 8l5 0"}),(0,p.jsx)("path",{d:"M15 8l4 0"})]}),q),Bv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 14c.83 .642 2.077 1.017 3.5 1c1.423 .017 2.67 -.358 3.5 -1c.83 -.642 2.077 -1.017 3.5 -1c1.423 -.017 2.67 .358 3.5 1"}),(0,p.jsx)("path",{d:"M8 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M12 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M3 10h14v5a6 6 0 0 1 -6 6h-2a6 6 0 0 1 -6 -6v-5z"}),(0,p.jsx)("path",{d:"M16.746 16.726a3 3 0 1 0 .252 -5.555"})]}),q),zv=L((0,p.jsxs)("g",{stroke:"currentColor",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 5a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-16a1 1 0 0 1-1-1v-10zM7 20h10M9 16v4M15 16v4"})]}),{...q,strokeWidth:1.5}),g7=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M21 12h-13l3 -3"}),(0,p.jsx)("path",{d:"M11 15l-3 -3"})]}),q),$v=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M2 8a4 4 0 0 1 4 -4h12a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-8z"}),(0,p.jsx)("path",{d:"M10 9l5 3l-5 3z"})]}),q),Hv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 6h18"}),(0,p.jsx)("path",{d:"M3 12h18"}),(0,p.jsx)("path",{d:"M3 18h18"}),(0,p.jsx)("path",{d:"M6 3v18"}),(0,p.jsx)("path",{d:"M12 3v18"}),(0,p.jsx)("path",{d:"M18 3v18"})]}),q),Uv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"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,p.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,p.jsx)("path",{d:"M17 5c-6.627 0 -12 5.373 -12 12"})]}),q);var Gv=v(k(),1),o4=(t,e)=>{let o=new Set(we(t.filter(r=>ye(r)),e).map(r=>r.id));return{elements:t.map(r=>e.selectedElementIds[r.id]?he(r,{isDeleted:!0}):r.frameId&&o.has(r.frameId)?he(r,{isDeleted:!0}):xt(r)&&e.selectedElementIds[r.containerId]?he(r,{isDeleted:!0}):r),appState:{...e,selectedElementIds:{},selectedGroupIds:{}}}},Wv=(t,e)=>{if(t.editingGroupId){let o=ft(Ee(e),t.editingGroupId);if(o.length)return{...t,selectedElementIds:{[o[0].id]:!0}}}return t},Gl=W({name:"deleteSelectedElements",label:"labels.delete",icon:er,trackEvent:{category:"element",action:"delete"},perform:(t,e,o,r)=>{if(e.editingLinearElement){let{elementId:a,selectedPointsIndices:l,startBindingElement:s,endBindingElement:d}=e.editingLinearElement,c=r.scene.getNonDeletedElementsMap(),m=ue.getElement(a,c);if(!m||l==null)return!1;if(m.points.length<2){let f=t.map(x=>x.id===m.id?he(x,{isDeleted:!0}):x),b=Wv(e,f);return{elements:f,appState:{...b,editingLinearElement:null},storeAction:P.CAPTURE}}let u={startBindingElement:l?.includes(0)?null:s,endBindingElement:l?.includes(m.points.length-1)?null:d};return ue.deletePoints(m,l),{elements:t,appState:{...e,editingLinearElement:{...e.editingLinearElement,...u,selectedPointsIndices:l?.[0]>0?[l[0]-1]:[0]}},storeAction:P.CAPTURE}}let{elements:n,appState:i}=o4(t,e);return vc(n,t.filter(({id:a})=>e.selectedElementIds[a])),i=Wv(i,n),{elements:n,appState:{...i,activeTool:it(e,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:Be(Ee(t),e)?P.CAPTURE:P.NONE}},keyTest:(t,e,o)=>(t.key===S.BACKSPACE||t.key===S.DELETE)&&!t[S.CTRL_OR_CMD],PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Gv.jsx)(le,{type:"button",icon:er,title:g("labels.delete"),"aria-label":g("labels.delete"),onClick:()=>o(null),visible:Be(Ee(t),e)})});h();h();var rf=(t,e)=>t.frameId===e||t.id===e,Kv=(t,e,o)=>{let r=[],n=[],i=null,a=-1,l=pe(o||we(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++a<t.length;){let s=t[a];l.get(s.id)?(n.length&&(r=r.concat(n),n=[]),r.push(a),i=a+1):s.isDeleted&&i===a?(i=a+1,n.push(a)):n=[]}return r},r4=t=>{let e=0;return t.reduce((o,r,n)=>(n>0&&t[n-1]!==r-1&&(e=++e),(o[e]||(o[e]=[])).push(r),o),[])},Vv=(t,e,o)=>{if("containerId"in t&&t.containerId)if(o==="left"){let r=ko.getScene(t).getElement(t.containerId);if(r)return e.indexOf(r)}else return e.indexOf(t);else{let r=t.boundElements?.find(n=>n.type!=="arrow")?.id;if(r){if(o==="left")return e.indexOf(t);let n=ko.getScene(t).getElement(r);if(n)return e.indexOf(n)}}},n4=(t,e)=>{let o=-1,r=-1;return t.forEach((n,i)=>{rf(n,e)&&(o===-1&&(o=i),r=i)}),o===-1?[]:t.slice(o,r+1)},i4=(t,e,o,r,n)=>{let i=e[o],a=m=>m.isDeleted?!1:n?m.frameId===n:t.editingGroupId?m.groupIds.includes(t.editingGroupId):!0,l=r==="left"?Zp(e,m=>a(m),Math.max(0,o-1)):Yp(e,m=>a(m),o+1),s=e[l];if(!s)return-1;if(t.editingGroupId){if(i?.groupIds.join("")===s?.groupIds.join(""))return Vv(s,e,r)??l;if(!s?.groupIds.includes(t.editingGroupId))return-1}if(!n&&(s.frameId||ye(s))){let m=n4(e,s.frameId||s.id);return r==="left"?e.indexOf(m[0]):e.indexOf(m[m.length-1])}if(!s.groupIds.length)return Vv(s,e,r)??l;let d=t.editingGroupId?s.groupIds[s.groupIds.indexOf(t.editingGroupId)-1]:s.groupIds[s.groupIds.length-1],c=ft(e,d);return c.length?r==="left"?e.indexOf(c[0]):e.indexOf(c[c.length-1]):l},Yv=(t,e)=>e.reduce((o,r)=>{let n=t[r];return o.set(n.id,n),o},new Map),Zv=(t,e,o)=>{let r=Kv(t,e),n=Yv(t,r),i=r4(r);o==="right"&&(i=i.reverse());let a=new Set(r.filter(l=>ye(t[l])).map(l=>t[l].id));return i.forEach((l,s)=>{let d=l[0],c=l[l.length-1],m=o==="left"?d:c,u=l.some(C=>{let w=t[C];return w.frameId&&a.has(w.frameId)})?null:t[m]?.frameId,f=i4(e,t,m,o,u);if(f===-1||m===f)return;let b=o==="left"?t.slice(0,f):t.slice(0,d),x=t.slice(d,c+1),y=o==="left"?t.slice(f,d):t.slice(c+1,f+1),T=o==="left"?t.slice(c+1):t.slice(f+1);t=o==="left"?[...b,...x,...y,...T]:[...b,...y,...x,...T]}),ho(t,n),t},jv=(t,e,o,r,n)=>{let i=Kv(t,e,n),a=Yv(t,i),l=[],s,d;if(o==="left"){if(r)s=Yp(t,b=>rf(b,r));else if(e.editingGroupId){let b=ft(t,e.editingGroupId);if(!b.length)return t;s=t.indexOf(b[0])}else s=0;d=i[i.length-1]}else{if(r)d=Zp(t,b=>rf(b,r));else if(e.editingGroupId){let b=ft(t,e.editingGroupId);if(!b.length)return t;d=t.indexOf(b[b.length-1])}else d=t.length-1;s=i[0]}s===-1&&(s=0);for(let b=s;b<d+1;b++)i.includes(b)||l.push(t[b]);let c=Array.from(a.values()),m=t.slice(0,s),u=t.slice(d+1),f=o==="left"?[...m,...c,...l,...u]:[...m,...l,...c,...u];return ho(f,a),f};function Xv(t,e,o,r){let n=pe(we(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),i={regularElements:[],frameChildren:new Map},a=new Set;for(let d of t)n.has(d.id)&&ye(d)&&a.add(d.id);for(let d of t)if(n.has(d.id))if(ye(d)||d.frameId&&a.has(d.frameId))i.regularElements.push(d);else if(!d.frameId)i.regularElements.push(d);else{let c=i.frameChildren.get(d.frameId)||[];c.push(d),i.frameChildren.set(d.frameId,c)}let l=t,s=Array.from(i.frameChildren.entries());for(let[d,c]of s)l=r(t,e,o,d,c);return r(l,e,o,null,i.regularElements)}var qv=(t,e)=>Zv(t,e,"left"),Jv=(t,e)=>Zv(t,e,"right"),Qv=(t,e)=>Xv(t,e,"left",jv),e2=(t,e)=>Xv(t,e,"right",jv);var Vl=v(k(),1),nf=W({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:Hu,trackEvent:{category:"element"},perform:(t,e)=>({elements:qv(t,e),appState:e,storeAction:P.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendBackward")} \u2014 ${F("CtrlOrCmd+[")}`,children:Hu})}),af=W({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:$u,trackEvent:{category:"element"},perform:(t,e)=>({elements:Jv(t,e),appState:e,storeAction:P.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.bringForward")} \u2014 ${F("CtrlOrCmd+]")}`,children:$u})}),lf=W({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:Wu,trackEvent:{category:"element"},perform:(t,e)=>({elements:Qv(t,e),appState:e,storeAction:P.CAPTURE}),keyTest:t=>Yo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_LEFT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendToBack")} \u2014 ${Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")}`,children:Wu})}),sf=W({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:Uu,trackEvent:{category:"element"},perform:(t,e)=>({elements:e2(t,e),appState:e,storeAction:P.CAPTURE}),keyTest:t=>Yo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_RIGHT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:o=>t(null),title:`${g("labels.bringToFront")} \u2014 ${Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")}`,children:Uu})});h();var cf=W({name:"selectAll",label:"labels.selectAll",icon:Lv,trackEvent:{category:"canvas"},viewMode:!1,perform:(t,e,o,r)=>{if(e.editingLinearElement)return!1;let n=ta(t.filter(i=>!i.isDeleted&&!(ce(i)&&i.containerId)&&!i.locked)).reduce((i,a)=>(i[a.id]=!0,i),{});return{appState:{...e,...Nt({editingGroupId:null,selectedElementIds:n},Ee(t),e,r),selectedLinearElement:Object.keys(n).length===1&&_e(t[0])?new ue(t[0]):null},storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.A});h();h();var a4=t=>{let e=t.slice(),o=new Set,r=i=>{let a=i[0]?.groupIds?.join(""),l=[i[0]],s=[];for(let d of i.slice(1))d.groupIds?.join("")===a?l.push(d):s.push(d);return s.length?[...l,...r(s)]:l},n=new Map;return e.forEach((i,a)=>{if(!n.has(i.id))if(i.groupIds?.length){let l=i.groupIds[i.groupIds.length-1],s=e.slice(a).filter(d=>{let c=d?.groupIds?.some(m=>m===l);return c&&n.set(d.id,!0),c});for(let d of r(s))o.add(d)}else o.add(i)}),o.size!==t.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),t):[...o]},l4=t=>{let e=V1(t),o=t.slice(),r=new Set;return o.forEach((n,i)=>{n&&(n.boundElements?.length?(r.add(n),o[i]=null,n.boundElements.forEach(a=>{let l=e.get(a.id);l&&a.type==="text"&&(r.add(l[0]),o[l[1]]=null)})):n.type==="text"&&n.containerId&&e.get(n.containerId)?.[0].boundElements?.find(l=>l.id===n.id)||(r.add(n),o[i]=null))}),r.size!==t.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),t):[...r]},t2=t=>l4(a4(t));var o2=v(k(),1),df=W({name:"duplicateSelection",label:"labels.duplicateSelection",icon:zl,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getNonDeletedElementsMap();if(e.editingLinearElement){let i=ue.duplicateSelectedPoints(e,n);return i?{elements:t,appState:i.appState,storeAction:P.CAPTURE}:!1}return{...s4(t,e),storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.D,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,o2.jsx)(le,{type:"button",icon:zl,title:`${g("labels.duplicateSelection")} \u2014 ${F("CtrlOrCmd+D")}`,"aria-label":g("labels.duplicateSelection"),onClick:()=>o(null),visible:Be(Ee(t),e)})}),s4=(t,e)=>{let o=t2(t),r=new Map,n=[],i=[],a=new Map,l=new Map,s=C=>{let w=_c(e.editingGroupId,r,C,{x:C.x+Lr/2,y:C.y+Lr/2});return l.set(w.id,w),a.set(C.id,w.id),i.push(C),n.push(w),w},d=pe(we(o,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),c=new Map,m=C=>{for(let w of C)c.set(w.id,!0);return C},u=[],f=-1;for(;++f<o.length;){let C=o[f];if(c.get(C.id))continue;let w=ct(C,pe(t)),A=ye(C);if(d.get(C.id)){if(C.groupIds.length||w||A){let z=kb(e,C);if(z){let I=ft(o,z).flatMap(M=>ye(M)?[...bn(t,M.id),M]:[M]);u.push(...m([...I,...I.map(M=>s(M))]));continue}if(w){u.push(...m([C,w,s(C),s(w)]));continue}if(A){let I=bn(o,C.id);u.push(...m([...I,C,...I.map(M=>s(M)),s(C)]));continue}}(!C.frameId||!d.has(C.frameId))&&u.push(...m([C,s(C)]))}else u.push(...m([C]))}let b=[],x=new Map;for(f=u.length;--f>=0;){let C=u[f];x.get(C.id)||(x.set(C.id,!0),b.push(C))}let y=ho(b.reverse(),pe(n));yc(u,i,a),xc(u,i,a),Hc(y,i,a);let T=ta(n);return{elements:y,appState:{...e,...Nt({editingGroupId:e.editingGroupId,selectedElementIds:T.reduce((C,w)=>(xt(w)||(C[w.id]=!0),C),{})},Ee(y),e,null)}}};h();h();var c4=["ai","command_palette"],xe=(t,e,o,r)=>{try{if(typeof window>"u"||E.VITE_WORKER_ID||E.PROD||!c4.includes(t))return;E.PROD||console.info("trackEvent",{category:t,action:e,label:o,value:r}),window.sa_event&&window.sa_event(e,{category:t,label:o,value:r})}catch(n){console.error("error during analytics",n)}};h();var ua=v(k(),1),xr=t=>(0,ua.jsx)("div",{className:"buttonList buttonListIcon",children:t.options.map(e=>t.type==="button"?(0,ua.jsx)("button",{onClick:o=>t.onClick(e.value,o),className:$({active:e.active??t.value===e.value}),"data-testid":e.testId,title:e.text,children:e.icon},e.text):(0,ua.jsxs)("label",{className:$({active:t.value===e.value}),title:e.text,children:[(0,ua.jsx)("input",{type:"radio",name:t.group,onChange:()=>t.onChange(e.value),checked:t.value===e.value,"data-testid":e.testId}),e.icon]},e.text))});h();h();var Cd=v(k(),1),r2=({onChange:t,type:e,activeColor:o,topPicks:r})=>{let n;return e==="elementStroke"&&(n=Vs),e==="elementBackground"&&(n=Ks),e==="canvasBackground"&&(n=Ys),r&&(n=r),n?(0,Cd.jsx)("div",{className:"color-picker__top-picks",children:n.map(i=>(0,Cd.jsx)("button",{className:$("color-picker__button",{active:i===o,"is-transparent":i==="transparent"||!i}),style:{"--swatch-color":i},type:"button",title:i,onClick:()=>t(i),"data-testid":`color-top-pick-${i}`,children:(0,Cd.jsx)("div",{className:"color-picker__button-outline"})},i))}):(console.error("Invalid type for TopPicks"),null)};h();var yn=v(H(),1);h();var Sd=v(H(),1);h();var vn=({palette:t,color:e})=>{for(let[o,r]of Object.entries(t))if(Array.isArray(r)){let n=r.indexOf(e);if(n>-1)return{colorName:o,shade:n}}else if(r===e)return{colorName:o,shade:null};return null},Kl=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),mf=({color:t,palette:e})=>!Object.values(e).flat().includes(t),i2=(t,e,o)=>{let r={elementBackground:"backgroundColor",elementStroke:"strokeColor"},n=t.filter(a=>{if(a.isDeleted)return!1;let l=a[r[e]];return mf({color:l,palette:o})}),i=new Map;return n.forEach(a=>{let l=a[r[e]];i.has(l)?i.set(l,i.get(l)+1):i.set(l,1)}),[...i.entries()].sort((a,l)=>l[1]-a[1]).map(a=>a[0]).slice(0,n1)},Do=We(null),n2=(t,e,o)=>(t*299+e*587+o*114)/1e3>=160?"black":"white",a2=(t,e)=>{if(e){let i=new Option().style;if(i.color=t,i.color){let a=i.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(","),l=parseInt(a[0]),s=parseInt(a[1]),d=parseInt(a[2]);return n2(l,s,d)}}if(t==="transparent")return"black";let o=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);return n2(o,r,n)};h();var l2=v(k(),1),d4=({color:t,keyLabel:e,isCustomColor:o=!1,isShade:r=!1})=>(0,l2.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:a2(t,o)},children:[r&&"\u21E7",e]}),fa=d4;var Vr=v(k(),1),s2=({hex:t,onChange:e,palette:o})=>{let r=vn({color:t||"transparent",palette:o}),[n,i]=Se(Do),a=(0,Sd.useRef)(null);if((0,Sd.useEffect)(()=>{a.current&&n==="shades"&&a.current.focus()},[r,n]),r){let{colorName:l,shade:s}=r,d=o[l];if(Array.isArray(d))return(0,Vr.jsx)("div",{className:"color-picker-content--default shades",children:d.map((c,m)=>(0,Vr.jsxs)("button",{ref:m===s&&n==="shades"?a:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:m===s}),"aria-label":"Shade",title:`${l} - ${m+1}`,style:c?{"--swatch-color":c}:void 0,onClick:()=>{e(c),i("shades")},children:[(0,Vr.jsx)("div",{className:"color-picker__button-outline"}),(0,Vr.jsx)(fa,{color:c,keyLabel:m+1,isShade:!0})]},m))})}return(0,Vr.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Vr.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Vr.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:g("colorPicker.noShades")})]})};h();var Td=v(H(),1);var ha=v(k(),1),m4=({palette:t,color:e,onChange:o,label:r,activeShade:n})=>{let i=vn({color:e||"transparent",palette:t}),[a,l]=Se(Do),s=(0,Td.useRef)(null);return(0,Td.useEffect)(()=>{s.current&&a==="baseColors"&&s.current.focus()},[i?.colorName,a]),(0,ha.jsx)("div",{className:"color-picker-content--default",children:Object.entries(t).map(([d,c],m)=>{let u=(Array.isArray(c)?c[n]:c)||"transparent",f=Kl[m],b=g(`colors.${d.replace(/\d+/,"")}`,null,"");return(0,ha.jsxs)("button",{ref:i?.colorName===d?s:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:i?.colorName===d,"is-transparent":u==="transparent"||!u}),onClick:()=>{o(u),l("baseColors")},title:`${b}${u.startsWith("#")?` ${u}`:""} \u2014 ${f}`,"aria-label":`${b} \u2014 ${f}`,style:u?{"--swatch-color":u}:void 0,"data-testid":`color-${d}`,children:[(0,ha.jsx)("div",{className:"color-picker__button-outline"}),(0,ha.jsx)(fa,{color:u,keyLabel:f})]},d)})})},c2=m4;h();var kd=v(H(),1);var ga=v(k(),1),d2=({colors:t,color:e,onChange:o,label:r})=>{let[n,i]=Se(Do),a=(0,kd.useRef)(null);return(0,kd.useEffect)(()=>{a.current&&a.current.focus()},[e,n]),(0,ga.jsx)("div",{className:"color-picker-content--default",children:t.map((l,s)=>(0,ga.jsxs)("button",{ref:e===l?a:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:e===l,"is-transparent":l==="transparent"||!l}),onClick:()=>{o(l),i("custom")},title:l,"aria-label":r,style:{"--swatch-color":l},children:[(0,ga.jsx)("div",{className:"color-picker__button-outline"}),(0,ga.jsx)(fa,{color:l,keyLabel:s+1,isCustomColor:!0})]},s))})};h();var pf=(t,e,o)=>{let r=Math.ceil(o/Wn);switch(e=e??-1,t){case"ArrowLeft":{let n=e-1;return n<0?o-1:n}case"ArrowRight":return(e+1)%o;case"ArrowDown":{let n=e+Wn;return n>=o?e%Wn:n}case"ArrowUp":{let n=e-Wn,i=n<0?Wn*r+n:n;return i>=o?void 0:i}}},p4=({e:t,colorObj:e,onChange:o,palette:r,customColors:n,setActiveColorPickerSection:i,activeShade:a})=>{if(e?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(t.code)&&t.shiftKey){let l=Number(t.code.slice(-1))-1;return o(r[e.colorName][l]),i("shades"),!0}if(["1","2","3","4","5"].includes(t.key)&&n[Number(t.key)-1])return o(n[Number(t.key)-1]),i("custom"),!0;if(Kl.includes(t.key)){let l=Kl.indexOf(t.key),s=Object.keys(r)[l],d=r[s],c=Array.isArray(d)?d[a]:d;return o(c),i("baseColors"),!0}return!1},m2=({event:t,activeColorPickerSection:e,palette:o,color:r,onChange:n,customColors:i,setActiveColorPickerSection:a,updateData:l,activeShade:s,onEyeDropperToggle:d,onEscape:c})=>{if(t[S.CTRL_OR_CMD])return!1;if(t.key===S.ESCAPE)return c(t),!0;if(t.key===S.ALT)return d(!0),!0;if(t.key===S.I)return d(),!0;let m=vn({color:r,palette:o});if(t.key===S.TAB){let u={custom:!!i.length,baseColors:!0,shades:m?.shade!=null,hex:!0},f=Object.entries(u).reduce((C,[w,A])=>(A&&C.push(w),C),[]),b=f.indexOf(e),x=t.shiftKey?-1:1,y=b+x>f.length-1?0:b+x<0?f.length-1:b+x,T=f[y];return T&&a(T),T==="custom"?n(i[0]):T==="baseColors"&&(Object.entries(o).find(([w,A])=>Array.isArray(A)?A.includes(r):A===r?w:null)||n(Ar.black)),t.preventDefault(),t.stopPropagation(),!0}if(p4({e:t,colorObj:m,onChange:n,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:s}))return!0;if(e==="shades"&&m){let{shade:u}=m,f=pf(t.key,u,Wn);if(f!==void 0)return n(o[m.colorName][f]),!0}if(e==="baseColors"&&m){let{colorName:u}=m,f=Object.keys(o),b=f.indexOf(u),x=pf(t.key,b,f.length);if(x!==void 0){let y=f[x],T=o[y];return n(Array.isArray(T)?T[s]:T),!0}}if(e==="custom"){let u=i.indexOf(r),f=pf(t.key,u,i.length);if(f!==void 0){let b=i[f];return n(b),!0}}return!1};h();var p2=v(k(),1),u4=({children:t})=>(0,p2.jsx)("div",{className:"color-picker__heading",children:t}),ba=u4;var go=v(k(),1),u2=({color:t,onChange:e,label:o,type:r,elements:n,palette:i,updateData:a,children:l,onEyeDropperToggle:s,onEscape:d})=>{let[c]=yn.default.useState(()=>r==="canvasBackground"?[]:i2(n,r,i)),[m,u]=Se(Do),f=vn({color:t,palette:i});(0,yn.useEffect)(()=>{if(!m){let T=mf({color:t,palette:i}),C=T&&!c.includes(t);u(C?"hex":T?"custom":f?.shade!=null?"shades":"baseColors")}},[m,t,i,u,f,c]);let[b,x]=(0,yn.useState)(f?.shade??(r==="elementBackground"?a1:i1));(0,yn.useEffect)(()=>{f?.shade!=null&&x(f.shade);let T=C=>{C.key===S.ALT&&s(!1)};return document.addEventListener("keyup",T,{capture:!0}),()=>{document.removeEventListener("keyup",T,{capture:!0})}},[f,s]);let y=yn.default.useRef(null);return(0,go.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":g("labels.colorPicker"),children:(0,go.jsxs)("div",{ref:y,onKeyDown:T=>{m2({event:T,activeColorPickerSection:m,palette:i,color:t,onChange:e,onEyeDropperToggle:s,customColors:c,setActiveColorPickerSection:u,updateData:a,activeShade:b,onEscape:d})&&(T.preventDefault(),T.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!c.length&&(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.mostUsedCustomColors")}),(0,go.jsx)(d2,{colors:c,color:t,label:g("colorPicker.mostUsedCustomColors"),onChange:e})]}),(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.colors")}),(0,go.jsx)(c2,{color:t,label:o,palette:i,onChange:e,activeShade:b})]}),(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.shades")}),(0,go.jsx)(s2,{hex:t,onChange:e,palette:i})]}),l]})})};h();h();function Ce(){return Ce=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(t[r]=o[r])}return t},Ce.apply(this,arguments)}var Te=v(H());h();function yt(t,e,{checkForDefaultPrevented:o=!0}={}){return function(n){if(t?.(n),o===!1||!n.defaultPrevented)return e?.(n)}}h();var f2=v(H());function f4(t,e){typeof t=="function"?t(e):t!=null&&(t.current=e)}function uf(...t){return e=>t.forEach(o=>f4(o,e))}function Ft(...t){return(0,f2.useCallback)(uf(...t),t)}h();var tr=v(H());function yr(t,e=[]){let o=[];function r(i,a){let l=(0,tr.createContext)(a),s=o.length;o=[...o,a];function d(m){let{scope:u,children:f,...b}=m,x=u?.[t][s]||l,y=(0,tr.useMemo)(()=>b,Object.values(b));return(0,tr.createElement)(x.Provider,{value:y},f)}function c(m,u){let f=u?.[t][s]||l,b=(0,tr.useContext)(f);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${m}\` must be used within \`${i}\``)}return d.displayName=i+"Provider",[d,c]}let n=()=>{let i=o.map(a=>(0,tr.createContext)(a));return function(l){let s=l?.[t]||i;return(0,tr.useMemo)(()=>({[`__scope${t}`]:{...l,[t]:s}}),[l,s])}};return n.scopeName=t,[r,h4(n,...e)]}function h4(...t){let e=t[0];if(t.length===1)return e;let o=()=>{let r=t.map(n=>({useScope:n(),scopeName:n.scopeName}));return function(i){let a=r.reduce((l,{useScope:s,scopeName:d})=>{let m=s(i)[`__scope${d}`];return{...l,...m}},{});return(0,tr.useMemo)(()=>({[`__scope${e.scopeName}`]:a}),[a])}};return o.scopeName=e.scopeName,o}h();var gt=v(H());h();var xa=v(H()),h2=v(br());h();var lt=v(H());var En=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t,n=lt.Children.toArray(o),i=n.find(b4);if(i){let a=i.props.children,l=n.map(s=>s===i?lt.Children.count(a)>1?lt.Children.only(null):(0,lt.isValidElement)(a)?a.props.children:null:s);return(0,lt.createElement)(ff,Ce({},r,{ref:e}),(0,lt.isValidElement)(a)?(0,lt.cloneElement)(a,void 0,l):null)}return(0,lt.createElement)(ff,Ce({},r,{ref:e}),o)});En.displayName="Slot";var ff=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t;return(0,lt.isValidElement)(o)?(0,lt.cloneElement)(o,{...x4(r,o.props),ref:uf(e,o.ref)}):lt.Children.count(o)>1?lt.Children.only(null):null});ff.displayName="SlotClone";var g4=({children:t})=>(0,lt.createElement)(lt.Fragment,null,t);function b4(t){return(0,lt.isValidElement)(t)&&t.type===g4}function x4(t,e){let o={...e};for(let r in e){let n=t[r],i=e[r];/^on[A-Z]/.test(r)?n&&i?o[r]=(...l)=>{i(...l),n(...l)}:n&&(o[r]=n):r==="style"?o[r]={...n,...i}:r==="className"&&(o[r]=[n,i].filter(Boolean).join(" "))}return{...t,...o}}var v4=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],dt=v4.reduce((t,e)=>{let o=(0,xa.forwardRef)((r,n)=>{let{asChild:i,...a}=r,l=i?En:e;return(0,xa.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,xa.createElement)(l,Ce({},a,{ref:n}))});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{});function g2(t,e){t&&(0,h2.flushSync)(()=>t.dispatchEvent(e))}h();var va=v(H());function oo(t){let e=(0,va.useRef)(t);return(0,va.useEffect)(()=>{e.current=t}),(0,va.useMemo)(()=>(...o)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...o)},[])}h();var b2=v(H());function x2(t,e=globalThis?.document){let o=oo(t);(0,b2.useEffect)(()=>{let r=n=>{n.key==="Escape"&&o(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[o,e])}var hf="dismissableLayer.update",y4="dismissableLayer.pointerDownOutside",E4="dismissableLayer.focusOutside",v2,w4=(0,gt.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),E2=(0,gt.forwardRef)((t,e)=>{var o;let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:l,onDismiss:s,...d}=t,c=(0,gt.useContext)(w4),[m,u]=(0,gt.useState)(null),f=(o=m?.ownerDocument)!==null&&o!==void 0?o:globalThis?.document,[,b]=(0,gt.useState)({}),x=Ft(e,_=>u(_)),y=Array.from(c.layers),[T]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),C=y.indexOf(T),w=m?y.indexOf(m):-1,A=c.layersWithOutsidePointerEventsDisabled.size>0,z=w>=C,I=C4(_=>{let U=_.target,D=[...c.branches].some(G=>G.contains(U));!z||D||(i?.(_),l?.(_),_.defaultPrevented||s?.())},f),M=S4(_=>{let U=_.target;[...c.branches].some(G=>G.contains(U))||(a?.(_),l?.(_),_.defaultPrevented||s?.())},f);return x2(_=>{w===c.layers.size-1&&(n?.(_),!_.defaultPrevented&&s&&(_.preventDefault(),s()))},f),(0,gt.useEffect)(()=>{if(m)return r&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(v2=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(m)),c.layers.add(m),y2(),()=>{r&&c.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=v2)}},[m,f,r,c]),(0,gt.useEffect)(()=>()=>{m&&(c.layers.delete(m),c.layersWithOutsidePointerEventsDisabled.delete(m),y2())},[m,c]),(0,gt.useEffect)(()=>{let _=()=>b({});return document.addEventListener(hf,_),()=>document.removeEventListener(hf,_)},[]),(0,gt.createElement)(dt.div,Ce({},d,{ref:x,style:{pointerEvents:A?z?"auto":"none":void 0,...t.style},onFocusCapture:yt(t.onFocusCapture,M.onFocusCapture),onBlurCapture:yt(t.onBlurCapture,M.onBlurCapture),onPointerDownCapture:yt(t.onPointerDownCapture,I.onPointerDownCapture)}))});function C4(t,e=globalThis?.document){let o=oo(t),r=(0,gt.useRef)(!1),n=(0,gt.useRef)(()=>{});return(0,gt.useEffect)(()=>{let i=l=>{if(l.target&&!r.current){let d=function(){w2(y4,o,s,{discrete:!0})},s={originalEvent:l};l.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=d,e.addEventListener("click",n.current,{once:!0})):d()}r.current=!1},a=window.setTimeout(()=>{e.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),e.removeEventListener("pointerdown",i),e.removeEventListener("click",n.current)}},[e,o]),{onPointerDownCapture:()=>r.current=!0}}function S4(t,e=globalThis?.document){let o=oo(t),r=(0,gt.useRef)(!1);return(0,gt.useEffect)(()=>{let n=i=>{i.target&&!r.current&&w2(E4,o,{originalEvent:i},{discrete:!1})};return e.addEventListener("focusin",n),()=>e.removeEventListener("focusin",n)},[e,o]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function y2(){let t=new CustomEvent(hf);document.dispatchEvent(t)}function w2(t,e,o,{discrete:r}){let n=o.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:o});e&&n.addEventListener(t,e,{once:!0}),r?g2(n,i):n.dispatchEvent(i)}h();var S2=v(H()),gf=0;function T2(){(0,S2.useEffect)(()=>{var t,e;let o=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(t=o[0])!==null&&t!==void 0?t:C2()),document.body.insertAdjacentElement("beforeend",(e=o[1])!==null&&e!==void 0?e:C2()),gf++,()=>{gf===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),gf--}},[])}function C2(){let t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",t}h();var so=v(H());var bf="focusScope.autoFocusOnMount",xf="focusScope.autoFocusOnUnmount",k2={bubbles:!1,cancelable:!0};var _2=(0,so.forwardRef)((t,e)=>{let{loop:o=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...a}=t,[l,s]=(0,so.useState)(null),d=oo(n),c=oo(i),m=(0,so.useRef)(null),u=Ft(e,x=>s(x)),f=(0,so.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,so.useEffect)(()=>{if(r){let x=function(T){if(f.paused||!l)return;let C=T.target;l.contains(C)?m.current=C:ii(m.current,{select:!0})},y=function(T){f.paused||!l||l.contains(T.relatedTarget)||ii(m.current,{select:!0})};return document.addEventListener("focusin",x),document.addEventListener("focusout",y),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",y)}}},[r,l,f.paused]),(0,so.useEffect)(()=>{if(l){A2.add(f);let x=document.activeElement;if(!l.contains(x)){let T=new CustomEvent(bf,k2);l.addEventListener(bf,d),l.dispatchEvent(T),T.defaultPrevented||(T4(_4(L2(l)),{select:!0}),document.activeElement===x&&ii(l))}return()=>{l.removeEventListener(bf,d),setTimeout(()=>{let T=new CustomEvent(xf,k2);l.addEventListener(xf,c),l.dispatchEvent(T),T.defaultPrevented||ii(x??document.body,{select:!0}),l.removeEventListener(xf,c),A2.remove(f)},0)}}},[l,d,c,f]);let b=(0,so.useCallback)(x=>{if(!o&&!r||f.paused)return;let y=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,T=document.activeElement;if(y&&T){let C=x.currentTarget,[w,A]=k4(C);w&&A?!x.shiftKey&&T===A?(x.preventDefault(),o&&ii(w,{select:!0})):x.shiftKey&&T===w&&(x.preventDefault(),o&&ii(A,{select:!0})):T===C&&x.preventDefault()}},[o,r,f.paused]);return(0,so.createElement)(dt.div,Ce({tabIndex:-1},a,{ref:u,onKeyDown:b}))});function T4(t,{select:e=!1}={}){let o=document.activeElement;for(let r of t)if(ii(r,{select:e}),document.activeElement!==o)return}function k4(t){let e=L2(t),o=I2(e,t),r=I2(e.reverse(),t);return[o,r]}function L2(t){let e=[],o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{let n=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||n?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)e.push(o.currentNode);return e}function I2(t,e){for(let o of t)if(!I4(o,{upTo:e}))return o}function I4(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function A4(t){return t instanceof HTMLInputElement&&"select"in t}function ii(t,{select:e=!1}={}){if(t&&t.focus){let o=document.activeElement;t.focus({preventScroll:!0}),t!==o&&A4(t)&&e&&t.select()}}var A2=M4();function M4(){let t=[];return{add(e){let o=t[0];e!==o&&o?.pause(),t=M2(t,e),t.unshift(e)},remove(e){var o;t=M2(t,e),(o=t[0])===null||o===void 0||o.resume()}}}function M2(t,e){let o=[...t],r=o.indexOf(e);return r!==-1&&o.splice(r,1),o}function _4(t){return t.filter(e=>e.tagName!=="A")}h();var Id=v(H());h();var P2=v(H()),No=globalThis?.document?P2.useLayoutEffect:()=>{};var L4=Id.useId||(()=>{}),P4=0;function ya(t){let[e,o]=Id.useState(L4());return No(()=>{t||o(r=>r??String(P4++))},[t]),t||(e?`radix-${e}`:"")}h();var je=v(H());h();h();h();function li(t){return t.split("-")[0]}function Zl(t){return t.split("-")[1]}function wa(t){return["top","bottom"].includes(li(t))?"x":"y"}function yf(t){return t==="y"?"height":"width"}function R2(t,e,o){let{reference:r,floating:n}=t,i=r.x+r.width/2-n.width/2,a=r.y+r.height/2-n.height/2,l=wa(e),s=yf(l),d=r[s]/2-n[s]/2,c=l==="x",m;switch(li(e)){case"top":m={x:i,y:r.y-n.height};break;case"bottom":m={x:i,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:a};break;case"left":m={x:r.x-n.width,y:a};break;default:m={x:r.x,y:r.y}}switch(Zl(e)){case"start":m[l]-=d*(o&&c?-1:1);break;case"end":m[l]+=d*(o&&c?-1:1)}return m}var F2=async(t,e,o)=>{let{placement:r="bottom",strategy:n="absolute",middleware:i=[],platform:a}=o,l=await(a.isRTL==null?void 0:a.isRTL(e)),s=await a.getElementRects({reference:t,floating:e,strategy:n}),{x:d,y:c}=R2(s,r,l),m=r,u={},f=0;for(let b=0;b<i.length;b++){let{name:x,fn:y}=i[b],{x:T,y:C,data:w,reset:A}=await y({x:d,y:c,initialPlacement:r,placement:m,strategy:n,middlewareData:u,rects:s,platform:a,elements:{reference:t,floating:e}});d=T??d,c=C??c,u={...u,[x]:{...u[x],...w}},A&&f<=50&&(f++,typeof A=="object"&&(A.placement&&(m=A.placement),A.rects&&(s=A.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:n}):A.rects),{x:d,y:c}=R2(s,m,l)),b=-1)}return{x:d,y:c,placement:m,strategy:n,middlewareData:u}};function B2(t){return typeof t!="number"?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(t):{top:t,right:t,bottom:t,left:t}}function Yl(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function Ea(t,e){var o;e===void 0&&(e={});let{x:r,y:n,platform:i,rects:a,elements:l,strategy:s}=t,{boundary:d="clippingAncestors",rootBoundary:c="viewport",elementContext:m="floating",altBoundary:u=!1,padding:f=0}=e,b=B2(f),x=l[u?m==="floating"?"reference":"floating":m],y=Yl(await i.getClippingRect({element:(o=await(i.isElement==null?void 0:i.isElement(x)))==null||o?x:x.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:c,strategy:s})),T=Yl(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:m==="floating"?{...a.floating,x:r,y:n}:a.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),strategy:s}):a[m]);return{top:y.top-T.top+b.top,bottom:T.bottom-y.bottom+b.bottom,left:y.left-T.left+b.left,right:T.right-y.right+b.right}}var R4=Math.min,ai=Math.max;function vf(t,e,o){return ai(t,R4(e,o))}var Md=t=>({name:"arrow",options:t,async fn(e){let{element:o,padding:r=0}=t??{},{x:n,y:i,placement:a,rects:l,platform:s}=e;if(o==null)return{};let d=B2(r),c={x:n,y:i},m=wa(a),u=Zl(a),f=yf(m),b=await s.getDimensions(o),x=m==="y"?"top":"left",y=m==="y"?"bottom":"right",T=l.reference[f]+l.reference[m]-c[m]-l.floating[f],C=c[m]-l.reference[m],w=await(s.getOffsetParent==null?void 0:s.getOffsetParent(o)),A=w?m==="y"?w.clientHeight||0:w.clientWidth||0:0;A===0&&(A=l.floating[f]);let z=T/2-C/2,I=d[x],M=A-b[f]-d[y],_=A/2-b[f]/2+z,U=vf(I,_,M),D=(u==="start"?d[x]:d[y])>0&&_!==U&&l.reference[f]<=l.floating[f];return{[m]:c[m]-(D?_<I?I-_:M-_:0),data:{[m]:U,centerOffset:_-U}}}}),D4={left:"right",right:"left",bottom:"top",top:"bottom"};function Ad(t){return t.replace(/left|right|bottom|top/g,e=>D4[e])}function N4(t,e,o){o===void 0&&(o=!1);let r=Zl(t),n=wa(t),i=yf(n),a=n==="x"?r===(o?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(a=Ad(a)),{main:a,cross:Ad(a)}}var O4={start:"end",end:"start"};function D2(t){return t.replace(/start|end/g,e=>O4[e])}var z2=["top","right","bottom","left"],S_=z2.reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);var Ef=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var o;let{placement:r,middlewareData:n,rects:i,initialPlacement:a,platform:l,elements:s}=e,{mainAxis:d=!0,crossAxis:c=!0,fallbackPlacements:m,fallbackStrategy:u="bestFit",flipAlignment:f=!0,...b}=t,x=li(r),y=m||(x===a||!f?[Ad(a)]:function(_){let U=Ad(_);return[D2(_),U,D2(U)]}(a)),T=[a,...y],C=await Ea(e,b),w=[],A=((o=n.flip)==null?void 0:o.overflows)||[];if(d&&w.push(C[x]),c){let{main:_,cross:U}=N4(r,i,await(l.isRTL==null?void 0:l.isRTL(s.floating)));w.push(C[_],C[U])}if(A=[...A,{placement:r,overflows:w}],!w.every(_=>_<=0)){var z,I;let _=((z=(I=n.flip)==null?void 0:I.index)!=null?z:0)+1,U=T[_];if(U)return{data:{index:_,overflows:A},reset:{placement:U}};let D="bottom";switch(u){case"bestFit":{var M;let G=(M=A.map(O=>[O,O.overflows.filter(B=>B>0).reduce((B,te)=>B+te,0)]).sort((O,B)=>O[1]-B[1])[0])==null?void 0:M[0].placement;G&&(D=G);break}case"initialPlacement":D=a}if(r!==D)return{reset:{placement:D}}}return{}}}};function N2(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function O2(t){return z2.some(e=>t[e]>=0)}var wf=function(t){let{strategy:e="referenceHidden",...o}=t===void 0?{}:t;return{name:"hide",async fn(r){let{rects:n}=r;switch(e){case"referenceHidden":{let i=N2(await Ea(r,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:O2(i)}}}case"escaped":{let i=N2(await Ea(r,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:i,escaped:O2(i)}}}default:return{}}}}},Cf=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){let{x:o,y:r}=e,n=await async function(i,a){let{placement:l,platform:s,elements:d}=i,c=await(s.isRTL==null?void 0:s.isRTL(d.floating)),m=li(l),u=Zl(l),f=wa(l)==="x",b=["left","top"].includes(m)?-1:1,x=c&&f?-1:1,y=typeof a=="function"?a(i):a,{mainAxis:T,crossAxis:C,alignmentAxis:w}=typeof y=="number"?{mainAxis:y,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...y};return u&&typeof w=="number"&&(C=u==="end"?-1*w:w),f?{x:C*x,y:T*b}:{x:T*b,y:C*x}}(e,t);return{x:o+n.x,y:r+n.y,data:n}}}};function $2(t){return t==="x"?"y":"x"}var Sf=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){let{x:o,y:r,placement:n}=e,{mainAxis:i=!0,crossAxis:a=!1,limiter:l={fn:y=>{let{x:T,y:C}=y;return{x:T,y:C}}},...s}=t,d={x:o,y:r},c=await Ea(e,s),m=wa(li(n)),u=$2(m),f=d[m],b=d[u];if(i){let y=m==="y"?"bottom":"right";f=vf(f+c[m==="y"?"top":"left"],f,f-c[y])}if(a){let y=u==="y"?"bottom":"right";b=vf(b+c[u==="y"?"top":"left"],b,b-c[y])}let x=l.fn({...e,[m]:f,[u]:b});return{...x,data:{x:x.x-o,y:x.y-r}}}}},Tf=function(t){return t===void 0&&(t={}),{options:t,fn(e){let{x:o,y:r,placement:n,rects:i,middlewareData:a}=e,{offset:l=0,mainAxis:s=!0,crossAxis:d=!0}=t,c={x:o,y:r},m=wa(n),u=$2(m),f=c[m],b=c[u],x=typeof l=="function"?l({...i,placement:n}):l,y=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(s){let z=m==="y"?"height":"width",I=i.reference[m]-i.floating[z]+y.mainAxis,M=i.reference[m]+i.reference[z]-y.mainAxis;f<I?f=I:f>M&&(f=M)}if(d){var T,C,w,A;let z=m==="y"?"width":"height",I=["top","left"].includes(li(n)),M=i.reference[u]-i.floating[z]+(I&&(T=(C=a.offset)==null?void 0:C[u])!=null?T:0)+(I?0:y.crossAxis),_=i.reference[u]+i.reference[z]+(I?0:(w=(A=a.offset)==null?void 0:A[u])!=null?w:0)-(I?y.crossAxis:0);b<M?b=M:b>_&&(b=_)}return{[m]:f,[u]:b}}}},kf=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){let{placement:o,rects:r,platform:n,elements:i}=e,{apply:a,...l}=t,s=await Ea(e,l),d=li(o),c=Zl(o),m,u;d==="top"||d==="bottom"?(m=d,u=c===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(u=d,m=c==="end"?"top":"bottom");let f=ai(s.left,0),b=ai(s.right,0),x=ai(s.top,0),y=ai(s.bottom,0),T={availableHeight:r.floating.height-(["left","right"].includes(o)?2*(x!==0||y!==0?x+y:ai(s.top,s.bottom)):s[m]),availableWidth:r.floating.width-(["top","bottom"].includes(o)?2*(f!==0||b!==0?f+b:ai(s.left,s.right)):s[u])},C=await n.getDimensions(i.floating);a?.({...e,...T});let w=await n.getDimensions(i.floating);return C.width!==w.width||C.height!==w.height?{reset:{rects:!0}}:{}}}};function K2(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Zr(t){if(t==null)return window;if(!K2(t)){let e=t.ownerDocument;return e&&e.defaultView||window}return t}function Xl(t){return Zr(t).getComputedStyle(t)}function Kr(t){return K2(t)?"":t?(t.nodeName||"").toLowerCase():""}function Y2(){let t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function Er(t){return t instanceof Zr(t).HTMLElement}function Cn(t){return t instanceof Zr(t).Element}function Af(t){return typeof ShadowRoot>"u"?!1:t instanceof Zr(t).ShadowRoot||t instanceof ShadowRoot}function Pd(t){let{overflow:e,overflowX:o,overflowY:r}=Xl(t);return/auto|scroll|overlay|hidden/.test(e+r+o)}function F4(t){return["table","td","th"].includes(Kr(t))}function H2(t){let e=/firefox/i.test(Y2()),o=Xl(t);return o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].includes(o.willChange)||e&&o.willChange==="filter"||e&&!!o.filter&&o.filter!=="none"}function Z2(){return!/^((?!chrome|android).)*safari/i.test(Y2())}var U2=Math.min,jl=Math.max,_d=Math.round;function Yr(t,e,o){var r,n,i,a;e===void 0&&(e=!1),o===void 0&&(o=!1);let l=t.getBoundingClientRect(),s=1,d=1;e&&Er(t)&&(s=t.offsetWidth>0&&_d(l.width)/t.offsetWidth||1,d=t.offsetHeight>0&&_d(l.height)/t.offsetHeight||1);let c=Cn(t)?Zr(t):window,m=!Z2()&&o,u=(l.left+(m&&(r=(n=c.visualViewport)==null?void 0:n.offsetLeft)!=null?r:0))/s,f=(l.top+(m&&(i=(a=c.visualViewport)==null?void 0:a.offsetTop)!=null?i:0))/d,b=l.width/s,x=l.height/d;return{width:b,height:x,top:f,right:u+b,bottom:f+x,left:u,x:u,y:f}}function wn(t){return(e=t,(e instanceof Zr(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function Rd(t){return Cn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function j2(t){return Yr(wn(t)).left+Rd(t).scrollLeft}function B4(t,e,o){let r=Er(e),n=wn(e),i=Yr(t,r&&function(s){let d=Yr(s);return _d(d.width)!==s.offsetWidth||_d(d.height)!==s.offsetHeight}(e),o==="fixed"),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if(r||!r&&o!=="fixed")if((Kr(e)!=="body"||Pd(n))&&(a=Rd(e)),Er(e)){let s=Yr(e,!0);l.x=s.x+e.clientLeft,l.y=s.y+e.clientTop}else n&&(l.x=j2(n));return{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function X2(t){return Kr(t)==="html"?t:t.assignedSlot||t.parentNode||(Af(t)?t.host:null)||wn(t)}function W2(t){return Er(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function If(t){let e=Zr(t),o=W2(t);for(;o&&F4(o)&&getComputedStyle(o).position==="static";)o=W2(o);return o&&(Kr(o)==="html"||Kr(o)==="body"&&getComputedStyle(o).position==="static"&&!H2(o))?e:o||function(r){let n=X2(r);for(Af(n)&&(n=n.host);Er(n)&&!["html","body"].includes(Kr(n));){if(H2(n))return n;n=n.parentNode}return null}(t)||e}function G2(t){if(Er(t))return{width:t.offsetWidth,height:t.offsetHeight};let e=Yr(t);return{width:e.width,height:e.height}}function q2(t){let e=X2(t);return["html","body","#document"].includes(Kr(e))?t.ownerDocument.body:Er(e)&&Pd(e)?e:q2(e)}function Ld(t,e){var o;e===void 0&&(e=[]);let r=q2(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),i=Zr(r),a=n?[i].concat(i.visualViewport||[],Pd(r)?r:[]):r,l=e.concat(a);return n?l:l.concat(Ld(a))}function V2(t,e,o){return e==="viewport"?Yl(function(r,n){let i=Zr(r),a=wn(r),l=i.visualViewport,s=a.clientWidth,d=a.clientHeight,c=0,m=0;if(l){s=l.width,d=l.height;let u=Z2();(u||!u&&n==="fixed")&&(c=l.offsetLeft,m=l.offsetTop)}return{width:s,height:d,x:c,y:m}}(t,o)):Cn(e)?function(r,n){let i=Yr(r,!1,n==="fixed"),a=i.top+r.clientTop,l=i.left+r.clientLeft;return{top:a,left:l,x:l,y:a,right:l+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(e,o):Yl(function(r){var n;let i=wn(r),a=Rd(r),l=(n=r.ownerDocument)==null?void 0:n.body,s=jl(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),d=jl(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),c=-a.scrollLeft+j2(r),m=-a.scrollTop;return Xl(l||i).direction==="rtl"&&(c+=jl(i.clientWidth,l?l.clientWidth:0)-s),{width:s,height:d,x:c,y:m}}(wn(t)))}function z4(t){let e=Ld(t),o=["absolute","fixed"].includes(Xl(t).position)&&Er(t)?If(t):t;return Cn(o)?e.filter(r=>Cn(r)&&function(n,i){let a=i.getRootNode==null?void 0:i.getRootNode();if(n.contains(i))return!0;if(a&&Af(a)){let l=i;do{if(l&&n===l)return!0;l=l.parentNode||l.host}while(l)}return!1}(r,o)&&Kr(r)!=="body"):[]}var $4={getClippingRect:function(t){let{element:e,boundary:o,rootBoundary:r,strategy:n}=t,i=[...o==="clippingAncestors"?z4(e):[].concat(o),r],a=i[0],l=i.reduce((s,d)=>{let c=V2(e,d,n);return s.top=jl(c.top,s.top),s.right=U2(c.right,s.right),s.bottom=U2(c.bottom,s.bottom),s.left=jl(c.left,s.left),s},V2(e,a,n));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:o,strategy:r}=t,n=Er(o),i=wn(o);if(o===i)return e;let a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if((n||!n&&r!=="fixed")&&((Kr(o)!=="body"||Pd(i))&&(a=Rd(o)),Er(o))){let s=Yr(o,!0);l.x=s.x+o.clientLeft,l.y=s.y+o.clientTop}return{...e,x:e.x-a.scrollLeft+l.x,y:e.y-a.scrollTop+l.y}},isElement:Cn,getDimensions:G2,getOffsetParent:If,getDocumentElement:wn,getElementRects:t=>{let{reference:e,floating:o,strategy:r}=t;return{reference:B4(e,If(o),r),floating:{...G2(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Xl(t).direction==="rtl"};function J2(t,e,o,r){r===void 0&&(r={});let{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:l=!1}=r,s=n&&!l,d=i&&!l,c=s||d?[...Cn(t)?Ld(t):[],...Ld(e)]:[];c.forEach(b=>{s&&b.addEventListener("scroll",o,{passive:!0}),d&&b.addEventListener("resize",o)});let m,u=null;if(a){let b=!0;u=new ResizeObserver(()=>{b||o(),b=!1}),Cn(t)&&!l&&u.observe(t),u.observe(e)}let f=l?Yr(t):null;return l&&function b(){let x=Yr(t);!f||x.x===f.x&&x.y===f.y&&x.width===f.width&&x.height===f.height||o(),f=x,m=requestAnimationFrame(b)}(),o(),()=>{var b;c.forEach(x=>{s&&x.removeEventListener("scroll",o),d&&x.removeEventListener("resize",o)}),(b=u)==null||b.disconnect(),u=null,l&&cancelAnimationFrame(m)}}var Q2=(t,e,o)=>F2(t,e,{platform:$4,...o});var Bt=v(H()),Dd=v(H()),ey=v(br()),Mf=typeof document<"u"?Dd.useLayoutEffect:Dd.useEffect;function _f(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let o,r,n;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(o=t.length,o!=e.length)return!1;for(r=o;r--!==0;)if(!_f(t[r],e[r]))return!1;return!0}if(n=Object.keys(t),o=n.length,o!==Object.keys(e).length)return!1;for(r=o;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,n[r]))return!1;for(r=o;r--!==0;){let i=n[r];if(!(i==="_owner"&&t.$$typeof)&&!_f(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function H4(t){let e=Bt.useRef(t);return Mf(()=>{e.current=t}),e}function ty(t){let{middleware:e,placement:o="bottom",strategy:r="absolute",whileElementsMounted:n}=t===void 0?{}:t,i=Bt.useRef(null),a=Bt.useRef(null),l=H4(n),s=Bt.useRef(null),[d,c]=Bt.useState({x:null,y:null,strategy:r,placement:o,middlewareData:{}}),[m,u]=Bt.useState(e);_f(m?.map(w=>{let{options:A}=w;return A}),e?.map(w=>{let{options:A}=w;return A}))||u(e);let f=Bt.useCallback(()=>{!i.current||!a.current||Q2(i.current,a.current,{middleware:m,placement:o,strategy:r}).then(w=>{b.current&&ey.flushSync(()=>{c(w)})})},[m,o,r]);Mf(()=>{b.current&&f()},[f]);let b=Bt.useRef(!1);Mf(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=Bt.useCallback(()=>{if(typeof s.current=="function"&&(s.current(),s.current=null),i.current&&a.current)if(l.current){let w=l.current(i.current,a.current,f);s.current=w}else f()},[f,l]),y=Bt.useCallback(w=>{i.current=w,x()},[x]),T=Bt.useCallback(w=>{a.current=w,x()},[x]),C=Bt.useMemo(()=>({reference:i,floating:a}),[]);return Bt.useMemo(()=>({...d,update:f,refs:C,reference:y,floating:T}),[d,f,C,y,T])}var oy=t=>{let{element:e,padding:o}=t;function r(n){return Object.prototype.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){return r(e)?e.current!=null?Md({element:e.current,padding:o}).fn(n):{}:e?Md({element:e,padding:o}).fn(n):{}}}};h();var ql=v(H());var U4=(0,ql.forwardRef)((t,e)=>{let{children:o,width:r=10,height:n=5,...i}=t;return(0,ql.createElement)(dt.svg,Ce({},i,{ref:e,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),t.asChild?o:(0,ql.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),ry=U4;h();var ny=v(H());function iy(t){let[e,o]=(0,ny.useState)(void 0);return No(()=>{if(t){o({width:t.offsetWidth,height:t.offsetHeight});let r=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;let i=n[0],a,l;if("borderBoxSize"in i){let s=i.borderBoxSize,d=Array.isArray(s)?s[0]:s;a=d.inlineSize,l=d.blockSize}else a=t.offsetWidth,l=t.offsetHeight;o({width:a,height:l})});return r.observe(t,{box:"border-box"}),()=>r.unobserve(t)}else o(void 0)},[t]),e}var ay="Popper",[Lf,Pf]=yr(ay),[W4,ly]=Lf(ay),G4=t=>{let{__scopePopper:e,children:o}=t,[r,n]=(0,je.useState)(null);return(0,je.createElement)(W4,{scope:e,anchor:r,onAnchorChange:n},o)},V4="PopperAnchor",K4=(0,je.forwardRef)((t,e)=>{let{__scopePopper:o,virtualRef:r,...n}=t,i=ly(V4,o),a=(0,je.useRef)(null),l=Ft(e,a);return(0,je.useEffect)(()=>{i.onAnchorChange(r?.current||a.current)}),r?null:(0,je.createElement)(dt.div,Ce({},n,{ref:l}))}),Nd="PopperContent",[Y4,Z4]=Lf(Nd),[j4,X4]=Lf(Nd,{hasParent:!1,positionUpdateFns:new Set}),q4=(0,je.forwardRef)((t,e)=>{var o,r,n,i,a,l,s,d;let{__scopePopper:c,side:m="bottom",sideOffset:u=0,align:f="center",alignOffset:b=0,arrowPadding:x=0,collisionBoundary:y=[],collisionPadding:T=0,sticky:C="partial",hideWhenDetached:w=!1,avoidCollisions:A=!0,onPlaced:z,...I}=t,M=ly(Nd,c),[_,U]=(0,je.useState)(null),D=Ft(e,Ni=>U(Ni)),[G,O]=(0,je.useState)(null),B=iy(G),te=(o=B?.width)!==null&&o!==void 0?o:0,oe=(r=B?.height)!==null&&r!==void 0?r:0,ve=m+(f!=="center"?"-"+f:""),Ie=typeof T=="number"?T:{top:0,right:0,bottom:0,left:0,...T},de=Array.isArray(y)?y:[y],j=de.length>0,R={padding:Ie,boundary:de.filter(oC),altBoundary:j},{reference:N,floating:K,strategy:Y,x:Z,y:X,placement:ee,middlewareData:ne,update:rt}=ty({strategy:"fixed",placement:ve,whileElementsMounted:J2,middleware:[rC(),Cf({mainAxis:u+oe,alignmentAxis:b}),A?Sf({mainAxis:!0,crossAxis:!1,limiter:C==="partial"?Tf():void 0,...R}):void 0,G?oy({element:G,padding:x}):void 0,A?Ef({...R}):void 0,kf({...R,apply:({elements:Ni,availableWidth:M6,availableHeight:_6})=>{Ni.floating.style.setProperty("--radix-popper-available-width",`${M6}px`),Ni.floating.style.setProperty("--radix-popper-available-height",`${_6}px`)}}),nC({arrowWidth:te,arrowHeight:oe}),w?wf({strategy:"referenceHidden"}):void 0].filter(tC)});No(()=>{N(M.anchor)},[N,M.anchor]);let nt=Z!==null&&X!==null,[st,Ue]=sy(ee),Jt=oo(z);No(()=>{nt&&Jt?.()},[nt,Jt]);let Gs=(n=ne.arrow)===null||n===void 0?void 0:n.x,S6=(i=ne.arrow)===null||i===void 0?void 0:i.y,T6=((a=ne.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[k6,I6]=(0,je.useState)();No(()=>{_&&I6(window.getComputedStyle(_).zIndex)},[_]);let{hasParent:A6,positionUpdateFns:Di}=X4(Nd,c),il=!A6;(0,je.useLayoutEffect)(()=>{if(!il)return Di.add(rt),()=>{Di.delete(rt)}},[il,Di,rt]),No(()=>{il&&nt&&Array.from(Di).reverse().forEach(Ni=>requestAnimationFrame(Ni))},[il,nt,Di]);let e1={"data-side":st,"data-align":Ue,...I,ref:D,style:{...I.style,animation:nt?void 0:"none",opacity:(l=ne.hide)!==null&&l!==void 0&&l.referenceHidden?0:void 0}};return(0,je.createElement)("div",{ref:K,"data-radix-popper-content-wrapper":"",style:{position:Y,left:0,top:0,transform:nt?`translate3d(${Math.round(Z)}px, ${Math.round(X)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:k6,"--radix-popper-transform-origin":[(s=ne.transformOrigin)===null||s===void 0?void 0:s.x,(d=ne.transformOrigin)===null||d===void 0?void 0:d.y].join(" ")},dir:t.dir},(0,je.createElement)(Y4,{scope:c,placedSide:st,onArrowChange:O,arrowX:Gs,arrowY:S6,shouldHideArrow:T6},il?(0,je.createElement)(j4,{scope:c,hasParent:!0,positionUpdateFns:Di},(0,je.createElement)(dt.div,e1)):(0,je.createElement)(dt.div,e1)))}),J4="PopperArrow",Q4={top:"bottom",right:"left",bottom:"top",left:"right"},eC=(0,je.forwardRef)(function(e,o){let{__scopePopper:r,...n}=e,i=Z4(J4,r),a=Q4[i.placedSide];return(0,je.createElement)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0}},(0,je.createElement)(ry,Ce({},n,{ref:o,style:{...n.style,display:"block"}})))});function tC(t){return t!==void 0}function oC(t){return t!==null}var rC=()=>({name:"anchorCssProperties",fn(t){let{rects:e,elements:o}=t,{width:r,height:n}=e.reference;return o.floating.style.setProperty("--radix-popper-anchor-width",`${r}px`),o.floating.style.setProperty("--radix-popper-anchor-height",`${n}px`),{}}}),nC=t=>({name:"transformOrigin",options:t,fn(e){var o,r,n,i,a;let{placement:l,rects:s,middlewareData:d}=e,m=((o=d.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,u=m?0:t.arrowWidth,f=m?0:t.arrowHeight,[b,x]=sy(l),y={start:"0%",center:"50%",end:"100%"}[x],T=((r=(n=d.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+u/2,C=((i=(a=d.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+f/2,w="",A="";return b==="bottom"?(w=m?y:`${T}px`,A=`${-f}px`):b==="top"?(w=m?y:`${T}px`,A=`${s.floating.height+f}px`):b==="right"?(w=`${-f}px`,A=m?y:`${C}px`):b==="left"&&(w=`${s.floating.width+f}px`,A=m?y:`${C}px`),{data:{x:w,y:A}}}});function sy(t){let[e,o="center"]=t.split("-");return[e,o]}var cy=G4,dy=K4,my=q4,py=eC;h();var Od=v(H()),uy=v(br());var fy=(0,Od.forwardRef)((t,e)=>{var o;let{container:r=globalThis==null||(o=globalThis.document)===null||o===void 0?void 0:o.body,...n}=t;return r?uy.default.createPortal((0,Od.createElement)(dt.div,Ce({},n,{ref:e})),r):null});h();var Vt=v(H()),hy=v(br());function iC(t,e){return(0,Vt.useReducer)((o,r)=>{let n=e[o][r];return n??o},t)}var Ca=t=>{let{present:e,children:o}=t,r=aC(e),n=typeof o=="function"?o({present:r.isPresent}):Vt.Children.only(o),i=Ft(r.ref,n.ref);return typeof o=="function"||r.isPresent?(0,Vt.cloneElement)(n,{ref:i}):null};Ca.displayName="Presence";function aC(t){let[e,o]=(0,Vt.useState)(),r=(0,Vt.useRef)({}),n=(0,Vt.useRef)(t),i=(0,Vt.useRef)("none"),a=t?"mounted":"unmounted",[l,s]=iC(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Vt.useEffect)(()=>{let d=Fd(r.current);i.current=l==="mounted"?d:"none"},[l]),No(()=>{let d=r.current,c=n.current;if(c!==t){let u=i.current,f=Fd(d);t?s("MOUNT"):f==="none"||d?.display==="none"?s("UNMOUNT"):s(c&&u!==f?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,s]),No(()=>{if(e){let d=m=>{let f=Fd(r.current).includes(m.animationName);m.target===e&&f&&(0,hy.flushSync)(()=>s("ANIMATION_END"))},c=m=>{m.target===e&&(i.current=Fd(r.current))};return e.addEventListener("animationstart",c),e.addEventListener("animationcancel",d),e.addEventListener("animationend",d),()=>{e.removeEventListener("animationstart",c),e.removeEventListener("animationcancel",d),e.removeEventListener("animationend",d)}}else s("ANIMATION_END")},[e,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,Vt.useCallback)(d=>{d&&(r.current=getComputedStyle(d)),o(d)},[])}}function Fd(t){return t?.animationName||"none"}h();var Sn=v(H());function Sa({prop:t,defaultProp:e,onChange:o=()=>{}}){let[r,n]=lC({defaultProp:e,onChange:o}),i=t!==void 0,a=i?t:r,l=oo(o),s=(0,Sn.useCallback)(d=>{if(i){let m=typeof d=="function"?d(t):d;m!==t&&l(m)}else n(d)},[i,t,n,l]);return[a,s]}function lC({defaultProp:t,onChange:e}){let o=(0,Sn.useState)(t),[r]=o,n=(0,Sn.useRef)(r),i=oo(e);return(0,Sn.useEffect)(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),o}h();var sC=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Ta=new WeakMap,Bd=new WeakMap,zd={},Rf=0,gy=function(t){return t&&(t.host||gy(t.parentNode))},cC=function(t,e){return e.map(function(o){if(t.contains(o))return o;var r=gy(o);return r&&t.contains(r)?r:(console.error("aria-hidden",o,"in not contained inside",t,". Doing nothing"),null)}).filter(function(o){return!!o})},dC=function(t,e,o,r){var n=cC(e,Array.isArray(t)?t:[t]);zd[o]||(zd[o]=new WeakMap);var i=zd[o],a=[],l=new Set,s=new Set(n),d=function(m){!m||l.has(m)||(l.add(m),d(m.parentNode))};n.forEach(d);var c=function(m){!m||s.has(m)||Array.prototype.forEach.call(m.children,function(u){if(l.has(u))c(u);else try{var f=u.getAttribute(r),b=f!==null&&f!=="false",x=(Ta.get(u)||0)+1,y=(i.get(u)||0)+1;Ta.set(u,x),i.set(u,y),a.push(u),x===1&&b&&Bd.set(u,!0),y===1&&u.setAttribute(o,"true"),b||u.setAttribute(r,"true")}catch(T){console.error("aria-hidden: cannot operate on ",u,T)}})};return c(e),l.clear(),Rf++,function(){a.forEach(function(m){var u=Ta.get(m)-1,f=i.get(m)-1;Ta.set(m,u),i.set(m,f),u||(Bd.has(m)||m.removeAttribute(r),Bd.delete(m)),f||m.removeAttribute(o)}),Rf--,Rf||(Ta=new WeakMap,Ta=new WeakMap,Bd=new WeakMap,zd={})}},by=function(t,e,o){o===void 0&&(o="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||sC(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),dC(r,n,o,"aria-hidden")):function(){return null}};h();h();h();var co=function(){return co=Object.assign||function(e){for(var o,r=1,n=arguments.length;r<n;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},co.apply(this,arguments)};function $d(t,e){var o={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(t);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(o[r[n]]=t[r[n]]);return o}function xy(t,e,o){if(o||arguments.length===2)for(var r=0,n=e.length,i;r<n;r++)(i||!(r in e))&&(i||(i=Array.prototype.slice.call(e,0,r)),i[r]=e[r]);return t.concat(i||Array.prototype.slice.call(e))}var Vd=v(H());h();var Kt=v(H());h();var si="right-scroll-bar-position",ci="width-before-scroll-bar",Df="with-scroll-bars-hidden",Nf="--removed-body-scroll-bar-size";h();h();function Hd(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}h();var vy=v(H());function yy(t,e){var o=(0,vy.useState)(function(){return{value:t,callback:e,facade:{get current(){return o.value},set current(r){var n=o.value;n!==r&&(o.value=r,o.callback(r,n))}}}})[0];return o.callback=e,o.facade}h();var Ud=v(H());var mC=typeof window<"u"?Ud.useLayoutEffect:Ud.useEffect,Ey=new WeakMap;function Of(t,e){var o=yy(e||null,function(r){return t.forEach(function(n){return Hd(n,r)})});return mC(function(){var r=Ey.get(o);if(r){var n=new Set(r),i=new Set(t),a=o.current;n.forEach(function(l){i.has(l)||Hd(l,null)}),i.forEach(function(l){n.has(l)||Hd(l,a)})}Ey.set(o,t)},[t]),o}h();h();h();function pC(t){return t}function uC(t,e){e===void 0&&(e=pC);var o=[],r=!1,n={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return o.length?o[o.length-1]:t},useMedium:function(i){var a=e(i,r);return o.push(a),function(){o=o.filter(function(l){return l!==a})}},assignSyncMedium:function(i){for(r=!0;o.length;){var a=o;o=[],a.forEach(i)}o={push:function(l){return i(l)},filter:function(){return o}}},assignMedium:function(i){r=!0;var a=[];if(o.length){var l=o;o=[],l.forEach(i),a=o}var s=function(){var c=a;a=[],c.forEach(i)},d=function(){return Promise.resolve().then(s)};d(),o={push:function(c){a.push(c),d()},filter:function(c){return a=a.filter(c),o}}}};return n}function Ff(t){t===void 0&&(t={});var e=uC(null);return e.options=co({async:!0,ssr:!1},t),e}h();var wy=v(H()),Cy=function(t){var e=t.sideCar,o=$d(t,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=e.read();if(!r)throw new Error("Sidecar medium not found");return wy.createElement(r,co({},o))};Cy.isSideCarExport=!0;function Bf(t,e){return t.useMedium(e),Cy}var Wd=Ff();var zf=function(){},Jl=Kt.forwardRef(function(t,e){var o=Kt.useRef(null),r=Kt.useState({onScrollCapture:zf,onWheelCapture:zf,onTouchMoveCapture:zf}),n=r[0],i=r[1],a=t.forwardProps,l=t.children,s=t.className,d=t.removeScrollBar,c=t.enabled,m=t.shards,u=t.sideCar,f=t.noIsolation,b=t.inert,x=t.allowPinchZoom,y=t.as,T=y===void 0?"div":y,C=$d(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),w=u,A=Of([o,e]),z=co(co({},C),n);return Kt.createElement(Kt.Fragment,null,c&&Kt.createElement(w,{sideCar:Wd,removeScrollBar:d,shards:m,noIsolation:f,inert:b,setCallbacks:i,allowPinchZoom:!!x,lockRef:o}),a?Kt.cloneElement(Kt.Children.only(l),co(co({},z),{ref:A})):Kt.createElement(T,co({},z,{className:s,ref:A}),l))});Jl.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Jl.classNames={fullWidth:ci,zeroRight:si};h();h();var Xe=v(H());h();h();var Ia=v(H());h();h();h();var ky=v(H());h();h();var Sy;var Ty=function(){if(Sy)return Sy;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function fC(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=Ty();return e&&t.setAttribute("nonce",e),t}function hC(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function gC(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var $f=function(){var t=0,e=null;return{add:function(o){t==0&&(e=fC())&&(hC(e,o),gC(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var Hf=function(){var t=$f();return function(e,o){ky.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&o])}};var Ql=function(){var t=Hf(),e=function(o){var r=o.styles,n=o.dynamic;return t(r,n),null};return e};h();var bC={left:0,top:0,right:0,gap:0},Uf=function(t){return parseInt(t||"",10)||0},xC=function(t){var e=window.getComputedStyle(document.body),o=e[t==="padding"?"paddingLeft":"marginLeft"],r=e[t==="padding"?"paddingTop":"marginTop"],n=e[t==="padding"?"paddingRight":"marginRight"];return[Uf(o),Uf(r),Uf(n)]},Wf=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return bC;var e=xC(t),o=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-o+e[2]-e[0])}};var vC=Ql(),ka="data-scroll-locked",yC=function(t,e,o,r){var n=t.left,i=t.top,a=t.right,l=t.gap;return o===void 0&&(o="margin"),`
2
- .`.concat(Df,` {
1
+ import{$ as Yn,$a as jp,$b as go,$c as Qn,$d as Nc,$e as l0,$f as Su,A as ln,Aa as st,Ab as yl,Ac as Il,Ad as Xi,Ae as fu,Af as O6,Ag as Ru,B as Kn,Ba as ko,Bb as El,Bc as Ec,Bd as ut,Be as Hr,Bf as F6,Bg as ze,C as ml,Ca as O1,Cb as mn,Cc as Al,Cd as Lb,Ce as Vb,Cf as z6,Cg as U0,D as Hp,Da as F1,Db as Ht,Dc as ru,Dd as Pb,De as $c,Df as Vc,Dg as ye,E as Qs,Ea as z1,Eb as qn,Ec as mb,Ed as Rb,Ee as Kb,Ef as C0,Eg as na,F as pl,Fa as Yp,Fb as Hi,Fc as Ml,Fd as ei,Fe as Nl,Ff as wu,Fg as Be,G as xe,Ga as cn,Gb as oe,Gc as nu,Gd as $r,Ge as hu,Gf as S0,Gg as W0,H as jo,Ha as B1,Hb as Qp,Hc as wc,Hd as _c,He as Yb,Hf as xn,Hg as ni,I as qo,Ia as $1,Ib as wl,Ic as Cc,Id as Db,Ie as Zb,If as T0,Ig as Ur,J as zi,Ja as H1,Jb as Ee,Jc as iu,Jd as Nb,Je as Xb,Jf as ta,Jg as Wr,K as ec,Ka as Io,Kb as _e,Kc as he,Kd as U,Ke as gu,Kf as k0,L as Up,La as Zp,Lb as hr,Lc as pb,Ld as Lo,Le as Hc,Lf as Kc,M as tc,Ma as Qt,Mb as Q1,Mc as _l,Md as Fe,Me as bu,Mf as I0,N as b1,Na as hl,Nb as Rr,Nc as ub,Nd as Ob,Ne as xu,Nf as Yc,O as ul,Oa as mc,Ob as eb,Oc as fb,Od as Qo,Oe as jb,Of as Zc,P as x1,Pa as Zn,Pb as Dr,Pc as Ll,Pd as gn,Pe as qb,Pf as A0,Q as v1,Qa as U1,Qb as tb,Qc as Ut,Qd as su,Qe as Jb,Qf as Xc,R as Pr,Ra as W1,Rb as gr,Rc as Sc,Rd as Fb,Re as Qb,Rf as br,S as y1,Sa as Xn,Sb as Mt,Sc as Tc,Sd as Lc,Se as e0,Sf as Cu,T as Dt,Ta as it,Tb as Ui,Tc as Or,Td as Pl,Te as t0,Tf as M0,U as oc,Ua as F,Ub as ob,Uc as hb,Ud as bn,Ue as o0,Uf as jc,V as E1,Va as Ye,Vb as rb,Vc as gb,Vd as zb,Ve as r0,Vf as _0,W as w1,Wa as eo,Wb as nb,Wc as bb,Wd as Bb,We as n0,Wf as L0,X as C1,Xa as gl,Xb as pn,Xc as kc,Xd as Rl,Xe as i0,Xf as B6,Y as S1,Ya as bl,Yb as Wi,Yc as xb,Yd as Pc,Ye as a0,Yf as Ro,Z as T1,Za as pc,Zb as ib,Zc as vb,Zd as Rc,Ze as vu,Zf as re,_ as k1,_a as Xp,_b as ab,_c as ct,_d as Dc,_e as Ji,_f as pe,a as At,aa as rc,ab as jn,ac as un,ad as Ic,ae as Po,af as s0,ag as ri,b as l1,ba as Wp,bb as uc,bc as Ao,bd as yb,be as D,bf as c0,bg as zl,c as Gn,ca as I1,cb as G1,cc as lb,cd as Eb,ce as $b,cf as d0,cg as Tu,d as s1,da as A1,db as V1,dc as Nr,dd as wb,de as cu,df as m0,dg as P0,e as c1,ea as nc,eb as K1,ec as fn,ed as Cb,ee as ti,ef as Uc,eg as qc,f as _r,fa as ic,fb as fe,fc as Cl,fd as Yi,fe as Hb,ff as Ol,fg as R0,g as Zs,ga as Gp,gb as Y1,gc as to,gd as au,ge as ji,gf as p0,gg as D0,h as Xs,ha as M1,hb as xl,hc as sb,hd as Sb,he as qi,hf as u0,hg as Jc,i as js,ia as _1,ib as Z1,ic as Sl,id as Tb,ie as Oc,if as f0,ig as ku,j as d1,ja as L1,jb as fc,jc as Tl,jd as Fr,je as du,jf as h0,jg as Iu,k as m1,ka as P1,kb as Bi,kc as hn,kd as kb,ke as mu,kf as g0,kg as Au,l as p1,la as R1,lb as X1,lc as kl,ld as Wt,le as D6,lf as Wc,lg as N0,m as Xo,ma as ac,mb as $i,mc as eu,md as Ze,me as pu,mf as b0,mg as O0,n as qs,na as sn,nb as vl,nc as tu,nd as Ac,ne as Dl,nf as x0,ng as F0,o as Lr,oa as D1,ob as Tt,oc as ou,od as Mo,of as yu,og as z0,p as u1,pa as Vp,pb as dn,pc as Gi,pd as lu,pf as Qi,pg as B0,q as f1,qa as N1,qb as hc,qc as cb,qd as Zi,qf as v0,qg as $0,r as cl,ra as lc,rb as j1,rc as ge,rd as _o,rf as y0,rg as Mu,s as dl,sa as Kp,sb as qp,sc as S,sd as zr,sf as E0,sg as oa,t as Vn,ta as So,tb as fr,tc as Vi,td as Ib,te as Ub,tf as Gc,tg as $6,u as Js,ua as fl,ub as Jp,uc as xc,ud as Nt,ue as Wb,uf as w0,ug as _u,v as h1,va as To,vb as gc,vc as Ki,vd as Mc,ve as Fc,vf as ea,vg as Lu,w as Bp,wa as sc,wb as at,wc as vc,wd as Ab,we as zc,wf as oi,wg as we,x as g1,xa as cc,xb as q1,xc as db,xd as Br,xe as uu,xf as Eu,xg as Pu,y as $p,ya as Jo,yb as J1,yc as Jn,yd as Mb,ye as Bc,yf as Fl,yg as ra,z as Oe,za as dc,zb as bc,zc as yc,zd as _b,ze as Gb,zf as N6,zg as H0}from"./excalidraw-assets/chunk-CWO763YJ.js";import{a as h,b as E}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{E as zp}from"./excalidraw-assets/chunk-IZMZ6RPD.js";import{aa as a1}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as n1,d as ur,e as i1,f as v}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var H=ur((XI,G0)=>{h();G0.exports=React});var Q0=ur(sd=>{"use strict";h();var q6=H(),J6=Symbol.for("react.element"),Q6=Symbol.for("react.fragment"),e4=Object.prototype.hasOwnProperty,t4=q6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o4={key:!0,ref:!0,__self:!0,__source:!0};function J0(t,e,o){var r,n={},i=null,a=null;o!==void 0&&(i=""+o),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(a=e.ref);for(r in e)e4.call(e,r)&&!o4.hasOwnProperty(r)&&(n[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)n[r]===void 0&&(n[r]=e[r]);return{$$typeof:J6,type:t,key:i,ref:a,props:n,_owner:t4.current}}sd.Fragment=Q6;sd.jsx=J0;sd.jsxs=J0});var T=ur((x8,ex)=>{"use strict";h();ex.exports=Q0()});var vr=ur((O8,ix)=>{h();ix.exports=ReactDOM});var zh=ur((BW,vw)=>{h();var xw="Expected a function",gw=NaN,qS="[object Symbol]",JS=/^\s+|\s+$/g,QS=/^[-+]0x[0-9a-f]+$/i,eT=/^0b[01]+$/i,tT=/^0o[0-7]+$/i,oT=parseInt,rT=typeof global=="object"&&global&&global.Object===Object&&global,nT=typeof self=="object"&&self&&self.Object===Object&&self,iT=rT||nT||Function("return this")(),aT=Object.prototype,lT=aT.toString,sT=Math.max,cT=Math.min,Fh=function(){return iT.Date.now()};function dT(t,e,o){var r,n,i,a,l,s,d=0,m=!1,c=!1,u=!0;if(typeof t!="function")throw new TypeError(xw);e=bw(e)||0,Dm(o)&&(m=!!o.leading,c="maxWait"in o,i=c?sT(bw(o.maxWait)||0,e):i,u="trailing"in o?!!o.trailing:u);function f(I){var M=r,_=n;return r=n=void 0,d=I,a=t.apply(_,M),a}function b(I){return d=I,l=setTimeout(k,e),m?f(I):a}function x(I){var M=I-s,_=I-d,$=e-M;return c?cT($,i-_):$}function y(I){var M=I-s,_=I-d;return s===void 0||M>=e||M<0||c&&_>=i}function k(){var I=Fh();if(y(I))return C(I);l=setTimeout(k,x(I))}function C(I){return l=void 0,u&&r?f(I):(r=n=void 0,a)}function w(){l!==void 0&&clearTimeout(l),d=0,r=s=n=l=void 0}function A(){return l===void 0?a:C(Fh())}function z(){var I=Fh(),M=y(I);if(r=arguments,n=this,s=I,M){if(l===void 0)return b(s);if(c)return l=setTimeout(k,e),f(s)}return l===void 0&&(l=setTimeout(k,e)),a}return z.cancel=w,z.flush=A,z}function mT(t,e,o){var r=!0,n=!0;if(typeof t!="function")throw new TypeError(xw);return Dm(o)&&(r="leading"in o?!!o.leading:r,n="trailing"in o?!!o.trailing:n),dT(t,e,{leading:r,maxWait:e,trailing:n})}function Dm(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function pT(t){return!!t&&typeof t=="object"}function uT(t){return typeof t=="symbol"||pT(t)&&lT.call(t)==qS}function bw(t){if(typeof t=="number")return t;if(uT(t))return gw;if(Dm(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Dm(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(JS,"");var o=eT.test(t);return o||tT.test(t)?oT(t.slice(2),o?2:8):QS.test(t)?gw:+t}vw.exports=mT});var Aw=ur((kw,Iw)=>{h();(function(){var t=this,e={};typeof kw<"u"?Iw.exports=e:t.fuzzy=e,e.simpleFilter=function(o,r){return r.filter(function(n){return e.test(o,n)})},e.test=function(o,r){return e.match(o,r)!==null},e.match=function(o,r,n){n=n||{};var i=0,a=[],l=r.length,s=0,d=0,m=n.pre||"",c=n.post||"",u=n.caseSensitive&&r||r.toLowerCase(),f;o=n.caseSensitive&&o||o.toLowerCase();for(var b=0;b<l;b++)f=r[b],u[b]===o[i]?(f=m+f+c,i+=1,d+=1+d):d=0,s+=d,a[a.length]=f;return i===o.length?(s=u===o?1/0:s,{rendered:a.join(""),score:s}):null},e.filter=function(o,r,n){return!r||r.length===0?[]:typeof o!="string"?r:(n=n||{},r.reduce(function(i,a,l,s){var d=a;n.extract&&(d=n.extract(a));var m=e.match(o,d,n);return m!=null&&(i[i.length]={string:m.rendered,score:m.score,index:l,original:a}),i},[]).sort(function(i,a){var l=a.score-i.score;return l||i.index-a.index}))}})()});var Dw=ur(Rw=>{"use strict";h();var Xa=H();function MT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var _T=typeof Object.is=="function"?Object.is:MT,LT=Xa.useState,PT=Xa.useEffect,RT=Xa.useLayoutEffect,DT=Xa.useDebugValue;function NT(t,e){var o=e(),r=LT({inst:{value:o,getSnapshot:e}}),n=r[0].inst,i=r[1];return RT(function(){n.value=o,n.getSnapshot=e,Hh(n)&&i({inst:n})},[t,o,e]),PT(function(){return Hh(n)&&i({inst:n}),t(function(){Hh(n)&&i({inst:n})})},[t]),DT(o),o}function Hh(t){var e=t.getSnapshot;t=t.value;try{var o=e();return!_T(t,o)}catch{return!0}}function OT(t,e){return e()}var FT=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?OT:NT;Rw.useSyncExternalStore=Xa.useSyncExternalStore!==void 0?Xa.useSyncExternalStore:FT});var Ow=ur((TV,Nw)=>{"use strict";h();Nw.exports=Dw()});var zw=ur(Fw=>{"use strict";h();var Fm=H(),zT=Ow();function BT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var $T=typeof Object.is=="function"?Object.is:BT,HT=zT.useSyncExternalStore,UT=Fm.useRef,WT=Fm.useEffect,GT=Fm.useMemo,VT=Fm.useDebugValue;Fw.useSyncExternalStoreWithSelector=function(t,e,o,r,n){var i=UT(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=GT(function(){function s(f){if(!d){if(d=!0,m=f,f=r(f),n!==void 0&&a.hasValue){var b=a.value;if(n(b,f))return c=b}return c=f}if(b=c,$T(m,f))return b;var x=r(f);return n!==void 0&&n(b,x)?b:(m=f,c=x)}var d=!1,m,c,u=o===void 0?null:o;return[function(){return s(e())},u===null?void 0:function(){return s(u())}]},[e,o,r,n]);var l=HT(t,i[0],i[1]);return WT(function(){a.hasValue=!0,a.value=l},[l]),VT(l),l}});var $w=ur((MV,Bw)=>{"use strict";h();Bw.exports=zw()});h();var Fp=v(H(),1);h();var pd=v(H(),1);h();h();h();h();var ft=v(H(),1);h();var H6=0;function V0(t,e){let o=`atom${++H6}`,r={toString:()=>o};return typeof t=="function"?r.read=t:(r.init=t,r.read=n=>n(r),r.write=(n,i,a)=>i(r,typeof a=="function"?a(n(r)):a)),e&&(r.write=e),r}var vn=Symbol(),Nu=t=>!!t[vn],Qc=t=>!t[vn].c,Bl=t=>{var e;let{b:o,c:r}=t[vn];r&&(r(),(e=W6.get(o))==null||e())},td=(t,e)=>{let o=t[vn].o,r=e[vn].o;return o===r||t===r||Nu(o)&&td(o,e)},Ou=(t,e)=>{let o={b:t,o:e,c:null},r=new Promise(n=>{o.c=()=>{o.c=null,n()},e.finally(o.c)});return r[vn]=o,r},U6=t=>Ou(t[vn].b,t[vn].o),W6=new WeakMap;var ed=t=>"init"in t,$l="r",od="w",Hl="c",rd="s",K0="h",G6="n",V6="l",K6="a",Y6="m",Y0=t=>{let e=new WeakMap,o=new WeakMap,r=new Map,n,i;if((E&&E.MODE)!=="production"&&(n=new Set,i=new Set),t)for(let[L,N]of t){let K={v:N,r:0,y:!0,d:new Map};(E&&E.MODE)!=="production"&&(Object.freeze(K),ed(L)||console.warn("Found initial value for derived atom which can cause unexpected behavior",L)),e.set(L,K)}let a=new WeakMap,l=(L,N,K)=>{let Y=a.get(N);Y||(Y=new Map,a.set(N,Y)),K.then(()=>{Y.get(L)===K&&(Y.delete(L),Y.size||a.delete(N))}),Y.set(L,K)},s=L=>{let N=new Set,K=a.get(L);return K&&(a.delete(L),K.forEach((Y,V)=>{Bl(Y),N.add(V)})),N},d=new WeakMap,m=L=>{let N=d.get(L);return N||(N=new Map,d.set(L,N)),N},c=(L,N)=>{if(L){let K=m(L),Y=K.get(N);return Y||(Y=c(L.p,N),Y&&"p"in Y&&Qc(Y.p)&&(Y=void 0),Y&&K.set(N,Y)),Y}return e.get(N)},u=(L,N,K)=>{if((E&&E.MODE)!=="production"&&Object.freeze(K),L)m(L).set(N,K);else{let Y=e.get(N);e.set(N,K),r.has(N)||r.set(N,Y)}},f=(L,N=new Map,K)=>{if(!K)return N;let Y=new Map,V=!1;return K.forEach(X=>{var te;let ae=((te=c(L,X))==null?void 0:te.r)||0;Y.set(X,ae),N.get(X)!==ae&&(V=!0)}),N.size===Y.size&&!V?N:Y},b=(L,N,K,Y,V)=>{let X=c(L,N);if(X){if(V&&(!("p"in X)||!td(X.p,V)))return X;"p"in X&&Bl(X.p)}let te={v:K,r:X?.r||0,y:!0,d:f(L,X?.d,Y)},ae=!X?.y;return!X||!("v"in X)||!Object.is(X.v,K)?(ae=!0,++te.r,te.d.has(N)&&(te.d=new Map(te.d).set(N,te.r))):te.d!==X.d&&(te.d.size!==X.d.size||!Array.from(te.d.keys()).every(et=>X.d.has(et)))&&(ae=!0,Promise.resolve().then(()=>{ne(L)})),X&&!ae?X:(u(L,N,te),te)},x=(L,N,K,Y,V)=>{let X=c(L,N);if(X){if(V&&(!("p"in X)||!td(X.p,V)))return X;"p"in X&&Bl(X.p)}let te={e:K,r:(X?.r||0)+1,y:!0,d:f(L,X?.d,Y)};return u(L,N,te),te},y=(L,N,K,Y)=>{let V=c(L,N);if(V&&"p"in V){if(td(V.p,K)&&!Qc(V.p))return V.y?V:{...V,y:!0};Bl(V.p)}l(L,N,K);let X={p:K,r:(V?.r||0)+1,y:!0,d:f(L,V?.d,Y)};return u(L,N,X),X},k=(L,N,K,Y)=>{if(K instanceof Promise){let V=Ou(K,K.then(X=>{b(L,N,X,Y,V)}).catch(X=>{if(X instanceof Promise)return Nu(X)?X.then(()=>{w(L,N,!0)}):X;x(L,N,X,Y,V)}));return y(L,N,V,Y)}return b(L,N,K,Y)},C=(L,N)=>{let K=c(L,N);if(K){let Y={...K,y:!1};u(L,N,Y)}else(E&&E.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",N)},w=(L,N,K)=>{if(!K){let V=c(L,N);if(V){if(V.y&&"p"in V&&!Qc(V.p))return V;if(V.d.forEach((X,te)=>{if(te!==N)if(!o.has(te))w(L,te);else{let ae=c(L,te);ae&&!ae.y&&w(L,te)}}),Array.from(V.d).every(([X,te])=>{let ae=c(L,X);return ae&&!("p"in ae)&&ae.r===te}))return V.y?V:{...V,y:!0}}}let Y=new Set;try{let V=N.read(X=>{Y.add(X);let te=X===N?c(L,X):w(L,X);if(te){if("e"in te)throw te.e;if("p"in te)throw te.p;return te.v}if(ed(X))return X.init;throw new Error("no atom init")});return k(L,N,V,Y)}catch(V){if(V instanceof Promise){let X=Nu(V)&&Qc(V)?U6(V):Ou(V,V);return y(L,N,X,Y)}return x(L,N,V,Y)}},A=(L,N)=>w(N,L),z=(L,N)=>{let K=o.get(N);return K||(K=j(L,N)),K},I=(L,N)=>!N.l.size&&(!N.t.size||N.t.size===1&&N.t.has(L)),M=(L,N)=>{let K=o.get(N);K&&I(N,K)&&R(L,N)},_=(L,N)=>{let K=o.get(N);K?.t.forEach(Y=>{Y!==N&&(C(L,Y),_(L,Y))})},$=(L,N,K)=>{let Y=!0,V=(ae,et)=>{let nt=w(L,ae);if("e"in nt)throw nt.e;if("p"in nt){if(et?.unstable_promise)return nt.p.then(()=>{let bt=c(L,ae);return bt&&"p"in bt&&bt.p===nt.p?new Promise(Ge=>setTimeout(Ge)).then(()=>V(ae,et)):V(ae,et)});throw(E&&E.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ae),nt.p}if("v"in nt)return nt.v;throw(E&&E.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",ae),new Error("no value found")},X=(ae,et)=>{let nt;if(ae===N){if(!ed(ae))throw new Error("atom not writable");s(ae).forEach(ho=>{ho!==L&&k(ho,ae,et)});let Ge=c(L,ae),Co=k(L,ae,et);Ge!==Co&&_(L,ae)}else nt=$(L,ae,et);return Y||ne(L),nt},te=N.write(V,X,K);return Y=!1,te},O=(L,N,K)=>{let Y=$(K,L,N);return ne(K),Y},W=L=>!!L.write,j=(L,N,K)=>{let Y={t:new Set(K&&[K]),l:new Set};if(o.set(N,Y),(E&&E.MODE)!=="production"&&i.add(N),w(void 0,N).d.forEach((X,te)=>{let ae=o.get(te);ae?ae.t.add(N):te!==N&&j(L,te,N)}),W(N)&&N.onMount){let X=ae=>O(N,ae,L),te=N.onMount(X);L=void 0,te&&(Y.u=te)}return Y},R=(L,N)=>{var K;let Y=(K=o.get(N))==null?void 0:K.u;Y&&Y(),o.delete(N),(E&&E.MODE)!=="production"&&i.delete(N);let V=c(L,N);V?("p"in V&&Bl(V.p),V.d.forEach((X,te)=>{if(te!==N){let ae=o.get(te);ae&&(ae.t.delete(N),I(te,ae)&&R(L,te))}})):(E&&E.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",N)},Z=(L,N,K,Y)=>{let V=new Set(K.d.keys());Y?.forEach((X,te)=>{if(V.has(te)){V.delete(te);return}let ae=o.get(te);ae&&(ae.t.delete(N),I(te,ae)&&R(L,te))}),V.forEach(X=>{let te=o.get(X);te?te.t.add(N):o.has(N)&&j(L,X,N)})},ne=L=>{if(L){m(L).forEach((K,Y)=>{let V=e.get(Y);if(K!==V){let X=o.get(Y);X?.l.forEach(te=>te(L))}});return}for(;r.size;){let N=Array.from(r);r.clear(),N.forEach(([K,Y])=>{let V=c(void 0,K);if(V&&V.d!==Y?.d&&Z(void 0,K,V,Y?.d),Y&&!Y.y&&V?.y)return;let X=o.get(K);X?.l.forEach(te=>te())})}(E&&E.MODE)!=="production"&&n.forEach(N=>N())},me=L=>{m(L).forEach((K,Y)=>{let V=e.get(Y);(!V||K.r>V.r||K.y!==V.y||K.r===V.r&&K.d!==V.d)&&(e.set(Y,K),K.d!==V?.d&&Z(L,Y,K,V?.d))})},Me=(L,N)=>{N&&me(N),ne(void 0)},de=(L,N,K)=>{let V=z(K,L).l;return V.add(N),()=>{V.delete(N),M(K,L)}},Q=(L,N)=>{for(let[K,Y]of L)ed(K)&&(k(N,K,Y),_(N,K));ne(N)};return(E&&E.MODE)!=="production"?{[$l]:A,[od]:O,[Hl]:Me,[rd]:de,[K0]:Q,[G6]:L=>(n.add(L),()=>{n.delete(L)}),[V6]:()=>i.values(),[K6]:L=>e.get(L),[Y6]:L=>o.get(L)}:{[$l]:A,[od]:O,[Hl]:Me,[rd]:de,[K0]:Q}},Z0=t=>{let e=Y0(t),o=a=>{let l=e[$l](a);if("e"in l)throw l.e;if(!("p"in l))return l.v},r=a=>new Promise((l,s)=>{let d=e[$l](a);"e"in d?s(d.e):"p"in d?l(d.p.then(()=>r(a))):l(d.v)});return{get:o,asyncGet:r,set:(a,l)=>e[od](a,l),sub:(a,l)=>e[rd](a,l),SECRET_INTERNAL_store:e}},X0=(t,e)=>({s:e?e(t).SECRET_INTERNAL_store:Y0(t)}),Du=new Map,Fu=t=>(Du.has(t)||Du.set(t,(0,ft.createContext)(X0())),Du.get(t)),nd=({children:t,initialValues:e,scope:o,unstable_createStore:r,unstable_enableVersionedWrite:n})=>{let[i,a]=(0,ft.useState)({});(0,ft.useEffect)(()=>{let d=l.current;d.w&&(d.s[Hl](null,i),delete i.p,d.v=i)},[i]);let l=(0,ft.useRef)();if(!l.current){let d=X0(e,r);if(n){let m=0;d.w=c=>{a(u=>{let f=m?u:{p:u};return c(f),f})},d.v=i,d.r=c=>{++m,c(),--m}}l.current=d}let s=Fu(o);return(0,ft.createElement)(s.Provider,{value:l.current},t)};function Ue(t,e){return V0(t,e)}function Ul(t,e){let o=Fu(e),r=(0,ft.useContext)(o),{s:n,v:i}=r,a=u=>{let f=n[$l](t,u);if((E&&E.MODE)!=="production"&&!f.y)throw new Error("should not be invalidated");if("e"in f)throw f.e;if("p"in f)throw f.p;if("v"in f)return f.v;throw new Error("no atom value")},[[l,s,d],m]=(0,ft.useReducer)((u,f)=>{let b=a(f);return Object.is(u[1],b)&&u[2]===t?u:[f,b,t]},i,u=>{let f=a(u);return[u,f,t]}),c=s;return d!==t&&(m(l),c=a(l)),(0,ft.useEffect)(()=>{let{v:u}=r;u&&n[Hl](t,u);let f=n[rd](t,m,u);return m(u),f},[n,t,r]),(0,ft.useEffect)(()=>{n[Hl](t,l)}),(0,ft.useDebugValue)(c),c}function Gr(t,e){let o=Fu(e),{s:r,w:n}=(0,ft.useContext)(o);return(0,ft.useCallback)(a=>{if((E&&E.MODE)!=="production"&&!("write"in t))throw new Error("not writable atom");let l=s=>r[od](t,a,s);return n?n(l):l()},[r,n,t])}function Se(t,e){return"scope"in t&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=t.scope),[Ul(t,e),Gr(t,e)]}var Z6=v(H(),1),Ne=Symbol(),Gt=Z0();var X6=n1({"./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-GSUSWMSH.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 j6=85,xr={code:"en",label:"English"},aa=[xr,...[{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",rtl:!0},{code:"bg-BG",label:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438"},{code:"ca-ES",label:"Catal\xE0"},{code:"cs-CZ",label:"\u010Cesky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC"},{code:"es-ES",label:"Espa\xF1ol"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"\u0641\u0627\u0631\u0633\u06CC",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Fran\xE7ais"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",rtl:!0},{code:"hi-IN",label:"\u0939\u093F\u0928\u094D\u0926\u0940"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"\u049A\u0430\u0437\u0430\u049B \u0442\u0456\u043B\u0456"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4"},{code:"ku-TR",label:"Kurd\xEE"},{code:"lt-LT",label:"Lietuvi\u0173"},{code:"lv-LV",label:"Latvie\u0161u"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokm\xE5l"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Portugu\xEAs Brasileiro"},{code:"pt-PT",label:"Portugu\xEAs"},{code:"ro-RO",label:"Rom\xE2n\u0103"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{code:"sk-SK",label:"Sloven\u010Dina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Sloven\u0161\u010Dina"},{code:"tr-TR",label:"T\xFCrk\xE7e"},{code:"uk-UA",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{code:"zh-CN",label:"\u7B80\u4F53\u4E2D\u6587"},{code:"zh-TW",label:"\u7E41\u9AD4\u4E2D\u6587"},{code:"vi-VN",label:"Ti\u1EBFng Vi\u1EC7t"},{code:"mr-IN",label:"\u092E\u0930\u093E\u0920\u0940"}].filter(t=>a1[t.code]>=j6).sort((t,e)=>t.label>e.label?1:-1)],ad="__test__";E.DEV&&aa.unshift({code:ad,label:"test language"},{code:`${ad}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var ia=xr,id={},ld=async t=>{if(ia=t,document.documentElement.dir=ia.rtl?"rtl":"ltr",document.documentElement.lang=ia.code,t.code.startsWith(ad))id={};else try{id=await X6(`./locales/${ia.code}.json`)}catch(e){console.error(`Failed to load language ${t.code}:`,e.message),id=zp}Gt.set(q0,t.code)},Vr=()=>ia,j0=(t,e)=>{for(let o=0;o<e.length;++o){let r=e[o];if(t[r]===void 0)return;t=t[r]}if(typeof t=="string")return t},g=(t,e,o)=>{if(ia.code.startsWith(ad))return`\u202A[[${e?`${t}(${JSON.stringify(e).slice(1,-1)})`:t}]]\u202C`;let r=t.split("."),n=j0(id,r)||j0(zp,r)||o;if(n===void 0){let i=`Can't find translation for ${t}`;if(E.PROD)return console.warn(i),"";throw new Error(i)}if(e)for(let i in e)n=n.replace(`{{${i}}}`,String(e[i]));return n},q0=Ue(xr.code),xt=()=>{let t=Ul(q0,Ne);return{t:g,langCode:t}};var dd=v(H(),1);h();var tx=v(H(),1);var cd=v(T(),1),r4=({size:t="1em",circleWidth:e=8,synchronized:o=!1})=>{let n=-(tx.default.useRef(Date.now()).current%1600);return(0,cd.jsx)("div",{className:"Spinner",children:(0,cd.jsx)("svg",{viewBox:"0 0 100 100",style:{width:t,height:t,"--spinner-delay":o?`${n}ms`:0},children:(0,cd.jsx)("circle",{cx:"50",cy:"50",r:50-e/2,strokeWidth:e,fill:"none",strokeMiterlimit:"10"})})})},Ot=r4;h();function ox(t){var e,o,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e<t.length;e++)t[e]&&(o=ox(t[e]))&&(r&&(r+=" "),r+=o);else for(e in t)t[e]&&(r&&(r+=" "),r+=e);return r}function B(){for(var t=0,e,o,r="";t<arguments.length;)(e=arguments[t++])&&(o=ox(e))&&(r&&(r+=" "),r+=o);return r}var la=v(T(),1),md=({delay:t,theme:e})=>{let[o,r]=(0,dd.useState)(!!t);return(0,dd.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{r(!1)},t);return()=>clearTimeout(n)},[t]),o?null:(0,la.jsxs)("div",{className:B("LoadingMessage",{"LoadingMessage--dark":e===xe.DARK}),children:[(0,la.jsx)("div",{children:(0,la.jsx)(Ot,{})}),(0,la.jsx)("div",{className:"LoadingMessage-text",children:g("labels.loadingScene")})]})};var nx=v(T(),1),rx=t=>{let[e,o]=(0,pd.useState)(!0);return(0,pd.useEffect)(()=>{let r=async()=>{await ld(n),o(!1)},n=aa.find(i=>i.code===t.langCode)||xr;r()},[t.langCode]),e?(0,nx.jsx)(md,{theme:t.theme}):t.children};h();var St=v(H(),1),_p=v(vr(),1);h();h();h();var er=v(H(),1);var Do=v(T(),1),se=er.default.forwardRef((t,e)=>{let{id:o}=_t(),r=er.default.useRef(null);er.default.useImperativeHandle(e,()=>r.current);let n=`ToolIcon_size_${t.size}`,[i,a]=(0,er.useState)(!1),l=(0,er.useRef)(!0),s=async m=>{let c="onClick"in t&&t.onClick?.(m);if($i(c))try{a(!0),await c}catch(u){if(u instanceof Wi)console.warn(u);else throw u}finally{l.current&&a(!1)}};(0,er.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let d=(0,er.useRef)(null);if(t.type==="button"||t.type==="icon"||t.type==="submit"){let m=t.type==="icon"?"button":t.type;return(0,Do.jsxs)("button",{className:B("ToolIcon_type_button",n,t.className,t.visible&&!t.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!t.hidden,"ToolIcon--selected":t.selected,"ToolIcon--plain":t.type==="icon"}),style:t.style,"data-testid":t["data-testid"],hidden:t.hidden,title:t.title,"aria-label":t["aria-label"],type:m,onClick:s,ref:r,disabled:i||t.isLoading||!!t.disabled,children:[(t.icon||t.label)&&(0,Do.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!t.disabled,children:[t.icon||t.label,t.keyBindingLabel&&(0,Do.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel}),t.isLoading&&(0,Do.jsx)(Ot,{})]}),t.showAriaLabel&&(0,Do.jsxs)("div",{className:"ToolIcon__label",children:[t["aria-label"]," ",i&&(0,Do.jsx)(Ot,{})]}),t.children]})}return(0,Do.jsxs)("label",{className:B("ToolIcon",t.className),title:t.title,onPointerDown:m=>{d.current=m.pointerType||null,t.onPointerDown?.({pointerType:m.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{d.current=null})},children:[(0,Do.jsx)("input",{className:`ToolIcon_type_radio ${n}`,type:"radio",name:t.name,"aria-label":t["aria-label"],"aria-keyshortcuts":t["aria-keyshortcuts"],"data-testid":t["data-testid"],id:`${o}-${t.id}`,onChange:()=>{t.onChange?.({pointerType:d.current})},checked:t.checked,ref:r}),(0,Do.jsxs)("div",{className:"ToolIcon__icon",children:[t.icon,t.keyBindingLabel&&(0,Do.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel})]})]})});se.defaultProps={visible:!0,className:"",size:"medium"};se.displayName="ToolButton";h();var oo=v(H(),1);var p=v(T(),1),tr=t=>"var(--icon-fill-color)",ax=t=>t===xe.LIGHT?At.white:"#1e1e1e",P=(t,e=512)=>{let{width:o=512,height:r=o,mirror:n,style:i,...a}=typeof e=="number"?{width:e}:e;return(0,p.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${o} ${r}`,className:B({"rtl-mirror":n}),style:i,...a,children:typeof t=="string"?(0,p.jsx)("path",{fill:"currentColor",d:t}):t})},q={width:24,height:24,fill:"none",strokeWidth:2,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},ue={width:20,height:20,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},q8=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,p.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,p.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,p.jsx)("path",{d:"M7.5 8a2.5 2.5 0 0 1 0 -5a4.8 8 0 0 1 4.5 5a4.8 8 0 0 1 4.5 -5a2.5 2.5 0 0 1 0 5"})]}),q),ud=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,p.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),q),lx=P((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),q),sx=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),q),cx=P((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,p.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,p.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),q),ii=P((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,p.jsx)("path",{stroke:"none",d:"M6.399 9.561V5.175c0-.93.401-1.823 1.116-2.48a3.981 3.981 0 0 1 2.693-1.028c1.01 0 1.98.37 2.694 1.027.715.658 1.116 1.55 1.116 2.481",fill:"#fff"})}),(0,p.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,p.jsx)("path",{stroke:"none",d:"M5.149 9.561v1.25h2.5v-1.25h-2.5Zm5.06-7.894V.417v1.25Zm2.559 3.508v1.25h2.5v-1.25h-2.5ZM7.648 8.51V5.175h-2.5V8.51h2.5Zm0-3.334c0-.564.243-1.128.713-1.561L6.668 1.775c-.959.883-1.52 2.104-1.52 3.4h2.5Zm.713-1.561a2.732 2.732 0 0 1 1.847-.697v-2.5c-1.31 0-2.585.478-3.54 1.358L8.36 3.614Zm1.847-.697c.71 0 1.374.26 1.847.697l1.694-1.839a5.231 5.231 0 0 0-3.54-1.358v2.5Zm1.847.697c.47.433.713.997.713 1.561h2.5c0-1.296-.56-2.517-1.52-3.4l-1.693 1.839Z",fill:"currentColor"})})]}),ue),sa=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,p.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z"}),(0,p.jsx)("path",{d:"M6.667 8.333V5.417C6.667 3.806 8.159 2.5 10 2.5c1.841 0 3.333 1.306 3.333 2.917v2.916"})]}),ue),dx=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M38.5 83.5c-14-2-17.833-10.473-21-22.5C14.333 48.984 12 22 12 12.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M12.005 10.478c1.92 3.495 3.838 7 7.905 14.423m-7.905-14.423c3.11 5.683 6.23 11.368 7.905 14.423m0 0c-3.68.226-7.35.455-13.91.85m13.91-.85c-5.279.33-10.566.647-13.91.85m0 0c1.936-4.931 3.882-9.86 6.005-15.273M6 25.75c2.069-5.257 4.135-10.505 6.005-15.272",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:41,height:94,fill:"none"}),mx=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M18.026 1.232c-5.268 13.125-5.548 33.555 3.285 42.311 8.823 8.75 33.31 12.304 42.422 13.523",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m72.181 59.247-13.058-10-2.948 13.62 16.006-3.62Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M72.181 59.247c-3.163-2.429-6.337-4.856-13.058-10m13.058 10c-5.145-3.936-10.292-7.882-13.058-10m0 0c-.78 3.603-1.563 7.196-2.948 13.62m2.948-13.62c-1.126 5.168-2.24 10.346-2.948 13.62m0 0c5.168-1.166 10.334-2.343 16.006-3.62m-16.006 3.62c5.51-1.248 11.01-2.495 16.006-3.62",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:85,height:71,fill:"none"}),px=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M1 77c14-2 31.833-11.973 35-24 3.167-12.016-6-35-9.5-43.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m24.165 1.093-2.132 16.309 13.27-4.258-11.138-12.05Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M24.165 1.093c-.522 3.953-1.037 7.916-2.132 16.309m2.131-16.309c-.835 6.424-1.68 12.854-2.13 16.308m0 0c3.51-1.125 7.013-2.243 13.27-4.257m-13.27 4.257c5.038-1.608 10.08-3.232 13.27-4.257m0 0c-3.595-3.892-7.197-7.777-11.14-12.05m11.14 12.05c-3.837-4.148-7.667-8.287-11.14-12.05",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:38,height:78,fill:"none"}),J8=P((0,p.jsx)("g",{fill:"currentColor",children:(0,p.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),{width:40,height:40,fill:"none"}),ux=P((0,p.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M6 6l4.153 11.793a0.365 .365 0 0 0 .331 .207a0.366 .366 0 0 0 .332 -.207l2.184 -4.793l4.787 -1.994a0.355 .355 0 0 0 .213 -.323a0.355 .355 0 0 0 -.213 -.323l-11.787 -4.36z"}),(0,p.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),fx=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),q),hx=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.5 20.4l-6.9 -6.9c-.781 -.781 -.781 -2.219 0 -3l6.9 -6.9c.781 -.781 2.219 -.781 3 0l6.9 6.9c.781 .781 .781 2.219 0 3l-6.9 6.9c-.781 .781 -2.219 .781 -3 0z"})]}),q),gx=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),q),bx=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),q),xx=P((0,p.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),ue),vx=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,p.jsx)("path",{d:"M16 7h4"}),(0,p.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),q),ca=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{clipRule:"evenodd",d:"m7.643 15.69 7.774-7.773a2.357 2.357 0 1 0-3.334-3.334L4.31 12.357a3.333 3.333 0 0 0-.977 2.357v1.953h1.953c.884 0 1.732-.352 2.357-.977Z"}),(0,p.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),ue),yx=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,p.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,p.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,p.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,p.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),q),Ex=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M12.5 6.667h.01"}),(0,p.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z"}),(0,p.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,p.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),ue),wx=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M19 20h-10.5l-4.21 -4.3a1 1 0 0 1 0 -1.41l10 -10a1 1 0 0 1 1.41 0l5 5a1 1 0 0 1 0 1.41l-9.2 9.3"}),(0,p.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),q),zu=P((0,p.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),ue),Bu=P((0,p.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),ue),Cx=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"}),(0,p.jsx)("path",{d:"M3.268 12.043a7.017 7.017 0 0 0 6.634 4.957a7.012 7.012 0 0 0 7.043 -6.131a7 7 0 0 0 -5.314 -7.672a7.021 7.021 0 0 0 -8.241 4.403"}),(0,p.jsx)("path",{d:"M3 4v4h4"})]}),q),or=P((0,p.jsx)("path",{strokeWidth:"1.25",d:"M3.333 5.833h13.334M8.333 9.167v5M11.667 9.167v5M4.167 5.833l.833 10c0 .92.746 1.667 1.667 1.667h6.666c.92 0 1.667-.746 1.667-1.667l.833-10M7.5 5.833v-2.5c0-.46.373-.833.833-.833h3.334c.46 0 .833.373.833.833v2.5"}),ue),Sx=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,p.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),ue),Wl=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M14.375 6.458H8.958a2.5 2.5 0 0 0-2.5 2.5v5.417a2.5 2.5 0 0 0 2.5 2.5h5.417a2.5 2.5 0 0 0 2.5-2.5V8.958a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,p.jsx)("path",{clipRule:"evenodd",d:"M11.667 3.125c.517 0 .986.21 1.325.55.34.338.55.807.55 1.325v1.458H8.333c-.485 0-.927.185-1.26.487-.343.312-.57.75-.609 1.24l-.005 5.357H5a1.87 1.87 0 0 1-1.326-.55 1.87 1.87 0 0 1-.549-1.325V5c0-.518.21-.987.55-1.326.338-.34.807-.549 1.325-.549h6.667Z"})]}),ue),Gl=P((0,p.jsx)("path",{clipRule:"evenodd",d:"M10 2.5h.328a6.25 6.25 0 0 0 6.6 10.372A7.5 7.5 0 1 1 10 2.493V2.5Z",stroke:"currentColor"}),ue),Vl=P((0,p.jsx)("g",{stroke:"currentColor",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M10 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM10 4.167V2.5M14.167 5.833l1.166-1.166M15.833 10H17.5M14.167 14.167l1.166 1.166M10 15.833V17.5M5.833 14.167l-1.166 1.166M5 10H3.333M5.833 5.833 4.667 4.667"})}),{...ue,strokeWidth:1.5}),fd=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),q),ai=P((0,p.jsx)("path",{strokeWidth:"1.25",d:"M3.333 14.167v1.666c0 .92.747 1.667 1.667 1.667h10c.92 0 1.667-.746 1.667-1.667v-1.666M5.833 9.167 10 13.333l4.167-4.166M10 3.333v10"}),ue),da=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),q),Tx=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),q),$u=P((0,p.jsx)("path",{strokeWidth:"1.25",d:"M9.167 5.833H5.833c-1.254 0-2.5 1.282-2.5 2.5v5.834c0 1.283 1.252 2.5 2.5 2.5h5.834c1.251 0 2.5-1.25 2.5-2.5v-3.334M8.333 11.667l8.334-8.334M12.5 3.333h4.167V7.5"}),ue),hd=P((0,p.jsx)("path",{d:"M7.5 15.833c-3.583 1.167-3.583-2.083-5-2.5m10 4.167v-2.917c0-.833.083-1.166-.417-1.666 2.334-.25 4.584-1.167 4.584-5a3.833 3.833 0 0 0-1.084-2.667 3.5 3.5 0 0 0-.083-2.667s-.917-.25-2.917 1.084a10.25 10.25 0 0 0-5.166 0C5.417 2.333 4.5 2.583 4.5 2.583a3.5 3.5 0 0 0-.083 2.667 3.833 3.833 0 0 0-1.084 2.667c0 3.833 2.25 4.75 4.584 5-.5.5-.5 1-.417 1.666V17.5",strokeWidth:"1.25"}),ue),kx=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M7.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM12.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM6.25 6.25c2.917-.833 4.583-.833 7.5 0M5.833 13.75c2.917.833 5.417.833 8.334 0"}),(0,p.jsx)("path",{d:"M12.917 14.167c0 .833 1.25 2.5 1.666 2.5 1.25 0 2.361-1.39 2.917-2.5.556-1.39.417-4.861-1.25-9.584-1.214-.846-2.5-1.116-3.75-1.25l-.833 2.084M7.083 14.167c0 .833-1.13 2.5-1.526 2.5-1.191 0-2.249-1.39-2.778-2.5-.529-1.39-.397-4.861 1.19-9.584 1.157-.846 2.318-1.116 3.531-1.25l.833 2.084"})]}),ue),Ix=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,p.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),q),Ax=P((0,p.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Kl=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M8.333 11.667a2.917 2.917 0 0 0 4.167 0l3.333-3.334a2.946 2.946 0 1 0-4.166-4.166l-.417.416"}),(0,p.jsx)("path",{d:"M11.667 8.333a2.917 2.917 0 0 0-4.167 0l-3.333 3.334a2.946 2.946 0 0 0 4.166 4.166l.417-.416"})]}),ue),Mx=P("M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z",{width:448,height:512}),_x=P("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}),ma=P((0,p.jsx)("path",{d:"m9.257 6.351.183.183H15.819c.34 0 .727.182 1.051.506.323.323.505.708.505 1.05v5.819c0 .316-.183.7-.52 1.035-.337.338-.723.522-1.037.522H4.182c-.352 0-.74-.181-1.058-.5-.318-.318-.499-.705-.499-1.057V5.182c0-.351.181-.736.5-1.054.32-.321.71-.503 1.057-.503H6.53l2.726 2.726Z",strokeWidth:"1.25"}),ue),Q8=P("M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z",{width:384,height:512}),Lx=P("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"),gd=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z"}),(0,p.jsx)("path",{d:"M13.737 9.737c2.299 -2.3 3.23 -5.095 2.081 -6.245c-1.15 -1.15 -3.945 -.217 -6.244 2.082c-2.3 2.299 -3.231 5.095 -2.082 6.244c1.15 1.15 3.946 .218 6.245 -2.081z"}),(0,p.jsx)("path",{d:"M7.492 11.818c.362 .362 .768 .676 1.208 .934l6.895 4.047c1.078 .557 2.255 -.075 3.692 -1.512c1.437 -1.437 2.07 -2.614 1.512 -3.692c-.372 -.718 -1.72 -3.017 -4.047 -6.895a6.015 6.015 0 0 0 -.934 -1.208"})]}),q),bd=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 8h.01"}),(0,p.jsx)("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),(0,p.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,p.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,p.jsx)("path",{d:"M19 16v6"}),(0,p.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),q),Px=P("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}),e7=P("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}),t7=P("M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",{width:448,height:512}),Rx=P("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"),o7=P("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"),Hu=P((0,p.jsx)("path",{d:"M7.5 10.833 4.167 7.5 7.5 4.167M4.167 7.5h9.166a3.333 3.333 0 0 1 0 6.667H12.5",strokeWidth:"1.25"}),ue),Uu=P((0,p.jsx)("path",{d:"M12.5 10.833 15.833 7.5 12.5 4.167M15.833 7.5H6.667a3.333 3.333 0 1 0 0 6.667H7.5",strokeWidth:"1.25"}),ue),Dx=P("M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z",{mirror:!0}),Nx=P((0,p.jsx)("path",{d:"M5 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 17.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM7.25 8.917l5.5-2.834M7.25 11.083l5.5 2.834",strokeWidth:"1.5"}),ue),r7=P("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"),n7=P("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}),i7=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 9h-1a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-8a2 2 0 0 0 -2 -2h-1"}),(0,p.jsx)("path",{d:"M12 14v-11"}),(0,p.jsx)("path",{d:"M9 6l3 -3l3 3"})]}),q),a7=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{fill:"currentColor",d:"M40 5.6v6.1l-4.1.7c-8.9 1.4-16.5 6.9-20.6 15C13 32 10.9 43 12.4 43c.4 0 2.4-1.3 4.4-3 5-3.9 12.1-7 18.2-7.7l5-.6v12.8l11.2-11.3L62.5 22 51.2 10.8 40-.5v6.1zm10.2 22.6L44 34.5v-6.8l-6.9.6c-3.9.3-9.8 1.7-13.2 3.1-3.5 1.4-6.5 2.4-6.7 2.2-.9-1 3-7.5 6.4-10.8C28 18.6 34.4 16 40.1 16c3.7 0 3.9-.1 3.9-3.2V9.5l6.2 6.3 6.3 6.2-6.3 6.2z"}),(0,p.jsx)("path",{stroke:"currentColor",fill:"currentColor",d:"M0 36v20h48v-6.2c0-6 0-6.1-2-4.3-1.1 1-2 2.9-2 4.2V52H4V34c0-17.3-.1-18-2-18s-2 .7-2 20z"})]}),{width:64,height:64}),l7=P((0,p.jsx)("path",{stroke:"currentColor",strokeWidth:"40",fill:"currentColor",d:"M148 560a318 318 0 0 0 522 110 316 316 0 0 0 0-450 316 316 0 0 0-450 0c-11 11-21 22-30 34v4h47c25 0 46 21 46 46s-21 45-46 45H90c-13 0-25-6-33-14-9-9-14-20-14-33V156c0-25 20-45 45-45s45 20 45 45v32l1 1a401 401 0 0 1 623 509l212 212a42 42 0 0 1-59 59L698 757A401 401 0 0 1 65 570a42 42 0 0 1 83-10z"}),{width:1024}),Ox=(0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 10l0 10"}),(0,p.jsx)("path",{d:"M12 10l4 4"}),(0,p.jsx)("path",{d:"M12 10l-4 4"}),(0,p.jsx)("path",{d:"M4 4l16 0"})]}),Fx=(0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 5l0 14"}),(0,p.jsx)("path",{d:"M16 9l-4 -4"}),(0,p.jsx)("path",{d:"M8 9l4 -4"})]}),Wu=P(Fx,q),Gu=P(Fx,{...q,style:{transform:"rotate(180deg)"}}),Vu=P(Ox,q),Ku=P(Ox,{...q,style:{transform:"rotate(180deg)"}}),Yu=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v7.083c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V8.125c0-.92-.746-1.667-1.666-1.667ZM6.875 6.458h-.417c-.92 0-1.666.747-1.666 1.667v3.75c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667v-3.75c0-.92-.747-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),Zu=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M6.875 3.125h-.417c-.92 0-1.666.746-1.666 1.667v7.083c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667V4.792c0-.92-.747-1.667-1.667-1.667ZM13.542 5.817h-.417c-.92 0-1.667.747-1.667 1.667v4.391c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V7.484c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),Xu=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M15.208 4.792H8.125c-.92 0-1.667.746-1.667 1.666v.417c0 .92.747 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM12.516 11.458H8.125c-.92 0-1.667.746-1.667 1.667v.417c0 .92.747 1.666 1.667 1.666h4.391c.92 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),ju=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M11.875 4.792H4.792c-.92 0-1.667.746-1.667 1.666v.417c0 .92.746 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM11.683 11.458H7.292c-.92 0-1.667.746-1.667 1.667v.417c0 .92.746 1.666 1.667 1.666h4.39c.921 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),zx=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M14.375 10.208v-.416c0-.92-.746-1.667-1.667-1.667H7.292c-.92 0-1.667.746-1.667 1.667v.416c0 .92.746 1.667 1.667 1.667h5.416c.92 0 1.667-.746 1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),Bx=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10.208 5.625h-.416c-.92 0-1.667.746-1.667 1.667v5.416c0 .92.746 1.667 1.667 1.667h.416c.92 0 1.667-.746 1.667-1.667V7.292c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),qu=P((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M6.875 4.792h-.417c-.92 0-1.666.746-1.666 1.666v7.084c0 .92.746 1.666 1.666 1.666h.417c.92 0 1.667-.746 1.667-1.666V6.458c0-.92-.747-1.666-1.667-1.666ZM13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v3.75c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667v-3.75c0-.92-.746-1.667-1.666-1.667Z"})]}),ue),Ju=P((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M4.792 13.125v.417c0 .92.746 1.666 1.666 1.666h7.084c.92 0 1.666-.746 1.666-1.666v-.417c0-.92-.746-1.667-1.666-1.667H6.458c-.92 0-1.666.746-1.666 1.667ZM6.458 6.458v.417c0 .92.747 1.667 1.667 1.667h3.75c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666h-3.75c-.92 0-1.667.746-1.667 1.666Z"})]}),ue),xd=P((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,p.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,p.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,p.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),q),s7=P("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"),c7=P("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"),No=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),d7=P("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}),m7=P("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}),p7=P("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}),Qu=oo.default.memo(({theme:t})=>P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:tr(t)}),(0,p.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:tr(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:tr(t)}),(0,p.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:tr(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ax(t),stroke:tr(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),ef=oo.default.memo(({theme:t})=>P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:tr(t)}),(0,p.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:tr(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:tr(t)}),(0,p.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:tr(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ax(t),stroke:tr(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),$x=P((0,p.jsx)("g",{strokeWidth:1.25,children:(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.27 3.27 0 0 1 3.254 3.254v8.242a3.27 3.27 0 0 1-3.254 3.254H5.88a3.27 3.27 0 0 1-3.254-3.254V5.88A3.27 3.27 0 0 1 5.88 2.626l-.001-.001ZM4.518 16.118l7.608-12.83m.198 13.934 5.051-9.897M2.778 9.675l9.348-6.387m-7.608 12.83 12.857-8.793"})}),ue),Hx=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"1.25"})}),(0,p.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,p.jsx)("path",{d:"M2.258 15.156 15.156 2.258M7.324 20.222 20.222 7.325m-20.444 5.35L12.675-.222m-8.157 18.34L17.416 5.22",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),ue),Ux=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",children:[(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,p.jsx)("path",{d:"M2.426 15.044 15.044 2.426M7.383 20 20 7.383M0 12.617 12.617 0m-7.98 17.941L17.256 5.324m-2.211 12.25L2.426 4.956M20 12.617 7.383 0m5.234 20L0 7.383m17.941 7.98L5.324 2.745",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,p.jsx)("path",{d:"M14.121 2H5.88A3.879 3.879 0 0 0 2 5.879v8.242A3.879 3.879 0 0 0 5.879 18h8.242A3.879 3.879 0 0 0 18 14.121V5.88A3.879 3.879 0 0 0 14.121 2Z",fill:"currentColor"})})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),Wx=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z",stroke:"currentColor",strokeWidth:"1.25"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...ue,fill:"currentColor"}),tf=P((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),ue),Gx=P((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),ue),Vx=P((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),ue),u7=oo.default.memo(({theme:t})=>P((0,p.jsx)("path",{d:"M6 10H34",stroke:tr(t),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),Kx=P((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12h2"}),(0,p.jsx)("path",{d:"M17 12h2"}),(0,p.jsx)("path",{d:"M11 12h2"})]}),q),Yx=P((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M8 12v.01"}),(0,p.jsx)("path",{d:"M12 12v.01"}),(0,p.jsx)("path",{d:"M16 12v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"})]}),q),Zx=P((0,p.jsx)("path",{d:"M2.5 12.038c1.655-.885 5.9-3.292 8.568-4.354 2.668-1.063.101 2.821 1.32 3.104 1.218.283 5.112-1.814 5.112-1.814",strokeWidth:"1.25"}),ue),Xx=P((0,p.jsx)("path",{d:"M2.5 12.563c1.655-.886 5.9-3.293 8.568-4.355 2.668-1.062.101 2.822 1.32 3.105 1.218.283 5.112-1.814 5.112-1.814m-13.469 2.23c2.963-1.586 6.13-5.62 7.468-4.998 1.338.623-1.153 4.11-.132 5.595 1.02 1.487 6.133-1.43 6.133-1.43",strokeWidth:"1.25"}),ue),jx=P((0,p.jsx)("path",{d:"M2.5 11.936c1.737-.879 8.627-5.346 10.42-5.268 1.795.078-.418 5.138.345 5.736.763.598 3.53-1.789 4.235-2.147M2.929 9.788c1.164-.519 5.47-3.28 6.987-3.114 1.519.165 1 3.827 2.121 4.109 1.122.281 3.839-2.016 4.606-2.42",strokeWidth:"1.25"}),ue),qx=P((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{d:"M3.33334 9.99998V6.66665C3.33334 6.04326 3.33403 4.9332 3.33539 3.33646C4.95233 3.33436 6.06276 3.33331 6.66668 3.33331H10"}),(0,p.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,p.jsx)("path",{d:"M16.6667 10V10.01"}),(0,p.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),ue),Jx=P((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,p.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,p.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,p.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,p.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,p.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,p.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,p.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),q),Qx=P((0,p.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),ev=oo.default.memo(({flip:t=!1})=>P((0,p.jsxs)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,p.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,p.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),of=oo.default.memo(({flip:t=!1})=>P((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),tv=oo.default.memo(({flip:t=!1})=>P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M26 10L6 10"}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),ov=oo.default.memo(({flip:t=!1})=>P((0,p.jsx)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",children:(0,p.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),rv=oo.default.memo(({flip:t=!1})=>P((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),nv=oo.default.memo(({flip:t=!1})=>P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M6,9.5H27"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),iv=oo.default.memo(({flip:t=!1})=>P((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),av=oo.default.memo(({flip:t=!1})=>P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),lv=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M14.167 6.667a3.333 3.333 0 0 0-3.334-3.334H9.167a3.333 3.333 0 0 0 0 6.667h1.666a3.333 3.333 0 0 1 0 6.667H9.167a3.333 3.333 0 0 1-3.334-3.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),sv=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),cv=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),dv=P((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("path",{d:"m1.667 3.333 6.666 13.334M8.333 3.333 1.667 16.667M11.667 3.333v13.334h6.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),ue),rf=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 7v-2h13v2"}),(0,p.jsx)("path",{d:"M10 5v14"}),(0,p.jsx)("path",{d:"M12 19h-4"}),(0,p.jsx)("path",{d:"M15 13v-1h6v1"}),(0,p.jsx)("path",{d:"M18 12v7"}),(0,p.jsx)("path",{d:"M17 19h2"})]}),q),mv=P((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M5.833 16.667v-10a3.333 3.333 0 0 1 3.334-3.334h1.666a3.333 3.333 0 0 1 3.334 3.334v10M5.833 10.833h8.334"})})}),ue),pv=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M5.833 6.667 2.5 10l3.333 3.333M14.167 6.667 17.5 10l-3.333 3.333M11.667 3.333 8.333 16.667"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),ue),uv=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),q),fv=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,p.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),q),hv=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),q),gv=oo.default.memo(({theme:t})=>P((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,p.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),q)),bv=oo.default.memo(({theme:t})=>P((0,p.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,p.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),q)),xv=oo.default.memo(({theme:t})=>P((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),q)),vv=P((0,p.jsx)("path",{d:"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z",fill:"currentColor"}),{width:640,height:512}),f7=P((0,p.jsx)("path",{d:"M480 416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H150.6C133.7 480 117.4 473.3 105.4 461.3L25.37 381.3C.3786 356.3 .3786 315.7 25.37 290.7L258.7 57.37C283.7 32.38 324.3 32.38 349.3 57.37L486.6 194.7C511.6 219.7 511.6 260.3 486.6 285.3L355.9 416H480zM265.4 416L332.7 348.7L195.3 211.3L70.63 336L150.6 416L265.4 416z"})),vd=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,p.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.jsx)("path",{d:"M17 7.5a1.5 1.5 0 0 1 3 0v8.5a6 6 0 0 1 -6 6h-2h.208a6 6 0 0 1 -5.012 -2.7a69.74 69.74 0 0 1 -.196 -.3c-.312 -.479 -1.407 -2.388 -3.286 -5.728a1.5 1.5 0 0 1 .536 -2.022a1.867 1.867 0 0 1 2.28 .28l1.47 1.47"})]}),q),nf=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,p.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,p.jsx)("path",{d:"M12 4l0 12"})]}),q),yd=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"}),(0,p.jsx)("path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"})]}),q),yv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M9.15 14.85l8.85 -10.85"}),(0,p.jsx)("path",{d:"M6 4l8.85 10.85"})]}),q),Ev=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,p.jsx)("path",{d:"M12 17l0 .01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),q),h7=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 4v16l13 -8z"})]}),q),g7=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M17 4h-10a3 3 0 0 0 -3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3 -3v-10a3 3 0 0 0 -3 -3z",strokeWidth:"0",fill:"currentColor"})]}),q),b7=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),q),wv=P((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.24 3.957l-8.422 14.06a1.989 1.989 0 0 0 1.7 2.983h16.845a1.989 1.989 0 0 0 1.7 -2.983l-8.423 -14.06a1.989 1.989 0 0 0 -3.4 0z"}),(0,p.jsx)("path",{d:"M12 9v4"}),(0,p.jsx)("path",{d:"M12 17h.01"})]}),q),Cv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11 7l6 6"}),(0,p.jsx)("path",{d:"M4 16l11.7 -11.7a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4l-11.7 11.7h-4v-4z"})]}),q),Sv=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"})]}),q),Ed=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 7l16 0"}),(0,p.jsx)("path",{d:"M4 17l16 0"}),(0,p.jsx)("path",{d:"M7 4l0 16"}),(0,p.jsx)("path",{d:"M17 4l0 16"})]}),q),wd=P((0,p.jsx)("path",{fill:"currentColor",d:"M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z"})),pa=P((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,p.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,p.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),ue),Cd=P((0,p.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,p.jsx)("path",{clipRule:"evenodd",d:"m9.644 13.69 7.774-7.773a2.357 2.357 0 0 0-3.334-3.334l-7.773 7.774L8 12l1.643 1.69Z"}),(0,p.jsx)("path",{d:"m13.25 3.417 3.333 3.333M10 10l2-2M5 15l3-3M2.156 17.894l1-1M5.453 19.029l-.144-1.407M2.377 11.887l.866 1.118M8.354 17.273l-1.194-.758M.953 14.652l1.408.13"})]}),20),ua=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,p.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),q),x7=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,p.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),q),Yl=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,p.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,p.jsx)("path",{d:"M6 7.63c-1.391 -.236 -2.787 .395 -3.534 1.689a3.474 3.474 0 0 0 1.271 4.745l4.263 2.514l6 -3.348"}),(0,p.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,p.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,p.jsx)("path",{d:"M18 16.302c1.391 .236 2.787 -.395 3.534 -1.689a3.474 3.474 0 0 0 -1.271 -4.745l-4.308 -2.514l-5.955 3.42"})]}),q),Tv=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,p.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,p.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,p.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),q),fa=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,p.jsx)("path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6"})]}),q),kv=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,p.jsx)("path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87"}),(0,p.jsx)("path",{d:"M3 3l18 18"})]}),q),Iv=P((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,p.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),q),Av=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,p.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),q),Sd=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"})]}),q),Mv=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20.984 12.53a9 9 0 1 0 -7.552 8.355"}),(0,p.jsx)("path",{d:"M12 7v5l3 3"}),(0,p.jsx)("path",{d:"M19 16l-2 3h4l-2 3"})]}),q),_v=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M9 2m0 3a3 3 0 0 1 3 -3h0a3 3 0 0 1 3 3v5a3 3 0 0 1 -3 3h0a3 3 0 0 1 -3 -3z"}),(0,p.jsx)("path",{d:"M5 10a7 7 0 0 0 14 0"}),(0,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),q),Lv=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 3l18 18"}),(0,p.jsx)("path",{d:"M9 5a3 3 0 0 1 6 0v5a3 3 0 0 1 -.13 .874m-2 2a3 3 0 0 1 -3.87 -2.872v-1"}),(0,p.jsx)("path",{d:"M5 10a7 7 0 0 0 10.846 5.85m2 -2a6.967 6.967 0 0 0 1.152 -3.85"}),(0,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),q),Td=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"})]}),q),Pv=P((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 8m0 1a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z"}),(0,p.jsx)("path",{d:"M12 20v.01"}),(0,p.jsx)("path",{d:"M16 20v.01"}),(0,p.jsx)("path",{d:"M8 20v.01"}),(0,p.jsx)("path",{d:"M4 20v.01"}),(0,p.jsx)("path",{d:"M4 16v.01"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M4 8v.01"}),(0,p.jsx)("path",{d:"M4 4v.01"}),(0,p.jsx)("path",{d:"M8 4v.01"}),(0,p.jsx)("path",{d:"M12 4v.01"}),(0,p.jsx)("path",{d:"M16 4v.01"}),(0,p.jsx)("path",{d:"M20 4v.01"}),(0,p.jsx)("path",{d:"M20 8v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"}),(0,p.jsx)("path",{d:"M20 16v.01"}),(0,p.jsx)("path",{d:"M20 20v.01"})]}),q),Rv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 3v18"}),(0,p.jsx)("path",{d:"M19 21v-18"}),(0,p.jsx)("path",{d:"M5 7h14"}),(0,p.jsx)("path",{d:"M5 15h14"}),(0,p.jsx)("path",{d:"M8 13v4"}),(0,p.jsx)("path",{d:"M11 13v4"}),(0,p.jsx)("path",{d:"M16 13v4"}),(0,p.jsx)("path",{d:"M14 5v4"}),(0,p.jsx)("path",{d:"M11 5v4"}),(0,p.jsx)("path",{d:"M8 5v4"}),(0,p.jsx)("path",{d:"M3 21h18"})]}),q),Dv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 12l18 0"}),(0,p.jsx)("path",{d:"M7 16l10 0l-10 5l0 -5"}),(0,p.jsx)("path",{d:"M7 8l10 0l-10 -5l0 5"})]}),q),Nv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l0 18"}),(0,p.jsx)("path",{d:"M16 7l0 10l5 0l-5 -10"}),(0,p.jsx)("path",{d:"M8 7l0 10l-5 0l5 -10"})]}),q),af=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z"}),(0,p.jsx)("path",{d:"M19 6h1a2 2 0 0 1 2 2a5 5 0 0 1 -5 5l-5 0v2"}),(0,p.jsx)("path",{d:"M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"})]}),q),kd=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 15m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"}),(0,p.jsx)("path",{d:"M22 22l-3 -3"}),(0,p.jsx)("path",{d:"M6 18h-1a2 2 0 0 1 -2 -2v-1"}),(0,p.jsx)("path",{d:"M3 11v-1"}),(0,p.jsx)("path",{d:"M3 6v-1a2 2 0 0 1 2 -2h1"}),(0,p.jsx)("path",{d:"M10 3h1"}),(0,p.jsx)("path",{d:"M15 3h1a2 2 0 0 1 2 2v1"})]}),q),Ov=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.jsx)("path",{d:"M4 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75"}),(0,p.jsx)("path",{d:"M10 15l2 6l2 -6"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"})]}),q),Fv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"}),(0,p.jsx)("path",{d:"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"}),(0,p.jsx)("path",{d:"M11 21v-6l3 6v-6"})]}),q),zv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 13v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a2 2 0 0 0 6 0v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a8 8 0 0 1 -16 0"}),(0,p.jsx)("path",{d:"M4 8l5 0"}),(0,p.jsx)("path",{d:"M15 8l4 0"})]}),q),Bv=P((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 14c.83 .642 2.077 1.017 3.5 1c1.423 .017 2.67 -.358 3.5 -1c.83 -.642 2.077 -1.017 3.5 -1c1.423 -.017 2.67 .358 3.5 1"}),(0,p.jsx)("path",{d:"M8 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M12 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M3 10h14v5a6 6 0 0 1 -6 6h-2a6 6 0 0 1 -6 -6v-5z"}),(0,p.jsx)("path",{d:"M16.746 16.726a3 3 0 1 0 .252 -5.555"})]}),q),$v=P((0,p.jsxs)("g",{stroke:"currentColor",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 5a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-16a1 1 0 0 1-1-1v-10zM7 20h10M9 16v4M15 16v4"})]}),{...q,strokeWidth:1.5}),v7=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M21 12h-13l3 -3"}),(0,p.jsx)("path",{d:"M11 15l-3 -3"})]}),q),Hv=P((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M2 8a4 4 0 0 1 4 -4h12a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-8z"}),(0,p.jsx)("path",{d:"M10 9l5 3l-5 3z"})]}),q),Uv=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 6h18"}),(0,p.jsx)("path",{d:"M3 12h18"}),(0,p.jsx)("path",{d:"M3 18h18"}),(0,p.jsx)("path",{d:"M6 3v18"}),(0,p.jsx)("path",{d:"M12 3v18"}),(0,p.jsx)("path",{d:"M18 3v18"})]}),q),Wv=P((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.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,p.jsx)("path",{d:"M17 5c-6.627 0 -12 5.373 -12 12"})]}),q);var Vv=v(T(),1),n4=(t,e)=>{let o=new Set(ye(t.filter(r=>Ee(r)),e).map(r=>r.id));return{elements:t.map(r=>e.selectedElementIds[r.id]?pe(r,{isDeleted:!0}):r.frameId&&o.has(r.frameId)?pe(r,{isDeleted:!0}):Mt(r)&&e.selectedElementIds[r.containerId]?pe(r,{isDeleted:!0}):r),appState:{...e,selectedElementIds:{},selectedGroupIds:{}}}},Gv=(t,e)=>{if(t.editingGroupId){let o=ut(we(e),t.editingGroupId);if(o.length)return{...t,selectedElementIds:{[o[0].id]:!0}}}return t},Zl=U({name:"deleteSelectedElements",label:"labels.delete",icon:or,trackEvent:{category:"element",action:"delete"},perform:(t,e,o,r)=>{if(e.editingLinearElement){let{elementId:a,selectedPointsIndices:l,startBindingElement:s,endBindingElement:d}=e.editingLinearElement,m=r.scene.getNonDeletedElementsMap(),c=he.getElement(a,m);if(!c||l==null)return!1;if(c.points.length<2){let f=t.map(x=>x.id===c.id?pe(x,{isDeleted:!0}):x),b=Gv(e,f);return{elements:f,appState:{...b,editingLinearElement:null},storeAction:D.CAPTURE}}let u={startBindingElement:l?.includes(0)?null:s,endBindingElement:l?.includes(c.points.length-1)?null:d};return he.deletePoints(c,l),{elements:t,appState:{...e,editingLinearElement:{...e.editingLinearElement,...u,selectedPointsIndices:l?.[0]>0?[l[0]-1]:[0]}},storeAction:D.CAPTURE}}let{elements:n,appState:i}=n4(t,e);return Cc(n,t.filter(({id:a})=>e.selectedElementIds[a])),i=Gv(i,n),{elements:n,appState:{...i,activeTool:it(e,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:ze(we(t),e)?D.CAPTURE:D.NONE}},keyTest:(t,e,o)=>(t.key===S.BACKSPACE||t.key===S.DELETE)&&!t[S.CTRL_OR_CMD],PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Vv.jsx)(se,{type:"button",icon:or,title:g("labels.delete"),"aria-label":g("labels.delete"),onClick:()=>o(null),visible:ze(we(t),e)})});h();h();var lf=(t,e)=>t.frameId===e||t.id===e,Yv=(t,e,o)=>{let r=[],n=[],i=null,a=-1,l=fe(o||ye(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++a<t.length;){let s=t[a];l.get(s.id)?(n.length&&(r=r.concat(n),n=[]),r.push(a),i=a+1):s.isDeleted&&i===a?(i=a+1,n.push(a)):n=[]}return r},i4=t=>{let e=0;return t.reduce((o,r,n)=>(n>0&&t[n-1]!==r-1&&(e=++e),(o[e]||(o[e]=[])).push(r),o),[])},Kv=(t,e,o)=>{if("containerId"in t&&t.containerId)if(o==="left"){let r=Ao.getScene(t).getElement(t.containerId);if(r)return e.indexOf(r)}else return e.indexOf(t);else{let r=t.boundElements?.find(n=>n.type!=="arrow")?.id;if(r){if(o==="left")return e.indexOf(t);let n=Ao.getScene(t).getElement(r);if(n)return e.indexOf(n)}}},a4=(t,e)=>{let o=-1,r=-1;return t.forEach((n,i)=>{lf(n,e)&&(o===-1&&(o=i),r=i)}),o===-1?[]:t.slice(o,r+1)},l4=(t,e,o,r,n)=>{let i=e[o],a=c=>c.isDeleted?!1:n?c.frameId===n:t.editingGroupId?c.groupIds.includes(t.editingGroupId):!0,l=r==="left"?jp(e,c=>a(c),Math.max(0,o-1)):Xp(e,c=>a(c),o+1),s=e[l];if(!s)return-1;if(t.editingGroupId){if(i?.groupIds.join("")===s?.groupIds.join(""))return Kv(s,e,r)??l;if(!s?.groupIds.includes(t.editingGroupId))return-1}if(!n&&(s.frameId||Ee(s))){let c=a4(e,s.frameId||s.id);return r==="left"?e.indexOf(c[0]):e.indexOf(c[c.length-1])}if(!s.groupIds.length)return Kv(s,e,r)??l;let d=t.editingGroupId?s.groupIds[s.groupIds.indexOf(t.editingGroupId)-1]:s.groupIds[s.groupIds.length-1],m=ut(e,d);return m.length?r==="left"?e.indexOf(m[0]):e.indexOf(m[m.length-1]):l},Zv=(t,e)=>e.reduce((o,r)=>{let n=t[r];return o.set(n.id,n),o},new Map),Xv=(t,e,o)=>{let r=Yv(t,e),n=Zv(t,r),i=i4(r);o==="right"&&(i=i.reverse());let a=new Set(r.filter(l=>Ee(t[l])).map(l=>t[l].id));return i.forEach((l,s)=>{let d=l[0],m=l[l.length-1],c=o==="left"?d:m,u=l.some(C=>{let w=t[C];return w.frameId&&a.has(w.frameId)})?null:t[c]?.frameId,f=l4(e,t,c,o,u);if(f===-1||c===f)return;let b=o==="left"?t.slice(0,f):t.slice(0,d),x=t.slice(d,m+1),y=o==="left"?t.slice(f,d):t.slice(m+1,f+1),k=o==="left"?t.slice(m+1):t.slice(f+1);t=o==="left"?[...b,...x,...y,...k]:[...b,...y,...x,...k]}),go(t,n),t},jv=(t,e,o,r,n)=>{let i=Yv(t,e,n),a=Zv(t,i),l=[],s,d;if(o==="left"){if(r)s=Xp(t,b=>lf(b,r));else if(e.editingGroupId){let b=ut(t,e.editingGroupId);if(!b.length)return t;s=t.indexOf(b[0])}else s=0;d=i[i.length-1]}else{if(r)d=jp(t,b=>lf(b,r));else if(e.editingGroupId){let b=ut(t,e.editingGroupId);if(!b.length)return t;d=t.indexOf(b[b.length-1])}else d=t.length-1;s=i[0]}s===-1&&(s=0);for(let b=s;b<d+1;b++)i.includes(b)||l.push(t[b]);let m=Array.from(a.values()),c=t.slice(0,s),u=t.slice(d+1),f=o==="left"?[...c,...m,...l,...u]:[...c,...l,...m,...u];return go(f,a),f};function qv(t,e,o,r){let n=fe(ye(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),i={regularElements:[],frameChildren:new Map},a=new Set;for(let d of t)n.has(d.id)&&Ee(d)&&a.add(d.id);for(let d of t)if(n.has(d.id))if(Ee(d)||d.frameId&&a.has(d.frameId))i.regularElements.push(d);else if(!d.frameId)i.regularElements.push(d);else{let m=i.frameChildren.get(d.frameId)||[];m.push(d),i.frameChildren.set(d.frameId,m)}let l=t,s=Array.from(i.frameChildren.entries());for(let[d,m]of s)l=r(t,e,o,d,m);return r(l,e,o,null,i.regularElements)}var Jv=(t,e)=>Xv(t,e,"left"),Qv=(t,e)=>Xv(t,e,"right"),e2=(t,e)=>qv(t,e,"left",jv),t2=(t,e)=>qv(t,e,"right",jv);var Xl=v(T(),1),sf=U({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:Gu,trackEvent:{category:"element"},perform:(t,e)=>({elements:Jv(t,e),appState:e,storeAction:D.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===ge.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Xl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendBackward")} \u2014 ${F("CtrlOrCmd+[")}`,children:Gu})}),cf=U({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:Wu,trackEvent:{category:"element"},perform:(t,e)=>({elements:Qv(t,e),appState:e,storeAction:D.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===ge.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Xl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.bringForward")} \u2014 ${F("CtrlOrCmd+]")}`,children:Wu})}),df=U({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:Ku,trackEvent:{category:"element"},perform:(t,e)=>({elements:e2(t,e),appState:e,storeAction:D.CAPTURE}),keyTest:t=>Xo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.BRACKET_LEFT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===ge.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Xl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendToBack")} \u2014 ${Xo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")}`,children:Ku})}),mf=U({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:Vu,trackEvent:{category:"element"},perform:(t,e)=>({elements:t2(t,e),appState:e,storeAction:D.CAPTURE}),keyTest:t=>Xo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.BRACKET_RIGHT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===ge.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Xl.jsx)("button",{type:"button",className:"zIndexButton",onClick:o=>t(null),title:`${g("labels.bringToFront")} \u2014 ${Xo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")}`,children:Vu})});h();var pf=U({name:"selectAll",label:"labels.selectAll",icon:Pv,trackEvent:{category:"canvas"},viewMode:!1,perform:(t,e,o,r)=>{if(e.editingLinearElement)return!1;let n=ra(t.filter(i=>!i.isDeleted&&!(oe(i)&&i.containerId)&&!i.locked)).reduce((i,a)=>(i[a.id]=!0,i),{});return{appState:{...e,...Nt({editingGroupId:null,selectedElementIds:n},we(t),e,r),selectedLinearElement:Object.keys(n).length===1&&_e(t[0])?new he(t[0]):null},storeAction:D.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.A});h();h();var s4=t=>{let e=t.slice(),o=new Set,r=i=>{let a=i[0]?.groupIds?.join(""),l=[i[0]],s=[];for(let d of i.slice(1))d.groupIds?.join("")===a?l.push(d):s.push(d);return s.length?[...l,...r(s)]:l},n=new Map;return e.forEach((i,a)=>{if(!n.has(i.id))if(i.groupIds?.length){let l=i.groupIds[i.groupIds.length-1],s=e.slice(a).filter(d=>{let m=d?.groupIds?.some(c=>c===l);return m&&n.set(d.id,!0),m});for(let d of r(s))o.add(d)}else o.add(i)}),o.size!==t.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),t):[...o]},c4=t=>{let e=Y1(t),o=t.slice(),r=new Set;return o.forEach((n,i)=>{n&&(n.boundElements?.length?(r.add(n),o[i]=null,n.boundElements.forEach(a=>{let l=e.get(a.id);l&&a.type==="text"&&(r.add(l[0]),o[l[1]]=null)})):n.type==="text"&&n.containerId&&e.get(n.containerId)?.[0].boundElements?.find(l=>l.id===n.id)||(r.add(n),o[i]=null))}),r.size!==t.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),t):[...r]},o2=t=>c4(s4(t));var r2=v(T(),1),uf=U({name:"duplicateSelection",label:"labels.duplicateSelection",icon:Wl,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getNonDeletedElementsMap();if(e.editingLinearElement){let i=he.duplicateSelectedPoints(e,n);return i?{elements:t,appState:i.appState,storeAction:D.CAPTURE}:!1}return{...d4(t,e),storeAction:D.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.D,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,r2.jsx)(se,{type:"button",icon:Wl,title:`${g("labels.duplicateSelection")} \u2014 ${F("CtrlOrCmd+D")}`,"aria-label":g("labels.duplicateSelection"),onClick:()=>o(null),visible:ze(we(t),e)})}),d4=(t,e)=>{let o=o2(t),r=new Map,n=[],i=[],a=new Map,l=new Map,s=C=>{let w=Dc(e.editingGroupId,r,C,{x:C.x+Pr/2,y:C.y+Pr/2});return l.set(w.id,w),a.set(C.id,w.id),i.push(C),n.push(w),w},d=fe(ye(o,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),m=new Map,c=C=>{for(let w of C)m.set(w.id,!0);return C},u=[],f=-1;for(;++f<o.length;){let C=o[f];if(m.get(C.id))continue;let w=ct(C,fe(t)),A=Ee(C);if(d.get(C.id)){if(C.groupIds.length||w||A){let z=Ab(e,C);if(z){let I=ut(o,z).flatMap(M=>Ee(M)?[...xn(t,M.id),M]:[M]);u.push(...c([...I,...I.map(M=>s(M))]));continue}if(w){u.push(...c([C,w,s(C),s(w)]));continue}if(A){let I=xn(o,C.id);u.push(...c([...I,C,...I.map(M=>s(M)),s(C)]));continue}}(!C.frameId||!d.has(C.frameId))&&u.push(...c([C,s(C)]))}else u.push(...c([C]))}let b=[],x=new Map;for(f=u.length;--f>=0;){let C=u[f];x.get(C.id)||(x.set(C.id,!0),b.push(C))}let y=go(b.reverse(),fe(n));Sc(u,i,a),wc(u,i,a),Vc(y,i,a);let k=ra(n);return{elements:y,appState:{...e,...Nt({editingGroupId:e.editingGroupId,selectedElementIds:k.reduce((C,w)=>(Mt(w)||(C[w.id]=!0),C),{})},we(y),e,null)}}};h();h();var m4=["ai","command_palette"],ve=(t,e,o,r)=>{try{if(typeof window>"u"||E.VITE_WORKER_ID||E.PROD||!m4.includes(t))return;E.PROD||console.info("trackEvent",{category:t,action:e,label:o,value:r}),window.sa_event&&window.sa_event(e,{category:t,label:o,value:r})}catch(n){console.error("error during analytics",n)}};h();var ha=v(T(),1),yr=t=>(0,ha.jsx)("div",{className:"buttonList buttonListIcon",children:t.options.map(e=>t.type==="button"?(0,ha.jsx)("button",{type:"button",onClick:o=>t.onClick(e.value,o),className:B({active:e.active??t.value===e.value}),"data-testid":e.testId,title:e.text,children:e.icon},e.text):(0,ha.jsxs)("label",{className:B({active:t.value===e.value}),title:e.text,children:[(0,ha.jsx)("input",{type:"radio",name:t.group,onChange:()=>t.onChange(e.value),checked:t.value===e.value,"data-testid":e.testId}),e.icon]},e.text))});h();h();var Id=v(T(),1),n2=({onChange:t,type:e,activeColor:o,topPicks:r})=>{let n;return e==="elementStroke"&&(n=Zs),e==="elementBackground"&&(n=Xs),e==="canvasBackground"&&(n=js),r&&(n=r),n?(0,Id.jsx)("div",{className:"color-picker__top-picks",children:n.map(i=>(0,Id.jsx)("button",{className:B("color-picker__button",{active:i===o,"is-transparent":i==="transparent"||!i}),style:{"--swatch-color":i},type:"button",title:i,onClick:()=>t(i),"data-testid":`color-top-pick-${i}`,children:(0,Id.jsx)("div",{className:"color-picker__button-outline"})},i))}):(console.error("Invalid type for TopPicks"),null)};h();var En=v(H(),1);h();var Ad=v(H(),1);h();var yn=({palette:t,color:e})=>{for(let[o,r]of Object.entries(t))if(Array.isArray(r)){let n=r.indexOf(e);if(n>-1)return{colorName:o,shade:n}}else if(r===e)return{colorName:o,shade:null};return null},jl=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),ff=({color:t,palette:e})=>!Object.values(e).flat().includes(t),a2=(t,e,o)=>{let r={elementBackground:"backgroundColor",elementStroke:"strokeColor"},n=t.filter(a=>{if(a.isDeleted)return!1;let l=a[r[e]];return ff({color:l,palette:o})}),i=new Map;return n.forEach(a=>{let l=a[r[e]];i.has(l)?i.set(l,i.get(l)+1):i.set(l,1)}),[...i.entries()].sort((a,l)=>l[1]-a[1]).map(a=>a[0]).slice(0,l1)},Oo=Ue(null),i2=(t,e,o)=>(t*299+e*587+o*114)/1e3>=160?"black":"white",l2=(t,e)=>{if(e){let i=new Option().style;if(i.color=t,i.color){let a=i.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(","),l=parseInt(a[0]),s=parseInt(a[1]),d=parseInt(a[2]);return i2(l,s,d)}}if(t==="transparent")return"black";let o=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);return i2(o,r,n)};h();var s2=v(T(),1),p4=({color:t,keyLabel:e,isCustomColor:o=!1,isShade:r=!1})=>(0,s2.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:l2(t,o)},children:[r&&"\u21E7",e]}),ga=p4;var Kr=v(T(),1),c2=({hex:t,onChange:e,palette:o})=>{let r=yn({color:t||"transparent",palette:o}),[n,i]=Se(Oo),a=(0,Ad.useRef)(null);if((0,Ad.useEffect)(()=>{a.current&&n==="shades"&&a.current.focus()},[r,n]),r){let{colorName:l,shade:s}=r,d=o[l];if(Array.isArray(d))return(0,Kr.jsx)("div",{className:"color-picker-content--default shades",children:d.map((m,c)=>(0,Kr.jsxs)("button",{ref:c===s&&n==="shades"?a:void 0,tabIndex:-1,type:"button",className:B("color-picker__button color-picker__button--large",{active:c===s}),"aria-label":"Shade",title:`${l} - ${c+1}`,style:m?{"--swatch-color":m}:void 0,onClick:()=>{e(m),i("shades")},children:[(0,Kr.jsx)("div",{className:"color-picker__button-outline"}),(0,Kr.jsx)(ga,{color:m,keyLabel:c+1,isShade:!0})]},c))})}return(0,Kr.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Kr.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Kr.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:g("colorPicker.noShades")})]})};h();var Md=v(H(),1);var ba=v(T(),1),u4=({palette:t,color:e,onChange:o,label:r,activeShade:n})=>{let i=yn({color:e||"transparent",palette:t}),[a,l]=Se(Oo),s=(0,Md.useRef)(null);return(0,Md.useEffect)(()=>{s.current&&a==="baseColors"&&s.current.focus()},[i?.colorName,a]),(0,ba.jsx)("div",{className:"color-picker-content--default",children:Object.entries(t).map(([d,m],c)=>{let u=(Array.isArray(m)?m[n]:m)||"transparent",f=jl[c],b=g(`colors.${d.replace(/\d+/,"")}`,null,"");return(0,ba.jsxs)("button",{ref:i?.colorName===d?s:void 0,tabIndex:-1,type:"button",className:B("color-picker__button color-picker__button--large",{active:i?.colorName===d,"is-transparent":u==="transparent"||!u}),onClick:()=>{o(u),l("baseColors")},title:`${b}${u.startsWith("#")?` ${u}`:""} \u2014 ${f}`,"aria-label":`${b} \u2014 ${f}`,style:u?{"--swatch-color":u}:void 0,"data-testid":`color-${d}`,children:[(0,ba.jsx)("div",{className:"color-picker__button-outline"}),(0,ba.jsx)(ga,{color:u,keyLabel:f})]},d)})})},d2=u4;h();var _d=v(H(),1);var xa=v(T(),1),m2=({colors:t,color:e,onChange:o,label:r})=>{let[n,i]=Se(Oo),a=(0,_d.useRef)(null);return(0,_d.useEffect)(()=>{a.current&&a.current.focus()},[e,n]),(0,xa.jsx)("div",{className:"color-picker-content--default",children:t.map((l,s)=>(0,xa.jsxs)("button",{ref:e===l?a:void 0,tabIndex:-1,type:"button",className:B("color-picker__button color-picker__button--large",{active:e===l,"is-transparent":l==="transparent"||!l}),onClick:()=>{o(l),i("custom")},title:l,"aria-label":r,style:{"--swatch-color":l},children:[(0,xa.jsx)("div",{className:"color-picker__button-outline"}),(0,xa.jsx)(ga,{color:l,keyLabel:s+1,isCustomColor:!0})]},s))})};h();var hf=(t,e,o)=>{let r=Math.ceil(o/Gn);switch(e=e??-1,t){case"ArrowLeft":{let n=e-1;return n<0?o-1:n}case"ArrowRight":return(e+1)%o;case"ArrowDown":{let n=e+Gn;return n>=o?e%Gn:n}case"ArrowUp":{let n=e-Gn,i=n<0?Gn*r+n:n;return i>=o?void 0:i}}},f4=({e:t,colorObj:e,onChange:o,palette:r,customColors:n,setActiveColorPickerSection:i,activeShade:a})=>{if(e?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(t.code)&&t.shiftKey){let l=Number(t.code.slice(-1))-1;return o(r[e.colorName][l]),i("shades"),!0}if(["1","2","3","4","5"].includes(t.key)&&n[Number(t.key)-1])return o(n[Number(t.key)-1]),i("custom"),!0;if(jl.includes(t.key)){let l=jl.indexOf(t.key),s=Object.keys(r)[l],d=r[s],m=Array.isArray(d)?d[a]:d;return o(m),i("baseColors"),!0}return!1},p2=({event:t,activeColorPickerSection:e,palette:o,color:r,onChange:n,customColors:i,setActiveColorPickerSection:a,updateData:l,activeShade:s,onEyeDropperToggle:d,onEscape:m})=>{if(t[S.CTRL_OR_CMD])return!1;if(t.key===S.ESCAPE)return m(t),!0;if(t.key===S.ALT)return d(!0),!0;if(t.key===S.I)return d(),!0;let c=yn({color:r,palette:o});if(t.key===S.TAB){let u={custom:!!i.length,baseColors:!0,shades:c?.shade!=null,hex:!0},f=Object.entries(u).reduce((C,[w,A])=>(A&&C.push(w),C),[]),b=f.indexOf(e),x=t.shiftKey?-1:1,y=b+x>f.length-1?0:b+x<0?f.length-1:b+x,k=f[y];return k&&a(k),k==="custom"?n(i[0]):k==="baseColors"&&(Object.entries(o).find(([w,A])=>Array.isArray(A)?A.includes(r):A===r?w:null)||n(_r.black)),t.preventDefault(),t.stopPropagation(),!0}if(f4({e:t,colorObj:c,onChange:n,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:s}))return!0;if(e==="shades"&&c){let{shade:u}=c,f=hf(t.key,u,Gn);if(f!==void 0)return n(o[c.colorName][f]),!0}if(e==="baseColors"&&c){let{colorName:u}=c,f=Object.keys(o),b=f.indexOf(u),x=hf(t.key,b,f.length);if(x!==void 0){let y=f[x],k=o[y];return n(Array.isArray(k)?k[s]:k),!0}}if(e==="custom"){let u=i.indexOf(r),f=hf(t.key,u,i.length);if(f!==void 0){let b=i[f];return n(b),!0}}return!1};h();var u2=v(T(),1),h4=({children:t})=>(0,u2.jsx)("div",{className:"color-picker__heading",children:t}),va=h4;var bo=v(T(),1),f2=({color:t,onChange:e,label:o,type:r,elements:n,palette:i,updateData:a,children:l,onEyeDropperToggle:s,onEscape:d})=>{let[m]=En.default.useState(()=>r==="canvasBackground"?[]:a2(n,r,i)),[c,u]=Se(Oo),f=yn({color:t,palette:i});(0,En.useEffect)(()=>{if(!c){let k=ff({color:t,palette:i}),C=k&&!m.includes(t);u(C?"hex":k?"custom":f?.shade!=null?"shades":"baseColors")}},[c,t,i,u,f,m]);let[b,x]=(0,En.useState)(f?.shade??(r==="elementBackground"?c1:s1));(0,En.useEffect)(()=>{f?.shade!=null&&x(f.shade);let k=C=>{C.key===S.ALT&&s(!1)};return document.addEventListener("keyup",k,{capture:!0}),()=>{document.removeEventListener("keyup",k,{capture:!0})}},[f,s]);let y=En.default.useRef(null);return(0,bo.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":g("labels.colorPicker"),children:(0,bo.jsxs)("div",{ref:y,onKeyDown:k=>{p2({event:k,activeColorPickerSection:c,palette:i,color:t,onChange:e,onEyeDropperToggle:s,customColors:m,setActiveColorPickerSection:u,updateData:a,activeShade:b,onEscape:d})&&(k.preventDefault(),k.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!m.length&&(0,bo.jsxs)("div",{children:[(0,bo.jsx)(va,{children:g("colorPicker.mostUsedCustomColors")}),(0,bo.jsx)(m2,{colors:m,color:t,label:g("colorPicker.mostUsedCustomColors"),onChange:e})]}),(0,bo.jsxs)("div",{children:[(0,bo.jsx)(va,{children:g("colorPicker.colors")}),(0,bo.jsx)(d2,{color:t,label:o,palette:i,onChange:e,activeShade:b})]}),(0,bo.jsxs)("div",{children:[(0,bo.jsx)(va,{children:g("colorPicker.shades")}),(0,bo.jsx)(c2,{hex:t,onChange:e,palette:i})]}),l]})})};h();h();function Ce(){return Ce=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(t[r]=o[r])}return t},Ce.apply(this,arguments)}var Te=v(H());h();function vt(t,e,{checkForDefaultPrevented:o=!0}={}){return function(n){if(t?.(n),o===!1||!n.defaultPrevented)return e?.(n)}}h();var h2=v(H());function g4(t,e){typeof t=="function"?t(e):t!=null&&(t.current=e)}function gf(...t){return e=>t.forEach(o=>g4(o,e))}function Ft(...t){return(0,h2.useCallback)(gf(...t),t)}h();var rr=v(H());function wr(t,e=[]){let o=[];function r(i,a){let l=(0,rr.createContext)(a),s=o.length;o=[...o,a];function d(c){let{scope:u,children:f,...b}=c,x=u?.[t][s]||l,y=(0,rr.useMemo)(()=>b,Object.values(b));return(0,rr.createElement)(x.Provider,{value:y},f)}function m(c,u){let f=u?.[t][s]||l,b=(0,rr.useContext)(f);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${c}\` must be used within \`${i}\``)}return d.displayName=i+"Provider",[d,m]}let n=()=>{let i=o.map(a=>(0,rr.createContext)(a));return function(l){let s=l?.[t]||i;return(0,rr.useMemo)(()=>({[`__scope${t}`]:{...l,[t]:s}}),[l,s])}};return n.scopeName=t,[r,b4(n,...e)]}function b4(...t){let e=t[0];if(t.length===1)return e;let o=()=>{let r=t.map(n=>({useScope:n(),scopeName:n.scopeName}));return function(i){let a=r.reduce((l,{useScope:s,scopeName:d})=>{let c=s(i)[`__scope${d}`];return{...l,...c}},{});return(0,rr.useMemo)(()=>({[`__scope${e.scopeName}`]:a}),[a])}};return o.scopeName=e.scopeName,o}h();var ht=v(H());h();var ya=v(H()),g2=v(vr());h();var lt=v(H());var wn=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t,n=lt.Children.toArray(o),i=n.find(v4);if(i){let a=i.props.children,l=n.map(s=>s===i?lt.Children.count(a)>1?lt.Children.only(null):(0,lt.isValidElement)(a)?a.props.children:null:s);return(0,lt.createElement)(bf,Ce({},r,{ref:e}),(0,lt.isValidElement)(a)?(0,lt.cloneElement)(a,void 0,l):null)}return(0,lt.createElement)(bf,Ce({},r,{ref:e}),o)});wn.displayName="Slot";var bf=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t;return(0,lt.isValidElement)(o)?(0,lt.cloneElement)(o,{...y4(r,o.props),ref:gf(e,o.ref)}):lt.Children.count(o)>1?lt.Children.only(null):null});bf.displayName="SlotClone";var x4=({children:t})=>(0,lt.createElement)(lt.Fragment,null,t);function v4(t){return(0,lt.isValidElement)(t)&&t.type===x4}function y4(t,e){let o={...e};for(let r in e){let n=t[r],i=e[r];/^on[A-Z]/.test(r)?n&&i?o[r]=(...l)=>{i(...l),n(...l)}:n&&(o[r]=n):r==="style"?o[r]={...n,...i}:r==="className"&&(o[r]=[n,i].filter(Boolean).join(" "))}return{...t,...o}}var E4=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],dt=E4.reduce((t,e)=>{let o=(0,ya.forwardRef)((r,n)=>{let{asChild:i,...a}=r,l=i?wn:e;return(0,ya.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,ya.createElement)(l,Ce({},a,{ref:n}))});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{});function b2(t,e){t&&(0,g2.flushSync)(()=>t.dispatchEvent(e))}h();var Ea=v(H());function ro(t){let e=(0,Ea.useRef)(t);return(0,Ea.useEffect)(()=>{e.current=t}),(0,Ea.useMemo)(()=>(...o)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...o)},[])}h();var x2=v(H());function v2(t,e=globalThis?.document){let o=ro(t);(0,x2.useEffect)(()=>{let r=n=>{n.key==="Escape"&&o(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[o,e])}var xf="dismissableLayer.update",w4="dismissableLayer.pointerDownOutside",C4="dismissableLayer.focusOutside",y2,S4=(0,ht.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),w2=(0,ht.forwardRef)((t,e)=>{var o;let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:l,onDismiss:s,...d}=t,m=(0,ht.useContext)(S4),[c,u]=(0,ht.useState)(null),f=(o=c?.ownerDocument)!==null&&o!==void 0?o:globalThis?.document,[,b]=(0,ht.useState)({}),x=Ft(e,_=>u(_)),y=Array.from(m.layers),[k]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),C=y.indexOf(k),w=c?y.indexOf(c):-1,A=m.layersWithOutsidePointerEventsDisabled.size>0,z=w>=C,I=T4(_=>{let $=_.target,O=[...m.branches].some(W=>W.contains($));!z||O||(i?.(_),l?.(_),_.defaultPrevented||s?.())},f),M=k4(_=>{let $=_.target;[...m.branches].some(W=>W.contains($))||(a?.(_),l?.(_),_.defaultPrevented||s?.())},f);return v2(_=>{w===m.layers.size-1&&(n?.(_),!_.defaultPrevented&&s&&(_.preventDefault(),s()))},f),(0,ht.useEffect)(()=>{if(c)return r&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(y2=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(c)),m.layers.add(c),E2(),()=>{r&&m.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=y2)}},[c,f,r,m]),(0,ht.useEffect)(()=>()=>{c&&(m.layers.delete(c),m.layersWithOutsidePointerEventsDisabled.delete(c),E2())},[c,m]),(0,ht.useEffect)(()=>{let _=()=>b({});return document.addEventListener(xf,_),()=>document.removeEventListener(xf,_)},[]),(0,ht.createElement)(dt.div,Ce({},d,{ref:x,style:{pointerEvents:A?z?"auto":"none":void 0,...t.style},onFocusCapture:vt(t.onFocusCapture,M.onFocusCapture),onBlurCapture:vt(t.onBlurCapture,M.onBlurCapture),onPointerDownCapture:vt(t.onPointerDownCapture,I.onPointerDownCapture)}))});function T4(t,e=globalThis?.document){let o=ro(t),r=(0,ht.useRef)(!1),n=(0,ht.useRef)(()=>{});return(0,ht.useEffect)(()=>{let i=l=>{if(l.target&&!r.current){let d=function(){C2(w4,o,s,{discrete:!0})},s={originalEvent:l};l.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=d,e.addEventListener("click",n.current,{once:!0})):d()}r.current=!1},a=window.setTimeout(()=>{e.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),e.removeEventListener("pointerdown",i),e.removeEventListener("click",n.current)}},[e,o]),{onPointerDownCapture:()=>r.current=!0}}function k4(t,e=globalThis?.document){let o=ro(t),r=(0,ht.useRef)(!1);return(0,ht.useEffect)(()=>{let n=i=>{i.target&&!r.current&&C2(C4,o,{originalEvent:i},{discrete:!1})};return e.addEventListener("focusin",n),()=>e.removeEventListener("focusin",n)},[e,o]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function E2(){let t=new CustomEvent(xf);document.dispatchEvent(t)}function C2(t,e,o,{discrete:r}){let n=o.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:o});e&&n.addEventListener(t,e,{once:!0}),r?b2(n,i):n.dispatchEvent(i)}h();var T2=v(H()),vf=0;function k2(){(0,T2.useEffect)(()=>{var t,e;let o=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(t=o[0])!==null&&t!==void 0?t:S2()),document.body.insertAdjacentElement("beforeend",(e=o[1])!==null&&e!==void 0?e:S2()),vf++,()=>{vf===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),vf--}},[])}function S2(){let t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",t}h();var so=v(H());var yf="focusScope.autoFocusOnMount",Ef="focusScope.autoFocusOnUnmount",I2={bubbles:!1,cancelable:!0};var L2=(0,so.forwardRef)((t,e)=>{let{loop:o=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...a}=t,[l,s]=(0,so.useState)(null),d=ro(n),m=ro(i),c=(0,so.useRef)(null),u=Ft(e,x=>s(x)),f=(0,so.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,so.useEffect)(()=>{if(r){let x=function(k){if(f.paused||!l)return;let C=k.target;l.contains(C)?c.current=C:li(c.current,{select:!0})},y=function(k){f.paused||!l||l.contains(k.relatedTarget)||li(c.current,{select:!0})};return document.addEventListener("focusin",x),document.addEventListener("focusout",y),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",y)}}},[r,l,f.paused]),(0,so.useEffect)(()=>{if(l){M2.add(f);let x=document.activeElement;if(!l.contains(x)){let k=new CustomEvent(yf,I2);l.addEventListener(yf,d),l.dispatchEvent(k),k.defaultPrevented||(I4(P4(P2(l)),{select:!0}),document.activeElement===x&&li(l))}return()=>{l.removeEventListener(yf,d),setTimeout(()=>{let k=new CustomEvent(Ef,I2);l.addEventListener(Ef,m),l.dispatchEvent(k),k.defaultPrevented||li(x??document.body,{select:!0}),l.removeEventListener(Ef,m),M2.remove(f)},0)}}},[l,d,m,f]);let b=(0,so.useCallback)(x=>{if(!o&&!r||f.paused)return;let y=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,k=document.activeElement;if(y&&k){let C=x.currentTarget,[w,A]=A4(C);w&&A?!x.shiftKey&&k===A?(x.preventDefault(),o&&li(w,{select:!0})):x.shiftKey&&k===w&&(x.preventDefault(),o&&li(A,{select:!0})):k===C&&x.preventDefault()}},[o,r,f.paused]);return(0,so.createElement)(dt.div,Ce({tabIndex:-1},a,{ref:u,onKeyDown:b}))});function I4(t,{select:e=!1}={}){let o=document.activeElement;for(let r of t)if(li(r,{select:e}),document.activeElement!==o)return}function A4(t){let e=P2(t),o=A2(e,t),r=A2(e.reverse(),t);return[o,r]}function P2(t){let e=[],o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{let n=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||n?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)e.push(o.currentNode);return e}function A2(t,e){for(let o of t)if(!M4(o,{upTo:e}))return o}function M4(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function _4(t){return t instanceof HTMLInputElement&&"select"in t}function li(t,{select:e=!1}={}){if(t&&t.focus){let o=document.activeElement;t.focus({preventScroll:!0}),t!==o&&_4(t)&&e&&t.select()}}var M2=L4();function L4(){let t=[];return{add(e){let o=t[0];e!==o&&o?.pause(),t=_2(t,e),t.unshift(e)},remove(e){var o;t=_2(t,e),(o=t[0])===null||o===void 0||o.resume()}}}function _2(t,e){let o=[...t],r=o.indexOf(e);return r!==-1&&o.splice(r,1),o}function P4(t){return t.filter(e=>e.tagName!=="A")}h();var Ld=v(H());h();var R2=v(H()),Fo=globalThis?.document?R2.useLayoutEffect:()=>{};var R4=Ld.useId||(()=>{}),D4=0;function wa(t){let[e,o]=Ld.useState(R4());return Fo(()=>{t||o(r=>r??String(D4++))},[t]),t||(e?`radix-${e}`:"")}h();var Xe=v(H());h();h();h();function ci(t){return t.split("-")[0]}function Jl(t){return t.split("-")[1]}function Sa(t){return["top","bottom"].includes(ci(t))?"x":"y"}function Cf(t){return t==="y"?"height":"width"}function D2(t,e,o){let{reference:r,floating:n}=t,i=r.x+r.width/2-n.width/2,a=r.y+r.height/2-n.height/2,l=Sa(e),s=Cf(l),d=r[s]/2-n[s]/2,m=l==="x",c;switch(ci(e)){case"top":c={x:i,y:r.y-n.height};break;case"bottom":c={x:i,y:r.y+r.height};break;case"right":c={x:r.x+r.width,y:a};break;case"left":c={x:r.x-n.width,y:a};break;default:c={x:r.x,y:r.y}}switch(Jl(e)){case"start":c[l]-=d*(o&&m?-1:1);break;case"end":c[l]+=d*(o&&m?-1:1)}return c}var z2=async(t,e,o)=>{let{placement:r="bottom",strategy:n="absolute",middleware:i=[],platform:a}=o,l=await(a.isRTL==null?void 0:a.isRTL(e)),s=await a.getElementRects({reference:t,floating:e,strategy:n}),{x:d,y:m}=D2(s,r,l),c=r,u={},f=0;for(let b=0;b<i.length;b++){let{name:x,fn:y}=i[b],{x:k,y:C,data:w,reset:A}=await y({x:d,y:m,initialPlacement:r,placement:c,strategy:n,middlewareData:u,rects:s,platform:a,elements:{reference:t,floating:e}});d=k??d,m=C??m,u={...u,[x]:{...u[x],...w}},A&&f<=50&&(f++,typeof A=="object"&&(A.placement&&(c=A.placement),A.rects&&(s=A.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:n}):A.rects),{x:d,y:m}=D2(s,c,l)),b=-1)}return{x:d,y:m,placement:c,strategy:n,middlewareData:u}};function B2(t){return typeof t!="number"?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(t):{top:t,right:t,bottom:t,left:t}}function ql(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function Ca(t,e){var o;e===void 0&&(e={});let{x:r,y:n,platform:i,rects:a,elements:l,strategy:s}=t,{boundary:d="clippingAncestors",rootBoundary:m="viewport",elementContext:c="floating",altBoundary:u=!1,padding:f=0}=e,b=B2(f),x=l[u?c==="floating"?"reference":"floating":c],y=ql(await i.getClippingRect({element:(o=await(i.isElement==null?void 0:i.isElement(x)))==null||o?x:x.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:m,strategy:s})),k=ql(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:c==="floating"?{...a.floating,x:r,y:n}:a.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),strategy:s}):a[c]);return{top:y.top-k.top+b.top,bottom:k.bottom-y.bottom+b.bottom,left:y.left-k.left+b.left,right:k.right-y.right+b.right}}var N4=Math.min,si=Math.max;function wf(t,e,o){return si(t,N4(e,o))}var Rd=t=>({name:"arrow",options:t,async fn(e){let{element:o,padding:r=0}=t??{},{x:n,y:i,placement:a,rects:l,platform:s}=e;if(o==null)return{};let d=B2(r),m={x:n,y:i},c=Sa(a),u=Jl(a),f=Cf(c),b=await s.getDimensions(o),x=c==="y"?"top":"left",y=c==="y"?"bottom":"right",k=l.reference[f]+l.reference[c]-m[c]-l.floating[f],C=m[c]-l.reference[c],w=await(s.getOffsetParent==null?void 0:s.getOffsetParent(o)),A=w?c==="y"?w.clientHeight||0:w.clientWidth||0:0;A===0&&(A=l.floating[f]);let z=k/2-C/2,I=d[x],M=A-b[f]-d[y],_=A/2-b[f]/2+z,$=wf(I,_,M),O=(u==="start"?d[x]:d[y])>0&&_!==$&&l.reference[f]<=l.floating[f];return{[c]:m[c]-(O?_<I?I-_:M-_:0),data:{[c]:$,centerOffset:_-$}}}}),O4={left:"right",right:"left",bottom:"top",top:"bottom"};function Pd(t){return t.replace(/left|right|bottom|top/g,e=>O4[e])}function F4(t,e,o){o===void 0&&(o=!1);let r=Jl(t),n=Sa(t),i=Cf(n),a=n==="x"?r===(o?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(a=Pd(a)),{main:a,cross:Pd(a)}}var z4={start:"end",end:"start"};function N2(t){return t.replace(/start|end/g,e=>z4[e])}var $2=["top","right","bottom","left"],I_=$2.reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);var Sf=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var o;let{placement:r,middlewareData:n,rects:i,initialPlacement:a,platform:l,elements:s}=e,{mainAxis:d=!0,crossAxis:m=!0,fallbackPlacements:c,fallbackStrategy:u="bestFit",flipAlignment:f=!0,...b}=t,x=ci(r),y=c||(x===a||!f?[Pd(a)]:function(_){let $=Pd(_);return[N2(_),$,N2($)]}(a)),k=[a,...y],C=await Ca(e,b),w=[],A=((o=n.flip)==null?void 0:o.overflows)||[];if(d&&w.push(C[x]),m){let{main:_,cross:$}=F4(r,i,await(l.isRTL==null?void 0:l.isRTL(s.floating)));w.push(C[_],C[$])}if(A=[...A,{placement:r,overflows:w}],!w.every(_=>_<=0)){var z,I;let _=((z=(I=n.flip)==null?void 0:I.index)!=null?z:0)+1,$=k[_];if($)return{data:{index:_,overflows:A},reset:{placement:$}};let O="bottom";switch(u){case"bestFit":{var M;let W=(M=A.map(j=>[j,j.overflows.filter(R=>R>0).reduce((R,Z)=>R+Z,0)]).sort((j,R)=>j[1]-R[1])[0])==null?void 0:M[0].placement;W&&(O=W);break}case"initialPlacement":O=a}if(r!==O)return{reset:{placement:O}}}return{}}}};function O2(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function F2(t){return $2.some(e=>t[e]>=0)}var Tf=function(t){let{strategy:e="referenceHidden",...o}=t===void 0?{}:t;return{name:"hide",async fn(r){let{rects:n}=r;switch(e){case"referenceHidden":{let i=O2(await Ca(r,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:F2(i)}}}case"escaped":{let i=O2(await Ca(r,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:i,escaped:F2(i)}}}default:return{}}}}},kf=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){let{x:o,y:r}=e,n=await async function(i,a){let{placement:l,platform:s,elements:d}=i,m=await(s.isRTL==null?void 0:s.isRTL(d.floating)),c=ci(l),u=Jl(l),f=Sa(l)==="x",b=["left","top"].includes(c)?-1:1,x=m&&f?-1:1,y=typeof a=="function"?a(i):a,{mainAxis:k,crossAxis:C,alignmentAxis:w}=typeof y=="number"?{mainAxis:y,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...y};return u&&typeof w=="number"&&(C=u==="end"?-1*w:w),f?{x:C*x,y:k*b}:{x:k*b,y:C*x}}(e,t);return{x:o+n.x,y:r+n.y,data:n}}}};function H2(t){return t==="x"?"y":"x"}var If=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){let{x:o,y:r,placement:n}=e,{mainAxis:i=!0,crossAxis:a=!1,limiter:l={fn:y=>{let{x:k,y:C}=y;return{x:k,y:C}}},...s}=t,d={x:o,y:r},m=await Ca(e,s),c=Sa(ci(n)),u=H2(c),f=d[c],b=d[u];if(i){let y=c==="y"?"bottom":"right";f=wf(f+m[c==="y"?"top":"left"],f,f-m[y])}if(a){let y=u==="y"?"bottom":"right";b=wf(b+m[u==="y"?"top":"left"],b,b-m[y])}let x=l.fn({...e,[c]:f,[u]:b});return{...x,data:{x:x.x-o,y:x.y-r}}}}},Af=function(t){return t===void 0&&(t={}),{options:t,fn(e){let{x:o,y:r,placement:n,rects:i,middlewareData:a}=e,{offset:l=0,mainAxis:s=!0,crossAxis:d=!0}=t,m={x:o,y:r},c=Sa(n),u=H2(c),f=m[c],b=m[u],x=typeof l=="function"?l({...i,placement:n}):l,y=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(s){let z=c==="y"?"height":"width",I=i.reference[c]-i.floating[z]+y.mainAxis,M=i.reference[c]+i.reference[z]-y.mainAxis;f<I?f=I:f>M&&(f=M)}if(d){var k,C,w,A;let z=c==="y"?"width":"height",I=["top","left"].includes(ci(n)),M=i.reference[u]-i.floating[z]+(I&&(k=(C=a.offset)==null?void 0:C[u])!=null?k:0)+(I?0:y.crossAxis),_=i.reference[u]+i.reference[z]+(I?0:(w=(A=a.offset)==null?void 0:A[u])!=null?w:0)-(I?y.crossAxis:0);b<M?b=M:b>_&&(b=_)}return{[c]:f,[u]:b}}}},Mf=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){let{placement:o,rects:r,platform:n,elements:i}=e,{apply:a,...l}=t,s=await Ca(e,l),d=ci(o),m=Jl(o),c,u;d==="top"||d==="bottom"?(c=d,u=m===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(u=d,c=m==="end"?"top":"bottom");let f=si(s.left,0),b=si(s.right,0),x=si(s.top,0),y=si(s.bottom,0),k={availableHeight:r.floating.height-(["left","right"].includes(o)?2*(x!==0||y!==0?x+y:si(s.top,s.bottom)):s[c]),availableWidth:r.floating.width-(["top","bottom"].includes(o)?2*(f!==0||b!==0?f+b:si(s.left,s.right)):s[u])},C=await n.getDimensions(i.floating);a?.({...e,...k});let w=await n.getDimensions(i.floating);return C.width!==w.width||C.height!==w.height?{reset:{rects:!0}}:{}}}};function Y2(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Xr(t){if(t==null)return window;if(!Y2(t)){let e=t.ownerDocument;return e&&e.defaultView||window}return t}function es(t){return Xr(t).getComputedStyle(t)}function Yr(t){return Y2(t)?"":t?(t.nodeName||"").toLowerCase():""}function Z2(){let t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function Cr(t){return t instanceof Xr(t).HTMLElement}function Sn(t){return t instanceof Xr(t).Element}function Lf(t){return typeof ShadowRoot>"u"?!1:t instanceof Xr(t).ShadowRoot||t instanceof ShadowRoot}function Od(t){let{overflow:e,overflowX:o,overflowY:r}=es(t);return/auto|scroll|overlay|hidden/.test(e+r+o)}function B4(t){return["table","td","th"].includes(Yr(t))}function U2(t){let e=/firefox/i.test(Z2()),o=es(t);return o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].includes(o.willChange)||e&&o.willChange==="filter"||e&&!!o.filter&&o.filter!=="none"}function X2(){return!/^((?!chrome|android).)*safari/i.test(Z2())}var W2=Math.min,Ql=Math.max,Dd=Math.round;function Zr(t,e,o){var r,n,i,a;e===void 0&&(e=!1),o===void 0&&(o=!1);let l=t.getBoundingClientRect(),s=1,d=1;e&&Cr(t)&&(s=t.offsetWidth>0&&Dd(l.width)/t.offsetWidth||1,d=t.offsetHeight>0&&Dd(l.height)/t.offsetHeight||1);let m=Sn(t)?Xr(t):window,c=!X2()&&o,u=(l.left+(c&&(r=(n=m.visualViewport)==null?void 0:n.offsetLeft)!=null?r:0))/s,f=(l.top+(c&&(i=(a=m.visualViewport)==null?void 0:a.offsetTop)!=null?i:0))/d,b=l.width/s,x=l.height/d;return{width:b,height:x,top:f,right:u+b,bottom:f+x,left:u,x:u,y:f}}function Cn(t){return(e=t,(e instanceof Xr(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function Fd(t){return Sn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function j2(t){return Zr(Cn(t)).left+Fd(t).scrollLeft}function $4(t,e,o){let r=Cr(e),n=Cn(e),i=Zr(t,r&&function(s){let d=Zr(s);return Dd(d.width)!==s.offsetWidth||Dd(d.height)!==s.offsetHeight}(e),o==="fixed"),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if(r||!r&&o!=="fixed")if((Yr(e)!=="body"||Od(n))&&(a=Fd(e)),Cr(e)){let s=Zr(e,!0);l.x=s.x+e.clientLeft,l.y=s.y+e.clientTop}else n&&(l.x=j2(n));return{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function q2(t){return Yr(t)==="html"?t:t.assignedSlot||t.parentNode||(Lf(t)?t.host:null)||Cn(t)}function G2(t){return Cr(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function _f(t){let e=Xr(t),o=G2(t);for(;o&&B4(o)&&getComputedStyle(o).position==="static";)o=G2(o);return o&&(Yr(o)==="html"||Yr(o)==="body"&&getComputedStyle(o).position==="static"&&!U2(o))?e:o||function(r){let n=q2(r);for(Lf(n)&&(n=n.host);Cr(n)&&!["html","body"].includes(Yr(n));){if(U2(n))return n;n=n.parentNode}return null}(t)||e}function V2(t){if(Cr(t))return{width:t.offsetWidth,height:t.offsetHeight};let e=Zr(t);return{width:e.width,height:e.height}}function J2(t){let e=q2(t);return["html","body","#document"].includes(Yr(e))?t.ownerDocument.body:Cr(e)&&Od(e)?e:J2(e)}function Nd(t,e){var o;e===void 0&&(e=[]);let r=J2(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),i=Xr(r),a=n?[i].concat(i.visualViewport||[],Od(r)?r:[]):r,l=e.concat(a);return n?l:l.concat(Nd(a))}function K2(t,e,o){return e==="viewport"?ql(function(r,n){let i=Xr(r),a=Cn(r),l=i.visualViewport,s=a.clientWidth,d=a.clientHeight,m=0,c=0;if(l){s=l.width,d=l.height;let u=X2();(u||!u&&n==="fixed")&&(m=l.offsetLeft,c=l.offsetTop)}return{width:s,height:d,x:m,y:c}}(t,o)):Sn(e)?function(r,n){let i=Zr(r,!1,n==="fixed"),a=i.top+r.clientTop,l=i.left+r.clientLeft;return{top:a,left:l,x:l,y:a,right:l+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(e,o):ql(function(r){var n;let i=Cn(r),a=Fd(r),l=(n=r.ownerDocument)==null?void 0:n.body,s=Ql(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),d=Ql(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),m=-a.scrollLeft+j2(r),c=-a.scrollTop;return es(l||i).direction==="rtl"&&(m+=Ql(i.clientWidth,l?l.clientWidth:0)-s),{width:s,height:d,x:m,y:c}}(Cn(t)))}function H4(t){let e=Nd(t),o=["absolute","fixed"].includes(es(t).position)&&Cr(t)?_f(t):t;return Sn(o)?e.filter(r=>Sn(r)&&function(n,i){let a=i.getRootNode==null?void 0:i.getRootNode();if(n.contains(i))return!0;if(a&&Lf(a)){let l=i;do{if(l&&n===l)return!0;l=l.parentNode||l.host}while(l)}return!1}(r,o)&&Yr(r)!=="body"):[]}var U4={getClippingRect:function(t){let{element:e,boundary:o,rootBoundary:r,strategy:n}=t,i=[...o==="clippingAncestors"?H4(e):[].concat(o),r],a=i[0],l=i.reduce((s,d)=>{let m=K2(e,d,n);return s.top=Ql(m.top,s.top),s.right=W2(m.right,s.right),s.bottom=W2(m.bottom,s.bottom),s.left=Ql(m.left,s.left),s},K2(e,a,n));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:o,strategy:r}=t,n=Cr(o),i=Cn(o);if(o===i)return e;let a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if((n||!n&&r!=="fixed")&&((Yr(o)!=="body"||Od(i))&&(a=Fd(o)),Cr(o))){let s=Zr(o,!0);l.x=s.x+o.clientLeft,l.y=s.y+o.clientTop}return{...e,x:e.x-a.scrollLeft+l.x,y:e.y-a.scrollTop+l.y}},isElement:Sn,getDimensions:V2,getOffsetParent:_f,getDocumentElement:Cn,getElementRects:t=>{let{reference:e,floating:o,strategy:r}=t;return{reference:$4(e,_f(o),r),floating:{...V2(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>es(t).direction==="rtl"};function Q2(t,e,o,r){r===void 0&&(r={});let{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:l=!1}=r,s=n&&!l,d=i&&!l,m=s||d?[...Sn(t)?Nd(t):[],...Nd(e)]:[];m.forEach(b=>{s&&b.addEventListener("scroll",o,{passive:!0}),d&&b.addEventListener("resize",o)});let c,u=null;if(a){let b=!0;u=new ResizeObserver(()=>{b||o(),b=!1}),Sn(t)&&!l&&u.observe(t),u.observe(e)}let f=l?Zr(t):null;return l&&function b(){let x=Zr(t);!f||x.x===f.x&&x.y===f.y&&x.width===f.width&&x.height===f.height||o(),f=x,c=requestAnimationFrame(b)}(),o(),()=>{var b;m.forEach(x=>{s&&x.removeEventListener("scroll",o),d&&x.removeEventListener("resize",o)}),(b=u)==null||b.disconnect(),u=null,l&&cancelAnimationFrame(c)}}var ey=(t,e,o)=>z2(t,e,{platform:U4,...o});var zt=v(H()),zd=v(H()),ty=v(vr()),Pf=typeof document<"u"?zd.useLayoutEffect:zd.useEffect;function Rf(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let o,r,n;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(o=t.length,o!=e.length)return!1;for(r=o;r--!==0;)if(!Rf(t[r],e[r]))return!1;return!0}if(n=Object.keys(t),o=n.length,o!==Object.keys(e).length)return!1;for(r=o;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,n[r]))return!1;for(r=o;r--!==0;){let i=n[r];if(!(i==="_owner"&&t.$$typeof)&&!Rf(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function W4(t){let e=zt.useRef(t);return Pf(()=>{e.current=t}),e}function oy(t){let{middleware:e,placement:o="bottom",strategy:r="absolute",whileElementsMounted:n}=t===void 0?{}:t,i=zt.useRef(null),a=zt.useRef(null),l=W4(n),s=zt.useRef(null),[d,m]=zt.useState({x:null,y:null,strategy:r,placement:o,middlewareData:{}}),[c,u]=zt.useState(e);Rf(c?.map(w=>{let{options:A}=w;return A}),e?.map(w=>{let{options:A}=w;return A}))||u(e);let f=zt.useCallback(()=>{!i.current||!a.current||ey(i.current,a.current,{middleware:c,placement:o,strategy:r}).then(w=>{b.current&&ty.flushSync(()=>{m(w)})})},[c,o,r]);Pf(()=>{b.current&&f()},[f]);let b=zt.useRef(!1);Pf(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=zt.useCallback(()=>{if(typeof s.current=="function"&&(s.current(),s.current=null),i.current&&a.current)if(l.current){let w=l.current(i.current,a.current,f);s.current=w}else f()},[f,l]),y=zt.useCallback(w=>{i.current=w,x()},[x]),k=zt.useCallback(w=>{a.current=w,x()},[x]),C=zt.useMemo(()=>({reference:i,floating:a}),[]);return zt.useMemo(()=>({...d,update:f,refs:C,reference:y,floating:k}),[d,f,C,y,k])}var ry=t=>{let{element:e,padding:o}=t;function r(n){return Object.prototype.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){return r(e)?e.current!=null?Rd({element:e.current,padding:o}).fn(n):{}:e?Rd({element:e,padding:o}).fn(n):{}}}};h();var ts=v(H());var G4=(0,ts.forwardRef)((t,e)=>{let{children:o,width:r=10,height:n=5,...i}=t;return(0,ts.createElement)(dt.svg,Ce({},i,{ref:e,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),t.asChild?o:(0,ts.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),ny=G4;h();var iy=v(H());function ay(t){let[e,o]=(0,iy.useState)(void 0);return Fo(()=>{if(t){o({width:t.offsetWidth,height:t.offsetHeight});let r=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;let i=n[0],a,l;if("borderBoxSize"in i){let s=i.borderBoxSize,d=Array.isArray(s)?s[0]:s;a=d.inlineSize,l=d.blockSize}else a=t.offsetWidth,l=t.offsetHeight;o({width:a,height:l})});return r.observe(t,{box:"border-box"}),()=>r.unobserve(t)}else o(void 0)},[t]),e}var ly="Popper",[Df,Nf]=wr(ly),[V4,sy]=Df(ly),K4=t=>{let{__scopePopper:e,children:o}=t,[r,n]=(0,Xe.useState)(null);return(0,Xe.createElement)(V4,{scope:e,anchor:r,onAnchorChange:n},o)},Y4="PopperAnchor",Z4=(0,Xe.forwardRef)((t,e)=>{let{__scopePopper:o,virtualRef:r,...n}=t,i=sy(Y4,o),a=(0,Xe.useRef)(null),l=Ft(e,a);return(0,Xe.useEffect)(()=>{i.onAnchorChange(r?.current||a.current)}),r?null:(0,Xe.createElement)(dt.div,Ce({},n,{ref:l}))}),Bd="PopperContent",[X4,j4]=Df(Bd),[q4,J4]=Df(Bd,{hasParent:!1,positionUpdateFns:new Set}),Q4=(0,Xe.forwardRef)((t,e)=>{var o,r,n,i,a,l,s,d;let{__scopePopper:m,side:c="bottom",sideOffset:u=0,align:f="center",alignOffset:b=0,arrowPadding:x=0,collisionBoundary:y=[],collisionPadding:k=0,sticky:C="partial",hideWhenDetached:w=!1,avoidCollisions:A=!0,onPlaced:z,...I}=t,M=sy(Bd,m),[_,$]=(0,Xe.useState)(null),O=Ft(e,Fi=>$(Fi)),[W,j]=(0,Xe.useState)(null),R=ay(W),Z=(o=R?.width)!==null&&o!==void 0?o:0,ne=(r=R?.height)!==null&&r!==void 0?r:0,me=c+(f!=="center"?"-"+f:""),Me=typeof k=="number"?k:{top:0,right:0,bottom:0,left:0,...k},de=Array.isArray(y)?y:[y],Q=de.length>0,L={padding:Me,boundary:de.filter(nC),altBoundary:Q},{reference:N,floating:K,strategy:Y,x:V,y:X,placement:te,middlewareData:ae,update:et}=oy({strategy:"fixed",placement:me,whileElementsMounted:Q2,middleware:[iC(),kf({mainAxis:u+ne,alignmentAxis:b}),A?If({mainAxis:!0,crossAxis:!1,limiter:C==="partial"?Af():void 0,...L}):void 0,W?ry({element:W,padding:x}):void 0,A?Sf({...L}):void 0,Mf({...L,apply:({elements:Fi,availableWidth:P6,availableHeight:R6})=>{Fi.floating.style.setProperty("--radix-popper-available-width",`${P6}px`),Fi.floating.style.setProperty("--radix-popper-available-height",`${R6}px`)}}),aC({arrowWidth:Z,arrowHeight:ne}),w?Tf({strategy:"referenceHidden"}):void 0].filter(rC)});Fo(()=>{N(M.anchor)},[N,M.anchor]);let nt=V!==null&&X!==null,[bt,Ge]=cy(te),Co=ro(z);Fo(()=>{nt&&Co?.()},[nt,Co]);let ho=(n=ae.arrow)===null||n===void 0?void 0:n.x,I6=(i=ae.arrow)===null||i===void 0?void 0:i.y,A6=((a=ae.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[M6,_6]=(0,Xe.useState)();Fo(()=>{_&&_6(window.getComputedStyle(_).zIndex)},[_]);let{hasParent:L6,positionUpdateFns:Oi}=J4(Bd,m),sl=!L6;(0,Xe.useLayoutEffect)(()=>{if(!sl)return Oi.add(et),()=>{Oi.delete(et)}},[sl,Oi,et]),Fo(()=>{sl&&nt&&Array.from(Oi).reverse().forEach(Fi=>requestAnimationFrame(Fi))},[sl,nt,Oi]);let r1={"data-side":bt,"data-align":Ge,...I,ref:O,style:{...I.style,animation:nt?void 0:"none",opacity:(l=ae.hide)!==null&&l!==void 0&&l.referenceHidden?0:void 0}};return(0,Xe.createElement)("div",{ref:K,"data-radix-popper-content-wrapper":"",style:{position:Y,left:0,top:0,transform:nt?`translate3d(${Math.round(V)}px, ${Math.round(X)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:M6,"--radix-popper-transform-origin":[(s=ae.transformOrigin)===null||s===void 0?void 0:s.x,(d=ae.transformOrigin)===null||d===void 0?void 0:d.y].join(" ")},dir:t.dir},(0,Xe.createElement)(X4,{scope:m,placedSide:bt,onArrowChange:j,arrowX:ho,arrowY:I6,shouldHideArrow:A6},sl?(0,Xe.createElement)(q4,{scope:m,hasParent:!0,positionUpdateFns:Oi},(0,Xe.createElement)(dt.div,r1)):(0,Xe.createElement)(dt.div,r1)))}),eC="PopperArrow",tC={top:"bottom",right:"left",bottom:"top",left:"right"},oC=(0,Xe.forwardRef)(function(e,o){let{__scopePopper:r,...n}=e,i=j4(eC,r),a=tC[i.placedSide];return(0,Xe.createElement)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0}},(0,Xe.createElement)(ny,Ce({},n,{ref:o,style:{...n.style,display:"block"}})))});function rC(t){return t!==void 0}function nC(t){return t!==null}var iC=()=>({name:"anchorCssProperties",fn(t){let{rects:e,elements:o}=t,{width:r,height:n}=e.reference;return o.floating.style.setProperty("--radix-popper-anchor-width",`${r}px`),o.floating.style.setProperty("--radix-popper-anchor-height",`${n}px`),{}}}),aC=t=>({name:"transformOrigin",options:t,fn(e){var o,r,n,i,a;let{placement:l,rects:s,middlewareData:d}=e,c=((o=d.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,u=c?0:t.arrowWidth,f=c?0:t.arrowHeight,[b,x]=cy(l),y={start:"0%",center:"50%",end:"100%"}[x],k=((r=(n=d.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+u/2,C=((i=(a=d.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+f/2,w="",A="";return b==="bottom"?(w=c?y:`${k}px`,A=`${-f}px`):b==="top"?(w=c?y:`${k}px`,A=`${s.floating.height+f}px`):b==="right"?(w=`${-f}px`,A=c?y:`${C}px`):b==="left"&&(w=`${s.floating.width+f}px`,A=c?y:`${C}px`),{data:{x:w,y:A}}}});function cy(t){let[e,o="center"]=t.split("-");return[e,o]}var dy=K4,my=Z4,py=Q4,uy=oC;h();var $d=v(H()),fy=v(vr());var hy=(0,$d.forwardRef)((t,e)=>{var o;let{container:r=globalThis==null||(o=globalThis.document)===null||o===void 0?void 0:o.body,...n}=t;return r?fy.default.createPortal((0,$d.createElement)(dt.div,Ce({},n,{ref:e})),r):null});h();var Vt=v(H()),gy=v(vr());function lC(t,e){return(0,Vt.useReducer)((o,r)=>{let n=e[o][r];return n??o},t)}var Ta=t=>{let{present:e,children:o}=t,r=sC(e),n=typeof o=="function"?o({present:r.isPresent}):Vt.Children.only(o),i=Ft(r.ref,n.ref);return typeof o=="function"||r.isPresent?(0,Vt.cloneElement)(n,{ref:i}):null};Ta.displayName="Presence";function sC(t){let[e,o]=(0,Vt.useState)(),r=(0,Vt.useRef)({}),n=(0,Vt.useRef)(t),i=(0,Vt.useRef)("none"),a=t?"mounted":"unmounted",[l,s]=lC(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Vt.useEffect)(()=>{let d=Hd(r.current);i.current=l==="mounted"?d:"none"},[l]),Fo(()=>{let d=r.current,m=n.current;if(m!==t){let u=i.current,f=Hd(d);t?s("MOUNT"):f==="none"||d?.display==="none"?s("UNMOUNT"):s(m&&u!==f?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,s]),Fo(()=>{if(e){let d=c=>{let f=Hd(r.current).includes(c.animationName);c.target===e&&f&&(0,gy.flushSync)(()=>s("ANIMATION_END"))},m=c=>{c.target===e&&(i.current=Hd(r.current))};return e.addEventListener("animationstart",m),e.addEventListener("animationcancel",d),e.addEventListener("animationend",d),()=>{e.removeEventListener("animationstart",m),e.removeEventListener("animationcancel",d),e.removeEventListener("animationend",d)}}else s("ANIMATION_END")},[e,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,Vt.useCallback)(d=>{d&&(r.current=getComputedStyle(d)),o(d)},[])}}function Hd(t){return t?.animationName||"none"}h();var Tn=v(H());function ka({prop:t,defaultProp:e,onChange:o=()=>{}}){let[r,n]=cC({defaultProp:e,onChange:o}),i=t!==void 0,a=i?t:r,l=ro(o),s=(0,Tn.useCallback)(d=>{if(i){let c=typeof d=="function"?d(t):d;c!==t&&l(c)}else n(d)},[i,t,n,l]);return[a,s]}function cC({defaultProp:t,onChange:e}){let o=(0,Tn.useState)(t),[r]=o,n=(0,Tn.useRef)(r),i=ro(e);return(0,Tn.useEffect)(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),o}h();var dC=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Ia=new WeakMap,Ud=new WeakMap,Wd={},Of=0,by=function(t){return t&&(t.host||by(t.parentNode))},mC=function(t,e){return e.map(function(o){if(t.contains(o))return o;var r=by(o);return r&&t.contains(r)?r:(console.error("aria-hidden",o,"in not contained inside",t,". Doing nothing"),null)}).filter(function(o){return!!o})},pC=function(t,e,o,r){var n=mC(e,Array.isArray(t)?t:[t]);Wd[o]||(Wd[o]=new WeakMap);var i=Wd[o],a=[],l=new Set,s=new Set(n),d=function(c){!c||l.has(c)||(l.add(c),d(c.parentNode))};n.forEach(d);var m=function(c){!c||s.has(c)||Array.prototype.forEach.call(c.children,function(u){if(l.has(u))m(u);else try{var f=u.getAttribute(r),b=f!==null&&f!=="false",x=(Ia.get(u)||0)+1,y=(i.get(u)||0)+1;Ia.set(u,x),i.set(u,y),a.push(u),x===1&&b&&Ud.set(u,!0),y===1&&u.setAttribute(o,"true"),b||u.setAttribute(r,"true")}catch(k){console.error("aria-hidden: cannot operate on ",u,k)}})};return m(e),l.clear(),Of++,function(){a.forEach(function(c){var u=Ia.get(c)-1,f=i.get(c)-1;Ia.set(c,u),i.set(c,f),u||(Ud.has(c)||c.removeAttribute(r),Ud.delete(c)),f||c.removeAttribute(o)}),Of--,Of||(Ia=new WeakMap,Ia=new WeakMap,Ud=new WeakMap,Wd={})}},xy=function(t,e,o){o===void 0&&(o="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||dC(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),pC(r,n,o,"aria-hidden")):function(){return null}};h();h();h();var co=function(){return co=Object.assign||function(e){for(var o,r=1,n=arguments.length;r<n;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},co.apply(this,arguments)};function Gd(t,e){var o={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(t);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(o[r[n]]=t[r[n]]);return o}function vy(t,e,o){if(o||arguments.length===2)for(var r=0,n=e.length,i;r<n;r++)(i||!(r in e))&&(i||(i=Array.prototype.slice.call(e,0,r)),i[r]=e[r]);return t.concat(i||Array.prototype.slice.call(e))}var Xd=v(H());h();var Kt=v(H());h();var di="right-scroll-bar-position",mi="width-before-scroll-bar",Ff="with-scroll-bars-hidden",zf="--removed-body-scroll-bar-size";h();h();function Vd(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}h();var yy=v(H());function Ey(t,e){var o=(0,yy.useState)(function(){return{value:t,callback:e,facade:{get current(){return o.value},set current(r){var n=o.value;n!==r&&(o.value=r,o.callback(r,n))}}}})[0];return o.callback=e,o.facade}h();var Kd=v(H());var uC=typeof window<"u"?Kd.useLayoutEffect:Kd.useEffect,wy=new WeakMap;function Bf(t,e){var o=Ey(e||null,function(r){return t.forEach(function(n){return Vd(n,r)})});return uC(function(){var r=wy.get(o);if(r){var n=new Set(r),i=new Set(t),a=o.current;n.forEach(function(l){i.has(l)||Vd(l,null)}),i.forEach(function(l){n.has(l)||Vd(l,a)})}wy.set(o,t)},[t]),o}h();h();h();function fC(t){return t}function hC(t,e){e===void 0&&(e=fC);var o=[],r=!1,n={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return o.length?o[o.length-1]:t},useMedium:function(i){var a=e(i,r);return o.push(a),function(){o=o.filter(function(l){return l!==a})}},assignSyncMedium:function(i){for(r=!0;o.length;){var a=o;o=[],a.forEach(i)}o={push:function(l){return i(l)},filter:function(){return o}}},assignMedium:function(i){r=!0;var a=[];if(o.length){var l=o;o=[],l.forEach(i),a=o}var s=function(){var m=a;a=[],m.forEach(i)},d=function(){return Promise.resolve().then(s)};d(),o={push:function(m){a.push(m),d()},filter:function(m){return a=a.filter(m),o}}}};return n}function $f(t){t===void 0&&(t={});var e=hC(null);return e.options=co({async:!0,ssr:!1},t),e}h();var Cy=v(H()),Sy=function(t){var e=t.sideCar,o=Gd(t,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=e.read();if(!r)throw new Error("Sidecar medium not found");return Cy.createElement(r,co({},o))};Sy.isSideCarExport=!0;function Hf(t,e){return t.useMedium(e),Sy}var Yd=$f();var Uf=function(){},os=Kt.forwardRef(function(t,e){var o=Kt.useRef(null),r=Kt.useState({onScrollCapture:Uf,onWheelCapture:Uf,onTouchMoveCapture:Uf}),n=r[0],i=r[1],a=t.forwardProps,l=t.children,s=t.className,d=t.removeScrollBar,m=t.enabled,c=t.shards,u=t.sideCar,f=t.noIsolation,b=t.inert,x=t.allowPinchZoom,y=t.as,k=y===void 0?"div":y,C=Gd(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),w=u,A=Bf([o,e]),z=co(co({},C),n);return Kt.createElement(Kt.Fragment,null,m&&Kt.createElement(w,{sideCar:Yd,removeScrollBar:d,shards:c,noIsolation:f,inert:b,setCallbacks:i,allowPinchZoom:!!x,lockRef:o}),a?Kt.cloneElement(Kt.Children.only(l),co(co({},z),{ref:A})):Kt.createElement(k,co({},z,{className:s,ref:A}),l))});os.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};os.classNames={fullWidth:mi,zeroRight:di};h();h();var je=v(H());h();h();var Ma=v(H());h();h();h();var Iy=v(H());h();h();var Ty;var ky=function(){if(Ty)return Ty;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function gC(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=ky();return e&&t.setAttribute("nonce",e),t}function bC(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function xC(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var Wf=function(){var t=0,e=null;return{add:function(o){t==0&&(e=gC())&&(bC(e,o),xC(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var Gf=function(){var t=Wf();return function(e,o){Iy.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&o])}};var rs=function(){var t=Gf(),e=function(o){var r=o.styles,n=o.dynamic;return t(r,n),null};return e};h();var vC={left:0,top:0,right:0,gap:0},Vf=function(t){return parseInt(t||"",10)||0},yC=function(t){var e=window.getComputedStyle(document.body),o=e[t==="padding"?"paddingLeft":"marginLeft"],r=e[t==="padding"?"paddingTop":"marginTop"],n=e[t==="padding"?"paddingRight":"marginRight"];return[Vf(o),Vf(r),Vf(n)]},Kf=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return vC;var e=yC(t),o=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-o+e[2]-e[0])}};var EC=rs(),Aa="data-scroll-locked",wC=function(t,e,o,r){var n=t.left,i=t.top,a=t.right,l=t.gap;return o===void 0&&(o="margin"),`
2
+ .`.concat(Ff,` {
3
3
  overflow: hidden `).concat(r,`;
4
4
  padding-right: `).concat(l,"px ").concat(r,`;
5
5
  }
6
- body[`).concat(ka,`] {
6
+ body[`).concat(Aa,`] {
7
7
  overflow: hidden `).concat(r,`;
8
8
  overscroll-behavior: contain;
9
9
  `).concat([e&&"position: relative ".concat(r,";"),o==="margin"&&`
@@ -16,39 +16,39 @@ import{$ as Kn,$a as Zp,$b as ho,$c as Nr,$d as Lc,$e as a0,$f as Eu,A as an,Aa
16
16
  `),o==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),`
17
17
  }
18
18
 
19
- .`).concat(si,` {
19
+ .`).concat(di,` {
20
20
  right: `).concat(l,"px ").concat(r,`;
21
21
  }
22
22
 
23
- .`).concat(ci,` {
23
+ .`).concat(mi,` {
24
24
  margin-right: `).concat(l,"px ").concat(r,`;
25
25
  }
26
26
 
27
- .`).concat(si," .").concat(si,` {
27
+ .`).concat(di," .").concat(di,` {
28
28
  right: 0 `).concat(r,`;
29
29
  }
30
30
 
31
- .`).concat(ci," .").concat(ci,` {
31
+ .`).concat(mi," .").concat(mi,` {
32
32
  margin-right: 0 `).concat(r,`;
33
33
  }
34
34
 
35
- body[`).concat(ka,`] {
36
- `).concat(Nf,": ").concat(l,`px;
35
+ body[`).concat(Aa,`] {
36
+ `).concat(zf,": ").concat(l,`px;
37
37
  }
38
- `)},Iy=function(){var t=parseInt(document.body.getAttribute(ka)||"0",10);return isFinite(t)?t:0},EC=function(){Ia.useEffect(function(){return document.body.setAttribute(ka,(Iy()+1).toString()),function(){var t=Iy()-1;t<=0?document.body.removeAttribute(ka):document.body.setAttribute(ka,t.toString())}},[])},Gf=function(t){var e=t.noRelative,o=t.noImportant,r=t.gapMode,n=r===void 0?"margin":r;EC();var i=Ia.useMemo(function(){return Wf(n)},[n]);return Ia.createElement(vC,{styles:yC(i,!e,n,o?"":"!important")})};h();var Vf=!1;if(typeof window<"u")try{es=Object.defineProperty({},"passive",{get:function(){return Vf=!0,!0}}),window.addEventListener("test",es,es),window.removeEventListener("test",es,es)}catch{Vf=!1}var es,di=Vf?{passive:!1}:!1;h();var wC=function(t){return t.tagName==="TEXTAREA"},Ay=function(t,e){var o=window.getComputedStyle(t);return o[e]!=="hidden"&&!(o.overflowY===o.overflowX&&!wC(t)&&o[e]==="visible")},CC=function(t){return Ay(t,"overflowY")},SC=function(t){return Ay(t,"overflowX")},Kf=function(t,e){var o=e;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=My(t,o);if(r){var n=_y(t,o),i=n[1],a=n[2];if(i>a)return!0}o=o.parentNode}while(o&&o!==document.body);return!1},TC=function(t){var e=t.scrollTop,o=t.scrollHeight,r=t.clientHeight;return[e,o,r]},kC=function(t){var e=t.scrollLeft,o=t.scrollWidth,r=t.clientWidth;return[e,o,r]},My=function(t,e){return t==="v"?CC(e):SC(e)},_y=function(t,e){return t==="v"?TC(e):kC(e)},IC=function(t,e){return t==="h"&&e==="rtl"?-1:1},Ly=function(t,e,o,r,n){var i=IC(t,window.getComputedStyle(e).direction),a=i*r,l=o.target,s=e.contains(l),d=!1,c=a>0,m=0,u=0;do{var f=_y(t,l),b=f[0],x=f[1],y=f[2],T=x-y-i*b;(b||T)&&My(t,l)&&(m+=T,u+=b),l=l.parentNode}while(!s&&l!==document.body||s&&(e.contains(l)||e===l));return(c&&(n&&m===0||!n&&a>m)||!c&&(n&&u===0||!n&&-a>u))&&(d=!0),d};var Gd=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},Py=function(t){return[t.deltaX,t.deltaY]},Ry=function(t){return t&&"current"in t?t.current:t},AC=function(t,e){return t[0]===e[0]&&t[1]===e[1]},MC=function(t){return`
38
+ `)},Ay=function(){var t=parseInt(document.body.getAttribute(Aa)||"0",10);return isFinite(t)?t:0},CC=function(){Ma.useEffect(function(){return document.body.setAttribute(Aa,(Ay()+1).toString()),function(){var t=Ay()-1;t<=0?document.body.removeAttribute(Aa):document.body.setAttribute(Aa,t.toString())}},[])},Yf=function(t){var e=t.noRelative,o=t.noImportant,r=t.gapMode,n=r===void 0?"margin":r;CC();var i=Ma.useMemo(function(){return Kf(n)},[n]);return Ma.createElement(EC,{styles:wC(i,!e,n,o?"":"!important")})};h();var Zf=!1;if(typeof window<"u")try{ns=Object.defineProperty({},"passive",{get:function(){return Zf=!0,!0}}),window.addEventListener("test",ns,ns),window.removeEventListener("test",ns,ns)}catch{Zf=!1}var ns,pi=Zf?{passive:!1}:!1;h();var SC=function(t){return t.tagName==="TEXTAREA"},My=function(t,e){var o=window.getComputedStyle(t);return o[e]!=="hidden"&&!(o.overflowY===o.overflowX&&!SC(t)&&o[e]==="visible")},TC=function(t){return My(t,"overflowY")},kC=function(t){return My(t,"overflowX")},Xf=function(t,e){var o=e;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=_y(t,o);if(r){var n=Ly(t,o),i=n[1],a=n[2];if(i>a)return!0}o=o.parentNode}while(o&&o!==document.body);return!1},IC=function(t){var e=t.scrollTop,o=t.scrollHeight,r=t.clientHeight;return[e,o,r]},AC=function(t){var e=t.scrollLeft,o=t.scrollWidth,r=t.clientWidth;return[e,o,r]},_y=function(t,e){return t==="v"?TC(e):kC(e)},Ly=function(t,e){return t==="v"?IC(e):AC(e)},MC=function(t,e){return t==="h"&&e==="rtl"?-1:1},Py=function(t,e,o,r,n){var i=MC(t,window.getComputedStyle(e).direction),a=i*r,l=o.target,s=e.contains(l),d=!1,m=a>0,c=0,u=0;do{var f=Ly(t,l),b=f[0],x=f[1],y=f[2],k=x-y-i*b;(b||k)&&_y(t,l)&&(c+=k,u+=b),l=l.parentNode}while(!s&&l!==document.body||s&&(e.contains(l)||e===l));return(m&&(n&&c===0||!n&&a>c)||!m&&(n&&u===0||!n&&-a>u))&&(d=!0),d};var Zd=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},Ry=function(t){return[t.deltaX,t.deltaY]},Dy=function(t){return t&&"current"in t?t.current:t},_C=function(t,e){return t[0]===e[0]&&t[1]===e[1]},LC=function(t){return`
39
39
  .block-interactivity-`.concat(t,` {pointer-events: none;}
40
40
  .allow-interactivity-`).concat(t,` {pointer-events: all;}
41
- `)},_C=0,Aa=[];function Dy(t){var e=Xe.useRef([]),o=Xe.useRef([0,0]),r=Xe.useRef(),n=Xe.useState(_C++)[0],i=Xe.useState(function(){return Ql()})[0],a=Xe.useRef(t);Xe.useEffect(function(){a.current=t},[t]),Xe.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var x=xy([t.lockRef.current],(t.shards||[]).map(Ry),!0).filter(Boolean);return x.forEach(function(y){return y.classList.add("allow-interactivity-".concat(n))}),function(){document.body.classList.remove("block-interactivity-".concat(n)),x.forEach(function(y){return y.classList.remove("allow-interactivity-".concat(n))})}}},[t.inert,t.lockRef.current,t.shards]);var l=Xe.useCallback(function(x,y){if("touches"in x&&x.touches.length===2)return!a.current.allowPinchZoom;var T=Gd(x),C=o.current,w="deltaX"in x?x.deltaX:C[0]-T[0],A="deltaY"in x?x.deltaY:C[1]-T[1],z,I=x.target,M=Math.abs(w)>Math.abs(A)?"h":"v";if("touches"in x&&M==="h"&&I.type==="range")return!1;var _=Kf(M,I);if(!_)return!0;if(_?z=M:(z=M==="v"?"h":"v",_=Kf(M,I)),!_)return!1;if(!r.current&&"changedTouches"in x&&(w||A)&&(r.current=z),!z)return!0;var U=r.current||z;return Ly(U,y,x,U==="h"?w:A,!0)},[]),s=Xe.useCallback(function(x){var y=x;if(!(!Aa.length||Aa[Aa.length-1]!==i)){var T="deltaY"in y?Py(y):Gd(y),C=e.current.filter(function(z){return z.name===y.type&&z.target===y.target&&AC(z.delta,T)})[0];if(C&&C.should){y.cancelable&&y.preventDefault();return}if(!C){var w=(a.current.shards||[]).map(Ry).filter(Boolean).filter(function(z){return z.contains(y.target)}),A=w.length>0?l(y,w[0]):!a.current.noIsolation;A&&y.cancelable&&y.preventDefault()}}},[]),d=Xe.useCallback(function(x,y,T,C){var w={name:x,delta:y,target:T,should:C};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(A){return A!==w})},1)},[]),c=Xe.useCallback(function(x){o.current=Gd(x),r.current=void 0},[]),m=Xe.useCallback(function(x){d(x.type,Py(x),x.target,l(x,t.lockRef.current))},[]),u=Xe.useCallback(function(x){d(x.type,Gd(x),x.target,l(x,t.lockRef.current))},[]);Xe.useEffect(function(){return Aa.push(i),t.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:u}),document.addEventListener("wheel",s,di),document.addEventListener("touchmove",s,di),document.addEventListener("touchstart",c,di),function(){Aa=Aa.filter(function(x){return x!==i}),document.removeEventListener("wheel",s,di),document.removeEventListener("touchmove",s,di),document.removeEventListener("touchstart",c,di)}},[]);var f=t.removeScrollBar,b=t.inert;return Xe.createElement(Xe.Fragment,null,b?Xe.createElement(i,{styles:MC(n)}):null,f?Xe.createElement(Gf,{gapMode:"margin"}):null)}var Ny=Bf(Wd,Dy);var Oy=Vd.forwardRef(function(t,e){return Vd.createElement(Jl,co({},t,{ref:e,sideCar:Ny}))});Oy.classNames=Jl.classNames;var Yf=Oy;var Fy="Popover",[By,cP]=yr(Fy,[Pf]),Kd=Pf(),[LC,Ma]=By(Fy),PC=t=>{let{__scopePopover:e,children:o,open:r,defaultOpen:n,onOpenChange:i,modal:a=!1}=t,l=Kd(e),s=(0,Te.useRef)(null),[d,c]=(0,Te.useState)(!1),[m=!1,u]=Sa({prop:r,defaultProp:n,onChange:i});return(0,Te.createElement)(cy,l,(0,Te.createElement)(LC,{scope:e,contentId:ya(),triggerRef:s,open:m,onOpenChange:u,onOpenToggle:(0,Te.useCallback)(()=>u(f=>!f),[u]),hasCustomAnchor:d,onCustomAnchorAdd:(0,Te.useCallback)(()=>c(!0),[]),onCustomAnchorRemove:(0,Te.useCallback)(()=>c(!1),[]),modal:a},o))};var RC="PopoverTrigger",DC=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Ma(RC,o),i=Kd(o),a=Ft(e,n.triggerRef),l=(0,Te.createElement)(dt.button,Ce({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":Hy(n.open)},r,{ref:a,onClick:yt(t.onClick,n.onOpenToggle)}));return n.hasCustomAnchor?l:(0,Te.createElement)(dy,Ce({asChild:!0},i),l)}),zy="PopoverPortal",[NC,OC]=By(zy,{forceMount:void 0}),FC=t=>{let{__scopePopover:e,forceMount:o,children:r,container:n}=t,i=Ma(zy,e);return(0,Te.createElement)(NC,{scope:e,forceMount:o},(0,Te.createElement)(Ca,{present:o||i.open},(0,Te.createElement)(fy,{asChild:!0,container:n},r)))},ts="PopoverContent",BC=(0,Te.forwardRef)((t,e)=>{let o=OC(ts,t.__scopePopover),{forceMount:r=o.forceMount,...n}=t,i=Ma(ts,t.__scopePopover);return(0,Te.createElement)(Ca,{present:r||i.open},i.modal?(0,Te.createElement)(zC,Ce({},n,{ref:e})):(0,Te.createElement)($C,Ce({},n,{ref:e})))}),zC=(0,Te.forwardRef)((t,e)=>{let o=Ma(ts,t.__scopePopover),r=(0,Te.useRef)(null),n=Ft(e,r),i=(0,Te.useRef)(!1);return(0,Te.useEffect)(()=>{let a=r.current;if(a)return by(a)},[]),(0,Te.createElement)(Yf,{as:En,allowPinchZoom:!0},(0,Te.createElement)($y,Ce({},t,{ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:yt(t.onCloseAutoFocus,a=>{var l;a.preventDefault(),i.current||(l=o.triggerRef.current)===null||l===void 0||l.focus()}),onPointerDownOutside:yt(t.onPointerDownOutside,a=>{let l=a.detail.originalEvent,s=l.button===0&&l.ctrlKey===!0,d=l.button===2||s;i.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:yt(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),$C=(0,Te.forwardRef)((t,e)=>{let o=Ma(ts,t.__scopePopover),r=(0,Te.useRef)(!1);return(0,Te.createElement)($y,Ce({},t,{ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{var i;if((i=t.onCloseAutoFocus)===null||i===void 0||i.call(t,n),!n.defaultPrevented){var a;r.current||(a=o.triggerRef.current)===null||a===void 0||a.focus(),n.preventDefault()}r.current=!1},onInteractOutside:n=>{var i,a;(i=t.onInteractOutside)===null||i===void 0||i.call(t,n),n.defaultPrevented||(r.current=!0);let l=n.target;((a=o.triggerRef.current)===null||a===void 0?void 0:a.contains(l))&&n.preventDefault()}}))}),$y=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onInteractOutside:c,...m}=t,u=Ma(ts,o),f=Kd(o);return T2(),(0,Te.createElement)(_2,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},(0,Te.createElement)(E2,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:c,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onDismiss:()=>u.onOpenChange(!1)},(0,Te.createElement)(my,Ce({"data-state":Hy(u.open),role:"dialog",id:u.contentId},f,m,{ref:e,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var HC=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Kd(o);return(0,Te.createElement)(py,Ce({},n,r,{ref:e}))});function Hy(t){return t?"open":"closed"}var Yd=PC;var Zd=DC,Uy=FC,jd=BC;var Wy=HC;h();var or=v(H(),1);h();var qd=v(H(),1),Yy=v(br(),1);h();var Zf=v(H(),1),jf=Zf.default.createContext(null),Le=()=>Zf.default.useContext(jf);h();var os=v(H(),1);var Xd=t=>{let[e,o]=(0,os.useState)(null),r=Me(),{theme:n}=Le(),{container:i}=_t();return(0,os.useLayoutEffect)(()=>{e&&(e.className="",e.classList.add("excalidraw",...t?.className?.split(/\s+/)||[]),e.classList.toggle("excalidraw--mobile",r.editor.isMobile),e.classList.toggle("theme--dark",n===be.DARK))},[e,n,r.editor.isMobile,t?.className]),(0,os.useLayoutEffect)(()=>{let a=t?.parentSelector?i?.querySelector(t.parentSelector):document.body;if(!a)return;let l=document.createElement("div");return a.appendChild(l),o(l),()=>{a.removeChild(l)}},[i,t?.parentSelector]),e};h();var Vy=v(H(),1);function _a(t,e,o){(0,Vy.useEffect)(()=>{function r(n){let i=n;if(!t.current)return;let a=o?.(i,t.current);if(a===!0)return;if(a===!1)return e(i);t.current.contains(i.target)||!document.documentElement.contains(i.target)||i.target.closest("[data-radix-portal]")||i.target===document.documentElement&&document.body.style.pointerEvents==="none"||i.target.closest("[data-prevent-outside-click]")||e(i)}return document.addEventListener("pointerdown",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("pointerdown",r),document.removeEventListener("touchstart",r)}},[t,e,o])}h();var Ky=v(H(),1),La=t=>{let e=(0,Ky.useRef)(t);return Object.assign(e.current,t),e.current};var jy=v(k(),1),Tn=We(null),Zy=({onCancel:t,onChange:e,onSelect:o,colorPickerType:r})=>{let n=Xd({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),i=Le(),a=kn(),l=mo(),s=we(a,i),d=La({app:l,onCancel:t,onChange:e,onSelect:o,selectedElements:s}),{container:c}=_t();(0,qd.useEffect)(()=>{let u=m.current;if(!u||!l.canvas||!n)return;let f=!1,b=l.canvas.getContext("2d"),x=({clientX:I,clientY:M})=>{let _=b.getImageData((I-i.offsetLeft)*window.devicePixelRatio,(M-i.offsetTop)*window.devicePixelRatio,1,1).data;return c1(_[0],_[1],_[2])},y=({clientX:I,clientY:M,altKey:_})=>{u.style.top=`${M+20}px`,u.style.left=`${I+20}px`;let U=x({clientX:I,clientY:M});f&&d.onChange(r,U,d.selectedElements,{altKey:_}),u.style.background=U},T=()=>{d.onCancel()},C=(I,M)=>{d.onSelect(I,M)},w=I=>{f=!0,I.stopImmediatePropagation()},A=I=>{f=!1,c?.focus(),I.stopImmediatePropagation(),I.preventDefault(),C(x(I),I)},z=I=>{I.key===S.ESCAPE&&(I.preventDefault(),I.stopImmediatePropagation(),T())};return n.tabIndex=-1,n.focus(),y({clientX:d.app.lastViewportPosition.x,clientY:d.app.lastViewportPosition.y,altKey:!1}),n.addEventListener("keydown",z),n.addEventListener("pointerdown",w),n.addEventListener("pointerup",A),window.addEventListener("pointermove",y,{passive:!0}),window.addEventListener("blur",T),()=>{f=!1,n.removeEventListener("keydown",z),n.removeEventListener("pointerdown",w),n.removeEventListener("pointerup",A),window.removeEventListener("pointermove",y),window.removeEventListener("blur",T)}},[d,l.canvas,n,r,c,i.offsetLeft,i.offsetTop]);let m=(0,qd.useRef)(null);return _a(m,()=>{t()},u=>!!u.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),n?(0,Yy.createPortal)((0,jy.jsx)("div",{ref:m,className:"excalidraw-eye-dropper-preview"}),n):null};var wr=v(k(),1),Xy=({color:t,onChange:e,label:o,colorPickerType:r})=>{let n=Me(),[i,a]=(0,or.useState)(t),[l,s]=Se(Do);(0,or.useEffect)(()=>{a(t)},[t]);let d=(0,or.useCallback)(b=>{let x=b.toLowerCase(),y=qy(x);y&&e(y),a(x)},[e]),c=(0,or.useRef)(null),m=(0,or.useRef)(null);(0,or.useEffect)(()=>{c.current&&c.current.focus()},[l]);let[u,f]=Se(Tn,Ne);return(0,or.useEffect)(()=>()=>{f(null)},[f]),(0,wr.jsxs)("div",{className:"color-picker__input-label",children:[(0,wr.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,wr.jsx)("input",{ref:l==="hex"?c:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":o,onChange:b=>{d(b.target.value)},value:(i||"").replace(/^#/,""),onBlur:()=>{a(t)},tabIndex:-1,onFocus:()=>s("hex"),onKeyDown:b=>{b.key!==S.TAB&&(b.key===S.ESCAPE&&m.current?.focus(),b.stopPropagation())}}),!n.editor.isMobile&&(0,wr.jsxs)(wr.Fragment,{children:[(0,wr.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,wr.jsx)("div",{ref:m,className:$("excalidraw-eye-dropper-trigger",{selected:u}),onClick:()=>f(b=>b?null:{keepOpenOnAlt:!1,onSelect:x=>e(x),colorPickerType:r}),title:`${g("labels.eyeDropper")} \u2014 ${S.I.toLocaleUpperCase()} or ${F("Alt")} `,children:wv})]})]})};var Qy=v(H(),1);var Lt=v(k(),1),Jy=t=>{let e=new Option().style;return e.color=t,!!e.color},qy=t=>jn(t)?t:Jy(`#${t}`)?`#${t}`:Jy(t)?t:null,UC=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Ar,updateData:a})=>{let[,l]=Se(Do),[s,d]=Se(Tn,Ne),{container:c}=_t(),m=Me(),u=(0,Lt.jsxs)("div",{children:[(0,Lt.jsx)(ba,{children:g("colorPicker.hexCode")}),(0,Lt.jsx)(Xy,{color:e,label:r,onChange:x=>{o(x)},colorPickerType:t})]}),f=(0,Qy.useRef)(null),b=()=>{f.current?.querySelector(".color-picker-content")?.focus()};return(0,Lt.jsx)(Uy,{container:c,children:(0,Lt.jsxs)(jd,{ref:f,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:x=>{b(),x.preventDefault()},onPointerDownOutside:x=>{s&&x.preventDefault()},onCloseAutoFocus:x=>{x.stopPropagation(),x.preventDefault(),c&&!z1(document.activeElement)&&c.focus(),a({openPopup:null}),l(null)},side:m.editor.isMobile&&!m.viewport.isLandscape?"bottom":"right",align:m.editor.isMobile&&!m.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-layerUI)",backgroundColor:"var(--popup-bg-color)",maxWidth:"208px",maxHeight:window.innerHeight,padding:"12px",borderRadius:"8px",boxSizing:"border-box",overflowY:"auto",boxShadow:"0px 7px 14px rgba(0, 0, 0, 0.05), 0px 0px 3.12708px rgba(0, 0, 0, 0.0798), 0px 0px 0.931014px rgba(0, 0, 0, 0.1702)"},children:[i?(0,Lt.jsx)(u2,{palette:i,color:e,onChange:x=>{o(x)},onEyeDropperToggle:x=>{d(y=>x?(y=y||{keepOpenOnAlt:!0,onSelect:o,colorPickerType:t},y.keepOpenOnAlt=!0,y):x===!1||y?null:{keepOpenOnAlt:!1,onSelect:o,colorPickerType:t})},onEscape:x=>{s?d(null):To(x.target)?b():a({openPopup:null})},label:r,type:t,elements:n,updateData:a,children:u}):u,(0,Lt.jsx)(Wy,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},WC=({label:t,color:e,type:o})=>(0,Lt.jsx)(Zd,{type:"button",className:$("color-picker__button active-color",{"is-transparent":e==="transparent"||!e}),"aria-label":t,style:e?{"--swatch-color":e}:void 0,title:o==="elementStroke"?g("labels.showStroke"):g("labels.showBackground"),children:(0,Lt.jsx)("div",{className:"color-picker__button-outline"})}),rs=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Ar,topPicks:a,updateData:l,appState:s})=>(0,Lt.jsx)("div",{children:(0,Lt.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,Lt.jsx)(r2,{activeColor:e,onChange:o,type:t,topPicks:a}),(0,Lt.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,Lt.jsxs)(Yd,{open:s.openPopup===t,onOpenChange:d=>{l({openPopup:d?t:null})},children:[(0,Lt.jsx)(WC,{color:e,label:r,type:t}),s.openPopup===t&&(0,Lt.jsx)(UC,{type:t,color:e,onChange:o,label:r,elements:n,palette:i,updateData:l})]})]})});h();var An=v(H(),1);h();var In=v(H(),1);var eE=v(br(),1);var tE=v(k(),1),Jd=({children:t,left:e,top:o,onCloseRequest:r,fitInViewport:n=!1,offsetLeft:i=0,offsetTop:a=0,viewportWidth:l=window.innerWidth,viewportHeight:s=window.innerHeight})=>{let d=(0,In.useRef)(null);(0,In.useEffect)(()=>{let m=d.current;if(!m)return;m.contains(document.activeElement)||m.focus();let u=f=>{if(f.key===S.TAB){let b=hl(m),{activeElement:x}=document,y=b.findIndex(T=>T===x);x===m?(f.shiftKey?b[b.length-1]?.focus():b[0].focus(),f.preventDefault(),f.stopImmediatePropagation()):y===0&&f.shiftKey?(b[b.length-1]?.focus(),f.preventDefault(),f.stopImmediatePropagation()):y===b.length-1&&!f.shiftKey&&(b[0]?.focus(),f.preventDefault(),f.stopImmediatePropagation())}};return m.addEventListener("keydown",u),()=>m.removeEventListener("keydown",u)},[]);let c=(0,In.useRef)(null);return(0,In.useLayoutEffect)(()=>{if(n&&d.current&&o!=null&&e!=null){let m=d.current,{width:u,height:f}=m.getBoundingClientRect();if(c.current?.top===o&&c.current?.left===e)return;c.current={top:o,left:e},u>=l?(m.style.width=`${l}px`,m.style.left="0px",m.style.overflowX="scroll"):e+u-i>l?m.style.left=`${l-u-10}px`:m.style.left=`${e}px`,f>=s?(m.style.height=`${s-20}px`,m.style.top="10px",m.style.overflowY="scroll"):o+f-a>s?m.style.top=`${s-f}px`:m.style.top=`${o}px`}},[o,e,n,l,s,i,a]),(0,In.useEffect)(()=>{if(r){let m=u=>{d.current?.contains(u.target)||(0,eE.unstable_batchedUpdates)(()=>r(u))};return document.addEventListener("pointerdown",m,!1),()=>document.removeEventListener("pointerdown",m,!1)}},[r]),(0,tE.jsx)("div",{className:"popover",ref:d,tabIndex:-1,children:t})};var ro=v(k(),1);function GC({options:t,value:e,label:o,onChange:r,onClose:n}){let i=An.default.useRef(),a=An.default.useRef(),l=An.default.useRef(null);return An.default.useEffect(()=>{a.current?a.current.focus():l.current&&l.current.focus()},[]),(0,ro.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":o,onKeyDown:d=>{let c=t.find(m=>m.keyBinding===d.key.toLowerCase());if(!(d.metaKey||d.altKey||d.ctrlKey)&&c){let m=t.indexOf(c);l.current.children[m].focus(),d.preventDefault()}else if(d.key===S.TAB)setTimeout(()=>{let m=a.current,u=document.activeElement;m!==u&&n()},0);else if(Wi(d.key)){let{activeElement:m}=document,u=Gr().rtl,f=Array.prototype.indexOf.call(l.current.children,m);if(f!==-1){let b=t.length,x=f;switch(d.key){case(u?S.ARROW_LEFT:S.ARROW_RIGHT):case S.ARROW_DOWN:{x=(f+1)%b;break}case(u?S.ARROW_RIGHT:S.ARROW_LEFT):case S.ARROW_UP:{x=(b+f-1)%b;break}}l.current.children[x].focus()}d.preventDefault()}else(d.key===S.ESCAPE||d.key===S.ENTER)&&(d.preventDefault(),n());d.nativeEvent.stopImmediatePropagation(),d.stopPropagation()},children:(0,ro.jsx)("div",{className:"picker-content",ref:l,children:t.map((d,c)=>(0,ro.jsxs)("button",{className:$("picker-option",{active:e===d.value}),onClick:m=>{m.currentTarget.focus(),r(d.value)},title:`${d.text} ${d.keyBinding&&`\u2014 ${d.keyBinding.toUpperCase()}`}`,"aria-label":d.text||"none","aria-keyshortcuts":d.keyBinding||void 0,ref:m=>{m&&c===0&&(i.current=m),m&&d.value===e&&(a.current=m)},onFocus:()=>{r(d.value)},children:[d.icon,d.keyBinding&&(0,ro.jsx)("span",{className:"picker-keybinding",children:d.keyBinding})]},d.text))})})}function Xf({value:t,label:e,options:o,onChange:r,group:n=""}){let[i,a]=An.default.useState(!1),l=An.default.useRef(null),s=Gr().rtl;return(0,ro.jsxs)("div",{children:[(0,ro.jsx)("button",{name:n,className:i?"active":"","aria-label":e,onClick:()=>a(!i),ref:l,children:o.find(d=>d.value===t)?.icon}),(0,ro.jsx)(An.default.Suspense,{fallback:"",children:i?(0,ro.jsxs)(ro.Fragment,{children:[(0,ro.jsx)(Jd,{onCloseRequest:d=>d.target!==l.current&&a(!1),...s?{right:5.5}:{left:-5.5},children:(0,ro.jsx)(GC,{options:o.filter(d=>d.showInPicker!==!1),value:t,label:e,onChange:r,onClose:()=>{a(!1),l.current?.focus()}})}),(0,ro.jsx)("div",{className:"picker-triangle"})]}):null})]})}var se=v(k(),1),rE=.1,bo=(t,e,o,r=!1)=>{let n=pe(we(t,e,{includeBoundTextElement:r}));return t.map(i=>n.get(i.id)||i.id===e.editingElement?.id?o(i):i)},po=function(t,e,o,r,n){let i=e.editingElement,a=Ee(t),l=null;return i&&(l=o(i)),l||(Be(a,e)?l=H0(r===!0?a:a.filter(d=>r(d)),e,o)??(typeof n=="function"?n(!0):n):l=typeof n=="function"?n(!1):n),l},VC=(t,e)=>xt(e)?e:re(e,{x:t.textAlign==="left"?t.x:t.x+(t.width-e.width)/(t.textAlign==="center"?2:1),y:t.y+(t.height-e.height)/2},!1),qf=(t,e,o,r,n)=>{let i=new Set;return{elements:bo(t,e,a=>{if(ce(a)){let l=r(a);i.add(l);let s=he(a,{fontSize:l});return Ut(s,o.scene.getContainerElement(a),o.scene.getNonDeletedElementsMap()),s=VC(a,s),s}return a},!0),appState:{...e,currentItemFontSize:i.size===1?[...i][0]:n??e.currentItemFontSize},storeAction:P.CAPTURE}},KC=W({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemStrokeColor&&{elements:bo(t,e,r=>wl(r.type)?he(r,{strokeColor:o.currentItemStrokeColor}):r,!0)},appState:{...e,...o},storeAction:o.currentItemStrokeColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("h3",{"aria-hidden":"true",children:g("labels.stroke")}),(0,se.jsx)(rs,{topPicks:Vs,palette:l1,type:"elementStroke",label:g("labels.stroke"),color:po(t,e,n=>n.strokeColor,!0,e.currentItemStrokeColor),onChange:n=>o({currentItemStrokeColor:n}),elements:t,appState:e,updateData:o})]})}),YC=W({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemBackgroundColor&&{elements:bo(t,e,r=>he(r,{backgroundColor:o.currentItemBackgroundColor}))},appState:{...e,...o},storeAction:o.currentItemBackgroundColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,se.jsxs)(se.Fragment,{children:[(0,se.jsx)("h3",{"aria-hidden":"true",children:g("labels.background")}),(0,se.jsx)(rs,{topPicks:Ks,palette:s1,type:"elementBackground",label:g("labels.background"),color:po(t,e,n=>n.backgroundColor,!0,e.currentItemBackgroundColor),onChange:n=>o({currentItemBackgroundColor:n}),elements:t,appState:e,updateData:o})]})}),ZC=W({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(t,e,o,r)=>(xe("element","changeFillStyle",`${o} (${r.device.editor.isMobile?"mobile":"desktop"})`),{elements:bo(t,e,n=>he(n,{fillStyle:o})),appState:{...e,currentItemFillStyle:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=we(t,e),n=r.length>0&&r.every(i=>i.fillStyle==="zigzag");return(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.fill")}),(0,se.jsx)(xr,{type:"button",options:[{value:"hachure",text:`${n?g("labels.zigzag"):g("labels.hachure")} (${F("Alt-Click")})`,icon:n?zx:$x,active:n?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:g("labels.crossHatch"),icon:Hx,testId:"fill-cross-hatch"},{value:"solid",text:g("labels.solid"),icon:Ux,testId:"fill-solid"}],value:po(t,e,i=>i.fillStyle,i=>i.hasOwnProperty("fillStyle"),i=>i?null:e.currentItemFillStyle),onClick:(i,a)=>{let l=a.altKey&&i==="hachure"&&r.every(s=>s.fillStyle==="hachure")?"zigzag":i;o(l)}})]})}}),jC=W({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{strokeWidth:o})),appState:{...e,currentItemStrokeWidth:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.strokeWidth")}),(0,se.jsx)(xr,{group:"stroke-width",options:[{value:rc.thin,text:g("labels.thin"),icon:Ju,testId:"strokeWidth-thin"},{value:rc.bold,text:g("labels.bold"),icon:Wx,testId:"strokeWidth-bold"},{value:rc.extraBold,text:g("labels.extraBold"),icon:Gx,testId:"strokeWidth-extraBold"}],value:po(t,e,r=>r.strokeWidth,r=>r.hasOwnProperty("strokeWidth"),r=>r?null:e.currentItemStrokeWidth),onChange:r=>o(r)})]})}),XC=W({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{seed:ob(),roughness:o})),appState:{...e,currentItemRoughness:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.sloppiness")}),(0,se.jsx)(xr,{group:"sloppiness",options:[{value:0,text:g("labels.architect"),icon:Yx},{value:1,text:g("labels.artist"),icon:Zx},{value:2,text:g("labels.cartoonist"),icon:jx}],value:po(t,e,r=>r.roughness,r=>r.hasOwnProperty("roughness"),r=>r?null:e.currentItemRoughness),onChange:r=>o(r)})]})}),qR=W({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{strokeStyle:o})),appState:{...e,currentItemStrokeStyle:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.strokeStyle")}),(0,se.jsx)(xr,{group:"strokeStyle",options:[{value:"solid",text:g("labels.strokeStyle_solid"),icon:Ju},{value:"dashed",text:g("labels.strokeStyle_dashed"),icon:Vx},{value:"dotted",text:g("labels.strokeStyle_dotted"),icon:Kx}],value:po(t,e,r=>r.strokeStyle,r=>r.hasOwnProperty("strokeStyle"),r=>r?null:e.currentItemStrokeStyle),onChange:r=>o(r)})]})}),qC=W({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{opacity:o}),!0),appState:{...e,currentItemOpacity:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,se.jsxs)("label",{className:"control-label",children:[g("labels.opacity"),(0,se.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:r=>o(+r.target.value),value:po(t,e,r=>r.opacity,!0,e.currentItemOpacity)??void 0})]})}),JC=W({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,()=>o,o),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.fontSize")}),(0,se.jsx)(xr,{group:"font-size",options:[{value:16,text:g("labels.small"),icon:av,testId:"fontSize-small"},{value:20,text:g("labels.medium"),icon:lv,testId:"fontSize-medium"},{value:28,text:g("labels.large"),icon:sv,testId:"fontSize-large"},{value:36,text:g("labels.veryLarge"),icon:cv,testId:"fontSize-veryLarge"}],value:po(t,e,n=>{if(ce(n))return n.fontSize;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.fontSize:null},n=>ce(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:e.currentItemFontSize||_r),onChange:n=>o(n)})]})}),Jf=W({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:ef,trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,n=>Math.round(1/(1+rE)*n.fontSize)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_LEFT||t.key===S.COMMA)}),Qf=W({name:"increaseFontSize",label:"labels.increaseFontSize",icon:ef,trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,n=>Math.round(n.fontSize*(1+rE))),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_RIGHT||t.key===S.PERIOD)}),QC=W({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(ce(n)){let i=he(n,{fontFamily:o,lineHeight:Or(o)});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemFontFamily:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=[{value:cl.Virgil,text:g("labels.handDrawn"),icon:la,testId:"font-family-virgil"},{value:cl.Helvetica,text:g("labels.normal"),icon:dv,testId:"font-family-normal"},{value:cl.Cascadia,text:g("labels.code"),icon:mv,testId:"font-family-code"}];return(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.fontFamily")}),(0,se.jsx)(xr,{group:"font-family",options:n,value:po(t,e,i=>{if(ce(i))return i.fontFamily;let a=ct(i,r.scene.getNonDeletedElementsMap());return a?a.fontFamily:null},i=>ce(i)||ct(i,r.scene.getNonDeletedElementsMap())!==null,i=>i?null:e.currentItemFontFamily||Oi),onChange:i=>o(i)})]})}}),eS=W({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(ce(n)){let i=he(n,{textAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemTextAlign:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=r.scene.getNonDeletedElementsMap();return(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.textAlign")}),(0,se.jsx)(xr,{group:"text-align",options:[{value:"left",text:g("labels.left"),icon:pv,testId:"align-left"},{value:"center",text:g("labels.center"),icon:uv,testId:"align-horizontal-center"},{value:"right",text:g("labels.right"),icon:fv,testId:"align-right"}],value:po(t,e,i=>{if(ce(i))return i.textAlign;let a=ct(i,n);return a?a.textAlign:null},i=>ce(i)||ct(i,n)!==null,i=>i?null:e.currentItemTextAlign),onChange:i=>o(i)})]})}}),tS=W({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(ce(n)){let i=he(n,{verticalAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,se.jsx)("fieldset",{children:(0,se.jsx)(xr,{group:"text-align",options:[{value:wo.TOP,text:g("labels.alignTop"),icon:(0,se.jsx)(hv,{theme:e.theme}),testId:"align-top"},{value:wo.MIDDLE,text:g("labels.centerVertically"),icon:(0,se.jsx)(bv,{theme:e.theme}),testId:"align-middle"},{value:wo.BOTTOM,text:g("labels.alignBottom"),icon:(0,se.jsx)(gv,{theme:e.theme}),testId:"align-bottom"}],value:po(t,e,n=>{if(ce(n)&&n.containerId)return n.verticalAlign;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.verticalAlign:null},n=>ce(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:wo.MIDDLE),onChange:n=>o(n)})})}),JR=W({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{roundness:o==="round"?{type:$i(r.type)?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null})),appState:{...e,currentItemRoundness:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let n=oa(Ee(t),e).some(i=>i.roundness?.type===Co.LEGACY);return(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.edges")}),(0,se.jsx)(xr,{group:"edges",options:[{value:"sharp",text:g("labels.sharp"),icon:Xx},{value:"round",text:g("labels.round"),icon:qx}],value:po(t,e,i=>n?null:i.roundness?"round":"sharp",i=>i.hasOwnProperty("roundness"),i=>i?null:e.currentItemRoundness),onChange:i=>o(i)})]})}}),oE=t=>[{value:null,text:g("labels.arrowhead_none"),keyBinding:"q",icon:Jx},{value:"arrow",text:g("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,se.jsx)(Qx,{flip:t})},{value:"bar",text:g("labels.arrowhead_bar"),keyBinding:"e",icon:(0,se.jsx)(tv,{flip:t})},{value:"dot",text:g("labels.arrowhead_circle"),keyBinding:null,icon:(0,se.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle",text:g("labels.arrowhead_circle"),keyBinding:"r",icon:(0,se.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle_outline",text:g("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,se.jsx)(ev,{flip:t}),showInPicker:!1},{value:"triangle",text:g("labels.arrowhead_triangle"),icon:(0,se.jsx)(ov,{flip:t}),keyBinding:"t"},{value:"triangle_outline",text:g("labels.arrowhead_triangle_outline"),icon:(0,se.jsx)(rv,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond",text:g("labels.arrowhead_diamond"),icon:(0,se.jsx)(nv,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:g("labels.arrowhead_diamond_outline"),icon:(0,se.jsx)(iv,{flip:t}),keyBinding:null,showInPicker:!1}],QR=W({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>{if(_e(r)){let{position:n,type:i}=o;if(n==="start")return he(r,{startArrowhead:i});if(n==="end")return he(r,{endArrowhead:i})}return r}),appState:{...e,[o.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:o.type},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Gr().rtl;return(0,se.jsxs)("fieldset",{children:[(0,se.jsx)("legend",{children:g("labels.arrowheads")}),(0,se.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,se.jsx)(Xf,{label:"arrowhead_start",options:oE(!r),value:po(t,e,n=>_e(n)&&Ui(n.type)?n.startArrowhead:e.currentItemStartArrowhead,!0,e.currentItemStartArrowhead),onChange:n=>o({position:"start",type:n})}),(0,se.jsx)(Xf,{label:"arrowhead_end",group:"arrowheads",options:oE(!!r),value:po(t,e,n=>_e(n)&&Ui(n.type)?n.endArrowhead:e.currentItemEndArrowhead,!0,e.currentItemEndArrowhead),onChange:n=>o({position:"end",type:n})})]})]})}});h();h();var nE=v(H(),1),iE=v(k(),1),Pa=()=>{let t=document.querySelector(".excalidraw-tooltip");if(t)return t;let e=document.createElement("div");return document.body.appendChild(e),e.classList.add("excalidraw-tooltip"),e},eh=(t,e,o="bottom")=>{let r=t.getBoundingClientRect(),n=window.innerWidth,i=window.innerHeight,a=5,l=e.left+e.width/2-r.width/2;l<0?l=a:l+r.width>=n&&(l=n-r.width-a);let s;o==="bottom"?(s=e.top+e.height+a,s+r.height>=i&&(s=e.top-r.height-a)):(s=e.top-r.height-a,s<0&&(s=e.top+e.height+a)),Object.assign(t.style,{top:`${s}px`,left:`${l}px`})},oS=(t,e,o,r)=>{e.classList.add("excalidraw-tooltip--visible"),e.style.minWidth=r?"50ch":"10ch",e.style.maxWidth=r?"50ch":"15ch",e.textContent=o;let n=t.getBoundingClientRect();eh(e,n)},xo=({children:t,label:e,long:o=!1,style:r,disabled:n})=>((0,nE.useEffect)(()=>()=>Pa().classList.remove("excalidraw-tooltip--visible"),[]),n?null:(0,iE.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:i=>oS(i.currentTarget,Pa(),e,o),onPointerLeave:()=>Pa().classList.remove("excalidraw-tooltip--visible"),style:r,children:t}));var pi=v(k(),1),rS=W({name:"changeViewBackgroundColor",label:"labels.canvasBackground",paletteName:"Change canvas background color",trackEvent:!1,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.changeViewBackgroundColor&&!e.viewModeEnabled,perform:(t,e,o)=>({appState:{...e,...o},storeAction:o.viewBackgroundColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,pi.jsx)(rs,{palette:null,topPicks:Ys,label:g("labels.canvasBackground"),type:"canvasBackground",color:e.viewBackgroundColor,onChange:n=>o({viewBackgroundColor:n}),"data-testid":"canvas-background-picker",elements:t,appState:e,updateData:o})}),jr=W({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:er,trackEvent:{category:"canvas"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.clearCanvas&&!e.viewModeEnabled,perform:(t,e,o,r)=>(r.imageCache.clear(),{elements:t.map(n=>he(n,{isDeleted:!0})),appState:{...Ki(),files:{},theme:e.theme,penMode:e.penMode,penDetected:e.penDetected,exportBackground:e.exportBackground,exportEmbedScene:e.exportEmbedScene,gridSize:e.gridSize,showStats:e.showStats,pasteDialog:e.pasteDialog,activeTool:e.activeTool.type==="image"?{...e.activeTool,type:"selection"}:e.activeTool},storeAction:P.CAPTURE})}),Qd=W({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Nu,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(e.zoom.value+Kn)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(le,{type:"button",className:"zoom-in-button zoom-button",icon:Nu,title:`${g("buttons.zoomIn")} \u2014 ${F("CtrlOrCmd++")}`,"aria-label":g("buttons.zoomIn"),disabled:e.zoom.value>=Hp,onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.EQUAL||t.code===fe.NUM_ADD)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),em=W({name:"zoomOut",label:"buttons.zoomOut",icon:Ou,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(e.zoom.value-Kn)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(le,{type:"button",className:"zoom-out-button zoom-button",icon:Ou,title:`${g("buttons.zoomOut")} \u2014 ${F("CtrlOrCmd+-")}`,"aria-label":g("buttons.zoomOut"),disabled:e.zoom.value<=Js,onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.MINUS||t.code===fe.NUM_SUBTRACT)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),nS=W({name:"resetZoom",label:"buttons.resetZoom",icon:wx,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(1)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(xo,{label:g("buttons.resetZoom"),style:{height:"100%"},children:(0,pi.jsxs)(le,{type:"button",className:"reset-zoom-button zoom-button",title:g("buttons.resetZoom"),"aria-label":g("buttons.resetZoom"),onClick:()=>{t(null)},children:[(e.zoom.value*100).toFixed(0),"%"]})}),keyTest:t=>(t.code===fe.ZERO||t.code===fe.NUM_ZERO)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),iS=(t,e)=>{let[o,r,n,i]=t,a=n-o,l=e.width/a,s=i-r,d=e.height/s,c=Math.min(l,d),m=Math.floor(c/Kn)*Kn;return Math.min(Math.max(m,Js),1)},aE=({bounds:t,appState:e,fitToViewport:o=!1,viewportZoomFactor:r=.7})=>{let[n,i,a,l]=t,s=(n+a)/2,d=(i+l)/2,c,m,u;if(o){let f=a-n,b=l-i;c=Math.min(e.width/f,e.height/b)*Math.min(1,Math.max(r,.1)),c=Math.min(Math.max(c,Js),Hp);let x=e.width;if(e.openSidebar){let T=document.querySelector(".sidebar")?.offsetWidth??0;x=document.documentElement.getAttribute("dir")==="rtl"?e.width+T:e.width-T}m=x/2*(1/c)-s,u=e.height/2*(1/c)-d}else{c=iS(t,{width:e.width,height:e.height});let f=U0({scenePoint:{x:s,y:d},viewportDimensions:{width:e.width,height:e.height},zoom:{value:c}});m=f.scrollX,u=f.scrollY}return{appState:{...e,scrollX:m,scrollY:u,zoom:{value:c}},storeAction:P.NONE}},ns=({targetElements:t,appState:e,fitToViewport:o,viewportZoomFactor:r})=>{let n=Ze(Ee(t));return aE({bounds:n,appState:e,fitToViewport:o,viewportZoomFactor:r})},kD=W({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:wd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return ns({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!1})},keyTest:t=>t.code===fe.TWO&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),ID=W({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:wd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return ns({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!0})},keyTest:t=>t.code===fe.THREE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),aS=W({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:wd,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>ns({targetElements:t,appState:{...e,userToFollow:null},fitToViewport:!1}),keyTest:t=>t.code===fe.ONE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),mi=W({name:"toggleTheme",label:(t,e)=>e.theme===be.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:t=>t.theme===be.LIGHT?$l:Hl,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o)=>({appState:{...e,theme:o||(e.theme===be.LIGHT?be.DARK:be.LIGHT)},storeAction:P.NONE}),keyTest:t=>t.altKey&&t.shiftKey&&t.code===fe.D,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.toggleTheme}),AD=W({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(t,e)=>{let o;return Ao(e)?o=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):o=it(e,{type:"eraser",lastActiveToolBeforeEraser:e.activeTool}),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:o},storeAction:P.CAPTURE}},keyTest:t=>t.key===S.E}),lE=W({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:hd,viewMode:!1,perform:(t,e,o,r)=>{let n;return Fr(e)?n=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(n=it(e,{type:"hand",lastActiveToolBeforeEraser:e.activeTool}),Fe(r.interactiveCanvas,Oe.GRAB)),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:n},storeAction:P.CAPTURE}},keyTest:t=>!t.altKey&&!t[S.CTRL_OR_CMD]&&t.key===S.H});h();var sE=v(k(),1),Oo=W({name:"finalize",label:"",trackEvent:!1,perform:(t,e,o,r)=>{let{interactiveCanvas:n,focusContainer:i,scene:a}=r,l=a.getNonDeletedElementsMap();if(e.editingLinearElement){let{elementId:u,startBindingElement:f,endBindingElement:b}=e.editingLinearElement,x=ue.getElement(u,l);if(x)return Pr(x)&&gc(x,f,b,l),{elements:x.points.length<2||ti(x)?t.filter(y=>y.id!==x.id):void 0,appState:{...e,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:P.CAPTURE}}let s=t,d=e.pendingImageElementId&&a.getElement(e.pendingImageElementId);d&&re(d,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&i();let c=e.multiElement?e.multiElement:e.editingElement?.type==="freedraw"?e.editingElement:null;if(c){if(c.type!=="freedraw"&&e.lastPointerDownWith!=="touch"){let{points:f,lastCommittedPoint:b}=c;(!b||f[f.length-1]!==b)&&re(c,{points:c.points.slice(0,-1)})}ti(c)&&(s=s.filter(f=>f.id!==c.id));let u=vl(c.points,e.zoom.value);if((c.type==="line"||c.type==="freedraw")&&u){let f=c.points,b=f[0];re(c,{points:f.map((x,y)=>y===f.length-1?[b[0],b[1]]:x)})}if(Pr(c)&&!u&&c.points.length>1){let[f,b]=ue.getPointAtIndexGlobalCoordinates(c,-1,pe(t));Sl(c,e,{x:f,y:b},r)}}(!e.activeTool.locked&&e.activeTool.type!=="freedraw"||!c)&&Mo(n);let m;return e.activeTool.type==="eraser"?m=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=it(e,{type:"selection"}),{elements:s,appState:{...e,cursorButton:"up",activeTool:(e.activeTool.locked||e.activeTool.type==="freedraw")&&c?e.activeTool:m,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:c&&!e.activeTool.locked&&e.activeTool.type!=="freedraw"?{...e.selectedElementIds,[c.id]:!0}:e.selectedElementIds,selectedLinearElement:c&&_e(c)?new ue(c):e.selectedLinearElement,pendingImageElementId:null},storeAction:P.CAPTURE}},keyTest:(t,e)=>t.key===S.ESCAPE&&(e.editingLinearElement!==null||!e.draggingElement&&e.multiElement===null)||(t.key===S.ESCAPE||t.key===S.ENTER)&&e.multiElement!==null,PanelComponent:({appState:t,updateData:e,data:o})=>(0,sE.jsx)(le,{type:"button",icon:Px,title:g("buttons.done"),"aria-label":g("buttons.done"),onClick:e,visible:t.multiElement!=null,size:o?.size||"medium"})});h();h();var cE=v(H(),1);var is=v(k(),1),dE=t=>{let{id:e}=_t(),[o,r]=(0,cE.useState)(t.value),n=a=>{t.ignoreFocus||W1(a.target);let l=a.target.value;l!==t.value&&t.onChange(l)},i=a=>{if(a.key===S.ENTER){if(a.preventDefault(),a.nativeEvent.isComposing||a.keyCode===229)return;a.currentTarget.blur()}};return(0,is.jsxs)("div",{className:"ProjectName",children:[(0,is.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${t.label}:`}),(0,is.jsx)("input",{type:"text",className:"TextInput",onBlur:n,onKeyDown:i,id:`${e}-filename`,value:o,onChange:a=>r(a.target.value)})]})};h();var Ra=v(k(),1),pE=t=>{let e=t.title||(t.value===be.DARK?g("buttons.lightMode"):g("buttons.darkMode"));return(0,Ra.jsx)(le,{type:"icon",icon:t.value===be.LIGHT?mE.MOON:mE.SUN,title:e,"aria-label":e,onClick:()=>t.onChange(t.value===be.DARK?be.LIGHT:be.DARK),"data-testid":"toggle-dark-mode"})},mE={SUN:(0,Ra.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ra.jsx)("path",{fill:"currentColor",d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"})}),MOON:(0,Ra.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ra.jsx)("path",{fill:"currentColor",d:"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"})})};h();var ui=(t,{selectedElementIds:e},o)=>{t=Ee(t);let r=o&&Be(t,{selectedElementIds:e}),n=null,i=r?we(t,{selectedElementIds:e},{includeBoundTextElement:!0}):t;return r&&(i.length===1&&ye(i[0])?(n=i[0],i=Kc(t,n)):i.length>1&&(i=we(t,{selectedElementIds:e},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:n,exportedElements:pr(i)}},fi=async(t,e,o,r,{exportBackground:n,exportPadding:i=ln,viewBackgroundColor:a,name:l=o.name||D1,fileHandle:s=null,exportingFrame:d=null})=>{if(e.length===0)throw new Error(g("alerts.cannotExportEmptyCanvas"));if(t==="svg"||t==="clipboard-svg"){let m=zc(e,{exportBackground:n,exportWithDarkMode:o.exportWithDarkMode,viewBackgroundColor:a,exportPadding:i,exportScale:o.exportScale,exportEmbedScene:o.exportEmbedScene&&t==="svg"},r,{exportingFrame:d});if(t==="svg")return lu(m.then(u=>new Blob([u.outerHTML],{type:Dt.svg})),{description:"Export to SVG",name:l,extension:o.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:s});if(t==="clipboard-svg"){let u=await m.then(f=>f.outerHTML);try{await Ji(u)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return}}let c=h0(e,o,r,{exportBackground:n,viewBackgroundColor:a,exportPadding:i,exportingFrame:d});if(t==="png"){let m=$r(c);return o.exportEmbedScene&&(m=m.then(u=>import("./excalidraw-assets/image-VAGBVQ3G.js").then(({encodePngMetadata:f})=>f({blob:u,metadata:uu(e,o,r,"local")})))),lu(m,{description:"Export to PNG",name:l,extension:"png",fileHandle:s})}else if(t==="clipboard")try{let m=$r(c);await E0(m)}catch(m){throw console.warn(m),m.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):Mr&&m.name==="TypeError"?new Error(`${g("alerts.couldNotCopyToClipboard")}
41
+ `)},PC=0,_a=[];function Ny(t){var e=je.useRef([]),o=je.useRef([0,0]),r=je.useRef(),n=je.useState(PC++)[0],i=je.useState(function(){return rs()})[0],a=je.useRef(t);je.useEffect(function(){a.current=t},[t]),je.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var x=vy([t.lockRef.current],(t.shards||[]).map(Dy),!0).filter(Boolean);return x.forEach(function(y){return y.classList.add("allow-interactivity-".concat(n))}),function(){document.body.classList.remove("block-interactivity-".concat(n)),x.forEach(function(y){return y.classList.remove("allow-interactivity-".concat(n))})}}},[t.inert,t.lockRef.current,t.shards]);var l=je.useCallback(function(x,y){if("touches"in x&&x.touches.length===2)return!a.current.allowPinchZoom;var k=Zd(x),C=o.current,w="deltaX"in x?x.deltaX:C[0]-k[0],A="deltaY"in x?x.deltaY:C[1]-k[1],z,I=x.target,M=Math.abs(w)>Math.abs(A)?"h":"v";if("touches"in x&&M==="h"&&I.type==="range")return!1;var _=Xf(M,I);if(!_)return!0;if(_?z=M:(z=M==="v"?"h":"v",_=Xf(M,I)),!_)return!1;if(!r.current&&"changedTouches"in x&&(w||A)&&(r.current=z),!z)return!0;var $=r.current||z;return Py($,y,x,$==="h"?w:A,!0)},[]),s=je.useCallback(function(x){var y=x;if(!(!_a.length||_a[_a.length-1]!==i)){var k="deltaY"in y?Ry(y):Zd(y),C=e.current.filter(function(z){return z.name===y.type&&z.target===y.target&&_C(z.delta,k)})[0];if(C&&C.should){y.cancelable&&y.preventDefault();return}if(!C){var w=(a.current.shards||[]).map(Dy).filter(Boolean).filter(function(z){return z.contains(y.target)}),A=w.length>0?l(y,w[0]):!a.current.noIsolation;A&&y.cancelable&&y.preventDefault()}}},[]),d=je.useCallback(function(x,y,k,C){var w={name:x,delta:y,target:k,should:C};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(A){return A!==w})},1)},[]),m=je.useCallback(function(x){o.current=Zd(x),r.current=void 0},[]),c=je.useCallback(function(x){d(x.type,Ry(x),x.target,l(x,t.lockRef.current))},[]),u=je.useCallback(function(x){d(x.type,Zd(x),x.target,l(x,t.lockRef.current))},[]);je.useEffect(function(){return _a.push(i),t.setCallbacks({onScrollCapture:c,onWheelCapture:c,onTouchMoveCapture:u}),document.addEventListener("wheel",s,pi),document.addEventListener("touchmove",s,pi),document.addEventListener("touchstart",m,pi),function(){_a=_a.filter(function(x){return x!==i}),document.removeEventListener("wheel",s,pi),document.removeEventListener("touchmove",s,pi),document.removeEventListener("touchstart",m,pi)}},[]);var f=t.removeScrollBar,b=t.inert;return je.createElement(je.Fragment,null,b?je.createElement(i,{styles:LC(n)}):null,f?je.createElement(Yf,{gapMode:"margin"}):null)}var Oy=Hf(Yd,Ny);var Fy=Xd.forwardRef(function(t,e){return Xd.createElement(os,co({},t,{ref:e,sideCar:Oy}))});Fy.classNames=os.classNames;var jf=Fy;var zy="Popover",[By,pP]=wr(zy,[Nf]),jd=Nf(),[RC,La]=By(zy),DC=t=>{let{__scopePopover:e,children:o,open:r,defaultOpen:n,onOpenChange:i,modal:a=!1}=t,l=jd(e),s=(0,Te.useRef)(null),[d,m]=(0,Te.useState)(!1),[c=!1,u]=ka({prop:r,defaultProp:n,onChange:i});return(0,Te.createElement)(dy,l,(0,Te.createElement)(RC,{scope:e,contentId:wa(),triggerRef:s,open:c,onOpenChange:u,onOpenToggle:(0,Te.useCallback)(()=>u(f=>!f),[u]),hasCustomAnchor:d,onCustomAnchorAdd:(0,Te.useCallback)(()=>m(!0),[]),onCustomAnchorRemove:(0,Te.useCallback)(()=>m(!1),[]),modal:a},o))};var NC="PopoverTrigger",OC=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=La(NC,o),i=jd(o),a=Ft(e,n.triggerRef),l=(0,Te.createElement)(dt.button,Ce({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":Uy(n.open)},r,{ref:a,onClick:vt(t.onClick,n.onOpenToggle)}));return n.hasCustomAnchor?l:(0,Te.createElement)(my,Ce({asChild:!0},i),l)}),$y="PopoverPortal",[FC,zC]=By($y,{forceMount:void 0}),BC=t=>{let{__scopePopover:e,forceMount:o,children:r,container:n}=t,i=La($y,e);return(0,Te.createElement)(FC,{scope:e,forceMount:o},(0,Te.createElement)(Ta,{present:o||i.open},(0,Te.createElement)(hy,{asChild:!0,container:n},r)))},is="PopoverContent",$C=(0,Te.forwardRef)((t,e)=>{let o=zC(is,t.__scopePopover),{forceMount:r=o.forceMount,...n}=t,i=La(is,t.__scopePopover);return(0,Te.createElement)(Ta,{present:r||i.open},i.modal?(0,Te.createElement)(HC,Ce({},n,{ref:e})):(0,Te.createElement)(UC,Ce({},n,{ref:e})))}),HC=(0,Te.forwardRef)((t,e)=>{let o=La(is,t.__scopePopover),r=(0,Te.useRef)(null),n=Ft(e,r),i=(0,Te.useRef)(!1);return(0,Te.useEffect)(()=>{let a=r.current;if(a)return xy(a)},[]),(0,Te.createElement)(jf,{as:wn,allowPinchZoom:!0},(0,Te.createElement)(Hy,Ce({},t,{ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:vt(t.onCloseAutoFocus,a=>{var l;a.preventDefault(),i.current||(l=o.triggerRef.current)===null||l===void 0||l.focus()}),onPointerDownOutside:vt(t.onPointerDownOutside,a=>{let l=a.detail.originalEvent,s=l.button===0&&l.ctrlKey===!0,d=l.button===2||s;i.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:vt(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),UC=(0,Te.forwardRef)((t,e)=>{let o=La(is,t.__scopePopover),r=(0,Te.useRef)(!1);return(0,Te.createElement)(Hy,Ce({},t,{ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{var i;if((i=t.onCloseAutoFocus)===null||i===void 0||i.call(t,n),!n.defaultPrevented){var a;r.current||(a=o.triggerRef.current)===null||a===void 0||a.focus(),n.preventDefault()}r.current=!1},onInteractOutside:n=>{var i,a;(i=t.onInteractOutside)===null||i===void 0||i.call(t,n),n.defaultPrevented||(r.current=!0);let l=n.target;((a=o.triggerRef.current)===null||a===void 0?void 0:a.contains(l))&&n.preventDefault()}}))}),Hy=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onInteractOutside:m,...c}=t,u=La(is,o),f=jd(o);return k2(),(0,Te.createElement)(L2,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},(0,Te.createElement)(w2,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:m,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onDismiss:()=>u.onOpenChange(!1)},(0,Te.createElement)(py,Ce({"data-state":Uy(u.open),role:"dialog",id:u.contentId},f,c,{ref:e,style:{...c.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var WC=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=jd(o);return(0,Te.createElement)(uy,Ce({},n,r,{ref:e}))});function Uy(t){return t?"open":"closed"}var qd=DC;var Jd=OC,Wy=BC,Qd=$C;var Gy=WC;h();var nr=v(H(),1);h();var tm=v(H(),1),Zy=v(vr(),1);h();var qf=v(H(),1),Jf=qf.default.createContext(null),Le=()=>qf.default.useContext(Jf);h();var as=v(H(),1);var em=t=>{let[e,o]=(0,as.useState)(null),r=Ae(),{theme:n}=Le(),{container:i}=_t();return(0,as.useLayoutEffect)(()=>{e&&(e.className="",e.classList.add("excalidraw",...t?.className?.split(/\s+/)||[]),e.classList.toggle("excalidraw--mobile",r.editor.isMobile),e.classList.toggle("theme--dark",n===xe.DARK))},[e,n,r.editor.isMobile,t?.className]),(0,as.useLayoutEffect)(()=>{let a=t?.parentSelector?i?.querySelector(t.parentSelector):document.body;if(!a)return;let l=document.createElement("div");return a.appendChild(l),o(l),()=>{a.removeChild(l)}},[i,t?.parentSelector]),e};h();var Ky=v(H(),1);function Pa(t,e,o){(0,Ky.useEffect)(()=>{function r(n){let i=n;if(!t.current)return;let a=o?.(i,t.current);if(a===!0)return;if(a===!1)return e(i);t.current.contains(i.target)||!document.documentElement.contains(i.target)||i.target.closest("[data-radix-portal]")||i.target===document.documentElement&&document.body.style.pointerEvents==="none"||i.target.closest("[data-prevent-outside-click]")||e(i)}return document.addEventListener("pointerdown",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("pointerdown",r),document.removeEventListener("touchstart",r)}},[t,e,o])}h();var Yy=v(H(),1),Ra=t=>{let e=(0,Yy.useRef)(t);return Object.assign(e.current,t),e.current};var jy=v(T(),1),kn=Ue(null),Xy=({onCancel:t,onChange:e,onSelect:o,colorPickerType:r})=>{let n=em({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),i=Le(),a=In(),l=mo(),s=ye(a,i),d=Ra({app:l,onCancel:t,onChange:e,onSelect:o,selectedElements:s}),{container:m}=_t();(0,tm.useEffect)(()=>{let u=c.current;if(!u||!l.canvas||!n)return;let f=!1,b=l.canvas.getContext("2d"),x=({clientX:I,clientY:M})=>{let _=b.getImageData((I-i.offsetLeft)*window.devicePixelRatio,(M-i.offsetTop)*window.devicePixelRatio,1,1).data;return p1(_[0],_[1],_[2])},y=({clientX:I,clientY:M,altKey:_})=>{u.style.top=`${M+20}px`,u.style.left=`${I+20}px`;let $=x({clientX:I,clientY:M});f&&d.onChange(r,$,d.selectedElements,{altKey:_}),u.style.background=$},k=()=>{d.onCancel()},C=(I,M)=>{d.onSelect(I,M)},w=I=>{f=!0,I.stopImmediatePropagation()},A=I=>{f=!1,m?.focus(),I.stopImmediatePropagation(),I.preventDefault(),C(x(I),I)},z=I=>{I.key===S.ESCAPE&&(I.preventDefault(),I.stopImmediatePropagation(),k())};return n.tabIndex=-1,n.focus(),y({clientX:d.app.lastViewportPosition.x,clientY:d.app.lastViewportPosition.y,altKey:!1}),n.addEventListener("keydown",z),n.addEventListener("pointerdown",w),n.addEventListener("pointerup",A),window.addEventListener("pointermove",y,{passive:!0}),window.addEventListener("blur",k),()=>{f=!1,n.removeEventListener("keydown",z),n.removeEventListener("pointerdown",w),n.removeEventListener("pointerup",A),window.removeEventListener("pointermove",y),window.removeEventListener("blur",k)}},[d,l.canvas,n,r,m,i.offsetLeft,i.offsetTop]);let c=(0,tm.useRef)(null);return Pa(c,()=>{t()},u=>!!u.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),n?(0,Zy.createPortal)((0,jy.jsx)("div",{ref:c,className:"excalidraw-eye-dropper-preview"}),n):null};var Sr=v(T(),1),qy=({color:t,onChange:e,label:o,colorPickerType:r})=>{let n=Ae(),[i,a]=(0,nr.useState)(t),[l,s]=Se(Oo);(0,nr.useEffect)(()=>{a(t)},[t]);let d=(0,nr.useCallback)(b=>{let x=b.toLowerCase(),y=Jy(x);y&&e(y),a(x)},[e]),m=(0,nr.useRef)(null),c=(0,nr.useRef)(null);(0,nr.useEffect)(()=>{m.current&&m.current.focus()},[l]);let[u,f]=Se(kn,Ne);return(0,nr.useEffect)(()=>()=>{f(null)},[f]),(0,Sr.jsxs)("div",{className:"color-picker__input-label",children:[(0,Sr.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,Sr.jsx)("input",{ref:l==="hex"?m:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":o,onChange:b=>{d(b.target.value)},value:(i||"").replace(/^#/,""),onBlur:()=>{a(t)},tabIndex:-1,onFocus:()=>s("hex"),onKeyDown:b=>{b.key!==S.TAB&&(b.key===S.ESCAPE&&c.current?.focus(),b.stopPropagation())}}),!n.editor.isMobile&&(0,Sr.jsxs)(Sr.Fragment,{children:[(0,Sr.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,Sr.jsx)("div",{ref:c,className:B("excalidraw-eye-dropper-trigger",{selected:u}),onClick:()=>f(b=>b?null:{keepOpenOnAlt:!1,onSelect:x=>e(x),colorPickerType:r}),title:`${g("labels.eyeDropper")} \u2014 ${S.I.toLocaleUpperCase()} or ${F("Alt")} `,children:Cv})]})]})};var eE=v(H(),1);var Lt=v(T(),1),Qy=t=>{let e=new Option().style;return e.color=t,!!e.color},Jy=t=>jn(t)?t:Qy(`#${t}`)?`#${t}`:Qy(t)?t:null,GC=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=_r,updateData:a})=>{let[,l]=Se(Oo),[s,d]=Se(kn,Ne),{container:m}=_t(),c=Ae(),u=(0,Lt.jsxs)("div",{children:[(0,Lt.jsx)(va,{children:g("colorPicker.hexCode")}),(0,Lt.jsx)(qy,{color:e,label:r,onChange:x=>{o(x)},colorPickerType:t})]}),f=(0,eE.useRef)(null),b=()=>{f.current?.querySelector(".color-picker-content")?.focus()};return(0,Lt.jsx)(Wy,{container:m,children:(0,Lt.jsxs)(Qd,{ref:f,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:x=>{b(),x.preventDefault()},onPointerDownOutside:x=>{s&&x.preventDefault()},onCloseAutoFocus:x=>{x.stopPropagation(),x.preventDefault(),m&&!H1(document.activeElement)&&m.focus(),a({openPopup:null}),l(null)},side:c.editor.isMobile&&!c.viewport.isLandscape?"bottom":"right",align:c.editor.isMobile&&!c.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-layerUI)",backgroundColor:"var(--popup-bg-color)",maxWidth:"208px",maxHeight:window.innerHeight,padding:"12px",borderRadius:"8px",boxSizing:"border-box",overflowY:"auto",boxShadow:"0px 7px 14px rgba(0, 0, 0, 0.05), 0px 0px 3.12708px rgba(0, 0, 0, 0.0798), 0px 0px 0.931014px rgba(0, 0, 0, 0.1702)"},children:[i?(0,Lt.jsx)(f2,{palette:i,color:e,onChange:x=>{o(x)},onEyeDropperToggle:x=>{d(y=>x?(y=y||{keepOpenOnAlt:!0,onSelect:o,colorPickerType:t},y.keepOpenOnAlt=!0,y):x===!1||y?null:{keepOpenOnAlt:!1,onSelect:o,colorPickerType:t})},onEscape:x=>{s?d(null):Io(x.target)?b():a({openPopup:null})},label:r,type:t,elements:n,updateData:a,children:u}):u,(0,Lt.jsx)(Gy,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},VC=({label:t,color:e,type:o})=>(0,Lt.jsx)(Jd,{type:"button",className:B("color-picker__button active-color",{"is-transparent":e==="transparent"||!e}),"aria-label":t,style:e?{"--swatch-color":e}:void 0,title:o==="elementStroke"?g("labels.showStroke"):g("labels.showBackground"),children:(0,Lt.jsx)("div",{className:"color-picker__button-outline"})}),ls=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=_r,topPicks:a,updateData:l,appState:s})=>(0,Lt.jsx)("div",{children:(0,Lt.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,Lt.jsx)(n2,{activeColor:e,onChange:o,type:t,topPicks:a}),(0,Lt.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,Lt.jsxs)(qd,{open:s.openPopup===t,onOpenChange:d=>{l({openPopup:d?t:null})},children:[(0,Lt.jsx)(VC,{color:e,label:r,type:t}),s.openPopup===t&&(0,Lt.jsx)(GC,{type:t,color:e,onChange:o,label:r,elements:n,palette:i,updateData:l})]})]})});h();var Mn=v(H(),1);h();var An=v(H(),1);var tE=v(vr(),1);var oE=v(T(),1),om=({children:t,left:e,top:o,onCloseRequest:r,fitInViewport:n=!1,offsetLeft:i=0,offsetTop:a=0,viewportWidth:l=window.innerWidth,viewportHeight:s=window.innerHeight})=>{let d=(0,An.useRef)(null);(0,An.useEffect)(()=>{let c=d.current;if(!c)return;c.contains(document.activeElement)||c.focus();let u=f=>{if(f.key===S.TAB){let b=vl(c),{activeElement:x}=document,y=b.findIndex(k=>k===x);x===c?(f.shiftKey?b[b.length-1]?.focus():b[0].focus(),f.preventDefault(),f.stopImmediatePropagation()):y===0&&f.shiftKey?(b[b.length-1]?.focus(),f.preventDefault(),f.stopImmediatePropagation()):y===b.length-1&&!f.shiftKey&&(b[0]?.focus(),f.preventDefault(),f.stopImmediatePropagation())}};return c.addEventListener("keydown",u),()=>c.removeEventListener("keydown",u)},[]);let m=(0,An.useRef)(null);return(0,An.useLayoutEffect)(()=>{if(n&&d.current&&o!=null&&e!=null){let c=d.current,{width:u,height:f}=c.getBoundingClientRect();if(m.current?.top===o&&m.current?.left===e)return;m.current={top:o,left:e},u>=l?(c.style.width=`${l}px`,c.style.left="0px",c.style.overflowX="scroll"):e+u-i>l?c.style.left=`${l-u-10}px`:c.style.left=`${e}px`,f>=s?(c.style.height=`${s-20}px`,c.style.top="10px",c.style.overflowY="scroll"):o+f-a>s?c.style.top=`${s-f}px`:c.style.top=`${o}px`}},[o,e,n,l,s,i,a]),(0,An.useEffect)(()=>{if(r){let c=u=>{d.current?.contains(u.target)||(0,tE.unstable_batchedUpdates)(()=>r(u))};return document.addEventListener("pointerdown",c,!1),()=>document.removeEventListener("pointerdown",c,!1)}},[r]),(0,oE.jsx)("div",{className:"popover",ref:d,tabIndex:-1,children:t})};var no=v(T(),1);function KC({options:t,value:e,label:o,onChange:r,onClose:n}){let i=Mn.default.useRef(),a=Mn.default.useRef(),l=Mn.default.useRef(null);return Mn.default.useEffect(()=>{a.current?a.current.focus():l.current&&l.current.focus()},[]),(0,no.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":o,onKeyDown:d=>{let m=t.find(c=>c.keyBinding===d.key.toLowerCase());if(!(d.metaKey||d.altKey||d.ctrlKey)&&m){let c=t.indexOf(m);l.current.children[c].focus(),d.preventDefault()}else if(d.key===S.TAB)setTimeout(()=>{let c=a.current,u=document.activeElement;c!==u&&n()},0);else if(Vi(d.key)){let{activeElement:c}=document,u=Vr().rtl,f=Array.prototype.indexOf.call(l.current.children,c);if(f!==-1){let b=t.length,x=f;switch(d.key){case(u?S.ARROW_LEFT:S.ARROW_RIGHT):case S.ARROW_DOWN:{x=(f+1)%b;break}case(u?S.ARROW_RIGHT:S.ARROW_LEFT):case S.ARROW_UP:{x=(b+f-1)%b;break}}l.current.children[x].focus()}d.preventDefault()}else(d.key===S.ESCAPE||d.key===S.ENTER)&&(d.preventDefault(),n());d.nativeEvent.stopImmediatePropagation(),d.stopPropagation()},children:(0,no.jsx)("div",{className:"picker-content",ref:l,children:t.map((d,m)=>(0,no.jsxs)("button",{type:"button",className:B("picker-option",{active:e===d.value}),onClick:c=>{c.currentTarget.focus(),r(d.value)},title:`${d.text} ${d.keyBinding&&`\u2014 ${d.keyBinding.toUpperCase()}`}`,"aria-label":d.text||"none","aria-keyshortcuts":d.keyBinding||void 0,ref:c=>{c&&m===0&&(i.current=c),c&&d.value===e&&(a.current=c)},onFocus:()=>{r(d.value)},children:[d.icon,d.keyBinding&&(0,no.jsx)("span",{className:"picker-keybinding",children:d.keyBinding})]},d.text))})})}function Qf({value:t,label:e,options:o,onChange:r,group:n=""}){let[i,a]=Mn.default.useState(!1),l=Mn.default.useRef(null),s=Vr().rtl;return(0,no.jsxs)("div",{children:[(0,no.jsx)("button",{name:n,type:"button",className:i?"active":"","aria-label":e,onClick:()=>a(!i),ref:l,children:o.find(d=>d.value===t)?.icon}),(0,no.jsx)(Mn.default.Suspense,{fallback:"",children:i?(0,no.jsxs)(no.Fragment,{children:[(0,no.jsx)(om,{onCloseRequest:d=>d.target!==l.current&&a(!1),...s?{right:5.5}:{left:-5.5},children:(0,no.jsx)(KC,{options:o.filter(d=>d.showInPicker!==!1),value:t,label:e,onChange:r,onClose:()=>{a(!1),l.current?.focus()}})}),(0,no.jsx)("div",{className:"picker-triangle"})]}):null})]})}var ce=v(T(),1),nE=.1,xo=(t,e,o,r=!1)=>{let n=fe(ye(t,e,{includeBoundTextElement:r}));return t.map(i=>n.get(i.id)||i.id===e.editingElement?.id?o(i):i)},po=function(t,e,o,r,n){let i=e.editingElement,a=we(t),l=null;return i&&(l=o(i)),l||(ze(a,e)?l=U0(r===!0?a:a.filter(d=>r(d)),e,o)??(typeof n=="function"?n(!0):n):l=typeof n=="function"?n(!1):n),l},YC=(t,e)=>Mt(e)||!e.autoResize?e:re(e,{x:t.textAlign==="left"?t.x:t.x+(t.width-e.width)/(t.textAlign==="center"?2:1),y:t.y+(t.height-e.height)/2},!1),eh=(t,e,o,r,n)=>{let i=new Set;return{elements:xo(t,e,a=>{if(oe(a)){let l=r(a);i.add(l);let s=pe(a,{fontSize:l});return Ut(s,o.scene.getContainerElement(a),o.scene.getNonDeletedElementsMap()),s=YC(a,s),s}return a},!0),appState:{...e,currentItemFontSize:i.size===1?[...i][0]:n??e.currentItemFontSize},storeAction:D.CAPTURE}},ZC=U({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemStrokeColor&&{elements:xo(t,e,r=>kl(r.type)?pe(r,{strokeColor:o.currentItemStrokeColor}):r,!0)},appState:{...e,...o},storeAction:o.currentItemStrokeColor?D.CAPTURE:D.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,ce.jsxs)(ce.Fragment,{children:[(0,ce.jsx)("h3",{"aria-hidden":"true",children:g("labels.stroke")}),(0,ce.jsx)(ls,{topPicks:Zs,palette:d1,type:"elementStroke",label:g("labels.stroke"),color:po(t,e,n=>n.strokeColor,!0,e.currentItemStrokeColor),onChange:n=>o({currentItemStrokeColor:n}),elements:t,appState:e,updateData:o})]})}),XC=U({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemBackgroundColor&&{elements:xo(t,e,r=>pe(r,{backgroundColor:o.currentItemBackgroundColor}))},appState:{...e,...o},storeAction:o.currentItemBackgroundColor?D.CAPTURE:D.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,ce.jsxs)(ce.Fragment,{children:[(0,ce.jsx)("h3",{"aria-hidden":"true",children:g("labels.background")}),(0,ce.jsx)(ls,{topPicks:Xs,palette:m1,type:"elementBackground",label:g("labels.background"),color:po(t,e,n=>n.backgroundColor,!0,e.currentItemBackgroundColor),onChange:n=>o({currentItemBackgroundColor:n}),elements:t,appState:e,updateData:o})]})}),jC=U({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(t,e,o,r)=>(ve("element","changeFillStyle",`${o} (${r.device.editor.isMobile?"mobile":"desktop"})`),{elements:xo(t,e,n=>pe(n,{fillStyle:o})),appState:{...e,currentItemFillStyle:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=ye(t,e),n=r.length>0&&r.every(i=>i.fillStyle==="zigzag");return(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.fill")}),(0,ce.jsx)(yr,{type:"button",options:[{value:"hachure",text:`${n?g("labels.zigzag"):g("labels.hachure")} (${F("Alt-Click")})`,icon:n?$x:Hx,active:n?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:g("labels.crossHatch"),icon:Ux,testId:"fill-cross-hatch"},{value:"solid",text:g("labels.solid"),icon:Wx,testId:"fill-solid"}],value:po(t,e,i=>i.fillStyle,i=>i.hasOwnProperty("fillStyle"),i=>i?null:e.currentItemFillStyle),onClick:(i,a)=>{let l=a.altKey&&i==="hachure"&&r.every(s=>s.fillStyle==="hachure")?"zigzag":i;o(l)}})]})}}),qC=U({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(t,e,o)=>({elements:xo(t,e,r=>pe(r,{strokeWidth:o})),appState:{...e,currentItemStrokeWidth:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.strokeWidth")}),(0,ce.jsx)(yr,{group:"stroke-width",options:[{value:sc.thin,text:g("labels.thin"),icon:tf,testId:"strokeWidth-thin"},{value:sc.bold,text:g("labels.bold"),icon:Gx,testId:"strokeWidth-bold"},{value:sc.extraBold,text:g("labels.extraBold"),icon:Vx,testId:"strokeWidth-extraBold"}],value:po(t,e,r=>r.strokeWidth,r=>r.hasOwnProperty("strokeWidth"),r=>r?null:e.currentItemStrokeWidth),onChange:r=>o(r)})]})}),JC=U({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(t,e,o)=>({elements:xo(t,e,r=>pe(r,{seed:nb(),roughness:o})),appState:{...e,currentItemRoughness:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.sloppiness")}),(0,ce.jsx)(yr,{group:"sloppiness",options:[{value:0,text:g("labels.architect"),icon:Zx},{value:1,text:g("labels.artist"),icon:Xx},{value:2,text:g("labels.cartoonist"),icon:jx}],value:po(t,e,r=>r.roughness,r=>r.hasOwnProperty("roughness"),r=>r?null:e.currentItemRoughness),onChange:r=>o(r)})]})}),eD=U({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(t,e,o)=>({elements:xo(t,e,r=>pe(r,{strokeStyle:o})),appState:{...e,currentItemStrokeStyle:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.strokeStyle")}),(0,ce.jsx)(yr,{group:"strokeStyle",options:[{value:"solid",text:g("labels.strokeStyle_solid"),icon:tf},{value:"dashed",text:g("labels.strokeStyle_dashed"),icon:Kx},{value:"dotted",text:g("labels.strokeStyle_dotted"),icon:Yx}],value:po(t,e,r=>r.strokeStyle,r=>r.hasOwnProperty("strokeStyle"),r=>r?null:e.currentItemStrokeStyle),onChange:r=>o(r)})]})}),QC=U({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(t,e,o)=>({elements:xo(t,e,r=>pe(r,{opacity:o}),!0),appState:{...e,currentItemOpacity:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ce.jsxs)("label",{className:"control-label",children:[g("labels.opacity"),(0,ce.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:r=>o(+r.target.value),value:po(t,e,r=>r.opacity,!0,e.currentItemOpacity)??void 0})]})}),eS=U({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(t,e,o,r)=>eh(t,e,r,()=>o,o),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.fontSize")}),(0,ce.jsx)(yr,{group:"font-size",options:[{value:16,text:g("labels.small"),icon:lv,testId:"fontSize-small"},{value:20,text:g("labels.medium"),icon:sv,testId:"fontSize-medium"},{value:28,text:g("labels.large"),icon:cv,testId:"fontSize-large"},{value:36,text:g("labels.veryLarge"),icon:dv,testId:"fontSize-veryLarge"}],value:po(t,e,n=>{if(oe(n))return n.fontSize;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.fontSize:null},n=>oe(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:e.currentItemFontSize||qo),onChange:n=>o(n)})]})}),th=U({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:rf,trackEvent:!1,perform:(t,e,o,r)=>eh(t,e,r,n=>Math.round(1/(1+nE)*n.fontSize)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_LEFT||t.key===S.COMMA)}),oh=U({name:"increaseFontSize",label:"labels.increaseFontSize",icon:rf,trackEvent:!1,perform:(t,e,o,r)=>eh(t,e,r,n=>Math.round(n.fontSize*(1+nE))),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_RIGHT||t.key===S.PERIOD)}),tS=U({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(t,e,o,r)=>({elements:xo(t,e,n=>{if(oe(n)){let i=pe(n,{fontFamily:o,lineHeight:Fr(o)});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemFontFamily:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=[{value:pl.Virgil,text:g("labels.handDrawn"),icon:ca,testId:"font-family-virgil"},{value:pl.Helvetica,text:g("labels.normal"),icon:mv,testId:"font-family-normal"},{value:pl.Cascadia,text:g("labels.code"),icon:pv,testId:"font-family-code"}];return(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.fontFamily")}),(0,ce.jsx)(yr,{group:"font-family",options:n,value:po(t,e,i=>{if(oe(i))return i.fontFamily;let a=ct(i,r.scene.getNonDeletedElementsMap());return a?a.fontFamily:null},i=>oe(i)||ct(i,r.scene.getNonDeletedElementsMap())!==null,i=>i?null:e.currentItemFontFamily||zi),onChange:i=>o(i)})]})}}),oS=U({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(t,e,o,r)=>({elements:xo(t,e,n=>{if(oe(n)){let i=pe(n,{textAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemTextAlign:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=r.scene.getNonDeletedElementsMap();return(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.textAlign")}),(0,ce.jsx)(yr,{group:"text-align",options:[{value:"left",text:g("labels.left"),icon:uv,testId:"align-left"},{value:"center",text:g("labels.center"),icon:fv,testId:"align-horizontal-center"},{value:"right",text:g("labels.right"),icon:hv,testId:"align-right"}],value:po(t,e,i=>{if(oe(i))return i.textAlign;let a=ct(i,n);return a?a.textAlign:null},i=>oe(i)||ct(i,n)!==null,i=>i?null:e.currentItemTextAlign),onChange:i=>o(i)})]})}}),rS=U({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:xo(t,e,n=>{if(oe(n)){let i=pe(n,{verticalAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ce.jsx)("fieldset",{children:(0,ce.jsx)(yr,{group:"text-align",options:[{value:So.TOP,text:g("labels.alignTop"),icon:(0,ce.jsx)(gv,{theme:e.theme}),testId:"align-top"},{value:So.MIDDLE,text:g("labels.centerVertically"),icon:(0,ce.jsx)(xv,{theme:e.theme}),testId:"align-middle"},{value:So.BOTTOM,text:g("labels.alignBottom"),icon:(0,ce.jsx)(bv,{theme:e.theme}),testId:"align-bottom"}],value:po(t,e,n=>{if(oe(n)&&n.containerId)return n.verticalAlign;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.verticalAlign:null},n=>oe(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:So.MIDDLE),onChange:n=>o(n)})})}),tD=U({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(t,e,o)=>({elements:xo(t,e,r=>pe(r,{roundness:o==="round"?{type:Ui(r.type)?To.ADAPTIVE_RADIUS:To.PROPORTIONAL_RADIUS}:null})),appState:{...e,currentItemRoundness:o},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let n=na(we(t),e).some(i=>i.roundness?.type===To.LEGACY);return(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.edges")}),(0,ce.jsx)(yr,{group:"edges",options:[{value:"sharp",text:g("labels.sharp"),icon:qx},{value:"round",text:g("labels.round"),icon:Jx}],value:po(t,e,i=>n?null:i.roundness?"round":"sharp",i=>i.hasOwnProperty("roundness"),i=>i?null:e.currentItemRoundness),onChange:i=>o(i)})]})}}),rE=t=>[{value:null,text:g("labels.arrowhead_none"),keyBinding:"q",icon:Qx},{value:"arrow",text:g("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,ce.jsx)(ev,{flip:t})},{value:"bar",text:g("labels.arrowhead_bar"),keyBinding:"e",icon:(0,ce.jsx)(ov,{flip:t})},{value:"dot",text:g("labels.arrowhead_circle"),keyBinding:null,icon:(0,ce.jsx)(of,{flip:t}),showInPicker:!1},{value:"circle",text:g("labels.arrowhead_circle"),keyBinding:"r",icon:(0,ce.jsx)(of,{flip:t}),showInPicker:!1},{value:"circle_outline",text:g("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,ce.jsx)(tv,{flip:t}),showInPicker:!1},{value:"triangle",text:g("labels.arrowhead_triangle"),icon:(0,ce.jsx)(rv,{flip:t}),keyBinding:"t"},{value:"triangle_outline",text:g("labels.arrowhead_triangle_outline"),icon:(0,ce.jsx)(nv,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond",text:g("labels.arrowhead_diamond"),icon:(0,ce.jsx)(iv,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:g("labels.arrowhead_diamond_outline"),icon:(0,ce.jsx)(av,{flip:t}),keyBinding:null,showInPicker:!1}],oD=U({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(t,e,o)=>({elements:xo(t,e,r=>{if(_e(r)){let{position:n,type:i}=o;if(n==="start")return pe(r,{startArrowhead:i});if(n==="end")return pe(r,{endArrowhead:i})}return r}),appState:{...e,[o.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:o.type},storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Vr().rtl;return(0,ce.jsxs)("fieldset",{children:[(0,ce.jsx)("legend",{children:g("labels.arrowheads")}),(0,ce.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,ce.jsx)(Qf,{label:"arrowhead_start",options:rE(!r),value:po(t,e,n=>_e(n)&&Gi(n.type)?n.startArrowhead:e.currentItemStartArrowhead,!0,e.currentItemStartArrowhead),onChange:n=>o({position:"start",type:n})}),(0,ce.jsx)(Qf,{label:"arrowhead_end",group:"arrowheads",options:rE(!!r),value:po(t,e,n=>_e(n)&&Gi(n.type)?n.endArrowhead:e.currentItemEndArrowhead,!0,e.currentItemEndArrowhead),onChange:n=>o({position:"end",type:n})})]})]})}});h();h();var iE=v(H(),1),aE=v(T(),1),Da=()=>{let t=document.querySelector(".excalidraw-tooltip");if(t)return t;let e=document.createElement("div");return document.body.appendChild(e),e.classList.add("excalidraw-tooltip"),e},rh=(t,e,o="bottom")=>{let r=t.getBoundingClientRect(),n=window.innerWidth,i=window.innerHeight,a=5,l=e.left+e.width/2-r.width/2;l<0?l=a:l+r.width>=n&&(l=n-r.width-a);let s;o==="bottom"?(s=e.top+e.height+a,s+r.height>=i&&(s=e.top-r.height-a)):(s=e.top-r.height-a,s<0&&(s=e.top+e.height+a)),Object.assign(t.style,{top:`${s}px`,left:`${l}px`})},nS=(t,e,o,r)=>{e.classList.add("excalidraw-tooltip--visible"),e.style.minWidth=r?"50ch":"10ch",e.style.maxWidth=r?"50ch":"15ch",e.textContent=o;let n=t.getBoundingClientRect();rh(e,n)},vo=({children:t,label:e,long:o=!1,style:r,disabled:n})=>((0,iE.useEffect)(()=>()=>Da().classList.remove("excalidraw-tooltip--visible"),[]),n?null:(0,aE.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:i=>nS(i.currentTarget,Da(),e,o),onPointerLeave:()=>Da().classList.remove("excalidraw-tooltip--visible"),style:r,children:t}));var fi=v(T(),1),iS=U({name:"changeViewBackgroundColor",label:"labels.canvasBackground",paletteName:"Change canvas background color",trackEvent:!1,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.changeViewBackgroundColor&&!e.viewModeEnabled,perform:(t,e,o)=>({appState:{...e,...o},storeAction:o.viewBackgroundColor?D.CAPTURE:D.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,fi.jsx)(ls,{palette:null,topPicks:js,label:g("labels.canvasBackground"),type:"canvasBackground",color:e.viewBackgroundColor,onChange:n=>o({viewBackgroundColor:n}),"data-testid":"canvas-background-picker",elements:t,appState:e,updateData:o})}),jr=U({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:or,trackEvent:{category:"canvas"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.clearCanvas&&!e.viewModeEnabled,perform:(t,e,o,r)=>(r.imageCache.clear(),{elements:t.map(n=>pe(n,{isDeleted:!0})),appState:{...Zi(),files:{},theme:e.theme,penMode:e.penMode,penDetected:e.penDetected,exportBackground:e.exportBackground,exportEmbedScene:e.exportEmbedScene,gridSize:e.gridSize,showStats:e.showStats,pasteDialog:e.pasteDialog,activeTool:e.activeTool.type==="image"?{...e.activeTool,type:"selection"}:e.activeTool},storeAction:D.CAPTURE})}),rm=U({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:zu,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Wr({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Ur(e.zoom.value+Yn)},e),userToFollow:null},storeAction:D.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,fi.jsx)(se,{type:"button",className:"zoom-in-button zoom-button",icon:zu,title:`${g("buttons.zoomIn")} \u2014 ${F("CtrlOrCmd++")}`,"aria-label":g("buttons.zoomIn"),disabled:e.zoom.value>=Wp,onClick:()=>{t(null)}}),keyTest:t=>(t.code===ge.EQUAL||t.code===ge.NUM_ADD)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),nm=U({name:"zoomOut",label:"buttons.zoomOut",icon:Bu,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Wr({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Ur(e.zoom.value-Yn)},e),userToFollow:null},storeAction:D.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,fi.jsx)(se,{type:"button",className:"zoom-out-button zoom-button",icon:Bu,title:`${g("buttons.zoomOut")} \u2014 ${F("CtrlOrCmd+-")}`,"aria-label":g("buttons.zoomOut"),disabled:e.zoom.value<=rc,onClick:()=>{t(null)}}),keyTest:t=>(t.code===ge.MINUS||t.code===ge.NUM_SUBTRACT)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),aS=U({name:"resetZoom",label:"buttons.resetZoom",icon:Cx,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Wr({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Ur(1)},e),userToFollow:null},storeAction:D.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,fi.jsx)(vo,{label:g("buttons.resetZoom"),style:{height:"100%"},children:(0,fi.jsxs)(se,{type:"button",className:"reset-zoom-button zoom-button",title:g("buttons.resetZoom"),"aria-label":g("buttons.resetZoom"),onClick:()=>{t(null)},children:[(e.zoom.value*100).toFixed(0),"%"]})}),keyTest:t=>(t.code===ge.ZERO||t.code===ge.NUM_ZERO)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),lS=(t,e)=>{let[o,r,n,i]=t,a=n-o,l=e.width/a,s=i-r,d=e.height/s,m=Math.min(l,d),c=Math.floor(m/Yn)*Yn;return Math.min(Math.max(c,rc),1)},lE=({bounds:t,appState:e,fitToViewport:o=!1,viewportZoomFactor:r=.7})=>{let[n,i,a,l]=t,s=(n+a)/2,d=(i+l)/2,m,c,u;if(o){let f=a-n,b=l-i;m=Math.min(e.width/f,e.height/b)*Math.min(1,Math.max(r,.1)),m=Math.min(Math.max(m,rc),Wp);let x=e.width;if(e.openSidebar){let k=document.querySelector(".sidebar")?.offsetWidth??0;x=document.documentElement.getAttribute("dir")==="rtl"?e.width+k:e.width-k}c=x/2*(1/m)-s,u=e.height/2*(1/m)-d}else{m=lS(t,{width:e.width,height:e.height});let f=W0({scenePoint:{x:s,y:d},viewportDimensions:{width:e.width,height:e.height},zoom:{value:m}});c=f.scrollX,u=f.scrollY}return{appState:{...e,scrollX:c,scrollY:u,zoom:{value:m}},storeAction:D.NONE}},ss=({targetElements:t,appState:e,fitToViewport:o,viewportZoomFactor:r})=>{let n=Ze(we(t));return lE({bounds:n,appState:e,fitToViewport:o,viewportZoomFactor:r})},MD=U({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:kd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return ss({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!1})},keyTest:t=>t.code===ge.TWO&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),_D=U({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:kd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return ss({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!0})},keyTest:t=>t.code===ge.THREE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),sS=U({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:kd,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>ss({targetElements:t,appState:{...e,userToFollow:null},fitToViewport:!1}),keyTest:t=>t.code===ge.ONE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),ui=U({name:"toggleTheme",label:(t,e)=>e.theme===xe.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:t=>t.theme===xe.LIGHT?Gl:Vl,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o)=>({appState:{...e,theme:o||(e.theme===xe.LIGHT?xe.DARK:xe.LIGHT)},storeAction:D.NONE}),keyTest:t=>t.altKey&&t.shiftKey&&t.code===ge.D,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.toggleTheme}),LD=U({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(t,e)=>{let o;return _o(e)?o=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):o=it(e,{type:"eraser",lastActiveToolBeforeEraser:e.activeTool}),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:o},storeAction:D.CAPTURE}},keyTest:t=>t.key===S.E}),sE=U({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:vd,viewMode:!1,perform:(t,e,o,r)=>{let n;return zr(e)?n=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(n=it(e,{type:"hand",lastActiveToolBeforeEraser:e.activeTool}),Fe(r.interactiveCanvas,Oe.GRAB)),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:n},storeAction:D.CAPTURE}},keyTest:t=>!t.altKey&&!t[S.CTRL_OR_CMD]&&t.key===S.H});h();var cE=v(T(),1),zo=U({name:"finalize",label:"",trackEvent:!1,perform:(t,e,o,r)=>{let{interactiveCanvas:n,focusContainer:i,scene:a}=r,l=a.getNonDeletedElementsMap();if(e.editingLinearElement){let{elementId:u,startBindingElement:f,endBindingElement:b}=e.editingLinearElement,x=he.getElement(u,l);if(x)return Rr(x)&&yc(x,f,b,l),{elements:x.points.length<2||ri(x)?t.filter(y=>y.id!==x.id):void 0,appState:{...e,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:D.CAPTURE}}let s=t,d=e.pendingImageElementId&&a.getElement(e.pendingImageElementId);d&&re(d,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&i();let m=e.multiElement?e.multiElement:e.editingElement?.type==="freedraw"?e.editingElement:null;if(m){if(m.type!=="freedraw"&&e.lastPointerDownWith!=="touch"){let{points:f,lastCommittedPoint:b}=m;(!b||f[f.length-1]!==b)&&re(m,{points:m.points.slice(0,-1)})}ri(m)&&(s=s.filter(f=>f.id!==m.id));let u=Cl(m.points,e.zoom.value);if((m.type==="line"||m.type==="freedraw")&&u){let f=m.points,b=f[0];re(m,{points:f.map((x,y)=>y===f.length-1?[b[0],b[1]]:x)})}if(Rr(m)&&!u&&m.points.length>1){let[f,b]=he.getPointAtIndexGlobalCoordinates(m,-1,fe(t));Al(m,e,{x:f,y:b},r)}}(!e.activeTool.locked&&e.activeTool.type!=="freedraw"||!m)&&Lo(n);let c;return e.activeTool.type==="eraser"?c=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):c=it(e,{type:"selection"}),{elements:s,appState:{...e,cursorButton:"up",activeTool:(e.activeTool.locked||e.activeTool.type==="freedraw")&&m?e.activeTool:c,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:m&&!e.activeTool.locked&&e.activeTool.type!=="freedraw"?{...e.selectedElementIds,[m.id]:!0}:e.selectedElementIds,selectedLinearElement:m&&_e(m)?new he(m):e.selectedLinearElement,pendingImageElementId:null},storeAction:D.CAPTURE}},keyTest:(t,e)=>t.key===S.ESCAPE&&(e.editingLinearElement!==null||!e.draggingElement&&e.multiElement===null)||(t.key===S.ESCAPE||t.key===S.ENTER)&&e.multiElement!==null,PanelComponent:({appState:t,updateData:e,data:o})=>(0,cE.jsx)(se,{type:"button",icon:Rx,title:g("buttons.done"),"aria-label":g("buttons.done"),onClick:e,visible:t.multiElement!=null,size:o?.size||"medium"})});h();h();var dE=v(H(),1);var cs=v(T(),1),mE=t=>{let{id:e}=_t(),[o,r]=(0,dE.useState)(t.value),n=a=>{t.ignoreFocus||V1(a.target);let l=a.target.value;l!==t.value&&t.onChange(l)},i=a=>{if(a.key===S.ENTER){if(a.preventDefault(),a.nativeEvent.isComposing||a.keyCode===229)return;a.currentTarget.blur()}};return(0,cs.jsxs)("div",{className:"ProjectName",children:[(0,cs.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${t.label}:`}),(0,cs.jsx)("input",{type:"text",className:"TextInput",onBlur:n,onKeyDown:i,id:`${e}-filename`,value:o,onChange:a=>r(a.target.value)})]})};h();var Na=v(T(),1),uE=t=>{let e=t.title||(t.value===xe.DARK?g("buttons.lightMode"):g("buttons.darkMode"));return(0,Na.jsx)(se,{type:"icon",icon:t.value===xe.LIGHT?pE.MOON:pE.SUN,title:e,"aria-label":e,onClick:()=>t.onChange(t.value===xe.DARK?xe.LIGHT:xe.DARK),"data-testid":"toggle-dark-mode"})},pE={SUN:(0,Na.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Na.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,Na.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Na.jsx)("path",{fill:"currentColor",d:"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"})})};h();var hi=(t,{selectedElementIds:e},o)=>{t=we(t);let r=o&&ze(t,{selectedElementIds:e}),n=null,i=r?ye(t,{selectedElementIds:e},{includeBoundTextElement:!0}):t;return r&&(i.length===1&&Ee(i[0])?(n=i[0],i=jc(t,n)):i.length>1&&(i=ye(t,{selectedElementIds:e},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:n,exportedElements:fr(i)}},gi=async(t,e,o,r,{exportBackground:n,exportPadding:i=sn,viewBackgroundColor:a,name:l=o.name||O1,fileHandle:s=null,exportingFrame:d=null})=>{if(e.length===0)throw new Error(g("alerts.cannotExportEmptyCanvas"));if(t==="svg"||t==="clipboard-svg"){let c=Wc(e,{exportBackground:n,exportWithDarkMode:o.exportWithDarkMode,viewBackgroundColor:a,exportPadding:i,exportScale:o.exportScale,exportEmbedScene:o.exportEmbedScene&&t==="svg"},r,{exportingFrame:d});if(t==="svg")return du(c.then(u=>new Blob([u.outerHTML],{type:Dt.svg})),{description:"Export to SVG",name:l,extension:o.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:s});if(t==="clipboard-svg"){let u=await c.then(f=>f.outerHTML);try{await ea(u)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return}}let m=g0(e,o,r,{exportBackground:n,viewBackgroundColor:a,exportPadding:i,exportingFrame:d});if(t==="png"){let c=Hr(m);return o.exportEmbedScene&&(c=c.then(u=>import("./excalidraw-assets/image-SZBFRCU2.js").then(({encodePngMetadata:f})=>f({blob:u,metadata:gu(e,o,r,"local")})))),du(c,{description:"Export to PNG",name:l,extension:"png",fileHandle:s})}else if(t==="clipboard")try{let c=Hr(m);await w0(c)}catch(c){throw console.warn(c),c.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):Lr&&c.name==="TypeError"?new Error(`${g("alerts.couldNotCopyToClipboard")}
42
42
 
43
- ${g("hints.firefox_clipboard_write")}`):new Error(g("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};h();var uE=async(t,e,o,r)=>{let{exportBackground:n,viewBackgroundColor:i,fileHandle:a}=e,l=Hb(a);if(!a||!Ub(l))throw new Error("fileHandle should exist and should be of type svg or png when resaving");e={...e,exportEmbedScene:!0};let{exportedElements:s,exportingFrame:d}=ui(t,e,!1);return await fi(l,s,e,o,{exportBackground:n,viewBackgroundColor:i,name:r,fileHandle:a,exportingFrame:d}),{fileHandle:a}};h();var as=v(k(),1),hi=({children:t,checked:e,onChange:o,className:r})=>(0,as.jsxs)("div",{className:$("Checkbox",r,{"is-checked":e}),onClick:n=>{o(!e,n),n.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,as.jsx)("button",{className:"Checkbox-box",role:"checkbox","aria-checked":e,children:Ix}),(0,as.jsx)("div",{className:"Checkbox-label",children:t})]});var uo=v(k(),1),th=W({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(t,e,o)=>({appState:{...e,name:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e,appProps:o,data:r,app:n})=>(0,uo.jsx)(dE,{label:g("labels.fileTitle"),value:n.getName(),onChange:i=>e(i),ignoreFocus:r?.ignoreFocus??!1})}),fE=W({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(t,e,o)=>({appState:{...e,exportScale:o},storeAction:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Ee(t),i=Be(r,e)?we(r,e):r;return(0,uo.jsx)(uo.Fragment,{children:tc.map(a=>{let[l,s]=g0(i,ln,a),d=`${g("imageExportDialog.label.scale")} ${a}x (${l}x${s})`;return(0,uo.jsx)(le,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:d,"aria-label":d,id:"export-canvas-scale",checked:a===e.exportScale,onChange:()=>o(a)},a)})})}}),oh=W({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(t,e,o)=>({appState:{...e,exportBackground:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)(hi,{checked:t.exportBackground,onChange:o=>e(o),children:g("imageExportDialog.label.withBackground")})}),tm=W({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(t,e,o)=>({appState:{...e,exportEmbedScene:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsxs)(hi,{checked:t.exportEmbedScene,onChange:o=>e(o),children:[g("imageExportDialog.label.embedScene"),(0,uo.jsx)(xo,{label:g("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,uo.jsx)("div",{className:"excalidraw-tooltip-icon",children:Rx})})]})}),om=W({name:"saveToActiveFile",label:"buttons.save",icon:ni,trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.saveToActiveFile&&!!e.fileHandle&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{let n=!!e.fileHandle;try{let{fileHandle:i}=Rc(e.fileHandle)?await uE(t,e,r.files,r.getName()):await Fc(t,e,r.files,r.getName());return{storeAction:P.NONE,appState:{...e,fileHandle:i,toast:n?{message:i?.name?g("toast.fileSavedToFilename").replace("{filename}",`"${i.name}"`):g("toast.fileSaved")}:null}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{storeAction:P.NONE}}},keyTest:t=>t.key===S.S&&t[S.CTRL_OR_CMD]&&!t.shiftKey}),ls=W({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:ni,viewMode:!0,trackEvent:{category:"export"},perform:async(t,e,o,r)=>{try{let{fileHandle:n}=await Fc(t,{...e,fileHandle:null},r.files,r.getName());return{storeAction:P.NONE,appState:{...e,openDialog:null,fileHandle:n,toast:{message:g("toast.fileSaved")}}}}catch(n){return n?.name!=="AbortError"?console.error(n):console.warn(n),{storeAction:P.NONE}}},keyTest:t=>t.key===S.S&&t.shiftKey&&t[S.CTRL_OR_CMD],PanelComponent:({updateData:t})=>(0,uo.jsx)(le,{type:"button",icon:Mx,title:g("buttons.saveAs"),"aria-label":g("buttons.saveAs"),showAriaLabel:Me().editor.isMobile,hidden:!ji,onClick:()=>t(null),"data-testid":"save-as-button"})}),Da=W({name:"loadScene",label:"buttons.load",trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.loadScene&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{try{let{elements:n,appState:i,files:a}=await fu(e,t);return{elements:n,appState:i,files:a,storeAction:P.CAPTURE}}catch(n){return n?.name==="AbortError"?(console.warn(n),!1):{elements:t,appState:{...e,errorMessage:n.message},files:r.files,storeAction:P.NONE}}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.O}),hE=W({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(t,e,o)=>({appState:{...e,exportWithDarkMode:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,uo.jsx)(pE,{value:t.exportWithDarkMode?be.DARK:be.LIGHT,onChange:o=>{e(o===be.DARK)},title:g("imageExportDialog.label.darkMode")})})});h();var gE="{}",rh=W({name:"copyStyles",label:"labels.copyStyles",icon:of,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=[],i=t.find(a=>e.selectedElementIds[a.id]);if(n.push(i),i&&fr(i)){let a=ct(i,r.scene.getNonDeletedElementsMap());n.push(a)}return i&&(gE=JSON.stringify(n)),{appState:{...e,toast:{message:g("toast.copyStyles")}},storeAction:P.NONE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.C}),nh=W({name:"pasteStyles",label:"labels.pasteStyles",icon:of,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=JSON.parse(gE),i=n[0],a=n[1];if(!Q1(i))return{elements:t,storeAction:P.NONE};let l=we(t,e,{includeBoundTextElement:!0}),s=l.map(d=>d.id);return{elements:t.map(d=>{if(s.includes(d.id)){let c=i;if(ce(d)&&d.containerId&&(c=a),!c)return d;let m=he(d,{backgroundColor:c?.backgroundColor,strokeWidth:c?.strokeWidth,strokeColor:c?.strokeColor,strokeStyle:c?.strokeStyle,fillStyle:c?.fillStyle,opacity:c?.opacity,roughness:c?.roughness,roundness:c.roundness?eb(c.roundness.type,d)?c.roundness:tb(d):null});if(ce(m)){let u=c.fontSize||_r,f=c.fontFamily||Oi;m=he(m,{fontSize:u,fontFamily:f,textAlign:c.textAlign||f1,lineHeight:c.lineHeight||Or(f)});let b=null;m.containerId&&(b=l.find(x=>ce(m)&&x.id===m.containerId)||null),Ut(m,b,r.scene.getNonDeletedElementsMap())}return m.type==="arrow"&&ur(c)&&(m=he(m,{startArrowhead:c.startArrowhead,endArrowhead:c.endArrowhead})),ye(d)&&(m=he(m,{roundness:null,backgroundColor:"transparent"})),m}return d}),storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V});h();var ih=v(k(),1),lS=W({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="canvas"?null:"canvas"},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,ih.jsx)(le,{type:"button",icon:dd,"aria-label":g("buttons.menu"),onClick:e,selected:t.openMenu==="canvas"})}),sS=W({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="shape"?null:"shape"},storeAction:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ih.jsx)(le,{visible:ea(e,Ee(t)),type:"button",icon:_x,"aria-label":g("buttons.edit"),onClick:o,selected:e.openMenu==="shape"})}),gi=W({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:Sx,viewMode:!0,trackEvent:{category:"menu",action:"toggleHelpDialog"},perform:(t,e,o,{focusContainer:r})=>(e.openDialog?.name==="help"&&r(),{appState:{...e,openDialog:e.openDialog?.name==="help"?null:{name:"help"}},storeAction:P.NONE}),keyTest:t=>t.key===S.QUESTION_MARK});h();var bi=v(k(),1),cS=t=>{if(t.length>=2){let e=t[0].groupIds;for(let o of e)if(t.reduce((r,n)=>r&&Yi(n,o),!0))return!0}return!1},bE=(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});return r.length>=2&&!cS(r)},ah=W({name:"group",label:"labels.group",icon:t=>(0,bi.jsx)(Xu,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});if(n.length<2)return{appState:e,elements:t,storeAction:P.NONE};let i=Br(e);if(i.length===1){let y=i[0],T=new Set(ft(t,y).map(A=>A.id)),C=new Set(n.map(A=>A.id));if(new Set([...Array.from(T),...Array.from(C)]).size===T.size)return{appState:e,elements:t,storeAction:P.NONE}}let a=[...t];new Set(n.map(y=>y.frameId)).size>1&&C0(n).forEach((T,C)=>{Gc(T,r.scene.getNonDeletedElementsMap())});let s=mn(),d=pe(n);a=a.map(y=>d.get(y.id)?he(y,{groupIds:_b(y.groupIds,s,e.editingGroupId)}):y);let c=ft(a,s),m=c[c.length-1],u=a.lastIndexOf(m),f=a.slice(u+1),b=a.slice(0,u).filter(y=>!Yi(y,s)),x=ho([...b,...c,...f],pe(c));return{appState:{...e,...Tb(s,{...e,selectedGroupIds:{}},Ee(a))},elements:x,storeAction:P.CAPTURE}},predicate:(t,e,o,r)=>bE(t,e,r),keyTest:t=>!t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,bi.jsx)(le,{hidden:!bE(t,e,r),type:"button",icon:(0,bi.jsx)(Xu,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.group")} \u2014 ${F("CtrlOrCmd+G")}`,"aria-label":g("labels.group"),visible:Be(Ee(t),e)})}),lh=W({name:"ungroup",label:"labels.ungroup",icon:t=>(0,bi.jsx)(qu,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=Br(e),i=pe(t);if(n.length===0)return{appState:e,elements:t,storeAction:P.NONE};let a=[...t],l=[];a=a.map(u=>{xt(u)&&l.push(u.id);let f=Lb(u.groupIds,e.selectedGroupIds);return f.length===u.groupIds.length?u:he(u,{groupIds:f})});let s=Nt(e,Ee(a),e,null),d=r.scene.getSelectedElements(e),c=new Set(d.filter(u=>u.frameId).map(u=>u.frameId));return S0(t).filter(u=>c.has(u.id)).forEach(u=>{u&&(a=Vc(a,Qi(a,u,e,i),u,r))}),s.selectedElementIds=Object.entries(s.selectedElementIds).reduce((u,[f,b])=>(b&&!l.includes(f)&&(u[f]=!0),u),{}),{appState:{...e,...s},elements:a,storeAction:P.CAPTURE}},keyTest:t=>t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G.toUpperCase(),predicate:(t,e)=>Br(e).length>0,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,bi.jsx)(le,{type:"button",hidden:Br(e).length===0,icon:(0,bi.jsx)(qu,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.ungroup")} \u2014 ${F("CtrlOrCmd+Shift+G")}`,"aria-label":g("labels.ungroup"),visible:Be(Ee(t),e)})});h();h();h();var rm=(t,e,o,r,n,i,a)=>{t.beginPath(),t.moveTo(e+i,o),t.lineTo(e+r-i,o),t.quadraticCurveTo(e+r,o,e+r,o+i),t.lineTo(e+r,o+n-i),t.quadraticCurveTo(e+r,o+n,e+r-i,o+n),t.lineTo(e+i,o+n),t.quadraticCurveTo(e,o+n,e,o+n-i),t.lineTo(e,o+i),t.quadraticCurveTo(e,o,e+i,o),t.closePath(),t.fill(),a&&(t.strokeStyle=a),t.stroke()};h();function dS(t){let e=0;if(t.length===0)return e;for(let o=0;o<t.length;o++){let r=t.charCodeAt(o);e=(e<<5)-e+r}return e}var xi=(t,e)=>`hsl(${Math.abs(dS(e?.id||t))%37*10}, 100%, 83%)`,xE=t=>{let e=t?.trim()?.codePointAt(0);return(e?String.fromCodePoint(e):"?").toUpperCase()},vE=({context:t,renderConfig:e,appState:o,normalizedWidth:r,normalizedHeight:n})=>{for(let[i,a]of e.remotePointerViewportCoords){let{x:l,y:s}=a,d=o.collaborators.get(i);l-=o.offsetLeft,s-=o.offsetTop;let c=11,m=14,u=l<0||l>r-c||s<0||s>n-m;l=Math.max(l,0),l=Math.min(l,r-c),s=Math.max(s,0),s=Math.min(s,n-m);let f=xi(i,d);t.save(),t.strokeStyle=f,t.fillStyle=f;let b=e.remotePointerUserStates.get(i),x=u||b==="idle"||b==="away";x&&(t.globalAlpha=.3),e.remotePointerButton.get(i)==="down"&&(t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=3,t.strokeStyle="#ffffff88",t.stroke(),t.closePath(),t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=1,t.strokeStyle=f,t.stroke(),t.closePath());let y=o.theme===be.DARK?"#2f6330":b1,T=d?.isSpeaking;T&&(t.fillStyle=y,t.strokeStyle=y,t.lineWidth=10,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill()),t.fillStyle=dl,t.strokeStyle=dl,t.lineWidth=6,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill(),t.fillStyle=f,t.strokeStyle=f,t.lineWidth=2,t.lineJoin="round",t.beginPath(),x?(t.moveTo(l-1,s-1),t.lineTo(l-1,s+15),t.lineTo(l+5,s+10),t.lineTo(l+12,s+9),t.closePath(),t.fill()):(t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.fill(),t.stroke());let C=e.remotePointerUsernames.get(i)||"";if(!u&&C){t.font="600 12px sans-serif";let w=(T?l+0:l)+c/2,A=(T?s+0:s)+m+2,z=5,I=3,M=t.measureText(C),_=M.actualBoundingBoxDescent+M.actualBoundingBoxAscent,U=Math.max(_,12),D=w-1,G=A-1,O=M.width+2+z*2+2,B=U+2+I*2+2;if(t.roundRect?(t.beginPath(),t.roundRect(D,G,O,B,8),t.fillStyle=f,t.fill(),t.strokeStyle=dl,t.stroke(),T&&(t.beginPath(),t.roundRect(D-2,G-2,O+4,B+4,8),t.strokeStyle=y,t.stroke())):rm(t,D,G,O,B,8,dl),t.fillStyle=g1,t.fillText(C,w+z+1,A+I+M.actualBoundingBoxAscent+Math.floor((U-_)/2)+2),T){t.fillStyle=y;let te=8,oe=8,ve=5;t.fillRect(D+O+oe,G+(B/2-te/2),2,te),t.fillRect(D+O+oe+ve,G+(B/2-te*2/2),2,te*2),t.fillRect(D+O+oe+ve*2,G+(B/2-te/2),2,te)}}t.restore(),t.closePath()}};h();var yE=v(H(),1);var sh=v(k(),1),ch=({color:t,onClick:e,name:o,src:r,className:n})=>{let i=xE(o),[a,l]=(0,yE.useState)(!1),s=!a&&r,d=s?void 0:{background:t};return(0,sh.jsx)("div",{className:$("Avatar",n),style:d,onClick:e,children:s?(0,sh.jsx)("img",{className:"Avatar-img",src:r,alt:i,referrerPolicy:"no-referrer",onError:()=>l(!0)}):i})};var Yt=v(k(),1),mS=W({name:"goToCollaborator",label:"Go to a collaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(t,e,o)=>!o.socketId||e.userToFollow?.socketId===o.socketId||o.isCurrentUser?{appState:{...e,userToFollow:null},storeAction:P.NONE}:{appState:{...e,userToFollow:{socketId:o.socketId,username:o.username||""},openMenu:e.openMenu==="canvas"?null:e.openMenu},storeAction:P.NONE},PanelComponent:({updateData:t,data:e,appState:o})=>{let{socketId:r,collaborator:n,withName:i,isBeingFollowed:a}=e,l=xi(r,n),s=$({"is-followed":a,"is-current-user":n.isCurrentUser===!0,"is-speaking":n.isSpeaking,"is-in-call":n.isInCall,"is-muted":n.isMuted}),d=n.isInCall?n.isSpeaking?(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:g("userList.hint.isSpeaking"),children:[(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{})]}):n.isMuted?(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:g("userList.hint.micMuted"),children:_v}):(0,Yt.jsx)("div",{title:g("userList.hint.inCall"),children:Mv}):null;return i?(0,Yt.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${s}`,style:{"--avatar-size":"1.5rem"},onClick:()=>t(n),children:[(0,Yt.jsx)(ch,{color:l,onClick:()=>{},name:n.username||"",src:n.avatarUrl,className:s}),(0,Yt.jsx)("div",{className:"UserList__collaborator-name",children:n.username}),(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[a&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:g("userList.hint.followStatus"),children:pa}),d]})]}):(0,Yt.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${s}`,children:[(0,Yt.jsx)(ch,{color:l,onClick:()=>{t(n)},name:n.username||"",src:n.avatarUrl,className:s}),d&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon",children:d})]})}});h();var dh=W({name:"addToLibrary",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});for(let i of ic)if(n.some(a=>a.type===i))return{storeAction:P.NONE,appState:{...e,errorMessage:g(`errors.libraryElementTypeError.${i}`)}};return r.library.getLatestLibrary().then(i=>r.library.setLibrary([{id:mn(),status:"unpublished",elements:n.map(Mc),created:Date.now()},...i])).then(()=>({storeAction:P.NONE,appState:{...e,toast:{message:g("toast.addedToLibrary")}}})).catch(i=>({storeAction:P.NONE,appState:{...e,errorMessage:i.message}}))},label:"labels.addToLibrary"});h();h();var EE=(t,e,o)=>{let r=Jn(t,e),n=Io(t);return r.flatMap(i=>{let a=pS(i,n,o);return i.map(l=>he(l,{x:l.x+a.x,y:l.y+a.y}))})},pS=(t,e,{axis:o,position:r})=>{let n=Io(t),[i,a]=o==="x"?["minX","maxX"]:["minY","maxY"],l={x:0,y:0};return r==="start"?{...l,[o]:e[i]-n[i]}:r==="end"?{...l,[o]:e[a]-n[a]}:{...l,[o]:(e[i]+e[a])/2-(n[i]+n[a])/2}};var vi=v(k(),1),Fo=(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>1&&!n.some(i=>ye(i))},Na=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=pe(t),a=EE(n,i,r),l=pe(a);return hr(t.map(s=>l.get(s.id)||s),e,o)},uS=W({name:"alignTop",label:"labels.alignTop",icon:Gu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"start",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_UP,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(le,{hidden:!Fo(t,e,null,r),type:"button",icon:Gu,onClick:()=>o(null),title:`${g("labels.alignTop")} \u2014 ${F("CtrlOrCmd+Shift+Up")}`,"aria-label":g("labels.alignTop"),visible:Be(Ee(t),e)})}),fS=W({name:"alignBottom",label:"labels.alignBottom",icon:Vu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"end",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_DOWN,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(le,{hidden:!Fo(t,e,null,r),type:"button",icon:Vu,onClick:()=>o(null),title:`${g("labels.alignBottom")} \u2014 ${F("CtrlOrCmd+Shift+Down")}`,"aria-label":g("labels.alignBottom"),visible:Be(Ee(t),e)})}),hS=W({name:"alignLeft",label:"labels.alignLeft",icon:Ku,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"start",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_LEFT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(le,{hidden:!Fo(t,e,null,r),type:"button",icon:Ku,onClick:()=>o(null),title:`${g("labels.alignLeft")} \u2014 ${F("CtrlOrCmd+Shift+Left")}`,"aria-label":g("labels.alignLeft"),visible:Be(Ee(t),e)})}),gS=W({name:"alignRight",label:"labels.alignRight",icon:Yu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"end",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_RIGHT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(le,{hidden:!Fo(t,e,null,r),type:"button",icon:Yu,onClick:()=>o(null),title:`${g("labels.alignRight")} \u2014 ${F("CtrlOrCmd+Shift+Right")}`,"aria-label":g("labels.alignRight"),visible:Be(Ee(t),e)})}),bS=W({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Zu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"center",axis:"y"}),storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(le,{hidden:!Fo(t,e,null,r),type:"button",icon:Zu,onClick:()=>o(null),title:g("labels.centerVertically"),"aria-label":g("labels.centerVertically"),visible:Be(Ee(t),e)})}),xS=W({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:ju,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"center",axis:"x"}),storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(le,{hidden:!Fo(t,e,null,r),type:"button",icon:ju,onClick:()=>o(null),title:g("labels.centerHorizontally"),"aria-label":g("labels.centerHorizontally"),visible:Be(Ee(t),e)})});h();h();var wE=(t,e,o)=>{let[r,n,i,a]=o.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],l=Io(t),s=Jn(t,e).map(u=>[u,Io(u)]).sort((u,f)=>u[1][n]-f[1][n]),d=0;for(let u of s)d+=u[1][a];let c=(l[a]-d)/(s.length-1);if(c<0){let u=s.findIndex(y=>y[1][r]===l[r]),f=s.findIndex(y=>y[1][i]===l[i]),b=(s[f][1][n]-s[u][1][n])/(s.length-1),x=s[u][1][n];return s.flatMap(([y,T],C)=>{let w={x:0,y:0};return C!==u&&C!==f&&(x+=b,w[o.axis]=x-T[n]),y.map(A=>he(A,{x:A.x+w.x,y:A.y+w.y}))})}let m=l[r];return s.flatMap(([u,f])=>{let b={x:0,y:0};return b[o.axis]=m-f[r],m+=c,m+=f[a],u.map(x=>he(x,{x:x.x+b.x,y:x.y+b.y}))})};var mh=v(k(),1),CE=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length>1&&!o.some(r=>ye(r))},SE=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=wE(n,o.scene.getNonDeletedElementsMap(),r),a=pe(i);return hr(t.map(l=>a.get(l.id)||l),e,o)},vS=W({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:SE(t,e,r,{space:"between",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.H,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,mh.jsx)(le,{hidden:!CE(e,r),type:"button",icon:Fx,onClick:()=>o(null),title:`${g("labels.distributeHorizontally")} \u2014 ${F("Alt+H")}`,"aria-label":g("labels.distributeHorizontally"),visible:Be(Ee(t),e)})}),yS=W({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:SE(t,e,r,{space:"between",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,mh.jsx)(le,{hidden:!CE(e,r),type:"button",icon:Bx,onClick:()=>o(null),title:`${g("labels.distributeVertically")} \u2014 ${F("Alt+V")}`,"aria-label":g("labels.distributeVertically"),visible:Be(Ee(t),e)})});h();var ph=W({name:"flipHorizontal",label:"labels.flipHorizontal",icon:Dv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:hr(TE(t,r.scene.getNonDeletedElementsMap(),e,"horizontal",r),e,r),appState:e,storeAction:P.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===fe.H}),uh=W({name:"flipVertical",label:"labels.flipVertical",icon:Rv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:hr(TE(t,r.scene.getNonDeletedElementsMap(),e,"vertical",r),e,r),appState:e,storeAction:P.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===fe.V&&!t[S.CTRL_OR_CMD]}),TE=(t,e,o,r,n)=>{let i=we(Ee(t),o,{includeBoundTextElement:!0,includeElementsInFrames:!0}),a=ES(i,e,o,r,n),l=pe(a);return t.map(s=>l.get(s.id)||s)},ES=(t,e,o,r,n)=>{let{minX:i,minY:a,maxX:l,maxY:s}=Io(t);return N0(e,t,e,"nw",!0,!0,r==="horizontal"?l:i,r==="horizontal"?a:s),Cl(t.filter(_e),n,qn(o),[]),t};h();var Oa=W({name:"copy",label:"labels.copy",icon:zl,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await v0(n,r.files,o)}catch(i){return{storeAction:P.NONE,appState:{...e,errorMessage:i.message}}}return{storeAction:P.NONE}},keyTest:void 0}),fh=W({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n;try{n=await y0()}catch(i){return i.name==="AbortError"||i.name==="NotAllowedError"?!1:(console.error(`actionPaste ${i.name}: ${i.message}`),Mr?{storeAction:P.NONE,appState:{...e,errorMessage:g("hints.firefox_clipboard_write")}}:{storeAction:P.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnRead")}})}try{r.pasteFromClipboard(x0({types:n}))}catch(i){return console.error(i),{storeAction:P.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnParse")}}}return{storeAction:P.NONE}},keyTest:void 0}),nm=W({name:"cut",label:"labels.cut",icon:vv,trackEvent:{category:"element"},perform:(t,e,o,r)=>(Oa.perform(t,e,o,r),Gl.perform(t,e,null,r)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.X}),im=W({name:"copyAsSvg",label:"labels.copyAsSvg",icon:Nv,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:P.NONE};let{exportedElements:n,exportingFrame:i}=ui(t,e,!0);try{return await fi("clipboard-svg",n,e,r.files,{...e,exportingFrame:i,name:r.getName()}),{storeAction:P.NONE}}catch(a){return console.error(a),{appState:{...e,errorMessage:a.message},storeAction:P.NONE}}},predicate:t=>bu&&t.length>0,keywords:["svg","clipboard","copy"]}),am=W({name:"copyAsPng",label:"labels.copyAsPng",icon:Ov,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:P.NONE};let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:i,exportingFrame:a}=ui(t,e,!0);try{return await fi("clipboard",i,e,r.files,{...e,exportingFrame:a,name:r.getName()}),{appState:{...e,toast:{message:g("toast.copyToClipboardAsPng",{exportSelection:n.length?g("toast.selection"):g("toast.canvas"),exportColorScheme:e.exportWithDarkMode?g("buttons.darkMode"):g("buttons.lightMode")})}},storeAction:P.NONE}}catch(l){return console.error(l),{appState:{...e,errorMessage:l.message},storeAction:P.NONE}}},predicate:t=>qi&&t.length>0,keyTest:t=>t.code===fe.C&&t.altKey&&t.shiftKey,keywords:["png","clipboard","copy"]}),lm=W({name:"copyText",label:"labels.copyText",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let i=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).reduce((a,l)=>(ce(l)&&a.push(l.text),a),[]).join(`
43
+ ${g("hints.firefox_clipboard_write")}`):new Error(g("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};h();var fE=async(t,e,o,r)=>{let{exportBackground:n,viewBackgroundColor:i,fileHandle:a}=e,l=Ub(a);if(!a||!Wb(l))throw new Error("fileHandle should exist and should be of type svg or png when resaving");e={...e,exportEmbedScene:!0};let{exportedElements:s,exportingFrame:d}=hi(t,e,!1);return await gi(l,s,e,o,{exportBackground:n,viewBackgroundColor:i,name:r,fileHandle:a,exportingFrame:d}),{fileHandle:a}};h();var ds=v(T(),1),bi=({children:t,checked:e,onChange:o,className:r})=>(0,ds.jsxs)("div",{className:B("Checkbox",r,{"is-checked":e}),onClick:n=>{o(!e,n),n.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,ds.jsx)("button",{type:"button",className:"Checkbox-box",role:"checkbox","aria-checked":e,children:Ax}),(0,ds.jsx)("div",{className:"Checkbox-label",children:t})]});var uo=v(T(),1),nh=U({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(t,e,o)=>({appState:{...e,name:o},storeAction:D.NONE}),PanelComponent:({appState:t,updateData:e,appProps:o,data:r,app:n})=>(0,uo.jsx)(mE,{label:g("labels.fileTitle"),value:n.getName(),onChange:i=>e(i),ignoreFocus:r?.ignoreFocus??!1})}),hE=U({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(t,e,o)=>({appState:{...e,exportScale:o},storeAction:D.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=we(t),i=ze(r,e)?ye(r,e):r;return(0,uo.jsx)(uo.Fragment,{children:ac.map(a=>{let[l,s]=b0(i,sn,a),d=`${g("imageExportDialog.label.scale")} ${a}x (${l}x${s})`;return(0,uo.jsx)(se,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:d,"aria-label":d,id:"export-canvas-scale",checked:a===e.exportScale,onChange:()=>o(a)},a)})})}}),ih=U({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(t,e,o)=>({appState:{...e,exportBackground:o},storeAction:D.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)(bi,{checked:t.exportBackground,onChange:o=>e(o),children:g("imageExportDialog.label.withBackground")})}),im=U({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(t,e,o)=>({appState:{...e,exportEmbedScene:o},storeAction:D.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsxs)(bi,{checked:t.exportEmbedScene,onChange:o=>e(o),children:[g("imageExportDialog.label.embedScene"),(0,uo.jsx)(vo,{label:g("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,uo.jsx)("div",{className:"excalidraw-tooltip-icon",children:Dx})})]})}),am=U({name:"saveToActiveFile",label:"buttons.save",icon:ai,trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.saveToActiveFile&&!!e.fileHandle&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{let n=!!e.fileHandle;try{let{fileHandle:i}=Fc(e.fileHandle)?await fE(t,e,r.files,r.getName()):await Hc(t,e,r.files,r.getName());return{storeAction:D.NONE,appState:{...e,fileHandle:i,toast:n?{message:i?.name?g("toast.fileSavedToFilename").replace("{filename}",`"${i.name}"`):g("toast.fileSaved")}:null}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{storeAction:D.NONE}}},keyTest:t=>t.key===S.S&&t[S.CTRL_OR_CMD]&&!t.shiftKey}),ms=U({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:ai,viewMode:!0,trackEvent:{category:"export"},perform:async(t,e,o,r)=>{try{let{fileHandle:n}=await Hc(t,{...e,fileHandle:null},r.files,r.getName());return{storeAction:D.NONE,appState:{...e,openDialog:null,fileHandle:n,toast:{message:g("toast.fileSaved")}}}}catch(n){return n?.name!=="AbortError"?console.error(n):console.warn(n),{storeAction:D.NONE}}},keyTest:t=>t.key===S.S&&t.shiftKey&&t[S.CTRL_OR_CMD],PanelComponent:({updateData:t})=>(0,uo.jsx)(se,{type:"button",icon:_x,title:g("buttons.saveAs"),"aria-label":g("buttons.saveAs"),showAriaLabel:Ae().editor.isMobile,hidden:!qi,onClick:()=>t(null),"data-testid":"save-as-button"})}),Oa=U({name:"loadScene",label:"buttons.load",trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.loadScene&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{try{let{elements:n,appState:i,files:a}=await bu(e,t);return{elements:n,appState:i,files:a,storeAction:D.CAPTURE}}catch(n){return n?.name==="AbortError"?(console.warn(n),!1):{elements:t,appState:{...e,errorMessage:n.message},files:r.files,storeAction:D.NONE}}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.O}),gE=U({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(t,e,o)=>({appState:{...e,exportWithDarkMode:o},storeAction:D.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,uo.jsx)(uE,{value:t.exportWithDarkMode?xe.DARK:xe.LIGHT,onChange:o=>{e(o===xe.DARK)},title:g("imageExportDialog.label.darkMode")})})});h();var bE="{}",ah=U({name:"copyStyles",label:"labels.copyStyles",icon:af,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=[],i=t.find(a=>e.selectedElementIds[a.id]);if(n.push(i),i&&gr(i)){let a=ct(i,r.scene.getNonDeletedElementsMap());n.push(a)}return i&&(bE=JSON.stringify(n)),{appState:{...e,toast:{message:g("toast.copyStyles")}},storeAction:D.NONE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.C}),lh=U({name:"pasteStyles",label:"labels.pasteStyles",icon:af,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=JSON.parse(bE),i=n[0],a=n[1];if(!tb(i))return{elements:t,storeAction:D.NONE};let l=ye(t,e,{includeBoundTextElement:!0}),s=l.map(d=>d.id);return{elements:t.map(d=>{if(s.includes(d.id)){let m=i;if(oe(d)&&d.containerId&&(m=a),!m)return d;let c=pe(d,{backgroundColor:m?.backgroundColor,strokeWidth:m?.strokeWidth,strokeColor:m?.strokeColor,strokeStyle:m?.strokeStyle,fillStyle:m?.fillStyle,opacity:m?.opacity,roughness:m?.roughness,roundness:m.roundness?ob(m.roundness.type,d)?m.roundness:rb(d):null});if(oe(c)){let u=m.fontSize||qo,f=m.fontFamily||zi;c=pe(c,{fontSize:u,fontFamily:f,textAlign:m.textAlign||ec,lineHeight:m.lineHeight||Fr(f)});let b=null;c.containerId&&(b=l.find(x=>oe(c)&&x.id===c.containerId)||null),Ut(c,b,r.scene.getNonDeletedElementsMap())}return c.type==="arrow"&&hr(m)&&(c=pe(c,{startArrowhead:m.startArrowhead,endArrowhead:m.endArrowhead})),Ee(d)&&(c=pe(c,{roundness:null,backgroundColor:"transparent"})),c}return d}),storeAction:D.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.V});h();var sh=v(T(),1),cS=U({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="canvas"?null:"canvas"},storeAction:D.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,sh.jsx)(se,{type:"button",icon:fd,"aria-label":g("buttons.menu"),onClick:e,selected:t.openMenu==="canvas"})}),dS=U({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="shape"?null:"shape"},storeAction:D.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,sh.jsx)(se,{visible:oa(e,we(t)),type:"button",icon:Lx,"aria-label":g("buttons.edit"),onClick:o,selected:e.openMenu==="shape"})}),xi=U({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:Tx,viewMode:!0,trackEvent:{category:"menu",action:"toggleHelpDialog"},perform:(t,e,o,{focusContainer:r})=>(e.openDialog?.name==="help"&&r(),{appState:{...e,openDialog:e.openDialog?.name==="help"?null:{name:"help"}},storeAction:D.NONE}),keyTest:t=>t.key===S.QUESTION_MARK});h();var vi=v(T(),1),mS=t=>{if(t.length>=2){let e=t[0].groupIds;for(let o of e)if(t.reduce((r,n)=>r&&Xi(n,o),!0))return!0}return!1},xE=(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});return r.length>=2&&!mS(r)},ch=U({name:"group",label:"labels.group",icon:t=>(0,vi.jsx)(Qu,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});if(n.length<2)return{appState:e,elements:t,storeAction:D.NONE};let i=Br(e);if(i.length===1){let y=i[0],k=new Set(ut(t,y).map(A=>A.id)),C=new Set(n.map(A=>A.id));if(new Set([...Array.from(k),...Array.from(C)]).size===k.size)return{appState:e,elements:t,storeAction:D.NONE}}let a=[...t];new Set(n.map(y=>y.frameId)).size>1&&S0(n).forEach((k,C)=>{Zc(k,r.scene.getNonDeletedElementsMap())});let s=pn(),d=fe(n);a=a.map(y=>d.get(y.id)?pe(y,{groupIds:Pb(y.groupIds,s,e.editingGroupId)}):y);let m=ut(a,s),c=m[m.length-1],u=a.lastIndexOf(c),f=a.slice(u+1),b=a.slice(0,u).filter(y=>!Xi(y,s)),x=go([...b,...m,...f],fe(m));return{appState:{...e,...Ib(s,{...e,selectedGroupIds:{}},we(a))},elements:x,storeAction:D.CAPTURE}},predicate:(t,e,o,r)=>xE(t,e,r),keyTest:t=>!t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(se,{hidden:!xE(t,e,r),type:"button",icon:(0,vi.jsx)(Qu,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.group")} \u2014 ${F("CtrlOrCmd+G")}`,"aria-label":g("labels.group"),visible:ze(we(t),e)})}),dh=U({name:"ungroup",label:"labels.ungroup",icon:t=>(0,vi.jsx)(ef,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=Br(e),i=fe(t);if(n.length===0)return{appState:e,elements:t,storeAction:D.NONE};let a=[...t],l=[];a=a.map(u=>{Mt(u)&&l.push(u.id);let f=Rb(u.groupIds,e.selectedGroupIds);return f.length===u.groupIds.length?u:pe(u,{groupIds:f})});let s=Nt(e,we(a),e,null),d=r.scene.getSelectedElements(e),m=new Set(d.filter(u=>u.frameId).map(u=>u.frameId));return T0(t).filter(u=>m.has(u.id)).forEach(u=>{u&&(a=Xc(a,ta(a,u,e,i),u,r))}),s.selectedElementIds=Object.entries(s.selectedElementIds).reduce((u,[f,b])=>(b&&!l.includes(f)&&(u[f]=!0),u),{}),{appState:{...e,...s},elements:a,storeAction:D.CAPTURE}},keyTest:t=>t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G.toUpperCase(),predicate:(t,e)=>Br(e).length>0,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,vi.jsx)(se,{type:"button",hidden:Br(e).length===0,icon:(0,vi.jsx)(ef,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.ungroup")} \u2014 ${F("CtrlOrCmd+Shift+G")}`,"aria-label":g("labels.ungroup"),visible:ze(we(t),e)})});h();h();h();var lm=(t,e,o,r,n,i,a)=>{t.beginPath(),t.moveTo(e+i,o),t.lineTo(e+r-i,o),t.quadraticCurveTo(e+r,o,e+r,o+i),t.lineTo(e+r,o+n-i),t.quadraticCurveTo(e+r,o+n,e+r-i,o+n),t.lineTo(e+i,o+n),t.quadraticCurveTo(e,o+n,e,o+n-i),t.lineTo(e,o+i),t.quadraticCurveTo(e,o,e+i,o),t.closePath(),t.fill(),a&&(t.strokeStyle=a),t.stroke()};h();function pS(t){let e=0;if(t.length===0)return e;for(let o=0;o<t.length;o++){let r=t.charCodeAt(o);e=(e<<5)-e+r}return e}var yi=(t,e)=>`hsl(${Math.abs(pS(e?.id||t))%37*10}, 100%, 83%)`,vE=t=>{let e=t?.trim()?.codePointAt(0);return(e?String.fromCodePoint(e):"?").toUpperCase()},yE=({context:t,renderConfig:e,appState:o,normalizedWidth:r,normalizedHeight:n})=>{for(let[i,a]of e.remotePointerViewportCoords){let{x:l,y:s}=a,d=o.collaborators.get(i);l-=o.offsetLeft,s-=o.offsetTop;let m=11,c=14,u=l<0||l>r-m||s<0||s>n-c;l=Math.max(l,0),l=Math.min(l,r-m),s=Math.max(s,0),s=Math.min(s,n-c);let f=yi(i,d);t.save(),t.strokeStyle=f,t.fillStyle=f;let b=e.remotePointerUserStates.get(i),x=u||b==="idle"||b==="away";x&&(t.globalAlpha=.3),e.remotePointerButton.get(i)==="down"&&(t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=3,t.strokeStyle="#ffffff88",t.stroke(),t.closePath(),t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=1,t.strokeStyle=f,t.stroke(),t.closePath());let y=o.theme===xe.DARK?"#2f6330":v1,k=d?.isSpeaking;k&&(t.fillStyle=y,t.strokeStyle=y,t.lineWidth=10,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill()),t.fillStyle=ul,t.strokeStyle=ul,t.lineWidth=6,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill(),t.fillStyle=f,t.strokeStyle=f,t.lineWidth=2,t.lineJoin="round",t.beginPath(),x?(t.moveTo(l-1,s-1),t.lineTo(l-1,s+15),t.lineTo(l+5,s+10),t.lineTo(l+12,s+9),t.closePath(),t.fill()):(t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.fill(),t.stroke());let C=e.remotePointerUsernames.get(i)||"";if(!u&&C){t.font="600 12px sans-serif";let w=(k?l+0:l)+m/2,A=(k?s+0:s)+c+2,z=5,I=3,M=t.measureText(C),_=M.actualBoundingBoxDescent+M.actualBoundingBoxAscent,$=Math.max(_,12),O=w-1,W=A-1,j=M.width+2+z*2+2,R=$+2+I*2+2;if(t.roundRect?(t.beginPath(),t.roundRect(O,W,j,R,8),t.fillStyle=f,t.fill(),t.strokeStyle=ul,t.stroke(),k&&(t.beginPath(),t.roundRect(O-2,W-2,j+4,R+4,8),t.strokeStyle=y,t.stroke())):lm(t,O,W,j,R,8,ul),t.fillStyle=x1,t.fillText(C,w+z+1,A+I+M.actualBoundingBoxAscent+Math.floor(($-_)/2)+2),k){t.fillStyle=y;let Z=8,ne=8,me=5;t.fillRect(O+j+ne,W+(R/2-Z/2),2,Z),t.fillRect(O+j+ne+me,W+(R/2-Z*2/2),2,Z*2),t.fillRect(O+j+ne+me*2,W+(R/2-Z/2),2,Z)}}t.restore(),t.closePath()}};h();var EE=v(H(),1);var mh=v(T(),1),ph=({color:t,onClick:e,name:o,src:r,className:n})=>{let i=vE(o),[a,l]=(0,EE.useState)(!1),s=!a&&r,d=s?void 0:{background:t};return(0,mh.jsx)("div",{className:B("Avatar",n),style:d,onClick:e,children:s?(0,mh.jsx)("img",{className:"Avatar-img",src:r,alt:i,referrerPolicy:"no-referrer",onError:()=>l(!0)}):i})};var Yt=v(T(),1),uS=U({name:"goToCollaborator",label:"Go to a collaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(t,e,o)=>!o.socketId||e.userToFollow?.socketId===o.socketId||o.isCurrentUser?{appState:{...e,userToFollow:null},storeAction:D.NONE}:{appState:{...e,userToFollow:{socketId:o.socketId,username:o.username||""},openMenu:e.openMenu==="canvas"?null:e.openMenu},storeAction:D.NONE},PanelComponent:({updateData:t,data:e,appState:o})=>{let{socketId:r,collaborator:n,withName:i,isBeingFollowed:a}=e,l=yi(r,n),s=B({"is-followed":a,"is-current-user":n.isCurrentUser===!0,"is-speaking":n.isSpeaking,"is-in-call":n.isInCall,"is-muted":n.isMuted}),d=n.isInCall?n.isSpeaking?(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:g("userList.hint.isSpeaking"),children:[(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{})]}):n.isMuted?(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:g("userList.hint.micMuted"),children:Lv}):(0,Yt.jsx)("div",{title:g("userList.hint.inCall"),children:_v}):null;return i?(0,Yt.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${s}`,style:{"--avatar-size":"1.5rem"},onClick:()=>t(n),children:[(0,Yt.jsx)(ph,{color:l,onClick:()=>{},name:n.username||"",src:n.avatarUrl,className:s}),(0,Yt.jsx)("div",{className:"UserList__collaborator-name",children:n.username}),(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[a&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:g("userList.hint.followStatus"),children:fa}),d]})]}):(0,Yt.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${s}`,children:[(0,Yt.jsx)(ph,{color:l,onClick:()=>{t(n)},name:n.username||"",src:n.avatarUrl,className:s}),d&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon",children:d})]})}});h();var uh=U({name:"addToLibrary",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});for(let i of dc)if(n.some(a=>a.type===i))return{storeAction:D.NONE,appState:{...e,errorMessage:g(`errors.libraryElementTypeError.${i}`)}};return r.library.getLatestLibrary().then(i=>r.library.setLibrary([{id:pn(),status:"unpublished",elements:n.map(Rc),created:Date.now()},...i])).then(()=>({storeAction:D.NONE,appState:{...e,toast:{message:g("toast.addedToLibrary")}}})).catch(i=>({storeAction:D.NONE,appState:{...e,errorMessage:i.message}}))},label:"labels.addToLibrary"});h();h();var wE=(t,e,o)=>{let r=ei(t,e),n=Mo(t);return r.flatMap(i=>{let a=fS(i,n,o);return i.map(l=>pe(l,{x:l.x+a.x,y:l.y+a.y}))})},fS=(t,e,{axis:o,position:r})=>{let n=Mo(t),[i,a]=o==="x"?["minX","maxX"]:["minY","maxY"],l={x:0,y:0};return r==="start"?{...l,[o]:e[i]-n[i]}:r==="end"?{...l,[o]:e[a]-n[a]}:{...l,[o]:(e[i]+e[a])/2-(n[i]+n[a])/2}};var Ei=v(T(),1),Bo=(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>1&&!n.some(i=>Ee(i))},Fa=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=fe(t),a=wE(n,i,r),l=fe(a);return br(t.map(s=>l.get(s.id)||s),e,o)},hS=U({name:"alignTop",label:"labels.alignTop",icon:Yu,trackEvent:{category:"element"},predicate:Bo,perform:(t,e,o,r)=>({appState:e,elements:Fa(t,e,r,{position:"start",axis:"y"}),storeAction:D.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_UP,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Ei.jsx)(se,{hidden:!Bo(t,e,null,r),type:"button",icon:Yu,onClick:()=>o(null),title:`${g("labels.alignTop")} \u2014 ${F("CtrlOrCmd+Shift+Up")}`,"aria-label":g("labels.alignTop"),visible:ze(we(t),e)})}),gS=U({name:"alignBottom",label:"labels.alignBottom",icon:Zu,trackEvent:{category:"element"},predicate:Bo,perform:(t,e,o,r)=>({appState:e,elements:Fa(t,e,r,{position:"end",axis:"y"}),storeAction:D.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_DOWN,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Ei.jsx)(se,{hidden:!Bo(t,e,null,r),type:"button",icon:Zu,onClick:()=>o(null),title:`${g("labels.alignBottom")} \u2014 ${F("CtrlOrCmd+Shift+Down")}`,"aria-label":g("labels.alignBottom"),visible:ze(we(t),e)})}),bS=U({name:"alignLeft",label:"labels.alignLeft",icon:Xu,trackEvent:{category:"element"},predicate:Bo,perform:(t,e,o,r)=>({appState:e,elements:Fa(t,e,r,{position:"start",axis:"x"}),storeAction:D.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_LEFT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Ei.jsx)(se,{hidden:!Bo(t,e,null,r),type:"button",icon:Xu,onClick:()=>o(null),title:`${g("labels.alignLeft")} \u2014 ${F("CtrlOrCmd+Shift+Left")}`,"aria-label":g("labels.alignLeft"),visible:ze(we(t),e)})}),xS=U({name:"alignRight",label:"labels.alignRight",icon:ju,trackEvent:{category:"element"},predicate:Bo,perform:(t,e,o,r)=>({appState:e,elements:Fa(t,e,r,{position:"end",axis:"x"}),storeAction:D.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_RIGHT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Ei.jsx)(se,{hidden:!Bo(t,e,null,r),type:"button",icon:ju,onClick:()=>o(null),title:`${g("labels.alignRight")} \u2014 ${F("CtrlOrCmd+Shift+Right")}`,"aria-label":g("labels.alignRight"),visible:ze(we(t),e)})}),vS=U({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:qu,trackEvent:{category:"element"},predicate:Bo,perform:(t,e,o,r)=>({appState:e,elements:Fa(t,e,r,{position:"center",axis:"y"}),storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Ei.jsx)(se,{hidden:!Bo(t,e,null,r),type:"button",icon:qu,onClick:()=>o(null),title:g("labels.centerVertically"),"aria-label":g("labels.centerVertically"),visible:ze(we(t),e)})}),yS=U({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:Ju,trackEvent:{category:"element"},predicate:Bo,perform:(t,e,o,r)=>({appState:e,elements:Fa(t,e,r,{position:"center",axis:"x"}),storeAction:D.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Ei.jsx)(se,{hidden:!Bo(t,e,null,r),type:"button",icon:Ju,onClick:()=>o(null),title:g("labels.centerHorizontally"),"aria-label":g("labels.centerHorizontally"),visible:ze(we(t),e)})});h();h();var CE=(t,e,o)=>{let[r,n,i,a]=o.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],l=Mo(t),s=ei(t,e).map(u=>[u,Mo(u)]).sort((u,f)=>u[1][n]-f[1][n]),d=0;for(let u of s)d+=u[1][a];let m=(l[a]-d)/(s.length-1);if(m<0){let u=s.findIndex(y=>y[1][r]===l[r]),f=s.findIndex(y=>y[1][i]===l[i]),b=(s[f][1][n]-s[u][1][n])/(s.length-1),x=s[u][1][n];return s.flatMap(([y,k],C)=>{let w={x:0,y:0};return C!==u&&C!==f&&(x+=b,w[o.axis]=x-k[n]),y.map(A=>pe(A,{x:A.x+w.x,y:A.y+w.y}))})}let c=l[r];return s.flatMap(([u,f])=>{let b={x:0,y:0};return b[o.axis]=c-f[r],c+=m,c+=f[a],u.map(x=>pe(x,{x:x.x+b.x,y:x.y+b.y}))})};var fh=v(T(),1),SE=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length>1&&!o.some(r=>Ee(r))},TE=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=CE(n,o.scene.getNonDeletedElementsMap(),r),a=fe(i);return br(t.map(l=>a.get(l.id)||l),e,o)},ES=U({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:TE(t,e,r,{space:"between",axis:"x"}),storeAction:D.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.H,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,fh.jsx)(se,{hidden:!SE(e,r),type:"button",icon:zx,onClick:()=>o(null),title:`${g("labels.distributeHorizontally")} \u2014 ${F("Alt+H")}`,"aria-label":g("labels.distributeHorizontally"),visible:ze(we(t),e)})}),wS=U({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:TE(t,e,r,{space:"between",axis:"y"}),storeAction:D.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.V,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,fh.jsx)(se,{hidden:!SE(e,r),type:"button",icon:Bx,onClick:()=>o(null),title:`${g("labels.distributeVertically")} \u2014 ${F("Alt+V")}`,"aria-label":g("labels.distributeVertically"),visible:ze(we(t),e)})});h();var hh=U({name:"flipHorizontal",label:"labels.flipHorizontal",icon:Nv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:br(kE(t,r.scene.getNonDeletedElementsMap(),e,"horizontal",r),e,r),appState:e,storeAction:D.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===ge.H}),gh=U({name:"flipVertical",label:"labels.flipVertical",icon:Dv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:br(kE(t,r.scene.getNonDeletedElementsMap(),e,"vertical",r),e,r),appState:e,storeAction:D.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===ge.V&&!t[S.CTRL_OR_CMD]}),kE=(t,e,o,r,n)=>{let i=ye(we(t),o,{includeBoundTextElement:!0,includeElementsInFrames:!0}),a=CS(i,e,o,r,n),l=fe(a);return t.map(s=>l.get(s.id)||s)},CS=(t,e,o,r,n)=>{let{minX:i,minY:a,maxX:l,maxY:s}=Mo(t);return O0(e,t,e,"nw",!0,!0,r==="horizontal"?l:i,r==="horizontal"?a:s),Il(t.filter(_e),n,Jn(o),[]),t};h();var za=U({name:"copy",label:"labels.copy",icon:Wl,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await y0(n,r.files,o)}catch(i){return{storeAction:D.NONE,appState:{...e,errorMessage:i.message}}}return{storeAction:D.NONE}},keyTest:void 0}),bh=U({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n;try{n=await E0()}catch(i){return i.name==="AbortError"||i.name==="NotAllowedError"?!1:(console.error(`actionPaste ${i.name}: ${i.message}`),Lr?{storeAction:D.NONE,appState:{...e,errorMessage:g("hints.firefox_clipboard_write")}}:{storeAction:D.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnRead")}})}try{r.pasteFromClipboard(v0({types:n}))}catch(i){return console.error(i),{storeAction:D.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnParse")}}}return{storeAction:D.NONE}},keyTest:void 0}),sm=U({name:"cut",label:"labels.cut",icon:yv,trackEvent:{category:"element"},perform:(t,e,o,r)=>(za.perform(t,e,o,r),Zl.perform(t,e,null,r)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.X}),cm=U({name:"copyAsSvg",label:"labels.copyAsSvg",icon:Ov,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:D.NONE};let{exportedElements:n,exportingFrame:i}=hi(t,e,!0);try{return await gi("clipboard-svg",n,e,r.files,{...e,exportingFrame:i,name:r.getName()}),{storeAction:D.NONE}}catch(a){return console.error(a),{appState:{...e,errorMessage:a.message},storeAction:D.NONE}}},predicate:t=>yu&&t.length>0,keywords:["svg","clipboard","copy"]}),dm=U({name:"copyAsPng",label:"labels.copyAsPng",icon:Fv,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:D.NONE};let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:i,exportingFrame:a}=hi(t,e,!0);try{return await gi("clipboard",i,e,r.files,{...e,exportingFrame:a,name:r.getName()}),{appState:{...e,toast:{message:g("toast.copyToClipboardAsPng",{exportSelection:n.length?g("toast.selection"):g("toast.canvas"),exportColorScheme:e.exportWithDarkMode?g("buttons.darkMode"):g("buttons.lightMode")})}},storeAction:D.NONE}}catch(l){return console.error(l),{appState:{...e,errorMessage:l.message},storeAction:D.NONE}}},predicate:t=>Qi&&t.length>0,keyTest:t=>t.code===ge.C&&t.altKey&&t.shiftKey,keywords:["png","clipboard","copy"]}),mm=U({name:"copyText",label:"labels.copyText",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let i=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).reduce((a,l)=>(oe(l)&&a.push(l.text),a),[]).join(`
44
44
 
45
- `);try{Ji(i)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return{storeAction:P.NONE}},predicate:(t,e,o,r)=>bu&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).some(ce),keywords:["text","clipboard","copy"]});h();var sm=W({name:"gridMode",icon:Hv,keywords:["snap"],label:"labels.toggleGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.gridSize},perform(t,e){return{appState:{...e,gridSize:this.checked(e)?null:Lr,objectsSnapModeEnabled:!1},storeAction:P.NONE}},checked:t=>t.gridSize!==null,predicate:(t,e,o)=>typeof o.gridModeEnabled>"u",keyTest:t=>t[S.CTRL_OR_CMD]&&t.code===fe.QUOTE});h();var Fa=W({name:"zenMode",label:"buttons.zenMode",icon:Bv,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.zenModeEnabled},perform(t,e){return{appState:{...e,zenModeEnabled:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.zenModeEnabled,predicate:(t,e,o)=>typeof o.zenModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.Z});h();var hh=W({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:Fv,viewMode:!1,trackEvent:{category:"canvas",predicate:t=>!t.objectsSnapModeEnabled},perform(t,e){return{appState:{...e,objectsSnapModeEnabled:!this.checked(e),gridSize:null},storeAction:P.NONE}},checked:t=>t.objectsSnapModeEnabled,predicate:(t,e,o)=>typeof o.objectsSnapModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.S});h();var Mn=W({name:"stats",label:"stats.title",icon:Pv,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},perform(t,e){return{appState:{...e,showStats:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.showStats,keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.SLASH});h();var gh=W({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>r.scene.getSelectedElements(e).some(i=>fr(i)),perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=r.scene.getNonDeletedElementsMap();return n.forEach(a=>{let l=ct(a,i);if(l){let{width:s,height:d}=wc(l.originalText,Xo(l),l.lineHeight),c=pb(a.id);mb(a.id);let{x:m,y:u}=Ec(a,l,i);re(l,{containerId:null,width:s,height:d,text:l.originalText,x:m,y:u}),re(a,{boundElements:a.boundElements?.filter(f=>f.id!==l.id),height:c||a.height})}}),{elements:t,appState:e,storeAction:P.CAPTURE}}}),bh=W({name:"bindText",label:"labels.bindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);if(n.length===2){let i=ce(n[0])||ce(n[1]),a;if(Rr(n[0])?a=n[0]:Rr(n[1])&&(a=n[1]),i&&a&&ct(a,r.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i,a;ce(n[0])&&Rr(n[1])?(i=n[0],a=n[1]):(i=n[1],a=n[0]),re(i,{containerId:a.id,verticalAlign:wo.MIDDLE,textAlign:ml.CENTER}),re(a,{boundElements:(a.boundElements||[]).concat({type:"text",id:i.id})});let l=a.height;return Ut(i,a,r.scene.getNonDeletedElementsMap()),kl(a.id,l),{elements:wS(t,a,i),appState:{...e,selectedElementIds:{[a.id]:!0}},storeAction:P.CAPTURE}}}),wS=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===o.id);r.splice(n,1);let i=r.findIndex(a=>a.id===e.id);return r.splice(i+1,0,o),ho(r,pe([e,o])),r},CS=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===e.id);r.splice(n,1);let i=r.findIndex(a=>a.id===o.id);return r.splice(i,0,e),ho(r,pe([e,o])),r},kE=W({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=n.every(a=>ce(a));return n.length>0&&i},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=t.slice(),a={};for(let l of n)if(ce(l)){let s=hn({type:"rectangle",backgroundColor:e.currentItemBackgroundColor,boundElements:[...l.boundElements||[],{id:l.id,type:"text"}],angle:l.angle,fillStyle:e.currentItemFillStyle,strokeColor:e.currentItemStrokeColor,roughness:e.currentItemRoughness,strokeWidth:e.currentItemStrokeWidth,strokeStyle:e.currentItemStrokeStyle,roundness:e.currentItemRoundness==="round"?{type:$i("rectangle")?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:l.x-Gp,y:l.y-Gp,width:Vi(l.width,"rectangle"),height:Vi(l.height,"rectangle"),groupIds:l.groupIds,frameId:l.frameId});if(l.boundElements?.length){let d=l.boundElements.filter(m=>m.type==="arrow").map(m=>m.id);i.filter(m=>d.includes(m.id)).forEach(m=>{let u=m.startBinding,f=m.endBinding;u?.elementId===l.id&&(u={...u,elementId:s.id}),f?.elementId===l.id&&(f={...f,elementId:s.id}),(u||f)&&re(m,{startBinding:u,endBinding:f},!1)})}re(l,{containerId:s.id,verticalAlign:wo.MIDDLE,boundElements:null,textAlign:ml.CENTER},!1),Ut(l,s,r.scene.getNonDeletedElementsMap()),i=CS([...i,s],s,l),a[s.id]=!0}return{elements:i,appState:{...e,selectedElementIds:a},storeAction:P.CAPTURE}}});h();h();var rr=v(H(),1);var Xr=v(k(),1),yh=320,IE=85,xh=5,SS=42,TS=500,vh=!1,cm=new Map,AE=({element:t,elementsMap:e,setAppState:o,onLinkOpen:r,setToast:n,updateEmbedValidationStatus:i})=>{let a=Ba(),l=_n(),s=t.link||"",[d,c]=(0,rr.useState)(s),m=(0,rr.useRef)(null),u=a.showHyperlinkPopup==="editor",f=(0,rr.useCallback)(()=>{if(!m.current)return;let C=zr(m.current.value)||null;if(!t.link&&C&&xe("hyperlink","create"),Ht(t)){if(a.activeEmbeddable?.element===t&&o({activeEmbeddable:null}),!C){re(t,{link:null}),i(t,!1);return}if(!Zi(C,l.validateEmbeddable))C&&n({message:g("toast.unableToEmbed"),closable:!0}),t.link&&cm.set(t.id,t.link),re(t,{link:C}),i(t,!1);else{let{width:w,height:A}=t,z=Qn(C);z?.error instanceof URIError&&n({message:g("toast.unrecognizedLinkFormat"),closable:!0});let I=z?z.intrinsicSize.w/z.intrinsicSize.h:1,M=cm.get(t.id)!==t.link;re(t,{...M?{width:z?.type==="video"?w>A?w:A*I:w,height:z?.type==="video"&&w>A?w/I:A}:{},link:C}),i(t,!0),cm.has(t.id)&&cm.delete(t.id)}}else re(t,{link:C})},[t,n,l.validateEmbeddable,a.activeEmbeddable,o,i]);(0,rr.useLayoutEffect)(()=>()=>{f()},[f]),(0,rr.useEffect)(()=>{let C=null,w=A=>{if(u)return;C&&clearTimeout(C),IS(t,e,a,[A.clientX,A.clientY])&&(C=window.setTimeout(()=>{o({showHyperlinkPopup:!1})},TS))};return window.addEventListener("pointermove",w,!1),()=>{window.removeEventListener("pointermove",w,!1),C&&clearTimeout(C)}},[a,t,u,o,e]);let b=(0,rr.useCallback)(()=>{xe("hyperlink","delete"),re(t,{link:null}),u&&(m.current.value=""),o({showHyperlinkPopup:!1})},[o,t,u]),x=()=>{xe("hyperlink","edit","popup-ui"),o({showHyperlinkPopup:"editor"})},{x:y,y:T}=ME(t,a,e);return a.contextMenu||a.draggingElement||a.resizingElement||a.isRotating||a.openMenu||a.viewModeEnabled?null:(0,Xr.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${T}px`,left:`${y}px`,width:yh,padding:xh},onClick:()=>{!t.link&&!u&&o({showHyperlinkPopup:"editor"})},children:[u?(0,Xr.jsx)("input",{className:$("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:m,value:d,onChange:C=>c(C.target.value),autoFocus:!0,onKeyDown:C=>{C.stopPropagation(),C[S.CTRL_OR_CMD]&&C.key===S.K&&C.preventDefault(),(C.key===S.ENTER||C.key===S.ESCAPE)&&(f(),o({showHyperlinkPopup:"info"}))}}):t.link?(0,Xr.jsx)("a",{href:zr(t.link||""),className:"excalidraw-hyperlinkContainer-link",target:kc(t.link)?"_self":"_blank",onClick:C=>{if(t.link&&r){let w=dc("excalidraw-link",C.nativeEvent);r({...t,link:zr(t.link)},w),w.defaultPrevented&&C.preventDefault()}},rel:"noopener noreferrer",children:t.link}):(0,Xr.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:g("labels.link.empty")}),(0,Xr.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!u&&(0,Xr.jsx)(le,{type:"button",title:g("buttons.edit"),"aria-label":g("buttons.edit"),label:g("buttons.edit"),onClick:x,className:"excalidraw-hyperlinkContainer--edit",icon:la}),s&&!Ht(t)&&(0,Xr.jsx)(le,{type:"button",title:g("buttons.remove"),"aria-label":g("buttons.remove"),label:g("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:er})]})]})},ME=(t,e,o)=>{let[r,n]=Wt(t,o),{x:i,y:a}=Qt({sceneX:r+t.width/2,sceneY:n},e),l=i-e.offsetLeft-yh/2,s=a-e.offsetTop-IE;return{x:l,y:s}},Eh=(t,e)=>{let o=we(t,e);return o[0]?.link?Ht(o[0])?"labels.link.editEmbed":"labels.link.edit":Ht(o[0])?"labels.link.createEmbed":"labels.link.create"},ss=null,_E=(t,e,o)=>{ss&&clearTimeout(ss),ss=window.setTimeout(()=>kS(t,e,o),T1)},kS=(t,e,o)=>{if(!t.link)return;let r=Pa();r.classList.add("excalidraw-tooltip--visible"),r.style.maxWidth="20rem",r.textContent=t.link;let[n,i,a,l]=Wt(t,o),[s,d,c,m]=c0([n,i,a,l],t.angle,e),u=Qt({sceneX:s,sceneY:d},e);eh(r,{left:u.x,top:u.y,width:c,height:m},"top"),xe("hyperlink","tooltip","link-icon"),vh=!0},LE=()=>{ss&&clearTimeout(ss),vh&&(vh=!1,Pa().classList.remove("excalidraw-tooltip--visible"))},IS=(t,e,o,[r,n])=>{let{x:i,y:a}=Ye({clientX:r,clientY:n},o),l=15/o.zoom.value;if(a0(i,a,t,e))return!1;let[s,d,c]=Wt(t,e);if(i>=s&&i<=c&&a>=d-IE&&a<=d)return!1;let{x:m,y:u}=ME(t,o,e);return!(r>=m-l&&r<=m+yh+xh*2+l&&n>=u-l&&n<=u+l+xh*2+SS)};var PE=v(k(),1),cs=W({name:"hyperlink",label:(t,e)=>Eh(t,e),icon:Ul,perform:(t,e)=>e.showHyperlinkPopup==="editor"?!1:{elements:t,appState:{...e,showHyperlinkPopup:"editor",openMenu:null},storeAction:P.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.K,predicate:(t,e)=>we(t,e).length===1,PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=we(t,e);return(0,PE.jsx)(le,{type:"button",icon:Ul,"aria-label":g(Eh(t,e)),title:`${Ht(t[0])?g("labels.link.labelEmbed"):g("labels.link.label")} - ${F("CtrlOrCmd+K")}`,onClick:()=>o(null),selected:r.length===1&&!!r[0].link})}});h();var wh=t=>t.every(e=>!e.locked),Ch=W({name:"toggleElementLock",label:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1});return r.length===1&&!ye(r[0])?r[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":wh(r)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(t,e)=>{let o=we(e,t);return wh(o)?aa:ri},trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>0&&!n.some(i=>i.locked&&i.frameId)},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});if(!n.length)return!1;let i=wh(n),a=pe(n);return{elements:t.map(l=>a.has(l.id)?he(l,{locked:i}):l),appState:{...e,selectedLinearElement:i?null:e.selectedLinearElement},storeAction:P.CAPTURE}},keyTest:(t,e,o,r)=>t.key.toLocaleLowerCase()===S.L&&t[S.CTRL_OR_CMD]&&t.shiftKey&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1}).length>0}),RE=W({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:ri,predicate:(t,e)=>we(t,e).length===0&&t.some(r=>r.locked),perform:(t,e)=>{let o=t.filter(r=>r.locked);return{elements:t.map(r=>r.locked?he(r,{locked:!1}):r),appState:{...e,selectedElementIds:Object.fromEntries(o.map(r=>[r.id,!0]))},storeAction:P.CAPTURE}},label:"labels.elementLock.unlockAll"});h();h();var $o=v(H(),1);h();var Lm=v(H(),1);h();var dm=v(H(),1),DE=()=>{let[t,e]=(0,dm.useState)(null),o=(0,dm.useCallback)(r=>e(r),[]);return[t,o]};h();var NE=v(H(),1);var OE=v(k(),1),zt=NE.default.forwardRef(({children:t,padding:e,className:o,style:r},n)=>(0,OE.jsx)("div",{className:$("Island",o),style:{"--padding":e,...r},ref:n,children:t}));h();var FE=v(br(),1);var BE=v(H(),1),ds=v(k(),1),zE=t=>{let{closeOnClickOutside:e=!0}=t,o=Xd({className:"excalidraw-modal-container"}),r=(0,BE.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!o)return null;let n=i=>{i.key===S.ESCAPE&&(i.nativeEvent.stopImmediatePropagation(),i.stopPropagation(),t.onCloseRequest())};return(0,FE.createPortal)((0,ds.jsxs)("div",{className:$("Modal",t.className,{"animations-disabled":r.current}),role:"dialog","aria-modal":"true",onKeyDown:n,"aria-labelledby":t.labelledBy,"data-prevent-outside-click":!0,children:[(0,ds.jsx)("div",{className:"Modal__background",onClick:e?t.onCloseRequest:void 0}),(0,ds.jsx)("div",{className:"Modal__content",style:{"--max-width":`${t.maxWidth}px`},tabIndex:0,children:t.children})]}),o)};h();var yo=v(H(),1);h();var $a=v(H(),1);h();var mm=v(H(),1);var Sh=We(new Map),$E=async t=>await Rl({elements:t,appState:{exportBackground:!1,viewBackgroundColor:Ar.white},files:null,renderEmbeddables:!1}),HE=(t,e,o)=>{let[r,n]=(0,mm.useState)();return(0,mm.useEffect)(()=>{if(e)if(t){let i=o.get(t);i?n(i):(async()=>{let a=await $E(e);a.querySelector(".style-fonts")?.remove(),a&&(o.set(t,a),n(a))})()}else(async()=>{let i=await $E(e);n(i)})()},[t,e,o,n]),r},pm=()=>{let[t]=Se(Sh,Ne);return{clearLibraryCache:()=>t.clear(),deleteItemsFromLibraryCache:r=>{r.forEach(n=>t.delete(n))},svgCache:t}};h();var um=class{jobs=[];running=!1;tick(){if(this.running)return;let e=this.jobs.shift();e?(this.running=!0,e.promise.resolve(gl(e.jobFactory,...e.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(e,...o){let r=sc();return this.jobs.push({jobFactory:e,promise:r,args:o}),this.tick(),r}};var WE=new _o,yi=We({status:"loaded",isInitialized:!1,libraryItems:[]}),ms=t=>pr(t),AS=(t,e)=>!t.find(o=>o.elements.length!==e.elements.length?!1:o.elements.every((r,n)=>r.id===e.elements[n].id&&r.versionNonce===e.elements[n].versionNonce)),GE=(t,e)=>{let o=[];for(let r of e)AS(t,r)&&o.push(r);return[...o,...t]},VE=(t,e)=>{let o=pe(e),r={deletedItems:new Map,addedItems:new Map};for(let i of t)o.has(i.id)||r.deletedItems.set(i.id,i);let n=pe(t);for(let i of e)n.has(i.id)||r.addedItems.set(i.id,i);return r},Th=class{currLibraryItems=[];prevLibraryItems=ms(this.currLibraryItems);app;constructor(e){this.app=e}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Gt.set(yi,e=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:e.isInitialized}));else{Gt.set(yi,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let e=this.prevLibraryItems;this.prevLibraryItems=ms(this.currLibraryItems);let o=ms(this.currLibraryItems);this.app.props.onLibraryChange?.(o),WE.trigger(VE(e,o),o)}catch(e){console.error(e)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Gt.set(Sh,new Map)};resetLibrary=()=>this.setLibrary([]);getLatestLibrary=()=>new Promise(async e=>{try{let o=await(this.getLastUpdateTask()||this.currLibraryItems);this.updateQueue.length>0?e(this.getLatestLibrary()):e(ms(o))}catch{return e(this.currLibraryItems)}});updateLibrary=async({libraryItems:e,prompt:o=!1,merge:r=!1,openLibraryMenu:n=!1,defaultStatus:i="unpublished"})=>(n&&this.app.setState({openSidebar:{name:jo.name,tab:nc}}),this.setLibrary(()=>new Promise(async(a,l)=>{try{let s=await(typeof e=="function"&&!(e instanceof Blob)?e(this.currLibraryItems):e),d;s instanceof Blob?d=await mu(s,i):d=_l(s,i),!o||window.confirm(g("alerts.confirmAddLibrary",{numShapes:d.length}))?(o&&this.app.focusContainer(),a(r?GE(this.currLibraryItems,d):d)):l(new Hi)}catch(s){l(s)}})));setLibrary=e=>{let o=new Promise(async(r,n)=>{try{await this.getLastUpdateTask(),typeof e=="function"&&(e=e(this.currLibraryItems)),this.currLibraryItems=ms(await e),r(this.currLibraryItems)}catch(i){n(i)}}).catch(r=>{if(r.name==="AbortError")return console.warn("Library update aborted by user"),this.currLibraryItems;throw r}).finally(()=>{this.updateQueue=this.updateQueue.filter(r=>r!==o),this.notifyListeners()});return this.updateQueue.push(o),this.notifyListeners(),o}},KE=Th,gm=t=>{let o=Math.ceil(Math.sqrt(t.length)),r=[],n=f=>t.slice(f*o,f*o+o).reduce((x,y)=>{let{height:T}=Io(y.elements);return Math.max(x,T)},0),i=f=>{let b=0,x=0,y=0;for(let T of t){if(b%o===0&&(x=0),x===f){let{width:C}=Io(T.elements);y=Math.max(y,C)}b++,x++}return y},a=0,l=0,s=0,d=0,c=0,m=0,u=0;for(let f of t){c&&c%o===0&&(l+=s+50,a=0,m=0,u++),m===0&&(s=n(u)),d=i(m);let{minX:b,minY:x,width:y,height:T}=Io(f.elements),C=(d-y)/2,w=(s-T)/2;r.push(...f.elements.map(A=>({...A,x:A.x+a+C-b,y:A.y+l+w-x}))),a+=d+50,c++,m++}return r},kh=()=>{let t=new URLSearchParams(window.location.hash.slice(1)).get(ec.addLibrary)||new URLSearchParams(window.location.search).get(Qs.addLibrary),e=t?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return t?{libraryUrl:t,idToken:e}:null},za=class t{static queue=new um;static async getLibraryItems(e,o,r=!0){let n=()=>new Promise(async(i,a)=>{try{let l=await e.load({source:o});i(_l(l?.libraryItems||[],"published"))}catch(l){a(l)}});return r?t.queue.push(n):n()}static run=async(e,o)=>{let r=new t(e);return t.queue.push(()=>o(r))};adapter;constructor(e){this.adapter=e}getLibraryItems(e){return t.getLibraryItems(this.adapter,e,!1)}},ps=0,fm=0,hm=t=>Au(t.map(e=>`${e.id}:${Iu(e.elements)}`).sort().join()),UE=async(t,e)=>{try{return fm++,await za.run(t,async o=>{let r=pe(await o.getLibraryItems("save"));for(let[l]of e.deletedItems)r.delete(l);let n=[];for(let[l,s]of e.addedItems)r.has(l)?r.set(l,s):n.push(s);let i=n.concat(Array.from(r.values())),a=hm(i);return a!==ps&&await t.save({libraryItems:i}),ps=a,i})}finally{fm--}},MS=t=>{let{excalidrawAPI:e}=t,o=(0,$a.useRef)(t);o.current=t;let r=(0,$a.useRef)(!1);(0,$a.useEffect)(()=>{if(!e)return;r.current=!1;let n=async({libraryUrl:l,idToken:s})=>{let d=new Promise(async(m,u)=>{try{let b=await(await fetch(decodeURIComponent(l))).blob();m(b)}catch(f){u(f)}}),c=s!==e.id;await(c&&document.hidden?new Promise(m=>{window.addEventListener("focus",()=>m(),{once:!0})}):null);try{await e.updateLibrary({libraryItems:d,prompt:c,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(ec.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(ec.addLibrary),window.history.replaceState({},ll,`#${m.toString()}`)}else if(window.location.search.includes(Qs.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(Qs.addLibrary),window.history.replaceState({},ll,`?${m.toString()}`)}}},i=l=>{l.preventDefault();let s=kh();s&&(l.stopImmediatePropagation(),window.history.replaceState({},"",l.oldURL),n(s))},a=kh();if(a&&n(a),"getInitialLibraryItems"in o.current&&o.current.getInitialLibraryItems&&(console.warn("useHandleLibrar `opts.getInitialLibraryItems` is deprecated. Use `opts.adapter` instead."),Promise.resolve(o.current.getInitialLibraryItems()).then(l=>{e.updateLibrary({libraryItems:l,merge:!0})}).catch(l=>{console.error(`UseHandeLibrary getInitialLibraryItems failed: ${l?.message}`)})),"adapter"in o.current&&o.current.adapter){let l=o.current.adapter,s=o.current.migrationAdapter,d=sc();s?d.resolve(gl(s.load).then(async c=>{let m=null;try{if(!c)return za.getLibraryItems(l,"load");m=_l(c.libraryItems||[],"published");let u=await UE(l,VE([],m));try{await s.clear()}catch(f){console.error(`couldn't delete legacy library data: ${f.message}`)}return u}catch(u){return console.error(`couldn't migrate legacy library data: ${u.message}`),m}}).catch(c=>(console.error(`error during library migration: ${c.message}`),za.getLibraryItems(l,"load")))):d.resolve(gl(za.getLibraryItems,l,"load")),e.updateLibrary({libraryItems:d.then(c=>{let m=c||[];return ps=hm(m),m}),merge:!0}).finally(()=>{r.current=!0})}return window.addEventListener("hashchange",i),()=>{window.removeEventListener("hashchange",i)}},[e]),(0,$a.useEffect)(()=>{let n=WE.on(async(a,l)=>{let s=r.current,d="adapter"in o.current&&o.current.adapter||null;try{d&&ps!==hm(l)&&await UE(d,a)}catch(c){console.error(`couldn't persist library update: ${c.message}`,a),s&&o.current.excalidrawAPI&&o.current.excalidrawAPI.updateScene({appState:{errorMessage:g("errors.saveLibraryError")}})}}),i=a=>{fm&&G1(a)};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i),n(),ps=0,fm=0}},[])};h();var Zt=v(H(),1);h();var Ih=v(H(),1);var Ah=v(k(),1),_S=(0,Ih.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Ah.jsx)("div",{className:$("Stack Stack_horizontal",n),style:{"--gap":e,alignItems:o,justifyContent:r,...i},ref:a,children:t})),LS=(0,Ih.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Ah.jsx)("div",{className:$("Stack Stack_vertical",n),style:{"--gap":e,justifyItems:o,justifyContent:r,...i},ref:a,children:t})),Pt={Row:_S,Col:LS};h();h();var ZE=v(k(),1),PS=({theme:t,id:e,libraryReturnUrl:o})=>{let r=o||window.location.origin+window.location.pathname;return(0,ZE.jsx)("a",{className:"library-menu-browse-button",href:`${E.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${r}&useHash=true&token=${e}&theme=${t}&version=${oc.excalidrawLibrary}`,target:"_excalidraw_libraries",children:g("labels.libraries")})},YE=PS;var xm=v(k(),1),bm=({libraryReturnUrl:t,theme:e,id:o,style:r,children:n,className:i})=>(0,xm.jsxs)("div",{className:$("library-menu-control-buttons",i),style:r,children:[(0,xm.jsx)(YE,{id:o,libraryReturnUrl:t,theme:e}),n]});h();var Va=v(H(),1);h();var us=v(H(),1);var RS=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,DS=/{{([\w-]+)}}/,NS=/<([\w-]+)>/,OS=/<\/([\w-]+)>/,FS=(t,e)=>{let o=[{name:"",children:[]}];return t.split(RS).filter(Boolean).forEach(r=>{let n=r.match(NS),i=r.match(OS),a=r.match(DS);if(n!==null){let l=n[1];e.hasOwnProperty(l)?o.push({name:l,children:[]}):console.warn(`Trans: missed to pass in prop ${l} for interpolating ${t}`)}else if(i!==null)if(i[1]===o[o.length-1].name){let s=o.pop(),d=us.default.createElement(us.default.Fragment,{},...s.children),c=e[s.name];typeof c=="function"&&o[o.length-1].children.push(c(d))}else console.warn(`Trans: unexpected end tag ${r} for interpolating ${t}`);else if(a!==null){let l=a[1];e.hasOwnProperty(l)?o[o.length-1].children.push(e[l]):console.warn(`Trans: key ${l} not in props for interpolating ${t}`)}else o[o.length-1].children.push(r)}),o.length!==1&&console.warn(`Trans: stack not empty for interpolating ${t}`),o[0].children},BS=({i18nKey:t,children:e,...o})=>{let{t:r}=vt();return us.default.createElement(us.default.Fragment,{},...FS(r(t),o))},no=BS;h();h();var Ei=v(k(),1),zS=({label:t,onClick:e,className:o,children:r,actionType:n,type:i="button",isLoading:a,...l})=>{let s=n?`Dialog__action-button--${n}`:"";return(0,Ei.jsxs)("button",{className:$("Dialog__action-button",s,o),type:i,"aria-label":t,onClick:e,...l,children:[r&&(0,Ei.jsx)("div",{style:a?{visibility:"hidden"}:{},children:r}),(0,Ei.jsx)("div",{style:a?{visibility:"hidden"}:{},children:t}),a&&(0,Ei.jsx)("div",{style:{position:"absolute",inset:0},children:(0,Ei.jsx)(Ot,{})})]})},Ha=zS;var Ua=v(k(),1),$S=t=>{let{onConfirm:e,onCancel:o,children:r,confirmText:n=g("buttons.confirm"),cancelText:i=g("buttons.cancel"),className:a="",...l}=t,s=Pe(),d=Wr(Wa,Ne),{container:c}=_t();return(0,Ua.jsxs)(et,{onCloseRequest:o,size:"small",...l,className:`confirm-dialog ${a}`,children:[r,(0,Ua.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Ua.jsx)(Ha,{label:i,onClick:()=>{s({openMenu:null}),d(!1),o(),c?.focus()}}),(0,Ua.jsx)(Ha,{label:n,onClick:()=>{s({openMenu:null}),d(!1),e(),c?.focus()},actionType:"danger"})]})]})},vm=$S;h();var vo=v(H(),1);h();var fo=class{static has(e){try{return!!window.localStorage.getItem(e)}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),!1}}static get(e){try{let o=window.localStorage.getItem(e);return o?JSON.parse(o):null}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),null}}static set=(e,o)=>{try{return window.localStorage.setItem(e,JSON.stringify(o)),!0}catch(r){return console.warn(`localStorage.setItem error: ${r.message}`),!1}};static delete=e=>{try{window.localStorage.removeItem(e)}catch(o){console.warn(`localStorage.removeItem error: ${o.message}`)}}};var ie=v(k(),1),HS=async t=>{let r=Math.round(8),n=Math.max(Math.round(128/64),2),i=H1(t,6),a=document.createElement("canvas");a.width=i[0].length*128+(i[0].length+1)*(r*2)-r*2,a.height=i.length*128+(i.length+1)*(r*2)-r*2;let l=a.getContext("2d");l.fillStyle=Mt.white,l.fillRect(0,0,a.width,a.height);for(let[s,d]of t.entries()){let c=await ei({elements:d.elements,files:null,maxWidthOrHeight:128}),{width:m,height:u}=c,f=Math.floor(s/6)*(128+r*2),b=s%6*(128+r*2);l.drawImage(c,b+(128-m)/2+r,f+(128-u)/2+r),l.lineWidth=n,l.strokeStyle=Mt.gray[4],l.strokeRect(b+r/2,f+r/2,128+r,128+r)}return await Ll(new File([await $r(a)],"preview",{type:Dt.png}),{outputType:Dt.jpg,maxWidthOrHeight:5e3})},US=({libItem:t,appState:e,index:o,onChange:r,onRemove:n})=>{let i=(0,vo.useRef)(null),a=(0,vo.useRef)(null);return(0,vo.useEffect)(()=>{let l=i.current;l&&(async()=>{let s=await Rl({elements:t.elements,appState:{...e,viewBackgroundColor:Mt.white,exportBackground:!0},files:null});l.innerHTML=s.outerHTML})()},[t.elements,e]),(0,ie.jsxs)("div",{className:"single-library-item",children:[t.status==="published"&&(0,ie.jsx)("span",{className:"single-library-item-status",children:g("labels.statusPublished")}),(0,ie.jsx)("div",{ref:i,className:"single-library-item__svg"}),(0,ie.jsx)(le,{"aria-label":g("buttons.remove"),type:"button",icon:Ro,className:"single-library-item--remove",onClick:n.bind(null,t.id),title:g("buttons.remove")}),(0,ie.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,ie.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,ie.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,ie.jsx)("span",{style:{fontWeight:500,color:Mt.gray[6]},children:g("publishDialog.itemName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",ref:a,style:{width:"80%",padding:"0.2rem"},defaultValue:t.name,placeholder:"Item name",onChange:l=>{r(l.target.value,o)}})]}),(0,ie.jsx)("span",{className:"error",children:t.error})]})]})},WS=({onClose:t,libraryItems:e,appState:o,onSuccess:r,onError:n,updateItemsInStorage:i,onRemove:a})=>{let[l,s]=(0,vo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[d,c]=(0,vo.useState)(!1);(0,vo.useEffect)(()=>{let w=fo.get(So.PUBLISH_LIBRARY);w&&s(w)},[]);let[m,u]=(0,vo.useState)(e.slice());(0,vo.useEffect)(()=>{u(e.slice())},[e]);let f=w=>{s({...l,[w.target.name]:w.target.value})},b=async w=>{w.preventDefault(),c(!0);let A=[],z=!1;if(m.forEach(G=>{let O="";G.name||(O=g("publishDialog.errors.required"),z=!0),A.push({...G,error:O})}),z){u(A),c(!1);return}let I=await HS(m),M={type:v1.excalidrawLibrary,version:oc.excalidrawLibrary,source:y1,libraryItems:m},_=JSON.stringify(M,null,2),U=new Blob([_],{type:"application/json"}),D=new FormData;D.append("excalidrawLib",U),D.append("previewImage",I),D.append("previewImageType",I.type),D.append("title",l.name),D.append("authorName",l.authorName),D.append("githubHandle",l.githubHandle),D.append("name",l.name),D.append("description",l.description),D.append("twitterHandle",l.twitterHandle),D.append("website",l.website),fetch(`${E.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:D}).then(G=>G.ok?G.json().then(({url:O})=>{fo.delete(So.PUBLISH_LIBRARY),r({url:O,authorName:l.authorName,items:m})}):G.json().catch(()=>{throw new Error(G.statusText||"something went wrong")}).then(O=>{throw new Error(O.message||G.statusText||"something went wrong")}),G=>{console.error(G),n(G),c(!1)}).catch(G=>{console.error(G),n(G),c(!1)})},x=()=>{let w=[];return m.forEach((A,z)=>{w.push((0,ie.jsx)("div",{className:"single-library-item-wrapper",children:(0,ie.jsx)(US,{libItem:A,appState:o,index:z,onChange:(I,M)=>{let _=m.slice();_[M].name=I,u(_)},onRemove:a})},z))}),(0,ie.jsx)("div",{className:"selected-library-items",children:w})},y=(0,vo.useCallback)(()=>{i(m),fo.set(So.PUBLISH_LIBRARY,l),t()},[m,t,i,l]),T=!!e.length,C=e.some(w=>w.status==="published");return(0,ie.jsx)(et,{onCloseRequest:y,title:g("publishDialog.title"),className:"publish-library",children:T?(0,ie.jsxs)("form",{onSubmit:b,children:[(0,ie.jsx)("div",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteDescription",link:w=>(0,ie.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteGuidelines",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("div",{className:"publish-library-note",children:g("publishDialog.noteItems")}),C&&(0,ie.jsx)("span",{className:"publish-library-note publish-library-warning",children:g("publishDialog.republishWarning")}),x(),(0,ie.jsxs)("div",{className:"publish-library__fields",children:[(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"name",required:!0,value:l.name,onChange:f,placeholder:g("publishDialog.placeholder.libraryName")})]}),(0,ie.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryDesc")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("textarea",{name:"description",rows:4,required:!0,value:l.description,onChange:f,placeholder:g("publishDialog.placeholder.libraryDesc")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.authorName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"authorName",required:!0,value:l.authorName,onChange:f,placeholder:g("publishDialog.placeholder.authorName")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.githubUsername")}),(0,ie.jsx)("input",{type:"text",name:"githubHandle",value:l.githubHandle,onChange:f,placeholder:g("publishDialog.placeholder.githubHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.twitterUsername")}),(0,ie.jsx)("input",{type:"text",name:"twitterHandle",value:l.twitterHandle,onChange:f,placeholder:g("publishDialog.placeholder.twitterHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.website")}),(0,ie.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:g("publishDialog.errors.website"),value:l.website,onChange:f,placeholder:g("publishDialog.placeholder.website")})]}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteLicense",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:w})})})]}),(0,ie.jsxs)("div",{className:"publish-library__buttons",children:[(0,ie.jsx)(Ha,{label:g("buttons.cancel"),onClick:y,"data-testid":"cancel-clear-canvas-button"}),(0,ie.jsx)(Ha,{type:"submit",label:g("buttons.submit"),actionType:"primary",isLoading:d})]})]}):(0,ie.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:g("publishDialog.atleastOneLibItem")})})},jE=WS;h();h();var JE=v(k(),1),XE=({className:t="",children:e,onToggle:o,title:r,...n})=>{let i=Me(),a=$(`dropdown-menu-button ${t}`,"zen-mode-transition",{"dropdown-menu-button--mobile":i.editor.isMobile}).trim();return(0,JE.jsx)("button",{"data-prevent-outside-click":!0,className:a,onClick:o,type:"button","data-testid":"dropdown-menu-button",title:r,...n,children:e})},qE=XE;XE.displayName="DropdownMenuTrigger";h();h();var ym=v(H(),1);var Mh=ym.default.createContext({}),Em=(t="",e=!1)=>`dropdown-menu-item dropdown-menu-item-base ${t} ${e?"dropdown-menu-item--selected":""}`.trim(),wm=(t,e)=>{let o=(0,ym.useContext)(Mh);return cn(t,r=>{let n=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});e?.(n),n.defaultPrevented||o.onSelect?.(n)})};h();var Ln=v(k(),1),GS=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,Ln.jsxs)(Ln.Fragment,{children:[(0,Ln.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,Ln.jsx)("div",{className:"dropdown-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,Ln.jsx)("div",{className:"dropdown-menu-item__shortcut",children:e})]})},Cm=GS;var Sm=v(k(),1),_h=({icon:t,onSelect:e,children:o,shortcut:r,className:n,selected:i,...a})=>{let l=wm(a.onClick,e);return(0,Sm.jsx)("button",{...a,onClick:l,type:"button",className:Em(n,i),title:a.title??a["aria-label"],children:(0,Sm.jsx)(Cm,{icon:t,shortcut:r,children:o})})};_h.displayName="DropdownMenuItem";var QE=({children:t})=>(0,Sm.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:t});QE.displayName="DropdownMenuItemBadge";_h.Badge=QE;var Bo=_h;h();var ow=v(k(),1),ew=()=>(0,ow.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),tw=ew;ew.displayName="DropdownMenuSeparator";h();var Tm=v(k(),1),rw=({children:t,className:e="",style:o,title:r})=>(0,Tm.jsxs)("div",{className:`dropdown-menu-group ${e}`,style:o,children:[r&&(0,Tm.jsx)("p",{className:"dropdown-menu-group-title",children:r}),t]}),nw=rw;rw.displayName="DropdownMenuGroup";h();var km=v(H(),1);var fs=v(k(),1),iw=({children:t,onClickOutside:e,className:o="",onSelect:r,style:n})=>{let i=Me(),a=(0,km.useRef)(null),l=La({onClickOutside:e});_a(a,()=>{l.onClickOutside?.()}),(0,km.useEffect)(()=>{let d=m=>{m.key===S.ESCAPE&&(m.stopImmediatePropagation(),l.onClickOutside?.())},c={capture:!0};return document.addEventListener("keydown",d,c),()=>{document.removeEventListener("keydown",d,c)}},[l]);let s=$(`dropdown-menu ${o}`,{"dropdown-menu--mobile":i.editor.isMobile}).trim();return(0,fs.jsx)(Mh.Provider,{value:{onSelect:r},children:(0,fs.jsx)("div",{ref:a,className:s,style:n,"data-testid":"dropdown-menu",children:i.editor.isMobile?(0,fs.jsx)(Pt.Col,{className:"dropdown-menu-container",children:t}):(0,fs.jsx)(zt,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:t})})})};iw.displayName="DropdownMenuContent";var aw=iw;h();var Lh=v(k(),1),lw=({icon:t,shortcut:e,href:o,children:r,onSelect:n,className:i="",selected:a,...l})=>{let s=wm(l.onClick,n);return(0,Lh.jsx)("a",{...l,href:o,target:"_blank",rel:"noreferrer",className:Em(i,a),title:l.title??l["aria-label"],onClick:s,children:(0,Lh.jsx)(Cm,{icon:t,shortcut:e,children:r})})},Ga=lw;lw.displayName="DropdownMenuItemLink";h();var cw=v(k(),1),VS=({children:t,className:e="",selected:o,...r})=>(0,cw.jsx)("div",{...r,className:`dropdown-menu-item-base dropdown-menu-item-custom ${e} ${o?"dropdown-menu-item--selected":""}`.trim(),children:t}),sw=VS;h();var hs=v(H(),1),dw=t=>{let e=hs.default.Children.toArray(t).find(o=>hs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuTrigger");return e||null},mw=t=>{let e=hs.default.Children.toArray(t).find(o=>hs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuContent");return e||null};var Im=v(k(),1),qr=({children:t,open:e})=>{let o=dw(t),r=mw(t);return(0,Im.jsxs)(Im.Fragment,{children:[o,e&&r]})};qr.Trigger=qE;qr.Content=aw;qr.Item=Bo;qr.ItemLink=Ga;qr.ItemCustom=sw;qr.Group=nw;qr.Separator=tw;var De=qr;qr.displayName="DropdownMenu";var Et=v(k(),1),KS=(t,e)=>t.filter(o=>e.includes(o.id)),YS=({setAppState:t,selectedItems:e,library:o,onRemoveFromLibrary:r,resetLibrary:n,onSelectItems:i,appState:a,className:l})=>{let[s]=Se(yi,Ne),[d,c]=Se(Wa,Ne),m=()=>{let D=e.length?g("alerts.removeItemsFromsLibrary",{count:e.length}):g("alerts.resetLibrary"),G=e.length?g("confirmDialog.removeItemsFromLib"):g("confirmDialog.resetLibrary");return(0,Et.jsx)(vm,{onConfirm:()=>{e.length?r():n(),f(!1)},onCancel:()=>{f(!1)},title:G,children:(0,Et.jsx)("p",{children:D})})},[u,f]=(0,Va.useState)(!1),b=!!e.length,x=b?s.libraryItems.filter(D=>e.includes(D.id)):s.libraryItems,y=b?g("buttons.remove"):g("buttons.resetLibrary"),[T,C]=(0,Va.useState)(!1),[w,A]=(0,Va.useState)(null),z=(0,Va.useCallback)(()=>(0,Et.jsxs)(et,{onCloseRequest:()=>A(null),title:g("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,Et.jsx)("p",{children:(0,Et.jsx)(no,{i18nKey:"publishSuccessDialog.content",authorName:w.authorName,link:D=>(0,Et.jsx)("a",{href:w?.url,target:"_blank",rel:"noopener noreferrer",children:D})})}),(0,Et.jsx)(le,{type:"button",title:g("buttons.close"),"aria-label":g("buttons.close"),label:g("buttons.close"),onClick:()=>A(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[A,w]),I=(D,G)=>{C(!1),A({url:D.url,authorName:D.authorName});let O=G.slice();O.forEach(B=>{e.includes(B.id)&&(B.status="published")}),o.setLibrary(O)},M=async()=>{try{await o.updateLibrary({libraryItems:Pc({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(D){if(D?.name==="AbortError"){console.warn(D);return}t({errorMessage:g("errors.importLibraryError")})}},_=async()=>{let D=b?x:await o.getLatestLibrary();jb(D).catch(lc).catch(G=>{t({errorMessage:G.message})})},U=()=>(0,Et.jsxs)(De,{open:d,children:[(0,Et.jsx)(De.Trigger,{onToggle:()=>c(!d),children:lx}),(0,Et.jsxs)(De.Content,{onClickOutside:()=>c(!1),onSelect:()=>c(!1),className:"library-menu",children:[!b&&(0,Et.jsx)(De.Item,{onSelect:M,icon:ca,"data-testid":"lib-dropdown--load",children:g("buttons.load")}),!!x.length&&(0,Et.jsx)(De.Item,{onSelect:_,icon:ni,"data-testid":"lib-dropdown--export",children:g("buttons.export")}),!!x.length&&(0,Et.jsx)(De.Item,{onSelect:()=>f(!0),icon:er,children:y}),b&&(0,Et.jsx)(De.Item,{icon:xv,onSelect:()=>C(!0),"data-testid":"lib-dropdown--remove",children:g("buttons.publishLibrary")})]})]});return(0,Et.jsxs)("div",{className:$("library-menu-dropdown-container",l),children:[U(),e.length>0&&(0,Et.jsx)("div",{className:"library-actions-counter",children:e.length}),u&&m(),T&&(0,Et.jsx)(jE,{onClose:()=>C(!1),libraryItems:KS(s.libraryItems,e),appState:a,onSuccess:D=>I(D,s.libraryItems),onError:D=>window.alert(D),updateItemsInStorage:()=>o.setLibrary(s.libraryItems),onRemove:D=>i(e.filter(G=>G!==D))}),w&&z()]})},Ph=({selectedItems:t,onSelectItems:e,className:o})=>{let{library:r}=mo(),{clearLibraryCache:n,deleteItemsFromLibraryCache:i}=pm(),a=Le(),l=Pe(),[s]=Se(yi,Ne),d=async m=>{let u=m.filter(f=>!t.includes(f.id));r.setLibrary(u).catch(()=>{l({errorMessage:g("alerts.errorRemovingFromLibrary")})}),i(t),e([])};return(0,Et.jsx)(YS,{appState:a,setAppState:l,selectedItems:t,onSelectItems:e,library:r,onRemoveFromLibrary:()=>d(s.libraryItems),resetLibrary:()=>{r.resetLibrary(),n()},className:o})};h();var Ka=v(H(),1);h();var Pn=v(H(),1);var wi=v(k(),1),pw=(0,Pn.memo)(({id:t,elements:e,isPending:o,onClick:r,selected:n,onToggle:i,onDrag:a,svgCache:l})=>{let s=(0,Pn.useRef)(null),d=HE(t,e,l);(0,Pn.useEffect)(()=>{let b=s.current;if(b)return d&&(b.innerHTML=d.outerHTML),()=>{b.innerHTML=""}},[d]);let[c,m]=(0,Pn.useState)(!1),u=Me().editor.isMobile,f=o&&(0,wi.jsx)("div",{className:"library-unit__adder",children:ax});return(0,wi.jsxs)("div",{className:$("library-unit",{"library-unit__active":e,"library-unit--hover":e&&c,"library-unit--selected":n,"library-unit--skeleton":!d}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,wi.jsx)("div",{className:$("library-unit__dragger",{"library-unit__pulse":!!o}),ref:s,draggable:!!e,onClick:e||o?b=>{t&&b.shiftKey?i(t,b):r(t)}:void 0,onDragStart:b=>{if(!t){b.preventDefault();return}m(!1),a(t,b)}}),f,t&&e&&(c||u||n)&&(0,wi.jsx)(hi,{checked:n,onChange:(b,x)=>i(t,x),className:"library-unit__checkbox"})]})}),uw=()=>(0,wi.jsx)("div",{className:"library-unit library-unit--skeleton"});h();var Am=v(H(),1);function ZS(){return[!1,(0,Am.useCallback)(e=>e(),[])]}var fw=Am.default.useTransition||ZS;var Ci=v(k(),1),Rh=({children:t})=>(0,Ci.jsx)("div",{className:"library-menu-items-container__grid",children:t}),Mm=(0,Ka.memo)(({items:t,onItemSelectToggle:e,onItemDrag:o,isItemSelected:r,onClick:n,svgCache:i,itemsRenderedPerBatch:a})=>{let[,l]=fw(),[s,d]=(0,Ka.useState)(0);return(0,Ka.useEffect)(()=>{s<t.length&&l(()=>{d(s+a)})},[s,t.length,l,a]),(0,Ci.jsx)(Ci.Fragment,{children:t.map((c,m)=>m<s?(0,Ci.jsx)(pw,{elements:c?.elements,isPending:!c?.id&&!!c?.elements,onClick:n,svgCache:i,id:c?.id,selected:r(c.id),onToggle:e,onDrag:o},c?.id??m):(0,Ci.jsx)(uw,{},m))})});h();var vw=v(H(),1);var yw=v(Nh(),1),pT=We(0),Ew=t=>{let[e,o]=Se(pT);return(0,vw.useEffect)(()=>{let{current:r}=t;if(!r)return;let n=(0,yw.default)(()=>{let{scrollTop:i}=r;o(i)},200);return r.addEventListener("scroll",n),()=>{n.cancel(),r.removeEventListener("scroll",n)}},[t,o]),e};var qe=v(k(),1),uT=17,fT=64;function Oh({isLoading:t,libraryItems:e,onAddToLibrary:o,onInsertLibraryItems:r,pendingElements:n,theme:i,id:a,libraryReturnUrl:l,onSelectItems:s,selectedItems:d}){let c=(0,Zt.useRef)(null),m=Ew(c);(0,Zt.useEffect)(()=>{m>0&&c.current?.scrollTo(0,m)},[]);let{svgCache:u}=pm(),f=(0,Zt.useMemo)(()=>e.filter(D=>D.status!=="published"),[e]),b=(0,Zt.useMemo)(()=>e.filter(D=>D.status==="published"),[e]),x=!e.length&&!n.length,y=!n.length&&!f.length&&!b.length,[T,C]=(0,Zt.useState)(null),w=(0,Zt.useCallback)((D,G)=>{let O=!d.includes(D),B=[...f,...b];if(O){if(G.shiftKey&&T){let te=B.findIndex(de=>de.id===T),oe=B.findIndex(de=>de.id===D);if(te===-1||oe===-1){s([...d,D]);return}let ve=pe(d),Ie=B.reduce((de,j,R)=>((R>=te&&R<=oe||ve.has(j.id))&&de.push(j.id),de),[]);s(Ie)}else s([...d,D]);C(D)}else C(null),s(d.filter(te=>te!==D))},[T,s,b,d,f]),A=(0,Zt.useCallback)(D=>{let G;return d.includes(D)?G=e.filter(O=>d.includes(O.id)):G=e.filter(O=>O.id===D),G.map(O=>({...O,elements:Lc(O.elements,{randomizeSeed:!0})}))},[e,d]),z=(0,Zt.useCallback)((D,G)=>{G.dataTransfer.setData(Dt.excalidrawlib,hu(A(D)))},[A]),I=(0,Zt.useCallback)(D=>D?d.includes(D):!1,[d]),M=(0,Zt.useCallback)(()=>{o(n)},[n,o]),_=(0,Zt.useCallback)(D=>{D&&r(A(D))},[A,r]),U=u.size>=e.length?fT:uT;return(0,qe.jsxs)("div",{className:"library-menu-items-container",style:n.length||f.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!y&&(0,qe.jsx)(Ph,{selectedItems:d,onSelectItems:s,className:"library-menu-dropdown-container--in-heading"}),(0,qe.jsxs)(Pt.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:b.length>0?1:"0 1 auto",marginBottom:0},ref:c,children:[(0,qe.jsxs)(qe.Fragment,{children:[!y&&(0,qe.jsx)("div",{className:"library-menu-items-container__header",children:g("labels.personalLib")}),t&&(0,qe.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,qe.jsx)(Ot,{})}),!n.length&&!f.length?(0,qe.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,qe.jsx)("div",{className:"library-menu-items__no-items__label",children:g("library.noItems")}),(0,qe.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?g("library.hint_emptyPrivateLibrary"):g("library.hint_emptyLibrary")})]}):(0,qe.jsxs)(Rh,{children:[n.length>0&&(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:[{id:null,elements:n}],onItemSelectToggle:w,onItemDrag:z,onClick:M,isItemSelected:I,svgCache:u}),(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:f,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})]})]}),(0,qe.jsxs)(qe.Fragment,{children:[(b.length>0||n.length>0||f.length>0)&&(0,qe.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:g("labels.excalidrawLib")}),b.length>0?(0,qe.jsx)(Rh,{children:(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:b,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})}):f.length>0?(0,qe.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:g("library.noItems")}):null]}),x&&(0,qe.jsx)(bm,{style:{padding:"16px 0",width:"100%"},id:a,libraryReturnUrl:l,theme:i,children:(0,qe.jsx)(Ph,{selectedItems:d,onSelectItems:s})})]})]})}var zo=v(k(),1),Wa=We(!1),ww=({children:t})=>(0,zo.jsx)("div",{className:"layer-ui__library",children:t}),hT=({onInsertLibraryItems:t,pendingElements:e,onAddToLibrary:o,setAppState:r,libraryReturnUrl:n,library:i,id:a,theme:l,selectedItems:s,onSelectItems:d})=>{let[c]=Se(yi,Ne),m=(0,yo.useCallback)(b=>{(async(y,T)=>{xe("element","addToLibrary","ui");for(let w of ic)if(y.some(A=>A.type===w))return r({errorMessage:g(`errors.libraryElementTypeError.${w}`)});let C=[{status:"unpublished",elements:y,id:mn(),created:Date.now()},...T];o(),i.setLibrary(C).catch(()=>{r({errorMessage:g("alerts.errorAddingToLibrary")})})})(b,c.libraryItems)},[o,i,r,c.libraryItems]),u=(0,yo.useMemo)(()=>c.libraryItems,[c]);if(c.status==="loading"&&!c.isInitialized)return(0,zo.jsx)(ww,{children:(0,zo.jsx)("div",{className:"layer-ui__library-message",children:(0,zo.jsxs)("div",{children:[(0,zo.jsx)(Ot,{size:"2em"}),(0,zo.jsx)("span",{children:g("labels.libraryLoadingMessage")})]})})});let f=c.libraryItems.length>0||e.length>0;return(0,zo.jsxs)(ww,{children:[(0,zo.jsx)(Oh,{isLoading:c.status==="loading",libraryItems:u,onAddToLibrary:m,onInsertLibraryItems:t,pendingElements:e,id:a,libraryReturnUrl:n,theme:l,onSelectItems:d,selectedItems:s}),f&&(0,zo.jsx)(bm,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:a,libraryReturnUrl:n,theme:l})]})},gT=(t,e)=>{let o=()=>we(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}),r=(0,yo.useRef)(o()),n=(0,yo.useRef)(t),i=(0,yo.useRef)(e);return(!kt(t.selectedElementIds,n.current.selectedElementIds)||!kt(e,i.current))&&(r.current=o(),n.current=t,i.current=e),r.current},Cw=()=>{let{library:t,id:e,onInsertElements:o}=mo(),r=_n(),n=Le(),i=Pe(),a=kn(),[l,s]=(0,yo.useState)([]),d=(0,yo.useMemo)(()=>t,[t]),c=gT(n,a),m=(0,yo.useCallback)(f=>{o(gm(f))},[o]),u=(0,yo.useCallback)(()=>{i({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[i]);return(0,zo.jsx)(hT,{pendingElements:c,onInsertLibraryItems:m,onAddToLibrary:u,setAppState:i,libraryReturnUrl:r.libraryReturnUrl,library:d,id:e,theme:n.theme,selectedItems:l,onSelectItems:s})};var Rn=v(k(),1);function bT(t){if(t&&typeof t=="number")return t;switch(t){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var et=t=>{let[e,o]=DE(),[r]=(0,Lm.useState)(document.activeElement),{id:n}=_t(),i=Me().viewport.isMobile;(0,Lm.useEffect)(()=>{if(!e)return;let d=hl(e);setTimeout(()=>{d.length>0&&t.autofocus!==!1&&(d[1]||d[0]).focus()});let c=m=>{if(m.key===S.TAB){let u=hl(e),{activeElement:f}=document,b=u.findIndex(x=>x===f);b===0&&m.shiftKey?(u[u.length-1].focus(),m.preventDefault()):b===u.length-1&&!m.shiftKey&&(u[0].focus(),m.preventDefault())}};return e.addEventListener("keydown",c),()=>e.removeEventListener("keydown",c)},[e,t.autofocus]);let a=Pe(),l=Wr(Wa,Ne),s=()=>{a({openMenu:null}),l(!1),r.focus(),t.onCloseRequest()};return(0,Rn.jsx)(zE,{className:$("Dialog",t.className,{"Dialog--fullscreen":i}),labelledBy:"dialog-title",maxWidth:bT(t.size),onCloseRequest:s,closeOnClickOutside:t.closeOnClickOutside,children:(0,Rn.jsxs)(zt,{ref:o,children:[t.title&&(0,Rn.jsx)("h2",{id:`${n}-dialog-title`,className:"Dialog__title",children:(0,Rn.jsx)("span",{className:"Dialog__titleContent",children:t.title})}),i&&(0,Rn.jsx)("button",{className:"Dialog__close",onClick:s,title:g("buttons.close"),"aria-label":g("buttons.close"),children:Ro}),(0,Rn.jsx)("div",{className:"Dialog__content",children:t.children})]})})};h();var Sr=v(H(),1);h();var Sw=v(k(),1),Cr=({type:t="button",onSelect:e,selected:o,children:r,className:n="",...i})=>(0,Sw.jsx)("button",{onClick:cn(i.onClick,a=>{e()}),type:t,className:$("excalidraw-button",n,{selected:o}),...i,children:r});var Si=v(k(),1),Pm=(0,Sr.forwardRef)(({onChange:t,label:e,fullWidth:o,placeholder:r,readonly:n,selectOnRender:i,onKeyDown:a,isRedacted:l=!1,...s},d)=>{let c=(0,Sr.useRef)(null);(0,Sr.useImperativeHandle)(d,()=>c.current),(0,Sr.useLayoutEffect)(()=>{i&&c.current?.select()},[i]);let[m,u]=(0,Sr.useState)(!1);return(0,Si.jsxs)("div",{className:$("ExcTextField",{"ExcTextField--fullWidth":o}),onClick:()=>{c.current?.focus()},children:[(0,Si.jsx)("div",{className:"ExcTextField__label",children:e}),(0,Si.jsxs)("div",{className:$("ExcTextField__input",{"ExcTextField__input--readonly":n}),children:[(0,Si.jsx)("input",{className:$({"is-redacted":"value"in s&&s.value&&l&&!m}),readOnly:n,value:"value"in s?s.value:void 0,defaultValue:"defaultValue"in s?s.defaultValue:void 0,placeholder:r,ref:c,onChange:f=>t?.(f.target.value),onKeyDown:a}),l&&(0,Si.jsx)(Cr,{onSelect:()=>u(!m),style:{border:0,userSelect:"none"},children:m?Tv:pa})]})]})});h();var xT={toggleTheme:[F("Shift+Alt+D")],saveScene:[F("CtrlOrCmd+S")],loadScene:[F("CtrlOrCmd+O")],clearCanvas:[F("CtrlOrCmd+Delete")],imageExport:[F("CtrlOrCmd+Shift+E")],commandPalette:[F("CtrlOrCmd+/"),F("CtrlOrCmd+Shift+P")],cut:[F("CtrlOrCmd+X")],copy:[F("CtrlOrCmd+C")],paste:[F("CtrlOrCmd+V")],copyStyles:[F("CtrlOrCmd+Alt+C")],pasteStyles:[F("CtrlOrCmd+Alt+V")],selectAll:[F("CtrlOrCmd+A")],deleteSelectedElements:[F("Delete")],duplicateSelection:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)],sendBackward:[F("CtrlOrCmd+[")],bringForward:[F("CtrlOrCmd+]")],sendToBack:[Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")],bringToFront:[Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")],copyAsPng:[F("Shift+Alt+C")],copyAsSvg:[],group:[F("CtrlOrCmd+G")],ungroup:[F("CtrlOrCmd+Shift+G")],gridMode:[F("CtrlOrCmd+'")],zenMode:[F("Alt+Z")],objectsSnapMode:[F("Alt+S")],stats:[F("Alt+/")],addToLibrary:[],flipHorizontal:[F("Shift+H")],flipVertical:[F("Shift+V")],viewMode:[F("Alt+R")],hyperlink:[F("CtrlOrCmd+K")],toggleElementLock:[F("CtrlOrCmd+Shift+L")],resetZoom:[F("CtrlOrCmd+0")],zoomOut:[F("CtrlOrCmd+-")],zoomIn:[F("CtrlOrCmd++")],zoomToFitSelection:[F("Shift+3")],zoomToFit:[F("Shift+1")],zoomToFitSelectionInViewport:[F("Shift+2")],toggleEraserTool:[F("E")],toggleHandTool:[F("H")],setFrameAsActiveTool:[F("F")],saveFileToDisk:[F("CtrlOrCmd+S")],saveToActiveFile:[F("CtrlOrCmd+S")],toggleShortcuts:[F("?")]},wt=(t,e=0)=>{let o=xT[t];return o&&o.length>0?o[e]||o[0]:""};var r3=v(Iw(),1);h();var vT="\\u0300-\\u036f",yT="\\ufe20-\\ufe2f",ET="\\u20d0-\\u20ff",wT=vT+yT+ET,CT=`[${wT}]`,ST=RegExp(CT,"g"),TT=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,kT={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"E",\u00E6:"e",\u00DE:"T",\u00FE:"t",\u00DF:"s",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"I",\u0133:"i",\u0152:"E",\u0153:"e",\u0149:"n",\u017F:"s"},Fh=t=>t.replace(TT,e=>kT[e]||e).replace(ST,"");h();var Aw=v(k(),1),Dn=({icon:t})=>(0,Aw.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:t});h();var gs=[{icon:px,value:"selection",key:S.V,numericKey:S[1],fillable:!0},{icon:ux,value:"rectangle",key:S.R,numericKey:S[2],fillable:!0},{icon:fx,value:"diamond",key:S.D,numericKey:S[3],fillable:!0},{icon:hx,value:"ellipse",key:S.O,numericKey:S[4],fillable:!0},{icon:gx,value:"arrow",key:S.A,numericKey:S[5],fillable:!0},{icon:bx,value:"line",key:S.L,numericKey:S[6],fillable:!0},{icon:la,value:"freedraw",key:[S.P,S.X],numericKey:S[7],fillable:!1},{icon:vx,value:"text",key:S.T,numericKey:S[8],fillable:!1},{icon:yx,value:"image",key:null,numericKey:S[9],fillable:!1},{icon:Ex,value:"eraser",key:S.E,numericKey:S[0],fillable:!1}],Mw=t=>gs.find((o,r)=>o.numericKey!=null&&t===o.numericKey.toString()||o.key&&(typeof o.key=="string"?o.key===t:o.key.includes(t)))?.value||null;h();var jw=v(H(),1);h();var Dm=v(H(),1);h();var bs=v(H());h();h();var _w=t=>{let e,o=new Set,r=(c,m)=>{let u=typeof c=="function"?c(e):c;if(!Object.is(u,e)){let f=e;e=m??(typeof u!="object"||u===null)?u:Object.assign({},e,u),o.forEach(b=>b(e,f))}},n=()=>e,s={setState:r,getState:n,getInitialState:()=>d,subscribe:c=>(o.add(c),()=>o.delete(c)),destroy:()=>{(E?E.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),o.clear()}},d=e=t(r,n,s);return s},Lw=t=>t?_w(t):_w;var Uw=v(H(),1),Ww=v(zw(),1),{useDebugValue:GT}=Uw.default,{useSyncExternalStoreWithSelector:VT}=Ww.default,$w=!1,KT=t=>t;function YT(t,e=KT,o){(E?E.MODE:void 0)!=="production"&&o&&!$w&&(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"),$w=!0);let r=VT(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,o);return GT(r),r}var Hw=t=>{(E?E.MODE:void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let e=typeof t=="function"?Lw(t):t,o=(r,n)=>YT(e,r,n);return Object.assign(o,e),o},Gw=t=>t?Hw(t):Hw;var Vw,Kw,Yw=typeof window<"u"&&((Vw=window.document)!=null&&Vw.createElement||((Kw=window.navigator)==null?void 0:Kw.product)==="ReactNative")?bs.default.useLayoutEffect:bs.default.useEffect;function nr(){let t=Gw(e=>({current:new Array,version:0,set:e}));return{In:({children:e})=>{let o=t(n=>n.set),r=t(n=>n.version);return Yw(()=>{o(n=>({version:n.version+1}))},[]),Yw(()=>(o(({current:n})=>({current:[...n,e]})),()=>o(({current:n})=>({current:n.filter(i=>i!==e)}))),[e,r]),null},Out:()=>{let e=t(o=>o.current);return bs.default.createElement(bs.default.Fragment,null,e)}}}var zh=Dm.default.createContext(null),Ve=()=>Dm.default.useContext(zh),Zw=()=>Dm.default.useMemo(()=>({MainMenuTunnel:nr(),WelcomeScreenMenuHintTunnel:nr(),WelcomeScreenToolbarHintTunnel:nr(),WelcomeScreenHelpHintTunnel:nr(),WelcomeScreenCenterTunnel:nr(),FooterCenterTunnel:nr(),DefaultSidebarTriggerTunnel:nr(),DefaultSidebarTabTriggersTunnel:nr(),OverwriteConfirmDialogTunnel:nr(),TTDDialogTriggerTunnel:nr(),jotaiScope:Symbol()}),[]);var ae=v(k(),1),$h=(t,e)=>{let o=e[0]?.type||null;for(let r of e)if(r.type!==o){o=null;break}return wl(t.activeTool.type)&&t.activeTool.type!=="image"&&o!=="image"&&o!=="frame"&&o!=="magicframe"||e.some(r=>wl(r.type))},Hh=(t,e)=>fn(t.activeTool.type)||e.some(o=>fn(o.type)),Nm=({appState:t,elementsMap:e,renderAction:o})=>{let r=oa(e,t),n=!1;r.length===2&&(fr(r[0])||fr(r[1]))&&(n=!0);let i=!!t.editingElement,a=Me(),l=document.documentElement.getAttribute("dir")==="rtl",s=fn(t.activeTool.type)&&!jn(t.currentItemBackgroundColor)||r.some(m=>fn(m.type)&&!jn(m.backgroundColor)),d=r.length===1||n,c=!t.editingLinearElement&&r.length===1&&_e(r[0]);return(0,ae.jsxs)("div",{className:"panelColumn",children:[(0,ae.jsx)("div",{children:$h(t,r)&&o("changeStrokeColor")}),Hh(t,r)&&(0,ae.jsx)("div",{children:o("changeBackgroundColor")}),s&&o("changeFillStyle"),(Jp(t.activeTool.type)||r.some(m=>Jp(m.type)))&&o("changeStrokeWidth"),(t.activeTool.type==="freedraw"||r.some(m=>m.type==="freedraw"))&&o("changeStrokeShape"),(Qp(t.activeTool.type)||r.some(m=>Qp(m.type)))&&(0,ae.jsxs)(ae.Fragment,{children:[o("changeStrokeStyle"),o("changeSloppiness")]}),(eu(t.activeTool.type)||r.some(m=>eu(m.type)))&&(0,ae.jsx)(ae.Fragment,{children:o("changeRoundness")}),(t.activeTool.type==="text"||r.some(ce))&&(0,ae.jsxs)(ae.Fragment,{children:[o("changeFontSize"),o("changeFontFamily"),(t.activeTool.type==="text"||Eb(r,e))&&o("changeTextAlign")]}),yb(r,e)&&o("changeVerticalAlign"),(Ui(t.activeTool.type)||r.some(m=>Ui(m.type)))&&(0,ae.jsx)(ae.Fragment,{children:o("changeArrowhead")}),o("changeOpacity"),(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.layers")}),(0,ae.jsxs)("div",{className:"buttonList",children:[o("sendToBack"),o("sendBackward"),o("bringForward"),o("bringToFront")]})]}),r.length>1&&!n&&(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.align")}),(0,ae.jsxs)("div",{className:"buttonList",children:[l?(0,ae.jsxs)(ae.Fragment,{children:[o("alignRight"),o("alignHorizontallyCentered"),o("alignLeft")]}):(0,ae.jsxs)(ae.Fragment,{children:[o("alignLeft"),o("alignHorizontallyCentered"),o("alignRight")]}),r.length>2&&o("distributeHorizontally"),(0,ae.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,ae.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:"-0.5rem"},children:[o("alignTop"),o("alignVerticallyCentered"),o("alignBottom"),r.length>2&&o("distributeVertically")]})]})]}),!i&&r.length>0&&(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.actions")}),(0,ae.jsxs)("div",{className:"buttonList",children:[!a.editor.isMobile&&o("duplicateSelection"),!a.editor.isMobile&&o("deleteSelectedElements"),o("group"),o("ungroup"),d&&o("hyperlink"),c&&o("toggleLinearEditor")]})]})]})},Om=({activeTool:t,appState:e,app:o,UIOptions:r})=>{let[n,i]=(0,jw.useState)(!1),a=t.type==="frame",l=t.type==="laser",s=t.type==="embeddable",{TTDDialogTriggerTunnel:d}=Ve();return(0,ae.jsxs)(ae.Fragment,{children:[gs.map(({value:c,icon:m,key:u,numericKey:f,fillable:b},x)=>{if(r.tools?.[c]===!1)return null;let y=g(`toolBar.${c}`),T=u&&sn(typeof u=="string"?u:u[0]),C=T?`${T} ${g("helpDialog.or")} ${f}`:`${f}`;return(0,ae.jsx)(le,{className:$("Shape",{fillable:b}),type:"radio",icon:m,checked:t.type===c,name:"editor-current-shape",title:`${sn(y)} \u2014 ${C}`,keyBindingLabel:f||T,"aria-label":sn(y),"aria-keyshortcuts":C,"data-testid":`toolbar-${c}`,onPointerDown:({pointerType:w})=>{!e.penDetected&&w==="pen"&&o.togglePenMode(!0)},onChange:({pointerType:w})=>{e.activeTool.type!==c&&xe("toolbar",c,"ui"),c==="image"?o.setActiveTool({type:c,insertOnCanvasDirectly:w!=="mouse"}):o.setActiveTool({type:c})}},c)}),(0,ae.jsx)("div",{className:"App-toolbar__divider"}),(0,ae.jsxs)(De,{open:n,children:[(0,ae.jsxs)(De.Trigger,{className:$("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":a||s||l&&!o.props.isCollaborating}),onToggle:()=>i(!n),title:g("toolBar.extraTools"),children:[Cv,o.props.aiEnabled!==!1&&(0,ae.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:8,fontFamily:"Cascadia, monospace",position:"absolute",background:"var(--color-promo)",color:"var(--color-surface-lowest)",bottom:3,right:4},children:"AI"})]}),(0,ae.jsxs)(De.Content,{onClickOutside:()=>i(!1),onSelect:()=>i(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,ae.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"frame"}),icon:bd,shortcut:S.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:a,children:g("toolBar.frame")}),(0,ae.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"embeddable"}),icon:Cx,"data-testid":"toolbar-embeddable",selected:s,children:g("toolBar.embeddable")}),(0,ae.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"laser"}),icon:vd,"data-testid":"toolbar-laser",selected:l,shortcut:S.K.toLocaleUpperCase(),children:g("toolBar.laser")}),(0,ae.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),o.props.aiEnabled!==!1&&(0,ae.jsx)(d.Out,{}),(0,ae.jsx)(De.Item,{onSelect:()=>o.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:xd,"data-testid":"toolbar-embeddable",children:g("toolBar.mermaidToExcalidraw")}),o.props.aiEnabled!==!1&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)(De.Item,{onSelect:()=>o.onMagicframeToolSelect(),icon:ma,"data-testid":"toolbar-magicframe",children:[g("toolBar.magicframe"),(0,ae.jsx)(De.Item.Badge,{children:"AI"})]}),(0,ae.jsx)(De.Item,{onSelect:()=>{xe("ai","open-settings","d2c"),o.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Wl,"data-testid":"toolbar-magicSettings",children:g("toolBar.magicSettings")})]})]})]})]})},Xw=({renderAction:t,zoom:e})=>(0,ae.jsx)(Pt.Col,{gap:1,className:"zoom-actions",children:(0,ae.jsxs)(Pt.Row,{align:"center",children:[t("zoomOut"),t("resetZoom"),t("zoomIn")]})}),qw=({renderAction:t,className:e})=>(0,ae.jsxs)("div",{className:`undo-redo-buttons ${e}`,children:[(0,ae.jsx)("div",{className:"undo-button-container",children:(0,ae.jsx)(xo,{label:g("buttons.undo"),children:t("undo")})}),(0,ae.jsx)("div",{className:"redo-button-container",children:(0,ae.jsxs)(xo,{label:g("buttons.redo"),children:[" ",t("redo")]})})]}),Jw=({actionManager:t,showExitZenModeBtn:e})=>(0,ae.jsx)("button",{className:$("disable-zen-mode",{"disable-zen-mode--visible":e}),onClick:()=>t.executeAction(Fa),children:g("buttons.exitZenMode")}),Qw=({renderAction:t,className:e})=>(0,ae.jsx)("div",{className:`finalize-button ${e}`,children:t("finalize",{size:"small"})});h();var e3=v(H(),1),Uh=t=>{let e=(0,e3.useRef)({userFn:t});return e.current.userFn=t,e.current.stableFn||(e.current.stableFn=(...o)=>e.current.userFn(...o)),e.current.stableFn};h();var Fm=v(k(),1),Ti=We(null),t3=()=>{let[t,e]=Se(Ti,Ne),o=It();return t&&t==="clearCanvas"?(0,Fm.jsx)(vm,{onConfirm:()=>{o.executeAction(jr),e(null)},onCancel:()=>e(null),title:g("clearCanvasDialog.title"),children:(0,Fm.jsxs)("p",{className:"clear-canvas__content",children:[" ",g("alerts.clearReset")]})}):null};var Wh={};o1(Wh,{toggleTheme:()=>ZT});h();var ZT={...mi,category:"App",label:"Toggle theme",perform:({actionManager:t})=>{t.executeAction(mi,"commandPalette")}};var Ge=v(k(),1),jT=We(null),mt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},XT=t=>{switch(t){case mt.app:return 1;case mt.export:return 2;case mt.editor:return 3;case mt.tools:return 4;case mt.elements:return 5;case mt.links:return 6;default:return 10}},Bm=({shortcut:t,className:e,children:o})=>{let r=t.replace("++","+$").split("+");return(0,Ge.jsxs)("div",{className:$("shortcut",e),children:[r.map((n,i)=>(0,Ge.jsx)("div",{className:"shortcut-wrapper",children:(0,Ge.jsx)("div",{className:"shortcut-key",children:n==="$"?"+":n})},n)),(0,Ge.jsx)("div",{className:"shortcut-desc",children:o})]})},n3=t=>!t.altKey&&t[S.CTRL_OR_CMD]&&(t.shiftKey&&t.key.toLowerCase()===S.P||t.key===S.SLASH),WK=Object.assign(t=>{let e=Le(),o=Pe();return(0,$o.useEffect)(()=>{let r=n=>{n3(n)&&(n.preventDefault(),n.stopPropagation(),o(i=>{let a=i.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return a&&xe("command_palette","open","shortcut"),{openDialog:a}}))};return window.addEventListener("keydown",r,{capture:!0}),()=>window.removeEventListener("keydown",r,{capture:!0})},[o]),e.openDialog?.name!=="commandPalette"?null:(0,Ge.jsx)(qT,{...t})},{defaultItems:Wh});function qT({customCommandPaletteItems:t}){let e=mo(),o=Le(),r=Pe(),n=_n(),i=It(),[a,l]=Se(jT),[s,d]=(0,$o.useState)(null),c=(0,$o.useRef)(null),m=La({uiAppState:o,customCommandPaletteItems:t,appProps:n});(0,$o.useEffect)(()=>{let{uiAppState:I,customCommandPaletteItems:M,appProps:_}=m,U=B=>{let te="";return B.label&&(typeof B.label=="function"?te=g(B.label(e.scene.getNonDeletedElements(),I,e)):te=g(B.label)),te},D=B=>typeof B.icon=="function"?B.icon(I,e.scene.getNonDeletedElements()):B.icon,G=[],O=(B,te,oe)=>{let ve={label:U(B),icon:D(B),category:te,shortcut:wt(B.name),keywords:B.keywords,predicate:B.predicate,viewMode:B.viewMode,perform:()=>{i.executeAction(B,"commandPalette")}};return oe?oe(ve,B):ve};if(I&&e.scene&&i){let B=[i.actions.group,i.actions.ungroup,i.actions.cut,i.actions.copy,i.actions.deleteSelectedElements,i.actions.copyStyles,i.actions.pasteStyles,i.actions.bringToFront,i.actions.bringForward,i.actions.sendBackward,i.actions.sendToBack,i.actions.alignTop,i.actions.alignBottom,i.actions.alignLeft,i.actions.alignRight,i.actions.alignVerticallyCentered,i.actions.alignHorizontallyCentered,i.actions.duplicateSelection,i.actions.flipHorizontal,i.actions.flipVertical,i.actions.zoomToFitSelection,i.actions.zoomToFitSelectionInViewport,i.actions.increaseFontSize,i.actions.decreaseFontSize,i.actions.toggleLinearEditor,cs].map(j=>O(j,mt.elements,(R,N)=>({...R,predicate:N.predicate?N.predicate:(K,Y,Z,X)=>we(K,Y).length>0}))),te=[i.actions.toggleHandTool,i.actions.setFrameAsActiveTool].map(j=>O(j,mt.tools)),oe=[i.actions.undo,i.actions.redo,i.actions.zoomIn,i.actions.zoomOut,i.actions.resetZoom,i.actions.zoomToFit,i.actions.zenMode,i.actions.viewMode,i.actions.gridMode,i.actions.objectsSnapMode,i.actions.toggleShortcuts,i.actions.selectAll,i.actions.toggleElementLock,i.actions.unlockAllElements,i.actions.stats].map(j=>O(j,mt.editor)),ve=[i.actions.saveToActiveFile,i.actions.saveFileToDisk,i.actions.copyAsPng,i.actions.copyAsSvg].map(j=>O(j,mt.export));G=[...B,...oe,{label:U(jr),icon:D(jr),shortcut:wt(jr.name),category:mt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Gt.set(Ti,"clearCanvas")}},{label:g("buttons.exportImage"),category:mt.export,icon:ud,shortcut:wt("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{r({openDialog:{name:"imageExport"}})}},...ve];let Ie=[{label:g("toolBar.library"),category:mt.app,icon:cd,viewMode:!1,perform:()=>{I.openSidebar?r({openSidebar:null}):r({openSidebar:{name:jo.name,tab:jo.defaultTab}})}},{label:g("labels.changeStroke"),keywords:["color","outline"],category:mt.elements,icon:pd,viewMode:!1,predicate:(j,R)=>{let N=we(j,R);return N.length>0&&$h(R,N)},perform:()=>{r(j=>({openMenu:j.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:g("labels.changeBackground"),keywords:["color","fill"],icon:pd,category:mt.elements,viewMode:!1,predicate:(j,R)=>{let N=we(j,R);return N.length>0&&Hh(R,N)},perform:()=>{r(j=>({openMenu:j.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:g("labels.canvasBackground"),keywords:["color"],icon:pd,category:mt.editor,viewMode:!1,perform:()=>{r(j=>({openMenu:j.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...gs.reduce((j,R)=>{let{value:N,icon:K,key:Y,numericKey:Z}=R;if(_.UIOptions.tools?.[N]===!1)return j;let ee=Y&&sn(typeof Y=="string"?Y:Y[0])||Z,ne={label:g(`toolBar.${N}`),category:mt.tools,shortcut:ee,icon:K,keywords:["toolbar"],viewMode:!1,perform:({event:rt})=>{N==="image"?e.setActiveTool({type:N,insertOnCanvasDirectly:rt.type==="keydown"}):e.setActiveTool({type:N})}};return j.push(ne),j},[]),...te,{label:g("toolBar.lock"),category:mt.tools,icon:I.activeTool.locked?aa:ri,shortcut:S.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{e.toggleLock()}},{label:`${g("labels.textToDiagram")}...`,category:mt.tools,icon:Iv,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(j=>({...j,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${g("toolBar.mermaidToExcalidraw")}...`,category:mt.tools,icon:xd,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(j=>({...j,openDialog:{name:"ttd",tab:"mermaid"}}))}}],de=[...G,...Ie,...M||[]].map(j=>({...j,icon:j.icon||Ed,order:j.order??XT(j.category),haystack:`${Fh(j.label)} ${j.keywords?.join(" ")||""}`}));d(de),l(de.find(j=>j.label===a?.label)??null)}},[m,e,i,d,a?.label,l,r]);let[u,f]=(0,$o.useState)(""),[b,x]=(0,$o.useState)(null),[y,T]=(0,$o.useState)({}),C=I=>{r({openDialog:null},I),f("")},w=(I,M)=>{o.openDialog?.name==="commandPalette"&&(M.stopPropagation(),M.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),C(()=>{I.perform({actionManager:i,event:M}),l(I),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},A=Uh(I=>I.viewMode===!1&&o.viewModeEnabled?!1:typeof I.predicate=="function"?I.predicate(e.scene.getNonDeletedElements(),o,n,e):I.predicate===void 0||I.predicate),z=Uh(I=>{let M=To(I.target)||n3(I)||I.key===S.ESCAPE;if(M&&I.key!==S.ARROW_UP&&I.key!==S.ARROW_DOWN&&I.key!==S.ENTER)return;let _=Object.values(y).flat(),U=a&&!u&&A(a);if(I.key===S.ARROW_UP){I.preventDefault();let D=_.findIndex(B=>B.label===b?.label);if(U){if(D===0){x(a);return}if(b===a){let B=_[_.length-1];B&&x(B);return}}let G;D===-1?G=_.length-1:G=D===0?_.length-1:(D-1)%_.length;let O=_[G];O&&x(O);return}if(I.key===S.ARROW_DOWN){I.preventDefault();let D=_.findIndex(B=>B.label===b?.label);if(U){if(!b||D===_.length-1){x(a);return}if(b===a){let B=_[0];B&&x(B);return}}let G=(D+1)%_.length,O=_[G];O&&x(O);return}if(I.key===S.ENTER&&b&&setTimeout(()=>{w(b,I)}),!M){if(I.stopPropagation(),/^[a-zA-Z0-9]$/.test(I.key)){c?.current?.focus();return}I.preventDefault()}});return(0,$o.useEffect)(()=>(window.addEventListener("keydown",z,{capture:!0}),()=>window.removeEventListener("keydown",z,{capture:!0})),[z]),(0,$o.useEffect)(()=>{if(!s)return;let I=D=>{let G={};for(let O of D)G[O.category]?G[O.category].push(O):G[O.category]=[O];return G},M=s.filter(A).sort((D,G)=>D.order-G.order),_=!u&&a&&A(a);if(!u){T(I(_?M.filter(D=>D.label!==a?.label):M)),x(_?a:M[0]||null);return}let U=Fh(u.replace(/[<>-_| ]/g,""));M=r3.default.filter(U,M,{extract:D=>D.haystack}).sort((D,G)=>G.score-D.score).map(D=>D.original),T(I(M)),x(M[0]??null)},[u,s,A,a]),(0,Ge.jsxs)(et,{onCloseRequest:()=>C(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,Ge.jsx)(Pm,{value:u,placeholder:g("commandPalette.search.placeholder"),onChange:I=>{f(I)},selectOnRender:!0,ref:c}),!e.device.viewport.isMobile&&(0,Ge.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,Ge.jsx)(Bm,{shortcut:"\u2191\u2193",children:g("commandPalette.shortcuts.select")}),(0,Ge.jsx)(Bm,{shortcut:"\u21B5",children:g("commandPalette.shortcuts.confirm")}),(0,Ge.jsx)(Bm,{shortcut:F("Esc"),children:g("commandPalette.shortcuts.close")})]}),(0,Ge.jsxs)("div",{className:"commands",children:[a&&!u&&(0,Ge.jsxs)("div",{className:"command-category",children:[(0,Ge.jsxs)("div",{className:"command-category-title",children:[g("commandPalette.recents"),(0,Ge.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:Av})]}),(0,Ge.jsx)(o3,{command:a,isSelected:a.label===b?.label,onClick:I=>w(a,I),disabled:!A(a),onMouseMove:()=>x(a),showShortcut:!e.device.viewport.isMobile,appState:o})]}),Object.keys(y).length>0?Object.keys(y).map((I,M)=>(0,Ge.jsxs)("div",{className:"command-category",children:[(0,Ge.jsx)("div",{className:"command-category-title",children:I}),y[I].map(_=>(0,Ge.jsx)(o3,{command:_,isSelected:_.label===b?.label,onClick:U=>w(_,U),onMouseMove:()=>x(_),showShortcut:!e.device.viewport.isMobile,appState:o},_.label))]},I)):s?(0,Ge.jsxs)("div",{className:"no-match",children:[(0,Ge.jsx)("div",{className:"icon",children:yd})," ",g("commandPalette.search.noMatch")]}):null]})]})}var o3=({command:t,isSelected:e,disabled:o,onMouseMove:r,onClick:n,showShortcut:i,appState:a})=>{let l=()=>{};return(0,Ge.jsxs)("div",{className:$("command-item",{"item-selected":e,"item-disabled":o}),ref:s=>{e&&!o&&s?.scrollIntoView?.({block:"nearest"})},onClick:o?l:n,onMouseMove:o?l:r,title:o?g("commandPalette.itemNotAvailable"):"",children:[(0,Ge.jsxs)("div",{className:"name",children:[t.icon&&(0,Ge.jsx)(Dn,{icon:typeof t.icon=="function"?t.icon(a):t.icon}),t.label]}),i&&t.shortcut&&(0,Ge.jsx)(Bm,{shortcut:t.shortcut})]})};var i3=v(k(),1),Gh=W({name:"toggleLinearEditor",category:mt.elements,label:(t,e,o)=>o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds})[0]?.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit",keywords:["line"],trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return!!(!e.editingLinearElement&&n.length===1&&_e(n[0]))},perform(t,e,o,r){let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0],i=e.editingLinearElement?.elementId===n.id?null:new ue(n);return{appState:{...e,editingLinearElement:i},storeAction:P.CAPTURE}},PanelComponent:({appState:t,updateData:e,app:o})=>{let r=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds})[0],n=g(r.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit");return(0,i3.jsx)(le,{type:"button",icon:Uv,title:n,"aria-label":n,onClick:()=>e(null)})}});h();h();var ki=class{constructor(e=!0,o=!0){this.isUndoStackEmpty=e;this.isRedoStackEmpty=o}},xs=class t{onHistoryChangedEmitter=new _o;undoStack=[];redoStack=[];get isUndoStackEmpty(){return this.undoStack.length===0}get isRedoStackEmpty(){return this.redoStack.length===0}clear(){this.undoStack.length=0,this.redoStack.length=0}record(e,o){let r=Vh.create(o,e);r.isEmpty()||(this.undoStack.push(r.inverse()),r.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new ki(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.undoStack),n=>t.push(this.redoStack,n,e))}redo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.redoStack),n=>t.push(this.undoStack,n,e))}perform(e,o,r,n,i){try{let a=n();if(a===null)return;let l=e,s=o,d=!1;for(;a;){try{[l,s,d]=a.applyTo(l,s,r)}finally{i(a)}if(d)break;a=n()}return[l,s]}finally{this.onHistoryChangedEmitter.trigger(new ki(this.isUndoStackEmpty,this.isRedoStackEmpty))}}static pop(e){if(!e.length)return null;let o=e.pop();return o!==void 0?o:null}static push(e,o,r){let n=o.inverse().applyLatestChanges(r);return e.push(n)}},Vh=class t{constructor(e,o){this.appStateChange=e;this.elementsChange=o}static create(e,o){return new t(e,o)}inverse(){return new t(this.appStateChange.inverse(),this.elementsChange.inverse())}applyTo(e,o,r){let[n,i]=this.elementsChange.applyTo(e,r.elements),[a,l]=this.appStateChange.applyTo(o,n);return[n,a,i||l]}applyLatestChanges(e){let o=this.elementsChange.applyLatestChanges(e);return t.create(this.appStateChange,o)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};h();var zm=v(H(),1),Kh=(t,e)=>{let[o,r]=(0,zm.useState)(e);return(0,zm.useEffect)(()=>{let n=t.on(i=>{r(i)});return()=>{n()}},[t]),o};var Yh=v(k(),1),a3=(t,e)=>{if(!t.multiElement&&!t.resizingElement&&!t.editingElement&&!t.draggingElement){let o=e();if(!o)return{storeAction:P.NONE};let[r,n]=o,i=Array.from(r.values());return{appState:n,elements:i,storeAction:P.UPDATE}}return{storeAction:P.NONE}},l3=(t,e)=>({name:"undo",label:"buttons.undo",icon:Bu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>a3(r,()=>t.undo(pe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.key.toLowerCase()===S.Z&&!o.shiftKey,PanelComponent:({updateData:o,data:r})=>{let{isUndoStackEmpty:n}=Kh(t.onHistoryChangedEmitter,new ki);return(0,Yh.jsx)(le,{type:"button",icon:Bu,"aria-label":g("buttons.undo"),onClick:o,size:r?.size||"medium",disabled:n})}}),s3=(t,e)=>({name:"redo",label:"buttons.redo",icon:zu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>a3(r,()=>t.redo(pe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.shiftKey&&o.key.toLowerCase()===S.Z||Zs&&o.ctrlKey&&!o.shiftKey&&o.key===S.Y,PanelComponent:({updateData:o,data:r})=>{let{isRedoStackEmpty:n}=Kh(t.onHistoryChangedEmitter,new ki);return(0,Yh.jsx)(le,{type:"button",icon:zu,"aria-label":g("buttons.redo"),onClick:o,size:r?.size||"medium",disabled:n})}});h();var c3=v(k(),1),Zh=(t,e,o,r,n,i)=>{if(t.trackEvent)try{typeof t.trackEvent=="object"&&(!t.trackEvent.predicate||t.trackEvent.predicate(o,r,i))&&xe(t.trackEvent.category,t.trackEvent.action||t.name,`${e} (${n.device.editor.isMobile?"mobile":"desktop"})`)}catch(a){console.error("error while logging action:",a)}},$m=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(e,o,r,n){this.updater=i=>{if(Bi(i))i.then(a=>e(a));else return e(i)},this.getAppState=o,this.getElementsIncludingDeleted=r,this.app=n}registerAction(e){this.actions[e.name]=e}registerAll(e){e.forEach(o=>this.registerAction(o))}handleKeyDown(e){let o=this.app.props.UIOptions.canvasActions,r=Object.values(this.actions).sort((s,d)=>(d.keyPriority||0)-(s.keyPriority||0)).filter(s=>(s.name in o?o[s.name]:!0)&&s.keyTest&&s.keyTest(e,this.getAppState(),this.getElementsIncludingDeleted(),this.app));if(r.length!==1)return r.length>1&&console.warn("Canceling as multiple actions match this shortcut",r),!1;let n=r[0];if(this.getAppState().viewModeEnabled&&n.viewMode!==!0)return!1;let i=this.getElementsIncludingDeleted(),a=this.getAppState(),l=null;return Zh(n,"keyboard",a,i,this.app,null),e.preventDefault(),e.stopPropagation(),this.updater(r[0].perform(i,a,l,this.app)),!0}executeAction(e,o="api",r=null){let n=this.getElementsIncludingDeleted(),i=this.getAppState();Zh(e,o,i,n,this.app,r),this.updater(e.perform(n,i,r,this.app))}renderAction=(e,o)=>{let r=this.app.props.UIOptions.canvasActions;if(this.actions[e]&&"PanelComponent"in this.actions[e]&&(!(e in r)||r[e])){let n=this.actions[e],i=n.PanelComponent;i.displayName="PanelComponent";let a=this.getElementsIncludingDeleted(),l=this.getAppState(),s=d=>{Zh(n,"ui",l,a,this.app,d),this.updater(n.perform(this.getElementsIncludingDeleted(),this.getAppState(),d,this.app))};return(0,c3.jsx)(i,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:s,appProps:this.app.props,app:this.app,data:o})}return null};isActionEnabled=e=>{let o=this.getElementsIncludingDeleted(),r=this.getAppState();return!e.predicate||e.predicate(o,r,this.app.props,this.app)}};h();var jh=t=>{let e=Array.from(t.values());return{x:d3(e,o=>o.x)/e.length,y:d3(e,o=>o.y)/e.length}},Xh=([t,e])=>Math.hypot(t.x-e.x,t.y-e.y),d3=(t,e)=>t.reduce((o,r)=>o+e(r),0);h();var m3=v(H(),1),Jr=v(k(),1),io="separator",p3=m3.default.memo(({actionManager:t,items:e,top:o,left:r,onClose:n})=>{let i=Ba(),a=kn(),l=e.reduce((s,d)=>(d&&(d===io||!d.predicate||d.predicate(a,i,t.app.props,t.app))&&s.push(d),s),[]);return(0,Jr.jsx)(Jd,{onCloseRequest:()=>{n()},top:o,left:r,fitInViewport:!0,offsetLeft:i.offsetLeft,offsetTop:i.offsetTop,viewportWidth:i.width,viewportHeight:i.height,children:(0,Jr.jsx)("ul",{className:"context-menu",onContextMenu:s=>s.preventDefault(),children:l.map((s,d)=>{if(s===io)return!l[d-1]||l[d-1]===io?null:(0,Jr.jsx)("hr",{className:"context-menu-item-separator"},d);let c=s.name,m="";return s.label&&(typeof s.label=="function"?m=g(s.label(a,i,t.app)):m=g(s.label)),(0,Jr.jsx)("li",{"data-testid":c,onClick:()=>{n(()=>{t.executeAction(s,"contextMenu")})},children:(0,Jr.jsxs)("button",{className:$("context-menu-item",{dangerous:c==="deleteSelectedElements",checkmark:s.checked?.(i)}),children:[(0,Jr.jsx)("div",{className:"context-menu-item__label",children:m}),(0,Jr.jsx)("kbd",{className:"context-menu-item__shortcut",children:c?wt(c):""})]})},d)})})})});h();var S5=v(H(),1);h();var Hm=v(H(),1);var Za=v(k(),1),u3=({children:t,onClose:e})=>{let[o,r]=(0,Hm.useState)(!!t),{container:n}=_t(),i=Hm.default.useCallback(()=>{r(!1),e&&e(),n?.focus()},[e,n]);return(0,Za.jsx)(Za.Fragment,{children:o&&(0,Za.jsx)(et,{size:"small",onCloseRequest:i,title:g("errorDialog.title"),children:(0,Za.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:t})})})};h();var Eo=v(H(),1);h();var vs=v(k(),1),Um=function({onChange:t,value:e,choices:o,name:r}){return(0,vs.jsx)("div",{className:"RadioGroup",children:o.map(n=>(0,vs.jsxs)("div",{className:$("RadioGroup__choice",{active:n.value===e}),title:n.ariaLabel,children:[(0,vs.jsx)("input",{name:r,type:"radio",checked:n.value===e,onChange:()=>t(n.value),"aria-label":n.ariaLabel}),n.label]},String(n.value)))})};h();var qh=v(k(),1),ys=({title:t,name:e,checked:o,onChange:r,disabled:n=!1})=>(0,qh.jsx)("div",{className:$("Switch",{toggled:o,disabled:n}),children:(0,qh.jsx)("input",{name:e,id:e,title:t,type:"checkbox",checked:o,disabled:n,onChange:()=>r(!o),onKeyDown:i=>{i.key===" "&&r(!o)}})});h();var Wm=v(H(),1);var ja=v(k(),1),Tr=(0,Wm.forwardRef)(({children:t,icon:e,onClick:o,label:r,variant:n="filled",color:i="primary",size:a="medium",fullWidth:l,className:s},d)=>{let[c,m]=(0,Wm.useState)(!1),u=async f=>{let b=o?.(f);if(Bi(b))try{m(!0),await b}catch(x){if(x instanceof Hi)console.warn(x);else throw x}finally{m(!1)}};return(0,ja.jsx)("button",{className:$("ExcButton",`ExcButton--color-${i}`,`ExcButton--variant-${n}`,`ExcButton--size-${a}`,{"ExcButton--fullWidth":l},s),onClick:u,type:"button","aria-label":r,ref:d,disabled:c,children:(0,ja.jsxs)("div",{className:"ExcButton__contents",children:[c&&(0,ja.jsx)(Ot,{}),e&&(0,ja.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:e}),n!=="icon"&&(t??r)]})})});var Ae=v(k(),1),JT="filter"in document.createElement("canvas").getContext("2d"),QT=()=>(0,Ae.jsxs)("div",{children:[(0,Ae.jsx)("h3",{children:g("canvasError.cannotShowPreview")}),(0,Ae.jsx)("p",{children:(0,Ae.jsx)("span",{children:g("canvasError.canvasTooBig")})}),(0,Ae.jsxs)("em",{children:["(",g("canvasError.canvasTooBigTip"),")"]})]}),ek=({appStateSnapshot:t,elementsSnapshot:e,files:o,actionManager:r,onExportImage:n,name:i})=>{let a=Be(e,t),[l,s]=(0,Eo.useState)(i),[d,c]=(0,Eo.useState)(a),[m,u]=(0,Eo.useState)(t.exportBackground),[f,b]=(0,Eo.useState)(t.exportWithDarkMode),[x,y]=(0,Eo.useState)(t.exportEmbedScene),[T,C]=(0,Eo.useState)(t.exportScale),w=(0,Eo.useRef)(null),[A,z]=(0,Eo.useState)(null),{exportedElements:I,exportingFrame:M}=ui(e,t,d);return(0,Eo.useEffect)(()=>{let _=w.current;if(!_)return;let U=_.offsetWidth,D=_.offsetHeight;U&&ei({elements:I,appState:{...t,name:l,exportBackground:m,exportWithDarkMode:f,exportScale:T,exportEmbedScene:x},files:o,exportPadding:ln,maxWidthOrHeight:Math.max(U,D),exportingFrame:M}).then(G=>(z(null),$r(G).then(()=>{_.replaceChildren(G)}).catch(O=>{throw O.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):O}))).catch(G=>{console.error(G),z(G)})},[t,o,I,M,l,m,f,T,x]),(0,Ae.jsxs)("div",{className:"ImageExportModal",children:[(0,Ae.jsx)("h3",{children:g("imageExportDialog.header")}),(0,Ae.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,Ae.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:w,children:A&&(0,Ae.jsx)(QT,{})}),(0,Ae.jsx)("div",{className:"ImageExportModal__preview__filename",children:!ji&&(0,Ae.jsx)("input",{type:"text",className:"TextInput",value:l,style:{width:"30ch"},onChange:_=>{s(_.target.value),r.executeAction(th,"ui",_.target.value)}})})]}),(0,Ae.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,Ae.jsx)("h3",{children:g("imageExportDialog.header")}),a&&(0,Ae.jsx)(Es,{label:g("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,Ae.jsx)(ys,{name:"exportOnlySelected",checked:d,onChange:_=>{c(_)}})}),(0,Ae.jsx)(Es,{label:g("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,Ae.jsx)(ys,{name:"exportBackgroundSwitch",checked:m,onChange:_=>{u(_),r.executeAction(oh,"ui",_)}})}),JT&&(0,Ae.jsx)(Es,{label:g("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,Ae.jsx)(ys,{name:"exportDarkModeSwitch",checked:f,onChange:_=>{b(_),r.executeAction(hE,"ui",_)}})}),(0,Ae.jsx)(Es,{label:g("imageExportDialog.label.embedScene"),tooltip:g("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,Ae.jsx)(ys,{name:"exportEmbedSwitch",checked:x,onChange:_=>{y(_),r.executeAction(tm,"ui",_)}})}),(0,Ae.jsx)(Es,{label:g("imageExportDialog.label.scale"),name:"exportScale",children:(0,Ae.jsx)(Um,{name:"exportScale",value:T,onChange:_=>{C(_),r.executeAction(fE,"ui",_)},choices:tc.map(_=>({value:_,label:`${_}\xD7`}))})}),(0,Ae.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToPng"),onClick:()=>n(qs.png,I,{exportingFrame:M}),icon:tf,children:g("imageExportDialog.button.exportToPng")}),(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToSvg"),onClick:()=>n(qs.svg,I,{exportingFrame:M}),icon:tf,children:g("imageExportDialog.button.exportToSvg")}),(qi||Mr)&&(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.copyPngToClipboard"),onClick:()=>n(qs.clipboard,I,{exportingFrame:M}),icon:gd,children:g("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Es=({label:t,children:e,tooltip:o,name:r})=>(0,Ae.jsxs)("div",{className:"ImageExportModal__settings__setting",title:t,children:[(0,Ae.jsxs)("label",{htmlFor:r,className:"ImageExportModal__settings__setting__label",children:[t,o&&(0,Ae.jsx)(xo,{label:o,long:!0,children:yv})]}),(0,Ae.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:e})]}),f3=({elements:t,appState:e,files:o,actionManager:r,onExportImage:n,onCloseRequest:i,name:a})=>{let[{appStateSnapshot:l,elementsSnapshot:s}]=(0,Eo.useState)(()=>({appStateSnapshot:pr(e),elementsSnapshot:pr(t)}));return(0,Ae.jsx)(et,{onCloseRequest:i,size:"wide",title:!1,children:(0,Ae.jsx)(ek,{elementsSnapshot:s,appStateSnapshot:l,files:o,actionManager:r,onExportImage:n,name:a})})};h();var h3=v(k(),1),Gm=({children:t,side:e,className:o})=>(0,h3.jsx)("div",{className:$("FixedSideContainer",`FixedSideContainer_side_${e}`,o),children:t});h();var Jh=v(k(),1),tk=({appState:t,isMobile:e,device:o,app:r})=>{let{activeTool:n,isResizing:i,isRotating:a,lastPointerDownWith:l}=t,s=t.multiElement!==null;if(t.openSidebar&&!o.editor.canFitSidebar)return null;if(Ao(t))return g("hints.eraserRevert");if(n.type==="arrow"||n.type==="line")return s?g("hints.linearElementMulti"):g("hints.linearElement");if(n.type==="freedraw")return g("hints.freeDraw");if(n.type==="text")return g("hints.text");if(n.type==="embeddable")return g("hints.embeddable");if(t.activeTool.type==="image"&&t.pendingImageElementId)return g("hints.placeImage");let d=r.scene.getSelectedElements(t);if(i&&l==="mouse"&&d.length===1){let c=d[0];return _e(c)&&c.points.length===2?g("hints.lockAngle"):dn(c)?g("hints.resizeImage"):g("hints.resize")}if(a&&l==="mouse")return g("hints.rotate");if(d.length===1&&ce(d[0]))return g("hints.text_selected");if(t.editingElement&&ce(t.editingElement))return g("hints.text_editing");if(n.type==="selection"){if(t.draggingElement?.type==="selection"&&!d.length&&!t.editingElement&&!t.editingLinearElement)return g("hints.deepBoxSelect");if(t.gridSize&&t.draggingElement)return g("hints.disableSnapping");if(!d.length&&!e)return g("hints.canvasPanning");if(d.length===1){if(_e(d[0]))return t.editingLinearElement?t.editingLinearElement.selectedPointsIndices?g("hints.lineEditor_pointSelected"):g("hints.lineEditor_nothingSelected"):g("hints.lineEditor_info");if(!t.draggingElement&&Rr(d[0]))return g("hints.bindTextToElement")}}return null},Vm=({appState:t,isMobile:e,device:o,app:r})=>{let n=tk({appState:t,isMobile:e,device:o,app:r});return n?(n=F(n),(0,Jh.jsx)("div",{className:"HintViewer",children:(0,Jh.jsx)("span",{children:n})})):null};h();var ws=v(k(),1),ok="medium",g3={CHECKED:aa,UNCHECKED:ri},Km=t=>(0,ws.jsxs)("label",{className:$("ToolIcon ToolIcon__lock",`ToolIcon_size_${ok}`,{"is-mobile":t.isMobile}),title:`${t.title} \u2014 Q`,children:[(0,ws.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-lock"}),(0,ws.jsx)("div",{className:"ToolIcon__icon",children:t.checked?g3.CHECKED:g3.UNCHECKED})]});h();h();var Ii=v(k(),1),Nn=({heading:t,children:e,...o})=>{let{id:r}=_t(),n=(0,Ii.jsx)("h2",{className:"visually-hidden",id:`${r}-${t}-title`,children:g(`headings.${t}`)});return(0,Ii.jsx)("section",{...o,"aria-labelledby":`${r}-${t}-title`,children:typeof e=="function"?e(n):(0,Ii.jsxs)(Ii.Fragment,{children:[n,e]})})};h();var ir=4,kr=6,b3="rgba(0,0,0,0.3)",x3=(t,e,o,r)=>{if(!t.length)return{horizontal:null,vertical:null};let[n,i,a,l]=Ze(t),s=e/r.zoom.value,d=o/r.zoom.value,c=e-s,m=o-d,u={top:parseInt(ul("sat"))||0,bottom:parseInt(ul("sab"))||0,left:parseInt(ul("sal"))||0,right:parseInt(ul("sar"))||0},f=Gr().rtl,b=-r.scrollX+c/2+u.left,x=-r.scrollY+m/2+u.top,y=b+s-u.right,T=x+d-u.bottom,C=Math.min(n,b),w=Math.min(i,x),A=Math.max(a,y),z=Math.max(l,T);return{horizontal:b===C&&y===A?null:{x:Math.max(u.left,ir)+(b-C)/(A-C)*e,y:o-kr-Math.max(ir,u.bottom),width:(y-b)/(A-C)*e-Math.max(ir*2,u.left+u.right),height:kr},vertical:x===w&&T===z?null:{x:f?Math.max(u.left,ir):e-kr-Math.max(u.right,ir),y:(x-w)/(z-w)*o+Math.max(u.top,ir),width:kr,height:(T-x)/(z-w)*o-Math.max(ir*2,u.top+u.bottom)}}},Qh=(t,e,o)=>{let[r,n]=[t.horizontal,t.vertical].map(a=>a!=null&&a.x<=e&&e<=a.x+a.width&&a.y<=o&&o<=a.y+a.height);return{isOverEither:r||n,isOverHorizontal:r,isOverVertical:n}};h();var Cs=v(k(),1),rk="medium",Ym=t=>t.penDetected?(0,Cs.jsxs)("label",{className:$("ToolIcon ToolIcon__penMode",`ToolIcon_size_${rk}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Cs.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Cs.jsx)("div",{className:"ToolIcon__icon",children:xx})]}):null;h();var ge=v(k(),1),Zm=t=>{let e=Ze(t.elements),o=oa(t.elements,t.appState),r=Ze(o);return(0,ge.jsx)("div",{className:"Stats",children:(0,ge.jsxs)(zt,{padding:2,children:[(0,ge.jsx)("div",{className:"close",onClick:t.onClose,children:Ro}),(0,ge.jsx)("h3",{children:g("stats.title")}),(0,ge.jsx)("table",{children:(0,ge.jsxs)("tbody",{children:[(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.scene")})}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.elements")}),(0,ge.jsx)("td",{children:t.elements.length})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.width")}),(0,ge.jsx)("td",{children:Math.round(e[2])-Math.round(e[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.height")}),(0,ge.jsx)("td",{children:Math.round(e[3])-Math.round(e[1])})]}),o.length===1&&(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.element")})}),o.length>1&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.selected")})}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.elements")}),(0,ge.jsx)("td",{children:o.length})]})]}),o.length>0&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:"x"}),(0,ge.jsx)("td",{children:Math.round(r[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:"y"}),(0,ge.jsx)("td",{children:Math.round(r[1])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.width")}),(0,ge.jsx)("td",{children:Math.round(r[2]-r[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.height")}),(0,ge.jsx)("td",{children:Math.round(r[3]-r[1])})]})]}),o.length===1&&(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.angle")}),(0,ge.jsx)("td",{children:`${Math.round(o[0].angle*180/Math.PI)}\xB0`})]}),t.renderCustomStats?.(t.elements,t.appState)]})})]})})};h();var v3=v(k(),1),jm=t=>(0,v3.jsx)(le,{className:$("Shape",{fillable:!1}),type:"radio",icon:hd,name:"editor-current-shape",checked:t.checked,title:`${t.title} \u2014 H`,keyBindingLabel:t.isMobile?void 0:S.H.toLocaleUpperCase(),"aria-label":`${t.title} \u2014 H`,"aria-keyshortcuts":S.H,"data-testid":"toolbar-hand",onChange:()=>t.onChange?.()});var $e=v(k(),1),y3=({appState:t,elements:e,actionManager:o,setAppState:r,onLockToggle:n,onHandToolToggle:i,onPenModeToggle:a,renderTopRightUI:l,renderCustomStats:s,renderSidebars:d,device:c,renderWelcomeScreen:m,UIOptions:u,app:f})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:x,DefaultSidebarTriggerTunnel:y}=Ve(),T=()=>(0,$e.jsxs)(Gm,{side:"top",className:"App-top-bar",children:[m&&(0,$e.jsx)(b.Out,{}),(0,$e.jsx)(Nn,{heading:"shapes",children:w=>(0,$e.jsx)(Pt.Col,{gap:4,align:"center",children:(0,$e.jsxs)(Pt.Row,{gap:1,className:"App-toolbar-container",children:[(0,$e.jsxs)(zt,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[w,(0,$e.jsx)(Pt.Row,{gap:1,children:(0,$e.jsx)(Om,{appState:t,activeTool:t.activeTool,UIOptions:u,app:f})})]}),l&&l(!0,t),(0,$e.jsxs)("div",{className:"mobile-misc-tools-container",children:[!t.viewModeEnabled&&(0,$e.jsx)(y.Out,{}),(0,$e.jsx)(Ym,{checked:t.penMode,onChange:()=>a(null),title:g("toolBar.penMode"),isMobile:!0,penDetected:t.penDetected}),(0,$e.jsx)(Km,{checked:t.activeTool.locked,onChange:n,title:g("toolBar.lock"),isMobile:!0}),(0,$e.jsx)(jm,{checked:Fr(t),onChange:()=>i(),title:g("toolBar.hand"),isMobile:!0})]})]})})}),(0,$e.jsx)(Vm,{appState:t,isMobile:!0,device:c,app:f})]}),C=()=>t.viewModeEnabled?(0,$e.jsx)("div",{className:"App-toolbar-content",children:(0,$e.jsx)(x.Out,{})}):(0,$e.jsxs)("div",{className:"App-toolbar-content",children:[(0,$e.jsx)(x.Out,{}),o.renderAction("toggleEditMenu"),o.renderAction("undo"),o.renderAction("redo"),o.renderAction(t.multiElement?"finalize":"duplicateSelection"),o.renderAction("deleteSelectedElements")]});return(0,$e.jsxs)($e.Fragment,{children:[d(),!t.viewModeEnabled&&T(),!t.openMenu&&t.showStats&&(0,$e.jsx)(Zm,{appState:t,setAppState:r,elements:e,onClose:()=>{o.executeAction(Mn)},renderCustomStats:s}),(0,$e.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:kr+ir*2,marginLeft:kr+ir*2,marginRight:kr+ir*2},children:(0,$e.jsxs)(zt,{padding:0,children:[t.openMenu==="shape"&&!t.viewModeEnabled&&ea(t,e)?(0,$e.jsx)(Nn,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,$e.jsx)(Nm,{appState:t,elementsMap:f.scene.getNonDeletedElementsMap(),renderAction:o.renderAction})}):null,(0,$e.jsxs)("footer",{className:"App-toolbar",children:[C(),t.scrolledOutside&&!t.openMenu&&!t.openSidebar&&(0,$e.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(w=>({...oi(e,w)}))},children:g("buttons.scrollBackToContent")})]})]})})]})};h();var Fn=v(H(),1);var On=v(k(),1),E3=t=>{let e=(0,Fn.useRef)(null),[o,r]=(0,Fn.useState)(null);return(0,Fn.useLayoutEffect)(()=>{if(!t.spreadsheet)return;let n=b0(t.chartType,t.spreadsheet,0,0);r(n);let i,a=e.current;return(async()=>(i=await zc(n,{exportBackground:!1,viewBackgroundColor:Mt.white},null),i.querySelector(".style-fonts")?.remove(),a.replaceChildren(),a.appendChild(i),t.selected&&a.parentNode.focus()))(),()=>{a.replaceChildren()}},[t.spreadsheet,t.chartType,t.selected]),(0,On.jsx)("button",{className:"ChartPreview",onClick:()=>{o&&t.onClick(t.chartType,o)},children:(0,On.jsx)("div",{ref:e})})},w3=({setAppState:t,appState:e,onClose:o})=>{let{onInsertElements:r}=mo(),n=Fn.default.useCallback(()=>{o&&o()},[o]),i=(a,l)=>{r(l),xe("paste","chart",a),t({currentChartType:a,pasteDialog:{shown:!1,data:null}})};return(0,On.jsx)(et,{size:"small",onCloseRequest:n,title:g("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,On.jsxs)("div",{className:"container",children:[(0,On.jsx)(E3,{chartType:"bar",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="bar",onClick:i}),(0,On.jsx)(E3,{chartType:"line",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="line",onClick:i})]})})};h();var C3=v(H(),1);var V=v(k(),1),nk=()=>(0,V.jsxs)("div",{className:"HelpDialog__header",children:[(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:Fu}),g("helpDialog.documentation")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:Fu}),g("helpDialog.blog")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:md}),g("helpDialog.github")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:$v}),"YouTube"]})]}),ik=t=>(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)("h3",{children:t.title}),(0,V.jsx)("div",{className:"HelpDialog__islands-container",children:t.children})]}),eg=t=>(0,V.jsxs)("div",{className:`HelpDialog__island ${t.className}`,children:[(0,V.jsx)("h4",{className:"HelpDialog__island-title",children:t.caption}),(0,V.jsx)("div",{className:"HelpDialog__island-content",children:t.children})]});function*ak(t,e){let o=!0;for(let r of t)o||(yield e),o=!1,yield r}var lk=t=>t.replace(/\b[a-z]\b/,e=>e.toUpperCase()),Q=({label:t,shortcuts:e,isOr:o=!0})=>{let r=e.map(n=>(n.endsWith("++")?[...n.slice(0,-2).split("+"),"+"]:n.split("+")).map(a=>(0,V.jsx)(sk,{children:lk(a)},a)));return(0,V.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,V.jsx)("div",{children:t}),(0,V.jsx)("div",{className:"HelpDialog__key-container",children:[...ak(r,o?g("helpDialog.or"):null)]})]})},sk=t=>(0,V.jsx)("kbd",{className:"HelpDialog__key",...t}),S3=({onClose:t})=>{let e=C3.default.useCallback(()=>{t&&t()},[t]);return(0,V.jsx)(V.Fragment,{children:(0,V.jsxs)(et,{onCloseRequest:e,title:g("helpDialog.title"),className:"HelpDialog",children:[(0,V.jsx)(nk,{}),(0,V.jsxs)(ik,{title:g("helpDialog.shortcuts"),children:[(0,V.jsxs)(eg,{className:"HelpDialog__island--tools",caption:g("helpDialog.tools"),children:[(0,V.jsx)(Q,{label:g("toolBar.hand"),shortcuts:[S.H]}),(0,V.jsx)(Q,{label:g("toolBar.selection"),shortcuts:[S.V,S[1]]}),(0,V.jsx)(Q,{label:g("toolBar.rectangle"),shortcuts:[S.R,S[2]]}),(0,V.jsx)(Q,{label:g("toolBar.diamond"),shortcuts:[S.D,S[3]]}),(0,V.jsx)(Q,{label:g("toolBar.ellipse"),shortcuts:[S.O,S[4]]}),(0,V.jsx)(Q,{label:g("toolBar.arrow"),shortcuts:[S.A,S[5]]}),(0,V.jsx)(Q,{label:g("toolBar.line"),shortcuts:[S.L,S[6]]}),(0,V.jsx)(Q,{label:g("toolBar.freedraw"),shortcuts:[S.P,S[7]]}),(0,V.jsx)(Q,{label:g("toolBar.text"),shortcuts:[S.T,S[8]]}),(0,V.jsx)(Q,{label:g("toolBar.image"),shortcuts:[S[9]]}),(0,V.jsx)(Q,{label:g("toolBar.eraser"),shortcuts:[S.E,S[0]]}),(0,V.jsx)(Q,{label:g("toolBar.frame"),shortcuts:[S.F]}),(0,V.jsx)(Q,{label:g("toolBar.laser"),shortcuts:[S.K]}),(0,V.jsx)(Q,{label:g("labels.eyeDropper"),shortcuts:[S.I,"Shift+S","Shift+G"]}),(0,V.jsx)(Q,{label:g("helpDialog.editLineArrowPoints"),shortcuts:[F("CtrlOrCmd+Enter")]}),(0,V.jsx)(Q,{label:g("helpDialog.editText"),shortcuts:[F("Enter")]}),(0,V.jsx)(Q,{label:g("helpDialog.textNewLine"),shortcuts:[F("Enter"),F("Shift+Enter")]}),(0,V.jsx)(Q,{label:g("helpDialog.textFinish"),shortcuts:[F("Esc"),F("CtrlOrCmd+Enter")]}),(0,V.jsx)(Q,{label:g("helpDialog.curvedArrow"),shortcuts:["A",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,V.jsx)(Q,{label:g("helpDialog.curvedLine"),shortcuts:["L",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,V.jsx)(Q,{label:g("toolBar.lock"),shortcuts:[S.Q]}),(0,V.jsx)(Q,{label:g("helpDialog.preventBinding"),shortcuts:[F("CtrlOrCmd")]}),(0,V.jsx)(Q,{label:g("toolBar.link"),shortcuts:[F("CtrlOrCmd+K")]})]}),(0,V.jsxs)(eg,{className:"HelpDialog__island--view",caption:g("helpDialog.view"),children:[(0,V.jsx)(Q,{label:g("buttons.zoomIn"),shortcuts:[F("CtrlOrCmd++")]}),(0,V.jsx)(Q,{label:g("buttons.zoomOut"),shortcuts:[F("CtrlOrCmd+-")]}),(0,V.jsx)(Q,{label:g("buttons.resetZoom"),shortcuts:[F("CtrlOrCmd+0")]}),(0,V.jsx)(Q,{label:g("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,V.jsx)(Q,{label:g("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,V.jsx)(Q,{label:g("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,V.jsx)(Q,{label:g("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,V.jsx)(Q,{label:g("buttons.zenMode"),shortcuts:[F("Alt+Z")]}),(0,V.jsx)(Q,{label:g("buttons.objectsSnapMode"),shortcuts:[F("Alt+S")]}),(0,V.jsx)(Q,{label:g("labels.toggleGrid"),shortcuts:[F("CtrlOrCmd+'")]}),(0,V.jsx)(Q,{label:g("labels.viewMode"),shortcuts:[F("Alt+R")]}),(0,V.jsx)(Q,{label:g("labels.toggleTheme"),shortcuts:[F("Alt+Shift+D")]}),(0,V.jsx)(Q,{label:g("stats.title"),shortcuts:[F("Alt+/")]}),(0,V.jsx)(Q,{label:g("commandPalette.title"),shortcuts:Mr?[wt("commandPalette")]:[wt("commandPalette"),wt("commandPalette",1)]})]}),(0,V.jsxs)(eg,{className:"HelpDialog__island--editor",caption:g("helpDialog.editor"),children:[(0,V.jsx)(Q,{label:g("labels.moveCanvas"),shortcuts:[F(`Space+${g("helpDialog.drag")}`),F(`Wheel+${g("helpDialog.drag")}`)],isOr:!0}),(0,V.jsx)(Q,{label:g("buttons.clearReset"),shortcuts:[F("CtrlOrCmd+Delete")]}),(0,V.jsx)(Q,{label:g("labels.delete"),shortcuts:[F("Delete")]}),(0,V.jsx)(Q,{label:g("labels.cut"),shortcuts:[F("CtrlOrCmd+X")]}),(0,V.jsx)(Q,{label:g("labels.copy"),shortcuts:[F("CtrlOrCmd+C")]}),(0,V.jsx)(Q,{label:g("labels.paste"),shortcuts:[F("CtrlOrCmd+V")]}),(0,V.jsx)(Q,{label:g("labels.pasteAsPlaintext"),shortcuts:[F("CtrlOrCmd+Shift+V")]}),(0,V.jsx)(Q,{label:g("labels.selectAll"),shortcuts:[F("CtrlOrCmd+A")]}),(0,V.jsx)(Q,{label:g("labels.multiSelect"),shortcuts:[F(`Shift+${g("helpDialog.click")}`)]}),(0,V.jsx)(Q,{label:g("helpDialog.deepSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.click")}`)]}),(0,V.jsx)(Q,{label:g("helpDialog.deepBoxSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.drag")}`)]}),(qi||Mr)&&(0,V.jsx)(Q,{label:g("labels.copyAsPng"),shortcuts:[F("Shift+Alt+C")]}),(0,V.jsx)(Q,{label:g("labels.copyStyles"),shortcuts:[F("CtrlOrCmd+Alt+C")]}),(0,V.jsx)(Q,{label:g("labels.pasteStyles"),shortcuts:[F("CtrlOrCmd+Alt+V")]}),(0,V.jsx)(Q,{label:g("labels.sendToBack"),shortcuts:[Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")]}),(0,V.jsx)(Q,{label:g("labels.bringToFront"),shortcuts:[Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")]}),(0,V.jsx)(Q,{label:g("labels.sendBackward"),shortcuts:[F("CtrlOrCmd+[")]}),(0,V.jsx)(Q,{label:g("labels.bringForward"),shortcuts:[F("CtrlOrCmd+]")]}),(0,V.jsx)(Q,{label:g("labels.alignTop"),shortcuts:[F("CtrlOrCmd+Shift+Up")]}),(0,V.jsx)(Q,{label:g("labels.alignBottom"),shortcuts:[F("CtrlOrCmd+Shift+Down")]}),(0,V.jsx)(Q,{label:g("labels.alignLeft"),shortcuts:[F("CtrlOrCmd+Shift+Left")]}),(0,V.jsx)(Q,{label:g("labels.alignRight"),shortcuts:[F("CtrlOrCmd+Shift+Right")]}),(0,V.jsx)(Q,{label:g("labels.duplicateSelection"),shortcuts:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)]}),(0,V.jsx)(Q,{label:g("helpDialog.toggleElementLock"),shortcuts:[F("CtrlOrCmd+Shift+L")]}),(0,V.jsx)(Q,{label:g("buttons.undo"),shortcuts:[F("CtrlOrCmd+Z")]}),(0,V.jsx)(Q,{label:g("buttons.redo"),shortcuts:Zs?[F("CtrlOrCmd+Y"),F("CtrlOrCmd+Shift+Z")]:[F("CtrlOrCmd+Shift+Z")]}),(0,V.jsx)(Q,{label:g("labels.group"),shortcuts:[F("CtrlOrCmd+G")]}),(0,V.jsx)(Q,{label:g("labels.ungroup"),shortcuts:[F("CtrlOrCmd+Shift+G")]}),(0,V.jsx)(Q,{label:g("labels.flipHorizontal"),shortcuts:[F("Shift+H")]}),(0,V.jsx)(Q,{label:g("labels.flipVertical"),shortcuts:[F("Shift+V")]}),(0,V.jsx)(Q,{label:g("labels.showStroke"),shortcuts:[F("S")]}),(0,V.jsx)(Q,{label:g("labels.showBackground"),shortcuts:[F("G")]}),(0,V.jsx)(Q,{label:g("labels.decreaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+<")]}),(0,V.jsx)(Q,{label:g("labels.increaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+>")]})]})]})]})})};h();var Bn=v(H(),1);var $t=v(k(),1),ck=4,dk=8,mk=({shouldWrap:t,children:e,username:o})=>t?(0,$t.jsx)(xo,{label:o||"Unknown user",children:e}):(0,$t.jsx)(Bn.default.Fragment,{children:e}),tg=({actionManager:t,collaborator:e,socketId:o,withName:r=!1,shouldWrapWithTooltip:n=!1,isBeingFollowed:i})=>{let a={socketId:o,collaborator:e,withName:r,isBeingFollowed:i},l=t.renderAction("goToCollaborator",a);return(0,$t.jsx)(mk,{username:e.username,shouldWrap:n,children:l},o)},pk=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],Xm=Bn.default.memo(({className:t,mobile:e,collaborators:o,userToFollow:r})=>{let n=It(),i=new Map;o.forEach((y,T)=>{let C=y.id||T;i.set(C,{...y,socketId:T})});let a=Array.from(i.values()).filter(y=>y.username?.trim()),[l,s]=Bn.default.useState(""),d=Bn.default.useRef(null);(0,Bn.useLayoutEffect)(()=>{if(d.current){let y=C=>{let w=Math.max(1,Math.min(8,Math.floor(C/38)));m(w)};if(y(d.current.clientWidth),!al)return;let T=new ResizeObserver(C=>{for(let w of C){let{width:A}=w.contentRect;y(A)}});return T.observe(d.current),()=>{T.disconnect()}}},[]);let[c,m]=Bn.default.useState(ck),f=l.trim().toLowerCase()?a.filter(y=>y.username?.toLowerCase().includes(l)):a,x=a.slice(0,c-1).map(y=>tg({actionManager:n,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===r}));return e?(0,$t.jsx)("div",{className:$("UserList UserList_mobile",t),children:a.map(y=>tg({actionManager:n,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===r}))}):(0,$t.jsx)("div",{className:"UserList-wrapper",ref:d,children:(0,$t.jsxs)("div",{className:$("UserList",t),style:{"--max-avatars":c},children:[x,a.length>c-1&&(0,$t.jsxs)(Yd,{onOpenChange:y=>{y||s("")},children:[(0,$t.jsxs)(Zd,{className:"UserList__more",children:["+",a.length-c+1]}),(0,$t.jsx)(jd,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,$t.jsxs)(zt,{style:{overflow:"hidden"},children:[a.length>=dk&&(0,$t.jsxs)("div",{className:"UserList__search-wrapper",children:[yd,(0,$t.jsx)("input",{className:"UserList__search",type:"text",placeholder:g("userList.search.placeholder"),value:l,onChange:y=>{s(y.target.value)}})]}),(0,$t.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[f.length===0&&(0,$t.jsx)("div",{className:"UserList__collaborators__empty",children:g("userList.search.empty")}),(0,$t.jsx)("div",{className:"UserList__hint",children:g("userList.hint.text")}),f.map(y=>tg({actionManager:n,collaborator:y,socketId:y.socketId,withName:!0,isBeingFollowed:y.socketId===r}))]})]})})]})]})})},(t,e)=>{if(t.collaborators.size!==e.collaborators.size||t.mobile!==e.mobile||t.className!==e.className||t.userToFollow!==e.userToFollow)return!1;let o=e.collaborators.keys();for(let[r,n]of t.collaborators){let i=e.collaborators.get(r);if(!i||r!==o.next().value||!kt(n,i,pk))return!1}return!0});h();var k3=v(H(),1);h();var T3=v(k(),1),og=({children:t,color:e})=>(0,T3.jsx)("div",{className:"Card",style:{"--card-color":e==="primary"?"var(--color-primary)":Mt[e][7],"--card-color-darker":e==="primary"?"var(--color-primary-darker)":Mt[e][8],"--card-color-darkest":e==="primary"?"var(--color-primary-darkest)":Mt[e][9]},children:t});var At=v(k(),1),uk=({elements:t,appState:e,setAppState:o,files:r,actionManager:n,exportOpts:i,canvas:a,onCloseRequest:l})=>{let{onExportToBackend:s}=i;return(0,At.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,At.jsxs)("div",{className:"ExportDialog-cards",children:[i.saveFileToDisk&&(0,At.jsxs)(og,{color:"lime",children:[(0,At.jsx)("div",{className:"Card-icon",children:Lx}),(0,At.jsx)("h2",{children:g("exportDialog.disk_title")}),(0,At.jsxs)("div",{className:"Card-details",children:[g("exportDialog.disk_details"),!ji&&n.renderAction("changeProjectName")]}),(0,At.jsx)(le,{className:"Card-button",type:"button",title:g("exportDialog.disk_button"),"aria-label":g("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{n.executeAction(ls,"ui")}})]}),s&&(0,At.jsxs)(og,{color:"pink",children:[(0,At.jsx)("div",{className:"Card-icon",children:Ul}),(0,At.jsx)("h2",{children:g("exportDialog.link_title")}),(0,At.jsx)("div",{className:"Card-details",children:g("exportDialog.link_details")}),(0,At.jsx)(le,{className:"Card-button",type:"button",title:g("exportDialog.link_button"),"aria-label":g("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{xe("export","link",`ui (${Y1()})`),await s(t,e,r),l()}catch(d){o({errorMessage:d.message})}}})]}),i.renderCustomUI&&i.renderCustomUI(t,e,r,a)]})})},I3=({elements:t,appState:e,files:o,actionManager:r,exportOpts:n,canvas:i,setAppState:a})=>{let l=k3.default.useCallback(()=>{a({openDialog:null})},[a]);return(0,At.jsx)(At.Fragment,{children:e.openDialog?.name==="jsonExport"&&(0,At.jsx)(et,{onCloseRequest:l,title:g("buttons.export"),children:(0,At.jsx)(uk,{elements:t,appState:e,setAppState:a,files:o,actionManager:r,onCloseRequest:l,exportOpts:n,canvas:i})})})};h();h();var M3=v(k(),1),A3=t=>(0,M3.jsx)("button",{className:"help-icon",onClick:t.onClick,type:"button",title:`${g("helpDialog.title")} \u2014 ?`,"aria-label":g("helpDialog.title"),children:sa});var ao=v(k(),1),_3=({appState:t,actionManager:e,showExitZenModeBtn:o,renderWelcomeScreen:r})=>{let{FooterCenterTunnel:n,WelcomeScreenHelpHintTunnel:i}=Ve(),a=Me(),l=!t.viewModeEnabled&&t.multiElement&&a.isTouchScreen;return(0,ao.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,ao.jsx)("div",{className:$("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled}),children:(0,ao.jsx)(Pt.Col,{gap:2,children:(0,ao.jsxs)(Nn,{heading:"canvasActions",children:[(0,ao.jsx)(Xw,{renderAction:e.renderAction,zoom:t.zoom}),!t.viewModeEnabled&&(0,ao.jsx)(qw,{renderAction:e.renderAction,className:$("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":t.zenModeEnabled})}),l&&(0,ao.jsx)(Qw,{renderAction:e.renderAction,className:$("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled})})]})})}),(0,ao.jsx)(n.Out,{}),(0,ao.jsx)("div",{className:$("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:(0,ao.jsxs)("div",{style:{position:"relative"},children:[r&&(0,ao.jsx)(i.Out,{}),(0,ao.jsx)(A3,{onClick:()=>e.executeAction(gi)})]})}),(0,ao.jsx)(Jw,{actionManager:e,showExitZenModeBtn:o})]})},L3=_3;_3.displayName="Footer";h();var Ct=v(H(),1);h();var P3=v(H(),1),qm=P3.default.createContext({});h();var R3=v(H(),1);var Ai=v(k(),1),rg=({children:t,className:e})=>{let o=Me(),r=(0,R3.useContext)(qm),n=!!(o.editor.canFitSidebar&&r.shouldRenderDockButton);return(0,Ai.jsxs)("div",{className:$("sidebar__header",e),"data-testid":"sidebar-header",children:[t,(0,Ai.jsxs)("div",{className:"sidebar__header__buttons",children:[n&&(0,Ai.jsx)(xo,{label:g("labels.sidebarLock"),children:(0,Ai.jsx)(Cr,{onSelect:()=>r.onDock?.(!r.docked),selected:!!r.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":g("labels.sidebarLock"),children:sx})}),(0,Ai.jsx)(Cr,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:r.onCloseRequest,"aria-label":g("buttons.close"),children:Ro})]})]})};rg.displayName="SidebarHeader";h();var Mi=v(k(),1),ng=({name:t,tab:e,icon:o,title:r,children:n,onToggle:i,className:a,style:l})=>{let s=Pe(),d=Le();return(0,Mi.jsxs)("label",{title:r,className:"sidebar-trigger__label-element",children:[(0,Mi.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:c=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let m=c.target.checked;s({openSidebar:m?{name:t,tab:e}:null}),i?.(m)},checked:d.openSidebar?.name===t,"aria-label":r,"aria-keyshortcuts":"0"}),(0,Mi.jsxs)("div",{className:$("sidebar-trigger",a),style:l,children:[o&&(0,Mi.jsx)("div",{children:o}),n&&(0,Mi.jsx)("div",{className:"sidebar-trigger__label",children:n})]})]})};ng.displayName="SidebarTrigger";h();h();var Rt=v(H());h();var Ke=v(H());h();var ar=v(H());function D3(t){let e=t+"CollectionProvider",[o,r]=yr(e),[n,i]=o(e,{collectionRef:{current:null},itemMap:new Map}),a=f=>{let{scope:b,children:x}=f,y=ar.default.useRef(null),T=ar.default.useRef(new Map).current;return ar.default.createElement(n,{scope:b,itemMap:T,collectionRef:y},x)},l=t+"CollectionSlot",s=ar.default.forwardRef((f,b)=>{let{scope:x,children:y}=f,T=i(l,x),C=Ft(b,T.collectionRef);return ar.default.createElement(En,{ref:C},y)}),d=t+"CollectionItemSlot",c="data-radix-collection-item",m=ar.default.forwardRef((f,b)=>{let{scope:x,children:y,...T}=f,C=ar.default.useRef(null),w=Ft(b,C),A=i(d,x);return ar.default.useEffect(()=>(A.itemMap.set(C,{ref:C,...T}),()=>void A.itemMap.delete(C))),ar.default.createElement(En,{[c]:"",ref:w},y)});function u(f){let b=i(t+"CollectionConsumer",f);return ar.default.useCallback(()=>{let y=b.collectionRef.current;if(!y)return[];let T=Array.from(y.querySelectorAll(`[${c}]`));return Array.from(b.itemMap.values()).sort((A,z)=>T.indexOf(A.ref.current)-T.indexOf(z.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:s,ItemSlot:m},u,r]}h();var Ss=v(H()),fk=(0,Ss.createContext)(void 0);function Jm(t){let e=(0,Ss.useContext)(fk);return t||e||"ltr"}var ig="rovingFocusGroup.onEntryFocus",hk={bubbles:!1,cancelable:!0},lg="RovingFocusGroup",[ag,N3,gk]=D3(lg),[bk,sg]=yr(lg,[gk]),[xk,vk]=bk(lg),yk=(0,Ke.forwardRef)((t,e)=>(0,Ke.createElement)(ag.Provider,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(ag.Slot,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(Ek,Ce({},t,{ref:e}))))),Ek=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,orientation:r,loop:n=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:s,onEntryFocus:d,...c}=t,m=(0,Ke.useRef)(null),u=Ft(e,m),f=Jm(i),[b=null,x]=Sa({prop:a,defaultProp:l,onChange:s}),[y,T]=(0,Ke.useState)(!1),C=oo(d),w=N3(o),A=(0,Ke.useRef)(!1),[z,I]=(0,Ke.useState)(0);return(0,Ke.useEffect)(()=>{let M=m.current;if(M)return M.addEventListener(ig,C),()=>M.removeEventListener(ig,C)},[C]),(0,Ke.createElement)(xk,{scope:o,orientation:r,dir:f,loop:n,currentTabStopId:b,onItemFocus:(0,Ke.useCallback)(M=>x(M),[x]),onItemShiftTab:(0,Ke.useCallback)(()=>T(!0),[]),onFocusableItemAdd:(0,Ke.useCallback)(()=>I(M=>M+1),[]),onFocusableItemRemove:(0,Ke.useCallback)(()=>I(M=>M-1),[])},(0,Ke.createElement)(dt.div,Ce({tabIndex:y||z===0?-1:0,"data-orientation":r},c,{ref:u,style:{outline:"none",...t.style},onMouseDown:yt(t.onMouseDown,()=>{A.current=!0}),onFocus:yt(t.onFocus,M=>{let _=!A.current;if(M.target===M.currentTarget&&_&&!y){let U=new CustomEvent(ig,hk);if(M.currentTarget.dispatchEvent(U),!U.defaultPrevented){let D=w().filter(oe=>oe.focusable),G=D.find(oe=>oe.active),O=D.find(oe=>oe.id===b),te=[G,O,...D].filter(Boolean).map(oe=>oe.ref.current);O3(te)}}A.current=!1}),onBlur:yt(t.onBlur,()=>T(!1))})))}),wk="RovingFocusGroupItem",Ck=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,focusable:r=!0,active:n=!1,tabStopId:i,...a}=t,l=ya(),s=i||l,d=vk(wk,o),c=d.currentTabStopId===s,m=N3(o),{onFocusableItemAdd:u,onFocusableItemRemove:f}=d;return(0,Ke.useEffect)(()=>{if(r)return u(),()=>f()},[r,u,f]),(0,Ke.createElement)(ag.ItemSlot,{scope:o,id:s,focusable:r,active:n},(0,Ke.createElement)(dt.span,Ce({tabIndex:c?0:-1,"data-orientation":d.orientation},a,{ref:e,onMouseDown:yt(t.onMouseDown,b=>{r?d.onItemFocus(s):b.preventDefault()}),onFocus:yt(t.onFocus,()=>d.onItemFocus(s)),onKeyDown:yt(t.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let x=kk(b,d.orientation,d.dir);if(x!==void 0){b.preventDefault();let T=m().filter(C=>C.focusable).map(C=>C.ref.current);if(x==="last")T.reverse();else if(x==="prev"||x==="next"){x==="prev"&&T.reverse();let C=T.indexOf(b.currentTarget);T=d.loop?Ik(T,C+1):T.slice(C+1)}setTimeout(()=>O3(T))}})})))}),Sk={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Tk(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function kk(t,e,o){let r=Tk(t.key,o);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Sk[r]}function O3(t){let e=document.activeElement;for(let o of t)if(o===e||(o.focus(),document.activeElement!==e))return}function Ik(t,e){return t.map((o,r)=>t[(e+r)%t.length])}var F3=yk,B3=Ck;var z3="Tabs",[Ak,MJ]=yr(z3,[sg]),$3=sg(),[Mk,cg]=Ak(z3),_k=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,onValueChange:n,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:s="automatic",...d}=t,c=Jm(l),[m,u]=Sa({prop:r,onChange:n,defaultProp:i});return(0,Rt.createElement)(Mk,{scope:o,baseId:ya(),value:m,onValueChange:u,orientation:a,dir:c,activationMode:s},(0,Rt.createElement)(dt.div,Ce({dir:c,"data-orientation":a},d,{ref:e})))}),Lk="TabsList",Pk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,loop:r=!0,...n}=t,i=cg(Lk,o),a=$3(o);return(0,Rt.createElement)(F3,Ce({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),(0,Rt.createElement)(dt.div,Ce({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),Rk="TabsTrigger",Dk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,disabled:n=!1,...i}=t,a=cg(Rk,o),l=$3(o),s=H3(a.baseId,r),d=U3(a.baseId,r),c=r===a.value;return(0,Rt.createElement)(B3,Ce({asChild:!0},l,{focusable:!n,active:c}),(0,Rt.createElement)(dt.button,Ce({type:"button",role:"tab","aria-selected":c,"aria-controls":d,"data-state":c?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:s},i,{ref:e,onMouseDown:yt(t.onMouseDown,m=>{!n&&m.button===0&&m.ctrlKey===!1?a.onValueChange(r):m.preventDefault()}),onKeyDown:yt(t.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&a.onValueChange(r)}),onFocus:yt(t.onFocus,()=>{let m=a.activationMode!=="manual";!c&&!n&&m&&a.onValueChange(r)})})))}),Nk="TabsContent",Ok=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,forceMount:n,children:i,...a}=t,l=cg(Nk,o),s=H3(l.baseId,r),d=U3(l.baseId,r),c=r===l.value,m=(0,Rt.useRef)(c);return(0,Rt.useEffect)(()=>{let u=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(u)},[]),(0,Rt.createElement)(Ca,{present:n||c},({present:u})=>(0,Rt.createElement)(dt.div,Ce({"data-state":c?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":s,hidden:!u,id:d,tabIndex:0},a,{ref:e,style:{...t.style,animationDuration:m.current?"0s":void 0}}),u&&i))});function H3(t,e){return`${t}-trigger-${e}`}function U3(t,e){return`${t}-content-${e}`}var Qm=_k,ep=Pk,tp=Dk,op=Ok;var W3=v(k(),1),dg=({children:t,...e})=>(0,W3.jsx)(ep,{className:"sidebar-triggers",...e,children:t});dg.displayName="SidebarTabTriggers";h();var mg=v(k(),1),pg=({children:t,tab:e,onSelect:o,...r})=>(0,mg.jsx)(tp,{value:e,asChild:!0,onSelect:o,children:(0,mg.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...r,children:t})});pg.displayName="SidebarTabTrigger";h();var G3=v(k(),1),ug=({children:t,...e})=>{let o=Le(),r=Pe();if(!o.openSidebar)return null;let{name:n}=o.openSidebar;return(0,G3.jsx)(Qm,{className:"sidebar-tabs-root",value:o.openSidebar.tab,onValueChange:i=>r(a=>({...a,openSidebar:{...a.openSidebar,name:n,tab:i}})),...e,children:t})};ug.displayName="SidebarTabs";h();var V3=v(k(),1),fg=({tab:t,children:e,...o})=>(0,V3.jsx)(op,{...o,value:t,"data-testid":t,children:e});fg.displayName="SidebarTab";var hg=v(k(),1),Y3=v(H(),1),Ts=We(!1),K3=(0,Ct.forwardRef)(({name:t,children:e,onDock:o,docked:r,className:n,...i},a)=>{E.DEV&&o&&r==null&&console.warn("Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`");let l=Pe(),s=Wr(Ts,Ne);(0,Ct.useLayoutEffect)(()=>(s(!!r),()=>{s(!1)}),[s,r]);let d=(0,Ct.useRef)({});d.current.onCloseRequest=()=>{l({openSidebar:null})},d.current.onDock=f=>o?.(f),d.current=Fi(d.current,{docked:r,shouldRenderDockButton:!!o&&r!=null});let c=(0,Ct.useRef)(null);(0,Ct.useImperativeHandle)(a,()=>c.current);let m=Me(),u=(0,Ct.useCallback)(()=>{document.querySelector(".Dialog")||l({openSidebar:null})},[l]);return _a(c,(0,Ct.useCallback)(f=>{f.target.closest(".sidebar-trigger")||(!r||!m.editor.canFitSidebar)&&u()},[u,r,m.editor.canFitSidebar])),(0,Ct.useEffect)(()=>{let f=b=>{b.key===S.ESCAPE&&(!r||!m.editor.canFitSidebar)&&u()};return document.addEventListener("keydown",f),()=>{document.removeEventListener("keydown",f)}},[u,r,m.editor.canFitSidebar]),(0,hg.jsx)(zt,{...i,className:$("sidebar",{"sidebar--docked":r},n),ref:c,children:(0,hg.jsx)(qm.Provider,{value:d.current,children:e})})});K3.displayName="SidebarInner";var Qr=Object.assign((0,Ct.forwardRef)((t,e)=>{let o=Le(),{onStateChange:r}=t,n=(0,Ct.useRef)(o.openSidebar);(0,Ct.useEffect)(()=>{(!o.openSidebar&&n?.current?.name===t.name||o.openSidebar?.name===t.name&&n?.current?.name!==t.name||n.current?.name===t.name)&&o.openSidebar!==n.current&&r?.(o.openSidebar?.name!==t.name?null:o.openSidebar),n.current=o.openSidebar},[o.openSidebar,r,t.name]);let[i,a]=(0,Ct.useState)(!1);return(0,Ct.useLayoutEffect)(()=>(a(!0),()=>a(!1)),[]),i&&o.openSidebar?.name===t.name?(0,Y3.createElement)(K3,{...t,ref:e,key:t.name}):null}),{Header:rg,TabTriggers:dg,TabTrigger:pg,Tabs:ug,Tab:fg,Trigger:ng});Qr.displayName="Sidebar";h();var bg={};o1(bg,{ChangeCanvasBackground:()=>n5,ClearCanvas:()=>o5,CommandPalette:()=>e5,Export:()=>i5,Help:()=>t5,LiveCollaborationTrigger:()=>l5,LoadScene:()=>q3,SaveAsImage:()=>Q3,SaveToActiveFile:()=>J3,Socials:()=>a5,ToggleTheme:()=>r5});h();h();var gg=We({active:!1});async function Z3({title:t,description:e,actionLabel:o,color:r}){return new Promise(n=>{Gt.set(gg,{active:!0,onConfirm:()=>n(!0),onClose:()=>n(!1),onReject:()=>n(!1),title:t,description:e,actionLabel:o,color:r})})}h();var en=v(k(),1),j3=({value:t,shortcut:e,onChange:o,choices:r,children:n,name:i})=>{let a=Me();return(0,en.jsxs)(en.Fragment,{children:[(0,en.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,en.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:i,children:n}),(0,en.jsx)(Um,{name:i,value:t,onChange:o,choices:r})]}),e&&!a.editor.isMobile&&(0,en.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:e})]})};j3.displayName="DropdownMenuItemContentRadio";var X3=j3;var tt=v(k(),1),q3=()=>{let{t}=vt(),e=It(),o=kn();return e.isActionEnabled(Da)?(0,tt.jsx)(Bo,{icon:ca,onSelect:async()=>{(!o.length||await Z3({title:t("overwriteConfirm.modal.loadFromFile.title"),actionLabel:t("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,tt.jsx)(no,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:n=>(0,tt.jsx)("strong",{children:n}),br:()=>(0,tt.jsx)("br",{})})}))&&e.executeAction(Da)},"data-testid":"load-button",shortcut:wt("loadScene"),"aria-label":t("buttons.load"),children:t("buttons.load")}):null};q3.displayName="LoadScene";var J3=()=>{let{t}=vt(),e=It();return e.isActionEnabled(om)?(0,tt.jsx)(Bo,{shortcut:wt("saveScene"),"data-testid":"save-button",onSelect:()=>e.executeAction(om),icon:Ax,"aria-label":`${t("buttons.save")}`,children:`${t("buttons.save")}`}):null};J3.displayName="SaveToActiveFile";var Q3=()=>{let t=Pe(),{t:e}=vt();return(0,tt.jsx)(Bo,{icon:ud,"data-testid":"image-export-button",onSelect:()=>t({openDialog:{name:"imageExport"}}),shortcut:wt("imageExport"),"aria-label":e("buttons.exportImage"),children:e("buttons.exportImage")})};Q3.displayName="SaveAsImage";var e5=t=>{let e=Pe(),{t:o}=vt();return(0,tt.jsx)(Bo,{icon:Ed,"data-testid":"command-palette-button",onSelect:()=>{xe("command_palette","open","menu"),e({openDialog:{name:"commandPalette"}})},shortcut:wt("commandPalette"),"aria-label":o("commandPalette.title"),className:t?.className,children:o("commandPalette.title")})};e5.displayName="CommandPalette";var t5=()=>{let{t}=vt(),e=It();return(0,tt.jsx)(Bo,{"data-testid":"help-menu-item",icon:sa,onSelect:()=>e.executeAction(gi),shortcut:"?","aria-label":t("helpDialog.title"),children:t("helpDialog.title")})};t5.displayName="Help";var o5=()=>{let{t}=vt(),e=Wr(Ti,Ne);return It().isActionEnabled(jr)?(0,tt.jsx)(Bo,{icon:er,onSelect:()=>e("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":t("buttons.clearReset"),children:t("buttons.clearReset")}):null};o5.displayName="ClearCanvas";var r5=t=>{let{t:e}=vt(),o=Le(),r=It(),n=wt("toggleTheme");return r.isActionEnabled(mi)?t?.allowSystemTheme?(0,tt.jsx)(X3,{name:"theme",value:t.theme,onChange:i=>t.onSelect(i),choices:[{value:be.LIGHT,label:Hl,ariaLabel:`${e("buttons.lightMode")} - ${n}`},{value:be.DARK,label:$l,ariaLabel:`${e("buttons.darkMode")} - ${n}`},{value:"system",label:zv,ariaLabel:e("buttons.systemMode")}],children:e("labels.theme")}):(0,tt.jsx)(Bo,{onSelect:i=>{if(i.preventDefault(),t?.onSelect)t.onSelect(o.theme===be.DARK?be.LIGHT:be.DARK);else return r.executeAction(mi)},icon:o.theme===be.DARK?Hl:$l,"data-testid":"toggle-dark-mode",shortcut:n,"aria-label":o.theme===be.DARK?e("buttons.lightMode"):e("buttons.darkMode"),children:o.theme===be.DARK?e("buttons.lightMode"):e("buttons.darkMode")}):null};r5.displayName="ToggleTheme";var n5=()=>{let{t}=vt(),e=Le(),o=It(),r=_n();return e.viewModeEnabled||!r.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,tt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,tt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:t("labels.canvasBackground")}),(0,tt.jsx)("div",{style:{padding:"0 0.625rem"},children:o.renderAction("changeViewBackgroundColor")})]})};n5.displayName="ChangeCanvasBackground";var i5=()=>{let{t}=vt(),e=Pe();return(0,tt.jsx)(Bo,{icon:ni,onSelect:()=>{e({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":t("buttons.export"),children:t("buttons.export")})};i5.displayName="Export";var a5=()=>{let{t}=vt();return(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)(Ga,{icon:md,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,tt.jsx)(Ga,{icon:kx,href:"https://x.com/excalidraw","aria-label":"X",children:t("labels.followUs")}),(0,tt.jsx)(Ga,{icon:Tx,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:t("labels.discordChat")})]})};a5.displayName="Socials";var l5=({onSelect:t,isCollaborating:e})=>{let{t:o}=vt();return(0,tt.jsx)(Bo,{"data-testid":"collab-button",icon:fd,className:$({"active-collab":e}),onSelect:t,children:o("labels.liveCollaboration")})};l5.displayName="LiveCollaborationTrigger";h();var rp=v(H(),1);var s5=v(k(),1),tn=(t,e)=>{let o=We(0),r=n=>{let{jotaiScope:i}=Ve(),[,a]=Se(o,i),l=(0,rp.useRef)({preferHost:!1,counter:0});return(0,rp.useLayoutEffect)(()=>{let s=l.current;return a(d=>{let c=d+1;return s.counter=c,c}),()=>{a(d=>{let c=d-1;return s.counter=c,c||(s.preferHost=!1),c})}},[a]),n.__fallback||(l.current.preferHost=!0),!l.current.counter&&n.__fallback&&l.current.preferHost||l.current.counter>1&&n.__fallback?null:(0,s5.jsx)(e,{...n})};return r.displayName=t,r};var on=v(k(),1),Fk=Object.assign(tn("MainMenu",({children:t,onSelect:e})=>{let{MainMenuTunnel:o}=Ve(),r=Me(),n=Le(),i=Pe(),a=r.editor.isMobile?void 0:()=>i({openMenu:null});return(0,on.jsx)(o.In,{children:(0,on.jsxs)(De,{open:n.openMenu==="canvas",children:[(0,on.jsx)(De.Trigger,{onToggle:()=>{i({openMenu:n.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:dd}),(0,on.jsxs)(De.Content,{onClickOutside:a,onSelect:cn(e,()=>{i({openMenu:null})}),children:[t,r.editor.isMobile&&n.collaborators.size>0&&(0,on.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,on.jsx)("legend",{children:g("labels.collaborators")}),(0,on.jsx)(Xm,{mobile:!0,collaborators:n.collaborators,userToFollow:n.userToFollow?.socketId||null})]})]})]})})}),{Trigger:De.Trigger,Item:De.Item,ItemLink:De.ItemLink,ItemCustom:De.ItemCustom,Group:De.Group,Separator:De.Separator,DefaultItems:bg}),lo=Fk;h();h();var rn=v(k(),1),np=({title:t,children:e,actionLabel:o,onClick:r})=>(0,rn.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,rn.jsx)("h4",{children:t}),(0,rn.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:e}),(0,rn.jsx)(Tr,{variant:"outlined",color:"muted",label:o,size:"large",fullWidth:!0,onClick:r})]}),Bk=()=>{let{t}=vt(),e=It(),o=Pe();return(0,rn.jsx)(np,{title:t("overwriteConfirm.action.exportToImage.title"),actionLabel:t("overwriteConfirm.action.exportToImage.button"),onClick:()=>{e.executeAction(tm,"ui",!0),o({openDialog:{name:"imageExport"}})},children:t("overwriteConfirm.action.exportToImage.description")})},zk=()=>{let{t}=vt(),e=It();return(0,rn.jsx)(np,{title:t("overwriteConfirm.action.saveToDisk.title"),actionLabel:t("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{e.executeAction(ls,"ui")},children:t("overwriteConfirm.action.saveToDisk.description")})},xg=Object.assign(({children:t})=>(0,rn.jsx)("div",{className:"OverwriteConfirm__Actions",children:t}),{ExportToImage:Bk,SaveToDisk:zk});var Ho=v(k(),1),ip=Object.assign(tn("OverwriteConfirmDialog",({children:t})=>{let{OverwriteConfirmDialogTunnel:e}=Ve(),[o,r]=Se(gg,Ne);if(!o.active)return null;let n=()=>{o.onClose(),r(a=>({...a,active:!1}))},i=()=>{o.onConfirm(),r(a=>({...a,active:!1}))};return(0,Ho.jsx)(e.In,{children:(0,Ho.jsx)(et,{onCloseRequest:n,title:!1,size:916,children:(0,Ho.jsxs)("div",{className:"OverwriteConfirm",children:[(0,Ho.jsx)("h3",{children:o.title}),(0,Ho.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${o.color}`,children:[(0,Ho.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:Ev}),(0,Ho.jsx)("div",{children:o.description}),(0,Ho.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,Ho.jsx)(Tr,{color:o.color,size:"large",label:o.actionLabel,onClick:i})]}),(0,Ho.jsx)(xg,{children:t})]})})})}),{Actions:xg,Action:np});h();var Uo=v(k(),1),m5=v(H(),1),c5=tn("DefaultSidebarTrigger",t=>{let{DefaultSidebarTriggerTunnel:e}=Ve();return(0,Uo.jsx)(e.In,{children:(0,Uo.jsx)(Qr.Trigger,{...t,className:"default-sidebar-trigger",name:jo.name})})});c5.displayName="DefaultSidebarTrigger";var d5=({children:t,...e})=>{let{DefaultSidebarTabTriggersTunnel:o}=Ve();return(0,Uo.jsx)(o.In,{children:(0,Uo.jsx)(Qr.TabTriggers,{...e,children:t})})};d5.displayName="DefaultTabTriggers";var ap=Object.assign(tn("DefaultSidebar",({children:t,className:e,onDock:o,docked:r,...n})=>{let i=Le(),a=Pe(),{DefaultSidebarTabTriggersTunnel:l}=Ve();return(0,m5.createElement)(Qr,{...n,name:"default",key:"default",className:$("default-sidebar",e),docked:r??i.defaultSidebarDockedPreference,onDock:o===!1||!o&&r!=null?void 0:cn(o,s=>{a({defaultSidebarDockedPreference:s})})},(0,Uo.jsxs)(Qr.Tabs,{children:[(0,Uo.jsxs)(Qr.Header,{children:[n.__fallback&&(0,Uo.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:g("toolBar.library")}),(0,Uo.jsx)(l.Out,{})]}),(0,Uo.jsx)(Qr.Tab,{tab:nc,children:(0,Uo.jsx)(Cw,{})}),t]}))}),{Trigger:c5,TabTriggers:d5});h();var ks=v(k(),1),$k="small",p5=t=>(0,ks.jsxs)("label",{className:$("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${$k}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,ks.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-LaserPointer"}),(0,ks.jsx)("div",{className:"ToolIcon__icon",children:vd})]});h();var yg=v(H(),1);h();var u5=v(k(),1),Xa=t=>(0,u5.jsx)("p",{className:"excalidraw__paragraph",style:t.style,children:t.children});h();var vg=v(H(),1);var h5=v(k(),1),f5=t=>{let e=Pe(),o=(0,vg.useRef)(null),r=(0,vg.useRef)(0);return(0,h5.jsx)(Qm,{ref:o,className:"ttd-dialog-tabs-root",value:t.tab,onValueChange:n=>{if(!n)return;let i=o.current?.closest(".Modal__content");if(i){let a=i.offsetHeight||0;a>r.current&&(r.current=a,i.style.minHeight=`min(${r.current}px, 100%)`)}t.dialog==="settings"&&jp(["text-to-diagram","diagram-to-code"],n)?e({openDialog:{name:t.dialog,tab:n,source:"settings"}}):t.dialog==="ttd"&&jp(["text-to-diagram","mermaid"],n)&&e({openDialog:{name:t.dialog,tab:n}})},children:t.children})};f5.displayName="TTDDialogTabs";var lp=f5;h();var g5=v(k(),1),qa=({tab:t,children:e,...o})=>(0,g5.jsx)(op,{...o,value:t,children:e});qa.displayName="TTDDialogTab";var bt=v(k(),1),b5=t=>{let[e,o]=(0,yg.useState)(t.openAIKey||""),[r,n]=(0,yg.useState)(t.isPersisted),i=Le(),a=()=>{t.onConfirm(e.trim(),r)};return i.openDialog?.name!=="settings"?null:(0,bt.jsx)(et,{onCloseRequest:()=>{t.onClose(),t.onConfirm(e.trim(),r)},title:(0,bt.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,bt.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.1rem 0.5rem",marginLeft:"1rem",fontSize:14,borderRadius:"12px",background:"var(--color-promo)",color:"var(--color-surface-lowest)"},children:"Experimental"})]}),className:"MagicSettings",autofocus:!1,children:(0,bt.jsx)(lp,{dialog:"settings",tab:i.openDialog.tab,children:(0,bt.jsxs)(qa,{tab:"diagram-to-code",children:[(0,bt.jsxs)(Xa,{children:["For the diagram-to-code feature we use"," ",(0,bt.jsx)(Dn,{icon:Wl}),"OpenAI."]}),(0,bt.jsxs)(Xa,{children:["While the OpenAI API is in beta, its use is strictly limited \u2014 as such we require you use your own API key. You can create an"," ",(0,bt.jsx)("a",{href:"https://platform.openai.com/login?launch",rel:"noopener noreferrer",target:"_blank",children:"OpenAI account"}),", add a small credit (5 USD minimum), and"," ",(0,bt.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,bt.jsx)(Xa,{children:"Your OpenAI key does not leave the browser, and you can also set your own limit in your OpenAI account dashboard if needed."}),(0,bt.jsx)(Pm,{isRedacted:!0,value:e,placeholder:"Paste your API key here",label:"OpenAI API key",onChange:l=>{o(l),t.onChange(l.trim(),r)},selectOnRender:!0,onKeyDown:l=>l.key===S.ENTER&&a()}),(0,bt.jsx)(Xa,{children:"By default, your API token is not persisted anywhere so you'll need to insert it again after reload. But, you can persist locally in your browser below."}),(0,bt.jsx)(hi,{checked:r,onChange:n,children:"Persist API key in browser storage"}),(0,bt.jsxs)(Xa,{children:["Once API key is set, you can use the ",(0,bt.jsx)(Dn,{icon:ma})," ","tool to wrap your elements in a frame that will then allow you to turn it into code. This dialog can be accessed using the"," ",(0,bt.jsx)("b",{children:"AI Settings"})," ",(0,bt.jsx)(Dn,{icon:Wl}),"."]}),(0,bt.jsx)(Tr,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:a})]})})})};h();h();var lr=v(H(),1);h();var Hk=({canvasRef:t,setError:e})=>{let o=t.current;if(!o)return;let r=o.parentElement;r&&(r.style.background="",e(null),o.replaceChildren())},sp=async({canvasRef:t,mermaidToExcalidrawLib:e,mermaidDefinition:o,setError:r,data:n})=>{let i=t.current,a=i?.parentElement;if(!(!i||!a)){if(!o){Hk({canvasRef:t,setError:r});return}try{let l=await e.api,s;try{s=await l.parseMermaidToExcalidraw(o,{fontSize:_r})}catch{s=await l.parseMermaidToExcalidraw(o.replace(/"/g,"'"),{fontSize:_r})}let{elements:d,files:c}=s;r(null),n.current={elements:As(d,{regenerateIds:!0}),files:c};let m=await ei({elements:n.current.elements,files:n.current.files,exportPadding:ln,maxWidthOrHeight:Math.max(a.offsetWidth,a.offsetHeight)*window.devicePixelRatio});try{await $r(m)}catch(u){throw u.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):u}a.style.background="var(--default-bg-color)",i.replaceChildren(m)}catch(l){throw a.style.background="var(--default-bg-color)",o&&r(l),l}}},Is=t=>{fo.set(So.MERMAID_TO_EXCALIDRAW,t)},cp=({app:t,data:e,text:o,shouldSaveMermaidDataToStorage:r})=>{let{elements:n,files:i}=e.current;n.length&&(t.addElementsFromPasteOrLibrary({elements:n,files:i,position:"center",fitToContent:!0}),t.setOpenDialog(null),r&&o&&Is(o))};h();var x5=v(k(),1),dp=({children:t})=>(0,x5.jsx)("div",{className:"ttd-dialog-panels",children:t});h();var Ir=v(k(),1),Ja=({label:t,children:e,panelAction:o,panelActionDisabled:r=!1,onTextSubmitInProgess:n,renderTopRight:i,renderSubmitShortcut:a,renderBottomRight:l})=>(0,Ir.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,Ir.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,Ir.jsx)("label",{children:t}),i?.()]}),e,(0,Ir.jsxs)("div",{className:$("ttd-dialog-panel-button-container",{invisible:!o}),style:{display:"flex",alignItems:"center"},children:[(0,Ir.jsxs)(Cr,{className:"ttd-dialog-panel-button",onSelect:o?o.action:()=>{},disabled:r||n,children:[(0,Ir.jsxs)("div",{className:$({invisible:n}),children:[o?.label,o?.icon&&(0,Ir.jsx)("span",{children:o.icon})]}),n&&(0,Ir.jsx)(Ot,{})]}),!r&&!n&&a?.(),l?.()]})]});h();var Ms=v(H(),1);var v5=v(k(),1),mp=({input:t,placeholder:e,onChange:o,onKeyboardSubmit:r})=>{let n=(0,Ms.useRef)(null),i=(0,Ms.useRef)(r);return i.current=r,(0,Ms.useEffect)(()=>{if(!i.current)return;let a=n.current;if(a){let l=s=>{s[S.CTRL_OR_CMD]&&s.key===S.ENTER&&(s.preventDefault(),i.current?.())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l)}}},[]),(0,v5.jsx)("textarea",{className:"ttd-dialog-input",onChange:o,value:t,placeholder:e,autoFocus:!0,ref:n})};h();var $n=v(k(),1),Uk=({error:t})=>(0,$n.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,$n.jsx)("p",{children:t})]}),pp=({error:t,canvasRef:e,loaded:o})=>(0,$n.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[t&&(0,$n.jsx)(Uk,{error:t.message}),o?(0,$n.jsx)("div",{ref:e,style:{opacity:t?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,$n.jsx)(Ot,{size:"2rem"})]});h();var _s=v(k(),1),up=()=>(0,_s.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,_s.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("CtrlOrCmd")}),(0,_s.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("Enter")})]});var jt=v(k(),1),Wk=`flowchart TD
45
+ `);try{ea(i)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return{storeAction:D.NONE}},predicate:(t,e,o,r)=>yu&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).some(oe),keywords:["text","clipboard","copy"]});h();var pm=U({name:"gridMode",icon:Uv,keywords:["snap"],label:"labels.toggleGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.gridSize},perform(t,e){return{appState:{...e,gridSize:this.checked(e)?null:Pr,objectsSnapModeEnabled:!1},storeAction:D.NONE}},checked:t=>t.gridSize!==null,predicate:(t,e,o)=>typeof o.gridModeEnabled>"u",keyTest:t=>t[S.CTRL_OR_CMD]&&t.code===ge.QUOTE});h();var Ba=U({name:"zenMode",label:"buttons.zenMode",icon:Bv,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.zenModeEnabled},perform(t,e){return{appState:{...e,zenModeEnabled:!this.checked(e)},storeAction:D.NONE}},checked:t=>t.zenModeEnabled,predicate:(t,e,o)=>typeof o.zenModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.Z});h();var xh=U({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:zv,viewMode:!1,trackEvent:{category:"canvas",predicate:t=>!t.objectsSnapModeEnabled},perform(t,e){return{appState:{...e,objectsSnapModeEnabled:!this.checked(e),gridSize:null},storeAction:D.NONE}},checked:t=>t.objectsSnapModeEnabled,predicate:(t,e,o)=>typeof o.objectsSnapModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.S});h();var _n=U({name:"stats",label:"stats.title",icon:Rv,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},perform(t,e){return{appState:{...e,showStats:!this.checked(e)},storeAction:D.NONE}},checked:t=>t.showStats,keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.SLASH});h();var vh=U({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>r.scene.getSelectedElements(e).some(i=>gr(i)),perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=r.scene.getNonDeletedElementsMap();return n.forEach(a=>{let l=ct(a,i);if(l){let{width:s,height:d}=Or(l.originalText,Qt(l),l.lineHeight),m=fb(a.id);ub(a.id);let{x:c,y:u}=Tc(a,l,i);re(l,{containerId:null,width:s,height:d,text:l.originalText,x:c,y:u}),re(a,{boundElements:a.boundElements?.filter(f=>f.id!==l.id),height:m||a.height})}}),{elements:t,appState:e,storeAction:D.CAPTURE}}}),yh=U({name:"bindText",label:"labels.bindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);if(n.length===2){let i=oe(n[0])||oe(n[1]),a;if(Dr(n[0])?a=n[0]:Dr(n[1])&&(a=n[1]),i&&a&&ct(a,r.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i,a;oe(n[0])&&Dr(n[1])?(i=n[0],a=n[1]):(i=n[1],a=n[0]),re(i,{containerId:a.id,verticalAlign:So.MIDDLE,textAlign:fl.CENTER,autoResize:!0}),re(a,{boundElements:(a.boundElements||[]).concat({type:"text",id:i.id})});let l=a.height;return Ut(i,a,r.scene.getNonDeletedElementsMap()),_l(a.id,l),{elements:SS(t,a,i),appState:{...e,selectedElementIds:{[a.id]:!0}},storeAction:D.CAPTURE}}}),SS=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===o.id);r.splice(n,1);let i=r.findIndex(a=>a.id===e.id);return r.splice(i+1,0,o),go(r,fe([e,o])),r},TS=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===e.id);r.splice(n,1);let i=r.findIndex(a=>a.id===o.id);return r.splice(i,0,e),go(r,fe([e,o])),r},IE=U({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=n.every(a=>oe(a));return n.length>0&&i},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=t.slice(),a={};for(let l of n)if(oe(l)){let s=gn({type:"rectangle",backgroundColor:e.currentItemBackgroundColor,boundElements:[...l.boundElements||[],{id:l.id,type:"text"}],angle:l.angle,fillStyle:e.currentItemFillStyle,strokeColor:e.currentItemStrokeColor,roughness:e.currentItemRoughness,strokeWidth:e.currentItemStrokeWidth,strokeStyle:e.currentItemStrokeStyle,roundness:e.currentItemRoundness==="round"?{type:Ui("rectangle")?To.ADAPTIVE_RADIUS:To.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:l.x-Kp,y:l.y-Kp,width:Yi(l.width,"rectangle"),height:Yi(l.height,"rectangle"),groupIds:l.groupIds,frameId:l.frameId});if(l.boundElements?.length){let d=l.boundElements.filter(c=>c.type==="arrow").map(c=>c.id);i.filter(c=>d.includes(c.id)).forEach(c=>{let u=c.startBinding,f=c.endBinding;u?.elementId===l.id&&(u={...u,elementId:s.id}),f?.elementId===l.id&&(f={...f,elementId:s.id}),(u||f)&&re(c,{startBinding:u,endBinding:f},!1)})}re(l,{containerId:s.id,verticalAlign:So.MIDDLE,boundElements:null,textAlign:fl.CENTER,autoResize:!0},!1),Ut(l,s,r.scene.getNonDeletedElementsMap()),i=TS([...i,s],s,l),a[s.id]=!0}return{elements:i,appState:{...e,selectedElementIds:a},storeAction:D.CAPTURE}}});h();h();var ir=v(H(),1);var qr=v(T(),1),Ch=320,AE=85,Eh=5,kS=42,IS=500,wh=!1,um=new Map,ME=({element:t,elementsMap:e,setAppState:o,onLinkOpen:r,setToast:n,updateEmbedValidationStatus:i})=>{let a=$a(),l=Ln(),s=t.link||"",[d,m]=(0,ir.useState)(s),c=(0,ir.useRef)(null),u=a.showHyperlinkPopup==="editor",f=(0,ir.useCallback)(()=>{if(!c.current)return;let C=$r(c.current.value)||null;if(!t.link&&C&&ve("hyperlink","create"),Ht(t)){if(a.activeEmbeddable?.element===t&&o({activeEmbeddable:null}),!C){re(t,{link:null}),i(t,!1);return}if(!ji(C,l.validateEmbeddable))C&&n({message:g("toast.unableToEmbed"),closable:!0}),t.link&&um.set(t.id,t.link),re(t,{link:C}),i(t,!1);else{let{width:w,height:A}=t,z=ti(C);z?.error instanceof URIError&&n({message:g("toast.unrecognizedLinkFormat"),closable:!0});let I=z?z.intrinsicSize.w/z.intrinsicSize.h:1,M=um.get(t.id)!==t.link;re(t,{...M?{width:z?.type==="video"?w>A?w:A*I:w,height:z?.type==="video"&&w>A?w/I:A}:{},link:C}),i(t,!0),um.has(t.id)&&um.delete(t.id)}}else re(t,{link:C})},[t,n,l.validateEmbeddable,a.activeEmbeddable,o,i]);(0,ir.useLayoutEffect)(()=>()=>{f()},[f]),(0,ir.useEffect)(()=>{let C=null,w=A=>{if(u)return;C&&clearTimeout(C),MS(t,e,a,[A.clientX,A.clientY])&&(C=window.setTimeout(()=>{o({showHyperlinkPopup:!1})},IS))};return window.addEventListener("pointermove",w,!1),()=>{window.removeEventListener("pointermove",w,!1),C&&clearTimeout(C)}},[a,t,u,o,e]);let b=(0,ir.useCallback)(()=>{ve("hyperlink","delete"),re(t,{link:null}),u&&(c.current.value=""),o({showHyperlinkPopup:!1})},[o,t,u]),x=()=>{ve("hyperlink","edit","popup-ui"),o({showHyperlinkPopup:"editor"})},{x:y,y:k}=_E(t,a,e);return a.contextMenu||a.draggingElement||a.resizingElement||a.isRotating||a.openMenu||a.viewModeEnabled?null:(0,qr.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${k}px`,left:`${y}px`,width:Ch,padding:Eh},onClick:()=>{!t.link&&!u&&o({showHyperlinkPopup:"editor"})},children:[u?(0,qr.jsx)("input",{className:B("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:c,value:d,onChange:C=>m(C.target.value),autoFocus:!0,onKeyDown:C=>{C.stopPropagation(),C[S.CTRL_OR_CMD]&&C.key===S.K&&C.preventDefault(),(C.key===S.ENTER||C.key===S.ESCAPE)&&(f(),o({showHyperlinkPopup:"info"}))}}):t.link?(0,qr.jsx)("a",{href:$r(t.link||""),className:"excalidraw-hyperlinkContainer-link",target:_c(t.link)?"_self":"_blank",onClick:C=>{if(t.link&&r){let w=fc("excalidraw-link",C.nativeEvent);r({...t,link:$r(t.link)},w),w.defaultPrevented&&C.preventDefault()}},rel:"noopener noreferrer",children:t.link}):(0,qr.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:g("labels.link.empty")}),(0,qr.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!u&&(0,qr.jsx)(se,{type:"button",title:g("buttons.edit"),"aria-label":g("buttons.edit"),label:g("buttons.edit"),onClick:x,className:"excalidraw-hyperlinkContainer--edit",icon:ca}),s&&!Ht(t)&&(0,qr.jsx)(se,{type:"button",title:g("buttons.remove"),"aria-label":g("buttons.remove"),label:g("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:or})]})]})},_E=(t,e,o)=>{let[r,n]=Wt(t,o),{x:i,y:a}=eo({sceneX:r+t.width/2,sceneY:n},e),l=i-e.offsetLeft-Ch/2,s=a-e.offsetTop-AE;return{x:l,y:s}},Sh=(t,e)=>{let o=ye(t,e);return o[0]?.link?Ht(o[0])?"labels.link.editEmbed":"labels.link.edit":Ht(o[0])?"labels.link.createEmbed":"labels.link.create"},ps=null,LE=(t,e,o)=>{ps&&clearTimeout(ps),ps=window.setTimeout(()=>AS(t,e,o),I1)},AS=(t,e,o)=>{if(!t.link)return;let r=Da();r.classList.add("excalidraw-tooltip--visible"),r.style.maxWidth="20rem",r.textContent=t.link;let[n,i,a,l]=Wt(t,o),[s,d,m,c]=d0([n,i,a,l],t.angle,e),u=eo({sceneX:s,sceneY:d},e);rh(r,{left:u.x,top:u.y,width:m,height:c},"top"),ve("hyperlink","tooltip","link-icon"),wh=!0},PE=()=>{ps&&clearTimeout(ps),wh&&(wh=!1,Da().classList.remove("excalidraw-tooltip--visible"))},MS=(t,e,o,[r,n])=>{let{x:i,y:a}=Ye({clientX:r,clientY:n},o),l=15/o.zoom.value;if(l0(i,a,t,e))return!1;let[s,d,m]=Wt(t,e);if(i>=s&&i<=m&&a>=d-AE&&a<=d)return!1;let{x:c,y:u}=_E(t,o,e);return!(r>=c-l&&r<=c+Ch+Eh*2+l&&n>=u-l&&n<=u+l+Eh*2+kS)};var RE=v(T(),1),us=U({name:"hyperlink",label:(t,e)=>Sh(t,e),icon:Kl,perform:(t,e)=>e.showHyperlinkPopup==="editor"?!1:{elements:t,appState:{...e,showHyperlinkPopup:"editor",openMenu:null},storeAction:D.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.K,predicate:(t,e)=>ye(t,e).length===1,PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=ye(t,e);return(0,RE.jsx)(se,{type:"button",icon:Kl,"aria-label":g(Sh(t,e)),title:`${Ht(t[0])?g("labels.link.labelEmbed"):g("labels.link.label")} - ${F("CtrlOrCmd+K")}`,onClick:()=>o(null),selected:r.length===1&&!!r[0].link})}});h();var Th=t=>t.every(e=>!e.locked),kh=U({name:"toggleElementLock",label:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1});return r.length===1&&!Ee(r[0])?r[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":Th(r)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(t,e)=>{let o=ye(e,t);return Th(o)?sa:ii},trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>0&&!n.some(i=>i.locked&&i.frameId)},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});if(!n.length)return!1;let i=Th(n),a=fe(n);return{elements:t.map(l=>a.has(l.id)?pe(l,{locked:i}):l),appState:{...e,selectedLinearElement:i?null:e.selectedLinearElement},storeAction:D.CAPTURE}},keyTest:(t,e,o,r)=>t.key.toLocaleLowerCase()===S.L&&t[S.CTRL_OR_CMD]&&t.shiftKey&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1}).length>0}),DE=U({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:ii,predicate:(t,e)=>ye(t,e).length===0&&t.some(r=>r.locked),perform:(t,e)=>{let o=t.filter(r=>r.locked);return{elements:t.map(r=>r.locked?pe(r,{locked:!1}):r),appState:{...e,selectedElementIds:Object.fromEntries(o.map(r=>[r.id,!0]))},storeAction:D.CAPTURE}},label:"labels.elementLock.unlockAll"});h();h();var Uo=v(H(),1);h();var Nm=v(H(),1);h();var fm=v(H(),1),NE=()=>{let[t,e]=(0,fm.useState)(null),o=(0,fm.useCallback)(r=>e(r),[]);return[t,o]};h();var OE=v(H(),1);var FE=v(T(),1),Bt=OE.default.forwardRef(({children:t,padding:e,className:o,style:r},n)=>(0,FE.jsx)("div",{className:B("Island",o),style:{"--padding":e,...r},ref:n,children:t}));h();var zE=v(vr(),1);var BE=v(H(),1),fs=v(T(),1),$E=t=>{let{closeOnClickOutside:e=!0}=t,o=em({className:"excalidraw-modal-container"}),r=(0,BE.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!o)return null;let n=i=>{i.key===S.ESCAPE&&(i.nativeEvent.stopImmediatePropagation(),i.stopPropagation(),t.onCloseRequest())};return(0,zE.createPortal)((0,fs.jsxs)("div",{className:B("Modal",t.className,{"animations-disabled":r.current}),role:"dialog","aria-modal":"true",onKeyDown:n,"aria-labelledby":t.labelledBy,"data-prevent-outside-click":!0,children:[(0,fs.jsx)("div",{className:"Modal__background",onClick:e?t.onCloseRequest:void 0}),(0,fs.jsx)("div",{className:"Modal__content",style:{"--max-width":`${t.maxWidth}px`},tabIndex:0,children:t.children})]}),o)};h();var Eo=v(H(),1);h();var Ua=v(H(),1);h();var hm=v(H(),1);var Ih=Ue(new Map),HE=async t=>await Fl({elements:t,appState:{exportBackground:!1,viewBackgroundColor:_r.white},files:null,renderEmbeddables:!1}),UE=(t,e,o)=>{let[r,n]=(0,hm.useState)();return(0,hm.useEffect)(()=>{if(e)if(t){let i=o.get(t);i?n(i):(async()=>{let a=await HE(e);a.querySelector(".style-fonts")?.remove(),a&&(o.set(t,a),n(a))})()}else(async()=>{let i=await HE(e);n(i)})()},[t,e,o,n]),r},gm=()=>{let[t]=Se(Ih,Ne);return{clearLibraryCache:()=>t.clear(),deleteItemsFromLibraryCache:r=>{r.forEach(n=>t.delete(n))},svgCache:t}};h();var bm=class{jobs=[];running=!1;tick(){if(this.running)return;let e=this.jobs.shift();e?(this.running=!0,e.promise.resolve(yl(e.jobFactory,...e.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(e,...o){let r=uc();return this.jobs.push({jobFactory:e,promise:r,args:o}),this.tick(),r}};var GE=new Po,wi=Ue({status:"loaded",isInitialized:!1,libraryItems:[]}),hs=t=>fr(t),_S=(t,e)=>!t.find(o=>o.elements.length!==e.elements.length?!1:o.elements.every((r,n)=>r.id===e.elements[n].id&&r.versionNonce===e.elements[n].versionNonce)),VE=(t,e)=>{let o=[];for(let r of e)_S(t,r)&&o.push(r);return[...o,...t]},KE=(t,e)=>{let o=fe(e),r={deletedItems:new Map,addedItems:new Map};for(let i of t)o.has(i.id)||r.deletedItems.set(i.id,i);let n=fe(t);for(let i of e)n.has(i.id)||r.addedItems.set(i.id,i);return r},Ah=class{currLibraryItems=[];prevLibraryItems=hs(this.currLibraryItems);app;constructor(e){this.app=e}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Gt.set(wi,e=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:e.isInitialized}));else{Gt.set(wi,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let e=this.prevLibraryItems;this.prevLibraryItems=hs(this.currLibraryItems);let o=hs(this.currLibraryItems);this.app.props.onLibraryChange?.(o),GE.trigger(KE(e,o),o)}catch(e){console.error(e)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Gt.set(Ih,new Map)};resetLibrary=()=>this.setLibrary([]);getLatestLibrary=()=>new Promise(async e=>{try{let o=await(this.getLastUpdateTask()||this.currLibraryItems);this.updateQueue.length>0?e(this.getLatestLibrary()):e(hs(o))}catch{return e(this.currLibraryItems)}});updateLibrary=async({libraryItems:e,prompt:o=!1,merge:r=!1,openLibraryMenu:n=!1,defaultStatus:i="unpublished"})=>(n&&this.app.setState({openSidebar:{name:Jo.name,tab:cc}}),this.setLibrary(()=>new Promise(async(a,l)=>{try{let s=await(typeof e=="function"&&!(e instanceof Blob)?e(this.currLibraryItems):e),d;s instanceof Blob?d=await fu(s,i):d=Dl(s,i),!o||window.confirm(g("alerts.confirmAddLibrary",{numShapes:d.length}))?(o&&this.app.focusContainer(),a(r?VE(this.currLibraryItems,d):d)):l(new Wi)}catch(s){l(s)}})));setLibrary=e=>{let o=new Promise(async(r,n)=>{try{await this.getLastUpdateTask(),typeof e=="function"&&(e=e(this.currLibraryItems)),this.currLibraryItems=hs(await e),r(this.currLibraryItems)}catch(i){n(i)}}).catch(r=>{if(r.name==="AbortError")return console.warn("Library update aborted by user"),this.currLibraryItems;throw r}).finally(()=>{this.updateQueue=this.updateQueue.filter(r=>r!==o),this.notifyListeners()});return this.updateQueue.push(o),this.notifyListeners(),o}},YE=Ah,ym=t=>{let o=Math.ceil(Math.sqrt(t.length)),r=[],n=f=>t.slice(f*o,f*o+o).reduce((x,y)=>{let{height:k}=Mo(y.elements);return Math.max(x,k)},0),i=f=>{let b=0,x=0,y=0;for(let k of t){if(b%o===0&&(x=0),x===f){let{width:C}=Mo(k.elements);y=Math.max(y,C)}b++,x++}return y},a=0,l=0,s=0,d=0,m=0,c=0,u=0;for(let f of t){m&&m%o===0&&(l+=s+50,a=0,c=0,u++),c===0&&(s=n(u)),d=i(c);let{minX:b,minY:x,width:y,height:k}=Mo(f.elements),C=(d-y)/2,w=(s-k)/2;r.push(...f.elements.map(A=>({...A,x:A.x+a+C-b,y:A.y+l+w-x}))),a+=d+50,m++,c++}return r},Mh=()=>{let t=new URLSearchParams(window.location.hash.slice(1)).get(ic.addLibrary)||new URLSearchParams(window.location.search).get(nc.addLibrary),e=t?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return t?{libraryUrl:t,idToken:e}:null},Ha=class t{static queue=new bm;static async getLibraryItems(e,o,r=!0){let n=()=>new Promise(async(i,a)=>{try{let l=await e.load({source:o});i(Dl(l?.libraryItems||[],"published"))}catch(l){a(l)}});return r?t.queue.push(n):n()}static run=async(e,o)=>{let r=new t(e);return t.queue.push(()=>o(r))};adapter;constructor(e){this.adapter=e}getLibraryItems(e){return t.getLibraryItems(this.adapter,e,!1)}},gs=0,xm=0,vm=t=>Lu(t.map(e=>`${e.id}:${_u(e.elements)}`).sort().join()),WE=async(t,e)=>{try{return xm++,await Ha.run(t,async o=>{let r=fe(await o.getLibraryItems("save"));for(let[l]of e.deletedItems)r.delete(l);let n=[];for(let[l,s]of e.addedItems)r.has(l)?r.set(l,s):n.push(s);let i=n.concat(Array.from(r.values())),a=vm(i);return a!==gs&&await t.save({libraryItems:i}),gs=a,i})}finally{xm--}},LS=t=>{let{excalidrawAPI:e}=t,o=(0,Ua.useRef)(t);o.current=t;let r=(0,Ua.useRef)(!1);(0,Ua.useEffect)(()=>{if(!e)return;r.current=!1;let n=async({libraryUrl:l,idToken:s})=>{let d=new Promise(async(c,u)=>{try{let b=await(await fetch(decodeURIComponent(l))).blob();c(b)}catch(f){u(f)}}),m=s!==e.id;await(m&&document.hidden?new Promise(c=>{window.addEventListener("focus",()=>c(),{once:!0})}):null);try{await e.updateLibrary({libraryItems:d,prompt:m,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(c){throw c}finally{if(window.location.hash.includes(ic.addLibrary)){let c=new URLSearchParams(window.location.hash.slice(1));c.delete(ic.addLibrary),window.history.replaceState({},dl,`#${c.toString()}`)}else if(window.location.search.includes(nc.addLibrary)){let c=new URLSearchParams(window.location.search);c.delete(nc.addLibrary),window.history.replaceState({},dl,`?${c.toString()}`)}}},i=l=>{l.preventDefault();let s=Mh();s&&(l.stopImmediatePropagation(),window.history.replaceState({},"",l.oldURL),n(s))},a=Mh();if(a&&n(a),"getInitialLibraryItems"in o.current&&o.current.getInitialLibraryItems&&(console.warn("useHandleLibrar `opts.getInitialLibraryItems` is deprecated. Use `opts.adapter` instead."),Promise.resolve(o.current.getInitialLibraryItems()).then(l=>{e.updateLibrary({libraryItems:l,merge:!0})}).catch(l=>{console.error(`UseHandeLibrary getInitialLibraryItems failed: ${l?.message}`)})),"adapter"in o.current&&o.current.adapter){let l=o.current.adapter,s=o.current.migrationAdapter,d=uc();s?d.resolve(yl(s.load).then(async m=>{let c=null;try{if(!m)return Ha.getLibraryItems(l,"load");c=Dl(m.libraryItems||[],"published");let u=await WE(l,KE([],c));try{await s.clear()}catch(f){console.error(`couldn't delete legacy library data: ${f.message}`)}return u}catch(u){return console.error(`couldn't migrate legacy library data: ${u.message}`),c}}).catch(m=>(console.error(`error during library migration: ${m.message}`),Ha.getLibraryItems(l,"load")))):d.resolve(yl(Ha.getLibraryItems,l,"load")),e.updateLibrary({libraryItems:d.then(m=>{let c=m||[];return gs=vm(c),c}),merge:!0}).finally(()=>{r.current=!0})}return window.addEventListener("hashchange",i),()=>{window.removeEventListener("hashchange",i)}},[e]),(0,Ua.useEffect)(()=>{let n=GE.on(async(a,l)=>{let s=r.current,d="adapter"in o.current&&o.current.adapter||null;try{d&&gs!==vm(l)&&await WE(d,a)}catch(m){console.error(`couldn't persist library update: ${m.message}`,a),s&&o.current.excalidrawAPI&&o.current.excalidrawAPI.updateScene({appState:{errorMessage:g("errors.saveLibraryError")}})}}),i=a=>{xm&&K1(a)};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i),n(),gs=0,xm=0}},[])};h();var Zt=v(H(),1);h();var _h=v(H(),1);var Lh=v(T(),1),PS=(0,_h.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Lh.jsx)("div",{className:B("Stack Stack_horizontal",n),style:{"--gap":e,alignItems:o,justifyContent:r,...i},ref:a,children:t})),RS=(0,_h.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Lh.jsx)("div",{className:B("Stack Stack_vertical",n),style:{"--gap":e,justifyItems:o,justifyContent:r,...i},ref:a,children:t})),Pt={Row:PS,Col:RS};h();h();var XE=v(T(),1),DS=({theme:t,id:e,libraryReturnUrl:o})=>{let r=o||window.location.origin+window.location.pathname;return(0,XE.jsx)("a",{className:"library-menu-browse-button",href:`${E.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${r}&useHash=true&token=${e}&theme=${t}&version=${lc.excalidrawLibrary}`,target:"_excalidraw_libraries",children:g("labels.libraries")})},ZE=DS;var wm=v(T(),1),Em=({libraryReturnUrl:t,theme:e,id:o,style:r,children:n,className:i})=>(0,wm.jsxs)("div",{className:B("library-menu-control-buttons",i),style:r,children:[(0,wm.jsx)(ZE,{id:o,libraryReturnUrl:t,theme:e}),n]});h();var Ya=v(H(),1);h();var bs=v(H(),1);var NS=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,OS=/{{([\w-]+)}}/,FS=/<([\w-]+)>/,zS=/<\/([\w-]+)>/,BS=(t,e)=>{let o=[{name:"",children:[]}];return t.split(NS).filter(Boolean).forEach(r=>{let n=r.match(FS),i=r.match(zS),a=r.match(OS);if(n!==null){let l=n[1];e.hasOwnProperty(l)?o.push({name:l,children:[]}):console.warn(`Trans: missed to pass in prop ${l} for interpolating ${t}`)}else if(i!==null)if(i[1]===o[o.length-1].name){let s=o.pop(),d=bs.default.createElement(bs.default.Fragment,{},...s.children),m=e[s.name];typeof m=="function"&&o[o.length-1].children.push(m(d))}else console.warn(`Trans: unexpected end tag ${r} for interpolating ${t}`);else if(a!==null){let l=a[1];e.hasOwnProperty(l)?o[o.length-1].children.push(e[l]):console.warn(`Trans: key ${l} not in props for interpolating ${t}`)}else o[o.length-1].children.push(r)}),o.length!==1&&console.warn(`Trans: stack not empty for interpolating ${t}`),o[0].children},$S=({i18nKey:t,children:e,...o})=>{let{t:r}=xt();return bs.default.createElement(bs.default.Fragment,{},...BS(r(t),o))},io=$S;h();h();var Ci=v(T(),1),HS=({label:t,onClick:e,className:o,children:r,actionType:n,type:i="button",isLoading:a,...l})=>{let s=n?`Dialog__action-button--${n}`:"";return(0,Ci.jsxs)("button",{className:B("Dialog__action-button",s,o),type:i,"aria-label":t,onClick:e,...l,children:[r&&(0,Ci.jsx)("div",{style:a?{visibility:"hidden"}:{},children:r}),(0,Ci.jsx)("div",{style:a?{visibility:"hidden"}:{},children:t}),a&&(0,Ci.jsx)("div",{style:{position:"absolute",inset:0},children:(0,Ci.jsx)(Ot,{})})]})},Wa=HS;var Ga=v(T(),1),US=t=>{let{onConfirm:e,onCancel:o,children:r,confirmText:n=g("buttons.confirm"),cancelText:i=g("buttons.cancel"),className:a="",...l}=t,s=Pe(),d=Gr(Va,Ne),{container:m}=_t();return(0,Ga.jsxs)(tt,{onCloseRequest:o,size:"small",...l,className:`confirm-dialog ${a}`,children:[r,(0,Ga.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Ga.jsx)(Wa,{label:i,onClick:()=>{s({openMenu:null}),d(!1),o(),m?.focus()}}),(0,Ga.jsx)(Wa,{label:n,onClick:()=>{s({openMenu:null}),d(!1),e(),m?.focus()},actionType:"danger"})]})]})},Cm=US;h();var yo=v(H(),1);h();var fo=class{static has(e){try{return!!window.localStorage.getItem(e)}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),!1}}static get(e){try{let o=window.localStorage.getItem(e);return o?JSON.parse(o):null}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),null}}static set=(e,o)=>{try{return window.localStorage.setItem(e,JSON.stringify(o)),!0}catch(r){return console.warn(`localStorage.setItem error: ${r.message}`),!1}};static delete=e=>{try{window.localStorage.removeItem(e)}catch(o){console.warn(`localStorage.removeItem error: ${o.message}`)}}};var ie=v(T(),1),WS=async t=>{let r=Math.round(8),n=Math.max(Math.round(128/64),2),i=W1(t,6),a=document.createElement("canvas");a.width=i[0].length*128+(i[0].length+1)*(r*2)-r*2,a.height=i.length*128+(i.length+1)*(r*2)-r*2;let l=a.getContext("2d");l.fillStyle=At.white,l.fillRect(0,0,a.width,a.height);for(let[s,d]of t.entries()){let m=await oi({elements:d.elements,files:null,maxWidthOrHeight:128}),{width:c,height:u}=m,f=Math.floor(s/6)*(128+r*2),b=s%6*(128+r*2);l.drawImage(m,b+(128-c)/2+r,f+(128-u)/2+r),l.lineWidth=n,l.strokeStyle=At.gray[4],l.strokeRect(b+r/2,f+r/2,128+r,128+r)}return await Nl(new File([await Hr(a)],"preview",{type:Dt.png}),{outputType:Dt.jpg,maxWidthOrHeight:5e3})},GS=({libItem:t,appState:e,index:o,onChange:r,onRemove:n})=>{let i=(0,yo.useRef)(null),a=(0,yo.useRef)(null);return(0,yo.useEffect)(()=>{let l=i.current;l&&(async()=>{let s=await Fl({elements:t.elements,appState:{...e,viewBackgroundColor:At.white,exportBackground:!0},files:null});l.innerHTML=s.outerHTML})()},[t.elements,e]),(0,ie.jsxs)("div",{className:"single-library-item",children:[t.status==="published"&&(0,ie.jsx)("span",{className:"single-library-item-status",children:g("labels.statusPublished")}),(0,ie.jsx)("div",{ref:i,className:"single-library-item__svg"}),(0,ie.jsx)(se,{"aria-label":g("buttons.remove"),type:"button",icon:No,className:"single-library-item--remove",onClick:n.bind(null,t.id),title:g("buttons.remove")}),(0,ie.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,ie.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,ie.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,ie.jsx)("span",{style:{fontWeight:500,color:At.gray[6]},children:g("publishDialog.itemName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",ref:a,style:{width:"80%",padding:"0.2rem"},defaultValue:t.name,placeholder:"Item name",onChange:l=>{r(l.target.value,o)}})]}),(0,ie.jsx)("span",{className:"error",children:t.error})]})]})},VS=({onClose:t,libraryItems:e,appState:o,onSuccess:r,onError:n,updateItemsInStorage:i,onRemove:a})=>{let[l,s]=(0,yo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[d,m]=(0,yo.useState)(!1);(0,yo.useEffect)(()=>{let w=fo.get(ko.PUBLISH_LIBRARY);w&&s(w)},[]);let[c,u]=(0,yo.useState)(e.slice());(0,yo.useEffect)(()=>{u(e.slice())},[e]);let f=w=>{s({...l,[w.target.name]:w.target.value})},b=async w=>{w.preventDefault(),m(!0);let A=[],z=!1;if(c.forEach(W=>{let j="";W.name||(j=g("publishDialog.errors.required"),z=!0),A.push({...W,error:j})}),z){u(A),m(!1);return}let I=await WS(c),M={type:E1.excalidrawLibrary,version:lc.excalidrawLibrary,source:w1,libraryItems:c},_=JSON.stringify(M,null,2),$=new Blob([_],{type:"application/json"}),O=new FormData;O.append("excalidrawLib",$),O.append("previewImage",I),O.append("previewImageType",I.type),O.append("title",l.name),O.append("authorName",l.authorName),O.append("githubHandle",l.githubHandle),O.append("name",l.name),O.append("description",l.description),O.append("twitterHandle",l.twitterHandle),O.append("website",l.website),fetch(`${E.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:O}).then(W=>W.ok?W.json().then(({url:j})=>{fo.delete(ko.PUBLISH_LIBRARY),r({url:j,authorName:l.authorName,items:c})}):W.json().catch(()=>{throw new Error(W.statusText||"something went wrong")}).then(j=>{throw new Error(j.message||W.statusText||"something went wrong")}),W=>{console.error(W),n(W),m(!1)}).catch(W=>{console.error(W),n(W),m(!1)})},x=()=>{let w=[];return c.forEach((A,z)=>{w.push((0,ie.jsx)("div",{className:"single-library-item-wrapper",children:(0,ie.jsx)(GS,{libItem:A,appState:o,index:z,onChange:(I,M)=>{let _=c.slice();_[M].name=I,u(_)},onRemove:a})},z))}),(0,ie.jsx)("div",{className:"selected-library-items",children:w})},y=(0,yo.useCallback)(()=>{i(c),fo.set(ko.PUBLISH_LIBRARY,l),t()},[c,t,i,l]),k=!!e.length,C=e.some(w=>w.status==="published");return(0,ie.jsx)(tt,{onCloseRequest:y,title:g("publishDialog.title"),className:"publish-library",children:k?(0,ie.jsxs)("form",{onSubmit:b,children:[(0,ie.jsx)("div",{className:"publish-library-note",children:(0,ie.jsx)(io,{i18nKey:"publishDialog.noteDescription",link:w=>(0,ie.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(io,{i18nKey:"publishDialog.noteGuidelines",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("div",{className:"publish-library-note",children:g("publishDialog.noteItems")}),C&&(0,ie.jsx)("span",{className:"publish-library-note publish-library-warning",children:g("publishDialog.republishWarning")}),x(),(0,ie.jsxs)("div",{className:"publish-library__fields",children:[(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"name",required:!0,value:l.name,onChange:f,placeholder:g("publishDialog.placeholder.libraryName")})]}),(0,ie.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryDesc")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("textarea",{name:"description",rows:4,required:!0,value:l.description,onChange:f,placeholder:g("publishDialog.placeholder.libraryDesc")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.authorName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"authorName",required:!0,value:l.authorName,onChange:f,placeholder:g("publishDialog.placeholder.authorName")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.githubUsername")}),(0,ie.jsx)("input",{type:"text",name:"githubHandle",value:l.githubHandle,onChange:f,placeholder:g("publishDialog.placeholder.githubHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.twitterUsername")}),(0,ie.jsx)("input",{type:"text",name:"twitterHandle",value:l.twitterHandle,onChange:f,placeholder:g("publishDialog.placeholder.twitterHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.website")}),(0,ie.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:g("publishDialog.errors.website"),value:l.website,onChange:f,placeholder:g("publishDialog.placeholder.website")})]}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(io,{i18nKey:"publishDialog.noteLicense",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:w})})})]}),(0,ie.jsxs)("div",{className:"publish-library__buttons",children:[(0,ie.jsx)(Wa,{label:g("buttons.cancel"),onClick:y,"data-testid":"cancel-clear-canvas-button"}),(0,ie.jsx)(Wa,{type:"submit",label:g("buttons.submit"),actionType:"primary",isLoading:d})]})]}):(0,ie.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:g("publishDialog.atleastOneLibItem")})})},jE=VS;h();h();var QE=v(T(),1),qE=({className:t="",children:e,onToggle:o,title:r,...n})=>{let i=Ae(),a=B(`dropdown-menu-button ${t}`,"zen-mode-transition",{"dropdown-menu-button--mobile":i.editor.isMobile}).trim();return(0,QE.jsx)("button",{"data-prevent-outside-click":!0,className:a,onClick:o,type:"button","data-testid":"dropdown-menu-button",title:r,...n,children:e})},JE=qE;qE.displayName="DropdownMenuTrigger";h();h();var Sm=v(H(),1);var Ph=Sm.default.createContext({}),Tm=(t="",e=!1)=>`dropdown-menu-item dropdown-menu-item-base ${t} ${e?"dropdown-menu-item--selected":""}`.trim(),km=(t,e)=>{let o=(0,Sm.useContext)(Ph);return dn(t,r=>{let n=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});e?.(n),n.defaultPrevented||o.onSelect?.(n)})};h();var Pn=v(T(),1),KS=({icon:t,shortcut:e,children:o})=>{let r=Ae();return(0,Pn.jsxs)(Pn.Fragment,{children:[(0,Pn.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,Pn.jsx)("div",{className:"dropdown-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,Pn.jsx)("div",{className:"dropdown-menu-item__shortcut",children:e})]})},Im=KS;var Am=v(T(),1),Rh=({icon:t,onSelect:e,children:o,shortcut:r,className:n,selected:i,...a})=>{let l=km(a.onClick,e);return(0,Am.jsx)("button",{...a,onClick:l,type:"button",className:Tm(n,i),title:a.title??a["aria-label"],children:(0,Am.jsx)(Im,{icon:t,shortcut:r,children:o})})};Rh.displayName="DropdownMenuItem";var ew=({children:t})=>(0,Am.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:t});ew.displayName="DropdownMenuItemBadge";Rh.Badge=ew;var $o=Rh;h();var rw=v(T(),1),tw=()=>(0,rw.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),ow=tw;tw.displayName="DropdownMenuSeparator";h();var Mm=v(T(),1),nw=({children:t,className:e="",style:o,title:r})=>(0,Mm.jsxs)("div",{className:`dropdown-menu-group ${e}`,style:o,children:[r&&(0,Mm.jsx)("p",{className:"dropdown-menu-group-title",children:r}),t]}),iw=nw;nw.displayName="DropdownMenuGroup";h();var _m=v(H(),1);var xs=v(T(),1),aw=({children:t,onClickOutside:e,className:o="",onSelect:r,style:n})=>{let i=Ae(),a=(0,_m.useRef)(null),l=Ra({onClickOutside:e});Pa(a,()=>{l.onClickOutside?.()}),(0,_m.useEffect)(()=>{let d=c=>{c.key===S.ESCAPE&&(c.stopImmediatePropagation(),l.onClickOutside?.())},m={capture:!0};return document.addEventListener("keydown",d,m),()=>{document.removeEventListener("keydown",d,m)}},[l]);let s=B(`dropdown-menu ${o}`,{"dropdown-menu--mobile":i.editor.isMobile}).trim();return(0,xs.jsx)(Ph.Provider,{value:{onSelect:r},children:(0,xs.jsx)("div",{ref:a,className:s,style:n,"data-testid":"dropdown-menu",children:i.editor.isMobile?(0,xs.jsx)(Pt.Col,{className:"dropdown-menu-container",children:t}):(0,xs.jsx)(Bt,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:t})})})};aw.displayName="DropdownMenuContent";var lw=aw;h();var Dh=v(T(),1),sw=({icon:t,shortcut:e,href:o,children:r,onSelect:n,className:i="",selected:a,...l})=>{let s=km(l.onClick,n);return(0,Dh.jsx)("a",{...l,href:o,target:"_blank",rel:"noreferrer",className:Tm(i,a),title:l.title??l["aria-label"],onClick:s,children:(0,Dh.jsx)(Im,{icon:t,shortcut:e,children:r})})},Ka=sw;sw.displayName="DropdownMenuItemLink";h();var dw=v(T(),1),YS=({children:t,className:e="",selected:o,...r})=>(0,dw.jsx)("div",{...r,className:`dropdown-menu-item-base dropdown-menu-item-custom ${e} ${o?"dropdown-menu-item--selected":""}`.trim(),children:t}),cw=YS;h();var vs=v(H(),1),mw=t=>{let e=vs.default.Children.toArray(t).find(o=>vs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuTrigger");return e||null},pw=t=>{let e=vs.default.Children.toArray(t).find(o=>vs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuContent");return e||null};var Lm=v(T(),1),Jr=({children:t,open:e})=>{let o=mw(t),r=pw(t);return(0,Lm.jsxs)(Lm.Fragment,{children:[o,e&&r]})};Jr.Trigger=JE;Jr.Content=lw;Jr.Item=$o;Jr.ItemLink=Ka;Jr.ItemCustom=cw;Jr.Group=iw;Jr.Separator=ow;var De=Jr;Jr.displayName="DropdownMenu";var yt=v(T(),1),ZS=(t,e)=>t.filter(o=>e.includes(o.id)),XS=({setAppState:t,selectedItems:e,library:o,onRemoveFromLibrary:r,resetLibrary:n,onSelectItems:i,appState:a,className:l})=>{let[s]=Se(wi,Ne),[d,m]=Se(Va,Ne),c=()=>{let O=e.length?g("alerts.removeItemsFromsLibrary",{count:e.length}):g("alerts.resetLibrary"),W=e.length?g("confirmDialog.removeItemsFromLib"):g("confirmDialog.resetLibrary");return(0,yt.jsx)(Cm,{onConfirm:()=>{e.length?r():n(),f(!1)},onCancel:()=>{f(!1)},title:W,children:(0,yt.jsx)("p",{children:O})})},[u,f]=(0,Ya.useState)(!1),b=!!e.length,x=b?s.libraryItems.filter(O=>e.includes(O.id)):s.libraryItems,y=b?g("buttons.remove"):g("buttons.resetLibrary"),[k,C]=(0,Ya.useState)(!1),[w,A]=(0,Ya.useState)(null),z=(0,Ya.useCallback)(()=>(0,yt.jsxs)(tt,{onCloseRequest:()=>A(null),title:g("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,yt.jsx)("p",{children:(0,yt.jsx)(io,{i18nKey:"publishSuccessDialog.content",authorName:w.authorName,link:O=>(0,yt.jsx)("a",{href:w?.url,target:"_blank",rel:"noopener noreferrer",children:O})})}),(0,yt.jsx)(se,{type:"button",title:g("buttons.close"),"aria-label":g("buttons.close"),label:g("buttons.close"),onClick:()=>A(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[A,w]),I=(O,W)=>{C(!1),A({url:O.url,authorName:O.authorName});let j=W.slice();j.forEach(R=>{e.includes(R.id)&&(R.status="published")}),o.setLibrary(j)},M=async()=>{try{await o.updateLibrary({libraryItems:Oc({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(O){if(O?.name==="AbortError"){console.warn(O);return}t({errorMessage:g("errors.importLibraryError")})}},_=async()=>{let O=b?x:await o.getLatestLibrary();jb(O).catch(pc).catch(W=>{t({errorMessage:W.message})})},$=()=>(0,yt.jsxs)(De,{open:d,children:[(0,yt.jsx)(De.Trigger,{onToggle:()=>m(!d),children:sx}),(0,yt.jsxs)(De.Content,{onClickOutside:()=>m(!1),onSelect:()=>m(!1),className:"library-menu",children:[!b&&(0,yt.jsx)(De.Item,{onSelect:M,icon:ma,"data-testid":"lib-dropdown--load",children:g("buttons.load")}),!!x.length&&(0,yt.jsx)(De.Item,{onSelect:_,icon:ai,"data-testid":"lib-dropdown--export",children:g("buttons.export")}),!!x.length&&(0,yt.jsx)(De.Item,{onSelect:()=>f(!0),icon:or,children:y}),b&&(0,yt.jsx)(De.Item,{icon:vv,onSelect:()=>C(!0),"data-testid":"lib-dropdown--remove",children:g("buttons.publishLibrary")})]})]});return(0,yt.jsxs)("div",{className:B("library-menu-dropdown-container",l),children:[$(),e.length>0&&(0,yt.jsx)("div",{className:"library-actions-counter",children:e.length}),u&&c(),k&&(0,yt.jsx)(jE,{onClose:()=>C(!1),libraryItems:ZS(s.libraryItems,e),appState:a,onSuccess:O=>I(O,s.libraryItems),onError:O=>window.alert(O),updateItemsInStorage:()=>o.setLibrary(s.libraryItems),onRemove:O=>i(e.filter(W=>W!==O))}),w&&z()]})},Nh=({selectedItems:t,onSelectItems:e,className:o})=>{let{library:r}=mo(),{clearLibraryCache:n,deleteItemsFromLibraryCache:i}=gm(),a=Le(),l=Pe(),[s]=Se(wi,Ne),d=async c=>{let u=c.filter(f=>!t.includes(f.id));r.setLibrary(u).catch(()=>{l({errorMessage:g("alerts.errorRemovingFromLibrary")})}),i(t),e([])};return(0,yt.jsx)(XS,{appState:a,setAppState:l,selectedItems:t,onSelectItems:e,library:r,onRemoveFromLibrary:()=>d(s.libraryItems),resetLibrary:()=>{r.resetLibrary(),n()},className:o})};h();var Za=v(H(),1);h();var Rn=v(H(),1);var Si=v(T(),1),uw=(0,Rn.memo)(({id:t,elements:e,isPending:o,onClick:r,selected:n,onToggle:i,onDrag:a,svgCache:l})=>{let s=(0,Rn.useRef)(null),d=UE(t,e,l);(0,Rn.useEffect)(()=>{let b=s.current;if(b)return d&&(b.innerHTML=d.outerHTML),()=>{b.innerHTML=""}},[d]);let[m,c]=(0,Rn.useState)(!1),u=Ae().editor.isMobile,f=o&&(0,Si.jsx)("div",{className:"library-unit__adder",children:lx});return(0,Si.jsxs)("div",{className:B("library-unit",{"library-unit__active":e,"library-unit--hover":e&&m,"library-unit--selected":n,"library-unit--skeleton":!d}),onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,Si.jsx)("div",{className:B("library-unit__dragger",{"library-unit__pulse":!!o}),ref:s,draggable:!!e,onClick:e||o?b=>{t&&b.shiftKey?i(t,b):r(t)}:void 0,onDragStart:b=>{if(!t){b.preventDefault();return}c(!1),a(t,b)}}),f,t&&e&&(m||u||n)&&(0,Si.jsx)(bi,{checked:n,onChange:(b,x)=>i(t,x),className:"library-unit__checkbox"})]})}),fw=()=>(0,Si.jsx)("div",{className:"library-unit library-unit--skeleton"});h();var Pm=v(H(),1);function jS(){return[!1,(0,Pm.useCallback)(e=>e(),[])]}var hw=Pm.default.useTransition||jS;var Ti=v(T(),1),Oh=({children:t})=>(0,Ti.jsx)("div",{className:"library-menu-items-container__grid",children:t}),Rm=(0,Za.memo)(({items:t,onItemSelectToggle:e,onItemDrag:o,isItemSelected:r,onClick:n,svgCache:i,itemsRenderedPerBatch:a})=>{let[,l]=hw(),[s,d]=(0,Za.useState)(0);return(0,Za.useEffect)(()=>{s<t.length&&l(()=>{d(s+a)})},[s,t.length,l,a]),(0,Ti.jsx)(Ti.Fragment,{children:t.map((m,c)=>c<s?(0,Ti.jsx)(uw,{elements:m?.elements,isPending:!m?.id&&!!m?.elements,onClick:n,svgCache:i,id:m?.id,selected:r(m.id),onToggle:e,onDrag:o},m?.id??c):(0,Ti.jsx)(fw,{},c))})});h();var yw=v(H(),1);var Ew=v(zh(),1),fT=Ue(0),ww=t=>{let[e,o]=Se(fT);return(0,yw.useEffect)(()=>{let{current:r}=t;if(!r)return;let n=(0,Ew.default)(()=>{let{scrollTop:i}=r;o(i)},200);return r.addEventListener("scroll",n),()=>{n.cancel(),r.removeEventListener("scroll",n)}},[t,o]),e};var qe=v(T(),1),hT=17,gT=64;function Bh({isLoading:t,libraryItems:e,onAddToLibrary:o,onInsertLibraryItems:r,pendingElements:n,theme:i,id:a,libraryReturnUrl:l,onSelectItems:s,selectedItems:d}){let m=(0,Zt.useRef)(null),c=ww(m);(0,Zt.useEffect)(()=>{c>0&&m.current?.scrollTo(0,c)},[]);let{svgCache:u}=gm(),f=(0,Zt.useMemo)(()=>e.filter(O=>O.status!=="published"),[e]),b=(0,Zt.useMemo)(()=>e.filter(O=>O.status==="published"),[e]),x=!e.length&&!n.length,y=!n.length&&!f.length&&!b.length,[k,C]=(0,Zt.useState)(null),w=(0,Zt.useCallback)((O,W)=>{let j=!d.includes(O),R=[...f,...b];if(j){if(W.shiftKey&&k){let Z=R.findIndex(de=>de.id===k),ne=R.findIndex(de=>de.id===O);if(Z===-1||ne===-1){s([...d,O]);return}let me=fe(d),Me=R.reduce((de,Q,L)=>((L>=Z&&L<=ne||me.has(Q.id))&&de.push(Q.id),de),[]);s(Me)}else s([...d,O]);C(O)}else C(null),s(d.filter(Z=>Z!==O))},[k,s,b,d,f]),A=(0,Zt.useCallback)(O=>{let W;return d.includes(O)?W=e.filter(j=>d.includes(j.id)):W=e.filter(j=>j.id===O),W.map(j=>({...j,elements:Nc(j.elements,{randomizeSeed:!0})}))},[e,d]),z=(0,Zt.useCallback)((O,W)=>{W.dataTransfer.setData(Dt.excalidrawlib,xu(A(O)))},[A]),I=(0,Zt.useCallback)(O=>O?d.includes(O):!1,[d]),M=(0,Zt.useCallback)(()=>{o(n)},[n,o]),_=(0,Zt.useCallback)(O=>{O&&r(A(O))},[A,r]),$=u.size>=e.length?gT:hT;return(0,qe.jsxs)("div",{className:"library-menu-items-container",style:n.length||f.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!y&&(0,qe.jsx)(Nh,{selectedItems:d,onSelectItems:s,className:"library-menu-dropdown-container--in-heading"}),(0,qe.jsxs)(Pt.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:b.length>0?1:"0 1 auto",marginBottom:0},ref:m,children:[(0,qe.jsxs)(qe.Fragment,{children:[!y&&(0,qe.jsx)("div",{className:"library-menu-items-container__header",children:g("labels.personalLib")}),t&&(0,qe.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,qe.jsx)(Ot,{})}),!n.length&&!f.length?(0,qe.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,qe.jsx)("div",{className:"library-menu-items__no-items__label",children:g("library.noItems")}),(0,qe.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?g("library.hint_emptyPrivateLibrary"):g("library.hint_emptyLibrary")})]}):(0,qe.jsxs)(Oh,{children:[n.length>0&&(0,qe.jsx)(Rm,{itemsRenderedPerBatch:$,items:[{id:null,elements:n}],onItemSelectToggle:w,onItemDrag:z,onClick:M,isItemSelected:I,svgCache:u}),(0,qe.jsx)(Rm,{itemsRenderedPerBatch:$,items:f,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})]})]}),(0,qe.jsxs)(qe.Fragment,{children:[(b.length>0||n.length>0||f.length>0)&&(0,qe.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:g("labels.excalidrawLib")}),b.length>0?(0,qe.jsx)(Oh,{children:(0,qe.jsx)(Rm,{itemsRenderedPerBatch:$,items:b,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})}):f.length>0?(0,qe.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:g("library.noItems")}):null]}),x&&(0,qe.jsx)(Em,{style:{padding:"16px 0",width:"100%"},id:a,libraryReturnUrl:l,theme:i,children:(0,qe.jsx)(Nh,{selectedItems:d,onSelectItems:s})})]})]})}var Ho=v(T(),1),Va=Ue(!1),Cw=({children:t})=>(0,Ho.jsx)("div",{className:"layer-ui__library",children:t}),bT=({onInsertLibraryItems:t,pendingElements:e,onAddToLibrary:o,setAppState:r,libraryReturnUrl:n,library:i,id:a,theme:l,selectedItems:s,onSelectItems:d})=>{let[m]=Se(wi,Ne),c=(0,Eo.useCallback)(b=>{(async(y,k)=>{ve("element","addToLibrary","ui");for(let w of dc)if(y.some(A=>A.type===w))return r({errorMessage:g(`errors.libraryElementTypeError.${w}`)});let C=[{status:"unpublished",elements:y,id:pn(),created:Date.now()},...k];o(),i.setLibrary(C).catch(()=>{r({errorMessage:g("alerts.errorAddingToLibrary")})})})(b,m.libraryItems)},[o,i,r,m.libraryItems]),u=(0,Eo.useMemo)(()=>m.libraryItems,[m]);if(m.status==="loading"&&!m.isInitialized)return(0,Ho.jsx)(Cw,{children:(0,Ho.jsx)("div",{className:"layer-ui__library-message",children:(0,Ho.jsxs)("div",{children:[(0,Ho.jsx)(Ot,{size:"2em"}),(0,Ho.jsx)("span",{children:g("labels.libraryLoadingMessage")})]})})});let f=m.libraryItems.length>0||e.length>0;return(0,Ho.jsxs)(Cw,{children:[(0,Ho.jsx)(Bh,{isLoading:m.status==="loading",libraryItems:u,onAddToLibrary:c,onInsertLibraryItems:t,pendingElements:e,id:a,libraryReturnUrl:n,theme:l,onSelectItems:d,selectedItems:s}),f&&(0,Ho.jsx)(Em,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:a,libraryReturnUrl:n,theme:l})]})},xT=(t,e)=>{let o=()=>ye(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}),r=(0,Eo.useRef)(o()),n=(0,Eo.useRef)(t),i=(0,Eo.useRef)(e);return(!Tt(t.selectedElementIds,n.current.selectedElementIds)||!Tt(e,i.current))&&(r.current=o(),n.current=t,i.current=e),r.current},Sw=()=>{let{library:t,id:e,onInsertElements:o}=mo(),r=Ln(),n=Le(),i=Pe(),a=In(),[l,s]=(0,Eo.useState)([]),d=(0,Eo.useMemo)(()=>t,[t]),m=xT(n,a),c=(0,Eo.useCallback)(f=>{o(ym(f))},[o]),u=(0,Eo.useCallback)(()=>{i({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[i]);return(0,Ho.jsx)(bT,{pendingElements:m,onInsertLibraryItems:c,onAddToLibrary:u,setAppState:i,libraryReturnUrl:r.libraryReturnUrl,library:d,id:e,theme:n.theme,selectedItems:l,onSelectItems:s})};var Dn=v(T(),1);function vT(t){if(t&&typeof t=="number")return t;switch(t){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var tt=t=>{let[e,o]=NE(),[r]=(0,Nm.useState)(document.activeElement),{id:n}=_t(),i=Ae().viewport.isMobile;(0,Nm.useEffect)(()=>{if(!e)return;let d=vl(e);setTimeout(()=>{d.length>0&&t.autofocus!==!1&&(d[1]||d[0]).focus()});let m=c=>{if(c.key===S.TAB){let u=vl(e),{activeElement:f}=document,b=u.findIndex(x=>x===f);b===0&&c.shiftKey?(u[u.length-1].focus(),c.preventDefault()):b===u.length-1&&!c.shiftKey&&(u[0].focus(),c.preventDefault())}};return e.addEventListener("keydown",m),()=>e.removeEventListener("keydown",m)},[e,t.autofocus]);let a=Pe(),l=Gr(Va,Ne),s=()=>{a({openMenu:null}),l(!1),r.focus(),t.onCloseRequest()};return(0,Dn.jsx)($E,{className:B("Dialog",t.className,{"Dialog--fullscreen":i}),labelledBy:"dialog-title",maxWidth:vT(t.size),onCloseRequest:s,closeOnClickOutside:t.closeOnClickOutside,children:(0,Dn.jsxs)(Bt,{ref:o,children:[t.title&&(0,Dn.jsx)("h2",{id:`${n}-dialog-title`,className:"Dialog__title",children:(0,Dn.jsx)("span",{className:"Dialog__titleContent",children:t.title})}),i&&(0,Dn.jsx)("button",{className:"Dialog__close",onClick:s,title:g("buttons.close"),"aria-label":g("buttons.close"),type:"button",children:No}),(0,Dn.jsx)("div",{className:"Dialog__content",children:t.children})]})})};h();var kr=v(H(),1);h();var Tw=v(T(),1),Tr=({type:t="button",onSelect:e,selected:o,children:r,className:n="",...i})=>(0,Tw.jsx)("button",{onClick:dn(i.onClick,a=>{e()}),type:t,className:B("excalidraw-button",n,{selected:o}),...i,children:r});var ki=v(T(),1),Om=(0,kr.forwardRef)(({onChange:t,label:e,fullWidth:o,placeholder:r,readonly:n,selectOnRender:i,onKeyDown:a,isRedacted:l=!1,...s},d)=>{let m=(0,kr.useRef)(null);(0,kr.useImperativeHandle)(d,()=>m.current),(0,kr.useLayoutEffect)(()=>{i&&m.current?.select()},[i]);let[c,u]=(0,kr.useState)(!1);return(0,ki.jsxs)("div",{className:B("ExcTextField",{"ExcTextField--fullWidth":o}),onClick:()=>{m.current?.focus()},children:[(0,ki.jsx)("div",{className:"ExcTextField__label",children:e}),(0,ki.jsxs)("div",{className:B("ExcTextField__input",{"ExcTextField__input--readonly":n}),children:[(0,ki.jsx)("input",{className:B({"is-redacted":"value"in s&&s.value&&l&&!c}),readOnly:n,value:"value"in s?s.value:void 0,defaultValue:"defaultValue"in s?s.defaultValue:void 0,placeholder:r,ref:m,onChange:f=>t?.(f.target.value),onKeyDown:a}),l&&(0,ki.jsx)(Tr,{onSelect:()=>u(!c),style:{border:0,userSelect:"none"},children:c?kv:fa})]})]})});h();var yT={toggleTheme:[F("Shift+Alt+D")],saveScene:[F("CtrlOrCmd+S")],loadScene:[F("CtrlOrCmd+O")],clearCanvas:[F("CtrlOrCmd+Delete")],imageExport:[F("CtrlOrCmd+Shift+E")],commandPalette:[F("CtrlOrCmd+/"),F("CtrlOrCmd+Shift+P")],cut:[F("CtrlOrCmd+X")],copy:[F("CtrlOrCmd+C")],paste:[F("CtrlOrCmd+V")],copyStyles:[F("CtrlOrCmd+Alt+C")],pasteStyles:[F("CtrlOrCmd+Alt+V")],selectAll:[F("CtrlOrCmd+A")],deleteSelectedElements:[F("Delete")],duplicateSelection:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)],sendBackward:[F("CtrlOrCmd+[")],bringForward:[F("CtrlOrCmd+]")],sendToBack:[Xo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")],bringToFront:[Xo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")],copyAsPng:[F("Shift+Alt+C")],copyAsSvg:[],group:[F("CtrlOrCmd+G")],ungroup:[F("CtrlOrCmd+Shift+G")],gridMode:[F("CtrlOrCmd+'")],zenMode:[F("Alt+Z")],objectsSnapMode:[F("Alt+S")],stats:[F("Alt+/")],addToLibrary:[],flipHorizontal:[F("Shift+H")],flipVertical:[F("Shift+V")],viewMode:[F("Alt+R")],hyperlink:[F("CtrlOrCmd+K")],toggleElementLock:[F("CtrlOrCmd+Shift+L")],resetZoom:[F("CtrlOrCmd+0")],zoomOut:[F("CtrlOrCmd+-")],zoomIn:[F("CtrlOrCmd++")],zoomToFitSelection:[F("Shift+3")],zoomToFit:[F("Shift+1")],zoomToFitSelectionInViewport:[F("Shift+2")],toggleEraserTool:[F("E")],toggleHandTool:[F("H")],setFrameAsActiveTool:[F("F")],saveFileToDisk:[F("CtrlOrCmd+S")],saveToActiveFile:[F("CtrlOrCmd+S")],toggleShortcuts:[F("?")]},Et=(t,e=0)=>{let o=yT[t];return o&&o.length>0?o[e]||o[0]:""};var n3=v(Aw(),1);h();var ET="\\u0300-\\u036f",wT="\\ufe20-\\ufe2f",CT="\\u20d0-\\u20ff",ST=ET+wT+CT,TT=`[${ST}]`,kT=RegExp(TT,"g"),IT=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,AT={\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"},$h=t=>t.replace(IT,e=>AT[e]||e).replace(kT,"");h();var Mw=v(T(),1),Nn=({icon:t})=>(0,Mw.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:t});h();var ys=[{icon:ux,value:"selection",key:S.V,numericKey:S[1],fillable:!0},{icon:fx,value:"rectangle",key:S.R,numericKey:S[2],fillable:!0},{icon:hx,value:"diamond",key:S.D,numericKey:S[3],fillable:!0},{icon:gx,value:"ellipse",key:S.O,numericKey:S[4],fillable:!0},{icon:bx,value:"arrow",key:S.A,numericKey:S[5],fillable:!0},{icon:xx,value:"line",key:S.L,numericKey:S[6],fillable:!0},{icon:ca,value:"freedraw",key:[S.P,S.X],numericKey:S[7],fillable:!1},{icon:yx,value:"text",key:S.T,numericKey:S[8],fillable:!1},{icon:Ex,value:"image",key:null,numericKey:S[9],fillable:!1},{icon:wx,value:"eraser",key:S.E,numericKey:S[0],fillable:!1}],_w=t=>ys.find((o,r)=>o.numericKey!=null&&t===o.numericKey.toString()||o.key&&(typeof o.key=="string"?o.key===t:o.key.includes(t)))?.value||null;h();var jw=v(H(),1);h();var zm=v(H(),1);h();var Es=v(H());h();h();var Lw=t=>{let e,o=new Set,r=(m,c)=>{let u=typeof m=="function"?m(e):m;if(!Object.is(u,e)){let f=e;e=c??(typeof u!="object"||u===null)?u:Object.assign({},e,u),o.forEach(b=>b(e,f))}},n=()=>e,s={setState:r,getState:n,getInitialState:()=>d,subscribe:m=>(o.add(m),()=>o.delete(m)),destroy:()=>{(E?E.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),o.clear()}},d=e=t(r,n,s);return s},Pw=t=>t?Lw(t):Lw;var Ww=v(H(),1),Gw=v($w(),1),{useDebugValue:KT}=Ww.default,{useSyncExternalStoreWithSelector:YT}=Gw.default,Hw=!1,ZT=t=>t;function XT(t,e=ZT,o){(E?E.MODE:void 0)!=="production"&&o&&!Hw&&(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"),Hw=!0);let r=YT(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,o);return KT(r),r}var Uw=t=>{(E?E.MODE:void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let e=typeof t=="function"?Pw(t):t,o=(r,n)=>XT(e,r,n);return Object.assign(o,e),o},Vw=t=>t?Uw(t):Uw;var Kw,Yw,Zw=typeof window<"u"&&((Kw=window.document)!=null&&Kw.createElement||((Yw=window.navigator)==null?void 0:Yw.product)==="ReactNative")?Es.default.useLayoutEffect:Es.default.useEffect;function ar(){let t=Vw(e=>({current:new Array,version:0,set:e}));return{In:({children:e})=>{let o=t(n=>n.set),r=t(n=>n.version);return Zw(()=>{o(n=>({version:n.version+1}))},[]),Zw(()=>(o(({current:n})=>({current:[...n,e]})),()=>o(({current:n})=>({current:n.filter(i=>i!==e)}))),[e,r]),null},Out:()=>{let e=t(o=>o.current);return Es.default.createElement(Es.default.Fragment,null,e)}}}var Uh=zm.default.createContext(null),Ve=()=>zm.default.useContext(Uh),Xw=()=>zm.default.useMemo(()=>({MainMenuTunnel:ar(),WelcomeScreenMenuHintTunnel:ar(),WelcomeScreenToolbarHintTunnel:ar(),WelcomeScreenHelpHintTunnel:ar(),WelcomeScreenCenterTunnel:ar(),FooterCenterTunnel:ar(),DefaultSidebarTriggerTunnel:ar(),DefaultSidebarTabTriggersTunnel:ar(),OverwriteConfirmDialogTunnel:ar(),TTDDialogTriggerTunnel:ar(),jotaiScope:Symbol()}),[]);var le=v(T(),1),Wh=(t,e)=>{let o=e[0]?.type||null;for(let r of e)if(r.type!==o){o=null;break}return kl(t.activeTool.type)&&t.activeTool.type!=="image"&&o!=="image"&&o!=="frame"&&o!=="magicframe"||e.some(r=>kl(r.type))},Gh=(t,e)=>hn(t.activeTool.type)||e.some(o=>hn(o.type)),Bm=({appState:t,elementsMap:e,renderAction:o})=>{let r=na(e,t),n=!1;r.length===2&&(gr(r[0])||gr(r[1]))&&(n=!0);let i=!!t.editingElement,a=Ae(),l=document.documentElement.getAttribute("dir")==="rtl",s=hn(t.activeTool.type)&&!jn(t.currentItemBackgroundColor)||r.some(c=>hn(c.type)&&!jn(c.backgroundColor)),d=r.length===1||n,m=!t.editingLinearElement&&r.length===1&&_e(r[0]);return(0,le.jsxs)("div",{className:"panelColumn",children:[(0,le.jsx)("div",{children:Wh(t,r)&&o("changeStrokeColor")}),Gh(t,r)&&(0,le.jsx)("div",{children:o("changeBackgroundColor")}),s&&o("changeFillStyle"),(eu(t.activeTool.type)||r.some(c=>eu(c.type)))&&o("changeStrokeWidth"),(t.activeTool.type==="freedraw"||r.some(c=>c.type==="freedraw"))&&o("changeStrokeShape"),(tu(t.activeTool.type)||r.some(c=>tu(c.type)))&&(0,le.jsxs)(le.Fragment,{children:[o("changeStrokeStyle"),o("changeSloppiness")]}),(ou(t.activeTool.type)||r.some(c=>ou(c.type)))&&(0,le.jsx)(le.Fragment,{children:o("changeRoundness")}),(t.activeTool.type==="text"||r.some(oe))&&(0,le.jsxs)(le.Fragment,{children:[o("changeFontSize"),o("changeFontFamily"),(t.activeTool.type==="text"||wb(r,e))&&o("changeTextAlign")]}),Eb(r,e)&&o("changeVerticalAlign"),(Gi(t.activeTool.type)||r.some(c=>Gi(c.type)))&&(0,le.jsx)(le.Fragment,{children:o("changeArrowhead")}),o("changeOpacity"),(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.layers")}),(0,le.jsxs)("div",{className:"buttonList",children:[o("sendToBack"),o("sendBackward"),o("bringForward"),o("bringToFront")]})]}),r.length>1&&!n&&(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.align")}),(0,le.jsxs)("div",{className:"buttonList",children:[l?(0,le.jsxs)(le.Fragment,{children:[o("alignRight"),o("alignHorizontallyCentered"),o("alignLeft")]}):(0,le.jsxs)(le.Fragment,{children:[o("alignLeft"),o("alignHorizontallyCentered"),o("alignRight")]}),r.length>2&&o("distributeHorizontally"),(0,le.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,le.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:"-0.5rem"},children:[o("alignTop"),o("alignVerticallyCentered"),o("alignBottom"),r.length>2&&o("distributeVertically")]})]})]}),!i&&r.length>0&&(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.actions")}),(0,le.jsxs)("div",{className:"buttonList",children:[!a.editor.isMobile&&o("duplicateSelection"),!a.editor.isMobile&&o("deleteSelectedElements"),o("group"),o("ungroup"),d&&o("hyperlink"),m&&o("toggleLinearEditor")]})]})]})},$m=({activeTool:t,appState:e,app:o,UIOptions:r})=>{let[n,i]=(0,jw.useState)(!1),a=t.type==="frame",l=t.type==="laser",s=t.type==="embeddable",{TTDDialogTriggerTunnel:d}=Ve();return(0,le.jsxs)(le.Fragment,{children:[ys.map(({value:m,icon:c,key:u,numericKey:f,fillable:b},x)=>{if(r.tools?.[m]===!1)return null;let y=g(`toolBar.${m}`),k=u&&cn(typeof u=="string"?u:u[0]),C=k?`${k} ${g("helpDialog.or")} ${f}`:`${f}`;return(0,le.jsx)(se,{className:B("Shape",{fillable:b}),type:"radio",icon:c,checked:t.type===m,name:"editor-current-shape",title:`${cn(y)} \u2014 ${C}`,keyBindingLabel:f||k,"aria-label":cn(y),"aria-keyshortcuts":C,"data-testid":`toolbar-${m}`,onPointerDown:({pointerType:w})=>{!e.penDetected&&w==="pen"&&o.togglePenMode(!0)},onChange:({pointerType:w})=>{e.activeTool.type!==m&&ve("toolbar",m,"ui"),m==="image"?o.setActiveTool({type:m,insertOnCanvasDirectly:w!=="mouse"}):o.setActiveTool({type:m})}},m)}),(0,le.jsx)("div",{className:"App-toolbar__divider"}),(0,le.jsxs)(De,{open:n,children:[(0,le.jsxs)(De.Trigger,{className:B("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":a||s||l&&!o.props.isCollaborating}),onToggle:()=>i(!n),title:g("toolBar.extraTools"),children:[Sv,o.props.aiEnabled!==!1&&(0,le.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,le.jsxs)(De.Content,{onClickOutside:()=>i(!1),onSelect:()=>i(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,le.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"frame"}),icon:Ed,shortcut:S.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:a,children:g("toolBar.frame")}),(0,le.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"embeddable"}),icon:Sx,"data-testid":"toolbar-embeddable",selected:s,children:g("toolBar.embeddable")}),(0,le.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"laser"}),icon:Cd,"data-testid":"toolbar-laser",selected:l,shortcut:S.K.toLocaleUpperCase(),children:g("toolBar.laser")}),(0,le.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),o.props.aiEnabled!==!1&&(0,le.jsx)(d.Out,{}),(0,le.jsx)(De.Item,{onSelect:()=>o.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:wd,"data-testid":"toolbar-embeddable",children:g("toolBar.mermaidToExcalidraw")}),o.props.aiEnabled!==!1&&(0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)(De.Item,{onSelect:()=>o.onMagicframeToolSelect(),icon:ua,"data-testid":"toolbar-magicframe",children:[g("toolBar.magicframe"),(0,le.jsx)(De.Item.Badge,{children:"AI"})]}),(0,le.jsx)(De.Item,{onSelect:()=>{ve("ai","open-settings","d2c"),o.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Yl,"data-testid":"toolbar-magicSettings",children:g("toolBar.magicSettings")})]})]})]})]})},qw=({renderAction:t,zoom:e})=>(0,le.jsx)(Pt.Col,{gap:1,className:"zoom-actions",children:(0,le.jsxs)(Pt.Row,{align:"center",children:[t("zoomOut"),t("resetZoom"),t("zoomIn")]})}),Jw=({renderAction:t,className:e})=>(0,le.jsxs)("div",{className:`undo-redo-buttons ${e}`,children:[(0,le.jsx)("div",{className:"undo-button-container",children:(0,le.jsx)(vo,{label:g("buttons.undo"),children:t("undo")})}),(0,le.jsx)("div",{className:"redo-button-container",children:(0,le.jsxs)(vo,{label:g("buttons.redo"),children:[" ",t("redo")]})})]}),Qw=({actionManager:t,showExitZenModeBtn:e})=>(0,le.jsx)("button",{type:"button",className:B("disable-zen-mode",{"disable-zen-mode--visible":e}),onClick:()=>t.executeAction(Ba),children:g("buttons.exitZenMode")}),e3=({renderAction:t,className:e})=>(0,le.jsx)("div",{className:`finalize-button ${e}`,children:t("finalize",{size:"small"})});h();var t3=v(H(),1),Vh=t=>{let e=(0,t3.useRef)({userFn:t});return e.current.userFn=t,e.current.stableFn||(e.current.stableFn=(...o)=>e.current.userFn(...o)),e.current.stableFn};h();var Hm=v(T(),1),Ii=Ue(null),o3=()=>{let[t,e]=Se(Ii,Ne),o=kt();return t&&t==="clearCanvas"?(0,Hm.jsx)(Cm,{onConfirm:()=>{o.executeAction(jr),e(null)},onCancel:()=>e(null),title:g("clearCanvasDialog.title"),children:(0,Hm.jsxs)("p",{className:"clear-canvas__content",children:[" ",g("alerts.clearReset")]})}):null};var Kh={};i1(Kh,{toggleTheme:()=>jT});h();var jT={...ui,category:"App",label:"Toggle theme",perform:({actionManager:t})=>{t.executeAction(ui,"commandPalette")}};var We=v(T(),1),qT=Ue(null),mt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},JT=t=>{switch(t){case mt.app:return 1;case mt.export:return 2;case mt.editor:return 3;case mt.tools:return 4;case mt.elements:return 5;case mt.links:return 6;default:return 10}},Um=({shortcut:t,className:e,children:o})=>{let r=t.replace("++","+$").split("+");return(0,We.jsxs)("div",{className:B("shortcut",e),children:[r.map((n,i)=>(0,We.jsx)("div",{className:"shortcut-wrapper",children:(0,We.jsx)("div",{className:"shortcut-key",children:n==="$"?"+":n})},n)),(0,We.jsx)("div",{className:"shortcut-desc",children:o})]})},i3=t=>!t.altKey&&t[S.CTRL_OR_CMD]&&(t.shiftKey&&t.key.toLowerCase()===S.P||t.key===S.SLASH),KK=Object.assign(t=>{let e=Le(),o=Pe();return(0,Uo.useEffect)(()=>{let r=n=>{i3(n)&&(n.preventDefault(),n.stopPropagation(),o(i=>{let a=i.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return a&&ve("command_palette","open","shortcut"),{openDialog:a}}))};return window.addEventListener("keydown",r,{capture:!0}),()=>window.removeEventListener("keydown",r,{capture:!0})},[o]),e.openDialog?.name!=="commandPalette"?null:(0,We.jsx)(QT,{...t})},{defaultItems:Kh});function QT({customCommandPaletteItems:t}){let e=mo(),o=Le(),r=Pe(),n=Ln(),i=kt(),[a,l]=Se(qT),[s,d]=(0,Uo.useState)(null),m=(0,Uo.useRef)(null),c=Ra({uiAppState:o,customCommandPaletteItems:t,appProps:n});(0,Uo.useEffect)(()=>{let{uiAppState:I,customCommandPaletteItems:M,appProps:_}=c,$=R=>{let Z="";return R.label&&(typeof R.label=="function"?Z=g(R.label(e.scene.getNonDeletedElements(),I,e)):Z=g(R.label)),Z},O=R=>typeof R.icon=="function"?R.icon(I,e.scene.getNonDeletedElements()):R.icon,W=[],j=(R,Z,ne)=>{let me={label:$(R),icon:O(R),category:Z,shortcut:Et(R.name),keywords:R.keywords,predicate:R.predicate,viewMode:R.viewMode,perform:()=>{i.executeAction(R,"commandPalette")}};return ne?ne(me,R):me};if(I&&e.scene&&i){let R=[i.actions.group,i.actions.ungroup,i.actions.cut,i.actions.copy,i.actions.deleteSelectedElements,i.actions.copyStyles,i.actions.pasteStyles,i.actions.bringToFront,i.actions.bringForward,i.actions.sendBackward,i.actions.sendToBack,i.actions.alignTop,i.actions.alignBottom,i.actions.alignLeft,i.actions.alignRight,i.actions.alignVerticallyCentered,i.actions.alignHorizontallyCentered,i.actions.duplicateSelection,i.actions.flipHorizontal,i.actions.flipVertical,i.actions.zoomToFitSelection,i.actions.zoomToFitSelectionInViewport,i.actions.increaseFontSize,i.actions.decreaseFontSize,i.actions.toggleLinearEditor,us].map(Q=>j(Q,mt.elements,(L,N)=>({...L,predicate:N.predicate?N.predicate:(K,Y,V,X)=>ye(K,Y).length>0}))),Z=[i.actions.toggleHandTool,i.actions.setFrameAsActiveTool].map(Q=>j(Q,mt.tools)),ne=[i.actions.undo,i.actions.redo,i.actions.zoomIn,i.actions.zoomOut,i.actions.resetZoom,i.actions.zoomToFit,i.actions.zenMode,i.actions.viewMode,i.actions.gridMode,i.actions.objectsSnapMode,i.actions.toggleShortcuts,i.actions.selectAll,i.actions.toggleElementLock,i.actions.unlockAllElements,i.actions.stats].map(Q=>j(Q,mt.editor)),me=[i.actions.saveToActiveFile,i.actions.saveFileToDisk,i.actions.copyAsPng,i.actions.copyAsSvg].map(Q=>j(Q,mt.export));W=[...R,...ne,{label:$(jr),icon:O(jr),shortcut:Et(jr.name),category:mt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Gt.set(Ii,"clearCanvas")}},{label:g("buttons.exportImage"),category:mt.export,icon:bd,shortcut:Et("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{r({openDialog:{name:"imageExport"}})}},...me];let Me=[{label:g("toolBar.library"),category:mt.app,icon:ud,viewMode:!1,perform:()=>{I.openSidebar?r({openSidebar:null}):r({openSidebar:{name:Jo.name,tab:Jo.defaultTab}})}},{label:g("labels.changeStroke"),keywords:["color","outline"],category:mt.elements,icon:gd,viewMode:!1,predicate:(Q,L)=>{let N=ye(Q,L);return N.length>0&&Wh(L,N)},perform:()=>{r(Q=>({openMenu:Q.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:g("labels.changeBackground"),keywords:["color","fill"],icon:gd,category:mt.elements,viewMode:!1,predicate:(Q,L)=>{let N=ye(Q,L);return N.length>0&&Gh(L,N)},perform:()=>{r(Q=>({openMenu:Q.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:g("labels.canvasBackground"),keywords:["color"],icon:gd,category:mt.editor,viewMode:!1,perform:()=>{r(Q=>({openMenu:Q.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...ys.reduce((Q,L)=>{let{value:N,icon:K,key:Y,numericKey:V}=L;if(_.UIOptions.tools?.[N]===!1)return Q;let te=Y&&cn(typeof Y=="string"?Y:Y[0])||V,ae={label:g(`toolBar.${N}`),category:mt.tools,shortcut:te,icon:K,keywords:["toolbar"],viewMode:!1,perform:({event:et})=>{N==="image"?e.setActiveTool({type:N,insertOnCanvasDirectly:et.type==="keydown"}):e.setActiveTool({type:N})}};return Q.push(ae),Q},[]),...Z,{label:g("toolBar.lock"),category:mt.tools,icon:I.activeTool.locked?sa:ii,shortcut:S.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{e.toggleLock()}},{label:`${g("labels.textToDiagram")}...`,category:mt.tools,icon:Av,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(Q=>({...Q,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${g("toolBar.mermaidToExcalidraw")}...`,category:mt.tools,icon:wd,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(Q=>({...Q,openDialog:{name:"ttd",tab:"mermaid"}}))}}],de=[...W,...Me,...M||[]].map(Q=>({...Q,icon:Q.icon||Td,order:Q.order??JT(Q.category),haystack:`${$h(Q.label.toLocaleLowerCase())} ${Q.keywords?.join(" ")||""}`}));d(de),l(de.find(Q=>Q.label===a?.label)??null)}},[c,e,i,d,a?.label,l,r]);let[u,f]=(0,Uo.useState)(""),[b,x]=(0,Uo.useState)(null),[y,k]=(0,Uo.useState)({}),C=I=>{r({openDialog:null},I),f("")},w=(I,M)=>{o.openDialog?.name==="commandPalette"&&(M.stopPropagation(),M.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),C(()=>{I.perform({actionManager:i,event:M}),l(I),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},A=Vh(I=>I.viewMode===!1&&o.viewModeEnabled?!1:typeof I.predicate=="function"?I.predicate(e.scene.getNonDeletedElements(),o,n,e):I.predicate===void 0||I.predicate),z=Vh(I=>{let M=Io(I.target)||i3(I)||I.key===S.ESCAPE;if(M&&I.key!==S.ARROW_UP&&I.key!==S.ARROW_DOWN&&I.key!==S.ENTER)return;let _=Object.values(y).flat(),$=a&&!u&&A(a);if(I.key===S.ARROW_UP){I.preventDefault();let O=_.findIndex(R=>R.label===b?.label);if($){if(O===0){x(a);return}if(b===a){let R=_[_.length-1];R&&x(R);return}}let W;O===-1?W=_.length-1:W=O===0?_.length-1:(O-1)%_.length;let j=_[W];j&&x(j);return}if(I.key===S.ARROW_DOWN){I.preventDefault();let O=_.findIndex(R=>R.label===b?.label);if($){if(!b||O===_.length-1){x(a);return}if(b===a){let R=_[0];R&&x(R);return}}let W=(O+1)%_.length,j=_[W];j&&x(j);return}if(I.key===S.ENTER&&b&&setTimeout(()=>{w(b,I)}),!M){if(I.stopPropagation(),/^[a-zA-Z0-9]$/.test(I.key)){m?.current?.focus();return}I.preventDefault()}});return(0,Uo.useEffect)(()=>(window.addEventListener("keydown",z,{capture:!0}),()=>window.removeEventListener("keydown",z,{capture:!0})),[z]),(0,Uo.useEffect)(()=>{if(!s)return;let I=O=>{let W={};for(let j of O)W[j.category]?W[j.category].push(j):W[j.category]=[j];return W},M=s.filter(A).sort((O,W)=>O.order-W.order),_=!u&&a&&A(a);if(!u){k(I(_?M.filter(O=>O.label!==a?.label):M)),x(_?a:M[0]||null);return}let $=$h(u.toLocaleLowerCase().replace(/[<>_| -]/g,""));M=n3.default.filter($,M,{extract:O=>O.haystack}).sort((O,W)=>W.score-O.score).map(O=>O.original),k(I(M)),x(M[0]??null)},[u,s,A,a]),(0,We.jsxs)(tt,{onCloseRequest:()=>C(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,We.jsx)(Om,{value:u,placeholder:g("commandPalette.search.placeholder"),onChange:I=>{f(I)},selectOnRender:!0,ref:m}),!e.device.viewport.isMobile&&(0,We.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,We.jsx)(Um,{shortcut:"\u2191\u2193",children:g("commandPalette.shortcuts.select")}),(0,We.jsx)(Um,{shortcut:"\u21B5",children:g("commandPalette.shortcuts.confirm")}),(0,We.jsx)(Um,{shortcut:F("Esc"),children:g("commandPalette.shortcuts.close")})]}),(0,We.jsxs)("div",{className:"commands",children:[a&&!u&&(0,We.jsxs)("div",{className:"command-category",children:[(0,We.jsxs)("div",{className:"command-category-title",children:[g("commandPalette.recents"),(0,We.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:Mv})]}),(0,We.jsx)(r3,{command:a,isSelected:a.label===b?.label,onClick:I=>w(a,I),disabled:!A(a),onMouseMove:()=>x(a),showShortcut:!e.device.viewport.isMobile,appState:o})]}),Object.keys(y).length>0?Object.keys(y).map((I,M)=>(0,We.jsxs)("div",{className:"command-category",children:[(0,We.jsx)("div",{className:"command-category-title",children:I}),y[I].map(_=>(0,We.jsx)(r3,{command:_,isSelected:_.label===b?.label,onClick:$=>w(_,$),onMouseMove:()=>x(_),showShortcut:!e.device.viewport.isMobile,appState:o},_.label))]},I)):s?(0,We.jsxs)("div",{className:"no-match",children:[(0,We.jsx)("div",{className:"icon",children:Sd})," ",g("commandPalette.search.noMatch")]}):null]})]})}var r3=({command:t,isSelected:e,disabled:o,onMouseMove:r,onClick:n,showShortcut:i,appState:a})=>{let l=()=>{};return(0,We.jsxs)("div",{className:B("command-item",{"item-selected":e,"item-disabled":o}),ref:s=>{e&&!o&&s?.scrollIntoView?.({block:"nearest"})},onClick:o?l:n,onMouseMove:o?l:r,title:o?g("commandPalette.itemNotAvailable"):"",children:[(0,We.jsxs)("div",{className:"name",children:[t.icon&&(0,We.jsx)(Nn,{icon:typeof t.icon=="function"?t.icon(a):t.icon}),t.label]}),i&&t.shortcut&&(0,We.jsx)(Um,{shortcut:t.shortcut})]})};var a3=v(T(),1),Yh=U({name:"toggleLinearEditor",category:mt.elements,label:(t,e,o)=>o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds})[0]?.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit",keywords:["line"],trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return!!(!e.editingLinearElement&&n.length===1&&_e(n[0]))},perform(t,e,o,r){let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0],i=e.editingLinearElement?.elementId===n.id?null:new he(n);return{appState:{...e,editingLinearElement:i},storeAction:D.CAPTURE}},PanelComponent:({appState:t,updateData:e,app:o})=>{let r=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds})[0],n=g(r.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit");return(0,a3.jsx)(se,{type:"button",icon:Wv,title:n,"aria-label":n,onClick:()=>e(null)})}});h();h();var Ai=class{constructor(e=!0,o=!0){this.isUndoStackEmpty=e;this.isRedoStackEmpty=o}},ws=class t{onHistoryChangedEmitter=new Po;undoStack=[];redoStack=[];get isUndoStackEmpty(){return this.undoStack.length===0}get isRedoStackEmpty(){return this.redoStack.length===0}clear(){this.undoStack.length=0,this.redoStack.length=0}record(e,o){let r=Zh.create(o,e);r.isEmpty()||(this.undoStack.push(r.inverse()),r.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new Ai(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.undoStack),n=>t.push(this.redoStack,n,e))}redo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.redoStack),n=>t.push(this.undoStack,n,e))}perform(e,o,r,n,i){try{let a=n();if(a===null)return;let l=e,s=o,d=!1;for(;a;){try{[l,s,d]=a.applyTo(l,s,r)}finally{i(a)}if(d)break;a=n()}return[l,s]}finally{this.onHistoryChangedEmitter.trigger(new Ai(this.isUndoStackEmpty,this.isRedoStackEmpty))}}static pop(e){if(!e.length)return null;let o=e.pop();return o!==void 0?o:null}static push(e,o,r){let n=o.inverse().applyLatestChanges(r);return e.push(n)}},Zh=class t{constructor(e,o){this.appStateChange=e;this.elementsChange=o}static create(e,o){return new t(e,o)}inverse(){return new t(this.appStateChange.inverse(),this.elementsChange.inverse())}applyTo(e,o,r){let[n,i]=this.elementsChange.applyTo(e,r.elements),[a,l]=this.appStateChange.applyTo(o,n);return[n,a,i||l]}applyLatestChanges(e){let o=this.elementsChange.applyLatestChanges(e);return t.create(this.appStateChange,o)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};h();var Wm=v(H(),1),Xh=(t,e)=>{let[o,r]=(0,Wm.useState)(e);return(0,Wm.useEffect)(()=>{let n=t.on(i=>{r(i)});return()=>{n()}},[t]),o};var jh=v(T(),1),l3=(t,e)=>{if(!t.multiElement&&!t.resizingElement&&!t.editingElement&&!t.draggingElement){let o=e();if(!o)return{storeAction:D.NONE};let[r,n]=o,i=Array.from(r.values());return{appState:n,elements:i,storeAction:D.UPDATE}}return{storeAction:D.NONE}},s3=(t,e)=>({name:"undo",label:"buttons.undo",icon:Hu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>l3(r,()=>t.undo(fe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.key.toLowerCase()===S.Z&&!o.shiftKey,PanelComponent:({updateData:o,data:r})=>{let{isUndoStackEmpty:n}=Xh(t.onHistoryChangedEmitter,new Ai(t.isUndoStackEmpty,t.isRedoStackEmpty));return(0,jh.jsx)(se,{type:"button",icon:Hu,"aria-label":g("buttons.undo"),onClick:o,size:r?.size||"medium",disabled:n,"data-testid":"button-undo"})}}),c3=(t,e)=>({name:"redo",label:"buttons.redo",icon:Uu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>l3(r,()=>t.redo(fe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.shiftKey&&o.key.toLowerCase()===S.Z||qs&&o.ctrlKey&&!o.shiftKey&&o.key===S.Y,PanelComponent:({updateData:o,data:r})=>{let{isRedoStackEmpty:n}=Xh(t.onHistoryChangedEmitter,new Ai(t.isUndoStackEmpty,t.isRedoStackEmpty));return(0,jh.jsx)(se,{type:"button",icon:Uu,"aria-label":g("buttons.redo"),onClick:o,size:r?.size||"medium",disabled:n,"data-testid":"button-redo"})}});h();var d3=v(T(),1),qh=(t,e,o,r,n,i)=>{if(t.trackEvent)try{typeof t.trackEvent=="object"&&(!t.trackEvent.predicate||t.trackEvent.predicate(o,r,i))&&ve(t.trackEvent.category,t.trackEvent.action||t.name,`${e} (${n.device.editor.isMobile?"mobile":"desktop"})`)}catch(a){console.error("error while logging action:",a)}},Gm=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(e,o,r,n){this.updater=i=>{if($i(i))i.then(a=>e(a));else return e(i)},this.getAppState=o,this.getElementsIncludingDeleted=r,this.app=n}registerAction(e){this.actions[e.name]=e}registerAll(e){e.forEach(o=>this.registerAction(o))}handleKeyDown(e){let o=this.app.props.UIOptions.canvasActions,r=Object.values(this.actions).sort((s,d)=>(d.keyPriority||0)-(s.keyPriority||0)).filter(s=>(s.name in o?o[s.name]:!0)&&s.keyTest&&s.keyTest(e,this.getAppState(),this.getElementsIncludingDeleted(),this.app));if(r.length!==1)return r.length>1&&console.warn("Canceling as multiple actions match this shortcut",r),!1;let n=r[0];if(this.getAppState().viewModeEnabled&&n.viewMode!==!0)return!1;let i=this.getElementsIncludingDeleted(),a=this.getAppState(),l=null;return qh(n,"keyboard",a,i,this.app,null),e.preventDefault(),e.stopPropagation(),this.updater(r[0].perform(i,a,l,this.app)),!0}executeAction(e,o="api",r=null){let n=this.getElementsIncludingDeleted(),i=this.getAppState();qh(e,o,i,n,this.app,r),this.updater(e.perform(n,i,r,this.app))}renderAction=(e,o)=>{let r=this.app.props.UIOptions.canvasActions;if(this.actions[e]&&"PanelComponent"in this.actions[e]&&(!(e in r)||r[e])){let n=this.actions[e],i=n.PanelComponent;i.displayName="PanelComponent";let a=this.getElementsIncludingDeleted(),l=this.getAppState(),s=d=>{qh(n,"ui",l,a,this.app,d),this.updater(n.perform(this.getElementsIncludingDeleted(),this.getAppState(),d,this.app))};return(0,d3.jsx)(i,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:s,appProps:this.app.props,app:this.app,data:o})}return null};isActionEnabled=e=>{let o=this.getElementsIncludingDeleted(),r=this.getAppState();return!e.predicate||e.predicate(o,r,this.app.props,this.app)}};h();var Jh=t=>{let e=Array.from(t.values());return{x:m3(e,o=>o.x)/e.length,y:m3(e,o=>o.y)/e.length}},Qh=([t,e])=>Math.hypot(t.x-e.x,t.y-e.y),m3=(t,e)=>t.reduce((o,r)=>o+e(r),0);h();var p3=v(H(),1),Qr=v(T(),1),Xt="separator",u3=p3.default.memo(({actionManager:t,items:e,top:o,left:r,onClose:n})=>{let i=$a(),a=In(),l=e.reduce((s,d)=>(d&&(d===Xt||!d.predicate||d.predicate(a,i,t.app.props,t.app))&&s.push(d),s),[]);return(0,Qr.jsx)(om,{onCloseRequest:()=>{n()},top:o,left:r,fitInViewport:!0,offsetLeft:i.offsetLeft,offsetTop:i.offsetTop,viewportWidth:i.width,viewportHeight:i.height,children:(0,Qr.jsx)("ul",{className:"context-menu",onContextMenu:s=>s.preventDefault(),children:l.map((s,d)=>{if(s===Xt)return!l[d-1]||l[d-1]===Xt?null:(0,Qr.jsx)("hr",{className:"context-menu-item-separator"},d);let m=s.name,c="";return s.label&&(typeof s.label=="function"?c=g(s.label(a,i,t.app)):c=g(s.label)),(0,Qr.jsx)("li",{"data-testid":m,onClick:()=>{n(()=>{t.executeAction(s,"contextMenu")})},children:(0,Qr.jsxs)("button",{type:"button",className:B("context-menu-item",{dangerous:m==="deleteSelectedElements",checkmark:s.checked?.(i)}),children:[(0,Qr.jsx)("div",{className:"context-menu-item__label",children:c}),(0,Qr.jsx)("kbd",{className:"context-menu-item__shortcut",children:m?Et(m):""})]})},d)})})})});h();var T5=v(H(),1);h();var Vm=v(H(),1);var ja=v(T(),1),f3=({children:t,onClose:e})=>{let[o,r]=(0,Vm.useState)(!!t),{container:n}=_t(),i=Vm.default.useCallback(()=>{r(!1),e&&e(),n?.focus()},[e,n]);return(0,ja.jsx)(ja.Fragment,{children:o&&(0,ja.jsx)(tt,{size:"small",onCloseRequest:i,title:g("errorDialog.title"),children:(0,ja.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:t})})})};h();var wo=v(H(),1);h();var Cs=v(T(),1),Km=function({onChange:t,value:e,choices:o,name:r}){return(0,Cs.jsx)("div",{className:"RadioGroup",children:o.map(n=>(0,Cs.jsxs)("div",{className:B("RadioGroup__choice",{active:n.value===e}),title:n.ariaLabel,children:[(0,Cs.jsx)("input",{name:r,type:"radio",checked:n.value===e,onChange:()=>t(n.value),"aria-label":n.ariaLabel}),n.label]},String(n.value)))})};h();var eg=v(T(),1),Ss=({title:t,name:e,checked:o,onChange:r,disabled:n=!1})=>(0,eg.jsx)("div",{className:B("Switch",{toggled:o,disabled:n}),children:(0,eg.jsx)("input",{name:e,id:e,title:t,type:"checkbox",checked:o,disabled:n,onChange:()=>r(!o),onKeyDown:i=>{i.key===" "&&r(!o)}})});h();var Ym=v(H(),1);var qa=v(T(),1),Ir=(0,Ym.forwardRef)(({children:t,icon:e,onClick:o,label:r,variant:n="filled",color:i="primary",size:a="medium",fullWidth:l,className:s},d)=>{let[m,c]=(0,Ym.useState)(!1),u=async f=>{let b=o?.(f);if($i(b))try{c(!0),await b}catch(x){if(x instanceof Wi)console.warn(x);else throw x}finally{c(!1)}};return(0,qa.jsx)("button",{className:B("ExcButton",`ExcButton--color-${i}`,`ExcButton--variant-${n}`,`ExcButton--size-${a}`,{"ExcButton--fullWidth":l},s),onClick:u,type:"button","aria-label":r,ref:d,disabled:m,children:(0,qa.jsxs)("div",{className:"ExcButton__contents",children:[m&&(0,qa.jsx)(Ot,{}),e&&(0,qa.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:e}),n!=="icon"&&(t??r)]})})});var Ie=v(T(),1),ek="filter"in document.createElement("canvas").getContext("2d"),tk=()=>(0,Ie.jsxs)("div",{children:[(0,Ie.jsx)("h3",{children:g("canvasError.cannotShowPreview")}),(0,Ie.jsx)("p",{children:(0,Ie.jsx)("span",{children:g("canvasError.canvasTooBig")})}),(0,Ie.jsxs)("em",{children:["(",g("canvasError.canvasTooBigTip"),")"]})]}),ok=({appStateSnapshot:t,elementsSnapshot:e,files:o,actionManager:r,onExportImage:n,name:i})=>{let a=ze(e,t),[l,s]=(0,wo.useState)(i),[d,m]=(0,wo.useState)(a),[c,u]=(0,wo.useState)(t.exportBackground),[f,b]=(0,wo.useState)(t.exportWithDarkMode),[x,y]=(0,wo.useState)(t.exportEmbedScene),[k,C]=(0,wo.useState)(t.exportScale),w=(0,wo.useRef)(null),[A,z]=(0,wo.useState)(null),{exportedElements:I,exportingFrame:M}=hi(e,t,d);return(0,wo.useEffect)(()=>{let _=w.current;if(!_)return;let $=_.offsetWidth,O=_.offsetHeight;$&&oi({elements:I,appState:{...t,name:l,exportBackground:c,exportWithDarkMode:f,exportScale:k,exportEmbedScene:x},files:o,exportPadding:sn,maxWidthOrHeight:Math.max($,O),exportingFrame:M}).then(W=>(z(null),Hr(W).then(()=>{_.replaceChildren(W)}).catch(j=>{throw j.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):j}))).catch(W=>{console.error(W),z(W)})},[t,o,I,M,l,c,f,k,x]),(0,Ie.jsxs)("div",{className:"ImageExportModal",children:[(0,Ie.jsx)("h3",{children:g("imageExportDialog.header")}),(0,Ie.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,Ie.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:w,children:A&&(0,Ie.jsx)(tk,{})}),(0,Ie.jsx)("div",{className:"ImageExportModal__preview__filename",children:!qi&&(0,Ie.jsx)("input",{type:"text",className:"TextInput",value:l,style:{width:"30ch"},onChange:_=>{s(_.target.value),r.executeAction(nh,"ui",_.target.value)}})})]}),(0,Ie.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,Ie.jsx)("h3",{children:g("imageExportDialog.header")}),a&&(0,Ie.jsx)(Ts,{label:g("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,Ie.jsx)(Ss,{name:"exportOnlySelected",checked:d,onChange:_=>{m(_)}})}),(0,Ie.jsx)(Ts,{label:g("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,Ie.jsx)(Ss,{name:"exportBackgroundSwitch",checked:c,onChange:_=>{u(_),r.executeAction(ih,"ui",_)}})}),ek&&(0,Ie.jsx)(Ts,{label:g("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,Ie.jsx)(Ss,{name:"exportDarkModeSwitch",checked:f,onChange:_=>{b(_),r.executeAction(gE,"ui",_)}})}),(0,Ie.jsx)(Ts,{label:g("imageExportDialog.label.embedScene"),tooltip:g("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,Ie.jsx)(Ss,{name:"exportEmbedSwitch",checked:x,onChange:_=>{y(_),r.executeAction(im,"ui",_)}})}),(0,Ie.jsx)(Ts,{label:g("imageExportDialog.label.scale"),name:"exportScale",children:(0,Ie.jsx)(Km,{name:"exportScale",value:k,onChange:_=>{C(_),r.executeAction(hE,"ui",_)},choices:ac.map(_=>({value:_,label:`${_}\xD7`}))})}),(0,Ie.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,Ie.jsx)(Ir,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToPng"),onClick:()=>n(oc.png,I,{exportingFrame:M}),icon:nf,children:g("imageExportDialog.button.exportToPng")}),(0,Ie.jsx)(Ir,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToSvg"),onClick:()=>n(oc.svg,I,{exportingFrame:M}),icon:nf,children:g("imageExportDialog.button.exportToSvg")}),(Qi||Lr)&&(0,Ie.jsx)(Ir,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.copyPngToClipboard"),onClick:()=>n(oc.clipboard,I,{exportingFrame:M}),icon:yd,children:g("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Ts=({label:t,children:e,tooltip:o,name:r})=>(0,Ie.jsxs)("div",{className:"ImageExportModal__settings__setting",title:t,children:[(0,Ie.jsxs)("label",{htmlFor:r,className:"ImageExportModal__settings__setting__label",children:[t,o&&(0,Ie.jsx)(vo,{label:o,long:!0,children:Ev})]}),(0,Ie.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:e})]}),h3=({elements:t,appState:e,files:o,actionManager:r,onExportImage:n,onCloseRequest:i,name:a})=>{let[{appStateSnapshot:l,elementsSnapshot:s}]=(0,wo.useState)(()=>({appStateSnapshot:fr(e),elementsSnapshot:fr(t)}));return(0,Ie.jsx)(tt,{onCloseRequest:i,size:"wide",title:!1,children:(0,Ie.jsx)(ok,{elementsSnapshot:s,appStateSnapshot:l,files:o,actionManager:r,onExportImage:n,name:a})})};h();var g3=v(T(),1),Zm=({children:t,side:e,className:o})=>(0,g3.jsx)("div",{className:B("FixedSideContainer",`FixedSideContainer_side_${e}`,o),children:t});h();var tg=v(T(),1),rk=({appState:t,isMobile:e,device:o,app:r})=>{let{activeTool:n,isResizing:i,isRotating:a,lastPointerDownWith:l}=t,s=t.multiElement!==null;if(t.openSidebar&&!o.editor.canFitSidebar)return null;if(_o(t))return g("hints.eraserRevert");if(n.type==="arrow"||n.type==="line")return s?g("hints.linearElementMulti"):g("hints.linearElement");if(n.type==="freedraw")return g("hints.freeDraw");if(n.type==="text")return g("hints.text");if(n.type==="embeddable")return g("hints.embeddable");if(t.activeTool.type==="image"&&t.pendingImageElementId)return g("hints.placeImage");let d=r.scene.getSelectedElements(t);if(i&&l==="mouse"&&d.length===1){let m=d[0];return _e(m)&&m.points.length===2?g("hints.lockAngle"):mn(m)?g("hints.resizeImage"):g("hints.resize")}if(a&&l==="mouse")return g("hints.rotate");if(d.length===1&&oe(d[0]))return g("hints.text_selected");if(t.editingElement&&oe(t.editingElement))return g("hints.text_editing");if(n.type==="selection"){if(t.draggingElement?.type==="selection"&&!d.length&&!t.editingElement&&!t.editingLinearElement)return g("hints.deepBoxSelect");if(t.gridSize&&t.draggingElement)return g("hints.disableSnapping");if(!d.length&&!e)return g("hints.canvasPanning");if(d.length===1){if(_e(d[0]))return t.editingLinearElement?t.editingLinearElement.selectedPointsIndices?g("hints.lineEditor_pointSelected"):g("hints.lineEditor_nothingSelected"):g("hints.lineEditor_info");if(!t.draggingElement&&Dr(d[0]))return g("hints.bindTextToElement")}}return null},Xm=({appState:t,isMobile:e,device:o,app:r})=>{let n=rk({appState:t,isMobile:e,device:o,app:r});return n?(n=F(n),(0,tg.jsx)("div",{className:"HintViewer",children:(0,tg.jsx)("span",{children:n})})):null};h();var ks=v(T(),1),nk="medium",b3={CHECKED:sa,UNCHECKED:ii},jm=t=>(0,ks.jsxs)("label",{className:B("ToolIcon ToolIcon__lock",`ToolIcon_size_${nk}`,{"is-mobile":t.isMobile}),title:`${t.title} \u2014 Q`,children:[(0,ks.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-lock"}),(0,ks.jsx)("div",{className:"ToolIcon__icon",children:t.checked?b3.CHECKED:b3.UNCHECKED})]});h();h();var Mi=v(T(),1),On=({heading:t,children:e,...o})=>{let{id:r}=_t(),n=(0,Mi.jsx)("h2",{className:"visually-hidden",id:`${r}-${t}-title`,children:g(`headings.${t}`)});return(0,Mi.jsx)("section",{...o,"aria-labelledby":`${r}-${t}-title`,children:typeof e=="function"?e(n):(0,Mi.jsxs)(Mi.Fragment,{children:[n,e]})})};h();var lr=4,Ar=6,x3="rgba(0,0,0,0.3)",v3=(t,e,o,r)=>{if(!t.length)return{horizontal:null,vertical:null};let[n,i,a,l]=Ze(t),s=e/r.zoom.value,d=o/r.zoom.value,m=e-s,c=o-d,u={top:parseInt(gl("sat"))||0,bottom:parseInt(gl("sab"))||0,left:parseInt(gl("sal"))||0,right:parseInt(gl("sar"))||0},f=Vr().rtl,b=-r.scrollX+m/2+u.left,x=-r.scrollY+c/2+u.top,y=b+s-u.right,k=x+d-u.bottom,C=Math.min(n,b),w=Math.min(i,x),A=Math.max(a,y),z=Math.max(l,k);return{horizontal:b===C&&y===A?null:{x:Math.max(u.left,lr)+(b-C)/(A-C)*e,y:o-Ar-Math.max(lr,u.bottom),width:(y-b)/(A-C)*e-Math.max(lr*2,u.left+u.right),height:Ar},vertical:x===w&&k===z?null:{x:f?Math.max(u.left,lr):e-Ar-Math.max(u.right,lr),y:(x-w)/(z-w)*o+Math.max(u.top,lr),width:Ar,height:(k-x)/(z-w)*o-Math.max(lr*2,u.top+u.bottom)}}},og=(t,e,o)=>{let[r,n]=[t.horizontal,t.vertical].map(a=>a!=null&&a.x<=e&&e<=a.x+a.width&&a.y<=o&&o<=a.y+a.height);return{isOverEither:r||n,isOverHorizontal:r,isOverVertical:n}};h();var Is=v(T(),1),ik="medium",qm=t=>t.penDetected?(0,Is.jsxs)("label",{className:B("ToolIcon ToolIcon__penMode",`ToolIcon_size_${ik}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Is.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Is.jsx)("div",{className:"ToolIcon__icon",children:vx})]}):null;h();var be=v(T(),1),Jm=t=>{let e=Ze(t.elements),o=na(t.elements,t.appState),r=Ze(o);return(0,be.jsx)("div",{className:"Stats",children:(0,be.jsxs)(Bt,{padding:2,children:[(0,be.jsx)("div",{className:"close",onClick:t.onClose,children:No}),(0,be.jsx)("h3",{children:g("stats.title")}),(0,be.jsx)("table",{children:(0,be.jsxs)("tbody",{children:[(0,be.jsx)("tr",{children:(0,be.jsx)("th",{colSpan:2,children:g("stats.scene")})}),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:g("stats.elements")}),(0,be.jsx)("td",{children:t.elements.length})]}),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:g("stats.width")}),(0,be.jsx)("td",{children:Math.round(e[2])-Math.round(e[0])})]}),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:g("stats.height")}),(0,be.jsx)("td",{children:Math.round(e[3])-Math.round(e[1])})]}),o.length===1&&(0,be.jsx)("tr",{children:(0,be.jsx)("th",{colSpan:2,children:g("stats.element")})}),o.length>1&&(0,be.jsxs)(be.Fragment,{children:[(0,be.jsx)("tr",{children:(0,be.jsx)("th",{colSpan:2,children:g("stats.selected")})}),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:g("stats.elements")}),(0,be.jsx)("td",{children:o.length})]})]}),o.length>0&&(0,be.jsxs)(be.Fragment,{children:[(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:"x"}),(0,be.jsx)("td",{children:Math.round(r[0])})]}),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:"y"}),(0,be.jsx)("td",{children:Math.round(r[1])})]}),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:g("stats.width")}),(0,be.jsx)("td",{children:Math.round(r[2]-r[0])})]}),(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:g("stats.height")}),(0,be.jsx)("td",{children:Math.round(r[3]-r[1])})]})]}),o.length===1&&(0,be.jsxs)("tr",{children:[(0,be.jsx)("td",{children:g("stats.angle")}),(0,be.jsx)("td",{children:`${Math.round(o[0].angle*180/Math.PI)}\xB0`})]}),t.renderCustomStats?.(t.elements,t.appState)]})})]})})};h();var y3=v(T(),1),Qm=t=>(0,y3.jsx)(se,{className:B("Shape",{fillable:!1}),type:"radio",icon:vd,name:"editor-current-shape",checked:t.checked,title:`${t.title} \u2014 H`,keyBindingLabel:t.isMobile?void 0:S.H.toLocaleUpperCase(),"aria-label":`${t.title} \u2014 H`,"aria-keyshortcuts":S.H,"data-testid":"toolbar-hand",onChange:()=>t.onChange?.()});var $e=v(T(),1),E3=({appState:t,elements:e,actionManager:o,setAppState:r,onLockToggle:n,onHandToolToggle:i,onPenModeToggle:a,renderTopRightUI:l,renderCustomStats:s,renderSidebars:d,device:m,renderWelcomeScreen:c,UIOptions:u,app:f})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:x,DefaultSidebarTriggerTunnel:y}=Ve(),k=()=>(0,$e.jsxs)(Zm,{side:"top",className:"App-top-bar",children:[c&&(0,$e.jsx)(b.Out,{}),(0,$e.jsx)(On,{heading:"shapes",children:w=>(0,$e.jsx)(Pt.Col,{gap:4,align:"center",children:(0,$e.jsxs)(Pt.Row,{gap:1,className:"App-toolbar-container",children:[(0,$e.jsxs)(Bt,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[w,(0,$e.jsx)(Pt.Row,{gap:1,children:(0,$e.jsx)($m,{appState:t,activeTool:t.activeTool,UIOptions:u,app:f})})]}),l&&l(!0,t),(0,$e.jsxs)("div",{className:"mobile-misc-tools-container",children:[!t.viewModeEnabled&&(0,$e.jsx)(y.Out,{}),(0,$e.jsx)(qm,{checked:t.penMode,onChange:()=>a(null),title:g("toolBar.penMode"),isMobile:!0,penDetected:t.penDetected}),(0,$e.jsx)(jm,{checked:t.activeTool.locked,onChange:n,title:g("toolBar.lock"),isMobile:!0}),(0,$e.jsx)(Qm,{checked:zr(t),onChange:()=>i(),title:g("toolBar.hand"),isMobile:!0})]})]})})}),(0,$e.jsx)(Xm,{appState:t,isMobile:!0,device:m,app:f})]}),C=()=>t.viewModeEnabled?(0,$e.jsx)("div",{className:"App-toolbar-content",children:(0,$e.jsx)(x.Out,{})}):(0,$e.jsxs)("div",{className:"App-toolbar-content",children:[(0,$e.jsx)(x.Out,{}),o.renderAction("toggleEditMenu"),o.renderAction("undo"),o.renderAction("redo"),o.renderAction(t.multiElement?"finalize":"duplicateSelection"),o.renderAction("deleteSelectedElements")]});return(0,$e.jsxs)($e.Fragment,{children:[d(),!t.viewModeEnabled&&k(),!t.openMenu&&t.showStats&&(0,$e.jsx)(Jm,{appState:t,setAppState:r,elements:e,onClose:()=>{o.executeAction(_n)},renderCustomStats:s}),(0,$e.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:Ar+lr*2,marginLeft:Ar+lr*2,marginRight:Ar+lr*2},children:(0,$e.jsxs)(Bt,{padding:0,children:[t.openMenu==="shape"&&!t.viewModeEnabled&&oa(t,e)?(0,$e.jsx)(On,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,$e.jsx)(Bm,{appState:t,elementsMap:f.scene.getNonDeletedElementsMap(),renderAction:o.renderAction})}):null,(0,$e.jsxs)("footer",{className:"App-toolbar",children:[C(),t.scrolledOutside&&!t.openMenu&&!t.openSidebar&&(0,$e.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{r(w=>({...ni(e,w)}))},children:g("buttons.scrollBackToContent")})]})]})})]})};h();var zn=v(H(),1);var Fn=v(T(),1),w3=t=>{let e=(0,zn.useRef)(null),[o,r]=(0,zn.useState)(null);return(0,zn.useLayoutEffect)(()=>{if(!t.spreadsheet)return;let n=x0(t.chartType,t.spreadsheet,0,0);r(n);let i,a=e.current;return(async()=>(i=await Wc(n,{exportBackground:!1,viewBackgroundColor:At.white},null),i.querySelector(".style-fonts")?.remove(),a.replaceChildren(),a.appendChild(i),t.selected&&a.parentNode.focus()))(),()=>{a.replaceChildren()}},[t.spreadsheet,t.chartType,t.selected]),(0,Fn.jsx)("button",{type:"button",className:"ChartPreview",onClick:()=>{o&&t.onClick(t.chartType,o)},children:(0,Fn.jsx)("div",{ref:e})})},C3=({setAppState:t,appState:e,onClose:o})=>{let{onInsertElements:r}=mo(),n=zn.default.useCallback(()=>{o&&o()},[o]),i=(a,l)=>{r(l),ve("paste","chart",a),t({currentChartType:a,pasteDialog:{shown:!1,data:null}})};return(0,Fn.jsx)(tt,{size:"small",onCloseRequest:n,title:g("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,Fn.jsxs)("div",{className:"container",children:[(0,Fn.jsx)(w3,{chartType:"bar",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="bar",onClick:i}),(0,Fn.jsx)(w3,{chartType:"line",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="line",onClick:i})]})})};h();var S3=v(H(),1);var G=v(T(),1),ak=()=>(0,G.jsxs)("div",{className:"HelpDialog__header",children:[(0,G.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,G.jsx)("div",{className:"HelpDialog__link-icon",children:$u}),g("helpDialog.documentation")]}),(0,G.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,G.jsx)("div",{className:"HelpDialog__link-icon",children:$u}),g("helpDialog.blog")]}),(0,G.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,G.jsx)("div",{className:"HelpDialog__link-icon",children:hd}),g("helpDialog.github")]}),(0,G.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,G.jsx)("div",{className:"HelpDialog__link-icon",children:Hv}),"YouTube"]})]}),lk=t=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)("h3",{children:t.title}),(0,G.jsx)("div",{className:"HelpDialog__islands-container",children:t.children})]}),rg=t=>(0,G.jsxs)("div",{className:`HelpDialog__island ${t.className}`,children:[(0,G.jsx)("h4",{className:"HelpDialog__island-title",children:t.caption}),(0,G.jsx)("div",{className:"HelpDialog__island-content",children:t.children})]});function*sk(t,e){let o=!0;for(let r of t)o||(yield e),o=!1,yield r}var ck=t=>t.replace(/\b[a-z]\b/,e=>e.toUpperCase()),ee=({label:t,shortcuts:e,isOr:o=!0})=>{let r=e.map(n=>(n.endsWith("++")?[...n.slice(0,-2).split("+"),"+"]:n.split("+")).map(a=>(0,G.jsx)(dk,{children:ck(a)},a)));return(0,G.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,G.jsx)("div",{children:t}),(0,G.jsx)("div",{className:"HelpDialog__key-container",children:[...sk(r,o?g("helpDialog.or"):null)]})]})},dk=t=>(0,G.jsx)("kbd",{className:"HelpDialog__key",...t}),T3=({onClose:t})=>{let e=S3.default.useCallback(()=>{t&&t()},[t]);return(0,G.jsx)(G.Fragment,{children:(0,G.jsxs)(tt,{onCloseRequest:e,title:g("helpDialog.title"),className:"HelpDialog",children:[(0,G.jsx)(ak,{}),(0,G.jsxs)(lk,{title:g("helpDialog.shortcuts"),children:[(0,G.jsxs)(rg,{className:"HelpDialog__island--tools",caption:g("helpDialog.tools"),children:[(0,G.jsx)(ee,{label:g("toolBar.hand"),shortcuts:[S.H]}),(0,G.jsx)(ee,{label:g("toolBar.selection"),shortcuts:[S.V,S[1]]}),(0,G.jsx)(ee,{label:g("toolBar.rectangle"),shortcuts:[S.R,S[2]]}),(0,G.jsx)(ee,{label:g("toolBar.diamond"),shortcuts:[S.D,S[3]]}),(0,G.jsx)(ee,{label:g("toolBar.ellipse"),shortcuts:[S.O,S[4]]}),(0,G.jsx)(ee,{label:g("toolBar.arrow"),shortcuts:[S.A,S[5]]}),(0,G.jsx)(ee,{label:g("toolBar.line"),shortcuts:[S.L,S[6]]}),(0,G.jsx)(ee,{label:g("toolBar.freedraw"),shortcuts:[S.P,S[7]]}),(0,G.jsx)(ee,{label:g("toolBar.text"),shortcuts:[S.T,S[8]]}),(0,G.jsx)(ee,{label:g("toolBar.image"),shortcuts:[S[9]]}),(0,G.jsx)(ee,{label:g("toolBar.eraser"),shortcuts:[S.E,S[0]]}),(0,G.jsx)(ee,{label:g("toolBar.frame"),shortcuts:[S.F]}),(0,G.jsx)(ee,{label:g("toolBar.laser"),shortcuts:[S.K]}),(0,G.jsx)(ee,{label:g("labels.eyeDropper"),shortcuts:[S.I,"Shift+S","Shift+G"]}),(0,G.jsx)(ee,{label:g("helpDialog.editLineArrowPoints"),shortcuts:[F("CtrlOrCmd+Enter")]}),(0,G.jsx)(ee,{label:g("helpDialog.editText"),shortcuts:[F("Enter")]}),(0,G.jsx)(ee,{label:g("helpDialog.textNewLine"),shortcuts:[F("Enter"),F("Shift+Enter")]}),(0,G.jsx)(ee,{label:g("helpDialog.textFinish"),shortcuts:[F("Esc"),F("CtrlOrCmd+Enter")]}),(0,G.jsx)(ee,{label:g("helpDialog.curvedArrow"),shortcuts:["A",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,G.jsx)(ee,{label:g("helpDialog.curvedLine"),shortcuts:["L",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,G.jsx)(ee,{label:g("toolBar.lock"),shortcuts:[S.Q]}),(0,G.jsx)(ee,{label:g("helpDialog.preventBinding"),shortcuts:[F("CtrlOrCmd")]}),(0,G.jsx)(ee,{label:g("toolBar.link"),shortcuts:[F("CtrlOrCmd+K")]})]}),(0,G.jsxs)(rg,{className:"HelpDialog__island--view",caption:g("helpDialog.view"),children:[(0,G.jsx)(ee,{label:g("buttons.zoomIn"),shortcuts:[F("CtrlOrCmd++")]}),(0,G.jsx)(ee,{label:g("buttons.zoomOut"),shortcuts:[F("CtrlOrCmd+-")]}),(0,G.jsx)(ee,{label:g("buttons.resetZoom"),shortcuts:[F("CtrlOrCmd+0")]}),(0,G.jsx)(ee,{label:g("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,G.jsx)(ee,{label:g("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,G.jsx)(ee,{label:g("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,G.jsx)(ee,{label:g("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,G.jsx)(ee,{label:g("buttons.zenMode"),shortcuts:[F("Alt+Z")]}),(0,G.jsx)(ee,{label:g("buttons.objectsSnapMode"),shortcuts:[F("Alt+S")]}),(0,G.jsx)(ee,{label:g("labels.toggleGrid"),shortcuts:[F("CtrlOrCmd+'")]}),(0,G.jsx)(ee,{label:g("labels.viewMode"),shortcuts:[F("Alt+R")]}),(0,G.jsx)(ee,{label:g("labels.toggleTheme"),shortcuts:[F("Alt+Shift+D")]}),(0,G.jsx)(ee,{label:g("stats.title"),shortcuts:[F("Alt+/")]}),(0,G.jsx)(ee,{label:g("commandPalette.title"),shortcuts:Lr?[Et("commandPalette")]:[Et("commandPalette"),Et("commandPalette",1)]})]}),(0,G.jsxs)(rg,{className:"HelpDialog__island--editor",caption:g("helpDialog.editor"),children:[(0,G.jsx)(ee,{label:g("labels.moveCanvas"),shortcuts:[F(`Space+${g("helpDialog.drag")}`),F(`Wheel+${g("helpDialog.drag")}`)],isOr:!0}),(0,G.jsx)(ee,{label:g("buttons.clearReset"),shortcuts:[F("CtrlOrCmd+Delete")]}),(0,G.jsx)(ee,{label:g("labels.delete"),shortcuts:[F("Delete")]}),(0,G.jsx)(ee,{label:g("labels.cut"),shortcuts:[F("CtrlOrCmd+X")]}),(0,G.jsx)(ee,{label:g("labels.copy"),shortcuts:[F("CtrlOrCmd+C")]}),(0,G.jsx)(ee,{label:g("labels.paste"),shortcuts:[F("CtrlOrCmd+V")]}),(0,G.jsx)(ee,{label:g("labels.pasteAsPlaintext"),shortcuts:[F("CtrlOrCmd+Shift+V")]}),(0,G.jsx)(ee,{label:g("labels.selectAll"),shortcuts:[F("CtrlOrCmd+A")]}),(0,G.jsx)(ee,{label:g("labels.multiSelect"),shortcuts:[F(`Shift+${g("helpDialog.click")}`)]}),(0,G.jsx)(ee,{label:g("helpDialog.deepSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.click")}`)]}),(0,G.jsx)(ee,{label:g("helpDialog.deepBoxSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.drag")}`)]}),(Qi||Lr)&&(0,G.jsx)(ee,{label:g("labels.copyAsPng"),shortcuts:[F("Shift+Alt+C")]}),(0,G.jsx)(ee,{label:g("labels.copyStyles"),shortcuts:[F("CtrlOrCmd+Alt+C")]}),(0,G.jsx)(ee,{label:g("labels.pasteStyles"),shortcuts:[F("CtrlOrCmd+Alt+V")]}),(0,G.jsx)(ee,{label:g("labels.sendToBack"),shortcuts:[Xo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")]}),(0,G.jsx)(ee,{label:g("labels.bringToFront"),shortcuts:[Xo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")]}),(0,G.jsx)(ee,{label:g("labels.sendBackward"),shortcuts:[F("CtrlOrCmd+[")]}),(0,G.jsx)(ee,{label:g("labels.bringForward"),shortcuts:[F("CtrlOrCmd+]")]}),(0,G.jsx)(ee,{label:g("labels.alignTop"),shortcuts:[F("CtrlOrCmd+Shift+Up")]}),(0,G.jsx)(ee,{label:g("labels.alignBottom"),shortcuts:[F("CtrlOrCmd+Shift+Down")]}),(0,G.jsx)(ee,{label:g("labels.alignLeft"),shortcuts:[F("CtrlOrCmd+Shift+Left")]}),(0,G.jsx)(ee,{label:g("labels.alignRight"),shortcuts:[F("CtrlOrCmd+Shift+Right")]}),(0,G.jsx)(ee,{label:g("labels.duplicateSelection"),shortcuts:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)]}),(0,G.jsx)(ee,{label:g("helpDialog.toggleElementLock"),shortcuts:[F("CtrlOrCmd+Shift+L")]}),(0,G.jsx)(ee,{label:g("buttons.undo"),shortcuts:[F("CtrlOrCmd+Z")]}),(0,G.jsx)(ee,{label:g("buttons.redo"),shortcuts:qs?[F("CtrlOrCmd+Y"),F("CtrlOrCmd+Shift+Z")]:[F("CtrlOrCmd+Shift+Z")]}),(0,G.jsx)(ee,{label:g("labels.group"),shortcuts:[F("CtrlOrCmd+G")]}),(0,G.jsx)(ee,{label:g("labels.ungroup"),shortcuts:[F("CtrlOrCmd+Shift+G")]}),(0,G.jsx)(ee,{label:g("labels.flipHorizontal"),shortcuts:[F("Shift+H")]}),(0,G.jsx)(ee,{label:g("labels.flipVertical"),shortcuts:[F("Shift+V")]}),(0,G.jsx)(ee,{label:g("labels.showStroke"),shortcuts:[F("S")]}),(0,G.jsx)(ee,{label:g("labels.showBackground"),shortcuts:[F("G")]}),(0,G.jsx)(ee,{label:g("labels.decreaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+<")]}),(0,G.jsx)(ee,{label:g("labels.increaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+>")]})]})]})]})})};h();var Bn=v(H(),1);var $t=v(T(),1),mk=4,pk=8,uk=({shouldWrap:t,children:e,username:o})=>t?(0,$t.jsx)(vo,{label:o||"Unknown user",children:e}):(0,$t.jsx)(Bn.default.Fragment,{children:e}),ng=({actionManager:t,collaborator:e,socketId:o,withName:r=!1,shouldWrapWithTooltip:n=!1,isBeingFollowed:i})=>{let a={socketId:o,collaborator:e,withName:r,isBeingFollowed:i},l=t.renderAction("goToCollaborator",a);return(0,$t.jsx)(uk,{username:e.username,shouldWrap:n,children:l},o)},fk=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],ep=Bn.default.memo(({className:t,mobile:e,collaborators:o,userToFollow:r})=>{let n=kt(),i=new Map;o.forEach((y,k)=>{let C=y.id||k;i.set(C,{...y,socketId:k})});let a=Array.from(i.values()).filter(y=>y.username?.trim()),[l,s]=Bn.default.useState(""),d=Bn.default.useRef(null);(0,Bn.useLayoutEffect)(()=>{if(d.current){let y=C=>{let w=Math.max(1,Math.min(8,Math.floor(C/38)));c(w)};if(y(d.current.clientWidth),!cl)return;let k=new ResizeObserver(C=>{for(let w of C){let{width:A}=w.contentRect;y(A)}});return k.observe(d.current),()=>{k.disconnect()}}},[]);let[m,c]=Bn.default.useState(mk),f=l.trim().toLowerCase()?a.filter(y=>y.username?.toLowerCase().includes(l)):a,x=a.slice(0,m-1).map(y=>ng({actionManager:n,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===r}));return e?(0,$t.jsx)("div",{className:B("UserList UserList_mobile",t),children:a.map(y=>ng({actionManager:n,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===r}))}):(0,$t.jsx)("div",{className:"UserList-wrapper",ref:d,children:(0,$t.jsxs)("div",{className:B("UserList",t),style:{"--max-avatars":m},children:[x,a.length>m-1&&(0,$t.jsxs)(qd,{onOpenChange:y=>{y||s("")},children:[(0,$t.jsxs)(Jd,{className:"UserList__more",children:["+",a.length-m+1]}),(0,$t.jsx)(Qd,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,$t.jsxs)(Bt,{style:{overflow:"hidden"},children:[a.length>=pk&&(0,$t.jsxs)("div",{className:"UserList__search-wrapper",children:[Sd,(0,$t.jsx)("input",{className:"UserList__search",type:"text",placeholder:g("userList.search.placeholder"),value:l,onChange:y=>{s(y.target.value)}})]}),(0,$t.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[f.length===0&&(0,$t.jsx)("div",{className:"UserList__collaborators__empty",children:g("userList.search.empty")}),(0,$t.jsx)("div",{className:"UserList__hint",children:g("userList.hint.text")}),f.map(y=>ng({actionManager:n,collaborator:y,socketId:y.socketId,withName:!0,isBeingFollowed:y.socketId===r}))]})]})})]})]})})},(t,e)=>{if(t.collaborators.size!==e.collaborators.size||t.mobile!==e.mobile||t.className!==e.className||t.userToFollow!==e.userToFollow)return!1;let o=e.collaborators.keys();for(let[r,n]of t.collaborators){let i=e.collaborators.get(r);if(!i||r!==o.next().value||!Tt(n,i,fk))return!1}return!0});h();var I3=v(H(),1);h();var k3=v(T(),1),ig=({children:t,color:e})=>(0,k3.jsx)("div",{className:"Card",style:{"--card-color":e==="primary"?"var(--color-primary)":At[e][7],"--card-color-darker":e==="primary"?"var(--color-primary-darker)":At[e][8],"--card-color-darkest":e==="primary"?"var(--color-primary-darkest)":At[e][9]},children:t});var It=v(T(),1),hk=({elements:t,appState:e,setAppState:o,files:r,actionManager:n,exportOpts:i,canvas:a,onCloseRequest:l})=>{let{onExportToBackend:s}=i;return(0,It.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,It.jsxs)("div",{className:"ExportDialog-cards",children:[i.saveFileToDisk&&(0,It.jsxs)(ig,{color:"lime",children:[(0,It.jsx)("div",{className:"Card-icon",children:Px}),(0,It.jsx)("h2",{children:g("exportDialog.disk_title")}),(0,It.jsxs)("div",{className:"Card-details",children:[g("exportDialog.disk_details"),!qi&&n.renderAction("changeProjectName")]}),(0,It.jsx)(se,{className:"Card-button",type:"button",title:g("exportDialog.disk_button"),"aria-label":g("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{n.executeAction(ms,"ui")}})]}),s&&(0,It.jsxs)(ig,{color:"pink",children:[(0,It.jsx)("div",{className:"Card-icon",children:Kl}),(0,It.jsx)("h2",{children:g("exportDialog.link_title")}),(0,It.jsx)("div",{className:"Card-details",children:g("exportDialog.link_details")}),(0,It.jsx)(se,{className:"Card-button",type:"button",title:g("exportDialog.link_button"),"aria-label":g("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{ve("export","link",`ui (${X1()})`),await s(t,e,r),l()}catch(d){o({errorMessage:d.message})}}})]}),i.renderCustomUI&&i.renderCustomUI(t,e,r,a)]})})},A3=({elements:t,appState:e,files:o,actionManager:r,exportOpts:n,canvas:i,setAppState:a})=>{let l=I3.default.useCallback(()=>{a({openDialog:null})},[a]);return(0,It.jsx)(It.Fragment,{children:e.openDialog?.name==="jsonExport"&&(0,It.jsx)(tt,{onCloseRequest:l,title:g("buttons.export"),children:(0,It.jsx)(hk,{elements:t,appState:e,setAppState:a,files:o,actionManager:r,onCloseRequest:l,exportOpts:n,canvas:i})})})};h();h();var _3=v(T(),1),M3=t=>(0,_3.jsx)("button",{className:"help-icon",onClick:t.onClick,type:"button",title:`${g("helpDialog.title")} \u2014 ?`,"aria-label":g("helpDialog.title"),children:da});var ao=v(T(),1),L3=({appState:t,actionManager:e,showExitZenModeBtn:o,renderWelcomeScreen:r})=>{let{FooterCenterTunnel:n,WelcomeScreenHelpHintTunnel:i}=Ve(),a=Ae(),l=!t.viewModeEnabled&&t.multiElement&&a.isTouchScreen;return(0,ao.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,ao.jsx)("div",{className:B("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled}),children:(0,ao.jsx)(Pt.Col,{gap:2,children:(0,ao.jsxs)(On,{heading:"canvasActions",children:[(0,ao.jsx)(qw,{renderAction:e.renderAction,zoom:t.zoom}),!t.viewModeEnabled&&(0,ao.jsx)(Jw,{renderAction:e.renderAction,className:B("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":t.zenModeEnabled})}),l&&(0,ao.jsx)(e3,{renderAction:e.renderAction,className:B("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled})})]})})}),(0,ao.jsx)(n.Out,{}),(0,ao.jsx)("div",{className:B("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:(0,ao.jsxs)("div",{style:{position:"relative"},children:[r&&(0,ao.jsx)(i.Out,{}),(0,ao.jsx)(M3,{onClick:()=>e.executeAction(xi)})]})}),(0,ao.jsx)(Qw,{actionManager:e,showExitZenModeBtn:o})]})},P3=L3;L3.displayName="Footer";h();var wt=v(H(),1);h();var R3=v(H(),1),tp=R3.default.createContext({});h();var D3=v(H(),1);var _i=v(T(),1),ag=({children:t,className:e})=>{let o=Ae(),r=(0,D3.useContext)(tp),n=!!(o.editor.canFitSidebar&&r.shouldRenderDockButton);return(0,_i.jsxs)("div",{className:B("sidebar__header",e),"data-testid":"sidebar-header",children:[t,(0,_i.jsxs)("div",{className:"sidebar__header__buttons",children:[n&&(0,_i.jsx)(vo,{label:g("labels.sidebarLock"),children:(0,_i.jsx)(Tr,{onSelect:()=>r.onDock?.(!r.docked),selected:!!r.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":g("labels.sidebarLock"),children:cx})}),(0,_i.jsx)(Tr,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:r.onCloseRequest,"aria-label":g("buttons.close"),children:No})]})]})};ag.displayName="SidebarHeader";h();var Li=v(T(),1),lg=({name:t,tab:e,icon:o,title:r,children:n,onToggle:i,className:a,style:l})=>{let s=Pe(),d=Le();return(0,Li.jsxs)("label",{title:r,className:"sidebar-trigger__label-element",children:[(0,Li.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:m=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let c=m.target.checked;s({openSidebar:c?{name:t,tab:e}:null}),i?.(c)},checked:d.openSidebar?.name===t,"aria-label":r,"aria-keyshortcuts":"0"}),(0,Li.jsxs)("div",{className:B("sidebar-trigger",a),style:l,children:[o&&(0,Li.jsx)("div",{children:o}),n&&(0,Li.jsx)("div",{className:"sidebar-trigger__label",children:n})]})]})};lg.displayName="SidebarTrigger";h();h();var Rt=v(H());h();var Ke=v(H());h();var sr=v(H());function N3(t){let e=t+"CollectionProvider",[o,r]=wr(e),[n,i]=o(e,{collectionRef:{current:null},itemMap:new Map}),a=f=>{let{scope:b,children:x}=f,y=sr.default.useRef(null),k=sr.default.useRef(new Map).current;return sr.default.createElement(n,{scope:b,itemMap:k,collectionRef:y},x)},l=t+"CollectionSlot",s=sr.default.forwardRef((f,b)=>{let{scope:x,children:y}=f,k=i(l,x),C=Ft(b,k.collectionRef);return sr.default.createElement(wn,{ref:C},y)}),d=t+"CollectionItemSlot",m="data-radix-collection-item",c=sr.default.forwardRef((f,b)=>{let{scope:x,children:y,...k}=f,C=sr.default.useRef(null),w=Ft(b,C),A=i(d,x);return sr.default.useEffect(()=>(A.itemMap.set(C,{ref:C,...k}),()=>void A.itemMap.delete(C))),sr.default.createElement(wn,{[m]:"",ref:w},y)});function u(f){let b=i(t+"CollectionConsumer",f);return sr.default.useCallback(()=>{let y=b.collectionRef.current;if(!y)return[];let k=Array.from(y.querySelectorAll(`[${m}]`));return Array.from(b.itemMap.values()).sort((A,z)=>k.indexOf(A.ref.current)-k.indexOf(z.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:s,ItemSlot:c},u,r]}h();var As=v(H()),gk=(0,As.createContext)(void 0);function op(t){let e=(0,As.useContext)(gk);return t||e||"ltr"}var sg="rovingFocusGroup.onEntryFocus",bk={bubbles:!1,cancelable:!0},dg="RovingFocusGroup",[cg,O3,xk]=N3(dg),[vk,mg]=wr(dg,[xk]),[yk,Ek]=vk(dg),wk=(0,Ke.forwardRef)((t,e)=>(0,Ke.createElement)(cg.Provider,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(cg.Slot,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(Ck,Ce({},t,{ref:e}))))),Ck=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,orientation:r,loop:n=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:s,onEntryFocus:d,...m}=t,c=(0,Ke.useRef)(null),u=Ft(e,c),f=op(i),[b=null,x]=ka({prop:a,defaultProp:l,onChange:s}),[y,k]=(0,Ke.useState)(!1),C=ro(d),w=O3(o),A=(0,Ke.useRef)(!1),[z,I]=(0,Ke.useState)(0);return(0,Ke.useEffect)(()=>{let M=c.current;if(M)return M.addEventListener(sg,C),()=>M.removeEventListener(sg,C)},[C]),(0,Ke.createElement)(yk,{scope:o,orientation:r,dir:f,loop:n,currentTabStopId:b,onItemFocus:(0,Ke.useCallback)(M=>x(M),[x]),onItemShiftTab:(0,Ke.useCallback)(()=>k(!0),[]),onFocusableItemAdd:(0,Ke.useCallback)(()=>I(M=>M+1),[]),onFocusableItemRemove:(0,Ke.useCallback)(()=>I(M=>M-1),[])},(0,Ke.createElement)(dt.div,Ce({tabIndex:y||z===0?-1:0,"data-orientation":r},m,{ref:u,style:{outline:"none",...t.style},onMouseDown:vt(t.onMouseDown,()=>{A.current=!0}),onFocus:vt(t.onFocus,M=>{let _=!A.current;if(M.target===M.currentTarget&&_&&!y){let $=new CustomEvent(sg,bk);if(M.currentTarget.dispatchEvent($),!$.defaultPrevented){let O=w().filter(ne=>ne.focusable),W=O.find(ne=>ne.active),j=O.find(ne=>ne.id===b),Z=[W,j,...O].filter(Boolean).map(ne=>ne.ref.current);F3(Z)}}A.current=!1}),onBlur:vt(t.onBlur,()=>k(!1))})))}),Sk="RovingFocusGroupItem",Tk=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,focusable:r=!0,active:n=!1,tabStopId:i,...a}=t,l=wa(),s=i||l,d=Ek(Sk,o),m=d.currentTabStopId===s,c=O3(o),{onFocusableItemAdd:u,onFocusableItemRemove:f}=d;return(0,Ke.useEffect)(()=>{if(r)return u(),()=>f()},[r,u,f]),(0,Ke.createElement)(cg.ItemSlot,{scope:o,id:s,focusable:r,active:n},(0,Ke.createElement)(dt.span,Ce({tabIndex:m?0:-1,"data-orientation":d.orientation},a,{ref:e,onMouseDown:vt(t.onMouseDown,b=>{r?d.onItemFocus(s):b.preventDefault()}),onFocus:vt(t.onFocus,()=>d.onItemFocus(s)),onKeyDown:vt(t.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let x=Ak(b,d.orientation,d.dir);if(x!==void 0){b.preventDefault();let k=c().filter(C=>C.focusable).map(C=>C.ref.current);if(x==="last")k.reverse();else if(x==="prev"||x==="next"){x==="prev"&&k.reverse();let C=k.indexOf(b.currentTarget);k=d.loop?Mk(k,C+1):k.slice(C+1)}setTimeout(()=>F3(k))}})})))}),kk={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Ik(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function Ak(t,e,o){let r=Ik(t.key,o);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return kk[r]}function F3(t){let e=document.activeElement;for(let o of t)if(o===e||(o.focus(),document.activeElement!==e))return}function Mk(t,e){return t.map((o,r)=>t[(e+r)%t.length])}var z3=wk,B3=Tk;var $3="Tabs",[_k,PJ]=wr($3,[mg]),H3=mg(),[Lk,pg]=_k($3),Pk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,onValueChange:n,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:s="automatic",...d}=t,m=op(l),[c,u]=ka({prop:r,onChange:n,defaultProp:i});return(0,Rt.createElement)(Lk,{scope:o,baseId:wa(),value:c,onValueChange:u,orientation:a,dir:m,activationMode:s},(0,Rt.createElement)(dt.div,Ce({dir:m,"data-orientation":a},d,{ref:e})))}),Rk="TabsList",Dk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,loop:r=!0,...n}=t,i=pg(Rk,o),a=H3(o);return(0,Rt.createElement)(z3,Ce({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),(0,Rt.createElement)(dt.div,Ce({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),Nk="TabsTrigger",Ok=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,disabled:n=!1,...i}=t,a=pg(Nk,o),l=H3(o),s=U3(a.baseId,r),d=W3(a.baseId,r),m=r===a.value;return(0,Rt.createElement)(B3,Ce({asChild:!0},l,{focusable:!n,active:m}),(0,Rt.createElement)(dt.button,Ce({type:"button",role:"tab","aria-selected":m,"aria-controls":d,"data-state":m?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:s},i,{ref:e,onMouseDown:vt(t.onMouseDown,c=>{!n&&c.button===0&&c.ctrlKey===!1?a.onValueChange(r):c.preventDefault()}),onKeyDown:vt(t.onKeyDown,c=>{[" ","Enter"].includes(c.key)&&a.onValueChange(r)}),onFocus:vt(t.onFocus,()=>{let c=a.activationMode!=="manual";!m&&!n&&c&&a.onValueChange(r)})})))}),Fk="TabsContent",zk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,forceMount:n,children:i,...a}=t,l=pg(Fk,o),s=U3(l.baseId,r),d=W3(l.baseId,r),m=r===l.value,c=(0,Rt.useRef)(m);return(0,Rt.useEffect)(()=>{let u=requestAnimationFrame(()=>c.current=!1);return()=>cancelAnimationFrame(u)},[]),(0,Rt.createElement)(Ta,{present:n||m},({present:u})=>(0,Rt.createElement)(dt.div,Ce({"data-state":m?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":s,hidden:!u,id:d,tabIndex:0},a,{ref:e,style:{...t.style,animationDuration:c.current?"0s":void 0}}),u&&i))});function U3(t,e){return`${t}-trigger-${e}`}function W3(t,e){return`${t}-content-${e}`}var rp=Pk,np=Dk,ip=Ok,ap=zk;var G3=v(T(),1),ug=({children:t,...e})=>(0,G3.jsx)(np,{className:"sidebar-triggers",...e,children:t});ug.displayName="SidebarTabTriggers";h();var fg=v(T(),1),hg=({children:t,tab:e,onSelect:o,...r})=>(0,fg.jsx)(ip,{value:e,asChild:!0,onSelect:o,children:(0,fg.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...r,children:t})});hg.displayName="SidebarTabTrigger";h();var V3=v(T(),1),gg=({children:t,...e})=>{let o=Le(),r=Pe();if(!o.openSidebar)return null;let{name:n}=o.openSidebar;return(0,V3.jsx)(rp,{className:"sidebar-tabs-root",value:o.openSidebar.tab,onValueChange:i=>r(a=>({...a,openSidebar:{...a.openSidebar,name:n,tab:i}})),...e,children:t})};gg.displayName="SidebarTabs";h();var K3=v(T(),1),bg=({tab:t,children:e,...o})=>(0,K3.jsx)(ap,{...o,value:t,"data-testid":t,children:e});bg.displayName="SidebarTab";var xg=v(T(),1),Z3=v(H(),1),Ms=Ue(!1),Y3=(0,wt.forwardRef)(({name:t,children:e,onDock:o,docked:r,className:n,...i},a)=>{E.DEV&&o&&r==null&&console.warn("Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`");let l=Pe(),s=Gr(Ms,Ne);(0,wt.useLayoutEffect)(()=>(s(!!r),()=>{s(!1)}),[s,r]);let d=(0,wt.useRef)({});d.current.onCloseRequest=()=>{l({openSidebar:null})},d.current.onDock=f=>o?.(f),d.current=Bi(d.current,{docked:r,shouldRenderDockButton:!!o&&r!=null});let m=(0,wt.useRef)(null);(0,wt.useImperativeHandle)(a,()=>m.current);let c=Ae(),u=(0,wt.useCallback)(()=>{document.querySelector(".Dialog")||l({openSidebar:null})},[l]);return Pa(m,(0,wt.useCallback)(f=>{f.target.closest(".sidebar-trigger")||(!r||!c.editor.canFitSidebar)&&u()},[u,r,c.editor.canFitSidebar])),(0,wt.useEffect)(()=>{let f=b=>{b.key===S.ESCAPE&&(!r||!c.editor.canFitSidebar)&&u()};return document.addEventListener("keydown",f),()=>{document.removeEventListener("keydown",f)}},[u,r,c.editor.canFitSidebar]),(0,xg.jsx)(Bt,{...i,className:B("sidebar",{"sidebar--docked":r},n),ref:m,children:(0,xg.jsx)(tp.Provider,{value:d.current,children:e})})});Y3.displayName="SidebarInner";var en=Object.assign((0,wt.forwardRef)((t,e)=>{let o=Le(),{onStateChange:r}=t,n=(0,wt.useRef)(o.openSidebar);(0,wt.useEffect)(()=>{(!o.openSidebar&&n?.current?.name===t.name||o.openSidebar?.name===t.name&&n?.current?.name!==t.name||n.current?.name===t.name)&&o.openSidebar!==n.current&&r?.(o.openSidebar?.name!==t.name?null:o.openSidebar),n.current=o.openSidebar},[o.openSidebar,r,t.name]);let[i,a]=(0,wt.useState)(!1);return(0,wt.useLayoutEffect)(()=>(a(!0),()=>a(!1)),[]),i&&o.openSidebar?.name===t.name?(0,Z3.createElement)(Y3,{...t,ref:e,key:t.name}):null}),{Header:ag,TabTriggers:ug,TabTrigger:hg,Tabs:gg,Tab:bg,Trigger:lg});en.displayName="Sidebar";h();var yg={};i1(yg,{ChangeCanvasBackground:()=>i5,ClearCanvas:()=>r5,CommandPalette:()=>t5,Export:()=>a5,Help:()=>o5,LiveCollaborationTrigger:()=>s5,LoadScene:()=>J3,SaveAsImage:()=>e5,SaveToActiveFile:()=>Q3,Socials:()=>l5,ToggleTheme:()=>n5});h();h();var vg=Ue({active:!1});async function X3({title:t,description:e,actionLabel:o,color:r}){return new Promise(n=>{Gt.set(vg,{active:!0,onConfirm:()=>n(!0),onClose:()=>n(!1),onReject:()=>n(!1),title:t,description:e,actionLabel:o,color:r})})}h();var tn=v(T(),1),j3=({value:t,shortcut:e,onChange:o,choices:r,children:n,name:i})=>{let a=Ae();return(0,tn.jsxs)(tn.Fragment,{children:[(0,tn.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,tn.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:i,children:n}),(0,tn.jsx)(Km,{name:i,value:t,onChange:o,choices:r})]}),e&&!a.editor.isMobile&&(0,tn.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:e})]})};j3.displayName="DropdownMenuItemContentRadio";var q3=j3;var ot=v(T(),1),J3=()=>{let{t}=xt(),e=kt(),o=In();return e.isActionEnabled(Oa)?(0,ot.jsx)($o,{icon:ma,onSelect:async()=>{(!o.length||await X3({title:t("overwriteConfirm.modal.loadFromFile.title"),actionLabel:t("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,ot.jsx)(io,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:n=>(0,ot.jsx)("strong",{children:n}),br:()=>(0,ot.jsx)("br",{})})}))&&e.executeAction(Oa)},"data-testid":"load-button",shortcut:Et("loadScene"),"aria-label":t("buttons.load"),children:t("buttons.load")}):null};J3.displayName="LoadScene";var Q3=()=>{let{t}=xt(),e=kt();return e.isActionEnabled(am)?(0,ot.jsx)($o,{shortcut:Et("saveScene"),"data-testid":"save-button",onSelect:()=>e.executeAction(am),icon:Mx,"aria-label":`${t("buttons.save")}`,children:`${t("buttons.save")}`}):null};Q3.displayName="SaveToActiveFile";var e5=()=>{let t=Pe(),{t:e}=xt();return(0,ot.jsx)($o,{icon:bd,"data-testid":"image-export-button",onSelect:()=>t({openDialog:{name:"imageExport"}}),shortcut:Et("imageExport"),"aria-label":e("buttons.exportImage"),children:e("buttons.exportImage")})};e5.displayName="SaveAsImage";var t5=t=>{let e=Pe(),{t:o}=xt();return(0,ot.jsx)($o,{icon:Td,"data-testid":"command-palette-button",onSelect:()=>{ve("command_palette","open","menu"),e({openDialog:{name:"commandPalette"}})},shortcut:Et("commandPalette"),"aria-label":o("commandPalette.title"),className:t?.className,children:o("commandPalette.title")})};t5.displayName="CommandPalette";var o5=()=>{let{t}=xt(),e=kt();return(0,ot.jsx)($o,{"data-testid":"help-menu-item",icon:da,onSelect:()=>e.executeAction(xi),shortcut:"?","aria-label":t("helpDialog.title"),children:t("helpDialog.title")})};o5.displayName="Help";var r5=()=>{let{t}=xt(),e=Gr(Ii,Ne);return kt().isActionEnabled(jr)?(0,ot.jsx)($o,{icon:or,onSelect:()=>e("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":t("buttons.clearReset"),children:t("buttons.clearReset")}):null};r5.displayName="ClearCanvas";var n5=t=>{let{t:e}=xt(),o=Le(),r=kt(),n=Et("toggleTheme");return r.isActionEnabled(ui)?t?.allowSystemTheme?(0,ot.jsx)(q3,{name:"theme",value:t.theme,onChange:i=>t.onSelect(i),choices:[{value:xe.LIGHT,label:Vl,ariaLabel:`${e("buttons.lightMode")} - ${n}`},{value:xe.DARK,label:Gl,ariaLabel:`${e("buttons.darkMode")} - ${n}`},{value:"system",label:$v,ariaLabel:e("buttons.systemMode")}],children:e("labels.theme")}):(0,ot.jsx)($o,{onSelect:i=>{if(i.preventDefault(),t?.onSelect)t.onSelect(o.theme===xe.DARK?xe.LIGHT:xe.DARK);else return r.executeAction(ui)},icon:o.theme===xe.DARK?Vl:Gl,"data-testid":"toggle-dark-mode",shortcut:n,"aria-label":o.theme===xe.DARK?e("buttons.lightMode"):e("buttons.darkMode"),children:o.theme===xe.DARK?e("buttons.lightMode"):e("buttons.darkMode")}):null};n5.displayName="ToggleTheme";var i5=()=>{let{t}=xt(),e=Le(),o=kt(),r=Ln();return e.viewModeEnabled||!r.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,ot.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,ot.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:t("labels.canvasBackground")}),(0,ot.jsx)("div",{style:{padding:"0 0.625rem"},children:o.renderAction("changeViewBackgroundColor")})]})};i5.displayName="ChangeCanvasBackground";var a5=()=>{let{t}=xt(),e=Pe();return(0,ot.jsx)($o,{icon:ai,onSelect:()=>{e({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":t("buttons.export"),children:t("buttons.export")})};a5.displayName="Export";var l5=()=>{let{t}=xt();return(0,ot.jsxs)(ot.Fragment,{children:[(0,ot.jsx)(Ka,{icon:hd,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,ot.jsx)(Ka,{icon:Ix,href:"https://x.com/excalidraw","aria-label":"X",children:t("labels.followUs")}),(0,ot.jsx)(Ka,{icon:kx,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:t("labels.discordChat")})]})};l5.displayName="Socials";var s5=({onSelect:t,isCollaborating:e})=>{let{t:o}=xt();return(0,ot.jsx)($o,{"data-testid":"collab-button",icon:xd,className:B({"active-collab":e}),onSelect:t,children:o("labels.liveCollaboration")})};s5.displayName="LiveCollaborationTrigger";h();var lp=v(H(),1);var c5=v(T(),1),on=(t,e)=>{let o=Ue(0),r=n=>{let{jotaiScope:i}=Ve(),[,a]=Se(o,i),l=(0,lp.useRef)({preferHost:!1,counter:0});return(0,lp.useLayoutEffect)(()=>{let s=l.current;return a(d=>{let m=d+1;return s.counter=m,m}),()=>{a(d=>{let m=d-1;return s.counter=m,m||(s.preferHost=!1),m})}},[a]),n.__fallback||(l.current.preferHost=!0),!l.current.counter&&n.__fallback&&l.current.preferHost||l.current.counter>1&&n.__fallback?null:(0,c5.jsx)(e,{...n})};return r.displayName=t,r};var rn=v(T(),1),Bk=Object.assign(on("MainMenu",({children:t,onSelect:e})=>{let{MainMenuTunnel:o}=Ve(),r=Ae(),n=Le(),i=Pe(),a=r.editor.isMobile?void 0:()=>i({openMenu:null});return(0,rn.jsx)(o.In,{children:(0,rn.jsxs)(De,{open:n.openMenu==="canvas",children:[(0,rn.jsx)(De.Trigger,{onToggle:()=>{i({openMenu:n.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:fd}),(0,rn.jsxs)(De.Content,{onClickOutside:a,onSelect:dn(e,()=>{i({openMenu:null})}),children:[t,r.editor.isMobile&&n.collaborators.size>0&&(0,rn.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,rn.jsx)("legend",{children:g("labels.collaborators")}),(0,rn.jsx)(ep,{mobile:!0,collaborators:n.collaborators,userToFollow:n.userToFollow?.socketId||null})]})]})]})})}),{Trigger:De.Trigger,Item:De.Item,ItemLink:De.ItemLink,ItemCustom:De.ItemCustom,Group:De.Group,Separator:De.Separator,DefaultItems:yg}),lo=Bk;h();h();var nn=v(T(),1),sp=({title:t,children:e,actionLabel:o,onClick:r})=>(0,nn.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,nn.jsx)("h4",{children:t}),(0,nn.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:e}),(0,nn.jsx)(Ir,{variant:"outlined",color:"muted",label:o,size:"large",fullWidth:!0,onClick:r})]}),$k=()=>{let{t}=xt(),e=kt(),o=Pe();return(0,nn.jsx)(sp,{title:t("overwriteConfirm.action.exportToImage.title"),actionLabel:t("overwriteConfirm.action.exportToImage.button"),onClick:()=>{e.executeAction(im,"ui",!0),o({openDialog:{name:"imageExport"}})},children:t("overwriteConfirm.action.exportToImage.description")})},Hk=()=>{let{t}=xt(),e=kt();return(0,nn.jsx)(sp,{title:t("overwriteConfirm.action.saveToDisk.title"),actionLabel:t("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{e.executeAction(ms,"ui")},children:t("overwriteConfirm.action.saveToDisk.description")})},Eg=Object.assign(({children:t})=>(0,nn.jsx)("div",{className:"OverwriteConfirm__Actions",children:t}),{ExportToImage:$k,SaveToDisk:Hk});var Wo=v(T(),1),cp=Object.assign(on("OverwriteConfirmDialog",({children:t})=>{let{OverwriteConfirmDialogTunnel:e}=Ve(),[o,r]=Se(vg,Ne);if(!o.active)return null;let n=()=>{o.onClose(),r(a=>({...a,active:!1}))},i=()=>{o.onConfirm(),r(a=>({...a,active:!1}))};return(0,Wo.jsx)(e.In,{children:(0,Wo.jsx)(tt,{onCloseRequest:n,title:!1,size:916,children:(0,Wo.jsxs)("div",{className:"OverwriteConfirm",children:[(0,Wo.jsx)("h3",{children:o.title}),(0,Wo.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${o.color}`,children:[(0,Wo.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:wv}),(0,Wo.jsx)("div",{children:o.description}),(0,Wo.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,Wo.jsx)(Ir,{color:o.color,size:"large",label:o.actionLabel,onClick:i})]}),(0,Wo.jsx)(Eg,{children:t})]})})})}),{Actions:Eg,Action:sp});h();var Go=v(T(),1),p5=v(H(),1),d5=on("DefaultSidebarTrigger",t=>{let{DefaultSidebarTriggerTunnel:e}=Ve();return(0,Go.jsx)(e.In,{children:(0,Go.jsx)(en.Trigger,{...t,className:"default-sidebar-trigger",name:Jo.name})})});d5.displayName="DefaultSidebarTrigger";var m5=({children:t,...e})=>{let{DefaultSidebarTabTriggersTunnel:o}=Ve();return(0,Go.jsx)(o.In,{children:(0,Go.jsx)(en.TabTriggers,{...e,children:t})})};m5.displayName="DefaultTabTriggers";var dp=Object.assign(on("DefaultSidebar",({children:t,className:e,onDock:o,docked:r,...n})=>{let i=Le(),a=Pe(),{DefaultSidebarTabTriggersTunnel:l}=Ve();return(0,p5.createElement)(en,{...n,name:"default",key:"default",className:B("default-sidebar",e),docked:r??i.defaultSidebarDockedPreference,onDock:o===!1||!o&&r!=null?void 0:dn(o,s=>{a({defaultSidebarDockedPreference:s})})},(0,Go.jsxs)(en.Tabs,{children:[(0,Go.jsxs)(en.Header,{children:[n.__fallback&&(0,Go.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:g("toolBar.library")}),(0,Go.jsx)(l.Out,{})]}),(0,Go.jsx)(en.Tab,{tab:cc,children:(0,Go.jsx)(Sw,{})}),t]}))}),{Trigger:d5,TabTriggers:m5});h();var _s=v(T(),1),Uk="small",u5=t=>(0,_s.jsxs)("label",{className:B("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${Uk}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,_s.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-LaserPointer"}),(0,_s.jsx)("div",{className:"ToolIcon__icon",children:Cd})]});h();var Cg=v(H(),1);h();var f5=v(T(),1),Ja=t=>(0,f5.jsx)("p",{className:"excalidraw__paragraph",style:t.style,children:t.children});h();var wg=v(H(),1);var g5=v(T(),1),h5=t=>{let e=Pe(),o=(0,wg.useRef)(null),r=(0,wg.useRef)(0);return(0,g5.jsx)(rp,{ref:o,className:"ttd-dialog-tabs-root",value:t.tab,onValueChange:n=>{if(!n)return;let i=o.current?.closest(".Modal__content");if(i){let a=i.offsetHeight||0;a>r.current&&(r.current=a,i.style.minHeight=`min(${r.current}px, 100%)`)}t.dialog==="settings"&&qp(["text-to-diagram","diagram-to-code"],n)?e({openDialog:{name:t.dialog,tab:n,source:"settings"}}):t.dialog==="ttd"&&qp(["text-to-diagram","mermaid"],n)&&e({openDialog:{name:t.dialog,tab:n}})},children:t.children})};h5.displayName="TTDDialogTabs";var mp=h5;h();var b5=v(T(),1),Qa=({tab:t,children:e,...o})=>(0,b5.jsx)(ap,{...o,value:t,children:e});Qa.displayName="TTDDialogTab";var gt=v(T(),1),x5=t=>{let[e,o]=(0,Cg.useState)(t.openAIKey||""),[r,n]=(0,Cg.useState)(t.isPersisted),i=Le(),a=()=>{t.onConfirm(e.trim(),r)};return i.openDialog?.name!=="settings"?null:(0,gt.jsx)(tt,{onCloseRequest:()=>{t.onClose(),t.onConfirm(e.trim(),r)},title:(0,gt.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,gt.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,gt.jsx)(mp,{dialog:"settings",tab:i.openDialog.tab,children:(0,gt.jsxs)(Qa,{tab:"diagram-to-code",children:[(0,gt.jsxs)(Ja,{children:["For the diagram-to-code feature we use"," ",(0,gt.jsx)(Nn,{icon:Yl}),"OpenAI."]}),(0,gt.jsxs)(Ja,{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,gt.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,gt.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,gt.jsx)(Ja,{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,gt.jsx)(Om,{isRedacted:!0,value:e,placeholder:"Paste your API key here",label:"OpenAI API key",onChange:l=>{o(l),t.onChange(l.trim(),r)},selectOnRender:!0,onKeyDown:l=>l.key===S.ENTER&&a()}),(0,gt.jsx)(Ja,{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,gt.jsx)(bi,{checked:r,onChange:n,children:"Persist API key in browser storage"}),(0,gt.jsxs)(Ja,{children:["Once API key is set, you can use the ",(0,gt.jsx)(Nn,{icon:ua})," ","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,gt.jsx)("b",{children:"AI Settings"})," ",(0,gt.jsx)(Nn,{icon:Yl}),"."]}),(0,gt.jsx)(Ir,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:a})]})})})};h();h();var cr=v(H(),1);h();var Wk=({canvasRef:t,setError:e})=>{let o=t.current;if(!o)return;let r=o.parentElement;r&&(r.style.background="",e(null),o.replaceChildren())},pp=async({canvasRef:t,mermaidToExcalidrawLib:e,mermaidDefinition:o,setError:r,data:n})=>{let i=t.current,a=i?.parentElement;if(!(!i||!a)){if(!o){Wk({canvasRef:t,setError:r});return}try{let l=await e.api,s;try{s=await l.parseMermaidToExcalidraw(o,{fontSize:qo})}catch{s=await l.parseMermaidToExcalidraw(o.replace(/"/g,"'"),{fontSize:qo})}let{elements:d,files:m}=s;r(null),n.current={elements:el(d,{regenerateIds:!0}),files:m};let c=await oi({elements:n.current.elements,files:n.current.files,exportPadding:sn,maxWidthOrHeight:Math.max(a.offsetWidth,a.offsetHeight)*window.devicePixelRatio});try{await Hr(c)}catch(u){throw u.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):u}a.style.background="var(--default-bg-color)",i.replaceChildren(c)}catch(l){throw a.style.background="var(--default-bg-color)",o&&r(l),l}}},Ls=t=>{fo.set(ko.MERMAID_TO_EXCALIDRAW,t)},up=({app:t,data:e,text:o,shouldSaveMermaidDataToStorage:r})=>{let{elements:n,files:i}=e.current;n.length&&(t.addElementsFromPasteOrLibrary({elements:n,files:i,position:"center",fitToContent:!0}),t.setOpenDialog(null),r&&o&&Ls(o))};h();var v5=v(T(),1),fp=({children:t})=>(0,v5.jsx)("div",{className:"ttd-dialog-panels",children:t});h();var Mr=v(T(),1),tl=({label:t,children:e,panelAction:o,panelActionDisabled:r=!1,onTextSubmitInProgess:n,renderTopRight:i,renderSubmitShortcut:a,renderBottomRight:l})=>(0,Mr.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,Mr.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,Mr.jsx)("label",{children:t}),i?.()]}),e,(0,Mr.jsxs)("div",{className:B("ttd-dialog-panel-button-container",{invisible:!o}),style:{display:"flex",alignItems:"center"},children:[(0,Mr.jsxs)(Tr,{className:"ttd-dialog-panel-button",onSelect:o?o.action:()=>{},disabled:r||n,children:[(0,Mr.jsxs)("div",{className:B({invisible:n}),children:[o?.label,o?.icon&&(0,Mr.jsx)("span",{children:o.icon})]}),n&&(0,Mr.jsx)(Ot,{})]}),!r&&!n&&a?.(),l?.()]})]});h();var Ps=v(H(),1);var y5=v(T(),1),hp=({input:t,placeholder:e,onChange:o,onKeyboardSubmit:r})=>{let n=(0,Ps.useRef)(null),i=(0,Ps.useRef)(r);return i.current=r,(0,Ps.useEffect)(()=>{if(!i.current)return;let a=n.current;if(a){let l=s=>{s[S.CTRL_OR_CMD]&&s.key===S.ENTER&&(s.preventDefault(),i.current?.())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l)}}},[]),(0,y5.jsx)("textarea",{className:"ttd-dialog-input",onChange:o,value:t,placeholder:e,autoFocus:!0,ref:n})};h();var Hn=v(T(),1),Gk=({error:t})=>(0,Hn.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,Hn.jsx)("p",{children:t})]}),gp=({error:t,canvasRef:e,loaded:o})=>(0,Hn.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[t&&(0,Hn.jsx)(Gk,{error:t.message}),o?(0,Hn.jsx)("div",{ref:e,style:{opacity:t?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,Hn.jsx)(Ot,{size:"2rem"})]});h();var Rs=v(T(),1),bp=()=>(0,Rs.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Rs.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("CtrlOrCmd")}),(0,Rs.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("Enter")})]});var jt=v(T(),1),Vk=`flowchart TD
46
46
  A[Christmas] -->|Get money| B(Go shopping)
47
47
  B --> C{Let me think}
48
48
  C -->|One| D[Laptop]
49
49
  C -->|Two| E[iPhone]
50
- C -->|Three| F[Car]`,y5=pl(Is,300),Gk=({mermaidToExcalidrawLib:t})=>{let[e,o]=(0,lr.useState)(()=>fo.get(So.MERMAID_TO_EXCALIDRAW)||Wk),r=(0,lr.useDeferredValue)(e.trim()),[n,i]=(0,lr.useState)(null),a=(0,lr.useRef)(null),l=(0,lr.useRef)({elements:[],files:null}),s=mo();(0,lr.useEffect)(()=>{sp({canvasRef:a,data:l,mermaidToExcalidrawLib:t,setError:i,mermaidDefinition:r}).catch(c=>{K1()&&console.error("Failed to parse mermaid definition",c)}),y5(r)},[r,t]),(0,lr.useEffect)(()=>()=>{y5.flush()},[]);let d=()=>{cp({app:s,data:l,text:e,shouldSaveMermaidDataToStorage:!0})};return(0,jt.jsxs)(jt.Fragment,{children:[(0,jt.jsx)("div",{className:"ttd-dialog-desc",children:(0,jt.jsx)(no,{i18nKey:"mermaid.description",flowchartLink:c=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:c}),sequenceLink:c=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:c}),classLink:c=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:c})})}),(0,jt.jsxs)(dp,{children:[(0,jt.jsx)(Ja,{label:g("mermaid.syntax"),children:(0,jt.jsx)(mp,{input:e,placeholder:"Write Mermaid diagram defintion here...",onChange:c=>o(c.target.value),onKeyboardSubmit:()=>{d()}})}),(0,jt.jsx)(Ja,{label:g("mermaid.preview"),panelAction:{action:()=>{d()},label:g("mermaid.button"),icon:da},renderSubmitShortcut:()=>(0,jt.jsx)(up,{}),children:(0,jt.jsx)(pp,{canvasRef:a,loaded:t.loaded,error:n})})]})]})},E5=Gk;var sr=v(H(),1);h();var w5=v(k(),1),Eg=({children:t,...e})=>(0,w5.jsx)(ep,{className:"ttd-dialog-triggers",...e,children:t});Eg.displayName="TTDDialogTabTriggers";h();var wg=v(k(),1),fp=({children:t,tab:e,onSelect:o,...r})=>(0,wg.jsx)(tp,{value:e,asChild:!0,onSelect:o,children:(0,wg.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...r,children:t})});fp.displayName="TTDDialogTabTrigger";var Je=v(k(),1),Cg=3,Qa=1e3,Vk=We(null),Kk=We(null),Sg=t=>{let e=Le();return e.openDialog?.name!=="ttd"?null:(0,Je.jsx)(Yk,{...t,tab:e.openDialog.tab})},Yk=tn("TTDDialogBase",({tab:t,...e})=>{let o=mo(),r=Pe(),n=(0,sr.useRef)(null),[i,a]=Se(Kk),[l,s]=(0,sr.useState)(i?.prompt??""),d=l.trim(),c=I=>{s(I.target.value),a(M=>({generatedResponse:M?.generatedResponse??null,prompt:I.target.value}))},[m,u]=(0,sr.useState)(!1),[f,b]=Se(Vk),x=async()=>{if(d.length>Qa||d.length<Cg||m||f?.rateLimitRemaining===0||"__fallback"in e){d.length<Cg&&z(new Error(`Prompt is too short (min ${Cg} characters)`)),d.length>Qa&&z(new Error(`Prompt is too long (max ${Qa} characters)`));return}try{u(!0),xe("ai","generate","ttd");let{generatedResponse:I,error:M,rateLimit:_,rateLimitRemaining:U}=await e.onTextSubmit(d);if(typeof I=="string"&&a(D=>({generatedResponse:I,prompt:D?.prompt??null})),Xp(_)&&Xp(U)&&b({rateLimit:_,rateLimitRemaining:U}),M){z(M);return}if(!I){z(new Error("Generation failed"));return}try{await sp({canvasRef:n,data:w,mermaidToExcalidrawLib:T,setError:z,mermaidDefinition:I}),xe("ai","mermaid parse success","ttd")}catch(D){console.info(`%cTTD mermaid render errror: ${D.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
51
- TTD mermaid definition render errror: ${D.message}`,"color: yellow"),xe("ai","mermaid parse failed","ttd"),z(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(I){let M=I.message;(!M||M==="Failed to fetch")&&(M="Request failed"),z(new Error(M))}finally{u(!1)}},y=(0,sr.useRef)(x);y.current=x;let[T,C]=(0,sr.useState)({loaded:!1,api:import("./excalidraw-assets/dist-54276HPL.js")});(0,sr.useEffect)(()=>{(async()=>{await T.api,C(M=>({...M,loaded:!0}))})()},[T.api]);let w=(0,sr.useRef)({elements:[],files:null}),[A,z]=(0,sr.useState)(null);return(0,Je.jsx)(et,{className:"ttd-dialog",onCloseRequest:()=>{o.setOpenDialog(null)},size:1200,title:!1,...e,autofocus:!1,children:(0,Je.jsxs)(lp,{dialog:"ttd",tab:t,children:["__fallback"in e&&e.__fallback?(0,Je.jsx)("p",{className:"dialog-mermaid-title",children:g("mermaid.title")}):(0,Je.jsxs)(Eg,{children:[(0,Je.jsx)(fp,{tab:"text-to-diagram",children:(0,Je.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[g("labels.textToDiagram"),(0,Je.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"var(--color-promo)",color:"var(--color-surface-lowest)"},children:"AI Beta"})]})}),(0,Je.jsx)(fp,{tab:"mermaid",children:"Mermaid"})]}),(0,Je.jsx)(qa,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Je.jsx)(E5,{mermaidToExcalidrawLib:T})}),!("__fallback"in e)&&(0,Je.jsxs)(qa,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Je.jsx)("div",{className:"ttd-dialog-desc",children:"Currently we use Mermaid as a middle step, so you'll get best results if you describe a diagram, workflow, flow chart, and similar."}),(0,Je.jsxs)(dp,{children:[(0,Je.jsx)(Ja,{label:g("labels.prompt"),panelAction:{action:x,label:"Generate",icon:da},onTextSubmitInProgess:m,panelActionDisabled:d.length>Qa||f?.rateLimitRemaining===0,renderTopRight:()=>f?(0,Je.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:f.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[f.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,Je.jsx)(up,{}),renderBottomRight:()=>{if(typeof i?.generatedResponse=="string")return(0,Je.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof i?.generatedResponse=="string"&&(Is(i.generatedResponse),r({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Je.jsx)(Dn,{icon:da})]});let I=d.length/Qa;return I>.8?(0,Je.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:I>1?"var(--color-danger)":void 0},children:["Length: ",d.length,"/",Qa]}):null},children:(0,Je.jsx)(mp,{onChange:c,input:l,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{y.current()}})}),(0,Je.jsx)(Ja,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),cp({app:o,data:w})},label:"Insert",icon:da},children:(0,Je.jsx)(pp,{canvasRef:n,error:A,loaded:T.loaded})})]})]})]})})});var J=v(k(),1),Zk=({UIOptions:t})=>(0,J.jsxs)(lo,{__fallback:!0,children:[(0,J.jsx)(lo.DefaultItems.LoadScene,{}),(0,J.jsx)(lo.DefaultItems.SaveToActiveFile,{}),t.canvasActions.export&&(0,J.jsx)(lo.DefaultItems.Export,{}),t.canvasActions.saveAsImage&&(0,J.jsx)(lo.DefaultItems.SaveAsImage,{}),(0,J.jsx)(lo.DefaultItems.Help,{}),(0,J.jsx)(lo.DefaultItems.ClearCanvas,{}),(0,J.jsx)(lo.Separator,{}),(0,J.jsx)(lo.Group,{title:"Excalidraw links",children:(0,J.jsx)(lo.DefaultItems.Socials,{})}),(0,J.jsx)(lo.Separator,{}),(0,J.jsx)(lo.DefaultItems.ToggleTheme,{}),(0,J.jsx)(lo.DefaultItems.ChangeCanvasBackground,{})]}),jk=()=>(0,J.jsxs)(ip,{__fallback:!0,children:[(0,J.jsx)(ip.Actions.SaveToDisk,{}),(0,J.jsx)(ip.Actions.ExportToImage,{})]}),Xk=({actionManager:t,appState:e,files:o,setAppState:r,elements:n,canvas:i,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,showExitZenModeBtn:d,renderTopRightUI:c,renderCustomStats:m,UIOptions:u,onExportImage:f,renderWelcomeScreen:b,children:x,app:y,isCollaborating:T,openAIKey:C,isOpenAIKeyPersisted:w,onOpenAIAPIKeyChange:A,onMagicSettingsConfirm:z})=>{let I=Me(),M=Zw(),[_,U]=Se(Tn,Ne),D=()=>u.canvasActions.export?(0,J.jsx)(I3,{elements:n,appState:e,files:o,actionManager:t,exportOpts:u.canvasActions.export,canvas:i,setAppState:r}):null,G=()=>!u.canvasActions.saveAsImage||e.openDialog?.name!=="imageExport"?null:(0,J.jsx)(f3,{elements:n,appState:e,files:o,actionManager:t,onExportImage:f,onCloseRequest:()=>r({openDialog:null}),name:y.getName()}),O=()=>(0,J.jsxs)("div",{style:{position:"relative"},children:[(0,J.jsx)(M.MainMenuTunnel.Out,{}),b&&(0,J.jsx)(M.WelcomeScreenMenuHintTunnel.Out,{})]}),B=()=>(0,J.jsx)(Nn,{heading:"selectedShapeActions",className:$("selected-shape-actions zen-mode-transition",{"transition-left":e.zenModeEnabled}),children:(0,J.jsx)(zt,{className:Xs.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${e.height-166}px`},children:(0,J.jsx)(Nm,{appState:e,elementsMap:y.scene.getNonDeletedElementsMap(),renderAction:t.renderAction})})}),te=()=>{let de=ea(e,n);return(0,J.jsx)(Gm,{side:"top",children:(0,J.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,J.jsxs)(Pt.Col,{gap:6,className:$("App-menu_top__left"),children:[O(),de&&B()]}),!e.viewModeEnabled&&(0,J.jsx)(Nn,{heading:"shapes",className:"shapes-section",children:j=>(0,J.jsxs)("div",{style:{position:"relative"},children:[b&&(0,J.jsx)(M.WelcomeScreenToolbarHintTunnel.Out,{}),(0,J.jsx)(Pt.Col,{gap:4,align:"start",children:(0,J.jsxs)(Pt.Row,{gap:1,className:$("App-toolbar-container",{"zen-mode":e.zenModeEnabled}),children:[(0,J.jsxs)(zt,{padding:1,className:$("App-toolbar",{"zen-mode":e.zenModeEnabled}),children:[(0,J.jsx)(Vm,{appState:e,isMobile:I.editor.isMobile,device:I,app:y}),j,(0,J.jsxs)(Pt.Row,{gap:1,children:[(0,J.jsx)(Ym,{zenModeEnabled:e.zenModeEnabled,checked:e.penMode,onChange:()=>s(null),title:g("toolBar.penMode"),penDetected:e.penDetected}),(0,J.jsx)(Km,{checked:e.activeTool.locked,onChange:a,title:g("toolBar.lock")}),(0,J.jsx)("div",{className:"App-toolbar__divider"}),(0,J.jsx)(jm,{checked:Fr(e),onChange:()=>l(),title:g("toolBar.hand"),isMobile:!0}),(0,J.jsx)(Om,{appState:e,activeTool:e.activeTool,UIOptions:u,app:y})]})]}),T&&(0,J.jsx)(zt,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,J.jsx)(p5,{title:g("toolBar.laser"),checked:e.activeTool.type===ut.laser,onChange:()=>y.setActiveTool({type:ut.laser}),isMobile:!0})})]})})]})}),(0,J.jsxs)("div",{className:$("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:[e.collaborators.size>0&&(0,J.jsx)(Xm,{collaborators:e.collaborators,userToFollow:e.userToFollow?.socketId||null}),c?.(I.editor.isMobile,e),!e.viewModeEnabled&&(!ve||e.openSidebar?.name!==jo.name)&&(0,J.jsx)(M.DefaultSidebarTriggerTunnel.Out,{})]})]})})},oe=()=>(0,J.jsx)(ap,{__fallback:!0,onDock:de=>{xe("sidebar",`toggleDock (${de?"dock":"undock"})`,`(${I.editor.isMobile?"mobile":"desktop"})`)}}),ve=Bl(Ts,Ne),Ie=(0,J.jsxs)(J.Fragment,{children:[x,(0,J.jsx)(Zk,{UIOptions:u}),(0,J.jsx)(ap.Trigger,{__fallback:!0,icon:cd,title:sn(g("toolBar.library")),onToggle:de=>{de&&xe("sidebar",`${jo.name} (open)`,`button (${I.editor.isMobile?"mobile":"desktop"})`)},tab:jo.defaultTab,children:g("toolBar.library")}),(0,J.jsx)(jk,{}),e.openDialog?.name==="ttd"&&(0,J.jsx)(Sg,{__fallback:!0}),e.isLoading&&(0,J.jsx)(ld,{delay:250}),e.errorMessage&&(0,J.jsx)(u3,{onClose:()=>r({errorMessage:null}),children:e.errorMessage}),_&&!I.editor.isMobile&&(0,J.jsx)(Zy,{colorPickerType:_.colorPickerType,onCancel:()=>{U(null)},onChange:(de,j,R,{altKey:N})=>{if(!(de!=="elementBackground"&&de!=="elementStroke"))if(R.length){for(let K of R)re(K,{[N&&_.swapPreviewOnAlt?de==="elementBackground"?"strokeColor":"backgroundColor":de==="elementBackground"?"backgroundColor":"strokeColor"]:j},!1),Lo.delete(K);ko.getScene(R[0])?.informMutation()}else r(de==="elementBackground"?{currentItemBackgroundColor:j}:{currentItemStrokeColor:j})},onSelect:(de,j)=>{U(R=>R?.keepOpenOnAlt&&j.altKey?R:null),_?.onSelect?.(de,j)}}),e.openDialog?.name==="help"&&(0,J.jsx)(S3,{onClose:()=>{r({openDialog:null})}}),e.openDialog?.name==="settings"&&(0,J.jsx)(b5,{openAIKey:C,isPersisted:w,onChange:A,onConfirm:(de,j)=>{let R=e.openDialog?.name==="settings"?e.openDialog?.source:"settings";r({openDialog:null},()=>{z(de,j,R)})},onClose:()=>{r({openDialog:null})}}),(0,J.jsx)(t3,{}),(0,J.jsx)(M.OverwriteConfirmDialogTunnel.Out,{}),G(),D(),e.pasteDialog.shown&&(0,J.jsx)(w3,{setAppState:r,appState:e,onClose:()=>r({pasteDialog:{shown:!1,data:null}})}),I.editor.isMobile&&(0,J.jsx)(y3,{app:y,appState:e,elements:n,actionManager:t,renderJSONExportDialog:D,renderImageExportDialog:G,setAppState:r,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:m,renderSidebars:oe,device:I,renderWelcomeScreen:b,UIOptions:u}),!I.editor.isMobile&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)("div",{className:"layer-ui__wrapper",style:e.openSidebar&&ve&&I.editor.canFitSidebar?{width:`calc(100% - ${L1}px)`}:{},children:[b&&(0,J.jsx)(M.WelcomeScreenCenterTunnel.Out,{}),te(),(0,J.jsx)(L3,{appState:e,actionManager:t,showExitZenModeBtn:d,renderWelcomeScreen:b}),e.showStats&&(0,J.jsx)(Zm,{appState:e,setAppState:r,elements:n,onClose:()=>{t.executeAction(Mn)},renderCustomStats:m}),e.scrolledOutside&&(0,J.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(de=>({...oi(n,de)}))},children:g("buttons.scrollBackToContent")})]}),oe()]})]});return(0,J.jsx)(jf.Provider,{value:e,children:(0,J.jsx)(ed,{scope:M.jotaiScope,children:(0,J.jsx)(zh.Provider,{value:M,children:Ie})})})},C5=t=>{let{suggestedBindings:e,startBoundElement:o,cursorButton:r,scrollX:n,scrollY:i,...a}=t;return a},qk=(t,e)=>{if(t.children!==e.children)return!1;let{canvas:o,appState:r,...n}=t,{canvas:i,appState:a,...l}=e;return kt(C5(r),C5(a),{selectedElementIds:kt,selectedGroupIds:kt})&&kt(n,l)},T5=S5.default.memo(Xk,qk);h();var el=v(H(),1);var Ls=v(k(),1),Jk=5e3,k5=({message:t,onClose:e,closable:o=!1,duration:r=Jk,style:n})=>{let i=(0,el.useRef)(0),a=r!==1/0,l=(0,el.useCallback)(()=>{a&&(i.current=window.setTimeout(()=>e(),r))},[e,r,a]);return(0,el.useEffect)(()=>{if(a)return l(),()=>clearTimeout(i.current)},[l,t,r,a]),(0,Ls.jsxs)("div",{className:"Toast",onMouseEnter:a?()=>clearTimeout(i?.current):void 0,onMouseLeave:a?l:void 0,style:n,children:[(0,Ls.jsx)("p",{className:"Toast__message",children:t}),o&&(0,Ls.jsx)(le,{icon:Ro,"aria-label":"close",type:"icon",onClick:e,className:"close"})]})};h();var Tg=W({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:pa,viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.viewModeEnabled},perform(t,e){return{appState:{...e,viewModeEnabled:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.viewModeEnabled,predicate:(t,e,o)=>typeof o.viewModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.R});var p6=v(Nh(),1);h();var hp=class t{scene;onSceneUpdated;constructor({scene:e,onSceneUpdated:o}){this.scene=e,this.onSceneUpdated=o}static loadedFontFaces=new Set;onFontsLoaded=e=>{if(e.every(r=>{let n=`${r.family}-${r.style}-${r.weight}`;return t.loadedFontFaces.has(n)?!0:(t.loadedFontFaces.add(n),!1)}))return!1;let o=!1;this.scene.mapElements(r=>ce(r)&&!xt(r)?(Lo.delete(r),o=!0,he(r,{...Ob(r,Nr(r,this.scene.getNonDeletedElementsMap()),this.scene.getNonDeletedElementsMap())})):r),o&&this.onSceneUpdated()};loadFontsForElements=async e=>{let o=await Promise.all([...new Set(e.filter(r=>ce(r)).map(r=>r.fontFamily))].map(r=>{let n=Xo({fontFamily:r,fontSize:16});if(!document.fonts?.check?.(n))return document.fonts?.load?.(n)}));this.onFontsLoaded(o.flat().filter(Boolean))}};h();var I5=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length===1&&ye(o[0])},A5=W({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;if(ye(n)){let i=bn(Ee(t),n.id).filter(a=>!(a.type==="text"&&a.containerId));return{elements:t,appState:{...e,selectedElementIds:i.reduce((a,l)=>(a[l.id]=!0,a),{})},storeAction:P.CAPTURE}}return{elements:t,appState:e,storeAction:P.NONE}},predicate:(t,e,o,r)=>I5(e,r)}),M5=W({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;return ye(n)?{elements:I0(t,n),appState:{...e,selectedElementIds:{[n.id]:!0}},storeAction:P.CAPTURE}:{elements:t,appState:e,storeAction:P.NONE}},predicate:(t,e,o,r)=>I5(e,r)}),ine=W({name:"updateFrameRendering",label:"labels.updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>({elements:t,appState:{...e,frameRendering:{...e.frameRendering,enabled:!e.frameRendering.enabled}},storeAction:P.NONE}),checked:t=>t.frameRendering.enabled}),ane=W({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:bd,viewMode:!1,perform:(t,e,o,r)=>{let n=it(e,{type:"frame"});return qo(r.interactiveCanvas,{...e,activeTool:n}),{elements:t,appState:{...e,activeTool:it(e,{type:"frame"})},storeAction:P.NONE}},keyTest:t=>!t[S.CTRL_OR_CMD]&&!t.shiftKey&&!t.altKey&&t.key.toLocaleLowerCase()===S.F});h();var Qk=8,_5=99999,gp=t=>Qk/t,Wo=class t{static referenceSnapPoints=null;static visibleGaps=null;static setReferenceSnapPoints=e=>{t.referenceSnapPoints=e};static getReferenceSnapPoints=()=>t.referenceSnapPoints;static setVisibleGaps=e=>{t.visibleGaps=e};static getVisibleGaps=()=>t.visibleGaps;static destroy=()=>{t.referenceSnapPoints=null,t.visibleGaps=null}},nn=({event:t,appState:e,selectedElements:o})=>t?e.objectsSnapModeEnabled&&!t[S.CTRL_OR_CMD]||!e.objectsSnapModeEnabled&&t[S.CTRL_OR_CMD]&&e.gridSize===null:o.length===1&&o[0].type==="arrow"?!1:e.objectsSnapModeEnabled,eI=(t,e,o=.01)=>Math.abs(t-e)<=o,Ps=(t,e,{omitCenter:o,boundingBoxCorners:r,dragOffset:n}={omitCenter:!1,boundingBoxCorners:!1})=>{let i=[];if(t.length===1){let a=t[0],[l,s,d,c,m,u]=Wt(a,e);n&&(l+=n.x,d+=n.x,m+=n.x,s+=n.y,c+=n.y,u+=n.y);let f=(d-l)/2,b=(c-s)/2;if((a.type==="diamond"||a.type==="ellipse")&&!r){let x=Dr([l,s+b],[m,u],a.angle),y=Dr([l+f,s],[m,u],a.angle),T=Dr([d,s+b],[m,u],a.angle),C=Dr([l+f,c],[m,u],a.angle);i=o?[x,y,T,C]:[x,y,T,C,[m,u]]}else{let x=Dr([l,s],[m,u],a.angle),y=Dr([d,s],[m,u],a.angle),T=Dr([l,c],[m,u],a.angle),C=Dr([d,c],[m,u],a.angle);i=o?[x,y,T,C]:[x,y,T,C,[m,u]]}}else if(t.length>1){let[a,l,s,d]=Sc(t,n??{x:0,y:0}),c=s-a,m=d-l,u=[a,l],f=[s,l],b=[a,d],x=[s,d],y=[a+c/2,l+m/2];i=o?[u,f,b,x]:[u,f,b,x,y]}return i.map(a=>[ot(a[0]),ot(a[1])])},R5=(t,e,o,r)=>{let n=e.filter(i=>ye(i)).map(i=>i.id);return _u(t,e,o,r).filter(i=>!(i.frameId&&n.includes(i.frameId)))},D5=(t,e,o,r)=>{let n=R5(t,e,o,r),i=Jn(n,r).filter(m=>!(m.length===1&&xt(m[0]))).map(m=>Ze(m).map(u=>ot(u))),a=i.sort((m,u)=>m[0]-u[0]),l=[],s=0;e:for(let m=0;m<a.length;m++){let u=a[m];for(let f=m+1;f<a.length;f++){if(++s>_5)break e;let b=a[f],[,x,y,T]=u,[C,w,,A]=b;y<C&&yl([x,T],[w,A])&&l.push({startBounds:u,endBounds:b,startSide:[[y,x],[y,T]],endSide:[[C,w],[C,A]],length:C-y,overlap:El([x,T],[w,A])})}}let d=i.sort((m,u)=>m[1]-u[1]),c=[];s=0;e:for(let m=0;m<d.length;m++){let u=d[m];for(let f=m+1;f<d.length;f++){if(++s>_5)break e;let b=d[f],[x,,y,T]=u,[C,w,A]=b;T<w&&yl([x,y],[C,A])&&c.push({startBounds:u,endBounds:b,startSide:[[x,T],[y,T]],endSide:[[C,w],[A,w]],length:w-T,overlap:El([x,y],[C,A])})}}return{horizontalGaps:l,verticalGaps:c}},L5=(t,e,o,r,n,i,a)=>{if(!nn({appState:o,event:r,selectedElements:t}))return[];if(t.length===0)return[];let l=Wo.getVisibleGaps();if(l){let{horizontalGaps:s,verticalGaps:d}=l,[c,m,u,f]=Sc(t,e).map(y=>ot(y)),b=(c+u)/2,x=(m+f)/2;for(let y of s){if(!yl([m,f],y.overlap))continue;let T=y.startSide[0][0]+y.length/2,C=ot(T-b);if(y.length>u-c&&Math.abs(C)<=a.x){Math.abs(C)<a.x&&(n.length=0),a.x=Math.abs(C);let D={type:"gap",direction:"center_horizontal",gap:y,offset:C};n.push(D);continue}let[,,A]=y.endBounds,z=c-A,I=ot(y.length-z);if(Math.abs(I)<=a.x){Math.abs(I)<a.x&&(n.length=0),a.x=Math.abs(I);let D={type:"gap",direction:"side_right",gap:y,offset:I};n.push(D);continue}let[M,,,]=y.startBounds,_=M-u,U=ot(_-y.length);if(Math.abs(U)<=a.x){Math.abs(U)<a.x&&(n.length=0),a.x=Math.abs(U);let D={type:"gap",direction:"side_left",gap:y,offset:U};n.push(D);continue}}for(let y of d){if(!yl([c,u],y.overlap))continue;let T=y.startSide[0][1]+y.length/2,C=ot(T-x);if(y.length>f-m&&Math.abs(C)<=a.y){Math.abs(C)<a.y&&(i.length=0),a.y=Math.abs(C);let D={type:"gap",direction:"center_vertical",gap:y,offset:C};i.push(D);continue}let[,A,,]=y.startBounds,z=A-f,I=ot(z-y.length);if(Math.abs(I)<=a.y){Math.abs(I)<a.y&&(i.length=0),a.y=Math.abs(I);let D={type:"gap",direction:"side_top",gap:y,offset:I};i.push(D);continue}let[,,,M]=y.endBounds,_=ot(m-M),U=y.length-_;if(Math.abs(U)<=a.y){Math.abs(U)<a.y&&(i.length=0),a.y=Math.abs(U);let D={type:"gap",direction:"side_bottom",gap:y,offset:U};i.push(D);continue}}}},N5=(t,e,o,r)=>{let n=R5(t,e,o,r);return Jn(n,r).filter(i=>!(i.length===1&&xt(i[0]))).flatMap(i=>Ps(i,r))},tl=(t,e,o,r,n,i,a)=>{if(!nn({appState:o,event:r,selectedElements:t})||t.length===0&&e.length===0)return[];let l=Wo.getReferenceSnapPoints();if(l)for(let s of e)for(let d of l){let c=d[0]-s[0],m=d[1]-s[1];Math.abs(c)<=a.x&&(Math.abs(c)<a.x&&(n.length=0),n.push({type:"point",points:[s,d],offset:c}),a.x=Math.abs(c)),Math.abs(m)<=a.y&&(Math.abs(m)<a.y&&(i.length=0),i.push({type:"point",points:[s,d],offset:m}),a.y=Math.abs(m))}},O5=(t,e,o,r,n)=>{let i=we(t,o);if(!nn({appState:o,event:r,selectedElements:i})||i.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};e.x=ot(e.x),e.y=ot(e.y);let a=[],l=[],s=gp(o.zoom.value),d={x:s,y:s},c=Ps(i,n,{dragOffset:e});tl(i,c,o,r,a,l,d),L5(i,e,o,r,a,l,d);let m={x:a[0]?.offset??0,y:l[0]?.offset??0};d.x=0,d.y=0,a.length=0,l.length=0;let u={x:ot(e.x+m.x),y:ot(e.y+m.y)};tl(i,Ps(i,n,{dragOffset:u}),o,r,a,l,d),L5(i,u,o,r,a,l,d);let f=kg(a,l),b=oI(i,u,[...a,...l].filter(x=>x.type==="gap"));return{snapOffset:m,snapLines:[...f,...b]}},ot=t=>Math.round(t*10**6)/10**6,P5=t=>{let e=new Map;for(let o of t){let r=o.join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},kg=(t,e)=>{let o={},r={};if(t.length>0){for(let n of t)if(n.type==="point"){let i=ot(n.points[0][0]);o[i]||(o[i]=[]),o[i].push(...n.points.map(a=>[ot(a[0]),ot(a[1])]))}}if(e.length>0){for(let n of e)if(n.type==="point"){let i=ot(n.points[0][1]);r[i]||(r[i]=[]),r[i].push(...n.points.map(a=>[ot(a[0]),ot(a[1])]))}}return Object.entries(o).map(([n,i])=>({type:"points",points:P5(i.map(a=>[Number(n),a[1]]).sort((a,l)=>a[1]-l[1]))})).concat(Object.entries(r).map(([n,i])=>({type:"points",points:P5(i.map(a=>[a[0],Number(n)]).sort((a,l)=>a[0]-l[0]))})))},tI=t=>{let e=new Map;for(let o of t){let r=o.points.flat().map(n=>[ot(n)]).join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},oI=(t,e,o)=>{let[r,n,i,a]=Sc(t,e),l=[];for(let s of o){let[d,c,m,u]=s.gap.startBounds,[f,b,x,y]=s.gap.endBounds,T=El([n,a],s.gap.overlap),C=El([r,i],s.gap.overlap);switch(s.direction){case"center_horizontal":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[s.gap.startSide[0][0],w],[r,w]]},{type:"gap",direction:"horizontal",points:[[i,w],[s.gap.endSide[0][0],w]]})}break}case"center_vertical":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,s.gap.startSide[0][1]],[w,n]]},{type:"gap",direction:"vertical",points:[[w,a],[w,s.gap.endSide[0][1]]]})}break}case"side_right":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[m,w],[f,w]]},{type:"gap",direction:"horizontal",points:[[x,w],[r,w]]})}break}case"side_left":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[i,w],[d,w]]},{type:"gap",direction:"horizontal",points:[[m,w],[f,w]]})}break}case"side_top":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,a],[w,c]]},{type:"gap",direction:"vertical",points:[[w,u],[w,b]]})}break}case"side_bottom":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,u],[w,b]]},{type:"gap",direction:"vertical",points:[[w,y],[w,n]]})}break}}}return tI(l.map(s=>({...s,points:s.points.map(d=>[ot(d[0]),ot(d[1])])})))},F5=(t,e,o,r,n,i)=>{if(!nn({event:r,selectedElements:t,appState:o})||t.length===0||t.length===1&&!eI(t[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[a,l,s,d]=Ze(e);i&&(i.includes("e")?s+=n.x:i.includes("w")&&(a+=n.x),i.includes("n")?l+=n.y:i.includes("s")&&(d+=n.y));let c=[];if(i)switch(i){case"e":{c.push([s,l],[s,d]);break}case"w":{c.push([a,l],[a,d]);break}case"n":{c.push([a,l],[s,l]);break}case"s":{c.push([a,d],[s,d]);break}case"ne":{c.push([s,l]);break}case"nw":{c.push([a,l]);break}case"se":{c.push([s,d]);break}case"sw":{c.push([a,d]);break}}let m=gp(o.zoom.value),u={x:m,y:m},f=[],b=[];tl(e,c,o,r,f,b,u);let x={x:f[0]?.offset??0,y:b[0]?.offset??0};u.x=0,u.y=0,f.length=0,b.length=0;let[y,T,C,w]=Ze(t).map(I=>ot(I));tl(t,[[y,T],[y,w],[C,T],[C,w]],o,r,f,b,u);let z=kg(f,b);return{snapOffset:x,snapLines:z}},B5=(t,e,o,r,n,i)=>{if(!nn({event:o,selectedElements:[t],appState:e}))return{snapOffset:{x:0,y:0},snapLines:[]};let a=[[r.x+n.x,r.y+n.y]],l=gp(e.zoom.value),s={x:l,y:l},d=[],c=[];tl([t],a,e,o,d,c,s);let m={x:d[0]?.offset??0,y:c[0]?.offset??0};s.x=0,s.y=0,d.length=0,c.length=0;let u=Ps([t],i,{boundingBoxCorners:!0,omitCenter:!0});tl([t],u,e,o,d,c,s);let f=kg(d,c);return{snapOffset:m,snapLines:f}},z5=(t,e,o,r,n)=>{if(!nn({event:r,selectedElements:[],appState:e}))return{originOffset:{x:0,y:0},snapLines:[]};let i=_u(t,[],e,n),a=gp(e.zoom.value),l={x:a,y:a},s=[],d=[];for(let c of i){let m=Ps([c],n);for(let u of m){let f=u[0]-o.x;Math.abs(f)<=Math.abs(l.x)&&(Math.abs(f)<Math.abs(l.x)&&(d.length=0),d.push({type:"pointer",points:[u,[u[0],o.y]],direction:"vertical"}),l.x=f);let b=u[1]-o.y;Math.abs(b)<=Math.abs(l.y)&&(Math.abs(b)<Math.abs(l.y)&&(s.length=0),s.push({type:"pointer",points:[u,[o.x,u[1]]],direction:"horizontal"}),l.y=b)}}return{originOffset:{x:d.length>0?d[0].points[0][0]-o.x:0,y:s.length>0?s[0].points[0][1]-o.y:0},snapLines:[...d,...s]}},$5=t=>t===ut.rectangle||t===ut.ellipse||t===ut.diamond||t===ut.frame||t===ut.magicframe||t===ut.image;h();var Xt=v(k(),1),rI=()=>(0,Xt.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line1",bold:t=>(0,Xt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line2",bold:t=>(0,Xt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line3",link:t=>(0,Xt.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:t=>(0,Xt.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:t}),discordLink:t=>(0,Xt.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[t,"."]})})})]}),H5=rI;h();var bp={width:100,height:0},Hn=100,nI=(t,e,o)=>{let r=gn({x:0,y:0,textAlign:ml.CENTER,verticalAlign:wo.MIDDLE,...e,containerId:t.id,strokeColor:e.strokeColor||t.strokeColor});return Object.assign(t,{boundElements:(t.boundElements||[]).concat({type:"text",id:r.id})}),Ut(r,t,o),[t,r]},U5=(t,e,o,r,n)=>{let i,a;if(Object.assign(t,{startBinding:t?.startBinding||null,endBinding:t.endBinding||null}),e){let c=e?.width??Hn,m=e?.height??Hn,u;e.id&&(u=r.getElement(e.id),u||console.error(`No element for start binding with id ${e.id} found`));let f=e.x||t.x-c,b=e.y||t.y-m/2,x=u?u.type:e.type;if(x){if(x==="text"){let y="";u&&u.type==="text"?y=u.text:e.type==="text"&&(y=e.text),y||console.error(`No text found for start binding text element for ${t.id}`),i=gn({x:f,y:b,type:"text",...u,...e,text:y}),Object.assign(i,{x:e.x||t.x-i.width,y:e.y||t.y-i.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{i=hn({x:f,y:b,width:c,height:m,...u,...e,type:x});break}default:mc(t,`Unhandled element start type "${e.type}"`,!0)}tu(t,i,"start",n)}}if(o){let c=o?.height??Hn,m=o?.width??Hn,u;o.id&&(u=r.getElement(o.id),u||console.error(`No element for end binding with id ${o.id} found`));let f=o.x||t.x+t.width,b=o.y||t.y-c/2,x=u?u.type:o.type;if(x){if(x==="text"){let y="";u&&u.type==="text"?y=u.text:o.type==="text"&&(y=o.text),y||console.error(`No text found for end binding text element for ${t.id}`),a=gn({x:f,y:b,type:"text",...u,...o,text:y}),Object.assign(a,{y:o.y||t.y-a.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{a=hn({x:f,y:b,width:m,height:c,...u,...o,type:x});break}default:mc(t,`Unhandled element end type "${x}"`,!0)}tu(t,a,"end",n)}}if(t.points.length<2)return{linearElement:t,startBoundElement:i,endBoundElement:a};let l=t.points.length-1,s=.5,d=pr(t.points);return t.points[l][0]>t.points[l-1][0]&&(d[0][0]=s,d[l][0]-=s),t.points[l][0]<t.points[l-1][0]&&(d[0][0]=-s,d[l][0]+=s),t.points[l][1]>t.points[l-1][1]&&(d[0][1]=s,d[l][1]-=s),t.points[l][1]<t.points[l-1][1]&&(d[0][1]=-s,d[l][1]+=s),Object.assign(t,{points:d}),{linearElement:t,startBoundElement:i,endBoundElement:a}},Ig=class{excalidrawElements=new Map;add=e=>{e&&this.excalidrawElements.set(e.id,e)};getElements=()=>pn(Array.from(this.excalidrawElements.values()));getElementsMap=()=>uc(pe(this.getElements()));getElement=e=>this.excalidrawElements.get(e)},As=(t,e)=>{if(!t)return[];let o=pr(t),r=new Ig,n=new Map,i=new Map;for(let l of o){let s,d=l.id;switch(e?.regenerateIds!==!1&&Object.assign(l,{id:mn()}),l.type){case"rectangle":case"ellipse":case"diamond":{let m=l?.label?.text&&l.width===void 0?0:l?.width||Hn,u=l?.label?.text&&l.height===void 0?0:l?.height||Hn;s=hn({...l,width:m,height:u});break}case"line":{let m=l.width||bp.width,u=l.height||bp.height;s=Ml({width:m,height:u,points:[[0,0],[m,u]],...l});break}case"arrow":{let m=l.width||bp.width,u=l.height||bp.height;s=Ml({width:m,height:u,endArrowhead:"arrow",points:[[0,0],[m,u]],...l}),Object.assign(s,ib(s.points));break}case"text":{let m=l?.fontFamily||Oi,u=l?.fontSize||_r,f=l?.lineHeight||Or(m),b=l.text??"",x=Il(b),y=wc(x,Xo({fontFamily:m,fontSize:u}),f);s=gn({width:y.width,height:y.height,fontFamily:m,fontSize:u,...l});break}case"image":{s=Ac({width:l?.width||Hn,height:l?.height||Hn,...l});break}case"frame":{s=Ic({x:0,y:0,...l});break}case"magicframe":{s=Al({x:0,y:0,...l});break}case"freedraw":case"iframe":case"embeddable":{s=l;break}default:s=l,mc(l,`Unhandled element type "${l.type}"`,!0)}r.getElement(s.id)?console.error(`Duplicate id found for ${s.id}`):(r.add(s),n.set(s.id,l),d&&i.set(d,s.id))}let a=r.getElementsMap();for(let[l,s]of n){let d=r.getElement(l);switch(s.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(s.label?.text){let[c,m]=nI(d,s?.label,a);if(r.add(c),r.add(m),c.type==="arrow"){let u=s.type==="arrow"?s?.start:void 0,f=s.type==="arrow"?s?.end:void 0;if(u&&u.id){let T=i.get(u.id);T&&Object.assign(u,{id:T})}if(f&&f.id){let T=i.get(f.id);T&&Object.assign(f,{id:T})}let{linearElement:b,startBoundElement:x,endBoundElement:y}=U5(c,u,f,r,a);c=b,r.add(b),r.add(x),r.add(y)}}else switch(s.type){case"arrow":{let{start:c,end:m}=s;if(c&&c.id){let x=i.get(c.id);Object.assign(c,{id:x})}if(m&&m.id){let x=i.get(m.id);Object.assign(m,{id:x})}let{linearElement:u,startBoundElement:f,endBoundElement:b}=U5(d,c,m,r,a);r.add(u),r.add(f),r.add(b);break}}break}}}for(let[l,s]of n){if(s.type!=="frame"&&s.type!=="magicframe")continue;let d=r.getElement(l);if(!d)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let c=[];s.children.forEach(C=>{let w=i.get(C);if(!w)throw new Error(`Element with ${C} wasn't mapped correctly`);let A=r.getElement(w);if(!A)throw new Error(`Frame element with id ${w} doesn't exist`);Object.assign(A,{frameId:d.id}),A?.boundElements?.forEach(z=>{let I=r.getElement(z.id);if(!I)throw new Error(`Bound element with id ${z.id} doesn't exist`);Object.assign(I,{frameId:d.id}),c.push(I)}),c.push(A)});let[m,u,f,b]=Ze(c),x=10;m=m-x,u=u-x,f=f+x,b=b+x;let y=Math.max(d?.width,f-m),T=Math.max(d?.height,b-u);Object.assign(d,{x:m,y:u,width:y,height:T})}return r.getElements()};h();h();var ol=v(H(),1);h();var Ag=v(br(),1),W5=v(H(),1);var Qe=t=>e=>{(0,Ag.unstable_batchedUpdates)(t,e)},xp=t=>ac(e=>{(0,Ag.unstable_batchedUpdates)(t,e)}),vp=(()=>{let t;try{let o=W5.version.split(".");t=Number(o[0])>17}catch{t=!1}let e=!1;return()=>window.EXCALIDRAW_THROTTLE_RENDER===!0?t?!0:(e||(e=!0,console.warn("Excalidraw: render throttling is disabled on React versions < 18.")),!1):!1})();h();h();var iI="#ff6b6b",aI="#ff0000",G5=1,V5=2,K5=(t,e)=>{if(!e.snapLines.length)return;let o=e.theme===be.LIGHT||e.zenModeEnabled?iI:aI,r=(e.zenModeEnabled?G5*1.5:G5)/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY);for(let n of e.snapLines)n.type==="pointer"?(t.lineWidth=r,t.strokeStyle=o,sI(n,t,e)):n.type==="gap"?(t.lineWidth=r,t.strokeStyle=o,cI(n.points[0],n.points[1],n.direction,e,t)):n.type==="points"&&(t.lineWidth=r,t.strokeStyle=o,lI(n,t,e));t.restore()},lI=(t,e,o)=>{if(!o.zenModeEnabled){let r=t.points[0],n=t.points[t.points.length-1];Go(r,n,e)}for(let r of t.points)Y5(r,o,e)},sI=(t,e,o)=>{Y5(t.points[0],o,e),o.zenModeEnabled||Go(t.points[0],t.points[1],e)},Y5=([t,e],o,r)=>{r.save();let n=(o.zenModeEnabled?V5*1.5:V5)/o.zoom.value;r.beginPath(),r.moveTo(t-n,e-n),r.lineTo(t+n,e+n),r.moveTo(t+n,e-n),r.lineTo(t-n,e+n),r.stroke(),r.restore()},Go=(t,e,o)=>{o.beginPath(),o.lineTo(...t),o.lineTo(...e),o.stroke()},cI=(t,e,o,r,n)=>{let i=8/r.zoom.value,a=i/2,l=i/4;if(o==="horizontal"){let s=[(t[0]+e[0])/2,t[1]];r.zenModeEnabled||Go([t[0],t[1]-i],[t[0],t[1]+i],n),Go([s[0]-l,s[1]-a],[s[0]-l,s[1]+a],n),Go([s[0]+l,s[1]-a],[s[0]+l,s[1]+a],n),r.zenModeEnabled||(Go([e[0],e[1]-i],[e[0],e[1]+i],n),Go(t,e,n))}else{let s=[t[0],(t[1]+e[1])/2];r.zenModeEnabled||Go([t[0]-i,t[1]],[t[0]+i,t[1]],n),Go([s[0]-a,s[1]-l],[s[0]+a,s[1]-l],n),Go([s[0]-a,s[1]+l],[s[0]+a,s[1]+l],n),r.zenModeEnabled||(Go([e[0]-i,e[1]],[e[0]+i,e[1]],n),Go(t,e,n))}};var dI=(t,e,o)=>{let{elementId:r,hoverPointIndex:n}=e.selectedLinearElement;if(e.editingLinearElement?.selectedPointsIndices?.includes(n))return;let i=ue.getElement(r,o);if(!i)return;let a=ue.getPointAtIndexGlobalCoordinates(i,n,o);t.save(),t.translate(e.scrollX,e.scrollY),_g(a,t,e),t.restore()},_g=(t,e,o)=>{e.fillStyle="rgba(105, 101, 219, 0.4)",Pl(e,t[0],t[1],ue.POINT_HANDLE_SIZE/o.zoom.value,!1)},Rs=(t,e,o,r,n,i,a,l,s=!1,d=0)=>{t.save(),t.translate(i,a),t.rotate(l),s&&t.fillRect(e-i,o-a,r,n),d&&t.roundRect?(t.beginPath(),t.roundRect(e-i,o-a,r,n,d),t.stroke(),t.closePath()):t.strokeRect(e-i,o-a,r,n),t.restore()},mI=(t,e,o,r,n,i)=>{t.save(),t.translate(r,n),t.rotate(i),t.beginPath(),t.moveTo(0,o/2),t.lineTo(e/2,0),t.lineTo(0,-o/2),t.lineTo(-e/2,0),t.closePath(),t.stroke(),t.restore()},yp=(t,e,o,r,n,i=!1)=>{t.strokeStyle="#5e5ad8",t.setLineDash([]),t.fillStyle="rgba(255, 255, 255, 0.9)",n?t.fillStyle="rgba(134, 131, 226, 0.9)":i&&(t.fillStyle="rgba(177, 151, 252, 0.7)"),Pl(t,o[0],o[1],r/e.zoom.value,!i)},pI=(t,e,o,r,n,i)=>{t.beginPath(),t.ellipse(r,n,e/2,o/2,i,0,Math.PI*2),t.stroke()},uI=(t,e,o)=>{let[r,n,i,a]=Wt(e,o),l=i-r,s=a-n,d=ru(e,l,s),c=4;t.strokeStyle="rgba(0,0,0,.05)",t.lineWidth=d-c;let m=c/2+d/2;switch(e.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Rs(t,r-m,n-m,l+m*2,s+m*2,r+l/2,n+s/2,e.angle);break;case"diamond":let u=Math.hypot(l,s),f=m*u/s,b=m*u/l;mI(t,l+f*2,s+b*2,r+l/2,n+s/2,e.angle);break;case"ellipse":pI(t,l+m*2,s+m*2,r+l/2,n+s/2,e.angle);break}},fI=(t,e,o)=>{let[r,n,i]=e,a=ru(i,i.width,i.height);t.strokeStyle="rgba(0,0,0,0)",t.fillStyle="rgba(0,0,0,.05)",(n==="both"?[0,-1]:n==="start"?[0]:[-1]).forEach(s=>{let[d,c]=ue.getPointAtIndexGlobalCoordinates(r,s,o);Pl(t,d,c,a)})},j5=(t,e,o,r=$p*2)=>{let{angle:n,elementX1:i,elementY1:a,elementX2:l,elementY2:s,selectionColors:d,cx:c,cy:m,dashed:u,activeEmbeddable:f}=o,b=l-i,x=s-a,y=r/e.zoom.value,T=8/e.zoom.value,C=4/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=(f?4:1)/e.zoom.value;let w=d.length;for(let A=0;A<w;++A)t.strokeStyle=d[A],u&&t.setLineDash([T,C+(T+C)*(w-1)]),t.lineDashOffset=(T+C)*A,Rs(t,i-y,a-y,b+y*2,x+y*2,c,m,n);t.restore()},hI=(t,e,o,r)=>{let n=Array.isArray(o)?fI:uI;t.save(),t.translate(e.scrollX,e.scrollY),n(t,o,r),t.restore()},gI=(t,e,o,r)=>{let[n,i,a,l]=Wt(o,r),s=a-n,d=l-i;t.strokeStyle="rgb(0,118,255)",t.lineWidth=Zo.strokeWidth/e.zoom.value,t.save(),t.translate(e.scrollX,e.scrollY),Rs(t,n,i,s,d,n+s/2,i+d/2,o.angle,!1,Zo.radius/e.zoom.value),t.restore()},bI=(t,e,o)=>{let r=o.filter(l=>l.groupIds.length===0),n=o.filter(l=>l.groupIds.length>0),i=l=>{let[s,d,c,m]=Ze(l);return{angle:0,elementX1:s,elementX2:c,elementY1:d,elementY2:m,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:s+(c-s)/2,cy:d+(m-d)/2,activeEmbeddable:!1}},a=l=>{let s=ft(o,l);return i(s)};Object.entries(Ib(n,e)).filter(([l,s])=>s).map(([l,s])=>l).map(l=>a(l)).concat(r.map(l=>i([l]))).forEach(l=>j5(t,e,l))},Mg=(t,e,o,r)=>{if(!e.selectedLinearElement)return;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=1/e.zoom.value;let n=ue.getPointsGlobalCoordinates(o,r),{POINT_HANDLE_SIZE:i}=ue,a=e.editingLinearElement?i:i/2;n.forEach((s,d)=>{let c=!!e.editingLinearElement?.selectedPointsIndices?.includes(d);yp(t,e,s,a,c)}),ue.getEditorMidPoints(o,r,e).filter(s=>s!==null).forEach(s=>{e?.selectedLinearElement?.segmentMidPointHoveredCoords&&ue.arePointsEqual(s,e.selectedLinearElement.segmentMidPointHoveredCoords)?e.editingLinearElement?(yp(t,e,s,a,!1),_g(s,t,e)):(_g(s,t,e),yp(t,e,s,a,!1)):(e.editingLinearElement||n.length===2)&&yp(t,e,s,i/2,!1,!0)}),t.restore()},Z5=(t,e,o,r,n)=>{Object.keys(r).forEach(i=>{let a=r[i];if(a!==void 0){let[l,s,d,c]=a;t.save(),t.lineWidth=1/o.zoom.value,e.selectionColor&&(t.strokeStyle=e.selectionColor),i==="rotation"?Pl(t,l+d/2,s+c/2,d/2):t.roundRect?(t.beginPath(),t.roundRect(l,s,d,c,2/o.zoom.value),t.fill(),t.stroke()):Rs(t,l,s,d,c,l+d/2,s+c/2,n,!0),t.restore()}})},X5=({canvas:t,elementsMap:e,visibleElements:o,selectedElements:r,scale:n,appState:i,renderConfig:a,device:l})=>{if(t===null)return{atLeastOneVisibleElement:!1,elementsMap:e};let[s,d]=m0(t,n),c=p0({canvas:t,scale:n,normalizedWidth:s,normalizedHeight:d});c.save(),c.scale(i.zoom.value,i.zoom.value);let m;if(o.forEach(b=>{i.editingLinearElement?.elementId===b.id&&b&&(m=b)}),m&&Mg(c,i,m,e),i.selectionElement)try{_0(i.selectionElement,c,i)}catch(b){console.error(b)}i.isBindingEnabled&&i.suggestedBindings.filter(b=>b!=null).forEach(b=>{hI(c,i,b,e)}),i.frameToHighlight&&gI(c,i,i.frameToHighlight,e),i.elementsToHighlight&&bI(c,i,i.elementsToHighlight);let u=r.some(b=>ye(b));if(r.length===1&&i.editingLinearElement?.elementId===r[0].id&&Mg(c,i,r[0],e),i.selectedLinearElement&&i.selectedLinearElement.hoverPointIndex>=0&&dI(c,i,e),!i.multiElement&&!i.editingLinearElement){let b=Zc(r,i);r.length===1&&_e(r[0])&&i.selectedLinearElement?.elementId===r[0].id&&!r[0].locked&&Mg(c,i,r[0],e);let y=a.selectionColor||Mt.black;if(b){let T=pe(r),C=[];for(let A of e.values()){let z=[];T.has(A.id)&&!Tc(i,A)&&z.push(y);let I=a.remoteSelectedElementIds.get(A.id);if(I&&z.push(...I.map(M=>xi(M,i.collaborators.get(M)))),z.length){let[M,_,U,D,G,O]=Wt(A,e,!0);C.push({angle:A.angle,elementX1:M,elementY1:_,elementX2:U,elementY2:D,selectionColors:z,dashed:!!I,cx:G,cy:O,activeEmbeddable:i.activeEmbeddable?.element===A&&i.activeEmbeddable.state==="active"})}}let w=A=>{let z=ft(e,A),[I,M,_,U]=Ze(z);C.push({angle:0,elementX1:I,elementX2:_,elementY1:M,elementY2:U,selectionColors:[Mt.black],dashed:!0,cx:I+(_-I)/2,cy:M+(U-M)/2,activeEmbeddable:!1})};for(let A of Br(i))w(A);i.editingGroupId&&w(i.editingGroupId),C.forEach(A=>j5(c,i,A))}if(c.save(),c.translate(i.scrollX,i.scrollY),r.length===1){c.fillStyle=Mt.white;let T=R0(r[0],i.zoom,e,"mouse",Yc(l));!i.viewModeEnabled&&b&&Z5(c,a,i,T,r[0].angle)}else if(r.length>1&&!i.isRotating){let T=$p*2/i.zoom.value;c.fillStyle=Mt.white;let[C,w,A,z]=Ze(r),I=c.getLineDash();c.setLineDash([2/i.zoom.value]);let M=c.lineWidth;c.lineWidth=1/i.zoom.value,c.strokeStyle=y,Rs(c,C-T,w-T,A-C+T*2,z-w+T*2,(C+A)/2,(w+z)/2,0),c.lineWidth=M,c.setLineDash(I);let _=P0([C,w,A,z,(C+A)/2,(w+z)/2],0,i.zoom,"mouse",u?{...Yc(l),rotation:!0}:Yc(l));r.some(U=>!U.locked)&&Z5(c,a,i,_,0)}c.restore()}K5(c,i),c.restore(),vE({context:c,renderConfig:a,appState:i,normalizedWidth:s,normalizedHeight:d});let f;return a.renderScrollbars&&(f=x3(o,s,d,i),c.save(),c.fillStyle=b3,c.strokeStyle="rgba(255,255,255,0.8)",[f.horizontal,f.vertical].forEach(b=>{b&&rm(c,b.x,b.y,b.width,b.height,kr/2)}),c.restore()),{scrollBars:f,atLeastOneVisibleElement:o.length>0,elementsMap:e}},Lg=ac(t=>{let e=X5(t);t.callback?.(e)},{trailing:!0}),q5=(t,e)=>{if(e){Lg(t);return}let o=X5(t);return t.callback(o),o};var Q5=v(k(),1),xI=t=>{let e=(0,ol.useRef)(!1);return(0,ol.useEffect)(()=>{if(!e.current){e.current=!0;return}let o=new Map,r=new Map,n=new Map,i=new Map,a=new Map;t.appState.collaborators.forEach((s,d)=>{if(s.selectedElementIds)for(let c of Object.keys(s.selectedElementIds))n.has(c)||n.set(c,[]),n.get(c).push(d);!s.pointer||s.pointer.renderCursor===!1||(s.username&&i.set(d,s.username),s.userState&&a.set(d,s.userState),r.set(d,Qt({sceneX:s.pointer.x,sceneY:s.pointer.y},t.appState)),o.set(d,s.button))});let l=t.containerRef?.current&&getComputedStyle(t.containerRef.current).getPropertyValue("--color-selection")||"#6965db";q5({canvas:t.canvas,elementsMap:t.elementsMap,visibleElements:t.visibleElements,selectedElements:t.selectedElements,scale:window.devicePixelRatio,appState:t.appState,renderConfig:{remotePointerViewportCoords:r,remotePointerButton:o,remoteSelectedElementIds:n,remotePointerUsernames:i,remotePointerUserStates:a,selectionColor:l,renderScrollbars:!1},device:t.device,callback:t.renderInteractiveSceneCallback},vp())}),(0,Q5.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:t.appState.width,height:t.appState.height,cursor:t.appState.viewModeEnabled?Oe.GRAB:Oe.AUTO},width:t.appState.width*t.scale,height:t.appState.height*t.scale,ref:t.handleCanvasRef,onContextMenu:t.onContextMenu,onPointerMove:t.onPointerMove,onPointerUp:t.onPointerUp,onPointerCancel:t.onPointerCancel,onTouchMove:t.onTouchMove,onPointerDown:t.onPointerDown,onDoubleClick:t.appState.viewModeEnabled?void 0:t.onDoubleClick,children:g("labels.drawingCanvas")})},J5=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,editingGroupId:t.editingGroupId,editingLinearElement:t.editingLinearElement,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,selectionElement:t.selectionElement,selectedGroupIds:t.selectedGroupIds,selectedLinearElement:t.selectedLinearElement,multiElement:t.multiElement,isBindingEnabled:t.isBindingEnabled,suggestedBindings:t.suggestedBindings,isRotating:t.isRotating,elementsToHighlight:t.elementsToHighlight,collaborators:t.collaborators,activeEmbeddable:t.activeEmbeddable,snapLines:t.snapLines,zenModeEnabled:t.zenModeEnabled}),vI=(t,e)=>t.selectionNonce!==e.selectionNonce||t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements||t.selectedElements!==e.selectedElements?!1:kt(J5(t.appState),J5(e.appState)),Pg=ol.default.memo(xI,vI);h();var _i=v(H(),1);var t6=v(k(),1),yI=t=>{let e=(0,_i.useRef)(null),o=(0,_i.useRef)(!1);return(0,_i.useEffect)(()=>{let r=e.current;if(!r)return;let n=t.canvas;o.current||(o.current=!0,r.replaceChildren(n),n.classList.add("excalidraw__canvas","static"));let i=`${t.appState.width}px`,a=`${t.appState.height}px`;n.style.width!==i&&(n.style.width=i),n.style.height!==a&&(n.style.height=a);let l=t.appState.width*t.scale,s=t.appState.height*t.scale;n.width!==l&&(n.width=l),n.height!==s&&(n.height=s),f0({canvas:n,rc:t.rc,scale:t.scale,elementsMap:t.elementsMap,allElementsMap:t.allElementsMap,visibleElements:t.visibleElements,appState:t.appState,renderConfig:t.renderConfig},vp())}),(0,t6.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:e})},e6=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,shouldCacheIgnoreZoom:t.shouldCacheIgnoreZoom,viewBackgroundColor:t.viewBackgroundColor,exportScale:t.exportScale,selectedElementsAreBeingDragged:t.selectedElementsAreBeingDragged,gridSize:t.gridSize,frameRendering:t.frameRendering,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,editingGroupId:t.editingGroupId}),EI=(t,e)=>t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements?!1:kt(e6(t.appState),e6(e.appState))&&kt(t.renderConfig,e.renderConfig),Rg=_i.default.memo(yI,EI);h();var Ds=class{scene;constructor(e){this.scene=e}getRenderableElements=(()=>{let e=({elementsMap:r,zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s,height:d,width:c})=>{let m=[];for(let u of r.values())Dl(u,c,d,{zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s},r)&&m.push(u);return m},o=({elements:r,editingElement:n,pendingImageElementId:i})=>{let a=uc(new Map);for(let l of r)dn(l)&&i===l.id||(!n||n.type!=="text"||l.id!==n.id)&&a.set(l.id,l);return a};return Z1(({zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d,editingElement:c,pendingImageElementId:m,versionNonce:u})=>{let f=this.scene.getNonDeletedElements(),b=o({elements:f,editingElement:c,pendingImageElementId:m}),x=e({elementsMap:b,zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d});return{elementsMap:b,visibleElements:x}})})();destroy(){Lg.cancel(),u0.cancel(),this.getRenderableElements.clear()}};h();var Ep=v(H(),1);var Dg=v(k(),1),o6=({trails:t})=>{let e=(0,Ep.useRef)(null);return(0,Ep.useEffect)(()=>{if(e.current)for(let o of t)o.start(e.current);return()=>{for(let o of t)o.stop()}},t),(0,Dg.jsx)("div",{className:"SVGLayer",children:(0,Dg.jsx)("svg",{ref:e})})};h();var r6=v(k(),1),wI=5,CI=(t,e,o)=>{let[r,n]=Wt(t,o),{x:i,y:a}=Qt({sceneX:r+t.width,sceneY:n},e),l=i-e.offsetLeft+10,s=a-e.offsetTop;return{x:l,y:s}},Ng=({children:t,element:e,elementsMap:o})=>{let r=Ba();if(r.contextMenu||r.draggingElement||r.resizingElement||r.isRotating||r.openMenu||r.viewModeEnabled)return null;let{x:n,y:i}=CI(e,r,o);return(0,r6.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${i}px`,left:`${n}px`,padding:wI},children:t})};h();var SI=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
50
+ C -->|Three| F[Car]`,E5=hl(Ls,300),Kk=({mermaidToExcalidrawLib:t})=>{let[e,o]=(0,cr.useState)(()=>fo.get(ko.MERMAID_TO_EXCALIDRAW)||Vk),r=(0,cr.useDeferredValue)(e.trim()),[n,i]=(0,cr.useState)(null),a=(0,cr.useRef)(null),l=(0,cr.useRef)({elements:[],files:null}),s=mo();(0,cr.useEffect)(()=>{pp({canvasRef:a,data:l,mermaidToExcalidrawLib:t,setError:i,mermaidDefinition:r}).catch(m=>{Z1()&&console.error("Failed to parse mermaid definition",m)}),E5(r)},[r,t]),(0,cr.useEffect)(()=>()=>{E5.flush()},[]);let d=()=>{up({app:s,data:l,text:e,shouldSaveMermaidDataToStorage:!0})};return(0,jt.jsxs)(jt.Fragment,{children:[(0,jt.jsx)("div",{className:"ttd-dialog-desc",children:(0,jt.jsx)(io,{i18nKey:"mermaid.description",flowchartLink:m=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:m}),sequenceLink:m=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:m}),classLink:m=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:m})})}),(0,jt.jsxs)(fp,{children:[(0,jt.jsx)(tl,{label:g("mermaid.syntax"),children:(0,jt.jsx)(hp,{input:e,placeholder:"Write Mermaid diagram defintion here...",onChange:m=>o(m.target.value),onKeyboardSubmit:()=>{d()}})}),(0,jt.jsx)(tl,{label:g("mermaid.preview"),panelAction:{action:()=>{d()},label:g("mermaid.button"),icon:pa},renderSubmitShortcut:()=>(0,jt.jsx)(bp,{}),children:(0,jt.jsx)(gp,{canvasRef:a,loaded:t.loaded,error:n})})]})]})},w5=Kk;var dr=v(H(),1);h();var C5=v(T(),1),Sg=({children:t,...e})=>(0,C5.jsx)(np,{className:"ttd-dialog-triggers",...e,children:t});Sg.displayName="TTDDialogTabTriggers";h();var Tg=v(T(),1),xp=({children:t,tab:e,onSelect:o,...r})=>(0,Tg.jsx)(ip,{value:e,asChild:!0,onSelect:o,children:(0,Tg.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...r,children:t})});xp.displayName="TTDDialogTabTrigger";var Je=v(T(),1),kg=3,ol=1e3,Yk=Ue(null),Zk=Ue(null),Ig=t=>{let e=Le();return e.openDialog?.name!=="ttd"?null:(0,Je.jsx)(Xk,{...t,tab:e.openDialog.tab})},Xk=on("TTDDialogBase",({tab:t,...e})=>{let o=mo(),r=Pe(),n=(0,dr.useRef)(null),[i,a]=Se(Zk),[l,s]=(0,dr.useState)(i?.prompt??""),d=l.trim(),m=I=>{s(I.target.value),a(M=>({generatedResponse:M?.generatedResponse??null,prompt:I.target.value}))},[c,u]=(0,dr.useState)(!1),[f,b]=Se(Yk),x=async()=>{if(d.length>ol||d.length<kg||c||f?.rateLimitRemaining===0||"__fallback"in e){d.length<kg&&z(new Error(`Prompt is too short (min ${kg} characters)`)),d.length>ol&&z(new Error(`Prompt is too long (max ${ol} characters)`));return}try{u(!0),ve("ai","generate","ttd");let{generatedResponse:I,error:M,rateLimit:_,rateLimitRemaining:$}=await e.onTextSubmit(d);if(typeof I=="string"&&a(O=>({generatedResponse:I,prompt:O?.prompt??null})),Jp(_)&&Jp($)&&b({rateLimit:_,rateLimitRemaining:$}),M){z(M);return}if(!I){z(new Error("Generation failed"));return}try{await pp({canvasRef:n,data:w,mermaidToExcalidrawLib:k,setError:z,mermaidDefinition:I}),ve("ai","mermaid parse success","ttd")}catch(O){console.info(`%cTTD mermaid render errror: ${O.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
51
+ TTD mermaid definition render errror: ${O.message}`,"color: yellow"),ve("ai","mermaid parse failed","ttd"),z(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(I){let M=I.message;(!M||M==="Failed to fetch")&&(M="Request failed"),z(new Error(M))}finally{u(!1)}},y=(0,dr.useRef)(x);y.current=x;let[k,C]=(0,dr.useState)({loaded:!1,api:import("./excalidraw-assets/dist-567JAXHK.js")});(0,dr.useEffect)(()=>{(async()=>{await k.api,C(M=>({...M,loaded:!0}))})()},[k.api]);let w=(0,dr.useRef)({elements:[],files:null}),[A,z]=(0,dr.useState)(null);return(0,Je.jsx)(tt,{className:"ttd-dialog",onCloseRequest:()=>{o.setOpenDialog(null)},size:1200,title:!1,...e,autofocus:!1,children:(0,Je.jsxs)(mp,{dialog:"ttd",tab:t,children:["__fallback"in e&&e.__fallback?(0,Je.jsx)("p",{className:"dialog-mermaid-title",children:g("mermaid.title")}):(0,Je.jsxs)(Sg,{children:[(0,Je.jsx)(xp,{tab:"text-to-diagram",children:(0,Je.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[g("labels.textToDiagram"),(0,Je.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"var(--color-promo)",color:"var(--color-surface-lowest)"},children:"AI Beta"})]})}),(0,Je.jsx)(xp,{tab:"mermaid",children:"Mermaid"})]}),(0,Je.jsx)(Qa,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Je.jsx)(w5,{mermaidToExcalidrawLib:k})}),!("__fallback"in e)&&(0,Je.jsxs)(Qa,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Je.jsx)("div",{className:"ttd-dialog-desc",children:"Currently we use Mermaid as a middle step, so you'll get best results if you describe a diagram, workflow, flow chart, and similar."}),(0,Je.jsxs)(fp,{children:[(0,Je.jsx)(tl,{label:g("labels.prompt"),panelAction:{action:x,label:"Generate",icon:pa},onTextSubmitInProgess:c,panelActionDisabled:d.length>ol||f?.rateLimitRemaining===0,renderTopRight:()=>f?(0,Je.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:f.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[f.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,Je.jsx)(bp,{}),renderBottomRight:()=>{if(typeof i?.generatedResponse=="string")return(0,Je.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof i?.generatedResponse=="string"&&(Ls(i.generatedResponse),r({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Je.jsx)(Nn,{icon:pa})]});let I=d.length/ol;return I>.8?(0,Je.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:I>1?"var(--color-danger)":void 0},children:["Length: ",d.length,"/",ol]}):null},children:(0,Je.jsx)(hp,{onChange:m,input:l,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{y.current()}})}),(0,Je.jsx)(tl,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),up({app:o,data:w})},label:"Insert",icon:pa},children:(0,Je.jsx)(gp,{canvasRef:n,error:A,loaded:k.loaded})})]})]})]})})});var J=v(T(),1),jk=({UIOptions:t})=>(0,J.jsxs)(lo,{__fallback:!0,children:[(0,J.jsx)(lo.DefaultItems.LoadScene,{}),(0,J.jsx)(lo.DefaultItems.SaveToActiveFile,{}),t.canvasActions.export&&(0,J.jsx)(lo.DefaultItems.Export,{}),t.canvasActions.saveAsImage&&(0,J.jsx)(lo.DefaultItems.SaveAsImage,{}),(0,J.jsx)(lo.DefaultItems.Help,{}),(0,J.jsx)(lo.DefaultItems.ClearCanvas,{}),(0,J.jsx)(lo.Separator,{}),(0,J.jsx)(lo.Group,{title:"Excalidraw links",children:(0,J.jsx)(lo.DefaultItems.Socials,{})}),(0,J.jsx)(lo.Separator,{}),(0,J.jsx)(lo.DefaultItems.ToggleTheme,{}),(0,J.jsx)(lo.DefaultItems.ChangeCanvasBackground,{})]}),qk=()=>(0,J.jsxs)(cp,{__fallback:!0,children:[(0,J.jsx)(cp.Actions.SaveToDisk,{}),(0,J.jsx)(cp.Actions.ExportToImage,{})]}),Jk=({actionManager:t,appState:e,files:o,setAppState:r,elements:n,canvas:i,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,showExitZenModeBtn:d,renderTopRightUI:m,renderCustomStats:c,UIOptions:u,onExportImage:f,renderWelcomeScreen:b,children:x,app:y,isCollaborating:k,openAIKey:C,isOpenAIKeyPersisted:w,onOpenAIAPIKeyChange:A,onMagicSettingsConfirm:z})=>{let I=Ae(),M=Xw(),[_,$]=Se(kn,Ne),O=()=>u.canvasActions.export?(0,J.jsx)(A3,{elements:n,appState:e,files:o,actionManager:t,exportOpts:u.canvasActions.export,canvas:i,setAppState:r}):null,W=()=>!u.canvasActions.saveAsImage||e.openDialog?.name!=="imageExport"?null:(0,J.jsx)(h3,{elements:n,appState:e,files:o,actionManager:t,onExportImage:f,onCloseRequest:()=>r({openDialog:null}),name:y.getName()}),j=()=>(0,J.jsxs)("div",{style:{position:"relative"},children:[(0,J.jsx)(M.MainMenuTunnel.Out,{}),b&&(0,J.jsx)(M.WelcomeScreenMenuHintTunnel.Out,{})]}),R=()=>(0,J.jsx)(On,{heading:"selectedShapeActions",className:B("selected-shape-actions zen-mode-transition",{"transition-left":e.zenModeEnabled}),children:(0,J.jsx)(Bt,{className:Qs.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${e.height-166}px`},children:(0,J.jsx)(Bm,{appState:e,elementsMap:y.scene.getNonDeletedElementsMap(),renderAction:t.renderAction})})}),Z=()=>{let de=oa(e,n);return(0,J.jsx)(Zm,{side:"top",children:(0,J.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,J.jsxs)(Pt.Col,{gap:6,className:B("App-menu_top__left"),children:[j(),de&&R()]}),!e.viewModeEnabled&&(0,J.jsx)(On,{heading:"shapes",className:"shapes-section",children:Q=>(0,J.jsxs)("div",{style:{position:"relative"},children:[b&&(0,J.jsx)(M.WelcomeScreenToolbarHintTunnel.Out,{}),(0,J.jsx)(Pt.Col,{gap:4,align:"start",children:(0,J.jsxs)(Pt.Row,{gap:1,className:B("App-toolbar-container",{"zen-mode":e.zenModeEnabled}),children:[(0,J.jsxs)(Bt,{padding:1,className:B("App-toolbar",{"zen-mode":e.zenModeEnabled}),children:[(0,J.jsx)(Xm,{appState:e,isMobile:I.editor.isMobile,device:I,app:y}),Q,(0,J.jsxs)(Pt.Row,{gap:1,children:[(0,J.jsx)(qm,{zenModeEnabled:e.zenModeEnabled,checked:e.penMode,onChange:()=>s(null),title:g("toolBar.penMode"),penDetected:e.penDetected}),(0,J.jsx)(jm,{checked:e.activeTool.locked,onChange:a,title:g("toolBar.lock")}),(0,J.jsx)("div",{className:"App-toolbar__divider"}),(0,J.jsx)(Qm,{checked:zr(e),onChange:()=>l(),title:g("toolBar.hand"),isMobile:!0}),(0,J.jsx)($m,{appState:e,activeTool:e.activeTool,UIOptions:u,app:y})]})]}),k&&(0,J.jsx)(Bt,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,J.jsx)(u5,{title:g("toolBar.laser"),checked:e.activeTool.type===st.laser,onChange:()=>y.setActiveTool({type:st.laser}),isMobile:!0})})]})})]})}),(0,J.jsxs)("div",{className:B("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:[e.collaborators.size>0&&(0,J.jsx)(ep,{collaborators:e.collaborators,userToFollow:e.userToFollow?.socketId||null}),m?.(I.editor.isMobile,e),!e.viewModeEnabled&&(!me||e.openSidebar?.name!==Jo.name)&&(0,J.jsx)(M.DefaultSidebarTriggerTunnel.Out,{})]})]})})},ne=()=>(0,J.jsx)(dp,{__fallback:!0,onDock:de=>{ve("sidebar",`toggleDock (${de?"dock":"undock"})`,`(${I.editor.isMobile?"mobile":"desktop"})`)}}),me=Ul(Ms,Ne),Me=(0,J.jsxs)(J.Fragment,{children:[x,(0,J.jsx)(jk,{UIOptions:u}),(0,J.jsx)(dp.Trigger,{__fallback:!0,icon:ud,title:cn(g("toolBar.library")),onToggle:de=>{de&&ve("sidebar",`${Jo.name} (open)`,`button (${I.editor.isMobile?"mobile":"desktop"})`)},tab:Jo.defaultTab,children:g("toolBar.library")}),(0,J.jsx)(qk,{}),e.openDialog?.name==="ttd"&&(0,J.jsx)(Ig,{__fallback:!0}),e.isLoading&&(0,J.jsx)(md,{delay:250}),e.errorMessage&&(0,J.jsx)(f3,{onClose:()=>r({errorMessage:null}),children:e.errorMessage}),_&&!I.editor.isMobile&&(0,J.jsx)(Xy,{colorPickerType:_.colorPickerType,onCancel:()=>{$(null)},onChange:(de,Q,L,{altKey:N})=>{if(!(de!=="elementBackground"&&de!=="elementStroke"))if(L.length){for(let K of L)re(K,{[N&&_.swapPreviewOnAlt?de==="elementBackground"?"strokeColor":"backgroundColor":de==="elementBackground"?"backgroundColor":"strokeColor"]:Q},!1),Ro.delete(K);Ao.getScene(L[0])?.triggerUpdate()}else r(de==="elementBackground"?{currentItemBackgroundColor:Q}:{currentItemStrokeColor:Q})},onSelect:(de,Q)=>{$(L=>L?.keepOpenOnAlt&&Q.altKey?L:null),_?.onSelect?.(de,Q)}}),e.openDialog?.name==="help"&&(0,J.jsx)(T3,{onClose:()=>{r({openDialog:null})}}),e.openDialog?.name==="settings"&&(0,J.jsx)(x5,{openAIKey:C,isPersisted:w,onChange:A,onConfirm:(de,Q)=>{let L=e.openDialog?.name==="settings"?e.openDialog?.source:"settings";r({openDialog:null},()=>{z(de,Q,L)})},onClose:()=>{r({openDialog:null})}}),(0,J.jsx)(o3,{}),(0,J.jsx)(M.OverwriteConfirmDialogTunnel.Out,{}),W(),O(),e.pasteDialog.shown&&(0,J.jsx)(C3,{setAppState:r,appState:e,onClose:()=>r({pasteDialog:{shown:!1,data:null}})}),I.editor.isMobile&&(0,J.jsx)(E3,{app:y,appState:e,elements:n,actionManager:t,renderJSONExportDialog:O,renderImageExportDialog:W,setAppState:r,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,renderTopRightUI:m,renderCustomStats:c,renderSidebars:ne,device:I,renderWelcomeScreen:b,UIOptions:u}),!I.editor.isMobile&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)("div",{className:"layer-ui__wrapper",style:e.openSidebar&&me&&I.editor.canFitSidebar?{width:`calc(100% - ${R1}px)`}:{},children:[b&&(0,J.jsx)(M.WelcomeScreenCenterTunnel.Out,{}),Z(),(0,J.jsx)(P3,{appState:e,actionManager:t,showExitZenModeBtn:d,renderWelcomeScreen:b}),e.showStats&&(0,J.jsx)(Jm,{appState:e,setAppState:r,elements:n,onClose:()=>{t.executeAction(_n)},renderCustomStats:c}),e.scrolledOutside&&(0,J.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{r(de=>({...ni(n,de)}))},children:g("buttons.scrollBackToContent")})]}),ne()]})]});return(0,J.jsx)(Jf.Provider,{value:e,children:(0,J.jsx)(nd,{scope:M.jotaiScope,children:(0,J.jsx)(Uh.Provider,{value:M,children:Me})})})},S5=t=>{let{suggestedBindings:e,startBoundElement:o,cursorButton:r,scrollX:n,scrollY:i,...a}=t;return a},Qk=(t,e)=>{if(t.children!==e.children)return!1;let{canvas:o,appState:r,...n}=t,{canvas:i,appState:a,...l}=e;return Tt(S5(r),S5(a),{selectedElementIds:Tt,selectedGroupIds:Tt})&&Tt(n,l)},k5=T5.default.memo(Jk,Qk);h();var rl=v(H(),1);var Ds=v(T(),1),eI=5e3,I5=({message:t,onClose:e,closable:o=!1,duration:r=eI,style:n})=>{let i=(0,rl.useRef)(0),a=r!==1/0,l=(0,rl.useCallback)(()=>{a&&(i.current=window.setTimeout(()=>e(),r))},[e,r,a]);return(0,rl.useEffect)(()=>{if(a)return l(),()=>clearTimeout(i.current)},[l,t,r,a]),(0,Ds.jsxs)("div",{className:"Toast",onMouseEnter:a?()=>clearTimeout(i?.current):void 0,onMouseLeave:a?l:void 0,style:n,children:[(0,Ds.jsx)("p",{className:"Toast__message",children:t}),o&&(0,Ds.jsx)(se,{icon:No,"aria-label":"close",type:"icon",onClick:e,className:"close"})]})};h();var Ag=U({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:fa,viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.viewModeEnabled},perform(t,e){return{appState:{...e,viewModeEnabled:!this.checked(e)},storeAction:D.NONE}},checked:t=>t.viewModeEnabled,predicate:(t,e,o)=>typeof o.viewModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===ge.R});var h6=v(zh(),1);h();var Ns=class t{scene;constructor({scene:e}){this.scene=e}static loadedFontFaces=new Set;onFontsLoaded=e=>{if(e.every(r=>{let n=`${r.family}-${r.style}-${r.weight}`;return t.loadedFontFaces.has(n)?!0:(t.loadedFontFaces.add(n),!1)}))return!1;let o=!1;this.scene.mapElements(r=>oe(r)?(o=!0,Ro.delete(r),pe(r,{},!0)):r),o&&this.scene.triggerUpdate()};loadFontsForElements=async e=>{let o=await Promise.all([...new Set(e.filter(r=>oe(r)).map(r=>r.fontFamily))].map(r=>{let n=Qt({fontFamily:r,fontSize:16});if(!document.fonts?.check?.(n))return document.fonts?.load?.(n)}));this.onFontsLoaded(o.flat().filter(Boolean))}};h();var A5=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length===1&&Ee(o[0])},M5=U({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;if(Ee(n)){let i=xn(we(t),n.id).filter(a=>!(a.type==="text"&&a.containerId));return{elements:t,appState:{...e,selectedElementIds:i.reduce((a,l)=>(a[l.id]=!0,a),{})},storeAction:D.CAPTURE}}return{elements:t,appState:e,storeAction:D.NONE}},predicate:(t,e,o,r)=>A5(e,r)}),_5=U({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;return Ee(n)?{elements:A0(t,n),appState:{...e,selectedElementIds:{[n.id]:!0}},storeAction:D.CAPTURE}:{elements:t,appState:e,storeAction:D.NONE}},predicate:(t,e,o,r)=>A5(e,r)}),ane=U({name:"updateFrameRendering",label:"labels.updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>({elements:t,appState:{...e,frameRendering:{...e.frameRendering,enabled:!e.frameRendering.enabled}},storeAction:D.NONE}),checked:t=>t.frameRendering.enabled}),lne=U({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:Ed,viewMode:!1,perform:(t,e,o,r)=>{let n=it(e,{type:"frame"});return Qo(r.interactiveCanvas,{...e,activeTool:n}),{elements:t,appState:{...e,activeTool:it(e,{type:"frame"})},storeAction:D.NONE}},keyTest:t=>!t[S.CTRL_OR_CMD]&&!t.shiftKey&&!t.altKey&&t.key.toLocaleLowerCase()===S.F});h();var tI=8,L5=99999,vp=t=>tI/t,Vo=class t{static referenceSnapPoints=null;static visibleGaps=null;static setReferenceSnapPoints=e=>{t.referenceSnapPoints=e};static getReferenceSnapPoints=()=>t.referenceSnapPoints;static setVisibleGaps=e=>{t.visibleGaps=e};static getVisibleGaps=()=>t.visibleGaps;static destroy=()=>{t.referenceSnapPoints=null,t.visibleGaps=null}},an=({event:t,appState:e,selectedElements:o})=>t?e.objectsSnapModeEnabled&&!t[S.CTRL_OR_CMD]||!e.objectsSnapModeEnabled&&t[S.CTRL_OR_CMD]&&e.gridSize===null:o.length===1&&o[0].type==="arrow"?!1:e.objectsSnapModeEnabled,oI=(t,e,o=.01)=>Math.abs(t-e)<=o,Os=(t,e,{omitCenter:o,boundingBoxCorners:r,dragOffset:n}={omitCenter:!1,boundingBoxCorners:!1})=>{let i=[];if(t.length===1){let a=t[0],[l,s,d,m,c,u]=Wt(a,e);n&&(l+=n.x,d+=n.x,c+=n.x,s+=n.y,m+=n.y,u+=n.y);let f=(d-l)/2,b=(m-s)/2;if((a.type==="diamond"||a.type==="ellipse")&&!r){let x=Nr([l,s+b],[c,u],a.angle),y=Nr([l+f,s],[c,u],a.angle),k=Nr([d,s+b],[c,u],a.angle),C=Nr([l+f,m],[c,u],a.angle);i=o?[x,y,k,C]:[x,y,k,C,[c,u]]}else{let x=Nr([l,s],[c,u],a.angle),y=Nr([d,s],[c,u],a.angle),k=Nr([l,m],[c,u],a.angle),C=Nr([d,m],[c,u],a.angle);i=o?[x,y,k,C]:[x,y,k,C,[c,u]]}}else if(t.length>1){let[a,l,s,d]=Ac(t,n??{x:0,y:0}),m=s-a,c=d-l,u=[a,l],f=[s,l],b=[a,d],x=[s,d],y=[a+m/2,l+c/2];i=o?[u,f,b,x]:[u,f,b,x,y]}return i.map(a=>[rt(a[0]),rt(a[1])])},D5=(t,e,o,r)=>{let n=e.filter(i=>Ee(i)).map(i=>i.id);return Ru(t,e,o,r).filter(i=>!(i.frameId&&n.includes(i.frameId)))},N5=(t,e,o,r)=>{let n=D5(t,e,o,r),i=ei(n,r).filter(c=>!(c.length===1&&Mt(c[0]))).map(c=>Ze(c).map(u=>rt(u))),a=i.sort((c,u)=>c[0]-u[0]),l=[],s=0;e:for(let c=0;c<a.length;c++){let u=a[c];for(let f=c+1;f<a.length;f++){if(++s>L5)break e;let b=a[f],[,x,y,k]=u,[C,w,,A]=b;y<C&&Sl([x,k],[w,A])&&l.push({startBounds:u,endBounds:b,startSide:[[y,x],[y,k]],endSide:[[C,w],[C,A]],length:C-y,overlap:Tl([x,k],[w,A])})}}let d=i.sort((c,u)=>c[1]-u[1]),m=[];s=0;e:for(let c=0;c<d.length;c++){let u=d[c];for(let f=c+1;f<d.length;f++){if(++s>L5)break e;let b=d[f],[x,,y,k]=u,[C,w,A]=b;k<w&&Sl([x,y],[C,A])&&m.push({startBounds:u,endBounds:b,startSide:[[x,k],[y,k]],endSide:[[C,w],[A,w]],length:w-k,overlap:Tl([x,y],[C,A])})}}return{horizontalGaps:l,verticalGaps:m}},P5=(t,e,o,r,n,i,a)=>{if(!an({appState:o,event:r,selectedElements:t}))return[];if(t.length===0)return[];let l=Vo.getVisibleGaps();if(l){let{horizontalGaps:s,verticalGaps:d}=l,[m,c,u,f]=Ac(t,e).map(y=>rt(y)),b=(m+u)/2,x=(c+f)/2;for(let y of s){if(!Sl([c,f],y.overlap))continue;let k=y.startSide[0][0]+y.length/2,C=rt(k-b);if(y.length>u-m&&Math.abs(C)<=a.x){Math.abs(C)<a.x&&(n.length=0),a.x=Math.abs(C);let O={type:"gap",direction:"center_horizontal",gap:y,offset:C};n.push(O);continue}let[,,A]=y.endBounds,z=m-A,I=rt(y.length-z);if(Math.abs(I)<=a.x){Math.abs(I)<a.x&&(n.length=0),a.x=Math.abs(I);let O={type:"gap",direction:"side_right",gap:y,offset:I};n.push(O);continue}let[M,,,]=y.startBounds,_=M-u,$=rt(_-y.length);if(Math.abs($)<=a.x){Math.abs($)<a.x&&(n.length=0),a.x=Math.abs($);let O={type:"gap",direction:"side_left",gap:y,offset:$};n.push(O);continue}}for(let y of d){if(!Sl([m,u],y.overlap))continue;let k=y.startSide[0][1]+y.length/2,C=rt(k-x);if(y.length>f-c&&Math.abs(C)<=a.y){Math.abs(C)<a.y&&(i.length=0),a.y=Math.abs(C);let O={type:"gap",direction:"center_vertical",gap:y,offset:C};i.push(O);continue}let[,A,,]=y.startBounds,z=A-f,I=rt(z-y.length);if(Math.abs(I)<=a.y){Math.abs(I)<a.y&&(i.length=0),a.y=Math.abs(I);let O={type:"gap",direction:"side_top",gap:y,offset:I};i.push(O);continue}let[,,,M]=y.endBounds,_=rt(c-M),$=y.length-_;if(Math.abs($)<=a.y){Math.abs($)<a.y&&(i.length=0),a.y=Math.abs($);let O={type:"gap",direction:"side_bottom",gap:y,offset:$};i.push(O);continue}}}},O5=(t,e,o,r)=>{let n=D5(t,e,o,r);return ei(n,r).filter(i=>!(i.length===1&&Mt(i[0]))).flatMap(i=>Os(i,r))},nl=(t,e,o,r,n,i,a)=>{if(!an({appState:o,event:r,selectedElements:t})||t.length===0&&e.length===0)return[];let l=Vo.getReferenceSnapPoints();if(l)for(let s of e)for(let d of l){let m=d[0]-s[0],c=d[1]-s[1];Math.abs(m)<=a.x&&(Math.abs(m)<a.x&&(n.length=0),n.push({type:"point",points:[s,d],offset:m}),a.x=Math.abs(m)),Math.abs(c)<=a.y&&(Math.abs(c)<a.y&&(i.length=0),i.push({type:"point",points:[s,d],offset:c}),a.y=Math.abs(c))}},F5=(t,e,o,r,n)=>{let i=ye(t,o);if(!an({appState:o,event:r,selectedElements:i})||i.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};e.x=rt(e.x),e.y=rt(e.y);let a=[],l=[],s=vp(o.zoom.value),d={x:s,y:s},m=Os(i,n,{dragOffset:e});nl(i,m,o,r,a,l,d),P5(i,e,o,r,a,l,d);let c={x:a[0]?.offset??0,y:l[0]?.offset??0};d.x=0,d.y=0,a.length=0,l.length=0;let u={x:rt(e.x+c.x),y:rt(e.y+c.y)};nl(i,Os(i,n,{dragOffset:u}),o,r,a,l,d),P5(i,u,o,r,a,l,d);let f=Mg(a,l),b=nI(i,u,[...a,...l].filter(x=>x.type==="gap"));return{snapOffset:c,snapLines:[...f,...b]}},rt=t=>Math.round(t*10**6)/10**6,R5=t=>{let e=new Map;for(let o of t){let r=o.join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},Mg=(t,e)=>{let o={},r={};if(t.length>0){for(let n of t)if(n.type==="point"){let i=rt(n.points[0][0]);o[i]||(o[i]=[]),o[i].push(...n.points.map(a=>[rt(a[0]),rt(a[1])]))}}if(e.length>0){for(let n of e)if(n.type==="point"){let i=rt(n.points[0][1]);r[i]||(r[i]=[]),r[i].push(...n.points.map(a=>[rt(a[0]),rt(a[1])]))}}return Object.entries(o).map(([n,i])=>({type:"points",points:R5(i.map(a=>[Number(n),a[1]]).sort((a,l)=>a[1]-l[1]))})).concat(Object.entries(r).map(([n,i])=>({type:"points",points:R5(i.map(a=>[a[0],Number(n)]).sort((a,l)=>a[0]-l[0]))})))},rI=t=>{let e=new Map;for(let o of t){let r=o.points.flat().map(n=>[rt(n)]).join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},nI=(t,e,o)=>{let[r,n,i,a]=Ac(t,e),l=[];for(let s of o){let[d,m,c,u]=s.gap.startBounds,[f,b,x,y]=s.gap.endBounds,k=Tl([n,a],s.gap.overlap),C=Tl([r,i],s.gap.overlap);switch(s.direction){case"center_horizontal":{if(k){let w=(k[0]+k[1])/2;l.push({type:"gap",direction:"horizontal",points:[[s.gap.startSide[0][0],w],[r,w]]},{type:"gap",direction:"horizontal",points:[[i,w],[s.gap.endSide[0][0],w]]})}break}case"center_vertical":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,s.gap.startSide[0][1]],[w,n]]},{type:"gap",direction:"vertical",points:[[w,a],[w,s.gap.endSide[0][1]]]})}break}case"side_right":{if(k){let w=(k[0]+k[1])/2;l.push({type:"gap",direction:"horizontal",points:[[c,w],[f,w]]},{type:"gap",direction:"horizontal",points:[[x,w],[r,w]]})}break}case"side_left":{if(k){let w=(k[0]+k[1])/2;l.push({type:"gap",direction:"horizontal",points:[[i,w],[d,w]]},{type:"gap",direction:"horizontal",points:[[c,w],[f,w]]})}break}case"side_top":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,a],[w,m]]},{type:"gap",direction:"vertical",points:[[w,u],[w,b]]})}break}case"side_bottom":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,u],[w,b]]},{type:"gap",direction:"vertical",points:[[w,y],[w,n]]})}break}}}return rI(l.map(s=>({...s,points:s.points.map(d=>[rt(d[0]),rt(d[1])])})))},z5=(t,e,o,r,n,i)=>{if(!an({event:r,selectedElements:t,appState:o})||t.length===0||t.length===1&&!oI(t[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[a,l,s,d]=Ze(e);i&&(i.includes("e")?s+=n.x:i.includes("w")&&(a+=n.x),i.includes("n")?l+=n.y:i.includes("s")&&(d+=n.y));let m=[];if(i)switch(i){case"e":{m.push([s,l],[s,d]);break}case"w":{m.push([a,l],[a,d]);break}case"n":{m.push([a,l],[s,l]);break}case"s":{m.push([a,d],[s,d]);break}case"ne":{m.push([s,l]);break}case"nw":{m.push([a,l]);break}case"se":{m.push([s,d]);break}case"sw":{m.push([a,d]);break}}let c=vp(o.zoom.value),u={x:c,y:c},f=[],b=[];nl(e,m,o,r,f,b,u);let x={x:f[0]?.offset??0,y:b[0]?.offset??0};u.x=0,u.y=0,f.length=0,b.length=0;let[y,k,C,w]=Ze(t).map(I=>rt(I));nl(t,[[y,k],[y,w],[C,k],[C,w]],o,r,f,b,u);let z=Mg(f,b);return{snapOffset:x,snapLines:z}},B5=(t,e,o,r,n,i)=>{if(!an({event:o,selectedElements:[t],appState:e}))return{snapOffset:{x:0,y:0},snapLines:[]};let a=[[r.x+n.x,r.y+n.y]],l=vp(e.zoom.value),s={x:l,y:l},d=[],m=[];nl([t],a,e,o,d,m,s);let c={x:d[0]?.offset??0,y:m[0]?.offset??0};s.x=0,s.y=0,d.length=0,m.length=0;let u=Os([t],i,{boundingBoxCorners:!0,omitCenter:!0});nl([t],u,e,o,d,m,s);let f=Mg(d,m);return{snapOffset:c,snapLines:f}},$5=(t,e,o,r,n)=>{if(!an({event:r,selectedElements:[],appState:e}))return{originOffset:{x:0,y:0},snapLines:[]};let i=Ru(t,[],e,n),a=vp(e.zoom.value),l={x:a,y:a},s=[],d=[];for(let m of i){let c=Os([m],n);for(let u of c){let f=u[0]-o.x;Math.abs(f)<=Math.abs(l.x)&&(Math.abs(f)<Math.abs(l.x)&&(d.length=0),d.push({type:"pointer",points:[u,[u[0],o.y]],direction:"vertical"}),l.x=f);let b=u[1]-o.y;Math.abs(b)<=Math.abs(l.y)&&(Math.abs(b)<Math.abs(l.y)&&(s.length=0),s.push({type:"pointer",points:[u,[o.x,u[1]]],direction:"horizontal"}),l.y=b)}}return{originOffset:{x:d.length>0?d[0].points[0][0]-o.x:0,y:s.length>0?s[0].points[0][1]-o.y:0},snapLines:[...d,...s]}},H5=t=>t===st.rectangle||t===st.ellipse||t===st.diamond||t===st.frame||t===st.magicframe||t===st.image||t===st.text;h();var qt=v(T(),1),iI=()=>(0,qt.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,qt.jsx)("p",{children:(0,qt.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line1",bold:t=>(0,qt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,qt.jsx)("p",{children:(0,qt.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line2",bold:t=>(0,qt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,qt.jsx)("p",{children:(0,qt.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line3",link:t=>(0,qt.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:t})})}),(0,qt.jsx)("p",{children:(0,qt.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:t=>(0,qt.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:t}),discordLink:t=>(0,qt.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[t,"."]})})})]}),U5=iI;h();var yp={width:100,height:0},Un=100,aI=(t,e,o)=>{let r=bn({x:0,y:0,textAlign:fl.CENTER,verticalAlign:So.MIDDLE,...e,containerId:t.id,strokeColor:e.strokeColor||t.strokeColor});return Object.assign(t,{boundElements:(t.boundElements||[]).concat({type:"text",id:r.id})}),Ut(r,t,o),[t,r]},W5=(t,e,o,r,n)=>{let i,a;if(Object.assign(t,{startBinding:t?.startBinding||null,endBinding:t.endBinding||null}),e){let m=e?.width??Un,c=e?.height??Un,u;e.id&&(u=r.getElement(e.id),u||console.error(`No element for start binding with id ${e.id} found`));let f=e.x||t.x-m,b=e.y||t.y-c/2,x=u?u.type:e.type;if(x){if(x==="text"){let y="";u&&u.type==="text"?y=u.text:e.type==="text"&&(y=e.text),y||console.error(`No text found for start binding text element for ${t.id}`),i=bn({x:f,y:b,type:"text",...u,...e,text:y}),Object.assign(i,{x:e.x||t.x-i.width,y:e.y||t.y-i.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{i=gn({x:f,y:b,width:m,height:c,...u,...e,type:x});break}default:hc(t,`Unhandled element start type "${e.type}"`,!0)}ru(t,i,"start",n)}}if(o){let m=o?.height??Un,c=o?.width??Un,u;o.id&&(u=r.getElement(o.id),u||console.error(`No element for end binding with id ${o.id} found`));let f=o.x||t.x+t.width,b=o.y||t.y-m/2,x=u?u.type:o.type;if(x){if(x==="text"){let y="";u&&u.type==="text"?y=u.text:o.type==="text"&&(y=o.text),y||console.error(`No text found for end binding text element for ${t.id}`),a=bn({x:f,y:b,type:"text",...u,...o,text:y}),Object.assign(a,{y:o.y||t.y-a.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{a=gn({x:f,y:b,width:c,height:m,...u,...o,type:x});break}default:hc(t,`Unhandled element end type "${x}"`,!0)}ru(t,a,"end",n)}}if(t.points.length<2)return{linearElement:t,startBoundElement:i,endBoundElement:a};let l=t.points.length-1,s=.5,d=fr(t.points);return t.points[l][0]>t.points[l-1][0]&&(d[0][0]=s,d[l][0]-=s),t.points[l][0]<t.points[l-1][0]&&(d[0][0]=-s,d[l][0]+=s),t.points[l][1]>t.points[l-1][1]&&(d[0][1]=s,d[l][1]-=s),t.points[l][1]<t.points[l-1][1]&&(d[0][1]=-s,d[l][1]+=s),Object.assign(t,{points:d}),{linearElement:t,startBoundElement:i,endBoundElement:a}},_g=class{excalidrawElements=new Map;add=e=>{e&&this.excalidrawElements.set(e.id,e)};getElements=()=>un(Array.from(this.excalidrawElements.values()));getElementsMap=()=>bc(fe(this.getElements()));getElement=e=>this.excalidrawElements.get(e)},el=(t,e)=>{if(!t)return[];let o=fr(t),r=new _g,n=new Map,i=new Map;for(let l of o){let s,d=l.id;switch(e?.regenerateIds!==!1&&Object.assign(l,{id:pn()}),l.type){case"rectangle":case"ellipse":case"diamond":{let c=l?.label?.text&&l.width===void 0?0:l?.width||Un,u=l?.label?.text&&l.height===void 0?0:l?.height||Un;s=gn({...l,width:c,height:u});break}case"line":{let c=l.width||yp.width,u=l.height||yp.height;s=Rl({width:c,height:u,points:[[0,0],[c,u]],...l});break}case"arrow":{let c=l.width||yp.width,u=l.height||yp.height;s=Rl({width:c,height:u,endArrowhead:"arrow",points:[[0,0],[c,u]],...l}),Object.assign(s,lb(s.points));break}case"text":{let c=l?.fontFamily||zi,u=l?.fontSize||qo,f=l?.lineHeight||Fr(c),b=l.text??"",x=Ll(b),y=Or(x,Qt({fontFamily:c,fontSize:u}),f);s=bn({width:y.width,height:y.height,fontFamily:c,fontSize:u,...l});break}case"image":{s=Pc({width:l?.width||Un,height:l?.height||Un,...l});break}case"frame":{s=Lc({x:0,y:0,...l});break}case"magicframe":{s=Pl({x:0,y:0,...l});break}case"freedraw":case"iframe":case"embeddable":{s=l;break}default:s=l,hc(l,`Unhandled element type "${l.type}"`,!0)}r.getElement(s.id)?console.error(`Duplicate id found for ${s.id}`):(r.add(s),n.set(s.id,l),d&&i.set(d,s.id))}let a=r.getElementsMap();for(let[l,s]of n){let d=r.getElement(l);switch(s.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(s.label?.text){let[m,c]=aI(d,s?.label,a);if(r.add(m),r.add(c),m.type==="arrow"){let u=s.type==="arrow"?s?.start:void 0,f=s.type==="arrow"?s?.end:void 0;if(u&&u.id){let k=i.get(u.id);k&&Object.assign(u,{id:k})}if(f&&f.id){let k=i.get(f.id);k&&Object.assign(f,{id:k})}let{linearElement:b,startBoundElement:x,endBoundElement:y}=W5(m,u,f,r,a);m=b,r.add(b),r.add(x),r.add(y)}}else switch(s.type){case"arrow":{let{start:m,end:c}=s;if(m&&m.id){let x=i.get(m.id);Object.assign(m,{id:x})}if(c&&c.id){let x=i.get(c.id);Object.assign(c,{id:x})}let{linearElement:u,startBoundElement:f,endBoundElement:b}=W5(d,m,c,r,a);r.add(u),r.add(f),r.add(b);break}}break}}}for(let[l,s]of n){if(s.type!=="frame"&&s.type!=="magicframe")continue;let d=r.getElement(l);if(!d)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let m=[];s.children.forEach(C=>{let w=i.get(C);if(!w)throw new Error(`Element with ${C} wasn't mapped correctly`);let A=r.getElement(w);if(!A)throw new Error(`Frame element with id ${w} doesn't exist`);Object.assign(A,{frameId:d.id}),A?.boundElements?.forEach(z=>{let I=r.getElement(z.id);if(!I)throw new Error(`Bound element with id ${z.id} doesn't exist`);Object.assign(I,{frameId:d.id}),m.push(I)}),m.push(A)});let[c,u,f,b]=Ze(m),x=10;c=c-x,u=u-x,f=f+x,b=b+x;let y=Math.max(d?.width,f-c),k=Math.max(d?.height,b-u);Object.assign(d,{x:c,y:u,width:y,height:k})}return r.getElements()};h();h();var il=v(H(),1);h();var Lg=v(vr(),1),G5=v(H(),1);var Qe=t=>e=>{(0,Lg.unstable_batchedUpdates)(t,e)},Ep=t=>mc(e=>{(0,Lg.unstable_batchedUpdates)(t,e)}),wp=(()=>{let t;try{let o=G5.version.split(".");t=Number(o[0])>17}catch{t=!1}let e=!1;return()=>window.EXCALIDRAW_THROTTLE_RENDER===!0?t?!0:(e||(e=!0,console.warn("Excalidraw: render throttling is disabled on React versions < 18.")),!1):!1})();h();h();var lI="#ff6b6b",sI="#ff0000",V5=1,K5=2,Y5=(t,e)=>{if(!e.snapLines.length)return;let o=e.theme===xe.LIGHT||e.zenModeEnabled?lI:sI,r=(e.zenModeEnabled?V5*1.5:V5)/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY);for(let n of e.snapLines)n.type==="pointer"?(t.lineWidth=r,t.strokeStyle=o,dI(n,t,e)):n.type==="gap"?(t.lineWidth=r,t.strokeStyle=o,mI(n.points[0],n.points[1],n.direction,e,t)):n.type==="points"&&(t.lineWidth=r,t.strokeStyle=o,cI(n,t,e));t.restore()},cI=(t,e,o)=>{if(!o.zenModeEnabled){let r=t.points[0],n=t.points[t.points.length-1];Ko(r,n,e)}for(let r of t.points)Z5(r,o,e)},dI=(t,e,o)=>{Z5(t.points[0],o,e),o.zenModeEnabled||Ko(t.points[0],t.points[1],e)},Z5=([t,e],o,r)=>{r.save();let n=(o.zenModeEnabled?K5*1.5:K5)/o.zoom.value;r.beginPath(),r.moveTo(t-n,e-n),r.lineTo(t+n,e+n),r.moveTo(t+n,e-n),r.lineTo(t-n,e+n),r.stroke(),r.restore()},Ko=(t,e,o)=>{o.beginPath(),o.lineTo(...t),o.lineTo(...e),o.stroke()},mI=(t,e,o,r,n)=>{let i=8/r.zoom.value,a=i/2,l=i/4;if(o==="horizontal"){let s=[(t[0]+e[0])/2,t[1]];r.zenModeEnabled||Ko([t[0],t[1]-i],[t[0],t[1]+i],n),Ko([s[0]-l,s[1]-a],[s[0]-l,s[1]+a],n),Ko([s[0]+l,s[1]-a],[s[0]+l,s[1]+a],n),r.zenModeEnabled||(Ko([e[0],e[1]-i],[e[0],e[1]+i],n),Ko(t,e,n))}else{let s=[t[0],(t[1]+e[1])/2];r.zenModeEnabled||Ko([t[0]-i,t[1]],[t[0]+i,t[1]],n),Ko([s[0]-a,s[1]-l],[s[0]+a,s[1]-l],n),Ko([s[0]-a,s[1]+l],[s[0]+a,s[1]+l],n),r.zenModeEnabled||(Ko([e[0]-i,e[1]],[e[0]+i,e[1]],n),Ko(t,e,n))}};var pI=(t,e,o)=>{let{elementId:r,hoverPointIndex:n}=e.selectedLinearElement;if(e.editingLinearElement?.selectedPointsIndices?.includes(n))return;let i=he.getElement(r,o);if(!i)return;let a=he.getPointAtIndexGlobalCoordinates(i,n,o);t.save(),t.translate(e.scrollX,e.scrollY),Rg(a,t,e),t.restore()},Rg=(t,e,o)=>{e.fillStyle="rgba(105, 101, 219, 0.4)",Ol(e,t[0],t[1],he.POINT_HANDLE_SIZE/o.zoom.value,!1)},Fs=(t,e,o,r,n,i,a,l,s=!1,d=0)=>{t.save(),t.translate(i,a),t.rotate(l),s&&t.fillRect(e-i,o-a,r,n),d&&t.roundRect?(t.beginPath(),t.roundRect(e-i,o-a,r,n,d),t.stroke(),t.closePath()):t.strokeRect(e-i,o-a,r,n),t.restore()},uI=(t,e,o,r,n,i)=>{t.save(),t.translate(r,n),t.rotate(i),t.beginPath(),t.moveTo(0,o/2),t.lineTo(e/2,0),t.lineTo(0,-o/2),t.lineTo(-e/2,0),t.closePath(),t.stroke(),t.restore()},Cp=(t,e,o,r,n,i=!1)=>{t.strokeStyle="#5e5ad8",t.setLineDash([]),t.fillStyle="rgba(255, 255, 255, 0.9)",n?t.fillStyle="rgba(134, 131, 226, 0.9)":i&&(t.fillStyle="rgba(177, 151, 252, 0.7)"),Ol(t,o[0],o[1],r/e.zoom.value,!i)},fI=(t,e,o,r,n,i)=>{t.beginPath(),t.ellipse(r,n,e/2,o/2,i,0,Math.PI*2),t.stroke()},hI=(t,e,o)=>{let[r,n,i,a]=Wt(e,o),l=i-r,s=a-n,d=iu(e,l,s),m=4;t.strokeStyle="rgba(0,0,0,.05)",t.lineWidth=d-m;let c=m/2+d/2;switch(e.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Fs(t,r-c,n-c,l+c*2,s+c*2,r+l/2,n+s/2,e.angle);break;case"diamond":let u=Math.hypot(l,s),f=c*u/s,b=c*u/l;uI(t,l+f*2,s+b*2,r+l/2,n+s/2,e.angle);break;case"ellipse":fI(t,l+c*2,s+c*2,r+l/2,n+s/2,e.angle);break}},gI=(t,e,o)=>{let[r,n,i]=e,a=iu(i,i.width,i.height);t.strokeStyle="rgba(0,0,0,0)",t.fillStyle="rgba(0,0,0,.05)",(n==="both"?[0,-1]:n==="start"?[0]:[-1]).forEach(s=>{let[d,m]=he.getPointAtIndexGlobalCoordinates(r,s,o);Ol(t,d,m,a)})},j5=(t,e,o)=>{let{angle:r,elementX1:n,elementY1:i,elementX2:a,elementY2:l,selectionColors:s,cx:d,cy:m,dashed:c,activeEmbeddable:u}=o,f=a-n,b=l-i,y=tc*2/e.zoom.value,k=8/e.zoom.value,C=4/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=(u?4:1)/e.zoom.value;let w=s.length;for(let A=0;A<w;++A)t.strokeStyle=s[A],c&&t.setLineDash([k,C+(k+C)*(w-1)]),t.lineDashOffset=(k+C)*A,Fs(t,n-y,i-y,f+y*2,b+y*2,d,m,r);t.restore()},bI=(t,e,o,r)=>{let n=Array.isArray(o)?gI:hI;t.save(),t.translate(e.scrollX,e.scrollY),n(t,o,r),t.restore()},xI=(t,e,o,r)=>{let[n,i,a,l]=Wt(o,r),s=a-n,d=l-i;t.strokeStyle="rgb(0,118,255)",t.lineWidth=jo.strokeWidth/e.zoom.value,t.save(),t.translate(e.scrollX,e.scrollY),Fs(t,n,i,s,d,n+s/2,i+d/2,o.angle,!1,jo.radius/e.zoom.value),t.restore()},vI=(t,e,o)=>{let r=o.filter(l=>l.groupIds.length===0),n=o.filter(l=>l.groupIds.length>0),i=l=>{let[s,d,m,c]=Ze(l);return{angle:0,elementX1:s,elementX2:m,elementY1:d,elementY2:c,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:s+(m-s)/2,cy:d+(c-d)/2,activeEmbeddable:!1}},a=l=>{let s=ut(o,l);return i(s)};Object.entries(Mb(n,e)).filter(([l,s])=>s).map(([l,s])=>l).map(l=>a(l)).concat(r.map(l=>i([l]))).forEach(l=>j5(t,e,l))},Pg=(t,e,o,r)=>{if(!e.selectedLinearElement)return;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=1/e.zoom.value;let n=he.getPointsGlobalCoordinates(o,r),{POINT_HANDLE_SIZE:i}=he,a=e.editingLinearElement?i:i/2;n.forEach((s,d)=>{let m=!!e.editingLinearElement?.selectedPointsIndices?.includes(d);Cp(t,e,s,a,m)}),he.getEditorMidPoints(o,r,e).filter(s=>s!==null).forEach(s=>{e?.selectedLinearElement?.segmentMidPointHoveredCoords&&he.arePointsEqual(s,e.selectedLinearElement.segmentMidPointHoveredCoords)?e.editingLinearElement?(Cp(t,e,s,a,!1),Rg(s,t,e)):(Rg(s,t,e),Cp(t,e,s,a,!1)):(e.editingLinearElement||n.length===2)&&Cp(t,e,s,i/2,!1,!0)}),t.restore()},X5=(t,e,o,r,n)=>{Object.keys(r).forEach(i=>{let a=r[i];if(a!==void 0){let[l,s,d,m]=a;t.save(),t.lineWidth=1/o.zoom.value,e.selectionColor&&(t.strokeStyle=e.selectionColor),i==="rotation"?Ol(t,l+d/2,s+m/2,d/2):t.roundRect?(t.beginPath(),t.roundRect(l,s,d,m,2/o.zoom.value),t.fill(),t.stroke()):Fs(t,l,s,d,m,l+d/2,s+m/2,n,!0),t.restore()}})},yI=(t,e,o,r)=>{e.save();let n=tc*2/o.zoom.value,i=t.width+n*2,a=t.height+n*2,l=t.x+i/2,s=t.y+a/2,d=-(i/2+n),m=-(a/2+n);e.translate(l+o.scrollX,s+o.scrollY),e.rotate(t.angle),e.lineWidth=1/o.zoom.value,e.strokeStyle=r,e.strokeRect(d,m,i,a),e.restore()},q5=({canvas:t,elementsMap:e,visibleElements:o,selectedElements:r,allElementsMap:n,scale:i,appState:a,renderConfig:l,device:s})=>{if(t===null)return{atLeastOneVisibleElement:!1,elementsMap:e};let[d,m]=p0(t,i),c=u0({canvas:t,scale:i,normalizedWidth:d,normalizedHeight:m});c.save(),c.scale(a.zoom.value,a.zoom.value);let u;if(o.forEach(x=>{a.editingLinearElement?.elementId===x.id&&x&&(u=x)}),u&&Pg(c,a,u,e),a.selectionElement)try{L0(a.selectionElement,c,a,l.selectionColor)}catch(x){console.error(x)}if(a.editingElement&&oe(a.editingElement)){let x=n.get(a.editingElement.id);x&&!x.autoResize&&yI(x,c,a,l.selectionColor)}a.isBindingEnabled&&a.suggestedBindings.filter(x=>x!=null).forEach(x=>{bI(c,a,x,e)}),a.frameToHighlight&&xI(c,a,a.frameToHighlight,e),a.elementsToHighlight&&vI(c,a,a.elementsToHighlight);let f=r.some(x=>Ee(x));if(r.length===1&&a.editingLinearElement?.elementId===r[0].id&&Pg(c,a,r[0],e),a.selectedLinearElement&&a.selectedLinearElement.hoverPointIndex>=0&&pI(c,a,e),!a.multiElement&&!a.editingLinearElement){let x=Jc(r,a);r.length===1&&_e(r[0])&&a.selectedLinearElement?.elementId===r[0].id&&!r[0].locked&&Pg(c,a,r[0],e);let k=l.selectionColor||At.black;if(x){let C=fe(r),w=[];for(let z of e.values()){let I=[];C.has(z.id)&&!Mc(a,z)&&I.push(k);let M=l.remoteSelectedElementIds.get(z.id);if(M&&I.push(...M.map(_=>yi(_,a.collaborators.get(_)))),I.length){let[_,$,O,W,j,R]=Wt(z,e,!0);w.push({angle:z.angle,elementX1:_,elementY1:$,elementX2:O,elementY2:W,selectionColors:I,dashed:!!M,cx:j,cy:R,activeEmbeddable:a.activeEmbeddable?.element===z&&a.activeEmbeddable.state==="active"})}}let A=z=>{let I=ut(e,z),[M,_,$,O]=Ze(I);w.push({angle:0,elementX1:M,elementX2:$,elementY1:_,elementY2:O,selectionColors:[At.black],dashed:!0,cx:M+($-M)/2,cy:_+(O-_)/2,activeEmbeddable:!1})};for(let z of Br(a))A(z);a.editingGroupId&&A(a.editingGroupId),w.forEach(z=>j5(c,a,z))}if(c.save(),c.translate(a.scrollX,a.scrollY),r.length===1){c.fillStyle=At.white;let C=D0(r[0],a.zoom,e,"mouse",qc(s));!a.viewModeEnabled&&x&&!oe(a.editingElement)&&X5(c,l,a,C,r[0].angle)}else if(r.length>1&&!a.isRotating){let C=tc*2/a.zoom.value;c.fillStyle=At.white;let[w,A,z,I]=Ze(r),M=c.getLineDash();c.setLineDash([2/a.zoom.value]);let _=c.lineWidth;c.lineWidth=1/a.zoom.value,c.strokeStyle=k,Fs(c,w-C,A-C,z-w+C*2,I-A+C*2,(w+z)/2,(A+I)/2,0),c.lineWidth=_,c.setLineDash(M);let $=R0([w,A,z,I,(w+z)/2,(A+I)/2],0,a.zoom,"mouse",f?{...qc(s),rotation:!0}:qc(s));r.some(O=>!O.locked)&&X5(c,l,a,$,0)}c.restore()}Y5(c,a),c.restore(),yE({context:c,renderConfig:l,appState:a,normalizedWidth:d,normalizedHeight:m});let b;return l.renderScrollbars&&(b=v3(o,d,m,a),c.save(),c.fillStyle=x3,c.strokeStyle="rgba(255,255,255,0.8)",[b.horizontal,b.vertical].forEach(x=>{x&&lm(c,x.x,x.y,x.width,x.height,Ar/2)}),c.restore()),{scrollBars:b,atLeastOneVisibleElement:o.length>0,elementsMap:e}},Dg=mc(t=>{let e=q5(t);t.callback?.(e)},{trailing:!0}),J5=(t,e)=>{if(e){Dg(t);return}let o=q5(t);return t.callback(o),o};var e6=v(T(),1),EI=t=>{let e=(0,il.useRef)(!1);return(0,il.useEffect)(()=>{if(!e.current){e.current=!0;return}let o=new Map,r=new Map,n=new Map,i=new Map,a=new Map;t.appState.collaborators.forEach((s,d)=>{if(s.selectedElementIds)for(let m of Object.keys(s.selectedElementIds))n.has(m)||n.set(m,[]),n.get(m).push(d);!s.pointer||s.pointer.renderCursor===!1||(s.username&&i.set(d,s.username),s.userState&&a.set(d,s.userState),r.set(d,eo({sceneX:s.pointer.x,sceneY:s.pointer.y},t.appState)),o.set(d,s.button))});let l=t.containerRef?.current&&getComputedStyle(t.containerRef.current).getPropertyValue("--color-selection")||"#6965db";J5({canvas:t.canvas,elementsMap:t.elementsMap,visibleElements:t.visibleElements,selectedElements:t.selectedElements,allElementsMap:t.allElementsMap,scale:window.devicePixelRatio,appState:t.appState,renderConfig:{remotePointerViewportCoords:r,remotePointerButton:o,remoteSelectedElementIds:n,remotePointerUsernames:i,remotePointerUserStates:a,selectionColor:l,renderScrollbars:!1},device:t.device,callback:t.renderInteractiveSceneCallback},wp())}),(0,e6.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:t.appState.width,height:t.appState.height,cursor:t.appState.viewModeEnabled?Oe.GRAB:Oe.AUTO},width:t.appState.width*t.scale,height:t.appState.height*t.scale,ref:t.handleCanvasRef,onContextMenu:t.onContextMenu,onPointerMove:t.onPointerMove,onPointerUp:t.onPointerUp,onPointerCancel:t.onPointerCancel,onTouchMove:t.onTouchMove,onPointerDown:t.onPointerDown,onDoubleClick:t.appState.viewModeEnabled?void 0:t.onDoubleClick,children:g("labels.drawingCanvas")})},Q5=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,editingGroupId:t.editingGroupId,editingLinearElement:t.editingLinearElement,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,selectionElement:t.selectionElement,selectedGroupIds:t.selectedGroupIds,selectedLinearElement:t.selectedLinearElement,multiElement:t.multiElement,isBindingEnabled:t.isBindingEnabled,suggestedBindings:t.suggestedBindings,isRotating:t.isRotating,elementsToHighlight:t.elementsToHighlight,collaborators:t.collaborators,activeEmbeddable:t.activeEmbeddable,snapLines:t.snapLines,zenModeEnabled:t.zenModeEnabled,editingElement:t.editingElement}),wI=(t,e)=>t.selectionNonce!==e.selectionNonce||t.sceneNonce!==e.sceneNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements||t.selectedElements!==e.selectedElements?!1:Tt(Q5(t.appState),Q5(e.appState)),Ng=il.default.memo(EI,wI);h();var Pi=v(H(),1);var o6=v(T(),1),CI=t=>{let e=(0,Pi.useRef)(null),o=(0,Pi.useRef)(!1);return(0,Pi.useEffect)(()=>{let r=e.current;if(!r)return;let n=t.canvas;o.current||(o.current=!0,r.replaceChildren(n),n.classList.add("excalidraw__canvas","static"));let i=`${t.appState.width}px`,a=`${t.appState.height}px`;n.style.width!==i&&(n.style.width=i),n.style.height!==a&&(n.style.height=a);let l=t.appState.width*t.scale,s=t.appState.height*t.scale;n.width!==l&&(n.width=l),n.height!==s&&(n.height=s),h0({canvas:n,rc:t.rc,scale:t.scale,elementsMap:t.elementsMap,allElementsMap:t.allElementsMap,visibleElements:t.visibleElements,appState:t.appState,renderConfig:t.renderConfig},wp())}),(0,o6.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:e})},t6=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,shouldCacheIgnoreZoom:t.shouldCacheIgnoreZoom,viewBackgroundColor:t.viewBackgroundColor,exportScale:t.exportScale,selectedElementsAreBeingDragged:t.selectedElementsAreBeingDragged,gridSize:t.gridSize,frameRendering:t.frameRendering,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,editingGroupId:t.editingGroupId}),SI=(t,e)=>t.sceneNonce!==e.sceneNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements?!1:Tt(t6(t.appState),t6(e.appState))&&Tt(t.renderConfig,e.renderConfig),Og=Pi.default.memo(CI,SI);h();var zs=class{scene;constructor(e){this.scene=e}getRenderableElements=(()=>{let e=({elementsMap:r,zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s,height:d,width:m})=>{let c=[];for(let u of r.values())zl(u,m,d,{zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s},r)&&c.push(u);return c},o=({elements:r,editingElement:n,pendingImageElementId:i})=>{let a=bc(new Map);for(let l of r)mn(l)&&i===l.id||(!n||n.type!=="text"||l.id!==n.id)&&a.set(l.id,l);return a};return j1(({zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d,editingElement:m,pendingImageElementId:c,sceneNonce:u})=>{let f=this.scene.getNonDeletedElements(),b=o({elements:f,editingElement:m,pendingImageElementId:c}),x=e({elementsMap:b,zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d});return{elementsMap:b,visibleElements:x}})})();destroy(){Dg.cancel(),f0.cancel(),this.getRenderableElements.clear()}};h();var Sp=v(H(),1);var Fg=v(T(),1),r6=({trails:t})=>{let e=(0,Sp.useRef)(null);return(0,Sp.useEffect)(()=>{if(e.current)for(let o of t)o.start(e.current);return()=>{for(let o of t)o.stop()}},t),(0,Fg.jsx)("div",{className:"SVGLayer",children:(0,Fg.jsx)("svg",{ref:e})})};h();var n6=v(T(),1),TI=5,kI=(t,e,o)=>{let[r,n]=Wt(t,o),{x:i,y:a}=eo({sceneX:r+t.width,sceneY:n},e),l=i-e.offsetLeft+10,s=a-e.offsetTop;return{x:l,y:s}},zg=({children:t,element:e,elementsMap:o})=>{let r=$a();if(r.contextMenu||r.draggingElement||r.resizingElement||r.isRotating||r.openMenu||r.viewModeEnabled)return null;let{x:n,y:i}=kI(e,r,o);return(0,n6.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${i}px`,left:`${n}px`,padding:TI},children:t})};h();var II=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
52
52
  Your role is to transform low-fidelity wireframes into working front-end HTML code.
53
53
 
54
54
  YOU MUST FOLLOW FOLLOWING RULES:
@@ -68,13 +68,13 @@ If the wireframes, diagrams, or text is unclear or unreadable, refer to provided
68
68
 
69
69
  Your goal is a production-ready prototype that brings the wireframes to life.
70
70
 
71
- Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function n6({image:t,apiKey:e,text:o,theme:r=be.LIGHT}){let n={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:SI},{role:"user",content:[{type:"image_url",image_url:{url:t,detail:"high"}},{type:"text",text:`Above is the reference wireframe. Please make a new website based on these and return just the HTML file. Also, please make it for the ${r} theme. What follows are the wireframe's text annotations (if any)...`},{type:"text",text:o}]}]},i,a=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(n)});return a.ok?i={...await a.json(),ok:!0}:i={...await a.json(),ok:!1},i}h();var Ns=v(k(),1),TI="small",wp=t=>(0,Ns.jsxs)("label",{className:$("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${TI}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Ns.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Ns.jsx)("div",{className:"ToolIcon__icon",children:t.icon})]});h();var Li=v(k(),1),kI=({height:t,width:e,userToFollow:o,onDisconnect:r})=>(0,Li.jsx)("div",{className:"follow-mode",style:{width:e,height:t},children:(0,Li.jsxs)("div",{className:"follow-mode__badge",children:[(0,Li.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,Li.jsx)("span",{className:"follow-mode__badge__username",title:o.username,children:o.username})]}),(0,Li.jsx)("button",{onClick:r,className:"follow-mode__disconnect-btn",children:Ro})]})}),i6=kI;h();var Cp=class{targets=new WeakMap;rafIds=new WeakMap;register(e,o){this.targets.set(e,{callback:o,stopped:!0})}start(e){let o=this.targets.get(e);o&&(this.rafIds.has(e)||(this.targets.set(e,{...o,stopped:!1}),this.scheduleFrame(e)))}stop(e){let o=this.targets.get(e);o&&!o.stopped&&this.targets.set(e,{...o,stopped:!0}),this.cancelFrame(e)}constructFrame(e){return o=>{let r=this.targets.get(e);if(!r)return;let n=this.onFrame(r,o);!r.stopped&&!n?this.scheduleFrame(e):this.cancelFrame(e)}}scheduleFrame(e){let o=requestAnimationFrame(this.constructFrame(e));this.rafIds.set(e,o)}cancelFrame(e){if(this.rafIds.has(e)){let o=this.rafIds.get(e);cancelAnimationFrame(o)}this.rafIds.delete(e)}onFrame(e,o){return e.callback(o)??!1}};h();h();function II(t,e,o,r){Object.defineProperty(t,e,{get:o,set:r,enumerable:!0,configurable:!0})}var AI={};II(AI,"LaserPointer",()=>Fs);function pt([t,e,o],[r,n,i]){return[t+r,e+n,o+i]}function Os([t,e,o],[r,n,i]){return[t-r,e-n,o-i]}function St([t,e,o],r){return[t*r,e*r,o*r]}function rl([t,e,o]){return[t/Math.sqrt(t**2+e**2),e/Math.sqrt(t**2+e**2),o]}function qt([t,e,o],r){return[Math.cos(r)*t-Math.sin(r)*e,Math.sin(r)*t+Math.cos(r)*e,o]}function MI(t,e,o){return pt(t,St(Os(e,t),o))}function a6(t,e,o){return Math.atan2(o[1]-t[1],o[0]-t[0])-Math.atan2(e[1]-t[1],e[0]-t[0])}function l6(t){return Math.atan2(Math.sin(t),Math.cos(t))}function s6([t,e]){return Math.sqrt(t**2+e**2)}function nl([t,e],[o,r]){return Math.sqrt((o-t)**2+(r-e)**2)}function _I(t){if(t.length<2)return 0;let e=0;for(let o=1;o<=t.length-1;o++)e+=nl(t[o-1],t[o]);return e+=nl(t[t.length-2],t[t.length-1]),e}var LI=(t,e,o)=>Math.max(e,Math.min(o,t));function PI(t,e,o){let r=nl(e,o);if(r===0)return nl(t,e);let n=LI(((t[0]-e[0])*(o[0]-e[0])+(t[1]-e[1])*(o[1]-e[1]))/r**2,0,1),i=[e[0]+n*(o[0]-e[0]),e[1]+n*(o[1]-e[1]),t[2]];return nl(i,t)}function Sp(t,e){if(e===0||t.length<=2)return t;let o=t[0],r=t[t.length-1],[n,i]=t.reduce(([a,l],s,d)=>{let c=PI(s,o,r);return c>a?[c,d]:[a,l]},[0,-1]);if(n>=e){let a=t[i];return[...Sp([o,...t.slice(1,i),a],e).slice(0,-1),a,...Sp([a,...t.slice(i,-1),r],e).slice(1)]}else return[o,r]}var Fs=class t{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:e=>e>35?.5:1,maxTailLength:50}}constructor(e){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},t.defaults,e)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(e){let o=this.originalPoints[this.originalPoints.length-1];if(!(o&&o[0]===e[0]&&o[1]===e[1])){if(this.originalPoints.push(e),this.isFresh){this.isFresh=!1,this.stablePoints.push(e);return}this.options.streamline>0&&(e=MI(this.lastPoint,e,1-this.options.streamline)),this.tailPoints.push(e),_I(this.tailPoints)>t.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&this.options.simplifyPhase=="tail")throw new Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(e,o,r,n,i){return(e??this.options.size)*this.options.sizeMapping({pressure:o,runningLength:i,currentIndex:r,totalLength:n})}getStrokeOutline(e){if(this.isFresh)return[];let o=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&this.options.simplifyPhase==="input"&&(o=Sp(o,this.options.simplify));let r=o.length;if(r===0)return[];if(r===1){let M=o[0],_=this.getSize(e,M[2],0,r,0);if(_<.5)return[];let U=[];for(let D=0;D<=Math.PI*2;D+=Math.PI/16)U.push(pt(M,St(qt([1,0,0],D),_)));return U.push(pt(M,St([1,0,0],this.getSize(e,M[2],0,r,0)))),U}if(r===2){let M=o[0],_=o[1],U=this.getSize(e,M[2],0,r,0),D=this.getSize(e,_[2],0,r,0);if(U<.5||D<.5)return[];let G=[],O=a6(M,[M[0],M[1]-100,M[2]],_);for(let B=O;B<=Math.PI+O;B+=Math.PI/16)G.push(pt(M,St(qt([1,0,0],B),U)));for(let B=Math.PI+O;B<=Math.PI*2+O;B+=Math.PI/16)G.push(pt(_,St(qt([1,0,0],B),D)));return G.push(G[0]),G}let n=[],i=[],a=0,l=0,s=0,d=0;for(let M=1;M<r-1;M++){let _=o[M-1],U=o[M],D=o[M+1],G=U[2],O=nl(_,U);d+=O,a=l+(O-l)*.2;let B=this.getSize(e,G,M,r,d);if(B===0){s=M+1;continue}let te=rl(Os(_,U)),oe=rl(Os(D,U)),ve=qt(te,Math.PI/2),Ie=qt(te,-Math.PI/2),de=qt(oe,Math.PI/2),j=qt(oe,-Math.PI/2),R=pt(U,St(ve,B)),N=pt(U,St(Ie,B)),K=pt(U,St(de,B)),Y=pt(U,St(j,B)),Z=pt(ve,j),X=pt(Ie,de),ee=pt(U,St(s6(Z)===0?te:rl(Z),B)),ne=pt(U,St(s6(X)===0?oe:rl(X),B)),rt=l6(a6(U,_,D)),nt=t.constants.cornerDetectionMaxAngle/180*Math.PI*t.constants.cornerDetectionVariance(a);if(Math.abs(rt)<nt){let st=Math.abs(l6(Math.PI-rt));if(st===0)continue;if(rt<0){i.push(N,ne);for(let Ue=0;Ue<=st;Ue+=st/4)n.push(pt(U,qt(St(ve,B),Ue)));for(let Ue=st;Ue>=0;Ue-=st/4)i.push(pt(U,qt(St(ve,B),Ue)));i.push(ne,K)}else{n.push(R,ee);for(let Ue=0;Ue<=st;Ue+=st/4)i.push(pt(U,qt(St(ve,-B),-Ue)));for(let Ue=st;Ue>=0;Ue-=st/4)n.push(pt(U,qt(St(ve,-B),-Ue)));n.push(ee,Y)}}else n.push(ee),i.push(ne);l=a}if(s>=r-2)if(this.options.keepHead){let M=o[r-1],_=[];for(let U=0;U<=Math.PI*2;U+=Math.PI/16)_.push(pt(M,St(qt([1,0,0],U),this.options.size)));return _.push(pt(M,St([1,0,0],this.options.size))),_}else return[];let c=o[s],m=o[s+1],u=o[r-2],f=o[r-1],b=rl(Os(m,c)),x=rl(Os(u,f)),y=qt(b,-Math.PI/2),T=qt(x,Math.PI/2),C=this.getSize(e,c[2],0,r,0),w=[],A=this.options.keepHead?this.options.size:this.getSize(e,u[2],r-2,r,d),z=[];if(C>1){for(let M=0;M<=Math.PI;M+=Math.PI/16)w.unshift(pt(c,qt(St(y,C),-M)));w.unshift(pt(c,St(y,-C)))}else w.push(c);for(let M=0;M<=Math.PI*3;M+=Math.PI/16)z.push(pt(f,qt(St(T,-A),-M)));let I=[...w,...n,...z.reverse(),...i.reverse()];return w.length>0&&I.push(w[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Sp(I,this.options.simplify):I}};var Pi=class{constructor(e,o,r){this.animationFrameHandler=e;this.app=o;this.options=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.trailElement=document.createElementNS(R1,"path")}currentTrail;pastTrails=[];container;trailElement;get hasCurrentTrail(){return!!this.currentTrail}hasLastPoint(e,o){if(this.currentTrail){let r=this.currentTrail.originalPoints.length;return this.currentTrail.originalPoints[r-1][0]===e&&this.currentTrail.originalPoints[r-1][1]===o}return!1}start(e){e&&(this.container=e),this.trailElement.parentNode!==this.container&&this.container&&this.container.appendChild(this.trailElement),this.animationFrameHandler.start(this)}stop(){this.animationFrameHandler.stop(this),this.trailElement.parentNode===this.container&&this.container?.removeChild(this.trailElement)}startPath(e,o){this.currentTrail=new Fs(this.options),this.currentTrail.addPoint([e,o,performance.now()]),this.update()}addPointToPath(e,o){this.currentTrail&&(this.currentTrail.addPoint([e,o,performance.now()]),this.update())}endPath(){this.currentTrail&&(this.currentTrail.close(),this.currentTrail.options.keepHead=!1,this.pastTrails.push(this.currentTrail),this.currentTrail=void 0,this.update())}update(){this.start()}onFrame(){let e=[];for(let r of this.pastTrails)e.push(this.drawTrail(r,this.app.state));if(this.currentTrail){let r=this.drawTrail(this.currentTrail,this.app.state);e.push(r)}this.pastTrails=this.pastTrails.filter(r=>r.getStrokeOutline().length!==0),e.length===0&&this.stop();let o=e.join(" ").trim();this.trailElement.setAttribute("d",o),this.trailElement.setAttribute("fill",(this.options.fill??(()=>"black"))(this))}drawTrail(e,o){let r=e.getStrokeOutline(e.options.size/o.zoom.value).map(([n,i])=>{let a=Qt({sceneX:n,sceneY:i},o);return[a.x,a.y]});return j1(r,!0)}};h();var Tp=class{constructor(e,o){this.animationFrameHandler=e;this.app=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new Pi(e,o,{...this.getTrailOptions(),fill:()=>Fp})}localTrail;collabTrails=new Map;container;getTrailOptions(){return{simplify:0,streamline:.4,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/1e3),i=(50-Math.min(50,e.totalLength-e.currentIndex))/50;return Math.min(Yn(i),Yn(n))}}}startPath(e,o){this.localTrail.startPath(e,o)}addPointToPath(e,o){this.localTrail.addPointToPath(e,o)}endPath(){this.localTrail.endPath()}start(e){this.container=e,this.animationFrameHandler.start(this),this.localTrail.start(e)}stop(){this.animationFrameHandler.stop(this),this.localTrail.stop()}onFrame(){this.updateCollabTrails()}updateCollabTrails(){if(!(!this.container||this.app.state.collaborators.size===0)){for(let[e,o]of this.app.state.collaborators.entries()){let r;this.collabTrails.has(e)?r=this.collabTrails.get(e):(r=new Pi(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>o.pointer?.laserColor||xi(e,o)}),r.start(this.container),this.collabTrails.set(e,r)),o.pointer&&o.pointer.tool==="laser"&&(o.button==="down"&&!r.hasCurrentTrail&&r.startPath(o.pointer.x,o.pointer.y),o.button==="down"&&r.hasCurrentTrail&&!r.hasLastPoint(o.pointer.x,o.pointer.y)&&r.addPointToPath(o.pointer.x,o.pointer.y),o.button==="up"&&r.hasCurrentTrail&&(r.addPointToPath(o.pointer.x,o.pointer.y),r.endPath()))}for(let e of this.collabTrails.keys())this.app.state.collaborators.has(e)||(this.collabTrails.get(e).stop(),this.collabTrails.delete(e))}}};h();var RI=(t,e,o,r,n,i)=>{let{zoom:a}=r,l=180*o/Math.PI,s=t*(a.value-1)/2,d=e*(a.value-1)/2;return t>n&&a.value!==1&&(s=n*(a.value-1)/2),e>i&&a.value!==1&&(d=i*(a.value-1)/2),`translate(${s}px, ${d}px) scale(${a.value}) rotate(${l}deg)`},c6=({id:t,onChange:e,onSubmit:o,getViewportCoords:r,element:n,canvas:i,excalidrawContainer:a,app:l})=>{let s=(O,B)=>{if(!B.style.fontFamily||!B.style.fontSize)return!1;let te=B.style.fontFamily.replace(/"/g,"");return Kp({fontFamily:O.fontFamily})!==te||`${O.fontSize}px`!==B.style.fontSize},d=()=>{let O=l.state,B=ko.getScene(n)?.getElement(t);if(!B)return;let{textAlign:te,verticalAlign:oe}=B,ve=l.scene.getNonDeletedElementsMap();if(B&&ce(B)){let Ie=B.x,de=B.y,j=Nr(B,l.scene.getNonDeletedElementsMap()),R=B.width,N=B.height,K=B.width,Y=B.height;if(j&&B.containerId){if(ur(j)){let Jt=ue.getBoundTextElementPosition(j,B,ve);Ie=Jt.x,de=Jt.y}let st=s(B,c),Ue;if(st?Ue=kl(j.id,j.height):(Ue=db[j.id],Ue||(Ue=kl(j.id,j.height))),R=nu(j,B),N=Cb(j,B),!ur(j)&&Y>N){let Jt=Vi(Y,j.type);re(j,{height:Jt});return}else if(!ur(j)&&j.height>Ue.height&&Y<N){let Jt=Vi(Y,j.type);re(j,{height:Jt})}else{let{y:Jt}=Ec(j,B,ve);de=Jt}}let[Z,X]=r(Ie,de),ee=c.selectionStart,ne=c.selectionEnd,rt=c.value.length;if(ee===ne&&ne!==rt){let st=rt-ne;c.selectionStart=c.value.length-st,c.selectionEnd=c.value.length-st}j||(R=(O.width-8-Z)/O.zoom.value,K=Math.min(K,R));let nt=(O.height-X)/O.zoom.value;Object.assign(c.style,{font:Xo(B),lineHeight:B.lineHeight,width:`${K}px`,height:`${Y}px`,left:`${Z}px`,top:`${X}px`,transform:RI(K,Y,vb(B,j),O,R,nt),textAlign:te,verticalAlign:oe,color:B.strokeColor,opacity:B.opacity/100,filter:"var(--theme-filter)",maxHeight:`${nt}px`}),c.scrollTop=0,cc()&&(c.style.fontFamily=Kp(B)),re(B,{x:Ie,y:de})}},c=document.createElement("textarea");c.dir="auto",c.tabIndex=0,c.dataset.type="wysiwyg",c.wrap="off",c.classList.add("excalidraw-wysiwyg");let m="pre",u="normal";xt(n)&&(m="pre-wrap",u="break-word"),Object.assign(c.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,padding:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:u,whiteSpace:m,overflowWrap:"break-word",boxSizing:"content-box"}),c.value=n.originalText,d(),e&&(c.onpaste=async O=>{let B=await $c(O,!0);if(!B.text)return;let te=Il(B.text);if(!te)return;let oe=Nr(n,l.scene.getNonDeletedElementsMap()),ve=Xo({fontSize:l.state.currentItemFontSize,fontFamily:l.state.currentItemFontFamily});if(oe){let Ie=ct(oe,l.scene.getNonDeletedElementsMap()),de=gb(`${c.value}${te}`,ve,nu(oe,Ie)),j=hb(de,ve);c.style.width=`${j}px`}},c.oninput=()=>{e(Il(c.value))}),c.onkeydown=O=>{if(!O.shiftKey&&Qd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(Qd),d();else if(!O.shiftKey&&em.keyTest(O))O.preventDefault(),l.actionManager.executeAction(em),d();else if(Jf.keyTest(O))l.actionManager.executeAction(Jf);else if(Qf.keyTest(O))l.actionManager.executeAction(Qf);else if(O.key===S.ESCAPE)O.preventDefault(),A=!0,z();else if(O.key===S.ENTER&&O[S.CTRL_OR_CMD]){if(O.preventDefault(),O.isComposing||O.keyCode===229)return;A=!0,z()}else if(O.key===S.TAB||O[S.CTRL_OR_CMD]&&(O.code===fe.BRACKET_LEFT||O.code===fe.BRACKET_RIGHT)){if(O.preventDefault(),O.isComposing)return;O.shiftKey||O.code===fe.BRACKET_LEFT?T():y(),c.dispatchEvent(new Event("input"))}};let f=4,b=" ".repeat(f),x=new RegExp(`^ {1,${f}}`),y=()=>{let{selectionStart:O,selectionEnd:B}=c,te=C(),oe=c.value;te.forEach(ve=>{let Ie=oe.slice(0,ve),de=oe.slice(ve);oe=`${Ie}${b}${de}`}),c.value=oe,c.selectionStart=O+f,c.selectionEnd=B+f*te.length},T=()=>{let{selectionStart:O,selectionEnd:B}=c,te=C(),oe=[],ve=c.value;te.forEach(Ie=>{let de=ve.slice(Ie,Ie+f).match(x);if(de){let j=ve.slice(0,Ie),R=ve.slice(Ie+de[0].length);ve=`${j}${R}`,oe.push(Ie)}}),c.value=ve,oe.length&&(O>oe[oe.length-1]?c.selectionStart=Math.max(O-f,oe[oe.length-1]):c.selectionStart=O,c.selectionEnd=Math.max(c.selectionStart,B-f*oe.length))},C=()=>{let{selectionStart:O,selectionEnd:B,value:te}=c,oe=te.slice(0,O).match(/[^\n]*$/)[0].length;return O=O-oe,te.slice(O,B).split(`
72
- `).reduce((Ie,de,j,R)=>Ie.concat(j?Ie[j-1]+R[j-1].length+1:O),[]).reverse()},w=O=>{O.preventDefault(),O.stopPropagation()},A=!1,z=()=>{I();let O=ko.getScene(n)?.getElement(n.id);if(!O)return;let B=c.value,te=Nr(O,l.scene.getNonDeletedElementsMap());if(te){if(B=O.text,c.value.trim()){let oe=xb(te);!oe||oe!==n.id?re(te,{boundElements:(te.boundElements||[]).concat({type:"text",id:n.id})}):ur(te)&&Eu(te)}else re(te,{boundElements:te.boundElements?.filter(oe=>!ce(oe))});Ut(O,te,l.scene.getNonDeletedElementsMap())}o({text:B,viaKeyboard:A,originalText:c.value})},I=()=>{D||(D=!0,c.onblur=null,c.oninput=null,c.onkeydown=null,G&&G.disconnect(),window.removeEventListener("resize",d),window.removeEventListener("wheel",w,!0),window.removeEventListener("pointerdown",_),window.removeEventListener("pointerup",M),window.removeEventListener("blur",z),window.removeEventListener("beforeunload",z),U(),c.remove())},M=O=>{window.removeEventListener("pointerup",M);let B=O?.target,te=B instanceof HTMLElement&&B.classList.contains("active-color");setTimeout(()=>{if(c.onblur=z,te){let oe=(Ie,de)=>{Ie.find(R=>R.removedNodes.length>0&&R.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{c.focus()}),de.disconnect())};new MutationObserver(oe).observe(document.querySelector(".excalidraw-container"),{childList:!0})}te||c.focus()})},_=O=>{let B=O.target instanceof HTMLElement&&O.target.classList.contains("active-color");((O.target instanceof HTMLElement||O.target instanceof SVGElement)&&O.target.closest(`.${Xs.SHAPE_ACTIONS_MENU}`)&&!To(O.target)||B)&&(c.onblur=null,window.addEventListener("pointerup",M),window.addEventListener("blur",z))},U=ko.getScene(n).addCallback(()=>{d(),!!document.activeElement?.closest(".color-picker-content")||c.focus()}),D=!1;c.select(),M();let G=null;i&&"ResizeObserver"in window?(G=new window.ResizeObserver(()=>{d()}),G.observe(i)):window.addEventListener("resize",d),window.addEventListener("pointerdown",_),window.addEventListener("wheel",w,{passive:!1,capture:!0}),window.addEventListener("beforeunload",z),a?.querySelector(".excalidraw-textEditorContainer").appendChild(c)};var ke=v(k(),1),u6=Tt.default.createContext(null),f6=Tt.default.createContext(null),h6={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},Hg=Tt.default.createContext(h6);Hg.displayName="DeviceContext";var Ug=Tt.default.createContext({container:null,id:null});Ug.displayName="ExcalidrawContainerContext";var Wg=Tt.default.createContext([]);Wg.displayName="ExcalidrawElementsContext";var Gg=Tt.default.createContext({...Ki(),width:0,height:0,offsetLeft:0,offsetTop:0});Gg.displayName="ExcalidrawAppStateContext";var Vg=Tt.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});Vg.displayName="ExcalidrawSetAppStateContext";var Kg=Tt.default.createContext(null);Kg.displayName="ExcalidrawActionManagerContext";var mo=()=>(0,Tt.useContext)(u6),_n=()=>(0,Tt.useContext)(f6),Me=()=>(0,Tt.useContext)(Hg),_t=()=>(0,Tt.useContext)(Ug),kn=()=>(0,Tt.useContext)(Wg),Ba=()=>(0,Tt.useContext)(Gg),Pe=()=>(0,Tt.useContext)(Vg),It=()=>(0,Tt.useContext)(Kg),Bs=!1,Og=0,Ri=!1,zs=!1,Fg=!1,Bg={horizontal:null,vertical:null},Un=0,$s=!1,zg=new Map,kp=!1,d6=0,m6=!1,Hs=null,Re={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},$g=class t extends Tt.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=h6;excalidrawContainerRef=Tt.default.createRef();scene;renderer;fonts;resizeObserver;nearestScrollableContainer;library;libraryItemsFromStorage;id;store;history;excalidrawContainerValue;files={};imageCache=new Map;iFrameRefs=new Map;embedsValidationStatus=new Map;initializedEmbeds=new Set;elementsPendingErasure=new Set;hitLinkElement;lastPointerDownEvent=null;lastPointerUpEvent=null;lastPointerMoveEvent=null;lastViewportPosition={x:0,y:0};animationFrameHandler=new Cp;laserTrails=new Tp(this.animationFrameHandler,this);eraserTrail=new Pi(this.animationFrameHandler,this,{streamline:.2,size:5,keepHead:!0,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/200),i=(10-Math.min(10,e.totalLength-e.currentIndex))/10;return Math.min(Yn(i),Yn(n))},fill:()=>this.state.theme===be.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new _o;onPointerDownEmitter=new _o;onPointerUpEmitter=new _o;onUserFollowEmitter=new _o;onScrollChangeEmitter=new _o;missingPointerEventCleanupEmitter=new _o;onRemoveEventListenersEmitter=new _o;constructor(e){super(e);let o=Ki(),{excalidrawAPI:r,viewModeEnabled:n=!1,zenModeEnabled:i=!1,gridModeEnabled:a=!1,objectsSnapModeEnabled:l=!1,theme:s=o.theme,name:d=`${g("labels.untitled")}-${Vp()}`}=e;if(this.state={...o,theme:s,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:n,zenModeEnabled:i,objectsSnapModeEnabled:l,gridSize:a?Lr:null,name:d,width:window.innerWidth,height:window.innerHeight},this.id=O1(),this.library=new KE(this),this.actionManager=new $m(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new ko,this.canvas=document.createElement("canvas"),this.rc=N1.canvas(this.canvas),this.renderer=new Ds(this.scene),this.store=new zb,this.history=new xs,r){let c={updateScene:this.updateScene,updateLibrary:this.library.updateLibrary,addFiles:this.addFiles,resetScene:this.resetScene,getSceneElementsIncludingDeleted:this.getSceneElementsIncludingDeleted,history:{clear:this.resetHistory},scrollToContent:this.scrollToContent,getSceneElements:this.getSceneElements,getAppState:()=>this.state,getFiles:()=>this.files,getName:this.getName,registerAction:m=>{this.actionManager.registerAction(m)},refresh:this.refresh,setToast:this.setToast,id:this.id,setActiveTool:this.setActiveTool,setCursor:this.setCursor,resetCursor:this.resetCursor,updateFrameRendering:this.updateFrameRendering,toggleSidebar:this.toggleSidebar,onChange:m=>this.onChangeEmitter.on(m),onPointerDown:m=>this.onPointerDownEmitter.on(m),onPointerUp:m=>this.onPointerUpEmitter.on(m),onScrollChange:m=>this.onScrollChangeEmitter.on(m),onUserFollow:m=>this.onUserFollowEmitter.on(m)};typeof r=="function"?r(c):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new hp({scene:this.scene,onSceneUpdated:this.onSceneUpdated}),this.history=new xs,this.actionManager.registerAll(Rb),this.actionManager.registerAction(l3(this.history,this.store)),this.actionManager.registerAction(s3(this.history,this.store))}onWindowMessage(e){if(e.origin!=="https://player.vimeo.com"&&e.origin!=="https://www.youtube.com")return;let o=null;try{o=JSON.parse(e.data)}catch{}if(o)switch(e.origin){case"https://player.vimeo.com":if(o.method==="paused"){let r=null,n=document.body.querySelectorAll("iframe.excalidraw__embeddable");if(!n)break;for(let i of n)i.contentWindow===e.source&&(r=i.contentWindow);r?.postMessage(JSON.stringify({method:o.value?"play":"pause",value:!0}),"*")}break;case"https://www.youtube.com":if(o.event==="infoDelivery"&&o.info&&o.id&&typeof o.info.playerState=="number"){let r=o.id,n=o.info.playerState;Object.values(sl).includes(n)&&zg.set(r,n)}break}}cacheEmbeddableRef(e,o){o&&this.iFrameRefs.set(e.id,o)}getHTMLIFrameElement(e){return this.iFrameRefs.get(e.id)}handleEmbeddableCenterClick(e){if(this.state.activeEmbeddable?.element===e&&this.state.activeEmbeddable?.state==="active"||(setTimeout(()=>{this.setState({activeEmbeddable:{element:e,state:"active"},selectedElementIds:{[e.id]:!0},draggingElement:null,selectionElement:null})},100),Xn(e)))return;let o=this.getHTMLIFrameElement(e);if(o?.contentWindow){if(o.src.includes("youtube")){let r=zg.get(e.id);switch(r||(zg.set(e.id,sl.UNSTARTED),o.contentWindow.postMessage(JSON.stringify({event:"listening",id:e.id}),"*")),r){case sl.PLAYING:case sl.BUFFERING:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*");break;default:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"playVideo",args:""}),"*")}}o.src.includes("player.vimeo.com")&&o.contentWindow.postMessage(JSON.stringify({method:"paused"}),"*")}}isIframeLikeElementCenter(e,o,r,n){return e&&!o.altKey&&!o.shiftKey&&!o.metaKey&&!o.ctrlKey&&(this.state.activeEmbeddable?.element!==e||this.state.activeEmbeddable?.state==="hover"||!this.state.activeEmbeddable)&&r>=e.x+e.width/3&&r<=e.x+2*e.width/3&&n>=e.y+e.height/3&&n<=e.y+2*e.height/3}updateEmbedValidationStatus=(e,o)=>{this.embedsValidationStatus.set(e.id,o),Lo.delete(e)};updateEmbeddables=()=>{let e=new Set,o=!1;this.scene.getNonDeletedElements().filter(r=>{if(Ht(r)){if(e.add(r.id),!this.embedsValidationStatus.has(r.id)){o=!0;let n=Zi(r.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(r,n)}}else Xn(r)&&e.add(r.id);return!1}),o&&this.scene.informMutation(),this.iFrameRefs.forEach((r,n)=>{e.has(n)||this.iFrameRefs.delete(n)})};renderEmbeddables(){let e=this.state.zoom.value,o=this.state.width,r=this.state.height,n=this.scene.getNonDeletedElements().filter(i=>Ht(i)&&this.embedsValidationStatus.get(i.id)===!0||Xn(i));return(0,ke.jsx)(ke.Fragment,{children:n.map(i=>{let{x:a,y:l}=Qt({sceneX:i.x,sceneY:i.y},this.state),s=Dl(i,o,r,this.state,this.scene.getNonDeletedElementsMap()),d=this.initializedEmbeds.has(i.id);if(s&&!d&&this.initializedEmbeds.add(i.id),!(s||d))return null;let m;if(Xn(i)){m=null;let b=(i.customData?.generationData??this.magicGenerations.get(i.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(b.status==="done"){let x=b.html;m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>x}}else if(b.status==="pending")m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>au(`
71
+ Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function i6({image:t,apiKey:e,text:o,theme:r=xe.LIGHT}){let n={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:II},{role:"user",content:[{type:"image_url",image_url:{url:t,detail:"high"}},{type:"text",text:`Above is the reference wireframe. Please make a new website based on these and return just the HTML file. Also, please make it for the ${r} theme. What follows are the wireframe's text annotations (if any)...`},{type:"text",text:o}]}]},i,a=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(n)});return a.ok?i={...await a.json(),ok:!0}:i={...await a.json(),ok:!1},i}h();var Bs=v(T(),1),AI="small",Tp=t=>(0,Bs.jsxs)("label",{className:B("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${AI}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Bs.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Bs.jsx)("div",{className:"ToolIcon__icon",children:t.icon})]});h();var Ri=v(T(),1),MI=({height:t,width:e,userToFollow:o,onDisconnect:r})=>(0,Ri.jsx)("div",{className:"follow-mode",style:{width:e,height:t},children:(0,Ri.jsxs)("div",{className:"follow-mode__badge",children:[(0,Ri.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,Ri.jsx)("span",{className:"follow-mode__badge__username",title:o.username,children:o.username})]}),(0,Ri.jsx)("button",{type:"button",onClick:r,className:"follow-mode__disconnect-btn",children:No})]})}),a6=MI;h();var kp=class{targets=new WeakMap;rafIds=new WeakMap;register(e,o){this.targets.set(e,{callback:o,stopped:!0})}start(e){let o=this.targets.get(e);o&&(this.rafIds.has(e)||(this.targets.set(e,{...o,stopped:!1}),this.scheduleFrame(e)))}stop(e){let o=this.targets.get(e);o&&!o.stopped&&this.targets.set(e,{...o,stopped:!0}),this.cancelFrame(e)}constructFrame(e){return o=>{let r=this.targets.get(e);if(!r)return;let n=this.onFrame(r,o);!r.stopped&&!n?this.scheduleFrame(e):this.cancelFrame(e)}}scheduleFrame(e){let o=requestAnimationFrame(this.constructFrame(e));this.rafIds.set(e,o)}cancelFrame(e){if(this.rafIds.has(e)){let o=this.rafIds.get(e);cancelAnimationFrame(o)}this.rafIds.delete(e)}onFrame(e,o){return e.callback(o)??!1}};h();h();function _I(t,e,o,r){Object.defineProperty(t,e,{get:o,set:r,enumerable:!0,configurable:!0})}var LI={};_I(LI,"LaserPointer",()=>Hs);function pt([t,e,o],[r,n,i]){return[t+r,e+n,o+i]}function $s([t,e,o],[r,n,i]){return[t-r,e-n,o-i]}function Ct([t,e,o],r){return[t*r,e*r,o*r]}function al([t,e,o]){return[t/Math.sqrt(t**2+e**2),e/Math.sqrt(t**2+e**2),o]}function Jt([t,e,o],r){return[Math.cos(r)*t-Math.sin(r)*e,Math.sin(r)*t+Math.cos(r)*e,o]}function PI(t,e,o){return pt(t,Ct($s(e,t),o))}function l6(t,e,o){return Math.atan2(o[1]-t[1],o[0]-t[0])-Math.atan2(e[1]-t[1],e[0]-t[0])}function s6(t){return Math.atan2(Math.sin(t),Math.cos(t))}function c6([t,e]){return Math.sqrt(t**2+e**2)}function ll([t,e],[o,r]){return Math.sqrt((o-t)**2+(r-e)**2)}function RI(t){if(t.length<2)return 0;let e=0;for(let o=1;o<=t.length-1;o++)e+=ll(t[o-1],t[o]);return e+=ll(t[t.length-2],t[t.length-1]),e}var DI=(t,e,o)=>Math.max(e,Math.min(o,t));function NI(t,e,o){let r=ll(e,o);if(r===0)return ll(t,e);let n=DI(((t[0]-e[0])*(o[0]-e[0])+(t[1]-e[1])*(o[1]-e[1]))/r**2,0,1),i=[e[0]+n*(o[0]-e[0]),e[1]+n*(o[1]-e[1]),t[2]];return ll(i,t)}function Ip(t,e){if(e===0||t.length<=2)return t;let o=t[0],r=t[t.length-1],[n,i]=t.reduce(([a,l],s,d)=>{let m=NI(s,o,r);return m>a?[m,d]:[a,l]},[0,-1]);if(n>=e){let a=t[i];return[...Ip([o,...t.slice(1,i),a],e).slice(0,-1),a,...Ip([a,...t.slice(i,-1),r],e).slice(1)]}else return[o,r]}var Hs=class t{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:e=>e>35?.5:1,maxTailLength:50}}constructor(e){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},t.defaults,e)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(e){let o=this.originalPoints[this.originalPoints.length-1];if(!(o&&o[0]===e[0]&&o[1]===e[1])){if(this.originalPoints.push(e),this.isFresh){this.isFresh=!1,this.stablePoints.push(e);return}this.options.streamline>0&&(e=PI(this.lastPoint,e,1-this.options.streamline)),this.tailPoints.push(e),RI(this.tailPoints)>t.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&this.options.simplifyPhase=="tail")throw new Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(e,o,r,n,i){return(e??this.options.size)*this.options.sizeMapping({pressure:o,runningLength:i,currentIndex:r,totalLength:n})}getStrokeOutline(e){if(this.isFresh)return[];let o=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&this.options.simplifyPhase==="input"&&(o=Ip(o,this.options.simplify));let r=o.length;if(r===0)return[];if(r===1){let M=o[0],_=this.getSize(e,M[2],0,r,0);if(_<.5)return[];let $=[];for(let O=0;O<=Math.PI*2;O+=Math.PI/16)$.push(pt(M,Ct(Jt([1,0,0],O),_)));return $.push(pt(M,Ct([1,0,0],this.getSize(e,M[2],0,r,0)))),$}if(r===2){let M=o[0],_=o[1],$=this.getSize(e,M[2],0,r,0),O=this.getSize(e,_[2],0,r,0);if($<.5||O<.5)return[];let W=[],j=l6(M,[M[0],M[1]-100,M[2]],_);for(let R=j;R<=Math.PI+j;R+=Math.PI/16)W.push(pt(M,Ct(Jt([1,0,0],R),$)));for(let R=Math.PI+j;R<=Math.PI*2+j;R+=Math.PI/16)W.push(pt(_,Ct(Jt([1,0,0],R),O)));return W.push(W[0]),W}let n=[],i=[],a=0,l=0,s=0,d=0;for(let M=1;M<r-1;M++){let _=o[M-1],$=o[M],O=o[M+1],W=$[2],j=ll(_,$);d+=j,a=l+(j-l)*.2;let R=this.getSize(e,W,M,r,d);if(R===0){s=M+1;continue}let Z=al($s(_,$)),ne=al($s(O,$)),me=Jt(Z,Math.PI/2),Me=Jt(Z,-Math.PI/2),de=Jt(ne,Math.PI/2),Q=Jt(ne,-Math.PI/2),L=pt($,Ct(me,R)),N=pt($,Ct(Me,R)),K=pt($,Ct(de,R)),Y=pt($,Ct(Q,R)),V=pt(me,Q),X=pt(Me,de),te=pt($,Ct(c6(V)===0?Z:al(V),R)),ae=pt($,Ct(c6(X)===0?ne:al(X),R)),et=s6(l6($,_,O)),nt=t.constants.cornerDetectionMaxAngle/180*Math.PI*t.constants.cornerDetectionVariance(a);if(Math.abs(et)<nt){let bt=Math.abs(s6(Math.PI-et));if(bt===0)continue;if(et<0){i.push(N,ae);for(let Ge=0;Ge<=bt;Ge+=bt/4)n.push(pt($,Jt(Ct(me,R),Ge)));for(let Ge=bt;Ge>=0;Ge-=bt/4)i.push(pt($,Jt(Ct(me,R),Ge)));i.push(ae,K)}else{n.push(L,te);for(let Ge=0;Ge<=bt;Ge+=bt/4)i.push(pt($,Jt(Ct(me,-R),-Ge)));for(let Ge=bt;Ge>=0;Ge-=bt/4)n.push(pt($,Jt(Ct(me,-R),-Ge)));n.push(te,Y)}}else n.push(te),i.push(ae);l=a}if(s>=r-2)if(this.options.keepHead){let M=o[r-1],_=[];for(let $=0;$<=Math.PI*2;$+=Math.PI/16)_.push(pt(M,Ct(Jt([1,0,0],$),this.options.size)));return _.push(pt(M,Ct([1,0,0],this.options.size))),_}else return[];let m=o[s],c=o[s+1],u=o[r-2],f=o[r-1],b=al($s(c,m)),x=al($s(u,f)),y=Jt(b,-Math.PI/2),k=Jt(x,Math.PI/2),C=this.getSize(e,m[2],0,r,0),w=[],A=this.options.keepHead?this.options.size:this.getSize(e,u[2],r-2,r,d),z=[];if(C>1){for(let M=0;M<=Math.PI;M+=Math.PI/16)w.unshift(pt(m,Jt(Ct(y,C),-M)));w.unshift(pt(m,Ct(y,-C)))}else w.push(m);for(let M=0;M<=Math.PI*3;M+=Math.PI/16)z.push(pt(f,Jt(Ct(k,-A),-M)));let I=[...w,...n,...z.reverse(),...i.reverse()];return w.length>0&&I.push(w[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Ip(I,this.options.simplify):I}};var Di=class{constructor(e,o,r){this.animationFrameHandler=e;this.app=o;this.options=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.trailElement=document.createElementNS(N1,"path")}currentTrail;pastTrails=[];container;trailElement;get hasCurrentTrail(){return!!this.currentTrail}hasLastPoint(e,o){if(this.currentTrail){let r=this.currentTrail.originalPoints.length;return this.currentTrail.originalPoints[r-1][0]===e&&this.currentTrail.originalPoints[r-1][1]===o}return!1}start(e){e&&(this.container=e),this.trailElement.parentNode!==this.container&&this.container&&this.container.appendChild(this.trailElement),this.animationFrameHandler.start(this)}stop(){this.animationFrameHandler.stop(this),this.trailElement.parentNode===this.container&&this.container?.removeChild(this.trailElement)}startPath(e,o){this.currentTrail=new Hs(this.options),this.currentTrail.addPoint([e,o,performance.now()]),this.update()}addPointToPath(e,o){this.currentTrail&&(this.currentTrail.addPoint([e,o,performance.now()]),this.update())}endPath(){this.currentTrail&&(this.currentTrail.close(),this.currentTrail.options.keepHead=!1,this.pastTrails.push(this.currentTrail),this.currentTrail=void 0,this.update())}update(){this.start()}onFrame(){let e=[];for(let r of this.pastTrails)e.push(this.drawTrail(r,this.app.state));if(this.currentTrail){let r=this.drawTrail(this.currentTrail,this.app.state);e.push(r)}this.pastTrails=this.pastTrails.filter(r=>r.getStrokeOutline().length!==0),e.length===0&&this.stop();let o=e.join(" ").trim();this.trailElement.setAttribute("d",o),this.trailElement.setAttribute("fill",(this.options.fill??(()=>"black"))(this))}drawTrail(e,o){let r=e.getStrokeOutline(e.options.size/o.zoom.value).map(([n,i])=>{let a=eo({sceneX:n,sceneY:i},o);return[a.x,a.y]});return q1(r,!0)}};h();var Ap=class{constructor(e,o){this.animationFrameHandler=e;this.app=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new Di(e,o,{...this.getTrailOptions(),fill:()=>$p})}localTrail;collabTrails=new Map;container;getTrailOptions(){return{simplify:0,streamline:.4,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/1e3),i=(50-Math.min(50,e.totalLength-e.currentIndex))/50;return Math.min(Zn(i),Zn(n))}}}startPath(e,o){this.localTrail.startPath(e,o)}addPointToPath(e,o){this.localTrail.addPointToPath(e,o)}endPath(){this.localTrail.endPath()}start(e){this.container=e,this.animationFrameHandler.start(this),this.localTrail.start(e)}stop(){this.animationFrameHandler.stop(this),this.localTrail.stop()}onFrame(){this.updateCollabTrails()}updateCollabTrails(){if(!(!this.container||this.app.state.collaborators.size===0)){for(let[e,o]of this.app.state.collaborators.entries()){let r;this.collabTrails.has(e)?r=this.collabTrails.get(e):(r=new Di(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>o.pointer?.laserColor||yi(e,o)}),r.start(this.container),this.collabTrails.set(e,r)),o.pointer&&o.pointer.tool==="laser"&&(o.button==="down"&&!r.hasCurrentTrail&&r.startPath(o.pointer.x,o.pointer.y),o.button==="down"&&r.hasCurrentTrail&&!r.hasLastPoint(o.pointer.x,o.pointer.y)&&r.addPointToPath(o.pointer.x,o.pointer.y),o.button==="up"&&r.hasCurrentTrail&&(r.addPointToPath(o.pointer.x,o.pointer.y),r.endPath()))}for(let e of this.collabTrails.keys())this.app.state.collaborators.has(e)||(this.collabTrails.get(e).stop(),this.collabTrails.delete(e))}}};h();var OI=(t,e,o,r,n,i)=>{let{zoom:a}=r,l=180*o/Math.PI,s=t*(a.value-1)/2,d=e*(a.value-1)/2;return t>n&&a.value!==1&&(s=n*(a.value-1)/2),e>i&&a.value!==1&&(d=i*(a.value-1)/2),`translate(${s}px, ${d}px) scale(${a.value}) rotate(${l}deg)`},d6=({id:t,onChange:e,onSubmit:o,getViewportCoords:r,element:n,canvas:i,excalidrawContainer:a,app:l,autoSelect:s=!0})=>{let d=(R,Z)=>{if(!Z.style.fontFamily||!Z.style.fontSize)return!1;let ne=Z.style.fontFamily.replace(/"/g,"");return Zp({fontFamily:R.fontFamily})!==ne||`${R.fontSize}px`!==Z.style.fontSize},m=()=>{let R=l.state,Z=Ao.getScene(n)?.getElement(t);if(!Z)return;let{textAlign:ne,verticalAlign:me}=Z,Me=l.scene.getNonDeletedElementsMap();if(Z&&oe(Z)){let de=Z.x,Q=Z.y,L=Qn(Z,l.scene.getNonDeletedElementsMap()),N=Z.width,K=Z.height,Y=Z.width,V=Z.height;if(L&&Z.containerId){if(hr(L)){let ho=he.getBoundTextElementPosition(L,Z,Me);de=ho.x,Q=ho.y}let Ge=d(Z,c),Co;if(Ge?Co=_l(L.id,L.height):(Co=pb[L.id],Co||(Co=_l(L.id,L.height))),N=au(L,Z),K=Sb(L,Z),!hr(L)&&V>K){let ho=Yi(V,L.type);re(L,{height:ho});return}else if(!hr(L)&&L.height>Co.height&&V<K){let ho=Yi(V,L.type);re(L,{height:ho})}else{let{y:ho}=Tc(L,Z,Me);Q=ho}}let[X,te]=r(de,Q),ae=c.selectionStart,et=c.selectionEnd,nt=c.value.length;if(ae===et&&et!==nt){let Ge=nt-et;c.selectionStart=c.value.length-Ge,c.selectionEnd=c.value.length-Ge}L?Y+=.5:(N=(R.width-8-X)/R.zoom.value,Y=Math.min(Y,N));let bt=(R.height-te)/R.zoom.value;Object.assign(c.style,{font:Qt(Z),lineHeight:Z.lineHeight,width:`${Y}px`,height:`${V}px`,left:`${X}px`,top:`${te}px`,transform:OI(Y,V,yb(Z,L),R,N,bt),textAlign:ne,verticalAlign:me,color:Z.strokeColor,opacity:Z.opacity/100,filter:"var(--theme-filter)",maxHeight:`${bt}px`}),c.scrollTop=0,xl()&&(c.style.fontFamily=Zp(Z)),re(Z,{x:de,y:Q})}},c=document.createElement("textarea");c.dir="auto",c.tabIndex=0,c.dataset.type="wysiwyg",c.wrap="off",c.classList.add("excalidraw-wysiwyg");let u="pre",f="normal";(Mt(n)||!n.autoResize)&&(u="pre-wrap",f="break-word"),Object.assign(c.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,padding:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:f,whiteSpace:u,overflowWrap:"break-word",boxSizing:"content-box"}),c.value=n.originalText,m(),e&&(c.onpaste=async R=>{let Z=await Gc(R,!0);if(!Z.text)return;let ne=Ll(Z.text);if(!ne)return;let me=Qn(n,l.scene.getNonDeletedElementsMap()),Me=Qt({fontSize:l.state.currentItemFontSize,fontFamily:l.state.currentItemFontFamily});if(me){let de=ct(me,l.scene.getNonDeletedElementsMap()),Q=kc(`${c.value}${ne}`,Me,au(me,de)),L=bb(Q,Me);c.style.width=`${L}px`}},c.oninput=()=>{e(Ll(c.value))}),c.onkeydown=R=>{if(!R.shiftKey&&rm.keyTest(R))R.preventDefault(),l.actionManager.executeAction(rm),m();else if(!R.shiftKey&&nm.keyTest(R))R.preventDefault(),l.actionManager.executeAction(nm),m();else if(th.keyTest(R))l.actionManager.executeAction(th);else if(oh.keyTest(R))l.actionManager.executeAction(oh);else if(R.key===S.ESCAPE)R.preventDefault(),z=!0,I();else if(R.key===S.ENTER&&R[S.CTRL_OR_CMD]){if(R.preventDefault(),R.isComposing||R.keyCode===229)return;z=!0,I()}else if(R.key===S.TAB||R[S.CTRL_OR_CMD]&&(R.code===ge.BRACKET_LEFT||R.code===ge.BRACKET_RIGHT)){if(R.preventDefault(),R.isComposing)return;R.shiftKey||R.code===ge.BRACKET_LEFT?C():k(),c.dispatchEvent(new Event("input"))}};let b=4,x=" ".repeat(b),y=new RegExp(`^ {1,${b}}`),k=()=>{let{selectionStart:R,selectionEnd:Z}=c,ne=w(),me=c.value;ne.forEach(Me=>{let de=me.slice(0,Me),Q=me.slice(Me);me=`${de}${x}${Q}`}),c.value=me,c.selectionStart=R+b,c.selectionEnd=Z+b*ne.length},C=()=>{let{selectionStart:R,selectionEnd:Z}=c,ne=w(),me=[],Me=c.value;ne.forEach(de=>{let Q=Me.slice(de,de+b).match(y);if(Q){let L=Me.slice(0,de),N=Me.slice(de+Q[0].length);Me=`${L}${N}`,me.push(de)}}),c.value=Me,me.length&&(R>me[me.length-1]?c.selectionStart=Math.max(R-b,me[me.length-1]):c.selectionStart=R,c.selectionEnd=Math.max(c.selectionStart,Z-b*me.length))},w=()=>{let{selectionStart:R,selectionEnd:Z,value:ne}=c,me=ne.slice(0,R).match(/[^\n]*$/)[0].length;return R=R-me,ne.slice(R,Z).split(`
72
+ `).reduce((de,Q,L,N)=>de.concat(L?de[L-1]+N[L-1].length+1:R),[]).reverse()},A=R=>{R.preventDefault(),R.stopPropagation()},z=!1,I=()=>{if(W)return;W=!0,M();let R=Ao.getScene(n)?.getElement(n.id);if(!R)return;let Z=Qn(R,l.scene.getNonDeletedElementsMap());if(Z){if(c.value.trim()){let ne=vb(Z);!ne||ne!==n.id?re(Z,{boundElements:(Z.boundElements||[]).concat({type:"text",id:n.id})}):hr(Z)&&Su(Z)}else re(Z,{boundElements:Z.boundElements?.filter(ne=>!oe(ne))});Ut(R,Z,l.scene.getNonDeletedElementsMap())}o({viaKeyboard:z,nextOriginalText:c.value})},M=()=>{c.onblur=null,c.oninput=null,c.onkeydown=null,j&&j.disconnect(),window.removeEventListener("resize",m),window.removeEventListener("wheel",A,!0),window.removeEventListener("pointerdown",$),window.removeEventListener("pointerup",_),window.removeEventListener("blur",I),window.removeEventListener("beforeunload",I),O(),c.remove()},_=R=>{window.removeEventListener("pointerup",_);let Z=R?.target,ne=Z instanceof HTMLElement&&Z.classList.contains("active-color");setTimeout(()=>{if(c.onblur=I,ne){let me=(de,Q)=>{de.find(N=>N.removedNodes.length>0&&N.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{c.focus()}),Q.disconnect())};new MutationObserver(me).observe(document.querySelector(".excalidraw-container"),{childList:!0})}ne||c.focus()})},$=R=>{let Z=R.target instanceof HTMLElement&&R.target.classList.contains("active-color");(R.target instanceof HTMLElement||R.target instanceof SVGElement)&&R.target.closest(`.${Qs.SHAPE_ACTIONS_MENU}`)&&!Io(R.target)||Z?(c.onblur=null,window.addEventListener("pointerup",_),window.addEventListener("blur",I)):R.target instanceof HTMLElement&&!R.target.contains(c)&&!xl()&&requestAnimationFrame(()=>{I()})},O=Ao.getScene(n).onUpdate(()=>{m(),!!document.activeElement?.closest(".color-picker-content")||c.focus()}),W=!1;s&&c.select(),_();let j=null;i&&"ResizeObserver"in window?(j=new window.ResizeObserver(()=>{m()}),j.observe(i)):window.addEventListener("resize",m),c.onpointerdown=R=>R.stopPropagation(),requestAnimationFrame(()=>{window.addEventListener("pointerdown",$,{capture:!0})}),window.addEventListener("wheel",A,{passive:!1,capture:!0}),window.addEventListener("beforeunload",I),a?.querySelector(".excalidraw-textEditorContainer").appendChild(c)};h();var m6=U({name:"autoResize",label:"labels.autoResize",icon:null,trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=ye(t,e);return n.length===1&&oe(n[0])&&!n[0].autoResize},perform:(t,e,o,r)=>{let n=ye(t,e);return{appState:e,elements:t.map(i=>{if(i.id===n[0].id&&oe(i)){let a=Or(i.originalText,Qt(i),i.lineHeight);return pe(i,{autoResize:!0,width:a.width,height:a.height,text:i.originalText})}return i}),storeAction:D.CAPTURE}}});h();var p6=t=>{let e=["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${e.map(r=>`${r}(-beta)?`).join("|")}\\b`).test(t.trim())};var ke=v(T(),1),g6=St.default.createContext(null),b6=St.default.createContext(null),x6={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},Gg=St.default.createContext(x6);Gg.displayName="DeviceContext";var Vg=St.default.createContext({container:null,id:null});Vg.displayName="ExcalidrawContainerContext";var Kg=St.default.createContext([]);Kg.displayName="ExcalidrawElementsContext";var Yg=St.default.createContext({...Zi(),width:0,height:0,offsetLeft:0,offsetTop:0});Yg.displayName="ExcalidrawAppStateContext";var Zg=St.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});Zg.displayName="ExcalidrawSetAppStateContext";var Xg=St.default.createContext(null);Xg.displayName="ExcalidrawActionManagerContext";var mo=()=>(0,St.useContext)(g6),Ln=()=>(0,St.useContext)(b6),Ae=()=>(0,St.useContext)(Gg),_t=()=>(0,St.useContext)(Vg),In=()=>(0,St.useContext)(Kg),$a=()=>(0,St.useContext)(Yg),Pe=()=>(0,St.useContext)(Zg),kt=()=>(0,St.useContext)(Xg),Us=!1,Bg=0,Ni=!1,Ws=!1,$g=!1,Hg={horizontal:null,vertical:null},Wn=0,Gs=!1,Ug=new Map,Mp=!1,u6=0,f6=!1,Vs=null,Re={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},Wg=class t extends St.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=x6;excalidrawContainerRef=St.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 kp;laserTrails=new Ap(this.animationFrameHandler,this);eraserTrail=new Di(this.animationFrameHandler,this,{streamline:.2,size:5,keepHead:!0,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/200),i=(10-Math.min(10,e.totalLength-e.currentIndex))/10;return Math.min(Zn(i),Zn(n))},fill:()=>this.state.theme===xe.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new Po;onPointerDownEmitter=new Po;onPointerUpEmitter=new Po;onUserFollowEmitter=new Po;onScrollChangeEmitter=new Po;missingPointerEventCleanupEmitter=new Po;onRemoveEventListenersEmitter=new Po;constructor(e){super(e);let o=Zi(),{excalidrawAPI:r,viewModeEnabled:n=!1,zenModeEnabled:i=!1,gridModeEnabled:a=!1,objectsSnapModeEnabled:l=!1,theme:s=o.theme,name:d=`${g("labels.untitled")}-${Yp()}`}=e;if(this.state={...o,theme:s,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:n,zenModeEnabled:i,objectsSnapModeEnabled:l,gridSize:a?Pr:null,name:d,width:window.innerWidth,height:window.innerHeight},this.id=z1(),this.library=new YE(this),this.actionManager=new Gm(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new Ao,this.canvas=document.createElement("canvas"),this.rc=F1.canvas(this.canvas),this.renderer=new zs(this.scene),this.store=new $b,this.history=new ws,r){let m={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:c=>{this.actionManager.registerAction(c)},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:c=>this.onChangeEmitter.on(c),onPointerDown:c=>this.onPointerDownEmitter.on(c),onPointerUp:c=>this.onPointerUpEmitter.on(c),onScrollChange:c=>this.onScrollChangeEmitter.on(c),onUserFollow:c=>this.onUserFollowEmitter.on(c)};typeof r=="function"?r(m):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new Ns({scene:this.scene}),this.history=new ws,this.actionManager.registerAll(Nb),this.actionManager.registerAction(s3(this.history,this.store)),this.actionManager.registerAction(c3(this.history,this.store))}onWindowMessage(e){if(e.origin!=="https://player.vimeo.com"&&e.origin!=="https://www.youtube.com")return;let o=null;try{o=JSON.parse(e.data)}catch{}if(o)switch(e.origin){case"https://player.vimeo.com":if(o.method==="paused"){let r=null,n=document.body.querySelectorAll("iframe.excalidraw__embeddable");if(!n)break;for(let i of n)i.contentWindow===e.source&&(r=i.contentWindow);r?.postMessage(JSON.stringify({method:o.value?"play":"pause",value:!0}),"*")}break;case"https://www.youtube.com":if(o.event==="infoDelivery"&&o.info&&o.id&&typeof o.info.playerState=="number"){let r=o.id,n=o.info.playerState;Object.values(ml).includes(n)&&Ug.set(r,n)}break}}cacheEmbeddableRef(e,o){o&&this.iFrameRefs.set(e.id,o)}getHTMLIFrameElement(e){return this.iFrameRefs.get(e.id)}handleEmbeddableCenterClick(e){if(this.state.activeEmbeddable?.element===e&&this.state.activeEmbeddable?.state==="active"||(setTimeout(()=>{this.setState({activeEmbeddable:{element:e,state:"active"},selectedElementIds:{[e.id]:!0},draggingElement:null,selectionElement:null})},100),qn(e)))return;let o=this.getHTMLIFrameElement(e);if(o?.contentWindow){if(o.src.includes("youtube")){let r=Ug.get(e.id);switch(r||(Ug.set(e.id,ml.UNSTARTED),o.contentWindow.postMessage(JSON.stringify({event:"listening",id:e.id}),"*")),r){case ml.PLAYING:case ml.BUFFERING:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*");break;default:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"playVideo",args:""}),"*")}}o.src.includes("player.vimeo.com")&&o.contentWindow.postMessage(JSON.stringify({method:"paused"}),"*")}}isIframeLikeElementCenter(e,o,r,n){return e&&!o.altKey&&!o.shiftKey&&!o.metaKey&&!o.ctrlKey&&(this.state.activeEmbeddable?.element!==e||this.state.activeEmbeddable?.state==="hover"||!this.state.activeEmbeddable)&&r>=e.x+e.width/3&&r<=e.x+2*e.width/3&&n>=e.y+e.height/3&&n<=e.y+2*e.height/3}updateEmbedValidationStatus=(e,o)=>{this.embedsValidationStatus.set(e.id,o),Ro.delete(e)};updateEmbeddables=()=>{let e=new Set,o=!1;this.scene.getNonDeletedElements().filter(r=>{if(Ht(r)){if(e.add(r.id),!this.embedsValidationStatus.has(r.id)){o=!0;let n=ji(r.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(r,n)}}else qn(r)&&e.add(r.id);return!1}),o&&this.scene.triggerUpdate(),this.iFrameRefs.forEach((r,n)=>{e.has(n)||this.iFrameRefs.delete(n)})};renderEmbeddables(){let e=this.state.zoom.value,o=this.state.width,r=this.state.height,n=this.scene.getNonDeletedElements().filter(i=>Ht(i)&&this.embedsValidationStatus.get(i.id)===!0||qn(i));return(0,ke.jsx)(ke.Fragment,{children:n.map(i=>{let{x:a,y:l}=eo({sceneX:i.x,sceneY:i.y},this.state),s=zl(i,o,r,this.state,this.scene.getNonDeletedElementsMap()),d=this.initializedEmbeds.has(i.id);if(s&&!d&&this.initializedEmbeds.add(i.id),!(s||d))return null;let c;if(qn(i)){c=null;let b=(i.customData?.generationData??this.magicGenerations.get(i.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(b.status==="done"){let x=b.html;c={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>x}}else if(b.status==="pending")c={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>cu(`
73
73
  <style>
74
74
  html, body {
75
75
  width: 100%;
76
76
  height: 100%;
77
- color: ${this.state.theme===be.DARK?"white":"black"};
77
+ color: ${this.state.theme===xe.DARK?"white":"black"};
78
78
  }
79
79
  body {
80
80
  display: flex;
@@ -141,7 +141,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
141
141
  </svg>
142
142
  </div>
143
143
  <div>Generating...</div>
144
- `)};else{let x;b.code==="ERR_GENERATION_INTERRUPTED"?x="Generation was interrupted...":x=b.message||"Generation failed",m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>au(`
144
+ `)};else{let x;b.code==="ERR_GENERATION_INTERRUPTED"?x="Generation was interrupted...":x=b.message||"Generation failed",c={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>cu(`
145
145
  <style>
146
146
  html, body {
147
147
  height: 100%;
@@ -151,7 +151,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
151
151
  flex-direction: column;
152
152
  align-items: center;
153
153
  justify-content: center;
154
- color: ${Ar.red[3]};
154
+ color: ${_r.red[3]};
155
155
  }
156
156
  h1, h3 {
157
157
  margin-top: 0;
@@ -160,12 +160,12 @@ Please output JUST THE HTML file containing your best attempt at implementing th
160
160
  </style>
161
161
  <h1>Error!</h1>
162
162
  <h3>${x}</h3>
163
- `)}}}else m=Qn(Pb(i.link||""));let u=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="active",f=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="hover";return(0,ke.jsx)("div",{className:$("excalidraw__embeddable-container",{"is-hovered":f}),style:{transform:s?`translate(${a-this.state.offsetLeft}px, ${l-this.state.offsetTop}px) scale(${e})`:"none",display:s?"block":"none",opacity:M0(i,Uc(i,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${ab(Math.min(i.width,i.height),i)}px`},children:(0,ke.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:s?`${i.width}px`:0,height:s?`${i.height}px`:0,transform:s?`rotate(${i.angle}rad)`:"none",pointerEvents:u?Vn.enabled:Vn.disabled},children:[f&&(0,ke.jsx)("div",{className:"excalidraw__embeddable-hint",children:g("buttons.embeddableInteractionButton")}),(0,ke.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${i.strokeWidth}px`},children:(Ht(i)?this.props.renderEmbeddable?.(i,this.state):null)??(0,ke.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(i,b),className:"excalidraw__embeddable",srcDoc:m?.type==="document"?m.srcdoc(this.state.theme):void 0,src:m?.type!=="document"?m?.link??"":void 0,scrolling:"no",referrerPolicy:"no-referrer-when-downgrade",title:"Excalidraw Embedded Content",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,sandbox:`${m?.sandbox?.allowSameOrigin?"allow-same-origin":""} allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads`})})]})},i.id)})})}getFrameNameDOMId=e=>`${this.id}-frame-name-${e.id}`;frameNameBoundsCache={get:e=>{let o=this.frameNameBoundsCache._cache.get(e.id);if(!o||o.zoom!==this.state.zoom.value||o.versionNonce!==e.versionNonce){let r=document.getElementById(this.getFrameNameDOMId(e));if(r){let n=r.getBoundingClientRect(),i=Ye({clientX:n.x,clientY:n.y},this.state),a=Ye({clientX:n.right,clientY:n.bottom},this.state);return o={x:i.x,y:i.y,width:a.x-i.x,height:a.y-i.y,angle:0,zoom:this.state.zoom.value,versionNonce:e.versionNonce},this.frameNameBoundsCache._cache.set(e.id,o),o}return null}return o},_cache:new Map};renderFrameNames=()=>{if(!this.state.frameRendering.enabled||!this.state.frameRendering.name)return null;let e=this.state.theme===be.DARK,o=0,r=0;return this.scene.getNonDeletedFramesLikes().map(n=>{if(qp(n)?o++:r++,!Dl(n,this.canvas.width/window.devicePixelRatio,this.canvas.height/window.devicePixelRatio,{offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,zoom:this.state.zoom},this.scene.getNonDeletedElementsMap()))return null;let{x:i,y:a}=Qt({sceneX:n.x,sceneY:n.y},this.state),l=6,s=()=>{re(n,{name:n.name?.trim()||null}),this.setState({editingFrame:null})},d,c=A0(n,qp(n)?o:r);if(n.id===this.state.editingFrame){let m=c;d=(0,ke.jsx)("input",{autoFocus:!0,value:m,onChange:u=>{re(n,{name:u.target.value})},onFocus:u=>u.target.select(),onBlur:()=>s(),onKeyDown:u=>{(u.key===S.ESCAPE||u.key===S.ENTER)&&s()},style:{background:this.state.viewBackgroundColor,filter:e?k1:"none",zIndex:2,border:"none",display:"block",padding:`${l}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${l}px, ${l}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-i-l}px`},size:m.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else d=c;return(0,ke.jsx)("div",{id:this.getFrameNameDOMId(n),style:{position:"absolute",bottom:`${this.state.height+Zo.nameOffsetY-a+this.state.offsetTop}px`,left:`${i-this.state.offsetLeft}px`,zIndex:2,fontSize:Zo.nameFontSize,color:e?Zo.nameColorDarkTheme:Zo.nameColorLightTheme,lineHeight:Zo.nameLineHeight,width:"max-content",maxWidth:`${n.width}px`,overflow:n.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:Oe.MOVE,pointerEvents:this.state.viewModeEnabled?Vn.disabled:Vn.enabled},onPointerDown:m=>this.handleCanvasPointerDown(m),onWheel:m=>this.handleWheel(m),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:n.id})},children:d},n.id)})};toggleOverscrollBehavior(e){document.documentElement.style.overscrollBehaviorX=e.type==="pointerenter"?"none":"auto"}render(){let e=this.scene.getSelectedElements(this.state),{renderTopRightUI:o,renderCustomStats:r}=this.props,n=this.scene.getVersionNonce(),{elementsMap:i,visibleElements:a}=this.renderer.getRenderableElements({versionNonce:n,zoom:this.state.zoom,offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,height:this.state.height,width:this.state.width,editingElement:this.state.editingElement,pendingImageElementId:this.state.pendingImageElementId}),l=this.scene.getNonDeletedElementsMap(),s=!(this.state.editingElement&&_e(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!ce(this.state.editingElement)),d=e[0];return(0,ke.jsx)("div",{className:$("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":s?Vn.disabled:Vn.enabled},ref:this.excalidrawContainerRef,onDrop:this.handleAppOnDrop,tabIndex:0,onKeyDown:this.props.handleKeyboardGlobally?void 0:this.onKeyDown,onPointerEnter:this.toggleOverscrollBehavior,onPointerLeave:this.toggleOverscrollBehavior,children:(0,ke.jsx)(u6.Provider,{value:this,children:(0,ke.jsx)(f6.Provider,{value:this.props,children:(0,ke.jsx)(Ug.Provider,{value:this.excalidrawContainerValue,children:(0,ke.jsx)(Hg.Provider,{value:this.device,children:(0,ke.jsx)(Vg.Provider,{value:this.setAppState,children:(0,ke.jsx)(Gg.Provider,{value:this.state,children:(0,ke.jsxs)(Wg.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,ke.jsxs)(Kg.Provider,{value:this.actionManager,children:[(0,ke.jsx)(T5,{canvas:this.canvas,appState:this.state,files:this.files,setAppState:this.setAppState,actionManager:this.actionManager,elements:this.scene.getNonDeletedElements(),onLockToggle:this.toggleLock,onPenModeToggle:this.togglePenMode,onHandToolToggle:this.onHandToolToggle,langCode:Gr().code,renderTopRightUI:o,renderCustomStats:r,showExitZenModeBtn:typeof this.props?.zenModeEnabled>"u"&&this.state.zenModeEnabled,UIOptions:this.props.UIOptions,onExportImage:this.onExportImage,renderWelcomeScreen:!this.state.isLoading&&this.state.showWelcomeScreen&&this.state.activeTool.type==="selection"&&!this.state.zenModeEnabled&&!this.scene.getElementsIncludingDeleted().length,app:this,isCollaborating:this.props.isCollaborating,openAIKey:this.OPENAI_KEY,isOpenAIKeyPersisted:this.OPENAI_KEY_IS_PERSISTED,onOpenAIAPIKeyChange:this.onOpenAIKeyChange,onMagicSettingsConfirm:this.onMagicSettingsConfirm,children:this.props.children}),(0,ke.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,ke.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,ke.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,ke.jsx)(o6,{trails:[this.laserTrails,this.eraserTrail]}),e.length===1&&this.state.showHyperlinkPopup&&(0,ke.jsx)(AE,{element:d,elementsMap:l,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},d.id),this.props.aiEnabled!==!1&&e.length===1&&xl(d)&&(0,ke.jsx)(Ng,{element:d,elementsMap:i,children:(0,ke.jsx)(wp,{title:g("labels.convertToCode"),icon:ma,checked:!1,onChange:()=>this.onMagicFrameGenerate(d,"button")})}),e.length===1&&Xn(d)&&d.customData?.generationData?.status==="done"&&(0,ke.jsxs)(Ng,{element:d,elementsMap:i,children:[(0,ke.jsx)(wp,{title:g("labels.copySource"),icon:gd,checked:!1,onChange:()=>this.onIframeSrcCopy(d)}),(0,ke.jsx)(wp,{title:"Enter fullscreen",icon:Sv,checked:!1,onChange:()=>{let c=this.getHTMLIFrameElement(d);if(c)try{c.requestFullscreen(),this.setState({activeEmbeddable:{element:d,state:"active"},selectedElementIds:{[d.id]:!0},draggingElement:null,selectionElement:null})}catch(m){console.warn(m),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,ke.jsx)(k5,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,ke.jsx)(p3,{items:this.state.contextMenu.items,top:this.state.contextMenu.top,left:this.state.contextMenu.left,actionManager:this.actionManager,onClose:c=>{this.setState({contextMenu:null},()=>{this.focusContainer(),c?.()})}}),(0,ke.jsx)(Rg,{canvas:this.canvas,rc:this.rc,elementsMap:i,allElementsMap:l,visibleElements:a,versionNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,renderConfig:{imageCache:this.imageCache,isExporting:!1,renderGrid:!0,canvasBackgroundColor:this.state.viewBackgroundColor,embedsValidationStatus:this.embedsValidationStatus,elementsPendingErasure:this.elementsPendingErasure}}),(0,ke.jsx)(Pg,{containerRef:this.excalidrawContainerRef,canvas:this.interactiveCanvas,elementsMap:i,visibleElements:a,selectedElements:e,versionNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,device:this.device,renderInteractiveSceneCallback:this.renderInteractiveSceneCallback,handleCanvasRef:this.handleInteractiveCanvasRef,onContextMenu:this.handleCanvasContextMenu,onPointerMove:this.handleCanvasPointerMove,onPointerUp:this.handleCanvasPointerUp,onPointerCancel:this.removePointer,onTouchMove:this.handleTouchMove,onPointerDown:this.handleCanvasPointerDown,onDoubleClick:this.handleCanvasDoubleClick}),this.state.userToFollow&&(0,ke.jsx)(i6,{width:this.state.width,height:this.state.height,userToFollow:this.state.userToFollow,onDisconnect:this.maybeUnfollowRemoteUser}),this.renderFrameNames()]}),this.renderEmbeddables()]})})})})})})})})}focusContainer=()=>{this.excalidrawContainerRef.current?.focus()};getSceneElementsIncludingDeleted=()=>this.scene.getElementsIncludingDeleted();getSceneElements=()=>this.scene.getNonDeletedElements();onInsertElements=e=>{this.addElementsFromPasteOrLibrary({elements:e,position:"center",files:null})};onExportImage=async(e,o,r)=>{xe("export",e,"ui");let n=await fi(e,o,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:r.exportingFrame}).catch(lc).catch(i=>{console.error(i),this.setState({errorMessage:i.message})});this.state.exportEmbedScene&&n&&Rc(n)&&this.setState({fileHandle:n})};magicGenerations=new Map;updateMagicGeneration=({frameElement:e,data:o})=>{o.status==="pending"?re(e,{customData:{generationData:void 0}},!1):re(e,{customData:{generationData:o}},!1),this.magicGenerations.set(e.id,o),this.onSceneUpdated()};getTextFromElements(e){return e.reduce((r,n)=>(ce(n)&&r.push(n.text),r),[]).join(`
163
+ `)}}}else c=ti(Db(i.link||""));let u=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="active",f=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="hover";return(0,ke.jsx)("div",{className:B("excalidraw__embeddable-container",{"is-hovered":f}),style:{transform:s?`translate(${a-this.state.offsetLeft}px, ${l-this.state.offsetTop}px) scale(${e})`:"none",display:s?"block":"none",opacity:_0(i,Kc(i,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${sb(Math.min(i.width,i.height),i)}px`},children:(0,ke.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:s?`${i.width}px`:0,height:s?`${i.height}px`:0,transform:s?`rotate(${i.angle}rad)`:"none",pointerEvents:u?Kn.enabled:Kn.disabled},children:[f&&(0,ke.jsx)("div",{className:"excalidraw__embeddable-hint",children:g("buttons.embeddableInteractionButton")}),(0,ke.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${i.strokeWidth}px`},children:(Ht(i)?this.props.renderEmbeddable?.(i,this.state):null)??(0,ke.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(i,b),className:"excalidraw__embeddable",srcDoc:c?.type==="document"?c.srcdoc(this.state.theme):void 0,src:c?.type!=="document"?c?.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:`${c?.sandbox?.allowSameOrigin?"allow-same-origin":""} allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads`})})]})},i.id)})})}getFrameNameDOMId=e=>`${this.id}-frame-name-${e.id}`;frameNameBoundsCache={get:e=>{let o=this.frameNameBoundsCache._cache.get(e.id);if(!o||o.zoom!==this.state.zoom.value||o.versionNonce!==e.versionNonce){let r=document.getElementById(this.getFrameNameDOMId(e));if(r){let n=r.getBoundingClientRect(),i=Ye({clientX:n.x,clientY:n.y},this.state),a=Ye({clientX:n.right,clientY:n.bottom},this.state);return o={x:i.x,y:i.y,width:a.x-i.x,height:a.y-i.y,angle:0,zoom:this.state.zoom.value,versionNonce:e.versionNonce},this.frameNameBoundsCache._cache.set(e.id,o),o}return null}return o},_cache:new Map};renderFrameNames=()=>{if(!this.state.frameRendering.enabled||!this.state.frameRendering.name)return null;let e=this.state.theme===xe.DARK,o=0,r=0;return this.scene.getNonDeletedFramesLikes().map(n=>{if(Qp(n)?o++:r++,!zl(n,this.canvas.width/window.devicePixelRatio,this.canvas.height/window.devicePixelRatio,{offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,zoom:this.state.zoom},this.scene.getNonDeletedElementsMap()))return null;let{x:i,y:a}=eo({sceneX:n.x,sceneY:n.y},this.state),l=6,s=()=>{re(n,{name:n.name?.trim()||null}),this.setState({editingFrame:null})},d,m=M0(n,Qp(n)?o:r);if(n.id===this.state.editingFrame){let c=m;d=(0,ke.jsx)("input",{autoFocus:!0,value:c,onChange:u=>{re(n,{name:u.target.value})},onFocus:u=>u.target.select(),onBlur:()=>s(),onKeyDown:u=>{(u.key===S.ESCAPE||u.key===S.ENTER)&&s()},style:{background:this.state.viewBackgroundColor,filter:e?A1:"none",zIndex:2,border:"none",display:"block",padding:`${l}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${l}px, ${l}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-i-l}px`},size:c.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else d=m;return(0,ke.jsx)("div",{id:this.getFrameNameDOMId(n),style:{position:"absolute",bottom:`${this.state.height+jo.nameOffsetY-a+this.state.offsetTop}px`,left:`${i-this.state.offsetLeft}px`,zIndex:2,fontSize:jo.nameFontSize,color:e?jo.nameColorDarkTheme:jo.nameColorLightTheme,lineHeight:jo.nameLineHeight,width:"max-content",maxWidth:`${n.width}px`,overflow:n.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:Oe.MOVE,pointerEvents:this.state.viewModeEnabled?Kn.disabled:Kn.enabled},onPointerDown:c=>this.handleCanvasPointerDown(c),onWheel:c=>this.handleWheel(c),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:n.id})},children:d},n.id)})};toggleOverscrollBehavior(e){document.documentElement.style.overscrollBehaviorX=e.type==="pointerenter"?"none":"auto"}render(){let e=this.scene.getSelectedElements(this.state),{renderTopRightUI:o,renderCustomStats:r}=this.props,n=this.scene.getSceneNonce(),{elementsMap:i,visibleElements:a}=this.renderer.getRenderableElements({sceneNonce:n,zoom:this.state.zoom,offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,height:this.state.height,width:this.state.width,editingElement:this.state.editingElement,pendingImageElementId:this.state.pendingImageElementId}),l=this.scene.getNonDeletedElementsMap(),s=!(this.state.editingElement&&_e(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!oe(this.state.editingElement)),d=e[0];return(0,ke.jsx)("div",{className:B("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":s?Kn.disabled:Kn.enabled},ref:this.excalidrawContainerRef,onDrop:this.handleAppOnDrop,tabIndex:0,onKeyDown:this.props.handleKeyboardGlobally?void 0:this.onKeyDown,onPointerEnter:this.toggleOverscrollBehavior,onPointerLeave:this.toggleOverscrollBehavior,children:(0,ke.jsx)(g6.Provider,{value:this,children:(0,ke.jsx)(b6.Provider,{value:this.props,children:(0,ke.jsx)(Vg.Provider,{value:this.excalidrawContainerValue,children:(0,ke.jsx)(Gg.Provider,{value:this.device,children:(0,ke.jsx)(Zg.Provider,{value:this.setAppState,children:(0,ke.jsx)(Yg.Provider,{value:this.state,children:(0,ke.jsxs)(Kg.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,ke.jsxs)(Xg.Provider,{value:this.actionManager,children:[(0,ke.jsx)(k5,{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:Vr().code,renderTopRightUI:o,renderCustomStats:r,showExitZenModeBtn:typeof this.props?.zenModeEnabled>"u"&&this.state.zenModeEnabled,UIOptions:this.props.UIOptions,onExportImage:this.onExportImage,renderWelcomeScreen:!this.state.isLoading&&this.state.showWelcomeScreen&&this.state.activeTool.type==="selection"&&!this.state.zenModeEnabled&&!this.scene.getElementsIncludingDeleted().length,app:this,isCollaborating:this.props.isCollaborating,openAIKey:this.OPENAI_KEY,isOpenAIKeyPersisted:this.OPENAI_KEY_IS_PERSISTED,onOpenAIAPIKeyChange:this.onOpenAIKeyChange,onMagicSettingsConfirm:this.onMagicSettingsConfirm,children:this.props.children}),(0,ke.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,ke.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,ke.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,ke.jsx)(r6,{trails:[this.laserTrails,this.eraserTrail]}),e.length===1&&this.state.showHyperlinkPopup&&(0,ke.jsx)(ME,{element:d,elementsMap:l,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},d.id),this.props.aiEnabled!==!1&&e.length===1&&wl(d)&&(0,ke.jsx)(zg,{element:d,elementsMap:i,children:(0,ke.jsx)(Tp,{title:g("labels.convertToCode"),icon:ua,checked:!1,onChange:()=>this.onMagicFrameGenerate(d,"button")})}),e.length===1&&qn(d)&&d.customData?.generationData?.status==="done"&&(0,ke.jsxs)(zg,{element:d,elementsMap:i,children:[(0,ke.jsx)(Tp,{title:g("labels.copySource"),icon:yd,checked:!1,onChange:()=>this.onIframeSrcCopy(d)}),(0,ke.jsx)(Tp,{title:"Enter fullscreen",icon:Tv,checked:!1,onChange:()=>{let m=this.getHTMLIFrameElement(d);if(m)try{m.requestFullscreen(),this.setState({activeEmbeddable:{element:d,state:"active"},selectedElementIds:{[d.id]:!0},draggingElement:null,selectionElement:null})}catch(c){console.warn(c),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,ke.jsx)(I5,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,ke.jsx)(u3,{items:this.state.contextMenu.items,top:this.state.contextMenu.top,left:this.state.contextMenu.left,actionManager:this.actionManager,onClose:m=>{this.setState({contextMenu:null},()=>{this.focusContainer(),m?.()})}}),(0,ke.jsx)(Og,{canvas:this.canvas,rc:this.rc,elementsMap:i,allElementsMap:l,visibleElements:a,sceneNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,renderConfig:{imageCache:this.imageCache,isExporting:!1,renderGrid:!0,canvasBackgroundColor:this.state.viewBackgroundColor,embedsValidationStatus:this.embedsValidationStatus,elementsPendingErasure:this.elementsPendingErasure}}),(0,ke.jsx)(Ng,{containerRef:this.excalidrawContainerRef,canvas:this.interactiveCanvas,elementsMap:i,visibleElements:a,allElementsMap:l,selectedElements:e,sceneNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,device:this.device,renderInteractiveSceneCallback:this.renderInteractiveSceneCallback,handleCanvasRef:this.handleInteractiveCanvasRef,onContextMenu:this.handleCanvasContextMenu,onPointerMove:this.handleCanvasPointerMove,onPointerUp:this.handleCanvasPointerUp,onPointerCancel:this.removePointer,onTouchMove:this.handleTouchMove,onPointerDown:this.handleCanvasPointerDown,onDoubleClick:this.handleCanvasDoubleClick}),this.state.userToFollow&&(0,ke.jsx)(a6,{width:this.state.width,height:this.state.height,userToFollow:this.state.userToFollow,onDisconnect:this.maybeUnfollowRemoteUser}),this.renderFrameNames()]}),this.renderEmbeddables()]})})})})})})})})}focusContainer=()=>{this.excalidrawContainerRef.current?.focus()};getSceneElementsIncludingDeleted=()=>this.scene.getElementsIncludingDeleted();getSceneElements=()=>this.scene.getNonDeletedElements();onInsertElements=e=>{this.addElementsFromPasteOrLibrary({elements:e,position:"center",files:null})};onExportImage=async(e,o,r)=>{ve("export",e,"ui");let n=await gi(e,o,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:r.exportingFrame}).catch(pc).catch(i=>{console.error(i),this.setState({errorMessage:i.message})});this.state.exportEmbedScene&&n&&Fc(n)&&this.setState({fileHandle:n})};magicGenerations=new Map;updateMagicGeneration=({frameElement:e,data:o})=>{o.status==="pending"?re(e,{customData:{generationData:void 0}},!1):re(e,{customData:{generationData:o}},!1),this.magicGenerations.set(e.id,o),this.triggerRender()};getTextFromElements(e){return e.reduce((r,n)=>(oe(n)&&r.push(n.text),r),[]).join(`
164
164
 
165
- `)}async onMagicFrameGenerate(e,o){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),xe("ai","generate (missing key)","d2c");return}let r=Kc(this.scene.getNonDeletedElements(),e).filter(m=>!xl(m));if(!r.length){o==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),xe("ai","generate (no-children)","d2c")):this.setActiveTool({type:"magicframe"});return}let n=this.insertIframeElement({sceneX:e.x+e.width+30,sceneY:e.y,width:e.width,height:e.height});if(!n)return;this.updateMagicGeneration({frameElement:n,data:{status:"pending"}}),this.setState({selectedElementIds:{[n.id]:!0}});let i=await xu({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:e,files:this.files}),a=await Oc(i),l=this.getTextFromElements(r);xe("ai","generate (start)","d2c");let s=await n6({image:a,apiKey:this.OPENAI_KEY,text:l,theme:this.state.theme});if(!s.ok){xe("ai","generate (failed)","d2c"),console.error(s.error),this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:s.error?.message||"Unknown error during generation"}});return}if(xe("ai","generate (success)","d2c"),s.choices[0].message.content==null){this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let d=s.choices[0].message.content,c=d.slice(d.indexOf("<!DOCTYPE html>"),d.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:n,data:{status:"done",html:c}})}onIframeSrcCopy(e){e.customData?.generationData?.status==="done"&&(Ji(e.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=fo.get(So.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=fo.has(So.OAI_API_KEY)||!1;onOpenAIKeyChange=(e,o)=>{if(this.OPENAI_KEY=e||null,o){let r=fo.set(So.OAI_API_KEY,e);this.OPENAI_KEY_IS_PERSISTED=r}else this.OPENAI_KEY_IS_PERSISTED=!1};onMagicSettingsConfirm=(e,o,r)=>{if(this.OPENAI_KEY=e||null,this.onOpenAIKeyChange(this.OPENAI_KEY,o),r==="settings")return;let n=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});e?n.length?this.onMagicframeToolSelect():this.setActiveTool({type:"magicframe"}):xl(n[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),xe("ai","tool-select (missing key)","d2c");return}let e=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(e.length===0)this.setActiveTool({type:ut.magicframe}),xe("ai","tool-select (empty-selection)","d2c");else{let o=e.length===1&&xl(e[0])&&e[0];if(!o&&e.some(n=>ye(n)||n.frameId)){this.setActiveTool({type:ut.magicframe});return}xe("ai","tool-select (existing selection)","d2c");let r;if(o)r=o;else{let[n,i,a,l]=Ze(e),s=50;r=Al({...Zo,x:n-s,y:i-s,width:a-n+s*2,height:l-i+s*2,opacity:100,locked:!1}),this.scene.insertElement(r);for(let d of e)re(d,{frameId:r.id});this.setState({selectedElementIds:{[r.id]:!0}})}this.onMagicFrameGenerate(r,"upstream")}};openEyeDropper=({type:e})=>{Gt.set(Tn,{swapPreviewOnAlt:!0,colorPickerType:e==="stroke"?"elementStroke":"elementBackground",onSelect:(o,r)=>{let n=e==="background"&&r.altKey||e==="stroke"&&!r.altKey;!this.scene.getSelectedElements(this.state).length||this.state.activeTool.type!=="selection"?n?this.syncActionResult({appState:{...this.state,currentItemStrokeColor:o},storeAction:P.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:o},storeAction:P.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(a=>this.state.selectedElementIds[a.id]?he(a,{[n?"strokeColor":"backgroundColor"]:o}):a),storeAction:P.CAPTURE})},keepOpenOnAlt:!1})};syncActionResult=Qe(e=>{if(this.unmounted||e===!1)return;let o=null;if(e.elements&&(e.elements.forEach(r=>{this.state.editingElement?.id===r.id&&this.state.editingElement!==r&&Mu(r)&&(o=r)}),e.storeAction===P.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===P.CAPTURE&&this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(e.elements)),e.files&&(this.files=e.replaceFiles?e.files:{...this.files,...e.files},this.addNewImagesToImageCache()),e.appState||o||this.state.contextMenu){e.storeAction===P.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===P.CAPTURE&&this.store.shouldCaptureIncrement();let r=e?.appState?.viewModeEnabled||!1,n=e?.appState?.zenModeEnabled||!1,i=e?.appState?.gridSize||null,a=e?.appState?.theme||this.props.theme||be.LIGHT,l=e?.appState?.name??this.state.name,s=e?.appState?.errorMessage??this.state.errorMessage;typeof this.props.viewModeEnabled<"u"&&(r=this.props.viewModeEnabled),typeof this.props.zenModeEnabled<"u"&&(n=this.props.zenModeEnabled),typeof this.props.gridModeEnabled<"u"&&(i=this.props.gridModeEnabled?Lr:null),o=o||e.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(d=>Object.assign(e.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:r,zenModeEnabled:n,gridSize:i,theme:a,name:l,errorMessage:s}))}});onBlur=Qe(()=>{Ri=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=e=>{e.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Qe(e=>{this.scene.replaceAllElements([]),this.setState(o=>({...Ki(),isLoading:e?.resetLoadingState?!1:o.isLoading,theme:this.state.theme})),this.resetStore(),this.resetHistory()});initializeScene=async()=>{"launchQueue"in window&&"LaunchParams"in window&&window.launchQueue.setConsumer(async r=>{if(!r.files.length)return;let n=r.files[0],i=await n.getFile();this.loadFileToCanvas(new File([i],i.name||"",{type:i.type}),n)}),this.props.theme&&this.setState({theme:this.props.theme}),this.state.isLoading||this.setState({isLoading:!0});let e=null;try{e=await this.props.initialData||null,e?.libraryItems&&this.library.updateLibrary({libraryItems:e.libraryItems,merge:!0}).catch(r=>{console.error(r)})}catch(r){console.error(r),e={appState:{errorMessage:r.message||"Encountered an error during importing or restoring scene data"}}}let o=cu(e,null,null,{repairBindings:!0});o.appState={...o.appState,theme:this.props.theme||o.appState.theme,openSidebar:o.appState?.openSidebar||this.state.openSidebar,activeTool:o.appState.activeTool.type==="image"?{...o.appState.activeTool,type:"selection"}:o.appState.activeTool,isLoading:!1,toast:this.state.toast},e?.scrollToContent&&(o.appState={...o.appState,...oi(o.elements,{...o.appState,width:this.state.width,height:this.state.height,offsetTop:this.state.offsetTop,offsetLeft:this.state.offsetLeft})}),this.fonts.loadFontsForElements(o.elements),this.resetStore(),this.resetHistory(),this.syncActionResult({...o,storeAction:P.UPDATE})};isMobileBreakpoint=(e,o)=>e<I1||o<M1&&e<A1;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:o,clientHeight:r}=document.body,n=this.device.viewport,i=Fi(n,{isLandscape:o>r,isMobile:this.isMobileBreakpoint(o,r)});return n!==i?(this.device={...this.device,viewport:i},!0):!1};refreshEditorBreakpoints=()=>{let e=this.excalidrawContainerRef.current;if(!e)return;let{width:o,height:r}=e.getBoundingClientRect(),n=this.props.UIOptions.dockedSidebarBreakpoint!=null?this.props.UIOptions.dockedSidebarBreakpoint:_1,i=this.device.editor,a=Fi(i,{isMobile:this.isMobileBreakpoint(o,r),canFitSidebar:o>n});return i!==a?(this.device={...this.device,editor:a},!0):!1};async componentDidMount(){if(this.unmounted=!1,this.excalidrawContainerValue.container=this.excalidrawContainerRef.current,E.MODE===Bp.TEST||E.DEV){let o=this.setState.bind(this);Object.defineProperties(window.h,{state:{configurable:!0,get:()=>this.state},setState:{configurable:!0,value:(...r)=>this.setState(...r)},app:{configurable:!0,value:this},history:{configurable:!0,value:this.history},store:{configurable:!0,value:this.store}})}this.store.onStoreIncrementEmitter.on(o=>{this.history.record(o.elementsChange,o.appStateChange)}),this.scene.addCallback(this.onSceneUpdated),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),cc()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),al&&this.excalidrawContainerRef.current&&(this.resizeObserver=new ResizeObserver(()=>{this.refreshEditorBreakpoints(),this.updateDOMRect()}),this.resizeObserver?.observe(this.excalidrawContainerRef.current)),new URLSearchParams(window.location.search.slice(1)).has("web-share-target")?this.restoreFileFromShare():this.updateDOMRect(this.initializeScene),m1()&&!Sb()&&this.setState({errorMessage:(0,ke.jsx)(H5,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new ko,this.renderer=new Ds(this.scene),this.files={},this.imageCache.clear(),this.resizeObserver?.disconnect(),this.unmounted=!0,this.removeEventListeners(),this.scene.destroy(),this.library.destroy(),this.laserTrails.stop(),this.eraserTrail.stop(),this.onChangeEmitter.clear(),this.store.onStoreIncrementEmitter.clear(),Lo.destroy(),Wo.destroy(),clearTimeout(Un),Be.clearCache(),Nt.clearCache(),Un=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Qe(()=>{this.scene.getElementsIncludingDeleted().forEach(e=>Lo.delete(e)),this.refreshViewportBreakpoints(),this.updateDOMRect(),al||this.refreshEditorBreakpoints(),this.setState({})});onFullscreenChange=()=>{!document.fullscreenElement&&this.state.activeEmbeddable?.state==="active"&&this.setState({activeEmbeddable:null})};removeEventListeners(){this.onRemoveEventListenersEmitter.trigger()}addEventListeners(){this.removeEventListeners(),this.props.handleKeyboardGlobally&&this.onRemoveEventListenersEmitter.once(at(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(at(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),at(window,"message",this.onWindowMessage,!1),at(document,"pointerup",this.removePointer),at(document,"copy",this.onCopy),at(document,"keyup",this.onKeyUp,{passive:!0}),at(document,"mousemove",this.updateCurrentCursorPosition),at(document.fonts,"loadingdone",e=>{let o=e.fontfaces;this.fonts.onFontsLoaded(o)}),at(document,"gesturestart",this.onGestureStart,!1),at(document,"gesturechange",this.onGestureChange,!1),at(document,"gestureend",this.onGestureEnd,!1),at(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(at(document,"fullscreenchange",this.onFullscreenChange),at(document,"paste",this.pasteFromClipboard),at(document,"cut",this.onCut),at(window,"resize",this.onResize,!1),at(window,"unload",this.onUnload,!1),at(window,"blur",this.onBlur,!1),at(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),at(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(at(U1(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(e,o){this.updateEmbeddables();let r=this.scene.getElementsIncludingDeleted(),n=this.scene.getElementsMapIncludingDeleted(),i=this.scene.getNonDeletedElementsMap();!this.state.showWelcomeScreen&&!r.length&&this.setState({showWelcomeScreen:!0}),e.UIOptions.dockedSidebarBreakpoint!==this.props.UIOptions.dockedSidebarBreakpoint&&this.refreshEditorBreakpoints(),o.userToFollow&&!this.state.collaborators.has(o.userToFollow.socketId)&&this.maybeUnfollowRemoteUser(),(o.zoom.value!==this.state.zoom.value||o.scrollX!==this.state.scrollX||o.scrollY!==this.state.scrollY)&&(this.props?.onScrollChange?.(this.state.scrollX,this.state.scrollY,this.state.zoom),this.onScrollChangeEmitter.trigger(this.state.scrollX,this.state.scrollY,this.state.zoom)),o.userToFollow!==this.state.userToFollow&&(o.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:o.userToFollow,action:"UNFOLLOW"}),this.state.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:this.state.userToFollow,action:"FOLLOW"})),Object.keys(this.state.selectedElementIds).length&&Ao(this.state)&&this.setState({activeTool:it(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&o.theme!==this.state.theme&&Db(this.interactiveCanvas,this.state.theme),o.activeTool.type==="selection"&&this.state.activeTool.type!=="selection"&&this.state.showHyperlinkPopup&&this.setState({showHyperlinkPopup:!1}),e.langCode!==this.props.langCode&&this.updateLanguage(),Ao(o)&&!Ao(this.state)&&this.eraserTrail.endPath(),e.viewModeEnabled!==this.props.viewModeEnabled&&this.setState({viewModeEnabled:!!this.props.viewModeEnabled}),o.viewModeEnabled!==this.state.viewModeEnabled&&(this.addEventListeners(),this.deselectElements()),e.zenModeEnabled!==this.props.zenModeEnabled&&this.setState({zenModeEnabled:!!this.props.zenModeEnabled}),e.theme!==this.props.theme&&this.props.theme&&this.setState({theme:this.props.theme}),e.gridModeEnabled!==this.props.gridModeEnabled&&this.setState({gridSize:this.props.gridModeEnabled?Lr:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme===be.DARK),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(Oo)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:l}=o;o.activeTool!==this.state.activeTool&&l!=null&&qn(this.state)&&Pr(l,!1)&&Sl(l,this.state,fl(ue.getPointAtIndexGlobalCoordinates(l,-1,i)),this),this.store.commit(n,this.state),this.state.isLoading||(this.props.onChange?.(r,this.state,this.files),this.onChangeEmitter.trigger(r,this.state,this.files))}renderInteractiveSceneCallback=({atLeastOneVisibleElement:e,scrollBars:o,elementsMap:r})=>{o&&(Bg=o);let n=ce(this.state.editingElement)?!1:!e&&r.size>0;this.state.scrolledOutside!==n&&this.setState({scrolledOutside:n}),this.scheduleImageRefresh()};onScroll=pl(()=>{let{offsetTop:e,offsetLeft:o}=this.getCanvasOffsets();this.setState(r=>r.offsetLeft===o&&r.offsetTop===e?null:{offsetTop:e,offsetLeft:o})},S1);onCut=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||To(e.target)||(this.actionManager.executeAction(nm,"keyboard",e),e.preventDefault(),e.stopPropagation())});onCopy=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||To(e.target)||(this.actionManager.executeAction(Oa,"keyboard",e),e.preventDefault(),e.stopPropagation())});static resetTapTwice(){Bs=!1}onTouchStart=e=>{if(d1&&e.preventDefault(),!Bs){Bs=!0,clearTimeout(Og),Og=window.setTimeout(t.resetTapTwice,w1);return}if(Bs&&e.touches.length===1){let o=e.touches[0];this.handleCanvasDoubleClick({clientX:o.clientX,clientY:o.clientY}),Bs=!1,clearTimeout(Og)}e.touches.length===2&&this.setState({selectedElementIds:ze({},this.state),activeEmbeddable:null})};onTouchEnd=e=>{this.resetContextMenuTimer(),e.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:ze(this.state.previousSelectedElementIds,this.state)}):Re.pointers.clear()};pasteFromClipboard=Qe(async e=>{let o=!!kp,r=document.activeElement,n=this.excalidrawContainerRef.current?.contains(r);if(e&&!n)return;let i=document.elementFromPoint(this.lastViewportPosition.x,this.lastViewportPosition.y);if(e&&(!(i instanceof HTMLCanvasElement)||To(r)))return;let{x:a,y:l}=Ye({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),s=e?.clipboardData?.files[0],d=await $c(e,o);if(!s&&!o){if(d.mixedContent)return this.addElementsFromMixedContentPaste(d.mixedContent,{isPlainPaste:o,sceneX:a,sceneY:l});if(d.text){let c=d.text.trim();c.startsWith("<svg")&&c.endsWith("</svg>")&&(s=pu(c))}}if(Dc(s)&&!d.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}let c=this.createImageElement({sceneX:a,sceneY:l});this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:ze({[c.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(d,e)===!1)return}catch(c){console.error(c)}if(d.errorMessage)this.setState({errorMessage:d.errorMessage});else if(d.spreadsheet&&!o)this.setState({pasteDialog:{data:d.spreadsheet,shown:!0}});else if(d.elements){let c=d.programmaticAPI?As(d.elements):d.elements;this.addElementsFromPasteOrLibrary({elements:c,files:d.files||null,position:"cursor",retainSeed:o})}else if(d.text){let c=X1(d.text).split(/\n+/).map(u=>u.trim()).filter(Boolean),m=c.map(u=>$b(u)).filter(u=>Zi(u,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(u)||Qn(u)?.type==="video"));if(!kp&&m.length>0&&m.length===c.length){let u=[];for(let f of m){let b=u[u.length-1],x=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:a,sceneY:l,link:zr(f)});x&&u.push(x)}u.length&&this.setState({selectedElementIds:Object.fromEntries(u.map(f=>[f.id,!0]))});return}this.addTextFromPaste(d.text,o)}this.setActiveTool({type:"selection"}),e?.preventDefault()});addElementsFromPasteOrLibrary=e=>{let o=su(e.elements,null,void 0),[r,n,i,a]=Ze(o),l=Zn(r,i)/2,s=Zn(n,a)/2,d=typeof e.position=="object"?e.position.clientX:e.position==="cursor"?this.lastViewportPosition.x:this.state.width/2+this.state.offsetLeft,c=typeof e.position=="object"?e.position.clientY:e.position==="cursor"?this.lastViewportPosition.y:this.state.height/2+this.state.offsetTop,{x:m,y:u}=Ye({clientX:d,clientY:c},this.state),f=m-l,b=u-s,[x,y]=eo(f,b,this.state.gridSize),T=Lc(o.map(I=>he(I,{x:I.x+x-r,y:I.y+y-n})),{randomizeSeed:!e.retainSeed}),w=[...this.scene.getElementsIncludingDeleted(),...T];ho(w,pe(T));let A=this.getTopLayerFrameAtSceneCoords({x:m,y:u});if(A){let I=k0(T,A);Wc(w,I,A)}this.scene.replaceAllElements(w),T.forEach(I=>{if(ce(I)&&xt(I)){let M=Nr(I,this.scene.getElementsMapIncludingDeleted());Ut(I,M,this.scene.getElementsMapIncludingDeleted())}}),e.files&&(this.files={...this.files,...e.files}),this.store.shouldCaptureIncrement();let z=ta(T);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Gt.get(Ts)?this.state.openSidebar:null,...Nt({editingGroupId:null,selectedElementIds:z.reduce((I,M)=>(xt(M)||(I[M.id]=!0),I),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{e.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),e.fitToContent&&this.scrollToContent(T,{fitToContent:!0})};async addElementsFromMixedContentPaste(e,{isPlainPaste:o,sceneX:r,sceneY:n}){if(!o&&e.some(i=>i.type==="imageUrl")&&this.isToolSupported("image")){let i=e.filter(m=>m.type==="imageUrl").map(m=>m.value),a=await Promise.all(i.map(async m=>{try{return{file:await Kb(m)}}catch(u){let f=u.message;return u.cause==="FETCH_ERROR"?f=g("errors.failedToFetchImage"):u.cause==="UNSUPPORTED"&&(f=g("errors.unsupportedFileType")),{errorMessage:f}}})),l=n,s=!1,d={};for(let m of a)if(m.file){let u=this.createImageElement({sceneX:r,sceneY:l}),f=await this.insertImageElement(u,m.file);f&&(s||(s=!0,l-=f.height/2),re(f,{y:l},!1),l=u.y+u.height+25,d[u.id]=!0)}this.setState({selectedElementIds:ze(d,this.state)});let c=a.find(m=>!!m.errorMessage);c&&c.errorMessage&&this.setState({errorMessage:c.errorMessage})}else{let i=e.filter(a=>a.type==="text");i.length&&this.addTextFromPaste(i.map(a=>a.value).join(`
165
+ `)}async onMagicFrameGenerate(e,o){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),ve("ai","generate (missing key)","d2c");return}let r=jc(this.scene.getNonDeletedElements(),e).filter(c=>!wl(c));if(!r.length){o==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),ve("ai","generate (no-children)","d2c")):this.setActiveTool({type:"magicframe"});return}let n=this.insertIframeElement({sceneX:e.x+e.width+30,sceneY:e.y,width:e.width,height:e.height});if(!n)return;this.updateMagicGeneration({frameElement:n,data:{status:"pending"}}),this.setState({selectedElementIds:{[n.id]:!0}});let i=await Eu({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:e,files:this.files}),a=await $c(i),l=this.getTextFromElements(r);ve("ai","generate (start)","d2c");let s=await i6({image:a,apiKey:this.OPENAI_KEY,text:l,theme:this.state.theme});if(!s.ok){ve("ai","generate (failed)","d2c"),console.error(s.error),this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:s.error?.message||"Unknown error during generation"}});return}if(ve("ai","generate (success)","d2c"),s.choices[0].message.content==null){this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let d=s.choices[0].message.content,m=d.slice(d.indexOf("<!DOCTYPE html>"),d.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:n,data:{status:"done",html:m}})}onIframeSrcCopy(e){e.customData?.generationData?.status==="done"&&(ea(e.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=fo.get(ko.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=fo.has(ko.OAI_API_KEY)||!1;onOpenAIKeyChange=(e,o)=>{if(this.OPENAI_KEY=e||null,o){let r=fo.set(ko.OAI_API_KEY,e);this.OPENAI_KEY_IS_PERSISTED=r}else this.OPENAI_KEY_IS_PERSISTED=!1};onMagicSettingsConfirm=(e,o,r)=>{if(this.OPENAI_KEY=e||null,this.onOpenAIKeyChange(this.OPENAI_KEY,o),r==="settings")return;let n=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});e?n.length?this.onMagicframeToolSelect():this.setActiveTool({type:"magicframe"}):wl(n[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),ve("ai","tool-select (missing key)","d2c");return}let e=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(e.length===0)this.setActiveTool({type:st.magicframe}),ve("ai","tool-select (empty-selection)","d2c");else{let o=e.length===1&&wl(e[0])&&e[0];if(!o&&e.some(n=>Ee(n)||n.frameId)){this.setActiveTool({type:st.magicframe});return}ve("ai","tool-select (existing selection)","d2c");let r;if(o)r=o;else{let[n,i,a,l]=Ze(e),s=50;r=Pl({...jo,x:n-s,y:i-s,width:a-n+s*2,height:l-i+s*2,opacity:100,locked:!1}),this.scene.insertElement(r);for(let d of e)re(d,{frameId:r.id});this.setState({selectedElementIds:{[r.id]:!0}})}this.onMagicFrameGenerate(r,"upstream")}};openEyeDropper=({type:e})=>{Gt.set(kn,{swapPreviewOnAlt:!0,colorPickerType:e==="stroke"?"elementStroke":"elementBackground",onSelect:(o,r)=>{let n=e==="background"&&r.altKey||e==="stroke"&&!r.altKey;!this.scene.getSelectedElements(this.state).length||this.state.activeTool.type!=="selection"?n?this.syncActionResult({appState:{...this.state,currentItemStrokeColor:o},storeAction:D.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:o},storeAction:D.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(a=>this.state.selectedElementIds[a.id]?pe(a,{[n?"strokeColor":"backgroundColor"]:o}):a),storeAction:D.CAPTURE})},keepOpenOnAlt:!1})};syncActionResult=Qe(e=>{if(this.unmounted||e===!1)return;let o=null;if(e.elements&&(e.elements.forEach(r=>{this.state.editingElement?.id===r.id&&this.state.editingElement!==r&&Pu(r)&&(o=r)}),e.storeAction===D.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===D.CAPTURE&&this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(e.elements)),e.files&&(this.files=e.replaceFiles?e.files:{...this.files,...e.files},this.addNewImagesToImageCache()),e.appState||o||this.state.contextMenu){e.storeAction===D.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===D.CAPTURE&&this.store.shouldCaptureIncrement();let r=e?.appState?.viewModeEnabled||!1,n=e?.appState?.zenModeEnabled||!1,i=e?.appState?.gridSize||null,a=e?.appState?.theme||this.props.theme||xe.LIGHT,l=e?.appState?.name??this.state.name,s=e?.appState?.errorMessage??this.state.errorMessage;typeof this.props.viewModeEnabled<"u"&&(r=this.props.viewModeEnabled),typeof this.props.zenModeEnabled<"u"&&(n=this.props.zenModeEnabled),typeof this.props.gridModeEnabled<"u"&&(i=this.props.gridModeEnabled?Pr:null),o=o||e.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(d=>Object.assign(e.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:r,zenModeEnabled:n,gridSize:i,theme:a,name:l,errorMessage:s}))}});onBlur=Qe(()=>{Ni=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=e=>{e.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Qe(e=>{this.scene.replaceAllElements([]),this.setState(o=>({...Zi(),isLoading:e?.resetLoadingState?!1:o.isLoading,theme:this.state.theme})),this.resetStore(),this.resetHistory()});initializeScene=async()=>{"launchQueue"in window&&"LaunchParams"in window&&window.launchQueue.setConsumer(async r=>{if(!r.files.length)return;let n=r.files[0],i=await n.getFile();this.loadFileToCanvas(new File([i],i.name||"",{type:i.type}),n)}),this.props.theme&&this.setState({theme:this.props.theme}),this.state.isLoading||this.setState({isLoading:!0});let e=null;try{e=await this.props.initialData||null,e?.libraryItems&&this.library.updateLibrary({libraryItems:e.libraryItems,merge:!0}).catch(r=>{console.error(r)})}catch(r){console.error(r),e={appState:{errorMessage:r.message||"Encountered an error during importing or restoring scene data"}}}let o=pu(e,null,null,{repairBindings:!0});o.appState={...o.appState,theme:this.props.theme||o.appState.theme,openSidebar:o.appState?.openSidebar||this.state.openSidebar,activeTool:o.appState.activeTool.type==="image"?{...o.appState.activeTool,type:"selection"}:o.appState.activeTool,isLoading:!1,toast:this.state.toast},e?.scrollToContent&&(o.appState={...o.appState,...ni(o.elements,{...o.appState,width:this.state.width,height:this.state.height,offsetTop:this.state.offsetTop,offsetLeft:this.state.offsetLeft})}),this.fonts.loadFontsForElements(o.elements),this.resetStore(),this.resetHistory(),this.syncActionResult({...o,storeAction:D.UPDATE})};isMobileBreakpoint=(e,o)=>e<M1||o<L1&&e<_1;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:o,clientHeight:r}=document.body,n=this.device.viewport,i=Bi(n,{isLandscape:o>r,isMobile:this.isMobileBreakpoint(o,r)});return n!==i?(this.device={...this.device,viewport:i},!0):!1};refreshEditorBreakpoints=()=>{let e=this.excalidrawContainerRef.current;if(!e)return;let{width:o,height:r}=e.getBoundingClientRect(),n=this.props.UIOptions.dockedSidebarBreakpoint!=null?this.props.UIOptions.dockedSidebarBreakpoint:P1,i=this.device.editor,a=Bi(i,{isMobile:this.isMobileBreakpoint(o,r),canFitSidebar:o>n});return i!==a?(this.device={...this.device,editor:a},!0):!1};async componentDidMount(){if(this.unmounted=!1,this.excalidrawContainerValue.container=this.excalidrawContainerRef.current,E.MODE===Hp.TEST||E.DEV){let o=this.setState.bind(this);Object.defineProperties(window.h,{state:{configurable:!0,get:()=>this.state},setState:{configurable:!0,value:(...r)=>this.setState(...r)},app:{configurable:!0,value:this},history:{configurable:!0,value:this.history},store:{configurable:!0,value:this.store}})}this.store.onStoreIncrementEmitter.on(o=>{this.history.record(o.elementsChange,o.appStateChange)}),this.scene.onUpdate(this.triggerRender),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),xl()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),cl&&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),f1()&&!Tb()&&this.setState({errorMessage:(0,ke.jsx)(U5,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new Ao,this.fonts=new Ns({scene:this.scene}),this.renderer=new zs(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(),Ro.destroy(),Vo.destroy(),clearTimeout(Wn),ze.clearCache(),Nt.clearCache(),Wn=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Qe(()=>{this.scene.getElementsIncludingDeleted().forEach(e=>Ro.delete(e)),this.refreshViewportBreakpoints(),this.updateDOMRect(),cl||this.refreshEditorBreakpoints(),this.setState({})});onFullscreenChange=()=>{!document.fullscreenElement&&this.state.activeEmbeddable?.state==="active"&&this.setState({activeEmbeddable:null})};removeEventListeners(){this.onRemoveEventListenersEmitter.trigger()}addEventListeners(){this.removeEventListeners(),this.props.handleKeyboardGlobally&&this.onRemoveEventListenersEmitter.once(at(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(at(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),at(window,"message",this.onWindowMessage,!1),at(document,"pointerup",this.removePointer),at(document,"copy",this.onCopy),at(document,"keyup",this.onKeyUp,{passive:!0}),at(document,"pointermove",this.updateCurrentCursorPosition),at(document.fonts,"loadingdone",e=>{let o=e.fontfaces;this.fonts.onFontsLoaded(o)}),at(document,"gesturestart",this.onGestureStart,!1),at(document,"gesturechange",this.onGestureChange,!1),at(document,"gestureend",this.onGestureEnd,!1),at(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null),this.triggerRender(!0)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(at(document,"fullscreenchange",this.onFullscreenChange),at(document,"paste",this.pasteFromClipboard),at(document,"cut",this.onCut),at(window,"resize",this.onResize,!1),at(window,"unload",this.onUnload,!1),at(window,"blur",this.onBlur,!1),at(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),at(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(at(G1(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(e,o){this.updateEmbeddables();let r=this.scene.getElementsIncludingDeleted(),n=this.scene.getElementsMapIncludingDeleted(),i=this.scene.getNonDeletedElementsMap();!this.state.showWelcomeScreen&&!r.length&&this.setState({showWelcomeScreen:!0}),e.UIOptions.dockedSidebarBreakpoint!==this.props.UIOptions.dockedSidebarBreakpoint&&this.refreshEditorBreakpoints(),o.userToFollow&&!this.state.collaborators.has(o.userToFollow.socketId)&&this.maybeUnfollowRemoteUser(),(o.zoom.value!==this.state.zoom.value||o.scrollX!==this.state.scrollX||o.scrollY!==this.state.scrollY)&&(this.props?.onScrollChange?.(this.state.scrollX,this.state.scrollY,this.state.zoom),this.onScrollChangeEmitter.trigger(this.state.scrollX,this.state.scrollY,this.state.zoom)),o.userToFollow!==this.state.userToFollow&&(o.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:o.userToFollow,action:"UNFOLLOW"}),this.state.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:this.state.userToFollow,action:"FOLLOW"})),Object.keys(this.state.selectedElementIds).length&&_o(this.state)&&this.setState({activeTool:it(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&o.theme!==this.state.theme&&Ob(this.interactiveCanvas,this.state.theme),o.activeTool.type==="selection"&&this.state.activeTool.type!=="selection"&&this.state.showHyperlinkPopup&&this.setState({showHyperlinkPopup:!1}),e.langCode!==this.props.langCode&&this.updateLanguage(),_o(o)&&!_o(this.state)&&this.eraserTrail.endPath(),e.viewModeEnabled!==this.props.viewModeEnabled&&this.setState({viewModeEnabled:!!this.props.viewModeEnabled}),o.viewModeEnabled!==this.state.viewModeEnabled&&(this.addEventListeners(),this.deselectElements()),e.zenModeEnabled!==this.props.zenModeEnabled&&this.setState({zenModeEnabled:!!this.props.zenModeEnabled}),e.theme!==this.props.theme&&this.props.theme&&this.setState({theme:this.props.theme}),e.gridModeEnabled!==this.props.gridModeEnabled&&this.setState({gridSize:this.props.gridModeEnabled?Pr:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme===xe.DARK),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(zo)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:l}=o;o.activeTool!==this.state.activeTool&&l!=null&&Jn(this.state)&&Rr(l,!1)&&Al(l,this.state,bl(he.getPointAtIndexGlobalCoordinates(l,-1,i)),this),this.store.commit(n,this.state),this.state.isLoading||(this.props.onChange?.(r,this.state,this.files),this.onChangeEmitter.trigger(r,this.state,this.files))}renderInteractiveSceneCallback=({atLeastOneVisibleElement:e,scrollBars:o,elementsMap:r})=>{o&&(Hg=o);let n=oe(this.state.editingElement)?!1:!e&&r.size>0;this.state.scrolledOutside!==n&&this.setState({scrolledOutside:n}),this.scheduleImageRefresh()};onScroll=hl(()=>{let{offsetTop:e,offsetLeft:o}=this.getCanvasOffsets();this.setState(r=>r.offsetLeft===o&&r.offsetTop===e?null:{offsetTop:e,offsetLeft:o})},k1);onCut=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Io(e.target)||(this.actionManager.executeAction(sm,"keyboard",e),e.preventDefault(),e.stopPropagation())});onCopy=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Io(e.target)||(this.actionManager.executeAction(za,"keyboard",e),e.preventDefault(),e.stopPropagation())});static resetTapTwice(){Us=!1}onTouchStart=e=>{if(u1&&e.preventDefault(),!Us){Us=!0,clearTimeout(Bg),Bg=window.setTimeout(t.resetTapTwice,S1);return}if(Us&&e.touches.length===1){let o=e.touches[0];this.handleCanvasDoubleClick({clientX:o.clientX,clientY:o.clientY}),Us=!1,clearTimeout(Bg)}e.touches.length===2&&this.setState({selectedElementIds:Be({},this.state),activeEmbeddable:null})};onTouchEnd=e=>{this.resetContextMenuTimer(),e.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:Be(this.state.previousSelectedElementIds,this.state)}):Re.pointers.clear()};pasteFromClipboard=Qe(async e=>{let o=!!Mp,r=document.activeElement,n=this.excalidrawContainerRef.current?.contains(r);if(e&&!n)return;let i=document.elementFromPoint(this.lastViewportPosition.x,this.lastViewportPosition.y);if(e&&(!(i instanceof HTMLCanvasElement)||Io(r)))return;let{x:a,y:l}=Ye({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),s=e?.clipboardData?.files[0],d=await Gc(e,o);if(!s&&!o){if(d.mixedContent)return this.addElementsFromMixedContentPaste(d.mixedContent,{isPlainPaste:o,sceneX:a,sceneY:l});if(d.text){let m=d.text.trim();m.startsWith("<svg")&&m.endsWith("</svg>")&&(s=hu(m))}}if(zc(s)&&!d.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}let m=this.createImageElement({sceneX:a,sceneY:l});this.insertImageElement(m,s),this.initializeImageDimensions(m),this.setState({selectedElementIds:Be({[m.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(d,e)===!1)return}catch(m){console.error(m)}if(d.errorMessage)this.setState({errorMessage:d.errorMessage});else if(d.spreadsheet&&!o)this.setState({pasteDialog:{data:d.spreadsheet,shown:!0}});else if(d.elements){let m=d.programmaticAPI?el(d.elements):d.elements;this.addElementsFromPasteOrLibrary({elements:m,files:d.files||null,position:"cursor",retainSeed:o})}else if(d.text){if(d.text&&p6(d.text)){let u=await import("./excalidraw-assets/dist-567JAXHK.js");try{let{elements:f,files:b}=await u.parseMermaidToExcalidraw(d.text,{fontSize:qo}),x=el(f,{regenerateIds:!0});this.addElementsFromPasteOrLibrary({elements:x,files:b,position:"cursor"});return}catch(f){console.warn(`parsing pasted text as mermaid definition failed: ${f.message}`)}}let m=J1(d.text).split(/\n+/).map(u=>u.trim()).filter(Boolean),c=m.map(u=>Hb(u)).filter(u=>ji(u,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(u)||ti(u)?.type==="video"));if(!Mp&&c.length>0&&c.length===m.length){let u=[];for(let f of c){let b=u[u.length-1],x=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:a,sceneY:l,link:$r(f)});x&&u.push(x)}u.length&&this.setState({selectedElementIds:Object.fromEntries(u.map(f=>[f.id,!0]))});return}this.addTextFromPaste(d.text,o)}this.setActiveTool({type:"selection"}),e?.preventDefault()});addElementsFromPasteOrLibrary=e=>{let o=mu(e.elements,null,void 0),[r,n,i,a]=Ze(o),l=Xn(r,i)/2,s=Xn(n,a)/2,d=typeof e.position=="object"?e.position.clientX:e.position==="cursor"?this.lastViewportPosition.x:this.state.width/2+this.state.offsetLeft,m=typeof e.position=="object"?e.position.clientY:e.position==="cursor"?this.lastViewportPosition.y:this.state.height/2+this.state.offsetTop,{x:c,y:u}=Ye({clientX:d,clientY:m},this.state),f=c-l,b=u-s,[x,y]=to(f,b,this.state.gridSize),k=Nc(o.map(I=>pe(I,{x:I.x+x-r,y:I.y+y-n})),{randomizeSeed:!e.retainSeed}),w=[...this.scene.getElementsIncludingDeleted(),...k];go(w,fe(k));let A=this.getTopLayerFrameAtSceneCoords({x:c,y:u});if(A){let I=I0(k,A);Yc(w,I,A)}this.scene.replaceAllElements(w),k.forEach(I=>{if(oe(I)&&Mt(I)){let M=Qn(I,this.scene.getElementsMapIncludingDeleted());Ut(I,M,this.scene.getElementsMapIncludingDeleted())}}),e.files&&(this.files={...this.files,...e.files}),this.store.shouldCaptureIncrement();let z=ra(k);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Gt.get(Ms)?this.state.openSidebar:null,...Nt({editingGroupId:null,selectedElementIds:z.reduce((I,M)=>(Mt(M)||(I[M.id]=!0),I),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{e.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),e.fitToContent&&this.scrollToContent(k,{fitToContent:!0})};async addElementsFromMixedContentPaste(e,{isPlainPaste:o,sceneX:r,sceneY:n}){if(!o&&e.some(i=>i.type==="imageUrl")&&this.isToolSupported("image")){let i=e.filter(c=>c.type==="imageUrl").map(c=>c.value),a=await Promise.all(i.map(async c=>{try{return{file:await Yb(c)}}catch(u){let f=u.message;return u.cause==="FETCH_ERROR"?f=g("errors.failedToFetchImage"):u.cause==="UNSUPPORTED"&&(f=g("errors.unsupportedFileType")),{errorMessage:f}}})),l=n,s=!1,d={};for(let c of a)if(c.file){let u=this.createImageElement({sceneX:r,sceneY:l}),f=await this.insertImageElement(u,c.file);f&&(s||(s=!0,l-=f.height/2),re(f,{y:l},!1),l=u.y+u.height+25,d[u.id]=!0)}this.setState({selectedElementIds:Be(d,this.state)});let m=a.find(c=>!!c.errorMessage);m&&m.errorMessage&&this.setState({errorMessage:m.errorMessage})}else{let i=e.filter(a=>a.type==="text");i.length&&this.addTextFromPaste(i.map(a=>a.value).join(`
166
166
 
167
- `),o)}}addTextFromPaste(e,o=!1){let{x:r,y:n}=Ye({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),i={x:r,y:n,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roundness:null,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:e,fontSize:this.state.currentItemFontSize,fontFamily:this.state.currentItemFontFamily,textAlign:this.state.currentItemTextAlign,verticalAlign:zp,locked:!1},a=10,l=n,s=o?[e]:e.split(`
168
- `),d=s.reduce((c,m,u)=>{let f=m.trim(),b=Or(i.fontFamily);if(f.length){let x=this.getTopLayerFrameAtSceneCoords({x:r,y:l}),y=gn({...i,x:r,y:l,text:f,lineHeight:b,frameId:x?x.id:null});c.push(y),l+=y.height+a}else s[u-1]?.trim()&&(l+=ub(i.fontSize,b)+a);return c},[]);d.length!==0&&(this.scene.insertElements(d),this.setState({selectedElementIds:ze(Object.fromEntries(d.map(c=>[c.id,!0])),this.state)}),!o&&d.length>1&&m6===!1&&!this.device.editor.isMobile&&(this.setToast({message:g("toast.pasteAsSingleElement",{shortcut:F("CtrlOrCmd+Shift+V")}),duration:5e3}),m6=!0),this.store.shouldCaptureIncrement())}setAppState=(e,o)=>{this.setState(e,o)};removePointer=e=>{Un&&this.resetContextMenuTimer(),Re.pointers.delete(e.pointerId)};toggleLock=(e="ui")=>{this.state.activeTool.locked||xe("toolbar","toggleLock",`${e} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(o=>({activeTool:{...o.activeTool,...it(this.state,o.activeTool.locked?{type:"selection"}:o.activeTool),locked:!o.activeTool.locked}}))};updateFrameRendering=e=>{this.setState(o=>{let r=typeof e=="function"?e(o.frameRendering):e;return{frameRendering:{enabled:r?.enabled??o.frameRendering.enabled,clip:r?.clip??o.frameRendering.clip,name:r?.name??o.frameRendering.name,outline:r?.outline??o.frameRendering.outline}}})};togglePenMode=e=>{this.setState(o=>({penMode:e??!o.penMode,penDetected:!0}))};onHandToolToggle=()=>{this.actionManager.executeAction(lE)};zoomCanvas=e=>{this.setState({...Ur({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Hr(e)},this.state)})};cancelInProgressAnimation=null;scrollToContent=(e=this.scene.getNonDeletedElements(),o)=>{this.cancelInProgressAnimation?.();let r=Array.isArray(e)?e:[e],n=this.state.zoom,i=this.state.scrollX,a=this.state.scrollY;if(o?.fitToContent||o?.fitToViewport){let{appState:l}=ns({targetElements:r,appState:this.state,fitToViewport:!!o?.fitToViewport,viewportZoomFactor:o?.viewportZoomFactor});n=l.zoom,i=l.scrollX,a=l.scrollY}else{let l=oi(r,this.state);i=l.scrollX,a=l.scrollY}if(o?.animate){let l=this.state.scrollX,s=this.state.scrollY,d=this.state.zoom.value,c=$1({fromValues:{scrollX:l,scrollY:s,zoom:d},toValues:{scrollX:i,scrollY:a,zoom:n.value},interpolateValue:(m,u,f,b)=>{if(b==="zoom")return m*Math.pow(u/m,Yn(f))},onStep:({scrollX:m,scrollY:u,zoom:f})=>{this.setState({scrollX:m,scrollY:u,zoom:{value:f}})},onStart:()=>{this.setState({shouldCacheIgnoreZoom:!0})},onEnd:()=>{this.setState({shouldCacheIgnoreZoom:!1})},onCancel:()=>{this.setState({shouldCacheIgnoreZoom:!1})},duration:o?.duration??500});this.cancelInProgressAnimation=()=>{c(),this.cancelInProgressAnimation=null}}else this.setState({scrollX:i,scrollY:a,zoom:n})};maybeUnfollowRemoteUser=()=>{this.state.userToFollow&&this.setState({userToFollow:null})};translateCanvas=e=>{this.cancelInProgressAnimation?.(),this.maybeUnfollowRemoteUser(),this.setState(e)};setToast=e=>{this.setState({toast:e})};restoreFileFromShare=async()=>{try{let e=await caches.open("web-share-target"),o=await e.match("shared-file");if(o){let r=await o.blob(),n=new File([r],r.name||"",{type:r.type});this.loadFileToCanvas(n,null),await e.delete("shared-file"),window.history.replaceState(null,ll,window.location.pathname)}}catch(e){this.setState({errorMessage:e.message})}};addFiles=Qe(e=>{let o=e.reduce((r,n)=>(r.set(n.id,n),r),new Map);this.files={...this.files,...Object.fromEntries(o)},this.scene.getNonDeletedElements().forEach(r=>{bl(r)&&o.has(r.fileId)&&(this.imageCache.delete(r.fileId),Lo.delete(r))}),this.scene.informMutation(),this.addNewImagesToImageCache()});updateScene=Qe(e=>{let o=pn(e.elements??[]);if(e.storeAction&&e.storeAction!==P.NONE){let r=this.store.snapshot.appState,n=this.store.snapshot.elements,i=e.appState?Object.assign({},r,e.appState):r,a=e.elements?this.store.filterUncomittedElements(this.scene.getElementsMapIncludingDeleted(),pe(o)):n;e.storeAction===P.CAPTURE?this.store.captureIncrement(a,i):e.storeAction===P.UPDATE&&this.store.updateSnapshot(a,i)}e.appState&&this.setState(e.appState),e.elements&&this.scene.replaceAllElements(o),e.collaborators&&this.setState({collaborators:e.collaborators})});onSceneUpdated=()=>{this.setState({})};toggleSidebar=({name:e,tab:o,force:r})=>{let n;r===void 0?n=this.state.openSidebar?.name===e&&this.state.openSidebar?.tab===o?null:e:n=r?e:null;let i=n?{name:n}:null;return i&&o&&(i.tab=o),this.setState({openSidebar:i}),!!n};updateCurrentCursorPosition=Qe(e=>{this.lastViewportPosition.x=e.clientX,this.lastViewportPosition.y=e.clientY});onKeyDown=Qe(e=>{if("Proxy"in window&&(!e.shiftKey&&/^[A-Z]$/.test(e.key)||e.shiftKey&&/^[a-z]$/.test(e.key))&&(e=new Proxy(e,{get(i,a){let l=i[a];return typeof l=="function"?l.bind(i):a==="key"?e.shiftKey?i.key.toUpperCase():i.key.toLowerCase():l}})),e[S.CTRL_OR_CMD]&&e.key===S.P&&!e.shiftKey&&!e.altKey){this.setToast({message:g("commandPalette.shortcutHint",{shortcut:wt("commandPalette")})}),e.preventDefault();return}if(e[S.CTRL_OR_CMD]&&e.key.toLowerCase()===S.V&&(kp=e.shiftKey,clearTimeout(d6),d6=window.setTimeout(()=>{kp=!1},100)),e[S.CTRL_OR_CMD]&&To(e.target)&&(e.code===fe.MINUS||e.code===fe.EQUAL)){e.preventDefault();return}if(To(e.target)&&e.key!==S.ESCAPE||Wi(e.key)&&B1(e.target))return;if(e.key===S.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(e.key.toLowerCase()===S.E&&e.shiftKey&&e[S.CTRL_OR_CMD]){e.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(e.key===S.PAGE_UP||e.key===S.PAGE_DOWN){let i=(e.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;e.key===S.PAGE_DOWN&&(i=-i),e.shiftKey?this.translateCanvas(a=>({scrollX:a.scrollX+i})):this.translateCanvas(a=>({scrollY:a.scrollY+i}))}if(this.actionManager.handleKeyDown(e)||this.state.viewModeEnabled)return;if(e[S.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),Wi(e.key)){let i=this.state.gridSize&&(e.shiftKey?Op:this.state.gridSize)||(e.shiftKey?p1:Op),a=0,l=0;e.key===S.ARROW_LEFT?a=-i:e.key===S.ARROW_RIGHT?a=i:e.key===S.ARROW_UP?l=-i:e.key===S.ARROW_DOWN&&(l=i);let s=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});s.forEach(d=>{re(d,{x:d.x+a,y:d.y+l}),ou(d,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:s})}),this.setState({suggestedBindings:bc(s,this)}),e.preventDefault()}else if(e.key===S.ENTER){let i=this.scene.getSelectedElements(this.state);if(i.length===1){let a=i[0];if(e[S.CTRL_OR_CMD])_e(a)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==i[0].id)&&(this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new ue(a)}));else if(ce(a)||wb(a)){let l;ce(a)||(l=a);let s=Cc(a,this.state,this.scene.getNonDeletedElementsMap()),d=s.x,c=s.y;this.startTextEditing({sceneX:d,sceneY:c,container:l}),e.preventDefault();return}else ye(a)&&this.setState({editingFrame:a.id})}}else if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&this.state.draggingElement===null){let i=Mw(e.key);i?(this.state.activeTool.type!==i&&xe("toolbar",i,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:i}),e.stopPropagation()):e.key===S.Q&&(this.toggleLock("keyboard"),e.stopPropagation())}if(e.key===S.SPACE&&Re.pointers.size===0&&(Ri=!0,Fe(this.interactiveCanvas,Oe.GRAB),e.preventDefault()),(e.key===S.G||e.key===S.S)&&!e.altKey&&!e[S.CTRL_OR_CMD]){let i=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!i.length)return;e.key===S.G&&(fn(this.state.activeTool.type)||i.some(a=>fn(a.type)))&&(this.setState({openPopup:"elementBackground"}),e.stopPropagation()),e.key===S.S&&(this.setState({openPopup:"elementStroke"}),e.stopPropagation())}if(e.key===S.K&&!e.altKey&&!e[S.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}e[S.CTRL_OR_CMD]&&(e.key===S.BACKSPACE||e.key===S.DELETE)&&Gt.set(Ti,"clearCanvas");let o=e.key.toLocaleLowerCase(),r=o===S.S&&e.shiftKey,n=e.key===S.I||o===S.G&&e.shiftKey;(r||n)&&this.openEyeDropper({type:r?"stroke":"background"})});onWheel=Qe(e=>{!(e.target instanceof HTMLCanvasElement)&&e.ctrlKey&&e.preventDefault()});onKeyUp=Qe(e=>{e.key===S.SPACE&&(this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):this.state.activeTool.type==="selection"?Mo(this.interactiveCanvas):(qo(this.interactiveCanvas,this.state),this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),Ri=!1),!e[S.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Wi(e.key)&&(Cl(this.scene.getSelectedElements(this.state).filter(_e),this,qn(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[]),this.setState({suggestedBindings:[]}))});isToolSupported=e=>this.props.UIOptions.tools?.[e]!==!1;setActiveTool=e=>{if(!this.isToolSupported(e.type)){console.warn(`"${e.type}" tool is disabled via "UIOptions.canvasActions.tools.${e.type}"`);return}let o=it(this.state,e);o.type==="hand"?Fe(this.interactiveCanvas,Oe.GRAB):Ri||qo(this.interactiveCanvas,this.state),F1(document.activeElement)&&this.focusContainer(),q1(o.type)||this.setState({suggestedBindings:[]}),o.type==="image"&&this.onImageAction({insertOnCanvasDirectly:(e.type==="image"&&e.insertOnCanvasDirectly)??!1}),this.setState(r=>{let n={snapLines:r.snapLines.length?[]:r.snapLines,originSnapOffset:null,activeEmbeddable:null};return o.type==="freedraw"&&this.store.shouldCaptureIncrement(),o.type!=="selection"?{...r,activeTool:o,selectedElementIds:ze({},r),selectedGroupIds:ze({},r),editingGroupId:null,multiElement:null,...n}:{...r,activeTool:o,...n}})};setOpenDialog=e=>{this.setState({openDialog:e})};setCursor=e=>{Fe(this.interactiveCanvas,e)};resetCursor=()=>{Mo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>Re.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${g("labels.untitled")}-${Vp()}`;onGestureStart=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:ze({},this.state),activeEmbeddable:null}),Re.initialScale=this.state.zoom.value});onGestureChange=Qe(e=>{if(e.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let o=Re.initialScale;o&&this.setState(r=>({...Ur({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Hr(o*e.scale)},r)}))});onGestureEnd=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:ze(this.state.previousSelectedElementIds,this.state)}),Re.initialScale=null});handleTextWysiwyg(e,{isExistingElement:o=!1}){let r=this.scene.getElementsMapIncludingDeleted(),n=(i,a,l)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(s=>s.id===e.id&&ce(s)?Fb(s,Nr(s,r),r,{text:i,isDeleted:l,originalText:a}):s)])};c6({id:e.id,canvas:this.canvas,getViewportCoords:(i,a)=>{let{x:l,y:s}=Qt({sceneX:i,sceneY:a},this.state);return[l-this.state.offsetLeft,s-this.state.offsetTop]},onChange:Qe(i=>{n(i,i,!1),Mu(e)&&ou(e,r)}),onSubmit:Qe(({text:i,viaKeyboard:a,originalText:l})=>{let s=!i.trim();if(n(i,l,s),!s&&a){let d=e.containerId?e.containerId:e.id;this.setState(c=>({selectedElementIds:ze({...c.selectedElementIds,[d]:!0},c)}))}s&&vc(this.scene.getNonDeletedElements(),[e]),(!s||o)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&qo(this.interactiveCanvas,this.state),this.focusContainer()}),element:e,excalidrawContainer:this.excalidrawContainerRef.current,app:this}),this.deselectElements(),n(e.text,e.originalText,!1)}deselectElements(){this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(e,o){let r=this.getElementAtPosition(e,o,{includeBoundTextElement:!0});return r&&ce(r)&&!r.isDeleted?r:null}getElementShape(e){switch(e.type){case"rectangle":case"diamond":case"frame":case"magicframe":case"embeddable":case"image":case"iframe":case"text":case"selection":return e0(e);case"arrow":case"line":{let o=Lo.get(e)?.[0]??Lo.generateElementShape(e,null)[0],[,,,,r,n]=Wt(e,this.scene.getNonDeletedElementsMap());return gu(e)?i0(e,o,[e.x,e.y],e.angle,[r,n]):r0(o,[e.x,e.y],e.angle,[r,n])}case"ellipse":return o0(e);case"freedraw":{let[,,,,o,r]=Wt(e,this.scene.getNonDeletedElementsMap());return n0(e,[o,r],gu(e))}}}getBoundTextShape(e){let o=ct(e,this.scene.getNonDeletedElementsMap());return o?e.type==="arrow"?this.getElementShape({...o,...ue.getBoundTextElementPosition(e,o,this.scene.getNonDeletedElementsMap())}):this.getElementShape(o):null}getElementAtPosition(e,o,r){let n=this.getElementsAtPosition(e,o,r?.includeBoundTextElement,r?.includeLockedElements);if(n.length>1){if(r?.preferSelected){for(let a=n.length-1;a>-1;a--)if(this.state.selectedElementIds[n[a].id])return n[a]}let i=n[n.length-1];return Xi({x:e,y:o,element:i,shape:this.getElementShape(i),threshold:this.getElementHitThreshold()/2,frameNameBound:ye(i)?this.frameNameBoundsCache.get(i):null})?i:n[n.length-2]}return n.length===1?n[0]:null}getElementsAtPosition(e,o,r=!1,n=!1){let i=[],a=this.scene.getNonDeletedElementsMap();return(r&&n?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(s=>(n||!s.locked)&&(r||!(ce(s)&&s.containerId)))).filter(s=>this.hitElement(e,o,s)).filter(s=>{let d=Uc(s,a);return d&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?vu({x:e,y:o},d,a):!0}).filter(s=>Xn(s)?(i.push(s),!1):!0).concat(i)}getElementHitThreshold(){return h1/this.state.zoom.value}hitElement(e,o,r,n=!0){if(n&&this.state.selectedElementIds[r.id]&&Zc([r],this.state)){let a=t0(r,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return lb([e,o],a)}return s0(e,o,this.getBoundTextShape(r))?!0:Xi({x:e,y:o,element:r,shape:this.getElementShape(r),threshold:this.getElementHitThreshold(),frameNameBound:ye(r)?this.frameNameBoundsCache.get(r):null})}getTextBindableContainerAtPosition(e,o){let r=this.scene.getNonDeletedElements(),n=this.scene.getSelectedElements(this.state);if(n.length===1)return Rr(n[0],!1)?n[0]:null;let i=null;for(let a=r.length-1;a>=0;--a){if(r[a].isDeleted)continue;let[l,s,d,c]=Wt(r[a],this.scene.getNonDeletedElementsMap());if(ur(r[a])&&Xi({x:e,y:o,element:r[a],shape:this.getElementShape(r[a]),threshold:this.getElementHitThreshold()})){i=r[a];break}else if(l<e&&e<d&&s<o&&o<c){i=r[a];break}}return Rr(i,!1)?i:null}startTextEditing=({sceneX:e,sceneY:o,insertAtParentCenter:r=!0,container:n})=>{let i=!1,a=r&&this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n);n&&a&&(ct(n,this.scene.getNonDeletedElementsMap())||(i=!0));let l=null,s=this.scene.getSelectedElements(this.state);s.length===1?ce(s[0])?l=s[0]:n?l=ct(s[0],this.scene.getNonDeletedElementsMap()):l=this.getTextElementAtPosition(e,o):l=this.getTextElementAtPosition(e,o);let d=l?.fontFamily||this.state.currentItemFontFamily,c=l?.lineHeight||Or(d),m=this.state.currentItemFontSize;if(!l&&i&&n&&!ur(n)){let x=bb(Xo({fontSize:m,fontFamily:d}),c),y=fb(m,c),T=Math.max(n.height,y),C=Math.max(n.width,x);re(n,{height:T,width:C}),e=n.x+C/2,o=n.y+T/2,a&&(a=this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n))}let u=this.getTopLayerFrameAtSceneCoords({x:e,y:o}),f=l||gn({x:a?a.elementCenterX:e,y:a?a.elementCenterY:o,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:"",fontSize:m,fontFamily:d,textAlign:a?"center":this.state.currentItemTextAlign,verticalAlign:a?wo.MIDDLE:zp,containerId:i?n?.id:void 0,groupIds:n?.groupIds??[],lineHeight:c,angle:n?.angle??0,frameId:u?u.id:null});if(!l&&i&&n&&re(n,{boundElements:(n.boundElements||[]).concat({type:"text",id:f.id})}),this.setState({editingElement:f}),!l)if(n&&i){let b=this.scene.getElementIndex(n.id);this.scene.insertElementAtIndex(f,b+1)}else this.scene.insertElement(f);this.setState({editingElement:f}),this.handleTextWysiwyg(f,{isExistingElement:!!l})};handleCanvasDoubleClick=e=>{if(this.state.multiElement||this.state.activeTool.type!=="selection")return;let o=this.scene.getSelectedElements(this.state);if(o.length===1&&_e(o[0])&&e[S.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==o[0].id)){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new ue(o[0])});return}Mo(this.interactiveCanvas);let{x:r,y:n}=Ye(e,this.state);if(Br(this.state).length>0){let a=this.getElementAtPosition(r,n),l=a&&Mb(a,this.state.selectedGroupIds);if(l){this.store.shouldCaptureIncrement(),this.setState(s=>({...s,...Nt({editingGroupId:l,selectedElementIds:{[a.id]:!0}},this.scene.getNonDeletedElements(),s,this)}));return}}if(Mo(this.interactiveCanvas),!e[S.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let a=this.getElementAtPosition(r,n);if(zi(a)){this.setState({activeEmbeddable:{element:a,state:"active"}});return}let l=this.getTextBindableContainerAtPosition(r,n);if(l&&(fr(l)||!jn(l.backgroundColor)||Xi({x:r,y:n,element:l,shape:this.getElementShape(l),threshold:this.getElementHitThreshold()}))){let s=Cc(l,this.state,this.scene.getNonDeletedElementsMap());r=s.x,n=s.y}this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:l})}};getElementLinkAtPosition=(e,o)=>{let r=this.scene.getNonDeletedElements().slice().reverse(),n=1/0;return r.find((i,a)=>(o&&i.id===o.id&&(n=a),i.link&&a<=n&&Bc(i,this.scene.getNonDeletedElementsMap(),this.state,[e.x,e.y],this.device.editor.isMobile)))};redirectToLink=(e,o)=>{let r=un(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||o&&r>Gn||!o&&r!==0)return;let n=Ye(this.lastPointerDownEvent,this.state),i=this.scene.getNonDeletedElementsMap(),a=Bc(this.hitLinkElement,i,this.state,[n.x,n.y],this.device.editor.isMobile),l=Ye(this.lastPointerUpEvent,this.state),s=Bc(this.hitLinkElement,i,this.state,[l.x,l.y],this.device.editor.isMobile);if(a&&s){let d=this.hitLinkElement.link;if(d){d=zr(d);let c;if(this.props.onLinkOpen&&(c=dc("excalidraw-link",e.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:d},c)),!c?.defaultPrevented){let m=kc(d)?"_self":"_blank",u=window.open(void 0,m);u&&(u.opener=null,u.location=d)}}}};getTopLayerFrameAtSceneCoords=e=>{let o=this.scene.getNonDeletedElementsMap(),r=this.scene.getNonDeletedFramesLikes().filter(n=>vu(e,n,o));return r.length?r[r.length-1]:null};handleCanvasPointerMove=e=>{this.savePointer(e.clientX,e.clientY,this.state.cursorButton),this.lastPointerMoveEvent=e.nativeEvent,Re.pointers.has(e.pointerId)&&Re.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});let o=Re.initialScale;if(Re.pointers.size===2&&Re.lastCenter&&o&&Re.initialDistance){let u=jh(Re.pointers),f=u.x-Re.lastCenter.x,b=u.y-Re.lastCenter.y;Re.lastCenter=u;let x=Xh(Array.from(Re.pointers.values())),y=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:x/Re.initialDistance,T=y?Hr(o*y):this.state.zoom.value;this.setState(C=>{let w=Ur({viewportX:u.x,viewportY:u.y,nextZoom:T},C);this.translateCanvas({zoom:w.zoom,scrollX:w.scrollX+f/T,scrollY:w.scrollY+b/T,shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else Re.lastCenter=Re.initialDistance=Re.initialScale=null;if(Ri||zs||Fg||Fr(this.state))return;let n=Qh(Bg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(n?Mo(this.interactiveCanvas):qo(this.interactiveCanvas,this.state));let i=Ye(e,this.state),{x:a,y:l}=i;if(!this.state.draggingElement&&$5(this.state.activeTool.type)){let{originOffset:u,snapLines:f}=z5(this.scene.getNonDeletedElements(),this.state,{x:a,y:l},e,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x=pc(b.snapLines,f),y=b.originSnapOffset?pc(b.originSnapOffset,u):u;return b.snapLines===x&&b.originSnapOffset===y?null:{snapLines:x,originSnapOffset:y}})}else this.state.draggingElement||this.setState(u=>u.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let u=ue.handlePointerMove(e,a,l,this.state,this.scene.getNonDeletedElementsMap());u&&u!==this.state.editingLinearElement&&(0,Ip.flushSync)(()=>{this.setState({editingLinearElement:u})}),u?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(i):(0,Ip.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(J1(this.state.activeTool.type)){let{draggingElement:u}=this.state;Pr(u,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(u,[i],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(i)}if(this.state.multiElement){let{multiElement:u}=this.state,{x:f,y:b}=u,{points:x,lastCommittedPoint:y}=u,T=x[x.length-1];if(qo(this.interactiveCanvas,this.state),T===y)un(a-f,l-b,T[0],T[1])>=js?re(u,{points:[...x,[a-f,l-b]]}):Fe(this.interactiveCanvas,Oe.POINTER);else if(x.length>2&&y&&un(a-f,l-b,y[0],y[1])<js)Fe(this.interactiveCanvas,Oe.POINTER),re(u,{points:x.slice(0,-1)});else{let[C,w]=eo(a,l,e[S.CTRL_OR_CMD]?null:this.state.gridSize),[A,z]=u?.lastCommittedPoint??[0,0],I=C-f-A,M=w-b-z;hc(e)&&({width:I,height:M}=wu(A+f,z+b,C,w)),vl(x,this.state.zoom.value)&&Fe(this.interactiveCanvas,Oe.POINTER),re(u,{points:[...x.slice(0,-1),[A+I,z+M]]})}return}if(!!e.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let d=this.scene.getNonDeletedElements(),c=this.scene.getSelectedElements(this.state);if(c.length===1&&!n&&!this.state.editingLinearElement){if(this.state.selectedLinearElement&&this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l),!this.state.selectedLinearElement||this.state.selectedLinearElement.hoverPointIndex===-1){let u=Cu(d,this.state,a,l,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(u&&u.transformHandleType){Fe(this.interactiveCanvas,Tu(u));return}}}else if(c.length>1&&!n){let u=Su(Ze(c),a,l,this.state.zoom,e.pointerType,this.device);if(u){Fe(this.interactiveCanvas,Tu({transformHandleType:u}));return}}let m=this.getElementAtPosition(i.x,i.y);this.hitLinkElement=this.getElementLinkAtPosition(i,m),!Ao(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(Fe(this.interactiveCanvas,Oe.POINTER),_E(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(LE(),m&&(m.link||Ht(m))&&this.state.selectedElementIds[m.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?Fe(this.interactiveCanvas,ce(m)?Oe.TEXT:Oe.CROSSHAIR):this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):n?Fe(this.interactiveCanvas,Oe.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l):e[S.CTRL_OR_CMD]?Fe(this.interactiveCanvas,Oe.AUTO):(m||this.isHittingCommonBoundingBoxOfSelectedElements(i,c))&&!m?.locked&&(m&&zi(m)&&this.isIframeLikeElementCenter(m,e,a,l)?(Fe(this.interactiveCanvas,Oe.POINTER),this.setState({activeEmbeddable:{element:m,state:"hover"}})):(Fe(this.interactiveCanvas,Oe.MOVE),this.state.activeEmbeddable?.state==="hover"&&this.setState({activeEmbeddable:null})))))};handleEraser=(e,o,r)=>{this.eraserTrail.addPointToPath(r.x,r.y);let n=!1,i=new Set,a=this.scene.getNonDeletedElements(),l=u=>{for(let f of u){if(f.locked)return;if(e.altKey?this.elementsPendingErasure.delete(f.id)&&(n=!0):this.elementsPendingErasure.has(f.id)||(n=!0,this.elementsPendingErasure.add(f.id)),n&&f.groupIds?.length){let b=f.groupIds.at(-1);if(!i.has(b)){i.add(b);let x=ft(a,b);for(let y of x)e.altKey?this.elementsPendingErasure.delete(y.id):this.elementsPendingErasure.add(y.id)}}}},s=un(o.lastCoords.x,o.lastCoords.y,r.x,r.y),d=this.getElementHitThreshold(),c={...o.lastCoords},m=0;for(;m<=s;){let u=this.getElementsAtPosition(c.x,c.y);if(l(u),m===s)break;m=Math.min(m+d,s);let f=m/s,b=(1-f)*c.x+f*r.x,x=(1-f)*c.y+f*r.y;c.x=b,c.y=x}if(o.lastCoords.x=r.x,o.lastCoords.y=r.y,n){for(let u of this.scene.getNonDeletedElements())xt(u)&&(this.elementsPendingErasure.has(u.id)||this.elementsPendingErasure.has(u.containerId))&&(e.altKey?(this.elementsPendingErasure.delete(u.id),this.elementsPendingErasure.delete(u.containerId)):(this.elementsPendingErasure.add(u.id),this.elementsPendingErasure.add(u.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.onSceneUpdated()}};handleTouchMove=e=>{$s=!0};handleHoverSelectedLinearElement(e,o,r){let n=this.scene.getNonDeletedElementsMap(),i=ue.getElement(e.elementId,n);if(i)if(this.state.selectedLinearElement){let a=-1,l=null;Xi({x:o,y:r,element:i,shape:this.getElementShape(i)})?(a=ue.getPointIndexUnderCursor(i,n,this.state.zoom,o,r),l=ue.getSegmentMidpointHitCoords(e,{x:o,y:r},this.state,this.scene.getNonDeletedElementsMap()),a>=0||l?Fe(this.interactiveCanvas,Oe.POINTER):this.hitElement(o,r,i)&&Fe(this.interactiveCanvas,Oe.MOVE)):this.hitElement(o,r,i)&&Fe(this.interactiveCanvas,Oe.MOVE),this.state.selectedLinearElement.hoverPointIndex!==a&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:a}}),ue.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,l)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:l}})}else Fe(this.interactiveCanvas,Oe.AUTO)}handleCanvasPointerDown=e=>{if(this.maybeCleanupAfterMissingPointerUp(e.nativeEvent),this.maybeUnfollowRemoteUser(),this.state.contextMenu&&this.setState({contextMenu:null}),this.state.snapLines&&this.setAppState({snapLines:[]}),this.updateGestureOnPointerDown(e),e.pointerType==="touch"&&this.state.draggingElement&&this.state.draggingElement.type==="freedraw"){let d=this.state.draggingElement;this.updateScene({...d.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(c=>c.id!==d.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:ze(Object.keys(this.state.selectedElementIds).filter(c=>c!==d.id).reduce((c,m)=>(c[m]=this.state.selectedElementIds[m],c),{}),this.state)},storeAction:P.UPDATE});return}let o=document.getSelection();if(o?.anchorNode&&o.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(e),!this.state.penDetected&&e.pointerType==="pen"&&this.setState(d=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(e.pointerType)&&(this.device=Fi(this.device,{isTouchScreen:!0})),zs||(this.lastPointerDownEvent=e,this.handleCanvasPanUsingWheelOrSpaceDrag(e)))return;if(this.setState({lastPointerDownWith:e.pointerType,cursorButton:"down"}),this.savePointer(e.clientX,e.clientY,"down"),e.button===an.ERASER&&this.state.activeTool.type!==ut.eraser){this.setState({activeTool:it(this.state,{type:ut.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(e);let d=()=>{c(),m?.(),Ao(this.state)&&this.setState({activeTool:it(this.state,{...this.state.activeTool.lastActiveTool||{type:ut.selection},lastActiveToolBeforeEraser:null})})},c=at(window,"pointerup",d,{once:!0}),m;requestAnimationFrame(()=>{m=this.missingPointerEventCleanupEmitter.once(d)})});return}if(e.button!==an.MAIN&&e.button!==an.TOUCH&&e.button!==an.ERASER||Re.pointers.size>1)return;let r=this.initialPointerDownState(e);if(this.setState({selectedElementsAreBeingDragged:!1}),this.handleDraggingScrollBar(e,r)||(this.clearSelectionIfNotUsingSelection(),this.updateBindingEnabledOnPointerMove(e),this.handleSelectionOnPointerDown(e,r))||!(!this.state.penMode||e.pointerType!=="touch"||this.state.activeTool.type==="selection"||this.state.activeTool.type==="text"||this.state.activeTool.type==="image"))return;if(this.state.activeTool.type==="text"){this.handleTextOnPointerDown(e,r);return}else if(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")this.handleLinearElementOnPointerDown(e,this.state.activeTool.type,r);else if(this.state.activeTool.type==="image"){Fe(this.interactiveCanvas,Oe.CROSSHAIR);let d=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!d)return;this.setState({draggingElement:d,editingElement:d,pendingImageElementId:null,multiElement:null});let{x:c,y:m}=Ye(e,this.state),u=this.getTopLayerFrameAtSceneCoords({x:c,y:m});re(d,{x:c,y:m,frameId:u?u.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(e,this.state.activeTool.type,r):this.state.activeTool.type==="custom"?qo(this.interactiveCanvas,this.state):this.state.activeTool.type===ut.frame||this.state.activeTool.type===ut.magicframe?this.createFrameElementOnPointerDown(r,this.state.activeTool.type):this.state.activeTool.type==="laser"?this.laserTrails.startPath(r.lastCoords.x,r.lastCoords.y):this.state.activeTool.type!=="eraser"&&this.state.activeTool.type!=="hand"&&this.createGenericElementOnPointerDown(this.state.activeTool.type,r);this.props?.onPointerDown?.(this.state.activeTool,r),this.onPointerDownEmitter.trigger(this.state.activeTool,r,e),this.state.activeTool.type==="eraser"&&this.eraserTrail.startPath(r.lastCoords.x,r.lastCoords.y);let i=this.onPointerMoveFromPointerDownHandler(r),a=this.onPointerUpFromPointerDownHandler(r),l=this.onKeyDownFromPointerDownHandler(r),s=this.onKeyUpFromPointerDownHandler(r);this.missingPointerEventCleanupEmitter.once(d=>a(d||e.nativeEvent)),(!this.state.viewModeEnabled||this.state.activeTool.type==="laser")&&(window.addEventListener("pointermove",i),window.addEventListener("pointerup",a),window.addEventListener("keydown",l),window.addEventListener("keyup",s),r.eventListeners.onMove=i,r.eventListeners.onUp=a,r.eventListeners.onKeyUp=s,r.eventListeners.onKeyDown=l)};handleCanvasPointerUp=e=>{this.removePointer(e),this.lastPointerUpEvent=e;let o=Ye({clientX:e.clientX,clientY:e.clientY},this.state),r=e.timeStamp-(this.lastPointerDownEvent?.timeStamp??0);if(this.device.editor.isMobile&&r<300){let n=this.getElementAtPosition(o.x,o.y);if(zi(n)&&this.isIframeLikeElementCenter(n,e,o.x,o.y)){this.handleEmbeddableCenterClick(n);return}}if(this.device.isTouchScreen){let n=this.getElementAtPosition(o.x,o.y);this.hitLinkElement=this.getElementLinkAtPosition(o,n)}this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?r<300&&zi(this.hitLinkElement)&&!d0(this.hitLinkElement,this.scene.getNonDeletedElementsMap(),this.state,[o.x,o.y])?this.handleEmbeddableCenterClick(this.hitLinkElement):this.redirectToLink(e,this.device.isTouchScreen):this.state.viewModeEnabled&&this.setState({activeEmbeddable:null,selectedElementIds:{}})};maybeOpenContextMenuAfterPointerDownOnTouchDevices=e=>{e.pointerType==="touch"&&($s=!1,Un?$s=!0:Un=window.setTimeout(()=>{Un=0,$s||this.handleCanvasContextMenu(e)},C1))};resetContextMenuTimer=()=>{clearTimeout(Un),Un=0,$s=!1};maybeCleanupAfterMissingPointerUp=e=>{Hs?.(),this.missingPointerEventCleanupEmitter.trigger(e).clear()};handleCanvasPanUsingWheelOrSpaceDrag=e=>{if(!(Re.pointers.size<=1&&(e.button===an.WHEEL||e.button===an.MAIN&&Ri||Fr(this.state)||this.state.viewModeEnabled))||ce(this.state.editingElement))return!1;zs=!0,e.preventDefault();let o=!1,r=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);Fe(this.interactiveCanvas,Oe.GRABBING);let{clientX:n,clientY:i}=e,a=xp(s=>{let d=n-s.clientX,c=i-s.clientY;if(n=s.clientX,i=s.clientY,r&&!o&&(Math.abs(d)>1||Math.abs(c)>1)){o=!0;let m=f=>{document.body.removeEventListener("paste",m),f.stopPropagation()},u=()=>{setTimeout(()=>{document.body.removeEventListener("paste",m),window.removeEventListener("pointerup",u)},100)};document.body.addEventListener("paste",m),window.addEventListener("pointerup",u)}this.translateCanvas({scrollX:this.state.scrollX-d/this.state.zoom.value,scrollY:this.state.scrollY-c/this.state.zoom.value})}),l=Qe(Hs=()=>{Hs=null,zs=!1,Ri||(this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):qo(this.interactiveCanvas,this.state)),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",l),window.removeEventListener("blur",l),a.flush()});return window.addEventListener("blur",l),window.addEventListener("pointermove",a,{passive:!0}),window.addEventListener("pointerup",l),!0};updateGestureOnPointerDown(e){Re.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),Re.pointers.size===2&&(Re.lastCenter=jh(Re.pointers),Re.initialScale=this.state.zoom.value,Re.initialDistance=Xh(Array.from(Re.pointers.values())))}initialPointerDownState(e){let o=Ye(e,this.state),r=this.scene.getSelectedElements(this.state),[n,i,a,l]=Ze(r);return{origin:o,withCmdOrCtrl:e[S.CTRL_OR_CMD],originInGrid:fl(eo(o.x,o.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:Qh(Bg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop),lastCoords:{...o},originalElements:this.scene.getNonDeletedElements().reduce((s,d)=>(s.set(d.id,Mc(d)),s),new Map),resize:{handleType:!1,isResizing:!1,offset:{x:0,y:0},arrowDirection:"origin",center:{x:(a+n)/2,y:(l+i)/2}},hit:{element:null,allHitElements:[],wasAddedToSelection:!1,hasBeenDuplicated:!1,hasHitCommonBoundingBoxOfSelectedElements:this.isHittingCommonBoundingBoxOfSelectedElements(o,r)},drag:{hasOccurred:!1,offset:null},eventListeners:{onMove:null,onUp:null,onKeyUp:null,onKeyDown:null},boxSelection:{hasOccurred:!1}}}handleDraggingScrollBar(e,o){if(!(o.scrollbars.isOverEither&&!this.state.multiElement))return!1;Fg=!0,o.lastCoords.x=e.clientX,o.lastCoords.y=e.clientY;let r=xp(i=>{i.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(i,o)}),n=Qe(()=>{Hs=null,Fg=!1,qo(this.interactiveCanvas,this.state),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n),r.flush()});return Hs=n,window.addEventListener("pointermove",r),window.addEventListener("pointerup",n),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})};handleSelectionOnPointerDown=(e,o)=>{if(this.state.activeTool.type==="selection"){let r=this.scene.getNonDeletedElements(),n=this.scene.getNonDeletedElementsMap(),i=this.scene.getSelectedElements(this.state);if(i.length===1&&!this.state.editingLinearElement&&!(this.state.selectedLinearElement&&this.state.selectedLinearElement.hoverPointIndex!==-1)){let a=Cu(r,this.state,o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);a!=null&&(this.setState({resizingElement:a.element}),o.resize.handleType=a.transformHandleType)}else i.length>1&&(o.resize.handleType=Su(Ze(i),o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.device));if(o.resize.handleType)o.resize.isResizing=!0,o.resize.offset=fl(O0(o.resize.handleType,i,n,o.origin.x,o.origin.y)),i.length===1&&_e(i[0])&&i[0].points.length===2&&(o.resize.arrowDirection=F0(o.resize.handleType,i[0]));else{if(this.state.selectedLinearElement){let s=this.state.editingLinearElement||this.state.selectedLinearElement,d=ue.handlePointerDown(e,this.state,this.store,o.origin,s,this);if(d.hitElement&&(o.hit.element=d.hitElement),d.linearElementEditor&&(this.setState({selectedLinearElement:d.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:d.linearElementEditor})),d.didAddPoint)return!0}if(o.hit.element=o.hit.element??this.getElementAtPosition(o.origin.x,o.origin.y),o.hit.element&&this.getElementLinkAtPosition({x:o.origin.x,y:o.origin.y},o.hit.element))return!1;o.hit.allHitElements=this.getElementsAtPosition(o.origin.x,o.origin.y);let a=o.hit.element,l=o.hit.allHitElements.some(s=>this.isASelectedElement(s));if((a===null||!l)&&!e.shiftKey&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(a),this.state.editingLinearElement)this.setState({selectedElementIds:ze({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(a!=null){if(e[S.CTRL_OR_CMD])return this.state.selectedElementIds[a.id]||(o.hit.wasAddedToSelection=!0),this.setState(s=>({...Ab(s,a),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[a.id]||(this.state.editingGroupId&&!Yi(a,this.state.editingGroupId)&&this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!l&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(s=>{let d={...s.selectedElementIds,[a.id]:!0},c=[];if(Object.keys(s.selectedElementIds).forEach(m=>{let u=this.scene.getElement(m);u&&c.push(u)}),ye(a))bn(c,a.id).forEach(m=>{delete d[m.id]});else if(a.frameId)d[a.frameId]&&delete d[a.id];else{let m=a.groupIds,u=new Set(m.flatMap(f=>ft(this.scene.getNonDeletedElements(),f)).filter(f=>ye(f)).map(f=>f.id));u.size>0&&c.forEach(f=>{f.frameId&&u.has(f.frameId)&&(delete d[f.id],f.groupIds.flatMap(b=>ft(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete d[b.id]}))})}return{...Nt({editingGroupId:s.editingGroupId,selectedElementIds:d},this.scene.getNonDeletedElements(),s,this),showHyperlinkPopup:a.link||Ht(a)?"info":!1}}),o.hit.wasAddedToSelection=!0))}this.setState({previousSelectedElementIds:this.state.selectedElementIds})}}return!1};isASelectedElement(e){return e!=null&&this.state.selectedElementIds[e.id]}isHittingCommonBoundingBoxOfSelectedElements(e,o){if(o.length<2)return!1;let r=this.getElementHitThreshold(),[n,i,a,l]=Ze(o);return e.x>n-r&&e.x<a+r&&e.y>i-r&&e.y<l+r}handleTextOnPointerDown=(e,o)=>{if(ce(this.state.editingElement))return;let r=o.origin.x,n=o.origin.y,i=this.getElementAtPosition(r,n,{includeBoundTextElement:!0}),a=this.getTextBindableContainerAtPosition(r,n);fr(i)&&(a=i,r=i.x+i.width/2,n=i.y+i.height/2),this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:a}),Mo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:it(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(e,o,r)=>{let[n,i]=eo(r.origin.x,r.origin.y,null),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),l=Bb({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:null,simulatePressure:e.pressure===.5,locked:!1,frameId:a?a.id:null});this.setState(c=>{let m={...c.selectedElementIds};return delete m[l.id],{selectedElementIds:ze(m,c)}});let s=l.simulatePressure?l.pressures:[...l.pressures,e.pressure];re(l,{points:[[0,0]],pressures:s});let d=Tl(r.origin,this);this.scene.insertElement(l),this.setState({draggingElement:l,editingElement:l,startBoundElement:d,suggestedBindings:[]})};insertIframeElement=({sceneX:e,sceneY:o,width:r,height:n})=>{let[i,a]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),l=Nb({type:"iframe",x:i,y:a,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("iframe"),opacity:this.state.currentItemOpacity,locked:!1,width:r,height:n});return this.scene.insertElement(l),l};insertEmbeddableElement=({sceneX:e,sceneY:o,link:r})=>{let[n,i]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=Qn(r);if(!a)return;a.error instanceof URIError&&this.setToast({message:g("toast.unrecognizedLinkFormat"),closable:!0});let l=iu({type:"embeddable",x:n,y:i,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("embeddable"),opacity:this.state.currentItemOpacity,locked:!1,width:a.intrinsicSize.w,height:a.intrinsicSize.h,link:r});return this.scene.insertElement(l),l};createImageElement=({sceneX:e,sceneY:o,addToFrameUnderCursor:r=!0})=>{let[n,i]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=r?this.getTopLayerFrameAtSceneCoords({x:n,y:i}):null;return Ac({type:"image",x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:null,opacity:this.state.currentItemOpacity,locked:!1,frameId:a?a.id:null})};handleLinearElementOnPointerDown=(e,o,r)=>{if(this.state.multiElement){let{multiElement:n}=this.state;if(n.type==="line"&&vl(n.points,this.state.zoom.value)){re(n,{lastCommittedPoint:n.points[n.points.length-1]}),this.actionManager.executeAction(Oo);return}let{x:i,y:a,lastCommittedPoint:l}=n;if(n.points.length>1&&l&&un(r.origin.x-i,r.origin.y-a,l[0],l[1])<js){this.actionManager.executeAction(Oo);return}this.setState(s=>({selectedElementIds:ze({...s.selectedElementIds,[n.id]:!0},s)})),re(n,{lastCommittedPoint:n.points[n.points.length-1]}),Fe(this.interactiveCanvas,Oe.POINTER)}else{let[n,i]=eo(r.origin.x,r.origin.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),{currentItemStartArrowhead:l,currentItemEndArrowhead:s}=this.state,[d,c]=o==="arrow"?[l,s]:[null,null],m=Ml({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.state.currentItemRoundness==="round"?{type:Co.PROPORTIONAL_RADIUS}:null,startArrowhead:d,endArrowhead:c,locked:!1,frameId:a?a.id:null});this.setState(f=>{let b={...f.selectedElementIds};return delete b[m.id],{selectedElementIds:ze(b,f)}}),re(m,{points:[...m.points,[0,0]]});let u=Tl(r.origin,this);this.scene.insertElement(m),this.setState({draggingElement:m,editingElement:m,startBoundElement:u,suggestedBindings:[]})}};getCurrentItemRoundness(e){return this.state.currentItemRoundness==="round"?{type:$i(e)?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(e,o)=>{let[r,n]=eo(o.origin.x,o.origin.y,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),i=this.getTopLayerFrameAtSceneCoords({x:r,y:n}),a={x:r,y:n,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.getCurrentItemRoundness(e),locked:!1,frameId:i?i.id:null},l;e==="embeddable"?l=iu({type:"embeddable",...a}):l=hn({type:e,...a}),l.type==="selection"?this.setState({selectionElement:l,draggingElement:l}):(this.scene.insertElement(l),this.setState({multiElement:null,draggingElement:l,editingElement:l}))};createFrameElementOnPointerDown=(e,o)=>{let[r,n]=eo(e.origin.x,e.origin.y,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),i={x:r,y:n,opacity:this.state.currentItemOpacity,locked:!1,...Zo},a=o===ut.magicframe?Al(i):Ic(i);this.scene.insertElement(a),this.setState({multiElement:null,draggingElement:a,editingElement:a})};maybeCacheReferenceSnapPoints(e,o,r=!1){nn({event:e,appState:this.state,selectedElements:o})&&(r||!Wo.getReferenceSnapPoints())&&Wo.setReferenceSnapPoints(N5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(e,o,r=!1){nn({event:e,appState:this.state,selectedElements:o})&&(r||!Wo.getVisibleGaps())&&Wo.setVisibleGaps(D5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(e){return Qe(o=>{this.maybeHandleResize(e,o)||this.maybeDragNewGenericElement(e,o)})}onKeyUpFromPointerDownHandler(e){return Qe(o=>{o.key===S.ALT&&o.preventDefault(),!this.maybeHandleResize(e,o)&&this.maybeDragNewGenericElement(e,o)})}onPointerMoveFromPointerDownHandler(e){return xp(o=>{if(e.drag.offset===null&&(e.drag.offset=fl(z0(this.scene.getSelectedElements(this.state),e.origin.x,e.origin.y))),!(o.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(o,e))return;let n=Ye(o,this.state);if(Ao(this.state)){this.handleEraser(o,e,n);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(n.x,n.y);let[i,a]=eo(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize);if(!e.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&un(n.x,n.y,e.origin.x,e.origin.y)<Gn)return;if(e.resize.isResizing&&(e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeHandleResize(e,o)))return!0;let l=this.scene.getNonDeletedElementsMap();if(this.state.selectedLinearElement){let m=this.state.editingLinearElement||this.state.selectedLinearElement;if(ue.shouldAddMidpoint(this.state.selectedLinearElement,n,this.state,l)){let f=ue.addMidpoint(this.state.selectedLinearElement,n,this.state,!o[S.CTRL_OR_CMD],l);if(!f)return;(0,Ip.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}})});return}else if(m.pointerDownState.segmentMidpoint.value!==null&&!m.pointerDownState.segmentMidpoint.added)return;if(ue.handlePointDragging(o,this.state,n.x,n.y,(f,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(f,b)},m,this.scene.getNonDeletedElementsMap())){e.lastCoords.x=n.x,e.lastCoords.y=n.y,e.drag.hasOccurred=!0,this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging&&this.setState({editingLinearElement:{...this.state.editingLinearElement,isDragging:!0}}),this.state.selectedLinearElement.isDragging||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,isDragging:!0}});return}}let s=e.hit.allHitElements.some(m=>this.isASelectedElement(m)),d=this.state.editingLinearElement&&o.shiftKey&&this.state.editingLinearElement.elementId===e.hit.element?.id;if((s||e.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!d){let m=this.scene.getSelectedElements(this.state);if(m.every(b=>b.locked))return;let u=m.find(b=>ye(b)),f=this.getTopLayerFrameAtSceneCoords(n);if(this.setState({frameToHighlight:f&&!u?f:null}),e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),m.length>0&&!e.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let b={x:n.x-e.origin.x,y:n.y-e.origin.y},x=[...e.originalElements.values()],y=o.shiftKey;if(y){let w=Math.abs(b.x),A=Math.abs(b.y),z=y&&w<A,I=y&&w>A;z&&(b.x=0),I&&(b.y=0)}this.maybeCacheVisibleGaps(o,m),this.maybeCacheReferenceSnapPoints(o,m);let{snapOffset:T,snapLines:C}=O5(x,b,this.state,o,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:C}),!this.state.editingFrame&&B0(e,m,b,this.state,this.scene,T,o[S.CTRL_OR_CMD]?null:this.state.gridSize),this.setState({suggestedBindings:bc(m,this)}),o.altKey&&!e.hit.hasBeenDuplicated){e.hit.hasBeenDuplicated=!0;let w=[],A=[],z=new Map,I=new Map,M=e.hit.element,_=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(G=>G.id)),U=this.scene.getElementsIncludingDeleted();for(let G of U)if(_.has(G.id)||G.id===M?.id&&e.hit.wasAddedToSelection){let O=_c(this.state.editingGroupId,z,G),B=e.originalElements.get(G.id);re(O,{x:B.x,y:B.y}),e.originalElements.set(O.id,O),w.push(O),A.push(G),I.set(G.id,O.id)}else w.push(G);let D=[...w,...A];ho(D,pe(A)),yc(w,A,I),xc(D,A,I,"duplicatesServeAsOld"),Hc(D,A,I),this.scene.replaceAllElements(D),this.maybeCacheVisibleGaps(o,m,!0),this.maybeCacheReferenceSnapPoints(o,m,!0)}return}}let c=this.state.draggingElement;if(c){if(c.type==="freedraw"){let m=c.points,u=n.x-c.x,f=n.y-c.y,b=m.length>0&&m[m.length-1];if(!(b&&b[0]===u&&b[1]===f)){let y=c.simulatePressure?c.pressures:[...c.pressures,o.pressure];re(c,{points:[...m,[u,f]],pressures:y})}}else if(_e(c)){e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let m=c.points,u=i-c.x,f=a-c.y;hc(o)&&m.length===2&&({width:u,height:f}=wu(c.x,c.y,n.x,n.y)),m.length===1?re(c,{points:[...m,[u,f]]}):m.length===2&&re(c,{points:[...m.slice(0,-1),[u,f]]}),Pr(c,!1)&&this.maybeSuggestBindingsForLinearElementAtCoords(c,[n],this.state.startBoundElement)}else e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeDragNewGenericElement(e,o);if(this.state.activeTool.type==="selection"){e.boxSelection.hasOccurred=!0;let m=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)ue.handleBoxSelection(o,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let u=!0;!o.shiftKey&&Be(m,this.state)&&(e.withCmdOrCtrl&&e.hit.element?this.setState(b=>Nt({...b,selectedElementIds:{[e.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):u=!1);let f=$0(m,c,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x={...u&&b.selectedElementIds,...f.reduce((y,T)=>(y[T.id]=!0,y),{})};return e.hit.element&&(f.length?delete x[e.hit.element.id]:x[e.hit.element.id]=!0),b=u?b:{...b,selectedGroupIds:{},editingGroupId:null},{...Nt({editingGroupId:b.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:f.length===1&&_e(f[0])?new ue(f[0]):null,showHyperlinkPopup:f.length===1&&(f[0].link||Ht(f[0]))?"info":!1}})}}}})}handlePointerMoveOverScrollbars(e,o){if(o.scrollbars.isOverHorizontal){let r=e.clientX,n=r-o.lastCoords.x;return this.translateCanvas({scrollX:this.state.scrollX-n/this.state.zoom.value}),o.lastCoords.x=r,!0}if(o.scrollbars.isOverVertical){let r=e.clientY,n=r-o.lastCoords.y;return this.translateCanvas({scrollY:this.state.scrollY-n/this.state.zoom.value}),o.lastCoords.y=r,!0}return!1}onPointerUpFromPointerDownHandler(e){return Qe(o=>{this.removePointer(o),e.eventListeners.onMove&&e.eventListeners.onMove.flush();let{draggingElement:r,resizingElement:n,multiElement:i,activeTool:a,isResizing:l,isRotating:s}=this.state;this.setState(f=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:i||ce(this.state.editingElement)?this.state.editingElement:null,snapLines:pc(f.snapLines,[]),originSnapOffset:null})),Wo.setReferenceSnapPoints(null),Wo.setVisibleGaps(null),this.savePointer(o.clientX,o.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let d=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!e.boxSelection.hasOccurred&&e.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(Oo);else{let f=ue.handlePointerUp(o,this.state.editingLinearElement,this.state,this);f!==this.state.editingLinearElement&&this.setState({editingLinearElement:f,suggestedBindings:[]})}else if(this.state.selectedLinearElement)if(e.hit?.element?.id!==this.state.selectedLinearElement.elementId)this.scene.getSelectedElements(this.state).length>1&&this.setState({selectedLinearElement:null});else{let f=ue.handlePointerUp(o,this.state.selectedLinearElement,this.state,this),{startBindingElement:b,endBindingElement:x}=f,y=this.scene.getElement(f.elementId);Pr(y)&&gc(y,b,x,d),f!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...f,selectedPointsIndices:null},suggestedBindings:[]})}if(this.missingPointerEventCleanupEmitter.clear(),window.removeEventListener("pointermove",e.eventListeners.onMove),window.removeEventListener("pointerup",e.eventListeners.onUp),window.removeEventListener("keydown",e.eventListeners.onKeyDown),window.removeEventListener("keyup",e.eventListeners.onKeyUp),this.state.pendingImageElementId&&this.setState({pendingImageElementId:null}),this.props?.onPointerUp?.(a,e),this.onPointerUpEmitter.trigger(this.state.activeTool,e,o),r?.type==="freedraw"){let f=Ye(o,this.state),b=r.points,x=f.x-r.x,y=f.y-r.y;x===b[0][0]&&y===b[0][1]&&(y+=1e-4,x+=1e-4);let T=r.simulatePressure?[]:[...r.pressures,o.pressure];re(r,{points:[...b,[x,y]],pressures:T,lastCommittedPoint:[x,y]}),this.actionManager.executeAction(Oo);return}if(dn(r)){let f=r;try{this.initializeImageDimensions(f),this.setState({selectedElementIds:ze({[f.id]:!0},this.state)},()=>{this.actionManager.executeAction(Oo)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(x=>x.id!==f.id)),this.actionManager.executeAction(Oo)}return}if(_e(r)){r.points.length>1&&this.store.shouldCaptureIncrement();let f=Ye(o,this.state);!e.drag.hasOccurred&&r&&!i?(re(r,{points:[...r.points,[f.x-r.x,f.y-r.y]]}),this.setState({multiElement:r,editingElement:this.state.draggingElement})):e.drag.hasOccurred&&!i&&(qn(this.state)&&Pr(r,!1)&&Sl(r,this.state,f,this),this.setState({suggestedBindings:[],startBoundElement:null}),a.locked?this.setState(b=>({draggingElement:null})):(Mo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:it(this.state,{type:"selection"}),selectedElementIds:ze({...b.selectedElementIds,[r.id]:!0},b),selectedLinearElement:new ue(r)}))));return}if(a.type!=="selection"&&r&&ti(r)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==r.id),appState:{draggingElement:null},storeAction:P.UPDATE});return}if(r){if(e.drag.hasOccurred){let f=Ye(o,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let b=this.scene.getElement(this.state.selectedLinearElement.elementId);if(b?.frameId){let x=Uc(b,d);x&&b&&(w0(b,x,this.scene.getNonDeletedElementsMap())||(re(b,{groupIds:[]}),Gc([b],this.scene.getNonDeletedElementsMap()),this.scene.informMutation()))}}else{let b=this.getTopLayerFrameAtSceneCoords(f),x=this.scene.getSelectedElements(this.state),y=this.scene.getElementsMapIncludingDeleted(),T=C=>{if(C.length>0){for(let w of C){let A=w.groupIds.indexOf(this.state.editingGroupId);re(w,{groupIds:w.groupIds.slice(0,A)},!1)}y.forEach(w=>{w.groupIds.length&&ft(y,w.groupIds[w.groupIds.length-1]).length<2&&re(w,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let C=x.filter(w=>w.frameId!==b.id&&yu(w,y,this.state));this.state.editingGroupId&&T(C),y=Wc(y,C,b)}else if(!b&&this.state.editingGroupId){let C=x.filter(w=>w.frameId&&!yu(w,y,this.state));T(C)}y=hr(y,this.state,this),this.scene.replaceAllElements(y)}}if(ye(r)){let f=T0(this.scene.getElementsIncludingDeleted(),r,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(Wc(this.scene.getElementsMapIncludingDeleted(),f,r))}re(r,L0(r))}if(n&&this.store.shouldCaptureIncrement(),n&&ti(n)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==n.id),storeAction:P.UPDATE}),e.resize.isResizing){let f=hr(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(x=>ye(x));for(let x of b)f=Vc(f,Qi(this.scene.getElementsIncludingDeleted(),x,this.state,d),x,this);this.scene.replaceAllElements(f)}let c=e.hit.element;this.state.selectedLinearElement?.elementId!==c?.id&&_e(c)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new ue(c)});let m=this.lastPointerDownEvent,u=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(Ao(this.state)&&m&&u){if(this.eraserTrail.endPath(),un(m.clientX,m.clientY,u.clientX,u.clientY)===0){let b=Ye({clientX:u.clientX,clientY:u.clientY},this.state);this.getElementsAtPosition(b.x,b.y).forEach(y=>this.elementsPendingErasure.add(y.id))}this.eraseElements();return}else this.elementsPendingErasure.size&&this.restoreReadyToEraseElements();if(c&&!e.drag.hasOccurred&&!e.hit.wasAddedToSelection&&(!this.state.editingLinearElement||!e.boxSelection.hasOccurred)&&(o.shiftKey&&!this.state.editingLinearElement?this.state.selectedElementIds[c.id]?Tc(this.state,c)?this.setState(f=>{let b={...f.selectedElementIds};for(let x of c.groupIds.flatMap(y=>ft(this.scene.getNonDeletedElements(),y)))delete b[x.id];return{selectedGroupIds:{...f.selectedElementIds,...c.groupIds.map(x=>({[x]:!1})).reduce((x,y)=>({...x,...y}),{})},selectedElementIds:ze(b,f)}}):this.state.selectedLinearElement?.isDragging||this.setState(f=>{let b={...f.selectedElementIds};delete b[c.id];let x=we(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:x.length===1&&_e(x[0])?new ue(x[0]):f.selectedLinearElement}}):c.frameId&&this.state.selectedElementIds[c.frameId]?this.setState(f=>{let b={...f.selectedElementIds,[c.id]:!0};return delete b[c.frameId],(this.scene.getElement(c.frameId)?.groupIds??[]).flatMap(x=>ft(this.scene.getNonDeletedElements(),x)).forEach(x=>{delete b[x.id]}),{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),showHyperlinkPopup:c.link||Ht(c)?"info":!1}}):this.setState(f=>({selectedElementIds:ze({...f.selectedElementIds,[c.id]:!0},f)})):this.setState(f=>({...Nt({editingGroupId:f.editingGroupId,selectedElementIds:{[c.id]:!0}},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:_e(c)&&f.selectedLinearElement?.elementId!==c.id?new ue(c):f.selectedLinearElement}))),!e.drag.hasOccurred&&!this.state.isResizing&&(c&&l0({x:e.origin.x,y:e.origin.y,element:c,shape:this.getElementShape(c),threshold:this.getElementHitThreshold(),frameNameBound:ye(c)?this.frameNameBoundsCache.get(c):null},d)||!c&&e.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),Fe(this.interactiveCanvas,Oe.AUTO);return}if(!a.locked&&a.type!=="freedraw"&&r&&r.type!=="selection"&&this.setState(f=>({selectedElementIds:ze({...f.selectedElementIds,[r.id]:!0},f),showHyperlinkPopup:Ht(r)&&!r.link?"editor":f.showHyperlinkPopup})),(a.type!=="selection"||Be(this.scene.getNonDeletedElements(),this.state)||!kt(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),e.drag.hasOccurred||l||s){let f=this.scene.getSelectedElements(this.state).filter(_e);Cl(f,this,qn(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[])}if(a.type==="laser"){this.laserTrails.endPath();return}!a.locked&&a.type!=="freedraw"?(Mo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:it(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),c&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&Re.pointers.size<=1&&zi(c)&&this.isIframeLikeElementCenter(c,this.lastPointerUpEvent,e.origin.x,e.origin.y)&&this.handleEmbeddableCenterClick(c)})}restoreReadyToEraseElements=()=>{this.elementsPendingErasure=new Set,this.onSceneUpdated()};eraseElements=()=>{let e=!1,o=this.scene.getElementsIncludingDeleted().map(r=>this.elementsPendingErasure.has(r.id)||r.frameId&&this.elementsPendingErasure.has(r.frameId)||xt(r)&&this.elementsPendingErasure.has(r.containerId)?(e=!0,he(r,{isDeleted:!0})):r);this.elementsPendingErasure=new Set,e&&(this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(o))};initializeImage=async({imageFile:e,imageElement:o,showCursorImagePreview:r=!1})=>{if(!Dc(e))throw new Error(g("errors.unsupportedFileType"));let n=e.type;if(Fe(this.interactiveCanvas,"wait"),n===Dt.svg)try{e=pu(await Qb(await e.text()),e.name)}catch(d){throw console.warn(d),new Error(g("errors.svgImageInsertError"))}let i=await(this.props.generateIdForFile?.(e)||Gb(e));if(!i)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(g("errors.imageInsertError"));if(!this.files[i]?.dataURL){try{e=await Ll(e,{maxWidthOrHeight:P1})}catch(d){console.error("Error trying to resizing image file on insertion",d)}if(e.size>Wp)throw new Error(g("errors.fileTooBig",{maxSize:`${Math.trunc(Wp/1024/1024)}MB`}))}if(r){let d=this.files[i]?.dataURL,c=d&&Vb(d);this.setImagePreviewCursor(c||e)}let l=this.files[i]?.dataURL||await Oc(e),s=re(o,{fileId:i},!1);return new Promise(async(d,c)=>{try{this.files={...this.files,[i]:{mimeType:n,id:i,dataURL:l,created:Date.now(),lastRetrieved:Date.now()}};let m=this.imageCache.get(i);m||(this.addNewImagesToImageCache(),await this.updateImageCache([s])),m?.image instanceof Promise&&await m.image,this.state.pendingImageElementId!==s.id&&this.state.draggingElement?.id!==s.id&&this.initializeImageDimensions(s,!0),d(s)}catch(m){console.error(m),c(new Error(g("errors.imageInsertError")))}finally{r||Mo(this.interactiveCanvas)}})};insertImageElement=async(e,o,r)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}this.scene.insertElement(e);try{return await this.initializeImage({imageFile:o,imageElement:e,showCursorImagePreview:r})}catch(n){return re(e,{isDeleted:!0}),this.actionManager.executeAction(Oo),this.setState({errorMessage:n.message||g("errors.imageInsertError")}),null}};setImagePreviewCursor=async e=>{let r;try{r=await Ll(e,{maxWidthOrHeight:96})}catch(i){throw i.cause==="UNSUPPORTED"?new Error(g("errors.unsupportedFileType")):i}let n=await Oc(r);if(e.type===Dt.svg){let i=await Xb(n),a=Math.min(i.height,96),l=a*(i.width/i.height);l>96&&(l=96,a=l*(i.height/i.width));let s=document.createElement("canvas");s.height=a,s.width=l,s.getContext("2d").drawImage(i,0,0,l,a),n=s.toDataURL(Dt.svg)}this.state.pendingImageElementId&&Fe(this.interactiveCanvas,`url(${n}) 4 4, auto`)};onImageAction=async({insertOnCanvasDirectly:e})=>{try{let o=this.state.width/2+this.state.offsetLeft,r=this.state.height/2+this.state.offsetTop,{x:n,y:i}=Ye({clientX:o,clientY:r},this.state),a=await Pc({description:"Image",extensions:Object.keys(x1)}),l=this.createImageElement({sceneX:n,sceneY:i,addToFrameUnderCursor:!1});e?(this.insertImageElement(l,a),this.initializeImageDimensions(l),this.setState({selectedElementIds:ze({[l.id]:!0},this.state)},()=>{this.actionManager.executeAction(Oo)})):this.setState({pendingImageElementId:l.id},()=>{this.insertImageElement(l,a,!0)})}catch(o){o.name!=="AbortError"?console.error(o):console.warn(o),this.setState({pendingImageElementId:null,editingElement:null,activeTool:it(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(Oo)})}};initializeImageDimensions=(e,o=!1)=>{let r=bl(e)&&this.imageCache.get(e.fileId)?.image;if(!r||r instanceof Promise){if(e.width<Gn/this.state.zoom.value&&e.height<Gn/this.state.zoom.value){let n=100/this.state.zoom.value;re(e,{x:e.x-n/2,y:e.y-n/2,width:n,height:n})}return}if(o||e.width<Gn/this.state.zoom.value&&e.height<Gn/this.state.zoom.value){let n=Math.max(this.state.height-120,160),i=Math.min(n,Math.floor(this.state.height*.5)/this.state.zoom.value),a=Math.min(r.naturalHeight,i),l=a*(r.naturalWidth/r.naturalHeight),s=e.x+e.width/2-l/2,d=e.y+e.height/2-a/2;re(e,{x:s,y:d,width:l,height:a})}};updateImageCache=async(e,o=this.files)=>{let{updatedFiles:r,erroredFiles:n}=await qb({imageCache:this.imageCache,fileIds:e.map(i=>i.fileId),files:o});if(r.size||n.size)for(let i of e)r.has(i.fileId)&&Lo.delete(i);return n.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(i=>bl(i)&&n.has(i.fileId)?he(i,{status:"error"}):i)),{updatedFiles:r,erroredFiles:n}};addNewImagesToImageCache=async(e=Jb(this.scene.getNonDeletedElements()),o=this.files)=>{let r=e.filter(n=>!n.isDeleted&&!this.imageCache.has(n.fileId));if(r.length){let{updatedFiles:n}=await this.updateImageCache(r,o);n.size&&this.scene.informMutation()}};scheduleImageRefresh=(0,p6.default)(()=>{this.addNewImagesToImageCache()},E1);updateBindingEnabledOnPointerMove=e=>{let o=sb(e);this.state.isBindingEnabled!==o&&this.setState({isBindingEnabled:o})};maybeSuggestBindingAtCursor=e=>{let o=Tl(e,this);this.setState({suggestedBindings:o!=null?[o]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(e,o,r)=>{if(!o.length)return;let n=o.reduce((i,a)=>{let l=Tl(a,this);return l!=null&&!cb(e,r?.id,l)&&i.push(l),i},[]);this.setState({suggestedBindings:n})};clearSelection(e){this.setState(o=>({selectedElementIds:ze({},o),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:o.editingGroupId&&e!=null&&Yi(e,o.editingGroupId)?o.editingGroupId:null})),this.setState({selectedElementIds:ze({},this.state),activeEmbeddable:null,previousSelectedElementIds:this.state.selectedElementIds})}handleInteractiveCanvasRef=e=>{e!==null?(this.interactiveCanvas=e,this.interactiveCanvas.addEventListener("wheel",this.handleWheel),this.interactiveCanvas.addEventListener("touchstart",this.onTouchStart),this.interactiveCanvas.addEventListener("touchend",this.onTouchEnd)):(this.interactiveCanvas?.removeEventListener("wheel",this.handleWheel),this.interactiveCanvas?.removeEventListener("touchstart",this.onTouchStart),this.interactiveCanvas?.removeEventListener("touchend",this.onTouchEnd))};handleAppOnDrop=async e=>{let{file:o,fileHandle:r}=await Yb(e),{x:n,y:i}=Ye(e,this.state);try{if(Dc(o)&&this.isToolSupported("image")){if(o?.type===Dt.png||o?.type===Dt.svg)try{let s=await Nc(o,this.state,this.scene.getElementsIncludingDeleted(),r);this.syncActionResult({...s,appState:{...s.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:P.CAPTURE});return}catch(s){if(s.name!=="EncodingError")throw new Error(g("alerts.couldNotLoadInvalidFile"))}let l=this.createImageElement({sceneX:n,sceneY:i});this.insertImageElement(l,o),this.initializeImageDimensions(l),this.setState({selectedElementIds:ze({[l.id]:!0},this.state)});return}}catch(l){return this.setState({isLoading:!1,errorMessage:l.message})}let a=e.dataTransfer.getData(Dt.excalidrawlib);if(a&&typeof a=="string"){try{let l=Wb(a);this.addElementsFromPasteOrLibrary({elements:gm(l),position:e,files:null})}catch(l){this.setState({errorMessage:l.message})}return}if(o&&await this.loadFileToCanvas(o,r),e.dataTransfer?.types?.includes("text/plain")){let l=e.dataTransfer?.getData("text");if(l&&Zi(l,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(l)||Qn(l)?.type==="video")){let s=this.insertEmbeddableElement({sceneX:n,sceneY:i,link:zr(l)});s&&this.setState({selectedElementIds:{[s.id]:!0}})}}};loadFileToCanvas=async(e,o)=>{e=await Zb(e);try{let r=this.scene.getElementsIncludingDeleted(),n;try{n=await du(e,this.state,r,o)}catch(i){let a=i instanceof rb;if(a&&i.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:g("errors.imageToolNotSupported")});return}let l=a?g("alerts.cannotRestoreFromImage"):g("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:l})}if(!n)return;n.type===Dt.excalidraw?(pn(r.concat(n.data.elements)),this.store.updateSnapshot(pe(r),this.state),this.setState({isLoading:!0}),this.syncActionResult({...n.data,appState:{...n.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:P.CAPTURE})):n.type===Dt.excalidrawlib&&await this.library.updateLibrary({libraryItems:e,merge:!0,openLibraryMenu:!0}).catch(i=>{console.error(i),this.setState({errorMessage:g("errors.importLibraryError")})})}catch(r){this.setState({isLoading:!1,errorMessage:r.message})}};handleCanvasContextMenu=e=>{if(e.preventDefault(),("pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="touch"||"pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="pen"&&e.button!==an.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:o,y:r}=Ye(e,this.state),n=this.getElementAtPosition(o,r,{preferSelected:!0,includeLockedElements:!0}),i=this.scene.getSelectedElements(this.state),a=this.isHittingCommonBoundingBoxOfSelectedElements({x:o,y:r},i),l=n||a?"element":"canvas",s=this.excalidrawContainerRef.current,{top:d,left:c}=s.getBoundingClientRect(),m=e.clientX-c,u=e.clientY-d;xe("contextMenu","openContextMenu",l),this.setState({...n&&!this.state.selectedElementIds[n.id]?{...this.state,...Nt({editingGroupId:this.state.editingGroupId,selectedElementIds:{[n.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:_e(n)?new ue(n):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:u,left:m,items:this.getContextMenuItems(l)}})})};maybeDragNewGenericElement=(e,o)=>{let r=this.state.draggingElement,n=e.lastCoords;if(r)if(r.type==="selection"&&this.state.activeTool.type!=="eraser")ku(r,this.state.activeTool.type,e.origin.x,e.origin.y,n.x,n.y,Zn(e.origin.x,n.x),Zn(e.origin.y,n.y),Gi(o),fc(o));else{let[i,a]=eo(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),l=bl(r)&&this.imageCache.get(r.fileId)?.image,s=l&&!(l instanceof Promise)?l.width/l.height:null;this.maybeCacheReferenceSnapPoints(o,[r]);let{snapOffset:d,snapLines:c}=B5(r,this.state,o,{x:e.originInGrid.x+(this.state.originSnapOffset?.x??0),y:e.originInGrid.y+(this.state.originSnapOffset?.y??0)},{x:i-e.originInGrid.x,y:a-e.originInGrid.y},this.scene.getNonDeletedElementsMap());i+=d.x,a+=d.y,this.setState({snapLines:c}),ku(r,this.state.activeTool.type,e.originInGrid.x,e.originInGrid.y,i,a,Zn(e.originInGrid.x,i),Zn(e.originInGrid.y,a),dn(r)?!Gi(o):Gi(o),fc(o),s,this.state.originSnapOffset),(this.state.activeTool.type===ut.frame||this.state.activeTool.type===ut.magicframe)&&this.setState({elementsToHighlight:Qi(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(e,o)=>{let r=this.scene.getSelectedElements(this.state),n=r.filter(c=>ye(c)),i=e.resize.handleType;if(n.length>0&&i==="rotation")return!1;this.setState({isResizing:i&&i!=="rotation",isRotating:i==="rotation",activeEmbeddable:null});let a=e.lastCoords,[l,s]=eo(a.x-e.resize.offset.x,a.y-e.resize.offset.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),d=new Map;if(n.forEach(c=>{bn(this.scene.getNonDeletedElements(),c.id).forEach(u=>{d.set(c.id+u.id,{x:u.x-c.x,y:u.y-c.y})})}),!this.state.selectedElementsAreBeingDragged){let[c,m]=eo(a.x,a.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),u={x:c-e.originInGrid.x,y:m-e.originInGrid.y},f=[...e.originalElements.values()];this.maybeCacheReferenceSnapPoints(o,r);let{snapOffset:b,snapLines:x}=F5(r,we(f,this.state),this.state,o,u,i);l+=b.x,s+=b.y,this.setState({snapLines:x})}if(D0(e.originalElements,i,r,this.scene.getElementsMapIncludingDeleted(),hc(o),fc(o),r.some(c=>dn(c))?!Gi(o):Gi(o),l,s,e.resize.center.x,e.resize.center.y)){let c=bc(r,this),m=new Set;return n.forEach(u=>{Qi(this.scene.getNonDeletedElements(),u,this.state,this.scene.getNonDeletedElementsMap()).forEach(f=>m.add(f))}),this.setState({elementsToHighlight:[...m],suggestedBindings:c}),!0}return!1};getContextMenuItems=e=>{let o=[];return o.push(am,im),e==="canvas"?this.state.viewModeEnabled?[...o,sm,Fa,Tg,Mn]:[fh,io,am,im,lm,io,cf,RE,io,sm,hh,Fa,Tg,Mn]:(o.push(lm),this.state.viewModeEnabled?[Oa,...o]:[nm,Oa,fh,A5,M5,io,...o,io,rh,nh,io,ah,gh,bh,kE,lh,io,dh,io,nf,af,lf,sf,io,ph,uh,io,Gh,cs,df,Ch,io,Gl])};handleWheel=Qe(e=>{if(e.preventDefault(),zs)return;let{deltaX:o,deltaY:r}=e;if(e.metaKey||e.ctrlKey){let n=Math.sign(r),i=Kn*100,a=Math.abs(r),l=r;a>i&&(l=i*n);let s=this.state.zoom.value-l/100;s+=Math.log10(Math.max(1,this.state.zoom.value))*-n*Math.min(1,a/20),this.translateCanvas(d=>({...Ur({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Hr(s)},d),shouldCacheIgnoreZoom:!0})),this.resetShouldCacheIgnoreZoomDebounced();return}if(e.shiftKey){this.translateCanvas(({zoom:n,scrollX:i})=>({scrollX:i-(r||o)/n.value}));return}this.translateCanvas(({zoom:n,scrollX:i,scrollY:a})=>({scrollX:i-o/n.value,scrollY:a-r/n.value}))});getTextWysiwygSnappedToCenterPosition(e,o,r,n){if(n){let i=n.x+n.width/2,a=n.y+n.height/2,l=Cc(n,r,this.scene.getNonDeletedElementsMap());if(l&&(i=l.x,a=l.y),Math.hypot(e-i,o-a)<u1){let{x:c,y:m}=Qt({sceneX:i,sceneY:a},r);return{viewportX:c,viewportY:m,elementCenterX:i,elementCenterY:a}}}}savePointer=(e,o,r)=>{if(!e||!o)return;let{x:n,y:i}=Ye({clientX:e,clientY:o},this.state);isNaN(n)||isNaN(i);let a={x:n,y:i,tool:this.state.activeTool.type==="laser"?"laser":"pointer"};this.props.onPointerUpdate?.({pointer:a,button:r,pointersMap:Re.pointers})};resetShouldCacheIgnoreZoomDebounced=pl(()=>{this.unmounted||this.setState({shouldCacheIgnoreZoom:!1})},300);updateDOMRect=e=>{if(this.excalidrawContainerRef?.current){let o=this.excalidrawContainerRef.current,{width:r,height:n,left:i,top:a}=o.getBoundingClientRect(),{width:l,height:s,offsetTop:d,offsetLeft:c}=this.state;if(r===l&&n===s&&i===c&&a===d){e&&e();return}this.setState({width:r,height:n,offsetLeft:i,offsetTop:a},()=>{e&&e()})}};refresh=()=>{this.setState({...this.getCanvasOffsets()})};getCanvasOffsets(){if(this.excalidrawContainerRef?.current){let e=this.excalidrawContainerRef.current,{left:o,top:r}=e.getBoundingClientRect();return{offsetLeft:o,offsetTop:r}}return{offsetLeft:0,offsetTop:0}}async updateLanguage(){let e=na.find(o=>o.code===this.props.langCode)||gr;await rd(e),this.setAppState({})}},DI=()=>{(E.MODE===Bp.TEST||E.DEV)&&(window.h=window.h||{},Object.defineProperties(window.h,{elements:{configurable:!0,get(){return this.app?.scene.getElementsIncludingDeleted()},set(t){return this.app?.scene.replaceAllElements(pn(t))}}}))};DI();var g6=$g;h();var NI=()=>{Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(t){if(t=Math.trunc(t)||0,t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]},writable:!0,enumerable:!1,configurable:!0}),Element.prototype.replaceChildren||(Element.prototype.replaceChildren=function(...t){this.innerHTML="",this.append(...t)})},b6=NI;h();var Yg=v(k(),1),x6=({children:t})=>{let{FooterCenterTunnel:e}=Ve(),o=Le();return(0,Yg.jsx)(e.In,{children:(0,Yg.jsx)("div",{className:$("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":o.zenModeEnabled}),children:t})})},OI=x6;x6.displayName="FooterCenter";h();h();h();var Vo=v(k(),1),FI=()=>(0,Vo.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,Vo.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),BI=()=>(0,Vo.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,Vo.jsx)("path",{d:"M429.27 96.74c2.47-1.39 4.78-3.02 6.83-4.95 1.43-1.35 2.73-2.86 3.81-4.51-.66.9-1.4 1.77-2.23 2.59-2.91 2.84-5.72 5.09-8.42 6.87h.01ZM343.6 69.36c.33 3.13.58 6.27.79 9.4.09 1.37.18 2.75.25 4.12-.12-4.46-.27-8.93-.5-13.39-.11-2.08-.24-4.16-.4-6.24-.06 1.79-.11 3.85-.13 6.11h-.01ZM378.47 98.34c.01-.37.07-1.13.01-6.51-.11 1.9-.22 3.81-.31 5.71-.07 1.42-.22 2.91-.16 4.35.39.03.78.07 1.17.1-.92-.85-.76-2.01-.72-3.66l.01.01ZM344.09 86.12c-.09-2.41-.22-4.83-.39-7.24v12.21c.15-.05.32-.09.47-.14.05-1.61-.03-3.23-.09-4.83h.01ZM440.69 66.79c-.22-.34-.45-.67-.69-.99-3.71-4.87-9.91-7.14-15.65-8.55-1.05-.26-2.12-.49-3.18-.71 2.29.59 4.48 1.26 6.64 2.02 7.19 2.54 10.57 5.41 12.88 8.23ZM305.09 72.46l1.2 3.6c.84 2.53 1.67 5.06 2.46 7.61.24.78.5 1.57.73 2.36.22-.04.44-.08.67-.12a776.9 776.9 0 0 1-5.01-13.57c-.02.04-.03.09-.05.13v-.01ZM345.49 90.25v.31c1.48-.42 3.05-.83 4.66-1.2-1.56.25-3.12.52-4.66.89ZM371.02 90.22c0-.57-.04-1.14-.11-1.71-.06-.02-.12-.04-.19-.05-.21-.05-.43-.08-.65-.11.42.16.74.88.95 1.87ZM398.93 54.23c-.13 0-.27-.01-.4-.02l.03.4c.11-.15.23-.27.37-.38ZM401.57 62.28v-.15c-1.22-.24-2.86-.61-3.23-1.25-.09-.15-.18-.51-.27-.98-.09.37-.2.73-.33 1.09 1.24.56 2.52.98 3.83 1.29ZM421.73 88.68c-2.97 1.65-6.28 3.12-9.69 3.68v.18c4.72-.14 11.63-3.85 16.33-8.38-2.04 1.75-4.33 3.24-6.63 4.53l-.01-.01ZM411.28 80.92c-.05-1.2-.09-2.4-.15-3.6-.21 5.66-.46 11.38-.47 14.51.24-.02.48-.04.71-.07.15-3.61.05-7.23-.09-10.83v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,Vo.jsx)("path",{d:"M425.38 67.41c-3.5-1.45-7.19-2.57-14.06-3.62.09 1.97.06 4.88-.03 8.12.03.04.06.09.06.15.19 1.36.28 2.73.37 4.1.25 3.77.39 7.55.41 11.33 0 1.38-.01 2.76-.07 4.13 1.4-.25 2.78-.65 4.12-1.15 4.07-1.5 7.94-3.78 11.28-6.54 2.33-1.92 5.13-4.49 5.88-7.58.63-3.53-2.45-6.68-7.97-8.96l.01.02ZM411.35 92.53v-.06l-.34.03c.11.01.22.03.34.03ZM314.26 64.06c-.23-.59-.47-1.17-.7-1.75.57 1.62 1.11 3.25 1.6 4.9l.15.54 2.35 6.05c.32.82.66 1.64.98 2.46-1.38-4.1-2.83-8.17-4.39-12.2h.01ZM156.82 103.07c-.18.13-.38.23-.58.33 1.32-.03 2.66-.2 3.93-.34.86-.09 1.72-.22 2.58-.33-2.12.1-4.12.17-5.94.34h.01ZM210.14 68.88s.03.04.05.07c.18-.31.39-.64.58-.96-.21.3-.42.6-.64.89h.01ZM201.65 82.8c-.5.77-1.02 1.56-1.49 2.37 1.11-1.55 2.21-3.1 3.2-4.59-.23.23-.49.51-.75.79-.32.47-.65.95-.96 1.43ZM194.03 98.66c-.33-.4-.65-.84-1.05-1.17-.24-.2-.07-.49.17-.56-.23-.26-.42-.5-.63-.75 1.51-2.55 3.93-5.87 6.4-9.28-.17-.08-.29-.28-.2-.49.04-.09.09-.17.13-.26-1.21 1.78-2.42 3.55-3.61 5.33-.87 1.31-1.74 2.64-2.54 4-.29.5-.63 1.04-.87 1.61.81.65 1.63 1.27 2.47 1.88-.09-.11-.18-.21-.27-.32v.01ZM307.79 82.93c-1-3.17-2.05-6.32-3.1-9.48-1.62 4.08-3.69 9.17-6.16 15.19 3.32-1.04 6.77-1.87 10.27-2.5-.32-1.08-.67-2.15-1.01-3.21ZM149.5 80.7c.05-1.71.04-3.43 0-5.14-.1 2.26-.16 4.51-.22 6.77-.02.73-.03 1.46-.04 2.19.14-1.27.2-2.55.24-3.82h.02ZM228.98 98.3c.39 1.25.91 3.03.94 3.91.06-.03.12-.07.17-.1.08-1.29-.55-2.65-1.11-3.81ZM307.72 53.36c.81.5 1.53 1.04 2.07 1.49-.38-.8-.78-1.58-1.21-2.35-.17.03-.34.06-.51.11-.43.12-.86.26-1.29.41.35-.01.53.1.94.34ZM283.69 96.14c3.91-7.25 6.89-13.35 8.88-18.15l1.1-2.66c-1.27 2.64-2.56 5.27-3.83 7.9-1.53 3.15-3.06 6.31-4.58 9.47-.87 1.81-1.76 3.62-2.54 5.47.04.02.07.04.11.07.05.05.1.09.15.14.05-.73.27-1.48.71-2.24ZM289.92 103.23s-.04.01-.05.03c0-.02.04-.03.05-.04.05-.05.11-.1.16-.15l.21-.21c-.55 0-1.5-.27-2.55-.72.4.26.8.51 1.22.74.24.13.48.26.73.37.05.02.1.03.14.05a.27.27 0 0 1 .08-.07h.01ZM269.23 68.49c-.39-.19-.82-.48-1.33-.87-3.06-1.56-6.31-2.78-9.36-2.35-3.5.49-5.7 1.11-7.74 2.44 5.71-2.6 12.82-2.07 18.44.79l-.01-.01ZM177.87 53.69l1.06.03c-.96-.22-2-.25-2.89-.3-4.95-.26-9.99.33-14.86 1.19-2.44.43-4.88.95-7.28 1.59 9.09-1.76 15.69-2.77 23.97-2.51ZM219.85 55.51c-.18.12-.36.27-.56.45-.45.53-.86 1.11-1.26 1.66-1.91 2.61-3.71 5.31-5.57 7.95l-.12.18 8.05-10.11c-.18-.05-.36-.1-.55-.13h.01ZM510.71 54.1c.12-.15.29-.3.53-.45.69-.4 3.72-.63 5.87-.74-.36-.02-.73-.04-1.09-.05-1.84-.03-3.67.09-5.49.35.05.3.12.59.18.88v.01ZM510.76 86.02c1.37-3.07 2.49-6.27 3.57-9.46.55-1.64 1.12-3.3 1.6-4.97-1.59 4.01-3.67 9.14-6.2 15.3.24-.08.5-.14.74-.22.1-.22.19-.44.29-.65ZM566.95 75.76c.11-.02.23.03.31.11-.05-.13-.09-.26-.14-.39-.05.09-.11.18-.17.28ZM511.33 86.41c3.08-.89 6.24-1.62 9.46-2.14-1.51-3.98-2.98-7.96-4.39-11.87-.05.15-.09.31-.14.46-1.02 3.32-2.15 6.61-3.39 9.85-.48 1.25-.98 2.49-1.53 3.7h-.01ZM578.24 74.45c.11-.44.23-.87.35-1.31-.31.7-.64 1.39-.97 2.08.09.21.19.4.28.61.12-.46.23-.92.35-1.38h-.01ZM520.62 53.11c-.09 0-.18-.01-.28-.02.38.34.29 1.08.93 2.53l6.65 17.15c2.2 5.68 4.69 11.36 7.41 16.87l1.06 2.17c-2.95-7.05-5.92-14.08-8.87-21.13-1.58-3.79-3.16-7.59-4.7-11.4-.78-1.92-1.73-3.89-2.25-5.91-.03-.1 0-.19.04-.26h.01ZM578.78 77.87c1.45-5.77 3.07-10.43 3.58-13.36.05-.34.16-.88.31-1.55-.67 1.79-1.37 3.56-2.08 5.33-.12.43-.23.86-.35 1.29-.65 2.43-1.29 4.86-1.9 7.3.14.33.29.65.43 1l.01-.01ZM545.3 94.66c.02-.44.03-.83.05-1.12.02-1.01.05-2.02.11-3.02.03-6.66-.46-14.33-1.46-22.8-.13-.42-.27-1.24-.56-2.89 0-.02 0-.04-.01-.06.62 6.61.95 13.25 1.32 19.87.17 3.08.33 6.16.52 9.23.02.25.03.52.04.78l-.01.01ZM580.77 102.81c.13.2.27.38.37.49.27-.11.53-.22.8-.32-.43.09-.82.05-1.17-.16v-.01ZM530.48 104.07h.33c-.36-.13-.71-.32-1.04-.56.14.24.3.47.45.7.06-.08.14-.13.26-.13v-.01ZM542.63 58.82c.06.23.11.47.15.71.14-.33.36-.62.7-.86-.28.05-.57.11-.85.15ZM583.81 57.87c.15-.7.29-1.41.42-2.11-.14.45-.28.9-.42 1.34-.46 1.44-.89 2.89-1.31 4.34.44-1.19.88-2.37 1.31-3.57ZM523.62 91.48c-4.66 1.17-9.05 2.89-14.02 5.27 4.65-1.84 9.48-3.29 14.28-4.63-.09-.22-.17-.41-.26-.64ZM460.64 78.3c-.04-2.9-.11-5.81-.28-8.71-.1-1.68-.17-3.43-.5-5.09-.07.02-.14.03-.2.05.3 6.54.45 12.17.51 17.12.17-.07.34-.14.51-.2 0-1.06-.01-2.11-.03-3.17h-.01ZM470.63 63.24c-3.38-.26-6.81.32-10.1 1.1.41 2.01.47 4.14.57 6.18.18 3.55.25 7.11.27 10.67 3.31-1.38 6.5-3.12 9.3-5.35 1.96-1.56 3.86-3.41 5.02-5.66.73-1.41 1.19-3.22.26-4.65-1.09-1.7-3.46-2.14-5.32-2.29ZM460.29 63.68c1-.24 2.01-.46 3.04-.65-1.15.16-2.37.38-3.71.69v.13c.07-.02.15-.04.22-.05.11-.13.3-.18.45-.11v-.01ZM457.24 100.96c.43-.03.86-.07 1.29-.11.14-.49.27-.99.38-1.49-.44.7-1 1.23-1.67 1.6ZM482.88 104.98c-.18.23-.36.38-.55.47.14.09.27.19.4.28a70.76 70.76 0 0 0 4.37-4.63c.76-.89 1.52-1.81 2.19-2.77-.3-.27-.61-.53-.92-.79-.07 1.94-4.62 6.32-5.49 7.45v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,Vo.jsx)("path",{d:"M474.36 63.31c-.4-.16-.84-.27-1.29-.37 1.56.42 3.08 1.22 3.76 2.74.62 1.4.32 2.95-.28 4.32.7-1.22.94-2.34.74-3.47-.24-1.33-1.19-2.54-2.93-3.21v-.01ZM477.34 89.18c-1.2-.81-2.4-1.62-3.6-2.42-.14.1-.26.19-.4.29 1.4.67 2.73 1.39 4 2.13ZM465.88 93.85c.37.25.74.5 1.1.75.46.32.92.65 1.38.97-1.57-1.2-2.01-1.61-2.49-1.72h.01ZM574.92 90.06c-2.28-5.21-4.93-11.13-5.67-12.26-.1-.15-1.57-3.01-1.63-3.08 0 0-.01.02-.02.02.4 1.37 1.09 2.69 1.65 3.99 2.14 4.95 4.36 9.86 6.67 14.73.6 1.26 1.21 2.52 1.83 3.78-.75-2.01-1.64-4.45-2.83-7.18ZM448.73 65.29c.1.2.22.38.34.57.22-.02.43-.06.65-.08v-.08c-.14-.05-.25 0-.99-.41ZM460.16 94.81c-.02.31-.06.59-.1.89-.03 1.71-.33 3.43-.79 5.07.15-.02.3-.03.45-.05.01-.04.02-.08.03-.11.09-.34.15-.69.2-1.03.17-1.07.25-2.16.33-3.24.05-.69.08-1.39.12-2.08-.27.1-.27.26-.24.57v-.02Z",transform:"translate(-144.023 -51.76)"}),(0,Vo.jsx)("path",{d:"m328.67 98.12-3.22-6.58c-1.29-2.63-2.53-5.29-3.72-7.97-.25-.85-.52-1.69-.79-2.53-.81-2.57-1.67-5.12-2.55-7.67-1.92-5.53-3.9-11.08-6.32-16.41-.72-1.58-1.46-3.44-2.63-4.79-.03-.17-.16-.29-.34-.36a.282.282 0 0 0-.23-.04c-.06-.01-.12 0-.18.01-.74.06-1.5.38-2.19.61-2.22.77-4.4 1.64-6.63 2.38-.03-.08-.06-.16-.09-.25-.15-.42-.82-.24-.67.19.03.09.07.19.1.28l-.18.06c-.36.11-.28.6 0 .68.18 1.18.63 2.36.98 3.49.03.09.06.17.08.26-.08.23-.17.46-.24.64-.37.98-.79 1.94-1.21 2.9-1.27 2.89-2.62 5.75-3.98 8.6-3.18 6.67-6.44 13.31-9.64 19.97-1.08 2.25-2.2 4.5-3.15 6.81-.13.32.24.5.5.37 1.34 1.33 2.84 2.5 4.4 3.57.65.44 1.31.87 2.01 1.24.4.22.86.48 1.33.5.24.01.35-.19.33-.37.11-.1.21-.21.28-.28.41-.41.81-.84 1.2-1.26.85-.92 1.69-1.87 2.5-2.84 6.31-2.34 12.6-4.31 18.71-5.84 2.14 5.3 3.43 8.43 3.97 9.58.55 1.05 1.15 1.88 1.82 2.52 1.32.56 6.96-.03 9.23-1.96.87-1.28 1.19-2.67.93-4.15-.09-.5-.22-.95-.4-1.33l-.01-.03Zm-20.09-45.61c.43.77.83 1.56 1.21 2.35-.54-.45-1.27-.99-2.07-1.49-.42-.24-.6-.35-.94-.34.43-.15.85-.29 1.29-.41.17-.05.34-.08.51-.11Zm-25.86 45.66c.78-1.85 1.67-3.66 2.54-5.47 1.51-3.16 3.05-6.31 4.58-9.47 1.28-2.63 2.56-5.26 3.83-7.9l-1.1 2.66c-1.99 4.79-4.97 10.9-8.88 18.15-.43.76-.66 1.51-.71 2.24-.05-.05-.1-.09-.15-.14a.259.259 0 0 0-.11-.07Zm6.24 4.71c-.42-.23-.82-.48-1.22-.74 1.05.45 2 .72 2.55.72l-.21.21c-.05.05-.11.1-.16.15-.01.01-.04.03-.05.04 0-.02.03-.02.05-.03a.27.27 0 0 0-.08.07c-.05-.02-.1-.03-.14-.05-.25-.1-.49-.24-.73-.37h-.01Zm15.73-29.43c1.05 3.15 2.1 6.31 3.1 9.48.34 1.06.69 2.13 1.01 3.21-3.5.63-6.95 1.46-10.27 2.5 2.48-6.03 4.54-11.11 6.16-15.19Zm4.79 12.57c-.23-.79-.49-1.58-.73-2.36-.79-2.54-1.63-5.08-2.46-7.61l-1.2-3.6c.02-.04.04-.09.05-.13 1.6 4.45 3.28 9 5.01 13.57l-.67.12v.01Zm5.83-18.27-.15-.54c-.49-1.64-1.03-3.28-1.6-4.9.23.58.47 1.17.7 1.75 1.56 4.03 3.01 8.1 4.39 12.2-.33-.82-.67-1.64-.98-2.46l-2.35-6.05h-.01ZM390.43 79.37c-.13-10.43-.22-17.5-.24-19.97-.24-1.6.21-2.88-.65-3.65-.14-.13-.32-.23-.52-.32h.03c.45 0 .45-.69 0-.7-1.75-.03-3.5-.04-5.25-.14-1.38-.08-2.76-.21-4.15-.31-.07 0-.12.01-.17.04-.21-.07-.47.03-.45.31l.03.45c-.11.14-.19.3-.22.5-.21 1.26-.32 13.67-.36 23.59-.32 5.79-.67 11.57-.97 17.36-.09 1.73-.29 3.54-.21 5.3-.39.02-.38.64.04.69v.12c.05.44.74.45.7 0v-.06c1.1.09 2.2.21 3.3.3 1.14.19 2.44.2 3.29.17 1.73-.05 2.92-.05 3.8-.37.45-.05.9-.11 1.35-.17.44-.06.25-.73-.19-.67h-.01c.24-.32.45-.72.62-1.25.66-1.84.41-6.36.34-11.33l-.13-9.9.02.01Zm-12.26 18.17c.09-1.91.2-3.81.31-5.71.06 5.38 0 6.14-.01 6.51-.05 1.65-.21 2.81.72 3.66-.39-.04-.78-.07-1.17-.1-.06-1.44.09-2.93.16-4.35l-.01-.01ZM588.97 53.85c-2.06-.25-3.17-.51-3.76-.6a.3.3 0 0 1 .04-.08c.22-.39-.39-.75-.6-.35-.56 1.02-.9 2.19-1.26 3.29-.61 1.88-1.17 3.78-1.72 5.68-.63 2.19-1.24 4.39-1.83 6.59-.81 2.03-1.67 4.05-2.61 6.03-1.7-3.64-3.11-6.04-4.03-7.57-2.26-3.74-2.85-5.48-3.57-6.08l.31-.09c.43-.12.25-.8-.19-.67-1.06.3-2.12.6-3.17.95-.93.32-1.85.69-2.76 1.07-.13.05-.19.16-.22.27-.04.02-.08.05-.11.07-.04-.06-.07-.12-.11-.18a.354.354 0 0 0-.48-.12c-.16.09-.22.32-.13.48l.33.54c0 .09.02.18.06.28.51 1.16.78 1.38.72 1.47-2.42 3.44-5.41 7.86-6.2 9.1-1.27 1.97-2.01 3.14-2.45 3.84l-.91-6.56-.43-4.1c-.19-1.85-.37-3.23-.53-4.13-.19-1.1-.3-2.15-.45-3.16-.2-1.36-.29-2.06-.47-2.42h.04c.45.02.45-.68 0-.7-3.43-.16-6.81.94-10.17 1.48-.24-.22-.73-.04-.58.32.24.59.33 1.25.43 1.87.17 1.06.29 2.13.4 3.2.32 3.09.53 6.2.74 9.3.44 6.75.77 13.51 1.17 20.26.11 1.95.13 3.96.46 5.89.05.3.37.31.55.14.74 1.71 2.87 1.27 6.13 1.27 1.34 0 2.39.04 2.99-.11.02.32.48.53.63.18 3.61-8.26 7.41-16.46 12.05-24.2.03-.05.04-.1.05-.15.3.73.64 1.45.94 2.16.97 2.26 1.97 4.52 2.98 6.76 2.26 5.03 4.54 10.07 7.09 14.96.47.9.94 1.79 1.47 2.65.2.32.4.67.66.96-.18.25 0 .68.34.54.91-.38 1.82-.75 2.76-1.07 1.04-.35 2.11-.65 3.17-.95.39-.11.28-.66-.07-.68.62-.4.95-.96.87-1.91-.3-3.34.72-7.47.86-8.52l2.14-11.43c1.75-10.74 3.13-17.51 3.23-20.86.02-.49.08-2.84.13-3.24.17-1.25.48-1-4.96-1.65l.03-.02Zm-46.19 5.67c-.04-.24-.09-.48-.15-.71l.85-.15c-.34.24-.56.53-.7.86Zm1.95 25.12c-.36-6.63-.7-13.26-1.32-19.87 0 .02 0 .04.01.06.29 1.65.44 2.47.56 2.89 1 8.46 1.5 16.14 1.46 22.8-.06.99-.1 2-.11 3.02-.01.29-.03.68-.05 1.12-.01-.26-.03-.53-.04-.78-.19-3.08-.35-6.16-.52-9.23l.01-.01Zm36.4 18.66c-.11-.11-.24-.29-.37-.49.35.21.74.26 1.17.16-.27.11-.53.22-.8.32v.01Zm-.89-33.72c.12-.43.23-.86.35-1.29.71-1.77 1.41-3.55 2.08-5.33-.15.68-.26 1.22-.31 1.55-.5 2.94-2.13 7.59-3.58 13.36-.15-.35-.29-.66-.43-1 .61-2.44 1.25-4.87 1.9-7.3l-.01.01Zm3.56-12.48c.14-.44.28-.89.42-1.34-.13.7-.27 1.41-.42 2.11-.43 1.19-.86 2.38-1.31 3.57.42-1.45.85-2.9 1.31-4.34Zm-5.22 16.05c-.11.44-.23.87-.35 1.31-.12.46-.23.92-.35 1.38-.1-.22-.19-.4-.28-.61.34-.69.66-1.38.97-2.08h.01Zm-11.64 2.62c.06-.1.12-.19.17-.28.05.13.09.26.14.39a.398.398 0 0 0-.31-.11Zm2.3 2.98c-.56-1.3-1.25-2.63-1.65-3.99 0 0 .01-.02.02-.02.06.08 1.52 2.93 1.63 3.08.73 1.13 3.38 7.04 5.67 12.26 1.2 2.73 2.08 5.17 2.83 7.18-.62-1.25-1.23-2.51-1.83-3.78-2.31-4.87-4.53-9.78-6.67-14.73ZM275.92 87.03c-1.06-2.18-1.13-3.45-2.44-2.93-1.52.57-2.94 1.3-4.5 2.1-1.4.72-2.68 1.44-3.92 2.12.01-.25-.24-.5-.51-.34-4.8 2.93-12.41 4.7-17.28 1.31-1.98-1.77-3.32-4.15-3.97-5.78-.29-.95-.49-1.94-.63-2.93-.14-3.34 1.58-6.53 3.9-9.12.8-.79 1.68-1.51 2.66-2.12 3.7-2.3 8.22-3.07 12.51-2.51 2.71.35 5.32 1.24 7.71 2.55.39.22.75-.39.35-.6-.18-.1-.37-.18-.55-.27.56.27 1.03.33 1.51.19l-.48.39c-.15.11-.23.3-.13.48.09.15.33.24.48.13 1.3-.97 2.46-2.09 3.45-3.37.37-.29.64-.6.65-.97v-.02c.08-.33-.03-.7-.21-1.08-.31-.87-.98-2.01-2.19-3.26-2.43-2.52-3.79-3.45-5.68-4.26-1.14-.49-3.12-1.06-4.42-1.23-3.28-.42-10.64-1.21-18.18 4.11-7.74 5.46-11.94 12.3-12.23 20.61-.08 2.06.04 3.98.34 5.71.74 4.18 2.57 8 5.44 11.34 4.26 4.99 9.76 7.52 16.34 7.52 4.85 0 9.69-1.77 14.89-4.62.23-.12.45-.23.68-.35 2.19-1.1 4.37-2.23 6.46-3.5.49-.3 1.03-.61 1.5-.98 1.47-.87 1.11-1.12.49-2.95-.39-1.14-.76-2.7-2.06-5.36l.02-.01Zm-17.38-21.76c3.05-.42 6.31.79 9.36 2.35.51.39.94.68 1.33.87-5.61-2.86-12.72-3.39-18.44-.79 2.05-1.33 4.24-1.95 7.74-2.44l.01.01ZM443.67 72.67c-.4-2.2-1.15-4.33-2.37-6.22-1.49-2.32-3.58-4.19-5.91-5.64-6.17-3.81-13.75-5.11-20.83-6.01-3.23-.41-6.47-.69-9.72-.92l-1.39-.12c-.85-.07-1.52-.1-2.05-.1-1.08-.06-2.17-.12-3.25-.17-.08 0-.14.02-.19.05-.1.05-.18.14-.16.3.27 2.55-.01 5.12-.92 7.52-.15.38.4.56.62.28 1.32.59 2.68 1.05 4.08 1.37 0 2.78-.14 7.58-.33 12.91 0 0 0 .02-.01.03-.61 3.66-.79 7.42-1 11.12-.23 4.01-.43 8.03-.44 12.05 0 .64 0 1.28.03 1.93.02.31 0 .68.15.96.06.11.14.16.24.17-.2.17-.21.54.11.59 3.83.67 7.78.71 11.68.25 2.3-.19 4.87-.65 7.65-1.56 1.85-.54 3.67-1.18 5.43-1.91 7.2-3.02 14.31-8.07 17.35-15.53.76-1.86 1.17-3.8 1.31-5.75.3-1.93.28-3.82-.09-5.58l.01-.02Zm-19.32-15.42c5.74 1.41 11.94 3.68 15.65 8.55.25.32.47.65.69.99-2.3-2.82-5.68-5.69-12.88-8.23-2.16-.76-4.35-1.43-6.64-2.02 1.06.21 2.13.45 3.18.71Zm-25.82-3.04c.13 0 .27.01.4.02-.14.1-.26.23-.37.38 0-.13-.02-.26-.03-.4Zm34.82 22.17c-.75 3.09-3.55 5.66-5.88 7.58-3.35 2.76-7.21 5.03-11.28 6.54-1.33.49-2.71.9-4.12 1.15.06-1.38.08-2.76.07-4.13-.02-3.78-.16-7.56-.41-11.33-.09-1.37-.18-2.74-.37-4.1 0-.06-.03-.11-.06-.15.09-3.25.12-6.16.03-8.12 6.86 1.05 10.56 2.17 14.06 3.62 5.52 2.28 8.59 5.44 7.97 8.96l-.01-.02Zm-22 16.15c-.12 0-.23-.02-.34-.03l.34-.03v.06Zm-.69-.7c0-3.13.26-8.84.47-14.51.06 1.2.11 2.41.15 3.6.15 3.6.25 7.23.09 10.83-.24.03-.48.05-.71.07v.01Zm-12.33-30.94c.37.63 2.01 1.01 3.23 1.25v.15c-1.31-.31-2.59-.73-3.83-1.29.12-.36.23-.72.33-1.09.08.48.18.84.27.98Zm13.7 31.65v-.18c3.41-.56 6.71-2.02 9.69-3.68 2.31-1.28 4.59-2.78 6.63-4.53-4.69 4.53-11.61 8.24-16.33 8.38l.01.01Zm24.07-.75c-2.05 1.93-4.37 3.56-6.83 4.95 2.7-1.78 5.52-4.03 8.42-6.87.82-.82 1.56-1.69 2.23-2.59-1.08 1.65-2.38 3.16-3.81 4.51h-.01ZM187.16 92.14c-.79-2.47-2.1-7.12-3.1-6.87-.19-.01-2.09.77-4.08 1.54-3.06 1.18-5.91 2.13-10.09 2.82-2.74.42-5.87 1.01-10.61 1.06.04-3.34.05-6.01.05-7.99 7.97-.65 12.33-2.11 16.37-3.55 1.11-.39 2.69-1.01 2.63-1.8-.08-.35-.55-1.39-1.17-2.61-.47-1.16-.98-2.31-1.61-3.38-.42-.71-1.04-1.69-1.86-2.06-.11-.08-.22-.13-.29-.12-.02 0-.04 0-.07.01-.19-.04-.39-.05-.6-.01-.17.03-.24.15-.25.28-.04.02-.09.04-.14.05-4.33 1.48-8.85 2.33-13.24 3.61a499.1 499.1 0 0 0-.31-8.19c4.51-.99 8.88-1.38 13.11-1.82 3.68-.38 6.28.12 7.47.34.59.11.9.16 1.16.18h.1c-.1.37.44.66.62.28.02-.04.03-.08.05-.13.15.2.53.22.62-.1.17-.58.19-1.21.21-1.81v-.36c.03-.15.05-.3.07-.45.52-2.47.33-5.09-.64-7.44-.11-.27-.44-.28-.6-.14-.08-.21-.15-.42-.24-.62-.19-.41-.79-.05-.6.35.03.07.05.15.09.22-.98-.42-2.15-.54-3.17-.63-2.17-.19-4.37-.14-6.54 0-5.7.35-11.4 1.3-16.91 2.79-2.08.56-4.13 1.22-6.14 2-4.54 1.05-3.79 1.51-2.17 6.07.18.51.46 1.68.54 1.94.82 2.47 1.08 2.13 3.1 2.13s0 .05 0 .08h.52c-.48 2.66-.51 5.45-.62 8.13-.15 3.48-.22 6.96-.28 10.45 0 .41-.01.82-.02 1.23-.16.29-.33.57-.51.85-.05.38-.09.77-.14 1.18-.42 3.52-.59 6.48-.52 8.8v.34c.02.47.05.76.06.87.16 1.57-.26 3.47 1.35 3.79 1.61.32 3.5.55 4.85.55.11 0 .22-.02.33-.02 1.79.24 3.67.05 5.45-.12 2.85-.28 5.69-.7 8.51-1.19 3.03-.53 6.05-1.14 9.04-1.86 2.4-.58 4.82-1.19 7.13-2.06.51-.19 1.73-.57 2.46-1.14 1.81-.68 2.18-1 1.57-2.67-.23-.62-.48-1.49-.91-2.78l-.03-.02Zm-11.12-38.71c.89.05 1.93.08 2.89.3-.33 0-.68-.02-1.06-.03-8.28-.26-14.88.75-23.97 2.51 2.41-.64 4.85-1.16 7.28-1.59 4.87-.86 9.91-1.45 14.86-1.19Zm-26.53 22.13c.03 1.71.04 3.43 0 5.14-.04 1.27-.11 2.55-.24 3.82 0-.73.02-1.46.04-2.19.05-2.26.12-4.51.22-6.77h-.02Zm6.73 27.85c.2-.1.4-.21.58-.33 1.82-.17 3.82-.24 5.94-.34-.86.11-1.72.24-2.58.33-1.27.14-2.61.31-3.93.34h-.01ZM534.48 85.44c-3.52-8.38-7.07-16.75-10.5-25.17-.63-1.54-1.25-3.09-1.86-4.65-.31-.8-.65-1.6-.87-2.43-.04-.17-.17-.24-.31-.25.1-.2 0-.51-.29-.53-1.59-.08-3.18-.22-4.78-.25-1.96-.03-3.91.13-5.84.42-.31.05-.31.38-.13.56-.03.06-.05.14-.04.22.23 1.54.63 3.06 1.16 4.53.13.35.27.7.41 1.06l-2.68 6.18c-.11.03-.2.09-.25.22-.67 1.9-1.52 3.73-2.34 5.56a536.85 536.85 0 0 1-3.9 8.45c-2.64 5.64-5.34 11.25-7.91 16.93-.44.97-.88 1.94-1.29 2.93-.2.48-.47 1-.55 1.52v.05c-.02.12.02.26.16.34 1.19.73 2.41 1.41 3.66 2.05 1.2.62 2.45 1.25 3.76 1.61.43.12.62-.55.19-.67-1.13-.31-2.2-.83-3.24-1.36 1.09.36 2.1.69 2.75.93 2.82 1.01 2.38 1.1 4.3-3.75 2.1-1.09 4.34-1.96 6.53-2.79 4.35-1.64 8.8-3.03 13.27-4.29.82 2.01 1.77 3.97 2.72 5.92.35.83.62 1.45.79 1.82.22.42.45.8.69 1.15.17.33.33.67.5 1 .42.8.84 1.63 1.4 2.35.23.29.6 0 .55-.31 1.53-.02 3.06-.07 4.58-.27.92-.12 1.82-.32 2.71-.54 1.39-.27 3.85-1.11 3.74-1.42-.67-1.96-1.55-3.87-2.34-5.78-1.57-3.78-3.16-7.56-4.75-11.33v-.01Zm-11.65-26.16c1.54 3.81 3.12 7.6 4.7 11.4 2.94 7.05 5.91 14.09 8.87 21.13l-1.06-2.17c-2.71-5.51-5.2-11.19-7.41-16.87l-6.65-17.15c-.65-1.45-.55-2.19-.93-2.53.09 0 .18.01.28.02a.29.29 0 0 0-.04.26c.52 2.02 1.47 3.98 2.25 5.91h-.01Zm-6.58 13.58c.05-.15.09-.31.14-.46 1.41 3.92 2.88 7.9 4.39 11.87-3.22.52-6.38 1.25-9.46 2.14.55-1.22 1.05-2.46 1.53-3.7 1.24-3.24 2.37-6.53 3.39-9.85h.01Zm-.23-20c.36 0 .73.03 1.09.05-2.15.1-5.18.33-5.87.74-.24.15-.41.3-.53.45-.06-.29-.13-.58-.18-.88 1.82-.26 3.65-.39 5.49-.35v-.01Zm-.09 18.72c-.49 1.67-1.05 3.33-1.6 4.97-1.07 3.19-2.19 6.38-3.57 9.46-.09.21-.19.43-.29.65-.25.07-.5.14-.74.22 2.53-6.16 4.61-11.29 6.2-15.3Zm-6.34 25.16c4.97-2.38 9.37-4.1 14.02-5.27l.26.64c-4.8 1.35-9.63 2.8-14.28 4.63Zm20.17 6.76c.33.23.68.42 1.04.56h-.33c-.12 0-.21.06-.26.13-.15-.23-.31-.45-.45-.7v.01ZM226.57 91.75c-3.55-4.74-6.68-9.11-9.31-12.99 9.2-15.25 10.05-17.81 10.35-18.38.17-.34 1.09-2.27.64-2.53-1.13-.65-1.03-.65-2.97-1.71-1.19-.65-3.04-1.61-4.53-2.12-1.71-.59-1.24-.36-3 2.77-.06.1-.11.2-.17.3-.75 1.02-1.48 2.05-2.2 3.09-1.88 2.71-3.73 5.45-5.69 8.1-3.68-4.91-6.88-8.76-9.51-11.43-.15-.15-.3-.29-.46-.42-1.27-1.28-7.24 3.53-7.93 5.58-.09.09-.19.16-.28.25-.27.26.03.64.33.58.19.65.5 1.29.94 1.91 3.85 5.06 7.19 9.76 9.94 14-1.23 2.61-3.06 5-4.67 7.38l-2.28 3.33c-.5.66-.93 1.23-1.29 1.69-.67.93-2.09 2.61-2.3 3.87-.51.85-1.16 1.84-1.29 2.83-.06.44.61.63.67.19.01-.08.04-.15.06-.22 1.36 1.08 2.76 2.11 4.19 3.11 1.3.91 2.62 1.85 4.04 2.56.21.1.4 0 .48-.17.24.07.48.14.72.2.44.1.62-.57.19-.67-2.02-.48-3.77-1.57-5.23-3.02-.47-.46-.9-.96-1.32-1.46 1.74 1.35 4.2 2.89 5.89 4.14 1.39 1.03 2.85-2.27 4.22-4.2 1.86-2.64 3.96-5.86 5.52-8.29l10.39 14.51c.67.81 1.14 1.21 1.57 1.36-.05.24.12.51.41.4 1.53-.58 3.05-1.19 4.54-1.87 1.52-.69 3.06-1.45 4.36-2.5a.28.28 0 0 0 .12-.23c1.66-1.1.81-1.74-1.41-4.91-1.13-1.58-1.71-2.36-3.7-5.01l-.03-.02Zm2.41 6.54c.56 1.15 1.19 2.52 1.11 3.81-.06.04-.12.07-.17.1-.03-.88-.55-2.66-.94-3.91Zm-16.51-32.73c1.86-2.65 3.65-5.35 5.57-7.95.4-.55.81-1.13 1.26-1.66.19-.18.38-.33.56-.45.18.03.36.08.55.13l-8.05 10.11.12-.18h-.01ZM192.7 95.48c.79-1.37 1.66-2.69 2.54-4 1.19-1.79 2.4-3.56 3.61-5.33-.04.09-.09.17-.13.26-.1.22.03.41.2.49-2.47 3.42-4.89 6.73-6.4 9.28.21.24.4.48.63.75-.24.07-.4.36-.17.56.4.33.72.77 1.05 1.17.09.11.18.21.27.32-.84-.61-1.66-1.24-2.47-1.88.24-.57.58-1.11.87-1.61v-.01Zm7.46-10.32c.47-.81.98-1.59 1.49-2.37.31-.48.64-.95.96-1.43.26-.29.52-.56.75-.79-.99 1.48-2.09 3.03-3.2 4.59Zm10.03-16.22s-.03-.05-.05-.07c.22-.29.43-.59.64-.89-.2.32-.4.65-.58.96h-.01ZM371.54 87.96c-.01-.08-.01-.16-.03-.23-.06-.38-.58-.29-.66.03-.3-.05-.6-.08-.81-.11-1.14-.15-2.29-.19-3.44-.2 1.04-.09 2.09-.18 3.14-.23.45-.02.45-.72 0-.7-6.57.35-13.14 1.23-19.65 2.11-1.53.21-3.05.42-4.57.68-.01 0-.02.01-.04.01-.04-3.33-.13-6.66-.24-9.99-.19-5.7-.4-11.41-.88-17.1-.13-1.51-.23-3.07-.49-4.58 0-.25 0-.48-.02-.68-.06-1.19-.04-2.61-.68-2.78-.16-.07-.72-.16-1.5-.24.22-.17.16-.62-.2-.63-1.19-.04-2.39.09-3.57.23-1.2.14-2.41.32-3.59.6-.16-.1-.41-.06-.5.12-.06.02-.13.03-.19.05-.35.1-.29.55-.03.66-.26.6-.19 2.27-.21 3-.02.66-.66 33.73-.9 40.3-.03.65.06 1.12.04 1.45-.16 3.05.87 4.96 6.34 3.93 1.09-.08 2.75-.77 5.36-1.43 4.13-1.04 5.78-1.52 6.2-1.65 6.43-1.69 6.78-1.97 11.72-2.43.55-.05 4.8-.38 6.03-.3.64.04 1.19.07 1.65.1.09 0 .16-.03.24-.05.1.27.56.33.66-.02.39-1.32.61-2.71.78-4.08.2-1.61.29-3.24.15-4.86.24.03.52-.23.38-.53-.09-.2-.27-.33-.49-.43v-.02Zm-.63.56c.07.57.11 1.14.11 1.71-.21-.99-.53-1.71-.95-1.87.22.03.44.06.65.11.06.01.12.04.19.05Zm-25.41 1.73c1.54-.36 3.1-.64 4.66-.89-1.61.37-3.18.77-4.66 1.2v-.31Zm-.86-7.37c-.07-1.37-.16-2.75-.25-4.12-.21-3.13-.45-6.27-.79-9.4.02-2.25.08-4.31.13-6.11.16 2.08.29 4.16.4 6.24.23 4.46.38 8.93.5 13.39h.01Zm-.94-4c.16 2.41.29 4.83.39 7.24.06 1.6.14 3.22.09 4.83-.15.05-.32.09-.47.14V78.88h-.01ZM483.72 92.83c-3.05-2.28-6.22-4.4-9.38-6.51 8.86-6.49 13.49-12.95 13.73-19.23.04-.76 0-1.5-.13-2.2-.67-3.82-3.5-6.68-8.39-8.48.13.04.27.08.4.13 3.92 1.39 7.74 4.23 8.5 8.56.34 1.95-.05 3.96-.98 5.69-.21.4.39.75.6.35 1.86-3.46 1.46-7.55-.97-10.63-3.53-4.47-9.76-5.88-15.16-6.16-2.32-.12-4.64-.04-6.95.19-6 .32-12.71 1.68-17.63 3.21-.37.11-.67.23-.92.35-.2-.17-.62.02-.57.37v.03c-.64.68-.18 1.64.48 3.21.38.91.67 1.89 1.15 2.58.32.76.68 1.51 1.13 2.19.14.21.38.19.53.07.19-.02.38-.05.57-.08v1.57c-.06.06-.1.13-.11.23-.27 4.18-.34 8.38-.48 12.57l-.3 9.03c-.24 3.91-.44 6.77-.46 7.26-.05.88-.11 1.95.07 2.81-.01.22-.02.43-.04.65 0 .11-.02.23-.03.35 0 .05-.03.27-.01.16-.05.4.5.59.64.28.05.04.12.08.2.08 1.75.13 3.5.28 5.25.3 1.69.02 3.38-.12 5.06-.32.08.23.36.39.55.15.06-.08.11-.17.16-.26.18-.09.24-.32.18-.48.05-.2.1-.4.13-.6.16-.86.25-1.74.33-2.62.11-1.17.17-2.34.23-3.51.15-.01.32-.03.52-.04.36-.03 1.73-.15 2.06-.15.39 0 .7-.02.95-.04 1.76 1.11 3.45 2.35 5.14 3.55 2.83 2.01 5.64 4.04 8.47 6.04 1.42 1 2.85 2 4.29 2.97.1.06.19.07.27.04.08 0 .17-.02.25-.1 1.61-1.56 3.15-3.18 4.6-4.88.75-.88 1.49-1.78 2.15-2.73.01.01.03.02.04.03.34.3.83-.2.49-.49-2.16-1.9-4.34-3.76-6.64-5.48l.03-.01Zm-6.38-3.65a55.72 55.72 0 0 0-4-2.13c.14-.1.26-.19.4-.29 1.2.81 2.4 1.61 3.6 2.42Zm-20.1 11.78c.67-.37 1.23-.91 1.67-1.6-.11.5-.24 1-.38 1.49-.43.04-.86.08-1.29.11Zm2.38-37.24c1.34-.31 2.56-.52 3.71-.69-1.03.19-2.04.41-3.04.65-.14-.07-.34-.02-.45.11-.07.02-.15.04-.22.05v-.13.01Zm.04.84c.07-.02.14-.03.2-.05.34 1.66.41 3.41.5 5.09.17 2.9.24 5.81.28 8.71l.03 3.17c-.17.07-.34.14-.51.2-.06-4.96-.21-10.58-.51-17.12h.01Zm16.04 5.62c-1.16 2.25-3.06 4.1-5.02 5.66-2.8 2.23-5.99 3.97-9.3 5.35-.01-3.56-.09-7.12-.27-10.67-.1-2.04-.16-4.16-.57-6.18 3.3-.78 6.72-1.36 10.1-1.1 1.85.14 4.23.59 5.32 2.29.92 1.43.46 3.24-.26 4.65Zm.85-.18c.6-1.37.9-2.92.28-4.32-.67-1.52-2.2-2.32-3.76-2.74.46.1.89.21 1.29.37 1.74.67 2.69 1.88 2.93 3.21.2 1.13-.05 2.25-.74 3.47V70Zm-27.47-4.14c-.12-.19-.23-.38-.34-.57.74.42.85.36.99.41v.08c-.22.03-.43.06-.65.08Zm11.21 30.46c-.08 1.08-.16 2.17-.33 3.24-.05.35-.11.69-.2 1.03 0 .04-.02.07-.03.11-.15.02-.3.04-.45.05.45-1.64.76-3.36.79-5.07.03-.29.08-.57.1-.89-.03-.31-.03-.47.24-.57-.04.69-.07 1.39-.12 2.08v.02Zm5.6-2.47c.48.11.92.52 2.49 1.72-.46-.32-.92-.65-1.38-.97-.37-.25-.73-.5-1.1-.75h-.01Zm21.23 7.24a70.76 70.76 0 0 1-4.37 4.63c-.14-.09-.27-.19-.4-.28.19-.09.37-.24.55-.47.87-1.14 5.43-5.51 5.49-7.45.31.26.62.53.92.79-.67.97-1.42 1.88-2.19 2.77v.01Z",fill:"currentColor",transform:"translate(-144.023 -51.76)"})]}),v6=({style:t,size:e="small",withText:o})=>(0,Vo.jsxs)("div",{className:`ExcalidrawLogo is-${e}`,style:t,children:[(0,Vo.jsx)(FI,{}),o&&(0,Vo.jsx)(BI,{})]});var He=v(k(),1),Zg=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)("div",{className:"welcome-screen-menu-item__icon",children:t}),(0,He.jsx)("div",{className:"welcome-screen-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,He.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:e})]})};Zg.displayName="WelcomeScreenMenuItemContent";var Us=({onSelect:t,children:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("button",{...i,type:"button",className:`welcome-screen-menu-item ${n}`,onClick:t,children:(0,He.jsx)(Zg,{icon:o,shortcut:r,children:e})});Us.displayName="WelcomeScreenMenuItem";var y6=({children:t,href:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("a",{...i,className:`welcome-screen-menu-item ${n}`,href:e,target:"_blank",rel:"noreferrer",children:(0,He.jsx)(Zg,{icon:o,shortcut:r,children:t})});y6.displayName="WelcomeScreenMenuItemLink";var Ko=({children:t})=>{let{WelcomeScreenCenterTunnel:e}=Ve();return(0,He.jsx)(e.In,{children:(0,He.jsx)("div",{className:"welcome-screen-center",children:t||(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)(jg,{}),(0,He.jsx)(Xg,{children:g("welcomeScreen.defaults.center_heading")}),(0,He.jsxs)(qg,{children:[(0,He.jsx)(Qg,{}),(0,He.jsx)(Jg,{})]})]})})})};Ko.displayName="Center";var jg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:t||(0,He.jsx)(v6,{withText:!0})});jg.displayName="Logo";var Xg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:t});Xg.displayName="Heading";var qg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-menu",children:t});qg.displayName="Menu";var Jg=()=>{let t=It();return(0,He.jsx)(Us,{onSelect:()=>t.executeAction(gi),shortcut:"?",icon:sa,children:g("helpDialog.title")})};Jg.displayName="MenuItemHelp";var Qg=()=>{let t=Le(),e=It();return t.viewModeEnabled?null:(0,He.jsx)(Us,{onSelect:()=>e.executeAction(Da),shortcut:wt("loadScene"),icon:ca,children:g("buttons.load")})};Qg.displayName="MenuItemLoadScene";var E6=({onSelect:t})=>{let{t:e}=vt();return(0,He.jsx)(Us,{shortcut:null,onSelect:t,icon:fd,children:e("labels.liveCollaboration")})};E6.displayName="MenuItemLiveCollaborationTrigger";Ko.Logo=jg;Ko.Heading=Xg;Ko.Menu=qg;Ko.MenuItem=Us;Ko.MenuItemLink=y6;Ko.MenuItemHelp=Jg;Ko.MenuItemLoadScene=Qg;Ko.MenuItemLiveCollaborationTrigger=E6;h();var cr=v(k(),1),Ap=({children:t})=>{let{WelcomeScreenMenuHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[cx,(0,cr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.menuHint")})]})})};Ap.displayName="MenuHint";var Mp=({children:t})=>{let{WelcomeScreenToolbarHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,cr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.toolbarHint")}),mx]})})};Mp.displayName="ToolbarHint";var _p=({children:t})=>{let{WelcomeScreenHelpHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,cr.jsx)("div",{children:t||g("welcomeScreen.defaults.helpHint")}),dx]})})};_p.displayName="HelpHint";var dr=v(k(),1),Lp=t=>(0,dr.jsx)(dr.Fragment,{children:t.children||(0,dr.jsxs)(dr.Fragment,{children:[(0,dr.jsx)(Ko,{}),(0,dr.jsx)(Ap,{}),(0,dr.jsx)(Mp,{}),(0,dr.jsx)(_p,{})]})});Lp.displayName="WelcomeScreen";Lp.Center=Ko;Lp.Hints={MenuHint:Ap,ToolbarHint:Mp,HelpHint:_p};var zI=Lp;h();var Pp=v(k(),1),w6=({isCollaborating:t,onSelect:e,...o})=>{let r=Le(),n=r.width<830;return(0,Pp.jsxs)(Cr,{...o,className:$("collab-button",{active:t}),type:"button",onSelect:e,style:{position:"relative",width:n?void 0:"auto"},title:g("labels.liveCollaboration"),children:[n?Dx:g("labels.share"),r.collaborators.size>0&&(0,Pp.jsx)("div",{className:"CollabButton-collaborators",children:r.collaborators.size})]})},$I=w6;w6.displayName="LiveCollaborationTrigger";h();var HI=(t,e,o)=>!!(e&&(e.id===t.editingElement?.id||e.id===t.resizingElement?.id||e.id===t.draggingElement?.id||e.version>o.version||e.version===o.version&&e.versionNonce<o.versionNonce)),UI=(t,e,o)=>{let r=pe(t),n=[],i=new Set;for(let l of e)if(!i.has(l.id)){let s=r.get(l.id),d=HI(o,s,l);s&&d?(n.push(s),i.add(s.id)):(n.push(l),i.add(l.id))}for(let l of t)i.has(l.id)||(n.push(l),i.add(l.id));let a=nb(n);return pn(a),a};h();var Ws=v(k(),1),C6=({children:t,icon:e})=>{let{TTDDialogTriggerTunnel:o}=Ve(),r=Pe();return(0,Ws.jsx)(o.In,{children:(0,Ws.jsxs)(De.Item,{onSelect:()=>{xe("ai","dialog open","ttd"),r({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:e??kv,children:[t??g("labels.textToDiagram"),(0,Ws.jsx)(De.Item.Badge,{children:"AI"})]})})};C6.displayName="TTDDialogTrigger";var Rp=v(k(),1);b6();var WI=t=>{let{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n=!1,onPointerUpdate:i,renderTopRightUI:a,langCode:l=gr.code,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:c,libraryReturnUrl:m,theme:u,name:f,renderCustomStats:b,onPaste:x,detectScroll:y=!0,handleKeyboardGlobally:T=!1,onLibraryChange:C,autoFocus:w=!1,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,children:U,validateEmbeddable:D,renderEmbeddable:G,aiEnabled:O}=t,B=t.UIOptions?.canvasActions,te={...t.UIOptions,canvasActions:{...Up.canvasActions,...B},tools:{image:t.UIOptions?.tools?.image??!0}};return B?.export&&(te.canvasActions.export.saveFileToDisk=B.export?.saveFileToDisk??Up.canvasActions.export.saveFileToDisk),te.canvasActions.toggleTheme===null&&typeof u>"u"&&(te.canvasActions.toggleTheme=!0),(0,Dp.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let ve=Ie=>{typeof Ie.scale=="number"&&Ie.scale!==1&&Ie.preventDefault()};return document.addEventListener("touchmove",ve,{passive:!1}),()=>{document.removeEventListener("touchmove",ve)}},[]),(0,Rp.jsx)(ed,{unstable_createStore:()=>Gt,scope:Ne,children:(0,Rp.jsx)(ox,{langCode:l,theme:u,children:(0,Rp.jsx)(g6,{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n,onPointerUpdate:i,renderTopRightUI:a,langCode:l,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:c,libraryReturnUrl:m,theme:u,name:f,renderCustomStats:b,UIOptions:te,onPaste:x,detectScroll:y,handleKeyboardGlobally:T,onLibraryChange:C,autoFocus:w,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,validateEmbeddable:D,renderEmbeddable:G,aiEnabled:O!==!1,children:U})})})},GI=(t,e)=>{if(t.children!==e.children)return!1;let{initialData:o,UIOptions:r={},...n}=t,{initialData:i,UIOptions:a={},...l}=e,s=Object.keys(r),d=Object.keys(a);return s.length!==d.length?!1:s.every(m=>m==="canvasActions"?Object.keys(r.canvasActions).every(f=>f==="export"&&r?.canvasActions?.export&&a?.canvasActions?.export?r.canvasActions.export.saveFileToDisk===a.canvasActions.export.saveFileToDisk:r?.canvasActions?.[f]===a?.canvasActions?.[f]):r[m]===a[m])&&kt(n,l)},VI=Dp.default.memo(WI,GI);VI.displayName="Excalidraw";export{Cr as Button,Fp as DEFAULT_LASER_COLOR,ap as DefaultSidebar,VI as Excalidraw,cl as FONT_FAMILY,OI as Footer,$I as LiveCollaborationTrigger,Dt as MIME_TYPES,lo as MainMenu,Co as ROUNDNESS,Qr as Sidebar,P as StoreAction,be as THEME,Sg as TTDDialog,C6 as TTDDialogTrigger,zI as WelcomeScreen,Eu as bumpVersion,As as convertToExcalidrawElements,gr as defaultLang,N6 as elementPartiallyOverlapsWithOrContainsBBox,O6 as elementsOverlappingBBox,xu as exportToBlob,ei as exportToCanvas,R6 as exportToClipboard,Rl as exportToSvg,Ze as getCommonBounds,F6 as getFreeDrawSvgPath,hm as getLibraryItemsHash,Ee as getNonDeletedElements,B6 as getSceneVersion,L6 as getVisibleSceneBounds,Iu as hashElementsVersion,Au as hashString,D6 as isElementInsideBBox,ti as isInvisiblySmallElement,_e as isLinearElement,na as languages,Nc as loadFromBlob,mu as loadLibraryFromBlob,du as loadSceneOrLibraryFromBlob,GE as mergeLibraryItems,re as mutateElement,he as newElementWith,zr as normalizeLink,kh as parseLibraryTokensFromUrl,UI as reconcileElements,cu as restore,P6 as restoreAppState,su as restoreElements,_l as restoreLibraryItems,Qt as sceneCoordsToViewportCoords,uu as serializeAsJSON,hu as serializeLibraryAsJSON,Me as useDevice,MS as useHandleLibrary,vt as useI18n,Ye as viewportCoordsToSceneCoords,aE as zoomToFitBounds};
167
+ `),o)}}addTextFromPaste(e,o=!1){let{x:r,y:n}=Ye({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),i={x:r,y:n,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roundness:null,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:e,fontSize:this.state.currentItemFontSize,fontFamily:this.state.currentItemFontFamily,textAlign:ec,verticalAlign:Up,locked:!1},a=Qt({fontSize:i.fontSize,fontFamily:i.fontFamily}),l=Fr(i.fontFamily),[s,,d]=lu(this.state),m=Math.max(Math.min((d-s)*.5,800),200),c=10,u=n,f=o?[e]:e.split(`
168
+ `),b=f.reduce((x,y,k)=>{let C=y.trim();if(C.length){let w=this.getTopLayerFrameAtSceneCoords({x:r,y:u}),A=Or(C,a,l),z=A.width>m,I=z?kc(C,a,m):C;A=z?Or(I,a,l):A;let M=r-A.width/2,_=u-A.height/2,$=bn({...i,x:M,y:_,text:I,originalText:C,lineHeight:l,autoResize:!z,frameId:w?w.id:null});x.push($),u+=$.height+c}else f[k-1]?.trim()&&(u+=hb(i.fontSize,l)+c);return x},[]);b.length!==0&&(this.scene.insertElements(b),this.setState({selectedElementIds:Be(Object.fromEntries(b.map(x=>[x.id,!0])),this.state)}),!o&&b.length>1&&f6===!1&&!this.device.editor.isMobile&&(this.setToast({message:g("toast.pasteAsSingleElement",{shortcut:F("CtrlOrCmd+Shift+V")}),duration:5e3}),f6=!0),this.store.shouldCaptureIncrement())}setAppState=(e,o)=>{this.setState(e,o)};removePointer=e=>{Wn&&this.resetContextMenuTimer(),Re.pointers.delete(e.pointerId)};toggleLock=(e="ui")=>{this.state.activeTool.locked||ve("toolbar","toggleLock",`${e} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(o=>({activeTool:{...o.activeTool,...it(this.state,o.activeTool.locked?{type:"selection"}:o.activeTool),locked:!o.activeTool.locked}}))};updateFrameRendering=e=>{this.setState(o=>{let r=typeof e=="function"?e(o.frameRendering):e;return{frameRendering:{enabled:r?.enabled??o.frameRendering.enabled,clip:r?.clip??o.frameRendering.clip,name:r?.name??o.frameRendering.name,outline:r?.outline??o.frameRendering.outline}}})};togglePenMode=e=>{this.setState(o=>({penMode:e??!o.penMode,penDetected:!0}))};onHandToolToggle=()=>{this.actionManager.executeAction(sE)};zoomCanvas=e=>{this.setState({...Wr({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Ur(e)},this.state)})};cancelInProgressAnimation=null;scrollToContent=(e=this.scene.getNonDeletedElements(),o)=>{this.cancelInProgressAnimation?.();let r=Array.isArray(e)?e:[e],n=this.state.zoom,i=this.state.scrollX,a=this.state.scrollY;if(o?.fitToContent||o?.fitToViewport){let{appState:l}=ss({targetElements:r,appState:this.state,fitToViewport:!!o?.fitToViewport,viewportZoomFactor:o?.viewportZoomFactor});n=l.zoom,i=l.scrollX,a=l.scrollY}else{let l=ni(r,this.state);i=l.scrollX,a=l.scrollY}if(o?.animate){let l=this.state.scrollX,s=this.state.scrollY,d=this.state.zoom.value,m=U1({fromValues:{scrollX:l,scrollY:s,zoom:d},toValues:{scrollX:i,scrollY:a,zoom:n.value},interpolateValue:(c,u,f,b)=>{if(b==="zoom")return c*Math.pow(u/c,Zn(f))},onStep:({scrollX:c,scrollY:u,zoom:f})=>{this.setState({scrollX:c,scrollY:u,zoom:{value:f}})},onStart:()=>{this.setState({shouldCacheIgnoreZoom:!0})},onEnd:()=>{this.setState({shouldCacheIgnoreZoom:!1})},onCancel:()=>{this.setState({shouldCacheIgnoreZoom:!1})},duration:o?.duration??500});this.cancelInProgressAnimation=()=>{m(),this.cancelInProgressAnimation=null}}else this.setState({scrollX:i,scrollY:a,zoom:n})};maybeUnfollowRemoteUser=()=>{this.state.userToFollow&&this.setState({userToFollow:null})};translateCanvas=e=>{this.cancelInProgressAnimation?.(),this.maybeUnfollowRemoteUser(),this.setState(e)};setToast=e=>{this.setState({toast:e})};restoreFileFromShare=async()=>{try{let e=await caches.open("web-share-target"),o=await e.match("shared-file");if(o){let r=await o.blob(),n=new File([r],r.name||"",{type:r.type});this.loadFileToCanvas(n,null),await e.delete("shared-file"),window.history.replaceState(null,dl,window.location.pathname)}}catch(e){this.setState({errorMessage:e.message})}};addFiles=Qe(e=>{let o=e.reduce((r,n)=>(r.set(n.id,n),r),new Map);this.files={...this.files,...Object.fromEntries(o)},this.scene.getNonDeletedElements().forEach(r=>{El(r)&&o.has(r.fileId)&&(this.imageCache.delete(r.fileId),Ro.delete(r))}),this.scene.triggerUpdate(),this.addNewImagesToImageCache()});updateScene=Qe(e=>{let o=un(e.elements??[]);if(e.storeAction&&e.storeAction!==D.NONE){let r=this.store.snapshot.appState,n=this.store.snapshot.elements,i=e.appState?Object.assign({},r,e.appState):r,a=e.elements?this.store.filterUncomittedElements(this.scene.getElementsMapIncludingDeleted(),fe(o)):n;e.storeAction===D.CAPTURE?this.store.captureIncrement(a,i):e.storeAction===D.UPDATE&&this.store.updateSnapshot(a,i)}e.appState&&this.setState(e.appState),e.elements&&this.scene.replaceAllElements(o),e.collaborators&&this.setState({collaborators:e.collaborators})});triggerRender=e=>{e===!0?this.scene.triggerUpdate():this.setState({})};toggleSidebar=({name:e,tab:o,force:r})=>{let n;r===void 0?n=this.state.openSidebar?.name===e&&this.state.openSidebar?.tab===o?null:e:n=r?e:null;let i=n?{name:n}:null;return i&&o&&(i.tab=o),this.setState({openSidebar:i}),!!n};updateCurrentCursorPosition=Qe(e=>{this.lastViewportPosition.x=e.clientX,this.lastViewportPosition.y=e.clientY});onKeyDown=Qe(e=>{if("Proxy"in window&&(!e.shiftKey&&/^[A-Z]$/.test(e.key)||e.shiftKey&&/^[a-z]$/.test(e.key))&&(e=new Proxy(e,{get(i,a){let l=i[a];return typeof l=="function"?l.bind(i):a==="key"?e.shiftKey?i.key.toUpperCase():i.key.toLowerCase():l}})),e[S.CTRL_OR_CMD]&&e.key===S.P&&!e.shiftKey&&!e.altKey){this.setToast({message:g("commandPalette.shortcutHint",{shortcut:Et("commandPalette")})}),e.preventDefault();return}if(e[S.CTRL_OR_CMD]&&e.key.toLowerCase()===S.V&&(Mp=e.shiftKey,clearTimeout(u6),u6=window.setTimeout(()=>{Mp=!1},100)),e[S.CTRL_OR_CMD]&&Io(e.target)&&(e.code===ge.MINUS||e.code===ge.EQUAL)){e.preventDefault();return}if(Io(e.target)&&e.key!==S.ESCAPE||Vi(e.key)&&$1(e.target))return;if(e.key===S.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(e.key.toLowerCase()===S.E&&e.shiftKey&&e[S.CTRL_OR_CMD]){e.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(e.key===S.PAGE_UP||e.key===S.PAGE_DOWN){let i=(e.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;e.key===S.PAGE_DOWN&&(i=-i),e.shiftKey?this.translateCanvas(a=>({scrollX:a.scrollX+i})):this.translateCanvas(a=>({scrollY:a.scrollY+i}))}if(this.actionManager.handleKeyDown(e)||this.state.viewModeEnabled)return;if(e[S.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),Vi(e.key)){let i=this.state.gridSize&&(e.shiftKey?Bp:this.state.gridSize)||(e.shiftKey?h1:Bp),a=0,l=0;e.key===S.ARROW_LEFT?a=-i:e.key===S.ARROW_RIGHT?a=i:e.key===S.ARROW_UP?l=-i:e.key===S.ARROW_DOWN&&(l=i);let s=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});s.forEach(d=>{re(d,{x:d.x+a,y:d.y+l}),nu(d,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:s})}),this.setState({suggestedBindings:Ec(s,this)}),e.preventDefault()}else if(e.key===S.ENTER){let i=this.scene.getSelectedElements(this.state);if(i.length===1){let a=i[0];if(e[S.CTRL_OR_CMD])_e(a)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==i[0].id)&&(this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new he(a)}));else if(oe(a)||Cb(a)){let l;oe(a)||(l=a);let s=Ic(a,this.state,this.scene.getNonDeletedElementsMap()),d=s.x,m=s.y;this.startTextEditing({sceneX:d,sceneY:m,container:l}),e.preventDefault();return}else Ee(a)&&this.setState({editingFrame:a.id})}}else if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&this.state.draggingElement===null){let i=_w(e.key);i?(this.state.activeTool.type!==i&&ve("toolbar",i,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:i}),e.stopPropagation()):e.key===S.Q&&(this.toggleLock("keyboard"),e.stopPropagation())}if(e.key===S.SPACE&&Re.pointers.size===0&&(Ni=!0,Fe(this.interactiveCanvas,Oe.GRAB),e.preventDefault()),(e.key===S.G||e.key===S.S)&&!e.altKey&&!e[S.CTRL_OR_CMD]){let i=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!i.length)return;e.key===S.G&&(hn(this.state.activeTool.type)||i.some(a=>hn(a.type)))&&(this.setState({openPopup:"elementBackground"}),e.stopPropagation()),e.key===S.S&&(this.setState({openPopup:"elementStroke"}),e.stopPropagation())}if(e.key===S.K&&!e.altKey&&!e[S.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}e[S.CTRL_OR_CMD]&&(e.key===S.BACKSPACE||e.key===S.DELETE)&&Gt.set(Ii,"clearCanvas");let o=e.key.toLocaleLowerCase(),r=o===S.S&&e.shiftKey,n=e.key===S.I||o===S.G&&e.shiftKey;(r||n)&&this.openEyeDropper({type:r?"stroke":"background"})});onWheel=Qe(e=>{!(e.target instanceof HTMLCanvasElement)&&e.ctrlKey&&e.preventDefault()});onKeyUp=Qe(e=>{e.key===S.SPACE&&(this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):this.state.activeTool.type==="selection"?Lo(this.interactiveCanvas):(Qo(this.interactiveCanvas,this.state),this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),Ni=!1),!e[S.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Vi(e.key)&&(Il(this.scene.getSelectedElements(this.state).filter(_e),this,Jn(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[]),this.setState({suggestedBindings:[]}))});isToolSupported=e=>this.props.UIOptions.tools?.[e]!==!1;setActiveTool=e=>{if(!this.isToolSupported(e.type)){console.warn(`"${e.type}" tool is disabled via "UIOptions.canvasActions.tools.${e.type}"`);return}let o=it(this.state,e);o.type==="hand"?Fe(this.interactiveCanvas,Oe.GRAB):Ni||Qo(this.interactiveCanvas,this.state),B1(document.activeElement)&&this.focusContainer(),Q1(o.type)||this.setState({suggestedBindings:[]}),o.type==="image"&&this.onImageAction({insertOnCanvasDirectly:(e.type==="image"&&e.insertOnCanvasDirectly)??!1}),this.setState(r=>{let n={snapLines:r.snapLines.length?[]:r.snapLines,originSnapOffset:null,activeEmbeddable:null};return o.type==="freedraw"&&this.store.shouldCaptureIncrement(),o.type!=="selection"?{...r,activeTool:o,selectedElementIds:Be({},r),selectedGroupIds:Be({},r),editingGroupId:null,multiElement:null,...n}:{...r,activeTool:o,...n}})};setOpenDialog=e=>{this.setState({openDialog:e})};setCursor=e=>{Fe(this.interactiveCanvas,e)};resetCursor=()=>{Lo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>Re.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${g("labels.untitled")}-${Yp()}`;onGestureStart=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:Be({},this.state),activeEmbeddable:null}),Re.initialScale=this.state.zoom.value});onGestureChange=Qe(e=>{if(e.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let o=Re.initialScale;o&&this.setState(r=>({...Wr({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Ur(o*e.scale)},r)}))});onGestureEnd=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:Be(this.state.previousSelectedElementIds,this.state)}),Re.initialScale=null});handleTextWysiwyg(e,{isExistingElement:o=!1}){let r=this.scene.getElementsMapIncludingDeleted(),n=(i,a)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(l=>l.id===e.id&&oe(l)?pe(l,{originalText:i,isDeleted:a??l.isDeleted,...zb(l,Qn(l,r),r,i)}):l)])};d6({id:e.id,canvas:this.canvas,getViewportCoords:(i,a)=>{let{x:l,y:s}=eo({sceneX:i,sceneY:a},this.state);return[l-this.state.offsetLeft,s-this.state.offsetTop]},onChange:Qe(i=>{n(i,!1),Pu(e)&&nu(e,r)}),onSubmit:Qe(({viaKeyboard:i,nextOriginalText:a})=>{let l=!a.trim();if(n(a,l),!l&&i){let s=e.containerId?e.containerId:e.id;this.setState(d=>({selectedElementIds:Be({...d.selectedElementIds,[s]:!0},d)}))}l&&Cc(this.scene.getNonDeletedElements(),[e]),(!l||o)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&Qo(this.interactiveCanvas,this.state),this.focusContainer()}),element:e,excalidrawContainer:this.excalidrawContainerRef.current,app:this,autoSelect:!this.device.isTouchScreen}),this.deselectElements(),n(e.originalText,!1)}deselectElements(){this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(e,o){let r=this.getElementAtPosition(e,o,{includeBoundTextElement:!0});return r&&oe(r)&&!r.isDeleted?r:null}getElementShape(e){switch(e.type){case"rectangle":case"diamond":case"frame":case"magicframe":case"embeddable":case"image":case"iframe":case"text":case"selection":return t0(e);case"arrow":case"line":{let o=Ro.get(e)?.[0]??Ro.generateElementShape(e,null)[0],[,,,,r,n]=Wt(e,this.scene.getNonDeletedElementsMap());return vu(e)?a0(e,o,[e.x,e.y],e.angle,[r,n]):n0(o,[e.x,e.y],e.angle,[r,n])}case"ellipse":return r0(e);case"freedraw":{let[,,,,o,r]=Wt(e,this.scene.getNonDeletedElementsMap());return i0(e,[o,r],vu(e))}}}getBoundTextShape(e){let o=ct(e,this.scene.getNonDeletedElementsMap());return o?e.type==="arrow"?this.getElementShape({...o,...he.getBoundTextElementPosition(e,o,this.scene.getNonDeletedElementsMap())}):this.getElementShape(o):null}getElementAtPosition(e,o,r){let n=this.getElementsAtPosition(e,o,r?.includeBoundTextElement,r?.includeLockedElements);if(n.length>1){if(r?.preferSelected){for(let a=n.length-1;a>-1;a--)if(this.state.selectedElementIds[n[a].id])return n[a]}let i=n[n.length-1];return Ji({x:e,y:o,element:i,shape:this.getElementShape(i),threshold:this.getElementHitThreshold()/2,frameNameBound:Ee(i)?this.frameNameBoundsCache.get(i):null})?i:n[n.length-2]}return n.length===1?n[0]:null}getElementsAtPosition(e,o,r=!1,n=!1){let i=[],a=this.scene.getNonDeletedElementsMap();return(r&&n?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(s=>(n||!s.locked)&&(r||!(oe(s)&&s.containerId)))).filter(s=>this.hitElement(e,o,s)).filter(s=>{let d=Kc(s,a);return d&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?wu({x:e,y:o},d,a):!0}).filter(s=>qn(s)?(i.push(s),!1):!0).concat(i)}getElementHitThreshold(){return b1/this.state.zoom.value}hitElement(e,o,r,n=!0){if(n&&this.state.selectedElementIds[r.id]&&Jc([r],this.state)){let a=o0(r,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return cb([e,o],a)}return c0(e,o,this.getBoundTextShape(r))?!0:Ji({x:e,y:o,element:r,shape:this.getElementShape(r),threshold:this.getElementHitThreshold(),frameNameBound:Ee(r)?this.frameNameBoundsCache.get(r):null})}getTextBindableContainerAtPosition(e,o){let r=this.scene.getNonDeletedElements(),n=this.scene.getSelectedElements(this.state);if(n.length===1)return Dr(n[0],!1)?n[0]:null;let i=null;for(let a=r.length-1;a>=0;--a){if(r[a].isDeleted)continue;let[l,s,d,m]=Wt(r[a],this.scene.getNonDeletedElementsMap());if(hr(r[a])&&Ji({x:e,y:o,element:r[a],shape:this.getElementShape(r[a]),threshold:this.getElementHitThreshold()})){i=r[a];break}else if(l<e&&e<d&&s<o&&o<m){i=r[a];break}}return Dr(i,!1)?i:null}startTextEditing=({sceneX:e,sceneY:o,insertAtParentCenter:r=!0,container:n,autoEdit:i=!0})=>{let a=!1,l=r&&this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n);n&&l&&(ct(n,this.scene.getNonDeletedElementsMap())||(a=!0));let s=null,d=this.scene.getSelectedElements(this.state);d.length===1?oe(d[0])?s=d[0]:n?s=ct(d[0],this.scene.getNonDeletedElementsMap()):s=this.getTextElementAtPosition(e,o):s=this.getTextElementAtPosition(e,o);let m=s?.fontFamily||this.state.currentItemFontFamily,c=s?.lineHeight||Fr(m),u=this.state.currentItemFontSize;if(!s&&a&&n&&!hr(n)){let y=xb(Qt({fontSize:u,fontFamily:m}),c),k=gb(u,c),C=Math.max(n.height,k),w=Math.max(n.width,y);re(n,{height:C,width:w}),e=n.x+w/2,o=n.y+C/2,l&&(l=this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n))}let f=this.getTopLayerFrameAtSceneCoords({x:e,y:o}),b=s||bn({x:l?l.elementCenterX:e,y:l?l.elementCenterY:o,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:"",fontSize:u,fontFamily:m,textAlign:l?"center":this.state.currentItemTextAlign,verticalAlign:l?So.MIDDLE:Up,containerId:a?n?.id:void 0,groupIds:n?.groupIds??[],lineHeight:c,angle:n?.angle??0,frameId:f?f.id:null});if(!s&&a&&n&&re(n,{boundElements:(n.boundElements||[]).concat({type:"text",id:b.id})}),this.setState({editingElement:b}),!s)if(n&&a){let x=this.scene.getElementIndex(n.id);this.scene.insertElementAtIndex(b,x+1)}else this.scene.insertElement(b);i||s||n?this.handleTextWysiwyg(b,{isExistingElement:!!s}):this.setState({draggingElement:b,multiElement:null})};handleCanvasDoubleClick=e=>{if(this.state.multiElement||this.state.activeTool.type!=="selection")return;let o=this.scene.getSelectedElements(this.state);if(o.length===1&&_e(o[0])&&e[S.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==o[0].id)){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new he(o[0])});return}Lo(this.interactiveCanvas);let{x:r,y:n}=Ye(e,this.state);if(Br(this.state).length>0){let a=this.getElementAtPosition(r,n),l=a&&Lb(a,this.state.selectedGroupIds);if(l){this.store.shouldCaptureIncrement(),this.setState(s=>({...s,...Nt({editingGroupId:l,selectedElementIds:{[a.id]:!0}},this.scene.getNonDeletedElements(),s,this)}));return}}if(Lo(this.interactiveCanvas),!e[S.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let a=this.getElementAtPosition(r,n);if(Hi(a)){this.setState({activeEmbeddable:{element:a,state:"active"}});return}let l=this.getTextBindableContainerAtPosition(r,n);if(l&&(gr(l)||!jn(l.backgroundColor)||Ji({x:r,y:n,element:l,shape:this.getElementShape(l),threshold:this.getElementHitThreshold()}))){let s=Ic(l,this.state,this.scene.getNonDeletedElementsMap());r=s.x,n=s.y}this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:l})}};getElementLinkAtPosition=(e,o)=>{let r=this.scene.getNonDeletedElements().slice().reverse(),n=1/0;return r.find((i,a)=>(o&&i.id===o.id&&(n=a),i.link&&a<=n&&Uc(i,this.scene.getNonDeletedElementsMap(),this.state,[e.x,e.y],this.device.editor.isMobile)))};redirectToLink=(e,o)=>{let r=fn(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||o&&r>Vn||!o&&r!==0)return;let n=Ye(this.lastPointerDownEvent,this.state),i=this.scene.getNonDeletedElementsMap(),a=Uc(this.hitLinkElement,i,this.state,[n.x,n.y],this.device.editor.isMobile),l=Ye(this.lastPointerUpEvent,this.state),s=Uc(this.hitLinkElement,i,this.state,[l.x,l.y],this.device.editor.isMobile);if(a&&s){let d=this.hitLinkElement.link;if(d){d=$r(d);let m;if(this.props.onLinkOpen&&(m=fc("excalidraw-link",e.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:d},m)),!m?.defaultPrevented){let c=_c(d)?"_self":"_blank",u=window.open(void 0,c);u&&(u.opener=null,u.location=d)}}}};getTopLayerFrameAtSceneCoords=e=>{let o=this.scene.getNonDeletedElementsMap(),r=this.scene.getNonDeletedFramesLikes().filter(n=>wu(e,n,o));return r.length?r[r.length-1]:null};handleCanvasPointerMove=e=>{this.savePointer(e.clientX,e.clientY,this.state.cursorButton),this.lastPointerMoveEvent=e.nativeEvent,Re.pointers.has(e.pointerId)&&Re.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});let o=Re.initialScale;if(Re.pointers.size===2&&Re.lastCenter&&o&&Re.initialDistance){let u=Jh(Re.pointers),f=u.x-Re.lastCenter.x,b=u.y-Re.lastCenter.y;Re.lastCenter=u;let x=Qh(Array.from(Re.pointers.values())),y=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:x/Re.initialDistance,k=y?Ur(o*y):this.state.zoom.value;this.setState(C=>{let w=Wr({viewportX:u.x,viewportY:u.y,nextZoom:k},C);this.translateCanvas({zoom:w.zoom,scrollX:w.scrollX+2*(f/k),scrollY:w.scrollY+2*(b/k),shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else Re.lastCenter=Re.initialDistance=Re.initialScale=null;if(Ni||Ws||$g||zr(this.state))return;let n=og(Hg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(n?Lo(this.interactiveCanvas):Qo(this.interactiveCanvas,this.state));let i=Ye(e,this.state),{x:a,y:l}=i;if(!this.state.draggingElement&&H5(this.state.activeTool.type)){let{originOffset:u,snapLines:f}=$5(this.scene.getNonDeletedElements(),this.state,{x:a,y:l},e,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x=gc(b.snapLines,f),y=b.originSnapOffset?gc(b.originSnapOffset,u):u;return b.snapLines===x&&b.originSnapOffset===y?null:{snapLines:x,originSnapOffset:y}})}else this.state.draggingElement||this.setState(u=>u.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let u=he.handlePointerMove(e,a,l,this.state,this.scene.getNonDeletedElementsMap());u&&u!==this.state.editingLinearElement&&(0,_p.flushSync)(()=>{this.setState({editingLinearElement:u})}),u?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(i):(0,_p.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(eb(this.state.activeTool.type)){let{draggingElement:u}=this.state;Rr(u,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(u,[i],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(i)}if(this.state.multiElement){let{multiElement:u}=this.state,{x:f,y:b}=u,{points:x,lastCommittedPoint:y}=u,k=x[x.length-1];if(Qo(this.interactiveCanvas,this.state),k===y)fn(a-f,l-b,k[0],k[1])>=Js?re(u,{points:[...x,[a-f,l-b]]}):Fe(this.interactiveCanvas,Oe.POINTER);else if(x.length>2&&y&&fn(a-f,l-b,y[0],y[1])<Js)Fe(this.interactiveCanvas,Oe.POINTER),re(u,{points:x.slice(0,-1)});else{let[C,w]=to(a,l,e[S.CTRL_OR_CMD]?null:this.state.gridSize),[A,z]=u?.lastCommittedPoint??[0,0],I=C-f-A,M=w-b-z;vc(e)&&({width:I,height:M}=Tu(A+f,z+b,C,w)),Cl(x,this.state.zoom.value)&&Fe(this.interactiveCanvas,Oe.POINTER),re(u,{points:[...x.slice(0,-1),[A+I,z+M]]})}return}if(!!e.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let d=this.scene.getNonDeletedElements(),m=this.scene.getSelectedElements(this.state);if(m.length===1&&!n&&!this.state.editingLinearElement){if(this.state.selectedLinearElement&&this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l),!this.state.selectedLinearElement||this.state.selectedLinearElement.hoverPointIndex===-1){let u=ku(d,this.state,a,l,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(u&&u.transformHandleType){Fe(this.interactiveCanvas,Au(u));return}}}else if(m.length>1&&!n){let u=Iu(Ze(m),a,l,this.state.zoom,e.pointerType,this.device);if(u){Fe(this.interactiveCanvas,Au({transformHandleType:u}));return}}let c=this.getElementAtPosition(i.x,i.y);this.hitLinkElement=this.getElementLinkAtPosition(i,c),!_o(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(Fe(this.interactiveCanvas,Oe.POINTER),LE(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(PE(),c&&(c.link||Ht(c))&&this.state.selectedElementIds[c.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?Fe(this.interactiveCanvas,oe(c)?Oe.TEXT:Oe.CROSSHAIR):this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):n?Fe(this.interactiveCanvas,Oe.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l):e[S.CTRL_OR_CMD]?Fe(this.interactiveCanvas,Oe.AUTO):(c||this.isHittingCommonBoundingBoxOfSelectedElements(i,m))&&!c?.locked&&(c&&Hi(c)&&this.isIframeLikeElementCenter(c,e,a,l)?(Fe(this.interactiveCanvas,Oe.POINTER),this.setState({activeEmbeddable:{element:c,state:"hover"}})):(Fe(this.interactiveCanvas,Oe.MOVE),this.state.activeEmbeddable?.state==="hover"&&this.setState({activeEmbeddable:null})))))};handleEraser=(e,o,r)=>{this.eraserTrail.addPointToPath(r.x,r.y);let n=!1,i=new Set,a=this.scene.getNonDeletedElements(),l=u=>{for(let f of u){if(f.locked)return;if(e.altKey?this.elementsPendingErasure.delete(f.id)&&(n=!0):this.elementsPendingErasure.has(f.id)||(n=!0,this.elementsPendingErasure.add(f.id)),n&&f.groupIds?.length){let b=f.groupIds.at(-1);if(!i.has(b)){i.add(b);let x=ut(a,b);for(let y of x)e.altKey?this.elementsPendingErasure.delete(y.id):this.elementsPendingErasure.add(y.id)}}}},s=fn(o.lastCoords.x,o.lastCoords.y,r.x,r.y),d=this.getElementHitThreshold(),m={...o.lastCoords},c=0;for(;c<=s;){let u=this.getElementsAtPosition(m.x,m.y);if(l(u),c===s)break;c=Math.min(c+d,s);let f=c/s,b=(1-f)*m.x+f*r.x,x=(1-f)*m.y+f*r.y;m.x=b,m.y=x}if(o.lastCoords.x=r.x,o.lastCoords.y=r.y,n){for(let u of this.scene.getNonDeletedElements())Mt(u)&&(this.elementsPendingErasure.has(u.id)||this.elementsPendingErasure.has(u.containerId))&&(e.altKey?(this.elementsPendingErasure.delete(u.id),this.elementsPendingErasure.delete(u.containerId)):(this.elementsPendingErasure.add(u.id),this.elementsPendingErasure.add(u.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.triggerRender()}};handleTouchMove=e=>{Gs=!0};handleHoverSelectedLinearElement(e,o,r){let n=this.scene.getNonDeletedElementsMap(),i=he.getElement(e.elementId,n);if(i)if(this.state.selectedLinearElement){let a=-1,l=null;Ji({x:o,y:r,element:i,shape:this.getElementShape(i)})?(a=he.getPointIndexUnderCursor(i,n,this.state.zoom,o,r),l=he.getSegmentMidpointHitCoords(e,{x:o,y:r},this.state,this.scene.getNonDeletedElementsMap()),a>=0||l?Fe(this.interactiveCanvas,Oe.POINTER):this.hitElement(o,r,i)&&Fe(this.interactiveCanvas,Oe.MOVE)):this.hitElement(o,r,i)&&Fe(this.interactiveCanvas,Oe.MOVE),this.state.selectedLinearElement.hoverPointIndex!==a&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:a}}),he.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,l)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:l}})}else Fe(this.interactiveCanvas,Oe.AUTO)}handleCanvasPointerDown=e=>{if(this.maybeCleanupAfterMissingPointerUp(e.nativeEvent),this.maybeUnfollowRemoteUser(),this.state.contextMenu&&this.setState({contextMenu:null}),this.state.snapLines&&this.setAppState({snapLines:[]}),this.updateGestureOnPointerDown(e),e.pointerType==="touch"&&this.state.draggingElement&&this.state.draggingElement.type==="freedraw"){let d=this.state.draggingElement;this.updateScene({...d.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(m=>m.id!==d.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:Be(Object.keys(this.state.selectedElementIds).filter(m=>m!==d.id).reduce((m,c)=>(m[c]=this.state.selectedElementIds[c],m),{}),this.state)},storeAction:D.UPDATE});return}let o=document.getSelection();if(o?.anchorNode&&o.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(e),!this.state.penDetected&&e.pointerType==="pen"&&this.setState(d=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(e.pointerType)&&(this.device=Bi(this.device,{isTouchScreen:!0})),Ws||(this.lastPointerDownEvent=e,this.handleCanvasPanUsingWheelOrSpaceDrag(e)))return;if(this.setState({lastPointerDownWith:e.pointerType,cursorButton:"down"}),this.savePointer(e.clientX,e.clientY,"down"),e.button===ln.ERASER&&this.state.activeTool.type!==st.eraser){this.setState({activeTool:it(this.state,{type:st.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(e);let d=()=>{m(),c?.(),_o(this.state)&&this.setState({activeTool:it(this.state,{...this.state.activeTool.lastActiveTool||{type:st.selection},lastActiveToolBeforeEraser:null})})},m=at(window,"pointerup",d,{once:!0}),c;requestAnimationFrame(()=>{c=this.missingPointerEventCleanupEmitter.once(d)})});return}if(e.button!==ln.MAIN&&e.button!==ln.TOUCH&&e.button!==ln.ERASER||Re.pointers.size>1)return;let r=this.initialPointerDownState(e);if(this.setState({selectedElementsAreBeingDragged:!1}),this.handleDraggingScrollBar(e,r)||(this.clearSelectionIfNotUsingSelection(),this.updateBindingEnabledOnPointerMove(e),this.handleSelectionOnPointerDown(e,r))||!(!this.state.penMode||e.pointerType!=="touch"||this.state.activeTool.type==="selection"||this.state.activeTool.type==="text"||this.state.activeTool.type==="image"))return;if(this.state.activeTool.type==="text")this.handleTextOnPointerDown(e,r);else if(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")this.handleLinearElementOnPointerDown(e,this.state.activeTool.type,r);else if(this.state.activeTool.type==="image"){Fe(this.interactiveCanvas,Oe.CROSSHAIR);let d=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!d)return;this.setState({draggingElement:d,editingElement:d,pendingImageElementId:null,multiElement:null});let{x:m,y:c}=Ye(e,this.state),u=this.getTopLayerFrameAtSceneCoords({x:m,y:c});re(d,{x:m,y:c,frameId:u?u.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(e,this.state.activeTool.type,r):this.state.activeTool.type==="custom"?Qo(this.interactiveCanvas,this.state):this.state.activeTool.type===st.frame||this.state.activeTool.type===st.magicframe?this.createFrameElementOnPointerDown(r,this.state.activeTool.type):this.state.activeTool.type==="laser"?this.laserTrails.startPath(r.lastCoords.x,r.lastCoords.y):this.state.activeTool.type!=="eraser"&&this.state.activeTool.type!=="hand"&&this.createGenericElementOnPointerDown(this.state.activeTool.type,r);this.props?.onPointerDown?.(this.state.activeTool,r),this.onPointerDownEmitter.trigger(this.state.activeTool,r,e),this.state.activeTool.type==="eraser"&&this.eraserTrail.startPath(r.lastCoords.x,r.lastCoords.y);let i=this.onPointerMoveFromPointerDownHandler(r),a=this.onPointerUpFromPointerDownHandler(r),l=this.onKeyDownFromPointerDownHandler(r),s=this.onKeyUpFromPointerDownHandler(r);this.missingPointerEventCleanupEmitter.once(d=>a(d||e.nativeEvent)),(!this.state.viewModeEnabled||this.state.activeTool.type==="laser")&&(window.addEventListener("pointermove",i),window.addEventListener("pointerup",a),window.addEventListener("keydown",l),window.addEventListener("keyup",s),r.eventListeners.onMove=i,r.eventListeners.onUp=a,r.eventListeners.onKeyUp=s,r.eventListeners.onKeyDown=l)};handleCanvasPointerUp=e=>{this.removePointer(e),this.lastPointerUpEvent=e;let o=Ye({clientX:e.clientX,clientY:e.clientY},this.state),r=e.timeStamp-(this.lastPointerDownEvent?.timeStamp??0);if(this.device.editor.isMobile&&r<300){let n=this.getElementAtPosition(o.x,o.y);if(Hi(n)&&this.isIframeLikeElementCenter(n,e,o.x,o.y)){this.handleEmbeddableCenterClick(n);return}}if(this.device.isTouchScreen){let n=this.getElementAtPosition(o.x,o.y);this.hitLinkElement=this.getElementLinkAtPosition(o,n)}this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?r<300&&Hi(this.hitLinkElement)&&!m0(this.hitLinkElement,this.scene.getNonDeletedElementsMap(),this.state,[o.x,o.y])?this.handleEmbeddableCenterClick(this.hitLinkElement):this.redirectToLink(e,this.device.isTouchScreen):this.state.viewModeEnabled&&this.setState({activeEmbeddable:null,selectedElementIds:{}})};maybeOpenContextMenuAfterPointerDownOnTouchDevices=e=>{e.pointerType==="touch"&&(Gs=!1,Wn?Gs=!0:Wn=window.setTimeout(()=>{Wn=0,Gs||this.handleCanvasContextMenu(e)},T1))};resetContextMenuTimer=()=>{clearTimeout(Wn),Wn=0,Gs=!1};maybeCleanupAfterMissingPointerUp=e=>{Vs?.(),this.missingPointerEventCleanupEmitter.trigger(e).clear()};handleCanvasPanUsingWheelOrSpaceDrag=e=>{if(!(Re.pointers.size<=1&&(e.button===ln.WHEEL||e.button===ln.MAIN&&Ni||zr(this.state)||this.state.viewModeEnabled))||oe(this.state.editingElement))return!1;Ws=!0,e.preventDefault();let o=!1,r=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);Fe(this.interactiveCanvas,Oe.GRABBING);let{clientX:n,clientY:i}=e,a=Ep(s=>{let d=n-s.clientX,m=i-s.clientY;if(n=s.clientX,i=s.clientY,r&&!o&&(Math.abs(d)>1||Math.abs(m)>1)){o=!0;let c=f=>{document.body.removeEventListener("paste",c),f.stopPropagation()},u=()=>{setTimeout(()=>{document.body.removeEventListener("paste",c),window.removeEventListener("pointerup",u)},100)};document.body.addEventListener("paste",c),window.addEventListener("pointerup",u)}this.translateCanvas({scrollX:this.state.scrollX-d/this.state.zoom.value,scrollY:this.state.scrollY-m/this.state.zoom.value})}),l=Qe(Vs=()=>{Vs=null,Ws=!1,Ni||(this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):Qo(this.interactiveCanvas,this.state)),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",l),window.removeEventListener("blur",l),a.flush()});return window.addEventListener("blur",l),window.addEventListener("pointermove",a,{passive:!0}),window.addEventListener("pointerup",l),!0};updateGestureOnPointerDown(e){Re.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),Re.pointers.size===2&&(Re.lastCenter=Jh(Re.pointers),Re.initialScale=this.state.zoom.value,Re.initialDistance=Qh(Array.from(Re.pointers.values())))}initialPointerDownState(e){let o=Ye(e,this.state),r=this.scene.getSelectedElements(this.state),[n,i,a,l]=Ze(r);return{origin:o,withCmdOrCtrl:e[S.CTRL_OR_CMD],originInGrid:bl(to(o.x,o.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:og(Hg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop),lastCoords:{...o},originalElements:this.scene.getNonDeletedElements().reduce((s,d)=>(s.set(d.id,Rc(d)),s),new Map),resize:{handleType:!1,isResizing:!1,offset:{x:0,y:0},arrowDirection:"origin",center:{x:(a+n)/2,y:(l+i)/2}},hit:{element:null,allHitElements:[],wasAddedToSelection:!1,hasBeenDuplicated:!1,hasHitCommonBoundingBoxOfSelectedElements:this.isHittingCommonBoundingBoxOfSelectedElements(o,r)},drag:{hasOccurred:!1,offset:null},eventListeners:{onMove:null,onUp:null,onKeyUp:null,onKeyDown:null},boxSelection:{hasOccurred:!1}}}handleDraggingScrollBar(e,o){if(!(o.scrollbars.isOverEither&&!this.state.multiElement))return!1;$g=!0,o.lastCoords.x=e.clientX,o.lastCoords.y=e.clientY;let r=Ep(i=>{i.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(i,o)}),n=Qe(()=>{Vs=null,$g=!1,Qo(this.interactiveCanvas,this.state),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n),r.flush()});return Vs=n,window.addEventListener("pointermove",r),window.addEventListener("pointerup",n),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})};handleSelectionOnPointerDown=(e,o)=>{if(this.state.activeTool.type==="selection"){let r=this.scene.getNonDeletedElements(),n=this.scene.getNonDeletedElementsMap(),i=this.scene.getSelectedElements(this.state);if(i.length===1&&!this.state.editingLinearElement&&!(this.state.selectedLinearElement&&this.state.selectedLinearElement.hoverPointIndex!==-1)){let a=ku(r,this.state,o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);a!=null&&(this.setState({resizingElement:a.element}),o.resize.handleType=a.transformHandleType)}else i.length>1&&(o.resize.handleType=Iu(Ze(i),o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.device));if(o.resize.handleType)o.resize.isResizing=!0,o.resize.offset=bl(F0(o.resize.handleType,i,n,o.origin.x,o.origin.y)),i.length===1&&_e(i[0])&&i[0].points.length===2&&(o.resize.arrowDirection=z0(o.resize.handleType,i[0]));else{if(this.state.selectedLinearElement){let s=this.state.editingLinearElement||this.state.selectedLinearElement,d=he.handlePointerDown(e,this.state,this.store,o.origin,s,this);if(d.hitElement&&(o.hit.element=d.hitElement),d.linearElementEditor&&(this.setState({selectedLinearElement:d.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:d.linearElementEditor})),d.didAddPoint)return!0}if(o.hit.element=o.hit.element??this.getElementAtPosition(o.origin.x,o.origin.y),o.hit.element&&this.getElementLinkAtPosition({x:o.origin.x,y:o.origin.y},o.hit.element))return!1;o.hit.allHitElements=this.getElementsAtPosition(o.origin.x,o.origin.y);let a=o.hit.element,l=o.hit.allHitElements.some(s=>this.isASelectedElement(s));if((a===null||!l)&&!e.shiftKey&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(a),this.state.editingLinearElement)this.setState({selectedElementIds:Be({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(a!=null){if(e[S.CTRL_OR_CMD])return this.state.selectedElementIds[a.id]||(o.hit.wasAddedToSelection=!0),this.setState(s=>({..._b(s,a),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[a.id]||(this.state.editingGroupId&&!Xi(a,this.state.editingGroupId)&&this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!l&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(s=>{let d={...s.selectedElementIds,[a.id]:!0},m=[];if(Object.keys(s.selectedElementIds).forEach(c=>{let u=this.scene.getElement(c);u&&m.push(u)}),Ee(a))xn(m,a.id).forEach(c=>{delete d[c.id]});else if(a.frameId)d[a.frameId]&&delete d[a.id];else{let c=a.groupIds,u=new Set(c.flatMap(f=>ut(this.scene.getNonDeletedElements(),f)).filter(f=>Ee(f)).map(f=>f.id));u.size>0&&m.forEach(f=>{f.frameId&&u.has(f.frameId)&&(delete d[f.id],f.groupIds.flatMap(b=>ut(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete d[b.id]}))})}return{...Nt({editingGroupId:s.editingGroupId,selectedElementIds:d},this.scene.getNonDeletedElements(),s,this),showHyperlinkPopup:a.link||Ht(a)?"info":!1}}),o.hit.wasAddedToSelection=!0))}this.setState({previousSelectedElementIds:this.state.selectedElementIds})}}return!1};isASelectedElement(e){return e!=null&&this.state.selectedElementIds[e.id]}isHittingCommonBoundingBoxOfSelectedElements(e,o){if(o.length<2)return!1;let r=this.getElementHitThreshold(),[n,i,a,l]=Ze(o);return e.x>n-r&&e.x<a+r&&e.y>i-r&&e.y<l+r}handleTextOnPointerDown=(e,o)=>{if(oe(this.state.editingElement))return;let r=o.origin.x,n=o.origin.y,i=this.getElementAtPosition(r,n,{includeBoundTextElement:!0}),a=this.getTextBindableContainerAtPosition(r,n);gr(i)&&(a=i,r=i.x+i.width/2,n=i.y+i.height/2),this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:a,autoEdit:!1}),Lo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:it(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(e,o,r)=>{let[n,i]=to(r.origin.x,r.origin.y,null),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),l=Bb({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:null,simulatePressure:e.pressure===.5,locked:!1,frameId:a?a.id:null});this.setState(m=>{let c={...m.selectedElementIds};return delete c[l.id],{selectedElementIds:Be(c,m)}});let s=l.simulatePressure?l.pressures:[...l.pressures,e.pressure];re(l,{points:[[0,0]],pressures:s});let d=Ml(r.origin,this);this.scene.insertElement(l),this.setState({draggingElement:l,editingElement:l,startBoundElement:d,suggestedBindings:[]})};insertIframeElement=({sceneX:e,sceneY:o,width:r,height:n})=>{let[i,a]=to(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),l=Fb({type:"iframe",x:i,y:a,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("iframe"),opacity:this.state.currentItemOpacity,locked:!1,width:r,height:n});return this.scene.insertElement(l),l};insertEmbeddableElement=({sceneX:e,sceneY:o,link:r})=>{let[n,i]=to(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=ti(r);if(!a)return;a.error instanceof URIError&&this.setToast({message:g("toast.unrecognizedLinkFormat"),closable:!0});let l=su({type:"embeddable",x:n,y:i,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("embeddable"),opacity:this.state.currentItemOpacity,locked:!1,width:a.intrinsicSize.w,height:a.intrinsicSize.h,link:r});return this.scene.insertElement(l),l};createImageElement=({sceneX:e,sceneY:o,addToFrameUnderCursor:r=!0})=>{let[n,i]=to(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=r?this.getTopLayerFrameAtSceneCoords({x:n,y:i}):null;return Pc({type:"image",x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:null,opacity:this.state.currentItemOpacity,locked:!1,frameId:a?a.id:null})};handleLinearElementOnPointerDown=(e,o,r)=>{if(this.state.multiElement){let{multiElement:n}=this.state;if(n.type==="line"&&Cl(n.points,this.state.zoom.value)){re(n,{lastCommittedPoint:n.points[n.points.length-1]}),this.actionManager.executeAction(zo);return}let{x:i,y:a,lastCommittedPoint:l}=n;if(n.points.length>1&&l&&fn(r.origin.x-i,r.origin.y-a,l[0],l[1])<Js){this.actionManager.executeAction(zo);return}this.setState(s=>({selectedElementIds:Be({...s.selectedElementIds,[n.id]:!0},s)})),re(n,{lastCommittedPoint:n.points[n.points.length-1]}),Fe(this.interactiveCanvas,Oe.POINTER)}else{let[n,i]=to(r.origin.x,r.origin.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),{currentItemStartArrowhead:l,currentItemEndArrowhead:s}=this.state,[d,m]=o==="arrow"?[l,s]:[null,null],c=Rl({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.state.currentItemRoundness==="round"?{type:To.PROPORTIONAL_RADIUS}:null,startArrowhead:d,endArrowhead:m,locked:!1,frameId:a?a.id:null});this.setState(f=>{let b={...f.selectedElementIds};return delete b[c.id],{selectedElementIds:Be(b,f)}}),re(c,{points:[...c.points,[0,0]]});let u=Ml(r.origin,this);this.scene.insertElement(c),this.setState({draggingElement:c,editingElement:c,startBoundElement:u,suggestedBindings:[]})}};getCurrentItemRoundness(e){return this.state.currentItemRoundness==="round"?{type:Ui(e)?To.ADAPTIVE_RADIUS:To.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(e,o)=>{let[r,n]=to(o.origin.x,o.origin.y,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),i=this.getTopLayerFrameAtSceneCoords({x:r,y:n}),a={x:r,y:n,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.getCurrentItemRoundness(e),locked:!1,frameId:i?i.id:null},l;e==="embeddable"?l=su({type:"embeddable",...a}):l=gn({type:e,...a}),l.type==="selection"?this.setState({selectionElement:l,draggingElement:l}):(this.scene.insertElement(l),this.setState({multiElement:null,draggingElement:l,editingElement:l}))};createFrameElementOnPointerDown=(e,o)=>{let[r,n]=to(e.origin.x,e.origin.y,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),i={x:r,y:n,opacity:this.state.currentItemOpacity,locked:!1,...jo},a=o===st.magicframe?Pl(i):Lc(i);this.scene.insertElement(a),this.setState({multiElement:null,draggingElement:a,editingElement:a})};maybeCacheReferenceSnapPoints(e,o,r=!1){an({event:e,appState:this.state,selectedElements:o})&&(r||!Vo.getReferenceSnapPoints())&&Vo.setReferenceSnapPoints(O5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(e,o,r=!1){an({event:e,appState:this.state,selectedElements:o})&&(r||!Vo.getVisibleGaps())&&Vo.setVisibleGaps(N5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(e){return Qe(o=>{this.maybeHandleResize(e,o)||this.maybeDragNewGenericElement(e,o)})}onKeyUpFromPointerDownHandler(e){return Qe(o=>{o.key===S.ALT&&o.preventDefault(),!this.maybeHandleResize(e,o)&&this.maybeDragNewGenericElement(e,o)})}onPointerMoveFromPointerDownHandler(e){return Ep(o=>{if(e.drag.offset===null&&(e.drag.offset=bl($0(this.scene.getSelectedElements(this.state),e.origin.x,e.origin.y))),!(o.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(o,e))return;let n=Ye(o,this.state);if(_o(this.state)){this.handleEraser(o,e,n);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(n.x,n.y);let[i,a]=to(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize);if(!e.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&fn(n.x,n.y,e.origin.x,e.origin.y)<Vn)return;if(e.resize.isResizing&&(e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeHandleResize(e,o)))return!0;let l=this.scene.getNonDeletedElementsMap();if(this.state.selectedLinearElement){let c=this.state.editingLinearElement||this.state.selectedLinearElement;if(he.shouldAddMidpoint(this.state.selectedLinearElement,n,this.state,l)){let f=he.addMidpoint(this.state.selectedLinearElement,n,this.state,!o[S.CTRL_OR_CMD],l);if(!f)return;(0,_p.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}})});return}else if(c.pointerDownState.segmentMidpoint.value!==null&&!c.pointerDownState.segmentMidpoint.added)return;if(he.handlePointDragging(o,this.state,n.x,n.y,(f,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(f,b)},c,this.scene.getNonDeletedElementsMap())){e.lastCoords.x=n.x,e.lastCoords.y=n.y,e.drag.hasOccurred=!0,this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging&&this.setState({editingLinearElement:{...this.state.editingLinearElement,isDragging:!0}}),this.state.selectedLinearElement.isDragging||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,isDragging:!0}});return}}let s=e.hit.allHitElements.some(c=>this.isASelectedElement(c)),d=this.state.editingLinearElement&&o.shiftKey&&this.state.editingLinearElement.elementId===e.hit.element?.id;if((s||e.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!d){let c=this.scene.getSelectedElements(this.state);if(c.every(b=>b.locked))return;let u=c.find(b=>Ee(b)),f=this.getTopLayerFrameAtSceneCoords(n);if(this.setState({frameToHighlight:f&&!u?f:null}),e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),c.length>0&&!e.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let b={x:n.x-e.origin.x,y:n.y-e.origin.y},x=[...e.originalElements.values()],y=o.shiftKey;if(y){let w=Math.abs(b.x),A=Math.abs(b.y),z=y&&w<A,I=y&&w>A;z&&(b.x=0),I&&(b.y=0)}this.maybeCacheVisibleGaps(o,c),this.maybeCacheReferenceSnapPoints(o,c);let{snapOffset:k,snapLines:C}=F5(x,b,this.state,o,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:C}),!this.state.editingFrame&&B0(e,c,b,this.state,this.scene,k,o[S.CTRL_OR_CMD]?null:this.state.gridSize),this.setState({suggestedBindings:Ec(c,this)}),o.altKey&&!e.hit.hasBeenDuplicated){e.hit.hasBeenDuplicated=!0;let w=[],A=[],z=new Map,I=new Map,M=e.hit.element,_=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(W=>W.id)),$=this.scene.getElementsIncludingDeleted();for(let W of $)if(_.has(W.id)||W.id===M?.id&&e.hit.wasAddedToSelection){let j=Dc(this.state.editingGroupId,z,W),R=e.originalElements.get(W.id);re(j,{x:R.x,y:R.y}),e.originalElements.set(j.id,j),w.push(j),A.push(W),I.set(W.id,j.id)}else w.push(W);let O=[...w,...A];go(O,fe(A)),Sc(w,A,I),wc(O,A,I,"duplicatesServeAsOld"),Vc(O,A,I),this.scene.replaceAllElements(O),this.maybeCacheVisibleGaps(o,c,!0),this.maybeCacheReferenceSnapPoints(o,c,!0)}return}}let m=this.state.draggingElement;if(m){if(m.type==="freedraw"){let c=m.points,u=n.x-m.x,f=n.y-m.y,b=c.length>0&&c[c.length-1];if(!(b&&b[0]===u&&b[1]===f)){let y=m.simulatePressure?m.pressures:[...m.pressures,o.pressure];re(m,{points:[...c,[u,f]],pressures:y})}}else if(_e(m)){e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let c=m.points,u=i-m.x,f=a-m.y;vc(o)&&c.length===2&&({width:u,height:f}=Tu(m.x,m.y,n.x,n.y)),c.length===1?re(m,{points:[...c,[u,f]]}):c.length===2&&re(m,{points:[...c.slice(0,-1),[u,f]]}),Rr(m,!1)&&this.maybeSuggestBindingsForLinearElementAtCoords(m,[n],this.state.startBoundElement)}else e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeDragNewGenericElement(e,o);if(this.state.activeTool.type==="selection"){e.boxSelection.hasOccurred=!0;let c=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)he.handleBoxSelection(o,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let u=!0;!o.shiftKey&&ze(c,this.state)&&(e.withCmdOrCtrl&&e.hit.element?this.setState(b=>Nt({...b,selectedElementIds:{[e.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):u=!1);let f=H0(c,m,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x={...u&&b.selectedElementIds,...f.reduce((y,k)=>(y[k.id]=!0,y),{})};return e.hit.element&&(f.length?delete x[e.hit.element.id]:x[e.hit.element.id]=!0),b=u?b:{...b,selectedGroupIds:{},editingGroupId:null},{...Nt({editingGroupId:b.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:f.length===1&&_e(f[0])?new he(f[0]):null,showHyperlinkPopup:f.length===1&&(f[0].link||Ht(f[0]))?"info":!1}})}}}})}handlePointerMoveOverScrollbars(e,o){if(o.scrollbars.isOverHorizontal){let r=e.clientX,n=r-o.lastCoords.x;return this.translateCanvas({scrollX:this.state.scrollX-n/this.state.zoom.value}),o.lastCoords.x=r,!0}if(o.scrollbars.isOverVertical){let r=e.clientY,n=r-o.lastCoords.y;return this.translateCanvas({scrollY:this.state.scrollY-n/this.state.zoom.value}),o.lastCoords.y=r,!0}return!1}onPointerUpFromPointerDownHandler(e){return Qe(o=>{this.removePointer(o),e.eventListeners.onMove&&e.eventListeners.onMove.flush();let{draggingElement:r,resizingElement:n,multiElement:i,activeTool:a,isResizing:l,isRotating:s}=this.state;this.setState(f=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:i||oe(this.state.editingElement)?this.state.editingElement:null,snapLines:gc(f.snapLines,[]),originSnapOffset:null})),Vo.setReferenceSnapPoints(null),Vo.setVisibleGaps(null),this.savePointer(o.clientX,o.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let d=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!e.boxSelection.hasOccurred&&e.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(zo);else{let f=he.handlePointerUp(o,this.state.editingLinearElement,this.state,this);f!==this.state.editingLinearElement&&this.setState({editingLinearElement:f,suggestedBindings:[]})}else if(this.state.selectedLinearElement)if(e.hit?.element?.id!==this.state.selectedLinearElement.elementId)this.scene.getSelectedElements(this.state).length>1&&this.setState({selectedLinearElement:null});else{let f=he.handlePointerUp(o,this.state.selectedLinearElement,this.state,this),{startBindingElement:b,endBindingElement:x}=f,y=this.scene.getElement(f.elementId);Rr(y)&&yc(y,b,x,d),f!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...f,selectedPointsIndices:null},suggestedBindings:[]})}if(this.missingPointerEventCleanupEmitter.clear(),window.removeEventListener("pointermove",e.eventListeners.onMove),window.removeEventListener("pointerup",e.eventListeners.onUp),window.removeEventListener("keydown",e.eventListeners.onKeyDown),window.removeEventListener("keyup",e.eventListeners.onKeyUp),this.state.pendingImageElementId&&this.setState({pendingImageElementId:null}),this.props?.onPointerUp?.(a,e),this.onPointerUpEmitter.trigger(this.state.activeTool,e,o),r?.type==="freedraw"){let f=Ye(o,this.state),b=r.points,x=f.x-r.x,y=f.y-r.y;x===b[0][0]&&y===b[0][1]&&(y+=1e-4,x+=1e-4);let k=r.simulatePressure?[]:[...r.pressures,o.pressure];re(r,{points:[...b,[x,y]],pressures:k,lastCommittedPoint:[x,y]}),this.actionManager.executeAction(zo);return}if(mn(r)){let f=r;try{this.initializeImageDimensions(f),this.setState({selectedElementIds:Be({[f.id]:!0},this.state)},()=>{this.actionManager.executeAction(zo)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(x=>x.id!==f.id)),this.actionManager.executeAction(zo)}return}if(_e(r)){r.points.length>1&&this.store.shouldCaptureIncrement();let f=Ye(o,this.state);!e.drag.hasOccurred&&r&&!i?(re(r,{points:[...r.points,[f.x-r.x,f.y-r.y]]}),this.setState({multiElement:r,editingElement:this.state.draggingElement})):e.drag.hasOccurred&&!i&&(Jn(this.state)&&Rr(r,!1)&&Al(r,this.state,f,this),this.setState({suggestedBindings:[],startBoundElement:null}),a.locked?this.setState(b=>({draggingElement:null})):(Lo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:it(this.state,{type:"selection"}),selectedElementIds:Be({...b.selectedElementIds,[r.id]:!0},b),selectedLinearElement:new he(r)}))));return}if(oe(r)){let f=kb(Qt({fontSize:r.fontSize,fontFamily:r.fontFamily}),r.lineHeight);r.width<f&&re(r,{autoResize:!0}),this.resetCursor(),this.handleTextWysiwyg(r,{isExistingElement:!0})}if(a.type!=="selection"&&r&&ri(r)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==r.id),appState:{draggingElement:null},storeAction:D.UPDATE});return}if(r){if(e.drag.hasOccurred){let f=Ye(o,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let b=this.scene.getElement(this.state.selectedLinearElement.elementId);if(b?.frameId){let x=Kc(b,d);x&&b&&(C0(b,x,this.scene.getNonDeletedElementsMap())||(re(b,{groupIds:[]}),Zc([b],this.scene.getNonDeletedElementsMap()),this.scene.triggerUpdate()))}}else{let b=this.getTopLayerFrameAtSceneCoords(f),x=this.scene.getSelectedElements(this.state),y=this.scene.getElementsMapIncludingDeleted(),k=C=>{if(C.length>0){for(let w of C){let A=w.groupIds.indexOf(this.state.editingGroupId);re(w,{groupIds:w.groupIds.slice(0,A)},!1)}y.forEach(w=>{w.groupIds.length&&ut(y,w.groupIds[w.groupIds.length-1]).length<2&&re(w,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let C=x.filter(w=>w.frameId!==b.id&&Cu(w,y,this.state));this.state.editingGroupId&&k(C),y=Yc(y,C,b)}else if(!b&&this.state.editingGroupId){let C=x.filter(w=>w.frameId&&!Cu(w,y,this.state));k(C)}y=br(y,this.state,this),this.scene.replaceAllElements(y)}}if(Ee(r)){let f=k0(this.scene.getElementsIncludingDeleted(),r,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(Yc(this.scene.getElementsMapIncludingDeleted(),f,r))}re(r,P0(r))}if(n&&this.store.shouldCaptureIncrement(),n&&ri(n)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==n.id),storeAction:D.UPDATE}),e.resize.isResizing){let f=br(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(x=>Ee(x));for(let x of b)f=Xc(f,ta(this.scene.getElementsIncludingDeleted(),x,this.state,d),x,this);this.scene.replaceAllElements(f)}let m=e.hit.element;this.state.selectedLinearElement?.elementId!==m?.id&&_e(m)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new he(m)});let c=this.lastPointerDownEvent,u=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(_o(this.state)&&c&&u){if(this.eraserTrail.endPath(),fn(c.clientX,c.clientY,u.clientX,u.clientY)===0){let b=Ye({clientX:u.clientX,clientY:u.clientY},this.state);this.getElementsAtPosition(b.x,b.y).forEach(y=>this.elementsPendingErasure.add(y.id))}this.eraseElements();return}else this.elementsPendingErasure.size&&this.restoreReadyToEraseElements();if(m&&!e.drag.hasOccurred&&!e.hit.wasAddedToSelection&&(!this.state.editingLinearElement||!e.boxSelection.hasOccurred)&&(o.shiftKey&&!this.state.editingLinearElement?this.state.selectedElementIds[m.id]?Mc(this.state,m)?this.setState(f=>{let b={...f.selectedElementIds};for(let x of m.groupIds.flatMap(y=>ut(this.scene.getNonDeletedElements(),y)))delete b[x.id];return{selectedGroupIds:{...f.selectedElementIds,...m.groupIds.map(x=>({[x]:!1})).reduce((x,y)=>({...x,...y}),{})},selectedElementIds:Be(b,f)}}):this.state.selectedLinearElement?.isDragging||this.setState(f=>{let b={...f.selectedElementIds};delete b[m.id];let x=ye(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:x.length===1&&_e(x[0])?new he(x[0]):f.selectedLinearElement}}):m.frameId&&this.state.selectedElementIds[m.frameId]?this.setState(f=>{let b={...f.selectedElementIds,[m.id]:!0};return delete b[m.frameId],(this.scene.getElement(m.frameId)?.groupIds??[]).flatMap(x=>ut(this.scene.getNonDeletedElements(),x)).forEach(x=>{delete b[x.id]}),{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),showHyperlinkPopup:m.link||Ht(m)?"info":!1}}):this.setState(f=>({selectedElementIds:Be({...f.selectedElementIds,[m.id]:!0},f)})):this.setState(f=>({...Nt({editingGroupId:f.editingGroupId,selectedElementIds:{[m.id]:!0}},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:_e(m)&&f.selectedLinearElement?.elementId!==m.id?new he(m):f.selectedLinearElement}))),!e.drag.hasOccurred&&!this.state.isResizing&&(m&&s0({x:e.origin.x,y:e.origin.y,element:m,shape:this.getElementShape(m),threshold:this.getElementHitThreshold(),frameNameBound:Ee(m)?this.frameNameBoundsCache.get(m):null},d)||!m&&e.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),Fe(this.interactiveCanvas,Oe.AUTO);return}if(!a.locked&&a.type!=="freedraw"&&r&&r.type!=="selection"&&this.setState(f=>({selectedElementIds:Be({...f.selectedElementIds,[r.id]:!0},f),showHyperlinkPopup:Ht(r)&&!r.link?"editor":f.showHyperlinkPopup})),(a.type!=="selection"||ze(this.scene.getNonDeletedElements(),this.state)||!Tt(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),e.drag.hasOccurred||l||s){let f=this.scene.getSelectedElements(this.state).filter(_e);Il(f,this,Jn(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[])}if(a.type==="laser"){this.laserTrails.endPath();return}!a.locked&&a.type!=="freedraw"?(Lo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:it(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),m&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&Re.pointers.size<=1&&Hi(m)&&this.isIframeLikeElementCenter(m,this.lastPointerUpEvent,e.origin.x,e.origin.y)&&this.handleEmbeddableCenterClick(m)})}restoreReadyToEraseElements=()=>{this.elementsPendingErasure=new Set,this.triggerRender()};eraseElements=()=>{let e=!1,o=this.scene.getElementsIncludingDeleted().map(r=>this.elementsPendingErasure.has(r.id)||r.frameId&&this.elementsPendingErasure.has(r.frameId)||Mt(r)&&this.elementsPendingErasure.has(r.containerId)?(e=!0,pe(r,{isDeleted:!0})):r);this.elementsPendingErasure=new Set,e&&(this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(o))};initializeImage=async({imageFile:e,imageElement:o,showCursorImagePreview:r=!1})=>{if(!zc(e))throw new Error(g("errors.unsupportedFileType"));let n=e.type;if(Fe(this.interactiveCanvas,"wait"),n===Dt.svg)try{e=hu(await e0(await e.text()),e.name)}catch(d){throw console.warn(d),new Error(g("errors.svgImageInsertError"))}let i=await(this.props.generateIdForFile?.(e)||Vb(e));if(!i)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(g("errors.imageInsertError"));if(!this.files[i]?.dataURL){try{e=await Nl(e,{maxWidthOrHeight:D1})}catch(d){console.error("Error trying to resizing image file on insertion",d)}if(e.size>Vp)throw new Error(g("errors.fileTooBig",{maxSize:`${Math.trunc(Vp/1024/1024)}MB`}))}if(r){let d=this.files[i]?.dataURL,m=d&&Kb(d);this.setImagePreviewCursor(m||e)}let l=this.files[i]?.dataURL||await $c(e),s=re(o,{fileId:i},!1);return new Promise(async(d,m)=>{try{this.files={...this.files,[i]:{mimeType:n,id:i,dataURL:l,created:Date.now(),lastRetrieved:Date.now()}};let c=this.imageCache.get(i);c||(this.addNewImagesToImageCache(),await this.updateImageCache([s])),c?.image instanceof Promise&&await c.image,this.state.pendingImageElementId!==s.id&&this.state.draggingElement?.id!==s.id&&this.initializeImageDimensions(s,!0),d(s)}catch(c){console.error(c),m(new Error(g("errors.imageInsertError")))}finally{r||Lo(this.interactiveCanvas)}})};insertImageElement=async(e,o,r)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}this.scene.insertElement(e);try{return await this.initializeImage({imageFile:o,imageElement:e,showCursorImagePreview:r})}catch(n){return re(e,{isDeleted:!0}),this.actionManager.executeAction(zo),this.setState({errorMessage:n.message||g("errors.imageInsertError")}),null}};setImagePreviewCursor=async e=>{let r;try{r=await Nl(e,{maxWidthOrHeight:96})}catch(i){throw i.cause==="UNSUPPORTED"?new Error(g("errors.unsupportedFileType")):i}let n=await $c(r);if(e.type===Dt.svg){let i=await qb(n),a=Math.min(i.height,96),l=a*(i.width/i.height);l>96&&(l=96,a=l*(i.height/i.width));let s=document.createElement("canvas");s.height=a,s.width=l,s.getContext("2d").drawImage(i,0,0,l,a),n=s.toDataURL(Dt.svg)}this.state.pendingImageElementId&&Fe(this.interactiveCanvas,`url(${n}) 4 4, auto`)};onImageAction=async({insertOnCanvasDirectly:e})=>{try{let o=this.state.width/2+this.state.offsetLeft,r=this.state.height/2+this.state.offsetTop,{x:n,y:i}=Ye({clientX:o,clientY:r},this.state),a=await Oc({description:"Image",extensions:Object.keys(y1)}),l=this.createImageElement({sceneX:n,sceneY:i,addToFrameUnderCursor:!1});e?(this.insertImageElement(l,a),this.initializeImageDimensions(l),this.setState({selectedElementIds:Be({[l.id]:!0},this.state)},()=>{this.actionManager.executeAction(zo)})):this.setState({pendingImageElementId:l.id},()=>{this.insertImageElement(l,a,!0)})}catch(o){o.name!=="AbortError"?console.error(o):console.warn(o),this.setState({pendingImageElementId:null,editingElement:null,activeTool:it(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(zo)})}};initializeImageDimensions=(e,o=!1)=>{let r=El(e)&&this.imageCache.get(e.fileId)?.image;if(!r||r instanceof Promise){if(e.width<Vn/this.state.zoom.value&&e.height<Vn/this.state.zoom.value){let n=100/this.state.zoom.value;re(e,{x:e.x-n/2,y:e.y-n/2,width:n,height:n})}return}if(o||e.width<Vn/this.state.zoom.value&&e.height<Vn/this.state.zoom.value){let n=Math.max(this.state.height-120,160),i=Math.min(n,Math.floor(this.state.height*.5)/this.state.zoom.value),a=Math.min(r.naturalHeight,i),l=a*(r.naturalWidth/r.naturalHeight),s=e.x+e.width/2-l/2,d=e.y+e.height/2-a/2;re(e,{x:s,y:d,width:l,height:a})}};updateImageCache=async(e,o=this.files)=>{let{updatedFiles:r,erroredFiles:n}=await Jb({imageCache:this.imageCache,fileIds:e.map(i=>i.fileId),files:o});if(r.size||n.size)for(let i of e)r.has(i.fileId)&&Ro.delete(i);return n.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(i=>El(i)&&n.has(i.fileId)?pe(i,{status:"error"}):i)),{updatedFiles:r,erroredFiles:n}};addNewImagesToImageCache=async(e=Qb(this.scene.getNonDeletedElements()),o=this.files)=>{let r=e.filter(n=>!n.isDeleted&&!this.imageCache.has(n.fileId));if(r.length){let{updatedFiles:n}=await this.updateImageCache(r,o);n.size&&this.scene.triggerUpdate()}};scheduleImageRefresh=(0,h6.default)(()=>{this.addNewImagesToImageCache()},C1);updateBindingEnabledOnPointerMove=e=>{let o=db(e);this.state.isBindingEnabled!==o&&this.setState({isBindingEnabled:o})};maybeSuggestBindingAtCursor=e=>{let o=Ml(e,this);this.setState({suggestedBindings:o!=null?[o]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(e,o,r)=>{if(!o.length)return;let n=o.reduce((i,a)=>{let l=Ml(a,this);return l!=null&&!mb(e,r?.id,l)&&i.push(l),i},[]);this.setState({suggestedBindings:n})};clearSelection(e){this.setState(o=>({selectedElementIds:Be({},o),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:o.editingGroupId&&e!=null&&Xi(e,o.editingGroupId)?o.editingGroupId:null})),this.setState({selectedElementIds:Be({},this.state),activeEmbeddable:null,previousSelectedElementIds:this.state.selectedElementIds})}handleInteractiveCanvasRef=e=>{e!==null?(this.interactiveCanvas=e,this.interactiveCanvas.addEventListener("wheel",this.handleWheel),this.interactiveCanvas.addEventListener("touchstart",this.onTouchStart),this.interactiveCanvas.addEventListener("touchend",this.onTouchEnd)):(this.interactiveCanvas?.removeEventListener("wheel",this.handleWheel),this.interactiveCanvas?.removeEventListener("touchstart",this.onTouchStart),this.interactiveCanvas?.removeEventListener("touchend",this.onTouchEnd))};handleAppOnDrop=async e=>{let{file:o,fileHandle:r}=await Zb(e),{x:n,y:i}=Ye(e,this.state);try{if(zc(o)&&this.isToolSupported("image")){if(o?.type===Dt.png||o?.type===Dt.svg)try{let s=await Bc(o,this.state,this.scene.getElementsIncludingDeleted(),r);this.syncActionResult({...s,appState:{...s.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:D.CAPTURE});return}catch(s){if(s.name!=="EncodingError")throw new Error(g("alerts.couldNotLoadInvalidFile"))}let l=this.createImageElement({sceneX:n,sceneY:i});this.insertImageElement(l,o),this.initializeImageDimensions(l),this.setState({selectedElementIds:Be({[l.id]:!0},this.state)});return}}catch(l){return this.setState({isLoading:!1,errorMessage:l.message})}let a=e.dataTransfer.getData(Dt.excalidrawlib);if(a&&typeof a=="string"){try{let l=Gb(a);this.addElementsFromPasteOrLibrary({elements:ym(l),position:e,files:null})}catch(l){this.setState({errorMessage:l.message})}return}if(o&&await this.loadFileToCanvas(o,r),e.dataTransfer?.types?.includes("text/plain")){let l=e.dataTransfer?.getData("text");if(l&&ji(l,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(l)||ti(l)?.type==="video")){let s=this.insertEmbeddableElement({sceneX:n,sceneY:i,link:$r(l)});s&&this.setState({selectedElementIds:{[s.id]:!0}})}}};loadFileToCanvas=async(e,o)=>{e=await Xb(e);try{let r=this.scene.getElementsIncludingDeleted(),n;try{n=await uu(e,this.state,r,o)}catch(i){let a=i instanceof ib;if(a&&i.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:g("errors.imageToolNotSupported")});return}let l=a?g("alerts.cannotRestoreFromImage"):g("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:l})}if(!n)return;n.type===Dt.excalidraw?(un(r.concat(n.data.elements)),this.store.updateSnapshot(fe(r),this.state),this.setState({isLoading:!0}),this.syncActionResult({...n.data,appState:{...n.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:D.CAPTURE})):n.type===Dt.excalidrawlib&&await this.library.updateLibrary({libraryItems:e,merge:!0,openLibraryMenu:!0}).catch(i=>{console.error(i),this.setState({errorMessage:g("errors.importLibraryError")})})}catch(r){this.setState({isLoading:!1,errorMessage:r.message})}};handleCanvasContextMenu=e=>{if(e.preventDefault(),("pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="touch"||"pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="pen"&&e.button!==ln.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:o,y:r}=Ye(e,this.state),n=this.getElementAtPosition(o,r,{preferSelected:!0,includeLockedElements:!0}),i=this.scene.getSelectedElements(this.state),a=this.isHittingCommonBoundingBoxOfSelectedElements({x:o,y:r},i),l=n||a?"element":"canvas",s=this.excalidrawContainerRef.current,{top:d,left:m}=s.getBoundingClientRect(),c=e.clientX-m,u=e.clientY-d;ve("contextMenu","openContextMenu",l),this.setState({...n&&!this.state.selectedElementIds[n.id]?{...this.state,...Nt({editingGroupId:this.state.editingGroupId,selectedElementIds:{[n.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:_e(n)?new he(n):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:u,left:c,items:this.getContextMenuItems(l)}})})};maybeDragNewGenericElement=(e,o)=>{let r=this.state.draggingElement,n=e.lastCoords;if(r)if(r.type==="selection"&&this.state.activeTool.type!=="eraser")Mu(r,this.state.activeTool.type,e.origin.x,e.origin.y,n.x,n.y,Xn(e.origin.x,n.x),Xn(e.origin.y,n.y),Ki(o),xc(o),this.state.zoom.value);else{let[i,a]=to(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),l=El(r)&&this.imageCache.get(r.fileId)?.image,s=l&&!(l instanceof Promise)?l.width/l.height:null;this.maybeCacheReferenceSnapPoints(o,[r]);let{snapOffset:d,snapLines:m}=B5(r,this.state,o,{x:e.originInGrid.x+(this.state.originSnapOffset?.x??0),y:e.originInGrid.y+(this.state.originSnapOffset?.y??0)},{x:i-e.originInGrid.x,y:a-e.originInGrid.y},this.scene.getNonDeletedElementsMap());i+=d.x,a+=d.y,this.setState({snapLines:m}),Mu(r,this.state.activeTool.type,e.originInGrid.x,e.originInGrid.y,i,a,Xn(e.originInGrid.x,i),Xn(e.originInGrid.y,a),mn(r)?!Ki(o):Ki(o),xc(o),this.state.zoom.value,s,this.state.originSnapOffset),(this.state.activeTool.type===st.frame||this.state.activeTool.type===st.magicframe)&&this.setState({elementsToHighlight:ta(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(e,o)=>{let r=this.scene.getSelectedElements(this.state),n=r.filter(m=>Ee(m)),i=e.resize.handleType;if(n.length>0&&i==="rotation")return!1;this.setState({isResizing:i&&i!=="rotation",isRotating:i==="rotation",activeEmbeddable:null});let a=e.lastCoords,[l,s]=to(a.x-e.resize.offset.x,a.y-e.resize.offset.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),d=new Map;if(n.forEach(m=>{xn(this.scene.getNonDeletedElements(),m.id).forEach(u=>{d.set(m.id+u.id,{x:u.x-m.x,y:u.y-m.y})})}),!this.state.selectedElementsAreBeingDragged){let[m,c]=to(a.x,a.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),u={x:m-e.originInGrid.x,y:c-e.originInGrid.y},f=[...e.originalElements.values()];this.maybeCacheReferenceSnapPoints(o,r);let{snapOffset:b,snapLines:x}=z5(r,ye(f,this.state),this.state,o,u,i);l+=b.x,s+=b.y,this.setState({snapLines:x})}if(N0(e.originalElements,i,r,this.scene.getElementsMapIncludingDeleted(),vc(o),xc(o),r.some(m=>mn(m))?!Ki(o):Ki(o),l,s,e.resize.center.x,e.resize.center.y)){let m=Ec(r,this),c=new Set;return n.forEach(u=>{ta(this.scene.getNonDeletedElements(),u,this.state,this.scene.getNonDeletedElementsMap()).forEach(f=>c.add(f))}),this.setState({elementsToHighlight:[...c],suggestedBindings:m}),!0}return!1};getContextMenuItems=e=>{let o=[];return o.push(dm,cm),e==="canvas"?this.state.viewModeEnabled?[...o,pm,Ba,Ag,_n]:[bh,Xt,dm,cm,mm,Xt,pf,DE,Xt,pm,xh,Ba,Ag,_n]:(o.push(mm),this.state.viewModeEnabled?[za,...o]:[Xt,sm,za,bh,M5,_5,Xt,...o,Xt,ah,lh,Xt,ch,m6,vh,yh,IE,dh,Xt,uh,Xt,sf,cf,df,mf,Xt,hh,gh,Xt,Yh,us,uf,kh,Xt,Zl])};handleWheel=Qe(e=>{if(e.preventDefault(),Ws)return;let{deltaX:o,deltaY:r}=e;if(e.metaKey||e.ctrlKey){let n=Math.sign(r),i=Yn*100,a=Math.abs(r),l=r;a>i&&(l=i*n);let s=this.state.zoom.value-l/100;s+=Math.log10(Math.max(1,this.state.zoom.value))*-n*Math.min(1,a/20),this.translateCanvas(d=>({...Wr({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Ur(s)},d),shouldCacheIgnoreZoom:!0})),this.resetShouldCacheIgnoreZoomDebounced();return}if(e.shiftKey){this.translateCanvas(({zoom:n,scrollX:i})=>({scrollX:i-(r||o)/n.value}));return}this.translateCanvas(({zoom:n,scrollX:i,scrollY:a})=>({scrollX:i-o/n.value,scrollY:a-r/n.value}))});getTextWysiwygSnappedToCenterPosition(e,o,r,n){if(n){let i=n.x+n.width/2,a=n.y+n.height/2,l=Ic(n,r,this.scene.getNonDeletedElementsMap());if(l&&(i=l.x,a=l.y),Math.hypot(e-i,o-a)<g1){let{x:m,y:c}=eo({sceneX:i,sceneY:a},r);return{viewportX:m,viewportY:c,elementCenterX:i,elementCenterY:a}}}}savePointer=(e,o,r)=>{if(!e||!o)return;let{x:n,y:i}=Ye({clientX:e,clientY:o},this.state);isNaN(n)||isNaN(i);let a={x:n,y:i,tool:this.state.activeTool.type==="laser"?"laser":"pointer"};this.props.onPointerUpdate?.({pointer:a,button:r,pointersMap:Re.pointers})};resetShouldCacheIgnoreZoomDebounced=hl(()=>{this.unmounted||this.setState({shouldCacheIgnoreZoom:!1})},300);updateDOMRect=e=>{if(this.excalidrawContainerRef?.current){let o=this.excalidrawContainerRef.current,{width:r,height:n,left:i,top:a}=o.getBoundingClientRect(),{width:l,height:s,offsetTop:d,offsetLeft:m}=this.state;if(r===l&&n===s&&i===m&&a===d){e&&e();return}this.setState({width:r,height:n,offsetLeft:i,offsetTop:a},()=>{e&&e()})}};refresh=()=>{this.setState({...this.getCanvasOffsets()})};getCanvasOffsets(){if(this.excalidrawContainerRef?.current){let e=this.excalidrawContainerRef.current,{left:o,top:r}=e.getBoundingClientRect();return{offsetLeft:o,offsetTop:r}}return{offsetLeft:0,offsetTop:0}}async updateLanguage(){let e=aa.find(o=>o.code===this.props.langCode)||xr;await ld(e),this.setAppState({})}},FI=()=>{(E.MODE===Hp.TEST||E.DEV)&&(window.h=window.h||{},Object.defineProperties(window.h,{elements:{configurable:!0,get(){return this.app?.scene.getElementsIncludingDeleted()},set(t){return this.app?.scene.replaceAllElements(un(t))}}}))};FI();var v6=Wg;h();var zI=()=>{Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(t){if(t=Math.trunc(t)||0,t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]},writable:!0,enumerable:!1,configurable:!0}),Element.prototype.replaceChildren||(Element.prototype.replaceChildren=function(...t){this.innerHTML="",this.append(...t)})},y6=zI;h();var jg=v(T(),1),E6=({children:t})=>{let{FooterCenterTunnel:e}=Ve(),o=Le();return(0,jg.jsx)(e.In,{children:(0,jg.jsx)("div",{className:B("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":o.zenModeEnabled}),children:t})})},BI=E6;E6.displayName="FooterCenter";h();h();h();var Yo=v(T(),1),$I=()=>(0,Yo.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,Yo.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"})}),HI=()=>(0,Yo.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,Yo.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,Yo.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,Yo.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,Yo.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)"})]}),w6=({style:t,size:e="small",withText:o})=>(0,Yo.jsxs)("div",{className:`ExcalidrawLogo is-${e}`,style:t,children:[(0,Yo.jsx)($I,{}),o&&(0,Yo.jsx)(HI,{})]});var He=v(T(),1),qg=({icon:t,shortcut:e,children:o})=>{let r=Ae();return(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)("div",{className:"welcome-screen-menu-item__icon",children:t}),(0,He.jsx)("div",{className:"welcome-screen-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,He.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:e})]})};qg.displayName="WelcomeScreenMenuItemContent";var Ks=({onSelect:t,children:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("button",{...i,type:"button",className:`welcome-screen-menu-item ${n}`,onClick:t,children:(0,He.jsx)(qg,{icon:o,shortcut:r,children:e})});Ks.displayName="WelcomeScreenMenuItem";var C6=({children:t,href:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("a",{...i,className:`welcome-screen-menu-item ${n}`,href:e,target:"_blank",rel:"noreferrer",children:(0,He.jsx)(qg,{icon:o,shortcut:r,children:t})});C6.displayName="WelcomeScreenMenuItemLink";var Zo=({children:t})=>{let{WelcomeScreenCenterTunnel:e}=Ve();return(0,He.jsx)(e.In,{children:(0,He.jsx)("div",{className:"welcome-screen-center",children:t||(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)(Jg,{}),(0,He.jsx)(Qg,{children:g("welcomeScreen.defaults.center_heading")}),(0,He.jsxs)(e1,{children:[(0,He.jsx)(o1,{}),(0,He.jsx)(t1,{})]})]})})})};Zo.displayName="Center";var Jg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:t||(0,He.jsx)(w6,{withText:!0})});Jg.displayName="Logo";var Qg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:t});Qg.displayName="Heading";var e1=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-menu",children:t});e1.displayName="Menu";var t1=()=>{let t=kt();return(0,He.jsx)(Ks,{onSelect:()=>t.executeAction(xi),shortcut:"?",icon:da,children:g("helpDialog.title")})};t1.displayName="MenuItemHelp";var o1=()=>{let t=Le(),e=kt();return t.viewModeEnabled?null:(0,He.jsx)(Ks,{onSelect:()=>e.executeAction(Oa),shortcut:Et("loadScene"),icon:ma,children:g("buttons.load")})};o1.displayName="MenuItemLoadScene";var S6=({onSelect:t})=>{let{t:e}=xt();return(0,He.jsx)(Ks,{shortcut:null,onSelect:t,icon:xd,children:e("labels.liveCollaboration")})};S6.displayName="MenuItemLiveCollaborationTrigger";Zo.Logo=Jg;Zo.Heading=Qg;Zo.Menu=e1;Zo.MenuItem=Ks;Zo.MenuItemLink=C6;Zo.MenuItemHelp=t1;Zo.MenuItemLoadScene=o1;Zo.MenuItemLiveCollaborationTrigger=S6;h();var mr=v(T(),1),Lp=({children:t})=>{let{WelcomeScreenMenuHintTunnel:e}=Ve();return(0,mr.jsx)(e.In,{children:(0,mr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[dx,(0,mr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.menuHint")})]})})};Lp.displayName="MenuHint";var Pp=({children:t})=>{let{WelcomeScreenToolbarHintTunnel:e}=Ve();return(0,mr.jsx)(e.In,{children:(0,mr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,mr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.toolbarHint")}),px]})})};Pp.displayName="ToolbarHint";var Rp=({children:t})=>{let{WelcomeScreenHelpHintTunnel:e}=Ve();return(0,mr.jsx)(e.In,{children:(0,mr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,mr.jsx)("div",{children:t||g("welcomeScreen.defaults.helpHint")}),mx]})})};Rp.displayName="HelpHint";var pr=v(T(),1),Dp=t=>(0,pr.jsx)(pr.Fragment,{children:t.children||(0,pr.jsxs)(pr.Fragment,{children:[(0,pr.jsx)(Zo,{}),(0,pr.jsx)(Lp,{}),(0,pr.jsx)(Pp,{}),(0,pr.jsx)(Rp,{})]})});Dp.displayName="WelcomeScreen";Dp.Center=Zo;Dp.Hints={MenuHint:Lp,ToolbarHint:Pp,HelpHint:Rp};var UI=Dp;h();var Np=v(T(),1),T6=({isCollaborating:t,onSelect:e,...o})=>{let r=Le(),n=r.width<830;return(0,Np.jsxs)(Tr,{...o,className:B("collab-button",{active:t}),type:"button",onSelect:e,style:{position:"relative",width:n?void 0:"auto"},title:g("labels.liveCollaboration"),children:[n?Nx:g("labels.share"),r.collaborators.size>0&&(0,Np.jsx)("div",{className:"CollabButton-collaborators",children:r.collaborators.size})]})},WI=T6;T6.displayName="LiveCollaborationTrigger";h();var GI=(t,e,o)=>!!(e&&(e.id===t.editingElement?.id||e.id===t.resizingElement?.id||e.id===t.draggingElement?.id||e.version>o.version||e.version===o.version&&e.versionNonce<o.versionNonce)),VI=(t,e,o)=>{let r=fe(t),n=[],i=new Set;for(let l of e)if(!i.has(l.id)){let s=r.get(l.id),d=GI(o,s,l);s&&d?(n.push(s),i.add(s.id)):(n.push(l),i.add(l.id))}for(let l of t)i.has(l.id)||(n.push(l),i.add(l.id));let a=ab(n);return un(a),a};h();var Ys=v(T(),1),k6=({children:t,icon:e})=>{let{TTDDialogTriggerTunnel:o}=Ve(),r=Pe();return(0,Ys.jsx)(o.In,{children:(0,Ys.jsxs)(De.Item,{onSelect:()=>{ve("ai","dialog open","ttd"),r({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:e??Iv,children:[t??g("labels.textToDiagram"),(0,Ys.jsx)(De.Item.Badge,{children:"AI"})]})})};k6.displayName="TTDDialogTrigger";var Op=v(T(),1);y6();var KI=t=>{let{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n=!1,onPointerUpdate:i,renderTopRightUI:a,langCode:l=xr.code,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:m,libraryReturnUrl:c,theme:u,name:f,renderCustomStats:b,onPaste:x,detectScroll:y=!0,handleKeyboardGlobally:k=!1,onLibraryChange:C,autoFocus:w=!1,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,children:$,validateEmbeddable:O,renderEmbeddable:W,aiEnabled:j}=t,R=t.UIOptions?.canvasActions,Z={...t.UIOptions,canvasActions:{...Gp.canvasActions,...R},tools:{image:t.UIOptions?.tools?.image??!0}};return R?.export&&(Z.canvasActions.export.saveFileToDisk=R.export?.saveFileToDisk??Gp.canvasActions.export.saveFileToDisk),Z.canvasActions.toggleTheme===null&&typeof u>"u"&&(Z.canvasActions.toggleTheme=!0),(0,Fp.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let me=Me=>{typeof Me.scale=="number"&&Me.scale!==1&&Me.preventDefault()};return document.addEventListener("touchmove",me,{passive:!1}),()=>{document.removeEventListener("touchmove",me)}},[]),(0,Op.jsx)(nd,{unstable_createStore:()=>Gt,scope:Ne,children:(0,Op.jsx)(rx,{langCode:l,theme:u,children:(0,Op.jsx)(v6,{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n,onPointerUpdate:i,renderTopRightUI:a,langCode:l,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:m,libraryReturnUrl:c,theme:u,name:f,renderCustomStats:b,UIOptions:Z,onPaste:x,detectScroll:y,handleKeyboardGlobally:k,onLibraryChange:C,autoFocus:w,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,validateEmbeddable:O,renderEmbeddable:W,aiEnabled:j!==!1,children:$})})})},YI=(t,e)=>{if(t.children!==e.children)return!1;let{initialData:o,UIOptions:r={},...n}=t,{initialData:i,UIOptions:a={},...l}=e,s=Object.keys(r),d=Object.keys(a);return s.length!==d.length?!1:s.every(c=>c==="canvasActions"?Object.keys(r.canvasActions).every(f=>f==="export"&&r?.canvasActions?.export&&a?.canvasActions?.export?r.canvasActions.export.saveFileToDisk===a.canvasActions.export.saveFileToDisk:r?.canvasActions?.[f]===a?.canvasActions?.[f]):r[c]===a[c])&&Tt(n,l)},ZI=Fp.default.memo(KI,YI);ZI.displayName="Excalidraw";export{Tr as Button,$p as DEFAULT_LASER_COLOR,dp as DefaultSidebar,ZI as Excalidraw,pl as FONT_FAMILY,BI as Footer,WI as LiveCollaborationTrigger,Dt as MIME_TYPES,lo as MainMenu,To as ROUNDNESS,en as Sidebar,D as StoreAction,xe as THEME,Ig as TTDDialog,k6 as TTDDialogTrigger,UI as WelcomeScreen,Su as bumpVersion,el as convertToExcalidrawElements,xr as defaultLang,F6 as elementPartiallyOverlapsWithOrContainsBBox,z6 as elementsOverlappingBBox,Eu as exportToBlob,oi as exportToCanvas,N6 as exportToClipboard,Fl as exportToSvg,Ze as getCommonBounds,B6 as getFreeDrawSvgPath,vm as getLibraryItemsHash,we as getNonDeletedElements,$6 as getSceneVersion,lu as getVisibleSceneBounds,_u as hashElementsVersion,Lu as hashString,O6 as isElementInsideBBox,ri as isInvisiblySmallElement,_e as isLinearElement,aa as languages,Bc as loadFromBlob,fu as loadLibraryFromBlob,uu as loadSceneOrLibraryFromBlob,VE as mergeLibraryItems,re as mutateElement,pe as newElementWith,$r as normalizeLink,Mh as parseLibraryTokensFromUrl,VI as reconcileElements,pu as restore,D6 as restoreAppState,mu as restoreElements,Dl as restoreLibraryItems,eo as sceneCoordsToViewportCoords,gu as serializeAsJSON,xu as serializeLibraryAsJSON,Ae as useDevice,LS as useHandleLibrary,xt as useI18n,Ye as viewportCoordsToSceneCoords,lE as zoomToFitBounds};
169
169
  /*! Bundled license information:
170
170
 
171
171
  react/cjs/react-jsx-runtime.production.min.js: