@excalidraw/excalidraw 0.17.1-a38e82f → 0.17.1-b7babe5
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.
- package/CHANGELOG.md +5 -1
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-IM4WTX2M.js → chunk-6NMK7JTV.js} +2 -1
- package/dist/browser/dev/excalidraw-assets-dev/chunk-6NMK7JTV.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-5VWQDKDR.js → chunk-CX3RATXT.js} +50 -5
- package/dist/browser/dev/excalidraw-assets-dev/chunk-CX3RATXT.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{en-IOBA4CS2.js → en-BZY7JRTM.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{image-VKDAL6BQ.js → image-CVN3YKRW.js} +2 -2
- package/dist/browser/dev/index.js +332 -76
- package/dist/browser/dev/index.js.map +4 -4
- package/dist/browser/prod/excalidraw-assets/{chunk-N2C5DK3B.js → chunk-VJAIK3AX.js} +15 -15
- package/dist/browser/prod/excalidraw-assets/{chunk-LIG3S5TN.js → chunk-YYO5DFUW.js} +3 -3
- package/dist/browser/prod/excalidraw-assets/{en-WFZVQ7I6.js → en-O2YCQM2W.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/image-6FKY54X5.js +1 -0
- package/dist/browser/prod/index.js +16 -16
- package/dist/{prod/en-TDNWCAOT.json → dev/en-EY7E2L5O.json} +1 -0
- package/dist/dev/index.js +372 -77
- package/dist/dev/index.js.map +3 -3
- package/dist/excalidraw/data/library.d.ts +60 -8
- package/dist/excalidraw/data/library.js +302 -33
- package/dist/excalidraw/element/index.d.ts +8 -0
- package/dist/excalidraw/element/index.js +23 -0
- package/dist/excalidraw/element/textElement.d.ts +16 -1
- package/dist/excalidraw/element/textElement.js +10 -3
- package/dist/excalidraw/index.d.ts +2 -2
- package/dist/excalidraw/index.js +2 -2
- package/dist/excalidraw/locales/en.json +1 -0
- package/dist/excalidraw/queue.d.ts +9 -0
- package/dist/excalidraw/queue.js +27 -0
- package/dist/excalidraw/types.d.ts +6 -6
- package/dist/excalidraw/utility-types.d.ts +2 -0
- package/dist/excalidraw/utils.d.ts +3 -1
- package/dist/excalidraw/utils.js +6 -0
- package/dist/{dev/en-TDNWCAOT.json → prod/en-EY7E2L5O.json} +1 -0
- package/dist/prod/index.js +26 -26
- package/package.json +1 -1
- package/dist/browser/dev/excalidraw-assets-dev/chunk-5VWQDKDR.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/chunk-IM4WTX2M.js.map +0 -7
- package/dist/browser/prod/excalidraw-assets/image-4AT7LYMR.js +0 -1
- /package/dist/browser/dev/excalidraw-assets-dev/{en-IOBA4CS2.js.map → en-BZY7JRTM.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{image-VKDAL6BQ.js.map → image-CVN3YKRW.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{$ as jm,$a as Rs,$b as Ti,$c as l1,$d as Di,$e as Z1,$f as he,A as Ua,Aa as yg,Ab as yr,Ac as uu,Ad as Ir,Ae as Cu,Af as tr,B as Km,Ba as Eg,Bb as Pg,Bc as Zg,Bd as Xs,Be as L1,Bf as Au,C as ws,Ca as wg,Cb as Er,Cc as Ws,Cd as b1,Ce as P1,Cf as nb,D as Wa,Da as Jo,Db as Dg,Dc as Ii,Dd as x1,De as D1,Df as hc,E as dt,Ea as Qm,Eb as wi,Ec as ue,Ed as H,Ee as Tu,Ef as ib,F as Oo,Fa as Bo,Fb as Rg,Fc as jg,Fd as yo,Fe as ac,Ff as ab,G as xr,Ga as Va,Gb as er,Gc as il,Gd as De,Ge as Su,Gf as d5,H as gi,Ha as Ls,Hb as gt,Hc as Xg,Hd as v1,He as ku,Hf as or,I as Qh,Ia as Dn,Ib as Ci,Ic as qg,Id as Fo,Ie as R1,If as J,J as Ym,Ja as Cg,Jb as Ng,Jc as al,Jd as on,Je as N1,Jf as ce,K as Zm,Ka as Tg,Kb as Og,Kc as Bt,Kd as hu,Ke as O1,Kf as Fi,L as vr,La as Rn,Lb as Bg,Lc as Gs,Ld as y1,Le as B1,Lf as Hn,M as eg,Ma as et,Mb as Qr,Mc as Vs,Md as qs,Me as F1,Mf as ul,N as _t,Na as N,Nb as to,Nc as Ks,Nd as ll,Ne as $1,Nf as Lu,O as Cs,Oa as We,Ob as Fg,Oc as Jg,Od as rn,Oe as H1,Of as lb,P as tg,Pa as Kt,Pb as wr,Pc as Qg,Pd as E1,Pe as lc,Pf as Pu,Q as og,Qa as Ka,Qb as en,Qc as e1,Qd as w1,Qe as dl,Qf as Du,R as rg,Ra as Ya,Rb as qa,Rc as t1,Rd as C1,Re as z1,Rf as Ru,S as ng,Sa as Ps,Sb as Yt,Sc as o1,Sd as sl,Se as U1,Sf as sb,T as ig,Ta as eu,Tb as $g,Tc as r1,Td as Js,Te as W1,Tf as cb,U as ag,Ua as tu,Ub as Ja,Uc as nt,Ud as Li,Ue as G1,Uf as db,V as Pn,Va as Nn,Vb as Qa,Vc as Cr,Vd as Qs,Ve as V1,Vf as mb,W as lg,Wa as Sg,Wb as tn,Wc as Ys,Wd as ec,We as sc,Wf as ub,X as sg,Xa as kg,Xb as el,Xc as n1,Xd as gu,Xe as K1,Xf as pb,Y as cg,Ya as Be,Yb as iu,Yc as i1,Yd as Fn,Ye as Y1,Yf as Nu,Z as Ts,Za as Ig,Zb as au,Zc as a1,Zd as T1,Ze as Iu,Zf as $i,_ as Ss,_a as Ds,_b as lu,_c as pu,_d as Pi,_e as Ni,_f as m5,a as Qe,aa as dg,ab as xi,ac as Hg,ad as _i,ae as Ri,af as j1,ag as Ou,b as Wh,ba as mg,bb as _g,bc as zg,bd as fu,be as S1,bf as X1,bg as Hi,c as Mn,ca as ug,cb as vi,cc as Ug,cd as s1,ce as tc,cf as cc,cg as fb,d as Gh,da as pg,db as Za,dc as Wg,dd as c1,de as bu,df as q1,dg as Bu,e as Vh,ea as fg,eb as Mt,ec as Gg,ed as Tr,ee as xu,ef as Oi,eg as Re,f as br,fa as ks,fb as qr,fc as Fs,fd as bo,fe as i5,ff as $n,fg as hb,g as bs,ga as jr,gb as Ns,gc as su,gd as Ge,ge as vu,gf as _u,gg as Se,h as xs,ha as hg,hb as Mg,hc as $s,hd as Zs,he as yu,hf as ml,hg as zi,i as vs,ia as Xm,ib as ou,ic as cu,id as xo,if as a5,ig as Ne,j as Kh,ja as gg,jb as Qo,jc as Vg,jd as n5,jf as l5,jg as gb,k as Yh,ka as Is,kb as ru,kc as du,kd as Mi,kf as s5,kg as zn,l as Zh,la as qm,lb as Os,lc as me,ld as vo,lf as c5,lg as Mr,m as No,ma as fo,mb as tt,mc as S,md as Sr,mf as dc,mg as Ar,n as ys,na as Ga,nb as Ag,nc as Si,nd as d1,ne as k1,nf as J1,o as Yr,oa as ho,ob as Lg,oc as Hs,od as At,oe as I1,of as Mu,p as jh,pa as _s,pb as Bs,pc as ki,pd as js,pe as oc,pf as Q1,q as Xh,qa as Ms,qb as ja,qc as zs,qd as m1,qe as rc,qf as nn,r as za,ra as Xr,rb as Jr,rc as Kg,rd as kr,re as Eu,rf as eb,s as An,sa as As,sb as Ot,sc as On,sd as u1,se as nc,sf as Bi,t as Es,ta as mt,tb as yi,tc as Us,td as p1,te as _1,tf as tb,u as qh,ua as go,ub as Ei,uc as tl,ud as Ai,ue as wu,uf as mc,v as Vm,va as bg,vb as ie,vc as ol,vd as ut,ve as _r,vf as ob,w as Jh,wa as xg,wb as nu,wc as mu,wd as f1,we as M1,wf as uc,x as Le,xa as vg,xb as Xa,xc as Yg,xd as h1,xe as ic,xf as pc,y as Zr,ya as Jm,yb as we,yc as rl,yd as g1,ye as A1,yf as rb,z as Ln,za as bi,zb as Pe,zc as nl,zd as Bn,ze as cl,zf as fc}from"./excalidraw-assets/chunk-N2C5DK3B.js";import{a as h,b as E}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{D as Gm}from"./excalidraw-assets/chunk-LIG3S5TN.js";import{aa as Uh}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as zh,d as gr,e as r5,f as v}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var $=gr((ok,bb)=>{h();bb.exports=React});var kb=gr(Sc=>{"use strict";h();var w5=$(),C5=Symbol.for("react.element"),T5=Symbol.for("react.fragment"),S5=Object.prototype.hasOwnProperty,k5=w5.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,I5={key:!0,ref:!0,__self:!0,__source:!0};function Sb(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)S5.call(e,r)&&!I5.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:C5,type:t,key:i,ref:a,props:n,_owner:k5.current}}Sc.Fragment=T5;Sc.jsx=Sb;Sc.jsxs=Sb});var T=gr((kk,Ib)=>{"use strict";h();Ib.exports=kb()});var nr=gr((Vk,Pb)=>{h();Pb.exports=ReactDOM});var qy=gr(Xy=>{"use strict";h();var wa=$();function lC(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var sC=typeof Object.is=="function"?Object.is:lC,cC=wa.useState,dC=wa.useEffect,mC=wa.useLayoutEffect,uC=wa.useDebugValue;function pC(t,e){var o=e(),r=cC({inst:{value:o,getSnapshot:e}}),n=r[0].inst,i=r[1];return mC(function(){n.value=o,n.getSnapshot=e,_f(n)&&i({inst:n})},[t,o,e]),dC(function(){return _f(n)&&i({inst:n}),t(function(){_f(n)&&i({inst:n})})},[t]),uC(o),o}function _f(t){var e=t.getSnapshot;t=t.value;try{var o=e();return!sC(t,o)}catch{return!0}}function fC(t,e){return e()}var hC=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?fC:pC;Xy.useSyncExternalStore=wa.useSyncExternalStore!==void 0?wa.useSyncExternalStore:hC});var Qy=gr((KH,Jy)=>{"use strict";h();Jy.exports=qy()});var tE=gr(eE=>{"use strict";h();var Bd=$(),gC=Qy();function bC(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var xC=typeof Object.is=="function"?Object.is:bC,vC=gC.useSyncExternalStore,yC=Bd.useRef,EC=Bd.useEffect,wC=Bd.useMemo,CC=Bd.useDebugValue;eE.useSyncExternalStoreWithSelector=function(t,e,o,r,n){var i=yC(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=wC(function(){function c(u){if(!s){if(s=!0,m=u,u=r(u),n!==void 0&&a.hasValue){var b=a.value;if(n(b,u))return d=b}return d=u}if(b=d,xC(m,u))return b;var x=r(u);return n!==void 0&&n(b,x)?b:(m=u,d=x)}var s=!1,m,d,p=o===void 0?null:o;return[function(){return c(e())},p===null?void 0:function(){return c(p())}]},[e,o,r,n]);var l=vC(t,i[0],i[1]);return EC(function(){a.hasValue=!0,a.value=l},[l]),CC(l),l}});var rE=gr((XH,oE)=>{"use strict";h();oE.exports=tE()});var Df=gr((kW,AE)=>{h();var ME="Expected a function",IE=NaN,UC="[object Symbol]",WC=/^\s+|\s+$/g,GC=/^[-+]0x[0-9a-f]+$/i,VC=/^0b[01]+$/i,KC=/^0o[0-7]+$/i,YC=parseInt,ZC=typeof global=="object"&&global&&global.Object===Object&&global,jC=typeof self=="object"&&self&&self.Object===Object&&self,XC=ZC||jC||Function("return this")(),qC=Object.prototype,JC=qC.toString,QC=Math.max,eT=Math.min,Pf=function(){return XC.Date.now()};function tT(t,e,o){var r,n,i,a,l,c,s=0,m=!1,d=!1,p=!0;if(typeof t!="function")throw new TypeError(ME);e=_E(e)||0,Yd(o)&&(m=!!o.leading,d="maxWait"in o,i=d?QC(_E(o.maxWait)||0,e):i,p="trailing"in o?!!o.trailing:p);function u(_){var M=r,L=n;return r=n=void 0,s=_,a=t.apply(L,M),a}function b(_){return s=_,l=setTimeout(w,e),m?u(_):a}function x(_){var M=_-c,L=_-s,W=e-M;return d?eT(W,i-L):W}function y(_){var M=_-c,L=_-s;return c===void 0||M>=e||M<0||d&&L>=i}function w(){var _=Pf();if(y(_))return k(_);l=setTimeout(w,x(_))}function k(_){return l=void 0,p&&r?u(_):(r=n=void 0,a)}function C(){l!==void 0&&clearTimeout(l),s=0,r=c=n=l=void 0}function I(){return l===void 0?a:k(Pf())}function A(){var _=Pf(),M=y(_);if(r=arguments,n=this,c=_,M){if(l===void 0)return b(c);if(d)return l=setTimeout(w,e),u(c)}return l===void 0&&(l=setTimeout(w,e)),a}return A.cancel=C,A.flush=I,A}function oT(t,e,o){var r=!0,n=!0;if(typeof t!="function")throw new TypeError(ME);return Yd(o)&&(r="leading"in o?!!o.leading:r,n="trailing"in o?!!o.trailing:n),tT(t,e,{leading:r,maxWait:e,trailing:n})}function Yd(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function rT(t){return!!t&&typeof t=="object"}function nT(t){return typeof t=="symbol"||rT(t)&&JC.call(t)==UC}function _E(t){if(typeof t=="number")return t;if(nT(t))return IE;if(Yd(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Yd(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(WC,"");var o=VC.test(t);return o||KC.test(t)?YC(t.slice(2),o?2:8):GC.test(t)?IE:+t}AE.exports=oT});h();var Wm=v($(),1);h();var Mc=v($(),1);h();h();h();h();var pt=v($(),1);h();var u5=0;function xb(t,e){let o=`atom${++u5}`,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 an=Symbol(),$u=t=>!!t[an],gc=t=>!t[an].c,pl=t=>{var e;let{b:o,c:r}=t[an];r&&(r(),(e=f5.get(o))==null||e())},xc=(t,e)=>{let o=t[an].o,r=e[an].o;return o===r||t===r||$u(o)&&xc(o,e)},Hu=(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[an]=o,r},p5=t=>Hu(t[an].b,t[an].o),f5=new WeakMap;var bc=t=>"init"in t,fl="r",vc="w",hl="c",yc="s",vb="h",h5="n",g5="l",b5="a",x5="m",yb=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[P,R]of t){let G={v:R,r:0,y:!0,d:new Map};(E&&E.MODE)!=="production"&&(Object.freeze(G),bc(P)||console.warn("Found initial value for derived atom which can cause unexpected behavior",P)),e.set(P,G)}let a=new WeakMap,l=(P,R,G)=>{let K=a.get(R);K||(K=new Map,a.set(R,K)),G.then(()=>{K.get(P)===G&&(K.delete(P),K.size||a.delete(R))}),K.set(P,G)},c=P=>{let R=new Set,G=a.get(P);return G&&(a.delete(P),G.forEach((K,V)=>{pl(K),R.add(V)})),R},s=new WeakMap,m=P=>{let R=s.get(P);return R||(R=new Map,s.set(P,R)),R},d=(P,R)=>{if(P){let G=m(P),K=G.get(R);return K||(K=d(P.p,R),K&&"p"in K&&gc(K.p)&&(K=void 0),K&&G.set(R,K)),K}return e.get(R)},p=(P,R,G)=>{if((E&&E.MODE)!=="production"&&Object.freeze(G),P)m(P).set(R,G);else{let K=e.get(R);e.set(R,G),r.has(R)||r.set(R,K)}},u=(P,R=new Map,G)=>{if(!G)return R;let K=new Map,V=!1;return G.forEach(Z=>{var q;let te=((q=d(P,Z))==null?void 0:q.r)||0;K.set(Z,te),R.get(Z)!==te&&(V=!0)}),R.size===K.size&&!V?R:K},b=(P,R,G,K,V)=>{let Z=d(P,R);if(Z){if(V&&(!("p"in Z)||!xc(Z.p,V)))return Z;"p"in Z&&pl(Z.p)}let q={v:G,r:Z?.r||0,y:!0,d:u(P,Z?.d,K)},te=!Z?.y;return!Z||!("v"in Z)||!Object.is(Z.v,G)?(te=!0,++q.r,q.d.has(R)&&(q.d=new Map(q.d).set(R,q.r))):q.d!==Z.d&&(q.d.size!==Z.d.size||!Array.from(q.d.keys()).every(ct=>Z.d.has(ct)))&&(te=!0,Promise.resolve().then(()=>{Q(P)})),Z&&!te?Z:(p(P,R,q),q)},x=(P,R,G,K,V)=>{let Z=d(P,R);if(Z){if(V&&(!("p"in Z)||!xc(Z.p,V)))return Z;"p"in Z&&pl(Z.p)}let q={e:G,r:(Z?.r||0)+1,y:!0,d:u(P,Z?.d,K)};return p(P,R,q),q},y=(P,R,G,K)=>{let V=d(P,R);if(V&&"p"in V){if(xc(V.p,G)&&!gc(V.p))return V.y?V:{...V,y:!0};pl(V.p)}l(P,R,G);let Z={p:G,r:(V?.r||0)+1,y:!0,d:u(P,V?.d,K)};return p(P,R,Z),Z},w=(P,R,G,K)=>{if(G instanceof Promise){let V=Hu(G,G.then(Z=>{b(P,R,Z,K,V)}).catch(Z=>{if(Z instanceof Promise)return $u(Z)?Z.then(()=>{C(P,R,!0)}):Z;x(P,R,Z,K,V)}));return y(P,R,V,K)}return b(P,R,G,K)},k=(P,R)=>{let G=d(P,R);if(G){let K={...G,y:!1};p(P,R,K)}else(E&&E.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",R)},C=(P,R,G)=>{if(!G){let V=d(P,R);if(V){if(V.y&&"p"in V&&!gc(V.p))return V;if(V.d.forEach((Z,q)=>{if(q!==R)if(!o.has(q))C(P,q);else{let te=d(P,q);te&&!te.y&&C(P,q)}}),Array.from(V.d).every(([Z,q])=>{let te=d(P,Z);return te&&!("p"in te)&&te.r===q}))return V.y?V:{...V,y:!0}}}let K=new Set;try{let V=R.read(Z=>{K.add(Z);let q=Z===R?d(P,Z):C(P,Z);if(q){if("e"in q)throw q.e;if("p"in q)throw q.p;return q.v}if(bc(Z))return Z.init;throw new Error("no atom init")});return w(P,R,V,K)}catch(V){if(V instanceof Promise){let Z=$u(V)&&gc(V)?p5(V):Hu(V,V);return y(P,R,Z,K)}return x(P,R,V,K)}},I=(P,R)=>C(R,P),A=(P,R)=>{let G=o.get(R);return G||(G=O(P,R)),G},_=(P,R)=>!R.l.size&&(!R.t.size||R.t.size===1&&R.t.has(P)),M=(P,R)=>{let G=o.get(R);G&&_(R,G)&&z(P,R)},L=(P,R)=>{let G=o.get(R);G?.t.forEach(K=>{K!==R&&(k(P,K),L(P,K))})},W=(P,R,G)=>{let K=!0,V=(te,ct)=>{let Je=C(P,te);if("e"in Je)throw Je.e;if("p"in Je){if(ct?.unstable_promise)return Je.p.then(()=>{let rt=d(P,te);return rt&&"p"in rt&&rt.p===Je.p?new Promise(He=>setTimeout(He)).then(()=>V(te,ct)):V(te,ct)});throw(E&&E.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",te),Je.p}if("v"in Je)return Je.v;throw(E&&E.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",te),new Error("no value found")},Z=(te,ct)=>{let Je;if(te===R){if(!bc(te))throw new Error("atom not writable");c(te).forEach(gs=>{gs!==P&&w(gs,te,ct)});let He=d(P,te),Vt=w(P,te,ct);He!==Vt&&L(P,te)}else Je=W(P,te,ct);return K||Q(P),Je},q=R.write(V,Z,G);return K=!1,q},B=(P,R,G)=>{let K=W(G,P,R);return Q(G),K},Y=P=>!!P.write,O=(P,R,G)=>{let K={t:new Set(G&&[G]),l:new Set};if(o.set(R,K),(E&&E.MODE)!=="production"&&i.add(R),C(void 0,R).d.forEach((Z,q)=>{let te=o.get(q);te?te.t.add(R):q!==R&&O(P,q,R)}),Y(R)&&R.onMount){let Z=te=>B(R,te,P),q=R.onMount(Z);P=void 0,q&&(K.u=q)}return K},z=(P,R)=>{var G;let K=(G=o.get(R))==null?void 0:G.u;K&&K(),o.delete(R),(E&&E.MODE)!=="production"&&i.delete(R);let V=d(P,R);V?("p"in V&&pl(V.p),V.d.forEach((Z,q)=>{if(q!==R){let te=o.get(q);te&&(te.t.delete(R),_(q,te)&&z(P,q))}})):(E&&E.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",R)},ne=(P,R,G,K)=>{let V=new Set(G.d.keys());K?.forEach((Z,q)=>{if(V.has(q)){V.delete(q);return}let te=o.get(q);te&&(te.t.delete(R),_(q,te)&&z(P,q))}),V.forEach(Z=>{let q=o.get(Z);q?q.t.add(R):o.has(R)&&O(P,Z,R)})},Q=P=>{if(P){m(P).forEach((G,K)=>{let V=e.get(K);if(G!==V){let Z=o.get(K);Z?.l.forEach(q=>q(P))}});return}for(;r.size;){let R=Array.from(r);r.clear(),R.forEach(([G,K])=>{let V=d(void 0,G);if(V&&V.d!==K?.d&&ne(void 0,G,V,K?.d),K&&!K.y&&V?.y)return;let Z=o.get(G);Z?.l.forEach(q=>q())})}(E&&E.MODE)!=="production"&&n.forEach(R=>R())},xe=P=>{m(P).forEach((G,K)=>{let V=e.get(K);(!V||G.r>V.r||G.y!==V.y||G.r===V.r&&G.d!==V.d)&&(e.set(K,G),G.d!==V?.d&&ne(P,K,G,V?.d))})},Ee=(P,R)=>{R&&xe(R),Q(void 0)},de=(P,R,G)=>{let V=A(G,P).l;return V.add(R),()=>{V.delete(R),M(G,P)}},se=(P,R)=>{for(let[G,K]of P)bc(G)&&(w(R,G,K),L(R,G));Q(R)};return(E&&E.MODE)!=="production"?{[fl]:I,[vc]:B,[hl]:Ee,[yc]:de,[vb]:se,[h5]:P=>(n.add(P),()=>{n.delete(P)}),[g5]:()=>i.values(),[b5]:P=>e.get(P),[x5]:P=>o.get(P)}:{[fl]:I,[vc]:B,[hl]:Ee,[yc]:de,[vb]:se}},Eb=t=>{let e=yb(t),o=a=>{let l=e[fl](a);if("e"in l)throw l.e;if(!("p"in l))return l.v},r=a=>new Promise((l,c)=>{let s=e[fl](a);"e"in s?c(s.e):"p"in s?l(s.p.then(()=>r(a))):l(s.v)});return{get:o,asyncGet:r,set:(a,l)=>e[vc](a,l),sub:(a,l)=>e[yc](a,l),SECRET_INTERNAL_store:e}},wb=(t,e)=>({s:e?e(t).SECRET_INTERNAL_store:yb(t)}),Fu=new Map,zu=t=>(Fu.has(t)||Fu.set(t,(0,pt.createContext)(wb())),Fu.get(t)),Ec=({children:t,initialValues:e,scope:o,unstable_createStore:r,unstable_enableVersionedWrite:n})=>{let[i,a]=(0,pt.useState)({});(0,pt.useEffect)(()=>{let s=l.current;s.w&&(s.s[hl](null,i),delete i.p,s.v=i)},[i]);let l=(0,pt.useRef)();if(!l.current){let s=wb(e,r);if(n){let m=0;s.w=d=>{a(p=>{let u=m?p:{p};return d(u),u})},s.v=i,s.r=d=>{++m,d(),--m}}l.current=s}let c=zu(o);return(0,pt.createElement)(c.Provider,{value:l.current},t)};function Ve(t,e){return xb(t,e)}function gl(t,e){let o=zu(e),r=(0,pt.useContext)(o),{s:n,v:i}=r,a=p=>{let u=n[fl](t,p);if((E&&E.MODE)!=="production"&&!u.y)throw new Error("should not be invalidated");if("e"in u)throw u.e;if("p"in u)throw u.p;if("v"in u)return u.v;throw new Error("no atom value")},[[l,c,s],m]=(0,pt.useReducer)((p,u)=>{let b=a(u);return Object.is(p[1],b)&&p[2]===t?p:[u,b,t]},i,p=>{let u=a(p);return[p,u,t]}),d=c;return s!==t&&(m(l),d=a(l)),(0,pt.useEffect)(()=>{let{v:p}=r;p&&n[hl](t,p);let u=n[yc](t,m,p);return m(p),u},[n,t,r]),(0,pt.useEffect)(()=>{n[hl](t,l)}),(0,pt.useDebugValue)(d),d}function Lr(t,e){let o=zu(e),{s:r,w:n}=(0,pt.useContext)(o);return(0,pt.useCallback)(a=>{if((E&&E.MODE)!=="production"&&!("write"in t))throw new Error("not writable atom");let l=c=>r[vc](t,a,c);return n?n(l):l()},[r,n,t])}function Ce(t,e){return"scope"in t&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=t.scope),[gl(t,e),Lr(t,e)]}var v5=v($(),1),Me=Symbol(),oo=Eb();var y5=zh({"./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-WFZVQ7I6.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 E5=85,rr={code:"en",label:"English"},Wi=[rr,...[{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=>Uh[t.code]>=E5).sort((t,e)=>t.label>e.label?1:-1)],Cc="__test__";E.DEV&&Wi.unshift({code:Cc,label:"test language"},{code:`${Cc}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var Ui=rr,wc={},Tc=async t=>{if(Ui=t,document.documentElement.dir=Ui.rtl?"rtl":"ltr",document.documentElement.lang=Ui.code,t.code.startsWith(Cc))wc={};else try{wc=await y5(`./locales/${Ui.code}.json`)}catch(e){console.error(`Failed to load language ${t.code}:`,e.message),wc=Gm}oo.set(Tb,t.code)},Pr=()=>Ui,Cb=(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(Ui.code.startsWith(Cc))return`\u202A[[${e?`${t}(${JSON.stringify(e).slice(1,-1)})`:t}]]\u202C`;let r=t.split("."),n=Cb(wc,r)||Cb(Gm,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},Tb=Ve(rr.code),wt=()=>{let t=gl(Tb,Me);return{t:g,langCode:t}};var Ic=v($(),1);h();var _b=v($(),1);var kc=v(T(),1),_5=({size:t="1em",circleWidth:e=8,synchronized:o=!1})=>{let n=-(_b.default.useRef(Date.now()).current%1600);return(0,kc.jsx)("div",{className:"Spinner",children:(0,kc.jsx)("svg",{viewBox:"0 0 100 100",style:{width:t,height:t,"--spinner-delay":o?`${n}ms`:0},children:(0,kc.jsx)("circle",{cx:"50",cy:"50",r:50-e/2,strokeWidth:e,fill:"none",strokeMiterlimit:"10"})})})},Lt=_5;h();function Mb(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=Mb(t[e]))&&(r&&(r+=" "),r+=o);else for(e in t)t[e]&&(r&&(r+=" "),r+=e);return r}function F(){for(var t=0,e,o,r="";t<arguments.length;)(e=arguments[t++])&&(o=Mb(e))&&(r&&(r+=" "),r+=o);return r}var Gi=v(T(),1),_c=({delay:t,theme:e})=>{let[o,r]=(0,Ic.useState)(!!t);return(0,Ic.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{r(!1)},t);return()=>clearTimeout(n)},[t]),o?null:(0,Gi.jsxs)("div",{className:F("LoadingMessage",{"LoadingMessage--dark":e===dt.DARK}),children:[(0,Gi.jsx)("div",{children:(0,Gi.jsx)(Lt,{})}),(0,Gi.jsx)("div",{className:"LoadingMessage-text",children:g("labels.loadingScene")})]})};var Lb=v(T(),1),Ab=t=>{let[e,o]=(0,Mc.useState)(!0);return(0,Mc.useEffect)(()=>{let r=async()=>{await Tc(n),o(!1)},n=Wi.find(i=>i.code===t.langCode)||rr;r()},[t.langCode]),e?(0,Lb.jsx)(_c,{theme:t.theme}):t.children};h();var Et=v($(),1),Om=v(nr(),1);h();h();h();var $o=v($(),1);var Eo=v(T(),1),ae=$o.default.forwardRef((t,e)=>{let{id:o}=Tt(),r=$o.default.useRef(null);$o.default.useImperativeHandle(e,()=>r.current);let n=`ToolIcon_size_${t.size}`,[i,a]=(0,$o.useState)(!1),l=(0,$o.useRef)(!0),c=async m=>{let d="onClick"in t&&t.onClick?.(m);if(vi(d))try{a(!0),await d}catch(p){if(p instanceof Ri)console.warn(p);else throw p}finally{l.current&&a(!1)}};(0,$o.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let s=(0,$o.useRef)(null);if(t.type==="button"||t.type==="icon"||t.type==="submit"){let m=t.type==="icon"?"button":t.type;return(0,Eo.jsxs)("button",{className:F("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:c,ref:r,disabled:i||t.isLoading,children:[(t.icon||t.label)&&(0,Eo.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true",children:[t.icon||t.label,t.keyBindingLabel&&(0,Eo.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel}),t.isLoading&&(0,Eo.jsx)(Lt,{})]}),t.showAriaLabel&&(0,Eo.jsxs)("div",{className:"ToolIcon__label",children:[t["aria-label"]," ",i&&(0,Eo.jsx)(Lt,{})]}),t.children]})}return(0,Eo.jsxs)("label",{className:F("ToolIcon",t.className),title:t.title,onPointerDown:m=>{s.current=m.pointerType||null,t.onPointerDown?.({pointerType:m.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{s.current=null})},children:[(0,Eo.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:s.current})},checked:t.checked,ref:r}),(0,Eo.jsxs)("div",{className:"ToolIcon__icon",children:[t.icon,t.keyBindingLabel&&(0,Eo.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel})]})]})});ae.defaultProps={visible:!0,className:"",size:"medium"};ae.displayName="ToolButton";h();var Zt=v($(),1);var f=v(T(),1),Ho=t=>"var(--icon-fill-color)",Db=t=>t===dt.LIGHT?Qe.white:"#1e1e1e",D=(t,e=512)=>{let{width:o=512,height:r=o,mirror:n,style:i,...a}=typeof e=="number"?{width:e}:e;return(0,f.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${o} ${r}`,className:F({"rtl-mirror":n}),style:i,...a,children:typeof t=="string"?(0,f.jsx)("path",{fill:"currentColor",d:t}):t})},fe={width:24,height:24,fill:"none",strokeWidth:2,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},le={width:20,height:20,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},lI=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,f.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,f.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,f.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"})]}),fe),Rb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,f.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,f.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,f.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,f.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),fe),Nb=D((0,f.jsxs)("svg",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,f.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),fe),Ob=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,f.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,f.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),fe),Bb=D((0,f.jsxs)("svg",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,f.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,f.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),fe),Fb=D((0,f.jsxs)("g",{children:[(0,f.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,f.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,f.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,f.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,f.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,f.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"})})]}),le),$b=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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,f.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"})]}),le),Hb=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,f.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"}),zb=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.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,f.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"}),Ub=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.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,f.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"}),sI=D((0,f.jsx)("g",{fill:"currentColor",children:(0,f.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"}),Wb=D((0,f.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),Gb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),fe),Vb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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"})]}),fe),Kb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),fe),Yb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,f.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,f.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),fe),Zb=D((0,f.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),le),jb=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,f.jsx)("path",{d:"M16 7h4"}),(0,f.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),fe),Vi=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),le),Xb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,f.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,f.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,f.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,f.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),fe),qb=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M12.5 6.667h.01"}),(0,f.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,f.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,f.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),le),Jb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),fe),Qb=D((0,f.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),le),e0=D((0,f.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),le),ln=D((0,f.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"}),le),t0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,f.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),le),o0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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"})]}),le),r0=D((0,f.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"}),le),n0=D((0,f.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.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"})}),le),Ac=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,f.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,f.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),fe),Lc=D((0,f.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"}),le),Ki=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,f.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,f.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),fe),Pc=D((0,f.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"}),le),i0=D((0,f.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"}),le),a0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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"})]}),le),l0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,f.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),fe),s0=D((0,f.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Dc=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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"})]}),le),c0=D("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}),d0=D("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}),Yi=D((0,f.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"}),le),cI=D("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}),m0=D("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"),u0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M15 8h.01"}),(0,f.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,f.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,f.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,f.jsx)("path",{d:"M19 16v6"}),(0,f.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),fe),p0=D("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}),dI=D("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}),mI=D("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}),f0=D("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"),uI=D("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"),h0=D((0,f.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"}),le),g0=D((0,f.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"}),le),b0=D("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}),x0=D((0,f.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"}),le),pI=D("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"),fI=D("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}),hI=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.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}),gI=D((0,f.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}),v0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.622-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.767-.622-1.39-1.39-1.39Z",fill:"currentColor"}),(0,f.jsx)("path",{d:"M12.5 12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),y0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.944 12.5H12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388",fill:"currentColor"}),(0,f.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.621-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.768-.622-1.39-1.39-1.39Z"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),E0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M8.775 6.458h2.45a2.316 2.316 0 0 1 2.317 2.316v2.452a2.316 2.316 0 0 1-2.316 2.316H8.774a2.316 2.316 0 0 1-2.317-2.316V8.774a2.316 2.316 0 0 1 2.317-2.316Z",fill:"currentColor"}),(0,f.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316ZM12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),w0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",children:[(0,f.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,f.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,f.jsx)("mask",{id:"SendToBackIcon",fill:"#fff",children:(0,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z"})}),(0,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z",fill:"currentColor"}),(0,f.jsx)("path",{d:"M9.167 5.833h1.25v-1.25h-1.25v1.25Zm5 5h1.25v-1.25h-1.25v1.25Zm-3.334 3.334h-1.25v1.25h1.25v-1.25Zm-5-5h-1.25v1.25h1.25v-1.25Zm2.084-3.334v2.06h2.5v-2.06h-2.5Zm0 2.06a4.191 4.191 0 0 0 4.19 4.19v-2.5a1.691 1.691 0 0 1-1.69-1.69h-2.5Zm4.19 4.19h2.06v-2.5h-2.06v2.5Zm.81-1.25v.393h2.5v-.393h-2.5Zm0 .393c0 .933-.758 1.69-1.691 1.69v2.5a4.191 4.191 0 0 0 4.19-4.19h-2.5Zm-1.691 1.69h-.393v2.5h.393v-2.5Zm.857 1.25v-2.058h-2.5v2.059h2.5Zm0-2.058a4.191 4.191 0 0 0-4.19-4.191v2.5c.933 0 1.69.757 1.69 1.69h2.5Zm-4.19-4.191h-2.06v2.5h2.06v-2.5Zm-.81 1.25v-.393h-2.5v.393h2.5Zm0-.393c0-.934.758-1.69 1.692-1.69v-2.5a4.191 4.191 0 0 0-4.192 4.19h2.5Zm1.692-1.69h.392v-2.5h-.392v2.5Z",fill:"currentColor",mask:"url(#SendToBackIcon)"}),(0,f.jsx)("path",{d:"M12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z",stroke:"currentColor",strokeWidth:"1.25"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),C0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),T0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),S0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),k0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),I0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),_0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),M0=D((0,f.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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"})]}),le),A0=D((0,f.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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"})]}),le),Rc=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,f.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,f.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,f.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),fe),bI=D("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"),xI=D("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"),wo=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),L0=D("M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z",{width:320,height:512,style:{marginLeft:"-0.2rem"},mirror:!0}),vI=D("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}),yI=D("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}),EI=D("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}),P0=Zt.default.memo(({theme:t})=>D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{d:"M25 26H111V111H25",fill:Ho(t)}),(0,f.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:Ho(t),strokeWidth:"2"}),(0,f.jsx)("path",{d:"M100 100H160V160H100",fill:Ho(t)}),(0,f.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:Ho(t),strokeWidth:"2"}),(0,f.jsxs)("g",{fill:Db(t),stroke:Ho(t),strokeWidth:"6",children:[(0,f.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),D0=Zt.default.memo(({theme:t})=>D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{d:"M25 26H111V111H25",fill:Ho(t)}),(0,f.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:Ho(t),strokeWidth:"2"}),(0,f.jsx)("path",{d:"M100 100H160V160H100",fill:Ho(t)}),(0,f.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:Ho(t),strokeWidth:"2"}),(0,f.jsxs)("g",{fill:Db(t),stroke:Ho(t),strokeWidth:"6",children:[(0,f.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),R0=D((0,f.jsx)("g",{strokeWidth:1.25,children:(0,f.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"})}),le),N0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,f.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,f.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,f.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"})})]}),le),O0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",children:[(0,f.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,f.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,f.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,f.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),B0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...le,fill:"currentColor"}),Uu=D((0,f.jsx)(f.Fragment,{children:(0,f.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),le),F0=D((0,f.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),le),$0=D((0,f.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),le),wI=Zt.default.memo(({theme:t})=>D((0,f.jsx)("path",{d:"M6 10H34",stroke:Ho(t),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),H0=D((0,f.jsxs)("g",{strokeWidth:"2",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M5 12h2"}),(0,f.jsx)("path",{d:"M17 12h2"}),(0,f.jsx)("path",{d:"M11 12h2"})]}),fe),z0=D((0,f.jsxs)("g",{strokeWidth:"2",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 12v.01"}),(0,f.jsx)("path",{d:"M8 12v.01"}),(0,f.jsx)("path",{d:"M12 12v.01"}),(0,f.jsx)("path",{d:"M16 12v.01"}),(0,f.jsx)("path",{d:"M20 12v.01"})]}),fe),U0=D((0,f.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"}),le),W0=D((0,f.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"}),le),G0=D((0,f.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"}),le),V0=D((0,f.jsxs)("svg",{strokeWidth:"1.5",children:[(0,f.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,f.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,f.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,f.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,f.jsx)("path",{d:"M16.6667 10V10.01"}),(0,f.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,f.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,f.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),le),K0=D((0,f.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,f.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,f.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,f.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,f.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,f.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,f.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,f.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,f.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,f.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,f.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,f.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),fe),Y0=D((0,f.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),Z0=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,f.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,f.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),Wu=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,f.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,f.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),j0=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,f.jsx)("path",{d:"M26 10L6 10"}),(0,f.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),X0=Zt.default.memo(({flip:t=!1})=>D((0,f.jsx)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",children:(0,f.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),q0=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,f.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,f.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),J0=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,f.jsx)("path",{d:"M6,9.5H27"}),(0,f.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),Q0=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,f.jsx)("path",{d:"M6,9.5H20"}),(0,f.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),ex=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,f.jsx)("path",{d:"M6,9.5H20"}),(0,f.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),tx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),ox=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),rx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),nx=D((0,f.jsx)(f.Fragment,{children:(0,f.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"})}),le),ix=D((0,f.jsx)(f.Fragment,{children:(0,f.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.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"})})}),le),ax=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),lx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,f.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,f.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),fe),sx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,f.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,f.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),fe),cx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,f.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,f.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),fe),dx=Zt.default.memo(({theme:t})=>D((0,f.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,f.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),fe)),mx=Zt.default.memo(({theme:t})=>D((0,f.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,f.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),fe)),ux=Zt.default.memo(({theme:t})=>D((0,f.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,f.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,f.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),fe)),px=D((0,f.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}),CI=D((0,f.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"})),fx=D((0,f.jsxs)("g",{strokeWidth:1.25,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,f.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,f.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,f.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"})]}),fe),Gu=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,f.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,f.jsx)("path",{d:"M12 4l0 12"})]}),fe),Nc=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.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"})]}),fe),hx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,f.jsx)("path",{d:"M12 17l0 .01"}),(0,f.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),fe),TI=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M7 4v16l13 -8z"})]}),fe),SI=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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"})]}),fe),kI=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),fe),gx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.jsx)("path",{d:"M12 9v4"}),(0,f.jsx)("path",{d:"M12 17h.01"})]}),fe),bx=D((0,f.jsxs)("g",{strokeWidth:1.25,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M11 7l6 6"}),(0,f.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"})]}),fe),xx=D((0,f.jsxs)("g",{strokeWidth:1.5,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,f.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,f.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"})]}),fe),vx=D((0,f.jsxs)("g",{strokeWidth:1.5,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 7l16 0"}),(0,f.jsx)("path",{d:"M4 17l16 0"}),(0,f.jsx)("path",{d:"M7 4l0 16"}),(0,f.jsx)("path",{d:"M17 4l0 16"})]}),fe),yx=D((0,f.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"})),Zi=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,f.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,f.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),le),Oc=D((0,f.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,f.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,f.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),ji=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,f.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,f.jsx)("path",{d:"M15 6l3 3"}),(0,f.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,f.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"})]}),fe),bl=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,f.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,f.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,f.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,f.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,f.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"})]}),fe),Ex=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,f.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,f.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,f.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),fe),Bc=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,f.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"})]}),fe),wx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,f.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,f.jsx)("path",{d:"M3 3l18 18"})]}),fe),Cx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.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,f.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,f.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,f.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,f.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),fe),Tx=D((0,f.jsxs)("g",{strokeWidth:1.5,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,f.jsx)("path",{d:"M21 21l-6 -6"})]}),fe);var kx=v(T(),1),M5=(t,e)=>{let o=new Set(Se(t.filter(r=>we(r)),e).map(r=>r.id));return{elements:t.map(r=>e.selectedElementIds[r.id]?ce(r,{isDeleted:!0}):r.frameId&&o.has(r.frameId)?ce(r,{isDeleted:!0}):gt(r)&&e.selectedElementIds[r.containerId]?ce(r,{isDeleted:!0}):r),appState:{...e,selectedElementIds:{},selectedGroupIds:{}}}},Sx=(t,e)=>{if(t.editingGroupId){let o=ut(he(e),t.editingGroupId);if(o.length)return{...t,selectedElementIds:{[o[0].id]:!0}}}return t},xl=H({name:"deleteSelectedElements",trackEvent:{category:"element",action:"delete"},perform:(t,e,o,r)=>{if(e.editingLinearElement){let{elementId:a,selectedPointsIndices:l,startBindingElement:c,endBindingElement:s}=e.editingLinearElement,m=r.scene.getNonDeletedElementsMap(),d=ue.getElement(a,m);if(!d||l==null)return!1;if(d.points.length<2){let u=t.map(x=>x.id===d.id?ce(x,{isDeleted:!0}):x),b=Sx(e,u);return{elements:u,appState:{...b,editingLinearElement:null},commitToHistory:!1}}let p={startBindingElement:l?.includes(0)?null:c,endBindingElement:l?.includes(d.points.length-1)?null:s};return ue.deletePoints(d,l),{elements:t,appState:{...e,editingLinearElement:{...e.editingLinearElement,...p,selectedPointsIndices:l?.[0]>0?[l[0]-1]:[0]}},commitToHistory:!0}}let{elements:n,appState:i}=M5(t,e);return Ii(n,t.filter(({id:a})=>e.selectedElementIds[a])),i=Sx(i,n),{elements:n,appState:{...i,activeTool:et(e,{type:"selection"}),multiElement:null,activeEmbeddable:null},commitToHistory:Re(he(t),e)}},contextItemLabel:"labels.delete",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,kx.jsx)(ae,{type:"button",icon:ln,title:g("labels.delete"),"aria-label":g("labels.delete"),onClick:()=>o(null),visible:Re(he(t),e)})});h();h();var Vu=(t,e)=>t.frameId===e||t.id===e,_x=(t,e,o)=>{let r=[],n=[],i=null,a=-1,l=Be(o||Se(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++a<t.length;){let c=t[a];l.get(c.id)?(n.length&&(r=r.concat(n),n=[]),r.push(a),i=a+1):c.isDeleted&&i===a?(i=a+1,n.push(a)):n=[]}return r},A5=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),[])},Ix=(t,e,o)=>{if("containerId"in t&&t.containerId)if(o==="left"){let r=to.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=to.getScene(t).getElement(r);if(n)return e.indexOf(n)}}},L5=(t,e)=>{let o=-1,r=-1;return t.forEach((n,i)=>{Vu(n,e)&&(o===-1&&(o=i),r=i)}),o===-1?[]:t.slice(o,r+1)},P5=(t,e,o,r,n)=>{let i=e[o],a=d=>d.isDeleted?!1:n?d.frameId===n:t.editingGroupId?d.groupIds.includes(t.editingGroupId):!0,l=r==="left"?tu(e,d=>a(d),Math.max(0,o-1)):eu(e,d=>a(d),o+1),c=e[l];if(!c)return-1;if(t.editingGroupId){if(i?.groupIds.join("")===c?.groupIds.join(""))return Ix(c,e,r)??l;if(!c?.groupIds.includes(t.editingGroupId))return-1}if(!n&&(c.frameId||we(c))){let d=L5(e,c.frameId||c.id);return r==="left"?e.indexOf(d[0]):e.indexOf(d[d.length-1])}if(!c.groupIds.length)return Ix(c,e,r)??l;let s=t.editingGroupId?c.groupIds[c.groupIds.indexOf(t.editingGroupId)-1]:c.groupIds[c.groupIds.length-1],m=ut(e,s);return m.length?r==="left"?e.indexOf(m[0]):e.indexOf(m[m.length-1]):l},Mx=(t,e)=>e.reduce((o,r)=>{let n=t[r];return o[n.id]=n,o},{}),Ax=(t,e,o)=>{let r=_x(t,e),n=Mx(t,r),i=A5(r);o==="right"&&(i=i.reverse());let a=new Set(r.filter(l=>we(t[l])).map(l=>t[l].id));return i.forEach((l,c)=>{let s=l[0],m=l[l.length-1],d=o==="left"?s:m,p=l.some(k=>{let C=t[k];return C.frameId&&a.has(C.frameId)})?null:t[d]?.frameId,u=P5(e,t,d,o,p);if(u===-1||d===u)return;let b=o==="left"?t.slice(0,u):t.slice(0,s),x=t.slice(s,m+1),y=o==="left"?t.slice(u,s):t.slice(m+1,u+1),w=o==="left"?t.slice(m+1):t.slice(u+1);t=o==="left"?[...b,...x,...y,...w]:[...b,...y,...x,...w]}),t.map(l=>n[l.id]?Fi(l):l)},Lx=(t,e,o,r,n)=>{let i=_x(t,e,n),a=Mx(t,i),l=[],c,s;if(o==="left"){if(r)c=eu(t,u=>Vu(u,r));else if(e.editingGroupId){let u=ut(t,e.editingGroupId);if(!u.length)return t;c=t.indexOf(u[0])}else c=0;s=i[i.length-1]}else{if(r)s=tu(t,u=>Vu(u,r));else if(e.editingGroupId){let u=ut(t,e.editingGroupId);if(!u.length)return t;s=t.indexOf(u[u.length-1])}else s=t.length-1;c=i[0]}c===-1&&(c=0);for(let u=c;u<s+1;u++)i.includes(u)||l.push(t[u]);let m=Object.values(a).map(u=>Fi(u)),d=t.slice(0,c),p=t.slice(s+1);return o==="left"?[...d,...m,...l,...p]:[...d,...l,...m,...p]};function Px(t,e,o,r){let n=Be(Se(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),i={regularElements:[],frameChildren:new Map},a=new Set;for(let s of t)n.has(s.id)&&we(s)&&a.add(s.id);for(let s of t)if(n.has(s.id))if(we(s)||s.frameId&&a.has(s.frameId))i.regularElements.push(s);else if(!s.frameId)i.regularElements.push(s);else{let m=i.frameChildren.get(s.frameId)||[];m.push(s),i.frameChildren.set(s.frameId,m)}let l=t,c=Array.from(i.frameChildren.entries());for(let[s,m]of c)l=r(t,e,o,s,m);return r(l,e,o,null,i.regularElements)}var Dx=(t,e)=>Ax(t,e,"left"),Rx=(t,e)=>Ax(t,e,"right"),Nx=(t,e)=>Px(t,e,"left",Lx),Ox=(t,e)=>Px(t,e,"right",Lx);var vl=v(T(),1),Ku=H({name:"sendBackward",trackEvent:{category:"element"},perform:(t,e)=>({elements:Dx(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.sendBackward",keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===me.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendBackward")} \u2014 ${N("CtrlOrCmd+[")}`,children:y0})}),Yu=H({name:"bringForward",trackEvent:{category:"element"},perform:(t,e)=>({elements:Rx(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.bringForward",keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===me.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.bringForward")} \u2014 ${N("CtrlOrCmd+]")}`,children:v0})}),Zu=H({name:"sendToBack",trackEvent:{category:"element"},perform:(t,e)=>({elements:Nx(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.sendToBack",keyTest:t=>No?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.BRACKET_LEFT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===me.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendToBack")} \u2014 ${No?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")}`,children:w0})}),ju=H({name:"bringToFront",trackEvent:{category:"element"},perform:(t,e)=>({elements:Ox(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.bringToFront",keyTest:t=>No?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.BRACKET_RIGHT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===me.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:o=>t(null),title:`${g("labels.bringToFront")} \u2014 ${No?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")}`,children:E0})});h();var Xu=H({name:"selectAll",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{if(e.editingLinearElement)return!1;let n=Hi(t.filter(i=>!i.isDeleted&&!(ie(i)&&i.containerId)&&!i.locked)).reduce((i,a)=>(i[a.id]=!0,i),{});return{appState:{...e,...At({editingGroupId:null,selectedElementIds:n},he(t),e,r),selectedLinearElement:Object.keys(n).length===1&&Pe(t[0])?new ue(t[0]):null},commitToHistory:!0}},contextItemLabel:"labels.selectAll",keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.A});h();h();var D5=t=>{let e=t.slice(),o=new Set,r=i=>{let a=i[0]?.groupIds?.join(""),l=[i[0]],c=[];for(let s of i.slice(1))s.groupIds?.join("")===a?l.push(s):c.push(s);return c.length?[...l,...r(c)]: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],c=e.slice(a).filter(s=>{let m=s?.groupIds?.some(d=>d===l);return m&&n.set(s.id,!0),m});for(let s of r(c))o.add(s)}else o.add(i)}),o.size!==t.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),t):[...o]},R5=t=>{let e=Ig(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]},Bx=t=>R5(D5(t));var Fx=v(T(),1),qu=H({name:"duplicateSelection",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,commitToHistory:!0}:!1}return{...N5(t,e),commitToHistory:!0}},contextItemLabel:"labels.duplicateSelection",keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.D,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Fx.jsx)(ae,{type:"button",icon:o0,title:`${g("labels.duplicateSelection")} \u2014 ${N("CtrlOrCmd+D")}`,"aria-label":g("labels.duplicateSelection"),onClick:()=>o(null),visible:Re(he(t),e)})}),N5=(t,e)=>{let o=Bx(t),r=new Map,n=[],i=[],a=new Map,l=w=>{let k=Qs(e.editingGroupId,r,w,{x:w.x+vr/2,y:w.y+vr/2});return a.set(w.id,k.id),i.push(w),n.push(k),k},c=Be(Se(o,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),s=new Map,m=w=>{for(let k of w)s.set(k.id,!0);return w},d=[],p=-1;for(;++p<o.length;){let w=o[p];if(s.get(w.id))continue;let k=nt(w,Be(t)),C=we(w);if(c.get(w.id)){if(w.groupIds.length||k||C){let I=m1(e,w);if(I){let A=ut(o,I).flatMap(_=>we(_)?[...nn(t,_.id),_]:[_]);d.push(...m([...A,...A.map(_=>l(_))]));continue}if(k){d.push(...m([w,k,l(w),l(k)]));continue}if(C){let A=nn(o,w.id);d.push(...m([...A,w,...A.map(_=>l(_)),l(w)]));continue}}(!w.frameId||!c.has(w.frameId))&&d.push(...m([w,l(w)]))}else d.push(...m([w]))}let u=[],b=new Map;for(p=d.length;--p>=0;){let w=d[p];b.get(w.id)||(b.set(w.id,!0),u.push(w))}let x=u.reverse();Gs(d,i,a),Ws(d,i,a),dc(x,i,a);let y=Hi(n);return{elements:x,appState:{...e,...At({editingGroupId:e.editingGroupId,selectedElementIds:y.reduce((w,k)=>(gt(k)||(w[k.id]=!0),w),{})},he(x),e,null)}}};h();h();var O5=["ai"],ge=(t,e,o,r)=>{try{if(typeof window>"u"||E.VITE_WORKER_ID||E.PROD||!O5.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 Xi=v(T(),1),ir=t=>(0,Xi.jsx)("div",{className:"buttonList buttonListIcon",children:t.options.map(e=>t.type==="button"?(0,Xi.jsx)("button",{onClick:o=>t.onClick(e.value,o),className:F({active:e.active??t.value===e.value}),"data-testid":e.testId,title:e.text,children:e.icon},e.text):(0,Xi.jsxs)("label",{className:F({active:t.value===e.value}),title:e.text,children:[(0,Xi.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 Fc=v(T(),1),$x=({onChange:t,type:e,activeColor:o,topPicks:r})=>{let n;return e==="elementStroke"&&(n=bs),e==="elementBackground"&&(n=xs),e==="canvasBackground"&&(n=vs),r&&(n=r),n?(0,Fc.jsx)("div",{className:"color-picker__top-picks",children:n.map(i=>(0,Fc.jsx)("button",{className:F("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,Fc.jsx)("div",{className:"color-picker__button-outline"})},i))}):(console.error("Invalid type for TopPicks"),null)};h();var cn=v($(),1);h();var $c=v($(),1);h();var sn=({palette:t,color:e})=>{for(let[o,r]of Object.entries(t))if(Array.isArray(r)){let n=r.indexOf(e);if(n>-1)return{colorName:o,shade:n}}else if(r===e)return{colorName:o,shade:null};return null},yl=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),Ju=({color:t,palette:e})=>!Object.values(e).flat().includes(t),zx=(t,e,o)=>{let r={elementBackground:"backgroundColor",elementStroke:"strokeColor"},n=t.filter(a=>{if(a.isDeleted)return!1;let l=a[r[e]];return Ju({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,Wh)},Co=Ve(null),Hx=(t,e,o)=>(t*299+e*587+o*114)/1e3>=160?"black":"white",Ux=(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]),c=parseInt(a[1]),s=parseInt(a[2]);return Hx(l,c,s)}}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 Hx(o,r,n)};h();var Wx=v(T(),1),B5=({color:t,keyLabel:e,isCustomColor:o=!1,isShade:r=!1})=>(0,Wx.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:Ux(t,o)},children:[r&&"\u21E7",e]}),qi=B5;var Dr=v(T(),1),Gx=({hex:t,onChange:e,palette:o})=>{let r=sn({color:t||"transparent",palette:o}),[n,i]=Ce(Co),a=(0,$c.useRef)(null);if((0,$c.useEffect)(()=>{a.current&&n==="shades"&&a.current.focus()},[r,n]),r){let{colorName:l,shade:c}=r,s=o[l];if(Array.isArray(s))return(0,Dr.jsx)("div",{className:"color-picker-content--default shades",children:s.map((m,d)=>(0,Dr.jsxs)("button",{ref:d===c&&n==="shades"?a:void 0,tabIndex:-1,type:"button",className:F("color-picker__button color-picker__button--large",{active:d===c}),"aria-label":"Shade",title:`${l} - ${d+1}`,style:m?{"--swatch-color":m}:void 0,onClick:()=>{e(m),i("shades")},children:[(0,Dr.jsx)("div",{className:"color-picker__button-outline"}),(0,Dr.jsx)(qi,{color:m,keyLabel:d+1,isShade:!0})]},d))})}return(0,Dr.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Dr.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Dr.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 Hc=v($(),1);var Ji=v(T(),1),F5=({palette:t,color:e,onChange:o,label:r,activeShade:n})=>{let i=sn({color:e||"transparent",palette:t}),[a,l]=Ce(Co),c=(0,Hc.useRef)(null);return(0,Hc.useEffect)(()=>{c.current&&a==="baseColors"&&c.current.focus()},[i?.colorName,a]),(0,Ji.jsx)("div",{className:"color-picker-content--default",children:Object.entries(t).map(([s,m],d)=>{let p=(Array.isArray(m)?m[n]:m)||"transparent",u=yl[d],b=g(`colors.${s.replace(/\d+/,"")}`,null,"");return(0,Ji.jsxs)("button",{ref:i?.colorName===s?c:void 0,tabIndex:-1,type:"button",className:F("color-picker__button color-picker__button--large",{active:i?.colorName===s,"is-transparent":p==="transparent"||!p}),onClick:()=>{o(p),l("baseColors")},title:`${b}${p.startsWith("#")?` ${p}`:""} \u2014 ${u}`,"aria-label":`${b} \u2014 ${u}`,style:p?{"--swatch-color":p}:void 0,"data-testid":`color-${s}`,children:[(0,Ji.jsx)("div",{className:"color-picker__button-outline"}),(0,Ji.jsx)(qi,{color:p,keyLabel:u})]},s)})})},Vx=F5;h();var zc=v($(),1);var Qi=v(T(),1),Kx=({colors:t,color:e,onChange:o,label:r})=>{let[n,i]=Ce(Co),a=(0,zc.useRef)(null);return(0,zc.useEffect)(()=>{a.current&&a.current.focus()},[e,n]),(0,Qi.jsx)("div",{className:"color-picker-content--default",children:t.map((l,c)=>(0,Qi.jsxs)("button",{ref:e===l?a:void 0,tabIndex:-1,type:"button",className:F("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,Qi.jsx)("div",{className:"color-picker__button-outline"}),(0,Qi.jsx)(qi,{color:l,keyLabel:c+1,isCustomColor:!0})]},c))})};h();var Qu=(t,e,o)=>{let r=Math.ceil(o/Mn);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+Mn;return n>=o?e%Mn:n}case"ArrowUp":{let n=e-Mn,i=n<0?Mn*r+n:n;return i>=o?void 0:i}}},$5=({e:t,colorObj:e,onChange:o,palette:r,customColors:n,setActiveColorPickerSection:i,activeShade:a})=>{if(e?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(t.code)&&t.shiftKey){let l=Number(t.code.slice(-1))-1;return o(r[e.colorName][l]),i("shades"),!0}if(["1","2","3","4","5"].includes(t.key)&&n[Number(t.key)-1])return o(n[Number(t.key)-1]),i("custom"),!0;if(yl.includes(t.key)){let l=yl.indexOf(t.key),c=Object.keys(r)[l],s=r[c],m=Array.isArray(s)?s[a]:s;return o(m),i("baseColors"),!0}return!1},Yx=({event:t,activeColorPickerSection:e,palette:o,color:r,onChange:n,customColors:i,setActiveColorPickerSection:a,updateData:l,activeShade:c,onEyeDropperToggle:s,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 s(!0),!0;if(t.key===S.I)return s(),!0;let d=sn({color:r,palette:o});if(t.key===S.TAB){let p={custom:!!i.length,baseColors:!0,shades:d?.shade!=null,hex:!0},u=Object.entries(p).reduce((k,[C,I])=>(I&&k.push(C),k),[]),b=u.indexOf(e),x=t.shiftKey?-1:1,y=b+x>u.length-1?0:b+x<0?u.length-1:b+x,w=u[y];return w&&a(w),w==="custom"?n(i[0]):w==="baseColors"&&(Object.entries(o).find(([C,I])=>Array.isArray(I)?I.includes(r):I===r?C:null)||n(br.black)),t.preventDefault(),t.stopPropagation(),!0}if($5({e:t,colorObj:d,onChange:n,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:c}))return!0;if(e==="shades"&&d){let{shade:p}=d,u=Qu(t.key,p,Mn);if(u!==void 0)return n(o[d.colorName][u]),!0}if(e==="baseColors"&&d){let{colorName:p}=d,u=Object.keys(o),b=u.indexOf(p),x=Qu(t.key,b,u.length);if(x!==void 0){let y=u[x],w=o[y];return n(Array.isArray(w)?w[c]:w),!0}}if(e==="custom"){let p=i.indexOf(r),u=Qu(t.key,p,i.length);if(u!==void 0){let b=i[u];return n(b),!0}}return!1};h();var Zx=v(T(),1),H5=({children:t})=>(0,Zx.jsx)("div",{className:"color-picker__heading",children:t}),ea=H5;var lo=v(T(),1),jx=({color:t,onChange:e,label:o,type:r,elements:n,palette:i,updateData:a,children:l,onEyeDropperToggle:c,onEscape:s})=>{let[m]=cn.default.useState(()=>r==="canvasBackground"?[]:zx(n,r,i)),[d,p]=Ce(Co),u=sn({color:t,palette:i});(0,cn.useEffect)(()=>{if(!d){let w=Ju({color:t,palette:i}),k=w&&!m.includes(t);p(k?"hex":w?"custom":u?.shade!=null?"shades":"baseColors")}},[d,t,i,p,u,m]);let[b,x]=(0,cn.useState)(u?.shade??(r==="elementBackground"?Vh:Gh));(0,cn.useEffect)(()=>{u?.shade!=null&&x(u.shade);let w=k=>{k.key===S.ALT&&c(!1)};return document.addEventListener("keyup",w,{capture:!0}),()=>{document.removeEventListener("keyup",w,{capture:!0})}},[u,c]);let y=cn.default.useRef(null);return(0,lo.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":g("labels.colorPicker"),children:(0,lo.jsxs)("div",{ref:y,onKeyDown:w=>{Yx({event:w,activeColorPickerSection:d,palette:i,color:t,onChange:e,onEyeDropperToggle:c,customColors:m,setActiveColorPickerSection:p,updateData:a,activeShade:b,onEscape:s})&&(w.preventDefault(),w.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!m.length&&(0,lo.jsxs)("div",{children:[(0,lo.jsx)(ea,{children:g("colorPicker.mostUsedCustomColors")}),(0,lo.jsx)(Kx,{colors:m,color:t,label:g("colorPicker.mostUsedCustomColors"),onChange:e})]}),(0,lo.jsxs)("div",{children:[(0,lo.jsx)(ea,{children:g("colorPicker.colors")}),(0,lo.jsx)(Vx,{color:t,label:o,palette:i,onChange:e,activeShade:b})]}),(0,lo.jsxs)("div",{children:[(0,lo.jsx)(ea,{children:g("colorPicker.shades")}),(0,lo.jsx)(Gx,{hex:t,onChange:e,palette:i})]}),l]})})};h();h();function be(){return be=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},be.apply(this,arguments)}var ve=v($());h();function bt(t,e,{checkForDefaultPrevented:o=!0}={}){return function(n){if(t?.(n),o===!1||!n.defaultPrevented)return e?.(n)}}h();var Xx=v($());function z5(t,e){typeof t=="function"?t(e):t!=null&&(t.current=e)}function ep(...t){return e=>t.forEach(o=>z5(o,e))}function Pt(...t){return(0,Xx.useCallback)(ep(...t),t)}h();var zo=v($());function ar(t,e=[]){let o=[];function r(i,a){let l=(0,zo.createContext)(a),c=o.length;o=[...o,a];function s(d){let{scope:p,children:u,...b}=d,x=p?.[t][c]||l,y=(0,zo.useMemo)(()=>b,Object.values(b));return(0,zo.createElement)(x.Provider,{value:y},u)}function m(d,p){let u=p?.[t][c]||l,b=(0,zo.useContext)(u);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${d}\` must be used within \`${i}\``)}return s.displayName=i+"Provider",[s,m]}let n=()=>{let i=o.map(a=>(0,zo.createContext)(a));return function(l){let c=l?.[t]||i;return(0,zo.useMemo)(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return n.scopeName=t,[r,U5(n,...e)]}function U5(...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:c,scopeName:s})=>{let d=c(i)[`__scope${s}`];return{...l,...d}},{});return(0,zo.useMemo)(()=>({[`__scope${e.scopeName}`]:a}),[a])}};return o.scopeName=e.scopeName,o}h();var ft=v($());h();var ta=v($()),qx=v(nr());h();var ot=v($());var dn=(0,ot.forwardRef)((t,e)=>{let{children:o,...r}=t,n=ot.Children.toArray(o),i=n.find(G5);if(i){let a=i.props.children,l=n.map(c=>c===i?ot.Children.count(a)>1?ot.Children.only(null):(0,ot.isValidElement)(a)?a.props.children:null:c);return(0,ot.createElement)(tp,be({},r,{ref:e}),(0,ot.isValidElement)(a)?(0,ot.cloneElement)(a,void 0,l):null)}return(0,ot.createElement)(tp,be({},r,{ref:e}),o)});dn.displayName="Slot";var tp=(0,ot.forwardRef)((t,e)=>{let{children:o,...r}=t;return(0,ot.isValidElement)(o)?(0,ot.cloneElement)(o,{...V5(r,o.props),ref:ep(e,o.ref)}):ot.Children.count(o)>1?ot.Children.only(null):null});tp.displayName="SlotClone";var W5=({children:t})=>(0,ot.createElement)(ot.Fragment,null,t);function G5(t){return(0,ot.isValidElement)(t)&&t.type===W5}function V5(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 K5=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],it=K5.reduce((t,e)=>{let o=(0,ta.forwardRef)((r,n)=>{let{asChild:i,...a}=r,l=i?dn:e;return(0,ta.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,ta.createElement)(l,be({},a,{ref:n}))});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{});function Jx(t,e){t&&(0,qx.flushSync)(()=>t.dispatchEvent(e))}h();var oa=v($());function jt(t){let e=(0,oa.useRef)(t);return(0,oa.useEffect)(()=>{e.current=t}),(0,oa.useMemo)(()=>(...o)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...o)},[])}h();var Qx=v($());function ev(t,e=globalThis?.document){let o=jt(t);(0,Qx.useEffect)(()=>{let r=n=>{n.key==="Escape"&&o(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[o,e])}var op="dismissableLayer.update",Y5="dismissableLayer.pointerDownOutside",Z5="dismissableLayer.focusOutside",tv,j5=(0,ft.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),rv=(0,ft.forwardRef)((t,e)=>{var o;let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:l,onDismiss:c,...s}=t,m=(0,ft.useContext)(j5),[d,p]=(0,ft.useState)(null),u=(o=d?.ownerDocument)!==null&&o!==void 0?o:globalThis?.document,[,b]=(0,ft.useState)({}),x=Pt(e,L=>p(L)),y=Array.from(m.layers),[w]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),k=y.indexOf(w),C=d?y.indexOf(d):-1,I=m.layersWithOutsidePointerEventsDisabled.size>0,A=C>=k,_=X5(L=>{let W=L.target,B=[...m.branches].some(Y=>Y.contains(W));!A||B||(i?.(L),l?.(L),L.defaultPrevented||c?.())},u),M=q5(L=>{let W=L.target;[...m.branches].some(Y=>Y.contains(W))||(a?.(L),l?.(L),L.defaultPrevented||c?.())},u);return ev(L=>{C===m.layers.size-1&&(n?.(L),!L.defaultPrevented&&c&&(L.preventDefault(),c()))},u),(0,ft.useEffect)(()=>{if(d)return r&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(tv=u.body.style.pointerEvents,u.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(d)),m.layers.add(d),ov(),()=>{r&&m.layersWithOutsidePointerEventsDisabled.size===1&&(u.body.style.pointerEvents=tv)}},[d,u,r,m]),(0,ft.useEffect)(()=>()=>{d&&(m.layers.delete(d),m.layersWithOutsidePointerEventsDisabled.delete(d),ov())},[d,m]),(0,ft.useEffect)(()=>{let L=()=>b({});return document.addEventListener(op,L),()=>document.removeEventListener(op,L)},[]),(0,ft.createElement)(it.div,be({},s,{ref:x,style:{pointerEvents:I?A?"auto":"none":void 0,...t.style},onFocusCapture:bt(t.onFocusCapture,M.onFocusCapture),onBlurCapture:bt(t.onBlurCapture,M.onBlurCapture),onPointerDownCapture:bt(t.onPointerDownCapture,_.onPointerDownCapture)}))});function X5(t,e=globalThis?.document){let o=jt(t),r=(0,ft.useRef)(!1),n=(0,ft.useRef)(()=>{});return(0,ft.useEffect)(()=>{let i=l=>{if(l.target&&!r.current){let s=function(){nv(Y5,o,c,{discrete:!0})},c={originalEvent:l};l.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=s,e.addEventListener("click",n.current,{once:!0})):s()}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 q5(t,e=globalThis?.document){let o=jt(t),r=(0,ft.useRef)(!1);return(0,ft.useEffect)(()=>{let n=i=>{i.target&&!r.current&&nv(Z5,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 ov(){let t=new CustomEvent(op);document.dispatchEvent(t)}function nv(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?Jx(n,i):n.dispatchEvent(i)}h();var av=v($()),rp=0;function lv(){(0,av.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:iv()),document.body.insertAdjacentElement("beforeend",(e=o[1])!==null&&e!==void 0?e:iv()),rp++,()=>{rp===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),rp--}},[])}function iv(){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 ro=v($());var np="focusScope.autoFocusOnMount",ip="focusScope.autoFocusOnUnmount",sv={bubbles:!1,cancelable:!0};var uv=(0,ro.forwardRef)((t,e)=>{let{loop:o=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...a}=t,[l,c]=(0,ro.useState)(null),s=jt(n),m=jt(i),d=(0,ro.useRef)(null),p=Pt(e,x=>c(x)),u=(0,ro.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,ro.useEffect)(()=>{if(r){let x=function(w){if(u.paused||!l)return;let k=w.target;l.contains(k)?d.current=k:Un(d.current,{select:!0})},y=function(w){u.paused||!l||l.contains(w.relatedTarget)||Un(d.current,{select:!0})};return document.addEventListener("focusin",x),document.addEventListener("focusout",y),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",y)}}},[r,l,u.paused]),(0,ro.useEffect)(()=>{if(l){dv.add(u);let x=document.activeElement;if(!l.contains(x)){let w=new CustomEvent(np,sv);l.addEventListener(np,s),l.dispatchEvent(w),w.defaultPrevented||(J5(r6(pv(l)),{select:!0}),document.activeElement===x&&Un(l))}return()=>{l.removeEventListener(np,s),setTimeout(()=>{let w=new CustomEvent(ip,sv);l.addEventListener(ip,m),l.dispatchEvent(w),w.defaultPrevented||Un(x??document.body,{select:!0}),l.removeEventListener(ip,m),dv.remove(u)},0)}}},[l,s,m,u]);let b=(0,ro.useCallback)(x=>{if(!o&&!r||u.paused)return;let y=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,w=document.activeElement;if(y&&w){let k=x.currentTarget,[C,I]=Q5(k);C&&I?!x.shiftKey&&w===I?(x.preventDefault(),o&&Un(C,{select:!0})):x.shiftKey&&w===C&&(x.preventDefault(),o&&Un(I,{select:!0})):w===k&&x.preventDefault()}},[o,r,u.paused]);return(0,ro.createElement)(it.div,be({tabIndex:-1},a,{ref:p,onKeyDown:b}))});function J5(t,{select:e=!1}={}){let o=document.activeElement;for(let r of t)if(Un(r,{select:e}),document.activeElement!==o)return}function Q5(t){let e=pv(t),o=cv(e,t),r=cv(e.reverse(),t);return[o,r]}function pv(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 cv(t,e){for(let o of t)if(!e6(o,{upTo:e}))return o}function e6(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 t6(t){return t instanceof HTMLInputElement&&"select"in t}function Un(t,{select:e=!1}={}){if(t&&t.focus){let o=document.activeElement;t.focus({preventScroll:!0}),t!==o&&t6(t)&&e&&t.select()}}var dv=o6();function o6(){let t=[];return{add(e){let o=t[0];e!==o&&o?.pause(),t=mv(t,e),t.unshift(e)},remove(e){var o;t=mv(t,e),(o=t[0])===null||o===void 0||o.resume()}}}function mv(t,e){let o=[...t],r=o.indexOf(e);return r!==-1&&o.splice(r,1),o}function r6(t){return t.filter(e=>e.tagName!=="A")}h();var Uc=v($());h();var fv=v($()),To=globalThis?.document?fv.useLayoutEffect:()=>{};var n6=Uc.useId||(()=>{}),i6=0;function ra(t){let[e,o]=Uc.useState(n6());return To(()=>{t||o(r=>r??String(i6++))},[t]),t||(e?`radix-${e}`:"")}h();var Ke=v($());h();h();h();function Gn(t){return t.split("-")[0]}function wl(t){return t.split("-")[1]}function ia(t){return["top","bottom"].includes(Gn(t))?"x":"y"}function lp(t){return t==="y"?"height":"width"}function hv(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=ia(e),c=lp(l),s=r[c]/2-n[c]/2,m=l==="x",d;switch(Gn(e)){case"top":d={x:i,y:r.y-n.height};break;case"bottom":d={x:i,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:a};break;case"left":d={x:r.x-n.width,y:a};break;default:d={x:r.x,y:r.y}}switch(wl(e)){case"start":d[l]-=s*(o&&m?-1:1);break;case"end":d[l]+=s*(o&&m?-1:1)}return d}var vv=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)),c=await a.getElementRects({reference:t,floating:e,strategy:n}),{x:s,y:m}=hv(c,r,l),d=r,p={},u=0;for(let b=0;b<i.length;b++){let{name:x,fn:y}=i[b],{x:w,y:k,data:C,reset:I}=await y({x:s,y:m,initialPlacement:r,placement:d,strategy:n,middlewareData:p,rects:c,platform:a,elements:{reference:t,floating:e}});s=w??s,m=k??m,p={...p,[x]:{...p[x],...C}},I&&u<=50&&(u++,typeof I=="object"&&(I.placement&&(d=I.placement),I.rects&&(c=I.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:n}):I.rects),{x:s,y:m}=hv(c,d,l)),b=-1)}return{x:s,y:m,placement:d,strategy:n,middlewareData:p}};function yv(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 El(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function na(t,e){var o;e===void 0&&(e={});let{x:r,y:n,platform:i,rects:a,elements:l,strategy:c}=t,{boundary:s="clippingAncestors",rootBoundary:m="viewport",elementContext:d="floating",altBoundary:p=!1,padding:u=0}=e,b=yv(u),x=l[p?d==="floating"?"reference":"floating":d],y=El(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:s,rootBoundary:m,strategy:c})),w=El(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:d==="floating"?{...a.floating,x:r,y:n}:a.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),strategy:c}):a[d]);return{top:y.top-w.top+b.top,bottom:w.bottom-y.bottom+b.bottom,left:y.left-w.left+b.left,right:w.right-y.right+b.right}}var a6=Math.min,Wn=Math.max;function ap(t,e,o){return Wn(t,a6(e,o))}var Gc=t=>({name:"arrow",options:t,async fn(e){let{element:o,padding:r=0}=t??{},{x:n,y:i,placement:a,rects:l,platform:c}=e;if(o==null)return{};let s=yv(r),m={x:n,y:i},d=ia(a),p=wl(a),u=lp(d),b=await c.getDimensions(o),x=d==="y"?"top":"left",y=d==="y"?"bottom":"right",w=l.reference[u]+l.reference[d]-m[d]-l.floating[u],k=m[d]-l.reference[d],C=await(c.getOffsetParent==null?void 0:c.getOffsetParent(o)),I=C?d==="y"?C.clientHeight||0:C.clientWidth||0:0;I===0&&(I=l.floating[u]);let A=w/2-k/2,_=s[x],M=I-b[u]-s[y],L=I/2-b[u]/2+A,W=ap(_,L,M),B=(p==="start"?s[x]:s[y])>0&&L!==W&&l.reference[u]<=l.floating[u];return{[d]:m[d]-(B?L<_?_-L:M-L:0),data:{[d]:W,centerOffset:L-W}}}}),l6={left:"right",right:"left",bottom:"top",top:"bottom"};function Wc(t){return t.replace(/left|right|bottom|top/g,e=>l6[e])}function s6(t,e,o){o===void 0&&(o=!1);let r=wl(t),n=ia(t),i=lp(n),a=n==="x"?r===(o?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(a=Wc(a)),{main:a,cross:Wc(a)}}var c6={start:"end",end:"start"};function gv(t){return t.replace(/start|end/g,e=>c6[e])}var Ev=["top","right","bottom","left"],B9=Ev.reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);var sp=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:c}=e,{mainAxis:s=!0,crossAxis:m=!0,fallbackPlacements:d,fallbackStrategy:p="bestFit",flipAlignment:u=!0,...b}=t,x=Gn(r),y=d||(x===a||!u?[Wc(a)]:function(L){let W=Wc(L);return[gv(L),W,gv(W)]}(a)),w=[a,...y],k=await na(e,b),C=[],I=((o=n.flip)==null?void 0:o.overflows)||[];if(s&&C.push(k[x]),m){let{main:L,cross:W}=s6(r,i,await(l.isRTL==null?void 0:l.isRTL(c.floating)));C.push(k[L],k[W])}if(I=[...I,{placement:r,overflows:C}],!C.every(L=>L<=0)){var A,_;let L=((A=(_=n.flip)==null?void 0:_.index)!=null?A:0)+1,W=w[L];if(W)return{data:{index:L,overflows:I},reset:{placement:W}};let B="bottom";switch(p){case"bestFit":{var M;let Y=(M=I.map(O=>[O,O.overflows.filter(z=>z>0).reduce((z,ne)=>z+ne,0)]).sort((O,z)=>O[1]-z[1])[0])==null?void 0:M[0].placement;Y&&(B=Y);break}case"initialPlacement":B=a}if(r!==B)return{reset:{placement:B}}}return{}}}};function bv(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function xv(t){return Ev.some(e=>t[e]>=0)}var cp=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=bv(await na(r,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:xv(i)}}}case"escaped":{let i=bv(await na(r,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:i,escaped:xv(i)}}}default:return{}}}}},dp=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:c,elements:s}=i,m=await(c.isRTL==null?void 0:c.isRTL(s.floating)),d=Gn(l),p=wl(l),u=ia(l)==="x",b=["left","top"].includes(d)?-1:1,x=m&&u?-1:1,y=typeof a=="function"?a(i):a,{mainAxis:w,crossAxis:k,alignmentAxis:C}=typeof y=="number"?{mainAxis:y,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...y};return p&&typeof C=="number"&&(k=p==="end"?-1*C:C),u?{x:k*x,y:w*b}:{x:w*b,y:k*x}}(e,t);return{x:o+n.x,y:r+n.y,data:n}}}};function wv(t){return t==="x"?"y":"x"}var mp=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:w,y:k}=y;return{x:w,y:k}}},...c}=t,s={x:o,y:r},m=await na(e,c),d=ia(Gn(n)),p=wv(d),u=s[d],b=s[p];if(i){let y=d==="y"?"bottom":"right";u=ap(u+m[d==="y"?"top":"left"],u,u-m[y])}if(a){let y=p==="y"?"bottom":"right";b=ap(b+m[p==="y"?"top":"left"],b,b-m[y])}let x=l.fn({...e,[d]:u,[p]:b});return{...x,data:{x:x.x-o,y:x.y-r}}}}},up=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:c=!0,crossAxis:s=!0}=t,m={x:o,y:r},d=ia(n),p=wv(d),u=m[d],b=m[p],x=typeof l=="function"?l({...i,placement:n}):l,y=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(c){let A=d==="y"?"height":"width",_=i.reference[d]-i.floating[A]+y.mainAxis,M=i.reference[d]+i.reference[A]-y.mainAxis;u<_?u=_:u>M&&(u=M)}if(s){var w,k,C,I;let A=d==="y"?"width":"height",_=["top","left"].includes(Gn(n)),M=i.reference[p]-i.floating[A]+(_&&(w=(k=a.offset)==null?void 0:k[p])!=null?w:0)+(_?0:y.crossAxis),L=i.reference[p]+i.reference[A]+(_?0:(C=(I=a.offset)==null?void 0:I[p])!=null?C:0)-(_?y.crossAxis:0);b<M?b=M:b>L&&(b=L)}return{[d]:u,[p]:b}}}},pp=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,c=await na(e,l),s=Gn(o),m=wl(o),d,p;s==="top"||s==="bottom"?(d=s,p=m===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(p=s,d=m==="end"?"top":"bottom");let u=Wn(c.left,0),b=Wn(c.right,0),x=Wn(c.top,0),y=Wn(c.bottom,0),w={availableHeight:r.floating.height-(["left","right"].includes(o)?2*(x!==0||y!==0?x+y:Wn(c.top,c.bottom)):c[d]),availableWidth:r.floating.width-(["top","bottom"].includes(o)?2*(u!==0||b!==0?u+b:Wn(c.left,c.right)):c[p])},k=await n.getDimensions(i.floating);a?.({...e,...w});let C=await n.getDimensions(i.floating);return k.width!==C.width||k.height!==C.height?{reset:{rects:!0}}:{}}}};function _v(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Br(t){if(t==null)return window;if(!_v(t)){let e=t.ownerDocument;return e&&e.defaultView||window}return t}function Tl(t){return Br(t).getComputedStyle(t)}function Nr(t){return _v(t)?"":t?(t.nodeName||"").toLowerCase():""}function Mv(){let t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function lr(t){return t instanceof Br(t).HTMLElement}function un(t){return t instanceof Br(t).Element}function hp(t){return typeof ShadowRoot>"u"?!1:t instanceof Br(t).ShadowRoot||t instanceof ShadowRoot}function Yc(t){let{overflow:e,overflowX:o,overflowY:r}=Tl(t);return/auto|scroll|overlay|hidden/.test(e+r+o)}function d6(t){return["table","td","th"].includes(Nr(t))}function Cv(t){let e=/firefox/i.test(Mv()),o=Tl(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 Av(){return!/^((?!chrome|android).)*safari/i.test(Mv())}var Tv=Math.min,Cl=Math.max,Vc=Math.round;function Or(t,e,o){var r,n,i,a;e===void 0&&(e=!1),o===void 0&&(o=!1);let l=t.getBoundingClientRect(),c=1,s=1;e&&lr(t)&&(c=t.offsetWidth>0&&Vc(l.width)/t.offsetWidth||1,s=t.offsetHeight>0&&Vc(l.height)/t.offsetHeight||1);let m=un(t)?Br(t):window,d=!Av()&&o,p=(l.left+(d&&(r=(n=m.visualViewport)==null?void 0:n.offsetLeft)!=null?r:0))/c,u=(l.top+(d&&(i=(a=m.visualViewport)==null?void 0:a.offsetTop)!=null?i:0))/s,b=l.width/c,x=l.height/s;return{width:b,height:x,top:u,right:p+b,bottom:u+x,left:p,x:p,y:u}}function mn(t){return(e=t,(e instanceof Br(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function Zc(t){return un(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Lv(t){return Or(mn(t)).left+Zc(t).scrollLeft}function m6(t,e,o){let r=lr(e),n=mn(e),i=Or(t,r&&function(c){let s=Or(c);return Vc(s.width)!==c.offsetWidth||Vc(s.height)!==c.offsetHeight}(e),o==="fixed"),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if(r||!r&&o!=="fixed")if((Nr(e)!=="body"||Yc(n))&&(a=Zc(e)),lr(e)){let c=Or(e,!0);l.x=c.x+e.clientLeft,l.y=c.y+e.clientTop}else n&&(l.x=Lv(n));return{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function Pv(t){return Nr(t)==="html"?t:t.assignedSlot||t.parentNode||(hp(t)?t.host:null)||mn(t)}function Sv(t){return lr(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function fp(t){let e=Br(t),o=Sv(t);for(;o&&d6(o)&&getComputedStyle(o).position==="static";)o=Sv(o);return o&&(Nr(o)==="html"||Nr(o)==="body"&&getComputedStyle(o).position==="static"&&!Cv(o))?e:o||function(r){let n=Pv(r);for(hp(n)&&(n=n.host);lr(n)&&!["html","body"].includes(Nr(n));){if(Cv(n))return n;n=n.parentNode}return null}(t)||e}function kv(t){if(lr(t))return{width:t.offsetWidth,height:t.offsetHeight};let e=Or(t);return{width:e.width,height:e.height}}function Dv(t){let e=Pv(t);return["html","body","#document"].includes(Nr(e))?t.ownerDocument.body:lr(e)&&Yc(e)?e:Dv(e)}function Kc(t,e){var o;e===void 0&&(e=[]);let r=Dv(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),i=Br(r),a=n?[i].concat(i.visualViewport||[],Yc(r)?r:[]):r,l=e.concat(a);return n?l:l.concat(Kc(a))}function Iv(t,e,o){return e==="viewport"?El(function(r,n){let i=Br(r),a=mn(r),l=i.visualViewport,c=a.clientWidth,s=a.clientHeight,m=0,d=0;if(l){c=l.width,s=l.height;let p=Av();(p||!p&&n==="fixed")&&(m=l.offsetLeft,d=l.offsetTop)}return{width:c,height:s,x:m,y:d}}(t,o)):un(e)?function(r,n){let i=Or(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):El(function(r){var n;let i=mn(r),a=Zc(r),l=(n=r.ownerDocument)==null?void 0:n.body,c=Cl(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),s=Cl(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),m=-a.scrollLeft+Lv(r),d=-a.scrollTop;return Tl(l||i).direction==="rtl"&&(m+=Cl(i.clientWidth,l?l.clientWidth:0)-c),{width:c,height:s,x:m,y:d}}(mn(t)))}function u6(t){let e=Kc(t),o=["absolute","fixed"].includes(Tl(t).position)&&lr(t)?fp(t):t;return un(o)?e.filter(r=>un(r)&&function(n,i){let a=i.getRootNode==null?void 0:i.getRootNode();if(n.contains(i))return!0;if(a&&hp(a)){let l=i;do{if(l&&n===l)return!0;l=l.parentNode||l.host}while(l)}return!1}(r,o)&&Nr(r)!=="body"):[]}var p6={getClippingRect:function(t){let{element:e,boundary:o,rootBoundary:r,strategy:n}=t,i=[...o==="clippingAncestors"?u6(e):[].concat(o),r],a=i[0],l=i.reduce((c,s)=>{let m=Iv(e,s,n);return c.top=Cl(m.top,c.top),c.right=Tv(m.right,c.right),c.bottom=Tv(m.bottom,c.bottom),c.left=Cl(m.left,c.left),c},Iv(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=lr(o),i=mn(o);if(o===i)return e;let a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if((n||!n&&r!=="fixed")&&((Nr(o)!=="body"||Yc(i))&&(a=Zc(o)),lr(o))){let c=Or(o,!0);l.x=c.x+o.clientLeft,l.y=c.y+o.clientTop}return{...e,x:e.x-a.scrollLeft+l.x,y:e.y-a.scrollTop+l.y}},isElement:un,getDimensions:kv,getOffsetParent:fp,getDocumentElement:mn,getElementRects:t=>{let{reference:e,floating:o,strategy:r}=t;return{reference:m6(e,fp(o),r),floating:{...kv(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Tl(t).direction==="rtl"};function Rv(t,e,o,r){r===void 0&&(r={});let{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:l=!1}=r,c=n&&!l,s=i&&!l,m=c||s?[...un(t)?Kc(t):[],...Kc(e)]:[];m.forEach(b=>{c&&b.addEventListener("scroll",o,{passive:!0}),s&&b.addEventListener("resize",o)});let d,p=null;if(a){let b=!0;p=new ResizeObserver(()=>{b||o(),b=!1}),un(t)&&!l&&p.observe(t),p.observe(e)}let u=l?Or(t):null;return l&&function b(){let x=Or(t);!u||x.x===u.x&&x.y===u.y&&x.width===u.width&&x.height===u.height||o(),u=x,d=requestAnimationFrame(b)}(),o(),()=>{var b;m.forEach(x=>{c&&x.removeEventListener("scroll",o),s&&x.removeEventListener("resize",o)}),(b=p)==null||b.disconnect(),p=null,l&&cancelAnimationFrame(d)}}var Nv=(t,e,o)=>vv(t,e,{platform:p6,...o});var Dt=v($()),jc=v($()),Ov=v(nr()),gp=typeof document<"u"?jc.useLayoutEffect:jc.useEffect;function bp(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(!bp(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)&&!bp(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function f6(t){let e=Dt.useRef(t);return gp(()=>{e.current=t}),e}function Bv(t){let{middleware:e,placement:o="bottom",strategy:r="absolute",whileElementsMounted:n}=t===void 0?{}:t,i=Dt.useRef(null),a=Dt.useRef(null),l=f6(n),c=Dt.useRef(null),[s,m]=Dt.useState({x:null,y:null,strategy:r,placement:o,middlewareData:{}}),[d,p]=Dt.useState(e);bp(d?.map(C=>{let{options:I}=C;return I}),e?.map(C=>{let{options:I}=C;return I}))||p(e);let u=Dt.useCallback(()=>{!i.current||!a.current||Nv(i.current,a.current,{middleware:d,placement:o,strategy:r}).then(C=>{b.current&&Ov.flushSync(()=>{m(C)})})},[d,o,r]);gp(()=>{b.current&&u()},[u]);let b=Dt.useRef(!1);gp(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=Dt.useCallback(()=>{if(typeof c.current=="function"&&(c.current(),c.current=null),i.current&&a.current)if(l.current){let C=l.current(i.current,a.current,u);c.current=C}else u()},[u,l]),y=Dt.useCallback(C=>{i.current=C,x()},[x]),w=Dt.useCallback(C=>{a.current=C,x()},[x]),k=Dt.useMemo(()=>({reference:i,floating:a}),[]);return Dt.useMemo(()=>({...s,update:u,refs:k,reference:y,floating:w}),[s,u,k,y,w])}var Fv=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?Gc({element:e.current,padding:o}).fn(n):{}:e?Gc({element:e,padding:o}).fn(n):{}}}};h();var Sl=v($());var h6=(0,Sl.forwardRef)((t,e)=>{let{children:o,width:r=10,height:n=5,...i}=t;return(0,Sl.createElement)(it.svg,be({},i,{ref:e,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),t.asChild?o:(0,Sl.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),$v=h6;h();var Hv=v($());function zv(t){let[e,o]=(0,Hv.useState)(void 0);return To(()=>{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 c=i.borderBoxSize,s=Array.isArray(c)?c[0]:c;a=s.inlineSize,l=s.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 Uv="Popper",[xp,vp]=ar(Uv),[g6,Wv]=xp(Uv),b6=t=>{let{__scopePopper:e,children:o}=t,[r,n]=(0,Ke.useState)(null);return(0,Ke.createElement)(g6,{scope:e,anchor:r,onAnchorChange:n},o)},x6="PopperAnchor",v6=(0,Ke.forwardRef)((t,e)=>{let{__scopePopper:o,virtualRef:r,...n}=t,i=Wv(x6,o),a=(0,Ke.useRef)(null),l=Pt(e,a);return(0,Ke.useEffect)(()=>{i.onAnchorChange(r?.current||a.current)}),r?null:(0,Ke.createElement)(it.div,be({},n,{ref:l}))}),Xc="PopperContent",[y6,E6]=xp(Xc),[w6,C6]=xp(Xc,{hasParent:!1,positionUpdateFns:new Set}),T6=(0,Ke.forwardRef)((t,e)=>{var o,r,n,i,a,l,c,s;let{__scopePopper:m,side:d="bottom",sideOffset:p=0,align:u="center",alignOffset:b=0,arrowPadding:x=0,collisionBoundary:y=[],collisionPadding:w=0,sticky:k="partial",hideWhenDetached:C=!1,avoidCollisions:I=!0,onPlaced:A,..._}=t,M=Wv(Xc,m),[L,W]=(0,Ke.useState)(null),B=Pt(e,hi=>W(hi)),[Y,O]=(0,Ke.useState)(null),z=zv(Y),ne=(o=z?.width)!==null&&o!==void 0?o:0,Q=(r=z?.height)!==null&&r!==void 0?r:0,xe=d+(u!=="center"?"-"+u:""),Ee=typeof w=="number"?w:{top:0,right:0,bottom:0,left:0,...w},de=Array.isArray(y)?y:[y],se=de.length>0,P={padding:Ee,boundary:de.filter(M6),altBoundary:se},{reference:R,floating:G,strategy:K,x:V,y:Z,placement:q,middlewareData:te,update:ct}=Bv({strategy:"fixed",placement:xe,whileElementsMounted:Rv,middleware:[A6(),dp({mainAxis:p+Q,alignmentAxis:b}),I?mp({mainAxis:!0,crossAxis:!1,limiter:k==="partial"?up():void 0,...P}):void 0,Y?Fv({element:Y,padding:x}):void 0,I?sp({...P}):void 0,pp({...P,apply:({elements:hi,availableWidth:t5,availableHeight:o5})=>{hi.floating.style.setProperty("--radix-popper-available-width",`${t5}px`),hi.floating.style.setProperty("--radix-popper-available-height",`${o5}px`)}}),L6({arrowWidth:ne,arrowHeight:Q}),C?cp({strategy:"referenceHidden"}):void 0].filter(_6)});To(()=>{R(M.anchor)},[R,M.anchor]);let Je=V!==null&&Z!==null,[rt,He]=Gv(q),Vt=jt(A);To(()=>{Je&&Vt?.()},[Je,Vt]);let gs=(n=te.arrow)===null||n===void 0?void 0:n.x,X3=(i=te.arrow)===null||i===void 0?void 0:i.y,q3=((a=te.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[J3,Q3]=(0,Ke.useState)();To(()=>{L&&Q3(window.getComputedStyle(L).zIndex)},[L]);let{hasParent:e5,positionUpdateFns:fi}=C6(Xc,m),Ha=!e5;(0,Ke.useLayoutEffect)(()=>{if(!Ha)return fi.add(ct),()=>{fi.delete(ct)}},[Ha,fi,ct]),To(()=>{Ha&&Je&&Array.from(fi).reverse().forEach(hi=>requestAnimationFrame(hi))},[Ha,Je,fi]);let Hh={"data-side":rt,"data-align":He,..._,ref:B,style:{..._.style,animation:Je?void 0:"none",opacity:(l=te.hide)!==null&&l!==void 0&&l.referenceHidden?0:void 0}};return(0,Ke.createElement)("div",{ref:G,"data-radix-popper-content-wrapper":"",style:{position:K,left:0,top:0,transform:Je?`translate3d(${Math.round(V)}px, ${Math.round(Z)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:J3,"--radix-popper-transform-origin":[(c=te.transformOrigin)===null||c===void 0?void 0:c.x,(s=te.transformOrigin)===null||s===void 0?void 0:s.y].join(" ")},dir:t.dir},(0,Ke.createElement)(y6,{scope:m,placedSide:rt,onArrowChange:O,arrowX:gs,arrowY:X3,shouldHideArrow:q3},Ha?(0,Ke.createElement)(w6,{scope:m,hasParent:!0,positionUpdateFns:fi},(0,Ke.createElement)(it.div,Hh)):(0,Ke.createElement)(it.div,Hh)))}),S6="PopperArrow",k6={top:"bottom",right:"left",bottom:"top",left:"right"},I6=(0,Ke.forwardRef)(function(e,o){let{__scopePopper:r,...n}=e,i=E6(S6,r),a=k6[i.placedSide];return(0,Ke.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,Ke.createElement)($v,be({},n,{ref:o,style:{...n.style,display:"block"}})))});function _6(t){return t!==void 0}function M6(t){return t!==null}var A6=()=>({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`),{}}}),L6=t=>({name:"transformOrigin",options:t,fn(e){var o,r,n,i,a;let{placement:l,rects:c,middlewareData:s}=e,d=((o=s.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,p=d?0:t.arrowWidth,u=d?0:t.arrowHeight,[b,x]=Gv(l),y={start:"0%",center:"50%",end:"100%"}[x],w=((r=(n=s.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+p/2,k=((i=(a=s.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+u/2,C="",I="";return b==="bottom"?(C=d?y:`${w}px`,I=`${-u}px`):b==="top"?(C=d?y:`${w}px`,I=`${c.floating.height+u}px`):b==="right"?(C=`${-u}px`,I=d?y:`${k}px`):b==="left"&&(C=`${c.floating.width+u}px`,I=d?y:`${k}px`),{data:{x:C,y:I}}}});function Gv(t){let[e,o="center"]=t.split("-");return[e,o]}var Vv=b6,Kv=v6,Yv=T6,Zv=I6;h();var qc=v($()),jv=v(nr());var Xv=(0,qc.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?jv.default.createPortal((0,qc.createElement)(it.div,be({},n,{ref:e})),r):null});h();var Ft=v($()),qv=v(nr());function P6(t,e){return(0,Ft.useReducer)((o,r)=>{let n=e[o][r];return n??o},t)}var aa=t=>{let{present:e,children:o}=t,r=D6(e),n=typeof o=="function"?o({present:r.isPresent}):Ft.Children.only(o),i=Pt(r.ref,n.ref);return typeof o=="function"||r.isPresent?(0,Ft.cloneElement)(n,{ref:i}):null};aa.displayName="Presence";function D6(t){let[e,o]=(0,Ft.useState)(),r=(0,Ft.useRef)({}),n=(0,Ft.useRef)(t),i=(0,Ft.useRef)("none"),a=t?"mounted":"unmounted",[l,c]=P6(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Ft.useEffect)(()=>{let s=Jc(r.current);i.current=l==="mounted"?s:"none"},[l]),To(()=>{let s=r.current,m=n.current;if(m!==t){let p=i.current,u=Jc(s);t?c("MOUNT"):u==="none"||s?.display==="none"?c("UNMOUNT"):c(m&&p!==u?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,c]),To(()=>{if(e){let s=d=>{let u=Jc(r.current).includes(d.animationName);d.target===e&&u&&(0,qv.flushSync)(()=>c("ANIMATION_END"))},m=d=>{d.target===e&&(i.current=Jc(r.current))};return e.addEventListener("animationstart",m),e.addEventListener("animationcancel",s),e.addEventListener("animationend",s),()=>{e.removeEventListener("animationstart",m),e.removeEventListener("animationcancel",s),e.removeEventListener("animationend",s)}}else c("ANIMATION_END")},[e,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,Ft.useCallback)(s=>{s&&(r.current=getComputedStyle(s)),o(s)},[])}}function Jc(t){return t?.animationName||"none"}h();var pn=v($());function la({prop:t,defaultProp:e,onChange:o=()=>{}}){let[r,n]=R6({defaultProp:e,onChange:o}),i=t!==void 0,a=i?t:r,l=jt(o),c=(0,pn.useCallback)(s=>{if(i){let d=typeof s=="function"?s(t):s;d!==t&&l(d)}else n(s)},[i,t,n,l]);return[a,c]}function R6({defaultProp:t,onChange:e}){let o=(0,pn.useState)(t),[r]=o,n=(0,pn.useRef)(r),i=jt(e);return(0,pn.useEffect)(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),o}h();var N6=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},sa=new WeakMap,Qc=new WeakMap,ed={},yp=0,Jv=function(t){return t&&(t.host||Jv(t.parentNode))},O6=function(t,e){return e.map(function(o){if(t.contains(o))return o;var r=Jv(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})},B6=function(t,e,o,r){var n=O6(e,Array.isArray(t)?t:[t]);ed[o]||(ed[o]=new WeakMap);var i=ed[o],a=[],l=new Set,c=new Set(n),s=function(d){!d||l.has(d)||(l.add(d),s(d.parentNode))};n.forEach(s);var m=function(d){!d||c.has(d)||Array.prototype.forEach.call(d.children,function(p){if(l.has(p))m(p);else{var u=p.getAttribute(r),b=u!==null&&u!=="false",x=(sa.get(p)||0)+1,y=(i.get(p)||0)+1;sa.set(p,x),i.set(p,y),a.push(p),x===1&&b&&Qc.set(p,!0),y===1&&p.setAttribute(o,"true"),b||p.setAttribute(r,"true")}})};return m(e),l.clear(),yp++,function(){a.forEach(function(d){var p=sa.get(d)-1,u=i.get(d)-1;sa.set(d,p),i.set(d,u),p||(Qc.has(d)||d.removeAttribute(r),Qc.delete(d)),u||d.removeAttribute(o)}),yp--,yp||(sa=new WeakMap,sa=new WeakMap,Qc=new WeakMap,ed={})}},Qv=function(t,e,o){o===void 0&&(o="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||N6(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),B6(r,n,o,"aria-hidden")):function(){return null}};h();h();h();var sr=function(){return sr=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},sr.apply(this,arguments)};function e2(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 t2(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 nd=v($());h();var $t=v($());h();var Vn="right-scroll-bar-position",Kn="width-before-scroll-bar",Ep="with-scroll-bars-hidden",wp="--removed-body-scroll-bar-size";h();h();function o2(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}h();var r2=v($());function n2(t,e){var o=(0,r2.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();function Cp(t,e){return n2(e||null,function(o){return t.forEach(function(r){return o2(r,o)})})}h();h();h();var ca=function(){return ca=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},ca.apply(this,arguments)};function i2(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}h();function F6(t){return t}function $6(t,e){e===void 0&&(e=F6);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 c=function(){var m=a;a=[],m.forEach(i)},s=function(){return Promise.resolve().then(c)};s(),o={push:function(m){a.push(m),s()},filter:function(m){return a=a.filter(m),o}}}};return n}function Tp(t){t===void 0&&(t={});var e=$6(null);return e.options=ca({async:!0,ssr:!1},t),e}h();var a2=v($()),l2=function(t){var e=t.sideCar,o=i2(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 a2.createElement(r,ca({},o))};l2.isSideCarExport=!0;function Sp(t,e){return t.useMedium(e),l2}var td=Tp();var kp=function(){},kl=$t.forwardRef(function(t,e){var o=$t.useRef(null),r=$t.useState({onScrollCapture:kp,onWheelCapture:kp,onTouchMoveCapture:kp}),n=r[0],i=r[1],a=t.forwardProps,l=t.children,c=t.className,s=t.removeScrollBar,m=t.enabled,d=t.shards,p=t.sideCar,u=t.noIsolation,b=t.inert,x=t.allowPinchZoom,y=t.as,w=y===void 0?"div":y,k=e2(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),C=p,I=Cp([o,e]),A=sr(sr({},k),n);return $t.createElement($t.Fragment,null,m&&$t.createElement(C,{sideCar:td,removeScrollBar:s,shards:d,noIsolation:u,inert:b,setCallbacks:i,allowPinchZoom:!!x,lockRef:o}),a?$t.cloneElement($t.Children.only(l),sr(sr({},A),{ref:I})):$t.createElement(w,sr({},A,{className:c,ref:I}),l))});kl.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};kl.classNames={fullWidth:Kn,zeroRight:Vn};h();h();var Ye=v($());h();h();var od=v($());h();h();h();var d2=v($());h();h();var s2;var c2=function(){if(s2)return s2;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function H6(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=c2();return e&&t.setAttribute("nonce",e),t}function z6(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function U6(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var Ip=function(){var t=0,e=null;return{add:function(o){t==0&&(e=H6())&&(z6(e,o),U6(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var _p=function(){var t=Ip();return function(e,o){d2.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&o])}};var Il=function(){var t=_p(),e=function(o){var r=o.styles,n=o.dynamic;return t(r,n),null};return e};h();var W6={left:0,top:0,right:0,gap:0},Mp=function(t){return parseInt(t||"",10)||0},G6=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[Mp(o),Mp(r),Mp(n)]},Ap=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return W6;var e=G6(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 V6=Il(),K6=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(
|
|
1
|
+
import{$ as nu,$a as Bg,$b as fu,$c as h1,$d as Fn,$e as rb,$f as Wu,A as Ga,Aa as Mg,Ab as Qa,Ac as r1,Ad as S1,Ae as uc,Af as yc,B as tu,Ba as Ag,Bb as we,Bc as al,Bd as k1,Be as H1,Bf as pb,C as _s,Ca as Lg,Cb as De,Cc as ll,Cd as Bn,Ce as pl,Cf as Ec,D as Va,Da as Qo,Db as yr,Dc as Eu,Dd as Ir,De as Lu,Df as or,E as dt,Ea as su,Eb as Ug,Ec as n1,Ed as rc,Ee as z1,Ef as Fu,F as Bo,Fa as Fo,Fb as Er,Fc as Xs,Fd as I1,Fe as U1,Ff as fb,G as xr,Ga as Ya,Gb as Wg,Gc as Ii,Gd as _1,Ge as W1,Gf as wc,H as gi,Ha as Bs,Hb as wi,Hc as ue,Hd as H,He as Pu,Hf as hb,I as sg,Ia as Dn,Ib as Gg,Ic as i1,Id as yo,Ie as pc,If as gb,J as ou,Ja as Pg,Jb as tr,Jc as sl,Jd as Re,Je as Du,Jf as T5,K as ru,Ka as Dg,Kb as gt,Kc as a1,Kd as M1,Ke as Ru,Kf as rr,L as vr,La as Rn,Lb as Ti,Lc as l1,Ld as $o,Le as G1,Lf as J,M as cg,Ma as et,Mb as Vg,Mc as cl,Md as on,Me as V1,Mf as ce,N as _t,Na as N,Nb as Kg,Nc as Bt,Nd as Cu,Ne as K1,Nf as Fi,O as Ms,Oa as We,Ob as Yg,Oc as qs,Od as A1,Oe as Y1,Of as Hn,P as dg,Pa as Kt,Pb as Qr,Pc as Js,Pd as nc,Pe as Z1,Pf as gl,Q as mg,Qa as Za,Qb as to,Qc as Qs,Qd as dl,Qe as j1,Qf as $u,R as ug,Ra as ja,Rb as Zg,Rc as s1,Rd as rn,Re as X1,Rf as bb,S as pg,Sa as Fs,Sb as wr,Sc as c1,Sd as L1,Se as fc,Sf as Hu,T as fg,Ta as cu,Tb as en,Tc as d1,Td as P1,Te as fl,Tf as zu,U as hg,Ua as du,Ub as el,Uc as m1,Ud as D1,Ue as q1,Uf as Uu,V as Pn,Va as Nn,Vb as Yt,Vc as u1,Vd as ml,Ve as J1,Vf as xb,W as gg,Wa as $s,Wb as jg,Wc as p1,Wd as ic,We as Q1,Wf as vb,X as bg,Xa as Rg,Xb as tl,Xc as nt,Xd as Li,Xe as eb,Xf as yb,Y as xg,Ya as Ng,Yb as ol,Yc as Tr,Yd as ac,Ye as tb,Yf as Eb,Z as As,Za as Og,Zb as tn,Zc as ec,Zd as lc,Ze as hc,Zf as wb,_ as Ls,_a as Se,_b as rl,_c as f1,_d as Su,_e as ob,_f as Tb,a as Qe,aa as vg,ab as Hs,ac as hu,ad as g1,ae as R1,af as Nu,ag as $i,b as Jh,ba as yg,bb as zs,bc as gu,bd as wu,be as Pi,bf as Ni,bg as C5,c as Mn,ca as Eg,cb as xi,cc as Ci,cd as b1,ce as Di,cf as nb,cg as Gu,d as Qh,da as wg,db as Fg,dc as Xg,dd as _i,de as Ri,df as ib,dg as Vu,e as eg,ea as Tg,eb as vi,ec as qg,ed as Tu,ee as N1,ef as ab,eg as he,f as br,fa as Ps,fb as Xa,fc as Jg,fd as x1,fe as sc,ff as gc,fg as Ku,g as Ts,ga as jr,gb as Mt,gc as Qg,gd as v1,ge as ku,gf as lb,gg as Hi,h as Cs,ha as Cg,hb as qr,hc as e1,hd as Cr,he as Iu,hf as Oi,hg as Cb,i as Ss,ia as iu,ib as Us,ic as Vs,id as bo,ie as x5,if as $n,ig as Yu,j as tg,ja as Sg,jb as $g,jc as bu,jd as Ge,je as _u,jf as Ou,jg as Ne,k as og,ka as Ds,kb as mu,kc as Ks,kd as tc,ke as ul,kf as hl,kg as Sb,l as rg,la as au,lb as er,lc as xu,ld as xo,lf as v5,lg as ke,m as Oo,ma as fo,mb as uu,mc as t1,md as b5,mf as y5,mg as zi,n as ks,na as Ka,nb as Ws,nc as vu,nd as Mi,nf as E5,ng as Oe,o as Yr,oa as ho,ob as tt,oc as me,od as vo,of as w5,og as kb,p as ng,pa as Rs,pb as Hg,pc as S,pd as Sr,pf as bc,pg as zn,q as ig,qa as Ns,qb as zg,qc as Si,qd as y1,qe as O1,qf as sb,qg as Mr,r as Wa,ra as Xr,rb as Gs,rc as Ys,rd as At,re as B1,rf as Bu,rg as Ar,s as An,sa as Os,sb as qa,sc as ki,sd as oc,se as cc,sf as cb,t as Is,ta as mt,tb as Ja,tc as Zs,td as E1,te as dc,tf as nn,u as ag,ua as go,ub as Jr,uc as o1,ud as kr,ue as Mu,uf as db,v as eu,va as kg,vb as Ot,vc as On,vd as w1,ve as mc,vf as Bi,w as lg,wa as Ig,wb as yi,wc as js,wd as T1,we as F1,wf as mb,x as Pe,xa as _g,xb as Ei,xc as nl,xd as Ai,xe as Au,xf as xc,y as Zr,ya as lu,yb as ie,yc as il,yd as ut,ye as _r,yf as ub,z as Ln,za as bi,zb as pu,zc as yu,zd as C1,ze as $1,zf as vc}from"./excalidraw-assets/chunk-VJAIK3AX.js";import{a as h,b as E}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{D as Qm}from"./excalidraw-assets/chunk-YYO5DFUW.js";import{aa as qh}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as Xh,d as gr,e as g5,f as v}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var $=gr((hk,Ib)=>{h();Ib.exports=React});var Ob=gr(Pc=>{"use strict";h();var N5=$(),O5=Symbol.for("react.element"),B5=Symbol.for("react.fragment"),F5=Object.prototype.hasOwnProperty,$5=N5.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,H5={key:!0,ref:!0,__self:!0,__source:!0};function Nb(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)F5.call(e,r)&&!H5.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:O5,type:t,key:i,ref:a,props:n,_owner:$5.current}}Pc.Fragment=B5;Pc.jsx=Nb;Pc.jsxs=Nb});var C=gr(($k,Bb)=>{"use strict";h();Bb.exports=Ob()});var ir=gr((nI,Ub)=>{h();Ub.exports=ReactDOM});var dE=gr(cE=>{"use strict";h();var Ca=$();function yT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var ET=typeof Object.is=="function"?Object.is:yT,wT=Ca.useState,TT=Ca.useEffect,CT=Ca.useLayoutEffect,ST=Ca.useDebugValue;function kT(t,e){var o=e(),r=wT({inst:{value:o,getSnapshot:e}}),n=r[0].inst,i=r[1];return CT(function(){n.value=o,n.getSnapshot=e,Bf(n)&&i({inst:n})},[t,o,e]),TT(function(){return Bf(n)&&i({inst:n}),t(function(){Bf(n)&&i({inst:n})})},[t]),ST(o),o}function Bf(t){var e=t.getSnapshot;t=t.value;try{var o=e();return!ET(t,o)}catch{return!0}}function IT(t,e){return e()}var _T=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?IT:kT;cE.useSyncExternalStore=Ca.useSyncExternalStore!==void 0?Ca.useSyncExternalStore:_T});var uE=gr((fz,mE)=>{"use strict";h();mE.exports=dE()});var fE=gr(pE=>{"use strict";h();var Kd=$(),MT=uE();function AT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var LT=typeof Object.is=="function"?Object.is:AT,PT=MT.useSyncExternalStore,DT=Kd.useRef,RT=Kd.useEffect,NT=Kd.useMemo,OT=Kd.useDebugValue;pE.useSyncExternalStoreWithSelector=function(t,e,o,r,n){var i=DT(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=NT(function(){function c(u){if(!s){if(s=!0,m=u,u=r(u),n!==void 0&&a.hasValue){var b=a.value;if(n(b,u))return d=b}return d=u}if(b=d,LT(m,u))return b;var x=r(u);return n!==void 0&&n(b,x)?b:(m=u,d=x)}var s=!1,m,d,p=o===void 0?null:o;return[function(){return c(e())},p===null?void 0:function(){return c(p())}]},[e,o,r,n]);var l=PT(t,i[0],i[1]);return RT(function(){a.hasValue=!0,a.value=l},[l]),OT(l),l}});var gE=gr((xz,hE)=>{"use strict";h();hE.exports=fE()});var Uf=gr((ZW,WE)=>{h();var UE="Expected a function",HE=NaN,tC="[object Symbol]",oC=/^\s+|\s+$/g,rC=/^[-+]0x[0-9a-f]+$/i,nC=/^0b[01]+$/i,iC=/^0o[0-7]+$/i,aC=parseInt,lC=typeof global=="object"&&global&&global.Object===Object&&global,sC=typeof self=="object"&&self&&self.Object===Object&&self,cC=lC||sC||Function("return this")(),dC=Object.prototype,mC=dC.toString,uC=Math.max,pC=Math.min,zf=function(){return cC.Date.now()};function fC(t,e,o){var r,n,i,a,l,c,s=0,m=!1,d=!1,p=!0;if(typeof t!="function")throw new TypeError(UE);e=zE(e)||0,om(o)&&(m=!!o.leading,d="maxWait"in o,i=d?uC(zE(o.maxWait)||0,e):i,p="trailing"in o?!!o.trailing:p);function u(_){var M=r,L=n;return r=n=void 0,s=_,a=t.apply(L,M),a}function b(_){return s=_,l=setTimeout(w,e),m?u(_):a}function x(_){var M=_-c,L=_-s,W=e-M;return d?pC(W,i-L):W}function y(_){var M=_-c,L=_-s;return c===void 0||M>=e||M<0||d&&L>=i}function w(){var _=zf();if(y(_))return k(_);l=setTimeout(w,x(_))}function k(_){return l=void 0,p&&r?u(_):(r=n=void 0,a)}function T(){l!==void 0&&clearTimeout(l),s=0,r=c=n=l=void 0}function I(){return l===void 0?a:k(zf())}function A(){var _=zf(),M=y(_);if(r=arguments,n=this,c=_,M){if(l===void 0)return b(c);if(d)return l=setTimeout(w,e),u(c)}return l===void 0&&(l=setTimeout(w,e)),a}return A.cancel=T,A.flush=I,A}function hC(t,e,o){var r=!0,n=!0;if(typeof t!="function")throw new TypeError(UE);return om(o)&&(r="leading"in o?!!o.leading:r,n="trailing"in o?!!o.trailing:n),fC(t,e,{leading:r,maxWait:e,trailing:n})}function om(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function gC(t){return!!t&&typeof t=="object"}function bC(t){return typeof t=="symbol"||gC(t)&&mC.call(t)==tC}function zE(t){if(typeof t=="number")return t;if(bC(t))return HE;if(om(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=om(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(oC,"");var o=nC.test(t);return o||iC.test(t)?aC(t.slice(2),o?2:8):rC.test(t)?HE:+t}WE.exports=hC});h();var Jm=v($(),1);h();var Oc=v($(),1);h();h();h();h();var pt=v($(),1);h();var S5=0;function _b(t,e){let o=`atom${++S5}`,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 an=Symbol(),ju=t=>!!t[an],Tc=t=>!t[an].c,bl=t=>{var e;let{b:o,c:r}=t[an];r&&(r(),(e=I5.get(o))==null||e())},Sc=(t,e)=>{let o=t[an].o,r=e[an].o;return o===r||t===r||ju(o)&&Sc(o,e)},Xu=(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[an]=o,r},k5=t=>Xu(t[an].b,t[an].o),I5=new WeakMap;var Cc=t=>"init"in t,xl="r",kc="w",vl="c",Ic="s",Mb="h",_5="n",M5="l",A5="a",L5="m",Ab=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[P,R]of t){let G={v:R,r:0,y:!0,d:new Map};(E&&E.MODE)!=="production"&&(Object.freeze(G),Cc(P)||console.warn("Found initial value for derived atom which can cause unexpected behavior",P)),e.set(P,G)}let a=new WeakMap,l=(P,R,G)=>{let K=a.get(R);K||(K=new Map,a.set(R,K)),G.then(()=>{K.get(P)===G&&(K.delete(P),K.size||a.delete(R))}),K.set(P,G)},c=P=>{let R=new Set,G=a.get(P);return G&&(a.delete(P),G.forEach((K,V)=>{bl(K),R.add(V)})),R},s=new WeakMap,m=P=>{let R=s.get(P);return R||(R=new Map,s.set(P,R)),R},d=(P,R)=>{if(P){let G=m(P),K=G.get(R);return K||(K=d(P.p,R),K&&"p"in K&&Tc(K.p)&&(K=void 0),K&&G.set(R,K)),K}return e.get(R)},p=(P,R,G)=>{if((E&&E.MODE)!=="production"&&Object.freeze(G),P)m(P).set(R,G);else{let K=e.get(R);e.set(R,G),r.has(R)||r.set(R,K)}},u=(P,R=new Map,G)=>{if(!G)return R;let K=new Map,V=!1;return G.forEach(Z=>{var q;let te=((q=d(P,Z))==null?void 0:q.r)||0;K.set(Z,te),R.get(Z)!==te&&(V=!0)}),R.size===K.size&&!V?R:K},b=(P,R,G,K,V)=>{let Z=d(P,R);if(Z){if(V&&(!("p"in Z)||!Sc(Z.p,V)))return Z;"p"in Z&&bl(Z.p)}let q={v:G,r:Z?.r||0,y:!0,d:u(P,Z?.d,K)},te=!Z?.y;return!Z||!("v"in Z)||!Object.is(Z.v,G)?(te=!0,++q.r,q.d.has(R)&&(q.d=new Map(q.d).set(R,q.r))):q.d!==Z.d&&(q.d.size!==Z.d.size||!Array.from(q.d.keys()).every(ct=>Z.d.has(ct)))&&(te=!0,Promise.resolve().then(()=>{Q(P)})),Z&&!te?Z:(p(P,R,q),q)},x=(P,R,G,K,V)=>{let Z=d(P,R);if(Z){if(V&&(!("p"in Z)||!Sc(Z.p,V)))return Z;"p"in Z&&bl(Z.p)}let q={e:G,r:(Z?.r||0)+1,y:!0,d:u(P,Z?.d,K)};return p(P,R,q),q},y=(P,R,G,K)=>{let V=d(P,R);if(V&&"p"in V){if(Sc(V.p,G)&&!Tc(V.p))return V.y?V:{...V,y:!0};bl(V.p)}l(P,R,G);let Z={p:G,r:(V?.r||0)+1,y:!0,d:u(P,V?.d,K)};return p(P,R,Z),Z},w=(P,R,G,K)=>{if(G instanceof Promise){let V=Xu(G,G.then(Z=>{b(P,R,Z,K,V)}).catch(Z=>{if(Z instanceof Promise)return ju(Z)?Z.then(()=>{T(P,R,!0)}):Z;x(P,R,Z,K,V)}));return y(P,R,V,K)}return b(P,R,G,K)},k=(P,R)=>{let G=d(P,R);if(G){let K={...G,y:!1};p(P,R,K)}else(E&&E.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",R)},T=(P,R,G)=>{if(!G){let V=d(P,R);if(V){if(V.y&&"p"in V&&!Tc(V.p))return V;if(V.d.forEach((Z,q)=>{if(q!==R)if(!o.has(q))T(P,q);else{let te=d(P,q);te&&!te.y&&T(P,q)}}),Array.from(V.d).every(([Z,q])=>{let te=d(P,Z);return te&&!("p"in te)&&te.r===q}))return V.y?V:{...V,y:!0}}}let K=new Set;try{let V=R.read(Z=>{K.add(Z);let q=Z===R?d(P,Z):T(P,Z);if(q){if("e"in q)throw q.e;if("p"in q)throw q.p;return q.v}if(Cc(Z))return Z.init;throw new Error("no atom init")});return w(P,R,V,K)}catch(V){if(V instanceof Promise){let Z=ju(V)&&Tc(V)?k5(V):Xu(V,V);return y(P,R,Z,K)}return x(P,R,V,K)}},I=(P,R)=>T(R,P),A=(P,R)=>{let G=o.get(R);return G||(G=O(P,R)),G},_=(P,R)=>!R.l.size&&(!R.t.size||R.t.size===1&&R.t.has(P)),M=(P,R)=>{let G=o.get(R);G&&_(R,G)&&z(P,R)},L=(P,R)=>{let G=o.get(R);G?.t.forEach(K=>{K!==R&&(k(P,K),L(P,K))})},W=(P,R,G)=>{let K=!0,V=(te,ct)=>{let Je=T(P,te);if("e"in Je)throw Je.e;if("p"in Je){if(ct?.unstable_promise)return Je.p.then(()=>{let rt=d(P,te);return rt&&"p"in rt&&rt.p===Je.p?new Promise(He=>setTimeout(He)).then(()=>V(te,ct)):V(te,ct)});throw(E&&E.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",te),Je.p}if("v"in Je)return Je.v;throw(E&&E.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",te),new Error("no value found")},Z=(te,ct)=>{let Je;if(te===R){if(!Cc(te))throw new Error("atom not writable");c(te).forEach(ws=>{ws!==P&&w(ws,te,ct)});let He=d(P,te),Vt=w(P,te,ct);He!==Vt&&L(P,te)}else Je=W(P,te,ct);return K||Q(P),Je},q=R.write(V,Z,G);return K=!1,q},B=(P,R,G)=>{let K=W(G,P,R);return Q(G),K},Y=P=>!!P.write,O=(P,R,G)=>{let K={t:new Set(G&&[G]),l:new Set};if(o.set(R,K),(E&&E.MODE)!=="production"&&i.add(R),T(void 0,R).d.forEach((Z,q)=>{let te=o.get(q);te?te.t.add(R):q!==R&&O(P,q,R)}),Y(R)&&R.onMount){let Z=te=>B(R,te,P),q=R.onMount(Z);P=void 0,q&&(K.u=q)}return K},z=(P,R)=>{var G;let K=(G=o.get(R))==null?void 0:G.u;K&&K(),o.delete(R),(E&&E.MODE)!=="production"&&i.delete(R);let V=d(P,R);V?("p"in V&&bl(V.p),V.d.forEach((Z,q)=>{if(q!==R){let te=o.get(q);te&&(te.t.delete(R),_(q,te)&&z(P,q))}})):(E&&E.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",R)},ne=(P,R,G,K)=>{let V=new Set(G.d.keys());K?.forEach((Z,q)=>{if(V.has(q)){V.delete(q);return}let te=o.get(q);te&&(te.t.delete(R),_(q,te)&&z(P,q))}),V.forEach(Z=>{let q=o.get(Z);q?q.t.add(R):o.has(R)&&O(P,Z,R)})},Q=P=>{if(P){m(P).forEach((G,K)=>{let V=e.get(K);if(G!==V){let Z=o.get(K);Z?.l.forEach(q=>q(P))}});return}for(;r.size;){let R=Array.from(r);r.clear(),R.forEach(([G,K])=>{let V=d(void 0,G);if(V&&V.d!==K?.d&&ne(void 0,G,V,K?.d),K&&!K.y&&V?.y)return;let Z=o.get(G);Z?.l.forEach(q=>q())})}(E&&E.MODE)!=="production"&&n.forEach(R=>R())},xe=P=>{m(P).forEach((G,K)=>{let V=e.get(K);(!V||G.r>V.r||G.y!==V.y||G.r===V.r&&G.d!==V.d)&&(e.set(K,G),G.d!==V?.d&&ne(P,K,G,V?.d))})},Ee=(P,R)=>{R&&xe(R),Q(void 0)},de=(P,R,G)=>{let V=A(G,P).l;return V.add(R),()=>{V.delete(R),M(G,P)}},se=(P,R)=>{for(let[G,K]of P)Cc(G)&&(w(R,G,K),L(R,G));Q(R)};return(E&&E.MODE)!=="production"?{[xl]:I,[kc]:B,[vl]:Ee,[Ic]:de,[Mb]:se,[_5]:P=>(n.add(P),()=>{n.delete(P)}),[M5]:()=>i.values(),[A5]:P=>e.get(P),[L5]:P=>o.get(P)}:{[xl]:I,[kc]:B,[vl]:Ee,[Ic]:de,[Mb]:se}},Lb=t=>{let e=Ab(t),o=a=>{let l=e[xl](a);if("e"in l)throw l.e;if(!("p"in l))return l.v},r=a=>new Promise((l,c)=>{let s=e[xl](a);"e"in s?c(s.e):"p"in s?l(s.p.then(()=>r(a))):l(s.v)});return{get:o,asyncGet:r,set:(a,l)=>e[kc](a,l),sub:(a,l)=>e[Ic](a,l),SECRET_INTERNAL_store:e}},Pb=(t,e)=>({s:e?e(t).SECRET_INTERNAL_store:Ab(t)}),Zu=new Map,qu=t=>(Zu.has(t)||Zu.set(t,(0,pt.createContext)(Pb())),Zu.get(t)),_c=({children:t,initialValues:e,scope:o,unstable_createStore:r,unstable_enableVersionedWrite:n})=>{let[i,a]=(0,pt.useState)({});(0,pt.useEffect)(()=>{let s=l.current;s.w&&(s.s[vl](null,i),delete i.p,s.v=i)},[i]);let l=(0,pt.useRef)();if(!l.current){let s=Pb(e,r);if(n){let m=0;s.w=d=>{a(p=>{let u=m?p:{p};return d(u),u})},s.v=i,s.r=d=>{++m,d(),--m}}l.current=s}let c=qu(o);return(0,pt.createElement)(c.Provider,{value:l.current},t)};function Ve(t,e){return _b(t,e)}function yl(t,e){let o=qu(e),r=(0,pt.useContext)(o),{s:n,v:i}=r,a=p=>{let u=n[xl](t,p);if((E&&E.MODE)!=="production"&&!u.y)throw new Error("should not be invalidated");if("e"in u)throw u.e;if("p"in u)throw u.p;if("v"in u)return u.v;throw new Error("no atom value")},[[l,c,s],m]=(0,pt.useReducer)((p,u)=>{let b=a(u);return Object.is(p[1],b)&&p[2]===t?p:[u,b,t]},i,p=>{let u=a(p);return[p,u,t]}),d=c;return s!==t&&(m(l),d=a(l)),(0,pt.useEffect)(()=>{let{v:p}=r;p&&n[vl](t,p);let u=n[Ic](t,m,p);return m(p),u},[n,t,r]),(0,pt.useEffect)(()=>{n[vl](t,l)}),(0,pt.useDebugValue)(d),d}function Lr(t,e){let o=qu(e),{s:r,w:n}=(0,pt.useContext)(o);return(0,pt.useCallback)(a=>{if((E&&E.MODE)!=="production"&&!("write"in t))throw new Error("not writable atom");let l=c=>r[kc](t,a,c);return n?n(l):l()},[r,n,t])}function Te(t,e){return"scope"in t&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=t.scope),[yl(t,e),Lr(t,e)]}var P5=v($(),1),Ae=Symbol(),oo=Lb();var D5=Xh({"./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-O2YCQM2W.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 R5=85,nr={code:"en",label:"English"},Wi=[nr,...[{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=>qh[t.code]>=R5).sort((t,e)=>t.label>e.label?1:-1)],Ac="__test__";E.DEV&&Wi.unshift({code:Ac,label:"test language"},{code:`${Ac}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var Ui=nr,Mc={},Lc=async t=>{if(Ui=t,document.documentElement.dir=Ui.rtl?"rtl":"ltr",document.documentElement.lang=Ui.code,t.code.startsWith(Ac))Mc={};else try{Mc=await D5(`./locales/${Ui.code}.json`)}catch(e){console.error(`Failed to load language ${t.code}:`,e.message),Mc=Qm}oo.set(Rb,t.code)},Pr=()=>Ui,Db=(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(Ui.code.startsWith(Ac))return`\u202A[[${e?`${t}(${JSON.stringify(e).slice(1,-1)})`:t}]]\u202C`;let r=t.split("."),n=Db(Mc,r)||Db(Qm,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},Rb=Ve(nr.code),wt=()=>{let t=yl(Rb,Ae);return{t:g,langCode:t}};var Rc=v($(),1);h();var Fb=v($(),1);var Dc=v(C(),1),z5=({size:t="1em",circleWidth:e=8,synchronized:o=!1})=>{let n=-(Fb.default.useRef(Date.now()).current%1600);return(0,Dc.jsx)("div",{className:"Spinner",children:(0,Dc.jsx)("svg",{viewBox:"0 0 100 100",style:{width:t,height:t,"--spinner-delay":o?`${n}ms`:0},children:(0,Dc.jsx)("circle",{cx:"50",cy:"50",r:50-e/2,strokeWidth:e,fill:"none",strokeMiterlimit:"10"})})})},Lt=z5;h();function $b(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=$b(t[e]))&&(r&&(r+=" "),r+=o);else for(e in t)t[e]&&(r&&(r+=" "),r+=e);return r}function F(){for(var t=0,e,o,r="";t<arguments.length;)(e=arguments[t++])&&(o=$b(e))&&(r&&(r+=" "),r+=o);return r}var Gi=v(C(),1),Nc=({delay:t,theme:e})=>{let[o,r]=(0,Rc.useState)(!!t);return(0,Rc.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{r(!1)},t);return()=>clearTimeout(n)},[t]),o?null:(0,Gi.jsxs)("div",{className:F("LoadingMessage",{"LoadingMessage--dark":e===dt.DARK}),children:[(0,Gi.jsx)("div",{children:(0,Gi.jsx)(Lt,{})}),(0,Gi.jsx)("div",{className:"LoadingMessage-text",children:g("labels.loadingScene")})]})};var zb=v(C(),1),Hb=t=>{let[e,o]=(0,Oc.useState)(!0);return(0,Oc.useEffect)(()=>{let r=async()=>{await Lc(n),o(!1)},n=Wi.find(i=>i.code===t.langCode)||nr;r()},[t.langCode]),e?(0,zb.jsx)(Nc,{theme:t.theme}):t.children};h();var Et=v($(),1),Vm=v(ir(),1);h();h();h();var Ho=v($(),1);var Eo=v(C(),1),ae=Ho.default.forwardRef((t,e)=>{let{id:o}=Ct(),r=Ho.default.useRef(null);Ho.default.useImperativeHandle(e,()=>r.current);let n=`ToolIcon_size_${t.size}`,[i,a]=(0,Ho.useState)(!1),l=(0,Ho.useRef)(!0),c=async m=>{let d="onClick"in t&&t.onClick?.(m);if(vi(d))try{a(!0),await d}catch(p){if(p instanceof Ri)console.warn(p);else throw p}finally{l.current&&a(!1)}};(0,Ho.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let s=(0,Ho.useRef)(null);if(t.type==="button"||t.type==="icon"||t.type==="submit"){let m=t.type==="icon"?"button":t.type;return(0,Eo.jsxs)("button",{className:F("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:c,ref:r,disabled:i||t.isLoading,children:[(t.icon||t.label)&&(0,Eo.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true",children:[t.icon||t.label,t.keyBindingLabel&&(0,Eo.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel}),t.isLoading&&(0,Eo.jsx)(Lt,{})]}),t.showAriaLabel&&(0,Eo.jsxs)("div",{className:"ToolIcon__label",children:[t["aria-label"]," ",i&&(0,Eo.jsx)(Lt,{})]}),t.children]})}return(0,Eo.jsxs)("label",{className:F("ToolIcon",t.className),title:t.title,onPointerDown:m=>{s.current=m.pointerType||null,t.onPointerDown?.({pointerType:m.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{s.current=null})},children:[(0,Eo.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:s.current})},checked:t.checked,ref:r}),(0,Eo.jsxs)("div",{className:"ToolIcon__icon",children:[t.icon,t.keyBindingLabel&&(0,Eo.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel})]})]})});ae.defaultProps={visible:!0,className:"",size:"medium"};ae.displayName="ToolButton";h();var Zt=v($(),1);var f=v(C(),1),zo=t=>"var(--icon-fill-color)",Wb=t=>t===dt.LIGHT?Qe.white:"#1e1e1e",D=(t,e=512)=>{let{width:o=512,height:r=o,mirror:n,style:i,...a}=typeof e=="number"?{width:e}:e;return(0,f.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${o} ${r}`,className:F({"rtl-mirror":n}),style:i,...a,children:typeof t=="string"?(0,f.jsx)("path",{fill:"currentColor",d:t}):t})},fe={width:24,height:24,fill:"none",strokeWidth:2,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},le={width:20,height:20,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},yI=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,f.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,f.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,f.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"})]}),fe),Gb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,f.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,f.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,f.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,f.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),fe),Vb=D((0,f.jsxs)("svg",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,f.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),fe),Kb=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,f.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,f.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),fe),Yb=D((0,f.jsxs)("svg",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,f.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,f.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),fe),Zb=D((0,f.jsxs)("g",{children:[(0,f.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,f.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,f.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,f.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,f.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,f.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"})})]}),le),jb=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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,f.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"})]}),le),Xb=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,f.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"}),qb=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.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,f.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"}),Jb=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.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,f.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"}),EI=D((0,f.jsx)("g",{fill:"currentColor",children:(0,f.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"}),Qb=D((0,f.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),e0=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),fe),t0=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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"})]}),fe),o0=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),fe),r0=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,f.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,f.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),fe),n0=D((0,f.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),le),i0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,f.jsx)("path",{d:"M16 7h4"}),(0,f.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),fe),Vi=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),le),a0=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,f.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,f.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,f.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,f.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),fe),l0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M12.5 6.667h.01"}),(0,f.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,f.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,f.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),le),s0=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),fe),c0=D((0,f.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),le),d0=D((0,f.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),le),ln=D((0,f.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"}),le),m0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,f.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),le),u0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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"})]}),le),p0=D((0,f.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"}),le),f0=D((0,f.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.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"})}),le),Bc=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,f.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,f.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),fe),Fc=D((0,f.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"}),le),Ki=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,f.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,f.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),fe),$c=D((0,f.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"}),le),h0=D((0,f.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"}),le),g0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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"})]}),le),b0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,f.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),fe),x0=D((0,f.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Hc=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.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,f.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"})]}),le),v0=D("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}),y0=D("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}),Yi=D((0,f.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"}),le),wI=D("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}),E0=D("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"),w0=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M15 8h.01"}),(0,f.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,f.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,f.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,f.jsx)("path",{d:"M19 16v6"}),(0,f.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),fe),T0=D("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}),TI=D("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}),CI=D("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}),C0=D("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"),SI=D("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"),S0=D((0,f.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"}),le),k0=D((0,f.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"}),le),I0=D("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}),_0=D((0,f.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"}),le),kI=D("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"),II=D("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}),_I=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.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}),MI=D((0,f.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}),M0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.622-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.767-.622-1.39-1.39-1.39Z",fill:"currentColor"}),(0,f.jsx)("path",{d:"M12.5 12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),A0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.944 12.5H12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388",fill:"currentColor"}),(0,f.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.621-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.768-.622-1.39-1.39-1.39Z"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),L0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M8.775 6.458h2.45a2.316 2.316 0 0 1 2.317 2.316v2.452a2.316 2.316 0 0 1-2.316 2.316H8.774a2.316 2.316 0 0 1-2.317-2.316V8.774a2.316 2.316 0 0 1 2.317-2.316Z",fill:"currentColor"}),(0,f.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316ZM12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),P0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",children:[(0,f.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,f.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,f.jsx)("mask",{id:"SendToBackIcon",fill:"#fff",children:(0,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z"})}),(0,f.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z",fill:"currentColor"}),(0,f.jsx)("path",{d:"M9.167 5.833h1.25v-1.25h-1.25v1.25Zm5 5h1.25v-1.25h-1.25v1.25Zm-3.334 3.334h-1.25v1.25h1.25v-1.25Zm-5-5h-1.25v1.25h1.25v-1.25Zm2.084-3.334v2.06h2.5v-2.06h-2.5Zm0 2.06a4.191 4.191 0 0 0 4.19 4.19v-2.5a1.691 1.691 0 0 1-1.69-1.69h-2.5Zm4.19 4.19h2.06v-2.5h-2.06v2.5Zm.81-1.25v.393h2.5v-.393h-2.5Zm0 .393c0 .933-.758 1.69-1.691 1.69v2.5a4.191 4.191 0 0 0 4.19-4.19h-2.5Zm-1.691 1.69h-.393v2.5h.393v-2.5Zm.857 1.25v-2.058h-2.5v2.059h2.5Zm0-2.058a4.191 4.191 0 0 0-4.19-4.191v2.5c.933 0 1.69.757 1.69 1.69h2.5Zm-4.19-4.191h-2.06v2.5h2.06v-2.5Zm-.81 1.25v-.393h-2.5v.393h2.5Zm0-.393c0-.934.758-1.69 1.692-1.69v-2.5a4.191 4.191 0 0 0-4.192 4.19h2.5Zm1.692-1.69h.392v-2.5h-.392v2.5Z",fill:"currentColor",mask:"url(#SendToBackIcon)"}),(0,f.jsx)("path",{d:"M12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z",stroke:"currentColor",strokeWidth:"1.25"})]}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),D0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),R0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),N0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),O0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),B0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),F0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),$0=D((0,f.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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"})]}),le),H0=D((0,f.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,f.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,f.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"})]}),le),zc=D((0,f.jsxs)("g",{strokeWidth:"1.5",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,f.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,f.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,f.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),fe),AI=D("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"),LI=D("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"),wo=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),z0=D("M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z",{width:320,height:512,style:{marginLeft:"-0.2rem"},mirror:!0}),PI=D("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}),DI=D("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}),RI=D("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}),U0=Zt.default.memo(({theme:t})=>D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{d:"M25 26H111V111H25",fill:zo(t)}),(0,f.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:zo(t),strokeWidth:"2"}),(0,f.jsx)("path",{d:"M100 100H160V160H100",fill:zo(t)}),(0,f.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:zo(t),strokeWidth:"2"}),(0,f.jsxs)("g",{fill:Wb(t),stroke:zo(t),strokeWidth:"6",children:[(0,f.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),W0=Zt.default.memo(({theme:t})=>D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{d:"M25 26H111V111H25",fill:zo(t)}),(0,f.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:zo(t),strokeWidth:"2"}),(0,f.jsx)("path",{d:"M100 100H160V160H100",fill:zo(t)}),(0,f.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:zo(t),strokeWidth:"2"}),(0,f.jsxs)("g",{fill:Wb(t),stroke:zo(t),strokeWidth:"6",children:[(0,f.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,f.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),G0=D((0,f.jsx)("g",{strokeWidth:1.25,children:(0,f.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"})}),le),V0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.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,f.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,f.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,f.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,f.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"})})]}),le),K0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("g",{clipPath:"url(#a)",children:[(0,f.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,f.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,f.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,f.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),Y0=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...le,fill:"currentColor"}),Ju=D((0,f.jsx)(f.Fragment,{children:(0,f.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),le),Z0=D((0,f.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),le),j0=D((0,f.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),le),NI=Zt.default.memo(({theme:t})=>D((0,f.jsx)("path",{d:"M6 10H34",stroke:zo(t),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),X0=D((0,f.jsxs)("g",{strokeWidth:"2",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M5 12h2"}),(0,f.jsx)("path",{d:"M17 12h2"}),(0,f.jsx)("path",{d:"M11 12h2"})]}),fe),q0=D((0,f.jsxs)("g",{strokeWidth:"2",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 12v.01"}),(0,f.jsx)("path",{d:"M8 12v.01"}),(0,f.jsx)("path",{d:"M12 12v.01"}),(0,f.jsx)("path",{d:"M16 12v.01"}),(0,f.jsx)("path",{d:"M20 12v.01"})]}),fe),J0=D((0,f.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"}),le),Q0=D((0,f.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"}),le),ex=D((0,f.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"}),le),tx=D((0,f.jsxs)("svg",{strokeWidth:"1.5",children:[(0,f.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,f.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,f.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,f.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,f.jsx)("path",{d:"M16.6667 10V10.01"}),(0,f.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,f.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,f.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,f.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),le),ox=D((0,f.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,f.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,f.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,f.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,f.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,f.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,f.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,f.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,f.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,f.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,f.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,f.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),fe),rx=D((0,f.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),nx=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,f.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,f.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),Qu=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,f.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,f.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),ix=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,f.jsx)("path",{d:"M26 10L6 10"}),(0,f.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),ax=Zt.default.memo(({flip:t=!1})=>D((0,f.jsx)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",children:(0,f.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),lx=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,f.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,f.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),sx=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,f.jsx)("path",{d:"M6,9.5H27"}),(0,f.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),cx=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,f.jsx)("path",{d:"M6,9.5H20"}),(0,f.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),dx=Zt.default.memo(({flip:t=!1})=>D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,f.jsx)("path",{d:"M6,9.5H20"}),(0,f.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),mx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),ux=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),px=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",children:(0,f.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),fx=D((0,f.jsx)(f.Fragment,{children:(0,f.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"})}),le),hx=D((0,f.jsx)(f.Fragment,{children:(0,f.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.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"})})}),le),gx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,f.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,f.jsx)("defs",{children:(0,f.jsx)("clipPath",{id:"a",children:(0,f.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),le),bx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,f.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,f.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),fe),xx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,f.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,f.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),fe),vx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,f.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,f.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),fe),yx=Zt.default.memo(({theme:t})=>D((0,f.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,f.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),fe)),Ex=Zt.default.memo(({theme:t})=>D((0,f.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,f.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),fe)),wx=Zt.default.memo(({theme:t})=>D((0,f.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,f.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,f.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),fe)),Tx=D((0,f.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}),OI=D((0,f.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"})),Cx=D((0,f.jsxs)("g",{strokeWidth:1.25,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,f.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,f.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,f.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"})]}),fe),ep=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,f.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,f.jsx)("path",{d:"M12 4l0 12"})]}),fe),Uc=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.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"})]}),fe),Sx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,f.jsx)("path",{d:"M12 17l0 .01"}),(0,f.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),fe),BI=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M7 4v16l13 -8z"})]}),fe),FI=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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"})]}),fe),$I=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),fe),kx=D((0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.jsx)("path",{d:"M12 9v4"}),(0,f.jsx)("path",{d:"M12 17h.01"})]}),fe),Ix=D((0,f.jsxs)("g",{strokeWidth:1.25,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M11 7l6 6"}),(0,f.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"})]}),fe),_x=D((0,f.jsxs)("g",{strokeWidth:1.5,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,f.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,f.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"})]}),fe),Mx=D((0,f.jsxs)("g",{strokeWidth:1.5,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 7l16 0"}),(0,f.jsx)("path",{d:"M4 17l16 0"}),(0,f.jsx)("path",{d:"M7 4l0 16"}),(0,f.jsx)("path",{d:"M17 4l0 16"})]}),fe),Ax=D((0,f.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"})),Zi=D((0,f.jsxs)("g",{strokeWidth:"1.25",children:[(0,f.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,f.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,f.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),le),Wc=D((0,f.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,f.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,f.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),ji=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,f.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,f.jsx)("path",{d:"M15 6l3 3"}),(0,f.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,f.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"})]}),fe),El=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,f.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,f.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,f.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,f.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,f.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"})]}),fe),Lx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,f.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,f.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,f.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),fe),Gc=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,f.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"})]}),fe),Px=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,f.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,f.jsx)("path",{d:"M3 3l18 18"})]}),fe),Dx=D((0,f.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.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,f.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,f.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,f.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,f.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,f.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),fe),Rx=D((0,f.jsxs)("g",{strokeWidth:1.5,children:[(0,f.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,f.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,f.jsx)("path",{d:"M21 21l-6 -6"})]}),fe);var Ox=v(C(),1),U5=(t,e)=>{let o=new Set(ke(t.filter(r=>we(r)),e).map(r=>r.id));return{elements:t.map(r=>e.selectedElementIds[r.id]?ce(r,{isDeleted:!0}):r.frameId&&o.has(r.frameId)?ce(r,{isDeleted:!0}):gt(r)&&e.selectedElementIds[r.containerId]?ce(r,{isDeleted:!0}):r),appState:{...e,selectedElementIds:{},selectedGroupIds:{}}}},Nx=(t,e)=>{if(t.editingGroupId){let o=ut(he(e),t.editingGroupId);if(o.length)return{...t,selectedElementIds:{[o[0].id]:!0}}}return t},wl=H({name:"deleteSelectedElements",trackEvent:{category:"element",action:"delete"},perform:(t,e,o,r)=>{if(e.editingLinearElement){let{elementId:a,selectedPointsIndices:l,startBindingElement:c,endBindingElement:s}=e.editingLinearElement,m=r.scene.getNonDeletedElementsMap(),d=ue.getElement(a,m);if(!d||l==null)return!1;if(d.points.length<2){let u=t.map(x=>x.id===d.id?ce(x,{isDeleted:!0}):x),b=Nx(e,u);return{elements:u,appState:{...b,editingLinearElement:null},commitToHistory:!1}}let p={startBindingElement:l?.includes(0)?null:c,endBindingElement:l?.includes(d.points.length-1)?null:s};return ue.deletePoints(d,l),{elements:t,appState:{...e,editingLinearElement:{...e.editingLinearElement,...p,selectedPointsIndices:l?.[0]>0?[l[0]-1]:[0]}},commitToHistory:!0}}let{elements:n,appState:i}=U5(t,e);return Ii(n,t.filter(({id:a})=>e.selectedElementIds[a])),i=Nx(i,n),{elements:n,appState:{...i,activeTool:et(e,{type:"selection"}),multiElement:null,activeEmbeddable:null},commitToHistory:Ne(he(t),e)}},contextItemLabel:"labels.delete",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,Ox.jsx)(ae,{type:"button",icon:ln,title:g("labels.delete"),"aria-label":g("labels.delete"),onClick:()=>o(null),visible:Ne(he(t),e)})});h();h();var tp=(t,e)=>t.frameId===e||t.id===e,Fx=(t,e,o)=>{let r=[],n=[],i=null,a=-1,l=Se(o||ke(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++a<t.length;){let c=t[a];l.get(c.id)?(n.length&&(r=r.concat(n),n=[]),r.push(a),i=a+1):c.isDeleted&&i===a?(i=a+1,n.push(a)):n=[]}return r},W5=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),[])},Bx=(t,e,o)=>{if("containerId"in t&&t.containerId)if(o==="left"){let r=to.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=to.getScene(t).getElement(r);if(n)return e.indexOf(n)}}},G5=(t,e)=>{let o=-1,r=-1;return t.forEach((n,i)=>{tp(n,e)&&(o===-1&&(o=i),r=i)}),o===-1?[]:t.slice(o,r+1)},V5=(t,e,o,r,n)=>{let i=e[o],a=d=>d.isDeleted?!1:n?d.frameId===n:t.editingGroupId?d.groupIds.includes(t.editingGroupId):!0,l=r==="left"?du(e,d=>a(d),Math.max(0,o-1)):cu(e,d=>a(d),o+1),c=e[l];if(!c)return-1;if(t.editingGroupId){if(i?.groupIds.join("")===c?.groupIds.join(""))return Bx(c,e,r)??l;if(!c?.groupIds.includes(t.editingGroupId))return-1}if(!n&&(c.frameId||we(c))){let d=G5(e,c.frameId||c.id);return r==="left"?e.indexOf(d[0]):e.indexOf(d[d.length-1])}if(!c.groupIds.length)return Bx(c,e,r)??l;let s=t.editingGroupId?c.groupIds[c.groupIds.indexOf(t.editingGroupId)-1]:c.groupIds[c.groupIds.length-1],m=ut(e,s);return m.length?r==="left"?e.indexOf(m[0]):e.indexOf(m[m.length-1]):l},$x=(t,e)=>e.reduce((o,r)=>{let n=t[r];return o[n.id]=n,o},{}),Hx=(t,e,o)=>{let r=Fx(t,e),n=$x(t,r),i=W5(r);o==="right"&&(i=i.reverse());let a=new Set(r.filter(l=>we(t[l])).map(l=>t[l].id));return i.forEach((l,c)=>{let s=l[0],m=l[l.length-1],d=o==="left"?s:m,p=l.some(k=>{let T=t[k];return T.frameId&&a.has(T.frameId)})?null:t[d]?.frameId,u=V5(e,t,d,o,p);if(u===-1||d===u)return;let b=o==="left"?t.slice(0,u):t.slice(0,s),x=t.slice(s,m+1),y=o==="left"?t.slice(u,s):t.slice(m+1,u+1),w=o==="left"?t.slice(m+1):t.slice(u+1);t=o==="left"?[...b,...x,...y,...w]:[...b,...y,...x,...w]}),t.map(l=>n[l.id]?Fi(l):l)},zx=(t,e,o,r,n)=>{let i=Fx(t,e,n),a=$x(t,i),l=[],c,s;if(o==="left"){if(r)c=cu(t,u=>tp(u,r));else if(e.editingGroupId){let u=ut(t,e.editingGroupId);if(!u.length)return t;c=t.indexOf(u[0])}else c=0;s=i[i.length-1]}else{if(r)s=du(t,u=>tp(u,r));else if(e.editingGroupId){let u=ut(t,e.editingGroupId);if(!u.length)return t;s=t.indexOf(u[u.length-1])}else s=t.length-1;c=i[0]}c===-1&&(c=0);for(let u=c;u<s+1;u++)i.includes(u)||l.push(t[u]);let m=Object.values(a).map(u=>Fi(u)),d=t.slice(0,c),p=t.slice(s+1);return o==="left"?[...d,...m,...l,...p]:[...d,...l,...m,...p]};function Ux(t,e,o,r){let n=Se(ke(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),i={regularElements:[],frameChildren:new Map},a=new Set;for(let s of t)n.has(s.id)&&we(s)&&a.add(s.id);for(let s of t)if(n.has(s.id))if(we(s)||s.frameId&&a.has(s.frameId))i.regularElements.push(s);else if(!s.frameId)i.regularElements.push(s);else{let m=i.frameChildren.get(s.frameId)||[];m.push(s),i.frameChildren.set(s.frameId,m)}let l=t,c=Array.from(i.frameChildren.entries());for(let[s,m]of c)l=r(t,e,o,s,m);return r(l,e,o,null,i.regularElements)}var Wx=(t,e)=>Hx(t,e,"left"),Gx=(t,e)=>Hx(t,e,"right"),Vx=(t,e)=>Ux(t,e,"left",zx),Kx=(t,e)=>Ux(t,e,"right",zx);var Tl=v(C(),1),op=H({name:"sendBackward",trackEvent:{category:"element"},perform:(t,e)=>({elements:Wx(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.sendBackward",keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===me.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Tl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendBackward")} \u2014 ${N("CtrlOrCmd+[")}`,children:A0})}),rp=H({name:"bringForward",trackEvent:{category:"element"},perform:(t,e)=>({elements:Gx(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.bringForward",keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===me.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Tl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.bringForward")} \u2014 ${N("CtrlOrCmd+]")}`,children:M0})}),np=H({name:"sendToBack",trackEvent:{category:"element"},perform:(t,e)=>({elements:Vx(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.sendToBack",keyTest:t=>Oo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.BRACKET_LEFT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===me.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Tl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendToBack")} \u2014 ${Oo?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")}`,children:P0})}),ip=H({name:"bringToFront",trackEvent:{category:"element"},perform:(t,e)=>({elements:Kx(t,e),appState:e,commitToHistory:!0}),contextItemLabel:"labels.bringToFront",keyTest:t=>Oo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.BRACKET_RIGHT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===me.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Tl.jsx)("button",{type:"button",className:"zIndexButton",onClick:o=>t(null),title:`${g("labels.bringToFront")} \u2014 ${Oo?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")}`,children:L0})});h();var ap=H({name:"selectAll",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{if(e.editingLinearElement)return!1;let n=Hi(t.filter(i=>!i.isDeleted&&!(ie(i)&&i.containerId)&&!i.locked)).reduce((i,a)=>(i[a.id]=!0,i),{});return{appState:{...e,...At({editingGroupId:null,selectedElementIds:n},he(t),e,r),selectedLinearElement:Object.keys(n).length===1&&De(t[0])?new ue(t[0]):null},commitToHistory:!0}},contextItemLabel:"labels.selectAll",keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.A});h();h();var K5=t=>{let e=t.slice(),o=new Set,r=i=>{let a=i[0]?.groupIds?.join(""),l=[i[0]],c=[];for(let s of i.slice(1))s.groupIds?.join("")===a?l.push(s):c.push(s);return c.length?[...l,...r(c)]: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],c=e.slice(a).filter(s=>{let m=s?.groupIds?.some(d=>d===l);return m&&n.set(s.id,!0),m});for(let s of r(c))o.add(s)}else o.add(i)}),o.size!==t.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),t):[...o]},Y5=t=>{let e=Bg(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]},Yx=t=>Y5(K5(t));var Zx=v(C(),1),lp=H({name:"duplicateSelection",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,commitToHistory:!0}:!1}return{...Z5(t,e),commitToHistory:!0}},contextItemLabel:"labels.duplicateSelection",keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.D,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Zx.jsx)(ae,{type:"button",icon:u0,title:`${g("labels.duplicateSelection")} \u2014 ${N("CtrlOrCmd+D")}`,"aria-label":g("labels.duplicateSelection"),onClick:()=>o(null),visible:Ne(he(t),e)})}),Z5=(t,e)=>{let o=Yx(t),r=new Map,n=[],i=[],a=new Map,l=w=>{let k=ac(e.editingGroupId,r,w,{x:w.x+vr/2,y:w.y+vr/2});return a.set(w.id,k.id),i.push(w),n.push(k),k},c=Se(ke(o,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),s=new Map,m=w=>{for(let k of w)s.set(k.id,!0);return w},d=[],p=-1;for(;++p<o.length;){let w=o[p];if(s.get(w.id))continue;let k=nt(w,Se(t)),T=we(w);if(c.get(w.id)){if(w.groupIds.length||k||T){let I=E1(e,w);if(I){let A=ut(o,I).flatMap(_=>we(_)?[...nn(t,_.id),_]:[_]);d.push(...m([...A,...A.map(_=>l(_))]));continue}if(k){d.push(...m([w,k,l(w),l(k)]));continue}if(T){let A=nn(o,w.id);d.push(...m([...A,w,...A.map(_=>l(_)),l(w)]));continue}}(!w.frameId||!c.has(w.frameId))&&d.push(...m([w,l(w)]))}else d.push(...m([w]))}let u=[],b=new Map;for(p=d.length;--p>=0;){let w=d[p];b.get(w.id)||(b.set(w.id,!0),u.push(w))}let x=u.reverse();qs(d,i,a),Xs(d,i,a),bc(x,i,a);let y=Hi(n);return{elements:x,appState:{...e,...At({editingGroupId:e.editingGroupId,selectedElementIds:y.reduce((w,k)=>(gt(k)||(w[k.id]=!0),w),{})},he(x),e,null)}}};h();h();var j5=["ai"],ge=(t,e,o,r)=>{try{if(typeof window>"u"||E.VITE_WORKER_ID||E.PROD||!j5.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 Xi=v(C(),1),ar=t=>(0,Xi.jsx)("div",{className:"buttonList buttonListIcon",children:t.options.map(e=>t.type==="button"?(0,Xi.jsx)("button",{onClick:o=>t.onClick(e.value,o),className:F({active:e.active??t.value===e.value}),"data-testid":e.testId,title:e.text,children:e.icon},e.text):(0,Xi.jsxs)("label",{className:F({active:t.value===e.value}),title:e.text,children:[(0,Xi.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 Vc=v(C(),1),jx=({onChange:t,type:e,activeColor:o,topPicks:r})=>{let n;return e==="elementStroke"&&(n=Ts),e==="elementBackground"&&(n=Cs),e==="canvasBackground"&&(n=Ss),r&&(n=r),n?(0,Vc.jsx)("div",{className:"color-picker__top-picks",children:n.map(i=>(0,Vc.jsx)("button",{className:F("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,Vc.jsx)("div",{className:"color-picker__button-outline"})},i))}):(console.error("Invalid type for TopPicks"),null)};h();var cn=v($(),1);h();var Kc=v($(),1);h();var sn=({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},Cl=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),sp=({color:t,palette:e})=>!Object.values(e).flat().includes(t),qx=(t,e,o)=>{let r={elementBackground:"backgroundColor",elementStroke:"strokeColor"},n=t.filter(a=>{if(a.isDeleted)return!1;let l=a[r[e]];return sp({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,Jh)},To=Ve(null),Xx=(t,e,o)=>(t*299+e*587+o*114)/1e3>=160?"black":"white",Jx=(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]),c=parseInt(a[1]),s=parseInt(a[2]);return Xx(l,c,s)}}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 Xx(o,r,n)};h();var Qx=v(C(),1),X5=({color:t,keyLabel:e,isCustomColor:o=!1,isShade:r=!1})=>(0,Qx.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:Jx(t,o)},children:[r&&"\u21E7",e]}),qi=X5;var Dr=v(C(),1),ev=({hex:t,onChange:e,palette:o})=>{let r=sn({color:t||"transparent",palette:o}),[n,i]=Te(To),a=(0,Kc.useRef)(null);if((0,Kc.useEffect)(()=>{a.current&&n==="shades"&&a.current.focus()},[r,n]),r){let{colorName:l,shade:c}=r,s=o[l];if(Array.isArray(s))return(0,Dr.jsx)("div",{className:"color-picker-content--default shades",children:s.map((m,d)=>(0,Dr.jsxs)("button",{ref:d===c&&n==="shades"?a:void 0,tabIndex:-1,type:"button",className:F("color-picker__button color-picker__button--large",{active:d===c}),"aria-label":"Shade",title:`${l} - ${d+1}`,style:m?{"--swatch-color":m}:void 0,onClick:()=>{e(m),i("shades")},children:[(0,Dr.jsx)("div",{className:"color-picker__button-outline"}),(0,Dr.jsx)(qi,{color:m,keyLabel:d+1,isShade:!0})]},d))})}return(0,Dr.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Dr.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Dr.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 Yc=v($(),1);var Ji=v(C(),1),q5=({palette:t,color:e,onChange:o,label:r,activeShade:n})=>{let i=sn({color:e||"transparent",palette:t}),[a,l]=Te(To),c=(0,Yc.useRef)(null);return(0,Yc.useEffect)(()=>{c.current&&a==="baseColors"&&c.current.focus()},[i?.colorName,a]),(0,Ji.jsx)("div",{className:"color-picker-content--default",children:Object.entries(t).map(([s,m],d)=>{let p=(Array.isArray(m)?m[n]:m)||"transparent",u=Cl[d],b=g(`colors.${s.replace(/\d+/,"")}`,null,"");return(0,Ji.jsxs)("button",{ref:i?.colorName===s?c:void 0,tabIndex:-1,type:"button",className:F("color-picker__button color-picker__button--large",{active:i?.colorName===s,"is-transparent":p==="transparent"||!p}),onClick:()=>{o(p),l("baseColors")},title:`${b}${p.startsWith("#")?` ${p}`:""} \u2014 ${u}`,"aria-label":`${b} \u2014 ${u}`,style:p?{"--swatch-color":p}:void 0,"data-testid":`color-${s}`,children:[(0,Ji.jsx)("div",{className:"color-picker__button-outline"}),(0,Ji.jsx)(qi,{color:p,keyLabel:u})]},s)})})},tv=q5;h();var Zc=v($(),1);var Qi=v(C(),1),ov=({colors:t,color:e,onChange:o,label:r})=>{let[n,i]=Te(To),a=(0,Zc.useRef)(null);return(0,Zc.useEffect)(()=>{a.current&&a.current.focus()},[e,n]),(0,Qi.jsx)("div",{className:"color-picker-content--default",children:t.map((l,c)=>(0,Qi.jsxs)("button",{ref:e===l?a:void 0,tabIndex:-1,type:"button",className:F("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,Qi.jsx)("div",{className:"color-picker__button-outline"}),(0,Qi.jsx)(qi,{color:l,keyLabel:c+1,isCustomColor:!0})]},c))})};h();var cp=(t,e,o)=>{let r=Math.ceil(o/Mn);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+Mn;return n>=o?e%Mn:n}case"ArrowUp":{let n=e-Mn,i=n<0?Mn*r+n:n;return i>=o?void 0:i}}},J5=({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(Cl.includes(t.key)){let l=Cl.indexOf(t.key),c=Object.keys(r)[l],s=r[c],m=Array.isArray(s)?s[a]:s;return o(m),i("baseColors"),!0}return!1},rv=({event:t,activeColorPickerSection:e,palette:o,color:r,onChange:n,customColors:i,setActiveColorPickerSection:a,updateData:l,activeShade:c,onEyeDropperToggle:s,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 s(!0),!0;if(t.key===S.I)return s(),!0;let d=sn({color:r,palette:o});if(t.key===S.TAB){let p={custom:!!i.length,baseColors:!0,shades:d?.shade!=null,hex:!0},u=Object.entries(p).reduce((k,[T,I])=>(I&&k.push(T),k),[]),b=u.indexOf(e),x=t.shiftKey?-1:1,y=b+x>u.length-1?0:b+x<0?u.length-1:b+x,w=u[y];return w&&a(w),w==="custom"?n(i[0]):w==="baseColors"&&(Object.entries(o).find(([T,I])=>Array.isArray(I)?I.includes(r):I===r?T:null)||n(br.black)),t.preventDefault(),t.stopPropagation(),!0}if(J5({e:t,colorObj:d,onChange:n,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:c}))return!0;if(e==="shades"&&d){let{shade:p}=d,u=cp(t.key,p,Mn);if(u!==void 0)return n(o[d.colorName][u]),!0}if(e==="baseColors"&&d){let{colorName:p}=d,u=Object.keys(o),b=u.indexOf(p),x=cp(t.key,b,u.length);if(x!==void 0){let y=u[x],w=o[y];return n(Array.isArray(w)?w[c]:w),!0}}if(e==="custom"){let p=i.indexOf(r),u=cp(t.key,p,i.length);if(u!==void 0){let b=i[u];return n(b),!0}}return!1};h();var nv=v(C(),1),Q5=({children:t})=>(0,nv.jsx)("div",{className:"color-picker__heading",children:t}),ea=Q5;var lo=v(C(),1),iv=({color:t,onChange:e,label:o,type:r,elements:n,palette:i,updateData:a,children:l,onEyeDropperToggle:c,onEscape:s})=>{let[m]=cn.default.useState(()=>r==="canvasBackground"?[]:qx(n,r,i)),[d,p]=Te(To),u=sn({color:t,palette:i});(0,cn.useEffect)(()=>{if(!d){let w=sp({color:t,palette:i}),k=w&&!m.includes(t);p(k?"hex":w?"custom":u?.shade!=null?"shades":"baseColors")}},[d,t,i,p,u,m]);let[b,x]=(0,cn.useState)(u?.shade??(r==="elementBackground"?eg:Qh));(0,cn.useEffect)(()=>{u?.shade!=null&&x(u.shade);let w=k=>{k.key===S.ALT&&c(!1)};return document.addEventListener("keyup",w,{capture:!0}),()=>{document.removeEventListener("keyup",w,{capture:!0})}},[u,c]);let y=cn.default.useRef(null);return(0,lo.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":g("labels.colorPicker"),children:(0,lo.jsxs)("div",{ref:y,onKeyDown:w=>{rv({event:w,activeColorPickerSection:d,palette:i,color:t,onChange:e,onEyeDropperToggle:c,customColors:m,setActiveColorPickerSection:p,updateData:a,activeShade:b,onEscape:s})&&(w.preventDefault(),w.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!m.length&&(0,lo.jsxs)("div",{children:[(0,lo.jsx)(ea,{children:g("colorPicker.mostUsedCustomColors")}),(0,lo.jsx)(ov,{colors:m,color:t,label:g("colorPicker.mostUsedCustomColors"),onChange:e})]}),(0,lo.jsxs)("div",{children:[(0,lo.jsx)(ea,{children:g("colorPicker.colors")}),(0,lo.jsx)(tv,{color:t,label:o,palette:i,onChange:e,activeShade:b})]}),(0,lo.jsxs)("div",{children:[(0,lo.jsx)(ea,{children:g("colorPicker.shades")}),(0,lo.jsx)(ev,{hex:t,onChange:e,palette:i})]}),l]})})};h();h();function be(){return be=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},be.apply(this,arguments)}var ve=v($());h();function bt(t,e,{checkForDefaultPrevented:o=!0}={}){return function(n){if(t?.(n),o===!1||!n.defaultPrevented)return e?.(n)}}h();var av=v($());function e6(t,e){typeof t=="function"?t(e):t!=null&&(t.current=e)}function dp(...t){return e=>t.forEach(o=>e6(o,e))}function Pt(...t){return(0,av.useCallback)(dp(...t),t)}h();var Uo=v($());function lr(t,e=[]){let o=[];function r(i,a){let l=(0,Uo.createContext)(a),c=o.length;o=[...o,a];function s(d){let{scope:p,children:u,...b}=d,x=p?.[t][c]||l,y=(0,Uo.useMemo)(()=>b,Object.values(b));return(0,Uo.createElement)(x.Provider,{value:y},u)}function m(d,p){let u=p?.[t][c]||l,b=(0,Uo.useContext)(u);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${d}\` must be used within \`${i}\``)}return s.displayName=i+"Provider",[s,m]}let n=()=>{let i=o.map(a=>(0,Uo.createContext)(a));return function(l){let c=l?.[t]||i;return(0,Uo.useMemo)(()=>({[`__scope${t}`]:{...l,[t]:c}}),[l,c])}};return n.scopeName=t,[r,t6(n,...e)]}function t6(...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:c,scopeName:s})=>{let d=c(i)[`__scope${s}`];return{...l,...d}},{});return(0,Uo.useMemo)(()=>({[`__scope${e.scopeName}`]:a}),[a])}};return o.scopeName=e.scopeName,o}h();var ft=v($());h();var ta=v($()),lv=v(ir());h();var ot=v($());var dn=(0,ot.forwardRef)((t,e)=>{let{children:o,...r}=t,n=ot.Children.toArray(o),i=n.find(r6);if(i){let a=i.props.children,l=n.map(c=>c===i?ot.Children.count(a)>1?ot.Children.only(null):(0,ot.isValidElement)(a)?a.props.children:null:c);return(0,ot.createElement)(mp,be({},r,{ref:e}),(0,ot.isValidElement)(a)?(0,ot.cloneElement)(a,void 0,l):null)}return(0,ot.createElement)(mp,be({},r,{ref:e}),o)});dn.displayName="Slot";var mp=(0,ot.forwardRef)((t,e)=>{let{children:o,...r}=t;return(0,ot.isValidElement)(o)?(0,ot.cloneElement)(o,{...n6(r,o.props),ref:dp(e,o.ref)}):ot.Children.count(o)>1?ot.Children.only(null):null});mp.displayName="SlotClone";var o6=({children:t})=>(0,ot.createElement)(ot.Fragment,null,t);function r6(t){return(0,ot.isValidElement)(t)&&t.type===o6}function n6(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 i6=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],it=i6.reduce((t,e)=>{let o=(0,ta.forwardRef)((r,n)=>{let{asChild:i,...a}=r,l=i?dn:e;return(0,ta.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,ta.createElement)(l,be({},a,{ref:n}))});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{});function sv(t,e){t&&(0,lv.flushSync)(()=>t.dispatchEvent(e))}h();var oa=v($());function jt(t){let e=(0,oa.useRef)(t);return(0,oa.useEffect)(()=>{e.current=t}),(0,oa.useMemo)(()=>(...o)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...o)},[])}h();var cv=v($());function dv(t,e=globalThis?.document){let o=jt(t);(0,cv.useEffect)(()=>{let r=n=>{n.key==="Escape"&&o(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[o,e])}var up="dismissableLayer.update",a6="dismissableLayer.pointerDownOutside",l6="dismissableLayer.focusOutside",mv,s6=(0,ft.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),pv=(0,ft.forwardRef)((t,e)=>{var o;let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:l,onDismiss:c,...s}=t,m=(0,ft.useContext)(s6),[d,p]=(0,ft.useState)(null),u=(o=d?.ownerDocument)!==null&&o!==void 0?o:globalThis?.document,[,b]=(0,ft.useState)({}),x=Pt(e,L=>p(L)),y=Array.from(m.layers),[w]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),k=y.indexOf(w),T=d?y.indexOf(d):-1,I=m.layersWithOutsidePointerEventsDisabled.size>0,A=T>=k,_=c6(L=>{let W=L.target,B=[...m.branches].some(Y=>Y.contains(W));!A||B||(i?.(L),l?.(L),L.defaultPrevented||c?.())},u),M=d6(L=>{let W=L.target;[...m.branches].some(Y=>Y.contains(W))||(a?.(L),l?.(L),L.defaultPrevented||c?.())},u);return dv(L=>{T===m.layers.size-1&&(n?.(L),!L.defaultPrevented&&c&&(L.preventDefault(),c()))},u),(0,ft.useEffect)(()=>{if(d)return r&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(mv=u.body.style.pointerEvents,u.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(d)),m.layers.add(d),uv(),()=>{r&&m.layersWithOutsidePointerEventsDisabled.size===1&&(u.body.style.pointerEvents=mv)}},[d,u,r,m]),(0,ft.useEffect)(()=>()=>{d&&(m.layers.delete(d),m.layersWithOutsidePointerEventsDisabled.delete(d),uv())},[d,m]),(0,ft.useEffect)(()=>{let L=()=>b({});return document.addEventListener(up,L),()=>document.removeEventListener(up,L)},[]),(0,ft.createElement)(it.div,be({},s,{ref:x,style:{pointerEvents:I?A?"auto":"none":void 0,...t.style},onFocusCapture:bt(t.onFocusCapture,M.onFocusCapture),onBlurCapture:bt(t.onBlurCapture,M.onBlurCapture),onPointerDownCapture:bt(t.onPointerDownCapture,_.onPointerDownCapture)}))});function c6(t,e=globalThis?.document){let o=jt(t),r=(0,ft.useRef)(!1),n=(0,ft.useRef)(()=>{});return(0,ft.useEffect)(()=>{let i=l=>{if(l.target&&!r.current){let s=function(){fv(a6,o,c,{discrete:!0})},c={originalEvent:l};l.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=s,e.addEventListener("click",n.current,{once:!0})):s()}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 d6(t,e=globalThis?.document){let o=jt(t),r=(0,ft.useRef)(!1);return(0,ft.useEffect)(()=>{let n=i=>{i.target&&!r.current&&fv(l6,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 uv(){let t=new CustomEvent(up);document.dispatchEvent(t)}function fv(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?sv(n,i):n.dispatchEvent(i)}h();var gv=v($()),pp=0;function bv(){(0,gv.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:hv()),document.body.insertAdjacentElement("beforeend",(e=o[1])!==null&&e!==void 0?e:hv()),pp++,()=>{pp===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),pp--}},[])}function hv(){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 ro=v($());var fp="focusScope.autoFocusOnMount",hp="focusScope.autoFocusOnUnmount",xv={bubbles:!1,cancelable:!0};var wv=(0,ro.forwardRef)((t,e)=>{let{loop:o=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...a}=t,[l,c]=(0,ro.useState)(null),s=jt(n),m=jt(i),d=(0,ro.useRef)(null),p=Pt(e,x=>c(x)),u=(0,ro.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,ro.useEffect)(()=>{if(r){let x=function(w){if(u.paused||!l)return;let k=w.target;l.contains(k)?d.current=k:Un(d.current,{select:!0})},y=function(w){u.paused||!l||l.contains(w.relatedTarget)||Un(d.current,{select:!0})};return document.addEventListener("focusin",x),document.addEventListener("focusout",y),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",y)}}},[r,l,u.paused]),(0,ro.useEffect)(()=>{if(l){yv.add(u);let x=document.activeElement;if(!l.contains(x)){let w=new CustomEvent(fp,xv);l.addEventListener(fp,s),l.dispatchEvent(w),w.defaultPrevented||(m6(g6(Tv(l)),{select:!0}),document.activeElement===x&&Un(l))}return()=>{l.removeEventListener(fp,s),setTimeout(()=>{let w=new CustomEvent(hp,xv);l.addEventListener(hp,m),l.dispatchEvent(w),w.defaultPrevented||Un(x??document.body,{select:!0}),l.removeEventListener(hp,m),yv.remove(u)},0)}}},[l,s,m,u]);let b=(0,ro.useCallback)(x=>{if(!o&&!r||u.paused)return;let y=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,w=document.activeElement;if(y&&w){let k=x.currentTarget,[T,I]=u6(k);T&&I?!x.shiftKey&&w===I?(x.preventDefault(),o&&Un(T,{select:!0})):x.shiftKey&&w===T&&(x.preventDefault(),o&&Un(I,{select:!0})):w===k&&x.preventDefault()}},[o,r,u.paused]);return(0,ro.createElement)(it.div,be({tabIndex:-1},a,{ref:p,onKeyDown:b}))});function m6(t,{select:e=!1}={}){let o=document.activeElement;for(let r of t)if(Un(r,{select:e}),document.activeElement!==o)return}function u6(t){let e=Tv(t),o=vv(e,t),r=vv(e.reverse(),t);return[o,r]}function Tv(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 vv(t,e){for(let o of t)if(!p6(o,{upTo:e}))return o}function p6(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 f6(t){return t instanceof HTMLInputElement&&"select"in t}function Un(t,{select:e=!1}={}){if(t&&t.focus){let o=document.activeElement;t.focus({preventScroll:!0}),t!==o&&f6(t)&&e&&t.select()}}var yv=h6();function h6(){let t=[];return{add(e){let o=t[0];e!==o&&o?.pause(),t=Ev(t,e),t.unshift(e)},remove(e){var o;t=Ev(t,e),(o=t[0])===null||o===void 0||o.resume()}}}function Ev(t,e){let o=[...t],r=o.indexOf(e);return r!==-1&&o.splice(r,1),o}function g6(t){return t.filter(e=>e.tagName!=="A")}h();var jc=v($());h();var Cv=v($()),Co=globalThis?.document?Cv.useLayoutEffect:()=>{};var b6=jc.useId||(()=>{}),x6=0;function ra(t){let[e,o]=jc.useState(b6());return Co(()=>{t||o(r=>r??String(x6++))},[t]),t||(e?`radix-${e}`:"")}h();var Ke=v($());h();h();h();function Gn(t){return t.split("-")[0]}function kl(t){return t.split("-")[1]}function ia(t){return["top","bottom"].includes(Gn(t))?"x":"y"}function bp(t){return t==="y"?"height":"width"}function Sv(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=ia(e),c=bp(l),s=r[c]/2-n[c]/2,m=l==="x",d;switch(Gn(e)){case"top":d={x:i,y:r.y-n.height};break;case"bottom":d={x:i,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:a};break;case"left":d={x:r.x-n.width,y:a};break;default:d={x:r.x,y:r.y}}switch(kl(e)){case"start":d[l]-=s*(o&&m?-1:1);break;case"end":d[l]+=s*(o&&m?-1:1)}return d}var Mv=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)),c=await a.getElementRects({reference:t,floating:e,strategy:n}),{x:s,y:m}=Sv(c,r,l),d=r,p={},u=0;for(let b=0;b<i.length;b++){let{name:x,fn:y}=i[b],{x:w,y:k,data:T,reset:I}=await y({x:s,y:m,initialPlacement:r,placement:d,strategy:n,middlewareData:p,rects:c,platform:a,elements:{reference:t,floating:e}});s=w??s,m=k??m,p={...p,[x]:{...p[x],...T}},I&&u<=50&&(u++,typeof I=="object"&&(I.placement&&(d=I.placement),I.rects&&(c=I.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:n}):I.rects),{x:s,y:m}=Sv(c,d,l)),b=-1)}return{x:s,y:m,placement:d,strategy:n,middlewareData:p}};function Av(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 Sl(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function na(t,e){var o;e===void 0&&(e={});let{x:r,y:n,platform:i,rects:a,elements:l,strategy:c}=t,{boundary:s="clippingAncestors",rootBoundary:m="viewport",elementContext:d="floating",altBoundary:p=!1,padding:u=0}=e,b=Av(u),x=l[p?d==="floating"?"reference":"floating":d],y=Sl(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:s,rootBoundary:m,strategy:c})),w=Sl(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:d==="floating"?{...a.floating,x:r,y:n}:a.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),strategy:c}):a[d]);return{top:y.top-w.top+b.top,bottom:w.bottom-y.bottom+b.bottom,left:y.left-w.left+b.left,right:w.right-y.right+b.right}}var v6=Math.min,Wn=Math.max;function gp(t,e,o){return Wn(t,v6(e,o))}var qc=t=>({name:"arrow",options:t,async fn(e){let{element:o,padding:r=0}=t??{},{x:n,y:i,placement:a,rects:l,platform:c}=e;if(o==null)return{};let s=Av(r),m={x:n,y:i},d=ia(a),p=kl(a),u=bp(d),b=await c.getDimensions(o),x=d==="y"?"top":"left",y=d==="y"?"bottom":"right",w=l.reference[u]+l.reference[d]-m[d]-l.floating[u],k=m[d]-l.reference[d],T=await(c.getOffsetParent==null?void 0:c.getOffsetParent(o)),I=T?d==="y"?T.clientHeight||0:T.clientWidth||0:0;I===0&&(I=l.floating[u]);let A=w/2-k/2,_=s[x],M=I-b[u]-s[y],L=I/2-b[u]/2+A,W=gp(_,L,M),B=(p==="start"?s[x]:s[y])>0&&L!==W&&l.reference[u]<=l.floating[u];return{[d]:m[d]-(B?L<_?_-L:M-L:0),data:{[d]:W,centerOffset:L-W}}}}),y6={left:"right",right:"left",bottom:"top",top:"bottom"};function Xc(t){return t.replace(/left|right|bottom|top/g,e=>y6[e])}function E6(t,e,o){o===void 0&&(o=!1);let r=kl(t),n=ia(t),i=bp(n),a=n==="x"?r===(o?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(a=Xc(a)),{main:a,cross:Xc(a)}}var w6={start:"end",end:"start"};function kv(t){return t.replace(/start|end/g,e=>w6[e])}var Lv=["top","right","bottom","left"],X9=Lv.reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);var xp=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:c}=e,{mainAxis:s=!0,crossAxis:m=!0,fallbackPlacements:d,fallbackStrategy:p="bestFit",flipAlignment:u=!0,...b}=t,x=Gn(r),y=d||(x===a||!u?[Xc(a)]:function(L){let W=Xc(L);return[kv(L),W,kv(W)]}(a)),w=[a,...y],k=await na(e,b),T=[],I=((o=n.flip)==null?void 0:o.overflows)||[];if(s&&T.push(k[x]),m){let{main:L,cross:W}=E6(r,i,await(l.isRTL==null?void 0:l.isRTL(c.floating)));T.push(k[L],k[W])}if(I=[...I,{placement:r,overflows:T}],!T.every(L=>L<=0)){var A,_;let L=((A=(_=n.flip)==null?void 0:_.index)!=null?A:0)+1,W=w[L];if(W)return{data:{index:L,overflows:I},reset:{placement:W}};let B="bottom";switch(p){case"bestFit":{var M;let Y=(M=I.map(O=>[O,O.overflows.filter(z=>z>0).reduce((z,ne)=>z+ne,0)]).sort((O,z)=>O[1]-z[1])[0])==null?void 0:M[0].placement;Y&&(B=Y);break}case"initialPlacement":B=a}if(r!==B)return{reset:{placement:B}}}return{}}}};function Iv(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function _v(t){return Lv.some(e=>t[e]>=0)}var vp=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=Iv(await na(r,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:_v(i)}}}case"escaped":{let i=Iv(await na(r,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:i,escaped:_v(i)}}}default:return{}}}}},yp=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:c,elements:s}=i,m=await(c.isRTL==null?void 0:c.isRTL(s.floating)),d=Gn(l),p=kl(l),u=ia(l)==="x",b=["left","top"].includes(d)?-1:1,x=m&&u?-1:1,y=typeof a=="function"?a(i):a,{mainAxis:w,crossAxis:k,alignmentAxis:T}=typeof y=="number"?{mainAxis:y,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...y};return p&&typeof T=="number"&&(k=p==="end"?-1*T:T),u?{x:k*x,y:w*b}:{x:w*b,y:k*x}}(e,t);return{x:o+n.x,y:r+n.y,data:n}}}};function Pv(t){return t==="x"?"y":"x"}var Ep=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:w,y:k}=y;return{x:w,y:k}}},...c}=t,s={x:o,y:r},m=await na(e,c),d=ia(Gn(n)),p=Pv(d),u=s[d],b=s[p];if(i){let y=d==="y"?"bottom":"right";u=gp(u+m[d==="y"?"top":"left"],u,u-m[y])}if(a){let y=p==="y"?"bottom":"right";b=gp(b+m[p==="y"?"top":"left"],b,b-m[y])}let x=l.fn({...e,[d]:u,[p]:b});return{...x,data:{x:x.x-o,y:x.y-r}}}}},wp=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:c=!0,crossAxis:s=!0}=t,m={x:o,y:r},d=ia(n),p=Pv(d),u=m[d],b=m[p],x=typeof l=="function"?l({...i,placement:n}):l,y=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(c){let A=d==="y"?"height":"width",_=i.reference[d]-i.floating[A]+y.mainAxis,M=i.reference[d]+i.reference[A]-y.mainAxis;u<_?u=_:u>M&&(u=M)}if(s){var w,k,T,I;let A=d==="y"?"width":"height",_=["top","left"].includes(Gn(n)),M=i.reference[p]-i.floating[A]+(_&&(w=(k=a.offset)==null?void 0:k[p])!=null?w:0)+(_?0:y.crossAxis),L=i.reference[p]+i.reference[A]+(_?0:(T=(I=a.offset)==null?void 0:I[p])!=null?T:0)-(_?y.crossAxis:0);b<M?b=M:b>L&&(b=L)}return{[d]:u,[p]:b}}}},Tp=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,c=await na(e,l),s=Gn(o),m=kl(o),d,p;s==="top"||s==="bottom"?(d=s,p=m===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(p=s,d=m==="end"?"top":"bottom");let u=Wn(c.left,0),b=Wn(c.right,0),x=Wn(c.top,0),y=Wn(c.bottom,0),w={availableHeight:r.floating.height-(["left","right"].includes(o)?2*(x!==0||y!==0?x+y:Wn(c.top,c.bottom)):c[d]),availableWidth:r.floating.width-(["top","bottom"].includes(o)?2*(u!==0||b!==0?u+b:Wn(c.left,c.right)):c[p])},k=await n.getDimensions(i.floating);a?.({...e,...w});let T=await n.getDimensions(i.floating);return k.width!==T.width||k.height!==T.height?{reset:{rects:!0}}:{}}}};function Fv(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Br(t){if(t==null)return window;if(!Fv(t)){let e=t.ownerDocument;return e&&e.defaultView||window}return t}function _l(t){return Br(t).getComputedStyle(t)}function Nr(t){return Fv(t)?"":t?(t.nodeName||"").toLowerCase():""}function $v(){let t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function sr(t){return t instanceof Br(t).HTMLElement}function un(t){return t instanceof Br(t).Element}function Sp(t){return typeof ShadowRoot>"u"?!1:t instanceof Br(t).ShadowRoot||t instanceof ShadowRoot}function ed(t){let{overflow:e,overflowX:o,overflowY:r}=_l(t);return/auto|scroll|overlay|hidden/.test(e+r+o)}function T6(t){return["table","td","th"].includes(Nr(t))}function Dv(t){let e=/firefox/i.test($v()),o=_l(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 Hv(){return!/^((?!chrome|android).)*safari/i.test($v())}var Rv=Math.min,Il=Math.max,Jc=Math.round;function Or(t,e,o){var r,n,i,a;e===void 0&&(e=!1),o===void 0&&(o=!1);let l=t.getBoundingClientRect(),c=1,s=1;e&&sr(t)&&(c=t.offsetWidth>0&&Jc(l.width)/t.offsetWidth||1,s=t.offsetHeight>0&&Jc(l.height)/t.offsetHeight||1);let m=un(t)?Br(t):window,d=!Hv()&&o,p=(l.left+(d&&(r=(n=m.visualViewport)==null?void 0:n.offsetLeft)!=null?r:0))/c,u=(l.top+(d&&(i=(a=m.visualViewport)==null?void 0:a.offsetTop)!=null?i:0))/s,b=l.width/c,x=l.height/s;return{width:b,height:x,top:u,right:p+b,bottom:u+x,left:p,x:p,y:u}}function mn(t){return(e=t,(e instanceof Br(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function td(t){return un(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function zv(t){return Or(mn(t)).left+td(t).scrollLeft}function C6(t,e,o){let r=sr(e),n=mn(e),i=Or(t,r&&function(c){let s=Or(c);return Jc(s.width)!==c.offsetWidth||Jc(s.height)!==c.offsetHeight}(e),o==="fixed"),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if(r||!r&&o!=="fixed")if((Nr(e)!=="body"||ed(n))&&(a=td(e)),sr(e)){let c=Or(e,!0);l.x=c.x+e.clientLeft,l.y=c.y+e.clientTop}else n&&(l.x=zv(n));return{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function Uv(t){return Nr(t)==="html"?t:t.assignedSlot||t.parentNode||(Sp(t)?t.host:null)||mn(t)}function Nv(t){return sr(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function Cp(t){let e=Br(t),o=Nv(t);for(;o&&T6(o)&&getComputedStyle(o).position==="static";)o=Nv(o);return o&&(Nr(o)==="html"||Nr(o)==="body"&&getComputedStyle(o).position==="static"&&!Dv(o))?e:o||function(r){let n=Uv(r);for(Sp(n)&&(n=n.host);sr(n)&&!["html","body"].includes(Nr(n));){if(Dv(n))return n;n=n.parentNode}return null}(t)||e}function Ov(t){if(sr(t))return{width:t.offsetWidth,height:t.offsetHeight};let e=Or(t);return{width:e.width,height:e.height}}function Wv(t){let e=Uv(t);return["html","body","#document"].includes(Nr(e))?t.ownerDocument.body:sr(e)&&ed(e)?e:Wv(e)}function Qc(t,e){var o;e===void 0&&(e=[]);let r=Wv(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),i=Br(r),a=n?[i].concat(i.visualViewport||[],ed(r)?r:[]):r,l=e.concat(a);return n?l:l.concat(Qc(a))}function Bv(t,e,o){return e==="viewport"?Sl(function(r,n){let i=Br(r),a=mn(r),l=i.visualViewport,c=a.clientWidth,s=a.clientHeight,m=0,d=0;if(l){c=l.width,s=l.height;let p=Hv();(p||!p&&n==="fixed")&&(m=l.offsetLeft,d=l.offsetTop)}return{width:c,height:s,x:m,y:d}}(t,o)):un(e)?function(r,n){let i=Or(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):Sl(function(r){var n;let i=mn(r),a=td(r),l=(n=r.ownerDocument)==null?void 0:n.body,c=Il(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),s=Il(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),m=-a.scrollLeft+zv(r),d=-a.scrollTop;return _l(l||i).direction==="rtl"&&(m+=Il(i.clientWidth,l?l.clientWidth:0)-c),{width:c,height:s,x:m,y:d}}(mn(t)))}function S6(t){let e=Qc(t),o=["absolute","fixed"].includes(_l(t).position)&&sr(t)?Cp(t):t;return un(o)?e.filter(r=>un(r)&&function(n,i){let a=i.getRootNode==null?void 0:i.getRootNode();if(n.contains(i))return!0;if(a&&Sp(a)){let l=i;do{if(l&&n===l)return!0;l=l.parentNode||l.host}while(l)}return!1}(r,o)&&Nr(r)!=="body"):[]}var k6={getClippingRect:function(t){let{element:e,boundary:o,rootBoundary:r,strategy:n}=t,i=[...o==="clippingAncestors"?S6(e):[].concat(o),r],a=i[0],l=i.reduce((c,s)=>{let m=Bv(e,s,n);return c.top=Il(m.top,c.top),c.right=Rv(m.right,c.right),c.bottom=Rv(m.bottom,c.bottom),c.left=Il(m.left,c.left),c},Bv(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=sr(o),i=mn(o);if(o===i)return e;let a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if((n||!n&&r!=="fixed")&&((Nr(o)!=="body"||ed(i))&&(a=td(o)),sr(o))){let c=Or(o,!0);l.x=c.x+o.clientLeft,l.y=c.y+o.clientTop}return{...e,x:e.x-a.scrollLeft+l.x,y:e.y-a.scrollTop+l.y}},isElement:un,getDimensions:Ov,getOffsetParent:Cp,getDocumentElement:mn,getElementRects:t=>{let{reference:e,floating:o,strategy:r}=t;return{reference:C6(e,Cp(o),r),floating:{...Ov(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>_l(t).direction==="rtl"};function Gv(t,e,o,r){r===void 0&&(r={});let{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:l=!1}=r,c=n&&!l,s=i&&!l,m=c||s?[...un(t)?Qc(t):[],...Qc(e)]:[];m.forEach(b=>{c&&b.addEventListener("scroll",o,{passive:!0}),s&&b.addEventListener("resize",o)});let d,p=null;if(a){let b=!0;p=new ResizeObserver(()=>{b||o(),b=!1}),un(t)&&!l&&p.observe(t),p.observe(e)}let u=l?Or(t):null;return l&&function b(){let x=Or(t);!u||x.x===u.x&&x.y===u.y&&x.width===u.width&&x.height===u.height||o(),u=x,d=requestAnimationFrame(b)}(),o(),()=>{var b;m.forEach(x=>{c&&x.removeEventListener("scroll",o),s&&x.removeEventListener("resize",o)}),(b=p)==null||b.disconnect(),p=null,l&&cancelAnimationFrame(d)}}var Vv=(t,e,o)=>Mv(t,e,{platform:k6,...o});var Dt=v($()),od=v($()),Kv=v(ir()),kp=typeof document<"u"?od.useLayoutEffect:od.useEffect;function Ip(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(!Ip(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)&&!Ip(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function I6(t){let e=Dt.useRef(t);return kp(()=>{e.current=t}),e}function Yv(t){let{middleware:e,placement:o="bottom",strategy:r="absolute",whileElementsMounted:n}=t===void 0?{}:t,i=Dt.useRef(null),a=Dt.useRef(null),l=I6(n),c=Dt.useRef(null),[s,m]=Dt.useState({x:null,y:null,strategy:r,placement:o,middlewareData:{}}),[d,p]=Dt.useState(e);Ip(d?.map(T=>{let{options:I}=T;return I}),e?.map(T=>{let{options:I}=T;return I}))||p(e);let u=Dt.useCallback(()=>{!i.current||!a.current||Vv(i.current,a.current,{middleware:d,placement:o,strategy:r}).then(T=>{b.current&&Kv.flushSync(()=>{m(T)})})},[d,o,r]);kp(()=>{b.current&&u()},[u]);let b=Dt.useRef(!1);kp(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=Dt.useCallback(()=>{if(typeof c.current=="function"&&(c.current(),c.current=null),i.current&&a.current)if(l.current){let T=l.current(i.current,a.current,u);c.current=T}else u()},[u,l]),y=Dt.useCallback(T=>{i.current=T,x()},[x]),w=Dt.useCallback(T=>{a.current=T,x()},[x]),k=Dt.useMemo(()=>({reference:i,floating:a}),[]);return Dt.useMemo(()=>({...s,update:u,refs:k,reference:y,floating:w}),[s,u,k,y,w])}var Zv=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?qc({element:e.current,padding:o}).fn(n):{}:e?qc({element:e,padding:o}).fn(n):{}}}};h();var Ml=v($());var _6=(0,Ml.forwardRef)((t,e)=>{let{children:o,width:r=10,height:n=5,...i}=t;return(0,Ml.createElement)(it.svg,be({},i,{ref:e,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),t.asChild?o:(0,Ml.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),jv=_6;h();var Xv=v($());function qv(t){let[e,o]=(0,Xv.useState)(void 0);return Co(()=>{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 c=i.borderBoxSize,s=Array.isArray(c)?c[0]:c;a=s.inlineSize,l=s.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 Jv="Popper",[_p,Mp]=lr(Jv),[M6,Qv]=_p(Jv),A6=t=>{let{__scopePopper:e,children:o}=t,[r,n]=(0,Ke.useState)(null);return(0,Ke.createElement)(M6,{scope:e,anchor:r,onAnchorChange:n},o)},L6="PopperAnchor",P6=(0,Ke.forwardRef)((t,e)=>{let{__scopePopper:o,virtualRef:r,...n}=t,i=Qv(L6,o),a=(0,Ke.useRef)(null),l=Pt(e,a);return(0,Ke.useEffect)(()=>{i.onAnchorChange(r?.current||a.current)}),r?null:(0,Ke.createElement)(it.div,be({},n,{ref:l}))}),rd="PopperContent",[D6,R6]=_p(rd),[N6,O6]=_p(rd,{hasParent:!1,positionUpdateFns:new Set}),B6=(0,Ke.forwardRef)((t,e)=>{var o,r,n,i,a,l,c,s;let{__scopePopper:m,side:d="bottom",sideOffset:p=0,align:u="center",alignOffset:b=0,arrowPadding:x=0,collisionBoundary:y=[],collisionPadding:w=0,sticky:k="partial",hideWhenDetached:T=!1,avoidCollisions:I=!0,onPlaced:A,..._}=t,M=Qv(rd,m),[L,W]=(0,Ke.useState)(null),B=Pt(e,hi=>W(hi)),[Y,O]=(0,Ke.useState)(null),z=qv(Y),ne=(o=z?.width)!==null&&o!==void 0?o:0,Q=(r=z?.height)!==null&&r!==void 0?r:0,xe=d+(u!=="center"?"-"+u:""),Ee=typeof w=="number"?w:{top:0,right:0,bottom:0,left:0,...w},de=Array.isArray(y)?y:[y],se=de.length>0,P={padding:Ee,boundary:de.filter(U6),altBoundary:se},{reference:R,floating:G,strategy:K,x:V,y:Z,placement:q,middlewareData:te,update:ct}=Yv({strategy:"fixed",placement:xe,whileElementsMounted:Gv,middleware:[W6(),yp({mainAxis:p+Q,alignmentAxis:b}),I?Ep({mainAxis:!0,crossAxis:!1,limiter:k==="partial"?wp():void 0,...P}):void 0,Y?Zv({element:Y,padding:x}):void 0,I?xp({...P}):void 0,Tp({...P,apply:({elements:hi,availableWidth:f5,availableHeight:h5})=>{hi.floating.style.setProperty("--radix-popper-available-width",`${f5}px`),hi.floating.style.setProperty("--radix-popper-available-height",`${h5}px`)}}),G6({arrowWidth:ne,arrowHeight:Q}),T?vp({strategy:"referenceHidden"}):void 0].filter(z6)});Co(()=>{R(M.anchor)},[R,M.anchor]);let Je=V!==null&&Z!==null,[rt,He]=e2(q),Vt=jt(A);Co(()=>{Je&&Vt?.()},[Je,Vt]);let ws=(n=te.arrow)===null||n===void 0?void 0:n.x,c5=(i=te.arrow)===null||i===void 0?void 0:i.y,d5=((a=te.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[m5,u5]=(0,Ke.useState)();Co(()=>{L&&u5(window.getComputedStyle(L).zIndex)},[L]);let{hasParent:p5,positionUpdateFns:fi}=O6(rd,m),Ua=!p5;(0,Ke.useLayoutEffect)(()=>{if(!Ua)return fi.add(ct),()=>{fi.delete(ct)}},[Ua,fi,ct]),Co(()=>{Ua&&Je&&Array.from(fi).reverse().forEach(hi=>requestAnimationFrame(hi))},[Ua,Je,fi]);let jh={"data-side":rt,"data-align":He,..._,ref:B,style:{..._.style,animation:Je?void 0:"none",opacity:(l=te.hide)!==null&&l!==void 0&&l.referenceHidden?0:void 0}};return(0,Ke.createElement)("div",{ref:G,"data-radix-popper-content-wrapper":"",style:{position:K,left:0,top:0,transform:Je?`translate3d(${Math.round(V)}px, ${Math.round(Z)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:m5,"--radix-popper-transform-origin":[(c=te.transformOrigin)===null||c===void 0?void 0:c.x,(s=te.transformOrigin)===null||s===void 0?void 0:s.y].join(" ")},dir:t.dir},(0,Ke.createElement)(D6,{scope:m,placedSide:rt,onArrowChange:O,arrowX:ws,arrowY:c5,shouldHideArrow:d5},Ua?(0,Ke.createElement)(N6,{scope:m,hasParent:!0,positionUpdateFns:fi},(0,Ke.createElement)(it.div,jh)):(0,Ke.createElement)(it.div,jh)))}),F6="PopperArrow",$6={top:"bottom",right:"left",bottom:"top",left:"right"},H6=(0,Ke.forwardRef)(function(e,o){let{__scopePopper:r,...n}=e,i=R6(F6,r),a=$6[i.placedSide];return(0,Ke.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,Ke.createElement)(jv,be({},n,{ref:o,style:{...n.style,display:"block"}})))});function z6(t){return t!==void 0}function U6(t){return t!==null}var W6=()=>({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`),{}}}),G6=t=>({name:"transformOrigin",options:t,fn(e){var o,r,n,i,a;let{placement:l,rects:c,middlewareData:s}=e,d=((o=s.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,p=d?0:t.arrowWidth,u=d?0:t.arrowHeight,[b,x]=e2(l),y={start:"0%",center:"50%",end:"100%"}[x],w=((r=(n=s.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+p/2,k=((i=(a=s.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+u/2,T="",I="";return b==="bottom"?(T=d?y:`${w}px`,I=`${-u}px`):b==="top"?(T=d?y:`${w}px`,I=`${c.floating.height+u}px`):b==="right"?(T=`${-u}px`,I=d?y:`${k}px`):b==="left"&&(T=`${c.floating.width+u}px`,I=d?y:`${k}px`),{data:{x:T,y:I}}}});function e2(t){let[e,o="center"]=t.split("-");return[e,o]}var t2=A6,o2=P6,r2=B6,n2=H6;h();var nd=v($()),i2=v(ir());var a2=(0,nd.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?i2.default.createPortal((0,nd.createElement)(it.div,be({},n,{ref:e})),r):null});h();var Ft=v($()),l2=v(ir());function V6(t,e){return(0,Ft.useReducer)((o,r)=>{let n=e[o][r];return n??o},t)}var aa=t=>{let{present:e,children:o}=t,r=K6(e),n=typeof o=="function"?o({present:r.isPresent}):Ft.Children.only(o),i=Pt(r.ref,n.ref);return typeof o=="function"||r.isPresent?(0,Ft.cloneElement)(n,{ref:i}):null};aa.displayName="Presence";function K6(t){let[e,o]=(0,Ft.useState)(),r=(0,Ft.useRef)({}),n=(0,Ft.useRef)(t),i=(0,Ft.useRef)("none"),a=t?"mounted":"unmounted",[l,c]=V6(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Ft.useEffect)(()=>{let s=id(r.current);i.current=l==="mounted"?s:"none"},[l]),Co(()=>{let s=r.current,m=n.current;if(m!==t){let p=i.current,u=id(s);t?c("MOUNT"):u==="none"||s?.display==="none"?c("UNMOUNT"):c(m&&p!==u?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,c]),Co(()=>{if(e){let s=d=>{let u=id(r.current).includes(d.animationName);d.target===e&&u&&(0,l2.flushSync)(()=>c("ANIMATION_END"))},m=d=>{d.target===e&&(i.current=id(r.current))};return e.addEventListener("animationstart",m),e.addEventListener("animationcancel",s),e.addEventListener("animationend",s),()=>{e.removeEventListener("animationstart",m),e.removeEventListener("animationcancel",s),e.removeEventListener("animationend",s)}}else c("ANIMATION_END")},[e,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,Ft.useCallback)(s=>{s&&(r.current=getComputedStyle(s)),o(s)},[])}}function id(t){return t?.animationName||"none"}h();var pn=v($());function la({prop:t,defaultProp:e,onChange:o=()=>{}}){let[r,n]=Y6({defaultProp:e,onChange:o}),i=t!==void 0,a=i?t:r,l=jt(o),c=(0,pn.useCallback)(s=>{if(i){let d=typeof s=="function"?s(t):s;d!==t&&l(d)}else n(s)},[i,t,n,l]);return[a,c]}function Y6({defaultProp:t,onChange:e}){let o=(0,pn.useState)(t),[r]=o,n=(0,pn.useRef)(r),i=jt(e);return(0,pn.useEffect)(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),o}h();var Z6=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},sa=new WeakMap,ad=new WeakMap,ld={},Ap=0,s2=function(t){return t&&(t.host||s2(t.parentNode))},j6=function(t,e){return e.map(function(o){if(t.contains(o))return o;var r=s2(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})},X6=function(t,e,o,r){var n=j6(e,Array.isArray(t)?t:[t]);ld[o]||(ld[o]=new WeakMap);var i=ld[o],a=[],l=new Set,c=new Set(n),s=function(d){!d||l.has(d)||(l.add(d),s(d.parentNode))};n.forEach(s);var m=function(d){!d||c.has(d)||Array.prototype.forEach.call(d.children,function(p){if(l.has(p))m(p);else{var u=p.getAttribute(r),b=u!==null&&u!=="false",x=(sa.get(p)||0)+1,y=(i.get(p)||0)+1;sa.set(p,x),i.set(p,y),a.push(p),x===1&&b&&ad.set(p,!0),y===1&&p.setAttribute(o,"true"),b||p.setAttribute(r,"true")}})};return m(e),l.clear(),Ap++,function(){a.forEach(function(d){var p=sa.get(d)-1,u=i.get(d)-1;sa.set(d,p),i.set(d,u),p||(ad.has(d)||d.removeAttribute(r),ad.delete(d)),u||d.removeAttribute(o)}),Ap--,Ap||(sa=new WeakMap,sa=new WeakMap,ad=new WeakMap,ld={})}},c2=function(t,e,o){o===void 0&&(o="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||Z6(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),X6(r,n,o,"aria-hidden")):function(){return null}};h();h();h();var cr=function(){return cr=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},cr.apply(this,arguments)};function d2(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 m2(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 md=v($());h();var $t=v($());h();var Vn="right-scroll-bar-position",Kn="width-before-scroll-bar",Lp="with-scroll-bars-hidden",Pp="--removed-body-scroll-bar-size";h();h();function u2(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}h();var p2=v($());function f2(t,e){var o=(0,p2.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();function Dp(t,e){return f2(e||null,function(o){return t.forEach(function(r){return u2(r,o)})})}h();h();h();var ca=function(){return ca=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},ca.apply(this,arguments)};function h2(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}h();function q6(t){return t}function J6(t,e){e===void 0&&(e=q6);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 c=function(){var m=a;a=[],m.forEach(i)},s=function(){return Promise.resolve().then(c)};s(),o={push:function(m){a.push(m),s()},filter:function(m){return a=a.filter(m),o}}}};return n}function Rp(t){t===void 0&&(t={});var e=J6(null);return e.options=ca({async:!0,ssr:!1},t),e}h();var g2=v($()),b2=function(t){var e=t.sideCar,o=h2(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 g2.createElement(r,ca({},o))};b2.isSideCarExport=!0;function Np(t,e){return t.useMedium(e),b2}var sd=Rp();var Op=function(){},Al=$t.forwardRef(function(t,e){var o=$t.useRef(null),r=$t.useState({onScrollCapture:Op,onWheelCapture:Op,onTouchMoveCapture:Op}),n=r[0],i=r[1],a=t.forwardProps,l=t.children,c=t.className,s=t.removeScrollBar,m=t.enabled,d=t.shards,p=t.sideCar,u=t.noIsolation,b=t.inert,x=t.allowPinchZoom,y=t.as,w=y===void 0?"div":y,k=d2(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),T=p,I=Dp([o,e]),A=cr(cr({},k),n);return $t.createElement($t.Fragment,null,m&&$t.createElement(T,{sideCar:sd,removeScrollBar:s,shards:d,noIsolation:u,inert:b,setCallbacks:i,allowPinchZoom:!!x,lockRef:o}),a?$t.cloneElement($t.Children.only(l),cr(cr({},A),{ref:I})):$t.createElement(w,cr({},A,{className:c,ref:I}),l))});Al.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Al.classNames={fullWidth:Kn,zeroRight:Vn};h();h();var Ye=v($());h();h();var cd=v($());h();h();h();var y2=v($());h();h();var x2;var v2=function(){if(x2)return x2;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Q6(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=v2();return e&&t.setAttribute("nonce",e),t}function e4(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function t4(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var Bp=function(){var t=0,e=null;return{add:function(o){t==0&&(e=Q6())&&(e4(e,o),t4(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var Fp=function(){var t=Bp();return function(e,o){y2.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&o])}};var Ll=function(){var t=Fp(),e=function(o){var r=o.styles,n=o.dynamic;return t(r,n),null};return e};h();var o4={left:0,top:0,right:0,gap:0},$p=function(t){return parseInt(t||"",10)||0},r4=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[$p(o),$p(r),$p(n)]},Hp=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return o4;var e=r4(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 n4=Ll(),i4=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(Lp,` {
|
|
3
3
|
overflow: hidden `).concat(r,`;
|
|
4
4
|
padding-right: `).concat(l,"px ").concat(r,`;
|
|
5
5
|
}
|
|
@@ -33,22 +33,22 @@ import{$ as jm,$a as Rs,$b as Ti,$c as l1,$d as Di,$e as Z1,$f as he,A as Ua,Aa
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
body {
|
|
36
|
-
`).concat(
|
|
36
|
+
`).concat(Pp,": ").concat(l,`px;
|
|
37
37
|
}
|
|
38
|
-
`)},
|
|
38
|
+
`)},zp=function(t){var e=t.noRelative,o=t.noImportant,r=t.gapMode,n=r===void 0?"margin":r,i=cd.useMemo(function(){return Hp(n)},[n]);return cd.createElement(n4,{styles:i4(i,!e,n,o?"":"!important")})};h();var Up=!1;if(typeof window<"u")try{Pl=Object.defineProperty({},"passive",{get:function(){return Up=!0,!0}}),window.addEventListener("test",Pl,Pl),window.removeEventListener("test",Pl,Pl)}catch{Up=!1}var Pl,Yn=Up?{passive:!1}:!1;h();var a4=function(t){return t.tagName==="TEXTAREA"},E2=function(t,e){var o=window.getComputedStyle(t);return o[e]!=="hidden"&&!(o.overflowY===o.overflowX&&!a4(t)&&o[e]==="visible")},l4=function(t){return E2(t,"overflowY")},s4=function(t){return E2(t,"overflowX")},Wp=function(t,e){var o=e;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=w2(t,o);if(r){var n=T2(t,o),i=n[1],a=n[2];if(i>a)return!0}o=o.parentNode}while(o&&o!==document.body);return!1},c4=function(t){var e=t.scrollTop,o=t.scrollHeight,r=t.clientHeight;return[e,o,r]},d4=function(t){var e=t.scrollLeft,o=t.scrollWidth,r=t.clientWidth;return[e,o,r]},w2=function(t,e){return t==="v"?l4(e):s4(e)},T2=function(t,e){return t==="v"?c4(e):d4(e)},m4=function(t,e){return t==="h"&&e==="rtl"?-1:1},C2=function(t,e,o,r,n){var i=m4(t,window.getComputedStyle(e).direction),a=i*r,l=o.target,c=e.contains(l),s=!1,m=a>0,d=0,p=0;do{var u=T2(t,l),b=u[0],x=u[1],y=u[2],w=x-y-i*b;(b||w)&&w2(t,l)&&(d+=w,p+=b),l=l.parentNode}while(!c&&l!==document.body||c&&(e.contains(l)||e===l));return(m&&(n&&d===0||!n&&a>d)||!m&&(n&&p===0||!n&&-a>p))&&(s=!0),s};var dd=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},S2=function(t){return[t.deltaX,t.deltaY]},k2=function(t){return t&&"current"in t?t.current:t},u4=function(t,e){return t[0]===e[0]&&t[1]===e[1]},p4=function(t){return`
|
|
39
39
|
.block-interactivity-`.concat(t,` {pointer-events: none;}
|
|
40
40
|
.allow-interactivity-`).concat(t,` {pointer-events: all;}
|
|
41
|
-
`)},t4=0,da=[];function b2(t){var e=Ye.useRef([]),o=Ye.useRef([0,0]),r=Ye.useRef(),n=Ye.useState(t4++)[0],i=Ye.useState(function(){return Il()})[0],a=Ye.useRef(t);Ye.useEffect(function(){a.current=t},[t]),Ye.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var x=t2([t.lockRef.current],(t.shards||[]).map(g2),!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=Ye.useCallback(function(x,y){if("touches"in x&&x.touches.length===2)return!a.current.allowPinchZoom;var w=rd(x),k=o.current,C="deltaX"in x?x.deltaX:k[0]-w[0],I="deltaY"in x?x.deltaY:k[1]-w[1],A,_=x.target,M=Math.abs(C)>Math.abs(I)?"h":"v";if("touches"in x&&M==="h"&&_.type==="range")return!1;var L=Dp(M,_);if(!L)return!0;if(L?A=M:(A=M==="v"?"h":"v",L=Dp(M,_)),!L)return!1;if(!r.current&&"changedTouches"in x&&(C||I)&&(r.current=A),!A)return!0;var W=r.current||A;return f2(W,y,x,W==="h"?C:I,!0)},[]),c=Ye.useCallback(function(x){var y=x;if(!(!da.length||da[da.length-1]!==i)){var w="deltaY"in y?h2(y):rd(y),k=e.current.filter(function(A){return A.name===y.type&&A.target===y.target&&Q6(A.delta,w)})[0];if(k&&k.should){y.cancelable&&y.preventDefault();return}if(!k){var C=(a.current.shards||[]).map(g2).filter(Boolean).filter(function(A){return A.contains(y.target)}),I=C.length>0?l(y,C[0]):!a.current.noIsolation;I&&y.cancelable&&y.preventDefault()}}},[]),s=Ye.useCallback(function(x,y,w,k){var C={name:x,delta:y,target:w,should:k};e.current.push(C),setTimeout(function(){e.current=e.current.filter(function(I){return I!==C})},1)},[]),m=Ye.useCallback(function(x){o.current=rd(x),r.current=void 0},[]),d=Ye.useCallback(function(x){s(x.type,h2(x),x.target,l(x,t.lockRef.current))},[]),p=Ye.useCallback(function(x){s(x.type,rd(x),x.target,l(x,t.lockRef.current))},[]);Ye.useEffect(function(){return da.push(i),t.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:p}),document.addEventListener("wheel",c,Yn),document.addEventListener("touchmove",c,Yn),document.addEventListener("touchstart",m,Yn),function(){da=da.filter(function(x){return x!==i}),document.removeEventListener("wheel",c,Yn),document.removeEventListener("touchmove",c,Yn),document.removeEventListener("touchstart",m,Yn)}},[]);var u=t.removeScrollBar,b=t.inert;return Ye.createElement(Ye.Fragment,null,b?Ye.createElement(i,{styles:e4(n)}):null,u?Ye.createElement(Lp,{gapMode:"margin"}):null)}var x2=Sp(td,b2);var v2=nd.forwardRef(function(t,e){return nd.createElement(kl,sr({},t,{ref:e,sideCar:x2}))});v2.classNames=kl.classNames;var Rp=v2;var y2="Popover",[E2,TA]=ar(y2,[vp]),id=vp(),[o4,ma]=E2(y2),r4=t=>{let{__scopePopover:e,children:o,open:r,defaultOpen:n,onOpenChange:i,modal:a=!1}=t,l=id(e),c=(0,ve.useRef)(null),[s,m]=(0,ve.useState)(!1),[d=!1,p]=la({prop:r,defaultProp:n,onChange:i});return(0,ve.createElement)(Vv,l,(0,ve.createElement)(o4,{scope:e,contentId:ra(),triggerRef:c,open:d,onOpenChange:p,onOpenToggle:(0,ve.useCallback)(()=>p(u=>!u),[p]),hasCustomAnchor:s,onCustomAnchorAdd:(0,ve.useCallback)(()=>m(!0),[]),onCustomAnchorRemove:(0,ve.useCallback)(()=>m(!1),[]),modal:a},o))};var n4="PopoverTrigger",i4=(0,ve.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=ma(n4,o),i=id(o),a=Pt(e,n.triggerRef),l=(0,ve.createElement)(it.button,be({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":T2(n.open)},r,{ref:a,onClick:bt(t.onClick,n.onOpenToggle)}));return n.hasCustomAnchor?l:(0,ve.createElement)(Kv,be({asChild:!0},i),l)}),w2="PopoverPortal",[a4,l4]=E2(w2,{forceMount:void 0}),s4=t=>{let{__scopePopover:e,forceMount:o,children:r,container:n}=t,i=ma(w2,e);return(0,ve.createElement)(a4,{scope:e,forceMount:o},(0,ve.createElement)(aa,{present:o||i.open},(0,ve.createElement)(Xv,{asChild:!0,container:n},r)))},Ml="PopoverContent",c4=(0,ve.forwardRef)((t,e)=>{let o=l4(Ml,t.__scopePopover),{forceMount:r=o.forceMount,...n}=t,i=ma(Ml,t.__scopePopover);return(0,ve.createElement)(aa,{present:r||i.open},i.modal?(0,ve.createElement)(d4,be({},n,{ref:e})):(0,ve.createElement)(m4,be({},n,{ref:e})))}),d4=(0,ve.forwardRef)((t,e)=>{let o=ma(Ml,t.__scopePopover),r=(0,ve.useRef)(null),n=Pt(e,r),i=(0,ve.useRef)(!1);return(0,ve.useEffect)(()=>{let a=r.current;if(a)return Qv(a)},[]),(0,ve.createElement)(Rp,{as:dn,allowPinchZoom:!0},(0,ve.createElement)(C2,be({},t,{ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:bt(t.onCloseAutoFocus,a=>{var l;a.preventDefault(),i.current||(l=o.triggerRef.current)===null||l===void 0||l.focus()}),onPointerDownOutside:bt(t.onPointerDownOutside,a=>{let l=a.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,s=l.button===2||c;i.current=s},{checkForDefaultPrevented:!1}),onFocusOutside:bt(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),m4=(0,ve.forwardRef)((t,e)=>{let o=ma(Ml,t.__scopePopover),r=(0,ve.useRef)(!1);return(0,ve.createElement)(C2,be({},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()}}))}),C2=(0,ve.forwardRef)((t,e)=>{let{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:s,onInteractOutside:m,...d}=t,p=ma(Ml,o),u=id(o);return lv(),(0,ve.createElement)(uv,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},(0,ve.createElement)(rv,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:m,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:s,onDismiss:()=>p.onOpenChange(!1)},(0,ve.createElement)(Yv,be({"data-state":T2(p.open),role:"dialog",id:p.contentId},u,d,{ref:e,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var u4=(0,ve.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=id(o);return(0,ve.createElement)(Zv,be({},n,r,{ref:e}))});function T2(t){return t?"open":"closed"}var ad=r4;var ld=i4,S2=s4,sd=c4;var k2=u4;h();var Uo=v($(),1);h();var md=v($(),1),A2=v(nr(),1);h();var Np=v($(),1),Op=Np.default.createContext(null),Ae=()=>Np.default.useContext(Op);h();var Al=v($(),1);var cd=t=>{let[e,o]=(0,Al.useState)(null),r=ke(),{theme:n}=Ae(),{container:i}=Tt();return(0,Al.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==="dark"))},[e,n,r.editor.isMobile,t?.className]),(0,Al.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 _2=v($(),1);function ua(t,e,o){(0,_2.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 M2=v($(),1),dd=t=>{let e=(0,M2.useRef)(t);return Object.assign(e.current,t),e.current};var P2=v(T(),1),fn=Ve(null),L2=({onCancel:t,onChange:e,onSelect:o,colorPickerType:r})=>{let n=cd({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),i=Ae(),a=hn(),l=So(),c=Se(a,i),s=dd({app:l,onCancel:t,onChange:e,onSelect:o,selectedElements:c}),{container:m}=Tt();(0,md.useEffect)(()=>{let p=d.current;if(!p||!l.canvas||!n)return;let u=!1,b=l.canvas.getContext("2d"),x=({clientX:_,clientY:M})=>{let L=b.getImageData((_-i.offsetLeft)*window.devicePixelRatio,(M-i.offsetTop)*window.devicePixelRatio,1,1).data;return Zh(L[0],L[1],L[2])},y=({clientX:_,clientY:M,altKey:L})=>{p.style.top=`${M+20}px`,p.style.left=`${_+20}px`;let W=x({clientX:_,clientY:M});u&&s.onChange(r,W,s.selectedElements,{altKey:L}),p.style.background=W},w=()=>{s.onCancel()},k=(_,M)=>{s.onSelect(_,M)},C=_=>{u=!0,_.stopImmediatePropagation()},I=_=>{u=!1,m?.focus(),_.stopImmediatePropagation(),_.preventDefault(),k(x(_),_)},A=_=>{_.key===S.ESCAPE&&(_.preventDefault(),_.stopImmediatePropagation(),w())};return n.tabIndex=-1,n.focus(),y({clientX:s.app.lastViewportPosition.x,clientY:s.app.lastViewportPosition.y,altKey:!1}),n.addEventListener("keydown",A),n.addEventListener("pointerdown",C),n.addEventListener("pointerup",I),window.addEventListener("pointermove",y,{passive:!0}),window.addEventListener("blur",w),()=>{u=!1,n.removeEventListener("keydown",A),n.removeEventListener("pointerdown",C),n.removeEventListener("pointerup",I),window.removeEventListener("pointermove",y),window.removeEventListener("blur",w)}},[s,l.canvas,n,r,m,i.offsetLeft,i.offsetTop]);let d=(0,md.useRef)(null);return ua(d,()=>{t()},p=>!!p.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),n?(0,A2.createPortal)((0,P2.jsx)("div",{ref:d,className:"excalidraw-eye-dropper-preview"}),n):null};var cr=v(T(),1),D2=({color:t,onChange:e,label:o,colorPickerType:r})=>{let n=ke(),[i,a]=(0,Uo.useState)(t),[l,c]=Ce(Co);(0,Uo.useEffect)(()=>{a(t)},[t]);let s=(0,Uo.useCallback)(b=>{let x=b.toLowerCase(),y=R2(x);y&&e(y),a(x)},[e]),m=(0,Uo.useRef)(null),d=(0,Uo.useRef)(null);(0,Uo.useEffect)(()=>{m.current&&m.current.focus()},[l]);let[p,u]=Ce(fn,Me);return(0,Uo.useEffect)(()=>()=>{u(null)},[u]),(0,cr.jsxs)("div",{className:"color-picker__input-label",children:[(0,cr.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,cr.jsx)("input",{ref:l==="hex"?m:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":o,onChange:b=>{s(b.target.value)},value:(i||"").replace(/^#/,""),onBlur:()=>{a(t)},tabIndex:-1,onFocus:()=>c("hex"),onKeyDown:b=>{b.key!==S.TAB&&(b.key===S.ESCAPE&&d.current?.focus(),b.stopPropagation())}}),!n.editor.isMobile&&(0,cr.jsxs)(cr.Fragment,{children:[(0,cr.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,cr.jsx)("div",{ref:d,className:F("excalidraw-eye-dropper-trigger",{selected:p}),onClick:()=>u(b=>b?null:{keepOpenOnAlt:!1,onSelect:x=>e(x),colorPickerType:r}),title:`${g("labels.eyeDropper")} \u2014 ${S.I.toLocaleUpperCase()} or ${N("Alt")} `,children:bx})]})]})};var O2=v($(),1);var St=v(T(),1),N2=t=>{let e=new Option().style;return e.color=t,!!e.color},R2=t=>Nn(t)?t:N2(`#${t}`)?`#${t}`:N2(t)?t:null,p4=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=br,updateData:a})=>{let[,l]=Ce(Co),[c,s]=Ce(fn,Me),{container:m}=Tt(),d=ke(),p=(0,St.jsxs)("div",{children:[(0,St.jsx)(ea,{children:g("colorPicker.hexCode")}),(0,St.jsx)(D2,{color:e,label:r,onChange:x=>{o(x)},colorPickerType:t})]}),u=(0,O2.useRef)(null),b=()=>{u.current?.querySelector(".color-picker-content")?.focus()};return(0,St.jsx)(S2,{container:m,children:(0,St.jsxs)(sd,{ref:u,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:x=>{b(),x.preventDefault()},onPointerDownOutside:x=>{c&&x.preventDefault()},onCloseAutoFocus:x=>{x.stopPropagation(),x.preventDefault(),m&&!wg(document.activeElement)&&m.focus(),a({openPopup:null}),l(null)},side:d.editor.isMobile&&!d.viewport.isLandscape?"bottom":"right",align:d.editor.isMobile&&!d.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,St.jsx)(jx,{palette:i,color:e,onChange:x=>{o(x)},onEyeDropperToggle:x=>{s(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=>{c?s(null):Jo(x.target)?b():a({openPopup:null})},label:r,type:t,elements:n,updateData:a,children:p}):p,(0,St.jsx)(k2,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},f4=({label:t,color:e,type:o})=>(0,St.jsx)(ld,{type:"button",className:F("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,St.jsx)("div",{className:"color-picker__button-outline"})}),Ll=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=br,topPicks:a,updateData:l,appState:c})=>(0,St.jsx)("div",{children:(0,St.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,St.jsx)($x,{activeColor:e,onChange:o,type:t,topPicks:a}),(0,St.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,St.jsxs)(ad,{open:c.openPopup===t,onOpenChange:s=>{l({openPopup:s?t:null})},children:[(0,St.jsx)(f4,{color:e,label:r,type:t}),c.openPopup===t&&(0,St.jsx)(p4,{type:t,color:e,onChange:o,label:r,elements:n,palette:i,updateData:l})]})]})});h();var bn=v($(),1);h();var gn=v($(),1);var B2=v(nr(),1);var F2=v(T(),1),ud=({children:t,left:e,top:o,onCloseRequest:r,fitInViewport:n=!1,offsetLeft:i=0,offsetTop:a=0,viewportWidth:l=window.innerWidth,viewportHeight:c=window.innerHeight})=>{let s=(0,gn.useRef)(null);(0,gn.useEffect)(()=>{let d=s.current;if(!d)return;d.contains(document.activeElement)||d.focus();let p=u=>{if(u.key===S.TAB){let b=Za(d),{activeElement:x}=document,y=b.findIndex(w=>w===x);x===d?(u.shiftKey?b[b.length-1]?.focus():b[0].focus(),u.preventDefault(),u.stopImmediatePropagation()):y===0&&u.shiftKey?(b[b.length-1]?.focus(),u.preventDefault(),u.stopImmediatePropagation()):y===b.length-1&&!u.shiftKey&&(b[0]?.focus(),u.preventDefault(),u.stopImmediatePropagation())}};return d.addEventListener("keydown",p),()=>d.removeEventListener("keydown",p)},[]);let m=(0,gn.useRef)(null);return(0,gn.useLayoutEffect)(()=>{if(n&&s.current&&o!=null&&e!=null){let d=s.current,{width:p,height:u}=d.getBoundingClientRect();if(m.current?.top===o&&m.current?.left===e)return;m.current={top:o,left:e},p>=l?(d.style.width=`${l}px`,d.style.left="0px",d.style.overflowX="scroll"):e+p-i>l?d.style.left=`${l-p-10}px`:d.style.left=`${e}px`,u>=c?(d.style.height=`${c-20}px`,d.style.top="10px",d.style.overflowY="scroll"):o+u-a>c?d.style.top=`${c-u}px`:d.style.top=`${o}px`}},[o,e,n,l,c,i,a]),(0,gn.useEffect)(()=>{if(r){let d=p=>{s.current?.contains(p.target)||(0,B2.unstable_batchedUpdates)(()=>r(p))};return document.addEventListener("pointerdown",d,!1),()=>document.removeEventListener("pointerdown",d,!1)}},[r]),(0,F2.jsx)("div",{className:"popover",ref:s,tabIndex:-1,children:t})};var Xt=v(T(),1);function h4({options:t,value:e,label:o,onChange:r,onClose:n}){let i=bn.default.useRef(),a=bn.default.useRef(),l=bn.default.useRef(null);return bn.default.useEffect(()=>{a.current?a.current.focus():l.current&&l.current.focus()},[]),(0,Xt.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":o,onKeyDown:s=>{let m=t.find(d=>d.keyBinding===s.key.toLowerCase());if(!(s.metaKey||s.altKey||s.ctrlKey)&&m){let d=t.indexOf(m);l.current.children[d].focus(),s.preventDefault()}else if(s.key===S.TAB)setTimeout(()=>{let d=a.current,p=document.activeElement;d!==p&&n()},0);else if(Si(s.key)){let{activeElement:d}=document,p=Pr().rtl,u=Array.prototype.indexOf.call(l.current.children,d);if(u!==-1){let b=t.length,x=u;switch(s.key){case(p?S.ARROW_LEFT:S.ARROW_RIGHT):case S.ARROW_DOWN:{x=(u+1)%b;break}case(p?S.ARROW_RIGHT:S.ARROW_LEFT):case S.ARROW_UP:{x=(b+u-1)%b;break}}l.current.children[x].focus()}s.preventDefault()}else(s.key===S.ESCAPE||s.key===S.ENTER)&&(s.preventDefault(),n());s.nativeEvent.stopImmediatePropagation(),s.stopPropagation()},children:(0,Xt.jsx)("div",{className:"picker-content",ref:l,children:t.map((s,m)=>(0,Xt.jsxs)("button",{className:F("picker-option",{active:e===s.value}),onClick:d=>{d.currentTarget.focus(),r(s.value)},title:`${s.text} ${s.keyBinding&&`\u2014 ${s.keyBinding.toUpperCase()}`}`,"aria-label":s.text||"none","aria-keyshortcuts":s.keyBinding||void 0,ref:d=>{d&&m===0&&(i.current=d),d&&s.value===e&&(a.current=d)},onFocus:()=>{r(s.value)},children:[s.icon,s.keyBinding&&(0,Xt.jsx)("span",{className:"picker-keybinding",children:s.keyBinding})]},s.text))})})}function Bp({value:t,label:e,options:o,onChange:r,group:n=""}){let[i,a]=bn.default.useState(!1),l=bn.default.useRef(null),c=Pr().rtl;return(0,Xt.jsxs)("div",{children:[(0,Xt.jsx)("button",{name:n,className:i?"active":"","aria-label":e,onClick:()=>a(!i),ref:l,children:o.find(s=>s.value===t)?.icon}),(0,Xt.jsx)(bn.default.Suspense,{fallback:"",children:i?(0,Xt.jsxs)(Xt.Fragment,{children:[(0,Xt.jsx)(ud,{onCloseRequest:s=>s.target!==l.current&&a(!1),...c?{right:5.5}:{left:-5.5},children:(0,Xt.jsx)(h4,{options:o.filter(s=>s.showInPicker!==!1),value:t,label:e,onChange:r,onClose:()=>{a(!1),l.current?.focus()}})}),(0,Xt.jsx)("div",{className:"picker-triangle"})]}):null})]})}var re=v(T(),1),H2=.1,so=(t,e,o,r=!1)=>{let n=Be(Se(t,e,{includeBoundTextElement:r}));return t.map(i=>n.get(i.id)||i.id===e.editingElement?.id?o(i):i)},no=function(t,e,o,r,n){let i=e.editingElement,a=he(t),l=null;return i&&(l=o(i)),l||(Re(a,e)?l=hb(r===!0?a:a.filter(s=>r(s)),e,o)??(typeof n=="function"?n(!0):n):l=typeof n=="function"?n(!1):n),l},g4=(t,e)=>gt(e)?e:J(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),Fp=(t,e,o,r,n)=>{let i=new Set;return{elements:so(t,e,a=>{if(ie(a)){let l=r(a);i.add(l);let c=ce(a,{fontSize:l});return Bt(c,o.scene.getContainerElement(a),o.scene.getNonDeletedElementsMap()),c=g4(a,c),c}return a},!0),appState:{...e,currentItemFontSize:i.size===1?[...i][0]:n??e.currentItemFontSize},commitToHistory:!0}},b4=H({name:"changeStrokeColor",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemStrokeColor&&{elements:so(t,e,r=>el(r.type)?ce(r,{strokeColor:o.currentItemStrokeColor}):r,!0)},appState:{...e,...o},commitToHistory:!!o.currentItemStrokeColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)("h3",{"aria-hidden":"true",children:g("labels.stroke")}),(0,re.jsx)(Ll,{topPicks:bs,palette:Kh,type:"elementStroke",label:g("labels.stroke"),color:no(t,e,n=>n.strokeColor,!0,e.currentItemStrokeColor),onChange:n=>o({currentItemStrokeColor:n}),elements:t,appState:e,updateData:o})]})}),x4=H({name:"changeBackgroundColor",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemBackgroundColor&&{elements:so(t,e,r=>ce(r,{backgroundColor:o.currentItemBackgroundColor}))},appState:{...e,...o},commitToHistory:!!o.currentItemBackgroundColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)("h3",{"aria-hidden":"true",children:g("labels.background")}),(0,re.jsx)(Ll,{topPicks:xs,palette:Yh,type:"elementBackground",label:g("labels.background"),color:no(t,e,n=>n.backgroundColor,!0,e.currentItemBackgroundColor),onChange:n=>o({currentItemBackgroundColor:n}),elements:t,appState:e,updateData:o})]})}),v4=H({name:"changeFillStyle",trackEvent:!1,perform:(t,e,o,r)=>(ge("element","changeFillStyle",`${o} (${r.device.editor.isMobile?"mobile":"desktop"})`),{elements:so(t,e,n=>ce(n,{fillStyle:o})),appState:{...e,currentItemFillStyle:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Se(t,e),n=r.length>0&&r.every(i=>i.fillStyle==="zigzag");return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.fill")}),(0,re.jsx)(ir,{type:"button",options:[{value:"hachure",text:`${n?g("labels.zigzag"):g("labels.hachure")} (${N("Alt-Click")})`,icon:n?R0:N0,active:n?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:g("labels.crossHatch"),icon:O0,testId:"fill-cross-hatch"},{value:"solid",text:g("labels.solid"),icon:B0,testId:"fill-solid"}],value:no(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(c=>c.fillStyle==="hachure")?"zigzag":i;o(l)}})]})}}),y4=H({name:"changeStrokeWidth",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{strokeWidth:o})),appState:{...e,currentItemStrokeWidth:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.strokeWidth")}),(0,re.jsx)(ir,{group:"stroke-width",options:[{value:_s.thin,text:g("labels.thin"),icon:Uu,testId:"strokeWidth-thin"},{value:_s.bold,text:g("labels.bold"),icon:F0,testId:"strokeWidth-bold"},{value:_s.extraBold,text:g("labels.extraBold"),icon:$0,testId:"strokeWidth-extraBold"}],value:no(t,e,r=>r.strokeWidth,r=>r.hasOwnProperty("strokeWidth"),r=>r?null:e.currentItemStrokeWidth),onChange:r=>o(r)})]})}),E4=H({name:"changeSloppiness",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{seed:Bg(),roughness:o})),appState:{...e,currentItemRoughness:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.sloppiness")}),(0,re.jsx)(ir,{group:"sloppiness",options:[{value:0,text:g("labels.architect"),icon:U0},{value:1,text:g("labels.artist"),icon:W0},{value:2,text:g("labels.cartoonist"),icon:G0}],value:no(t,e,r=>r.roughness,r=>r.hasOwnProperty("roughness"),r=>r?null:e.currentItemRoughness),onChange:r=>o(r)})]})}),fP=H({name:"changeStrokeStyle",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{strokeStyle:o})),appState:{...e,currentItemStrokeStyle:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.strokeStyle")}),(0,re.jsx)(ir,{group:"strokeStyle",options:[{value:"solid",text:g("labels.strokeStyle_solid"),icon:Uu},{value:"dashed",text:g("labels.strokeStyle_dashed"),icon:H0},{value:"dotted",text:g("labels.strokeStyle_dotted"),icon:z0}],value:no(t,e,r=>r.strokeStyle,r=>r.hasOwnProperty("strokeStyle"),r=>r?null:e.currentItemStrokeStyle),onChange:r=>o(r)})]})}),w4=H({name:"changeOpacity",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{opacity:o}),!0),appState:{...e,currentItemOpacity:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("label",{className:"control-label",children:[g("labels.opacity"),(0,re.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:r=>o(+r.target.value),value:no(t,e,r=>r.opacity,!0,e.currentItemOpacity)??void 0})]})}),C4=H({name:"changeFontSize",trackEvent:!1,perform:(t,e,o,r)=>Fp(t,e,r,()=>o,o),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.fontSize")}),(0,re.jsx)(ir,{group:"font-size",options:[{value:16,text:g("labels.small"),icon:tx,testId:"fontSize-small"},{value:20,text:g("labels.medium"),icon:ox,testId:"fontSize-medium"},{value:28,text:g("labels.large"),icon:rx,testId:"fontSize-large"},{value:36,text:g("labels.veryLarge"),icon:nx,testId:"fontSize-veryLarge"}],value:no(t,e,n=>{if(ie(n))return n.fontSize;let i=nt(n,r.scene.getNonDeletedElementsMap());return i?i.fontSize:null},n=>ie(n)||nt(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:e.currentItemFontSize||xr),onChange:n=>o(n)})]})}),$p=H({name:"decreaseFontSize",trackEvent:!1,perform:(t,e,o,r)=>Fp(t,e,r,n=>Math.round(1/(1+H2)*n.fontSize)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_LEFT||t.key===S.COMMA)}),Hp=H({name:"increaseFontSize",trackEvent:!1,perform:(t,e,o,r)=>Fp(t,e,r,n=>Math.round(n.fontSize*(1+H2))),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_RIGHT||t.key===S.PERIOD)}),T4=H({name:"changeFontFamily",trackEvent:!1,perform:(t,e,o,r)=>({elements:so(t,e,n=>{if(ie(n)){let i=ce(n,{fontFamily:o,lineHeight:Tr(o)});return Bt(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemFontFamily:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=[{value:Wa.Virgil,text:g("labels.handDrawn"),icon:Vi,testId:"font-family-virgil"},{value:Wa.Helvetica,text:g("labels.normal"),icon:ix,testId:"font-family-normal"},{value:Wa.Cascadia,text:g("labels.code"),icon:ax,testId:"font-family-code"}];return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.fontFamily")}),(0,re.jsx)(ir,{group:"font-family",options:n,value:no(t,e,i=>{if(ie(i))return i.fontFamily;let a=nt(i,r.scene.getNonDeletedElementsMap());return a?a.fontFamily:null},i=>ie(i)||nt(i,r.scene.getNonDeletedElementsMap())!==null,i=>i?null:e.currentItemFontFamily||gi),onChange:i=>o(i)})]})}}),S4=H({name:"changeTextAlign",trackEvent:!1,perform:(t,e,o,r)=>({elements:so(t,e,n=>{if(ie(n)){let i=ce(n,{textAlign:o});return Bt(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemTextAlign:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=r.scene.getNonDeletedElementsMap();return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.textAlign")}),(0,re.jsx)(ir,{group:"text-align",options:[{value:"left",text:g("labels.left"),icon:lx,testId:"align-left"},{value:"center",text:g("labels.center"),icon:sx,testId:"align-horizontal-center"},{value:"right",text:g("labels.right"),icon:cx,testId:"align-right"}],value:no(t,e,i=>{if(ie(i))return i.textAlign;let a=nt(i,n);return a?a.textAlign:null},i=>ie(i)||nt(i,n)!==null,i=>i?null:e.currentItemTextAlign),onChange:i=>o(i)})]})}}),k4=H({name:"changeVerticalAlign",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:so(t,e,n=>{if(ie(n)){let i=ce(n,{verticalAlign:o});return Bt(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,re.jsx)("fieldset",{children:(0,re.jsx)(ir,{group:"text-align",options:[{value:fo.TOP,text:g("labels.alignTop"),icon:(0,re.jsx)(dx,{theme:e.theme}),testId:"align-top"},{value:fo.MIDDLE,text:g("labels.centerVertically"),icon:(0,re.jsx)(ux,{theme:e.theme}),testId:"align-middle"},{value:fo.BOTTOM,text:g("labels.alignBottom"),icon:(0,re.jsx)(mx,{theme:e.theme}),testId:"align-bottom"}],value:no(t,e,n=>{if(ie(n)&&n.containerId)return n.verticalAlign;let i=nt(n,r.scene.getNonDeletedElementsMap());return i?i.verticalAlign:null},n=>ie(n)||nt(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:fo.MIDDLE),onChange:n=>o(n)})})}),hP=H({name:"changeRoundness",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{roundness:o==="round"?{type:Ci(r.type)?ho.ADAPTIVE_RADIUS:ho.PROPORTIONAL_RADIUS}:null})),appState:{...e,currentItemRoundness:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let n=zi(he(t),e).some(i=>i.roundness?.type===ho.LEGACY);return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.edges")}),(0,re.jsx)(ir,{group:"edges",options:[{value:"sharp",text:g("labels.sharp"),icon:V0},{value:"round",text:g("labels.round"),icon:K0}],value:no(t,e,i=>n?null:i.roundness?"round":"sharp",i=>i.hasOwnProperty("roundness"),i=>i?null:e.currentItemRoundness),onChange:i=>o(i)})]})}}),$2=t=>[{value:null,text:g("labels.arrowhead_none"),keyBinding:"q",icon:Y0},{value:"arrow",text:g("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,re.jsx)(Z0,{flip:t})},{value:"bar",text:g("labels.arrowhead_bar"),keyBinding:"e",icon:(0,re.jsx)(X0,{flip:t})},{value:"dot",text:g("labels.arrowhead_circle"),keyBinding:null,icon:(0,re.jsx)(Wu,{flip:t}),showInPicker:!1},{value:"circle",text:g("labels.arrowhead_circle"),keyBinding:"r",icon:(0,re.jsx)(Wu,{flip:t}),showInPicker:!1},{value:"circle_outline",text:g("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,re.jsx)(j0,{flip:t}),showInPicker:!1},{value:"triangle",text:g("labels.arrowhead_triangle"),icon:(0,re.jsx)(q0,{flip:t}),keyBinding:"t"},{value:"triangle_outline",text:g("labels.arrowhead_triangle_outline"),icon:(0,re.jsx)(J0,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond",text:g("labels.arrowhead_diamond"),icon:(0,re.jsx)(Q0,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:g("labels.arrowhead_diamond_outline"),icon:(0,re.jsx)(ex,{flip:t}),keyBinding:null,showInPicker:!1}],gP=H({name:"changeArrowhead",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>{if(Pe(r)){let{position:n,type:i}=o;if(n==="start")return ce(r,{startArrowhead:i});if(n==="end")return ce(r,{endArrowhead:i})}return r}),appState:{...e,[o.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:o.type},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Pr().rtl;return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.arrowheads")}),(0,re.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,re.jsx)(Bp,{label:"arrowhead_start",options:$2(!r),value:no(t,e,n=>Pe(n)&&Ti(n.type)?n.startArrowhead:e.currentItemStartArrowhead,!0,e.currentItemStartArrowhead),onChange:n=>o({position:"start",type:n})}),(0,re.jsx)(Bp,{label:"arrowhead_end",group:"arrowheads",options:$2(!!r),value:no(t,e,n=>Pe(n)&&Ti(n.type)?n.endArrowhead:e.currentItemEndArrowhead,!0,e.currentItemEndArrowhead),onChange:n=>o({position:"end",type:n})})]})]})}});h();h();var z2=v($(),1),U2=v(T(),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},zp=(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 c;o==="bottom"?(c=e.top+e.height+a,c+r.height>=i&&(c=e.top-r.height-a)):(c=e.top-r.height-a,c<0&&(c=e.top+e.height+a)),Object.assign(t.style,{top:`${c}px`,left:`${l}px`})},I4=(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();zp(e,n)},co=({children:t,label:e,long:o=!1,style:r,disabled:n})=>((0,z2.useEffect)(()=>()=>pa().classList.remove("excalidraw-tooltip--visible"),[]),n?null:(0,U2.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:i=>I4(i.currentTarget,pa(),e,o),onPointerLeave:()=>pa().classList.remove("excalidraw-tooltip--visible"),style:r,children:t}));var Zn=v(T(),1),_4=H({name:"changeViewBackgroundColor",trackEvent:!1,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.changeViewBackgroundColor&&!e.viewModeEnabled,perform:(t,e,o)=>({appState:{...e,...o},commitToHistory:!!o.viewBackgroundColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,Zn.jsx)(Ll,{palette:null,topPicks:vs,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})}),Pl=H({name:"clearCanvas",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=>ce(n,{isDeleted:!0})),appState:{...Mi(),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},commitToHistory:!0})}),pd=H({name:"zoomIn",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ar({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Mr(e.zoom.value+Pn)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t})=>(0,Zn.jsx)(ae,{type:"button",className:"zoom-in-button zoom-button",icon:Qb,title:`${g("buttons.zoomIn")} \u2014 ${N("CtrlOrCmd++")}`,"aria-label":g("buttons.zoomIn"),onClick:()=>{t(null)}}),keyTest:t=>(t.code===me.EQUAL||t.code===me.NUM_ADD)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),fd=H({name:"zoomOut",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ar({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Mr(e.zoom.value-Pn)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t})=>(0,Zn.jsx)(ae,{type:"button",className:"zoom-out-button zoom-button",icon:e0,title:`${g("buttons.zoomOut")} \u2014 ${N("CtrlOrCmd+-")}`,"aria-label":g("buttons.zoomOut"),onClick:()=>{t(null)}}),keyTest:t=>(t.code===me.MINUS||t.code===me.NUM_SUBTRACT)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),M4=H({name:"resetZoom",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ar({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Mr(1)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t,appState:e})=>(0,Zn.jsx)(co,{label:g("buttons.resetZoom"),style:{height:"100%"},children:(0,Zn.jsxs)(ae,{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===me.ZERO||t.code===me.NUM_ZERO)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),A4=(t,e)=>{let[o,r,n,i]=t,a=n-o,l=e.width/a,c=i-r,s=e.height/c,m=Math.min(l,s),d=Math.floor(m/Pn)*Pn;return Math.min(Math.max(d,lg),1)},W2=({bounds:t,appState:e,fitToViewport:o=!1,viewportZoomFactor:r=.7})=>{let[n,i,a,l]=t,c=(n+a)/2,s=(i+l)/2,m,d,p;if(o){let u=a-n,b=l-i;m=Math.min(e.width/u,e.height/b)*Math.min(1,Math.max(r,.1)),m=Math.min(Math.max(m,.1),30);let x=e.width;if(e.openSidebar){let w=document.querySelector(".sidebar")?.offsetWidth??0;x=document.documentElement.getAttribute("dir")==="rtl"?e.width+w:e.width-w}d=x/2*(1/m)-c,p=e.height/2*(1/m)-s}else{m=A4(t,{width:e.width,height:e.height});let u=gb({scenePoint:{x:c,y:s},viewportDimensions:{width:e.width,height:e.height},zoom:{value:m}});d=u.scrollX,p=u.scrollY}return{appState:{...e,scrollX:d,scrollY:p,zoom:{value:m}},commitToHistory:!1}},Dl=({targetElements:t,appState:e,fitToViewport:o,viewportZoomFactor:r})=>{let n=Ge(he(t));return W2({bounds:n,appState:e,fitToViewport:o,viewportZoomFactor:r})},UP=H({name:"zoomToFitSelectionInViewport",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return Dl({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!1})},keyTest:t=>t.code===me.TWO&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),WP=H({name:"zoomToFitSelection",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return Dl({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!0})},keyTest:t=>t.code===me.THREE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),L4=H({name:"zoomToFit",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>Dl({targetElements:t,appState:{...e,userToFollow:null},fitToViewport:!1}),keyTest:t=>t.code===me.ONE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),hd=H({name:"toggleTheme",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o)=>({appState:{...e,theme:o||(e.theme===dt.LIGHT?dt.DARK:dt.LIGHT)},commitToHistory:!1}),keyTest:t=>t.altKey&&t.shiftKey&&t.code===me.D,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.toggleTheme}),GP=H({name:"toggleEraserTool",trackEvent:{category:"toolbar"},perform:(t,e)=>{let o;return vo(e)?o=et(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):o=et(e,{type:"eraser",lastActiveToolBeforeEraser:e.activeTool}),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:o},commitToHistory:!0}},keyTest:t=>t.key===S.E}),G2=H({name:"toggleHandTool",trackEvent:{category:"toolbar"},perform:(t,e,o,r)=>{let n;return Sr(e)?n=et(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(n=et(e,{type:"hand",lastActiveToolBeforeEraser:e.activeTool}),De(r.interactiveCanvas,Le.GRAB)),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:n},commitToHistory:!0}},keyTest:t=>!t.altKey&&!t[S.CTRL_OR_CMD]&&t.key===S.H});h();var V2=v(T(),1),ko=H({name:"finalize",trackEvent:!1,perform:(t,e,o,{interactiveCanvas:r,focusContainer:n,scene:i})=>{let a=i.getNonDeletedElementsMap();if(e.editingLinearElement){let{elementId:d,startBindingElement:p,endBindingElement:u}=e.editingLinearElement,b=ue.getElement(d,a);if(b)return Er(b)&&Us(b,p,u,a),{elements:b.points.length<2||Hn(b)?t.filter(x=>x.id!==b.id):void 0,appState:{...e,cursorButton:"up",editingLinearElement:null},commitToHistory:!0}}let l=t,c=e.pendingImageElementId&&i.getElement(e.pendingImageElementId);c&&J(c,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&n();let s=e.multiElement?e.multiElement:e.editingElement?.type==="freedraw"?e.editingElement:null;if(s){if(s.type!=="freedraw"&&e.lastPointerDownWith!=="touch"){let{points:p,lastCommittedPoint:u}=s;(!u||p[p.length-1]!==u)&&J(s,{points:s.points.slice(0,-1)})}Hn(s)&&(l=l.filter(p=>p.id!==s.id));let d=qa(s.points,e.zoom.value);if((s.type==="line"||s.type==="freedraw")&&d){let p=s.points,u=p[0];J(s,{points:p.map((b,x)=>x===p.length-1?[u[0],u[1]]:b)})}if(Er(s)&&!d&&s.points.length>1){let[p,u]=ue.getPointAtIndexGlobalCoordinates(s,-1,Be(t));ol(s,e,to.getScene(s),{x:p,y:u},a)}}(!e.activeTool.locked&&e.activeTool.type!=="freedraw"||!s)&&yo(r);let m;return e.activeTool.type==="eraser"?m=et(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=et(e,{type:"selection"}),{elements:l,appState:{...e,cursorButton:"up",activeTool:(e.activeTool.locked||e.activeTool.type==="freedraw")&&s?e.activeTool:m,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:s&&!e.activeTool.locked&&e.activeTool.type!=="freedraw"?{...e.selectedElementIds,[s.id]:!0}:e.selectedElementIds,selectedLinearElement:s&&Pe(s)?new ue(s):e.selectedLinearElement,pendingImageElementId:null},commitToHistory:e.activeTool.type==="freedraw"}},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,V2.jsx)(ae,{type:"button",icon:f0,title:g("buttons.done"),"aria-label":g("buttons.done"),onClick:e,visible:t.multiElement!=null,size:o?.size||"medium"})});h();h();var K2=v($(),1);var Rl=v(T(),1),Y2=t=>{let{id:e}=Tt(),[o,r]=(0,K2.useState)(t.value),n=a=>{t.ignoreFocus||kg(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,Rl.jsxs)("div",{className:"ProjectName",children:[(0,Rl.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${t.label}:`}),(0,Rl.jsx)("input",{type:"text",className:"TextInput",onBlur:n,onKeyDown:i,id:`${e}-filename`,value:o,onChange:a=>r(a.target.value)})]})};h();var fa=v(T(),1),j2=t=>{let e=t.title||(t.value==="dark"?g("buttons.lightMode"):g("buttons.darkMode"));return(0,fa.jsx)(ae,{type:"icon",icon:t.value===dt.LIGHT?Z2.MOON:Z2.SUN,title:e,"aria-label":e,onClick:()=>t.onChange(t.value===dt.DARK?dt.LIGHT:dt.DARK),"data-testid":"toggle-dark-mode"})},Z2={SUN:(0,fa.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,fa.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,fa.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,fa.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 jn=(t,{selectedElementIds:e},o)=>{t=he(t);let r=o&&Re(t,{selectedElementIds:e}),n=null,i=r?Se(t,{selectedElementIds:e},{includeBoundTextElement:!0}):t;return r&&(i.length===1&&we(i[0])?(n=i[0],i=hc(t,n)):i.length>1&&(i=Se(t,{selectedElementIds:e},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:n,exportedElements:Qo(i)}},Xn=async(t,e,o,r,{exportBackground:n,exportPadding:i=jr,viewBackgroundColor:a,name:l=o.name||bg,fileHandle:c=null,exportingFrame:s=null})=>{if(e.length===0)throw new Error(g("alerts.cannotExportEmptyCanvas"));if(t==="svg"||t==="clipboard-svg"){let d=sc(e,{exportBackground:n,exportWithDarkMode:o.exportWithDarkMode,viewBackgroundColor:a,exportPadding:i,exportScale:o.exportScale,exportEmbedScene:o.exportEmbedScene&&t==="svg"},r,{exportingFrame:s});if(t==="svg")return bu(d.then(p=>new Blob([p.outerHTML],{type:_t.svg})),{description:"Export to SVG",name:l,extension:o.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:c});if(t==="clipboard-svg"){let p=await d.then(u=>u.outerHTML);try{await Oi(p)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return}}let m=V1(e,o,r,{exportBackground:n,viewBackgroundColor:a,exportPadding:i,exportingFrame:s});if(t==="png"){let d=_r(m);return o.exportEmbedScene&&(d=d.then(p=>import("./excalidraw-assets/image-4AT7LYMR.js").then(({encodePngMetadata:u})=>u({blob:p,metadata:Tu(e,o,r,"local")})))),bu(d,{description:"Export to PNG",name:l,extension:"png",fileHandle:c})}else if(t==="clipboard")try{let d=_r(m);await q1(d)}catch(d){throw console.warn(d),d.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):Yr&&d.name==="TypeError"?new Error(`${g("alerts.couldNotCopyToClipboard")}
|
|
41
|
+
`)},f4=0,da=[];function I2(t){var e=Ye.useRef([]),o=Ye.useRef([0,0]),r=Ye.useRef(),n=Ye.useState(f4++)[0],i=Ye.useState(function(){return Ll()})[0],a=Ye.useRef(t);Ye.useEffect(function(){a.current=t},[t]),Ye.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var x=m2([t.lockRef.current],(t.shards||[]).map(k2),!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=Ye.useCallback(function(x,y){if("touches"in x&&x.touches.length===2)return!a.current.allowPinchZoom;var w=dd(x),k=o.current,T="deltaX"in x?x.deltaX:k[0]-w[0],I="deltaY"in x?x.deltaY:k[1]-w[1],A,_=x.target,M=Math.abs(T)>Math.abs(I)?"h":"v";if("touches"in x&&M==="h"&&_.type==="range")return!1;var L=Wp(M,_);if(!L)return!0;if(L?A=M:(A=M==="v"?"h":"v",L=Wp(M,_)),!L)return!1;if(!r.current&&"changedTouches"in x&&(T||I)&&(r.current=A),!A)return!0;var W=r.current||A;return C2(W,y,x,W==="h"?T:I,!0)},[]),c=Ye.useCallback(function(x){var y=x;if(!(!da.length||da[da.length-1]!==i)){var w="deltaY"in y?S2(y):dd(y),k=e.current.filter(function(A){return A.name===y.type&&A.target===y.target&&u4(A.delta,w)})[0];if(k&&k.should){y.cancelable&&y.preventDefault();return}if(!k){var T=(a.current.shards||[]).map(k2).filter(Boolean).filter(function(A){return A.contains(y.target)}),I=T.length>0?l(y,T[0]):!a.current.noIsolation;I&&y.cancelable&&y.preventDefault()}}},[]),s=Ye.useCallback(function(x,y,w,k){var T={name:x,delta:y,target:w,should:k};e.current.push(T),setTimeout(function(){e.current=e.current.filter(function(I){return I!==T})},1)},[]),m=Ye.useCallback(function(x){o.current=dd(x),r.current=void 0},[]),d=Ye.useCallback(function(x){s(x.type,S2(x),x.target,l(x,t.lockRef.current))},[]),p=Ye.useCallback(function(x){s(x.type,dd(x),x.target,l(x,t.lockRef.current))},[]);Ye.useEffect(function(){return da.push(i),t.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:p}),document.addEventListener("wheel",c,Yn),document.addEventListener("touchmove",c,Yn),document.addEventListener("touchstart",m,Yn),function(){da=da.filter(function(x){return x!==i}),document.removeEventListener("wheel",c,Yn),document.removeEventListener("touchmove",c,Yn),document.removeEventListener("touchstart",m,Yn)}},[]);var u=t.removeScrollBar,b=t.inert;return Ye.createElement(Ye.Fragment,null,b?Ye.createElement(i,{styles:p4(n)}):null,u?Ye.createElement(zp,{gapMode:"margin"}):null)}var _2=Np(sd,I2);var M2=md.forwardRef(function(t,e){return md.createElement(Al,cr({},t,{ref:e,sideCar:_2}))});M2.classNames=Al.classNames;var Gp=M2;var A2="Popover",[L2,BA]=lr(A2,[Mp]),ud=Mp(),[h4,ma]=L2(A2),g4=t=>{let{__scopePopover:e,children:o,open:r,defaultOpen:n,onOpenChange:i,modal:a=!1}=t,l=ud(e),c=(0,ve.useRef)(null),[s,m]=(0,ve.useState)(!1),[d=!1,p]=la({prop:r,defaultProp:n,onChange:i});return(0,ve.createElement)(t2,l,(0,ve.createElement)(h4,{scope:e,contentId:ra(),triggerRef:c,open:d,onOpenChange:p,onOpenToggle:(0,ve.useCallback)(()=>p(u=>!u),[p]),hasCustomAnchor:s,onCustomAnchorAdd:(0,ve.useCallback)(()=>m(!0),[]),onCustomAnchorRemove:(0,ve.useCallback)(()=>m(!1),[]),modal:a},o))};var b4="PopoverTrigger",x4=(0,ve.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=ma(b4,o),i=ud(o),a=Pt(e,n.triggerRef),l=(0,ve.createElement)(it.button,be({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":R2(n.open)},r,{ref:a,onClick:bt(t.onClick,n.onOpenToggle)}));return n.hasCustomAnchor?l:(0,ve.createElement)(o2,be({asChild:!0},i),l)}),P2="PopoverPortal",[v4,y4]=L2(P2,{forceMount:void 0}),E4=t=>{let{__scopePopover:e,forceMount:o,children:r,container:n}=t,i=ma(P2,e);return(0,ve.createElement)(v4,{scope:e,forceMount:o},(0,ve.createElement)(aa,{present:o||i.open},(0,ve.createElement)(a2,{asChild:!0,container:n},r)))},Dl="PopoverContent",w4=(0,ve.forwardRef)((t,e)=>{let o=y4(Dl,t.__scopePopover),{forceMount:r=o.forceMount,...n}=t,i=ma(Dl,t.__scopePopover);return(0,ve.createElement)(aa,{present:r||i.open},i.modal?(0,ve.createElement)(T4,be({},n,{ref:e})):(0,ve.createElement)(C4,be({},n,{ref:e})))}),T4=(0,ve.forwardRef)((t,e)=>{let o=ma(Dl,t.__scopePopover),r=(0,ve.useRef)(null),n=Pt(e,r),i=(0,ve.useRef)(!1);return(0,ve.useEffect)(()=>{let a=r.current;if(a)return c2(a)},[]),(0,ve.createElement)(Gp,{as:dn,allowPinchZoom:!0},(0,ve.createElement)(D2,be({},t,{ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:bt(t.onCloseAutoFocus,a=>{var l;a.preventDefault(),i.current||(l=o.triggerRef.current)===null||l===void 0||l.focus()}),onPointerDownOutside:bt(t.onPointerDownOutside,a=>{let l=a.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,s=l.button===2||c;i.current=s},{checkForDefaultPrevented:!1}),onFocusOutside:bt(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),C4=(0,ve.forwardRef)((t,e)=>{let o=ma(Dl,t.__scopePopover),r=(0,ve.useRef)(!1);return(0,ve.createElement)(D2,be({},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()}}))}),D2=(0,ve.forwardRef)((t,e)=>{let{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:s,onInteractOutside:m,...d}=t,p=ma(Dl,o),u=ud(o);return bv(),(0,ve.createElement)(wv,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},(0,ve.createElement)(pv,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:m,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:s,onDismiss:()=>p.onOpenChange(!1)},(0,ve.createElement)(r2,be({"data-state":R2(p.open),role:"dialog",id:p.contentId},u,d,{ref:e,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var S4=(0,ve.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=ud(o);return(0,ve.createElement)(n2,be({},n,r,{ref:e}))});function R2(t){return t?"open":"closed"}var pd=g4;var fd=x4,N2=E4,hd=w4;var O2=S4;h();var Wo=v($(),1);h();var xd=v($(),1),H2=v(ir(),1);h();var Vp=v($(),1),Kp=Vp.default.createContext(null),Le=()=>Vp.default.useContext(Kp);h();var Rl=v($(),1);var gd=t=>{let[e,o]=(0,Rl.useState)(null),r=Ie(),{theme:n}=Le(),{container:i}=Ct();return(0,Rl.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==="dark"))},[e,n,r.editor.isMobile,t?.className]),(0,Rl.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 F2=v($(),1);function ua(t,e,o){(0,F2.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 $2=v($(),1),bd=t=>{let e=(0,$2.useRef)(t);return Object.assign(e.current,t),e.current};var U2=v(C(),1),fn=Ve(null),z2=({onCancel:t,onChange:e,onSelect:o,colorPickerType:r})=>{let n=gd({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),i=Le(),a=hn(),l=So(),c=ke(a,i),s=bd({app:l,onCancel:t,onChange:e,onSelect:o,selectedElements:c}),{container:m}=Ct();(0,xd.useEffect)(()=>{let p=d.current;if(!p||!l.canvas||!n)return;let u=!1,b=l.canvas.getContext("2d"),x=({clientX:_,clientY:M})=>{let L=b.getImageData((_-i.offsetLeft)*window.devicePixelRatio,(M-i.offsetTop)*window.devicePixelRatio,1,1).data;return rg(L[0],L[1],L[2])},y=({clientX:_,clientY:M,altKey:L})=>{p.style.top=`${M+20}px`,p.style.left=`${_+20}px`;let W=x({clientX:_,clientY:M});u&&s.onChange(r,W,s.selectedElements,{altKey:L}),p.style.background=W},w=()=>{s.onCancel()},k=(_,M)=>{s.onSelect(_,M)},T=_=>{u=!0,_.stopImmediatePropagation()},I=_=>{u=!1,m?.focus(),_.stopImmediatePropagation(),_.preventDefault(),k(x(_),_)},A=_=>{_.key===S.ESCAPE&&(_.preventDefault(),_.stopImmediatePropagation(),w())};return n.tabIndex=-1,n.focus(),y({clientX:s.app.lastViewportPosition.x,clientY:s.app.lastViewportPosition.y,altKey:!1}),n.addEventListener("keydown",A),n.addEventListener("pointerdown",T),n.addEventListener("pointerup",I),window.addEventListener("pointermove",y,{passive:!0}),window.addEventListener("blur",w),()=>{u=!1,n.removeEventListener("keydown",A),n.removeEventListener("pointerdown",T),n.removeEventListener("pointerup",I),window.removeEventListener("pointermove",y),window.removeEventListener("blur",w)}},[s,l.canvas,n,r,m,i.offsetLeft,i.offsetTop]);let d=(0,xd.useRef)(null);return ua(d,()=>{t()},p=>!!p.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),n?(0,H2.createPortal)((0,U2.jsx)("div",{ref:d,className:"excalidraw-eye-dropper-preview"}),n):null};var dr=v(C(),1),W2=({color:t,onChange:e,label:o,colorPickerType:r})=>{let n=Ie(),[i,a]=(0,Wo.useState)(t),[l,c]=Te(To);(0,Wo.useEffect)(()=>{a(t)},[t]);let s=(0,Wo.useCallback)(b=>{let x=b.toLowerCase(),y=G2(x);y&&e(y),a(x)},[e]),m=(0,Wo.useRef)(null),d=(0,Wo.useRef)(null);(0,Wo.useEffect)(()=>{m.current&&m.current.focus()},[l]);let[p,u]=Te(fn,Ae);return(0,Wo.useEffect)(()=>()=>{u(null)},[u]),(0,dr.jsxs)("div",{className:"color-picker__input-label",children:[(0,dr.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,dr.jsx)("input",{ref:l==="hex"?m:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":o,onChange:b=>{s(b.target.value)},value:(i||"").replace(/^#/,""),onBlur:()=>{a(t)},tabIndex:-1,onFocus:()=>c("hex"),onKeyDown:b=>{b.key!==S.TAB&&(b.key===S.ESCAPE&&d.current?.focus(),b.stopPropagation())}}),!n.editor.isMobile&&(0,dr.jsxs)(dr.Fragment,{children:[(0,dr.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,dr.jsx)("div",{ref:d,className:F("excalidraw-eye-dropper-trigger",{selected:p}),onClick:()=>u(b=>b?null:{keepOpenOnAlt:!1,onSelect:x=>e(x),colorPickerType:r}),title:`${g("labels.eyeDropper")} \u2014 ${S.I.toLocaleUpperCase()} or ${N("Alt")} `,children:Ix})]})]})};var K2=v($(),1);var St=v(C(),1),V2=t=>{let e=new Option().style;return e.color=t,!!e.color},G2=t=>Nn(t)?t:V2(`#${t}`)?`#${t}`:V2(t)?t:null,k4=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=br,updateData:a})=>{let[,l]=Te(To),[c,s]=Te(fn,Ae),{container:m}=Ct(),d=Ie(),p=(0,St.jsxs)("div",{children:[(0,St.jsx)(ea,{children:g("colorPicker.hexCode")}),(0,St.jsx)(W2,{color:e,label:r,onChange:x=>{o(x)},colorPickerType:t})]}),u=(0,K2.useRef)(null),b=()=>{u.current?.querySelector(".color-picker-content")?.focus()};return(0,St.jsx)(N2,{container:m,children:(0,St.jsxs)(hd,{ref:u,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:x=>{b(),x.preventDefault()},onPointerDownOutside:x=>{c&&x.preventDefault()},onCloseAutoFocus:x=>{x.stopPropagation(),x.preventDefault(),m&&!Lg(document.activeElement)&&m.focus(),a({openPopup:null}),l(null)},side:d.editor.isMobile&&!d.viewport.isLandscape?"bottom":"right",align:d.editor.isMobile&&!d.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,St.jsx)(iv,{palette:i,color:e,onChange:x=>{o(x)},onEyeDropperToggle:x=>{s(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=>{c?s(null):Qo(x.target)?b():a({openPopup:null})},label:r,type:t,elements:n,updateData:a,children:p}):p,(0,St.jsx)(O2,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},I4=({label:t,color:e,type:o})=>(0,St.jsx)(fd,{type:"button",className:F("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,St.jsx)("div",{className:"color-picker__button-outline"})}),Nl=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=br,topPicks:a,updateData:l,appState:c})=>(0,St.jsx)("div",{children:(0,St.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,St.jsx)(jx,{activeColor:e,onChange:o,type:t,topPicks:a}),(0,St.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,St.jsxs)(pd,{open:c.openPopup===t,onOpenChange:s=>{l({openPopup:s?t:null})},children:[(0,St.jsx)(I4,{color:e,label:r,type:t}),c.openPopup===t&&(0,St.jsx)(k4,{type:t,color:e,onChange:o,label:r,elements:n,palette:i,updateData:l})]})]})});h();var bn=v($(),1);h();var gn=v($(),1);var Y2=v(ir(),1);var Z2=v(C(),1),vd=({children:t,left:e,top:o,onCloseRequest:r,fitInViewport:n=!1,offsetLeft:i=0,offsetTop:a=0,viewportWidth:l=window.innerWidth,viewportHeight:c=window.innerHeight})=>{let s=(0,gn.useRef)(null);(0,gn.useEffect)(()=>{let d=s.current;if(!d)return;d.contains(document.activeElement)||d.focus();let p=u=>{if(u.key===S.TAB){let b=Xa(d),{activeElement:x}=document,y=b.findIndex(w=>w===x);x===d?(u.shiftKey?b[b.length-1]?.focus():b[0].focus(),u.preventDefault(),u.stopImmediatePropagation()):y===0&&u.shiftKey?(b[b.length-1]?.focus(),u.preventDefault(),u.stopImmediatePropagation()):y===b.length-1&&!u.shiftKey&&(b[0]?.focus(),u.preventDefault(),u.stopImmediatePropagation())}};return d.addEventListener("keydown",p),()=>d.removeEventListener("keydown",p)},[]);let m=(0,gn.useRef)(null);return(0,gn.useLayoutEffect)(()=>{if(n&&s.current&&o!=null&&e!=null){let d=s.current,{width:p,height:u}=d.getBoundingClientRect();if(m.current?.top===o&&m.current?.left===e)return;m.current={top:o,left:e},p>=l?(d.style.width=`${l}px`,d.style.left="0px",d.style.overflowX="scroll"):e+p-i>l?d.style.left=`${l-p-10}px`:d.style.left=`${e}px`,u>=c?(d.style.height=`${c-20}px`,d.style.top="10px",d.style.overflowY="scroll"):o+u-a>c?d.style.top=`${c-u}px`:d.style.top=`${o}px`}},[o,e,n,l,c,i,a]),(0,gn.useEffect)(()=>{if(r){let d=p=>{s.current?.contains(p.target)||(0,Y2.unstable_batchedUpdates)(()=>r(p))};return document.addEventListener("pointerdown",d,!1),()=>document.removeEventListener("pointerdown",d,!1)}},[r]),(0,Z2.jsx)("div",{className:"popover",ref:s,tabIndex:-1,children:t})};var Xt=v(C(),1);function _4({options:t,value:e,label:o,onChange:r,onClose:n}){let i=bn.default.useRef(),a=bn.default.useRef(),l=bn.default.useRef(null);return bn.default.useEffect(()=>{a.current?a.current.focus():l.current&&l.current.focus()},[]),(0,Xt.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":o,onKeyDown:s=>{let m=t.find(d=>d.keyBinding===s.key.toLowerCase());if(!(s.metaKey||s.altKey||s.ctrlKey)&&m){let d=t.indexOf(m);l.current.children[d].focus(),s.preventDefault()}else if(s.key===S.TAB)setTimeout(()=>{let d=a.current,p=document.activeElement;d!==p&&n()},0);else if(Si(s.key)){let{activeElement:d}=document,p=Pr().rtl,u=Array.prototype.indexOf.call(l.current.children,d);if(u!==-1){let b=t.length,x=u;switch(s.key){case(p?S.ARROW_LEFT:S.ARROW_RIGHT):case S.ARROW_DOWN:{x=(u+1)%b;break}case(p?S.ARROW_RIGHT:S.ARROW_LEFT):case S.ARROW_UP:{x=(b+u-1)%b;break}}l.current.children[x].focus()}s.preventDefault()}else(s.key===S.ESCAPE||s.key===S.ENTER)&&(s.preventDefault(),n());s.nativeEvent.stopImmediatePropagation(),s.stopPropagation()},children:(0,Xt.jsx)("div",{className:"picker-content",ref:l,children:t.map((s,m)=>(0,Xt.jsxs)("button",{className:F("picker-option",{active:e===s.value}),onClick:d=>{d.currentTarget.focus(),r(s.value)},title:`${s.text} ${s.keyBinding&&`\u2014 ${s.keyBinding.toUpperCase()}`}`,"aria-label":s.text||"none","aria-keyshortcuts":s.keyBinding||void 0,ref:d=>{d&&m===0&&(i.current=d),d&&s.value===e&&(a.current=d)},onFocus:()=>{r(s.value)},children:[s.icon,s.keyBinding&&(0,Xt.jsx)("span",{className:"picker-keybinding",children:s.keyBinding})]},s.text))})})}function Yp({value:t,label:e,options:o,onChange:r,group:n=""}){let[i,a]=bn.default.useState(!1),l=bn.default.useRef(null),c=Pr().rtl;return(0,Xt.jsxs)("div",{children:[(0,Xt.jsx)("button",{name:n,className:i?"active":"","aria-label":e,onClick:()=>a(!i),ref:l,children:o.find(s=>s.value===t)?.icon}),(0,Xt.jsx)(bn.default.Suspense,{fallback:"",children:i?(0,Xt.jsxs)(Xt.Fragment,{children:[(0,Xt.jsx)(vd,{onCloseRequest:s=>s.target!==l.current&&a(!1),...c?{right:5.5}:{left:-5.5},children:(0,Xt.jsx)(_4,{options:o.filter(s=>s.showInPicker!==!1),value:t,label:e,onChange:r,onClose:()=>{a(!1),l.current?.focus()}})}),(0,Xt.jsx)("div",{className:"picker-triangle"})]}):null})]})}var re=v(C(),1),X2=.1,so=(t,e,o,r=!1)=>{let n=Se(ke(t,e,{includeBoundTextElement:r}));return t.map(i=>n.get(i.id)||i.id===e.editingElement?.id?o(i):i)},no=function(t,e,o,r,n){let i=e.editingElement,a=he(t),l=null;return i&&(l=o(i)),l||(Ne(a,e)?l=Sb(r===!0?a:a.filter(s=>r(s)),e,o)??(typeof n=="function"?n(!0):n):l=typeof n=="function"?n(!1):n),l},M4=(t,e)=>gt(e)?e:J(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),Zp=(t,e,o,r,n)=>{let i=new Set;return{elements:so(t,e,a=>{if(ie(a)){let l=r(a);i.add(l);let c=ce(a,{fontSize:l});return Bt(c,o.scene.getContainerElement(a),o.scene.getNonDeletedElementsMap()),c=M4(a,c),c}return a},!0),appState:{...e,currentItemFontSize:i.size===1?[...i][0]:n??e.currentItemFontSize},commitToHistory:!0}},A4=H({name:"changeStrokeColor",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemStrokeColor&&{elements:so(t,e,r=>rl(r.type)?ce(r,{strokeColor:o.currentItemStrokeColor}):r,!0)},appState:{...e,...o},commitToHistory:!!o.currentItemStrokeColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)("h3",{"aria-hidden":"true",children:g("labels.stroke")}),(0,re.jsx)(Nl,{topPicks:Ts,palette:tg,type:"elementStroke",label:g("labels.stroke"),color:no(t,e,n=>n.strokeColor,!0,e.currentItemStrokeColor),onChange:n=>o({currentItemStrokeColor:n}),elements:t,appState:e,updateData:o})]})}),L4=H({name:"changeBackgroundColor",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemBackgroundColor&&{elements:so(t,e,r=>ce(r,{backgroundColor:o.currentItemBackgroundColor}))},appState:{...e,...o},commitToHistory:!!o.currentItemBackgroundColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)("h3",{"aria-hidden":"true",children:g("labels.background")}),(0,re.jsx)(Nl,{topPicks:Cs,palette:og,type:"elementBackground",label:g("labels.background"),color:no(t,e,n=>n.backgroundColor,!0,e.currentItemBackgroundColor),onChange:n=>o({currentItemBackgroundColor:n}),elements:t,appState:e,updateData:o})]})}),P4=H({name:"changeFillStyle",trackEvent:!1,perform:(t,e,o,r)=>(ge("element","changeFillStyle",`${o} (${r.device.editor.isMobile?"mobile":"desktop"})`),{elements:so(t,e,n=>ce(n,{fillStyle:o})),appState:{...e,currentItemFillStyle:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=ke(t,e),n=r.length>0&&r.every(i=>i.fillStyle==="zigzag");return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.fill")}),(0,re.jsx)(ar,{type:"button",options:[{value:"hachure",text:`${n?g("labels.zigzag"):g("labels.hachure")} (${N("Alt-Click")})`,icon:n?G0:V0,active:n?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:g("labels.crossHatch"),icon:K0,testId:"fill-cross-hatch"},{value:"solid",text:g("labels.solid"),icon:Y0,testId:"fill-solid"}],value:no(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(c=>c.fillStyle==="hachure")?"zigzag":i;o(l)}})]})}}),D4=H({name:"changeStrokeWidth",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{strokeWidth:o})),appState:{...e,currentItemStrokeWidth:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.strokeWidth")}),(0,re.jsx)(ar,{group:"stroke-width",options:[{value:Rs.thin,text:g("labels.thin"),icon:Ju,testId:"strokeWidth-thin"},{value:Rs.bold,text:g("labels.bold"),icon:Z0,testId:"strokeWidth-bold"},{value:Rs.extraBold,text:g("labels.extraBold"),icon:j0,testId:"strokeWidth-extraBold"}],value:no(t,e,r=>r.strokeWidth,r=>r.hasOwnProperty("strokeWidth"),r=>r?null:e.currentItemStrokeWidth),onChange:r=>o(r)})]})}),R4=H({name:"changeSloppiness",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{seed:Yg(),roughness:o})),appState:{...e,currentItemRoughness:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.sloppiness")}),(0,re.jsx)(ar,{group:"sloppiness",options:[{value:0,text:g("labels.architect"),icon:J0},{value:1,text:g("labels.artist"),icon:Q0},{value:2,text:g("labels.cartoonist"),icon:ex}],value:no(t,e,r=>r.roughness,r=>r.hasOwnProperty("roughness"),r=>r?null:e.currentItemRoughness),onChange:r=>o(r)})]})}),IP=H({name:"changeStrokeStyle",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{strokeStyle:o})),appState:{...e,currentItemStrokeStyle:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.strokeStyle")}),(0,re.jsx)(ar,{group:"strokeStyle",options:[{value:"solid",text:g("labels.strokeStyle_solid"),icon:Ju},{value:"dashed",text:g("labels.strokeStyle_dashed"),icon:X0},{value:"dotted",text:g("labels.strokeStyle_dotted"),icon:q0}],value:no(t,e,r=>r.strokeStyle,r=>r.hasOwnProperty("strokeStyle"),r=>r?null:e.currentItemStrokeStyle),onChange:r=>o(r)})]})}),N4=H({name:"changeOpacity",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{opacity:o}),!0),appState:{...e,currentItemOpacity:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,re.jsxs)("label",{className:"control-label",children:[g("labels.opacity"),(0,re.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:r=>o(+r.target.value),value:no(t,e,r=>r.opacity,!0,e.currentItemOpacity)??void 0})]})}),O4=H({name:"changeFontSize",trackEvent:!1,perform:(t,e,o,r)=>Zp(t,e,r,()=>o,o),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.fontSize")}),(0,re.jsx)(ar,{group:"font-size",options:[{value:16,text:g("labels.small"),icon:mx,testId:"fontSize-small"},{value:20,text:g("labels.medium"),icon:ux,testId:"fontSize-medium"},{value:28,text:g("labels.large"),icon:px,testId:"fontSize-large"},{value:36,text:g("labels.veryLarge"),icon:fx,testId:"fontSize-veryLarge"}],value:no(t,e,n=>{if(ie(n))return n.fontSize;let i=nt(n,r.scene.getNonDeletedElementsMap());return i?i.fontSize:null},n=>ie(n)||nt(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:e.currentItemFontSize||xr),onChange:n=>o(n)})]})}),jp=H({name:"decreaseFontSize",trackEvent:!1,perform:(t,e,o,r)=>Zp(t,e,r,n=>Math.round(1/(1+X2)*n.fontSize)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_LEFT||t.key===S.COMMA)}),Xp=H({name:"increaseFontSize",trackEvent:!1,perform:(t,e,o,r)=>Zp(t,e,r,n=>Math.round(n.fontSize*(1+X2))),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_RIGHT||t.key===S.PERIOD)}),B4=H({name:"changeFontFamily",trackEvent:!1,perform:(t,e,o,r)=>({elements:so(t,e,n=>{if(ie(n)){let i=ce(n,{fontFamily:o,lineHeight:Cr(o)});return Bt(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemFontFamily:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=[{value:Va.Virgil,text:g("labels.handDrawn"),icon:Vi,testId:"font-family-virgil"},{value:Va.Helvetica,text:g("labels.normal"),icon:hx,testId:"font-family-normal"},{value:Va.Cascadia,text:g("labels.code"),icon:gx,testId:"font-family-code"}];return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.fontFamily")}),(0,re.jsx)(ar,{group:"font-family",options:n,value:no(t,e,i=>{if(ie(i))return i.fontFamily;let a=nt(i,r.scene.getNonDeletedElementsMap());return a?a.fontFamily:null},i=>ie(i)||nt(i,r.scene.getNonDeletedElementsMap())!==null,i=>i?null:e.currentItemFontFamily||gi),onChange:i=>o(i)})]})}}),F4=H({name:"changeTextAlign",trackEvent:!1,perform:(t,e,o,r)=>({elements:so(t,e,n=>{if(ie(n)){let i=ce(n,{textAlign:o});return Bt(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemTextAlign:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=r.scene.getNonDeletedElementsMap();return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.textAlign")}),(0,re.jsx)(ar,{group:"text-align",options:[{value:"left",text:g("labels.left"),icon:bx,testId:"align-left"},{value:"center",text:g("labels.center"),icon:xx,testId:"align-horizontal-center"},{value:"right",text:g("labels.right"),icon:vx,testId:"align-right"}],value:no(t,e,i=>{if(ie(i))return i.textAlign;let a=nt(i,n);return a?a.textAlign:null},i=>ie(i)||nt(i,n)!==null,i=>i?null:e.currentItemTextAlign),onChange:i=>o(i)})]})}}),$4=H({name:"changeVerticalAlign",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:so(t,e,n=>{if(ie(n)){let i=ce(n,{verticalAlign:o});return Bt(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,re.jsx)("fieldset",{children:(0,re.jsx)(ar,{group:"text-align",options:[{value:fo.TOP,text:g("labels.alignTop"),icon:(0,re.jsx)(yx,{theme:e.theme}),testId:"align-top"},{value:fo.MIDDLE,text:g("labels.centerVertically"),icon:(0,re.jsx)(wx,{theme:e.theme}),testId:"align-middle"},{value:fo.BOTTOM,text:g("labels.alignBottom"),icon:(0,re.jsx)(Ex,{theme:e.theme}),testId:"align-bottom"}],value:no(t,e,n=>{if(ie(n)&&n.containerId)return n.verticalAlign;let i=nt(n,r.scene.getNonDeletedElementsMap());return i?i.verticalAlign:null},n=>ie(n)||nt(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:fo.MIDDLE),onChange:n=>o(n)})})}),_P=H({name:"changeRoundness",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>ce(r,{roundness:o==="round"?{type:Ti(r.type)?ho.ADAPTIVE_RADIUS:ho.PROPORTIONAL_RADIUS}:null})),appState:{...e,currentItemRoundness:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let n=zi(he(t),e).some(i=>i.roundness?.type===ho.LEGACY);return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.edges")}),(0,re.jsx)(ar,{group:"edges",options:[{value:"sharp",text:g("labels.sharp"),icon:tx},{value:"round",text:g("labels.round"),icon:ox}],value:no(t,e,i=>n?null:i.roundness?"round":"sharp",i=>i.hasOwnProperty("roundness"),i=>i?null:e.currentItemRoundness),onChange:i=>o(i)})]})}}),j2=t=>[{value:null,text:g("labels.arrowhead_none"),keyBinding:"q",icon:rx},{value:"arrow",text:g("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,re.jsx)(nx,{flip:t})},{value:"bar",text:g("labels.arrowhead_bar"),keyBinding:"e",icon:(0,re.jsx)(ax,{flip:t})},{value:"dot",text:g("labels.arrowhead_circle"),keyBinding:null,icon:(0,re.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle",text:g("labels.arrowhead_circle"),keyBinding:"r",icon:(0,re.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle_outline",text:g("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,re.jsx)(ix,{flip:t}),showInPicker:!1},{value:"triangle",text:g("labels.arrowhead_triangle"),icon:(0,re.jsx)(lx,{flip:t}),keyBinding:"t"},{value:"triangle_outline",text:g("labels.arrowhead_triangle_outline"),icon:(0,re.jsx)(sx,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond",text:g("labels.arrowhead_diamond"),icon:(0,re.jsx)(cx,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:g("labels.arrowhead_diamond_outline"),icon:(0,re.jsx)(dx,{flip:t}),keyBinding:null,showInPicker:!1}],MP=H({name:"changeArrowhead",trackEvent:!1,perform:(t,e,o)=>({elements:so(t,e,r=>{if(De(r)){let{position:n,type:i}=o;if(n==="start")return ce(r,{startArrowhead:i});if(n==="end")return ce(r,{endArrowhead:i})}return r}),appState:{...e,[o.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:o.type},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Pr().rtl;return(0,re.jsxs)("fieldset",{children:[(0,re.jsx)("legend",{children:g("labels.arrowheads")}),(0,re.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,re.jsx)(Yp,{label:"arrowhead_start",options:j2(!r),value:no(t,e,n=>De(n)&&Ci(n.type)?n.startArrowhead:e.currentItemStartArrowhead,!0,e.currentItemStartArrowhead),onChange:n=>o({position:"start",type:n})}),(0,re.jsx)(Yp,{label:"arrowhead_end",group:"arrowheads",options:j2(!!r),value:no(t,e,n=>De(n)&&Ci(n.type)?n.endArrowhead:e.currentItemEndArrowhead,!0,e.currentItemEndArrowhead),onChange:n=>o({position:"end",type:n})})]})]})}});h();h();var q2=v($(),1),J2=v(C(),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},qp=(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 c;o==="bottom"?(c=e.top+e.height+a,c+r.height>=i&&(c=e.top-r.height-a)):(c=e.top-r.height-a,c<0&&(c=e.top+e.height+a)),Object.assign(t.style,{top:`${c}px`,left:`${l}px`})},H4=(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();qp(e,n)},co=({children:t,label:e,long:o=!1,style:r,disabled:n})=>((0,q2.useEffect)(()=>()=>pa().classList.remove("excalidraw-tooltip--visible"),[]),n?null:(0,J2.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:i=>H4(i.currentTarget,pa(),e,o),onPointerLeave:()=>pa().classList.remove("excalidraw-tooltip--visible"),style:r,children:t}));var Zn=v(C(),1),z4=H({name:"changeViewBackgroundColor",trackEvent:!1,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.changeViewBackgroundColor&&!e.viewModeEnabled,perform:(t,e,o)=>({appState:{...e,...o},commitToHistory:!!o.viewBackgroundColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,Zn.jsx)(Nl,{palette:null,topPicks:Ss,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})}),Ol=H({name:"clearCanvas",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=>ce(n,{isDeleted:!0})),appState:{...Mi(),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},commitToHistory:!0})}),yd=H({name:"zoomIn",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ar({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Mr(e.zoom.value+Pn)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t})=>(0,Zn.jsx)(ae,{type:"button",className:"zoom-in-button zoom-button",icon:c0,title:`${g("buttons.zoomIn")} \u2014 ${N("CtrlOrCmd++")}`,"aria-label":g("buttons.zoomIn"),onClick:()=>{t(null)}}),keyTest:t=>(t.code===me.EQUAL||t.code===me.NUM_ADD)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),Ed=H({name:"zoomOut",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ar({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Mr(e.zoom.value-Pn)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t})=>(0,Zn.jsx)(ae,{type:"button",className:"zoom-out-button zoom-button",icon:d0,title:`${g("buttons.zoomOut")} \u2014 ${N("CtrlOrCmd+-")}`,"aria-label":g("buttons.zoomOut"),onClick:()=>{t(null)}}),keyTest:t=>(t.code===me.MINUS||t.code===me.NUM_SUBTRACT)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),U4=H({name:"resetZoom",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ar({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Mr(1)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t,appState:e})=>(0,Zn.jsx)(co,{label:g("buttons.resetZoom"),style:{height:"100%"},children:(0,Zn.jsxs)(ae,{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===me.ZERO||t.code===me.NUM_ZERO)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),W4=(t,e)=>{let[o,r,n,i]=t,a=n-o,l=e.width/a,c=i-r,s=e.height/c,m=Math.min(l,s),d=Math.floor(m/Pn)*Pn;return Math.min(Math.max(d,gg),1)},Q2=({bounds:t,appState:e,fitToViewport:o=!1,viewportZoomFactor:r=.7})=>{let[n,i,a,l]=t,c=(n+a)/2,s=(i+l)/2,m,d,p;if(o){let u=a-n,b=l-i;m=Math.min(e.width/u,e.height/b)*Math.min(1,Math.max(r,.1)),m=Math.min(Math.max(m,.1),30);let x=e.width;if(e.openSidebar){let w=document.querySelector(".sidebar")?.offsetWidth??0;x=document.documentElement.getAttribute("dir")==="rtl"?e.width+w:e.width-w}d=x/2*(1/m)-c,p=e.height/2*(1/m)-s}else{m=W4(t,{width:e.width,height:e.height});let u=kb({scenePoint:{x:c,y:s},viewportDimensions:{width:e.width,height:e.height},zoom:{value:m}});d=u.scrollX,p=u.scrollY}return{appState:{...e,scrollX:d,scrollY:p,zoom:{value:m}},commitToHistory:!1}},Bl=({targetElements:t,appState:e,fitToViewport:o,viewportZoomFactor:r})=>{let n=Ge(he(t));return Q2({bounds:n,appState:e,fitToViewport:o,viewportZoomFactor:r})},tD=H({name:"zoomToFitSelectionInViewport",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return Bl({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!1})},keyTest:t=>t.code===me.TWO&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),oD=H({name:"zoomToFitSelection",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return Bl({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!0})},keyTest:t=>t.code===me.THREE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),G4=H({name:"zoomToFit",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>Bl({targetElements:t,appState:{...e,userToFollow:null},fitToViewport:!1}),keyTest:t=>t.code===me.ONE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),wd=H({name:"toggleTheme",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o)=>({appState:{...e,theme:o||(e.theme===dt.LIGHT?dt.DARK:dt.LIGHT)},commitToHistory:!1}),keyTest:t=>t.altKey&&t.shiftKey&&t.code===me.D,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.toggleTheme}),rD=H({name:"toggleEraserTool",trackEvent:{category:"toolbar"},perform:(t,e)=>{let o;return vo(e)?o=et(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):o=et(e,{type:"eraser",lastActiveToolBeforeEraser:e.activeTool}),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:o},commitToHistory:!0}},keyTest:t=>t.key===S.E}),ey=H({name:"toggleHandTool",trackEvent:{category:"toolbar"},perform:(t,e,o,r)=>{let n;return Sr(e)?n=et(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(n=et(e,{type:"hand",lastActiveToolBeforeEraser:e.activeTool}),Re(r.interactiveCanvas,Pe.GRAB)),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:n},commitToHistory:!0}},keyTest:t=>!t.altKey&&!t[S.CTRL_OR_CMD]&&t.key===S.H});h();var ty=v(C(),1),ko=H({name:"finalize",trackEvent:!1,perform:(t,e,o,{interactiveCanvas:r,focusContainer:n,scene:i})=>{let a=i.getNonDeletedElementsMap();if(e.editingLinearElement){let{elementId:d,startBindingElement:p,endBindingElement:u}=e.editingLinearElement,b=ue.getElement(d,a);if(b)return Er(b)&&js(b,p,u,a),{elements:b.points.length<2||Hn(b)?t.filter(x=>x.id!==b.id):void 0,appState:{...e,cursorButton:"up",editingLinearElement:null},commitToHistory:!0}}let l=t,c=e.pendingImageElementId&&i.getElement(e.pendingImageElementId);c&&J(c,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&n();let s=e.multiElement?e.multiElement:e.editingElement?.type==="freedraw"?e.editingElement:null;if(s){if(s.type!=="freedraw"&&e.lastPointerDownWith!=="touch"){let{points:p,lastCommittedPoint:u}=s;(!u||p[p.length-1]!==u)&&J(s,{points:s.points.slice(0,-1)})}Hn(s)&&(l=l.filter(p=>p.id!==s.id));let d=el(s.points,e.zoom.value);if((s.type==="line"||s.type==="freedraw")&&d){let p=s.points,u=p[0];J(s,{points:p.map((b,x)=>x===p.length-1?[u[0],u[1]]:b)})}if(Er(s)&&!d&&s.points.length>1){let[p,u]=ue.getPointAtIndexGlobalCoordinates(s,-1,Se(t));il(s,e,to.getScene(s),{x:p,y:u},a)}}(!e.activeTool.locked&&e.activeTool.type!=="freedraw"||!s)&&yo(r);let m;return e.activeTool.type==="eraser"?m=et(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=et(e,{type:"selection"}),{elements:l,appState:{...e,cursorButton:"up",activeTool:(e.activeTool.locked||e.activeTool.type==="freedraw")&&s?e.activeTool:m,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:s&&!e.activeTool.locked&&e.activeTool.type!=="freedraw"?{...e.selectedElementIds,[s.id]:!0}:e.selectedElementIds,selectedLinearElement:s&&De(s)?new ue(s):e.selectedLinearElement,pendingImageElementId:null},commitToHistory:e.activeTool.type==="freedraw"}},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,ty.jsx)(ae,{type:"button",icon:C0,title:g("buttons.done"),"aria-label":g("buttons.done"),onClick:e,visible:t.multiElement!=null,size:o?.size||"medium"})});h();h();var oy=v($(),1);var Fl=v(C(),1),ry=t=>{let{id:e}=Ct(),[o,r]=(0,oy.useState)(t.value),n=a=>{t.ignoreFocus||Ng(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,Fl.jsxs)("div",{className:"ProjectName",children:[(0,Fl.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${t.label}:`}),(0,Fl.jsx)("input",{type:"text",className:"TextInput",onBlur:n,onKeyDown:i,id:`${e}-filename`,value:o,onChange:a=>r(a.target.value)})]})};h();var fa=v(C(),1),iy=t=>{let e=t.title||(t.value==="dark"?g("buttons.lightMode"):g("buttons.darkMode"));return(0,fa.jsx)(ae,{type:"icon",icon:t.value===dt.LIGHT?ny.MOON:ny.SUN,title:e,"aria-label":e,onClick:()=>t.onChange(t.value===dt.DARK?dt.LIGHT:dt.DARK),"data-testid":"toggle-dark-mode"})},ny={SUN:(0,fa.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,fa.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,fa.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,fa.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 jn=(t,{selectedElementIds:e},o)=>{t=he(t);let r=o&&Ne(t,{selectedElementIds:e}),n=null,i=r?ke(t,{selectedElementIds:e},{includeBoundTextElement:!0}):t;return r&&(i.length===1&&we(i[0])?(n=i[0],i=wc(t,n)):i.length>1&&(i=ke(t,{selectedElementIds:e},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:n,exportedElements:er(i)}},Xn=async(t,e,o,r,{exportBackground:n,exportPadding:i=jr,viewBackgroundColor:a,name:l=o.name||kg,fileHandle:c=null,exportingFrame:s=null})=>{if(e.length===0)throw new Error(g("alerts.cannotExportEmptyCanvas"));if(t==="svg"||t==="clipboard-svg"){let d=hc(e,{exportBackground:n,exportWithDarkMode:o.exportWithDarkMode,viewBackgroundColor:a,exportPadding:i,exportScale:o.exportScale,exportEmbedScene:o.exportEmbedScene&&t==="svg"},r,{exportingFrame:s});if(t==="svg")return ku(d.then(p=>new Blob([p.outerHTML],{type:_t.svg})),{description:"Export to SVG",name:l,extension:o.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:c});if(t==="clipboard-svg"){let p=await d.then(u=>u.outerHTML);try{await Oi(p)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return}}let m=tb(e,o,r,{exportBackground:n,viewBackgroundColor:a,exportPadding:i,exportingFrame:s});if(t==="png"){let d=_r(m);return o.exportEmbedScene&&(d=d.then(p=>import("./excalidraw-assets/image-6FKY54X5.js").then(({encodePngMetadata:u})=>u({blob:p,metadata:Pu(e,o,r,"local")})))),ku(d,{description:"Export to PNG",name:l,extension:"png",fileHandle:c})}else if(t==="clipboard")try{let d=_r(m);await lb(d)}catch(d){throw console.warn(d),d.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):Yr&&d.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 X2=async(t,e,o,r)=>{let{exportBackground:n,viewBackgroundColor:i,fileHandle:a}=e,l=k1(a);if(!a||!I1(l))throw new Error("fileHandle should exist and should be of type svg or png when resaving");e={...e,exportEmbedScene:!0};let{exportedElements:c,exportingFrame:s}=jn(t,e,!1);return await Xn(l,c,e,o,{exportBackground:n,viewBackgroundColor:i,name:r,fileHandle:a,exportingFrame:s}),{fileHandle:a}};h();var Nl=v(T(),1),qn=({children:t,checked:e,onChange:o,className:r})=>(0,Nl.jsxs)("div",{className:F("Checkbox",r,{"is-checked":e}),onClick:n=>{o(!e,n),n.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,Nl.jsx)("button",{className:"Checkbox-box",role:"checkbox","aria-checked":e,children:s0}),(0,Nl.jsx)("div",{className:"Checkbox-label",children:t})]});var io=v(T(),1),Up=H({name:"changeProjectName",trackEvent:!1,perform:(t,e,o)=>({appState:{...e,name:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e,appProps:o,data:r,app:n})=>(0,io.jsx)(Y2,{label:g("labels.fileTitle"),value:n.getName(),onChange:i=>e(i),ignoreFocus:r?.ignoreFocus??!1})}),q2=H({name:"changeExportScale",trackEvent:{category:"export",action:"scale"},perform:(t,e,o)=>({appState:{...e,exportScale:o},commitToHistory:!1}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=he(t),i=Re(r,e)?Se(r,e):r;return(0,io.jsx)(io.Fragment,{children:ks.map(a=>{let[l,c]=K1(i,jr,a),s=`${g("imageExportDialog.label.scale")} ${a}x (${l}x${c})`;return(0,io.jsx)(ae,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:s,"aria-label":s,id:"export-canvas-scale",checked:a===e.exportScale,onChange:()=>o(a)},a)})})}}),Wp=H({name:"changeExportBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(t,e,o)=>({appState:{...e,exportBackground:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,io.jsx)(qn,{checked:t.exportBackground,onChange:o=>e(o),children:g("imageExportDialog.label.withBackground")})}),gd=H({name:"changeExportEmbedScene",trackEvent:{category:"export",action:"embedScene"},perform:(t,e,o)=>({appState:{...e,exportEmbedScene:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,io.jsxs)(qn,{checked:t.exportEmbedScene,onChange:o=>e(o),children:[g("imageExportDialog.label.embedScene"),(0,io.jsx)(co,{label:g("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,io.jsx)("div",{className:"excalidraw-tooltip-icon",children:b0})})]})}),bd=H({name:"saveToActiveFile",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}=oc(e.fileHandle)?await X2(t,e,r.files,r.getName()):await ac(t,e,r.files,r.getName());return{commitToHistory:!1,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),{commitToHistory:!1}}},keyTest:t=>t.key===S.S&&t[S.CTRL_OR_CMD]&&!t.shiftKey}),Ol=H({name:"saveFileToDisk",viewMode:!0,trackEvent:{category:"export"},perform:async(t,e,o,r)=>{try{let{fileHandle:n}=await ac(t,{...e,fileHandle:null},r.files,r.getName());return{commitToHistory:!1,appState:{...e,openDialog:null,fileHandle:n,toast:{message:g("toast.fileSaved")}}}}catch(n){return n?.name!=="AbortError"?console.error(n):console.warn(n),{commitToHistory:!1}}},keyTest:t=>t.key===S.S&&t.shiftKey&&t[S.CTRL_OR_CMD],PanelComponent:({updateData:t})=>(0,io.jsx)(ae,{type:"button",icon:d0,title:g("buttons.saveAs"),"aria-label":g("buttons.saveAs"),showAriaLabel:ke().editor.isMobile,hidden:!Di,onClick:()=>t(null),"data-testid":"save-as-button"})}),ha=H({name:"loadScene",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 Su(e,t);return{elements:n,appState:i,files:a,commitToHistory:!0}}catch(n){return n?.name==="AbortError"?(console.warn(n),!1):{elements:t,appState:{...e,errorMessage:n.message},files:r.files,commitToHistory:!1}}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.O}),J2=H({name:"exportWithDarkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(t,e,o)=>({appState:{...e,exportWithDarkMode:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,io.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,io.jsx)(j2,{value:t.exportWithDarkMode?dt.DARK:dt.LIGHT,onChange:o=>{e(o===dt.DARK)},title:g("imageExportDialog.label.darkMode")})})});h();var Q2="{}",Gp=H({name:"copyStyles",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=[],i=t.find(a=>e.selectedElementIds[a.id]);if(n.push(i),i&&er(i)){let a=nt(i,r.scene.getNonDeletedElementsMap());n.push(a)}return i&&(Q2=JSON.stringify(n)),{appState:{...e,toast:{message:g("toast.copyStyles")}},commitToHistory:!1}},contextItemLabel:"labels.copyStyles",keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.C}),Vp=H({name:"pasteStyles",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=JSON.parse(Q2),i=n[0],a=n[1];if(!Rg(i))return{elements:t,commitToHistory:!1};let l=Se(t,e,{includeBoundTextElement:!0}),c=l.map(s=>s.id);return{elements:t.map(s=>{if(c.includes(s.id)){let m=i;if(ie(s)&&s.containerId&&(m=a),!m)return s;let d=ce(s,{backgroundColor:m?.backgroundColor,strokeWidth:m?.strokeWidth,strokeColor:m?.strokeColor,strokeStyle:m?.strokeStyle,fillStyle:m?.fillStyle,opacity:m?.opacity,roughness:m?.roughness,roundness:m.roundness?Ng(m.roundness.type,s)?m.roundness:Og(s):null});if(ie(d)){let p=m.fontSize||xr,u=m.fontFamily||gi;d=ce(d,{fontSize:p,fontFamily:u,textAlign:m.textAlign||Qh,lineHeight:m.lineHeight||Tr(u)});let b=null;d.containerId&&(b=l.find(x=>ie(d)&&x.id===d.containerId)||null),Bt(d,b,r.scene.getNonDeletedElementsMap())}return d.type==="arrow"&&yr(m)&&(d=ce(d,{startArrowhead:m.startArrowhead,endArrowhead:m.endArrowhead})),we(s)&&(d=ce(d,{roundness:null,backgroundColor:"transparent"})),d}return s}),commitToHistory:!0}},contextItemLabel:"labels.pasteStyles",keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.V});h();var Kp=v(T(),1),P4=H({name:"toggleCanvasMenu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="canvas"?null:"canvas"},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,Kp.jsx)(ae,{type:"button",icon:Ac,"aria-label":g("buttons.menu"),onClick:e,selected:t.openMenu==="canvas"})}),D4=H({name:"toggleEditMenu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="shape"?null:"shape"},commitToHistory:!1}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Kp.jsx)(ae,{visible:$i(e,he(t)),type:"button",icon:m0,"aria-label":g("buttons.edit"),onClick:o,selected:e.openMenu==="shape"})}),Jn=H({name:"toggleShortcuts",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"}},commitToHistory:!1}),keyTest:t=>t.key===S.QUESTION_MARK});h();var Bl=v(T(),1),R4=t=>{if(t.length>=2){let e=t[0].groupIds;for(let o of e)if(t.reduce((r,n)=>r&&Ai(n,o),!0))return!0}return!1},ey=(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});return r.length>=2&&!R4(r)},Yp=H({name:"group",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,commitToHistory:!1};let i=kr(e);if(i.length===1){let x=i[0],y=new Set(ut(t,x).map(C=>C.id)),w=new Set(n.map(C=>C.id));if(new Set([...Array.from(y),...Array.from(w)]).size===y.size)return{appState:e,elements:t,commitToHistory:!1}}let a=[...t];new Set(n.map(x=>x.frameId)).size>1&&Q1(n).forEach((y,w)=>{pc(y,r.scene.getNonDeletedElementsMap())});let c=Qr(),s=Be(n);a=a.map(x=>s.get(x.id)?ce(x,{groupIds:h1(x.groupIds,c,e.editingGroupId)}):x);let m=ut(a,c),d=m[m.length-1],p=a.lastIndexOf(d),u=a.slice(p+1);return a=[...a.slice(0,p).filter(x=>!Ai(x,c)),...m,...u],{appState:{...e,...d1(c,{...e,selectedGroupIds:{}},he(a))},elements:a,commitToHistory:!0}},contextItemLabel:"labels.group",predicate:(t,e,o,r)=>ey(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,Bl.jsx)(ae,{hidden:!ey(t,e,r),type:"button",icon:(0,Bl.jsx)(P0,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.group")} \u2014 ${N("CtrlOrCmd+G")}`,"aria-label":g("labels.group"),visible:Re(he(t),e)})}),Zp=H({name:"ungroup",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=kr(e),i=Be(t);if(n.length===0)return{appState:e,elements:t,commitToHistory:!1};let a=[...t],l=[];a=a.map(p=>{gt(p)&&l.push(p.id);let u=g1(p.groupIds,e.selectedGroupIds);return u.length===p.groupIds.length?p:ce(p,{groupIds:u})});let c=At(e,he(a),e,null),s=r.scene.getSelectedElements(e),m=new Set(s.filter(p=>p.frameId).map(p=>p.frameId));return eb(t).filter(p=>m.has(p.id)).forEach(p=>{p&&(a=fc(a,Bi(a,p,e,i),p,r))}),c.selectedElementIds=Object.entries(c.selectedElementIds).reduce((p,[u,b])=>(b&&!l.includes(u)&&(p[u]=!0),p),{}),{appState:{...e,...c},elements:a,commitToHistory:!0}},keyTest:t=>t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G.toUpperCase(),contextItemLabel:"labels.ungroup",predicate:(t,e)=>kr(e).length>0,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Bl.jsx)(ae,{type:"button",hidden:kr(e).length===0,icon:(0,Bl.jsx)(D0,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.ungroup")} \u2014 ${N("CtrlOrCmd+Shift+G")}`,"aria-label":g("labels.ungroup"),visible:Re(he(t),e)})});h();h();function N4(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 Qn=t=>`hsl(${Math.abs(N4(t))%37*10}, 100%, 83%)`,ty=t=>{let e=t?.trim()?.codePointAt(0);return(e?String.fromCodePoint(e):"?").toUpperCase()};h();var oy=v($(),1);var jp=v(T(),1),Xp=({color:t,onClick:e,name:o,src:r,isBeingFollowed:n,isCurrentUser:i})=>{let a=ty(o),[l,c]=(0,oy.useState)(!1),s=!l&&r,m=s?void 0:{background:t};return(0,jp.jsx)("div",{className:F("Avatar",{"Avatar--is-followed":n,"Avatar--is-current-user":i}),style:m,onClick:e,children:s?(0,jp.jsx)("img",{className:"Avatar-img",src:r,alt:a,referrerPolicy:"no-referrer",onError:()=>c(!0)}):a})};var ei=v(T(),1),O4=H({name:"goToCollaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(t,e,o)=>!o.socketId||e.userToFollow?.socketId===o.socketId||o.isCurrentUser?{appState:{...e,userToFollow:null},commitToHistory:!1}:{appState:{...e,userToFollow:{socketId:o.socketId,username:o.username||""},openMenu:e.openMenu==="canvas"?null:e.openMenu},commitToHistory:!1},PanelComponent:({updateData:t,data:e,appState:o})=>{let{clientId:r,collaborator:n,withName:i,isBeingFollowed:a}=e,l=Qn(r);return i?(0,ei.jsxs)("div",{className:"dropdown-menu-item dropdown-menu-item-base UserList__collaborator",onClick:()=>t(n),children:[(0,ei.jsx)(Xp,{color:l,onClick:()=>{},name:n.username||"",src:n.avatarUrl,isBeingFollowed:a,isCurrentUser:n.isCurrentUser===!0}),(0,ei.jsx)("div",{className:"UserList__collaborator-name",children:n.username}),(0,ei.jsx)("div",{className:"UserList__collaborator-follow-status-icon",style:{visibility:a?"visible":"hidden"},title:a?g("userList.hint.followStatus"):void 0,"aria-hidden":!0,children:Bc})]}):(0,ei.jsx)(Xp,{color:l,onClick:()=>{t(n)},name:n.username||"",src:n.avatarUrl,isBeingFollowed:a,isCurrentUser:n.isCurrentUser===!0})}});h();var qp=H({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 As)if(n.some(a=>a.type===i))return{commitToHistory:!1,appState:{...e,errorMessage:g(`errors.libraryElementTypeError.${i}`)}};return r.library.getLatestLibrary().then(i=>r.library.setLibrary([{id:Qr(),status:"unpublished",elements:n.map(Li),created:Date.now()},...i])).then(()=>({commitToHistory:!1,appState:{...e,toast:{message:g("toast.addedToLibrary")}}})).catch(i=>({commitToHistory:!1,appState:{...e,errorMessage:i.message}}))},contextItemLabel:"labels.addToLibrary"});h();h();var ry=(t,e,o)=>{let r=Bn(t,e),n=xo(t);return r.flatMap(i=>{let a=B4(i,n,o);return i.map(l=>ce(l,{x:l.x+a.x,y:l.y+a.y}))})},B4=(t,e,{axis:o,position:r})=>{let n=xo(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 ti=v(T(),1),Io=(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>1&&!n.some(i=>we(i))},ga=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=Be(t),a=ry(n,i,r),l=Be(a);return tr(t.map(c=>l.get(c.id)||c),e,o)},F4=H({name:"alignTop",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"start",axis:"y"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_UP,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:C0,onClick:()=>o(null),title:`${g("labels.alignTop")} \u2014 ${N("CtrlOrCmd+Shift+Up")}`,"aria-label":g("labels.alignTop"),visible:Re(he(t),e)})}),$4=H({name:"alignBottom",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"end",axis:"y"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_DOWN,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:T0,onClick:()=>o(null),title:`${g("labels.alignBottom")} \u2014 ${N("CtrlOrCmd+Shift+Down")}`,"aria-label":g("labels.alignBottom"),visible:Re(he(t),e)})}),H4=H({name:"alignLeft",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"start",axis:"x"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_LEFT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:S0,onClick:()=>o(null),title:`${g("labels.alignLeft")} \u2014 ${N("CtrlOrCmd+Shift+Left")}`,"aria-label":g("labels.alignLeft"),visible:Re(he(t),e)})}),z4=H({name:"alignRight",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"end",axis:"x"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_RIGHT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:k0,onClick:()=>o(null),title:`${g("labels.alignRight")} \u2014 ${N("CtrlOrCmd+Shift+Right")}`,"aria-label":g("labels.alignRight"),visible:Re(he(t),e)})}),U4=H({name:"alignVerticallyCentered",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"center",axis:"y"}),commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:M0,onClick:()=>o(null),title:g("labels.centerVertically"),"aria-label":g("labels.centerVertically"),visible:Re(he(t),e)})}),W4=H({name:"alignHorizontallyCentered",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"center",axis:"x"}),commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:A0,onClick:()=>o(null),title:g("labels.centerHorizontally"),"aria-label":g("labels.centerHorizontally"),visible:Re(he(t),e)})});h();h();var ny=(t,e,o)=>{let[r,n,i,a]=o.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],l=xo(t),c=Bn(t,e).map(p=>[p,xo(p)]).sort((p,u)=>p[1][n]-u[1][n]),s=0;for(let p of c)s+=p[1][a];let m=(l[a]-s)/(c.length-1);if(m<0){let p=c.findIndex(y=>y[1][r]===l[r]),u=c.findIndex(y=>y[1][i]===l[i]),b=(c[u][1][n]-c[p][1][n])/(c.length-1),x=c[p][1][n];return c.flatMap(([y,w],k)=>{let C={x:0,y:0};return k!==p&&k!==u&&(x+=b,C[o.axis]=x-w[n]),y.map(I=>ce(I,{x:I.x+C.x,y:I.y+C.y}))})}let d=l[r];return c.flatMap(([p,u])=>{let b={x:0,y:0};return b[o.axis]=d-u[r],d+=m,d+=u[a],p.map(x=>ce(x,{x:x.x+b.x,y:x.y+b.y}))})};var Jp=v(T(),1),iy=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length>1&&!o.some(r=>we(r))},ay=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=ny(n,o.scene.getNonDeletedElementsMap(),r),a=Be(i);return tr(t.map(l=>a.get(l.id)||l),e,o)},G4=H({name:"distributeHorizontally",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:ay(t,e,r,{space:"between",axis:"x"}),commitToHistory:!0}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.H,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Jp.jsx)(ae,{hidden:!iy(e,r),type:"button",icon:I0,onClick:()=>o(null),title:`${g("labels.distributeHorizontally")} \u2014 ${N("Alt+H")}`,"aria-label":g("labels.distributeHorizontally"),visible:Re(he(t),e)})}),V4=H({name:"distributeVertically",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:ay(t,e,r,{space:"between",axis:"y"}),commitToHistory:!0}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.V,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Jp.jsx)(ae,{hidden:!iy(e,r),type:"button",icon:_0,onClick:()=>o(null),title:`${g("labels.distributeVertically")} \u2014 ${N("Alt+V")}`,"aria-label":g("labels.distributeVertically"),visible:Re(he(t),e)})});h();var Qp=H({name:"flipHorizontal",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:tr(ly(t,r.scene.getNonDeletedElementsMap(),e,"horizontal"),e,r),appState:e,commitToHistory:!0}),keyTest:t=>t.shiftKey&&t.code===me.H,contextItemLabel:"labels.flipHorizontal"}),ef=H({name:"flipVertical",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:tr(ly(t,r.scene.getNonDeletedElementsMap(),e,"vertical"),e,r),appState:e,commitToHistory:!0}),keyTest:t=>t.shiftKey&&t.code===me.V&&!t[S.CTRL_OR_CMD],contextItemLabel:"labels.flipVertical"}),ly=(t,e,o,r)=>{let n=Se(he(t),o,{includeBoundTextElement:!0,includeElementsInFrames:!0}),i=K4(n,t,e,o,r),a=Be(i);return t.map(l=>a.get(l.id)||l)},K4=(t,e,o,r,n)=>{let{minX:i,minY:a,maxX:l,maxY:c}=xo(t);return cb(o,t,o,"nw",!0,n==="horizontal"?l:i,n==="horizontal"?a:c),On(r)?tl(t,e,o):rl(t,o),t};h();var ba=H({name:"copy",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await j1(n,r.files,o)}catch(i){return{commitToHistory:!1,appState:{...e,errorMessage:i.message}}}return{commitToHistory:!1}},contextItemLabel:"labels.copy",keyTest:void 0}),tf=H({name:"paste",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n;try{n=await X1()}catch(i){return i.name==="AbortError"||i.name==="NotAllowedError"?!1:(console.error(`actionPaste ${i.name}: ${i.message}`),Yr?{commitToHistory:!1,appState:{...e,errorMessage:g("hints.firefox_clipboard_write")}}:{commitToHistory:!1,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnRead")}})}try{r.pasteFromClipboard(Z1({types:n}))}catch(i){return console.error(i),{commitToHistory:!1,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnParse")}}}return{commitToHistory:!1}},contextItemLabel:"labels.paste",keyTest:void 0}),xd=H({name:"cut",trackEvent:{category:"element"},perform:(t,e,o,r)=>(ba.perform(t,e,o,r),xl.perform(t,e,null,r)),contextItemLabel:"labels.cut",keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.X}),vd=H({name:"copyAsSvg",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{commitToHistory:!1};let{exportedElements:n,exportingFrame:i}=jn(t,e,!0);try{return await Xn("clipboard-svg",n,e,r.files,{...e,exportingFrame:i,name:r.getName()}),{commitToHistory:!1}}catch(a){return console.error(a),{appState:{...e,errorMessage:a.message},commitToHistory:!1}}},predicate:t=>Iu&&t.length>0,contextItemLabel:"labels.copyAsSvg"}),yd=H({name:"copyAsPng",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{commitToHistory:!1};let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:i,exportingFrame:a}=jn(t,e,!0);try{return await Xn("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")})}},commitToHistory:!1}}catch(l){return console.error(l),{appState:{...e,errorMessage:l.message},commitToHistory:!1}}},predicate:t=>Ni&&t.length>0,contextItemLabel:"labels.copyAsPng",keyTest:t=>t.code===me.C&&t.altKey&&t.shiftKey}),Ed=H({name:"copyText",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let i=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).reduce((a,l)=>(ie(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 ay=async(t,e,o,r)=>{let{exportBackground:n,viewBackgroundColor:i,fileHandle:a}=e,l=O1(a);if(!a||!B1(l))throw new Error("fileHandle should exist and should be of type svg or png when resaving");e={...e,exportEmbedScene:!0};let{exportedElements:c,exportingFrame:s}=jn(t,e,!1);return await Xn(l,c,e,o,{exportBackground:n,viewBackgroundColor:i,name:r,fileHandle:a,exportingFrame:s}),{fileHandle:a}};h();var $l=v(C(),1),qn=({children:t,checked:e,onChange:o,className:r})=>(0,$l.jsxs)("div",{className:F("Checkbox",r,{"is-checked":e}),onClick:n=>{o(!e,n),n.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,$l.jsx)("button",{className:"Checkbox-box",role:"checkbox","aria-checked":e,children:x0}),(0,$l.jsx)("div",{className:"Checkbox-label",children:t})]});var io=v(C(),1),Jp=H({name:"changeProjectName",trackEvent:!1,perform:(t,e,o)=>({appState:{...e,name:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e,appProps:o,data:r,app:n})=>(0,io.jsx)(ry,{label:g("labels.fileTitle"),value:n.getName(),onChange:i=>e(i),ignoreFocus:r?.ignoreFocus??!1})}),ly=H({name:"changeExportScale",trackEvent:{category:"export",action:"scale"},perform:(t,e,o)=>({appState:{...e,exportScale:o},commitToHistory:!1}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=he(t),i=Ne(r,e)?ke(r,e):r;return(0,io.jsx)(io.Fragment,{children:Ps.map(a=>{let[l,c]=ob(i,jr,a),s=`${g("imageExportDialog.label.scale")} ${a}x (${l}x${c})`;return(0,io.jsx)(ae,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:s,"aria-label":s,id:"export-canvas-scale",checked:a===e.exportScale,onChange:()=>o(a)},a)})})}}),Qp=H({name:"changeExportBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(t,e,o)=>({appState:{...e,exportBackground:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,io.jsx)(qn,{checked:t.exportBackground,onChange:o=>e(o),children:g("imageExportDialog.label.withBackground")})}),Td=H({name:"changeExportEmbedScene",trackEvent:{category:"export",action:"embedScene"},perform:(t,e,o)=>({appState:{...e,exportEmbedScene:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,io.jsxs)(qn,{checked:t.exportEmbedScene,onChange:o=>e(o),children:[g("imageExportDialog.label.embedScene"),(0,io.jsx)(co,{label:g("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,io.jsx)("div",{className:"excalidraw-tooltip-icon",children:I0})})]})}),Cd=H({name:"saveToActiveFile",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}=cc(e.fileHandle)?await ay(t,e,r.files,r.getName()):await pc(t,e,r.files,r.getName());return{commitToHistory:!1,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),{commitToHistory:!1}}},keyTest:t=>t.key===S.S&&t[S.CTRL_OR_CMD]&&!t.shiftKey}),Hl=H({name:"saveFileToDisk",viewMode:!0,trackEvent:{category:"export"},perform:async(t,e,o,r)=>{try{let{fileHandle:n}=await pc(t,{...e,fileHandle:null},r.files,r.getName());return{commitToHistory:!1,appState:{...e,openDialog:null,fileHandle:n,toast:{message:g("toast.fileSaved")}}}}catch(n){return n?.name!=="AbortError"?console.error(n):console.warn(n),{commitToHistory:!1}}},keyTest:t=>t.key===S.S&&t.shiftKey&&t[S.CTRL_OR_CMD],PanelComponent:({updateData:t})=>(0,io.jsx)(ae,{type:"button",icon:y0,title:g("buttons.saveAs"),"aria-label":g("buttons.saveAs"),showAriaLabel:Ie().editor.isMobile,hidden:!Di,onClick:()=>t(null),"data-testid":"save-as-button"})}),ha=H({name:"loadScene",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 Du(e,t);return{elements:n,appState:i,files:a,commitToHistory:!0}}catch(n){return n?.name==="AbortError"?(console.warn(n),!1):{elements:t,appState:{...e,errorMessage:n.message},files:r.files,commitToHistory:!1}}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.O}),sy=H({name:"exportWithDarkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(t,e,o)=>({appState:{...e,exportWithDarkMode:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,io.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,io.jsx)(iy,{value:t.exportWithDarkMode?dt.DARK:dt.LIGHT,onChange:o=>{e(o===dt.DARK)},title:g("imageExportDialog.label.darkMode")})})});h();var cy="{}",ef=H({name:"copyStyles",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=[],i=t.find(a=>e.selectedElementIds[a.id]);if(n.push(i),i&&tr(i)){let a=nt(i,r.scene.getNonDeletedElementsMap());n.push(a)}return i&&(cy=JSON.stringify(n)),{appState:{...e,toast:{message:g("toast.copyStyles")}},commitToHistory:!1}},contextItemLabel:"labels.copyStyles",keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.C}),tf=H({name:"pasteStyles",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=JSON.parse(cy),i=n[0],a=n[1];if(!Gg(i))return{elements:t,commitToHistory:!1};let l=ke(t,e,{includeBoundTextElement:!0}),c=l.map(s=>s.id);return{elements:t.map(s=>{if(c.includes(s.id)){let m=i;if(ie(s)&&s.containerId&&(m=a),!m)return s;let d=ce(s,{backgroundColor:m?.backgroundColor,strokeWidth:m?.strokeWidth,strokeColor:m?.strokeColor,strokeStyle:m?.strokeStyle,fillStyle:m?.fillStyle,opacity:m?.opacity,roughness:m?.roughness,roundness:m.roundness?Vg(m.roundness.type,s)?m.roundness:Kg(s):null});if(ie(d)){let p=m.fontSize||xr,u=m.fontFamily||gi;d=ce(d,{fontSize:p,fontFamily:u,textAlign:m.textAlign||sg,lineHeight:m.lineHeight||Cr(u)});let b=null;d.containerId&&(b=l.find(x=>ie(d)&&x.id===d.containerId)||null),Bt(d,b,r.scene.getNonDeletedElementsMap())}return d.type==="arrow"&&yr(m)&&(d=ce(d,{startArrowhead:m.startArrowhead,endArrowhead:m.endArrowhead})),we(s)&&(d=ce(d,{roundness:null,backgroundColor:"transparent"})),d}return s}),commitToHistory:!0}},contextItemLabel:"labels.pasteStyles",keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.V});h();var of=v(C(),1),V4=H({name:"toggleCanvasMenu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="canvas"?null:"canvas"},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,of.jsx)(ae,{type:"button",icon:Bc,"aria-label":g("buttons.menu"),onClick:e,selected:t.openMenu==="canvas"})}),K4=H({name:"toggleEditMenu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="shape"?null:"shape"},commitToHistory:!1}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,of.jsx)(ae,{visible:$i(e,he(t)),type:"button",icon:E0,"aria-label":g("buttons.edit"),onClick:o,selected:e.openMenu==="shape"})}),Jn=H({name:"toggleShortcuts",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"}},commitToHistory:!1}),keyTest:t=>t.key===S.QUESTION_MARK});h();var zl=v(C(),1),Y4=t=>{if(t.length>=2){let e=t[0].groupIds;for(let o of e)if(t.reduce((r,n)=>r&&Ai(n,o),!0))return!0}return!1},dy=(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});return r.length>=2&&!Y4(r)},rf=H({name:"group",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,commitToHistory:!1};let i=kr(e);if(i.length===1){let x=i[0],y=new Set(ut(t,x).map(T=>T.id)),w=new Set(n.map(T=>T.id));if(new Set([...Array.from(y),...Array.from(w)]).size===y.size)return{appState:e,elements:t,commitToHistory:!1}}let a=[...t];new Set(n.map(x=>x.frameId)).size>1&&cb(n).forEach((y,w)=>{yc(y,r.scene.getNonDeletedElementsMap())});let c=Qr(),s=Se(n);a=a.map(x=>s.get(x.id)?ce(x,{groupIds:S1(x.groupIds,c,e.editingGroupId)}):x);let m=ut(a,c),d=m[m.length-1],p=a.lastIndexOf(d),u=a.slice(p+1);return a=[...a.slice(0,p).filter(x=>!Ai(x,c)),...m,...u],{appState:{...e,...y1(c,{...e,selectedGroupIds:{}},he(a))},elements:a,commitToHistory:!0}},contextItemLabel:"labels.group",predicate:(t,e,o,r)=>dy(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,zl.jsx)(ae,{hidden:!dy(t,e,r),type:"button",icon:(0,zl.jsx)(U0,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.group")} \u2014 ${N("CtrlOrCmd+G")}`,"aria-label":g("labels.group"),visible:Ne(he(t),e)})}),nf=H({name:"ungroup",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=kr(e),i=Se(t);if(n.length===0)return{appState:e,elements:t,commitToHistory:!1};let a=[...t],l=[];a=a.map(p=>{gt(p)&&l.push(p.id);let u=k1(p.groupIds,e.selectedGroupIds);return u.length===p.groupIds.length?p:ce(p,{groupIds:u})});let c=At(e,he(a),e,null),s=r.scene.getSelectedElements(e),m=new Set(s.filter(p=>p.frameId).map(p=>p.frameId));return db(t).filter(p=>m.has(p.id)).forEach(p=>{p&&(a=Ec(a,Bi(a,p,e,i),p,r))}),c.selectedElementIds=Object.entries(c.selectedElementIds).reduce((p,[u,b])=>(b&&!l.includes(u)&&(p[u]=!0),p),{}),{appState:{...e,...c},elements:a,commitToHistory:!0}},keyTest:t=>t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G.toUpperCase(),contextItemLabel:"labels.ungroup",predicate:(t,e)=>kr(e).length>0,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,zl.jsx)(ae,{type:"button",hidden:kr(e).length===0,icon:(0,zl.jsx)(W0,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.ungroup")} \u2014 ${N("CtrlOrCmd+Shift+G")}`,"aria-label":g("labels.ungroup"),visible:Ne(he(t),e)})});h();h();function Z4(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 Qn=t=>`hsl(${Math.abs(Z4(t))%37*10}, 100%, 83%)`,my=t=>{let e=t?.trim()?.codePointAt(0);return(e?String.fromCodePoint(e):"?").toUpperCase()};h();var uy=v($(),1);var af=v(C(),1),lf=({color:t,onClick:e,name:o,src:r,isBeingFollowed:n,isCurrentUser:i})=>{let a=my(o),[l,c]=(0,uy.useState)(!1),s=!l&&r,m=s?void 0:{background:t};return(0,af.jsx)("div",{className:F("Avatar",{"Avatar--is-followed":n,"Avatar--is-current-user":i}),style:m,onClick:e,children:s?(0,af.jsx)("img",{className:"Avatar-img",src:r,alt:a,referrerPolicy:"no-referrer",onError:()=>c(!0)}):a})};var ei=v(C(),1),j4=H({name:"goToCollaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(t,e,o)=>!o.socketId||e.userToFollow?.socketId===o.socketId||o.isCurrentUser?{appState:{...e,userToFollow:null},commitToHistory:!1}:{appState:{...e,userToFollow:{socketId:o.socketId,username:o.username||""},openMenu:e.openMenu==="canvas"?null:e.openMenu},commitToHistory:!1},PanelComponent:({updateData:t,data:e,appState:o})=>{let{clientId:r,collaborator:n,withName:i,isBeingFollowed:a}=e,l=Qn(r);return i?(0,ei.jsxs)("div",{className:"dropdown-menu-item dropdown-menu-item-base UserList__collaborator",onClick:()=>t(n),children:[(0,ei.jsx)(lf,{color:l,onClick:()=>{},name:n.username||"",src:n.avatarUrl,isBeingFollowed:a,isCurrentUser:n.isCurrentUser===!0}),(0,ei.jsx)("div",{className:"UserList__collaborator-name",children:n.username}),(0,ei.jsx)("div",{className:"UserList__collaborator-follow-status-icon",style:{visibility:a?"visible":"hidden"},title:a?g("userList.hint.followStatus"):void 0,"aria-hidden":!0,children:Gc})]}):(0,ei.jsx)(lf,{color:l,onClick:()=>{t(n)},name:n.username||"",src:n.avatarUrl,isBeingFollowed:a,isCurrentUser:n.isCurrentUser===!0})}});h();var sf=H({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 Os)if(n.some(a=>a.type===i))return{commitToHistory:!1,appState:{...e,errorMessage:g(`errors.libraryElementTypeError.${i}`)}};return r.library.getLatestLibrary().then(i=>r.library.setLibrary([{id:Qr(),status:"unpublished",elements:n.map(Li),created:Date.now()},...i])).then(()=>({commitToHistory:!1,appState:{...e,toast:{message:g("toast.addedToLibrary")}}})).catch(i=>({commitToHistory:!1,appState:{...e,errorMessage:i.message}}))},contextItemLabel:"labels.addToLibrary"});h();h();var py=(t,e,o)=>{let r=Bn(t,e),n=xo(t);return r.flatMap(i=>{let a=X4(i,n,o);return i.map(l=>ce(l,{x:l.x+a.x,y:l.y+a.y}))})},X4=(t,e,{axis:o,position:r})=>{let n=xo(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 ti=v(C(),1),Io=(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>1&&!n.some(i=>we(i))},ga=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=Se(t),a=py(n,i,r),l=Se(a);return or(t.map(c=>l.get(c.id)||c),e,o)},q4=H({name:"alignTop",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"start",axis:"y"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_UP,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:D0,onClick:()=>o(null),title:`${g("labels.alignTop")} \u2014 ${N("CtrlOrCmd+Shift+Up")}`,"aria-label":g("labels.alignTop"),visible:Ne(he(t),e)})}),J4=H({name:"alignBottom",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"end",axis:"y"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_DOWN,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:R0,onClick:()=>o(null),title:`${g("labels.alignBottom")} \u2014 ${N("CtrlOrCmd+Shift+Down")}`,"aria-label":g("labels.alignBottom"),visible:Ne(he(t),e)})}),Q4=H({name:"alignLeft",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"start",axis:"x"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_LEFT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:N0,onClick:()=>o(null),title:`${g("labels.alignLeft")} \u2014 ${N("CtrlOrCmd+Shift+Left")}`,"aria-label":g("labels.alignLeft"),visible:Ne(he(t),e)})}),eT=H({name:"alignRight",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"end",axis:"x"}),commitToHistory:!0}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_RIGHT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:O0,onClick:()=>o(null),title:`${g("labels.alignRight")} \u2014 ${N("CtrlOrCmd+Shift+Right")}`,"aria-label":g("labels.alignRight"),visible:Ne(he(t),e)})}),tT=H({name:"alignVerticallyCentered",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"center",axis:"y"}),commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:$0,onClick:()=>o(null),title:g("labels.centerVertically"),"aria-label":g("labels.centerVertically"),visible:Ne(he(t),e)})}),oT=H({name:"alignHorizontallyCentered",trackEvent:{category:"element"},predicate:Io,perform:(t,e,o,r)=>({appState:e,elements:ga(t,e,r,{position:"center",axis:"x"}),commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ti.jsx)(ae,{hidden:!Io(t,e,null,r),type:"button",icon:H0,onClick:()=>o(null),title:g("labels.centerHorizontally"),"aria-label":g("labels.centerHorizontally"),visible:Ne(he(t),e)})});h();h();var fy=(t,e,o)=>{let[r,n,i,a]=o.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],l=xo(t),c=Bn(t,e).map(p=>[p,xo(p)]).sort((p,u)=>p[1][n]-u[1][n]),s=0;for(let p of c)s+=p[1][a];let m=(l[a]-s)/(c.length-1);if(m<0){let p=c.findIndex(y=>y[1][r]===l[r]),u=c.findIndex(y=>y[1][i]===l[i]),b=(c[u][1][n]-c[p][1][n])/(c.length-1),x=c[p][1][n];return c.flatMap(([y,w],k)=>{let T={x:0,y:0};return k!==p&&k!==u&&(x+=b,T[o.axis]=x-w[n]),y.map(I=>ce(I,{x:I.x+T.x,y:I.y+T.y}))})}let d=l[r];return c.flatMap(([p,u])=>{let b={x:0,y:0};return b[o.axis]=d-u[r],d+=m,d+=u[a],p.map(x=>ce(x,{x:x.x+b.x,y:x.y+b.y}))})};var cf=v(C(),1),hy=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length>1&&!o.some(r=>we(r))},gy=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=fy(n,o.scene.getNonDeletedElementsMap(),r),a=Se(i);return or(t.map(l=>a.get(l.id)||l),e,o)},rT=H({name:"distributeHorizontally",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:gy(t,e,r,{space:"between",axis:"x"}),commitToHistory:!0}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.H,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,cf.jsx)(ae,{hidden:!hy(e,r),type:"button",icon:B0,onClick:()=>o(null),title:`${g("labels.distributeHorizontally")} \u2014 ${N("Alt+H")}`,"aria-label":g("labels.distributeHorizontally"),visible:Ne(he(t),e)})}),nT=H({name:"distributeVertically",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:gy(t,e,r,{space:"between",axis:"y"}),commitToHistory:!0}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.V,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,cf.jsx)(ae,{hidden:!hy(e,r),type:"button",icon:F0,onClick:()=>o(null),title:`${g("labels.distributeVertically")} \u2014 ${N("Alt+V")}`,"aria-label":g("labels.distributeVertically"),visible:Ne(he(t),e)})});h();var df=H({name:"flipHorizontal",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:or(by(t,r.scene.getNonDeletedElementsMap(),e,"horizontal"),e,r),appState:e,commitToHistory:!0}),keyTest:t=>t.shiftKey&&t.code===me.H,contextItemLabel:"labels.flipHorizontal"}),mf=H({name:"flipVertical",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:or(by(t,r.scene.getNonDeletedElementsMap(),e,"vertical"),e,r),appState:e,commitToHistory:!0}),keyTest:t=>t.shiftKey&&t.code===me.V&&!t[S.CTRL_OR_CMD],contextItemLabel:"labels.flipVertical"}),by=(t,e,o,r)=>{let n=ke(he(t),o,{includeBoundTextElement:!0,includeElementsInFrames:!0}),i=iT(n,t,e,o,r),a=Se(i);return t.map(l=>a.get(l.id)||l)},iT=(t,e,o,r,n)=>{let{minX:i,minY:a,maxX:l,maxY:c}=xo(t);return vb(o,t,o,"nw",!0,n==="horizontal"?l:i,n==="horizontal"?a:c),On(r)?nl(t,e,o):al(t,o),t};h();var ba=H({name:"copy",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await ib(n,r.files,o)}catch(i){return{commitToHistory:!1,appState:{...e,errorMessage:i.message}}}return{commitToHistory:!1}},contextItemLabel:"labels.copy",keyTest:void 0}),uf=H({name:"paste",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n;try{n=await ab()}catch(i){return i.name==="AbortError"||i.name==="NotAllowedError"?!1:(console.error(`actionPaste ${i.name}: ${i.message}`),Yr?{commitToHistory:!1,appState:{...e,errorMessage:g("hints.firefox_clipboard_write")}}:{commitToHistory:!1,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnRead")}})}try{r.pasteFromClipboard(nb({types:n}))}catch(i){return console.error(i),{commitToHistory:!1,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnParse")}}}return{commitToHistory:!1}},contextItemLabel:"labels.paste",keyTest:void 0}),Sd=H({name:"cut",trackEvent:{category:"element"},perform:(t,e,o,r)=>(ba.perform(t,e,o,r),wl.perform(t,e,null,r)),contextItemLabel:"labels.cut",keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.X}),kd=H({name:"copyAsSvg",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{commitToHistory:!1};let{exportedElements:n,exportingFrame:i}=jn(t,e,!0);try{return await Xn("clipboard-svg",n,e,r.files,{...e,exportingFrame:i,name:r.getName()}),{commitToHistory:!1}}catch(a){return console.error(a),{appState:{...e,errorMessage:a.message},commitToHistory:!1}}},predicate:t=>Nu&&t.length>0,contextItemLabel:"labels.copyAsSvg"}),Id=H({name:"copyAsPng",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{commitToHistory:!1};let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:i,exportingFrame:a}=jn(t,e,!0);try{return await Xn("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")})}},commitToHistory:!1}}catch(l){return console.error(l),{appState:{...e,errorMessage:l.message},commitToHistory:!1}}},predicate:t=>Ni&&t.length>0,contextItemLabel:"labels.copyAsPng",keyTest:t=>t.code===me.C&&t.altKey&&t.shiftKey}),_d=H({name:"copyText",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let i=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).reduce((a,l)=>(ie(l)&&a.push(l.text),a),[]).join(`
|
|
44
44
|
|
|
45
|
-
`);try{Oi(i)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return{commitToHistory:!1}},predicate:(t,e,o,r)=>Iu&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).some(ie),contextItemLabel:"labels.copyText"});h();var wd=H({name:"gridMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.gridSize},perform(t,e){return{appState:{...e,gridSize:this.checked(e)?null:vr,objectsSnapModeEnabled:!1},commitToHistory:!1}},checked:t=>t.gridSize!==null,predicate:(t,e,o)=>typeof o.gridModeEnabled>"u",contextItemLabel:"labels.showGrid",keyTest:t=>t[S.CTRL_OR_CMD]&&t.code===me.QUOTE});h();var xa=H({name:"zenMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.zenModeEnabled},perform(t,e){return{appState:{...e,zenModeEnabled:!this.checked(e)},commitToHistory:!1}},checked:t=>t.zenModeEnabled,predicate:(t,e,o)=>typeof o.zenModeEnabled>"u",contextItemLabel:"buttons.zenMode",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.Z});h();var of=H({name:"objectsSnapMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.objectsSnapModeEnabled},perform(t,e){return{appState:{...e,objectsSnapModeEnabled:!this.checked(e),gridSize:null},commitToHistory:!1}},checked:t=>t.objectsSnapModeEnabled,predicate:(t,e,o)=>typeof o.objectsSnapModeEnabled>"u",contextItemLabel:"buttons.objectsSnapMode",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.S});h();var xn=H({name:"stats",viewMode:!0,trackEvent:{category:"menu"},perform(t,e){return{appState:{...e,showStats:!this.checked(e)},commitToHistory:!1}},checked:t=>t.showStats,contextItemLabel:"stats.title",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.SLASH});h();var rf=H({name:"unbindText",contextItemLabel:"labels.unbindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>r.scene.getSelectedElements(e).some(i=>er(i)),perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=r.scene.getNonDeletedElementsMap();return n.forEach(a=>{let l=nt(a,i);if(l){let{width:c,height:s}=Ks(l.originalText,Bo(l),l.lineHeight),m=qg(a.id);Xg(a.id);let{x:d,y:p}=Vs(a,l,i);J(l,{containerId:null,width:c,height:s,text:l.originalText,x:d,y:p}),J(a,{boundElements:a.boundElements?.filter(u=>u.id!==l.id),height:m||a.height})}}),{elements:t,appState:e,commitToHistory:!0}}}),nf=H({name:"bindText",contextItemLabel:"labels.bindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);if(n.length===2){let i=ie(n[0])||ie(n[1]),a;if(wi(n[0])?a=n[0]:wi(n[1])&&(a=n[1]),i&&a&&nt(a,r.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i,a;ie(n[0])&&wi(n[1])?(i=n[0],a=n[1]):(i=n[1],a=n[0]),J(i,{containerId:a.id,verticalAlign:fo.MIDDLE,textAlign:Ga.CENTER}),J(a,{boundElements:(a.boundElements||[]).concat({type:"text",id:i.id})});let l=a.height;return Bt(i,a,r.scene.getNonDeletedElementsMap()),il(a.id,l),{elements:Y4(t,a,i),appState:{...e,selectedElementIds:{[a.id]:!0}},commitToHistory:!0}}}),Y4=(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),r},Z4=(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),r},sy=H({name:"wrapTextInContainer",contextItemLabel:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=n.every(a=>ie(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(ie(l)){let c=on({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:Ci("rectangle")?ho.ADAPTIVE_RADIUS:ho.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:l.x-qm,y:l.y-qm,width:_i(l.width,"rectangle"),height:_i(l.height,"rectangle"),groupIds:l.groupIds,frameId:l.frameId});if(l.boundElements?.length){let s=l.boundElements.filter(d=>d.type==="arrow").map(d=>d.id);i.filter(d=>s.includes(d.id)).forEach(d=>{let p=d.startBinding,u=d.endBinding;p?.elementId===l.id&&(p={...p,elementId:c.id}),u?.elementId===l.id&&(u={...u,elementId:c.id}),(p||u)&&J(d,{startBinding:p,endBinding:u},!1)})}J(l,{containerId:c.id,verticalAlign:fo.MIDDLE,boundElements:null,textAlign:Ga.CENTER},!1),Bt(l,c,r.scene.getNonDeletedElementsMap()),i=Z4([...i,c],c,l),a[c.id]=!0}return{elements:i,appState:{...e,selectedElementIds:a},commitToHistory:!0}}});h();h();var Wo=v($(),1);var Fr=v(T(),1),sf=320,cy=85,af=5,j4=42,X4=500,lf=!1,Cd=new Map,dy=({element:t,elementsMap:e,setAppState:o,onLinkOpen:r,setToast:n,updateEmbedValidationStatus:i})=>{let a=ya(),l=va(),c=t.link||"",[s,m]=(0,Wo.useState)(c),d=(0,Wo.useRef)(null),p=a.showHyperlinkPopup==="editor",u=(0,Wo.useCallback)(()=>{if(!d.current)return;let k=Ir(d.current.value)||null;if(!t.link&&k&&ge("hyperlink","create"),Ot(t)){if(a.activeEmbeddable?.element===t&&o({activeEmbeddable:null}),!k){J(t,{link:null}),i(t,!1);return}if(!Pi(k,l.validateEmbeddable))k&&n({message:g("toast.unableToEmbed"),closable:!0}),t.link&&Cd.set(t.id,t.link),J(t,{link:k}),i(t,!1);else{let{width:C,height:I}=t,A=Fn(k);A?.error instanceof URIError&&n({message:g("toast.unrecognizedLinkFormat"),closable:!0});let _=A?A.intrinsicSize.w/A.intrinsicSize.h:1,M=Cd.get(t.id)!==t.link;J(t,{...M?{width:A?.type==="video"?C>I?C:I*_:C,height:A?.type==="video"&&C>I?C/_:I}:{},link:k}),i(t,!0),Cd.has(t.id)&&Cd.delete(t.id)}}else J(t,{link:k})},[t,n,l.validateEmbeddable,a.activeEmbeddable,o,i]);(0,Wo.useLayoutEffect)(()=>()=>{u()},[u]),(0,Wo.useEffect)(()=>{let k=null,C=I=>{if(p)return;k&&clearTimeout(k),J4(t,e,a,[I.clientX,I.clientY])&&(k=window.setTimeout(()=>{o({showHyperlinkPopup:!1})},X4))};return window.addEventListener("pointermove",C,!1),()=>{window.removeEventListener("pointermove",C,!1),k&&clearTimeout(k)}},[a,t,p,o,e]);let b=(0,Wo.useCallback)(()=>{ge("hyperlink","delete"),J(t,{link:null}),p&&(d.current.value=""),o({showHyperlinkPopup:!1})},[o,t,p]),x=()=>{ge("hyperlink","edit","popup-ui"),o({showHyperlinkPopup:"editor"})},{x:y,y:w}=my(t,a,e);return a.contextMenu||a.draggingElement||a.resizingElement||a.isRotating||a.openMenu||a.viewModeEnabled?null:(0,Fr.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${w}px`,left:`${y}px`,width:sf,padding:af},onClick:()=>{!t.link&&!p&&o({showHyperlinkPopup:"editor"})},children:[p?(0,Fr.jsx)("input",{className:F("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:d,value:s,onChange:k=>m(k.target.value),autoFocus:!0,onKeyDown:k=>{k.stopPropagation(),k[S.CTRL_OR_CMD]&&k.key===S.K&&k.preventDefault(),(k.key===S.ENTER||k.key===S.ESCAPE)&&(u(),o({showHyperlinkPopup:"info"}))}}):t.link?(0,Fr.jsx)("a",{href:Ir(t.link||""),className:"excalidraw-hyperlinkContainer-link",target:Xs(t.link)?"_self":"_blank",onClick:k=>{if(t.link&&r){let C=Rs("excalidraw-link",k.nativeEvent);r({...t,link:Ir(t.link)},C),C.defaultPrevented&&k.preventDefault()}},rel:"noopener noreferrer",children:t.link}):(0,Fr.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:g("labels.link.empty")}),(0,Fr.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!p&&(0,Fr.jsx)(ae,{type:"button",title:g("buttons.edit"),"aria-label":g("buttons.edit"),label:g("buttons.edit"),onClick:x,className:"excalidraw-hyperlinkContainer--edit",icon:Vi}),c&&!Ot(t)&&(0,Fr.jsx)(ae,{type:"button",title:g("buttons.remove"),"aria-label":g("buttons.remove"),label:g("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:ln})]})]})},my=(t,e,o)=>{let[r,n]=bo(t,o),{x:i,y:a}=Kt({sceneX:r+t.width/2,sceneY:n},e),l=i-e.offsetLeft-sf/2,c=a-e.offsetTop-cy;return{x:l,y:c}},cf=(t,e)=>{let o=Se(t,e);return o[0].link?Ot(o[0])?"labels.link.editEmbed":"labels.link.edit":Ot(o[0])?"labels.link.createEmbed":"labels.link.create"},Fl=null,uy=(t,e,o)=>{Fl&&clearTimeout(Fl),Fl=window.setTimeout(()=>q4(t,e,o),sg)},q4=(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]=bo(t,o),[c,s,m,d]=$1([n,i,a,l],t.angle,e),p=Kt({sceneX:c,sceneY:s},e);zp(r,{left:p.x,top:p.y,width:m,height:d},"top"),ge("hyperlink","tooltip","link-icon"),lf=!0},py=()=>{Fl&&clearTimeout(Fl),lf&&(lf=!1,pa().classList.remove("excalidraw-tooltip--visible"))},J4=(t,e,o,[r,n])=>{let{x:i,y:a}=We({clientX:r,clientY:n},o),l=15/o.zoom.value;if(Vg(t,e,[i,a],l,null))return!1;let[c,s,m]=bo(t,e);if(i>=c&&i<=m&&a>=s-cy&&a<=s)return!1;let{x:d,y:p}=my(t,o,e);return!(r>=d-l&&r<=d+sf+af*2+l&&n>=p-l&&n<=p+l+af*2+j4)};var fy=v(T(),1),df=H({name:"hyperlink",perform:(t,e)=>e.showHyperlinkPopup==="editor"?!1:{elements:t,appState:{...e,showHyperlinkPopup:"editor",openMenu:null},commitToHistory:!0},trackEvent:{category:"hyperlink",action:"click"},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.K,contextItemLabel:(t,e)=>cf(t,e),predicate:(t,e)=>Se(t,e).length===1,PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Se(t,e);return(0,fy.jsx)(ae,{type:"button",icon:Dc,"aria-label":g(cf(t,e)),title:`${Ot(t[0])?g("labels.link.labelEmbed"):g("labels.link.label")} - ${N("CtrlOrCmd+K")}`,onClick:()=>o(null),selected:r.length===1&&!!r[0].link})}});h();var hy=t=>t.every(e=>!e.locked),mf=H({name:"toggleElementLock",trackEvent:{category:"element"},predicate:(t,e,o,r)=>!r.scene.getSelectedElements(e).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=hy(n),a=Be(n);return{elements:t.map(l=>a.has(l.id)?ce(l,{locked:i}):l),appState:{...e,selectedLinearElement:i?null:e.selectedLinearElement},commitToHistory:!0}},contextItemLabel:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1});return r.length===1&&!we(r[0])?r[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":hy(r)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},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}),gy=H({name:"unlockAllElements",trackEvent:{category:"canvas"},viewMode:!1,predicate:t=>t.some(e=>e.locked),perform:(t,e)=>{let o=t.filter(r=>r.locked);return{elements:t.map(r=>r.locked?ce(r,{locked:!1}):r),appState:{...e,selectedElementIds:Object.fromEntries(o.map(r=>[r.id,!0]))},commitToHistory:!0}},contextItemLabel:"labels.elementLock.unlockAll"});h();var uf=H({name:"toggleLinearEditor",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return!!(n.length===1&&Pe(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},commitToHistory:!1}},contextItemLabel:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0];return e.editingLinearElement?.elementId===r.id?"labels.lineEditor.exit":"labels.lineEditor.edit"}});h();var pf=v(T(),1),by=(t,e,o)=>{if(!e.multiElement&&!e.resizingElement&&!e.editingElement&&!e.draggingElement){let n=o();if(n===null)return{commitToHistory:!1};let i=Be(t),a=n.elements,l=Be(a),c=t.filter(m=>!l.has(m.id)),s=a.map(m=>ce(i.get(m.id)||m,m)).concat(c.map(m=>ce(m,{isDeleted:!0})));return Ii(s,c),{elements:s,appState:{...e,...n.appState},commitToHistory:!1,syncHistory:!0}}return{commitToHistory:!1}},xy=t=>({name:"undo",trackEvent:{category:"history"},perform:(e,o)=>by(e,o,()=>t.undoOnce()),keyTest:e=>e[S.CTRL_OR_CMD]&&e.key.toLowerCase()===S.Z&&!e.shiftKey,PanelComponent:({updateData:e,data:o})=>(0,pf.jsx)(ae,{type:"button",icon:h0,"aria-label":g("buttons.undo"),onClick:e,size:o?.size||"medium"}),commitToHistory:()=>!1}),vy=t=>({name:"redo",trackEvent:{category:"history"},perform:(e,o)=>by(e,o,()=>t.redoOnce()),keyTest:e=>e[S.CTRL_OR_CMD]&&e.shiftKey&&e.key.toLowerCase()===S.Z||ys&&e.ctrlKey&&!e.shiftKey&&e.key===S.Y,PanelComponent:({updateData:e,data:o})=>(0,pf.jsx)(ae,{type:"button",icon:g0,"aria-label":g("buttons.redo"),onClick:e,size:o?.size||"medium"}),commitToHistory:()=>!1});h();var yy=v(T(),1),ff=(t,e,o,r,n,i)=>{if(t.trackEvent)try{typeof t.trackEvent=="object"&&(!t.trackEvent.predicate||t.trackEvent.predicate(o,r,i))&&ge(t.trackEvent.category,t.trackEvent.action||t.name,`${e} (${n.device.editor.isMobile?"mobile":"desktop"})`)}catch(a){console.error("error while logging action:",a)}},Td=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(e,o,r,n){this.updater=i=>{if(vi(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((c,s)=>(s.keyPriority||0)-(c.keyPriority||0)).filter(c=>(c.name in o?o[c.name]:!0)&&c.keyTest&&c.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 ff(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();ff(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(),c=s=>{ff(n,"ui",l,a,this.app,s),this.updater(n.perform(this.getElementsIncludingDeleted(),this.getAppState(),s,this.app))};return(0,yy.jsx)(i,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:c,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 Id=v($(),1);h();var Sd=v($(),1);var hf=Ve(new Map),Ey=async t=>await ml({elements:t,appState:{exportBackground:!1,viewBackgroundColor:br.white},files:null,renderEmbeddables:!1}),wy=(t,e,o)=>{let[r,n]=(0,Sd.useState)();return(0,Sd.useEffect)(()=>{if(e)if(t){let i=o.get(t);i?n(i):(async()=>{let a=await Ey(e);a.querySelector(".style-fonts")?.remove(),a&&(o.set(t,a),n(a))})()}else(async()=>{let i=await Ey(e);n(i)})()},[t,e,o,n]),r},kd=()=>{let[t]=Ce(hf,Me);return{clearLibraryCache:()=>t.clear(),deleteItemsFromLibraryCache:r=>{r.forEach(n=>t.delete(n))},svgCache:t}};var oi=Ve({status:"loaded",isInitialized:!0,libraryItems:[]}),gf=t=>Qo(t),Q4=(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)),Cy=(t,e)=>{let o=[];for(let r of e)Q4(t,r)&&o.push(r);return[...o,...t]},bf=class{lastLibraryItems=[];isInitialized=!1;app;constructor(e){this.app=e}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)oo.set(oi,{status:"loading",libraryItems:this.lastLibraryItems,isInitialized:this.isInitialized});else{this.isInitialized=!0,oo.set(oi,{status:"loaded",libraryItems:this.lastLibraryItems,isInitialized:this.isInitialized});try{this.app.props.onLibraryChange?.(gf(this.lastLibraryItems))}catch(e){console.error(e)}}};destroy=()=>{this.isInitialized=!1,this.updateQueue=[],this.lastLibraryItems=[],oo.set(hf,new Map)};resetLibrary=()=>this.setLibrary([]);getLatestLibrary=()=>new Promise(async e=>{try{let o=await(this.getLastUpdateTask()||this.lastLibraryItems);this.updateQueue.length>0?e(this.getLatestLibrary()):e(gf(o))}catch{return e(this.lastLibraryItems)}});updateLibrary=async({libraryItems:e,prompt:o=!1,merge:r=!1,openLibraryMenu:n=!1,defaultStatus:i="unpublished"})=>(n&&this.app.setState({openSidebar:{name:Xr.name,tab:Ms}}),this.setLibrary(()=>new Promise(async(a,l)=>{try{let c=await(typeof e=="function"&&!(e instanceof Blob)?e(this.lastLibraryItems):e),s;c instanceof Blob?s=await wu(c,i):s=yu(c,i),!o||window.confirm(g("alerts.confirmAddLibrary",{numShapes:s.length}))?(o&&this.app.focusContainer(),a(r?Cy(this.lastLibraryItems,s):s)):l(new Ri)}catch(c){l(c)}})));setLibrary=e=>{let o=new Promise(async(r,n)=>{try{await this.getLastUpdateTask(),typeof e=="function"&&(e=e(this.lastLibraryItems)),this.lastLibraryItems=gf(await e),r(this.lastLibraryItems)}catch(i){n(i)}}).catch(r=>{if(r.name==="AbortError")return console.warn("Library update aborted by user"),this.lastLibraryItems;throw r}).finally(()=>{this.updateQueue=this.updateQueue.filter(r=>r!==o),this.notifyListeners()});return this.updateQueue.push(o),this.notifyListeners(),o}},Ty=bf,_d=t=>{let o=Math.ceil(Math.sqrt(t.length)),r=[],n=u=>t.slice(u*o,u*o+o).reduce((x,y)=>{let{height:w}=xo(y.elements);return Math.max(x,w)},0),i=u=>{let b=0,x=0,y=0;for(let w of t){if(b%o===0&&(x=0),x===u){let{width:k}=xo(w.elements);y=Math.max(y,k)}b++,x++}return y},a=0,l=0,c=0,s=0,m=0,d=0,p=0;for(let u of t){m&&m%o===0&&(l+=c+50,a=0,d=0,p++),d===0&&(c=n(p)),s=i(d);let{minX:b,minY:x,width:y,height:w}=xo(u.elements),k=(s-y)/2,C=(c-w)/2;r.push(...u.elements.map(I=>({...I,x:I.x+a+k-b,y:I.y+l+C-x}))),a+=s+50,m++,d++}return r},xf=()=>{let t=new URLSearchParams(window.location.hash.slice(1)).get(Ss.addLibrary)||new URLSearchParams(window.location.search).get(Ts.addLibrary),e=t?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return t?{libraryUrl:t,idToken:e}:null},eC=({excalidrawAPI:t,getInitialLibraryItems:e})=>{let o=(0,Id.useRef)(e);(0,Id.useEffect)(()=>{if(!t)return;let r=async({libraryUrl:a,idToken:l})=>{let c=new Promise(async(m,d)=>{try{let u=await(await fetch(decodeURIComponent(a))).blob();m(u)}catch(p){d(p)}}),s=l!==t.id;await(s&&document.hidden?new Promise(m=>{window.addEventListener("focus",()=>m(),{once:!0})}):null);try{await t.updateLibrary({libraryItems:c,prompt:s,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(Ss.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(Ss.addLibrary),window.history.replaceState({},za,`#${m.toString()}`)}else if(window.location.search.includes(Ts.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(Ts.addLibrary),window.history.replaceState({},za,`?${m.toString()}`)}}},n=a=>{a.preventDefault();let l=xf();l&&(a.stopImmediatePropagation(),window.history.replaceState({},"",a.oldURL),r(l))};o.current&&t.updateLibrary({libraryItems:o.current()});let i=xf();return i&&r(i),window.addEventListener("hashchange",n),()=>{window.removeEventListener("hashchange",n)}},[t])};h();var vf=t=>{let e=Array.from(t.values());return{x:Sy(e,o=>o.x)/e.length,y:Sy(e,o=>o.y)/e.length}},yf=([t,e])=>Math.hypot(t.x-e.x,t.y-e.y),Sy=(t,e)=>t.reduce((o,r)=>o+e(r),0);h();var tC=t=>({selectedElementIds:t.selectedElementIds,selectedGroupIds:t.selectedGroupIds,viewBackgroundColor:t.viewBackgroundColor,editingLinearElement:t.editingLinearElement,editingGroupId:t.editingGroupId,name:t.name}),Ef=class{elementCache=new Map;recording=!0;stateHistory=[];redoStack=[];lastEntry=null;hydrateHistoryEntry({appState:e,elements:o}){return{appState:JSON.parse(e),elements:o.map(r=>{let n=this.elementCache.get(r.id)?.get(r.versionNonce);if(!n)throw new Error(`Element not found: ${r.id}:${r.versionNonce}`);return n})}}dehydrateHistoryEntry({appState:e,elements:o}){return{appState:JSON.stringify(e),elements:o.map(r=>{this.elementCache.has(r.id)||this.elementCache.set(r.id,new Map);let n=this.elementCache.get(r.id);return n.has(r.versionNonce)||n.set(r.versionNonce,Li(r)),{id:r.id,versionNonce:r.versionNonce}})}}getSnapshotForTest(){return{recording:this.recording,stateHistory:this.stateHistory.map(e=>this.hydrateHistoryEntry(e)),redoStack:this.redoStack.map(e=>this.hydrateHistoryEntry(e))}}clear(){this.stateHistory.length=0,this.redoStack.length=0,this.lastEntry=null,this.elementCache.clear()}generateEntry=(e,o)=>this.dehydrateHistoryEntry({appState:tC(e),elements:o.reduce((r,n)=>{if(Pe(n)&&e.multiElement&&e.multiElement.id===n.id){if(e.multiElement&&e.multiElement.id===n.id&&n.points.length<2)return r;r.push({...n,points:n.lastCommittedPoint!==n.points[n.points.length-1]?n.points.slice(0,-1):n.points})}else r.push(n);return r},[])});shouldCreateEntry(e){let{lastEntry:o}=this;if(!o||e.elements.length!==o.elements.length)return!0;for(let n=e.elements.length-1;n>-1;n--){let i=e.elements[n],a=o.elements[n];if(!i||!a||i.id!==a.id||i.versionNonce!==a.versionNonce)return!0}let r;for(r in e.appState)if(!(r==="editingLinearElement"&&e.appState[r]?.elementId===o.appState[r]?.elementId)&&!(r==="selectedElementIds"||r==="selectedGroupIds")&&e.appState[r]!==o.appState[r])return!0;return!1}pushEntry(e,o){let r=this.generateEntry(e,o),n=this.hydrateHistoryEntry(r);if(n){if(!this.shouldCreateEntry(n))return;this.stateHistory.push(r),this.lastEntry=n,this.clearRedoStack()}}clearRedoStack(){this.redoStack.splice(0,this.redoStack.length)}redoOnce(){if(this.redoStack.length===0)return null;let e=this.redoStack.pop();return e!==void 0?(this.stateHistory.push(e),this.hydrateHistoryEntry(e)):null}undoOnce(){if(this.stateHistory.length===1)return null;let e=this.stateHistory.pop(),o=this.stateHistory[this.stateHistory.length-1];return e!==void 0?(this.redoStack.push(e),this.hydrateHistoryEntry(o)):null}setCurrentState(e,o){this.lastEntry=this.hydrateHistoryEntry(this.generateEntry(e,o))}resumeRecording(){this.recording=!0}record(e,o){this.recording&&(this.pushEntry(e,o),this.recording=!1)}},ky=Ef;h();var wf=[{icon:Wb,value:"selection",key:S.V,numericKey:S[1],fillable:!0},{icon:Gb,value:"rectangle",key:S.R,numericKey:S[2],fillable:!0},{icon:Vb,value:"diamond",key:S.D,numericKey:S[3],fillable:!0},{icon:Kb,value:"ellipse",key:S.O,numericKey:S[4],fillable:!0},{icon:Yb,value:"arrow",key:S.A,numericKey:S[5],fillable:!0},{icon:Zb,value:"line",key:S.L,numericKey:S[6],fillable:!0},{icon:Vi,value:"freedraw",key:[S.P,S.X],numericKey:S[7],fillable:!1},{icon:Xb,value:"text",key:S.T,numericKey:S[8],fillable:!1},{icon:qb,value:"image",key:null,numericKey:S[9],fillable:!1},{icon:Jb,value:"eraser",key:S.E,numericKey:S[0],fillable:!1}],Iy=t=>wf.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();h();var oC={toggleTheme:[N("Shift+Alt+D")],saveScene:[N("CtrlOrCmd+S")],loadScene:[N("CtrlOrCmd+O")],clearCanvas:[N("CtrlOrCmd+Delete")],imageExport:[N("CtrlOrCmd+Shift+E")],cut:[N("CtrlOrCmd+X")],copy:[N("CtrlOrCmd+C")],paste:[N("CtrlOrCmd+V")],copyStyles:[N("CtrlOrCmd+Alt+C")],pasteStyles:[N("CtrlOrCmd+Alt+V")],selectAll:[N("CtrlOrCmd+A")],deleteSelectedElements:[N("Delete")],duplicateSelection:[N("CtrlOrCmd+D"),N(`Alt+${g("helpDialog.drag")}`)],sendBackward:[N("CtrlOrCmd+[")],bringForward:[N("CtrlOrCmd+]")],sendToBack:[No?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")],bringToFront:[No?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")],copyAsPng:[N("Shift+Alt+C")],copyAsSvg:[],group:[N("CtrlOrCmd+G")],ungroup:[N("CtrlOrCmd+Shift+G")],gridMode:[N("CtrlOrCmd+'")],zenMode:[N("Alt+Z")],objectsSnapMode:[N("Alt+S")],stats:[N("Alt+/")],addToLibrary:[],flipHorizontal:[N("Shift+H")],flipVertical:[N("Shift+V")],viewMode:[N("Alt+R")],hyperlink:[N("CtrlOrCmd+K")],toggleElementLock:[N("CtrlOrCmd+Shift+L")]},$r=t=>{let e=oC[t];return e&&e.length>0?e[0]:""};var _y=v($(),1),Hr=v(T(),1),qt="separator",My=_y.default.memo(({actionManager:t,items:e,top:o,left:r,onClose:n})=>{let i=ya(),a=hn(),l=e.reduce((c,s)=>(s&&(s===qt||!s.predicate||s.predicate(a,i,t.app.props,t.app))&&c.push(s),c),[]);return(0,Hr.jsx)(ud,{onCloseRequest:()=>{n()},top:o,left:r,fitInViewport:!0,offsetLeft:i.offsetLeft,offsetTop:i.offsetTop,viewportWidth:i.width,viewportHeight:i.height,children:(0,Hr.jsx)("ul",{className:"context-menu",onContextMenu:c=>c.preventDefault(),children:l.map((c,s)=>{if(c===qt)return!l[s-1]||l[s-1]===qt?null:(0,Hr.jsx)("hr",{className:"context-menu-item-separator"},s);let m=c.name,d="";return c.contextItemLabel&&(typeof c.contextItemLabel=="function"?d=g(c.contextItemLabel(a,i,t.app)):d=g(c.contextItemLabel)),(0,Hr.jsx)("li",{"data-testid":m,onClick:()=>{n(()=>{t.executeAction(c,"contextMenu")})},children:(0,Hr.jsxs)("button",{className:F("context-menu-item",{dangerous:m==="deleteSelectedElements",checkmark:c.checked?.(i)}),children:[(0,Hr.jsx)("div",{className:"context-menu-item__label",children:d}),(0,Hr.jsx)("kbd",{className:"context-menu-item__shortcut",children:m?$r(m):""})]})},s)})})})});h();var jw=v($(),1);h();var pE=v($(),1);h();var Cf=v($(),1);var Tf=v(T(),1),rC=(0,Cf.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Tf.jsx)("div",{className:F("Stack Stack_horizontal",n),style:{"--gap":e,alignItems:o,justifyContent:r,...i},ref:a,children:t})),nC=(0,Cf.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Tf.jsx)("div",{className:F("Stack Stack_vertical",n),style:{"--gap":e,justifyItems:o,justifyContent:r,...i},ref:a,children:t})),kt={Row:rC,Col:nC};h();h();var Py=v(T(),1),Ay=({className:t="",children:e,onToggle:o,title:r,...n})=>{let i=ke(),a=F(`dropdown-menu-button ${t}`,"zen-mode-transition",{"dropdown-menu-button--mobile":i.editor.isMobile}).trim();return(0,Py.jsx)("button",{"data-prevent-outside-click":!0,className:a,onClick:o,type:"button","data-testid":"dropdown-menu-button",title:r,...n,children:e})},Ly=Ay;Ay.displayName="DropdownMenuTrigger";h();h();var Md=v($(),1);var Sf=Md.default.createContext({}),Ad=(t="",e=!1)=>`dropdown-menu-item dropdown-menu-item-base ${t} ${e?"dropdown-menu-item--selected":""}`.trim(),Ld=(t,e)=>{let o=(0,Md.useContext)(Sf);return qr(t,r=>{let n=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});e?.(n),n.defaultPrevented||o.onSelect?.(n)})};h();var vn=v(T(),1),iC=({icon:t,shortcut:e,children:o})=>{let r=ke();return(0,vn.jsxs)(vn.Fragment,{children:[(0,vn.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,vn.jsx)("div",{className:"dropdown-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,vn.jsx)("div",{className:"dropdown-menu-item__shortcut",children:e})]})},Pd=iC;var Dd=v(T(),1),kf=({icon:t,onSelect:e,children:o,shortcut:r,className:n,selected:i,...a})=>{let l=Ld(a.onClick,e);return(0,Dd.jsx)("button",{...a,onClick:l,type:"button",className:Ad(n,i),title:a.title??a["aria-label"],children:(0,Dd.jsx)(Pd,{icon:t,shortcut:r,children:o})})};kf.displayName="DropdownMenuItem";var Dy=({children:t})=>(0,Dd.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",background:"pink",borderRadius:6,fontSize:9,color:"black",fontFamily:"Cascadia, monospace"},children:t});Dy.displayName="DropdownMenuItemBadge";kf.Badge=Dy;var Go=kf;h();var Oy=v(T(),1),Ry=()=>(0,Oy.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),Ny=Ry;Ry.displayName="DropdownMenuSeparator";h();var Rd=v(T(),1),By=({children:t,className:e="",style:o,title:r})=>(0,Rd.jsxs)("div",{className:`dropdown-menu-group ${e}`,style:o,children:[r&&(0,Rd.jsx)("p",{className:"dropdown-menu-group-title",children:r}),t]}),Fy=By;By.displayName="DropdownMenuGroup";h();h();var $y=v($(),1);var Hy=v(T(),1),Rt=$y.default.forwardRef(({children:t,padding:e,className:o,style:r},n)=>(0,Hy.jsx)("div",{className:F("Island",o),style:{"--padding":e,...r},ref:n,children:t}));var Nd=v($(),1);var $l=v(T(),1),zy=({children:t,onClickOutside:e,className:o="",onSelect:r,style:n})=>{let i=ke(),a=(0,Nd.useRef)(null),l=dd({onClickOutside:e});ua(a,()=>{l.onClickOutside?.()}),(0,Nd.useEffect)(()=>{let s=m=>{m.key===S.ESCAPE&&(m.stopImmediatePropagation(),l.onClickOutside?.())};return document.addEventListener("keydown",s,{capture:!0}),()=>{document.removeEventListener("keydown",s)}},[l]);let c=F(`dropdown-menu ${o}`,{"dropdown-menu--mobile":i.editor.isMobile}).trim();return(0,$l.jsx)(Sf.Provider,{value:{onSelect:r},children:(0,$l.jsx)("div",{ref:a,className:c,style:n,"data-testid":"dropdown-menu",children:i.editor.isMobile?(0,$l.jsx)(kt.Col,{className:"dropdown-menu-container",children:t}):(0,$l.jsx)(Rt,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:t})})})};zy.displayName="DropdownMenuContent";var Uy=zy;h();var If=v(T(),1),Wy=({icon:t,shortcut:e,href:o,children:r,onSelect:n,className:i="",selected:a,...l})=>{let c=Ld(l.onClick,n);return(0,If.jsx)("a",{...l,href:o,target:"_blank",rel:"noreferrer",className:Ad(i,a),title:l.title??l["aria-label"],onClick:c,children:(0,If.jsx)(Pd,{icon:t,shortcut:e,children:r})})},Ea=Wy;Wy.displayName="DropdownMenuItemLink";h();var Vy=v(T(),1),aC=({children:t,className:e="",selected:o,...r})=>(0,Vy.jsx)("div",{...r,className:`dropdown-menu-item-base dropdown-menu-item-custom ${e} ${o?"dropdown-menu-item--selected":""}`.trim(),children:t}),Gy=aC;h();var Hl=v($(),1),Ky=t=>{let e=Hl.default.Children.toArray(t).find(o=>Hl.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuTrigger");return e||null},Yy=t=>{let e=Hl.default.Children.toArray(t).find(o=>Hl.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuContent");return e||null};var Od=v(T(),1),zr=({children:t,open:e})=>{let o=Ky(t),r=Yy(t);return(0,Od.jsxs)(Od.Fragment,{children:[o,e&&r]})};zr.Trigger=Ly;zr.Content=Uy;zr.Item=Go;zr.ItemLink=Ea;zr.ItemCustom=Gy;zr.Group=Fy;zr.Separator=Ny;var _e=zr;zr.displayName="DropdownMenu";h();var Fd=v($(),1);h();var zl=v($());h();h();var Zy=t=>{let e,o=new Set,r=(c,s)=>{let m=typeof c=="function"?c(e):c;if(!Object.is(m,e)){let d=e;e=s??(typeof m!="object"||m===null)?m:Object.assign({},e,m),o.forEach(p=>p(e,d))}},n=()=>e,l={setState:r,getState:n,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()}};return e=t(r,n,l),l},jy=t=>t?Zy(t):Zy;var aE=v($(),1),lE=v(rE(),1),{useDebugValue:TC}=aE.default,{useSyncExternalStoreWithSelector:SC}=lE.default,nE=!1;function kC(t,e=t.getState,o){(E?E.MODE:void 0)!=="production"&&o&&!nE&&(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"),nE=!0);let r=SC(t.subscribe,t.getState,t.getServerState||t.getState,e,o);return TC(r),r}var iE=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"?jy(t):t,o=(r,n)=>kC(e,r,n);return Object.assign(o,e),o},sE=t=>t?iE(t):iE;var cE,dE,mE=typeof window<"u"&&((cE=window.document)!=null&&cE.createElement||((dE=window.navigator)==null?void 0:dE.product)==="ReactNative")?zl.default.useLayoutEffect:zl.default.useEffect;function Vo(){let t=sE(e=>({current:new Array,version:0,set:e}));return{In:({children:e})=>{let o=t(n=>n.set),r=t(n=>n.version);return mE(()=>{o(n=>({version:n.version+1}))},[]),mE(()=>(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 zl.default.createElement(zl.default.Fragment,null,e)}}}var Mf=Fd.default.createContext(null),ze=()=>Fd.default.useContext(Mf),uE=()=>Fd.default.useMemo(()=>({MainMenuTunnel:Vo(),WelcomeScreenMenuHintTunnel:Vo(),WelcomeScreenToolbarHintTunnel:Vo(),WelcomeScreenHelpHintTunnel:Vo(),WelcomeScreenCenterTunnel:Vo(),FooterCenterTunnel:Vo(),DefaultSidebarTriggerTunnel:Vo(),DefaultSidebarTabTriggersTunnel:Vo(),OverwriteConfirmDialogTunnel:Vo(),TTDDialogTriggerTunnel:Vo(),jotaiScope:Symbol()}),[]);var oe=v(T(),1),$d=({appState:t,elementsMap:e,renderAction:o})=>{let r=zi(e,t),n=!1;r.length===2&&(er(r[0])||er(r[1]))&&(n=!0);let i=!!t.editingElement,a=ke(),l=document.documentElement.getAttribute("dir")==="rtl",c=tn(t.activeTool.type)&&!Nn(t.currentItemBackgroundColor)||r.some(p=>tn(p.type)&&!Nn(p.backgroundColor)),s=tn(t.activeTool.type)||r.some(p=>tn(p.type)),m=r.length===1||n,d=r[0]?.type||null;for(let p of r)if(p.type!==d){d=null;break}return(0,oe.jsxs)("div",{className:"panelColumn",children:[(0,oe.jsx)("div",{children:(el(t.activeTool.type)&&t.activeTool.type!=="image"&&d!=="image"&&d!=="frame"&&d!=="magicframe"||r.some(p=>el(p.type)))&&o("changeStrokeColor")}),s&&(0,oe.jsx)("div",{children:o("changeBackgroundColor")}),c&&o("changeFillStyle"),(iu(t.activeTool.type)||r.some(p=>iu(p.type)))&&o("changeStrokeWidth"),(t.activeTool.type==="freedraw"||r.some(p=>p.type==="freedraw"))&&o("changeStrokeShape"),(au(t.activeTool.type)||r.some(p=>au(p.type)))&&(0,oe.jsxs)(oe.Fragment,{children:[o("changeStrokeStyle"),o("changeSloppiness")]}),(lu(t.activeTool.type)||r.some(p=>lu(p.type)))&&(0,oe.jsx)(oe.Fragment,{children:o("changeRoundness")}),(t.activeTool.type==="text"||r.some(ie))&&(0,oe.jsxs)(oe.Fragment,{children:[o("changeFontSize"),o("changeFontFamily"),(t.activeTool.type==="text"||a1(r,e))&&o("changeTextAlign")]}),i1(r,e)&&o("changeVerticalAlign"),(Ti(t.activeTool.type)||r.some(p=>Ti(p.type)))&&(0,oe.jsx)(oe.Fragment,{children:o("changeArrowhead")}),o("changeOpacity"),(0,oe.jsxs)("fieldset",{children:[(0,oe.jsx)("legend",{children:g("labels.layers")}),(0,oe.jsxs)("div",{className:"buttonList",children:[o("sendToBack"),o("sendBackward"),o("bringToFront"),o("bringForward")]})]}),r.length>1&&!n&&(0,oe.jsxs)("fieldset",{children:[(0,oe.jsx)("legend",{children:g("labels.align")}),(0,oe.jsxs)("div",{className:"buttonList",children:[l?(0,oe.jsxs)(oe.Fragment,{children:[o("alignRight"),o("alignHorizontallyCentered"),o("alignLeft")]}):(0,oe.jsxs)(oe.Fragment,{children:[o("alignLeft"),o("alignHorizontallyCentered"),o("alignRight")]}),r.length>2&&o("distributeHorizontally"),(0,oe.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,oe.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,oe.jsxs)("fieldset",{children:[(0,oe.jsx)("legend",{children:g("labels.actions")}),(0,oe.jsxs)("div",{className:"buttonList",children:[!a.editor.isMobile&&o("duplicateSelection"),!a.editor.isMobile&&o("deleteSelectedElements"),o("group"),o("ungroup"),m&&o("hyperlink")]})]})]})},Hd=({activeTool:t,appState:e,app:o,UIOptions:r})=>{let[n,i]=(0,pE.useState)(!1),a=t.type==="frame",l=t.type==="laser",c=t.type==="embeddable",{TTDDialogTriggerTunnel:s}=ze();return(0,oe.jsxs)(oe.Fragment,{children:[wf.map(({value:m,icon:d,key:p,numericKey:u,fillable:b},x)=>{if(r.tools?.[m]===!1)return null;let y=g(`toolBar.${m}`),w=p&&bi(typeof p=="string"?p:p[0]),k=w?`${w} ${g("helpDialog.or")} ${u}`:`${u}`;return(0,oe.jsx)(ae,{className:F("Shape",{fillable:b}),type:"radio",icon:d,checked:t.type===m,name:"editor-current-shape",title:`${bi(y)} \u2014 ${k}`,keyBindingLabel:u||w,"aria-label":bi(y),"aria-keyshortcuts":k,"data-testid":`toolbar-${m}`,onPointerDown:({pointerType:C})=>{!e.penDetected&&C==="pen"&&o.togglePenMode(!0)},onChange:({pointerType:C})=>{e.activeTool.type!==m&&ge("toolbar",m,"ui"),m==="image"?o.setActiveTool({type:m,insertOnCanvasDirectly:C!=="mouse"}):o.setActiveTool({type:m})}},m)}),(0,oe.jsx)("div",{className:"App-toolbar__divider"}),(0,oe.jsxs)(_e,{open:n,children:[(0,oe.jsxs)(_e.Trigger,{className:F("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":a||c||l&&!o.props.isCollaborating}),onToggle:()=>i(!n),title:g("toolBar.extraTools"),children:[xx,o.props.aiEnabled!==!1&&(0,oe.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:8,fontFamily:"Cascadia, monospace",position:"absolute",background:"pink",color:"black",bottom:3,right:4},children:"AI"})]}),(0,oe.jsxs)(_e.Content,{onClickOutside:()=>i(!1),onSelect:()=>i(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,oe.jsx)(_e.Item,{onSelect:()=>o.setActiveTool({type:"frame"}),icon:vx,shortcut:S.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:a,children:g("toolBar.frame")}),(0,oe.jsx)(_e.Item,{onSelect:()=>o.setActiveTool({type:"embeddable"}),icon:t0,"data-testid":"toolbar-embeddable",selected:c,children:g("toolBar.embeddable")}),(0,oe.jsx)(_e.Item,{onSelect:()=>o.setActiveTool({type:"laser"}),icon:Oc,"data-testid":"toolbar-laser",selected:l,shortcut:S.K.toLocaleUpperCase(),children:g("toolBar.laser")}),(0,oe.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),o.props.aiEnabled!==!1&&(0,oe.jsx)(s.Out,{}),(0,oe.jsx)(_e.Item,{onSelect:()=>o.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:yx,"data-testid":"toolbar-embeddable",children:g("toolBar.mermaidToExcalidraw")}),o.props.aiEnabled!==!1&&(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsxs)(_e.Item,{onSelect:()=>o.onMagicframeToolSelect(),icon:ji,"data-testid":"toolbar-magicframe",children:[g("toolBar.magicframe"),(0,oe.jsx)(_e.Item.Badge,{children:"AI"})]}),(0,oe.jsx)(_e.Item,{onSelect:()=>{ge("ai","open-settings","d2c"),o.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:bl,"data-testid":"toolbar-magicSettings",children:g("toolBar.magicSettings")})]})]})]})]})},fE=({renderAction:t,zoom:e})=>(0,oe.jsx)(kt.Col,{gap:1,className:"zoom-actions",children:(0,oe.jsxs)(kt.Row,{align:"center",children:[t("zoomOut"),t("resetZoom"),t("zoomIn")]})}),hE=({renderAction:t,className:e})=>(0,oe.jsxs)("div",{className:`undo-redo-buttons ${e}`,children:[(0,oe.jsx)("div",{className:"undo-button-container",children:(0,oe.jsx)(co,{label:g("buttons.undo"),children:t("undo")})}),(0,oe.jsx)("div",{className:"redo-button-container",children:(0,oe.jsxs)(co,{label:g("buttons.redo"),children:[" ",t("redo")]})})]}),gE=({actionManager:t,showExitZenModeBtn:e})=>(0,oe.jsx)("button",{className:F("disable-zen-mode",{"disable-zen-mode--visible":e}),onClick:()=>t.executeAction(xa),children:g("buttons.exitZenMode")}),bE=({renderAction:t,className:e})=>(0,oe.jsx)("div",{className:`finalize-button ${e}`,children:t("finalize",{size:"small"})});h();var jd=v($(),1);h();var Zd=v($(),1);h();var zd=v($(),1),xE=()=>{let[t,e]=(0,zd.useState)(null),o=(0,zd.useCallback)(r=>e(r),[]);return[t,o]};h();var vE=v(nr(),1);var Ul=v(T(),1),yE=t=>{let{closeOnClickOutside:e=!0}=t,o=cd({className:"excalidraw-modal-container"});if(!o)return null;let r=n=>{n.key===S.ESCAPE&&(n.nativeEvent.stopImmediatePropagation(),n.stopPropagation(),t.onCloseRequest())};return(0,vE.createPortal)((0,Ul.jsxs)("div",{className:F("Modal",t.className),role:"dialog","aria-modal":"true",onKeyDown:r,"aria-labelledby":t.labelledBy,"data-prevent-outside-click":!0,children:[(0,Ul.jsx)("div",{className:"Modal__background",onClick:e?t.onCloseRequest:void 0}),(0,Ul.jsx)("div",{className:"Modal__content",style:{"--max-width":`${t.maxWidth}px`},tabIndex:0,children:t.children})]}),o)};h();var uo=v($(),1);h();var Ht=v($(),1);h();h();var wE=v(T(),1),IC=({theme:t,id:e,libraryReturnUrl:o})=>{let r=o||window.location.origin+window.location.pathname;return(0,wE.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=${Is.excalidrawLibrary}`,target:"_excalidraw_libraries",children:g("labels.libraries")})},EE=IC;var Wd=v(T(),1),Ud=({libraryReturnUrl:t,theme:e,id:o,style:r,children:n,className:i})=>(0,Wd.jsxs)("div",{className:F("library-menu-control-buttons",i),style:r,children:[(0,Wd.jsx)(EE,{id:o,libraryReturnUrl:t,theme:e}),n]});h();var ka=v($(),1);h();var Wl=v($(),1);var _C=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,MC=/{{([\w-]+)}}/,AC=/<([\w-]+)>/,LC=/<\/([\w-]+)>/,PC=(t,e)=>{let o=[{name:"",children:[]}];return t.split(_C).filter(Boolean).forEach(r=>{let n=r.match(AC),i=r.match(LC),a=r.match(MC);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 c=o.pop(),s=Wl.default.createElement(Wl.default.Fragment,{},...c.children),m=e[c.name];typeof m=="function"&&o[o.length-1].children.push(m(s))}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},DC=({i18nKey:t,children:e,...o})=>{let{t:r}=wt();return Wl.default.createElement(Wl.default.Fragment,{},...PC(r(t),o))},Jt=DC;h();h();var ri=v(T(),1),RC=({label:t,onClick:e,className:o,children:r,actionType:n,type:i="button",isLoading:a,...l})=>{let c=n?`Dialog__action-button--${n}`:"";return(0,ri.jsxs)("button",{className:F("Dialog__action-button",c,o),type:i,"aria-label":t,onClick:e,...l,children:[r&&(0,ri.jsx)("div",{style:a?{visibility:"hidden"}:{},children:r}),(0,ri.jsx)("div",{style:a?{visibility:"hidden"}:{},children:t}),a&&(0,ri.jsx)("div",{style:{position:"absolute",inset:0},children:(0,ri.jsx)(Lt,{})})]})},Ca=RC;var Ta=v(T(),1),NC=t=>{let{onConfirm:e,onCancel:o,children:r,confirmText:n=g("buttons.confirm"),cancelText:i=g("buttons.cancel"),className:a="",...l}=t,c=Fe(),s=Lr(Sa,Me),{container:m}=Tt();return(0,Ta.jsxs)(at,{onCloseRequest:o,size:"small",...l,className:`confirm-dialog ${a}`,children:[r,(0,Ta.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Ta.jsx)(Ca,{label:i,onClick:()=>{c({openMenu:null}),s(!1),o(),m?.focus()}}),(0,Ta.jsx)(Ca,{label:n,onClick:()=>{c({openMenu:null}),s(!1),e(),m?.focus()},actionType:"danger"})]})]})},Gd=NC;h();var mo=v($(),1);h();var ao=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 ee=v(T(),1),OC=async t=>{let r=Math.round(8),n=Math.max(Math.round(128/64),2),i=Tg(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=Qe.white,l.fillRect(0,0,a.width,a.height);for(let[c,s]of t.entries()){let m=await $n({elements:s.elements,files:null,maxWidthOrHeight:128}),{width:d,height:p}=m,u=Math.floor(c/6)*(128+r*2),b=c%6*(128+r*2);l.drawImage(m,b+(128-d)/2+r,u+(128-p)/2+r),l.lineWidth=n,l.strokeStyle=Qe.gray[4],l.strokeRect(b+r/2,u+r/2,128+r,128+r)}return await cl(new File([await _r(a)],"preview",{type:_t.png}),{outputType:_t.jpg,maxWidthOrHeight:5e3})},BC=({libItem:t,appState:e,index:o,onChange:r,onRemove:n})=>{let i=(0,mo.useRef)(null),a=(0,mo.useRef)(null);return(0,mo.useEffect)(()=>{let l=i.current;l&&(async()=>{let c=await ml({elements:t.elements,appState:{...e,viewBackgroundColor:Qe.white,exportBackground:!0},files:null});l.innerHTML=c.outerHTML})()},[t.elements,e]),(0,ee.jsxs)("div",{className:"single-library-item",children:[t.status==="published"&&(0,ee.jsx)("span",{className:"single-library-item-status",children:g("labels.statusPublished")}),(0,ee.jsx)("div",{ref:i,className:"single-library-item__svg"}),(0,ee.jsx)(ae,{"aria-label":g("buttons.remove"),type:"button",icon:wo,className:"single-library-item--remove",onClick:n.bind(null,t.id),title:g("buttons.remove")}),(0,ee.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,ee.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,ee.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,ee.jsx)("span",{style:{fontWeight:500,color:Qe.gray[6]},children:g("publishDialog.itemName")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.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,ee.jsx)("span",{className:"error",children:t.error})]})]})},FC=({onClose:t,libraryItems:e,appState:o,onSuccess:r,onError:n,updateItemsInStorage:i,onRemove:a})=>{let[l,c]=(0,mo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[s,m]=(0,mo.useState)(!1);(0,mo.useEffect)(()=>{let C=ao.get(go.PUBLISH_LIBRARY);C&&c(C)},[]);let[d,p]=(0,mo.useState)(e.slice());(0,mo.useEffect)(()=>{p(e.slice())},[e]);let u=C=>{c({...l,[C.target.name]:C.target.value})},b=async C=>{C.preventDefault(),m(!0);let I=[],A=!1;if(d.forEach(Y=>{let O="";Y.name||(O=g("publishDialog.errors.required"),A=!0),I.push({...Y,error:O})}),A){p(I),m(!1);return}let _=await OC(d),M={type:tg.excalidrawLibrary,version:Is.excalidrawLibrary,source:og,libraryItems:d},L=JSON.stringify(M,null,2),W=new Blob([L],{type:"application/json"}),B=new FormData;B.append("excalidrawLib",W),B.append("previewImage",_),B.append("previewImageType",_.type),B.append("title",l.name),B.append("authorName",l.authorName),B.append("githubHandle",l.githubHandle),B.append("name",l.name),B.append("description",l.description),B.append("twitterHandle",l.twitterHandle),B.append("website",l.website),fetch(`${E.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:B}).then(Y=>Y.ok?Y.json().then(({url:O})=>{ao.delete(go.PUBLISH_LIBRARY),r({url:O,authorName:l.authorName,items:d})}):Y.json().catch(()=>{throw new Error(Y.statusText||"something went wrong")}).then(O=>{throw new Error(O.message||Y.statusText||"something went wrong")}),Y=>{console.error(Y),n(Y),m(!1)}).catch(Y=>{console.error(Y),n(Y),m(!1)})},x=()=>{let C=[];return d.forEach((I,A)=>{C.push((0,ee.jsx)("div",{className:"single-library-item-wrapper",children:(0,ee.jsx)(BC,{libItem:I,appState:o,index:A,onChange:(_,M)=>{let L=d.slice();L[M].name=_,p(L)},onRemove:a})},A))}),(0,ee.jsx)("div",{className:"selected-library-items",children:C})},y=(0,mo.useCallback)(()=>{i(d),ao.set(go.PUBLISH_LIBRARY,l),t()},[d,t,i,l]),w=!!e.length,k=e.some(C=>C.status==="published");return(0,ee.jsx)(at,{onCloseRequest:y,title:g("publishDialog.title"),className:"publish-library",children:w?(0,ee.jsxs)("form",{onSubmit:b,children:[(0,ee.jsx)("div",{className:"publish-library-note",children:(0,ee.jsx)(Jt,{i18nKey:"publishDialog.noteDescription",link:C=>(0,ee.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,ee.jsx)("span",{className:"publish-library-note",children:(0,ee.jsx)(Jt,{i18nKey:"publishDialog.noteGuidelines",link:C=>(0,ee.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,ee.jsx)("div",{className:"publish-library-note",children:g("publishDialog.noteItems")}),k&&(0,ee.jsx)("span",{className:"publish-library-note publish-library-warning",children:g("publishDialog.republishWarning")}),x(),(0,ee.jsxs)("div",{className:"publish-library__fields",children:[(0,ee.jsxs)("label",{children:[(0,ee.jsxs)("div",{children:[(0,ee.jsx)("span",{children:g("publishDialog.libraryName")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.jsx)("input",{type:"text",name:"name",required:!0,value:l.name,onChange:u,placeholder:g("publishDialog.placeholder.libraryName")})]}),(0,ee.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,ee.jsxs)("div",{children:[(0,ee.jsx)("span",{children:g("publishDialog.libraryDesc")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.jsx)("textarea",{name:"description",rows:4,required:!0,value:l.description,onChange:u,placeholder:g("publishDialog.placeholder.libraryDesc")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsxs)("div",{children:[(0,ee.jsx)("span",{children:g("publishDialog.authorName")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.jsx)("input",{type:"text",name:"authorName",required:!0,value:l.authorName,onChange:u,placeholder:g("publishDialog.placeholder.authorName")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsx)("span",{children:g("publishDialog.githubUsername")}),(0,ee.jsx)("input",{type:"text",name:"githubHandle",value:l.githubHandle,onChange:u,placeholder:g("publishDialog.placeholder.githubHandle")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsx)("span",{children:g("publishDialog.twitterUsername")}),(0,ee.jsx)("input",{type:"text",name:"twitterHandle",value:l.twitterHandle,onChange:u,placeholder:g("publishDialog.placeholder.twitterHandle")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsx)("span",{children:g("publishDialog.website")}),(0,ee.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:g("publishDialog.errors.website"),value:l.website,onChange:u,placeholder:g("publishDialog.placeholder.website")})]}),(0,ee.jsx)("span",{className:"publish-library-note",children:(0,ee.jsx)(Jt,{i18nKey:"publishDialog.noteLicense",link:C=>(0,ee.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:C})})})]}),(0,ee.jsxs)("div",{className:"publish-library__buttons",children:[(0,ee.jsx)(Ca,{label:g("buttons.cancel"),onClick:y,"data-testid":"cancel-clear-canvas-button"}),(0,ee.jsx)(Ca,{type:"submit",label:g("buttons.submit"),actionType:"primary",isLoading:s})]})]}):(0,ee.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:g("publishDialog.atleastOneLibItem")})})},CE=FC;var xt=v(T(),1),$C=(t,e)=>t.filter(o=>e.includes(o.id)),HC=({setAppState:t,selectedItems:e,library:o,onRemoveFromLibrary:r,resetLibrary:n,onSelectItems:i,appState:a,className:l})=>{let[c]=Ce(oi,Me),[s,m]=Ce(Sa,Me),d=()=>{let B=e.length?g("alerts.removeItemsFromsLibrary",{count:e.length}):g("alerts.resetLibrary"),Y=e.length?g("confirmDialog.removeItemsFromLib"):g("confirmDialog.resetLibrary");return(0,xt.jsx)(Gd,{onConfirm:()=>{e.length?r():n(),u(!1)},onCancel:()=>{u(!1)},title:Y,children:(0,xt.jsx)("p",{children:B})})},[p,u]=(0,ka.useState)(!1),b=!!e.length,x=b?c.libraryItems.filter(B=>e.includes(B.id)):c.libraryItems,y=b?g("buttons.remove"):g("buttons.resetLibrary"),[w,k]=(0,ka.useState)(!1),[C,I]=(0,ka.useState)(null),A=(0,ka.useCallback)(()=>(0,xt.jsxs)(at,{onCloseRequest:()=>I(null),title:g("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,xt.jsx)("p",{children:(0,xt.jsx)(Jt,{i18nKey:"publishSuccessDialog.content",authorName:C.authorName,link:B=>(0,xt.jsx)("a",{href:C?.url,target:"_blank",rel:"noopener noreferrer",children:B})})}),(0,xt.jsx)(ae,{type:"button",title:g("buttons.close"),"aria-label":g("buttons.close"),label:g("buttons.close"),onClick:()=>I(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[I,C]),_=(B,Y)=>{k(!1),I({url:B.url,authorName:B.authorName});let O=Y.slice();O.forEach(z=>{e.includes(z.id)&&(z.status="published")}),o.setLibrary(O)},M=async()=>{try{await o.updateLibrary({libraryItems:tc({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(B){if(B?.name==="AbortError"){console.warn(B);return}t({errorMessage:g("errors.importLibraryError")})}},L=async()=>{let B=b?x:await o.getLatestLibrary();R1(B).catch(Ps).catch(Y=>{t({errorMessage:Y.message})})},W=()=>(0,xt.jsxs)(_e,{open:s,children:[(0,xt.jsx)(_e.Trigger,{onToggle:()=>m(!s),children:Ob}),(0,xt.jsxs)(_e.Content,{onClickOutside:()=>m(!1),onSelect:()=>m(!1),className:"library-menu",children:[!b&&(0,xt.jsx)(_e.Item,{onSelect:M,icon:Yi,"data-testid":"lib-dropdown--load",children:g("buttons.load")}),!!x.length&&(0,xt.jsx)(_e.Item,{onSelect:L,icon:Lc,"data-testid":"lib-dropdown--export",children:g("buttons.export")}),!!x.length&&(0,xt.jsx)(_e.Item,{onSelect:()=>u(!0),icon:ln,children:y}),b&&(0,xt.jsx)(_e.Item,{icon:px,onSelect:()=>k(!0),"data-testid":"lib-dropdown--remove",children:g("buttons.publishLibrary")})]})]});return(0,xt.jsxs)("div",{className:F("library-menu-dropdown-container",l),children:[W(),e.length>0&&(0,xt.jsx)("div",{className:"library-actions-counter",children:e.length}),p&&d(),w&&(0,xt.jsx)(CE,{onClose:()=>k(!1),libraryItems:$C(c.libraryItems,e),appState:a,onSuccess:B=>_(B,c.libraryItems),onError:B=>window.alert(B),updateItemsInStorage:()=>o.setLibrary(c.libraryItems),onRemove:B=>i(e.filter(Y=>Y!==B))}),C&&A()]})},Af=({selectedItems:t,onSelectItems:e,className:o})=>{let{library:r}=So(),{clearLibraryCache:n,deleteItemsFromLibraryCache:i}=kd(),a=Ae(),l=Fe(),[c]=Ce(oi,Me),s=async d=>{let p=d.filter(u=>!t.includes(u.id));r.setLibrary(p).catch(()=>{l({errorMessage:g("alerts.errorRemovingFromLibrary")})}),i(t),e([])};return(0,xt.jsx)(HC,{appState:a,setAppState:l,selectedItems:t,onSelectItems:e,library:r,onRemoveFromLibrary:()=>s(c.libraryItems),resetLibrary:()=>{r.resetLibrary(),n()},className:o})};h();var Ia=v($(),1);h();var yn=v($(),1);var ni=v(T(),1),TE=(0,yn.memo)(({id:t,elements:e,isPending:o,onClick:r,selected:n,onToggle:i,onDrag:a,svgCache:l})=>{let c=(0,yn.useRef)(null),s=wy(t,e,l);(0,yn.useEffect)(()=>{let b=c.current;if(b)return s&&(b.innerHTML=s.outerHTML),()=>{b.innerHTML=""}},[s]);let[m,d]=(0,yn.useState)(!1),p=ke().editor.isMobile,u=o&&(0,ni.jsx)("div",{className:"library-unit__adder",children:Nb});return(0,ni.jsxs)("div",{className:F("library-unit",{"library-unit__active":e,"library-unit--hover":e&&m,"library-unit--selected":n,"library-unit--skeleton":!s}),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[(0,ni.jsx)("div",{className:F("library-unit__dragger",{"library-unit__pulse":!!o}),ref:c,draggable:!!e,onClick:e||o?b=>{t&&b.shiftKey?i(t,b):r(t)}:void 0,onDragStart:b=>{if(!t){b.preventDefault();return}d(!1),a(t,b)}}),u,t&&e&&(m||p||n)&&(0,ni.jsx)(qn,{checked:n,onChange:(b,x)=>i(t,x),className:"library-unit__checkbox"})]})}),SE=()=>(0,ni.jsx)("div",{className:"library-unit library-unit--skeleton"});h();var Vd=v($(),1);function zC(){return[!1,(0,Vd.useCallback)(e=>e(),[])]}var kE=Vd.default.useTransition||zC;var ii=v(T(),1),Lf=({children:t})=>(0,ii.jsx)("div",{className:"library-menu-items-container__grid",children:t}),Kd=(0,Ia.memo)(({items:t,onItemSelectToggle:e,onItemDrag:o,isItemSelected:r,onClick:n,svgCache:i,itemsRenderedPerBatch:a})=>{let[,l]=kE(),[c,s]=(0,Ia.useState)(0);return(0,Ia.useEffect)(()=>{c<t.length&&l(()=>{s(c+a)})},[c,t.length,l,a]),(0,ii.jsx)(ii.Fragment,{children:t.map((m,d)=>d<c?(0,ii.jsx)(TE,{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??d):(0,ii.jsx)(SE,{},d))})});h();var LE=v($(),1);var PE=v(Df(),1),iT=Ve(0),DE=t=>{let[e,o]=Ce(iT);return(0,LE.useEffect)(()=>{let{current:r}=t;if(!r)return;let n=(0,PE.default)(()=>{let{scrollTop:i}=r;o(i)},200);return r.addEventListener("scroll",n),()=>{n.cancel(),r.removeEventListener("scroll",n)}},[t,o]),e};var Ze=v(T(),1),aT=17,lT=64;function Rf({isLoading:t,libraryItems:e,onAddToLibrary:o,onInsertLibraryItems:r,pendingElements:n,theme:i,id:a,libraryReturnUrl:l,onSelectItems:c,selectedItems:s}){let m=(0,Ht.useRef)(null),d=DE(m);(0,Ht.useEffect)(()=>{d>0&&m.current?.scrollTo(0,d)},[]);let{svgCache:p}=kd(),u=(0,Ht.useMemo)(()=>e.filter(B=>B.status!=="published"),[e]),b=(0,Ht.useMemo)(()=>e.filter(B=>B.status==="published"),[e]),x=!e.length&&!n.length,y=!n.length&&!u.length&&!b.length,[w,k]=(0,Ht.useState)(null),C=(0,Ht.useCallback)((B,Y)=>{let O=!s.includes(B),z=[...u,...b];if(O){if(Y.shiftKey&&w){let ne=z.findIndex(de=>de.id===w),Q=z.findIndex(de=>de.id===B);if(ne===-1||Q===-1){c([...s,B]);return}let xe=Be(s),Ee=z.reduce((de,se,P)=>((P>=ne&&P<=Q||xe.has(se.id))&&de.push(se.id),de),[]);c(Ee)}else c([...s,B]);k(B)}else k(null),c(s.filter(ne=>ne!==B))},[w,c,b,s,u]),I=(0,Ht.useCallback)(B=>{let Y;return s.includes(B)?Y=e.filter(O=>s.includes(O.id)):Y=e.filter(O=>O.id===B),Y.map(O=>({...O,elements:ec(O.elements,{randomizeSeed:!0})}))},[e,s]),A=(0,Ht.useCallback)((B,Y)=>{Y.dataTransfer.setData(_t.excalidrawlib,ku(I(B)))},[I]),_=(0,Ht.useCallback)(B=>B?s.includes(B):!1,[s]),M=(0,Ht.useCallback)(()=>{o(n)},[n,o]),L=(0,Ht.useCallback)(B=>{B&&r(I(B))},[I,r]),W=p.size>=e.length?lT:aT;return(0,Ze.jsxs)("div",{className:"library-menu-items-container",style:n.length||u.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!y&&(0,Ze.jsx)(Af,{selectedItems:s,onSelectItems:c,className:"library-menu-dropdown-container--in-heading"}),(0,Ze.jsxs)(kt.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,Ze.jsxs)(Ze.Fragment,{children:[!y&&(0,Ze.jsx)("div",{className:"library-menu-items-container__header",children:g("labels.personalLib")}),t&&(0,Ze.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,Ze.jsx)(Lt,{})}),!n.length&&!u.length?(0,Ze.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,Ze.jsx)("div",{className:"library-menu-items__no-items__label",children:g("library.noItems")}),(0,Ze.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?g("library.hint_emptyPrivateLibrary"):g("library.hint_emptyLibrary")})]}):(0,Ze.jsxs)(Lf,{children:[n.length>0&&(0,Ze.jsx)(Kd,{itemsRenderedPerBatch:W,items:[{id:null,elements:n}],onItemSelectToggle:C,onItemDrag:A,onClick:M,isItemSelected:_,svgCache:p}),(0,Ze.jsx)(Kd,{itemsRenderedPerBatch:W,items:u,onItemSelectToggle:C,onItemDrag:A,onClick:L,isItemSelected:_,svgCache:p})]})]}),(0,Ze.jsxs)(Ze.Fragment,{children:[(b.length>0||n.length>0||u.length>0)&&(0,Ze.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:g("labels.excalidrawLib")}),b.length>0?(0,Ze.jsx)(Lf,{children:(0,Ze.jsx)(Kd,{itemsRenderedPerBatch:W,items:b,onItemSelectToggle:C,onItemDrag:A,onClick:L,isItemSelected:_,svgCache:p})}):u.length>0?(0,Ze.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,Ze.jsx)(Ud,{style:{padding:"16px 0",width:"100%"},id:a,libraryReturnUrl:l,theme:i,children:(0,Ze.jsx)(Af,{selectedItems:s,onSelectItems:c})})]})]})}var _o=v(T(),1),Sa=Ve(!1),RE=({children:t})=>(0,_o.jsx)("div",{className:"layer-ui__library",children:t}),sT=({onInsertLibraryItems:t,pendingElements:e,onAddToLibrary:o,setAppState:r,libraryReturnUrl:n,library:i,id:a,theme:l,selectedItems:c,onSelectItems:s})=>{let[m]=Ce(oi,Me),d=(0,uo.useCallback)(b=>{(async(y,w)=>{ge("element","addToLibrary","ui");for(let C of As)if(y.some(I=>I.type===C))return r({errorMessage:g(`errors.libraryElementTypeError.${C}`)});let k=[{status:"unpublished",elements:y,id:Qr(),created:Date.now()},...w];o(),i.setLibrary(k).catch(()=>{r({errorMessage:g("alerts.errorAddingToLibrary")})})})(b,m.libraryItems)},[o,i,r,m.libraryItems]),p=(0,uo.useMemo)(()=>m.libraryItems,[m]);if(m.status==="loading"&&!m.isInitialized)return(0,_o.jsx)(RE,{children:(0,_o.jsx)("div",{className:"layer-ui__library-message",children:(0,_o.jsxs)("div",{children:[(0,_o.jsx)(Lt,{size:"2em"}),(0,_o.jsx)("span",{children:g("labels.libraryLoadingMessage")})]})})});let u=m.libraryItems.length>0||e.length>0;return(0,_o.jsxs)(RE,{children:[(0,_o.jsx)(Rf,{isLoading:m.status==="loading",libraryItems:p,onAddToLibrary:d,onInsertLibraryItems:t,pendingElements:e,id:a,libraryReturnUrl:n,theme:l,onSelectItems:s,selectedItems:c}),u&&(0,_o.jsx)(Ud,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:a,libraryReturnUrl:n,theme:l})]})},cT=(t,e)=>{let o=()=>Se(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}),r=(0,uo.useRef)(o()),n=(0,uo.useRef)(t),i=(0,uo.useRef)(e);return(!Mt(t.selectedElementIds,n.current.selectedElementIds)||!Mt(e,i.current))&&(r.current=o(),n.current=t,i.current=e),r.current},NE=()=>{let{library:t,id:e,onInsertElements:o}=So(),r=va(),n=Ae(),i=Fe(),a=hn(),[l,c]=(0,uo.useState)([]),s=(0,uo.useMemo)(()=>t,[t]),m=cT(n,a),d=(0,uo.useCallback)(u=>{o(_d(u))},[o]),p=(0,uo.useCallback)(()=>{i({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[i]);return(0,_o.jsx)(sT,{pendingElements:m,onInsertLibraryItems:d,onAddToLibrary:p,setAppState:i,libraryReturnUrl:r.libraryReturnUrl,library:s,id:e,theme:n.theme,selectedItems:l,onSelectItems:c})};var En=v(T(),1);function dT(t){if(t&&typeof t=="number")return t;switch(t){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var at=t=>{let[e,o]=xE(),[r]=(0,Zd.useState)(document.activeElement),{id:n}=Tt(),i=ke().viewport.isMobile;(0,Zd.useEffect)(()=>{if(!e)return;let s=Za(e);s.length>0&&t.autofocus!==!1&&(s[1]||s[0]).focus();let m=d=>{if(d.key===S.TAB){let p=Za(e),{activeElement:u}=document,b=p.findIndex(x=>x===u);b===0&&d.shiftKey?(p[p.length-1].focus(),d.preventDefault()):b===p.length-1&&!d.shiftKey&&(p[0].focus(),d.preventDefault())}};return e.addEventListener("keydown",m),()=>e.removeEventListener("keydown",m)},[e,t.autofocus]);let a=Fe(),l=Lr(Sa,Me),c=()=>{a({openMenu:null}),l(!1),r.focus(),t.onCloseRequest()};return(0,En.jsx)(yE,{className:F("Dialog",t.className,{"Dialog--fullscreen":i}),labelledBy:"dialog-title",maxWidth:dT(t.size),onCloseRequest:c,closeOnClickOutside:t.closeOnClickOutside,children:(0,En.jsxs)(Rt,{ref:o,children:[t.title&&(0,En.jsx)("h2",{id:`${n}-dialog-title`,className:"Dialog__title",children:(0,En.jsx)("span",{className:"Dialog__titleContent",children:t.title})}),(0,En.jsx)("button",{className:"Dialog__close",onClick:c,title:g("buttons.close"),"aria-label":g("buttons.close"),children:i?L0:wo}),(0,En.jsx)("div",{className:"Dialog__content",children:t.children})]})})};var _a=v(T(),1),OE=({children:t,onClose:e})=>{let[o,r]=(0,jd.useState)(!!t),{container:n}=Tt(),i=jd.default.useCallback(()=>{r(!1),e&&e(),n?.focus()},[e,n]);return(0,_a.jsx)(_a.Fragment,{children:o&&(0,_a.jsx)(at,{size:"small",onCloseRequest:i,title:g("errorDialog.title"),children:(0,_a.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:t})})})};h();var po=v($(),1);h();var Gl=v(T(),1),BE=function({onChange:t,value:e,choices:o,name:r}){return(0,Gl.jsx)("div",{className:"RadioGroup",children:o.map(n=>(0,Gl.jsxs)("div",{className:F("RadioGroup__choice",{active:n.value===e}),children:[(0,Gl.jsx)("input",{name:r,type:"radio",checked:n.value===e,onChange:()=>t(n.value)}),n.label]},n.label))})};h();var Nf=v(T(),1),Vl=({title:t,name:e,checked:o,onChange:r,disabled:n=!1})=>(0,Nf.jsx)("div",{className:F("Switch",{toggled:o,disabled:n}),children:(0,Nf.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 Xd=v($(),1);var Ma=v(T(),1),dr=(0,Xd.forwardRef)(({children:t,icon:e,onClick:o,label:r,variant:n="filled",color:i="primary",size:a="medium",fullWidth:l,className:c},s)=>{let[m,d]=(0,Xd.useState)(!1),p=async u=>{let b=o?.(u);if(vi(b))try{d(!0),await b}catch(x){if(x instanceof Ri)console.warn(x);else throw x}finally{d(!1)}};return(0,Ma.jsx)("button",{className:F("ExcButton",`ExcButton--color-${i}`,`ExcButton--variant-${n}`,`ExcButton--size-${a}`,{"ExcButton--fullWidth":l},c),onClick:p,type:"button","aria-label":r,ref:s,disabled:m,children:(0,Ma.jsxs)("div",{className:"ExcButton__contents",children:[m&&(0,Ma.jsx)(Lt,{}),e&&(0,Ma.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:e}),n!=="icon"&&(t??r)]})})});var Te=v(T(),1),mT="filter"in document.createElement("canvas").getContext("2d"),uT=()=>(0,Te.jsxs)("div",{children:[(0,Te.jsx)("h3",{children:g("canvasError.cannotShowPreview")}),(0,Te.jsx)("p",{children:(0,Te.jsx)("span",{children:g("canvasError.canvasTooBig")})}),(0,Te.jsxs)("em",{children:["(",g("canvasError.canvasTooBigTip"),")"]})]}),pT=({appStateSnapshot:t,elementsSnapshot:e,files:o,actionManager:r,onExportImage:n,name:i})=>{let a=Re(e,t),[l,c]=(0,po.useState)(i),[s,m]=(0,po.useState)(a),[d,p]=(0,po.useState)(t.exportBackground),[u,b]=(0,po.useState)(t.exportWithDarkMode),[x,y]=(0,po.useState)(t.exportEmbedScene),[w,k]=(0,po.useState)(t.exportScale),C=(0,po.useRef)(null),[I,A]=(0,po.useState)(null),{exportedElements:_,exportingFrame:M}=jn(e,t,s);return(0,po.useEffect)(()=>{let L=C.current;if(!L)return;let W=L.offsetWidth,B=L.offsetHeight;W&&$n({elements:_,appState:{...t,name:l,exportBackground:d,exportWithDarkMode:u,exportScale:w,exportEmbedScene:x},files:o,exportPadding:jr,maxWidthOrHeight:Math.max(W,B),exportingFrame:M}).then(Y=>(A(null),_r(Y).then(()=>{L.replaceChildren(Y)}).catch(O=>{throw O.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):O}))).catch(Y=>{console.error(Y),A(Y)})},[t,o,_,M,l,d,u,w,x]),(0,Te.jsxs)("div",{className:"ImageExportModal",children:[(0,Te.jsx)("h3",{children:g("imageExportDialog.header")}),(0,Te.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,Te.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:C,children:I&&(0,Te.jsx)(uT,{})}),(0,Te.jsx)("div",{className:"ImageExportModal__preview__filename",children:!Di&&(0,Te.jsx)("input",{type:"text",className:"TextInput",value:l,style:{width:"30ch"},onChange:L=>{c(L.target.value),r.executeAction(Up,"ui",L.target.value)}})})]}),(0,Te.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,Te.jsx)("h3",{children:g("imageExportDialog.header")}),a&&(0,Te.jsx)(Kl,{label:g("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,Te.jsx)(Vl,{name:"exportOnlySelected",checked:s,onChange:L=>{m(L)}})}),(0,Te.jsx)(Kl,{label:g("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,Te.jsx)(Vl,{name:"exportBackgroundSwitch",checked:d,onChange:L=>{p(L),r.executeAction(Wp,"ui",L)}})}),mT&&(0,Te.jsx)(Kl,{label:g("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,Te.jsx)(Vl,{name:"exportDarkModeSwitch",checked:u,onChange:L=>{b(L),r.executeAction(J2,"ui",L)}})}),(0,Te.jsx)(Kl,{label:g("imageExportDialog.label.embedScene"),tooltip:g("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,Te.jsx)(Vl,{name:"exportEmbedSwitch",checked:x,onChange:L=>{y(L),r.executeAction(gd,"ui",L)}})}),(0,Te.jsx)(Kl,{label:g("imageExportDialog.label.scale"),name:"exportScale",children:(0,Te.jsx)(BE,{name:"exportScale",value:w,onChange:L=>{k(L),r.executeAction(q2,"ui",L)},choices:ks.map(L=>({value:L,label:`${L}\xD7`}))})}),(0,Te.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,Te.jsx)(dr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToPng"),onClick:()=>n(Cs.png,_,{exportingFrame:M}),icon:Gu,children:g("imageExportDialog.button.exportToPng")}),(0,Te.jsx)(dr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToSvg"),onClick:()=>n(Cs.svg,_,{exportingFrame:M}),icon:Gu,children:g("imageExportDialog.button.exportToSvg")}),(Ni||Yr)&&(0,Te.jsx)(dr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.copyPngToClipboard"),onClick:()=>n(Cs.clipboard,_,{exportingFrame:M}),icon:Nc,children:g("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Kl=({label:t,children:e,tooltip:o,name:r})=>(0,Te.jsxs)("div",{className:"ImageExportModal__settings__setting",title:t,children:[(0,Te.jsxs)("label",{htmlFor:r,className:"ImageExportModal__settings__setting__label",children:[t,o&&(0,Te.jsx)(co,{label:o,long:!0,children:hx})]}),(0,Te.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:e})]}),FE=({elements:t,appState:e,files:o,actionManager:r,onExportImage:n,onCloseRequest:i,name:a})=>{let[{appStateSnapshot:l,elementsSnapshot:c}]=(0,po.useState)(()=>({appStateSnapshot:Qo(e),elementsSnapshot:Qo(t)}));return(0,Te.jsx)(at,{onCloseRequest:i,size:"wide",title:!1,children:(0,Te.jsx)(pT,{elementsSnapshot:c,appStateSnapshot:l,files:o,actionManager:r,onExportImage:n,name:a})})};h();var $E=v(T(),1),qd=({children:t,side:e,className:o})=>(0,$E.jsx)("div",{className:F("FixedSideContainer",`FixedSideContainer_side_${e}`,o),children:t});h();var Of=v(T(),1),fT=({appState:t,isMobile:e,device:o,app:r})=>{let{activeTool:n,isResizing:i,isRotating:a,lastPointerDownWith:l}=t,c=t.multiElement!==null;if(t.openSidebar&&!o.editor.canFitSidebar)return null;if(vo(t))return g("hints.eraserRevert");if(n.type==="arrow"||n.type==="line")return c?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 s=r.scene.getSelectedElements(t);if(i&&l==="mouse"&&s.length===1){let m=s[0];return Pe(m)&&m.points.length===2?g("hints.lockAngle"):Jr(m)?g("hints.resizeImage"):g("hints.resize")}if(a&&l==="mouse")return g("hints.rotate");if(s.length===1&&ie(s[0]))return g("hints.text_selected");if(t.editingElement&&ie(t.editingElement))return g("hints.text_editing");if(n.type==="selection"){if(t.draggingElement?.type==="selection"&&!s.length&&!t.editingElement&&!t.editingLinearElement)return g("hints.deepBoxSelect");if(t.gridSize&&t.draggingElement)return g("hints.disableSnapping");if(!s.length&&!e)return g("hints.canvasPanning");if(s.length===1){if(Pe(s[0]))return t.editingLinearElement?t.editingLinearElement.selectedPointsIndices?g("hints.lineEditor_pointSelected"):g("hints.lineEditor_nothingSelected"):g("hints.lineEditor_info");if(!t.draggingElement&&wi(s[0]))return g("hints.bindTextToElement")}}return null},Jd=({appState:t,isMobile:e,device:o,app:r})=>{let n=fT({appState:t,isMobile:e,device:o,app:r});return n?(n=N(n),(0,Of.jsx)("div",{className:"HintViewer",children:(0,Of.jsx)("span",{children:n})})):null};h();var Yl=v(T(),1),hT="medium",HE={CHECKED:$b,UNCHECKED:Fb},Qd=t=>(0,Yl.jsxs)("label",{className:F("ToolIcon ToolIcon__lock",`ToolIcon_size_${hT}`,{"is-mobile":t.isMobile}),title:`${t.title} \u2014 Q`,children:[(0,Yl.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,Yl.jsx)("div",{className:"ToolIcon__icon",children:t.checked?HE.CHECKED:HE.UNCHECKED})]});h();h();var ai=v(T(),1),wn=({heading:t,children:e,...o})=>{let{id:r}=Tt(),n=(0,ai.jsx)("h2",{className:"visually-hidden",id:`${r}-${t}-title`,children:g(`headings.${t}`)});return(0,ai.jsx)("section",{...o,"aria-labelledby":`${r}-${t}-title`,children:typeof e=="function"?e(n):(0,ai.jsxs)(ai.Fragment,{children:[n,e]})})};h();var Ko=4,mr=6,zE="rgba(0,0,0,0.3)",UE=(t,e,o,r)=>{if(!t.length)return{horizontal:null,vertical:null};let[n,i,a,l]=Ge(t),c=e/r.zoom.value,s=o/r.zoom.value,m=e-c,d=o-s,p={top:parseInt(Ka("sat"))||0,bottom:parseInt(Ka("sab"))||0,left:parseInt(Ka("sal"))||0,right:parseInt(Ka("sar"))||0},u=Pr().rtl,b=-r.scrollX+m/2+p.left,x=-r.scrollY+d/2+p.top,y=b+c-p.right,w=x+s-p.bottom,k=Math.min(n,b),C=Math.min(i,x),I=Math.max(a,y),A=Math.max(l,w);return{horizontal:b===k&&y===I?null:{x:Math.max(p.left,Ko)+(b-k)/(I-k)*e,y:o-mr-Math.max(Ko,p.bottom),width:(y-b)/(I-k)*e-Math.max(Ko*2,p.left+p.right),height:mr},vertical:x===C&&w===A?null:{x:u?Math.max(p.left,Ko):e-mr-Math.max(p.right,Ko),y:(x-C)/(A-C)*o+Math.max(p.top,Ko),width:mr,height:(w-x)/(A-C)*o-Math.max(Ko*2,p.top+p.bottom)}}},Bf=(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 Zl=v(T(),1),gT="medium",em=t=>t.penDetected?(0,Zl.jsxs)("label",{className:F("ToolIcon ToolIcon__penMode",`ToolIcon_size_${gT}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Zl.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Zl.jsx)("div",{className:"ToolIcon__icon",children:jb})]}):null;h();var pe=v(T(),1),tm=t=>{let e=Ge(t.elements),o=zi(t.elements,t.appState),r=Ge(o);return(0,pe.jsx)("div",{className:"Stats",children:(0,pe.jsxs)(Rt,{padding:2,children:[(0,pe.jsx)("div",{className:"close",onClick:t.onClose,children:wo}),(0,pe.jsx)("h3",{children:g("stats.title")}),(0,pe.jsx)("table",{children:(0,pe.jsxs)("tbody",{children:[(0,pe.jsx)("tr",{children:(0,pe.jsx)("th",{colSpan:2,children:g("stats.scene")})}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.elements")}),(0,pe.jsx)("td",{children:t.elements.length})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.width")}),(0,pe.jsx)("td",{children:Math.round(e[2])-Math.round(e[0])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.height")}),(0,pe.jsx)("td",{children:Math.round(e[3])-Math.round(e[1])})]}),o.length===1&&(0,pe.jsx)("tr",{children:(0,pe.jsx)("th",{colSpan:2,children:g("stats.element")})}),o.length>1&&(0,pe.jsxs)(pe.Fragment,{children:[(0,pe.jsx)("tr",{children:(0,pe.jsx)("th",{colSpan:2,children:g("stats.selected")})}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.elements")}),(0,pe.jsx)("td",{children:o.length})]})]}),o.length>0&&(0,pe.jsxs)(pe.Fragment,{children:[(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:"x"}),(0,pe.jsx)("td",{children:Math.round(r[0])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:"y"}),(0,pe.jsx)("td",{children:Math.round(r[1])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.width")}),(0,pe.jsx)("td",{children:Math.round(r[2]-r[0])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.height")}),(0,pe.jsx)("td",{children:Math.round(r[3]-r[1])})]})]}),o.length===1&&(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.angle")}),(0,pe.jsx)("td",{children:`${Math.round(o[0].angle*180/Math.PI)}\xB0`})]}),t.renderCustomStats?.(t.elements,t.appState)]})})]})})};h();var WE=v(T(),1),om=t=>(0,WE.jsx)(ae,{className:F("Shape",{fillable:!1}),type:"radio",icon:fx,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 Oe=v(T(),1),GE=({appState:t,elements:e,actionManager:o,setAppState:r,onLockToggle:n,onHandToolToggle:i,onPenModeToggle:a,renderTopRightUI:l,renderCustomStats:c,renderSidebars:s,device:m,renderWelcomeScreen:d,UIOptions:p,app:u})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:x,DefaultSidebarTriggerTunnel:y}=ze(),w=()=>(0,Oe.jsxs)(qd,{side:"top",className:"App-top-bar",children:[d&&(0,Oe.jsx)(b.Out,{}),(0,Oe.jsx)(wn,{heading:"shapes",children:C=>(0,Oe.jsx)(kt.Col,{gap:4,align:"center",children:(0,Oe.jsxs)(kt.Row,{gap:1,className:"App-toolbar-container",children:[(0,Oe.jsxs)(Rt,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[C,(0,Oe.jsx)(kt.Row,{gap:1,children:(0,Oe.jsx)(Hd,{appState:t,activeTool:t.activeTool,UIOptions:p,app:u})})]}),l&&l(!0,t),(0,Oe.jsxs)("div",{className:"mobile-misc-tools-container",children:[!t.viewModeEnabled&&(0,Oe.jsx)(y.Out,{}),(0,Oe.jsx)(em,{checked:t.penMode,onChange:()=>a(null),title:g("toolBar.penMode"),isMobile:!0,penDetected:t.penDetected}),(0,Oe.jsx)(Qd,{checked:t.activeTool.locked,onChange:n,title:g("toolBar.lock"),isMobile:!0}),(0,Oe.jsx)(om,{checked:Sr(t),onChange:()=>i(),title:g("toolBar.hand"),isMobile:!0})]})]})})}),(0,Oe.jsx)(Jd,{appState:t,isMobile:!0,device:m,app:u})]}),k=()=>t.viewModeEnabled?(0,Oe.jsx)("div",{className:"App-toolbar-content",children:(0,Oe.jsx)(x.Out,{})}):(0,Oe.jsxs)("div",{className:"App-toolbar-content",children:[(0,Oe.jsx)(x.Out,{}),o.renderAction("toggleEditMenu"),o.renderAction("undo"),o.renderAction("redo"),o.renderAction(t.multiElement?"finalize":"duplicateSelection"),o.renderAction("deleteSelectedElements")]});return(0,Oe.jsxs)(Oe.Fragment,{children:[s(),!t.viewModeEnabled&&w(),!t.openMenu&&t.showStats&&(0,Oe.jsx)(tm,{appState:t,setAppState:r,elements:e,onClose:()=>{o.executeAction(xn)},renderCustomStats:c}),(0,Oe.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:mr+Ko*2,marginLeft:mr+Ko*2,marginRight:mr+Ko*2},children:(0,Oe.jsxs)(Rt,{padding:0,children:[t.openMenu==="shape"&&!t.viewModeEnabled&&$i(t,e)?(0,Oe.jsx)(wn,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,Oe.jsx)($d,{appState:t,elementsMap:u.scene.getNonDeletedElementsMap(),renderAction:o.renderAction})}):null,(0,Oe.jsxs)("footer",{className:"App-toolbar",children:[k(),t.scrolledOutside&&!t.openMenu&&!t.openSidebar&&(0,Oe.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(C=>({...zn(e,C)}))},children:g("buttons.scrollBackToContent")})]})]})})]})};h();var Tn=v($(),1);var Cn=v(T(),1),VE=t=>{let e=(0,Tn.useRef)(null),[o,r]=(0,Tn.useState)(null);return(0,Tn.useLayoutEffect)(()=>{if(!t.spreadsheet)return;let n=Y1(t.chartType,t.spreadsheet,0,0);r(n);let i,a=e.current;return(async()=>(i=await sc(n,{exportBackground:!1,viewBackgroundColor:Qe.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,Cn.jsx)("button",{className:"ChartPreview",onClick:()=>{o&&t.onClick(t.chartType,o)},children:(0,Cn.jsx)("div",{ref:e})})},KE=({setAppState:t,appState:e,onClose:o})=>{let{onInsertElements:r}=So(),n=Tn.default.useCallback(()=>{o&&o()},[o]),i=(a,l)=>{r(l),ge("paste","chart",a),t({currentChartType:a,pasteDialog:{shown:!1,data:null}})};return(0,Cn.jsx)(at,{size:"small",onCloseRequest:n,title:g("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,Cn.jsxs)("div",{className:"container",children:[(0,Cn.jsx)(VE,{chartType:"bar",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="bar",onClick:i}),(0,Cn.jsx)(VE,{chartType:"line",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="line",onClick:i})]})})};h();var YE=v($(),1);var U=v(T(),1),bT=()=>(0,U.jsxs)("div",{className:"HelpDialog__header",children:[(0,U.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.documentation"),(0,U.jsx)("div",{className:"HelpDialog__link-icon",children:Pc})]}),(0,U.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.blog"),(0,U.jsx)("div",{className:"HelpDialog__link-icon",children:Pc})]}),(0,U.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.github"),(0,U.jsx)("div",{className:"HelpDialog__link-icon",children:Pc})]})]}),xT=t=>(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)("h3",{children:t.title}),(0,U.jsx)("div",{className:"HelpDialog__islands-container",children:t.children})]}),Ff=t=>(0,U.jsxs)("div",{className:`HelpDialog__island ${t.className}`,children:[(0,U.jsx)("h4",{className:"HelpDialog__island-title",children:t.caption}),(0,U.jsx)("div",{className:"HelpDialog__island-content",children:t.children})]});function*vT(t,e){let o=!0;for(let r of t)o||(yield e),o=!1,yield r}var yT=t=>t.replace(/\b[a-z]\b/,e=>e.toUpperCase()),X=({label:t,shortcuts:e,isOr:o=!0})=>{let r=e.map(n=>(n.endsWith("++")?[...n.slice(0,-2).split("+"),"+"]:n.split("+")).map(a=>(0,U.jsx)(ET,{children:yT(a)},a)));return(0,U.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,U.jsx)("div",{children:t}),(0,U.jsx)("div",{className:"HelpDialog__key-container",children:[...vT(r,o?g("helpDialog.or"):null)]})]})},ET=t=>(0,U.jsx)("kbd",{className:"HelpDialog__key",...t}),ZE=({onClose:t})=>{let e=YE.default.useCallback(()=>{t&&t()},[t]);return(0,U.jsx)(U.Fragment,{children:(0,U.jsxs)(at,{onCloseRequest:e,title:g("helpDialog.title"),className:"HelpDialog",children:[(0,U.jsx)(bT,{}),(0,U.jsxs)(xT,{title:g("helpDialog.shortcuts"),children:[(0,U.jsxs)(Ff,{className:"HelpDialog__island--tools",caption:g("helpDialog.tools"),children:[(0,U.jsx)(X,{label:g("toolBar.hand"),shortcuts:[S.H]}),(0,U.jsx)(X,{label:g("toolBar.selection"),shortcuts:[S.V,S[1]]}),(0,U.jsx)(X,{label:g("toolBar.rectangle"),shortcuts:[S.R,S[2]]}),(0,U.jsx)(X,{label:g("toolBar.diamond"),shortcuts:[S.D,S[3]]}),(0,U.jsx)(X,{label:g("toolBar.ellipse"),shortcuts:[S.O,S[4]]}),(0,U.jsx)(X,{label:g("toolBar.arrow"),shortcuts:[S.A,S[5]]}),(0,U.jsx)(X,{label:g("toolBar.line"),shortcuts:[S.L,S[6]]}),(0,U.jsx)(X,{label:g("toolBar.freedraw"),shortcuts:[S.P,S[7]]}),(0,U.jsx)(X,{label:g("toolBar.text"),shortcuts:[S.T,S[8]]}),(0,U.jsx)(X,{label:g("toolBar.image"),shortcuts:[S[9]]}),(0,U.jsx)(X,{label:g("toolBar.eraser"),shortcuts:[S.E,S[0]]}),(0,U.jsx)(X,{label:g("toolBar.frame"),shortcuts:[S.F]}),(0,U.jsx)(X,{label:g("toolBar.laser"),shortcuts:[S.K]}),(0,U.jsx)(X,{label:g("labels.eyeDropper"),shortcuts:[S.I,"Shift+S","Shift+G"]}),(0,U.jsx)(X,{label:g("helpDialog.editLineArrowPoints"),shortcuts:[N("CtrlOrCmd+Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.editText"),shortcuts:[N("Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.textNewLine"),shortcuts:[N("Enter"),N("Shift+Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.textFinish"),shortcuts:[N("Esc"),N("CtrlOrCmd+Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.curvedArrow"),shortcuts:["A",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,U.jsx)(X,{label:g("helpDialog.curvedLine"),shortcuts:["L",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,U.jsx)(X,{label:g("toolBar.lock"),shortcuts:[S.Q]}),(0,U.jsx)(X,{label:g("helpDialog.preventBinding"),shortcuts:[N("CtrlOrCmd")]}),(0,U.jsx)(X,{label:g("toolBar.link"),shortcuts:[N("CtrlOrCmd+K")]})]}),(0,U.jsxs)(Ff,{className:"HelpDialog__island--view",caption:g("helpDialog.view"),children:[(0,U.jsx)(X,{label:g("buttons.zoomIn"),shortcuts:[N("CtrlOrCmd++")]}),(0,U.jsx)(X,{label:g("buttons.zoomOut"),shortcuts:[N("CtrlOrCmd+-")]}),(0,U.jsx)(X,{label:g("buttons.resetZoom"),shortcuts:[N("CtrlOrCmd+0")]}),(0,U.jsx)(X,{label:g("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,U.jsx)(X,{label:g("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,U.jsx)(X,{label:g("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,U.jsx)(X,{label:g("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,U.jsx)(X,{label:g("buttons.zenMode"),shortcuts:[N("Alt+Z")]}),(0,U.jsx)(X,{label:g("buttons.objectsSnapMode"),shortcuts:[N("Alt+S")]}),(0,U.jsx)(X,{label:g("labels.showGrid"),shortcuts:[N("CtrlOrCmd+'")]}),(0,U.jsx)(X,{label:g("labels.viewMode"),shortcuts:[N("Alt+R")]}),(0,U.jsx)(X,{label:g("labels.toggleTheme"),shortcuts:[N("Alt+Shift+D")]}),(0,U.jsx)(X,{label:g("stats.title"),shortcuts:[N("Alt+/")]})]}),(0,U.jsxs)(Ff,{className:"HelpDialog__island--editor",caption:g("helpDialog.editor"),children:[(0,U.jsx)(X,{label:g("labels.moveCanvas"),shortcuts:[N(`Space+${g("helpDialog.drag")}`),N(`Wheel+${g("helpDialog.drag")}`)],isOr:!0}),(0,U.jsx)(X,{label:g("buttons.clearReset"),shortcuts:[N("CtrlOrCmd+Delete")]}),(0,U.jsx)(X,{label:g("labels.delete"),shortcuts:[N("Delete")]}),(0,U.jsx)(X,{label:g("labels.cut"),shortcuts:[N("CtrlOrCmd+X")]}),(0,U.jsx)(X,{label:g("labels.copy"),shortcuts:[N("CtrlOrCmd+C")]}),(0,U.jsx)(X,{label:g("labels.paste"),shortcuts:[N("CtrlOrCmd+V")]}),(0,U.jsx)(X,{label:g("labels.pasteAsPlaintext"),shortcuts:[N("CtrlOrCmd+Shift+V")]}),(0,U.jsx)(X,{label:g("labels.selectAll"),shortcuts:[N("CtrlOrCmd+A")]}),(0,U.jsx)(X,{label:g("labels.multiSelect"),shortcuts:[N(`Shift+${g("helpDialog.click")}`)]}),(0,U.jsx)(X,{label:g("helpDialog.deepSelect"),shortcuts:[N(`CtrlOrCmd+${g("helpDialog.click")}`)]}),(0,U.jsx)(X,{label:g("helpDialog.deepBoxSelect"),shortcuts:[N(`CtrlOrCmd+${g("helpDialog.drag")}`)]}),(Ni||Yr)&&(0,U.jsx)(X,{label:g("labels.copyAsPng"),shortcuts:[N("Shift+Alt+C")]}),(0,U.jsx)(X,{label:g("labels.copyStyles"),shortcuts:[N("CtrlOrCmd+Alt+C")]}),(0,U.jsx)(X,{label:g("labels.pasteStyles"),shortcuts:[N("CtrlOrCmd+Alt+V")]}),(0,U.jsx)(X,{label:g("labels.sendToBack"),shortcuts:[No?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")]}),(0,U.jsx)(X,{label:g("labels.bringToFront"),shortcuts:[No?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")]}),(0,U.jsx)(X,{label:g("labels.sendBackward"),shortcuts:[N("CtrlOrCmd+[")]}),(0,U.jsx)(X,{label:g("labels.bringForward"),shortcuts:[N("CtrlOrCmd+]")]}),(0,U.jsx)(X,{label:g("labels.alignTop"),shortcuts:[N("CtrlOrCmd+Shift+Up")]}),(0,U.jsx)(X,{label:g("labels.alignBottom"),shortcuts:[N("CtrlOrCmd+Shift+Down")]}),(0,U.jsx)(X,{label:g("labels.alignLeft"),shortcuts:[N("CtrlOrCmd+Shift+Left")]}),(0,U.jsx)(X,{label:g("labels.alignRight"),shortcuts:[N("CtrlOrCmd+Shift+Right")]}),(0,U.jsx)(X,{label:g("labels.duplicateSelection"),shortcuts:[N("CtrlOrCmd+D"),N(`Alt+${g("helpDialog.drag")}`)]}),(0,U.jsx)(X,{label:g("helpDialog.toggleElementLock"),shortcuts:[N("CtrlOrCmd+Shift+L")]}),(0,U.jsx)(X,{label:g("buttons.undo"),shortcuts:[N("CtrlOrCmd+Z")]}),(0,U.jsx)(X,{label:g("buttons.redo"),shortcuts:ys?[N("CtrlOrCmd+Y"),N("CtrlOrCmd+Shift+Z")]:[N("CtrlOrCmd+Shift+Z")]}),(0,U.jsx)(X,{label:g("labels.group"),shortcuts:[N("CtrlOrCmd+G")]}),(0,U.jsx)(X,{label:g("labels.ungroup"),shortcuts:[N("CtrlOrCmd+Shift+G")]}),(0,U.jsx)(X,{label:g("labels.flipHorizontal"),shortcuts:[N("Shift+H")]}),(0,U.jsx)(X,{label:g("labels.flipVertical"),shortcuts:[N("Shift+V")]}),(0,U.jsx)(X,{label:g("labels.showStroke"),shortcuts:[N("S")]}),(0,U.jsx)(X,{label:g("labels.showBackground"),shortcuts:[N("G")]}),(0,U.jsx)(X,{label:g("labels.decreaseFontSize"),shortcuts:[N("CtrlOrCmd+Shift+<")]}),(0,U.jsx)(X,{label:g("labels.increaseFontSize"),shortcuts:[N("CtrlOrCmd+Shift+>")]})]})]})]})})};h();var rm=v($(),1);var zt=v(T(),1),$f=3,wT=8,CT=({shouldWrap:t,children:e,clientId:o,username:r})=>t?(0,zt.jsx)(co,{label:r||"Unknown user",children:e},o):(0,zt.jsx)(rm.default.Fragment,{children:e},o),Hf=({actionManager:t,collaborator:e,clientId:o,withName:r=!1,shouldWrapWithTooltip:n=!1,isBeingFollowed:i})=>{let a={clientId:o,collaborator:e,withName:r,isBeingFollowed:i},l=t.renderAction("goToCollaborator",a);return(0,zt.jsx)(CT,{clientId:o,username:e.username,shouldWrap:n,children:l},o)},TT=["avatarUrl","id","socketId","username"],nm=rm.default.memo(({className:t,mobile:e,collaborators:o,userToFollow:r})=>{let n=Nt(),i=new Map;o.forEach((u,b)=>{let x=u.id||b;i.set(x,{...u,socketId:b})});let a=Array.from(i).filter(([u,b])=>b.username?.trim()),[l,c]=rm.default.useState("");if(a.length===0)return null;let m=l.trim().toLowerCase()?a.filter(([,u])=>u.username?.toLowerCase().includes(l)):a,p=a.slice(0,$f).map(([u,b])=>Hf({actionManager:n,collaborator:b,clientId:u,shouldWrapWithTooltip:!0,isBeingFollowed:b.socketId===r}));return e?(0,zt.jsx)("div",{className:F("UserList UserList_mobile",t),children:a.map(([u,b])=>Hf({actionManager:n,collaborator:b,clientId:u,shouldWrapWithTooltip:!0,isBeingFollowed:b.socketId===r}))}):(0,zt.jsxs)("div",{className:F("UserList",t),children:[p,a.length>$f&&(0,zt.jsxs)(ad,{onOpenChange:u=>{u||c("")},children:[(0,zt.jsxs)(ld,{className:"UserList__more",children:["+",a.length-$f]}),(0,zt.jsx)(sd,{style:{zIndex:2,width:"13rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,zt.jsxs)(Rt,{style:{overflow:"hidden"},children:[a.length>=wT&&(0,zt.jsxs)("div",{className:"UserList__search-wrapper",children:[Tx,(0,zt.jsx)("input",{className:"UserList__search",type:"text",placeholder:g("userList.search.placeholder"),value:l,onChange:u=>{c(u.target.value)}})]}),(0,zt.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[m.length===0&&(0,zt.jsx)("div",{className:"UserList__collaborators__empty",children:g("userList.search.empty")}),(0,zt.jsx)("div",{className:"UserList__hint",children:g("userList.hint.text")}),m.map(([u,b])=>Hf({actionManager:n,collaborator:b,clientId:u,withName:!0,isBeingFollowed:b.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;for(let[o,r]of t.collaborators){let n=e.collaborators.get(o);if(!n||!Mt(r,n,TT))return!1}return!0});h();var XE=v($(),1);h();var jE=v(T(),1),zf=({children:t,color:e})=>(0,jE.jsx)("div",{className:"Card",style:{"--card-color":e==="primary"?"var(--color-primary)":Qe[e][7],"--card-color-darker":e==="primary"?"var(--color-primary-darker)":Qe[e][8],"--card-color-darkest":e==="primary"?"var(--color-primary-darkest)":Qe[e][9]},children:t});var Ct=v(T(),1),ST=({elements:t,appState:e,setAppState:o,files:r,actionManager:n,exportOpts:i,canvas:a,onCloseRequest:l})=>{let{onExportToBackend:c}=i;return(0,Ct.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,Ct.jsxs)("div",{className:"ExportDialog-cards",children:[i.saveFileToDisk&&(0,Ct.jsxs)(zf,{color:"lime",children:[(0,Ct.jsx)("div",{className:"Card-icon",children:p0}),(0,Ct.jsx)("h2",{children:g("exportDialog.disk_title")}),(0,Ct.jsxs)("div",{className:"Card-details",children:[g("exportDialog.disk_details"),!Di&&n.renderAction("changeProjectName")]}),(0,Ct.jsx)(ae,{className:"Card-button",type:"button",title:g("exportDialog.disk_button"),"aria-label":g("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{n.executeAction(Ol,"ui")}})]}),c&&(0,Ct.jsxs)(zf,{color:"pink",children:[(0,Ct.jsx)("div",{className:"Card-icon",children:Dc}),(0,Ct.jsx)("h2",{children:g("exportDialog.link_title")}),(0,Ct.jsx)("div",{className:"Card-details",children:g("exportDialog.link_details")}),(0,Ct.jsx)(ae,{className:"Card-button",type:"button",title:g("exportDialog.link_button"),"aria-label":g("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{ge("export","link",`ui (${_g()})`),await c(t,e,r),l()}catch(s){o({errorMessage:s.message})}}})]}),i.renderCustomUI&&i.renderCustomUI(t,e,r,a)]})})},qE=({elements:t,appState:e,files:o,actionManager:r,exportOpts:n,canvas:i,setAppState:a})=>{let l=XE.default.useCallback(()=>{a({openDialog:null})},[a]);return(0,Ct.jsx)(Ct.Fragment,{children:e.openDialog?.name==="jsonExport"&&(0,Ct.jsx)(at,{onCloseRequest:l,title:g("buttons.export"),children:(0,Ct.jsx)(ST,{elements:t,appState:e,setAppState:a,files:o,actionManager:r,onCloseRequest:l,exportOpts:n,canvas:i})})})};h();h();var QE=v(T(),1),JE=t=>(0,QE.jsx)("button",{className:"help-icon",onClick:t.onClick,type:"button",title:`${g("helpDialog.title")} \u2014 ?`,"aria-label":g("helpDialog.title"),children:Ki});var Qt=v(T(),1),ew=({appState:t,actionManager:e,showExitZenModeBtn:o,renderWelcomeScreen:r})=>{let{FooterCenterTunnel:n,WelcomeScreenHelpHintTunnel:i}=ze(),a=ke(),l=!t.viewModeEnabled&&t.multiElement&&a.isTouchScreen;return(0,Qt.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,Qt.jsx)("div",{className:F("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled}),children:(0,Qt.jsx)(kt.Col,{gap:2,children:(0,Qt.jsxs)(wn,{heading:"canvasActions",children:[(0,Qt.jsx)(fE,{renderAction:e.renderAction,zoom:t.zoom}),!t.viewModeEnabled&&(0,Qt.jsx)(hE,{renderAction:e.renderAction,className:F("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":t.zenModeEnabled})}),l&&(0,Qt.jsx)(bE,{renderAction:e.renderAction,className:F("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled})})]})})}),(0,Qt.jsx)(n.Out,{}),(0,Qt.jsx)("div",{className:F("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:(0,Qt.jsxs)("div",{style:{position:"relative"},children:[r&&(0,Qt.jsx)(i.Out,{}),(0,Qt.jsx)(JE,{onClick:()=>e.executeAction(Jn)})]})}),(0,Qt.jsx)(gE,{actionManager:e,showExitZenModeBtn:o})]})},tw=ew;ew.displayName="Footer";h();var vt=v($(),1);h();var ow=v($(),1),im=ow.default.createContext({});h();var nw=v($(),1);h();var rw=v(T(),1),ur=({type:t="button",onSelect:e,selected:o,children:r,className:n="",...i})=>(0,rw.jsx)("button",{onClick:qr(i.onClick,a=>{e()}),type:t,className:F("excalidraw-button",n,{selected:o}),...i,children:r});var li=v(T(),1),Uf=({children:t,className:e})=>{let o=ke(),r=(0,nw.useContext)(im),n=!!(o.editor.canFitSidebar&&r.shouldRenderDockButton);return(0,li.jsxs)("div",{className:F("sidebar__header",e),"data-testid":"sidebar-header",children:[t,(0,li.jsxs)("div",{className:"sidebar__header__buttons",children:[n&&(0,li.jsx)(co,{label:g("labels.sidebarLock"),children:(0,li.jsx)(ur,{onSelect:()=>r.onDock?.(!r.docked),selected:!!r.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":g("labels.sidebarLock"),children:Bb})}),(0,li.jsx)(ur,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:r.onCloseRequest,"aria-label":g("buttons.close"),children:wo})]})]})};Uf.displayName="SidebarHeader";h();var si=v(T(),1),Wf=({name:t,tab:e,icon:o,title:r,children:n,onToggle:i,className:a,style:l})=>{let c=Fe(),s=Ae();return(0,si.jsxs)("label",{title:r,className:"sidebar-trigger__label-element",children:[(0,si.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:m=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let d=m.target.checked;c({openSidebar:d?{name:t,tab:e}:null}),i?.(d)},checked:s.openSidebar?.name===t,"aria-label":r,"aria-keyshortcuts":"0"}),(0,si.jsxs)("div",{className:F("sidebar-trigger",a),style:l,children:[o&&(0,si.jsx)("div",{children:o}),n&&(0,si.jsx)("div",{className:"sidebar-trigger__label",children:n})]})]})};Wf.displayName="SidebarTrigger";h();h();var It=v($());h();var Ue=v($());h();var Yo=v($());function iw(t){let e=t+"CollectionProvider",[o,r]=ar(e),[n,i]=o(e,{collectionRef:{current:null},itemMap:new Map}),a=u=>{let{scope:b,children:x}=u,y=Yo.default.useRef(null),w=Yo.default.useRef(new Map).current;return Yo.default.createElement(n,{scope:b,itemMap:w,collectionRef:y},x)},l=t+"CollectionSlot",c=Yo.default.forwardRef((u,b)=>{let{scope:x,children:y}=u,w=i(l,x),k=Pt(b,w.collectionRef);return Yo.default.createElement(dn,{ref:k},y)}),s=t+"CollectionItemSlot",m="data-radix-collection-item",d=Yo.default.forwardRef((u,b)=>{let{scope:x,children:y,...w}=u,k=Yo.default.useRef(null),C=Pt(b,k),I=i(s,x);return Yo.default.useEffect(()=>(I.itemMap.set(k,{ref:k,...w}),()=>void I.itemMap.delete(k))),Yo.default.createElement(dn,{[m]:"",ref:C},y)});function p(u){let b=i(t+"CollectionConsumer",u);return Yo.default.useCallback(()=>{let y=b.collectionRef.current;if(!y)return[];let w=Array.from(y.querySelectorAll(`[${m}]`));return Array.from(b.itemMap.values()).sort((I,A)=>w.indexOf(I.ref.current)-w.indexOf(A.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:d},p,r]}h();var jl=v($()),kT=(0,jl.createContext)(void 0);function am(t){let e=(0,jl.useContext)(kT);return t||e||"ltr"}var Gf="rovingFocusGroup.onEntryFocus",IT={bubbles:!1,cancelable:!0},Kf="RovingFocusGroup",[Vf,aw,_T]=iw(Kf),[MT,Yf]=ar(Kf,[_T]),[AT,LT]=MT(Kf),PT=(0,Ue.forwardRef)((t,e)=>(0,Ue.createElement)(Vf.Provider,{scope:t.__scopeRovingFocusGroup},(0,Ue.createElement)(Vf.Slot,{scope:t.__scopeRovingFocusGroup},(0,Ue.createElement)(DT,be({},t,{ref:e}))))),DT=(0,Ue.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,orientation:r,loop:n=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:s,...m}=t,d=(0,Ue.useRef)(null),p=Pt(e,d),u=am(i),[b=null,x]=la({prop:a,defaultProp:l,onChange:c}),[y,w]=(0,Ue.useState)(!1),k=jt(s),C=aw(o),I=(0,Ue.useRef)(!1),[A,_]=(0,Ue.useState)(0);return(0,Ue.useEffect)(()=>{let M=d.current;if(M)return M.addEventListener(Gf,k),()=>M.removeEventListener(Gf,k)},[k]),(0,Ue.createElement)(AT,{scope:o,orientation:r,dir:u,loop:n,currentTabStopId:b,onItemFocus:(0,Ue.useCallback)(M=>x(M),[x]),onItemShiftTab:(0,Ue.useCallback)(()=>w(!0),[]),onFocusableItemAdd:(0,Ue.useCallback)(()=>_(M=>M+1),[]),onFocusableItemRemove:(0,Ue.useCallback)(()=>_(M=>M-1),[])},(0,Ue.createElement)(it.div,be({tabIndex:y||A===0?-1:0,"data-orientation":r},m,{ref:p,style:{outline:"none",...t.style},onMouseDown:bt(t.onMouseDown,()=>{I.current=!0}),onFocus:bt(t.onFocus,M=>{let L=!I.current;if(M.target===M.currentTarget&&L&&!y){let W=new CustomEvent(Gf,IT);if(M.currentTarget.dispatchEvent(W),!W.defaultPrevented){let B=C().filter(Q=>Q.focusable),Y=B.find(Q=>Q.active),O=B.find(Q=>Q.id===b),ne=[Y,O,...B].filter(Boolean).map(Q=>Q.ref.current);lw(ne)}}I.current=!1}),onBlur:bt(t.onBlur,()=>w(!1))})))}),RT="RovingFocusGroupItem",NT=(0,Ue.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,focusable:r=!0,active:n=!1,tabStopId:i,...a}=t,l=ra(),c=i||l,s=LT(RT,o),m=s.currentTabStopId===c,d=aw(o),{onFocusableItemAdd:p,onFocusableItemRemove:u}=s;return(0,Ue.useEffect)(()=>{if(r)return p(),()=>u()},[r,p,u]),(0,Ue.createElement)(Vf.ItemSlot,{scope:o,id:c,focusable:r,active:n},(0,Ue.createElement)(it.span,be({tabIndex:m?0:-1,"data-orientation":s.orientation},a,{ref:e,onMouseDown:bt(t.onMouseDown,b=>{r?s.onItemFocus(c):b.preventDefault()}),onFocus:bt(t.onFocus,()=>s.onItemFocus(c)),onKeyDown:bt(t.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){s.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let x=FT(b,s.orientation,s.dir);if(x!==void 0){b.preventDefault();let w=d().filter(k=>k.focusable).map(k=>k.ref.current);if(x==="last")w.reverse();else if(x==="prev"||x==="next"){x==="prev"&&w.reverse();let k=w.indexOf(b.currentTarget);w=s.loop?$T(w,k+1):w.slice(k+1)}setTimeout(()=>lw(w))}})})))}),OT={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function BT(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function FT(t,e,o){let r=BT(t.key,o);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return OT[r]}function lw(t){let e=document.activeElement;for(let o of t)if(o===e||(o.focus(),document.activeElement!==e))return}function $T(t,e){return t.map((o,r)=>t[(e+r)%t.length])}var sw=PT,cw=NT;var dw="Tabs",[HT,lj]=ar(dw,[Yf]),mw=Yf(),[zT,Zf]=HT(dw),UT=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,onValueChange:n,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:c="automatic",...s}=t,m=am(l),[d,p]=la({prop:r,onChange:n,defaultProp:i});return(0,It.createElement)(zT,{scope:o,baseId:ra(),value:d,onValueChange:p,orientation:a,dir:m,activationMode:c},(0,It.createElement)(it.div,be({dir:m,"data-orientation":a},s,{ref:e})))}),WT="TabsList",GT=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,loop:r=!0,...n}=t,i=Zf(WT,o),a=mw(o);return(0,It.createElement)(sw,be({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),(0,It.createElement)(it.div,be({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),VT="TabsTrigger",KT=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,disabled:n=!1,...i}=t,a=Zf(VT,o),l=mw(o),c=uw(a.baseId,r),s=pw(a.baseId,r),m=r===a.value;return(0,It.createElement)(cw,be({asChild:!0},l,{focusable:!n,active:m}),(0,It.createElement)(it.button,be({type:"button",role:"tab","aria-selected":m,"aria-controls":s,"data-state":m?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:c},i,{ref:e,onMouseDown:bt(t.onMouseDown,d=>{!n&&d.button===0&&d.ctrlKey===!1?a.onValueChange(r):d.preventDefault()}),onKeyDown:bt(t.onKeyDown,d=>{[" ","Enter"].includes(d.key)&&a.onValueChange(r)}),onFocus:bt(t.onFocus,()=>{let d=a.activationMode!=="manual";!m&&!n&&d&&a.onValueChange(r)})})))}),YT="TabsContent",ZT=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,forceMount:n,children:i,...a}=t,l=Zf(YT,o),c=uw(l.baseId,r),s=pw(l.baseId,r),m=r===l.value,d=(0,It.useRef)(m);return(0,It.useEffect)(()=>{let p=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(p)},[]),(0,It.createElement)(aa,{present:n||m},({present:p})=>(0,It.createElement)(it.div,be({"data-state":m?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":c,hidden:!p,id:s,tabIndex:0},a,{ref:e,style:{...t.style,animationDuration:d.current?"0s":void 0}}),p&&i))});function uw(t,e){return`${t}-trigger-${e}`}function pw(t,e){return`${t}-content-${e}`}var lm=UT,sm=GT,cm=KT,dm=ZT;var fw=v(T(),1),jf=({children:t,...e})=>(0,fw.jsx)(sm,{className:"sidebar-triggers",...e,children:t});jf.displayName="SidebarTabTriggers";h();var Xf=v(T(),1),qf=({children:t,tab:e,onSelect:o,...r})=>(0,Xf.jsx)(cm,{value:e,asChild:!0,onSelect:o,children:(0,Xf.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...r,children:t})});qf.displayName="SidebarTabTrigger";h();var hw=v(T(),1),Jf=({children:t,...e})=>{let o=Ae(),r=Fe();if(!o.openSidebar)return null;let{name:n}=o.openSidebar;return(0,hw.jsx)(lm,{className:"sidebar-tabs-root",value:o.openSidebar.tab,onValueChange:i=>r(a=>({...a,openSidebar:{...a.openSidebar,name:n,tab:i}})),...e,children:t})};Jf.displayName="SidebarTabs";h();var gw=v(T(),1),Qf=({tab:t,children:e,...o})=>(0,gw.jsx)(dm,{...o,value:t,children:e});Qf.displayName="SidebarTab";var eh=v(T(),1),xw=v($(),1),Xl=Ve(!1),bw=(0,vt.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=Fe(),c=Lr(Xl,Me);(0,vt.useLayoutEffect)(()=>(c(!!r),()=>{c(!1)}),[c,r]);let s=(0,vt.useRef)({});s.current.onCloseRequest=()=>{l({openSidebar:null})},s.current.onDock=u=>o?.(u),s.current=xi(s.current,{docked:r,shouldRenderDockButton:!!o&&r!=null});let m=(0,vt.useRef)(null);(0,vt.useImperativeHandle)(a,()=>m.current);let d=ke(),p=(0,vt.useCallback)(()=>{document.querySelector(".Dialog")||l({openSidebar:null})},[l]);return ua(m,(0,vt.useCallback)(u=>{u.target.closest(".sidebar-trigger")||(!r||!d.editor.canFitSidebar)&&p()},[p,r,d.editor.canFitSidebar])),(0,vt.useEffect)(()=>{let u=b=>{b.key===S.ESCAPE&&(!r||!d.editor.canFitSidebar)&&p()};return document.addEventListener("keydown",u),()=>{document.removeEventListener("keydown",u)}},[p,r,d.editor.canFitSidebar]),(0,eh.jsx)(Rt,{...i,className:F("sidebar",{"sidebar--docked":r},n),ref:m,children:(0,eh.jsx)(im.Provider,{value:s.current,children:e})})});bw.displayName="SidebarInner";var Ur=Object.assign((0,vt.forwardRef)((t,e)=>{let o=Ae(),{onStateChange:r}=t,n=(0,vt.useRef)(o.openSidebar);(0,vt.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,vt.useState)(!1);return(0,vt.useLayoutEffect)(()=>(a(!0),()=>a(!1)),[]),i&&o.openSidebar?.name===t.name?(0,xw.createElement)(bw,{...t,ref:e,key:t.name}):null}),{Header:Uf,TabTriggers:jf,TabTrigger:qf,Tabs:Jf,Tab:Qf,Trigger:Wf});Ur.displayName="Sidebar";h();var oh={};r5(oh,{ChangeCanvasBackground:()=>Iw,ClearCanvas:()=>Sw,Export:()=>_w,Help:()=>Tw,LiveCollaborationTrigger:()=>Aw,LoadScene:()=>Ew,SaveAsImage:()=>Cw,SaveToActiveFile:()=>ww,Socials:()=>Mw,ToggleTheme:()=>kw});h();h();var mm=v(T(),1),ql=Ve(null),vw=()=>{let[t,e]=Ce(ql,Me),o=Nt();return t&&t==="clearCanvas"?(0,mm.jsx)(Gd,{onConfirm:()=>{o.executeAction(Pl),e(null)},onCancel:()=>e(null),title:g("clearCanvasDialog.title"),children:(0,mm.jsxs)("p",{className:"clear-canvas__content",children:[" ",g("alerts.clearReset")]})}):null};h();var th=Ve({active:!1});async function yw({title:t,description:e,actionLabel:o,color:r}){return new Promise(n=>{oo.set(th,{active:!0,onConfirm:()=>n(!0),onClose:()=>n(!1),onReject:()=>n(!1),title:t,description:e,actionLabel:o,color:r})})}var lt=v(T(),1),Ew=()=>{let{t}=wt(),e=Nt(),o=hn();return e.isActionEnabled(ha)?(0,lt.jsx)(Go,{icon:Yi,onSelect:async()=>{(!o.length||await yw({title:t("overwriteConfirm.modal.loadFromFile.title"),actionLabel:t("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,lt.jsx)(Jt,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:n=>(0,lt.jsx)("strong",{children:n}),br:()=>(0,lt.jsx)("br",{})})}))&&e.executeAction(ha)},"data-testid":"load-button",shortcut:$r("loadScene"),"aria-label":t("buttons.load"),children:t("buttons.load")}):null};Ew.displayName="LoadScene";var ww=()=>{let{t}=wt(),e=Nt();return e.isActionEnabled(bd)?(0,lt.jsx)(Go,{shortcut:$r("saveScene"),"data-testid":"save-button",onSelect:()=>e.executeAction(bd),icon:c0,"aria-label":`${t("buttons.save")}`,children:`${t("buttons.save")}`}):null};ww.displayName="SaveToActiveFile";var Cw=()=>{let t=Fe(),{t:e}=wt();return(0,lt.jsx)(Go,{icon:u0,"data-testid":"image-export-button",onSelect:()=>t({openDialog:{name:"imageExport"}}),shortcut:$r("imageExport"),"aria-label":e("buttons.exportImage"),children:e("buttons.exportImage")})};Cw.displayName="SaveAsImage";var Tw=()=>{let{t}=wt(),e=Nt();return(0,lt.jsx)(Go,{"data-testid":"help-menu-item",icon:Ki,onSelect:()=>e.executeAction(Jn),shortcut:"?","aria-label":t("helpDialog.title"),children:t("helpDialog.title")})};Tw.displayName="Help";var Sw=()=>{let{t}=wt(),e=Lr(ql,Me);return Nt().isActionEnabled(Pl)?(0,lt.jsx)(Go,{icon:ln,onSelect:()=>e("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":t("buttons.clearReset"),children:t("buttons.clearReset")}):null};Sw.displayName="ClearCanvas";var kw=()=>{let{t}=wt(),e=Ae(),o=Nt();return o.isActionEnabled(hd)?(0,lt.jsx)(Go,{onSelect:r=>(r.preventDefault(),o.executeAction(hd)),icon:e.theme==="dark"?n0:r0,"data-testid":"toggle-dark-mode",shortcut:$r("toggleTheme"),"aria-label":e.theme==="dark"?t("buttons.lightMode"):t("buttons.darkMode"),children:e.theme==="dark"?t("buttons.lightMode"):t("buttons.darkMode")}):null};kw.displayName="ToggleTheme";var Iw=()=>{let{t}=wt(),e=Ae(),o=Nt(),r=va();return e.viewModeEnabled||!r.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,lt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,lt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:t("labels.canvasBackground")}),(0,lt.jsx)("div",{style:{padding:"0 0.625rem"},children:o.renderAction("changeViewBackgroundColor")})]})};Iw.displayName="ChangeCanvasBackground";var _w=()=>{let{t}=wt(),e=Fe();return(0,lt.jsx)(Go,{icon:Lc,onSelect:()=>{e({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":t("buttons.export"),children:t("buttons.export")})};_w.displayName="Export";var Mw=()=>{let{t}=wt();return(0,lt.jsxs)(lt.Fragment,{children:[(0,lt.jsx)(Ea,{icon:i0,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,lt.jsx)(Ea,{icon:l0,href:"https://x.com/excalidraw","aria-label":"X",children:t("labels.followUs")}),(0,lt.jsx)(Ea,{icon:a0,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:t("labels.discordChat")})]})};Mw.displayName="Socials";var Aw=({onSelect:t,isCollaborating:e})=>{let{t:o}=wt();return(0,lt.jsx)(Go,{"data-testid":"collab-button",icon:Rc,className:F({"active-collab":e}),onSelect:t,children:o("labels.liveCollaboration")})};Aw.displayName="LiveCollaborationTrigger";h();var um=v($(),1);var Lw=v(T(),1),Wr=(t,e)=>{let o=Ve(0),r=n=>{let{jotaiScope:i}=ze(),[,a]=Ce(o,i),l=(0,um.useRef)({preferHost:!1,counter:0});return(0,um.useLayoutEffect)(()=>{let c=l.current;return a(s=>{let m=s+1;return c.counter=m,m}),()=>{a(s=>{let m=s-1;return c.counter=m,m||(c.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,Lw.jsx)(e,{...n})};return r.displayName=t,r};var Gr=v(T(),1),jT=Object.assign(Wr("MainMenu",({children:t,onSelect:e})=>{let{MainMenuTunnel:o}=ze(),r=ke(),n=Ae(),i=Fe(),a=r.editor.isMobile?void 0:()=>i({openMenu:null});return(0,Gr.jsx)(o.In,{children:(0,Gr.jsxs)(_e,{open:n.openMenu==="canvas",children:[(0,Gr.jsx)(_e.Trigger,{onToggle:()=>{i({openMenu:n.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:Ac}),(0,Gr.jsxs)(_e.Content,{onClickOutside:a,onSelect:qr(e,()=>{i({openMenu:null})}),children:[t,r.editor.isMobile&&n.collaborators.size>0&&(0,Gr.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,Gr.jsx)("legend",{children:g("labels.collaborators")}),(0,Gr.jsx)(nm,{mobile:!0,collaborators:n.collaborators,userToFollow:n.userToFollow?.socketId||null})]})]})]})})}),{Trigger:_e.Trigger,Item:_e.Item,ItemLink:_e.ItemLink,ItemCustom:_e.ItemCustom,Group:_e.Group,Separator:_e.Separator,DefaultItems:oh}),eo=jT;h();h();var Vr=v(T(),1),pm=({title:t,children:e,actionLabel:o,onClick:r})=>(0,Vr.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Vr.jsx)("h4",{children:t}),(0,Vr.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:e}),(0,Vr.jsx)(dr,{variant:"outlined",color:"muted",label:o,size:"large",fullWidth:!0,onClick:r})]}),XT=()=>{let{t}=wt(),e=Nt(),o=Fe();return(0,Vr.jsx)(pm,{title:t("overwriteConfirm.action.exportToImage.title"),actionLabel:t("overwriteConfirm.action.exportToImage.button"),onClick:()=>{e.executeAction(gd,"ui",!0),o({openDialog:{name:"imageExport"}})},children:t("overwriteConfirm.action.exportToImage.description")})},qT=()=>{let{t}=wt(),e=Nt();return(0,Vr.jsx)(pm,{title:t("overwriteConfirm.action.saveToDisk.title"),actionLabel:t("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{e.executeAction(Ol,"ui")},children:t("overwriteConfirm.action.saveToDisk.description")})},rh=Object.assign(({children:t})=>(0,Vr.jsx)("div",{className:"OverwriteConfirm__Actions",children:t}),{ExportToImage:XT,SaveToDisk:qT});var Mo=v(T(),1),fm=Object.assign(Wr("OverwriteConfirmDialog",({children:t})=>{let{OverwriteConfirmDialogTunnel:e}=ze(),[o,r]=Ce(th,Me);if(!o.active)return null;let n=()=>{o.onClose(),r(a=>({...a,active:!1}))},i=()=>{o.onConfirm(),r(a=>({...a,active:!1}))};return(0,Mo.jsx)(e.In,{children:(0,Mo.jsx)(at,{onCloseRequest:n,title:!1,size:916,children:(0,Mo.jsxs)("div",{className:"OverwriteConfirm",children:[(0,Mo.jsx)("h3",{children:o.title}),(0,Mo.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${o.color}`,children:[(0,Mo.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:gx}),(0,Mo.jsx)("div",{children:o.description}),(0,Mo.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,Mo.jsx)(dr,{color:o.color,size:"large",label:o.actionLabel,onClick:i})]}),(0,Mo.jsx)(rh,{children:t})]})})})}),{Actions:rh,Action:pm});h();var Ao=v(T(),1),Rw=v($(),1),Pw=Wr("DefaultSidebarTrigger",t=>{let{DefaultSidebarTriggerTunnel:e}=ze();return(0,Ao.jsx)(e.In,{children:(0,Ao.jsx)(Ur.Trigger,{...t,className:"default-sidebar-trigger",name:Xr.name})})});Pw.displayName="DefaultSidebarTrigger";var Dw=({children:t,...e})=>{let{DefaultSidebarTabTriggersTunnel:o}=ze();return(0,Ao.jsx)(o.In,{children:(0,Ao.jsx)(Ur.TabTriggers,{...e,children:t})})};Dw.displayName="DefaultTabTriggers";var hm=Object.assign(Wr("DefaultSidebar",({children:t,className:e,onDock:o,docked:r,...n})=>{let i=Ae(),a=Fe(),{DefaultSidebarTabTriggersTunnel:l}=ze();return(0,Rw.createElement)(Ur,{...n,name:"default",key:"default",className:F("default-sidebar",e),docked:r??i.defaultSidebarDockedPreference,onDock:o===!1||!o&&r!=null?void 0:qr(o,c=>{a({defaultSidebarDockedPreference:c})})},(0,Ao.jsxs)(Ur.Tabs,{children:[(0,Ao.jsxs)(Ur.Header,{children:[n.__fallback&&(0,Ao.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,Ao.jsx)(l.Out,{})]}),(0,Ao.jsx)(Ur.Tab,{tab:Ms,children:(0,Ao.jsx)(NE,{})}),t]}))}),{Trigger:Pw,TabTriggers:Dw});h();var Jl=v(T(),1),JT="small",Nw=t=>(0,Jl.jsxs)("label",{className:F("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${JT}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Jl.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,Jl.jsx)("div",{className:"ToolIcon__icon",children:Oc})]});h();var ih=v($(),1);h();var pr=v($(),1);var ci=v(T(),1),Ow=(0,pr.forwardRef)(({onChange:t,label:e,fullWidth:o,placeholder:r,readonly:n,selectOnRender:i,onKeyDown:a,isRedacted:l=!1,...c},s)=>{let m=(0,pr.useRef)(null);(0,pr.useImperativeHandle)(s,()=>m.current),(0,pr.useLayoutEffect)(()=>{i&&m.current?.select()},[i]);let[d,p]=(0,pr.useState)(!1);return(0,ci.jsxs)("div",{className:F("ExcTextField",{"ExcTextField--fullWidth":o}),onClick:()=>{m.current?.focus()},children:[(0,ci.jsx)("div",{className:"ExcTextField__label",children:e}),(0,ci.jsxs)("div",{className:F("ExcTextField__input",{"ExcTextField__input--readonly":n}),children:[(0,ci.jsx)("input",{className:F({"is-redacted":"value"in c&&c.value&&l&&!d}),readOnly:n,value:"value"in c?c.value:void 0,defaultValue:"defaultValue"in c?c.defaultValue:void 0,placeholder:r,ref:m,onChange:u=>t?.(u.target.value),onKeyDown:a}),l&&(0,ci.jsx)(ur,{onSelect:()=>p(!d),style:{border:0,userSelect:"none"},children:d?wx:Bc})]})]})});h();var Bw=v(T(),1),Aa=({icon:t})=>(0,Bw.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:t});h();var Fw=v(T(),1),La=t=>(0,Fw.jsx)("p",{className:"excalidraw__paragraph",style:t.style,children:t.children});h();var nh=v($(),1);var Hw=v(T(),1),$w=t=>{let e=Fe(),o=(0,nh.useRef)(null),r=(0,nh.useRef)(0);return(0,Hw.jsx)(lm,{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"&&ou(["text-to-diagram","diagram-to-code"],n)?e({openDialog:{name:t.dialog,tab:n,source:"settings"}}):t.dialog==="ttd"&&ou(["text-to-diagram","mermaid"],n)&&e({openDialog:{name:t.dialog,tab:n}})},children:t.children})};$w.displayName="TTDDialogTabs";var gm=$w;h();var zw=v(T(),1),Pa=({tab:t,children:e,...o})=>(0,zw.jsx)(dm,{...o,value:t,children:e});Pa.displayName="TTDDialogTab";var ht=v(T(),1),Uw=t=>{let[e,o]=(0,ih.useState)(t.openAIKey||""),[r,n]=(0,ih.useState)(t.isPersisted),i=Ae(),a=()=>{t.onConfirm(e.trim(),r)};return i.openDialog?.name!=="settings"?null:(0,ht.jsx)(at,{onCloseRequest:()=>{t.onClose(),t.onConfirm(e.trim(),r)},title:(0,ht.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,ht.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.1rem 0.5rem",marginLeft:"1rem",fontSize:14,borderRadius:"12px",color:"#000",background:"pink"},children:"Experimental"})]}),className:"MagicSettings",autofocus:!1,children:(0,ht.jsx)(gm,{dialog:"settings",tab:i.openDialog.tab,children:(0,ht.jsxs)(Pa,{tab:"diagram-to-code",children:[(0,ht.jsxs)(La,{children:["For the diagram-to-code feature we use"," ",(0,ht.jsx)(Aa,{icon:bl}),"OpenAI."]}),(0,ht.jsxs)(La,{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,ht.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,ht.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,ht.jsx)(La,{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,ht.jsx)(Ow,{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,ht.jsx)(La,{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,ht.jsx)(qn,{checked:r,onChange:n,children:"Persist API key in browser storage"}),(0,ht.jsxs)(La,{children:["Once API key is set, you can use the ",(0,ht.jsx)(Aa,{icon:ji})," ","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,ht.jsx)("b",{children:"AI Settings"})," ",(0,ht.jsx)(Aa,{icon:bl}),"."]}),(0,ht.jsx)(dr,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:a})]})})})};h();h();var Zo=v($(),1);h();var QT=({canvasRef:t,setError:e})=>{let o=t.current;if(!o)return;let r=o.parentElement;r&&(r.style.background="",e(null),o.replaceChildren())},bm=async({canvasRef:t,mermaidToExcalidrawLib:e,mermaidDefinition:o,setError:r,data:n})=>{let i=t.current,a=i?.parentElement;if(!(!i||!a)){if(!o){QT({canvasRef:t,setError:r});return}try{let l=await e.api,c;try{c=await l.parseMermaidToExcalidraw(o,{fontSize:xr})}catch{c=await l.parseMermaidToExcalidraw(o.replace(/"/g,"'"),{fontSize:xr})}let{elements:s,files:m}=c;r(null),n.current={elements:es(s,{regenerateIds:!0}),files:m};let d=await $n({elements:n.current.elements,files:n.current.files,exportPadding:jr,maxWidthOrHeight:Math.max(a.offsetWidth,a.offsetHeight)*window.devicePixelRatio});try{await _r(d)}catch(p){throw p.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):p}a.style.background="var(--default-bg-color)",i.replaceChildren(d)}catch(l){throw a.style.background="var(--default-bg-color)",o&&r(l),l}}},Ql=t=>{ao.set(go.MERMAID_TO_EXCALIDRAW,t)},xm=({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&&Ql(o))};h();var Ww=v(T(),1),vm=({children:t})=>(0,Ww.jsx)("div",{className:"ttd-dialog-panels",children:t});h();var fr=v(T(),1),Da=({label:t,children:e,panelAction:o,panelActionDisabled:r=!1,onTextSubmitInProgess:n,renderTopRight:i,renderSubmitShortcut:a,renderBottomRight:l})=>(0,fr.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,fr.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,fr.jsx)("label",{children:t}),i?.()]}),e,(0,fr.jsxs)("div",{className:F("ttd-dialog-panel-button-container",{invisible:!o}),style:{display:"flex",alignItems:"center"},children:[(0,fr.jsxs)(ur,{className:"ttd-dialog-panel-button",onSelect:o?o.action:()=>{},disabled:r||n,children:[(0,fr.jsxs)("div",{className:F({invisible:n}),children:[o?.label,o?.icon&&(0,fr.jsx)("span",{children:o.icon})]}),n&&(0,fr.jsx)(Lt,{})]}),!r&&!n&&a?.(),l?.()]})]});h();var ts=v($(),1);var Gw=v(T(),1),ym=({input:t,placeholder:e,onChange:o,onKeyboardSubmit:r})=>{let n=(0,ts.useRef)(null),i=(0,ts.useRef)(r);return i.current=r,(0,ts.useEffect)(()=>{if(!i.current)return;let a=n.current;if(a){let l=c=>{c[S.CTRL_OR_CMD]&&c.key===S.ENTER&&(c.preventDefault(),i.current?.())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l)}}},[]),(0,Gw.jsx)("textarea",{className:"ttd-dialog-input",onChange:o,value:t,placeholder:e,autoFocus:!0,ref:n})};h();var kn=v(T(),1),eS=({error:t})=>(0,kn.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,kn.jsx)("p",{children:t})]}),Em=({error:t,canvasRef:e,loaded:o})=>(0,kn.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[t&&(0,kn.jsx)(eS,{error:t.message}),o?(0,kn.jsx)("div",{ref:e,style:{opacity:t?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,kn.jsx)(Lt,{size:"2rem"})]});h();var os=v(T(),1),wm=()=>(0,os.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,os.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:N("CtrlOrCmd")}),(0,os.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:N("Enter")})]});var Ut=v(T(),1),tS=`flowchart TD
|
|
45
|
+
`);try{Oi(i)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return{commitToHistory:!1}},predicate:(t,e,o,r)=>Nu&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).some(ie),contextItemLabel:"labels.copyText"});h();var Md=H({name:"gridMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.gridSize},perform(t,e){return{appState:{...e,gridSize:this.checked(e)?null:vr,objectsSnapModeEnabled:!1},commitToHistory:!1}},checked:t=>t.gridSize!==null,predicate:(t,e,o)=>typeof o.gridModeEnabled>"u",contextItemLabel:"labels.showGrid",keyTest:t=>t[S.CTRL_OR_CMD]&&t.code===me.QUOTE});h();var xa=H({name:"zenMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.zenModeEnabled},perform(t,e){return{appState:{...e,zenModeEnabled:!this.checked(e)},commitToHistory:!1}},checked:t=>t.zenModeEnabled,predicate:(t,e,o)=>typeof o.zenModeEnabled>"u",contextItemLabel:"buttons.zenMode",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.Z});h();var pf=H({name:"objectsSnapMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.objectsSnapModeEnabled},perform(t,e){return{appState:{...e,objectsSnapModeEnabled:!this.checked(e),gridSize:null},commitToHistory:!1}},checked:t=>t.objectsSnapModeEnabled,predicate:(t,e,o)=>typeof o.objectsSnapModeEnabled>"u",contextItemLabel:"buttons.objectsSnapMode",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.S});h();var xn=H({name:"stats",viewMode:!0,trackEvent:{category:"menu"},perform(t,e){return{appState:{...e,showStats:!this.checked(e)},commitToHistory:!1}},checked:t=>t.showStats,contextItemLabel:"stats.title",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.SLASH});h();var ff=H({name:"unbindText",contextItemLabel:"labels.unbindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>r.scene.getSelectedElements(e).some(i=>tr(i)),perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=r.scene.getNonDeletedElementsMap();return n.forEach(a=>{let l=nt(a,i);if(l){let{width:c,height:s}=Qs(l.originalText,Fo(l),l.lineHeight),m=l1(a.id);a1(a.id);let{x:d,y:p}=Js(a,l,i);J(l,{containerId:null,width:c,height:s,text:l.originalText,x:d,y:p}),J(a,{boundElements:a.boundElements?.filter(u=>u.id!==l.id),height:m||a.height})}}),{elements:t,appState:e,commitToHistory:!0}}}),hf=H({name:"bindText",contextItemLabel:"labels.bindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);if(n.length===2){let i=ie(n[0])||ie(n[1]),a;if(wi(n[0])?a=n[0]:wi(n[1])&&(a=n[1]),i&&a&&nt(a,r.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i,a;ie(n[0])&&wi(n[1])?(i=n[0],a=n[1]):(i=n[1],a=n[0]),J(i,{containerId:a.id,verticalAlign:fo.MIDDLE,textAlign:Ka.CENTER}),J(a,{boundElements:(a.boundElements||[]).concat({type:"text",id:i.id})});let l=a.height;return Bt(i,a,r.scene.getNonDeletedElementsMap()),sl(a.id,l),{elements:aT(t,a,i),appState:{...e,selectedElementIds:{[a.id]:!0}},commitToHistory:!0}}}),aT=(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),r},lT=(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),r},xy=H({name:"wrapTextInContainer",contextItemLabel:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=n.every(a=>ie(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(ie(l)){let c=on({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:Ti("rectangle")?ho.ADAPTIVE_RADIUS:ho.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:l.x-au,y:l.y-au,width:_i(l.width,"rectangle"),height:_i(l.height,"rectangle"),groupIds:l.groupIds,frameId:l.frameId});if(l.boundElements?.length){let s=l.boundElements.filter(d=>d.type==="arrow").map(d=>d.id);i.filter(d=>s.includes(d.id)).forEach(d=>{let p=d.startBinding,u=d.endBinding;p?.elementId===l.id&&(p={...p,elementId:c.id}),u?.elementId===l.id&&(u={...u,elementId:c.id}),(p||u)&&J(d,{startBinding:p,endBinding:u},!1)})}J(l,{containerId:c.id,verticalAlign:fo.MIDDLE,boundElements:null,textAlign:Ka.CENTER},!1),Bt(l,c,r.scene.getNonDeletedElementsMap()),i=lT([...i,c],c,l),a[c.id]=!0}return{elements:i,appState:{...e,selectedElementIds:a},commitToHistory:!0}}});h();h();var Go=v($(),1);var Fr=v(C(),1),xf=320,vy=85,gf=5,sT=42,cT=500,bf=!1,Ad=new Map,yy=({element:t,elementsMap:e,setAppState:o,onLinkOpen:r,setToast:n,updateEmbedValidationStatus:i})=>{let a=ya(),l=va(),c=t.link||"",[s,m]=(0,Go.useState)(c),d=(0,Go.useRef)(null),p=a.showHyperlinkPopup==="editor",u=(0,Go.useCallback)(()=>{if(!d.current)return;let k=Ir(d.current.value)||null;if(!t.link&&k&&ge("hyperlink","create"),Ot(t)){if(a.activeEmbeddable?.element===t&&o({activeEmbeddable:null}),!k){J(t,{link:null}),i(t,!1);return}if(!Pi(k,l.validateEmbeddable))k&&n({message:g("toast.unableToEmbed"),closable:!0}),t.link&&Ad.set(t.id,t.link),J(t,{link:k}),i(t,!1);else{let{width:T,height:I}=t,A=Fn(k);A?.error instanceof URIError&&n({message:g("toast.unrecognizedLinkFormat"),closable:!0});let _=A?A.intrinsicSize.w/A.intrinsicSize.h:1,M=Ad.get(t.id)!==t.link;J(t,{...M?{width:A?.type==="video"?T>I?T:I*_:T,height:A?.type==="video"&&T>I?T/_:I}:{},link:k}),i(t,!0),Ad.has(t.id)&&Ad.delete(t.id)}}else J(t,{link:k})},[t,n,l.validateEmbeddable,a.activeEmbeddable,o,i]);(0,Go.useLayoutEffect)(()=>()=>{u()},[u]),(0,Go.useEffect)(()=>{let k=null,T=I=>{if(p)return;k&&clearTimeout(k),mT(t,e,a,[I.clientX,I.clientY])&&(k=window.setTimeout(()=>{o({showHyperlinkPopup:!1})},cT))};return window.addEventListener("pointermove",T,!1),()=>{window.removeEventListener("pointermove",T,!1),k&&clearTimeout(k)}},[a,t,p,o,e]);let b=(0,Go.useCallback)(()=>{ge("hyperlink","delete"),J(t,{link:null}),p&&(d.current.value=""),o({showHyperlinkPopup:!1})},[o,t,p]),x=()=>{ge("hyperlink","edit","popup-ui"),o({showHyperlinkPopup:"editor"})},{x:y,y:w}=Ey(t,a,e);return a.contextMenu||a.draggingElement||a.resizingElement||a.isRotating||a.openMenu||a.viewModeEnabled?null:(0,Fr.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${w}px`,left:`${y}px`,width:xf,padding:gf},onClick:()=>{!t.link&&!p&&o({showHyperlinkPopup:"editor"})},children:[p?(0,Fr.jsx)("input",{className:F("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:d,value:s,onChange:k=>m(k.target.value),autoFocus:!0,onKeyDown:k=>{k.stopPropagation(),k[S.CTRL_OR_CMD]&&k.key===S.K&&k.preventDefault(),(k.key===S.ENTER||k.key===S.ESCAPE)&&(u(),o({showHyperlinkPopup:"info"}))}}):t.link?(0,Fr.jsx)("a",{href:Ir(t.link||""),className:"excalidraw-hyperlinkContainer-link",target:rc(t.link)?"_self":"_blank",onClick:k=>{if(t.link&&r){let T=zs("excalidraw-link",k.nativeEvent);r({...t,link:Ir(t.link)},T),T.defaultPrevented&&k.preventDefault()}},rel:"noopener noreferrer",children:t.link}):(0,Fr.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:g("labels.link.empty")}),(0,Fr.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!p&&(0,Fr.jsx)(ae,{type:"button",title:g("buttons.edit"),"aria-label":g("buttons.edit"),label:g("buttons.edit"),onClick:x,className:"excalidraw-hyperlinkContainer--edit",icon:Vi}),c&&!Ot(t)&&(0,Fr.jsx)(ae,{type:"button",title:g("buttons.remove"),"aria-label":g("buttons.remove"),label:g("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:ln})]})]})},Ey=(t,e,o)=>{let[r,n]=bo(t,o),{x:i,y:a}=Kt({sceneX:r+t.width/2,sceneY:n},e),l=i-e.offsetLeft-xf/2,c=a-e.offsetTop-vy;return{x:l,y:c}},vf=(t,e)=>{let o=ke(t,e);return o[0].link?Ot(o[0])?"labels.link.editEmbed":"labels.link.edit":Ot(o[0])?"labels.link.createEmbed":"labels.link.create"},Ul=null,wy=(t,e,o)=>{Ul&&clearTimeout(Ul),Ul=window.setTimeout(()=>dT(t,e,o),bg)},dT=(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]=bo(t,o),[c,s,m,d]=j1([n,i,a,l],t.angle,e),p=Kt({sceneX:c,sceneY:s},e);qp(r,{left:p.x,top:p.y,width:m,height:d},"top"),ge("hyperlink","tooltip","link-icon"),bf=!0},Ty=()=>{Ul&&clearTimeout(Ul),bf&&(bf=!1,pa().classList.remove("excalidraw-tooltip--visible"))},mT=(t,e,o,[r,n])=>{let{x:i,y:a}=We({clientX:r,clientY:n},o),l=15/o.zoom.value;if(t1(t,e,[i,a],l,null))return!1;let[c,s,m]=bo(t,e);if(i>=c&&i<=m&&a>=s-vy&&a<=s)return!1;let{x:d,y:p}=Ey(t,o,e);return!(r>=d-l&&r<=d+xf+gf*2+l&&n>=p-l&&n<=p+l+gf*2+sT)};var Cy=v(C(),1),yf=H({name:"hyperlink",perform:(t,e)=>e.showHyperlinkPopup==="editor"?!1:{elements:t,appState:{...e,showHyperlinkPopup:"editor",openMenu:null},commitToHistory:!0},trackEvent:{category:"hyperlink",action:"click"},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.K,contextItemLabel:(t,e)=>vf(t,e),predicate:(t,e)=>ke(t,e).length===1,PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=ke(t,e);return(0,Cy.jsx)(ae,{type:"button",icon:Hc,"aria-label":g(vf(t,e)),title:`${Ot(t[0])?g("labels.link.labelEmbed"):g("labels.link.label")} - ${N("CtrlOrCmd+K")}`,onClick:()=>o(null),selected:r.length===1&&!!r[0].link})}});h();var Sy=t=>t.every(e=>!e.locked),Ef=H({name:"toggleElementLock",trackEvent:{category:"element"},predicate:(t,e,o,r)=>!r.scene.getSelectedElements(e).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=Sy(n),a=Se(n);return{elements:t.map(l=>a.has(l.id)?ce(l,{locked:i}):l),appState:{...e,selectedLinearElement:i?null:e.selectedLinearElement},commitToHistory:!0}},contextItemLabel:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1});return r.length===1&&!we(r[0])?r[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":Sy(r)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},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}),ky=H({name:"unlockAllElements",trackEvent:{category:"canvas"},viewMode:!1,predicate:t=>t.some(e=>e.locked),perform:(t,e)=>{let o=t.filter(r=>r.locked);return{elements:t.map(r=>r.locked?ce(r,{locked:!1}):r),appState:{...e,selectedElementIds:Object.fromEntries(o.map(r=>[r.id,!0]))},commitToHistory:!0}},contextItemLabel:"labels.elementLock.unlockAll"});h();var wf=H({name:"toggleLinearEditor",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return!!(n.length===1&&De(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},commitToHistory:!1}},contextItemLabel:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0];return e.editingLinearElement?.elementId===r.id?"labels.lineEditor.exit":"labels.lineEditor.edit"}});h();var Tf=v(C(),1),Iy=(t,e,o)=>{if(!e.multiElement&&!e.resizingElement&&!e.editingElement&&!e.draggingElement){let n=o();if(n===null)return{commitToHistory:!1};let i=Se(t),a=n.elements,l=Se(a),c=t.filter(m=>!l.has(m.id)),s=a.map(m=>ce(i.get(m.id)||m,m)).concat(c.map(m=>ce(m,{isDeleted:!0})));return Ii(s,c),{elements:s,appState:{...e,...n.appState},commitToHistory:!1,syncHistory:!0}}return{commitToHistory:!1}},_y=t=>({name:"undo",trackEvent:{category:"history"},perform:(e,o)=>Iy(e,o,()=>t.undoOnce()),keyTest:e=>e[S.CTRL_OR_CMD]&&e.key.toLowerCase()===S.Z&&!e.shiftKey,PanelComponent:({updateData:e,data:o})=>(0,Tf.jsx)(ae,{type:"button",icon:S0,"aria-label":g("buttons.undo"),onClick:e,size:o?.size||"medium"}),commitToHistory:()=>!1}),My=t=>({name:"redo",trackEvent:{category:"history"},perform:(e,o)=>Iy(e,o,()=>t.redoOnce()),keyTest:e=>e[S.CTRL_OR_CMD]&&e.shiftKey&&e.key.toLowerCase()===S.Z||ks&&e.ctrlKey&&!e.shiftKey&&e.key===S.Y,PanelComponent:({updateData:e,data:o})=>(0,Tf.jsx)(ae,{type:"button",icon:k0,"aria-label":g("buttons.redo"),onClick:e,size:o?.size||"medium"}),commitToHistory:()=>!1});h();var Ay=v(C(),1),Cf=(t,e,o,r,n,i)=>{if(t.trackEvent)try{typeof t.trackEvent=="object"&&(!t.trackEvent.predicate||t.trackEvent.predicate(o,r,i))&&ge(t.trackEvent.category,t.trackEvent.action||t.name,`${e} (${n.device.editor.isMobile?"mobile":"desktop"})`)}catch(a){console.error("error while logging action:",a)}},Ld=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(e,o,r,n){this.updater=i=>{if(vi(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((c,s)=>(s.keyPriority||0)-(c.keyPriority||0)).filter(c=>(c.name in o?o[c.name]:!0)&&c.keyTest&&c.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 Cf(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();Cf(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(),c=s=>{Cf(n,"ui",l,a,this.app,s),this.updater(n.perform(this.getElementsIncludingDeleted(),this.getAppState(),s,this.app))};return(0,Ay.jsx)(i,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:c,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 wa=v($(),1);h();var Pd=v($(),1);var Sf=Ve(new Map),Ly=async t=>await hl({elements:t,appState:{exportBackground:!1,viewBackgroundColor:br.white},files:null,renderEmbeddables:!1}),Py=(t,e,o)=>{let[r,n]=(0,Pd.useState)();return(0,Pd.useEffect)(()=>{if(e)if(t){let i=o.get(t);i?n(i):(async()=>{let a=await Ly(e);a.querySelector(".style-fonts")?.remove(),a&&(o.set(t,a),n(a))})()}else(async()=>{let i=await Ly(e);n(i)})()},[t,e,o,n]),r},Dd=()=>{let[t]=Te(Sf,Ae);return{clearLibraryCache:()=>t.clear(),deleteItemsFromLibraryCache:r=>{r.forEach(n=>t.delete(n))},svgCache:t}};h();var _o=class{subscribers=[];on(...e){let o=e.flat().filter(r=>typeof r=="function");return this.subscribers.push(...o),()=>this.off(o)}once(...e){let o=e.flat().filter(n=>typeof n=="function");o.push(()=>r());let r=this.on(...o);return r}off(...e){let o=e.flat();this.subscribers=this.subscribers.filter(r=>!o.includes(r))}trigger(...e){for(let o of this.subscribers)o(...e);return this}clear(){this.subscribers=[]}};h();var Rd=class{jobs=[];running=!1;tick(){if(this.running)return;let e=this.jobs.shift();e?(this.running=!0,e.promise.resolve(qa(e.jobFactory,...e.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(e,...o){let r=$s();return this.jobs.push({jobFactory:e,promise:r,args:o}),this.tick(),r}};var Ry=new _o,oi=Ve({status:"loaded",isInitialized:!1,libraryItems:[]}),Wl=t=>er(t),uT=(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)),Ny=(t,e)=>{let o=[];for(let r of e)uT(t,r)&&o.push(r);return[...o,...t]},Oy=(t,e)=>{let o=Se(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=Se(t);for(let i of e)n.has(i.id)||r.addedItems.set(i.id,i);return r},kf=class{currLibraryItems=[];prevLibraryItems=Wl(this.currLibraryItems);app;constructor(e){this.app=e}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)oo.set(oi,e=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:e.isInitialized}));else{oo.set(oi,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let e=this.prevLibraryItems;this.prevLibraryItems=Wl(this.currLibraryItems);let o=Wl(this.currLibraryItems);this.app.props.onLibraryChange?.(o),Ry.trigger(Oy(e,o),o)}catch(e){console.error(e)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],oo.set(Sf,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(Wl(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:Xr.name,tab:Ns}}),this.setLibrary(()=>new Promise(async(a,l)=>{try{let c=await(typeof e=="function"&&!(e instanceof Blob)?e(this.currLibraryItems):e),s;c instanceof Blob?s=await Au(c,i):s=ul(c,i),!o||window.confirm(g("alerts.confirmAddLibrary",{numShapes:s.length}))?(o&&this.app.focusContainer(),a(r?Ny(this.currLibraryItems,s):s)):l(new Ri)}catch(c){l(c)}})));setLibrary=e=>{let o=new Promise(async(r,n)=>{try{await this.getLastUpdateTask(),typeof e=="function"&&(e=e(this.currLibraryItems)),this.currLibraryItems=Wl(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}},By=kf,Bd=t=>{let o=Math.ceil(Math.sqrt(t.length)),r=[],n=u=>t.slice(u*o,u*o+o).reduce((x,y)=>{let{height:w}=xo(y.elements);return Math.max(x,w)},0),i=u=>{let b=0,x=0,y=0;for(let w of t){if(b%o===0&&(x=0),x===u){let{width:k}=xo(w.elements);y=Math.max(y,k)}b++,x++}return y},a=0,l=0,c=0,s=0,m=0,d=0,p=0;for(let u of t){m&&m%o===0&&(l+=c+50,a=0,d=0,p++),d===0&&(c=n(p)),s=i(d);let{minX:b,minY:x,width:y,height:w}=xo(u.elements),k=(s-y)/2,T=(c-w)/2;r.push(...u.elements.map(I=>({...I,x:I.x+a+k-b,y:I.y+l+T-x}))),a+=s+50,m++,d++}return r},If=()=>{let t=new URLSearchParams(window.location.hash.slice(1)).get(Ls.addLibrary)||new URLSearchParams(window.location.search).get(As.addLibrary),e=t?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return t?{libraryUrl:t,idToken:e}:null},Ea=class t{static queue=new Rd;static async getLibraryItems(e,o,r=!0){let n=()=>new Promise(async(i,a)=>{try{let l=await e.load({source:o});i(ul(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)}},Gl=0,Nd=0,Od=t=>Vu(t.map(e=>`${e.id}:${Gu(e.elements)}`).sort().join()),Dy=async(t,e)=>{try{return Nd++,await Ea.run(t,async o=>{let r=Se(await o.getLibraryItems("save"));for(let[l]of e.deletedItems)r.delete(l);let n=[];for(let[l,c]of e.addedItems)r.has(l)?r.set(l,c):n.push(c);let i=n.concat(Array.from(r.values())),a=Od(i);return a!==Gl&&await t.save({libraryItems:i}),Gl=a,i})}finally{Nd--}},pT=t=>{let{excalidrawAPI:e}=t,o=(0,wa.useRef)(t);o.current=t;let r=(0,wa.useRef)(!1);(0,wa.useEffect)(()=>{if(!e)return;r.current=!1;let n=async({libraryUrl:l,idToken:c})=>{let s=new Promise(async(d,p)=>{try{let b=await(await fetch(decodeURIComponent(l))).blob();d(b)}catch(u){p(u)}}),m=c!==e.id;await(m&&document.hidden?new Promise(d=>{window.addEventListener("focus",()=>d(),{once:!0})}):null);try{await e.updateLibrary({libraryItems:s,prompt:m,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(d){throw d}finally{if(window.location.hash.includes(Ls.addLibrary)){let d=new URLSearchParams(window.location.hash.slice(1));d.delete(Ls.addLibrary),window.history.replaceState({},Wa,`#${d.toString()}`)}else if(window.location.search.includes(As.addLibrary)){let d=new URLSearchParams(window.location.search);d.delete(As.addLibrary),window.history.replaceState({},Wa,`?${d.toString()}`)}}},i=l=>{l.preventDefault();let c=If();c&&(l.stopImmediatePropagation(),window.history.replaceState({},"",l.oldURL),n(c))},a=If();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,c=o.current.migrationAdapter,s=$s();c?s.resolve(qa(c.load).then(async m=>{let d=null;try{if(!m)return Ea.getLibraryItems(l,"load");d=ul(m.libraryItems||[],"published");let p=await Dy(l,Oy([],d));try{await c.clear()}catch(u){console.error(`couldn't delete legacy library data: ${u.message}`)}return p}catch(p){return console.error(`couldn't migrate legacy library data: ${p.message}`),d}}).catch(m=>(console.error(`error during library migration: ${m.message}`),Ea.getLibraryItems(l,"load")))):s.resolve(qa(Ea.getLibraryItems,l,"load")),e.updateLibrary({libraryItems:s.then(m=>{let d=m||[];return Gl=Od(d),d}),merge:!0}).finally(()=>{r.current=!0})}return window.addEventListener("hashchange",i),()=>{window.removeEventListener("hashchange",i)}},[e]),(0,wa.useEffect)(()=>{let n=Ry.on(async(a,l)=>{let c=r.current,s="adapter"in o.current&&o.current.adapter||null;try{s&&Gl!==Od(l)&&await Dy(s,a)}catch(m){console.error(`couldn't persist library update: ${m.message}`,a),c&&o.current.excalidrawAPI&&o.current.excalidrawAPI.updateScene({appState:{errorMessage:g("errors.saveLibraryError")}})}}),i=a=>{Nd&&Og(a)};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i),n(),Gl=0,Nd=0}},[])};h();var _f=t=>{let e=Array.from(t.values());return{x:Fy(e,o=>o.x)/e.length,y:Fy(e,o=>o.y)/e.length}},Mf=([t,e])=>Math.hypot(t.x-e.x,t.y-e.y),Fy=(t,e)=>t.reduce((o,r)=>o+e(r),0);h();var fT=t=>({selectedElementIds:t.selectedElementIds,selectedGroupIds:t.selectedGroupIds,viewBackgroundColor:t.viewBackgroundColor,editingLinearElement:t.editingLinearElement,editingGroupId:t.editingGroupId,name:t.name}),Af=class{elementCache=new Map;recording=!0;stateHistory=[];redoStack=[];lastEntry=null;hydrateHistoryEntry({appState:e,elements:o}){return{appState:JSON.parse(e),elements:o.map(r=>{let n=this.elementCache.get(r.id)?.get(r.versionNonce);if(!n)throw new Error(`Element not found: ${r.id}:${r.versionNonce}`);return n})}}dehydrateHistoryEntry({appState:e,elements:o}){return{appState:JSON.stringify(e),elements:o.map(r=>{this.elementCache.has(r.id)||this.elementCache.set(r.id,new Map);let n=this.elementCache.get(r.id);return n.has(r.versionNonce)||n.set(r.versionNonce,Li(r)),{id:r.id,versionNonce:r.versionNonce}})}}getSnapshotForTest(){return{recording:this.recording,stateHistory:this.stateHistory.map(e=>this.hydrateHistoryEntry(e)),redoStack:this.redoStack.map(e=>this.hydrateHistoryEntry(e))}}clear(){this.stateHistory.length=0,this.redoStack.length=0,this.lastEntry=null,this.elementCache.clear()}generateEntry=(e,o)=>this.dehydrateHistoryEntry({appState:fT(e),elements:o.reduce((r,n)=>{if(De(n)&&e.multiElement&&e.multiElement.id===n.id){if(e.multiElement&&e.multiElement.id===n.id&&n.points.length<2)return r;r.push({...n,points:n.lastCommittedPoint!==n.points[n.points.length-1]?n.points.slice(0,-1):n.points})}else r.push(n);return r},[])});shouldCreateEntry(e){let{lastEntry:o}=this;if(!o||e.elements.length!==o.elements.length)return!0;for(let n=e.elements.length-1;n>-1;n--){let i=e.elements[n],a=o.elements[n];if(!i||!a||i.id!==a.id||i.versionNonce!==a.versionNonce)return!0}let r;for(r in e.appState)if(!(r==="editingLinearElement"&&e.appState[r]?.elementId===o.appState[r]?.elementId)&&!(r==="selectedElementIds"||r==="selectedGroupIds")&&e.appState[r]!==o.appState[r])return!0;return!1}pushEntry(e,o){let r=this.generateEntry(e,o),n=this.hydrateHistoryEntry(r);if(n){if(!this.shouldCreateEntry(n))return;this.stateHistory.push(r),this.lastEntry=n,this.clearRedoStack()}}clearRedoStack(){this.redoStack.splice(0,this.redoStack.length)}redoOnce(){if(this.redoStack.length===0)return null;let e=this.redoStack.pop();return e!==void 0?(this.stateHistory.push(e),this.hydrateHistoryEntry(e)):null}undoOnce(){if(this.stateHistory.length===1)return null;let e=this.stateHistory.pop(),o=this.stateHistory[this.stateHistory.length-1];return e!==void 0?(this.redoStack.push(e),this.hydrateHistoryEntry(o)):null}setCurrentState(e,o){this.lastEntry=this.hydrateHistoryEntry(this.generateEntry(e,o))}resumeRecording(){this.recording=!0}record(e,o){this.recording&&(this.pushEntry(e,o),this.recording=!1)}},$y=Af;h();var Lf=[{icon:Qb,value:"selection",key:S.V,numericKey:S[1],fillable:!0},{icon:e0,value:"rectangle",key:S.R,numericKey:S[2],fillable:!0},{icon:t0,value:"diamond",key:S.D,numericKey:S[3],fillable:!0},{icon:o0,value:"ellipse",key:S.O,numericKey:S[4],fillable:!0},{icon:r0,value:"arrow",key:S.A,numericKey:S[5],fillable:!0},{icon:n0,value:"line",key:S.L,numericKey:S[6],fillable:!0},{icon:Vi,value:"freedraw",key:[S.P,S.X],numericKey:S[7],fillable:!1},{icon:a0,value:"text",key:S.T,numericKey:S[8],fillable:!1},{icon:l0,value:"image",key:null,numericKey:S[9],fillable:!1},{icon:s0,value:"eraser",key:S.E,numericKey:S[0],fillable:!1}],Hy=t=>Lf.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();h();var hT={toggleTheme:[N("Shift+Alt+D")],saveScene:[N("CtrlOrCmd+S")],loadScene:[N("CtrlOrCmd+O")],clearCanvas:[N("CtrlOrCmd+Delete")],imageExport:[N("CtrlOrCmd+Shift+E")],cut:[N("CtrlOrCmd+X")],copy:[N("CtrlOrCmd+C")],paste:[N("CtrlOrCmd+V")],copyStyles:[N("CtrlOrCmd+Alt+C")],pasteStyles:[N("CtrlOrCmd+Alt+V")],selectAll:[N("CtrlOrCmd+A")],deleteSelectedElements:[N("Delete")],duplicateSelection:[N("CtrlOrCmd+D"),N(`Alt+${g("helpDialog.drag")}`)],sendBackward:[N("CtrlOrCmd+[")],bringForward:[N("CtrlOrCmd+]")],sendToBack:[Oo?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")],bringToFront:[Oo?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")],copyAsPng:[N("Shift+Alt+C")],copyAsSvg:[],group:[N("CtrlOrCmd+G")],ungroup:[N("CtrlOrCmd+Shift+G")],gridMode:[N("CtrlOrCmd+'")],zenMode:[N("Alt+Z")],objectsSnapMode:[N("Alt+S")],stats:[N("Alt+/")],addToLibrary:[],flipHorizontal:[N("Shift+H")],flipVertical:[N("Shift+V")],viewMode:[N("Alt+R")],hyperlink:[N("CtrlOrCmd+K")],toggleElementLock:[N("CtrlOrCmd+Shift+L")]},$r=t=>{let e=hT[t];return e&&e.length>0?e[0]:""};var zy=v($(),1),Hr=v(C(),1),qt="separator",Uy=zy.default.memo(({actionManager:t,items:e,top:o,left:r,onClose:n})=>{let i=ya(),a=hn(),l=e.reduce((c,s)=>(s&&(s===qt||!s.predicate||s.predicate(a,i,t.app.props,t.app))&&c.push(s),c),[]);return(0,Hr.jsx)(vd,{onCloseRequest:()=>{n()},top:o,left:r,fitInViewport:!0,offsetLeft:i.offsetLeft,offsetTop:i.offsetTop,viewportWidth:i.width,viewportHeight:i.height,children:(0,Hr.jsx)("ul",{className:"context-menu",onContextMenu:c=>c.preventDefault(),children:l.map((c,s)=>{if(c===qt)return!l[s-1]||l[s-1]===qt?null:(0,Hr.jsx)("hr",{className:"context-menu-item-separator"},s);let m=c.name,d="";return c.contextItemLabel&&(typeof c.contextItemLabel=="function"?d=g(c.contextItemLabel(a,i,t.app)):d=g(c.contextItemLabel)),(0,Hr.jsx)("li",{"data-testid":m,onClick:()=>{n(()=>{t.executeAction(c,"contextMenu")})},children:(0,Hr.jsxs)("button",{className:F("context-menu-item",{dangerous:m==="deleteSelectedElements",checkmark:c.checked?.(i)}),children:[(0,Hr.jsx)("div",{className:"context-menu-item__label",children:d}),(0,Hr.jsx)("kbd",{className:"context-menu-item__shortcut",children:m?$r(m):""})]})},s)})})})});h();var s3=v($(),1);h();var kE=v($(),1);h();var Pf=v($(),1);var Df=v(C(),1),gT=(0,Pf.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Df.jsx)("div",{className:F("Stack Stack_horizontal",n),style:{"--gap":e,alignItems:o,justifyContent:r,...i},ref:a,children:t})),bT=(0,Pf.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Df.jsx)("div",{className:F("Stack Stack_vertical",n),style:{"--gap":e,justifyItems:o,justifyContent:r,...i},ref:a,children:t})),kt={Row:gT,Col:bT};h();h();var Vy=v(C(),1),Wy=({className:t="",children:e,onToggle:o,title:r,...n})=>{let i=Ie(),a=F(`dropdown-menu-button ${t}`,"zen-mode-transition",{"dropdown-menu-button--mobile":i.editor.isMobile}).trim();return(0,Vy.jsx)("button",{"data-prevent-outside-click":!0,className:a,onClick:o,type:"button","data-testid":"dropdown-menu-button",title:r,...n,children:e})},Gy=Wy;Wy.displayName="DropdownMenuTrigger";h();h();var Fd=v($(),1);var Rf=Fd.default.createContext({}),$d=(t="",e=!1)=>`dropdown-menu-item dropdown-menu-item-base ${t} ${e?"dropdown-menu-item--selected":""}`.trim(),Hd=(t,e)=>{let o=(0,Fd.useContext)(Rf);return qr(t,r=>{let n=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});e?.(n),n.defaultPrevented||o.onSelect?.(n)})};h();var vn=v(C(),1),xT=({icon:t,shortcut:e,children:o})=>{let r=Ie();return(0,vn.jsxs)(vn.Fragment,{children:[(0,vn.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,vn.jsx)("div",{className:"dropdown-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,vn.jsx)("div",{className:"dropdown-menu-item__shortcut",children:e})]})},zd=xT;var Ud=v(C(),1),Nf=({icon:t,onSelect:e,children:o,shortcut:r,className:n,selected:i,...a})=>{let l=Hd(a.onClick,e);return(0,Ud.jsx)("button",{...a,onClick:l,type:"button",className:$d(n,i),title:a.title??a["aria-label"],children:(0,Ud.jsx)(zd,{icon:t,shortcut:r,children:o})})};Nf.displayName="DropdownMenuItem";var Ky=({children:t})=>(0,Ud.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",background:"pink",borderRadius:6,fontSize:9,color:"black",fontFamily:"Cascadia, monospace"},children:t});Ky.displayName="DropdownMenuItemBadge";Nf.Badge=Ky;var Vo=Nf;h();var jy=v(C(),1),Yy=()=>(0,jy.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),Zy=Yy;Yy.displayName="DropdownMenuSeparator";h();var Wd=v(C(),1),Xy=({children:t,className:e="",style:o,title:r})=>(0,Wd.jsxs)("div",{className:`dropdown-menu-group ${e}`,style:o,children:[r&&(0,Wd.jsx)("p",{className:"dropdown-menu-group-title",children:r}),t]}),qy=Xy;Xy.displayName="DropdownMenuGroup";h();h();var Jy=v($(),1);var Qy=v(C(),1),Rt=Jy.default.forwardRef(({children:t,padding:e,className:o,style:r},n)=>(0,Qy.jsx)("div",{className:F("Island",o),style:{"--padding":e,...r},ref:n,children:t}));var Gd=v($(),1);var Vl=v(C(),1),eE=({children:t,onClickOutside:e,className:o="",onSelect:r,style:n})=>{let i=Ie(),a=(0,Gd.useRef)(null),l=bd({onClickOutside:e});ua(a,()=>{l.onClickOutside?.()}),(0,Gd.useEffect)(()=>{let s=m=>{m.key===S.ESCAPE&&(m.stopImmediatePropagation(),l.onClickOutside?.())};return document.addEventListener("keydown",s,{capture:!0}),()=>{document.removeEventListener("keydown",s)}},[l]);let c=F(`dropdown-menu ${o}`,{"dropdown-menu--mobile":i.editor.isMobile}).trim();return(0,Vl.jsx)(Rf.Provider,{value:{onSelect:r},children:(0,Vl.jsx)("div",{ref:a,className:c,style:n,"data-testid":"dropdown-menu",children:i.editor.isMobile?(0,Vl.jsx)(kt.Col,{className:"dropdown-menu-container",children:t}):(0,Vl.jsx)(Rt,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:t})})})};eE.displayName="DropdownMenuContent";var tE=eE;h();var Of=v(C(),1),oE=({icon:t,shortcut:e,href:o,children:r,onSelect:n,className:i="",selected:a,...l})=>{let c=Hd(l.onClick,n);return(0,Of.jsx)("a",{...l,href:o,target:"_blank",rel:"noreferrer",className:$d(i,a),title:l.title??l["aria-label"],onClick:c,children:(0,Of.jsx)(zd,{icon:t,shortcut:e,children:r})})},Ta=oE;oE.displayName="DropdownMenuItemLink";h();var nE=v(C(),1),vT=({children:t,className:e="",selected:o,...r})=>(0,nE.jsx)("div",{...r,className:`dropdown-menu-item-base dropdown-menu-item-custom ${e} ${o?"dropdown-menu-item--selected":""}`.trim(),children:t}),rE=vT;h();var Kl=v($(),1),iE=t=>{let e=Kl.default.Children.toArray(t).find(o=>Kl.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuTrigger");return e||null},aE=t=>{let e=Kl.default.Children.toArray(t).find(o=>Kl.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuContent");return e||null};var Vd=v(C(),1),zr=({children:t,open:e})=>{let o=iE(t),r=aE(t);return(0,Vd.jsxs)(Vd.Fragment,{children:[o,e&&r]})};zr.Trigger=Gy;zr.Content=tE;zr.Item=Vo;zr.ItemLink=Ta;zr.ItemCustom=rE;zr.Group=qy;zr.Separator=Zy;var Me=zr;zr.displayName="DropdownMenu";h();var Yd=v($(),1);h();var Yl=v($());h();h();var lE=t=>{let e,o=new Set,r=(c,s)=>{let m=typeof c=="function"?c(e):c;if(!Object.is(m,e)){let d=e;e=s??(typeof m!="object"||m===null)?m:Object.assign({},e,m),o.forEach(p=>p(e,d))}},n=()=>e,l={setState:r,getState:n,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()}};return e=t(r,n,l),l},sE=t=>t?lE(t):lE;var vE=v($(),1),yE=v(gE(),1),{useDebugValue:BT}=vE.default,{useSyncExternalStoreWithSelector:FT}=yE.default,bE=!1;function $T(t,e=t.getState,o){(E?E.MODE:void 0)!=="production"&&o&&!bE&&(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"),bE=!0);let r=FT(t.subscribe,t.getState,t.getServerState||t.getState,e,o);return BT(r),r}var xE=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"?sE(t):t,o=(r,n)=>$T(e,r,n);return Object.assign(o,e),o},EE=t=>t?xE(t):xE;var wE,TE,CE=typeof window<"u"&&((wE=window.document)!=null&&wE.createElement||((TE=window.navigator)==null?void 0:TE.product)==="ReactNative")?Yl.default.useLayoutEffect:Yl.default.useEffect;function Ko(){let t=EE(e=>({current:new Array,version:0,set:e}));return{In:({children:e})=>{let o=t(n=>n.set),r=t(n=>n.version);return CE(()=>{o(n=>({version:n.version+1}))},[]),CE(()=>(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 Yl.default.createElement(Yl.default.Fragment,null,e)}}}var Ff=Yd.default.createContext(null),ze=()=>Yd.default.useContext(Ff),SE=()=>Yd.default.useMemo(()=>({MainMenuTunnel:Ko(),WelcomeScreenMenuHintTunnel:Ko(),WelcomeScreenToolbarHintTunnel:Ko(),WelcomeScreenHelpHintTunnel:Ko(),WelcomeScreenCenterTunnel:Ko(),FooterCenterTunnel:Ko(),DefaultSidebarTriggerTunnel:Ko(),DefaultSidebarTabTriggersTunnel:Ko(),OverwriteConfirmDialogTunnel:Ko(),TTDDialogTriggerTunnel:Ko(),jotaiScope:Symbol()}),[]);var oe=v(C(),1),Zd=({appState:t,elementsMap:e,renderAction:o})=>{let r=zi(e,t),n=!1;r.length===2&&(tr(r[0])||tr(r[1]))&&(n=!0);let i=!!t.editingElement,a=Ie(),l=document.documentElement.getAttribute("dir")==="rtl",c=tn(t.activeTool.type)&&!Nn(t.currentItemBackgroundColor)||r.some(p=>tn(p.type)&&!Nn(p.backgroundColor)),s=tn(t.activeTool.type)||r.some(p=>tn(p.type)),m=r.length===1||n,d=r[0]?.type||null;for(let p of r)if(p.type!==d){d=null;break}return(0,oe.jsxs)("div",{className:"panelColumn",children:[(0,oe.jsx)("div",{children:(rl(t.activeTool.type)&&t.activeTool.type!=="image"&&d!=="image"&&d!=="frame"&&d!=="magicframe"||r.some(p=>rl(p.type)))&&o("changeStrokeColor")}),s&&(0,oe.jsx)("div",{children:o("changeBackgroundColor")}),c&&o("changeFillStyle"),(fu(t.activeTool.type)||r.some(p=>fu(p.type)))&&o("changeStrokeWidth"),(t.activeTool.type==="freedraw"||r.some(p=>p.type==="freedraw"))&&o("changeStrokeShape"),(hu(t.activeTool.type)||r.some(p=>hu(p.type)))&&(0,oe.jsxs)(oe.Fragment,{children:[o("changeStrokeStyle"),o("changeSloppiness")]}),(gu(t.activeTool.type)||r.some(p=>gu(p.type)))&&(0,oe.jsx)(oe.Fragment,{children:o("changeRoundness")}),(t.activeTool.type==="text"||r.some(ie))&&(0,oe.jsxs)(oe.Fragment,{children:[o("changeFontSize"),o("changeFontFamily"),(t.activeTool.type==="text"||g1(r,e))&&o("changeTextAlign")]}),h1(r,e)&&o("changeVerticalAlign"),(Ci(t.activeTool.type)||r.some(p=>Ci(p.type)))&&(0,oe.jsx)(oe.Fragment,{children:o("changeArrowhead")}),o("changeOpacity"),(0,oe.jsxs)("fieldset",{children:[(0,oe.jsx)("legend",{children:g("labels.layers")}),(0,oe.jsxs)("div",{className:"buttonList",children:[o("sendToBack"),o("sendBackward"),o("bringToFront"),o("bringForward")]})]}),r.length>1&&!n&&(0,oe.jsxs)("fieldset",{children:[(0,oe.jsx)("legend",{children:g("labels.align")}),(0,oe.jsxs)("div",{className:"buttonList",children:[l?(0,oe.jsxs)(oe.Fragment,{children:[o("alignRight"),o("alignHorizontallyCentered"),o("alignLeft")]}):(0,oe.jsxs)(oe.Fragment,{children:[o("alignLeft"),o("alignHorizontallyCentered"),o("alignRight")]}),r.length>2&&o("distributeHorizontally"),(0,oe.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,oe.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,oe.jsxs)("fieldset",{children:[(0,oe.jsx)("legend",{children:g("labels.actions")}),(0,oe.jsxs)("div",{className:"buttonList",children:[!a.editor.isMobile&&o("duplicateSelection"),!a.editor.isMobile&&o("deleteSelectedElements"),o("group"),o("ungroup"),m&&o("hyperlink")]})]})]})},jd=({activeTool:t,appState:e,app:o,UIOptions:r})=>{let[n,i]=(0,kE.useState)(!1),a=t.type==="frame",l=t.type==="laser",c=t.type==="embeddable",{TTDDialogTriggerTunnel:s}=ze();return(0,oe.jsxs)(oe.Fragment,{children:[Lf.map(({value:m,icon:d,key:p,numericKey:u,fillable:b},x)=>{if(r.tools?.[m]===!1)return null;let y=g(`toolBar.${m}`),w=p&&bi(typeof p=="string"?p:p[0]),k=w?`${w} ${g("helpDialog.or")} ${u}`:`${u}`;return(0,oe.jsx)(ae,{className:F("Shape",{fillable:b}),type:"radio",icon:d,checked:t.type===m,name:"editor-current-shape",title:`${bi(y)} \u2014 ${k}`,keyBindingLabel:u||w,"aria-label":bi(y),"aria-keyshortcuts":k,"data-testid":`toolbar-${m}`,onPointerDown:({pointerType:T})=>{!e.penDetected&&T==="pen"&&o.togglePenMode(!0)},onChange:({pointerType:T})=>{e.activeTool.type!==m&&ge("toolbar",m,"ui"),m==="image"?o.setActiveTool({type:m,insertOnCanvasDirectly:T!=="mouse"}):o.setActiveTool({type:m})}},m)}),(0,oe.jsx)("div",{className:"App-toolbar__divider"}),(0,oe.jsxs)(Me,{open:n,children:[(0,oe.jsxs)(Me.Trigger,{className:F("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":a||c||l&&!o.props.isCollaborating}),onToggle:()=>i(!n),title:g("toolBar.extraTools"),children:[_x,o.props.aiEnabled!==!1&&(0,oe.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:8,fontFamily:"Cascadia, monospace",position:"absolute",background:"pink",color:"black",bottom:3,right:4},children:"AI"})]}),(0,oe.jsxs)(Me.Content,{onClickOutside:()=>i(!1),onSelect:()=>i(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,oe.jsx)(Me.Item,{onSelect:()=>o.setActiveTool({type:"frame"}),icon:Mx,shortcut:S.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:a,children:g("toolBar.frame")}),(0,oe.jsx)(Me.Item,{onSelect:()=>o.setActiveTool({type:"embeddable"}),icon:m0,"data-testid":"toolbar-embeddable",selected:c,children:g("toolBar.embeddable")}),(0,oe.jsx)(Me.Item,{onSelect:()=>o.setActiveTool({type:"laser"}),icon:Wc,"data-testid":"toolbar-laser",selected:l,shortcut:S.K.toLocaleUpperCase(),children:g("toolBar.laser")}),(0,oe.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),o.props.aiEnabled!==!1&&(0,oe.jsx)(s.Out,{}),(0,oe.jsx)(Me.Item,{onSelect:()=>o.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:Ax,"data-testid":"toolbar-embeddable",children:g("toolBar.mermaidToExcalidraw")}),o.props.aiEnabled!==!1&&(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsxs)(Me.Item,{onSelect:()=>o.onMagicframeToolSelect(),icon:ji,"data-testid":"toolbar-magicframe",children:[g("toolBar.magicframe"),(0,oe.jsx)(Me.Item.Badge,{children:"AI"})]}),(0,oe.jsx)(Me.Item,{onSelect:()=>{ge("ai","open-settings","d2c"),o.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:El,"data-testid":"toolbar-magicSettings",children:g("toolBar.magicSettings")})]})]})]})]})},IE=({renderAction:t,zoom:e})=>(0,oe.jsx)(kt.Col,{gap:1,className:"zoom-actions",children:(0,oe.jsxs)(kt.Row,{align:"center",children:[t("zoomOut"),t("resetZoom"),t("zoomIn")]})}),_E=({renderAction:t,className:e})=>(0,oe.jsxs)("div",{className:`undo-redo-buttons ${e}`,children:[(0,oe.jsx)("div",{className:"undo-button-container",children:(0,oe.jsx)(co,{label:g("buttons.undo"),children:t("undo")})}),(0,oe.jsx)("div",{className:"redo-button-container",children:(0,oe.jsxs)(co,{label:g("buttons.redo"),children:[" ",t("redo")]})})]}),ME=({actionManager:t,showExitZenModeBtn:e})=>(0,oe.jsx)("button",{className:F("disable-zen-mode",{"disable-zen-mode--visible":e}),onClick:()=>t.executeAction(xa),children:g("buttons.exitZenMode")}),AE=({renderAction:t,className:e})=>(0,oe.jsx)("div",{className:`finalize-button ${e}`,children:t("finalize",{size:"small"})});h();var nm=v($(),1);h();var rm=v($(),1);h();var Xd=v($(),1),LE=()=>{let[t,e]=(0,Xd.useState)(null),o=(0,Xd.useCallback)(r=>e(r),[]);return[t,o]};h();var PE=v(ir(),1);var Zl=v(C(),1),DE=t=>{let{closeOnClickOutside:e=!0}=t,o=gd({className:"excalidraw-modal-container"});if(!o)return null;let r=n=>{n.key===S.ESCAPE&&(n.nativeEvent.stopImmediatePropagation(),n.stopPropagation(),t.onCloseRequest())};return(0,PE.createPortal)((0,Zl.jsxs)("div",{className:F("Modal",t.className),role:"dialog","aria-modal":"true",onKeyDown:r,"aria-labelledby":t.labelledBy,"data-prevent-outside-click":!0,children:[(0,Zl.jsx)("div",{className:"Modal__background",onClick:e?t.onCloseRequest:void 0}),(0,Zl.jsx)("div",{className:"Modal__content",style:{"--max-width":`${t.maxWidth}px`},tabIndex:0,children:t.children})]}),o)};h();var uo=v($(),1);h();var Ht=v($(),1);h();h();var NE=v(C(),1),HT=({theme:t,id:e,libraryReturnUrl:o})=>{let r=o||window.location.origin+window.location.pathname;return(0,NE.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=${Ds.excalidrawLibrary}`,target:"_excalidraw_libraries",children:g("labels.libraries")})},RE=HT;var Jd=v(C(),1),qd=({libraryReturnUrl:t,theme:e,id:o,style:r,children:n,className:i})=>(0,Jd.jsxs)("div",{className:F("library-menu-control-buttons",i),style:r,children:[(0,Jd.jsx)(RE,{id:o,libraryReturnUrl:t,theme:e}),n]});h();var _a=v($(),1);h();var jl=v($(),1);var zT=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,UT=/{{([\w-]+)}}/,WT=/<([\w-]+)>/,GT=/<\/([\w-]+)>/,VT=(t,e)=>{let o=[{name:"",children:[]}];return t.split(zT).filter(Boolean).forEach(r=>{let n=r.match(WT),i=r.match(GT),a=r.match(UT);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 c=o.pop(),s=jl.default.createElement(jl.default.Fragment,{},...c.children),m=e[c.name];typeof m=="function"&&o[o.length-1].children.push(m(s))}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},KT=({i18nKey:t,children:e,...o})=>{let{t:r}=wt();return jl.default.createElement(jl.default.Fragment,{},...VT(r(t),o))},Jt=KT;h();h();var ri=v(C(),1),YT=({label:t,onClick:e,className:o,children:r,actionType:n,type:i="button",isLoading:a,...l})=>{let c=n?`Dialog__action-button--${n}`:"";return(0,ri.jsxs)("button",{className:F("Dialog__action-button",c,o),type:i,"aria-label":t,onClick:e,...l,children:[r&&(0,ri.jsx)("div",{style:a?{visibility:"hidden"}:{},children:r}),(0,ri.jsx)("div",{style:a?{visibility:"hidden"}:{},children:t}),a&&(0,ri.jsx)("div",{style:{position:"absolute",inset:0},children:(0,ri.jsx)(Lt,{})})]})},Sa=YT;var ka=v(C(),1),ZT=t=>{let{onConfirm:e,onCancel:o,children:r,confirmText:n=g("buttons.confirm"),cancelText:i=g("buttons.cancel"),className:a="",...l}=t,c=Fe(),s=Lr(Ia,Ae),{container:m}=Ct();return(0,ka.jsxs)(at,{onCloseRequest:o,size:"small",...l,className:`confirm-dialog ${a}`,children:[r,(0,ka.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,ka.jsx)(Sa,{label:i,onClick:()=>{c({openMenu:null}),s(!1),o(),m?.focus()}}),(0,ka.jsx)(Sa,{label:n,onClick:()=>{c({openMenu:null}),s(!1),e(),m?.focus()},actionType:"danger"})]})]})},Qd=ZT;h();var mo=v($(),1);h();var ao=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 ee=v(C(),1),jT=async t=>{let r=Math.round(8),n=Math.max(Math.round(128/64),2),i=Dg(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=Qe.white,l.fillRect(0,0,a.width,a.height);for(let[c,s]of t.entries()){let m=await $n({elements:s.elements,files:null,maxWidthOrHeight:128}),{width:d,height:p}=m,u=Math.floor(c/6)*(128+r*2),b=c%6*(128+r*2);l.drawImage(m,b+(128-d)/2+r,u+(128-p)/2+r),l.lineWidth=n,l.strokeStyle=Qe.gray[4],l.strokeRect(b+r/2,u+r/2,128+r,128+r)}return await pl(new File([await _r(a)],"preview",{type:_t.png}),{outputType:_t.jpg,maxWidthOrHeight:5e3})},XT=({libItem:t,appState:e,index:o,onChange:r,onRemove:n})=>{let i=(0,mo.useRef)(null),a=(0,mo.useRef)(null);return(0,mo.useEffect)(()=>{let l=i.current;l&&(async()=>{let c=await hl({elements:t.elements,appState:{...e,viewBackgroundColor:Qe.white,exportBackground:!0},files:null});l.innerHTML=c.outerHTML})()},[t.elements,e]),(0,ee.jsxs)("div",{className:"single-library-item",children:[t.status==="published"&&(0,ee.jsx)("span",{className:"single-library-item-status",children:g("labels.statusPublished")}),(0,ee.jsx)("div",{ref:i,className:"single-library-item__svg"}),(0,ee.jsx)(ae,{"aria-label":g("buttons.remove"),type:"button",icon:wo,className:"single-library-item--remove",onClick:n.bind(null,t.id),title:g("buttons.remove")}),(0,ee.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,ee.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,ee.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,ee.jsx)("span",{style:{fontWeight:500,color:Qe.gray[6]},children:g("publishDialog.itemName")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.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,ee.jsx)("span",{className:"error",children:t.error})]})]})},qT=({onClose:t,libraryItems:e,appState:o,onSuccess:r,onError:n,updateItemsInStorage:i,onRemove:a})=>{let[l,c]=(0,mo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[s,m]=(0,mo.useState)(!1);(0,mo.useEffect)(()=>{let T=ao.get(go.PUBLISH_LIBRARY);T&&c(T)},[]);let[d,p]=(0,mo.useState)(e.slice());(0,mo.useEffect)(()=>{p(e.slice())},[e]);let u=T=>{c({...l,[T.target.name]:T.target.value})},b=async T=>{T.preventDefault(),m(!0);let I=[],A=!1;if(d.forEach(Y=>{let O="";Y.name||(O=g("publishDialog.errors.required"),A=!0),I.push({...Y,error:O})}),A){p(I),m(!1);return}let _=await jT(d),M={type:dg.excalidrawLibrary,version:Ds.excalidrawLibrary,source:mg,libraryItems:d},L=JSON.stringify(M,null,2),W=new Blob([L],{type:"application/json"}),B=new FormData;B.append("excalidrawLib",W),B.append("previewImage",_),B.append("previewImageType",_.type),B.append("title",l.name),B.append("authorName",l.authorName),B.append("githubHandle",l.githubHandle),B.append("name",l.name),B.append("description",l.description),B.append("twitterHandle",l.twitterHandle),B.append("website",l.website),fetch(`${E.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:B}).then(Y=>Y.ok?Y.json().then(({url:O})=>{ao.delete(go.PUBLISH_LIBRARY),r({url:O,authorName:l.authorName,items:d})}):Y.json().catch(()=>{throw new Error(Y.statusText||"something went wrong")}).then(O=>{throw new Error(O.message||Y.statusText||"something went wrong")}),Y=>{console.error(Y),n(Y),m(!1)}).catch(Y=>{console.error(Y),n(Y),m(!1)})},x=()=>{let T=[];return d.forEach((I,A)=>{T.push((0,ee.jsx)("div",{className:"single-library-item-wrapper",children:(0,ee.jsx)(XT,{libItem:I,appState:o,index:A,onChange:(_,M)=>{let L=d.slice();L[M].name=_,p(L)},onRemove:a})},A))}),(0,ee.jsx)("div",{className:"selected-library-items",children:T})},y=(0,mo.useCallback)(()=>{i(d),ao.set(go.PUBLISH_LIBRARY,l),t()},[d,t,i,l]),w=!!e.length,k=e.some(T=>T.status==="published");return(0,ee.jsx)(at,{onCloseRequest:y,title:g("publishDialog.title"),className:"publish-library",children:w?(0,ee.jsxs)("form",{onSubmit:b,children:[(0,ee.jsx)("div",{className:"publish-library-note",children:(0,ee.jsx)(Jt,{i18nKey:"publishDialog.noteDescription",link:T=>(0,ee.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:T})})}),(0,ee.jsx)("span",{className:"publish-library-note",children:(0,ee.jsx)(Jt,{i18nKey:"publishDialog.noteGuidelines",link:T=>(0,ee.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:T})})}),(0,ee.jsx)("div",{className:"publish-library-note",children:g("publishDialog.noteItems")}),k&&(0,ee.jsx)("span",{className:"publish-library-note publish-library-warning",children:g("publishDialog.republishWarning")}),x(),(0,ee.jsxs)("div",{className:"publish-library__fields",children:[(0,ee.jsxs)("label",{children:[(0,ee.jsxs)("div",{children:[(0,ee.jsx)("span",{children:g("publishDialog.libraryName")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.jsx)("input",{type:"text",name:"name",required:!0,value:l.name,onChange:u,placeholder:g("publishDialog.placeholder.libraryName")})]}),(0,ee.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,ee.jsxs)("div",{children:[(0,ee.jsx)("span",{children:g("publishDialog.libraryDesc")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.jsx)("textarea",{name:"description",rows:4,required:!0,value:l.description,onChange:u,placeholder:g("publishDialog.placeholder.libraryDesc")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsxs)("div",{children:[(0,ee.jsx)("span",{children:g("publishDialog.authorName")}),(0,ee.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ee.jsx)("input",{type:"text",name:"authorName",required:!0,value:l.authorName,onChange:u,placeholder:g("publishDialog.placeholder.authorName")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsx)("span",{children:g("publishDialog.githubUsername")}),(0,ee.jsx)("input",{type:"text",name:"githubHandle",value:l.githubHandle,onChange:u,placeholder:g("publishDialog.placeholder.githubHandle")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsx)("span",{children:g("publishDialog.twitterUsername")}),(0,ee.jsx)("input",{type:"text",name:"twitterHandle",value:l.twitterHandle,onChange:u,placeholder:g("publishDialog.placeholder.twitterHandle")})]}),(0,ee.jsxs)("label",{children:[(0,ee.jsx)("span",{children:g("publishDialog.website")}),(0,ee.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:g("publishDialog.errors.website"),value:l.website,onChange:u,placeholder:g("publishDialog.placeholder.website")})]}),(0,ee.jsx)("span",{className:"publish-library-note",children:(0,ee.jsx)(Jt,{i18nKey:"publishDialog.noteLicense",link:T=>(0,ee.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:T})})})]}),(0,ee.jsxs)("div",{className:"publish-library__buttons",children:[(0,ee.jsx)(Sa,{label:g("buttons.cancel"),onClick:y,"data-testid":"cancel-clear-canvas-button"}),(0,ee.jsx)(Sa,{type:"submit",label:g("buttons.submit"),actionType:"primary",isLoading:s})]})]}):(0,ee.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:g("publishDialog.atleastOneLibItem")})})},OE=qT;var xt=v(C(),1),JT=(t,e)=>t.filter(o=>e.includes(o.id)),QT=({setAppState:t,selectedItems:e,library:o,onRemoveFromLibrary:r,resetLibrary:n,onSelectItems:i,appState:a,className:l})=>{let[c]=Te(oi,Ae),[s,m]=Te(Ia,Ae),d=()=>{let B=e.length?g("alerts.removeItemsFromsLibrary",{count:e.length}):g("alerts.resetLibrary"),Y=e.length?g("confirmDialog.removeItemsFromLib"):g("confirmDialog.resetLibrary");return(0,xt.jsx)(Qd,{onConfirm:()=>{e.length?r():n(),u(!1)},onCancel:()=>{u(!1)},title:Y,children:(0,xt.jsx)("p",{children:B})})},[p,u]=(0,_a.useState)(!1),b=!!e.length,x=b?c.libraryItems.filter(B=>e.includes(B.id)):c.libraryItems,y=b?g("buttons.remove"):g("buttons.resetLibrary"),[w,k]=(0,_a.useState)(!1),[T,I]=(0,_a.useState)(null),A=(0,_a.useCallback)(()=>(0,xt.jsxs)(at,{onCloseRequest:()=>I(null),title:g("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,xt.jsx)("p",{children:(0,xt.jsx)(Jt,{i18nKey:"publishSuccessDialog.content",authorName:T.authorName,link:B=>(0,xt.jsx)("a",{href:T?.url,target:"_blank",rel:"noopener noreferrer",children:B})})}),(0,xt.jsx)(ae,{type:"button",title:g("buttons.close"),"aria-label":g("buttons.close"),label:g("buttons.close"),onClick:()=>I(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[I,T]),_=(B,Y)=>{k(!1),I({url:B.url,authorName:B.authorName});let O=Y.slice();O.forEach(z=>{e.includes(z.id)&&(z.status="published")}),o.setLibrary(O)},M=async()=>{try{await o.updateLibrary({libraryItems:sc({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(B){if(B?.name==="AbortError"){console.warn(B);return}t({errorMessage:g("errors.importLibraryError")})}},L=async()=>{let B=b?x:await o.getLatestLibrary();G1(B).catch(Fs).catch(Y=>{t({errorMessage:Y.message})})},W=()=>(0,xt.jsxs)(Me,{open:s,children:[(0,xt.jsx)(Me.Trigger,{onToggle:()=>m(!s),children:Kb}),(0,xt.jsxs)(Me.Content,{onClickOutside:()=>m(!1),onSelect:()=>m(!1),className:"library-menu",children:[!b&&(0,xt.jsx)(Me.Item,{onSelect:M,icon:Yi,"data-testid":"lib-dropdown--load",children:g("buttons.load")}),!!x.length&&(0,xt.jsx)(Me.Item,{onSelect:L,icon:Fc,"data-testid":"lib-dropdown--export",children:g("buttons.export")}),!!x.length&&(0,xt.jsx)(Me.Item,{onSelect:()=>u(!0),icon:ln,children:y}),b&&(0,xt.jsx)(Me.Item,{icon:Tx,onSelect:()=>k(!0),"data-testid":"lib-dropdown--remove",children:g("buttons.publishLibrary")})]})]});return(0,xt.jsxs)("div",{className:F("library-menu-dropdown-container",l),children:[W(),e.length>0&&(0,xt.jsx)("div",{className:"library-actions-counter",children:e.length}),p&&d(),w&&(0,xt.jsx)(OE,{onClose:()=>k(!1),libraryItems:JT(c.libraryItems,e),appState:a,onSuccess:B=>_(B,c.libraryItems),onError:B=>window.alert(B),updateItemsInStorage:()=>o.setLibrary(c.libraryItems),onRemove:B=>i(e.filter(Y=>Y!==B))}),T&&A()]})},$f=({selectedItems:t,onSelectItems:e,className:o})=>{let{library:r}=So(),{clearLibraryCache:n,deleteItemsFromLibraryCache:i}=Dd(),a=Le(),l=Fe(),[c]=Te(oi,Ae),s=async d=>{let p=d.filter(u=>!t.includes(u.id));r.setLibrary(p).catch(()=>{l({errorMessage:g("alerts.errorRemovingFromLibrary")})}),i(t),e([])};return(0,xt.jsx)(QT,{appState:a,setAppState:l,selectedItems:t,onSelectItems:e,library:r,onRemoveFromLibrary:()=>s(c.libraryItems),resetLibrary:()=>{r.resetLibrary(),n()},className:o})};h();var Ma=v($(),1);h();var yn=v($(),1);var ni=v(C(),1),BE=(0,yn.memo)(({id:t,elements:e,isPending:o,onClick:r,selected:n,onToggle:i,onDrag:a,svgCache:l})=>{let c=(0,yn.useRef)(null),s=Py(t,e,l);(0,yn.useEffect)(()=>{let b=c.current;if(b)return s&&(b.innerHTML=s.outerHTML),()=>{b.innerHTML=""}},[s]);let[m,d]=(0,yn.useState)(!1),p=Ie().editor.isMobile,u=o&&(0,ni.jsx)("div",{className:"library-unit__adder",children:Vb});return(0,ni.jsxs)("div",{className:F("library-unit",{"library-unit__active":e,"library-unit--hover":e&&m,"library-unit--selected":n,"library-unit--skeleton":!s}),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[(0,ni.jsx)("div",{className:F("library-unit__dragger",{"library-unit__pulse":!!o}),ref:c,draggable:!!e,onClick:e||o?b=>{t&&b.shiftKey?i(t,b):r(t)}:void 0,onDragStart:b=>{if(!t){b.preventDefault();return}d(!1),a(t,b)}}),u,t&&e&&(m||p||n)&&(0,ni.jsx)(qn,{checked:n,onChange:(b,x)=>i(t,x),className:"library-unit__checkbox"})]})}),FE=()=>(0,ni.jsx)("div",{className:"library-unit library-unit--skeleton"});h();var em=v($(),1);function eC(){return[!1,(0,em.useCallback)(e=>e(),[])]}var $E=em.default.useTransition||eC;var ii=v(C(),1),Hf=({children:t})=>(0,ii.jsx)("div",{className:"library-menu-items-container__grid",children:t}),tm=(0,Ma.memo)(({items:t,onItemSelectToggle:e,onItemDrag:o,isItemSelected:r,onClick:n,svgCache:i,itemsRenderedPerBatch:a})=>{let[,l]=$E(),[c,s]=(0,Ma.useState)(0);return(0,Ma.useEffect)(()=>{c<t.length&&l(()=>{s(c+a)})},[c,t.length,l,a]),(0,ii.jsx)(ii.Fragment,{children:t.map((m,d)=>d<c?(0,ii.jsx)(BE,{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??d):(0,ii.jsx)(FE,{},d))})});h();var GE=v($(),1);var VE=v(Uf(),1),xC=Ve(0),KE=t=>{let[e,o]=Te(xC);return(0,GE.useEffect)(()=>{let{current:r}=t;if(!r)return;let n=(0,VE.default)(()=>{let{scrollTop:i}=r;o(i)},200);return r.addEventListener("scroll",n),()=>{n.cancel(),r.removeEventListener("scroll",n)}},[t,o]),e};var Ze=v(C(),1),vC=17,yC=64;function Wf({isLoading:t,libraryItems:e,onAddToLibrary:o,onInsertLibraryItems:r,pendingElements:n,theme:i,id:a,libraryReturnUrl:l,onSelectItems:c,selectedItems:s}){let m=(0,Ht.useRef)(null),d=KE(m);(0,Ht.useEffect)(()=>{d>0&&m.current?.scrollTo(0,d)},[]);let{svgCache:p}=Dd(),u=(0,Ht.useMemo)(()=>e.filter(B=>B.status!=="published"),[e]),b=(0,Ht.useMemo)(()=>e.filter(B=>B.status==="published"),[e]),x=!e.length&&!n.length,y=!n.length&&!u.length&&!b.length,[w,k]=(0,Ht.useState)(null),T=(0,Ht.useCallback)((B,Y)=>{let O=!s.includes(B),z=[...u,...b];if(O){if(Y.shiftKey&&w){let ne=z.findIndex(de=>de.id===w),Q=z.findIndex(de=>de.id===B);if(ne===-1||Q===-1){c([...s,B]);return}let xe=Se(s),Ee=z.reduce((de,se,P)=>((P>=ne&&P<=Q||xe.has(se.id))&&de.push(se.id),de),[]);c(Ee)}else c([...s,B]);k(B)}else k(null),c(s.filter(ne=>ne!==B))},[w,c,b,s,u]),I=(0,Ht.useCallback)(B=>{let Y;return s.includes(B)?Y=e.filter(O=>s.includes(O.id)):Y=e.filter(O=>O.id===B),Y.map(O=>({...O,elements:lc(O.elements,{randomizeSeed:!0})}))},[e,s]),A=(0,Ht.useCallback)((B,Y)=>{Y.dataTransfer.setData(_t.excalidrawlib,Ru(I(B)))},[I]),_=(0,Ht.useCallback)(B=>B?s.includes(B):!1,[s]),M=(0,Ht.useCallback)(()=>{o(n)},[n,o]),L=(0,Ht.useCallback)(B=>{B&&r(I(B))},[I,r]),W=p.size>=e.length?yC:vC;return(0,Ze.jsxs)("div",{className:"library-menu-items-container",style:n.length||u.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!y&&(0,Ze.jsx)($f,{selectedItems:s,onSelectItems:c,className:"library-menu-dropdown-container--in-heading"}),(0,Ze.jsxs)(kt.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,Ze.jsxs)(Ze.Fragment,{children:[!y&&(0,Ze.jsx)("div",{className:"library-menu-items-container__header",children:g("labels.personalLib")}),t&&(0,Ze.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,Ze.jsx)(Lt,{})}),!n.length&&!u.length?(0,Ze.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,Ze.jsx)("div",{className:"library-menu-items__no-items__label",children:g("library.noItems")}),(0,Ze.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?g("library.hint_emptyPrivateLibrary"):g("library.hint_emptyLibrary")})]}):(0,Ze.jsxs)(Hf,{children:[n.length>0&&(0,Ze.jsx)(tm,{itemsRenderedPerBatch:W,items:[{id:null,elements:n}],onItemSelectToggle:T,onItemDrag:A,onClick:M,isItemSelected:_,svgCache:p}),(0,Ze.jsx)(tm,{itemsRenderedPerBatch:W,items:u,onItemSelectToggle:T,onItemDrag:A,onClick:L,isItemSelected:_,svgCache:p})]})]}),(0,Ze.jsxs)(Ze.Fragment,{children:[(b.length>0||n.length>0||u.length>0)&&(0,Ze.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:g("labels.excalidrawLib")}),b.length>0?(0,Ze.jsx)(Hf,{children:(0,Ze.jsx)(tm,{itemsRenderedPerBatch:W,items:b,onItemSelectToggle:T,onItemDrag:A,onClick:L,isItemSelected:_,svgCache:p})}):u.length>0?(0,Ze.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,Ze.jsx)(qd,{style:{padding:"16px 0",width:"100%"},id:a,libraryReturnUrl:l,theme:i,children:(0,Ze.jsx)($f,{selectedItems:s,onSelectItems:c})})]})]})}var Mo=v(C(),1),Ia=Ve(!1),YE=({children:t})=>(0,Mo.jsx)("div",{className:"layer-ui__library",children:t}),EC=({onInsertLibraryItems:t,pendingElements:e,onAddToLibrary:o,setAppState:r,libraryReturnUrl:n,library:i,id:a,theme:l,selectedItems:c,onSelectItems:s})=>{let[m]=Te(oi,Ae),d=(0,uo.useCallback)(b=>{(async(y,w)=>{ge("element","addToLibrary","ui");for(let T of Os)if(y.some(I=>I.type===T))return r({errorMessage:g(`errors.libraryElementTypeError.${T}`)});let k=[{status:"unpublished",elements:y,id:Qr(),created:Date.now()},...w];o(),i.setLibrary(k).catch(()=>{r({errorMessage:g("alerts.errorAddingToLibrary")})})})(b,m.libraryItems)},[o,i,r,m.libraryItems]),p=(0,uo.useMemo)(()=>m.libraryItems,[m]);if(m.status==="loading"&&!m.isInitialized)return(0,Mo.jsx)(YE,{children:(0,Mo.jsx)("div",{className:"layer-ui__library-message",children:(0,Mo.jsxs)("div",{children:[(0,Mo.jsx)(Lt,{size:"2em"}),(0,Mo.jsx)("span",{children:g("labels.libraryLoadingMessage")})]})})});let u=m.libraryItems.length>0||e.length>0;return(0,Mo.jsxs)(YE,{children:[(0,Mo.jsx)(Wf,{isLoading:m.status==="loading",libraryItems:p,onAddToLibrary:d,onInsertLibraryItems:t,pendingElements:e,id:a,libraryReturnUrl:n,theme:l,onSelectItems:s,selectedItems:c}),u&&(0,Mo.jsx)(qd,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:a,libraryReturnUrl:n,theme:l})]})},wC=(t,e)=>{let o=()=>ke(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}),r=(0,uo.useRef)(o()),n=(0,uo.useRef)(t),i=(0,uo.useRef)(e);return(!Mt(t.selectedElementIds,n.current.selectedElementIds)||!Mt(e,i.current))&&(r.current=o(),n.current=t,i.current=e),r.current},ZE=()=>{let{library:t,id:e,onInsertElements:o}=So(),r=va(),n=Le(),i=Fe(),a=hn(),[l,c]=(0,uo.useState)([]),s=(0,uo.useMemo)(()=>t,[t]),m=wC(n,a),d=(0,uo.useCallback)(u=>{o(Bd(u))},[o]),p=(0,uo.useCallback)(()=>{i({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[i]);return(0,Mo.jsx)(EC,{pendingElements:m,onInsertLibraryItems:d,onAddToLibrary:p,setAppState:i,libraryReturnUrl:r.libraryReturnUrl,library:s,id:e,theme:n.theme,selectedItems:l,onSelectItems:c})};var En=v(C(),1);function TC(t){if(t&&typeof t=="number")return t;switch(t){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var at=t=>{let[e,o]=LE(),[r]=(0,rm.useState)(document.activeElement),{id:n}=Ct(),i=Ie().viewport.isMobile;(0,rm.useEffect)(()=>{if(!e)return;let s=Xa(e);s.length>0&&t.autofocus!==!1&&(s[1]||s[0]).focus();let m=d=>{if(d.key===S.TAB){let p=Xa(e),{activeElement:u}=document,b=p.findIndex(x=>x===u);b===0&&d.shiftKey?(p[p.length-1].focus(),d.preventDefault()):b===p.length-1&&!d.shiftKey&&(p[0].focus(),d.preventDefault())}};return e.addEventListener("keydown",m),()=>e.removeEventListener("keydown",m)},[e,t.autofocus]);let a=Fe(),l=Lr(Ia,Ae),c=()=>{a({openMenu:null}),l(!1),r.focus(),t.onCloseRequest()};return(0,En.jsx)(DE,{className:F("Dialog",t.className,{"Dialog--fullscreen":i}),labelledBy:"dialog-title",maxWidth:TC(t.size),onCloseRequest:c,closeOnClickOutside:t.closeOnClickOutside,children:(0,En.jsxs)(Rt,{ref:o,children:[t.title&&(0,En.jsx)("h2",{id:`${n}-dialog-title`,className:"Dialog__title",children:(0,En.jsx)("span",{className:"Dialog__titleContent",children:t.title})}),(0,En.jsx)("button",{className:"Dialog__close",onClick:c,title:g("buttons.close"),"aria-label":g("buttons.close"),children:i?z0:wo}),(0,En.jsx)("div",{className:"Dialog__content",children:t.children})]})})};var Aa=v(C(),1),jE=({children:t,onClose:e})=>{let[o,r]=(0,nm.useState)(!!t),{container:n}=Ct(),i=nm.default.useCallback(()=>{r(!1),e&&e(),n?.focus()},[e,n]);return(0,Aa.jsx)(Aa.Fragment,{children:o&&(0,Aa.jsx)(at,{size:"small",onCloseRequest:i,title:g("errorDialog.title"),children:(0,Aa.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:t})})})};h();var po=v($(),1);h();var Xl=v(C(),1),XE=function({onChange:t,value:e,choices:o,name:r}){return(0,Xl.jsx)("div",{className:"RadioGroup",children:o.map(n=>(0,Xl.jsxs)("div",{className:F("RadioGroup__choice",{active:n.value===e}),children:[(0,Xl.jsx)("input",{name:r,type:"radio",checked:n.value===e,onChange:()=>t(n.value)}),n.label]},n.label))})};h();var Gf=v(C(),1),ql=({title:t,name:e,checked:o,onChange:r,disabled:n=!1})=>(0,Gf.jsx)("div",{className:F("Switch",{toggled:o,disabled:n}),children:(0,Gf.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 im=v($(),1);var La=v(C(),1),mr=(0,im.forwardRef)(({children:t,icon:e,onClick:o,label:r,variant:n="filled",color:i="primary",size:a="medium",fullWidth:l,className:c},s)=>{let[m,d]=(0,im.useState)(!1),p=async u=>{let b=o?.(u);if(vi(b))try{d(!0),await b}catch(x){if(x instanceof Ri)console.warn(x);else throw x}finally{d(!1)}};return(0,La.jsx)("button",{className:F("ExcButton",`ExcButton--color-${i}`,`ExcButton--variant-${n}`,`ExcButton--size-${a}`,{"ExcButton--fullWidth":l},c),onClick:p,type:"button","aria-label":r,ref:s,disabled:m,children:(0,La.jsxs)("div",{className:"ExcButton__contents",children:[m&&(0,La.jsx)(Lt,{}),e&&(0,La.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:e}),n!=="icon"&&(t??r)]})})});var Ce=v(C(),1),CC="filter"in document.createElement("canvas").getContext("2d"),SC=()=>(0,Ce.jsxs)("div",{children:[(0,Ce.jsx)("h3",{children:g("canvasError.cannotShowPreview")}),(0,Ce.jsx)("p",{children:(0,Ce.jsx)("span",{children:g("canvasError.canvasTooBig")})}),(0,Ce.jsxs)("em",{children:["(",g("canvasError.canvasTooBigTip"),")"]})]}),kC=({appStateSnapshot:t,elementsSnapshot:e,files:o,actionManager:r,onExportImage:n,name:i})=>{let a=Ne(e,t),[l,c]=(0,po.useState)(i),[s,m]=(0,po.useState)(a),[d,p]=(0,po.useState)(t.exportBackground),[u,b]=(0,po.useState)(t.exportWithDarkMode),[x,y]=(0,po.useState)(t.exportEmbedScene),[w,k]=(0,po.useState)(t.exportScale),T=(0,po.useRef)(null),[I,A]=(0,po.useState)(null),{exportedElements:_,exportingFrame:M}=jn(e,t,s);return(0,po.useEffect)(()=>{let L=T.current;if(!L)return;let W=L.offsetWidth,B=L.offsetHeight;W&&$n({elements:_,appState:{...t,name:l,exportBackground:d,exportWithDarkMode:u,exportScale:w,exportEmbedScene:x},files:o,exportPadding:jr,maxWidthOrHeight:Math.max(W,B),exportingFrame:M}).then(Y=>(A(null),_r(Y).then(()=>{L.replaceChildren(Y)}).catch(O=>{throw O.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):O}))).catch(Y=>{console.error(Y),A(Y)})},[t,o,_,M,l,d,u,w,x]),(0,Ce.jsxs)("div",{className:"ImageExportModal",children:[(0,Ce.jsx)("h3",{children:g("imageExportDialog.header")}),(0,Ce.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,Ce.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:T,children:I&&(0,Ce.jsx)(SC,{})}),(0,Ce.jsx)("div",{className:"ImageExportModal__preview__filename",children:!Di&&(0,Ce.jsx)("input",{type:"text",className:"TextInput",value:l,style:{width:"30ch"},onChange:L=>{c(L.target.value),r.executeAction(Jp,"ui",L.target.value)}})})]}),(0,Ce.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,Ce.jsx)("h3",{children:g("imageExportDialog.header")}),a&&(0,Ce.jsx)(Jl,{label:g("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,Ce.jsx)(ql,{name:"exportOnlySelected",checked:s,onChange:L=>{m(L)}})}),(0,Ce.jsx)(Jl,{label:g("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,Ce.jsx)(ql,{name:"exportBackgroundSwitch",checked:d,onChange:L=>{p(L),r.executeAction(Qp,"ui",L)}})}),CC&&(0,Ce.jsx)(Jl,{label:g("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,Ce.jsx)(ql,{name:"exportDarkModeSwitch",checked:u,onChange:L=>{b(L),r.executeAction(sy,"ui",L)}})}),(0,Ce.jsx)(Jl,{label:g("imageExportDialog.label.embedScene"),tooltip:g("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,Ce.jsx)(ql,{name:"exportEmbedSwitch",checked:x,onChange:L=>{y(L),r.executeAction(Td,"ui",L)}})}),(0,Ce.jsx)(Jl,{label:g("imageExportDialog.label.scale"),name:"exportScale",children:(0,Ce.jsx)(XE,{name:"exportScale",value:w,onChange:L=>{k(L),r.executeAction(ly,"ui",L)},choices:Ps.map(L=>({value:L,label:`${L}\xD7`}))})}),(0,Ce.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,Ce.jsx)(mr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToPng"),onClick:()=>n(Ms.png,_,{exportingFrame:M}),icon:ep,children:g("imageExportDialog.button.exportToPng")}),(0,Ce.jsx)(mr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToSvg"),onClick:()=>n(Ms.svg,_,{exportingFrame:M}),icon:ep,children:g("imageExportDialog.button.exportToSvg")}),(Ni||Yr)&&(0,Ce.jsx)(mr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.copyPngToClipboard"),onClick:()=>n(Ms.clipboard,_,{exportingFrame:M}),icon:Uc,children:g("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Jl=({label:t,children:e,tooltip:o,name:r})=>(0,Ce.jsxs)("div",{className:"ImageExportModal__settings__setting",title:t,children:[(0,Ce.jsxs)("label",{htmlFor:r,className:"ImageExportModal__settings__setting__label",children:[t,o&&(0,Ce.jsx)(co,{label:o,long:!0,children:Sx})]}),(0,Ce.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:e})]}),qE=({elements:t,appState:e,files:o,actionManager:r,onExportImage:n,onCloseRequest:i,name:a})=>{let[{appStateSnapshot:l,elementsSnapshot:c}]=(0,po.useState)(()=>({appStateSnapshot:er(e),elementsSnapshot:er(t)}));return(0,Ce.jsx)(at,{onCloseRequest:i,size:"wide",title:!1,children:(0,Ce.jsx)(kC,{elementsSnapshot:c,appStateSnapshot:l,files:o,actionManager:r,onExportImage:n,name:a})})};h();var JE=v(C(),1),am=({children:t,side:e,className:o})=>(0,JE.jsx)("div",{className:F("FixedSideContainer",`FixedSideContainer_side_${e}`,o),children:t});h();var Vf=v(C(),1),IC=({appState:t,isMobile:e,device:o,app:r})=>{let{activeTool:n,isResizing:i,isRotating:a,lastPointerDownWith:l}=t,c=t.multiElement!==null;if(t.openSidebar&&!o.editor.canFitSidebar)return null;if(vo(t))return g("hints.eraserRevert");if(n.type==="arrow"||n.type==="line")return c?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 s=r.scene.getSelectedElements(t);if(i&&l==="mouse"&&s.length===1){let m=s[0];return De(m)&&m.points.length===2?g("hints.lockAngle"):Jr(m)?g("hints.resizeImage"):g("hints.resize")}if(a&&l==="mouse")return g("hints.rotate");if(s.length===1&&ie(s[0]))return g("hints.text_selected");if(t.editingElement&&ie(t.editingElement))return g("hints.text_editing");if(n.type==="selection"){if(t.draggingElement?.type==="selection"&&!s.length&&!t.editingElement&&!t.editingLinearElement)return g("hints.deepBoxSelect");if(t.gridSize&&t.draggingElement)return g("hints.disableSnapping");if(!s.length&&!e)return g("hints.canvasPanning");if(s.length===1){if(De(s[0]))return t.editingLinearElement?t.editingLinearElement.selectedPointsIndices?g("hints.lineEditor_pointSelected"):g("hints.lineEditor_nothingSelected"):g("hints.lineEditor_info");if(!t.draggingElement&&wi(s[0]))return g("hints.bindTextToElement")}}return null},lm=({appState:t,isMobile:e,device:o,app:r})=>{let n=IC({appState:t,isMobile:e,device:o,app:r});return n?(n=N(n),(0,Vf.jsx)("div",{className:"HintViewer",children:(0,Vf.jsx)("span",{children:n})})):null};h();var Ql=v(C(),1),_C="medium",QE={CHECKED:jb,UNCHECKED:Zb},sm=t=>(0,Ql.jsxs)("label",{className:F("ToolIcon ToolIcon__lock",`ToolIcon_size_${_C}`,{"is-mobile":t.isMobile}),title:`${t.title} \u2014 Q`,children:[(0,Ql.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,Ql.jsx)("div",{className:"ToolIcon__icon",children:t.checked?QE.CHECKED:QE.UNCHECKED})]});h();h();var ai=v(C(),1),wn=({heading:t,children:e,...o})=>{let{id:r}=Ct(),n=(0,ai.jsx)("h2",{className:"visually-hidden",id:`${r}-${t}-title`,children:g(`headings.${t}`)});return(0,ai.jsx)("section",{...o,"aria-labelledby":`${r}-${t}-title`,children:typeof e=="function"?e(n):(0,ai.jsxs)(ai.Fragment,{children:[n,e]})})};h();var Yo=4,ur=6,ew="rgba(0,0,0,0.3)",tw=(t,e,o,r)=>{if(!t.length)return{horizontal:null,vertical:null};let[n,i,a,l]=Ge(t),c=e/r.zoom.value,s=o/r.zoom.value,m=e-c,d=o-s,p={top:parseInt(Za("sat"))||0,bottom:parseInt(Za("sab"))||0,left:parseInt(Za("sal"))||0,right:parseInt(Za("sar"))||0},u=Pr().rtl,b=-r.scrollX+m/2+p.left,x=-r.scrollY+d/2+p.top,y=b+c-p.right,w=x+s-p.bottom,k=Math.min(n,b),T=Math.min(i,x),I=Math.max(a,y),A=Math.max(l,w);return{horizontal:b===k&&y===I?null:{x:Math.max(p.left,Yo)+(b-k)/(I-k)*e,y:o-ur-Math.max(Yo,p.bottom),width:(y-b)/(I-k)*e-Math.max(Yo*2,p.left+p.right),height:ur},vertical:x===T&&w===A?null:{x:u?Math.max(p.left,Yo):e-ur-Math.max(p.right,Yo),y:(x-T)/(A-T)*o+Math.max(p.top,Yo),width:ur,height:(w-x)/(A-T)*o-Math.max(Yo*2,p.top+p.bottom)}}},Kf=(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 es=v(C(),1),MC="medium",cm=t=>t.penDetected?(0,es.jsxs)("label",{className:F("ToolIcon ToolIcon__penMode",`ToolIcon_size_${MC}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,es.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,es.jsx)("div",{className:"ToolIcon__icon",children:i0})]}):null;h();var pe=v(C(),1),dm=t=>{let e=Ge(t.elements),o=zi(t.elements,t.appState),r=Ge(o);return(0,pe.jsx)("div",{className:"Stats",children:(0,pe.jsxs)(Rt,{padding:2,children:[(0,pe.jsx)("div",{className:"close",onClick:t.onClose,children:wo}),(0,pe.jsx)("h3",{children:g("stats.title")}),(0,pe.jsx)("table",{children:(0,pe.jsxs)("tbody",{children:[(0,pe.jsx)("tr",{children:(0,pe.jsx)("th",{colSpan:2,children:g("stats.scene")})}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.elements")}),(0,pe.jsx)("td",{children:t.elements.length})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.width")}),(0,pe.jsx)("td",{children:Math.round(e[2])-Math.round(e[0])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.height")}),(0,pe.jsx)("td",{children:Math.round(e[3])-Math.round(e[1])})]}),o.length===1&&(0,pe.jsx)("tr",{children:(0,pe.jsx)("th",{colSpan:2,children:g("stats.element")})}),o.length>1&&(0,pe.jsxs)(pe.Fragment,{children:[(0,pe.jsx)("tr",{children:(0,pe.jsx)("th",{colSpan:2,children:g("stats.selected")})}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.elements")}),(0,pe.jsx)("td",{children:o.length})]})]}),o.length>0&&(0,pe.jsxs)(pe.Fragment,{children:[(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:"x"}),(0,pe.jsx)("td",{children:Math.round(r[0])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:"y"}),(0,pe.jsx)("td",{children:Math.round(r[1])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.width")}),(0,pe.jsx)("td",{children:Math.round(r[2]-r[0])})]}),(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.height")}),(0,pe.jsx)("td",{children:Math.round(r[3]-r[1])})]})]}),o.length===1&&(0,pe.jsxs)("tr",{children:[(0,pe.jsx)("td",{children:g("stats.angle")}),(0,pe.jsx)("td",{children:`${Math.round(o[0].angle*180/Math.PI)}\xB0`})]}),t.renderCustomStats?.(t.elements,t.appState)]})})]})})};h();var ow=v(C(),1),mm=t=>(0,ow.jsx)(ae,{className:F("Shape",{fillable:!1}),type:"radio",icon:Cx,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 Be=v(C(),1),rw=({appState:t,elements:e,actionManager:o,setAppState:r,onLockToggle:n,onHandToolToggle:i,onPenModeToggle:a,renderTopRightUI:l,renderCustomStats:c,renderSidebars:s,device:m,renderWelcomeScreen:d,UIOptions:p,app:u})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:x,DefaultSidebarTriggerTunnel:y}=ze(),w=()=>(0,Be.jsxs)(am,{side:"top",className:"App-top-bar",children:[d&&(0,Be.jsx)(b.Out,{}),(0,Be.jsx)(wn,{heading:"shapes",children:T=>(0,Be.jsx)(kt.Col,{gap:4,align:"center",children:(0,Be.jsxs)(kt.Row,{gap:1,className:"App-toolbar-container",children:[(0,Be.jsxs)(Rt,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[T,(0,Be.jsx)(kt.Row,{gap:1,children:(0,Be.jsx)(jd,{appState:t,activeTool:t.activeTool,UIOptions:p,app:u})})]}),l&&l(!0,t),(0,Be.jsxs)("div",{className:"mobile-misc-tools-container",children:[!t.viewModeEnabled&&(0,Be.jsx)(y.Out,{}),(0,Be.jsx)(cm,{checked:t.penMode,onChange:()=>a(null),title:g("toolBar.penMode"),isMobile:!0,penDetected:t.penDetected}),(0,Be.jsx)(sm,{checked:t.activeTool.locked,onChange:n,title:g("toolBar.lock"),isMobile:!0}),(0,Be.jsx)(mm,{checked:Sr(t),onChange:()=>i(),title:g("toolBar.hand"),isMobile:!0})]})]})})}),(0,Be.jsx)(lm,{appState:t,isMobile:!0,device:m,app:u})]}),k=()=>t.viewModeEnabled?(0,Be.jsx)("div",{className:"App-toolbar-content",children:(0,Be.jsx)(x.Out,{})}):(0,Be.jsxs)("div",{className:"App-toolbar-content",children:[(0,Be.jsx)(x.Out,{}),o.renderAction("toggleEditMenu"),o.renderAction("undo"),o.renderAction("redo"),o.renderAction(t.multiElement?"finalize":"duplicateSelection"),o.renderAction("deleteSelectedElements")]});return(0,Be.jsxs)(Be.Fragment,{children:[s(),!t.viewModeEnabled&&w(),!t.openMenu&&t.showStats&&(0,Be.jsx)(dm,{appState:t,setAppState:r,elements:e,onClose:()=>{o.executeAction(xn)},renderCustomStats:c}),(0,Be.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:ur+Yo*2,marginLeft:ur+Yo*2,marginRight:ur+Yo*2},children:(0,Be.jsxs)(Rt,{padding:0,children:[t.openMenu==="shape"&&!t.viewModeEnabled&&$i(t,e)?(0,Be.jsx)(wn,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,Be.jsx)(Zd,{appState:t,elementsMap:u.scene.getNonDeletedElementsMap(),renderAction:o.renderAction})}):null,(0,Be.jsxs)("footer",{className:"App-toolbar",children:[k(),t.scrolledOutside&&!t.openMenu&&!t.openSidebar&&(0,Be.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(T=>({...zn(e,T)}))},children:g("buttons.scrollBackToContent")})]})]})})]})};h();var Cn=v($(),1);var Tn=v(C(),1),nw=t=>{let e=(0,Cn.useRef)(null),[o,r]=(0,Cn.useState)(null);return(0,Cn.useLayoutEffect)(()=>{if(!t.spreadsheet)return;let n=rb(t.chartType,t.spreadsheet,0,0);r(n);let i,a=e.current;return(async()=>(i=await hc(n,{exportBackground:!1,viewBackgroundColor:Qe.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,Tn.jsx)("button",{className:"ChartPreview",onClick:()=>{o&&t.onClick(t.chartType,o)},children:(0,Tn.jsx)("div",{ref:e})})},iw=({setAppState:t,appState:e,onClose:o})=>{let{onInsertElements:r}=So(),n=Cn.default.useCallback(()=>{o&&o()},[o]),i=(a,l)=>{r(l),ge("paste","chart",a),t({currentChartType:a,pasteDialog:{shown:!1,data:null}})};return(0,Tn.jsx)(at,{size:"small",onCloseRequest:n,title:g("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,Tn.jsxs)("div",{className:"container",children:[(0,Tn.jsx)(nw,{chartType:"bar",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="bar",onClick:i}),(0,Tn.jsx)(nw,{chartType:"line",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="line",onClick:i})]})})};h();var aw=v($(),1);var U=v(C(),1),AC=()=>(0,U.jsxs)("div",{className:"HelpDialog__header",children:[(0,U.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.documentation"),(0,U.jsx)("div",{className:"HelpDialog__link-icon",children:$c})]}),(0,U.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.blog"),(0,U.jsx)("div",{className:"HelpDialog__link-icon",children:$c})]}),(0,U.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.github"),(0,U.jsx)("div",{className:"HelpDialog__link-icon",children:$c})]})]}),LC=t=>(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)("h3",{children:t.title}),(0,U.jsx)("div",{className:"HelpDialog__islands-container",children:t.children})]}),Yf=t=>(0,U.jsxs)("div",{className:`HelpDialog__island ${t.className}`,children:[(0,U.jsx)("h4",{className:"HelpDialog__island-title",children:t.caption}),(0,U.jsx)("div",{className:"HelpDialog__island-content",children:t.children})]});function*PC(t,e){let o=!0;for(let r of t)o||(yield e),o=!1,yield r}var DC=t=>t.replace(/\b[a-z]\b/,e=>e.toUpperCase()),X=({label:t,shortcuts:e,isOr:o=!0})=>{let r=e.map(n=>(n.endsWith("++")?[...n.slice(0,-2).split("+"),"+"]:n.split("+")).map(a=>(0,U.jsx)(RC,{children:DC(a)},a)));return(0,U.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,U.jsx)("div",{children:t}),(0,U.jsx)("div",{className:"HelpDialog__key-container",children:[...PC(r,o?g("helpDialog.or"):null)]})]})},RC=t=>(0,U.jsx)("kbd",{className:"HelpDialog__key",...t}),lw=({onClose:t})=>{let e=aw.default.useCallback(()=>{t&&t()},[t]);return(0,U.jsx)(U.Fragment,{children:(0,U.jsxs)(at,{onCloseRequest:e,title:g("helpDialog.title"),className:"HelpDialog",children:[(0,U.jsx)(AC,{}),(0,U.jsxs)(LC,{title:g("helpDialog.shortcuts"),children:[(0,U.jsxs)(Yf,{className:"HelpDialog__island--tools",caption:g("helpDialog.tools"),children:[(0,U.jsx)(X,{label:g("toolBar.hand"),shortcuts:[S.H]}),(0,U.jsx)(X,{label:g("toolBar.selection"),shortcuts:[S.V,S[1]]}),(0,U.jsx)(X,{label:g("toolBar.rectangle"),shortcuts:[S.R,S[2]]}),(0,U.jsx)(X,{label:g("toolBar.diamond"),shortcuts:[S.D,S[3]]}),(0,U.jsx)(X,{label:g("toolBar.ellipse"),shortcuts:[S.O,S[4]]}),(0,U.jsx)(X,{label:g("toolBar.arrow"),shortcuts:[S.A,S[5]]}),(0,U.jsx)(X,{label:g("toolBar.line"),shortcuts:[S.L,S[6]]}),(0,U.jsx)(X,{label:g("toolBar.freedraw"),shortcuts:[S.P,S[7]]}),(0,U.jsx)(X,{label:g("toolBar.text"),shortcuts:[S.T,S[8]]}),(0,U.jsx)(X,{label:g("toolBar.image"),shortcuts:[S[9]]}),(0,U.jsx)(X,{label:g("toolBar.eraser"),shortcuts:[S.E,S[0]]}),(0,U.jsx)(X,{label:g("toolBar.frame"),shortcuts:[S.F]}),(0,U.jsx)(X,{label:g("toolBar.laser"),shortcuts:[S.K]}),(0,U.jsx)(X,{label:g("labels.eyeDropper"),shortcuts:[S.I,"Shift+S","Shift+G"]}),(0,U.jsx)(X,{label:g("helpDialog.editLineArrowPoints"),shortcuts:[N("CtrlOrCmd+Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.editText"),shortcuts:[N("Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.textNewLine"),shortcuts:[N("Enter"),N("Shift+Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.textFinish"),shortcuts:[N("Esc"),N("CtrlOrCmd+Enter")]}),(0,U.jsx)(X,{label:g("helpDialog.curvedArrow"),shortcuts:["A",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,U.jsx)(X,{label:g("helpDialog.curvedLine"),shortcuts:["L",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,U.jsx)(X,{label:g("toolBar.lock"),shortcuts:[S.Q]}),(0,U.jsx)(X,{label:g("helpDialog.preventBinding"),shortcuts:[N("CtrlOrCmd")]}),(0,U.jsx)(X,{label:g("toolBar.link"),shortcuts:[N("CtrlOrCmd+K")]})]}),(0,U.jsxs)(Yf,{className:"HelpDialog__island--view",caption:g("helpDialog.view"),children:[(0,U.jsx)(X,{label:g("buttons.zoomIn"),shortcuts:[N("CtrlOrCmd++")]}),(0,U.jsx)(X,{label:g("buttons.zoomOut"),shortcuts:[N("CtrlOrCmd+-")]}),(0,U.jsx)(X,{label:g("buttons.resetZoom"),shortcuts:[N("CtrlOrCmd+0")]}),(0,U.jsx)(X,{label:g("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,U.jsx)(X,{label:g("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,U.jsx)(X,{label:g("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,U.jsx)(X,{label:g("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,U.jsx)(X,{label:g("buttons.zenMode"),shortcuts:[N("Alt+Z")]}),(0,U.jsx)(X,{label:g("buttons.objectsSnapMode"),shortcuts:[N("Alt+S")]}),(0,U.jsx)(X,{label:g("labels.showGrid"),shortcuts:[N("CtrlOrCmd+'")]}),(0,U.jsx)(X,{label:g("labels.viewMode"),shortcuts:[N("Alt+R")]}),(0,U.jsx)(X,{label:g("labels.toggleTheme"),shortcuts:[N("Alt+Shift+D")]}),(0,U.jsx)(X,{label:g("stats.title"),shortcuts:[N("Alt+/")]})]}),(0,U.jsxs)(Yf,{className:"HelpDialog__island--editor",caption:g("helpDialog.editor"),children:[(0,U.jsx)(X,{label:g("labels.moveCanvas"),shortcuts:[N(`Space+${g("helpDialog.drag")}`),N(`Wheel+${g("helpDialog.drag")}`)],isOr:!0}),(0,U.jsx)(X,{label:g("buttons.clearReset"),shortcuts:[N("CtrlOrCmd+Delete")]}),(0,U.jsx)(X,{label:g("labels.delete"),shortcuts:[N("Delete")]}),(0,U.jsx)(X,{label:g("labels.cut"),shortcuts:[N("CtrlOrCmd+X")]}),(0,U.jsx)(X,{label:g("labels.copy"),shortcuts:[N("CtrlOrCmd+C")]}),(0,U.jsx)(X,{label:g("labels.paste"),shortcuts:[N("CtrlOrCmd+V")]}),(0,U.jsx)(X,{label:g("labels.pasteAsPlaintext"),shortcuts:[N("CtrlOrCmd+Shift+V")]}),(0,U.jsx)(X,{label:g("labels.selectAll"),shortcuts:[N("CtrlOrCmd+A")]}),(0,U.jsx)(X,{label:g("labels.multiSelect"),shortcuts:[N(`Shift+${g("helpDialog.click")}`)]}),(0,U.jsx)(X,{label:g("helpDialog.deepSelect"),shortcuts:[N(`CtrlOrCmd+${g("helpDialog.click")}`)]}),(0,U.jsx)(X,{label:g("helpDialog.deepBoxSelect"),shortcuts:[N(`CtrlOrCmd+${g("helpDialog.drag")}`)]}),(Ni||Yr)&&(0,U.jsx)(X,{label:g("labels.copyAsPng"),shortcuts:[N("Shift+Alt+C")]}),(0,U.jsx)(X,{label:g("labels.copyStyles"),shortcuts:[N("CtrlOrCmd+Alt+C")]}),(0,U.jsx)(X,{label:g("labels.pasteStyles"),shortcuts:[N("CtrlOrCmd+Alt+V")]}),(0,U.jsx)(X,{label:g("labels.sendToBack"),shortcuts:[Oo?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")]}),(0,U.jsx)(X,{label:g("labels.bringToFront"),shortcuts:[Oo?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")]}),(0,U.jsx)(X,{label:g("labels.sendBackward"),shortcuts:[N("CtrlOrCmd+[")]}),(0,U.jsx)(X,{label:g("labels.bringForward"),shortcuts:[N("CtrlOrCmd+]")]}),(0,U.jsx)(X,{label:g("labels.alignTop"),shortcuts:[N("CtrlOrCmd+Shift+Up")]}),(0,U.jsx)(X,{label:g("labels.alignBottom"),shortcuts:[N("CtrlOrCmd+Shift+Down")]}),(0,U.jsx)(X,{label:g("labels.alignLeft"),shortcuts:[N("CtrlOrCmd+Shift+Left")]}),(0,U.jsx)(X,{label:g("labels.alignRight"),shortcuts:[N("CtrlOrCmd+Shift+Right")]}),(0,U.jsx)(X,{label:g("labels.duplicateSelection"),shortcuts:[N("CtrlOrCmd+D"),N(`Alt+${g("helpDialog.drag")}`)]}),(0,U.jsx)(X,{label:g("helpDialog.toggleElementLock"),shortcuts:[N("CtrlOrCmd+Shift+L")]}),(0,U.jsx)(X,{label:g("buttons.undo"),shortcuts:[N("CtrlOrCmd+Z")]}),(0,U.jsx)(X,{label:g("buttons.redo"),shortcuts:ks?[N("CtrlOrCmd+Y"),N("CtrlOrCmd+Shift+Z")]:[N("CtrlOrCmd+Shift+Z")]}),(0,U.jsx)(X,{label:g("labels.group"),shortcuts:[N("CtrlOrCmd+G")]}),(0,U.jsx)(X,{label:g("labels.ungroup"),shortcuts:[N("CtrlOrCmd+Shift+G")]}),(0,U.jsx)(X,{label:g("labels.flipHorizontal"),shortcuts:[N("Shift+H")]}),(0,U.jsx)(X,{label:g("labels.flipVertical"),shortcuts:[N("Shift+V")]}),(0,U.jsx)(X,{label:g("labels.showStroke"),shortcuts:[N("S")]}),(0,U.jsx)(X,{label:g("labels.showBackground"),shortcuts:[N("G")]}),(0,U.jsx)(X,{label:g("labels.decreaseFontSize"),shortcuts:[N("CtrlOrCmd+Shift+<")]}),(0,U.jsx)(X,{label:g("labels.increaseFontSize"),shortcuts:[N("CtrlOrCmd+Shift+>")]})]})]})]})})};h();var um=v($(),1);var zt=v(C(),1),Zf=3,NC=8,OC=({shouldWrap:t,children:e,clientId:o,username:r})=>t?(0,zt.jsx)(co,{label:r||"Unknown user",children:e},o):(0,zt.jsx)(um.default.Fragment,{children:e},o),jf=({actionManager:t,collaborator:e,clientId:o,withName:r=!1,shouldWrapWithTooltip:n=!1,isBeingFollowed:i})=>{let a={clientId:o,collaborator:e,withName:r,isBeingFollowed:i},l=t.renderAction("goToCollaborator",a);return(0,zt.jsx)(OC,{clientId:o,username:e.username,shouldWrap:n,children:l},o)},BC=["avatarUrl","id","socketId","username"],pm=um.default.memo(({className:t,mobile:e,collaborators:o,userToFollow:r})=>{let n=Nt(),i=new Map;o.forEach((u,b)=>{let x=u.id||b;i.set(x,{...u,socketId:b})});let a=Array.from(i).filter(([u,b])=>b.username?.trim()),[l,c]=um.default.useState("");if(a.length===0)return null;let m=l.trim().toLowerCase()?a.filter(([,u])=>u.username?.toLowerCase().includes(l)):a,p=a.slice(0,Zf).map(([u,b])=>jf({actionManager:n,collaborator:b,clientId:u,shouldWrapWithTooltip:!0,isBeingFollowed:b.socketId===r}));return e?(0,zt.jsx)("div",{className:F("UserList UserList_mobile",t),children:a.map(([u,b])=>jf({actionManager:n,collaborator:b,clientId:u,shouldWrapWithTooltip:!0,isBeingFollowed:b.socketId===r}))}):(0,zt.jsxs)("div",{className:F("UserList",t),children:[p,a.length>Zf&&(0,zt.jsxs)(pd,{onOpenChange:u=>{u||c("")},children:[(0,zt.jsxs)(fd,{className:"UserList__more",children:["+",a.length-Zf]}),(0,zt.jsx)(hd,{style:{zIndex:2,width:"13rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,zt.jsxs)(Rt,{style:{overflow:"hidden"},children:[a.length>=NC&&(0,zt.jsxs)("div",{className:"UserList__search-wrapper",children:[Rx,(0,zt.jsx)("input",{className:"UserList__search",type:"text",placeholder:g("userList.search.placeholder"),value:l,onChange:u=>{c(u.target.value)}})]}),(0,zt.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[m.length===0&&(0,zt.jsx)("div",{className:"UserList__collaborators__empty",children:g("userList.search.empty")}),(0,zt.jsx)("div",{className:"UserList__hint",children:g("userList.hint.text")}),m.map(([u,b])=>jf({actionManager:n,collaborator:b,clientId:u,withName:!0,isBeingFollowed:b.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;for(let[o,r]of t.collaborators){let n=e.collaborators.get(o);if(!n||!Mt(r,n,BC))return!1}return!0});h();var cw=v($(),1);h();var sw=v(C(),1),Xf=({children:t,color:e})=>(0,sw.jsx)("div",{className:"Card",style:{"--card-color":e==="primary"?"var(--color-primary)":Qe[e][7],"--card-color-darker":e==="primary"?"var(--color-primary-darker)":Qe[e][8],"--card-color-darkest":e==="primary"?"var(--color-primary-darkest)":Qe[e][9]},children:t});var Tt=v(C(),1),FC=({elements:t,appState:e,setAppState:o,files:r,actionManager:n,exportOpts:i,canvas:a,onCloseRequest:l})=>{let{onExportToBackend:c}=i;return(0,Tt.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,Tt.jsxs)("div",{className:"ExportDialog-cards",children:[i.saveFileToDisk&&(0,Tt.jsxs)(Xf,{color:"lime",children:[(0,Tt.jsx)("div",{className:"Card-icon",children:T0}),(0,Tt.jsx)("h2",{children:g("exportDialog.disk_title")}),(0,Tt.jsxs)("div",{className:"Card-details",children:[g("exportDialog.disk_details"),!Di&&n.renderAction("changeProjectName")]}),(0,Tt.jsx)(ae,{className:"Card-button",type:"button",title:g("exportDialog.disk_button"),"aria-label":g("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{n.executeAction(Hl,"ui")}})]}),c&&(0,Tt.jsxs)(Xf,{color:"pink",children:[(0,Tt.jsx)("div",{className:"Card-icon",children:Hc}),(0,Tt.jsx)("h2",{children:g("exportDialog.link_title")}),(0,Tt.jsx)("div",{className:"Card-details",children:g("exportDialog.link_details")}),(0,Tt.jsx)(ae,{className:"Card-button",type:"button",title:g("exportDialog.link_button"),"aria-label":g("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{ge("export","link",`ui (${Fg()})`),await c(t,e,r),l()}catch(s){o({errorMessage:s.message})}}})]}),i.renderCustomUI&&i.renderCustomUI(t,e,r,a)]})})},dw=({elements:t,appState:e,files:o,actionManager:r,exportOpts:n,canvas:i,setAppState:a})=>{let l=cw.default.useCallback(()=>{a({openDialog:null})},[a]);return(0,Tt.jsx)(Tt.Fragment,{children:e.openDialog?.name==="jsonExport"&&(0,Tt.jsx)(at,{onCloseRequest:l,title:g("buttons.export"),children:(0,Tt.jsx)(FC,{elements:t,appState:e,setAppState:a,files:o,actionManager:r,onCloseRequest:l,exportOpts:n,canvas:i})})})};h();h();var uw=v(C(),1),mw=t=>(0,uw.jsx)("button",{className:"help-icon",onClick:t.onClick,type:"button",title:`${g("helpDialog.title")} \u2014 ?`,"aria-label":g("helpDialog.title"),children:Ki});var Qt=v(C(),1),pw=({appState:t,actionManager:e,showExitZenModeBtn:o,renderWelcomeScreen:r})=>{let{FooterCenterTunnel:n,WelcomeScreenHelpHintTunnel:i}=ze(),a=Ie(),l=!t.viewModeEnabled&&t.multiElement&&a.isTouchScreen;return(0,Qt.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,Qt.jsx)("div",{className:F("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled}),children:(0,Qt.jsx)(kt.Col,{gap:2,children:(0,Qt.jsxs)(wn,{heading:"canvasActions",children:[(0,Qt.jsx)(IE,{renderAction:e.renderAction,zoom:t.zoom}),!t.viewModeEnabled&&(0,Qt.jsx)(_E,{renderAction:e.renderAction,className:F("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":t.zenModeEnabled})}),l&&(0,Qt.jsx)(AE,{renderAction:e.renderAction,className:F("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled})})]})})}),(0,Qt.jsx)(n.Out,{}),(0,Qt.jsx)("div",{className:F("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:(0,Qt.jsxs)("div",{style:{position:"relative"},children:[r&&(0,Qt.jsx)(i.Out,{}),(0,Qt.jsx)(mw,{onClick:()=>e.executeAction(Jn)})]})}),(0,Qt.jsx)(ME,{actionManager:e,showExitZenModeBtn:o})]})},fw=pw;pw.displayName="Footer";h();var vt=v($(),1);h();var hw=v($(),1),fm=hw.default.createContext({});h();var bw=v($(),1);h();var gw=v(C(),1),pr=({type:t="button",onSelect:e,selected:o,children:r,className:n="",...i})=>(0,gw.jsx)("button",{onClick:qr(i.onClick,a=>{e()}),type:t,className:F("excalidraw-button",n,{selected:o}),...i,children:r});var li=v(C(),1),qf=({children:t,className:e})=>{let o=Ie(),r=(0,bw.useContext)(fm),n=!!(o.editor.canFitSidebar&&r.shouldRenderDockButton);return(0,li.jsxs)("div",{className:F("sidebar__header",e),"data-testid":"sidebar-header",children:[t,(0,li.jsxs)("div",{className:"sidebar__header__buttons",children:[n&&(0,li.jsx)(co,{label:g("labels.sidebarLock"),children:(0,li.jsx)(pr,{onSelect:()=>r.onDock?.(!r.docked),selected:!!r.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":g("labels.sidebarLock"),children:Yb})}),(0,li.jsx)(pr,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:r.onCloseRequest,"aria-label":g("buttons.close"),children:wo})]})]})};qf.displayName="SidebarHeader";h();var si=v(C(),1),Jf=({name:t,tab:e,icon:o,title:r,children:n,onToggle:i,className:a,style:l})=>{let c=Fe(),s=Le();return(0,si.jsxs)("label",{title:r,className:"sidebar-trigger__label-element",children:[(0,si.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:m=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let d=m.target.checked;c({openSidebar:d?{name:t,tab:e}:null}),i?.(d)},checked:s.openSidebar?.name===t,"aria-label":r,"aria-keyshortcuts":"0"}),(0,si.jsxs)("div",{className:F("sidebar-trigger",a),style:l,children:[o&&(0,si.jsx)("div",{children:o}),n&&(0,si.jsx)("div",{className:"sidebar-trigger__label",children:n})]})]})};Jf.displayName="SidebarTrigger";h();h();var It=v($());h();var Ue=v($());h();var Zo=v($());function xw(t){let e=t+"CollectionProvider",[o,r]=lr(e),[n,i]=o(e,{collectionRef:{current:null},itemMap:new Map}),a=u=>{let{scope:b,children:x}=u,y=Zo.default.useRef(null),w=Zo.default.useRef(new Map).current;return Zo.default.createElement(n,{scope:b,itemMap:w,collectionRef:y},x)},l=t+"CollectionSlot",c=Zo.default.forwardRef((u,b)=>{let{scope:x,children:y}=u,w=i(l,x),k=Pt(b,w.collectionRef);return Zo.default.createElement(dn,{ref:k},y)}),s=t+"CollectionItemSlot",m="data-radix-collection-item",d=Zo.default.forwardRef((u,b)=>{let{scope:x,children:y,...w}=u,k=Zo.default.useRef(null),T=Pt(b,k),I=i(s,x);return Zo.default.useEffect(()=>(I.itemMap.set(k,{ref:k,...w}),()=>void I.itemMap.delete(k))),Zo.default.createElement(dn,{[m]:"",ref:T},y)});function p(u){let b=i(t+"CollectionConsumer",u);return Zo.default.useCallback(()=>{let y=b.collectionRef.current;if(!y)return[];let w=Array.from(y.querySelectorAll(`[${m}]`));return Array.from(b.itemMap.values()).sort((I,A)=>w.indexOf(I.ref.current)-w.indexOf(A.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:d},p,r]}h();var ts=v($()),$C=(0,ts.createContext)(void 0);function hm(t){let e=(0,ts.useContext)($C);return t||e||"ltr"}var Qf="rovingFocusGroup.onEntryFocus",HC={bubbles:!1,cancelable:!0},th="RovingFocusGroup",[eh,vw,zC]=xw(th),[UC,oh]=lr(th,[zC]),[WC,GC]=UC(th),VC=(0,Ue.forwardRef)((t,e)=>(0,Ue.createElement)(eh.Provider,{scope:t.__scopeRovingFocusGroup},(0,Ue.createElement)(eh.Slot,{scope:t.__scopeRovingFocusGroup},(0,Ue.createElement)(KC,be({},t,{ref:e}))))),KC=(0,Ue.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,orientation:r,loop:n=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:s,...m}=t,d=(0,Ue.useRef)(null),p=Pt(e,d),u=hm(i),[b=null,x]=la({prop:a,defaultProp:l,onChange:c}),[y,w]=(0,Ue.useState)(!1),k=jt(s),T=vw(o),I=(0,Ue.useRef)(!1),[A,_]=(0,Ue.useState)(0);return(0,Ue.useEffect)(()=>{let M=d.current;if(M)return M.addEventListener(Qf,k),()=>M.removeEventListener(Qf,k)},[k]),(0,Ue.createElement)(WC,{scope:o,orientation:r,dir:u,loop:n,currentTabStopId:b,onItemFocus:(0,Ue.useCallback)(M=>x(M),[x]),onItemShiftTab:(0,Ue.useCallback)(()=>w(!0),[]),onFocusableItemAdd:(0,Ue.useCallback)(()=>_(M=>M+1),[]),onFocusableItemRemove:(0,Ue.useCallback)(()=>_(M=>M-1),[])},(0,Ue.createElement)(it.div,be({tabIndex:y||A===0?-1:0,"data-orientation":r},m,{ref:p,style:{outline:"none",...t.style},onMouseDown:bt(t.onMouseDown,()=>{I.current=!0}),onFocus:bt(t.onFocus,M=>{let L=!I.current;if(M.target===M.currentTarget&&L&&!y){let W=new CustomEvent(Qf,HC);if(M.currentTarget.dispatchEvent(W),!W.defaultPrevented){let B=T().filter(Q=>Q.focusable),Y=B.find(Q=>Q.active),O=B.find(Q=>Q.id===b),ne=[Y,O,...B].filter(Boolean).map(Q=>Q.ref.current);yw(ne)}}I.current=!1}),onBlur:bt(t.onBlur,()=>w(!1))})))}),YC="RovingFocusGroupItem",ZC=(0,Ue.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,focusable:r=!0,active:n=!1,tabStopId:i,...a}=t,l=ra(),c=i||l,s=GC(YC,o),m=s.currentTabStopId===c,d=vw(o),{onFocusableItemAdd:p,onFocusableItemRemove:u}=s;return(0,Ue.useEffect)(()=>{if(r)return p(),()=>u()},[r,p,u]),(0,Ue.createElement)(eh.ItemSlot,{scope:o,id:c,focusable:r,active:n},(0,Ue.createElement)(it.span,be({tabIndex:m?0:-1,"data-orientation":s.orientation},a,{ref:e,onMouseDown:bt(t.onMouseDown,b=>{r?s.onItemFocus(c):b.preventDefault()}),onFocus:bt(t.onFocus,()=>s.onItemFocus(c)),onKeyDown:bt(t.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){s.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let x=qC(b,s.orientation,s.dir);if(x!==void 0){b.preventDefault();let w=d().filter(k=>k.focusable).map(k=>k.ref.current);if(x==="last")w.reverse();else if(x==="prev"||x==="next"){x==="prev"&&w.reverse();let k=w.indexOf(b.currentTarget);w=s.loop?JC(w,k+1):w.slice(k+1)}setTimeout(()=>yw(w))}})})))}),jC={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function XC(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function qC(t,e,o){let r=XC(t.key,o);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return jC[r]}function yw(t){let e=document.activeElement;for(let o of t)if(o===e||(o.focus(),document.activeElement!==e))return}function JC(t,e){return t.map((o,r)=>t[(e+r)%t.length])}var Ew=VC,ww=ZC;var Tw="Tabs",[QC,Mj]=lr(Tw,[oh]),Cw=oh(),[eS,rh]=QC(Tw),tS=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,onValueChange:n,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:c="automatic",...s}=t,m=hm(l),[d,p]=la({prop:r,onChange:n,defaultProp:i});return(0,It.createElement)(eS,{scope:o,baseId:ra(),value:d,onValueChange:p,orientation:a,dir:m,activationMode:c},(0,It.createElement)(it.div,be({dir:m,"data-orientation":a},s,{ref:e})))}),oS="TabsList",rS=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,loop:r=!0,...n}=t,i=rh(oS,o),a=Cw(o);return(0,It.createElement)(Ew,be({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),(0,It.createElement)(it.div,be({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),nS="TabsTrigger",iS=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,disabled:n=!1,...i}=t,a=rh(nS,o),l=Cw(o),c=Sw(a.baseId,r),s=kw(a.baseId,r),m=r===a.value;return(0,It.createElement)(ww,be({asChild:!0},l,{focusable:!n,active:m}),(0,It.createElement)(it.button,be({type:"button",role:"tab","aria-selected":m,"aria-controls":s,"data-state":m?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:c},i,{ref:e,onMouseDown:bt(t.onMouseDown,d=>{!n&&d.button===0&&d.ctrlKey===!1?a.onValueChange(r):d.preventDefault()}),onKeyDown:bt(t.onKeyDown,d=>{[" ","Enter"].includes(d.key)&&a.onValueChange(r)}),onFocus:bt(t.onFocus,()=>{let d=a.activationMode!=="manual";!m&&!n&&d&&a.onValueChange(r)})})))}),aS="TabsContent",lS=(0,It.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,forceMount:n,children:i,...a}=t,l=rh(aS,o),c=Sw(l.baseId,r),s=kw(l.baseId,r),m=r===l.value,d=(0,It.useRef)(m);return(0,It.useEffect)(()=>{let p=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(p)},[]),(0,It.createElement)(aa,{present:n||m},({present:p})=>(0,It.createElement)(it.div,be({"data-state":m?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":c,hidden:!p,id:s,tabIndex:0},a,{ref:e,style:{...t.style,animationDuration:d.current?"0s":void 0}}),p&&i))});function Sw(t,e){return`${t}-trigger-${e}`}function kw(t,e){return`${t}-content-${e}`}var gm=tS,bm=rS,xm=iS,vm=lS;var Iw=v(C(),1),nh=({children:t,...e})=>(0,Iw.jsx)(bm,{className:"sidebar-triggers",...e,children:t});nh.displayName="SidebarTabTriggers";h();var ih=v(C(),1),ah=({children:t,tab:e,onSelect:o,...r})=>(0,ih.jsx)(xm,{value:e,asChild:!0,onSelect:o,children:(0,ih.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...r,children:t})});ah.displayName="SidebarTabTrigger";h();var _w=v(C(),1),lh=({children:t,...e})=>{let o=Le(),r=Fe();if(!o.openSidebar)return null;let{name:n}=o.openSidebar;return(0,_w.jsx)(gm,{className:"sidebar-tabs-root",value:o.openSidebar.tab,onValueChange:i=>r(a=>({...a,openSidebar:{...a.openSidebar,name:n,tab:i}})),...e,children:t})};lh.displayName="SidebarTabs";h();var Mw=v(C(),1),sh=({tab:t,children:e,...o})=>(0,Mw.jsx)(vm,{...o,value:t,children:e});sh.displayName="SidebarTab";var ch=v(C(),1),Lw=v($(),1),os=Ve(!1),Aw=(0,vt.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=Fe(),c=Lr(os,Ae);(0,vt.useLayoutEffect)(()=>(c(!!r),()=>{c(!1)}),[c,r]);let s=(0,vt.useRef)({});s.current.onCloseRequest=()=>{l({openSidebar:null})},s.current.onDock=u=>o?.(u),s.current=xi(s.current,{docked:r,shouldRenderDockButton:!!o&&r!=null});let m=(0,vt.useRef)(null);(0,vt.useImperativeHandle)(a,()=>m.current);let d=Ie(),p=(0,vt.useCallback)(()=>{document.querySelector(".Dialog")||l({openSidebar:null})},[l]);return ua(m,(0,vt.useCallback)(u=>{u.target.closest(".sidebar-trigger")||(!r||!d.editor.canFitSidebar)&&p()},[p,r,d.editor.canFitSidebar])),(0,vt.useEffect)(()=>{let u=b=>{b.key===S.ESCAPE&&(!r||!d.editor.canFitSidebar)&&p()};return document.addEventListener("keydown",u),()=>{document.removeEventListener("keydown",u)}},[p,r,d.editor.canFitSidebar]),(0,ch.jsx)(Rt,{...i,className:F("sidebar",{"sidebar--docked":r},n),ref:m,children:(0,ch.jsx)(fm.Provider,{value:s.current,children:e})})});Aw.displayName="SidebarInner";var Ur=Object.assign((0,vt.forwardRef)((t,e)=>{let o=Le(),{onStateChange:r}=t,n=(0,vt.useRef)(o.openSidebar);(0,vt.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,vt.useState)(!1);return(0,vt.useLayoutEffect)(()=>(a(!0),()=>a(!1)),[]),i&&o.openSidebar?.name===t.name?(0,Lw.createElement)(Aw,{...t,ref:e,key:t.name}):null}),{Header:qf,TabTriggers:nh,TabTrigger:ah,Tabs:lh,Tab:sh,Trigger:Jf});Ur.displayName="Sidebar";h();var mh={};g5(mh,{ChangeCanvasBackground:()=>Hw,ClearCanvas:()=>Fw,Export:()=>zw,Help:()=>Bw,LiveCollaborationTrigger:()=>Ww,LoadScene:()=>Rw,SaveAsImage:()=>Ow,SaveToActiveFile:()=>Nw,Socials:()=>Uw,ToggleTheme:()=>$w});h();h();var ym=v(C(),1),rs=Ve(null),Pw=()=>{let[t,e]=Te(rs,Ae),o=Nt();return t&&t==="clearCanvas"?(0,ym.jsx)(Qd,{onConfirm:()=>{o.executeAction(Ol),e(null)},onCancel:()=>e(null),title:g("clearCanvasDialog.title"),children:(0,ym.jsxs)("p",{className:"clear-canvas__content",children:[" ",g("alerts.clearReset")]})}):null};h();var dh=Ve({active:!1});async function Dw({title:t,description:e,actionLabel:o,color:r}){return new Promise(n=>{oo.set(dh,{active:!0,onConfirm:()=>n(!0),onClose:()=>n(!1),onReject:()=>n(!1),title:t,description:e,actionLabel:o,color:r})})}var lt=v(C(),1),Rw=()=>{let{t}=wt(),e=Nt(),o=hn();return e.isActionEnabled(ha)?(0,lt.jsx)(Vo,{icon:Yi,onSelect:async()=>{(!o.length||await Dw({title:t("overwriteConfirm.modal.loadFromFile.title"),actionLabel:t("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,lt.jsx)(Jt,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:n=>(0,lt.jsx)("strong",{children:n}),br:()=>(0,lt.jsx)("br",{})})}))&&e.executeAction(ha)},"data-testid":"load-button",shortcut:$r("loadScene"),"aria-label":t("buttons.load"),children:t("buttons.load")}):null};Rw.displayName="LoadScene";var Nw=()=>{let{t}=wt(),e=Nt();return e.isActionEnabled(Cd)?(0,lt.jsx)(Vo,{shortcut:$r("saveScene"),"data-testid":"save-button",onSelect:()=>e.executeAction(Cd),icon:v0,"aria-label":`${t("buttons.save")}`,children:`${t("buttons.save")}`}):null};Nw.displayName="SaveToActiveFile";var Ow=()=>{let t=Fe(),{t:e}=wt();return(0,lt.jsx)(Vo,{icon:w0,"data-testid":"image-export-button",onSelect:()=>t({openDialog:{name:"imageExport"}}),shortcut:$r("imageExport"),"aria-label":e("buttons.exportImage"),children:e("buttons.exportImage")})};Ow.displayName="SaveAsImage";var Bw=()=>{let{t}=wt(),e=Nt();return(0,lt.jsx)(Vo,{"data-testid":"help-menu-item",icon:Ki,onSelect:()=>e.executeAction(Jn),shortcut:"?","aria-label":t("helpDialog.title"),children:t("helpDialog.title")})};Bw.displayName="Help";var Fw=()=>{let{t}=wt(),e=Lr(rs,Ae);return Nt().isActionEnabled(Ol)?(0,lt.jsx)(Vo,{icon:ln,onSelect:()=>e("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":t("buttons.clearReset"),children:t("buttons.clearReset")}):null};Fw.displayName="ClearCanvas";var $w=()=>{let{t}=wt(),e=Le(),o=Nt();return o.isActionEnabled(wd)?(0,lt.jsx)(Vo,{onSelect:r=>(r.preventDefault(),o.executeAction(wd)),icon:e.theme==="dark"?f0:p0,"data-testid":"toggle-dark-mode",shortcut:$r("toggleTheme"),"aria-label":e.theme==="dark"?t("buttons.lightMode"):t("buttons.darkMode"),children:e.theme==="dark"?t("buttons.lightMode"):t("buttons.darkMode")}):null};$w.displayName="ToggleTheme";var Hw=()=>{let{t}=wt(),e=Le(),o=Nt(),r=va();return e.viewModeEnabled||!r.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,lt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,lt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:t("labels.canvasBackground")}),(0,lt.jsx)("div",{style:{padding:"0 0.625rem"},children:o.renderAction("changeViewBackgroundColor")})]})};Hw.displayName="ChangeCanvasBackground";var zw=()=>{let{t}=wt(),e=Fe();return(0,lt.jsx)(Vo,{icon:Fc,onSelect:()=>{e({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":t("buttons.export"),children:t("buttons.export")})};zw.displayName="Export";var Uw=()=>{let{t}=wt();return(0,lt.jsxs)(lt.Fragment,{children:[(0,lt.jsx)(Ta,{icon:h0,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,lt.jsx)(Ta,{icon:b0,href:"https://x.com/excalidraw","aria-label":"X",children:t("labels.followUs")}),(0,lt.jsx)(Ta,{icon:g0,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:t("labels.discordChat")})]})};Uw.displayName="Socials";var Ww=({onSelect:t,isCollaborating:e})=>{let{t:o}=wt();return(0,lt.jsx)(Vo,{"data-testid":"collab-button",icon:zc,className:F({"active-collab":e}),onSelect:t,children:o("labels.liveCollaboration")})};Ww.displayName="LiveCollaborationTrigger";h();var Em=v($(),1);var Gw=v(C(),1),Wr=(t,e)=>{let o=Ve(0),r=n=>{let{jotaiScope:i}=ze(),[,a]=Te(o,i),l=(0,Em.useRef)({preferHost:!1,counter:0});return(0,Em.useLayoutEffect)(()=>{let c=l.current;return a(s=>{let m=s+1;return c.counter=m,m}),()=>{a(s=>{let m=s-1;return c.counter=m,m||(c.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,Gw.jsx)(e,{...n})};return r.displayName=t,r};var Gr=v(C(),1),sS=Object.assign(Wr("MainMenu",({children:t,onSelect:e})=>{let{MainMenuTunnel:o}=ze(),r=Ie(),n=Le(),i=Fe(),a=r.editor.isMobile?void 0:()=>i({openMenu:null});return(0,Gr.jsx)(o.In,{children:(0,Gr.jsxs)(Me,{open:n.openMenu==="canvas",children:[(0,Gr.jsx)(Me.Trigger,{onToggle:()=>{i({openMenu:n.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:Bc}),(0,Gr.jsxs)(Me.Content,{onClickOutside:a,onSelect:qr(e,()=>{i({openMenu:null})}),children:[t,r.editor.isMobile&&n.collaborators.size>0&&(0,Gr.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,Gr.jsx)("legend",{children:g("labels.collaborators")}),(0,Gr.jsx)(pm,{mobile:!0,collaborators:n.collaborators,userToFollow:n.userToFollow?.socketId||null})]})]})]})})}),{Trigger:Me.Trigger,Item:Me.Item,ItemLink:Me.ItemLink,ItemCustom:Me.ItemCustom,Group:Me.Group,Separator:Me.Separator,DefaultItems:mh}),eo=sS;h();h();var Vr=v(C(),1),wm=({title:t,children:e,actionLabel:o,onClick:r})=>(0,Vr.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Vr.jsx)("h4",{children:t}),(0,Vr.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:e}),(0,Vr.jsx)(mr,{variant:"outlined",color:"muted",label:o,size:"large",fullWidth:!0,onClick:r})]}),cS=()=>{let{t}=wt(),e=Nt(),o=Fe();return(0,Vr.jsx)(wm,{title:t("overwriteConfirm.action.exportToImage.title"),actionLabel:t("overwriteConfirm.action.exportToImage.button"),onClick:()=>{e.executeAction(Td,"ui",!0),o({openDialog:{name:"imageExport"}})},children:t("overwriteConfirm.action.exportToImage.description")})},dS=()=>{let{t}=wt(),e=Nt();return(0,Vr.jsx)(wm,{title:t("overwriteConfirm.action.saveToDisk.title"),actionLabel:t("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{e.executeAction(Hl,"ui")},children:t("overwriteConfirm.action.saveToDisk.description")})},uh=Object.assign(({children:t})=>(0,Vr.jsx)("div",{className:"OverwriteConfirm__Actions",children:t}),{ExportToImage:cS,SaveToDisk:dS});var Ao=v(C(),1),Tm=Object.assign(Wr("OverwriteConfirmDialog",({children:t})=>{let{OverwriteConfirmDialogTunnel:e}=ze(),[o,r]=Te(dh,Ae);if(!o.active)return null;let n=()=>{o.onClose(),r(a=>({...a,active:!1}))},i=()=>{o.onConfirm(),r(a=>({...a,active:!1}))};return(0,Ao.jsx)(e.In,{children:(0,Ao.jsx)(at,{onCloseRequest:n,title:!1,size:916,children:(0,Ao.jsxs)("div",{className:"OverwriteConfirm",children:[(0,Ao.jsx)("h3",{children:o.title}),(0,Ao.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${o.color}`,children:[(0,Ao.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:kx}),(0,Ao.jsx)("div",{children:o.description}),(0,Ao.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,Ao.jsx)(mr,{color:o.color,size:"large",label:o.actionLabel,onClick:i})]}),(0,Ao.jsx)(uh,{children:t})]})})})}),{Actions:uh,Action:wm});h();var Lo=v(C(),1),Yw=v($(),1),Vw=Wr("DefaultSidebarTrigger",t=>{let{DefaultSidebarTriggerTunnel:e}=ze();return(0,Lo.jsx)(e.In,{children:(0,Lo.jsx)(Ur.Trigger,{...t,className:"default-sidebar-trigger",name:Xr.name})})});Vw.displayName="DefaultSidebarTrigger";var Kw=({children:t,...e})=>{let{DefaultSidebarTabTriggersTunnel:o}=ze();return(0,Lo.jsx)(o.In,{children:(0,Lo.jsx)(Ur.TabTriggers,{...e,children:t})})};Kw.displayName="DefaultTabTriggers";var Cm=Object.assign(Wr("DefaultSidebar",({children:t,className:e,onDock:o,docked:r,...n})=>{let i=Le(),a=Fe(),{DefaultSidebarTabTriggersTunnel:l}=ze();return(0,Yw.createElement)(Ur,{...n,name:"default",key:"default",className:F("default-sidebar",e),docked:r??i.defaultSidebarDockedPreference,onDock:o===!1||!o&&r!=null?void 0:qr(o,c=>{a({defaultSidebarDockedPreference:c})})},(0,Lo.jsxs)(Ur.Tabs,{children:[(0,Lo.jsxs)(Ur.Header,{children:[n.__fallback&&(0,Lo.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,Lo.jsx)(l.Out,{})]}),(0,Lo.jsx)(Ur.Tab,{tab:Ns,children:(0,Lo.jsx)(ZE,{})}),t]}))}),{Trigger:Vw,TabTriggers:Kw});h();var ns=v(C(),1),mS="small",Zw=t=>(0,ns.jsxs)("label",{className:F("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${mS}`,{"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,"data-testid":"toolbar-LaserPointer"}),(0,ns.jsx)("div",{className:"ToolIcon__icon",children:Wc})]});h();var fh=v($(),1);h();var fr=v($(),1);var ci=v(C(),1),jw=(0,fr.forwardRef)(({onChange:t,label:e,fullWidth:o,placeholder:r,readonly:n,selectOnRender:i,onKeyDown:a,isRedacted:l=!1,...c},s)=>{let m=(0,fr.useRef)(null);(0,fr.useImperativeHandle)(s,()=>m.current),(0,fr.useLayoutEffect)(()=>{i&&m.current?.select()},[i]);let[d,p]=(0,fr.useState)(!1);return(0,ci.jsxs)("div",{className:F("ExcTextField",{"ExcTextField--fullWidth":o}),onClick:()=>{m.current?.focus()},children:[(0,ci.jsx)("div",{className:"ExcTextField__label",children:e}),(0,ci.jsxs)("div",{className:F("ExcTextField__input",{"ExcTextField__input--readonly":n}),children:[(0,ci.jsx)("input",{className:F({"is-redacted":"value"in c&&c.value&&l&&!d}),readOnly:n,value:"value"in c?c.value:void 0,defaultValue:"defaultValue"in c?c.defaultValue:void 0,placeholder:r,ref:m,onChange:u=>t?.(u.target.value),onKeyDown:a}),l&&(0,ci.jsx)(pr,{onSelect:()=>p(!d),style:{border:0,userSelect:"none"},children:d?Px:Gc})]})]})});h();var Xw=v(C(),1),Pa=({icon:t})=>(0,Xw.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:t});h();var qw=v(C(),1),Da=t=>(0,qw.jsx)("p",{className:"excalidraw__paragraph",style:t.style,children:t.children});h();var ph=v($(),1);var Qw=v(C(),1),Jw=t=>{let e=Fe(),o=(0,ph.useRef)(null),r=(0,ph.useRef)(0);return(0,Qw.jsx)(gm,{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"&&mu(["text-to-diagram","diagram-to-code"],n)?e({openDialog:{name:t.dialog,tab:n,source:"settings"}}):t.dialog==="ttd"&&mu(["text-to-diagram","mermaid"],n)&&e({openDialog:{name:t.dialog,tab:n}})},children:t.children})};Jw.displayName="TTDDialogTabs";var Sm=Jw;h();var e3=v(C(),1),Ra=({tab:t,children:e,...o})=>(0,e3.jsx)(vm,{...o,value:t,children:e});Ra.displayName="TTDDialogTab";var ht=v(C(),1),t3=t=>{let[e,o]=(0,fh.useState)(t.openAIKey||""),[r,n]=(0,fh.useState)(t.isPersisted),i=Le(),a=()=>{t.onConfirm(e.trim(),r)};return i.openDialog?.name!=="settings"?null:(0,ht.jsx)(at,{onCloseRequest:()=>{t.onClose(),t.onConfirm(e.trim(),r)},title:(0,ht.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,ht.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.1rem 0.5rem",marginLeft:"1rem",fontSize:14,borderRadius:"12px",color:"#000",background:"pink"},children:"Experimental"})]}),className:"MagicSettings",autofocus:!1,children:(0,ht.jsx)(Sm,{dialog:"settings",tab:i.openDialog.tab,children:(0,ht.jsxs)(Ra,{tab:"diagram-to-code",children:[(0,ht.jsxs)(Da,{children:["For the diagram-to-code feature we use"," ",(0,ht.jsx)(Pa,{icon:El}),"OpenAI."]}),(0,ht.jsxs)(Da,{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,ht.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,ht.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,ht.jsx)(Da,{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,ht.jsx)(jw,{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,ht.jsx)(Da,{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,ht.jsx)(qn,{checked:r,onChange:n,children:"Persist API key in browser storage"}),(0,ht.jsxs)(Da,{children:["Once API key is set, you can use the ",(0,ht.jsx)(Pa,{icon:ji})," ","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,ht.jsx)("b",{children:"AI Settings"})," ",(0,ht.jsx)(Pa,{icon:El}),"."]}),(0,ht.jsx)(mr,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:a})]})})})};h();h();var jo=v($(),1);h();var uS=({canvasRef:t,setError:e})=>{let o=t.current;if(!o)return;let r=o.parentElement;r&&(r.style.background="",e(null),o.replaceChildren())},km=async({canvasRef:t,mermaidToExcalidrawLib:e,mermaidDefinition:o,setError:r,data:n})=>{let i=t.current,a=i?.parentElement;if(!(!i||!a)){if(!o){uS({canvasRef:t,setError:r});return}try{let l=await e.api,c;try{c=await l.parseMermaidToExcalidraw(o,{fontSize:xr})}catch{c=await l.parseMermaidToExcalidraw(o.replace(/"/g,"'"),{fontSize:xr})}let{elements:s,files:m}=c;r(null),n.current={elements:as(s,{regenerateIds:!0}),files:m};let d=await $n({elements:n.current.elements,files:n.current.files,exportPadding:jr,maxWidthOrHeight:Math.max(a.offsetWidth,a.offsetHeight)*window.devicePixelRatio});try{await _r(d)}catch(p){throw p.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):p}a.style.background="var(--default-bg-color)",i.replaceChildren(d)}catch(l){throw a.style.background="var(--default-bg-color)",o&&r(l),l}}},is=t=>{ao.set(go.MERMAID_TO_EXCALIDRAW,t)},Im=({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 o3=v(C(),1),_m=({children:t})=>(0,o3.jsx)("div",{className:"ttd-dialog-panels",children:t});h();var hr=v(C(),1),Na=({label:t,children:e,panelAction:o,panelActionDisabled:r=!1,onTextSubmitInProgess:n,renderTopRight:i,renderSubmitShortcut:a,renderBottomRight:l})=>(0,hr.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,hr.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,hr.jsx)("label",{children:t}),i?.()]}),e,(0,hr.jsxs)("div",{className:F("ttd-dialog-panel-button-container",{invisible:!o}),style:{display:"flex",alignItems:"center"},children:[(0,hr.jsxs)(pr,{className:"ttd-dialog-panel-button",onSelect:o?o.action:()=>{},disabled:r||n,children:[(0,hr.jsxs)("div",{className:F({invisible:n}),children:[o?.label,o?.icon&&(0,hr.jsx)("span",{children:o.icon})]}),n&&(0,hr.jsx)(Lt,{})]}),!r&&!n&&a?.(),l?.()]})]});h();var ls=v($(),1);var r3=v(C(),1),Mm=({input:t,placeholder:e,onChange:o,onKeyboardSubmit:r})=>{let n=(0,ls.useRef)(null),i=(0,ls.useRef)(r);return i.current=r,(0,ls.useEffect)(()=>{if(!i.current)return;let a=n.current;if(a){let l=c=>{c[S.CTRL_OR_CMD]&&c.key===S.ENTER&&(c.preventDefault(),i.current?.())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l)}}},[]),(0,r3.jsx)("textarea",{className:"ttd-dialog-input",onChange:o,value:t,placeholder:e,autoFocus:!0,ref:n})};h();var kn=v(C(),1),pS=({error:t})=>(0,kn.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,kn.jsx)("p",{children:t})]}),Am=({error:t,canvasRef:e,loaded:o})=>(0,kn.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[t&&(0,kn.jsx)(pS,{error:t.message}),o?(0,kn.jsx)("div",{ref:e,style:{opacity:t?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,kn.jsx)(Lt,{size:"2rem"})]});h();var ss=v(C(),1),Lm=()=>(0,ss.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,ss.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:N("CtrlOrCmd")}),(0,ss.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:N("Enter")})]});var Ut=v(C(),1),fS=`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]`,
|
|
51
|
-
TTD mermaid definition render errror: ${B.message}`,"color: yellow"),ge("ai","mermaid parse failed","ttd"),A(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(_){let M=_.message;(!M||M==="Failed to fetch")&&(M="Request failed"),A(new Error(M))}finally{p(!1)}},y=(0,jo.useRef)(x);y.current=x;let[w,k]=(0,jo.useState)({loaded:!1,api:import("./excalidraw-assets/dist-JVNEDNHF.js")});(0,jo.useEffect)(()=>{(async()=>{await w.api,k(M=>({...M,loaded:!0}))})()},[w.api]);let C=(0,jo.useRef)({elements:[],files:null}),[I,A]=(0,jo.useState)(null);return(0,je.jsx)(at,{className:"ttd-dialog",onCloseRequest:()=>{o.setOpenDialog(null)},size:1200,title:!1,...e,autofocus:!1,children:(0,je.jsxs)(gm,{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)(ah,{children:[(0,je.jsx)(Cm,{tab:"text-to-diagram",children:(0,je.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[g("labels.textToDiagram"),(0,je.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"pink",color:"#000"},children:"AI Beta"})]})}),(0,je.jsx)(Cm,{tab:"mermaid",children:"Mermaid"})]}),(0,je.jsx)(Pa,{className:"ttd-dialog-content",tab:"mermaid",children:(0,je.jsx)(Kw,{mermaidToExcalidrawLib:w})}),!("__fallback"in e)&&(0,je.jsxs)(Pa,{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)(vm,{children:[(0,je.jsx)(Da,{label:g("labels.prompt"),panelAction:{action:x,label:"Generate",icon:Zi},onTextSubmitInProgess:d,panelActionDisabled:s.length>Ra||u?.rateLimitRemaining===0,renderTopRight:()=>u?(0,je.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:u.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[u.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,je.jsx)(wm,{}),renderBottomRight:()=>{if(typeof i?.generatedResponse=="string")return(0,je.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof i?.generatedResponse=="string"&&(Ql(i.generatedResponse),r({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,je.jsx)(Aa,{icon:Zi})]});let _=s.length/Ra;return _>.8?(0,je.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:_>1?"var(--color-danger)":void 0},children:["Length: ",s.length,"/",Ra]}):null},children:(0,je.jsx)(ym,{onChange:m,input:l,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{y.current()}})}),(0,je.jsx)(Da,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),xm({app:o,data:C})},label:"Insert",icon:Zi},children:(0,je.jsx)(Em,{canvasRef:n,error:I,loaded:w.loaded})})]})]})]})})});var j=v(T(),1),aS=({UIOptions:t})=>(0,j.jsxs)(eo,{__fallback:!0,children:[(0,j.jsx)(eo.DefaultItems.LoadScene,{}),(0,j.jsx)(eo.DefaultItems.SaveToActiveFile,{}),t.canvasActions.export&&(0,j.jsx)(eo.DefaultItems.Export,{}),t.canvasActions.saveAsImage&&(0,j.jsx)(eo.DefaultItems.SaveAsImage,{}),(0,j.jsx)(eo.DefaultItems.Help,{}),(0,j.jsx)(eo.DefaultItems.ClearCanvas,{}),(0,j.jsx)(eo.Separator,{}),(0,j.jsx)(eo.Group,{title:"Excalidraw links",children:(0,j.jsx)(eo.DefaultItems.Socials,{})}),(0,j.jsx)(eo.Separator,{}),(0,j.jsx)(eo.DefaultItems.ToggleTheme,{}),(0,j.jsx)(eo.DefaultItems.ChangeCanvasBackground,{})]}),lS=()=>(0,j.jsxs)(fm,{__fallback:!0,children:[(0,j.jsx)(fm.Actions.SaveToDisk,{}),(0,j.jsx)(fm.Actions.ExportToImage,{})]}),sS=({actionManager:t,appState:e,files:o,setAppState:r,elements:n,canvas:i,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:c,showExitZenModeBtn:s,renderTopRightUI:m,renderCustomStats:d,UIOptions:p,onExportImage:u,renderWelcomeScreen:b,children:x,app:y,isCollaborating:w,openAIKey:k,isOpenAIKeyPersisted:C,onOpenAIAPIKeyChange:I,onMagicSettingsConfirm:A})=>{let _=ke(),M=uE(),[L,W]=Ce(fn,Me),B=()=>p.canvasActions.export?(0,j.jsx)(qE,{elements:n,appState:e,files:o,actionManager:t,exportOpts:p.canvasActions.export,canvas:i,setAppState:r}):null,Y=()=>!p.canvasActions.saveAsImage||e.openDialog?.name!=="imageExport"?null:(0,j.jsx)(FE,{elements:n,appState:e,files:o,actionManager:t,onExportImage:u,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,{})]}),z=()=>(0,j.jsx)(wn,{heading:"selectedShapeActions",className:F("selected-shape-actions zen-mode-transition",{"transition-left":e.zenModeEnabled}),children:(0,j.jsx)(Rt,{className:ws.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${e.height-166}px`},children:(0,j.jsx)($d,{appState:e,elementsMap:y.scene.getNonDeletedElementsMap(),renderAction:t.renderAction})})}),ne=()=>{let de=$i(e,n);return(0,j.jsx)(qd,{side:"top",children:(0,j.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,j.jsxs)(kt.Col,{gap:6,className:F("App-menu_top__left"),children:[O(),de&&z()]}),!e.viewModeEnabled&&(0,j.jsx)(wn,{heading:"shapes",className:"shapes-section",children:se=>(0,j.jsxs)("div",{style:{position:"relative"},children:[b&&(0,j.jsx)(M.WelcomeScreenToolbarHintTunnel.Out,{}),(0,j.jsx)(kt.Col,{gap:4,align:"start",children:(0,j.jsxs)(kt.Row,{gap:1,className:F("App-toolbar-container",{"zen-mode":e.zenModeEnabled}),children:[(0,j.jsxs)(Rt,{padding:1,className:F("App-toolbar",{"zen-mode":e.zenModeEnabled}),children:[(0,j.jsx)(Jd,{appState:e,isMobile:_.editor.isMobile,device:_,app:y}),se,(0,j.jsxs)(kt.Row,{gap:1,children:[(0,j.jsx)(em,{zenModeEnabled:e.zenModeEnabled,checked:e.penMode,onChange:()=>c(null),title:g("toolBar.penMode"),penDetected:e.penDetected}),(0,j.jsx)(Qd,{checked:e.activeTool.locked,onChange:a,title:g("toolBar.lock")}),(0,j.jsx)("div",{className:"App-toolbar__divider"}),(0,j.jsx)(om,{checked:Sr(e),onChange:()=>l(),title:g("toolBar.hand"),isMobile:!0}),(0,j.jsx)(Hd,{appState:e,activeTool:e.activeTool,UIOptions:p,app:y})]})]}),w&&(0,j.jsx)(Rt,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,j.jsx)(Nw,{title:g("toolBar.laser"),checked:e.activeTool.type===mt.laser,onChange:()=>y.setActiveTool({type:mt.laser}),isMobile:!0})})]})})]})}),(0,j.jsxs)("div",{className:F("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:[e.collaborators.size>0&&(0,j.jsx)(nm,{collaborators:e.collaborators,userToFollow:e.userToFollow?.socketId||null}),m?.(_.editor.isMobile,e),!e.viewModeEnabled&&(!xe||e.openSidebar?.name!==Xr.name)&&(0,j.jsx)(M.DefaultSidebarTriggerTunnel.Out,{})]})]})})},Q=()=>(0,j.jsx)(hm,{__fallback:!0,onDock:de=>{ge("sidebar",`toggleDock (${de?"dock":"undock"})`,`(${_.editor.isMobile?"mobile":"desktop"})`)}}),xe=gl(Xl,Me),Ee=(0,j.jsxs)(j.Fragment,{children:[x,(0,j.jsx)(aS,{UIOptions:p}),(0,j.jsx)(hm.Trigger,{__fallback:!0,icon:Rb,title:bi(g("toolBar.library")),onToggle:de=>{de&&ge("sidebar",`${Xr.name} (open)`,`button (${_.editor.isMobile?"mobile":"desktop"})`)},tab:Xr.defaultTab,children:g("toolBar.library")}),(0,j.jsx)(lS,{}),e.openDialog?.name==="ttd"&&(0,j.jsx)(ch,{__fallback:!0}),e.isLoading&&(0,j.jsx)(_c,{delay:250}),e.errorMessage&&(0,j.jsx)(OE,{onClose:()=>r({errorMessage:null}),children:e.errorMessage}),L&&!_.editor.isMobile&&(0,j.jsx)(L2,{colorPickerType:L.colorPickerType,onCancel:()=>{W(null)},onChange:(de,se,P,{altKey:R})=>{if(!(de!=="elementBackground"&&de!=="elementStroke"))if(P.length){for(let G of P)J(G,{[R&&L.swapPreviewOnAlt?de==="elementBackground"?"strokeColor":"backgroundColor":de==="elementBackground"?"backgroundColor":"strokeColor"]:se},!1),or.delete(G);to.getScene(P[0])?.informMutation()}else r(de==="elementBackground"?{currentItemBackgroundColor:se}:{currentItemStrokeColor:se})},onSelect:(de,se)=>{W(P=>P?.keepOpenOnAlt&&se.altKey?P:null),L?.onSelect?.(de,se)}}),e.openDialog?.name==="help"&&(0,j.jsx)(ZE,{onClose:()=>{r({openDialog:null})}}),e.openDialog?.name==="settings"&&(0,j.jsx)(Uw,{openAIKey:k,isPersisted:C,onChange:I,onConfirm:(de,se)=>{let P=e.openDialog?.name==="settings"?e.openDialog?.source:"settings";r({openDialog:null},()=>{A(de,se,P)})},onClose:()=>{r({openDialog:null})}}),(0,j.jsx)(vw,{}),(0,j.jsx)(M.OverwriteConfirmDialogTunnel.Out,{}),Y(),B(),e.pasteDialog.shown&&(0,j.jsx)(KE,{setAppState:r,appState:e,onClose:()=>r({pasteDialog:{shown:!1,data:null}})}),_.editor.isMobile&&(0,j.jsx)(GE,{app:y,appState:e,elements:n,actionManager:t,renderJSONExportDialog:B,renderImageExportDialog:Y,setAppState:r,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:c,renderTopRightUI:m,renderCustomStats:d,renderSidebars:Q,device:_,renderWelcomeScreen:b,UIOptions:p}),!_.editor.isMobile&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{className:"layer-ui__wrapper",style:e.openSidebar&&xe&&_.editor.canFitSidebar?{width:`calc(100% - ${fg}px)`}:{},children:[b&&(0,j.jsx)(M.WelcomeScreenCenterTunnel.Out,{}),ne(),(0,j.jsx)(tw,{appState:e,actionManager:t,showExitZenModeBtn:s,renderWelcomeScreen:b}),e.showStats&&(0,j.jsx)(tm,{appState:e,setAppState:r,elements:n,onClose:()=>{t.executeAction(xn)},renderCustomStats:d}),e.scrolledOutside&&(0,j.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(de=>({...zn(n,de)}))},children:g("buttons.scrollBackToContent")})]}),Q()]})]});return(0,j.jsx)(Op.Provider,{value:e,children:(0,j.jsx)(Ec,{scope:M.jotaiScope,children:(0,j.jsx)(Mf.Provider,{value:M,children:Ee})})})},Zw=t=>{let{suggestedBindings:e,startBoundElement:o,cursorButton:r,scrollX:n,scrollY:i,...a}=t;return a},cS=(t,e)=>{if(t.children!==e.children)return!1;let{canvas:o,appState:r,...n}=t,{canvas:i,appState:a,...l}=e;return Mt(Zw(r),Zw(a),{selectedElementIds:Mt,selectedGroupIds:Mt})&&Mt(n,l)},Xw=jw.default.memo(sS,cS);h();var Na=v($(),1);var rs=v(T(),1),dS=5e3,qw=({message:t,onClose:e,closable:o=!1,duration:r=dS,style:n})=>{let i=(0,Na.useRef)(0),a=r!==1/0,l=(0,Na.useCallback)(()=>{a&&(i.current=window.setTimeout(()=>e(),r))},[e,r,a]);return(0,Na.useEffect)(()=>{if(a)return l(),()=>clearTimeout(i.current)},[l,t,r,a]),(0,rs.jsxs)("div",{className:"Toast",onMouseEnter:a?()=>clearTimeout(i?.current):void 0,onMouseLeave:a?l:void 0,style:n,children:[(0,rs.jsx)("p",{className:"Toast__message",children:t}),o&&(0,rs.jsx)(ae,{icon:wo,"aria-label":"close",type:"icon",onClick:e,className:"close"})]})};h();var dh=H({name:"viewMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.viewModeEnabled},perform(t,e){return{appState:{...e,viewModeEnabled:!this.checked(e)},commitToHistory:!1}},checked:t=>t.viewModeEnabled,predicate:(t,e,o)=>typeof o.viewModeEnabled>"u",contextItemLabel:"labels.viewMode",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.R});var F3=v(Df(),1);h();var Tm=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=>ie(r)&&!gt(r)?(or.delete(r),o=!0,ce(r,{...E1(r,Cr(r,this.scene.getNonDeletedElementsMap()),this.scene.getNonDeletedElementsMap())})):r),o&&this.onSceneUpdated()};loadFontsForElements=async e=>{let o=await Promise.all([...new Set(e.filter(r=>ie(r)).map(r=>r.fontFamily))].map(r=>{let n=Bo({fontFamily:r,fontSize:16});if(!document.fonts?.check?.(n))return document.fonts?.load?.(n)}));this.onFontsLoaded(o.flat().filter(Boolean))}};h();var Jw=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length===1&&we(o[0])},Qw=H({name:"selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;if(we(n)){let i=nn(he(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),{})},commitToHistory:!1}}return{elements:t,appState:e,commitToHistory:!1}},contextItemLabel:"labels.selectAllElementsInFrame",predicate:(t,e,o,r)=>Jw(e,r)}),e3=H({name:"removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;return we(n)?{elements:rb(t,n),appState:{...e,selectedElementIds:{[n.id]:!0}},commitToHistory:!0}:{elements:t,appState:e,commitToHistory:!1}},contextItemLabel:"labels.removeAllElementsFromFrame",predicate:(t,e,o,r)=>Jw(e,r)}),ete=H({name:"updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>({elements:t,appState:{...e,frameRendering:{...e.frameRendering,enabled:!e.frameRendering.enabled}},commitToHistory:!1}),contextItemLabel:"labels.updateFrameRendering",checked:t=>t.frameRendering.enabled}),tte=H({name:"setFrameAsActiveTool",trackEvent:{category:"toolbar"},perform:(t,e,o,r)=>{let n=et(e,{type:"frame"});return Fo(r.interactiveCanvas,{...e,activeTool:n}),{elements:t,appState:{...e,activeTool:et(e,{type:"frame"})},commitToHistory:!1}},keyTest:t=>!t[S.CTRL_OR_CMD]&&!t.shiftKey&&!t.altKey&&t.key.toLocaleLowerCase()===S.F});h();var mS=8,t3=99999,Sm=t=>mS/t,Lo=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}},Kr=({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,uS=(t,e,o=.01)=>Math.abs(t-e)<=o,ns=(t,e,{omitCenter:o,boundingBoxCorners:r,dragOffset:n}={omitCenter:!1,boundingBoxCorners:!1})=>{let i=[];if(t.length===1){let a=t[0],[l,c,s,m,d,p]=bo(a,e);n&&(l+=n.x,s+=n.x,d+=n.x,c+=n.y,m+=n.y,p+=n.y);let u=(s-l)/2,b=(m-c)/2;if((a.type==="diamond"||a.type==="ellipse")&&!r){let x=wr([l,c+b],[d,p],a.angle),y=wr([l+u,c],[d,p],a.angle),w=wr([s,c+b],[d,p],a.angle),k=wr([l+u,m],[d,p],a.angle);i=o?[x,y,w,k]:[x,y,w,k,[d,p]]}else{let x=wr([l,c],[d,p],a.angle),y=wr([s,c],[d,p],a.angle),w=wr([l,m],[d,p],a.angle),k=wr([s,m],[d,p],a.angle);i=o?[x,y,w,k]:[x,y,w,k,[d,p]]}}else if(t.length>1){let[a,l,c,s]=Zs(t,n??{x:0,y:0}),m=c-a,d=s-l,p=[a,l],u=[c,l],b=[a,s],x=[c,s],y=[a+m/2,l+d/2];i=o?[p,u,b,x]:[p,u,b,x,y]}return i.map(a=>[qe(a[0]),qe(a[1])])},n3=(t,e,o,r)=>{let n=e.filter(i=>we(i)).map(i=>i.id);return Bu(t,e,o,r).filter(i=>!(i.frameId&&n.includes(i.frameId)))},i3=(t,e,o,r)=>{let n=n3(t,e,o,r),i=Bn(n,r).filter(d=>!(d.length===1&>(d[0]))).map(d=>Ge(d).map(p=>qe(p))),a=i.sort((d,p)=>d[0]-p[0]),l=[],c=0;e:for(let d=0;d<a.length;d++){let p=a[d];for(let u=d+1;u<a.length;u++){if(++c>t3)break e;let b=a[u],[,x,y,w]=p,[k,C,,I]=b;y<k&&Ja([x,w],[C,I])&&l.push({startBounds:p,endBounds:b,startSide:[[y,x],[y,w]],endSide:[[k,C],[k,I]],length:k-y,overlap:Qa([x,w],[C,I])})}}let s=i.sort((d,p)=>d[1]-p[1]),m=[];c=0;e:for(let d=0;d<s.length;d++){let p=s[d];for(let u=d+1;u<s.length;u++){if(++c>t3)break e;let b=s[u],[x,,y,w]=p,[k,C,I]=b;w<C&&Ja([x,y],[k,I])&&m.push({startBounds:p,endBounds:b,startSide:[[x,w],[y,w]],endSide:[[k,C],[I,C]],length:C-w,overlap:Qa([x,y],[k,I])})}}return{horizontalGaps:l,verticalGaps:m}},o3=(t,e,o,r,n,i,a)=>{if(!Kr({appState:o,event:r,selectedElements:t}))return[];if(t.length===0)return[];let l=Lo.getVisibleGaps();if(l){let{horizontalGaps:c,verticalGaps:s}=l,[m,d,p,u]=Zs(t,e).map(y=>qe(y)),b=(m+p)/2,x=(d+u)/2;for(let y of c){if(!Ja([d,u],y.overlap))continue;let w=y.startSide[0][0]+y.length/2,k=qe(w-b);if(y.length>p-m&&Math.abs(k)<=a.x){Math.abs(k)<a.x&&(n.length=0),a.x=Math.abs(k);let B={type:"gap",direction:"center_horizontal",gap:y,offset:k};n.push(B);continue}let[,,I]=y.endBounds,A=m-I,_=qe(y.length-A);if(Math.abs(_)<=a.x){Math.abs(_)<a.x&&(n.length=0),a.x=Math.abs(_);let B={type:"gap",direction:"side_right",gap:y,offset:_};n.push(B);continue}let[M,,,]=y.startBounds,L=M-p,W=qe(L-y.length);if(Math.abs(W)<=a.x){Math.abs(W)<a.x&&(n.length=0),a.x=Math.abs(W);let B={type:"gap",direction:"side_left",gap:y,offset:W};n.push(B);continue}}for(let y of s){if(!Ja([m,p],y.overlap))continue;let w=y.startSide[0][1]+y.length/2,k=qe(w-x);if(y.length>u-d&&Math.abs(k)<=a.y){Math.abs(k)<a.y&&(i.length=0),a.y=Math.abs(k);let B={type:"gap",direction:"center_vertical",gap:y,offset:k};i.push(B);continue}let[,I,,]=y.startBounds,A=I-u,_=qe(A-y.length);if(Math.abs(_)<=a.y){Math.abs(_)<a.y&&(i.length=0),a.y=Math.abs(_);let B={type:"gap",direction:"side_top",gap:y,offset:_};i.push(B);continue}let[,,,M]=y.endBounds,L=qe(d-M),W=y.length-L;if(Math.abs(W)<=a.y){Math.abs(W)<a.y&&(i.length=0),a.y=Math.abs(W);let B={type:"gap",direction:"side_bottom",gap:y,offset:W};i.push(B);continue}}}},a3=(t,e,o,r)=>{let n=n3(t,e,o,r);return Bn(n,r).filter(i=>!(i.length===1&>(i[0]))).flatMap(i=>ns(i,r))},Oa=(t,e,o,r,n,i,a)=>{if(!Kr({appState:o,event:r,selectedElements:t})||t.length===0&&e.length===0)return[];let l=Lo.getReferenceSnapPoints();if(l)for(let c of e)for(let s of l){let m=s[0]-c[0],d=s[1]-c[1];Math.abs(m)<=a.x&&(Math.abs(m)<a.x&&(n.length=0),n.push({type:"point",points:[c,s],offset:m}),a.x=Math.abs(m)),Math.abs(d)<=a.y&&(Math.abs(d)<a.y&&(i.length=0),i.push({type:"point",points:[c,s],offset:d}),a.y=Math.abs(d))}},l3=(t,e,o,r,n)=>{let i=Se(t,o);if(!Kr({appState:o,event:r,selectedElements:i})||i.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};e.x=qe(e.x),e.y=qe(e.y);let a=[],l=[],c=Sm(o.zoom.value),s={x:c,y:c},m=ns(i,n,{dragOffset:e});Oa(i,m,o,r,a,l,s),o3(i,e,o,r,a,l,s);let d={x:a[0]?.offset??0,y:l[0]?.offset??0};s.x=0,s.y=0,a.length=0,l.length=0;let p={x:qe(e.x+d.x),y:qe(e.y+d.y)};Oa(i,ns(i,n,{dragOffset:p}),o,r,a,l,s),o3(i,p,o,r,a,l,s);let u=mh(a,l),b=fS(i,p,[...a,...l].filter(x=>x.type==="gap"));return{snapOffset:d,snapLines:[...u,...b]}},qe=t=>Math.round(t*10**6)/10**6,r3=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())},mh=(t,e)=>{let o={},r={};if(t.length>0){for(let n of t)if(n.type==="point"){let i=qe(n.points[0][0]);o[i]||(o[i]=[]),o[i].push(...n.points.map(a=>[qe(a[0]),qe(a[1])]))}}if(e.length>0){for(let n of e)if(n.type==="point"){let i=qe(n.points[0][1]);r[i]||(r[i]=[]),r[i].push(...n.points.map(a=>[qe(a[0]),qe(a[1])]))}}return Object.entries(o).map(([n,i])=>({type:"points",points:r3(i.map(a=>[Number(n),a[1]]).sort((a,l)=>a[1]-l[1]))})).concat(Object.entries(r).map(([n,i])=>({type:"points",points:r3(i.map(a=>[a[0],Number(n)]).sort((a,l)=>a[0]-l[0]))})))},pS=t=>{let e=new Map;for(let o of t){let r=o.points.flat().map(n=>[qe(n)]).join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},fS=(t,e,o)=>{let[r,n,i,a]=Zs(t,e),l=[];for(let c of o){let[s,m,d,p]=c.gap.startBounds,[u,b,x,y]=c.gap.endBounds,w=Qa([n,a],c.gap.overlap),k=Qa([r,i],c.gap.overlap);switch(c.direction){case"center_horizontal":{if(w){let C=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[c.gap.startSide[0][0],C],[r,C]]},{type:"gap",direction:"horizontal",points:[[i,C],[c.gap.endSide[0][0],C]]})}break}case"center_vertical":{if(k){let C=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[C,c.gap.startSide[0][1]],[C,n]]},{type:"gap",direction:"vertical",points:[[C,a],[C,c.gap.endSide[0][1]]]})}break}case"side_right":{if(w){let C=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[d,C],[u,C]]},{type:"gap",direction:"horizontal",points:[[x,C],[r,C]]})}break}case"side_left":{if(w){let C=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[i,C],[s,C]]},{type:"gap",direction:"horizontal",points:[[d,C],[u,C]]})}break}case"side_top":{if(k){let C=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[C,a],[C,m]]},{type:"gap",direction:"vertical",points:[[C,p],[C,b]]})}break}case"side_bottom":{if(k){let C=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[C,p],[C,b]]},{type:"gap",direction:"vertical",points:[[C,y],[C,n]]})}break}}}return pS(l.map(c=>({...c,points:c.points.map(s=>[qe(s[0]),qe(s[1])])})))},s3=(t,e,o,r,n,i)=>{if(!Kr({event:r,selectedElements:t,appState:o})||t.length===0||t.length===1&&!uS(t[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[a,l,c,s]=Ge(e);i&&(i.includes("e")?c+=n.x:i.includes("w")&&(a+=n.x),i.includes("n")?l+=n.y:i.includes("s")&&(s+=n.y));let m=[];if(i)switch(i){case"e":{m.push([c,l],[c,s]);break}case"w":{m.push([a,l],[a,s]);break}case"n":{m.push([a,l],[c,l]);break}case"s":{m.push([a,s],[c,s]);break}case"ne":{m.push([c,l]);break}case"nw":{m.push([a,l]);break}case"se":{m.push([c,s]);break}case"sw":{m.push([a,s]);break}}let d=Sm(o.zoom.value),p={x:d,y:d},u=[],b=[];Oa(e,m,o,r,u,b,p);let x={x:u[0]?.offset??0,y:b[0]?.offset??0};p.x=0,p.y=0,u.length=0,b.length=0;let[y,w,k,C]=Ge(t).map(_=>qe(_));Oa(t,[[y,w],[y,C],[k,w],[k,C]],o,r,u,b,p);let A=mh(u,b);return{snapOffset:x,snapLines:A}},c3=(t,e,o,r,n,i)=>{if(!Kr({event:o,selectedElements:[t],appState:e}))return{snapOffset:{x:0,y:0},snapLines:[]};let a=[[r.x+n.x,r.y+n.y]],l=Sm(e.zoom.value),c={x:l,y:l},s=[],m=[];Oa([t],a,e,o,s,m,c);let d={x:s[0]?.offset??0,y:m[0]?.offset??0};c.x=0,c.y=0,s.length=0,m.length=0;let p=ns([t],i,{boundingBoxCorners:!0,omitCenter:!0});Oa([t],p,e,o,s,m,c);let u=mh(s,m);return{snapOffset:d,snapLines:u}},d3=(t,e,o,r,n)=>{if(!Kr({event:r,selectedElements:[],appState:e}))return{originOffset:{x:0,y:0},snapLines:[]};let i=Bu(t,[],e,n),a=Sm(e.zoom.value),l={x:a,y:a},c=[],s=[];for(let m of i){let d=ns([m],n);for(let p of d){let u=p[0]-o.x;Math.abs(u)<=Math.abs(l.x)&&(Math.abs(u)<Math.abs(l.x)&&(s.length=0),s.push({type:"pointer",points:[p,[p[0],o.y]],direction:"vertical"}),l.x=u);let b=p[1]-o.y;Math.abs(b)<=Math.abs(l.y)&&(Math.abs(b)<Math.abs(l.y)&&(c.length=0),c.push({type:"pointer",points:[p,[o.x,p[1]]],direction:"horizontal"}),l.y=b)}}return{originOffset:{x:s.length>0?s[0].points[0][0]-o.x:0,y:c.length>0?c[0].points[0][1]-o.y:0},snapLines:[...s,...c]}},m3=t=>t===mt.rectangle||t===mt.ellipse||t===mt.diamond||t===mt.frame||t===mt.magicframe||t===mt.image;h();var Wt=v(T(),1),hS=()=>(0,Wt.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line1",bold:t=>(0,Wt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line2",bold:t=>(0,Wt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line3",link:t=>(0,Wt.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:t})})}),(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:t=>(0,Wt.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:t}),discordLink:t=>(0,Wt.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[t,"."]})})})]}),u3=hS;h();var km={width:100,height:0},In=100,gS=(t,e,o)=>{let r=rn({x:0,y:0,textAlign:Ga.CENTER,verticalAlign:fo.MIDDLE,...e,containerId:t.id,strokeColor:e.strokeColor||t.strokeColor});return Object.assign(t,{boundElements:(t.boundElements||[]).concat({type:"text",id:r.id})}),Bt(r,t,o),[t,r]},p3=(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??In,d=e?.height??In,p;e.id&&(p=r.getElement(e.id),p||console.error(`No element for start binding with id ${e.id} found`));let u=e.x||t.x-m,b=e.y||t.y-d/2,x=p?p.type:e.type;if(x){if(x==="text"){let y="";p&&p.type==="text"?y=p.text:e.type==="text"&&(y=e.text),y||console.error(`No text found for start binding text element for ${t.id}`),i=rn({x:u,y:b,type:"text",...p,...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=on({x:u,y:b,width:m,height:d,...p,...e,type:x});break}default:Ns(t,`Unhandled element start type "${e.type}"`,!0)}mu(t,i,"start",n)}}if(o){let m=o?.height??In,d=o?.width??In,p;o.id&&(p=r.getElement(o.id),p||console.error(`No element for end binding with id ${o.id} found`));let u=o.x||t.x+t.width,b=o.y||t.y-m/2,x=p?p.type:o.type;if(x){if(x==="text"){let y="";p&&p.type==="text"?y=p.text:o.type==="text"&&(y=o.text),y||console.error(`No text found for end binding text element for ${t.id}`),a=rn({x:u,y:b,type:"text",...p,...o,text:y}),Object.assign(a,{y:o.y||t.y-a.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{a=on({x:u,y:b,width:d,height:m,...p,...o,type:x});break}default:Ns(t,`Unhandled element end type "${x}"`,!0)}mu(t,a,"end",n)}}let l=t.points.length-1,c=.5,s=Qo(t.points);return t.points[l][0]>t.points[l-1][0]&&(s[0][0]=c,s[l][0]-=c),t.points[l][0]<t.points[l-1][0]&&(s[0][0]=-c,s[l][0]+=c),t.points[l][1]>t.points[l-1][1]&&(s[0][1]=c,s[l][1]-=c),t.points[l][1]<t.points[l-1][1]&&(s[0][1]=-c,s[l][1]+=c),Object.assign(t,{points:s}),{linearElement:t,startBoundElement:i,endBoundElement:a}},uh=class{excalidrawElements=new Map;add=e=>{e&&this.excalidrawElements.set(e.id,e)};getElements=()=>Array.from(this.excalidrawElements.values());getElementsMap=()=>Bs(this.excalidrawElements);getElement=e=>this.excalidrawElements.get(e)},es=(t,e)=>{if(!t)return[];let o=Qo(t),r=new uh,n=new Map,i=new Map;for(let l of o){let c,s=l.id;switch(e?.regenerateIds!==!1&&Object.assign(l,{id:Qr()}),l.type){case"rectangle":case"ellipse":case"diamond":{let d=l?.label?.text&&l.width===void 0?0:l?.width||In,p=l?.label?.text&&l.height===void 0?0:l?.height||In;c=on({...l,width:d,height:p});break}case"line":{let d=l.width||km.width,p=l.height||km.height;c=sl({width:d,height:p,points:[[0,0],[d,p]],...l});break}case"arrow":{let d=l.width||km.width,p=l.height||km.height;c=sl({width:d,height:p,endArrowhead:"arrow",points:[[0,0],[d,p]],...l}),Object.assign(c,Fg(c.points));break}case"text":{let d=l?.fontFamily||gi,p=l?.fontSize||xr,u=l?.lineHeight||Tr(d),b=l.text??"",x=al(b),y=Ks(x,Bo({fontFamily:d,fontSize:p}),u);c=rn({width:y.width,height:y.height,fontFamily:d,fontSize:p,...l});break}case"image":{c=Js({width:l?.width||In,height:l?.height||In,...l});break}case"frame":{c=qs({x:0,y:0,...l});break}case"magicframe":{c=ll({x:0,y:0,...l});break}case"freedraw":case"iframe":case"embeddable":{c=l;break}default:c=l,Ns(l,`Unhandled element type "${l.type}"`,!0)}r.getElement(c.id)?console.error(`Duplicate id found for ${c.id}`):(r.add(c),n.set(c.id,l),s&&i.set(s,c.id))}let a=r.getElementsMap();for(let[l,c]of n){let s=r.getElement(l);switch(c.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(c.label?.text){let[m,d]=gS(s,c?.label,a);if(r.add(m),r.add(d),m.type==="arrow"){let p=c.type==="arrow"?c?.start:void 0,u=c.type==="arrow"?c?.end:void 0;if(p&&p.id){let w=i.get(p.id);w&&Object.assign(p,{id:w})}if(u&&u.id){let w=i.get(u.id);w&&Object.assign(u,{id:w})}let{linearElement:b,startBoundElement:x,endBoundElement:y}=p3(m,p,u,r,a);m=b,r.add(b),r.add(x),r.add(y)}}else switch(c.type){case"arrow":{let{start:m,end:d}=c;if(m&&m.id){let x=i.get(m.id);Object.assign(m,{id:x})}if(d&&d.id){let x=i.get(d.id);Object.assign(d,{id:x})}let{linearElement:p,startBoundElement:u,endBoundElement:b}=p3(s,m,d,r,a);r.add(p),r.add(u),r.add(b);break}}break}}}for(let[l,c]of n){if(c.type!=="frame"&&c.type!=="magicframe")continue;let s=r.getElement(l);if(!s)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let m=[];c.children.forEach(k=>{let C=i.get(k);if(!C)throw new Error(`Element with ${k} wasn't mapped correctly`);let I=r.getElement(C);if(!I)throw new Error(`Frame element with id ${C} doesn't exist`);Object.assign(I,{frameId:s.id}),I?.boundElements?.forEach(A=>{let _=r.getElement(A.id);if(!_)throw new Error(`Bound element with id ${A.id} doesn't exist`);Object.assign(_,{frameId:s.id}),m.push(_)}),m.push(I)});let[d,p,u,b]=Ge(m),x=10;d=d-x,p=p-x,u=u+x,b=b+x;let y=Math.max(s?.width,u-d),w=Math.max(s?.height,b-p);Object.assign(s,{x:d,y:p,width:y,height:w})}return r.getElements()};h();h();var Ba=v($(),1);h();var ph=v(nr(),1),f3=v($(),1);var Xe=t=>e=>{(0,ph.unstable_batchedUpdates)(t,e)},Im=t=>Ls(e=>{(0,ph.unstable_batchedUpdates)(t,e)}),_m=(()=>{let t;try{let o=f3.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 fh=(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();h();var bS="#ff6b6b",xS="#ff0000",h3=1,g3=2,b3=(t,e)=>{if(!e.snapLines.length)return;let o=e.theme==="light"||e.zenModeEnabled?bS:xS,r=(e.zenModeEnabled?h3*1.5:h3)/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,yS(n,t,e)):n.type==="gap"?(t.lineWidth=r,t.strokeStyle=o,ES(n.points[0],n.points[1],n.direction,e,t)):n.type==="points"&&(t.lineWidth=r,t.strokeStyle=o,vS(n,t,e));t.restore()},vS=(t,e,o)=>{if(!o.zenModeEnabled){let r=t.points[0],n=t.points[t.points.length-1];Po(r,n,e)}for(let r of t.points)x3(r,o,e)},yS=(t,e,o)=>{x3(t.points[0],o,e),o.zenModeEnabled||Po(t.points[0],t.points[1],e)},x3=([t,e],o,r)=>{r.save();let n=(o.zenModeEnabled?g3*1.5:g3)/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()},Po=(t,e,o)=>{o.beginPath(),o.lineTo(...t),o.lineTo(...e),o.stroke()},ES=(t,e,o,r,n)=>{let i=8/r.zoom.value,a=i/2,l=i/4;if(o==="horizontal"){let c=[(t[0]+e[0])/2,t[1]];r.zenModeEnabled||Po([t[0],t[1]-i],[t[0],t[1]+i],n),Po([c[0]-l,c[1]-a],[c[0]-l,c[1]+a],n),Po([c[0]+l,c[1]-a],[c[0]+l,c[1]+a],n),r.zenModeEnabled||(Po([e[0],e[1]-i],[e[0],e[1]+i],n),Po(t,e,n))}else{let c=[t[0],(t[1]+e[1])/2];r.zenModeEnabled||Po([t[0]-i,t[1]],[t[0]+i,t[1]],n),Po([c[0]-a,c[1]-l],[c[0]+a,c[1]-l],n),Po([c[0]-a,c[1]+l],[c[0]+a,c[1]+l],n),r.zenModeEnabled||(Po([e[0]-i,e[1]],[e[0]+i,e[1]],n),Po(t,e,n))}};var wS=(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),gh(a,t,e),t.restore()},gh=(t,e,o)=>{e.fillStyle="rgba(105, 101, 219, 0.4)",dl(e,t[0],t[1],ue.POINT_HANDLE_SIZE/o.zoom.value,!1)},is=(t,e,o,r,n,i,a,l,c=!1,s=0)=>{t.save(),t.translate(i,a),t.rotate(l),c&&t.fillRect(e-i,o-a,r,n),s&&t.roundRect?(t.beginPath(),t.roundRect(e-i,o-a,r,n,s),t.stroke(),t.closePath()):t.strokeRect(e-i,o-a,r,n),t.restore()},CS=(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()},Mm=(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)"),dl(t,o[0],o[1],r/e.zoom.value,!i)},TS=(t,e,o,r,n,i)=>{t.beginPath(),t.ellipse(r,n,e/2,o/2,i,0,Math.PI*2),t.stroke()},SS=(t,e,o)=>{let[r,n,i,a]=bo(e,o),l=i-r,c=a-n,s=du(e,l,c),m=4;t.strokeStyle="rgba(0,0,0,.05)",t.lineWidth=s-m;let d=m/2+s/2;switch(e.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":is(t,r-d,n-d,l+d*2,c+d*2,r+l/2,n+c/2,e.angle);break;case"diamond":let p=Math.hypot(l,c),u=d*p/c,b=d*p/l;CS(t,l+u*2,c+b*2,r+l/2,n+c/2,e.angle);break;case"ellipse":TS(t,l+d*2,c+d*2,r+l/2,n+c/2,e.angle);break}},kS=(t,e,o)=>{let[r,n,i]=e,a=du(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(c=>{let[s,m]=ue.getPointAtIndexGlobalCoordinates(r,c,o);dl(t,s,m,a)})},y3=(t,e,o,r=Zm*2)=>{let{angle:n,elementX1:i,elementY1:a,elementX2:l,elementY2:c,selectionColors:s,cx:m,cy:d,dashed:p,activeEmbeddable:u}=o,b=l-i,x=c-a,y=r/e.zoom.value,w=8/e.zoom.value,k=4/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=(u?4:1)/e.zoom.value;let C=s.length;for(let I=0;I<C;++I)t.strokeStyle=s[I],p&&t.setLineDash([w,k+(w+k)*(C-1)]),t.lineDashOffset=(w+k)*I,is(t,i-y,a-y,b+y*2,x+y*2,m,d,n);t.restore()},IS=(t,e,o,r)=>{let n=Array.isArray(o)?kS:SS;t.save(),t.translate(e.scrollX,e.scrollY),n(t,o,r),t.restore()},_S=(t,e,o,r)=>{let[n,i,a,l]=bo(o,r),c=a-n,s=l-i;t.strokeStyle="rgb(0,118,255)",t.lineWidth=Oo.strokeWidth/e.zoom.value,t.save(),t.translate(e.scrollX,e.scrollY),is(t,n,i,c,s,n+c/2,i+s/2,o.angle,!1,Oo.radius/e.zoom.value),t.restore()},MS=(t,e,o)=>{let r=o.filter(l=>l.groupIds.length===0),n=o.filter(l=>l.groupIds.length>0),i=l=>{let[c,s,m,d]=Ge(l);return{angle:0,elementX1:c,elementX2:m,elementY1:s,elementY2:d,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:c+(m-c)/2,cy:s+(d-s)/2,activeEmbeddable:!1}},a=l=>{let c=ut(o,l);return i(c)};Object.entries(u1(n,e)).filter(([l,c])=>c).map(([l,c])=>l).map(l=>a(l)).concat(r.map(l=>i([l]))).forEach(l=>y3(t,e,l))},hh=(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((c,s)=>{let m=!!e.editingLinearElement?.selectedPointsIndices?.includes(s);Mm(t,e,c,a,m)}),ue.getEditorMidPoints(o,r,e).filter(c=>c!==null).forEach(c=>{e?.selectedLinearElement?.segmentMidPointHoveredCoords&&ue.arePointsEqual(c,e.selectedLinearElement.segmentMidPointHoveredCoords)?e.editingLinearElement?(Mm(t,e,c,a,!1),gh(c,t,e)):(gh(c,t,e),Mm(t,e,c,a,!1)):(e.editingLinearElement||n.length===2)&&Mm(t,e,c,i/2,!1,!0)}),t.restore()},v3=(t,e,o,r,n)=>{Object.keys(r).forEach(i=>{let a=r[i];if(a!==void 0){let[l,c,s,m]=a;t.save(),t.lineWidth=1/o.zoom.value,e.selectionColor&&(t.strokeStyle=e.selectionColor),i==="rotation"?dl(t,l+s/2,c+m/2,s/2):t.roundRect?(t.beginPath(),t.roundRect(l,c,s,m,2/o.zoom.value),t.fill(),t.stroke()):is(t,l,c,s,m,l+s/2,c+m/2,n,!0),t.restore()}})},E3=({canvas:t,elementsMap:e,visibleElements:o,selectedElements:r,scale:n,appState:i,renderConfig:a})=>{if(t===null)return{atLeastOneVisibleElement:!1,elementsMap:e};let[l,c]=z1(t,n),s=U1({canvas:t,scale:n,normalizedWidth:l,normalizedHeight:c});s.save(),s.scale(i.zoom.value,i.zoom.value);let m;if(o.forEach(u=>{i.editingLinearElement?.elementId===u.id&&u&&(m=u)}),m&&hh(s,i,m,e),i.selectionElement)try{ab(i.selectionElement,s,i)}catch(u){console.error(u)}i.isBindingEnabled&&i.suggestedBindings.filter(u=>u!=null).forEach(u=>{IS(s,i,u,e)}),i.frameToHighlight&&_S(s,i,i.frameToHighlight,e),i.elementsToHighlight&&MS(s,i,i.elementsToHighlight);let d=r.some(u=>we(u));if(r.length===1&&i.editingLinearElement?.elementId===r[0].id&&hh(s,i,r[0],e),i.selectedLinearElement&&i.selectedLinearElement.hoverPointIndex>=0&&wS(s,i,e),!i.multiElement&&!i.editingLinearElement){let u=Fs(r,i);r.length===1&&Pe(r[0])&&i.selectedLinearElement?.elementId===r[0].id&&!r[0].locked&&hh(s,i,r[0],e);let x=a.selectionColor||Qe.black;if(u){let y=Be(r),w=[];for(let C of e.values()){let I=[];if(y.has(C.id)&&!js(i,C)&&I.push(x),a.remoteSelectedElementIds[C.id]&&I.push(...a.remoteSelectedElementIds[C.id].map(A=>Qn(A))),I.length){let[A,_,M,L,W,B]=bo(C,e,!0);w.push({angle:C.angle,elementX1:A,elementY1:_,elementX2:M,elementY2:L,selectionColors:I,dashed:!!a.remoteSelectedElementIds[C.id],cx:W,cy:B,activeEmbeddable:i.activeEmbeddable?.element===C&&i.activeEmbeddable.state==="active"})}}let k=C=>{let I=ut(e,C),[A,_,M,L]=Ge(I);w.push({angle:0,elementX1:A,elementX2:M,elementY1:_,elementY2:L,selectionColors:[Qe.black],dashed:!0,cx:A+(M-A)/2,cy:_+(L-_)/2,activeEmbeddable:!1})};for(let C of kr(i))k(C);i.editingGroupId&&k(i.editingGroupId),w.forEach(C=>y3(s,i,C))}if(s.save(),s.translate(i.scrollX,i.scrollY),r.length===1){s.fillStyle=Qe.white;let y=Gg(r[0],i.zoom,e,"mouse");!i.viewModeEnabled&&u&&v3(s,a,i,y,r[0].angle)}else if(r.length>1&&!i.isRotating){let y=Zm*2/i.zoom.value;s.fillStyle=Qe.white;let[w,k,C,I]=Ge(r),A=s.getLineDash();s.setLineDash([2/i.zoom.value]);let _=s.lineWidth;s.lineWidth=1/i.zoom.value,s.strokeStyle=x,is(s,w-y,k-y,C-w+y*2,I-k+y*2,(w+C)/2,(k+I)/2,0),s.lineWidth=_,s.setLineDash(A);let M=Wg([w,k,C,I,(w+C)/2,(k+I)/2],0,i.zoom,"mouse",d?Ug:zg);r.some(L=>!L.locked)&&v3(s,a,i,M,0)}s.restore()}b3(s,i),s.restore();for(let u in a.remotePointerViewportCoords){let{x:b,y:x}=a.remotePointerViewportCoords[u];b-=i.offsetLeft,x-=i.offsetTop;let y=11,w=14,k=b<0||b>l-y||x<0||x>c-w;b=Math.max(b,0),b=Math.min(b,l-y),x=Math.max(x,0),x=Math.min(x,c-w);let C=Qn(u);s.save(),s.strokeStyle=C,s.fillStyle=C;let I=a.remotePointerUserStates[u],A=k||I==="idle"||I==="away";A&&(s.globalAlpha=.3),a.remotePointerButton&&a.remotePointerButton[u]==="down"&&(s.beginPath(),s.arc(b,x,15,0,2*Math.PI,!1),s.lineWidth=3,s.strokeStyle="#ffffff88",s.stroke(),s.closePath(),s.beginPath(),s.arc(b,x,15,0,2*Math.PI,!1),s.lineWidth=1,s.strokeStyle=C,s.stroke(),s.closePath()),s.fillStyle=Qe.white,s.strokeStyle=Qe.white,s.lineWidth=6,s.lineJoin="round",s.beginPath(),s.moveTo(b,x),s.lineTo(b+0,x+14),s.lineTo(b+4,x+9),s.lineTo(b+11,x+8),s.closePath(),s.stroke(),s.fill(),s.fillStyle=C,s.strokeStyle=C,s.lineWidth=2,s.lineJoin="round",s.beginPath(),A?(s.moveTo(b-1,x-1),s.lineTo(b-1,x+15),s.lineTo(b+5,x+10),s.lineTo(b+12,x+9),s.closePath(),s.fill()):(s.moveTo(b,x),s.lineTo(b+0,x+14),s.lineTo(b+4,x+9),s.lineTo(b+11,x+8),s.closePath(),s.fill(),s.stroke());let _=a.remotePointerUsernames[u]||"";if(!k&&_){s.font="600 12px sans-serif";let M=b+y/2,L=x+w+2,W=5,B=3,Y=s.measureText(_),O=Y.actualBoundingBoxDescent+Y.actualBoundingBoxAscent,z=Math.max(O,12),ne=M-1,Q=L-1,xe=Y.width+2+W*2+2,Ee=z+2+B*2+2;s.roundRect?(s.beginPath(),s.roundRect(ne,Q,xe,Ee,8),s.fillStyle=C,s.fill(),s.strokeStyle=Qe.white,s.stroke()):fh(s,ne,Q,xe,Ee,8,Qe.white),s.fillStyle=Qe.black,s.fillText(_,M+W+1,L+B+Y.actualBoundingBoxAscent+Math.floor((z-O)/2)+2)}s.restore(),s.closePath()}let p;return a.renderScrollbars&&(p=UE(o,l,c,i),s.save(),s.fillStyle=zE,s.strokeStyle="rgba(255,255,255,0.8)",[p.horizontal,p.vertical].forEach(u=>{u&&fh(s,u.x,u.y,u.width,u.height,mr/2)}),s.restore()),{scrollBars:p,atLeastOneVisibleElement:o.length>0,elementsMap:e}},bh=Ls(t=>{let e=E3(t);t.callback?.(e)},{trailing:!0}),w3=(t,e)=>{if(e){bh(t);return}let o=E3(t);return t.callback(o),o};var T3=v(T(),1),AS=t=>{let e=(0,Ba.useRef)(!1);return(0,Ba.useEffect)(()=>{if(!e.current){e.current=!0;return}let o={},r={},n={},i={},a={};t.appState.collaborators.forEach((c,s)=>{if(c.selectedElementIds)for(let m of Object.keys(c.selectedElementIds))m in n||(n[m]=[]),n[m].push(s);c.pointer&&(c.username&&(i[s]=c.username),c.userState&&(a[s]=c.userState),r[s]=Kt({sceneX:c.pointer.x,sceneY:c.pointer.y},t.appState),o[s]=c.button)});let l=t.containerRef?.current&&getComputedStyle(t.containerRef.current).getPropertyValue("--color-selection")||"#6965db";w3({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},callback:t.renderInteractiveSceneCallback},_m())}),(0,T3.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:t.appState.width,height:t.appState.height,cursor:t.appState.viewModeEnabled?Le.GRAB:Le.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")})},C3=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}),LS=(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:Mt(C3(t.appState),C3(e.appState)),xh=Ba.default.memo(AS,LS);h();var di=v($(),1);var k3=v(T(),1),PS=t=>{let e=(0,di.useRef)(null),o=(0,di.useRef)(!1);return(0,di.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,c=t.appState.height*t.scale;n.width!==l&&(n.width=l),n.height!==c&&(n.height=c),G1({canvas:n,rc:t.rc,scale:t.scale,elementsMap:t.elementsMap,allElementsMap:t.allElementsMap,visibleElements:t.visibleElements,appState:t.appState,renderConfig:t.renderConfig},_m())}),(0,k3.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:e})},S3=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}),DS=(t,e)=>t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements?!1:Mt(S3(t.appState),S3(e.appState))&&Mt(t.renderConfig,e.renderConfig),vh=di.default.memo(PS,DS);h();var as=class{scene;constructor(e){this.scene=e}getRenderableElements=(()=>{let e=({elementsMap:r,zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:c,height:s,width:m})=>{let d=[];for(let p of r.values())ul(p,m,s,{zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:c},r)&&d.push(p);return d},o=({elements:r,editingElement:n,pendingImageElementId:i})=>{let a=Bs(new Map);for(let l of r)Jr(l)&&i===l.id||(!n||n.type!=="text"||l.id!==n.id)&&a.set(l.id,l);return a};return Mg(({zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:c,width:s,editingElement:m,pendingImageElementId:d,versionNonce:p})=>{let u=this.scene.getNonDeletedElements(),b=o({elements:u,editingElement:m,pendingImageElementId:d}),x=e({elementsMap:b,zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:c,width:s});return{elementsMap:b,visibleElements:x}})})();destroy(){bh.cancel(),W1.cancel(),this.getRenderableElements.clear()}};h();var Am=v($(),1);var yh=v(T(),1),I3=({trails:t})=>{let e=(0,Am.useRef)(null);return(0,Am.useEffect)(()=>{if(e.current)for(let o of t)o.start(e.current);return()=>{for(let o of t)o.stop()}},t),(0,yh.jsx)("div",{className:"SVGLayer",children:(0,yh.jsx)("svg",{ref:e})})};h();var hr=class{subscribers=[];on(...e){let o=e.flat().filter(r=>typeof r=="function");return this.subscribers.push(...o),()=>this.off(o)}once(...e){let o=e.flat().filter(n=>typeof n=="function");o.push(()=>r());let r=this.on(...o);return r}off(...e){let o=e.flat();this.subscribers=this.subscribers.filter(r=>!o.includes(r))}trigger(...e){for(let o of this.subscribers)o(...e);return this}clear(){this.subscribers=[]}};h();var _3=v(T(),1),RS=5,NS=(t,e,o)=>{let[r,n]=bo(t,o),{x:i,y:a}=Kt({sceneX:r+t.width,sceneY:n},e),l=i-e.offsetLeft+10,c=a-e.offsetTop;return{x:l,y:c}},Eh=({children:t,element:e,elementsMap:o})=>{let r=ya();if(r.contextMenu||r.draggingElement||r.resizingElement||r.isRotating||r.openMenu||r.viewModeEnabled)return null;let{x:n,y:i}=NS(e,r,o);return(0,_3.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${i}px`,left:`${n}px`,padding:RS},children:t})};h();var OS=`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]`,n3=Ya(is,300),hS=({mermaidToExcalidrawLib:t})=>{let[e,o]=(0,jo.useState)(()=>ao.get(go.MERMAID_TO_EXCALIDRAW)||fS),r=(0,jo.useDeferredValue)(e.trim()),[n,i]=(0,jo.useState)(null),a=(0,jo.useRef)(null),l=(0,jo.useRef)({elements:[],files:null}),c=So();(0,jo.useEffect)(()=>{km({canvasRef:a,data:l,mermaidToExcalidrawLib:t,setError:i,mermaidDefinition:r}).catch(()=>{}),n3(r)},[r,t]),(0,jo.useEffect)(()=>()=>{n3.flush()},[]);let s=()=>{Im({app:c,data:l,text:e,shouldSaveMermaidDataToStorage:!0})};return(0,Ut.jsxs)(Ut.Fragment,{children:[(0,Ut.jsx)("div",{className:"ttd-dialog-desc",children:(0,Ut.jsx)(Jt,{i18nKey:"mermaid.description",flowchartLink:m=>(0,Ut.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:m}),sequenceLink:m=>(0,Ut.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:m}),classLink:m=>(0,Ut.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:m})})}),(0,Ut.jsxs)(_m,{children:[(0,Ut.jsx)(Na,{label:g("mermaid.syntax"),children:(0,Ut.jsx)(Mm,{input:e,placeholder:"Write Mermaid diagram defintion here...",onChange:m=>o(m.target.value),onKeyboardSubmit:()=>{s()}})}),(0,Ut.jsx)(Na,{label:g("mermaid.preview"),panelAction:{action:()=>{s()},label:g("mermaid.button"),icon:Zi},renderSubmitShortcut:()=>(0,Ut.jsx)(Lm,{}),children:(0,Ut.jsx)(Am,{canvasRef:a,loaded:t.loaded,error:n})})]})]})},i3=hS;var Xo=v($(),1);h();var a3=v(C(),1),hh=({children:t,...e})=>(0,a3.jsx)(bm,{className:"ttd-dialog-triggers",...e,children:t});hh.displayName="TTDDialogTabTriggers";h();var gh=v(C(),1),Pm=({children:t,tab:e,onSelect:o,...r})=>(0,gh.jsx)(xm,{value:e,asChild:!0,onSelect:o,children:(0,gh.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...r,children:t})});Pm.displayName="TTDDialogTabTrigger";var je=v(C(),1),bh=3,Oa=1e3,gS=Ve(null),bS=Ve(null),xh=t=>{let e=Le();return e.openDialog?.name!=="ttd"?null:(0,je.jsx)(xS,{...t,tab:e.openDialog.tab})},xS=Wr("TTDDialogBase",({tab:t,...e})=>{let o=So(),r=Fe(),n=(0,Xo.useRef)(null),[i,a]=Te(bS),[l,c]=(0,Xo.useState)(i?.prompt??""),s=l.trim(),m=_=>{c(_.target.value),a(M=>({generatedResponse:M?.generatedResponse??null,prompt:_.target.value}))},[d,p]=(0,Xo.useState)(!1),[u,b]=Te(gS),x=async()=>{if(s.length>Oa||s.length<bh||d||u?.rateLimitRemaining===0||"__fallback"in e){s.length<bh&&A(new Error(`Prompt is too short (min ${bh} characters)`)),s.length>Oa&&A(new Error(`Prompt is too long (max ${Oa} characters)`));return}try{p(!0),ge("ai","generate","ttd");let{generatedResponse:_,error:M,rateLimit:L,rateLimitRemaining:W}=await e.onTextSubmit(s);if(typeof _=="string"&&a(B=>({generatedResponse:_,prompt:B?.prompt??null})),uu(L)&&uu(W)&&b({rateLimit:L,rateLimitRemaining:W}),M){A(M);return}if(!_){A(new Error("Generation failed"));return}try{await km({canvasRef:n,data:T,mermaidToExcalidrawLib:w,setError:A,mermaidDefinition:_}),ge("ai","mermaid parse success","ttd")}catch(B){console.info(`%cTTD mermaid render errror: ${B.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
51
|
+
TTD mermaid definition render errror: ${B.message}`,"color: yellow"),ge("ai","mermaid parse failed","ttd"),A(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(_){let M=_.message;(!M||M==="Failed to fetch")&&(M="Request failed"),A(new Error(M))}finally{p(!1)}},y=(0,Xo.useRef)(x);y.current=x;let[w,k]=(0,Xo.useState)({loaded:!1,api:import("./excalidraw-assets/dist-JVNEDNHF.js")});(0,Xo.useEffect)(()=>{(async()=>{await w.api,k(M=>({...M,loaded:!0}))})()},[w.api]);let T=(0,Xo.useRef)({elements:[],files:null}),[I,A]=(0,Xo.useState)(null);return(0,je.jsx)(at,{className:"ttd-dialog",onCloseRequest:()=>{o.setOpenDialog(null)},size:1200,title:!1,...e,autofocus:!1,children:(0,je.jsxs)(Sm,{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)(hh,{children:[(0,je.jsx)(Pm,{tab:"text-to-diagram",children:(0,je.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[g("labels.textToDiagram"),(0,je.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"pink",color:"#000"},children:"AI Beta"})]})}),(0,je.jsx)(Pm,{tab:"mermaid",children:"Mermaid"})]}),(0,je.jsx)(Ra,{className:"ttd-dialog-content",tab:"mermaid",children:(0,je.jsx)(i3,{mermaidToExcalidrawLib:w})}),!("__fallback"in e)&&(0,je.jsxs)(Ra,{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)(_m,{children:[(0,je.jsx)(Na,{label:g("labels.prompt"),panelAction:{action:x,label:"Generate",icon:Zi},onTextSubmitInProgess:d,panelActionDisabled:s.length>Oa||u?.rateLimitRemaining===0,renderTopRight:()=>u?(0,je.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:u.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[u.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,je.jsx)(Lm,{}),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)(Pa,{icon:Zi})]});let _=s.length/Oa;return _>.8?(0,je.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:_>1?"var(--color-danger)":void 0},children:["Length: ",s.length,"/",Oa]}):null},children:(0,je.jsx)(Mm,{onChange:m,input:l,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{y.current()}})}),(0,je.jsx)(Na,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),Im({app:o,data:T})},label:"Insert",icon:Zi},children:(0,je.jsx)(Am,{canvasRef:n,error:I,loaded:w.loaded})})]})]})]})})});var j=v(C(),1),vS=({UIOptions:t})=>(0,j.jsxs)(eo,{__fallback:!0,children:[(0,j.jsx)(eo.DefaultItems.LoadScene,{}),(0,j.jsx)(eo.DefaultItems.SaveToActiveFile,{}),t.canvasActions.export&&(0,j.jsx)(eo.DefaultItems.Export,{}),t.canvasActions.saveAsImage&&(0,j.jsx)(eo.DefaultItems.SaveAsImage,{}),(0,j.jsx)(eo.DefaultItems.Help,{}),(0,j.jsx)(eo.DefaultItems.ClearCanvas,{}),(0,j.jsx)(eo.Separator,{}),(0,j.jsx)(eo.Group,{title:"Excalidraw links",children:(0,j.jsx)(eo.DefaultItems.Socials,{})}),(0,j.jsx)(eo.Separator,{}),(0,j.jsx)(eo.DefaultItems.ToggleTheme,{}),(0,j.jsx)(eo.DefaultItems.ChangeCanvasBackground,{})]}),yS=()=>(0,j.jsxs)(Tm,{__fallback:!0,children:[(0,j.jsx)(Tm.Actions.SaveToDisk,{}),(0,j.jsx)(Tm.Actions.ExportToImage,{})]}),ES=({actionManager:t,appState:e,files:o,setAppState:r,elements:n,canvas:i,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:c,showExitZenModeBtn:s,renderTopRightUI:m,renderCustomStats:d,UIOptions:p,onExportImage:u,renderWelcomeScreen:b,children:x,app:y,isCollaborating:w,openAIKey:k,isOpenAIKeyPersisted:T,onOpenAIAPIKeyChange:I,onMagicSettingsConfirm:A})=>{let _=Ie(),M=SE(),[L,W]=Te(fn,Ae),B=()=>p.canvasActions.export?(0,j.jsx)(dw,{elements:n,appState:e,files:o,actionManager:t,exportOpts:p.canvasActions.export,canvas:i,setAppState:r}):null,Y=()=>!p.canvasActions.saveAsImage||e.openDialog?.name!=="imageExport"?null:(0,j.jsx)(qE,{elements:n,appState:e,files:o,actionManager:t,onExportImage:u,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,{})]}),z=()=>(0,j.jsx)(wn,{heading:"selectedShapeActions",className:F("selected-shape-actions zen-mode-transition",{"transition-left":e.zenModeEnabled}),children:(0,j.jsx)(Rt,{className:_s.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${e.height-166}px`},children:(0,j.jsx)(Zd,{appState:e,elementsMap:y.scene.getNonDeletedElementsMap(),renderAction:t.renderAction})})}),ne=()=>{let de=$i(e,n);return(0,j.jsx)(am,{side:"top",children:(0,j.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,j.jsxs)(kt.Col,{gap:6,className:F("App-menu_top__left"),children:[O(),de&&z()]}),!e.viewModeEnabled&&(0,j.jsx)(wn,{heading:"shapes",className:"shapes-section",children:se=>(0,j.jsxs)("div",{style:{position:"relative"},children:[b&&(0,j.jsx)(M.WelcomeScreenToolbarHintTunnel.Out,{}),(0,j.jsx)(kt.Col,{gap:4,align:"start",children:(0,j.jsxs)(kt.Row,{gap:1,className:F("App-toolbar-container",{"zen-mode":e.zenModeEnabled}),children:[(0,j.jsxs)(Rt,{padding:1,className:F("App-toolbar",{"zen-mode":e.zenModeEnabled}),children:[(0,j.jsx)(lm,{appState:e,isMobile:_.editor.isMobile,device:_,app:y}),se,(0,j.jsxs)(kt.Row,{gap:1,children:[(0,j.jsx)(cm,{zenModeEnabled:e.zenModeEnabled,checked:e.penMode,onChange:()=>c(null),title:g("toolBar.penMode"),penDetected:e.penDetected}),(0,j.jsx)(sm,{checked:e.activeTool.locked,onChange:a,title:g("toolBar.lock")}),(0,j.jsx)("div",{className:"App-toolbar__divider"}),(0,j.jsx)(mm,{checked:Sr(e),onChange:()=>l(),title:g("toolBar.hand"),isMobile:!0}),(0,j.jsx)(jd,{appState:e,activeTool:e.activeTool,UIOptions:p,app:y})]})]}),w&&(0,j.jsx)(Rt,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,j.jsx)(Zw,{title:g("toolBar.laser"),checked:e.activeTool.type===mt.laser,onChange:()=>y.setActiveTool({type:mt.laser}),isMobile:!0})})]})})]})}),(0,j.jsxs)("div",{className:F("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:[e.collaborators.size>0&&(0,j.jsx)(pm,{collaborators:e.collaborators,userToFollow:e.userToFollow?.socketId||null}),m?.(_.editor.isMobile,e),!e.viewModeEnabled&&(!xe||e.openSidebar?.name!==Xr.name)&&(0,j.jsx)(M.DefaultSidebarTriggerTunnel.Out,{})]})]})})},Q=()=>(0,j.jsx)(Cm,{__fallback:!0,onDock:de=>{ge("sidebar",`toggleDock (${de?"dock":"undock"})`,`(${_.editor.isMobile?"mobile":"desktop"})`)}}),xe=yl(os,Ae),Ee=(0,j.jsxs)(j.Fragment,{children:[x,(0,j.jsx)(vS,{UIOptions:p}),(0,j.jsx)(Cm.Trigger,{__fallback:!0,icon:Gb,title:bi(g("toolBar.library")),onToggle:de=>{de&&ge("sidebar",`${Xr.name} (open)`,`button (${_.editor.isMobile?"mobile":"desktop"})`)},tab:Xr.defaultTab,children:g("toolBar.library")}),(0,j.jsx)(yS,{}),e.openDialog?.name==="ttd"&&(0,j.jsx)(xh,{__fallback:!0}),e.isLoading&&(0,j.jsx)(Nc,{delay:250}),e.errorMessage&&(0,j.jsx)(jE,{onClose:()=>r({errorMessage:null}),children:e.errorMessage}),L&&!_.editor.isMobile&&(0,j.jsx)(z2,{colorPickerType:L.colorPickerType,onCancel:()=>{W(null)},onChange:(de,se,P,{altKey:R})=>{if(!(de!=="elementBackground"&&de!=="elementStroke"))if(P.length){for(let G of P)J(G,{[R&&L.swapPreviewOnAlt?de==="elementBackground"?"strokeColor":"backgroundColor":de==="elementBackground"?"backgroundColor":"strokeColor"]:se},!1),rr.delete(G);to.getScene(P[0])?.informMutation()}else r(de==="elementBackground"?{currentItemBackgroundColor:se}:{currentItemStrokeColor:se})},onSelect:(de,se)=>{W(P=>P?.keepOpenOnAlt&&se.altKey?P:null),L?.onSelect?.(de,se)}}),e.openDialog?.name==="help"&&(0,j.jsx)(lw,{onClose:()=>{r({openDialog:null})}}),e.openDialog?.name==="settings"&&(0,j.jsx)(t3,{openAIKey:k,isPersisted:T,onChange:I,onConfirm:(de,se)=>{let P=e.openDialog?.name==="settings"?e.openDialog?.source:"settings";r({openDialog:null},()=>{A(de,se,P)})},onClose:()=>{r({openDialog:null})}}),(0,j.jsx)(Pw,{}),(0,j.jsx)(M.OverwriteConfirmDialogTunnel.Out,{}),Y(),B(),e.pasteDialog.shown&&(0,j.jsx)(iw,{setAppState:r,appState:e,onClose:()=>r({pasteDialog:{shown:!1,data:null}})}),_.editor.isMobile&&(0,j.jsx)(rw,{app:y,appState:e,elements:n,actionManager:t,renderJSONExportDialog:B,renderImageExportDialog:Y,setAppState:r,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:c,renderTopRightUI:m,renderCustomStats:d,renderSidebars:Q,device:_,renderWelcomeScreen:b,UIOptions:p}),!_.editor.isMobile&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{className:"layer-ui__wrapper",style:e.openSidebar&&xe&&_.editor.canFitSidebar?{width:`calc(100% - ${Tg}px)`}:{},children:[b&&(0,j.jsx)(M.WelcomeScreenCenterTunnel.Out,{}),ne(),(0,j.jsx)(fw,{appState:e,actionManager:t,showExitZenModeBtn:s,renderWelcomeScreen:b}),e.showStats&&(0,j.jsx)(dm,{appState:e,setAppState:r,elements:n,onClose:()=>{t.executeAction(xn)},renderCustomStats:d}),e.scrolledOutside&&(0,j.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(de=>({...zn(n,de)}))},children:g("buttons.scrollBackToContent")})]}),Q()]})]});return(0,j.jsx)(Kp.Provider,{value:e,children:(0,j.jsx)(_c,{scope:M.jotaiScope,children:(0,j.jsx)(Ff.Provider,{value:M,children:Ee})})})},l3=t=>{let{suggestedBindings:e,startBoundElement:o,cursorButton:r,scrollX:n,scrollY:i,...a}=t;return a},wS=(t,e)=>{if(t.children!==e.children)return!1;let{canvas:o,appState:r,...n}=t,{canvas:i,appState:a,...l}=e;return Mt(l3(r),l3(a),{selectedElementIds:Mt,selectedGroupIds:Mt})&&Mt(n,l)},c3=s3.default.memo(ES,wS);h();var Ba=v($(),1);var cs=v(C(),1),TS=5e3,d3=({message:t,onClose:e,closable:o=!1,duration:r=TS,style:n})=>{let i=(0,Ba.useRef)(0),a=r!==1/0,l=(0,Ba.useCallback)(()=>{a&&(i.current=window.setTimeout(()=>e(),r))},[e,r,a]);return(0,Ba.useEffect)(()=>{if(a)return l(),()=>clearTimeout(i.current)},[l,t,r,a]),(0,cs.jsxs)("div",{className:"Toast",onMouseEnter:a?()=>clearTimeout(i?.current):void 0,onMouseLeave:a?l:void 0,style:n,children:[(0,cs.jsx)("p",{className:"Toast__message",children:t}),o&&(0,cs.jsx)(ae,{icon:wo,"aria-label":"close",type:"icon",onClick:e,className:"close"})]})};h();var vh=H({name:"viewMode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.viewModeEnabled},perform(t,e){return{appState:{...e,viewModeEnabled:!this.checked(e)},commitToHistory:!1}},checked:t=>t.viewModeEnabled,predicate:(t,e,o)=>typeof o.viewModeEnabled>"u",contextItemLabel:"labels.viewMode",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===me.R});var q3=v(Uf(),1);h();var Dm=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=>ie(r)&&!gt(r)?(rr.delete(r),o=!0,ce(r,{...L1(r,Tr(r,this.scene.getNonDeletedElementsMap()),this.scene.getNonDeletedElementsMap())})):r),o&&this.onSceneUpdated()};loadFontsForElements=async e=>{let o=await Promise.all([...new Set(e.filter(r=>ie(r)).map(r=>r.fontFamily))].map(r=>{let n=Fo({fontFamily:r,fontSize:16});if(!document.fonts?.check?.(n))return document.fonts?.load?.(n)}));this.onFontsLoaded(o.flat().filter(Boolean))}};h();var m3=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length===1&&we(o[0])},u3=H({name:"selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;if(we(n)){let i=nn(he(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),{})},commitToHistory:!1}}return{elements:t,appState:e,commitToHistory:!1}},contextItemLabel:"labels.selectAllElementsInFrame",predicate:(t,e,o,r)=>m3(e,r)}),p3=H({name:"removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;return we(n)?{elements:pb(t,n),appState:{...e,selectedElementIds:{[n.id]:!0}},commitToHistory:!0}:{elements:t,appState:e,commitToHistory:!1}},contextItemLabel:"labels.removeAllElementsFromFrame",predicate:(t,e,o,r)=>m3(e,r)}),wte=H({name:"updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>({elements:t,appState:{...e,frameRendering:{...e.frameRendering,enabled:!e.frameRendering.enabled}},commitToHistory:!1}),contextItemLabel:"labels.updateFrameRendering",checked:t=>t.frameRendering.enabled}),Tte=H({name:"setFrameAsActiveTool",trackEvent:{category:"toolbar"},perform:(t,e,o,r)=>{let n=et(e,{type:"frame"});return $o(r.interactiveCanvas,{...e,activeTool:n}),{elements:t,appState:{...e,activeTool:et(e,{type:"frame"})},commitToHistory:!1}},keyTest:t=>!t[S.CTRL_OR_CMD]&&!t.shiftKey&&!t.altKey&&t.key.toLocaleLowerCase()===S.F});h();var CS=8,f3=99999,Rm=t=>CS/t,Po=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}},Kr=({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,SS=(t,e,o=.01)=>Math.abs(t-e)<=o,ds=(t,e,{omitCenter:o,boundingBoxCorners:r,dragOffset:n}={omitCenter:!1,boundingBoxCorners:!1})=>{let i=[];if(t.length===1){let a=t[0],[l,c,s,m,d,p]=bo(a,e);n&&(l+=n.x,s+=n.x,d+=n.x,c+=n.y,m+=n.y,p+=n.y);let u=(s-l)/2,b=(m-c)/2;if((a.type==="diamond"||a.type==="ellipse")&&!r){let x=wr([l,c+b],[d,p],a.angle),y=wr([l+u,c],[d,p],a.angle),w=wr([s,c+b],[d,p],a.angle),k=wr([l+u,m],[d,p],a.angle);i=o?[x,y,w,k]:[x,y,w,k,[d,p]]}else{let x=wr([l,c],[d,p],a.angle),y=wr([s,c],[d,p],a.angle),w=wr([l,m],[d,p],a.angle),k=wr([s,m],[d,p],a.angle);i=o?[x,y,w,k]:[x,y,w,k,[d,p]]}}else if(t.length>1){let[a,l,c,s]=tc(t,n??{x:0,y:0}),m=c-a,d=s-l,p=[a,l],u=[c,l],b=[a,s],x=[c,s],y=[a+m/2,l+d/2];i=o?[p,u,b,x]:[p,u,b,x,y]}return i.map(a=>[qe(a[0]),qe(a[1])])},b3=(t,e,o,r)=>{let n=e.filter(i=>we(i)).map(i=>i.id);return Yu(t,e,o,r).filter(i=>!(i.frameId&&n.includes(i.frameId)))},x3=(t,e,o,r)=>{let n=b3(t,e,o,r),i=Bn(n,r).filter(d=>!(d.length===1&>(d[0]))).map(d=>Ge(d).map(p=>qe(p))),a=i.sort((d,p)=>d[0]-p[0]),l=[],c=0;e:for(let d=0;d<a.length;d++){let p=a[d];for(let u=d+1;u<a.length;u++){if(++c>f3)break e;let b=a[u],[,x,y,w]=p,[k,T,,I]=b;y<k&&tl([x,w],[T,I])&&l.push({startBounds:p,endBounds:b,startSide:[[y,x],[y,w]],endSide:[[k,T],[k,I]],length:k-y,overlap:ol([x,w],[T,I])})}}let s=i.sort((d,p)=>d[1]-p[1]),m=[];c=0;e:for(let d=0;d<s.length;d++){let p=s[d];for(let u=d+1;u<s.length;u++){if(++c>f3)break e;let b=s[u],[x,,y,w]=p,[k,T,I]=b;w<T&&tl([x,y],[k,I])&&m.push({startBounds:p,endBounds:b,startSide:[[x,w],[y,w]],endSide:[[k,T],[I,T]],length:T-w,overlap:ol([x,y],[k,I])})}}return{horizontalGaps:l,verticalGaps:m}},h3=(t,e,o,r,n,i,a)=>{if(!Kr({appState:o,event:r,selectedElements:t}))return[];if(t.length===0)return[];let l=Po.getVisibleGaps();if(l){let{horizontalGaps:c,verticalGaps:s}=l,[m,d,p,u]=tc(t,e).map(y=>qe(y)),b=(m+p)/2,x=(d+u)/2;for(let y of c){if(!tl([d,u],y.overlap))continue;let w=y.startSide[0][0]+y.length/2,k=qe(w-b);if(y.length>p-m&&Math.abs(k)<=a.x){Math.abs(k)<a.x&&(n.length=0),a.x=Math.abs(k);let B={type:"gap",direction:"center_horizontal",gap:y,offset:k};n.push(B);continue}let[,,I]=y.endBounds,A=m-I,_=qe(y.length-A);if(Math.abs(_)<=a.x){Math.abs(_)<a.x&&(n.length=0),a.x=Math.abs(_);let B={type:"gap",direction:"side_right",gap:y,offset:_};n.push(B);continue}let[M,,,]=y.startBounds,L=M-p,W=qe(L-y.length);if(Math.abs(W)<=a.x){Math.abs(W)<a.x&&(n.length=0),a.x=Math.abs(W);let B={type:"gap",direction:"side_left",gap:y,offset:W};n.push(B);continue}}for(let y of s){if(!tl([m,p],y.overlap))continue;let w=y.startSide[0][1]+y.length/2,k=qe(w-x);if(y.length>u-d&&Math.abs(k)<=a.y){Math.abs(k)<a.y&&(i.length=0),a.y=Math.abs(k);let B={type:"gap",direction:"center_vertical",gap:y,offset:k};i.push(B);continue}let[,I,,]=y.startBounds,A=I-u,_=qe(A-y.length);if(Math.abs(_)<=a.y){Math.abs(_)<a.y&&(i.length=0),a.y=Math.abs(_);let B={type:"gap",direction:"side_top",gap:y,offset:_};i.push(B);continue}let[,,,M]=y.endBounds,L=qe(d-M),W=y.length-L;if(Math.abs(W)<=a.y){Math.abs(W)<a.y&&(i.length=0),a.y=Math.abs(W);let B={type:"gap",direction:"side_bottom",gap:y,offset:W};i.push(B);continue}}}},v3=(t,e,o,r)=>{let n=b3(t,e,o,r);return Bn(n,r).filter(i=>!(i.length===1&>(i[0]))).flatMap(i=>ds(i,r))},Fa=(t,e,o,r,n,i,a)=>{if(!Kr({appState:o,event:r,selectedElements:t})||t.length===0&&e.length===0)return[];let l=Po.getReferenceSnapPoints();if(l)for(let c of e)for(let s of l){let m=s[0]-c[0],d=s[1]-c[1];Math.abs(m)<=a.x&&(Math.abs(m)<a.x&&(n.length=0),n.push({type:"point",points:[c,s],offset:m}),a.x=Math.abs(m)),Math.abs(d)<=a.y&&(Math.abs(d)<a.y&&(i.length=0),i.push({type:"point",points:[c,s],offset:d}),a.y=Math.abs(d))}},y3=(t,e,o,r,n)=>{let i=ke(t,o);if(!Kr({appState:o,event:r,selectedElements:i})||i.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};e.x=qe(e.x),e.y=qe(e.y);let a=[],l=[],c=Rm(o.zoom.value),s={x:c,y:c},m=ds(i,n,{dragOffset:e});Fa(i,m,o,r,a,l,s),h3(i,e,o,r,a,l,s);let d={x:a[0]?.offset??0,y:l[0]?.offset??0};s.x=0,s.y=0,a.length=0,l.length=0;let p={x:qe(e.x+d.x),y:qe(e.y+d.y)};Fa(i,ds(i,n,{dragOffset:p}),o,r,a,l,s),h3(i,p,o,r,a,l,s);let u=yh(a,l),b=IS(i,p,[...a,...l].filter(x=>x.type==="gap"));return{snapOffset:d,snapLines:[...u,...b]}},qe=t=>Math.round(t*10**6)/10**6,g3=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())},yh=(t,e)=>{let o={},r={};if(t.length>0){for(let n of t)if(n.type==="point"){let i=qe(n.points[0][0]);o[i]||(o[i]=[]),o[i].push(...n.points.map(a=>[qe(a[0]),qe(a[1])]))}}if(e.length>0){for(let n of e)if(n.type==="point"){let i=qe(n.points[0][1]);r[i]||(r[i]=[]),r[i].push(...n.points.map(a=>[qe(a[0]),qe(a[1])]))}}return Object.entries(o).map(([n,i])=>({type:"points",points:g3(i.map(a=>[Number(n),a[1]]).sort((a,l)=>a[1]-l[1]))})).concat(Object.entries(r).map(([n,i])=>({type:"points",points:g3(i.map(a=>[a[0],Number(n)]).sort((a,l)=>a[0]-l[0]))})))},kS=t=>{let e=new Map;for(let o of t){let r=o.points.flat().map(n=>[qe(n)]).join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},IS=(t,e,o)=>{let[r,n,i,a]=tc(t,e),l=[];for(let c of o){let[s,m,d,p]=c.gap.startBounds,[u,b,x,y]=c.gap.endBounds,w=ol([n,a],c.gap.overlap),k=ol([r,i],c.gap.overlap);switch(c.direction){case"center_horizontal":{if(w){let T=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[c.gap.startSide[0][0],T],[r,T]]},{type:"gap",direction:"horizontal",points:[[i,T],[c.gap.endSide[0][0],T]]})}break}case"center_vertical":{if(k){let T=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[T,c.gap.startSide[0][1]],[T,n]]},{type:"gap",direction:"vertical",points:[[T,a],[T,c.gap.endSide[0][1]]]})}break}case"side_right":{if(w){let T=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[d,T],[u,T]]},{type:"gap",direction:"horizontal",points:[[x,T],[r,T]]})}break}case"side_left":{if(w){let T=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[i,T],[s,T]]},{type:"gap",direction:"horizontal",points:[[d,T],[u,T]]})}break}case"side_top":{if(k){let T=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[T,a],[T,m]]},{type:"gap",direction:"vertical",points:[[T,p],[T,b]]})}break}case"side_bottom":{if(k){let T=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[T,p],[T,b]]},{type:"gap",direction:"vertical",points:[[T,y],[T,n]]})}break}}}return kS(l.map(c=>({...c,points:c.points.map(s=>[qe(s[0]),qe(s[1])])})))},E3=(t,e,o,r,n,i)=>{if(!Kr({event:r,selectedElements:t,appState:o})||t.length===0||t.length===1&&!SS(t[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[a,l,c,s]=Ge(e);i&&(i.includes("e")?c+=n.x:i.includes("w")&&(a+=n.x),i.includes("n")?l+=n.y:i.includes("s")&&(s+=n.y));let m=[];if(i)switch(i){case"e":{m.push([c,l],[c,s]);break}case"w":{m.push([a,l],[a,s]);break}case"n":{m.push([a,l],[c,l]);break}case"s":{m.push([a,s],[c,s]);break}case"ne":{m.push([c,l]);break}case"nw":{m.push([a,l]);break}case"se":{m.push([c,s]);break}case"sw":{m.push([a,s]);break}}let d=Rm(o.zoom.value),p={x:d,y:d},u=[],b=[];Fa(e,m,o,r,u,b,p);let x={x:u[0]?.offset??0,y:b[0]?.offset??0};p.x=0,p.y=0,u.length=0,b.length=0;let[y,w,k,T]=Ge(t).map(_=>qe(_));Fa(t,[[y,w],[y,T],[k,w],[k,T]],o,r,u,b,p);let A=yh(u,b);return{snapOffset:x,snapLines:A}},w3=(t,e,o,r,n,i)=>{if(!Kr({event:o,selectedElements:[t],appState:e}))return{snapOffset:{x:0,y:0},snapLines:[]};let a=[[r.x+n.x,r.y+n.y]],l=Rm(e.zoom.value),c={x:l,y:l},s=[],m=[];Fa([t],a,e,o,s,m,c);let d={x:s[0]?.offset??0,y:m[0]?.offset??0};c.x=0,c.y=0,s.length=0,m.length=0;let p=ds([t],i,{boundingBoxCorners:!0,omitCenter:!0});Fa([t],p,e,o,s,m,c);let u=yh(s,m);return{snapOffset:d,snapLines:u}},T3=(t,e,o,r,n)=>{if(!Kr({event:r,selectedElements:[],appState:e}))return{originOffset:{x:0,y:0},snapLines:[]};let i=Yu(t,[],e,n),a=Rm(e.zoom.value),l={x:a,y:a},c=[],s=[];for(let m of i){let d=ds([m],n);for(let p of d){let u=p[0]-o.x;Math.abs(u)<=Math.abs(l.x)&&(Math.abs(u)<Math.abs(l.x)&&(s.length=0),s.push({type:"pointer",points:[p,[p[0],o.y]],direction:"vertical"}),l.x=u);let b=p[1]-o.y;Math.abs(b)<=Math.abs(l.y)&&(Math.abs(b)<Math.abs(l.y)&&(c.length=0),c.push({type:"pointer",points:[p,[o.x,p[1]]],direction:"horizontal"}),l.y=b)}}return{originOffset:{x:s.length>0?s[0].points[0][0]-o.x:0,y:c.length>0?c[0].points[0][1]-o.y:0},snapLines:[...s,...c]}},C3=t=>t===mt.rectangle||t===mt.ellipse||t===mt.diamond||t===mt.frame||t===mt.magicframe||t===mt.image;h();var Wt=v(C(),1),_S=()=>(0,Wt.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line1",bold:t=>(0,Wt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line2",bold:t=>(0,Wt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line3",link:t=>(0,Wt.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:t})})}),(0,Wt.jsx)("p",{children:(0,Wt.jsx)(Jt,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:t=>(0,Wt.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:t}),discordLink:t=>(0,Wt.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[t,"."]})})})]}),S3=_S;h();var Nm={width:100,height:0},In=100,MS=(t,e,o)=>{let r=rn({x:0,y:0,textAlign:Ka.CENTER,verticalAlign:fo.MIDDLE,...e,containerId:t.id,strokeColor:e.strokeColor||t.strokeColor});return Object.assign(t,{boundElements:(t.boundElements||[]).concat({type:"text",id:r.id})}),Bt(r,t,o),[t,r]},k3=(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??In,d=e?.height??In,p;e.id&&(p=r.getElement(e.id),p||console.error(`No element for start binding with id ${e.id} found`));let u=e.x||t.x-m,b=e.y||t.y-d/2,x=p?p.type:e.type;if(x){if(x==="text"){let y="";p&&p.type==="text"?y=p.text:e.type==="text"&&(y=e.text),y||console.error(`No text found for start binding text element for ${t.id}`),i=rn({x:u,y:b,type:"text",...p,...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=on({x:u,y:b,width:m,height:d,...p,...e,type:x});break}default:Us(t,`Unhandled element start type "${e.type}"`,!0)}yu(t,i,"start",n)}}if(o){let m=o?.height??In,d=o?.width??In,p;o.id&&(p=r.getElement(o.id),p||console.error(`No element for end binding with id ${o.id} found`));let u=o.x||t.x+t.width,b=o.y||t.y-m/2,x=p?p.type:o.type;if(x){if(x==="text"){let y="";p&&p.type==="text"?y=p.text:o.type==="text"&&(y=o.text),y||console.error(`No text found for end binding text element for ${t.id}`),a=rn({x:u,y:b,type:"text",...p,...o,text:y}),Object.assign(a,{y:o.y||t.y-a.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{a=on({x:u,y:b,width:d,height:m,...p,...o,type:x});break}default:Us(t,`Unhandled element end type "${x}"`,!0)}yu(t,a,"end",n)}}let l=t.points.length-1,c=.5,s=er(t.points);return t.points[l][0]>t.points[l-1][0]&&(s[0][0]=c,s[l][0]-=c),t.points[l][0]<t.points[l-1][0]&&(s[0][0]=-c,s[l][0]+=c),t.points[l][1]>t.points[l-1][1]&&(s[0][1]=c,s[l][1]-=c),t.points[l][1]<t.points[l-1][1]&&(s[0][1]=-c,s[l][1]+=c),Object.assign(t,{points:s}),{linearElement:t,startBoundElement:i,endBoundElement:a}},Eh=class{excalidrawElements=new Map;add=e=>{e&&this.excalidrawElements.set(e.id,e)};getElements=()=>Array.from(this.excalidrawElements.values());getElementsMap=()=>Gs(this.excalidrawElements);getElement=e=>this.excalidrawElements.get(e)},as=(t,e)=>{if(!t)return[];let o=er(t),r=new Eh,n=new Map,i=new Map;for(let l of o){let c,s=l.id;switch(e?.regenerateIds!==!1&&Object.assign(l,{id:Qr()}),l.type){case"rectangle":case"ellipse":case"diamond":{let d=l?.label?.text&&l.width===void 0?0:l?.width||In,p=l?.label?.text&&l.height===void 0?0:l?.height||In;c=on({...l,width:d,height:p});break}case"line":{let d=l.width||Nm.width,p=l.height||Nm.height;c=ml({width:d,height:p,points:[[0,0],[d,p]],...l});break}case"arrow":{let d=l.width||Nm.width,p=l.height||Nm.height;c=ml({width:d,height:p,endArrowhead:"arrow",points:[[0,0],[d,p]],...l}),Object.assign(c,Zg(c.points));break}case"text":{let d=l?.fontFamily||gi,p=l?.fontSize||xr,u=l?.lineHeight||Cr(d),b=l.text??"",x=cl(b),y=Qs(x,Fo({fontFamily:d,fontSize:p}),u);c=rn({width:y.width,height:y.height,fontFamily:d,fontSize:p,...l});break}case"image":{c=ic({width:l?.width||In,height:l?.height||In,...l});break}case"frame":{c=nc({x:0,y:0,...l});break}case"magicframe":{c=dl({x:0,y:0,...l});break}case"freedraw":case"iframe":case"embeddable":{c=l;break}default:c=l,Us(l,`Unhandled element type "${l.type}"`,!0)}r.getElement(c.id)?console.error(`Duplicate id found for ${c.id}`):(r.add(c),n.set(c.id,l),s&&i.set(s,c.id))}let a=r.getElementsMap();for(let[l,c]of n){let s=r.getElement(l);switch(c.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(c.label?.text){let[m,d]=MS(s,c?.label,a);if(r.add(m),r.add(d),m.type==="arrow"){let p=c.type==="arrow"?c?.start:void 0,u=c.type==="arrow"?c?.end:void 0;if(p&&p.id){let w=i.get(p.id);w&&Object.assign(p,{id:w})}if(u&&u.id){let w=i.get(u.id);w&&Object.assign(u,{id:w})}let{linearElement:b,startBoundElement:x,endBoundElement:y}=k3(m,p,u,r,a);m=b,r.add(b),r.add(x),r.add(y)}}else switch(c.type){case"arrow":{let{start:m,end:d}=c;if(m&&m.id){let x=i.get(m.id);Object.assign(m,{id:x})}if(d&&d.id){let x=i.get(d.id);Object.assign(d,{id:x})}let{linearElement:p,startBoundElement:u,endBoundElement:b}=k3(s,m,d,r,a);r.add(p),r.add(u),r.add(b);break}}break}}}for(let[l,c]of n){if(c.type!=="frame"&&c.type!=="magicframe")continue;let s=r.getElement(l);if(!s)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let m=[];c.children.forEach(k=>{let T=i.get(k);if(!T)throw new Error(`Element with ${k} wasn't mapped correctly`);let I=r.getElement(T);if(!I)throw new Error(`Frame element with id ${T} doesn't exist`);Object.assign(I,{frameId:s.id}),I?.boundElements?.forEach(A=>{let _=r.getElement(A.id);if(!_)throw new Error(`Bound element with id ${A.id} doesn't exist`);Object.assign(_,{frameId:s.id}),m.push(_)}),m.push(I)});let[d,p,u,b]=Ge(m),x=10;d=d-x,p=p-x,u=u+x,b=b+x;let y=Math.max(s?.width,u-d),w=Math.max(s?.height,b-p);Object.assign(s,{x:d,y:p,width:y,height:w})}return r.getElements()};h();h();var $a=v($(),1);h();var wh=v(ir(),1),I3=v($(),1);var Xe=t=>e=>{(0,wh.unstable_batchedUpdates)(t,e)},Om=t=>Bs(e=>{(0,wh.unstable_batchedUpdates)(t,e)}),Bm=(()=>{let t;try{let o=I3.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 Th=(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();h();var AS="#ff6b6b",LS="#ff0000",_3=1,M3=2,A3=(t,e)=>{if(!e.snapLines.length)return;let o=e.theme==="light"||e.zenModeEnabled?AS:LS,r=(e.zenModeEnabled?_3*1.5:_3)/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,DS(n,t,e)):n.type==="gap"?(t.lineWidth=r,t.strokeStyle=o,RS(n.points[0],n.points[1],n.direction,e,t)):n.type==="points"&&(t.lineWidth=r,t.strokeStyle=o,PS(n,t,e));t.restore()},PS=(t,e,o)=>{if(!o.zenModeEnabled){let r=t.points[0],n=t.points[t.points.length-1];Do(r,n,e)}for(let r of t.points)L3(r,o,e)},DS=(t,e,o)=>{L3(t.points[0],o,e),o.zenModeEnabled||Do(t.points[0],t.points[1],e)},L3=([t,e],o,r)=>{r.save();let n=(o.zenModeEnabled?M3*1.5:M3)/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()},Do=(t,e,o)=>{o.beginPath(),o.lineTo(...t),o.lineTo(...e),o.stroke()},RS=(t,e,o,r,n)=>{let i=8/r.zoom.value,a=i/2,l=i/4;if(o==="horizontal"){let c=[(t[0]+e[0])/2,t[1]];r.zenModeEnabled||Do([t[0],t[1]-i],[t[0],t[1]+i],n),Do([c[0]-l,c[1]-a],[c[0]-l,c[1]+a],n),Do([c[0]+l,c[1]-a],[c[0]+l,c[1]+a],n),r.zenModeEnabled||(Do([e[0],e[1]-i],[e[0],e[1]+i],n),Do(t,e,n))}else{let c=[t[0],(t[1]+e[1])/2];r.zenModeEnabled||Do([t[0]-i,t[1]],[t[0]+i,t[1]],n),Do([c[0]-a,c[1]-l],[c[0]+a,c[1]-l],n),Do([c[0]-a,c[1]+l],[c[0]+a,c[1]+l],n),r.zenModeEnabled||(Do([e[0]-i,e[1]],[e[0]+i,e[1]],n),Do(t,e,n))}};var NS=(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),Sh(a,t,e),t.restore()},Sh=(t,e,o)=>{e.fillStyle="rgba(105, 101, 219, 0.4)",fl(e,t[0],t[1],ue.POINT_HANDLE_SIZE/o.zoom.value,!1)},ms=(t,e,o,r,n,i,a,l,c=!1,s=0)=>{t.save(),t.translate(i,a),t.rotate(l),c&&t.fillRect(e-i,o-a,r,n),s&&t.roundRect?(t.beginPath(),t.roundRect(e-i,o-a,r,n,s),t.stroke(),t.closePath()):t.strokeRect(e-i,o-a,r,n),t.restore()},OS=(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()},Fm=(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)"),fl(t,o[0],o[1],r/e.zoom.value,!i)},BS=(t,e,o,r,n,i)=>{t.beginPath(),t.ellipse(r,n,e/2,o/2,i,0,Math.PI*2),t.stroke()},FS=(t,e,o)=>{let[r,n,i,a]=bo(e,o),l=i-r,c=a-n,s=vu(e,l,c),m=4;t.strokeStyle="rgba(0,0,0,.05)",t.lineWidth=s-m;let d=m/2+s/2;switch(e.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":ms(t,r-d,n-d,l+d*2,c+d*2,r+l/2,n+c/2,e.angle);break;case"diamond":let p=Math.hypot(l,c),u=d*p/c,b=d*p/l;OS(t,l+u*2,c+b*2,r+l/2,n+c/2,e.angle);break;case"ellipse":BS(t,l+d*2,c+d*2,r+l/2,n+c/2,e.angle);break}},$S=(t,e,o)=>{let[r,n,i]=e,a=vu(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(c=>{let[s,m]=ue.getPointAtIndexGlobalCoordinates(r,c,o);fl(t,s,m,a)})},D3=(t,e,o,r=ru*2)=>{let{angle:n,elementX1:i,elementY1:a,elementX2:l,elementY2:c,selectionColors:s,cx:m,cy:d,dashed:p,activeEmbeddable:u}=o,b=l-i,x=c-a,y=r/e.zoom.value,w=8/e.zoom.value,k=4/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=(u?4:1)/e.zoom.value;let T=s.length;for(let I=0;I<T;++I)t.strokeStyle=s[I],p&&t.setLineDash([w,k+(w+k)*(T-1)]),t.lineDashOffset=(w+k)*I,ms(t,i-y,a-y,b+y*2,x+y*2,m,d,n);t.restore()},HS=(t,e,o,r)=>{let n=Array.isArray(o)?$S:FS;t.save(),t.translate(e.scrollX,e.scrollY),n(t,o,r),t.restore()},zS=(t,e,o,r)=>{let[n,i,a,l]=bo(o,r),c=a-n,s=l-i;t.strokeStyle="rgb(0,118,255)",t.lineWidth=Bo.strokeWidth/e.zoom.value,t.save(),t.translate(e.scrollX,e.scrollY),ms(t,n,i,c,s,n+c/2,i+s/2,o.angle,!1,Bo.radius/e.zoom.value),t.restore()},US=(t,e,o)=>{let r=o.filter(l=>l.groupIds.length===0),n=o.filter(l=>l.groupIds.length>0),i=l=>{let[c,s,m,d]=Ge(l);return{angle:0,elementX1:c,elementX2:m,elementY1:s,elementY2:d,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:c+(m-c)/2,cy:s+(d-s)/2,activeEmbeddable:!1}},a=l=>{let c=ut(o,l);return i(c)};Object.entries(w1(n,e)).filter(([l,c])=>c).map(([l,c])=>l).map(l=>a(l)).concat(r.map(l=>i([l]))).forEach(l=>D3(t,e,l))},Ch=(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((c,s)=>{let m=!!e.editingLinearElement?.selectedPointsIndices?.includes(s);Fm(t,e,c,a,m)}),ue.getEditorMidPoints(o,r,e).filter(c=>c!==null).forEach(c=>{e?.selectedLinearElement?.segmentMidPointHoveredCoords&&ue.arePointsEqual(c,e.selectedLinearElement.segmentMidPointHoveredCoords)?e.editingLinearElement?(Fm(t,e,c,a,!1),Sh(c,t,e)):(Sh(c,t,e),Fm(t,e,c,a,!1)):(e.editingLinearElement||n.length===2)&&Fm(t,e,c,i/2,!1,!0)}),t.restore()},P3=(t,e,o,r,n)=>{Object.keys(r).forEach(i=>{let a=r[i];if(a!==void 0){let[l,c,s,m]=a;t.save(),t.lineWidth=1/o.zoom.value,e.selectionColor&&(t.strokeStyle=e.selectionColor),i==="rotation"?fl(t,l+s/2,c+m/2,s/2):t.roundRect?(t.beginPath(),t.roundRect(l,c,s,m,2/o.zoom.value),t.fill(),t.stroke()):ms(t,l,c,s,m,l+s/2,c+m/2,n,!0),t.restore()}})},R3=({canvas:t,elementsMap:e,visibleElements:o,selectedElements:r,scale:n,appState:i,renderConfig:a})=>{if(t===null)return{atLeastOneVisibleElement:!1,elementsMap:e};let[l,c]=q1(t,n),s=J1({canvas:t,scale:n,normalizedWidth:l,normalizedHeight:c});s.save(),s.scale(i.zoom.value,i.zoom.value);let m;if(o.forEach(u=>{i.editingLinearElement?.elementId===u.id&&u&&(m=u)}),m&&Ch(s,i,m,e),i.selectionElement)try{gb(i.selectionElement,s,i)}catch(u){console.error(u)}i.isBindingEnabled&&i.suggestedBindings.filter(u=>u!=null).forEach(u=>{HS(s,i,u,e)}),i.frameToHighlight&&zS(s,i,i.frameToHighlight,e),i.elementsToHighlight&&US(s,i,i.elementsToHighlight);let d=r.some(u=>we(u));if(r.length===1&&i.editingLinearElement?.elementId===r[0].id&&Ch(s,i,r[0],e),i.selectedLinearElement&&i.selectedLinearElement.hoverPointIndex>=0&&NS(s,i,e),!i.multiElement&&!i.editingLinearElement){let u=Vs(r,i);r.length===1&&De(r[0])&&i.selectedLinearElement?.elementId===r[0].id&&!r[0].locked&&Ch(s,i,r[0],e);let x=a.selectionColor||Qe.black;if(u){let y=Se(r),w=[];for(let T of e.values()){let I=[];if(y.has(T.id)&&!oc(i,T)&&I.push(x),a.remoteSelectedElementIds[T.id]&&I.push(...a.remoteSelectedElementIds[T.id].map(A=>Qn(A))),I.length){let[A,_,M,L,W,B]=bo(T,e,!0);w.push({angle:T.angle,elementX1:A,elementY1:_,elementX2:M,elementY2:L,selectionColors:I,dashed:!!a.remoteSelectedElementIds[T.id],cx:W,cy:B,activeEmbeddable:i.activeEmbeddable?.element===T&&i.activeEmbeddable.state==="active"})}}let k=T=>{let I=ut(e,T),[A,_,M,L]=Ge(I);w.push({angle:0,elementX1:A,elementX2:M,elementY1:_,elementY2:L,selectionColors:[Qe.black],dashed:!0,cx:A+(M-A)/2,cy:_+(L-_)/2,activeEmbeddable:!1})};for(let T of kr(i))k(T);i.editingGroupId&&k(i.editingGroupId),w.forEach(T=>D3(s,i,T))}if(s.save(),s.translate(i.scrollX,i.scrollY),r.length===1){s.fillStyle=Qe.white;let y=e1(r[0],i.zoom,e,"mouse");!i.viewModeEnabled&&u&&P3(s,a,i,y,r[0].angle)}else if(r.length>1&&!i.isRotating){let y=ru*2/i.zoom.value;s.fillStyle=Qe.white;let[w,k,T,I]=Ge(r),A=s.getLineDash();s.setLineDash([2/i.zoom.value]);let _=s.lineWidth;s.lineWidth=1/i.zoom.value,s.strokeStyle=x,ms(s,w-y,k-y,T-w+y*2,I-k+y*2,(w+T)/2,(k+I)/2,0),s.lineWidth=_,s.setLineDash(A);let M=Qg([w,k,T,I,(w+T)/2,(k+I)/2],0,i.zoom,"mouse",d?Jg:qg);r.some(L=>!L.locked)&&P3(s,a,i,M,0)}s.restore()}A3(s,i),s.restore();for(let u in a.remotePointerViewportCoords){let{x:b,y:x}=a.remotePointerViewportCoords[u];b-=i.offsetLeft,x-=i.offsetTop;let y=11,w=14,k=b<0||b>l-y||x<0||x>c-w;b=Math.max(b,0),b=Math.min(b,l-y),x=Math.max(x,0),x=Math.min(x,c-w);let T=Qn(u);s.save(),s.strokeStyle=T,s.fillStyle=T;let I=a.remotePointerUserStates[u],A=k||I==="idle"||I==="away";A&&(s.globalAlpha=.3),a.remotePointerButton&&a.remotePointerButton[u]==="down"&&(s.beginPath(),s.arc(b,x,15,0,2*Math.PI,!1),s.lineWidth=3,s.strokeStyle="#ffffff88",s.stroke(),s.closePath(),s.beginPath(),s.arc(b,x,15,0,2*Math.PI,!1),s.lineWidth=1,s.strokeStyle=T,s.stroke(),s.closePath()),s.fillStyle=Qe.white,s.strokeStyle=Qe.white,s.lineWidth=6,s.lineJoin="round",s.beginPath(),s.moveTo(b,x),s.lineTo(b+0,x+14),s.lineTo(b+4,x+9),s.lineTo(b+11,x+8),s.closePath(),s.stroke(),s.fill(),s.fillStyle=T,s.strokeStyle=T,s.lineWidth=2,s.lineJoin="round",s.beginPath(),A?(s.moveTo(b-1,x-1),s.lineTo(b-1,x+15),s.lineTo(b+5,x+10),s.lineTo(b+12,x+9),s.closePath(),s.fill()):(s.moveTo(b,x),s.lineTo(b+0,x+14),s.lineTo(b+4,x+9),s.lineTo(b+11,x+8),s.closePath(),s.fill(),s.stroke());let _=a.remotePointerUsernames[u]||"";if(!k&&_){s.font="600 12px sans-serif";let M=b+y/2,L=x+w+2,W=5,B=3,Y=s.measureText(_),O=Y.actualBoundingBoxDescent+Y.actualBoundingBoxAscent,z=Math.max(O,12),ne=M-1,Q=L-1,xe=Y.width+2+W*2+2,Ee=z+2+B*2+2;s.roundRect?(s.beginPath(),s.roundRect(ne,Q,xe,Ee,8),s.fillStyle=T,s.fill(),s.strokeStyle=Qe.white,s.stroke()):Th(s,ne,Q,xe,Ee,8,Qe.white),s.fillStyle=Qe.black,s.fillText(_,M+W+1,L+B+Y.actualBoundingBoxAscent+Math.floor((z-O)/2)+2)}s.restore(),s.closePath()}let p;return a.renderScrollbars&&(p=tw(o,l,c,i),s.save(),s.fillStyle=ew,s.strokeStyle="rgba(255,255,255,0.8)",[p.horizontal,p.vertical].forEach(u=>{u&&Th(s,u.x,u.y,u.width,u.height,ur/2)}),s.restore()),{scrollBars:p,atLeastOneVisibleElement:o.length>0,elementsMap:e}},kh=Bs(t=>{let e=R3(t);t.callback?.(e)},{trailing:!0}),N3=(t,e)=>{if(e){kh(t);return}let o=R3(t);return t.callback(o),o};var B3=v(C(),1),WS=t=>{let e=(0,$a.useRef)(!1);return(0,$a.useEffect)(()=>{if(!e.current){e.current=!0;return}let o={},r={},n={},i={},a={};t.appState.collaborators.forEach((c,s)=>{if(c.selectedElementIds)for(let m of Object.keys(c.selectedElementIds))m in n||(n[m]=[]),n[m].push(s);c.pointer&&(c.username&&(i[s]=c.username),c.userState&&(a[s]=c.userState),r[s]=Kt({sceneX:c.pointer.x,sceneY:c.pointer.y},t.appState),o[s]=c.button)});let l=t.containerRef?.current&&getComputedStyle(t.containerRef.current).getPropertyValue("--color-selection")||"#6965db";N3({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},callback:t.renderInteractiveSceneCallback},Bm())}),(0,B3.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:t.appState.width,height:t.appState.height,cursor:t.appState.viewModeEnabled?Pe.GRAB:Pe.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")})},O3=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}),GS=(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:Mt(O3(t.appState),O3(e.appState)),Ih=$a.default.memo(WS,GS);h();var di=v($(),1);var $3=v(C(),1),VS=t=>{let e=(0,di.useRef)(null),o=(0,di.useRef)(!1);return(0,di.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,c=t.appState.height*t.scale;n.width!==l&&(n.width=l),n.height!==c&&(n.height=c),eb({canvas:n,rc:t.rc,scale:t.scale,elementsMap:t.elementsMap,allElementsMap:t.allElementsMap,visibleElements:t.visibleElements,appState:t.appState,renderConfig:t.renderConfig},Bm())}),(0,$3.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:e})},F3=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}),KS=(t,e)=>t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements?!1:Mt(F3(t.appState),F3(e.appState))&&Mt(t.renderConfig,e.renderConfig),_h=di.default.memo(VS,KS);h();var us=class{scene;constructor(e){this.scene=e}getRenderableElements=(()=>{let e=({elementsMap:r,zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:c,height:s,width:m})=>{let d=[];for(let p of r.values())gl(p,m,s,{zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:c},r)&&d.push(p);return d},o=({elements:r,editingElement:n,pendingImageElementId:i})=>{let a=Gs(new Map);for(let l of r)Jr(l)&&i===l.id||(!n||n.type!=="text"||l.id!==n.id)&&a.set(l.id,l);return a};return $g(({zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:c,width:s,editingElement:m,pendingImageElementId:d,versionNonce:p})=>{let u=this.scene.getNonDeletedElements(),b=o({elements:u,editingElement:m,pendingImageElementId:d}),x=e({elementsMap:b,zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:c,width:s});return{elementsMap:b,visibleElements:x}})})();destroy(){kh.cancel(),Q1.cancel(),this.getRenderableElements.clear()}};h();var $m=v($(),1);var Mh=v(C(),1),H3=({trails:t})=>{let e=(0,$m.useRef)(null);return(0,$m.useEffect)(()=>{if(e.current)for(let o of t)o.start(e.current);return()=>{for(let o of t)o.stop()}},t),(0,Mh.jsx)("div",{className:"SVGLayer",children:(0,Mh.jsx)("svg",{ref:e})})};h();var z3=v(C(),1),YS=5,ZS=(t,e,o)=>{let[r,n]=bo(t,o),{x:i,y:a}=Kt({sceneX:r+t.width,sceneY:n},e),l=i-e.offsetLeft+10,c=a-e.offsetTop;return{x:l,y:c}},Ah=({children:t,element:e,elementsMap:o})=>{let r=ya();if(r.contextMenu||r.draggingElement||r.resizingElement||r.isRotating||r.openMenu||r.viewModeEnabled)return null;let{x:n,y:i}=ZS(e,r,o);return(0,z3.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${i}px`,left:`${n}px`,padding:YS},children:t})};h();var jS=`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,8 +68,8 @@ 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 M3({image:t,apiKey:e,text:o,theme:r="light"}){let n={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:OS},{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 ls=v(T(),1),BS="small",Lm=t=>(0,ls.jsxs)("label",{className:F("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${BS}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,ls.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,ls.jsx)("div",{className:"ToolIcon__icon",children:t.icon})]});h();var mi=v(T(),1),FS=({height:t,width:e,userToFollow:o,onDisconnect:r})=>(0,mi.jsx)("div",{className:"follow-mode",style:{width:e,height:t},children:(0,mi.jsxs)("div",{className:"follow-mode__badge",children:[(0,mi.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,mi.jsx)("span",{className:"follow-mode__badge__username",title:o.username,children:o.username})]}),(0,mi.jsx)("button",{onClick:r,className:"follow-mode__disconnect-btn",children:wo})]})}),A3=FS;h();var Pm=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 $S(t,e,o,r){Object.defineProperty(t,e,{get:o,set:r,enumerable:!0,configurable:!0})}var HS={};$S(HS,"LaserPointer",()=>cs);function st([t,e,o],[r,n,i]){return[t+r,e+n,o+i]}function ss([t,e,o],[r,n,i]){return[t-r,e-n,o-i]}function yt([t,e,o],r){return[t*r,e*r,o*r]}function Fa([t,e,o]){return[t/Math.sqrt(t**2+e**2),e/Math.sqrt(t**2+e**2),o]}function Gt([t,e,o],r){return[Math.cos(r)*t-Math.sin(r)*e,Math.sin(r)*t+Math.cos(r)*e,o]}function zS(t,e,o){return st(t,yt(ss(e,t),o))}function L3(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 P3(t){return Math.atan2(Math.sin(t),Math.cos(t))}function D3([t,e]){return Math.sqrt(t**2+e**2)}function $a([t,e],[o,r]){return Math.sqrt((o-t)**2+(r-e)**2)}function US(t){if(t.length<2)return 0;let e=0;for(let o=1;o<=t.length-1;o++)e+=$a(t[o-1],t[o]);return e+=$a(t[t.length-2],t[t.length-1]),e}var WS=(t,e,o)=>Math.max(e,Math.min(o,t));function GS(t,e,o){let r=$a(e,o);if(r===0)return $a(t,e);let n=WS(((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 $a(i,t)}function Dm(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],c,s)=>{let m=GS(c,o,r);return m>a?[m,s]:[a,l]},[0,-1]);if(n>=e){let a=t[i];return[...Dm([o,...t.slice(1,i),a],e).slice(0,-1),a,...Dm([a,...t.slice(i,-1),r],e).slice(1)]}else return[o,r]}var cs=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=zS(this.lastPoint,e,1-this.options.streamline)),this.tailPoints.push(e),US(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=Dm(o,this.options.simplify));let r=o.length;if(r===0)return[];if(r===1){let M=o[0],L=this.getSize(e,M[2],0,r,0);if(L<.5)return[];let W=[];for(let B=0;B<=Math.PI*2;B+=Math.PI/16)W.push(st(M,yt(Gt([1,0,0],B),L)));return W.push(st(M,yt([1,0,0],this.getSize(e,M[2],0,r,0)))),W}if(r===2){let M=o[0],L=o[1],W=this.getSize(e,M[2],0,r,0),B=this.getSize(e,L[2],0,r,0);if(W<.5||B<.5)return[];let Y=[],O=L3(M,[M[0],M[1]-100,M[2]],L);for(let z=O;z<=Math.PI+O;z+=Math.PI/16)Y.push(st(M,yt(Gt([1,0,0],z),W)));for(let z=Math.PI+O;z<=Math.PI*2+O;z+=Math.PI/16)Y.push(st(L,yt(Gt([1,0,0],z),B)));return Y.push(Y[0]),Y}let n=[],i=[],a=0,l=0,c=0,s=0;for(let M=1;M<r-1;M++){let L=o[M-1],W=o[M],B=o[M+1],Y=W[2],O=$a(L,W);s+=O,a=l+(O-l)*.2;let z=this.getSize(e,Y,M,r,s);if(z===0){c=M+1;continue}let ne=Fa(ss(L,W)),Q=Fa(ss(B,W)),xe=Gt(ne,Math.PI/2),Ee=Gt(ne,-Math.PI/2),de=Gt(Q,Math.PI/2),se=Gt(Q,-Math.PI/2),P=st(W,yt(xe,z)),R=st(W,yt(Ee,z)),G=st(W,yt(de,z)),K=st(W,yt(se,z)),V=st(xe,se),Z=st(Ee,de),q=st(W,yt(D3(V)===0?ne:Fa(V),z)),te=st(W,yt(D3(Z)===0?Q:Fa(Z),z)),ct=P3(L3(W,L,B)),Je=t.constants.cornerDetectionMaxAngle/180*Math.PI*t.constants.cornerDetectionVariance(a);if(Math.abs(ct)<Je){let rt=Math.abs(P3(Math.PI-ct));if(rt===0)continue;if(ct<0){i.push(R,te);for(let He=0;He<=rt;He+=rt/4)n.push(st(W,Gt(yt(xe,z),He)));for(let He=rt;He>=0;He-=rt/4)i.push(st(W,Gt(yt(xe,z),He)));i.push(te,G)}else{n.push(P,q);for(let He=0;He<=rt;He+=rt/4)i.push(st(W,Gt(yt(xe,-z),-He)));for(let He=rt;He>=0;He-=rt/4)n.push(st(W,Gt(yt(xe,-z),-He)));n.push(q,K)}}else n.push(q),i.push(te);l=a}if(c>=r-2)if(this.options.keepHead){let M=o[r-1],L=[];for(let W=0;W<=Math.PI*2;W+=Math.PI/16)L.push(st(M,yt(Gt([1,0,0],W),this.options.size)));return L.push(st(M,yt([1,0,0],this.options.size))),L}else return[];let m=o[c],d=o[c+1],p=o[r-2],u=o[r-1],b=Fa(ss(d,m)),x=Fa(ss(p,u)),y=Gt(b,-Math.PI/2),w=Gt(x,Math.PI/2),k=this.getSize(e,m[2],0,r,0),C=[],I=this.options.keepHead?this.options.size:this.getSize(e,p[2],r-2,r,s),A=[];if(k>1){for(let M=0;M<=Math.PI;M+=Math.PI/16)C.unshift(st(m,Gt(yt(y,k),-M)));C.unshift(st(m,yt(y,-k)))}else C.push(m);for(let M=0;M<=Math.PI*3;M+=Math.PI/16)A.push(st(u,Gt(yt(w,-I),-M)));let _=[...C,...n,...A.reverse(),...i.reverse()];return C.length>0&&_.push(C[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Dm(_,this.options.simplify):_}};var ui=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(gg,"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 cs(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=Kt({sceneX:n,sceneY:i},o);return[a.x,a.y]});return Ag(r,!0)}};h();var Rm=class{constructor(e,o){this.animationFrameHandler=e;this.app=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new ui(e,o,{...this.getTrailOptions(),fill:()=>"red"})}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(Dn(i),Dn(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 ui(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>Qn(e)}),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 VS=(t,e,o,r,n,i)=>{let{zoom:a}=r,l=180*o/Math.PI,c=t*(a.value-1)/2,s=e*(a.value-1)/2;return t>n&&a.value!==1&&(c=n*(a.value-1)/2),e>i&&a.value!==1&&(s=i*(a.value-1)/2),`translate(${c}px, ${s}px) scale(${a.value}) rotate(${l}deg)`},R3=({id:t,onChange:e,onSubmit:o,getViewportCoords:r,element:n,canvas:i,excalidrawContainer:a,app:l})=>{let c=(O,z)=>{if(!z.style.fontFamily||!z.style.fontSize)return!1;let ne=z.style.fontFamily.replace(/"/g,"");return Qm({fontFamily:O.fontFamily})!==ne||`${O.fontSize}px`!==z.style.fontSize},s=()=>{let O=l.state,z=to.getScene(n)?.getElement(t);if(!z)return;let{textAlign:ne,verticalAlign:Q}=z,xe=l.scene.getNonDeletedElementsMap();if(z&&ie(z)){let Ee=z.x,de=z.y,se=Cr(z,l.scene.getNonDeletedElementsMap()),P=z.width,R=z.height,G=z.width,K=z.height;if(se&&z.containerId){if(yr(se)){let Vt=ue.getBoundTextElementPosition(se,z,xe);Ee=Vt.x,de=Vt.y}let rt=c(z,m),He;if(rt?He=il(se.id,se.height):(He=jg[se.id],He||(He=il(se.id,se.height))),P=fu(se,z),R=s1(se,z),!yr(se)&&K>R){let Vt=_i(K,se.type);J(se,{height:Vt});return}else if(!yr(se)&&se.height>He.height&&K<R){let Vt=_i(K,se.type);J(se,{height:Vt})}else{let{y:Vt}=Vs(se,z,xe);de=Vt}}let[V,Z]=r(Ee,de),q=m.selectionStart,te=m.selectionEnd,ct=m.value.length;if(q===te&&te!==ct){let rt=ct-te;m.selectionStart=m.value.length-rt,m.selectionEnd=m.value.length-rt}se||(P=(O.width-8-V)/O.zoom.value,G=Math.min(G,P));let Je=(O.height-Z)/O.zoom.value;Object.assign(m.style,{font:Bo(z),lineHeight:z.lineHeight,width:`${G}px`,height:`${K}px`,left:`${V}px`,top:`${Z}px`,transform:VS(G,K,n1(z,se),O,P,Je),textAlign:ne,verticalAlign:Q,color:z.strokeColor,opacity:z.opacity/100,filter:"var(--theme-filter)",maxHeight:`${Je}px`}),m.scrollTop=0,Ds()&&(m.style.fontFamily=Qm(z)),J(z,{x:Ee,y:de})}},m=document.createElement("textarea");m.dir="auto",m.tabIndex=0,m.dataset.type="wysiwyg",m.wrap="off",m.classList.add("excalidraw-wysiwyg");let d="pre",p="normal";gt(n)&&(d="pre-wrap",p="break-word"),Object.assign(m.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,padding:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:p,whiteSpace:d,overflowWrap:"break-word",boxSizing:"content-box"}),m.value=n.originalText,s(),e&&(m.onpaste=async O=>{let z=await cc(O,!0);if(!z.text)return;let ne=al(z.text);if(!ne)return;let Q=Cr(n,l.scene.getNonDeletedElementsMap()),xe=Bo({fontSize:l.state.currentItemFontSize,fontFamily:l.state.currentItemFontFamily});if(Q){let Ee=nt(Q,l.scene.getNonDeletedElementsMap()),de=t1(`${m.value}${ne}`,xe,fu(Q,Ee)),se=e1(de,xe);m.style.width=`${se}px`}},m.oninput=()=>{e(al(m.value))}),m.onkeydown=O=>{if(!O.shiftKey&&pd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(pd),s();else if(!O.shiftKey&&fd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(fd),s();else if($p.keyTest(O))l.actionManager.executeAction($p);else if(Hp.keyTest(O))l.actionManager.executeAction(Hp);else if(O.key===S.ESCAPE)O.preventDefault(),I=!0,A();else if(O.key===S.ENTER&&O[S.CTRL_OR_CMD]){if(O.preventDefault(),O.isComposing||O.keyCode===229)return;I=!0,A()}else if(O.key===S.TAB||O[S.CTRL_OR_CMD]&&(O.code===me.BRACKET_LEFT||O.code===me.BRACKET_RIGHT)){if(O.preventDefault(),O.isComposing)return;O.shiftKey||O.code===me.BRACKET_LEFT?w():y(),m.dispatchEvent(new Event("input"))}};let u=4,b=" ".repeat(u),x=new RegExp(`^ {1,${u}}`),y=()=>{let{selectionStart:O,selectionEnd:z}=m,ne=k(),Q=m.value;ne.forEach(xe=>{let Ee=Q.slice(0,xe),de=Q.slice(xe);Q=`${Ee}${b}${de}`}),m.value=Q,m.selectionStart=O+u,m.selectionEnd=z+u*ne.length},w=()=>{let{selectionStart:O,selectionEnd:z}=m,ne=k(),Q=[],xe=m.value;ne.forEach(Ee=>{let de=xe.slice(Ee,Ee+u).match(x);if(de){let se=xe.slice(0,Ee),P=xe.slice(Ee+de[0].length);xe=`${se}${P}`,Q.push(Ee)}}),m.value=xe,Q.length&&(O>Q[Q.length-1]?m.selectionStart=Math.max(O-u,Q[Q.length-1]):m.selectionStart=O,m.selectionEnd=Math.max(m.selectionStart,z-u*Q.length))},k=()=>{let{selectionStart:O,selectionEnd:z,value:ne}=m,Q=ne.slice(0,O).match(/[^\n]*$/)[0].length;return O=O-Q,ne.slice(O,z).split(`
|
|
72
|
-
`).reduce((Ee,de,se,P)=>Ee.concat(se?Ee[se-1]+P[se-1].length+1:O),[]).reverse()},
|
|
71
|
+
Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function U3({image:t,apiKey:e,text:o,theme:r="light"}){let n={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:jS},{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 ps=v(C(),1),XS="small",Hm=t=>(0,ps.jsxs)("label",{className:F("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${XS}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,ps.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,ps.jsx)("div",{className:"ToolIcon__icon",children:t.icon})]});h();var mi=v(C(),1),qS=({height:t,width:e,userToFollow:o,onDisconnect:r})=>(0,mi.jsx)("div",{className:"follow-mode",style:{width:e,height:t},children:(0,mi.jsxs)("div",{className:"follow-mode__badge",children:[(0,mi.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,mi.jsx)("span",{className:"follow-mode__badge__username",title:o.username,children:o.username})]}),(0,mi.jsx)("button",{onClick:r,className:"follow-mode__disconnect-btn",children:wo})]})}),W3=qS;h();var zm=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 JS(t,e,o,r){Object.defineProperty(t,e,{get:o,set:r,enumerable:!0,configurable:!0})}var QS={};JS(QS,"LaserPointer",()=>hs);function st([t,e,o],[r,n,i]){return[t+r,e+n,o+i]}function fs([t,e,o],[r,n,i]){return[t-r,e-n,o-i]}function yt([t,e,o],r){return[t*r,e*r,o*r]}function Ha([t,e,o]){return[t/Math.sqrt(t**2+e**2),e/Math.sqrt(t**2+e**2),o]}function Gt([t,e,o],r){return[Math.cos(r)*t-Math.sin(r)*e,Math.sin(r)*t+Math.cos(r)*e,o]}function ek(t,e,o){return st(t,yt(fs(e,t),o))}function G3(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 V3(t){return Math.atan2(Math.sin(t),Math.cos(t))}function K3([t,e]){return Math.sqrt(t**2+e**2)}function za([t,e],[o,r]){return Math.sqrt((o-t)**2+(r-e)**2)}function tk(t){if(t.length<2)return 0;let e=0;for(let o=1;o<=t.length-1;o++)e+=za(t[o-1],t[o]);return e+=za(t[t.length-2],t[t.length-1]),e}var ok=(t,e,o)=>Math.max(e,Math.min(o,t));function rk(t,e,o){let r=za(e,o);if(r===0)return za(t,e);let n=ok(((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 za(i,t)}function Um(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],c,s)=>{let m=rk(c,o,r);return m>a?[m,s]:[a,l]},[0,-1]);if(n>=e){let a=t[i];return[...Um([o,...t.slice(1,i),a],e).slice(0,-1),a,...Um([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=ek(this.lastPoint,e,1-this.options.streamline)),this.tailPoints.push(e),tk(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=Um(o,this.options.simplify));let r=o.length;if(r===0)return[];if(r===1){let M=o[0],L=this.getSize(e,M[2],0,r,0);if(L<.5)return[];let W=[];for(let B=0;B<=Math.PI*2;B+=Math.PI/16)W.push(st(M,yt(Gt([1,0,0],B),L)));return W.push(st(M,yt([1,0,0],this.getSize(e,M[2],0,r,0)))),W}if(r===2){let M=o[0],L=o[1],W=this.getSize(e,M[2],0,r,0),B=this.getSize(e,L[2],0,r,0);if(W<.5||B<.5)return[];let Y=[],O=G3(M,[M[0],M[1]-100,M[2]],L);for(let z=O;z<=Math.PI+O;z+=Math.PI/16)Y.push(st(M,yt(Gt([1,0,0],z),W)));for(let z=Math.PI+O;z<=Math.PI*2+O;z+=Math.PI/16)Y.push(st(L,yt(Gt([1,0,0],z),B)));return Y.push(Y[0]),Y}let n=[],i=[],a=0,l=0,c=0,s=0;for(let M=1;M<r-1;M++){let L=o[M-1],W=o[M],B=o[M+1],Y=W[2],O=za(L,W);s+=O,a=l+(O-l)*.2;let z=this.getSize(e,Y,M,r,s);if(z===0){c=M+1;continue}let ne=Ha(fs(L,W)),Q=Ha(fs(B,W)),xe=Gt(ne,Math.PI/2),Ee=Gt(ne,-Math.PI/2),de=Gt(Q,Math.PI/2),se=Gt(Q,-Math.PI/2),P=st(W,yt(xe,z)),R=st(W,yt(Ee,z)),G=st(W,yt(de,z)),K=st(W,yt(se,z)),V=st(xe,se),Z=st(Ee,de),q=st(W,yt(K3(V)===0?ne:Ha(V),z)),te=st(W,yt(K3(Z)===0?Q:Ha(Z),z)),ct=V3(G3(W,L,B)),Je=t.constants.cornerDetectionMaxAngle/180*Math.PI*t.constants.cornerDetectionVariance(a);if(Math.abs(ct)<Je){let rt=Math.abs(V3(Math.PI-ct));if(rt===0)continue;if(ct<0){i.push(R,te);for(let He=0;He<=rt;He+=rt/4)n.push(st(W,Gt(yt(xe,z),He)));for(let He=rt;He>=0;He-=rt/4)i.push(st(W,Gt(yt(xe,z),He)));i.push(te,G)}else{n.push(P,q);for(let He=0;He<=rt;He+=rt/4)i.push(st(W,Gt(yt(xe,-z),-He)));for(let He=rt;He>=0;He-=rt/4)n.push(st(W,Gt(yt(xe,-z),-He)));n.push(q,K)}}else n.push(q),i.push(te);l=a}if(c>=r-2)if(this.options.keepHead){let M=o[r-1],L=[];for(let W=0;W<=Math.PI*2;W+=Math.PI/16)L.push(st(M,yt(Gt([1,0,0],W),this.options.size)));return L.push(st(M,yt([1,0,0],this.options.size))),L}else return[];let m=o[c],d=o[c+1],p=o[r-2],u=o[r-1],b=Ha(fs(d,m)),x=Ha(fs(p,u)),y=Gt(b,-Math.PI/2),w=Gt(x,Math.PI/2),k=this.getSize(e,m[2],0,r,0),T=[],I=this.options.keepHead?this.options.size:this.getSize(e,p[2],r-2,r,s),A=[];if(k>1){for(let M=0;M<=Math.PI;M+=Math.PI/16)T.unshift(st(m,Gt(yt(y,k),-M)));T.unshift(st(m,yt(y,-k)))}else T.push(m);for(let M=0;M<=Math.PI*3;M+=Math.PI/16)A.push(st(u,Gt(yt(w,-I),-M)));let _=[...T,...n,...A.reverse(),...i.reverse()];return T.length>0&&_.push(T[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Um(_,this.options.simplify):_}};var ui=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(Sg,"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=Kt({sceneX:n,sceneY:i},o);return[a.x,a.y]});return Hg(r,!0)}};h();var Wm=class{constructor(e,o){this.animationFrameHandler=e;this.app=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new ui(e,o,{...this.getTrailOptions(),fill:()=>"red"})}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(Dn(i),Dn(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 ui(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>Qn(e)}),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 nk=(t,e,o,r,n,i)=>{let{zoom:a}=r,l=180*o/Math.PI,c=t*(a.value-1)/2,s=e*(a.value-1)/2;return t>n&&a.value!==1&&(c=n*(a.value-1)/2),e>i&&a.value!==1&&(s=i*(a.value-1)/2),`translate(${c}px, ${s}px) scale(${a.value}) rotate(${l}deg)`},Y3=({id:t,onChange:e,onSubmit:o,getViewportCoords:r,element:n,canvas:i,excalidrawContainer:a,app:l})=>{let c=(O,z)=>{if(!z.style.fontFamily||!z.style.fontSize)return!1;let ne=z.style.fontFamily.replace(/"/g,"");return su({fontFamily:O.fontFamily})!==ne||`${O.fontSize}px`!==z.style.fontSize},s=()=>{let O=l.state,z=to.getScene(n)?.getElement(t);if(!z)return;let{textAlign:ne,verticalAlign:Q}=z,xe=l.scene.getNonDeletedElementsMap();if(z&&ie(z)){let Ee=z.x,de=z.y,se=Tr(z,l.scene.getNonDeletedElementsMap()),P=z.width,R=z.height,G=z.width,K=z.height;if(se&&z.containerId){if(yr(se)){let Vt=ue.getBoundTextElementPosition(se,z,xe);Ee=Vt.x,de=Vt.y}let rt=c(z,m),He;if(rt?He=sl(se.id,se.height):(He=i1[se.id],He||(He=sl(se.id,se.height))),P=Tu(se,z),R=x1(se,z),!yr(se)&&K>R){let Vt=_i(K,se.type);J(se,{height:Vt});return}else if(!yr(se)&&se.height>He.height&&K<R){let Vt=_i(K,se.type);J(se,{height:Vt})}else{let{y:Vt}=Js(se,z,xe);de=Vt}}let[V,Z]=r(Ee,de),q=m.selectionStart,te=m.selectionEnd,ct=m.value.length;if(q===te&&te!==ct){let rt=ct-te;m.selectionStart=m.value.length-rt,m.selectionEnd=m.value.length-rt}se||(P=(O.width-8-V)/O.zoom.value,G=Math.min(G,P));let Je=(O.height-Z)/O.zoom.value;Object.assign(m.style,{font:Fo(z),lineHeight:z.lineHeight,width:`${G}px`,height:`${K}px`,left:`${V}px`,top:`${Z}px`,transform:nk(G,K,f1(z,se),O,P,Je),textAlign:ne,verticalAlign:Q,color:z.strokeColor,opacity:z.opacity/100,filter:"var(--theme-filter)",maxHeight:`${Je}px`}),m.scrollTop=0,Hs()&&(m.style.fontFamily=su(z)),J(z,{x:Ee,y:de})}},m=document.createElement("textarea");m.dir="auto",m.tabIndex=0,m.dataset.type="wysiwyg",m.wrap="off",m.classList.add("excalidraw-wysiwyg");let d="pre",p="normal";gt(n)&&(d="pre-wrap",p="break-word"),Object.assign(m.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,padding:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:p,whiteSpace:d,overflowWrap:"break-word",boxSizing:"content-box"}),m.value=n.originalText,s(),e&&(m.onpaste=async O=>{let z=await gc(O,!0);if(!z.text)return;let ne=cl(z.text);if(!ne)return;let Q=Tr(n,l.scene.getNonDeletedElementsMap()),xe=Fo({fontSize:l.state.currentItemFontSize,fontFamily:l.state.currentItemFontFamily});if(Q){let Ee=nt(Q,l.scene.getNonDeletedElementsMap()),de=m1(`${m.value}${ne}`,xe,Tu(Q,Ee)),se=d1(de,xe);m.style.width=`${se}px`}},m.oninput=()=>{e(cl(m.value))}),m.onkeydown=O=>{if(!O.shiftKey&&yd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(yd),s();else if(!O.shiftKey&&Ed.keyTest(O))O.preventDefault(),l.actionManager.executeAction(Ed),s();else if(jp.keyTest(O))l.actionManager.executeAction(jp);else if(Xp.keyTest(O))l.actionManager.executeAction(Xp);else if(O.key===S.ESCAPE)O.preventDefault(),I=!0,A();else if(O.key===S.ENTER&&O[S.CTRL_OR_CMD]){if(O.preventDefault(),O.isComposing||O.keyCode===229)return;I=!0,A()}else if(O.key===S.TAB||O[S.CTRL_OR_CMD]&&(O.code===me.BRACKET_LEFT||O.code===me.BRACKET_RIGHT)){if(O.preventDefault(),O.isComposing)return;O.shiftKey||O.code===me.BRACKET_LEFT?w():y(),m.dispatchEvent(new Event("input"))}};let u=4,b=" ".repeat(u),x=new RegExp(`^ {1,${u}}`),y=()=>{let{selectionStart:O,selectionEnd:z}=m,ne=k(),Q=m.value;ne.forEach(xe=>{let Ee=Q.slice(0,xe),de=Q.slice(xe);Q=`${Ee}${b}${de}`}),m.value=Q,m.selectionStart=O+u,m.selectionEnd=z+u*ne.length},w=()=>{let{selectionStart:O,selectionEnd:z}=m,ne=k(),Q=[],xe=m.value;ne.forEach(Ee=>{let de=xe.slice(Ee,Ee+u).match(x);if(de){let se=xe.slice(0,Ee),P=xe.slice(Ee+de[0].length);xe=`${se}${P}`,Q.push(Ee)}}),m.value=xe,Q.length&&(O>Q[Q.length-1]?m.selectionStart=Math.max(O-u,Q[Q.length-1]):m.selectionStart=O,m.selectionEnd=Math.max(m.selectionStart,z-u*Q.length))},k=()=>{let{selectionStart:O,selectionEnd:z,value:ne}=m,Q=ne.slice(0,O).match(/[^\n]*$/)[0].length;return O=O-Q,ne.slice(O,z).split(`
|
|
72
|
+
`).reduce((Ee,de,se,P)=>Ee.concat(se?Ee[se-1]+P[se-1].length+1:O),[]).reverse()},T=O=>{O.preventDefault(),O.stopPropagation()},I=!1,A=()=>{_();let O=to.getScene(n)?.getElement(n.id);if(!O)return;let z=m.value,ne=Tr(O,l.scene.getNonDeletedElementsMap());if(ne){if(z=O.text,m.value.trim()){let Q=p1(ne);!Q||Q!==n.id?J(ne,{boundElements:(ne.boundElements||[]).concat({type:"text",id:n.id})}):yr(ne)&&Fi(ne)}else J(ne,{boundElements:ne.boundElements?.filter(Q=>!ie(Q))});Bt(O,ne,l.scene.getNonDeletedElementsMap())}o({text:z,viaKeyboard:I,originalText:m.value})},_=()=>{B||(B=!0,m.onblur=null,m.oninput=null,m.onkeydown=null,Y&&Y.disconnect(),window.removeEventListener("resize",s),window.removeEventListener("wheel",T,!0),window.removeEventListener("pointerdown",L),window.removeEventListener("pointerup",M),window.removeEventListener("blur",A),window.removeEventListener("beforeunload",A),W(),m.remove())},M=O=>{window.removeEventListener("pointerup",M);let z=O?.target,ne=z instanceof HTMLElement&&z.classList.contains("active-color");setTimeout(()=>{if(m.onblur=A,ne){let Q=(Ee,de)=>{Ee.find(P=>P.removedNodes.length>0&&P.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{m.focus()}),de.disconnect())};new MutationObserver(Q).observe(document.querySelector(".excalidraw-container"),{childList:!0})}ne||m.focus()})},L=O=>{let z=O.target instanceof HTMLElement&&O.target.classList.contains("active-color");((O.target instanceof HTMLElement||O.target instanceof SVGElement)&&O.target.closest(`.${_s.SHAPE_ACTIONS_MENU}`)&&!Qo(O.target)||z)&&(m.onblur=null,window.addEventListener("pointerup",M),window.addEventListener("blur",A))},W=to.getScene(n).addCallback(()=>{s(),!!document.activeElement?.closest(".color-picker-content")||m.focus()}),B=!1;m.select(),M();let Y=null;i&&"ResizeObserver"in window?(Y=new window.ResizeObserver(()=>{s()}),Y.observe(i)):window.addEventListener("resize",s),window.addEventListener("pointerdown",L),window.addEventListener("wheel",T,{passive:!1,capture:!0}),window.addEventListener("beforeunload",A),a?.querySelector(".excalidraw-textEditorContainer").appendChild(m)};var ye=v(C(),1),J3=Et.default.createContext(null),Q3=Et.default.createContext(null),e5={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},Oh=Et.default.createContext(e5);Oh.displayName="DeviceContext";var Bh=Et.default.createContext({container:null,id:null});Bh.displayName="ExcalidrawContainerContext";var Fh=Et.default.createContext([]);Fh.displayName="ExcalidrawElementsContext";var $h=Et.default.createContext({...Mi(),width:0,height:0,offsetLeft:0,offsetTop:0});$h.displayName="ExcalidrawAppStateContext";var Hh=Et.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});Hh.displayName="ExcalidrawSetAppStateContext";var zh=Et.default.createContext(null);zh.displayName="ExcalidrawActionManagerContext";var So=()=>(0,Et.useContext)(J3),va=()=>(0,Et.useContext)(Q3),Ie=()=>(0,Et.useContext)(Oh),Ct=()=>(0,Et.useContext)(Bh),hn=()=>(0,Et.useContext)(Fh),ya=()=>(0,Et.useContext)($h),Fe=()=>(0,Et.useContext)(Hh),Nt=()=>(0,Et.useContext)(zh),Z3=typeof window<"u"&&"ResizeObserver"in window,gs=!1,Lh=0,pi=!1,bs=!1,Ph=!1,Dh={horizontal:null,vertical:null},_n=0,xs=!1,Rh=new Map,Gm=!1,j3=0,X3=!1,vs=null,_e={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},Nh=class t extends Et.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=e5;excalidrawContainerRef=Et.default.createRef();scene;renderer;fonts;resizeObserver;nearestScrollableContainer;library;libraryItemsFromStorage;id;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 zm;laserTrails=new Wm(this.animationFrameHandler,this);eraserTrail=new ui(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(Dn(i),Dn(n))},fill:()=>this.state.theme===dt.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=Mi(),{excalidrawAPI:r,viewModeEnabled:n=!1,zenModeEnabled:i=!1,gridModeEnabled:a=!1,objectsSnapModeEnabled:l=!1,theme:c=o.theme,name:s=`${g("labels.untitled")}-${lu()}`}=e;if(this.state={...o,theme:c,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:n,zenModeEnabled:i,objectsSnapModeEnabled:l,gridSize:a?vr:null,name:s,width:window.innerWidth,height:window.innerHeight},this.id=_g(),this.library=new By(this),this.actionManager=new Ld(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new to,this.canvas=document.createElement("canvas"),this.rc=Ig.canvas(this.canvas),this.renderer=new us(this.scene),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:d=>{this.actionManager.registerAction(d)},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:d=>this.onChangeEmitter.on(d),onPointerDown:d=>this.onPointerDownEmitter.on(d),onPointerUp:d=>this.onPointerUpEmitter.on(d),onScrollChange:d=>this.onScrollChangeEmitter.on(d),onUserFollow:d=>this.onUserFollowEmitter.on(d)};typeof r=="function"?r(m):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new Dm({scene:this.scene,onSceneUpdated:this.onSceneUpdated}),this.history=new $y,this.actionManager.registerAll(_1),this.actionManager.registerAction(_y(this.history)),this.actionManager.registerAction(My(this.history))}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(Ga).includes(n)&&Rh.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),yi(e)))return;let o=this.getHTMLIFrameElement(e);if(o?.contentWindow){if(o.src.includes("youtube")){let r=Rh.get(e.id);switch(r||(Rh.set(e.id,Ga.UNSTARTED),o.contentWindow.postMessage(JSON.stringify({event:"listening",id:e.id}),"*")),r){case Ga.PLAYING:case Ga.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),rr.delete(e)};updateEmbeddables=()=>{let e=new Set,o=!1;this.scene.getNonDeletedElements().filter(r=>{if(Ot(r)){if(e.add(r.id),!this.embedsValidationStatus.has(r.id)){o=!0;let n=Pi(r.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(r,n)}}else yi(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=>Ot(i)&&this.embedsValidationStatus.get(i.id)===!0||yi(i));return(0,ye.jsx)(ye.Fragment,{children:n.map(i=>{let{x:a,y:l}=Kt({sceneX:i.x,sceneY:i.y},this.state),c=gl(i,o,r,this.state,this.scene.getNonDeletedElementsMap()),s=this.initializedEmbeds.has(i.id);if(c&&!s&&this.initializedEmbeds.add(i.id),!(c||s))return null;let d;if(yi(i)){d=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;d={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>x}}else if(b.status==="pending")d={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>Su(`
|
|
73
73
|
<style>
|
|
74
74
|
html, body {
|
|
75
75
|
width: 100%;
|
|
@@ -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",d={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>
|
|
144
|
+
`)};else{let x;b.code==="ERR_GENERATION_INTERRUPTED"?x="Generation was interrupted...":x=b.message||"Generation failed",d={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>Su(`
|
|
145
145
|
<style>
|
|
146
146
|
html, body {
|
|
147
147
|
height: 100%;
|
|
@@ -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 d=Fn(b1(i.link||""));let p=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="active",u=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="hover";return(0,ye.jsx)("div",{className:F("excalidraw__embeddable-container",{"is-hovered":u}),style:{transform:c?`translate(${a-this.state.offsetLeft}px, ${l-this.state.offsetTop}px) scale(${e})`:"none",display:c?"block":"none",opacity:ib(i,mc(i,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${$g(Math.min(i.width,i.height),i)}px`},children:(0,ye.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:c?`${i.width}px`:0,height:c?`${i.height}px`:0,transform:c?`rotate(${i.angle}rad)`:"none",pointerEvents:p?Ln.enabled:Ln.disabled},children:[u&&(0,ye.jsx)("div",{className:"excalidraw__embeddable-hint",children:g("buttons.embeddableInteractionButton")}),(0,ye.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${i.strokeWidth}px`},children:(Ot(i)?this.props.renderEmbeddable?.(i,this.state):null)??(0,ye.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(i,b),className:"excalidraw__embeddable",srcDoc:d?.type==="document"?d.srcdoc(this.state.theme):void 0,src:d?.type!=="document"?d?.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:"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=We({clientX:n.x,clientY:n.y},this.state),a=We({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==="dark",o=0,r=0;return this.scene.getNonDeletedFramesLikes().map(n=>{if(nu(n)?o++:r++,!ul(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}=Kt({sceneX:n.x,sceneY:n.y},this.state),l=6,c=()=>{J(n,{name:n.name?.trim()||null}),this.setState({editingFrame:null})},s,m=nb(n,nu(n)?o:r);if(n.id===this.state.editingFrame){let d=m;s=(0,ye.jsx)("input",{autoFocus:!0,value:d,onChange:p=>{J(n,{name:p.target.value})},onFocus:p=>p.target.select(),onBlur:()=>c(),onKeyDown:p=>{(p.key===S.ESCAPE||p.key===S.ENTER)&&c()},style:{background:this.state.viewBackgroundColor,filter:e?cg:"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:d.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else s=m;return(0,ye.jsx)("div",{id:this.getFrameNameDOMId(n),style:{position:"absolute",bottom:`${this.state.height+Oo.nameOffsetY-a+this.state.offsetTop}px`,left:`${i-this.state.offsetLeft}px`,zIndex:2,fontSize:Oo.nameFontSize,color:e?Oo.nameColorDarkTheme:Oo.nameColorLightTheme,lineHeight:Oo.nameLineHeight,width:"max-content",maxWidth:`${n.width}px`,overflow:n.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:Le.MOVE,pointerEvents:this.state.viewModeEnabled?Ln.disabled:Ln.enabled},onPointerDown:d=>this.handleCanvasPointerDown(d),onWheel:d=>this.handleWheel(d),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:n.id})},children:s},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(),c=!(this.state.editingElement&&Pe(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!ie(this.state.editingElement)),s=e[0];return(0,ye.jsx)("div",{className:F("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":c?Ln.disabled:Ln.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,ye.jsx)($3.Provider,{value:this,children:(0,ye.jsx)(H3.Provider,{value:this.props,children:(0,ye.jsx)(_h.Provider,{value:this.excalidrawContainerValue,children:(0,ye.jsx)(Ih.Provider,{value:this.device,children:(0,ye.jsx)(Lh.Provider,{value:this.setAppState,children:(0,ye.jsx)(Ah.Provider,{value:this.state,children:(0,ye.jsxs)(Mh.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,ye.jsxs)(Ph.Provider,{value:this.actionManager,children:[(0,ye.jsx)(Xw,{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:Pr().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,ye.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,ye.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,ye.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,ye.jsx)(I3,{trails:[this.laserTrails,this.eraserTrail]}),e.length===1&&this.state.showHyperlinkPopup&&(0,ye.jsx)(dy,{element:s,elementsMap:l,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},s.id),this.props.aiEnabled!==!1&&e.length===1&&Xa(s)&&(0,ye.jsx)(Eh,{element:s,elementsMap:i,children:(0,ye.jsx)(Lm,{title:g("labels.convertToCode"),icon:ji,checked:!1,onChange:()=>this.onMagicFrameGenerate(s,"button")})}),e.length===1&&yi(s)&&s.customData?.generationData?.status==="done"&&(0,ye.jsxs)(Eh,{element:s,elementsMap:i,children:[(0,ye.jsx)(Lm,{title:g("labels.copySource"),icon:Nc,checked:!1,onChange:()=>this.onIframeSrcCopy(s)}),(0,ye.jsx)(Lm,{title:"Enter fullscreen",icon:Ex,checked:!1,onChange:()=>{let m=this.getHTMLIFrameElement(s);if(m)try{m.requestFullscreen(),this.setState({activeEmbeddable:{element:s,state:"active"},selectedElementIds:{[s.id]:!0},draggingElement:null,selectionElement:null})}catch(d){console.warn(d),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,ye.jsx)(qw,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,ye.jsx)(My,{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,ye.jsx)(vh,{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,ye.jsx)(xh,{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,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,ye.jsx)(A3,{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)=>{ge("export",e,"ui");let n=await Xn(e,o,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:r.exportingFrame}).catch(Ps).catch(i=>{console.error(i),this.setState({errorMessage:i.message})});this.state.exportEmbedScene&&n&&oc(n)&&this.setState({fileHandle:n})};magicGenerations=new Map;updateMagicGeneration=({frameElement:e,data:o})=>{o.status==="pending"?J(e,{customData:{generationData:void 0}},!1):J(e,{customData:{generationData:o}},!1),this.magicGenerations.set(e.id,o),this.onSceneUpdated()};getTextFromElements(e){return e.reduce((r,n)=>(ie(n)&&r.push(n.text),r),[]).join(`
|
|
163
|
+
`)}}}else d=Fn(I1(i.link||""));let p=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="active",u=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="hover";return(0,ye.jsx)("div",{className:F("excalidraw__embeddable-container",{"is-hovered":u}),style:{transform:c?`translate(${a-this.state.offsetLeft}px, ${l-this.state.offsetTop}px) scale(${e})`:"none",display:c?"block":"none",opacity:hb(i,xc(i,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${jg(Math.min(i.width,i.height),i)}px`},children:(0,ye.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:c?`${i.width}px`:0,height:c?`${i.height}px`:0,transform:c?`rotate(${i.angle}rad)`:"none",pointerEvents:p?Ln.enabled:Ln.disabled},children:[u&&(0,ye.jsx)("div",{className:"excalidraw__embeddable-hint",children:g("buttons.embeddableInteractionButton")}),(0,ye.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${i.strokeWidth}px`},children:(Ot(i)?this.props.renderEmbeddable?.(i,this.state):null)??(0,ye.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(i,b),className:"excalidraw__embeddable",srcDoc:d?.type==="document"?d.srcdoc(this.state.theme):void 0,src:d?.type!=="document"?d?.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:"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=We({clientX:n.x,clientY:n.y},this.state),a=We({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==="dark",o=0,r=0;return this.scene.getNonDeletedFramesLikes().map(n=>{if(pu(n)?o++:r++,!gl(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}=Kt({sceneX:n.x,sceneY:n.y},this.state),l=6,c=()=>{J(n,{name:n.name?.trim()||null}),this.setState({editingFrame:null})},s,m=fb(n,pu(n)?o:r);if(n.id===this.state.editingFrame){let d=m;s=(0,ye.jsx)("input",{autoFocus:!0,value:d,onChange:p=>{J(n,{name:p.target.value})},onFocus:p=>p.target.select(),onBlur:()=>c(),onKeyDown:p=>{(p.key===S.ESCAPE||p.key===S.ENTER)&&c()},style:{background:this.state.viewBackgroundColor,filter:e?xg:"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:d.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else s=m;return(0,ye.jsx)("div",{id:this.getFrameNameDOMId(n),style:{position:"absolute",bottom:`${this.state.height+Bo.nameOffsetY-a+this.state.offsetTop}px`,left:`${i-this.state.offsetLeft}px`,zIndex:2,fontSize:Bo.nameFontSize,color:e?Bo.nameColorDarkTheme:Bo.nameColorLightTheme,lineHeight:Bo.nameLineHeight,width:"max-content",maxWidth:`${n.width}px`,overflow:n.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:Pe.MOVE,pointerEvents:this.state.viewModeEnabled?Ln.disabled:Ln.enabled},onPointerDown:d=>this.handleCanvasPointerDown(d),onWheel:d=>this.handleWheel(d),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:n.id})},children:s},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(),c=!(this.state.editingElement&&De(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!ie(this.state.editingElement)),s=e[0];return(0,ye.jsx)("div",{className:F("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":c?Ln.disabled:Ln.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,ye.jsx)(J3.Provider,{value:this,children:(0,ye.jsx)(Q3.Provider,{value:this.props,children:(0,ye.jsx)(Bh.Provider,{value:this.excalidrawContainerValue,children:(0,ye.jsx)(Oh.Provider,{value:this.device,children:(0,ye.jsx)(Hh.Provider,{value:this.setAppState,children:(0,ye.jsx)($h.Provider,{value:this.state,children:(0,ye.jsxs)(Fh.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,ye.jsxs)(zh.Provider,{value:this.actionManager,children:[(0,ye.jsx)(c3,{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:Pr().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,ye.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,ye.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,ye.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,ye.jsx)(H3,{trails:[this.laserTrails,this.eraserTrail]}),e.length===1&&this.state.showHyperlinkPopup&&(0,ye.jsx)(yy,{element:s,elementsMap:l,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},s.id),this.props.aiEnabled!==!1&&e.length===1&&Qa(s)&&(0,ye.jsx)(Ah,{element:s,elementsMap:i,children:(0,ye.jsx)(Hm,{title:g("labels.convertToCode"),icon:ji,checked:!1,onChange:()=>this.onMagicFrameGenerate(s,"button")})}),e.length===1&&yi(s)&&s.customData?.generationData?.status==="done"&&(0,ye.jsxs)(Ah,{element:s,elementsMap:i,children:[(0,ye.jsx)(Hm,{title:g("labels.copySource"),icon:Uc,checked:!1,onChange:()=>this.onIframeSrcCopy(s)}),(0,ye.jsx)(Hm,{title:"Enter fullscreen",icon:Lx,checked:!1,onChange:()=>{let m=this.getHTMLIFrameElement(s);if(m)try{m.requestFullscreen(),this.setState({activeEmbeddable:{element:s,state:"active"},selectedElementIds:{[s.id]:!0},draggingElement:null,selectionElement:null})}catch(d){console.warn(d),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,ye.jsx)(d3,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,ye.jsx)(Uy,{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,ye.jsx)(_h,{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,ye.jsx)(Ih,{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,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,ye.jsx)(W3,{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)=>{ge("export",e,"ui");let n=await Xn(e,o,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:r.exportingFrame}).catch(Fs).catch(i=>{console.error(i),this.setState({errorMessage:i.message})});this.state.exportEmbedScene&&n&&cc(n)&&this.setState({fileHandle:n})};magicGenerations=new Map;updateMagicGeneration=({frameElement:e,data:o})=>{o.status==="pending"?J(e,{customData:{generationData:void 0}},!1):J(e,{customData:{generationData:o}},!1),this.magicGenerations.set(e.id,o),this.onSceneUpdated()};getTextFromElements(e){return e.reduce((r,n)=>(ie(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"}}),ge("ai","generate (missing key)","d2c");return}let r=hc(this.scene.getNonDeletedElements(),e).filter(d=>!Xa(d));if(!r.length){o==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),ge("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 _u({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:e,files:this.files}),a=await ic(i),l=this.getTextFromElements(r);ge("ai","generate (start)","d2c");let c=await M3({image:a,apiKey:this.OPENAI_KEY,text:l,theme:this.state.theme});if(!c.ok){ge("ai","generate (failed)","d2c"),console.error(c.error),this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:c.error?.message||"Unknown error during generation"}});return}if(ge("ai","generate (success)","d2c"),c.choices[0].message.content==null){this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let s=c.choices[0].message.content,m=s.slice(s.indexOf("<!DOCTYPE html>"),s.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:n,data:{status:"done",html:m}})}onIframeSrcCopy(e){e.customData?.generationData?.status==="done"&&(Oi(e.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=ao.get(go.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=ao.has(go.OAI_API_KEY)||!1;onOpenAIKeyChange=(e,o)=>{if(this.OPENAI_KEY=e||null,o){let r=ao.set(go.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"}):Xa(n[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),ge("ai","tool-select (missing key)","d2c");return}let e=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(e.length===0)this.setActiveTool({type:mt.magicframe}),ge("ai","tool-select (empty-selection)","d2c");else{let o=e.length===1&&Xa(e[0])&&e[0];if(!o&&e.some(n=>we(n)||n.frameId)){this.setActiveTool({type:mt.magicframe});return}ge("ai","tool-select (existing selection)","d2c");let r;if(o)r=o;else{let[n,i,a,l]=Ge(e),c=50;r=ll({...Oo,x:n-c,y:i-c,width:a-n+c*2,height:l-i+c*2,opacity:100,locked:!1}),this.scene.addNewElement(r);for(let s of e)J(s,{frameId:r.id});this.setState({selectedElementIds:{[r.id]:!0}})}this.onMagicFrameGenerate(r,"upstream")}};openEyeDropper=({type:e})=>{oo.set(fn,{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},commitToHistory:!0}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:o},commitToHistory:!0}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(a=>this.state.selectedElementIds[a.id]?ce(a,{[n?"strokeColor":"backgroundColor"]:o}):a)})},keepOpenOnAlt:!1})};syncActionResult=Xe(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&&Ou(r)&&(o=r)}),this.scene.replaceAllElements(e.elements),e.commitToHistory&&this.history.resumeRecording()),e.files&&(this.files=e.replaceFiles?e.files:{...this.files,...e.files},this.addNewImagesToImageCache()),e.appState||o||this.state.contextMenu){e.commitToHistory&&this.history.resumeRecording();let r=e?.appState?.viewModeEnabled||!1,n=e?.appState?.zenModeEnabled||!1,i=e?.appState?.gridSize||null,a=e?.appState?.theme||this.props.theme||dt.LIGHT,l=e?.appState?.name??this.state.name,c=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?vr:null),o=o||e.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(s=>Object.assign(e.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:r,zenModeEnabled:n,gridSize:i,theme:a,name:l,errorMessage:c}),()=>{e.syncHistory&&this.history.setCurrentState(this.state,this.scene.getElementsIncludingDeleted())})}});onBlur=Xe(()=>{pi=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=e=>{e.preventDefault()};resetHistory=()=>{this.history.clear()};resetScene=Xe(e=>{this.scene.replaceAllElements([]),this.setState(o=>({...Mi(),isLoading:e?.resetLoadingState?!1:o.isLoading,theme:this.state.theme})),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=vu(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,...zn(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.resetHistory(),this.syncActionResult({...o,commitToHistory:!0})};isMobileBreakpoint=(e,o)=>e<dg||o<ug&&e<mg;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:o,clientHeight:r}=document.body,n=this.device.viewport,i=xi(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:pg,i=this.device.editor,a=xi(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===Km.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}})}this.scene.addCallback(this.onSceneUpdated),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),Ds()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),N3&&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),Xh()&&!c1()&&this.setState({errorMessage:(0,ye.jsx)(u3,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new to,this.renderer=new as(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(),or.destroy(),Lo.destroy(),clearTimeout(_n),Re.clearCache(),At.clearCache(),_n=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Xe(()=>{this.scene.getElementsIncludingDeleted().forEach(e=>or.delete(e)),this.refreshViewportBreakpoints(),this.updateDOMRect(),N3||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(tt(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(tt(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),tt(window,"message",this.onWindowMessage,!1),tt(document,"pointerup",this.removePointer),tt(document,"copy",this.onCopy),tt(document,"keyup",this.onKeyUp,{passive:!0}),tt(document,"mousemove",this.updateCurrentCursorPosition),tt(document.fonts,"loadingdone",e=>{let o=e.fontfaces;this.fonts.onFontsLoaded(o)}),tt(document,"gesturestart",this.onGestureStart,!1),tt(document,"gesturechange",this.onGestureChange,!1),tt(document,"gestureend",this.onGestureEnd,!1),tt(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(tt(document,"fullscreenchange",this.onFullscreenChange),tt(document,"paste",this.pasteFromClipboard),tt(document,"cut",this.onCut),tt(window,"resize",this.onResize,!1),tt(window,"unload",this.onUnload,!1),tt(window,"blur",this.onBlur,!1),tt(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),tt(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(tt(Sg(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(e,o){this.updateEmbeddables();let r=this.scene.getElementsIncludingDeleted(),n=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&&vo(this.state)&&this.setState({activeTool:et(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&o.theme!==this.state.theme&&v1(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(),vo(o)&&!vo(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?vr:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme==="dark"),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(ko)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:a}=o;o.activeTool!==this.state.activeTool&&a!=null&&On(this.state)&&Er(a,!1)&&ol(a,this.state,this.scene,Ya(ue.getPointAtIndexGlobalCoordinates(a,-1,n)),n),this.history.record(this.state,r),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&&(Th=o);let n=ie(this.state.editingElement)?!1:!e&&r.size>0;this.state.scrolledOutside!==n&&this.setState({scrolledOutside:n}),this.scheduleImageRefresh()};onScroll=Va(()=>{let{offsetTop:e,offsetLeft:o}=this.getCanvasOffsets();this.setState(r=>r.offsetLeft===o&&r.offsetTop===e?null:{offsetTop:e,offsetLeft:o})},ag);onCut=Xe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Jo(e.target)||(this.actionManager.executeAction(xd,"keyboard",e),e.preventDefault(),e.stopPropagation())});onCopy=Xe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Jo(e.target)||(this.actionManager.executeAction(ba,"keyboard",e),e.preventDefault(),e.stopPropagation())});static resetTapTwice(){ds=!1}onTouchStart=e=>{if(jh&&e.preventDefault(),!ds){ds=!0,clearTimeout(wh),wh=window.setTimeout(t.resetTapTwice,ng);return}if(ds&&e.touches.length===1){let o=e.touches[0];this.handleCanvasDoubleClick({clientX:o.clientX,clientY:o.clientY}),ds=!1,clearTimeout(wh)}e.touches.length===2&&this.setState({selectedElementIds:Ne({},this.state),activeEmbeddable:null})};onTouchEnd=e=>{this.resetContextMenuTimer(),e.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:Ne(this.state.previousSelectedElementIds,this.state)}):Ie.pointers.clear()};pasteFromClipboard=Xe(async e=>{let o=!!Nm,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)||Jo(r)))return;let{x:a,y:l}=We({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),c=e?.clipboardData?.files[0],s=await cc(e,o);if(!c&&!o){if(s.mixedContent)return this.addElementsFromMixedContentPaste(s.mixedContent,{isPlainPaste:o,sceneX:a,sceneY:l});if(s.text){let m=s.text.trim();m.startsWith("<svg")&&m.endsWith("</svg>")&&(c=Cu(m))}}if(rc(c)&&!s.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}let m=this.createImageElement({sceneX:a,sceneY:l});this.insertImageElement(m,c),this.initializeImageDimensions(m),this.setState({selectedElementIds:Ne({[m.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(s,e)===!1)return}catch(m){console.error(m)}if(s.errorMessage)this.setState({errorMessage:s.errorMessage});else if(s.spreadsheet&&!o)this.setState({pasteDialog:{data:s.spreadsheet,shown:!0}});else if(s.elements){let m=s.programmaticAPI?es(s.elements):s.elements;this.addElementsFromPasteOrLibrary({elements:m,files:s.files||null,position:"cursor",retainSeed:o})}else if(s.text){let m=Lg(s.text).split(/\n+/).map(p=>p.trim()).filter(Boolean),d=m.map(p=>T1(p)).filter(p=>Pi(p,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(p)||Fn(p)?.type==="video"));if(!Nm&&d.length>0&&d.length===m.length){let p=[];for(let u of d){let b=p[p.length-1],x=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:a,sceneY:l,link:Ir(u)});x&&p.push(x)}p.length&&this.setState({selectedElementIds:Object.fromEntries(p.map(u=>[u.id,!0]))});return}this.addTextFromPaste(s.text,o)}this.setActiveTool({type:"selection"}),e?.preventDefault()});addElementsFromPasteOrLibrary=e=>{let o=xu(e.elements,null,void 0),[r,n,i,a]=Ge(o),l=Rn(r,i)/2,c=Rn(n,a)/2,s=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:d,y:p}=We({clientX:s,clientY:m},this.state),u=d-l,b=p-c,[x,y]=Yt(u,b,this.state.gridSize),w=ec(o.map(A=>ce(A,{x:A.x+x-r,y:A.y+y-n})),{randomizeSeed:!e.retainSeed}),k=[...this.scene.getElementsIncludingDeleted(),...w],C=this.getTopLayerFrameAtSceneCoords({x:d,y:p});if(C){let A=ob(w,C);uc(k,A,C)}this.scene.replaceAllElements(k),w.forEach(A=>{if(ie(A)&>(A)){let _=Cr(A,this.scene.getElementsMapIncludingDeleted());Bt(A,_,this.scene.getElementsMapIncludingDeleted())}}),e.files&&(this.files={...this.files,...e.files}),this.history.resumeRecording();let I=Hi(w);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&oo.get(Xl)?this.state.openSidebar:null,...At({editingGroupId:null,selectedElementIds:I.reduce((A,_)=>(gt(_)||(A[_.id]=!0),A),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{e.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),e.fitToContent&&this.scrollToContent(w,{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(d=>d.type==="imageUrl").map(d=>d.value),a=await Promise.all(i.map(async d=>{try{return{file:await L1(d)}}catch(p){let u=p.message;return p.cause==="FETCH_ERROR"?u=g("errors.failedToFetchImage"):p.cause==="UNSUPPORTED"&&(u=g("errors.unsupportedFileType")),{errorMessage:u}}})),l=n,c=!1,s={};for(let d of a)if(d.file){let p=this.createImageElement({sceneX:r,sceneY:l}),u=await this.insertImageElement(p,d.file);u&&(c||(c=!0,l-=u.height/2),J(u,{y:l},!1),l=p.y+p.height+25,s[p.id]=!0)}this.setState({selectedElementIds:Ne(s,this.state)});let m=a.find(d=>!!d.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(`
|
|
165
|
+
`)}async onMagicFrameGenerate(e,o){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),ge("ai","generate (missing key)","d2c");return}let r=wc(this.scene.getNonDeletedElements(),e).filter(d=>!Qa(d));if(!r.length){o==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),ge("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 Ou({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:e,files:this.files}),a=await uc(i),l=this.getTextFromElements(r);ge("ai","generate (start)","d2c");let c=await U3({image:a,apiKey:this.OPENAI_KEY,text:l,theme:this.state.theme});if(!c.ok){ge("ai","generate (failed)","d2c"),console.error(c.error),this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:c.error?.message||"Unknown error during generation"}});return}if(ge("ai","generate (success)","d2c"),c.choices[0].message.content==null){this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let s=c.choices[0].message.content,m=s.slice(s.indexOf("<!DOCTYPE html>"),s.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:n,data:{status:"done",html:m}})}onIframeSrcCopy(e){e.customData?.generationData?.status==="done"&&(Oi(e.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=ao.get(go.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=ao.has(go.OAI_API_KEY)||!1;onOpenAIKeyChange=(e,o)=>{if(this.OPENAI_KEY=e||null,o){let r=ao.set(go.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"}):Qa(n[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),ge("ai","tool-select (missing key)","d2c");return}let e=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(e.length===0)this.setActiveTool({type:mt.magicframe}),ge("ai","tool-select (empty-selection)","d2c");else{let o=e.length===1&&Qa(e[0])&&e[0];if(!o&&e.some(n=>we(n)||n.frameId)){this.setActiveTool({type:mt.magicframe});return}ge("ai","tool-select (existing selection)","d2c");let r;if(o)r=o;else{let[n,i,a,l]=Ge(e),c=50;r=dl({...Bo,x:n-c,y:i-c,width:a-n+c*2,height:l-i+c*2,opacity:100,locked:!1}),this.scene.addNewElement(r);for(let s of e)J(s,{frameId:r.id});this.setState({selectedElementIds:{[r.id]:!0}})}this.onMagicFrameGenerate(r,"upstream")}};openEyeDropper=({type:e})=>{oo.set(fn,{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},commitToHistory:!0}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:o},commitToHistory:!0}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(a=>this.state.selectedElementIds[a.id]?ce(a,{[n?"strokeColor":"backgroundColor"]:o}):a)})},keepOpenOnAlt:!1})};syncActionResult=Xe(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&&Ku(r)&&(o=r)}),this.scene.replaceAllElements(e.elements),e.commitToHistory&&this.history.resumeRecording()),e.files&&(this.files=e.replaceFiles?e.files:{...this.files,...e.files},this.addNewImagesToImageCache()),e.appState||o||this.state.contextMenu){e.commitToHistory&&this.history.resumeRecording();let r=e?.appState?.viewModeEnabled||!1,n=e?.appState?.zenModeEnabled||!1,i=e?.appState?.gridSize||null,a=e?.appState?.theme||this.props.theme||dt.LIGHT,l=e?.appState?.name??this.state.name,c=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?vr:null),o=o||e.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(s=>Object.assign(e.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:r,zenModeEnabled:n,gridSize:i,theme:a,name:l,errorMessage:c}),()=>{e.syncHistory&&this.history.setCurrentState(this.state,this.scene.getElementsIncludingDeleted())})}});onBlur=Xe(()=>{pi=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=e=>{e.preventDefault()};resetHistory=()=>{this.history.clear()};resetScene=Xe(e=>{this.scene.replaceAllElements([]),this.setState(o=>({...Mi(),isLoading:e?.resetLoadingState?!1:o.isLoading,theme:this.state.theme})),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=_u(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,...zn(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.resetHistory(),this.syncActionResult({...o,commitToHistory:!0})};isMobileBreakpoint=(e,o)=>e<vg||o<Eg&&e<yg;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:o,clientHeight:r}=document.body,n=this.device.viewport,i=xi(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:wg,i=this.device.editor,a=xi(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===tu.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}})}this.scene.addCallback(this.onSceneUpdated),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),Hs()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),Z3&&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),ig()&&!v1()&&this.setState({errorMessage:(0,ye.jsx)(S3,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new to,this.renderer=new us(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(),rr.destroy(),Po.destroy(),clearTimeout(_n),Ne.clearCache(),At.clearCache(),_n=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Xe(()=>{this.scene.getElementsIncludingDeleted().forEach(e=>rr.delete(e)),this.refreshViewportBreakpoints(),this.updateDOMRect(),Z3||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(tt(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(tt(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),tt(window,"message",this.onWindowMessage,!1),tt(document,"pointerup",this.removePointer),tt(document,"copy",this.onCopy),tt(document,"keyup",this.onKeyUp,{passive:!0}),tt(document,"mousemove",this.updateCurrentCursorPosition),tt(document.fonts,"loadingdone",e=>{let o=e.fontfaces;this.fonts.onFontsLoaded(o)}),tt(document,"gesturestart",this.onGestureStart,!1),tt(document,"gesturechange",this.onGestureChange,!1),tt(document,"gestureend",this.onGestureEnd,!1),tt(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(tt(document,"fullscreenchange",this.onFullscreenChange),tt(document,"paste",this.pasteFromClipboard),tt(document,"cut",this.onCut),tt(window,"resize",this.onResize,!1),tt(window,"unload",this.onUnload,!1),tt(window,"blur",this.onBlur,!1),tt(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),tt(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(tt(Rg(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(e,o){this.updateEmbeddables();let r=this.scene.getElementsIncludingDeleted(),n=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&&vo(this.state)&&this.setState({activeTool:et(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&o.theme!==this.state.theme&&M1(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(),vo(o)&&!vo(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?vr:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme==="dark"),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(ko)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:a}=o;o.activeTool!==this.state.activeTool&&a!=null&&On(this.state)&&Er(a,!1)&&il(a,this.state,this.scene,ja(ue.getPointAtIndexGlobalCoordinates(a,-1,n)),n),this.history.record(this.state,r),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&&(Dh=o);let n=ie(this.state.editingElement)?!1:!e&&r.size>0;this.state.scrolledOutside!==n&&this.setState({scrolledOutside:n}),this.scheduleImageRefresh()};onScroll=Ya(()=>{let{offsetTop:e,offsetLeft:o}=this.getCanvasOffsets();this.setState(r=>r.offsetLeft===o&&r.offsetTop===e?null:{offsetTop:e,offsetLeft:o})},hg);onCut=Xe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Qo(e.target)||(this.actionManager.executeAction(Sd,"keyboard",e),e.preventDefault(),e.stopPropagation())});onCopy=Xe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Qo(e.target)||(this.actionManager.executeAction(ba,"keyboard",e),e.preventDefault(),e.stopPropagation())});static resetTapTwice(){gs=!1}onTouchStart=e=>{if(ng&&e.preventDefault(),!gs){gs=!0,clearTimeout(Lh),Lh=window.setTimeout(t.resetTapTwice,pg);return}if(gs&&e.touches.length===1){let o=e.touches[0];this.handleCanvasDoubleClick({clientX:o.clientX,clientY:o.clientY}),gs=!1,clearTimeout(Lh)}e.touches.length===2&&this.setState({selectedElementIds:Oe({},this.state),activeEmbeddable:null})};onTouchEnd=e=>{this.resetContextMenuTimer(),e.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:Oe(this.state.previousSelectedElementIds,this.state)}):_e.pointers.clear()};pasteFromClipboard=Xe(async e=>{let o=!!Gm,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)||Qo(r)))return;let{x:a,y:l}=We({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),c=e?.clipboardData?.files[0],s=await gc(e,o);if(!c&&!o){if(s.mixedContent)return this.addElementsFromMixedContentPaste(s.mixedContent,{isPlainPaste:o,sceneX:a,sceneY:l});if(s.text){let m=s.text.trim();m.startsWith("<svg")&&m.endsWith("</svg>")&&(c=Lu(m))}}if(dc(c)&&!s.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}let m=this.createImageElement({sceneX:a,sceneY:l});this.insertImageElement(m,c),this.initializeImageDimensions(m),this.setState({selectedElementIds:Oe({[m.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(s,e)===!1)return}catch(m){console.error(m)}if(s.errorMessage)this.setState({errorMessage:s.errorMessage});else if(s.spreadsheet&&!o)this.setState({pasteDialog:{data:s.spreadsheet,shown:!0}});else if(s.elements){let m=s.programmaticAPI?as(s.elements):s.elements;this.addElementsFromPasteOrLibrary({elements:m,files:s.files||null,position:"cursor",retainSeed:o})}else if(s.text){let m=zg(s.text).split(/\n+/).map(p=>p.trim()).filter(Boolean),d=m.map(p=>R1(p)).filter(p=>Pi(p,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(p)||Fn(p)?.type==="video"));if(!Gm&&d.length>0&&d.length===m.length){let p=[];for(let u of d){let b=p[p.length-1],x=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:a,sceneY:l,link:Ir(u)});x&&p.push(x)}p.length&&this.setState({selectedElementIds:Object.fromEntries(p.map(u=>[u.id,!0]))});return}this.addTextFromPaste(s.text,o)}this.setActiveTool({type:"selection"}),e?.preventDefault()});addElementsFromPasteOrLibrary=e=>{let o=Iu(e.elements,null,void 0),[r,n,i,a]=Ge(o),l=Rn(r,i)/2,c=Rn(n,a)/2,s=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:d,y:p}=We({clientX:s,clientY:m},this.state),u=d-l,b=p-c,[x,y]=Yt(u,b,this.state.gridSize),w=lc(o.map(A=>ce(A,{x:A.x+x-r,y:A.y+y-n})),{randomizeSeed:!e.retainSeed}),k=[...this.scene.getElementsIncludingDeleted(),...w],T=this.getTopLayerFrameAtSceneCoords({x:d,y:p});if(T){let A=ub(w,T);vc(k,A,T)}this.scene.replaceAllElements(k),w.forEach(A=>{if(ie(A)&>(A)){let _=Tr(A,this.scene.getElementsMapIncludingDeleted());Bt(A,_,this.scene.getElementsMapIncludingDeleted())}}),e.files&&(this.files={...this.files,...e.files}),this.history.resumeRecording();let I=Hi(w);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&oo.get(os)?this.state.openSidebar:null,...At({editingGroupId:null,selectedElementIds:I.reduce((A,_)=>(gt(_)||(A[_.id]=!0),A),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{e.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),e.fitToContent&&this.scrollToContent(w,{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(d=>d.type==="imageUrl").map(d=>d.value),a=await Promise.all(i.map(async d=>{try{return{file:await z1(d)}}catch(p){let u=p.message;return p.cause==="FETCH_ERROR"?u=g("errors.failedToFetchImage"):p.cause==="UNSUPPORTED"&&(u=g("errors.unsupportedFileType")),{errorMessage:u}}})),l=n,c=!1,s={};for(let d of a)if(d.file){let p=this.createImageElement({sceneX:r,sceneY:l}),u=await this.insertImageElement(p,d.file);u&&(c||(c=!0,l-=u.height/2),J(u,{y:l},!1),l=p.y+p.height+25,s[p.id]=!0)}this.setState({selectedElementIds:Oe(s,this.state)});let m=a.find(d=>!!d.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}=We({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:
|
|
168
|
-
`),s=c.reduce((d,p,u)=>{let b=p.trim(),x=Tr(i.fontFamily);if(b.length){let y=this.getTopLayerFrameAtSceneCoords({x:r,y:l}),w=rn({...i,x:r,y:l,text:b,lineHeight:x,frameId:y?y.id:null});d.push(w),l+=w.height+a}else c[u-1]?.trim()&&(l+=Jg(i.fontSize,x)+a);return d},[]);if(s.length===0)return;let m=s[0].frameId;m?this.scene.insertElementsAtIndex(s,this.scene.getElementIndex(m)):this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),...s]),this.setState({selectedElementIds:Ne(Object.fromEntries(s.map(d=>[d.id,!0])),this.state)}),!o&&s.length>1&&B3===!1&&!this.device.editor.isMobile&&(this.setToast({message:g("toast.pasteAsSingleElement",{shortcut:N("CtrlOrCmd+Shift+V")}),duration:5e3}),B3=!0),this.history.resumeRecording()}setAppState=(e,o)=>{this.setState(e,o)};removePointer=e=>{_n&&this.resetContextMenuTimer(),Ie.pointers.delete(e.pointerId)};toggleLock=(e="ui")=>{this.state.activeTool.locked||ge("toolbar","toggleLock",`${e} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(o=>({activeTool:{...o.activeTool,...et(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(G2)};zoomCanvas=e=>{this.setState({...Ar({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Mr(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}=Dl({targetElements:r,appState:this.state,fitToViewport:!!o?.fitToViewport,viewportZoomFactor:o?.viewportZoomFactor});n=l.zoom,i=l.scrollX,a=l.scrollY}else{let l=zn(r,this.state);i=l.scrollX,a=l.scrollY}if(o?.animate){let l=this.state.scrollX,c=this.state.scrollY,s=this.state.zoom.value,m=Cg({fromValues:{scrollX:l,scrollY:c,zoom:s},toValues:{scrollX:i,scrollY:a,zoom:n.value},interpolateValue:(d,p,u,b)=>{if(b==="zoom")return d*Math.pow(p/d,Dn(u))},onStep:({scrollX:d,scrollY:p,zoom:u})=>{this.setState({scrollX:d,scrollY:p,zoom:{value:u}})},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,za,window.location.pathname)}}catch(e){this.setState({errorMessage:e.message})}};addFiles=Xe(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=>{ja(r)&&o.has(r.fileId)&&(this.imageCache.delete(r.fileId),or.delete(r))}),this.scene.informMutation(),this.addNewImagesToImageCache()});updateScene=Xe(e=>{e.commitToHistory&&this.history.resumeRecording(),e.appState&&this.setState(e.appState),e.elements&&this.scene.replaceAllElements(e.elements),e.collaborators&&this.setState({collaborators:e.collaborators})});onSceneUpdated=()=>{this.setState({})};toggleSidebar=({name:e,tab:o,force:r})=>{let n;return r===void 0?n=this.state.openSidebar?.name===e?null:e:n=r?e:null,this.setState({openSidebar:n?{name:n,tab:o}:null}),!!n};updateCurrentCursorPosition=Xe(e=>{this.lastViewportPosition.x=e.clientX,this.lastViewportPosition.y=e.clientY});onKeyDown=Xe(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.toLowerCase()===S.V&&(Nm=e.shiftKey,clearTimeout(O3),O3=window.setTimeout(()=>{Nm=!1},100)),e[S.CTRL_OR_CMD]&&Jo(e.target)&&(e.code===me.MINUS||e.code===me.EQUAL)){e.preventDefault();return}if(Jo(e.target)&&e.key!==S.ESCAPE||Si(e.key)&&Eg(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}),Si(e.key)){let i=this.state.gridSize&&(e.shiftKey?Vm:this.state.gridSize)||(e.shiftKey?qh:Vm),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 c=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});c.forEach(s=>{J(s,{x:s.x+a,y:s.y+l}),uu(s,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:c})}),this.maybeSuggestBindingForAll(c),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])Pe(a)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==i[0].id)&&(this.history.resumeRecording(),this.setState({editingLinearElement:new ue(a)}));else if(ie(a)||l1(a)){let l;ie(a)||(l=a);let c=Ys(a,this.state,this.scene.getNonDeletedElementsMap()),s=c.x,m=c.y;this.startTextEditing({sceneX:s,sceneY:m,container:l}),e.preventDefault();return}else we(a)&&this.setState({editingFrame:a.id})}}else if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&this.state.draggingElement===null){let i=Iy(e.key);i?(this.state.activeTool.type!==i&&ge("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&&Ie.pointers.size===0&&(pi=!0,De(this.interactiveCanvas,Le.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&&(tn(this.state.activeTool.type)||i.some(a=>tn(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)&&oo.set(ql,"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=Xe(e=>{!(e.target instanceof HTMLCanvasElement)&&e.ctrlKey&&e.preventDefault()});onKeyUp=Xe(e=>{if(e.key===S.SPACE&&(this.state.viewModeEnabled?De(this.interactiveCanvas,Le.GRAB):this.state.activeTool.type==="selection"?yo(this.interactiveCanvas):(Fo(this.interactiveCanvas,this.state),this.setState({selectedElementIds:Ne({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),pi=!1),!e[S.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Si(e.key)){let o=this.scene.getSelectedElements(this.state),r=this.scene.getNonDeletedElementsMap();On(this.state)?tl(o,this.scene.getNonDeletedElements(),r):rl(o,r),this.setState({suggestedBindings:[]})}});isToolSupported=e=>this.props.UIOptions.tools?.[e]!==!1;setActiveTool=e=>{if(!this.isToolSupported(e.type)){console.warn(`"${e.type}" tool is disabled via "UIOptions.canvasActions.tools.${e.type}"`);return}let o=et(this.state,e);o.type==="hand"?De(this.interactiveCanvas,Le.GRAB):pi||Fo(this.interactiveCanvas,this.state),yg(document.activeElement)&&this.focusContainer(),Pg(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!=="selection"?{...r,activeTool:o,selectedElementIds:Ne({},r),selectedGroupIds:Ne({},r),editingGroupId:null,multiElement:null,...n}:{...r,activeTool:o,...n}})};setOpenDialog=e=>{this.setState({openDialog:e})};setCursor=e=>{De(this.interactiveCanvas,e)};resetCursor=()=>{yo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>Ie.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${g("labels.untitled")}-${Jm()}`;onGestureStart=Xe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:Ne({},this.state),activeEmbeddable:null}),Ie.initialScale=this.state.zoom.value});onGestureChange=Xe(e=>{if(e.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let o=Ie.initialScale;o&&this.setState(r=>({...Ar({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Mr(o*e.scale)},r)}))});onGestureEnd=Xe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:Ne(this.state.previousSelectedElementIds,this.state)}),Ie.initialScale=null});handleTextWysiwyg(e,{isExistingElement:o=!1}){let r=this.scene.getElementsMapIncludingDeleted(),n=(i,a,l)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(c=>c.id===e.id&&ie(c)?w1(c,Cr(c,r),r,{text:i,isDeleted:l,originalText:a}):c)])};R3({id:e.id,canvas:this.canvas,getViewportCoords:(i,a)=>{let{x:l,y:c}=Kt({sceneX:i,sceneY:a},this.state);return[l-this.state.offsetLeft,c-this.state.offsetTop]},onChange:Xe(i=>{n(i,i,!1),Ou(e)&&uu(e,r)}),onSubmit:Xe(({text:i,viaKeyboard:a,originalText:l})=>{let c=!i.trim();if(n(i,l,c),!c&&a){let s=e.containerId?e.containerId:e.id;this.setState(m=>({selectedElementIds:Ne({...m.selectedElementIds,[s]:!0},m)}))}c&&Ii(this.scene.getNonDeletedElements(),[e]),(!c||o)&&this.history.resumeRecording(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&Fo(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:Ne({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(e,o){let r=this.getElementAtPosition(e,o,{includeBoundTextElement:!0});return r&&ie(r)&&!r.isDeleted?r: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 $s(i,this.state,this.frameNameBoundsCache,e,o,this.scene.getNonDeletedElementsMap())?n[n.length-2]:i}return n.length===1?n[0]:null}getElementsAtPosition(e,o,r=!1,n=!1){let i=r&&n?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(l=>(n||!l.locked)&&(r||!(ie(l)&&l.containerId))),a=this.scene.getNonDeletedElementsMap();return Hg(i,l=>su(l,this.state,this.frameNameBoundsCache,e,o,a)).filter(l=>{let c=mc(l,a);return c&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?Mu({x:e,y:o},c,a):!0})}startTextEditing=({sceneX:e,sceneY:o,insertAtParentCenter:r=!0,container:n})=>{let i=!1,a=r&&this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n);n&&a&&(nt(n,this.scene.getNonDeletedElementsMap())||(i=!0));let l=null,c=this.scene.getSelectedElements(this.state);c.length===1?ie(c[0])?l=c[0]:n?l=nt(c[0],this.scene.getNonDeletedElementsMap()):l=this.getTextElementAtPosition(e,o):l=this.getTextElementAtPosition(e,o);let s=l?.fontFamily||this.state.currentItemFontFamily,m=l?.lineHeight||Tr(s),d=this.state.currentItemFontSize;if(!l&&i&&n&&!yr(n)){let x=o1(Bo({fontSize:d,fontFamily:s}),m),y=Qg(d,m),w=Math.max(n.height,y),k=Math.max(n.width,x);J(n,{height:w,width:k}),e=n.x+k/2,o=n.y+w/2,a&&(a=this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n))}let p=this.getTopLayerFrameAtSceneCoords({x:e,y:o}),u=l||rn({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:d,fontFamily:s,textAlign:a?"center":this.state.currentItemTextAlign,verticalAlign:a?fo.MIDDLE:Ym,containerId:i?n?.id:void 0,groupIds:n?.groupIds??[],lineHeight:m,angle:n?.angle??0,frameId:p?p.id:null});if(!l&&i&&n&&J(n,{boundElements:(n.boundElements||[]).concat({type:"text",id:u.id})}),this.setState({editingElement:u}),!l)if(n&&i){let b=this.scene.getElementIndex(n.id);this.scene.insertElementAtIndex(u,b+1)}else this.scene.addNewElement(u);this.setState({editingElement:u}),this.handleTextWysiwyg(u,{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&&Pe(o[0])){if(e[S.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==o[0].id)){this.history.resumeRecording(),this.setState({editingLinearElement:new ue(o[0])});return}else if(this.state.editingLinearElement&&this.state.editingLinearElement.elementId===o[0].id)return}yo(this.interactiveCanvas);let{x:r,y:n}=We(e,this.state);if(kr(this.state).length>0){let a=this.getElementAtPosition(r,n),l=a&&f1(a,this.state.selectedGroupIds);if(l){this.setState(c=>({...c,...At({editingGroupId:l,selectedElementIds:{[a.id]:!0}},this.scene.getNonDeletedElements(),c,this)}));return}}if(yo(this.interactiveCanvas),!e[S.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let a=this.getElementAtPosition(r,n);if(Ei(a)){this.setState({activeEmbeddable:{element:a,state:"active"}});return}let l=pu(this.scene.getNonDeletedElements(),this.state,r,n,this.scene.getNonDeletedElementsMap());if(l&&(er(l)||!Nn(l.backgroundColor)||cu(l,this.state,this.frameNameBoundsCache,[r,n],this.scene.getNonDeletedElementsMap()))){let c=Ys(l,this.state,this.scene.getNonDeletedElementsMap());r=c.x,n=c.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&&lc(i,this.scene.getNonDeletedElementsMap(),this.state,[e.x,e.y],this.device.editor.isMobile)))};redirectToLink=(e,o)=>{let r=en(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||o&&r>An||!o&&r!==0)return;let n=We(this.lastPointerDownEvent,this.state),i=this.scene.getNonDeletedElementsMap(),a=lc(this.hitLinkElement,i,this.state,[n.x,n.y],this.device.editor.isMobile),l=We(this.lastPointerUpEvent,this.state),c=lc(this.hitLinkElement,i,this.state,[l.x,l.y],this.device.editor.isMobile);if(a&&c){let s=this.hitLinkElement.link;if(s){s=Ir(s);let m;if(this.props.onLinkOpen&&(m=Rs("excalidraw-link",e.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:s},m)),!m?.defaultPrevented){let d=Xs(s)?"_self":"_blank",p=window.open(void 0,d);p&&(p.opener=null,p.location=s)}}}};getTopLayerFrameAtSceneCoords=e=>{let o=this.scene.getNonDeletedElementsMap(),r=this.scene.getNonDeletedFramesLikes().filter(n=>Mu(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,Ie.pointers.has(e.pointerId)&&Ie.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});let o=Ie.initialScale;if(Ie.pointers.size===2&&Ie.lastCenter&&o&&Ie.initialDistance){let p=vf(Ie.pointers),u=p.x-Ie.lastCenter.x,b=p.y-Ie.lastCenter.y;Ie.lastCenter=p;let x=yf(Array.from(Ie.pointers.values())),y=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:x/Ie.initialDistance,w=y?Mr(o*y):this.state.zoom.value;this.setState(k=>{let C=Ar({viewportX:p.x,viewportY:p.y,nextZoom:w},k);this.translateCanvas({zoom:C.zoom,scrollX:C.scrollX+u/w,scrollY:C.scrollY+b/w,shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else Ie.lastCenter=Ie.initialDistance=Ie.initialScale=null;if(pi||ms||Ch||Sr(this.state))return;let n=Bf(Th,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(n?yo(this.interactiveCanvas):Fo(this.interactiveCanvas,this.state));let i=We(e,this.state),{x:a,y:l}=i;if(!this.state.draggingElement&&m3(this.state.activeTool.type)){let{originOffset:p,snapLines:u}=d3(this.scene.getNonDeletedElements(),this.state,{x:a,y:l},e,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x=Os(b.snapLines,u),y=b.originSnapOffset?Os(b.originSnapOffset,p):p;return b.snapLines===x&&b.originSnapOffset===y?null:{snapLines:x,originSnapOffset:y}})}else this.state.draggingElement||this.setState(p=>p.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let p=ue.handlePointerMove(e,a,l,this.state,this.scene.getNonDeletedElementsMap());p&&p!==this.state.editingLinearElement&&(0,Om.flushSync)(()=>{this.setState({editingLinearElement:p})}),p?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(i):(0,Om.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(Dg(this.state.activeTool.type)){let{draggingElement:p}=this.state;Er(p,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(p,[i],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(i)}if(this.state.multiElement){let{multiElement:p}=this.state,{x:u,y:b}=p,{points:x,lastCommittedPoint:y}=p,w=x[x.length-1];if(Fo(this.interactiveCanvas,this.state),w===y)en(a-u,l-b,w[0],w[1])>=Es?J(p,{points:[...x,[a-u,l-b]]}):De(this.interactiveCanvas,Le.POINTER);else if(x.length>2&&y&&en(a-u,l-b,y[0],y[1])<Es)De(this.interactiveCanvas,Le.POINTER),J(p,{points:x.slice(0,-1)});else{let[k,C]=Yt(a,l,e[S.CTRL_OR_CMD]?null:this.state.gridSize),[I,A]=p?.lastCommittedPoint??[0,0],_=k-u-I,M=C-b-A;zs(e)&&({width:_,height:M}=Lu(I+u,A+b,k,C)),qa(x,this.state.zoom.value)&&De(this.interactiveCanvas,Le.POINTER),J(p,{points:[...x.slice(0,-1),[I+_,A+M]]})}return}if(!!e.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let s=this.scene.getNonDeletedElements(),m=this.scene.getSelectedElements(this.state);if(m.length===1&&!n&&!this.state.editingLinearElement){let p=Pu(s,this.state,a,l,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap());if(p&&p.transformHandleType){De(this.interactiveCanvas,Ru(p));return}}else if(m.length>1&&!n){let p=Du(Ge(m),a,l,this.state.zoom,e.pointerType);if(p){De(this.interactiveCanvas,Ru({transformHandleType:p}));return}}let d=this.getElementAtPosition(i.x,i.y);this.hitLinkElement=this.getElementLinkAtPosition(i,d),!vo(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(De(this.interactiveCanvas,Le.POINTER),uy(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(py(),d&&(d.link||Ot(d))&&this.state.selectedElementIds[d.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?De(this.interactiveCanvas,ie(d)?Le.TEXT:Le.CROSSHAIR):this.state.viewModeEnabled?De(this.interactiveCanvas,Le.GRAB):n?De(this.interactiveCanvas,Le.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l):e[S.CTRL_OR_CMD]?De(this.interactiveCanvas,Le.AUTO):(d||this.isHittingCommonBoundingBoxOfSelectedElements(i,m))&&!d?.locked&&(d&&Ei(d)&&this.isIframeLikeElementCenter(d,e,a,l)?(De(this.interactiveCanvas,Le.POINTER),this.setState({activeEmbeddable:{element:d,state:"hover"}})):(De(this.interactiveCanvas,Le.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=p=>{for(let u of p){if(u.locked)return;if(e.altKey?this.elementsPendingErasure.delete(u.id)&&(n=!0):this.elementsPendingErasure.has(u.id)||(n=!0,this.elementsPendingErasure.add(u.id)),n&&u.groupIds?.length){let b=u.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)}}}},c=en(o.lastCoords.x,o.lastCoords.y,r.x,r.y),s=10/this.state.zoom.value,m={...o.lastCoords},d=0;for(;d<=c;){let p=this.getElementsAtPosition(m.x,m.y);if(l(p),d===c)break;d=Math.min(d+s,c);let u=d/c,b=(1-u)*m.x+u*r.x,x=(1-u)*m.y+u*r.y;m.x=b,m.y=x}if(o.lastCoords.x=r.x,o.lastCoords.y=r.y,n){for(let p of this.scene.getNonDeletedElements())gt(p)&&(this.elementsPendingErasure.has(p.id)||this.elementsPendingErasure.has(p.containerId))&&(e.altKey?(this.elementsPendingErasure.delete(p.id),this.elementsPendingErasure.delete(p.containerId)):(this.elementsPendingErasure.add(p.id),this.elementsPendingErasure.add(p.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.onSceneUpdated()}};handleTouchMove=e=>{us=!0};handleHoverSelectedLinearElement(e,o,r){let n=this.scene.getNonDeletedElementsMap(),i=ue.getElement(e.elementId,n),a=nt(i,n);if(i)if(this.state.selectedLinearElement){let l=-1,c=null;cu(i,this.state,this.frameNameBoundsCache,[o,r],n)?(l=ue.getPointIndexUnderCursor(i,n,this.state.zoom,o,r),c=ue.getSegmentMidpointHitCoords(e,{x:o,y:r},this.state,this.scene.getNonDeletedElementsMap()),l>=0||c?De(this.interactiveCanvas,Le.POINTER):De(this.interactiveCanvas,Le.MOVE)):Fs([i],this.state)&&$s(i,this.state,this.frameNameBoundsCache,o,r,n)?De(this.interactiveCanvas,Le.MOVE):a&&su(a,this.state,this.frameNameBoundsCache,o,r,this.scene.getNonDeletedElementsMap())&&De(this.interactiveCanvas,Le.MOVE),this.state.selectedLinearElement.hoverPointIndex!==l&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:l}}),ue.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,c)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:c}})}else De(this.interactiveCanvas,Le.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 s=this.state.draggingElement;this.updateScene({...s.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(m=>m.id!==s.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:Ne(Object.keys(this.state.selectedElementIds).filter(m=>m!==s.id).reduce((m,d)=>(m[d]=this.state.selectedElementIds[d],m),{}),this.state)}});return}let o=document.getSelection();if(o?.anchorNode&&o.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(e),!this.state.penDetected&&e.pointerType==="pen"&&this.setState(s=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(e.pointerType)&&(this.device=xi(this.device,{isTouchScreen:!0})),ms||(this.lastPointerDownEvent=e,this.handleCanvasPanUsingWheelOrSpaceDrag(e)))return;if(this.setState({lastPointerDownWith:e.pointerType,cursorButton:"down"}),this.savePointer(e.clientX,e.clientY,"down"),e.button===Zr.ERASER&&this.state.activeTool.type!==mt.eraser){this.setState({activeTool:et(this.state,{type:mt.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(e);let s=()=>{m(),d?.(),vo(this.state)&&this.setState({activeTool:et(this.state,{...this.state.activeTool.lastActiveTool||{type:mt.selection},lastActiveToolBeforeEraser:null})})},m=tt(window,"pointerup",s,{once:!0}),d;requestAnimationFrame(()=>{d=this.missingPointerEventCleanupEmitter.once(s)})});return}if(e.button!==Zr.MAIN&&e.button!==Zr.TOUCH&&e.button!==Zr.ERASER||Ie.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"){De(this.interactiveCanvas,Le.CROSSHAIR);let s=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!s)return;this.setState({draggingElement:s,editingElement:s,pendingImageElementId:null,multiElement:null});let{x:m,y:d}=We(e,this.state),p=this.getTopLayerFrameAtSceneCoords({x:m,y:d});J(s,{x:m,y:d,frameId:p?p.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(e,this.state.activeTool.type,r):this.state.activeTool.type==="custom"?Fo(this.interactiveCanvas,this.state):this.state.activeTool.type===mt.frame||this.state.activeTool.type===mt.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),c=this.onKeyUpFromPointerDownHandler(r);this.missingPointerEventCleanupEmitter.once(s=>a(s||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",c),r.eventListeners.onMove=i,r.eventListeners.onUp=a,r.eventListeners.onKeyUp=c,r.eventListeners.onKeyDown=l)};handleCanvasPointerUp=e=>{this.removePointer(e),this.lastPointerUpEvent=e;let o=We({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(Ei(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&&Ei(this.hitLinkElement)&&!H1(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"&&(us=!1,_n?us=!0:_n=window.setTimeout(()=>{_n=0,us||this.handleCanvasContextMenu(e)},ig))};resetContextMenuTimer=()=>{clearTimeout(_n),_n=0,us=!1};maybeCleanupAfterMissingPointerUp=e=>{ps?.(),this.missingPointerEventCleanupEmitter.trigger(e).clear()};handleCanvasPanUsingWheelOrSpaceDrag=e=>{if(!(Ie.pointers.size<=1&&(e.button===Zr.WHEEL||e.button===Zr.MAIN&&pi||Sr(this.state)||this.state.viewModeEnabled))||ie(this.state.editingElement))return!1;ms=!0,e.preventDefault();let o=!1,r=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);De(this.interactiveCanvas,Le.GRABBING);let{clientX:n,clientY:i}=e,a=Im(c=>{let s=n-c.clientX,m=i-c.clientY;if(n=c.clientX,i=c.clientY,r&&!o&&(Math.abs(s)>1||Math.abs(m)>1)){o=!0;let d=u=>{document.body.removeEventListener("paste",d),u.stopPropagation()},p=()=>{setTimeout(()=>{document.body.removeEventListener("paste",d),window.removeEventListener("pointerup",p)},100)};document.body.addEventListener("paste",d),window.addEventListener("pointerup",p)}this.translateCanvas({scrollX:this.state.scrollX-s/this.state.zoom.value,scrollY:this.state.scrollY-m/this.state.zoom.value})}),l=Xe(ps=()=>{ps=null,ms=!1,pi||(this.state.viewModeEnabled?De(this.interactiveCanvas,Le.GRAB):Fo(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){Ie.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),Ie.pointers.size===2&&(Ie.lastCenter=vf(Ie.pointers),Ie.initialScale=this.state.zoom.value,Ie.initialDistance=yf(Array.from(Ie.pointers.values())))}initialPointerDownState(e){let o=We(e,this.state),r=this.scene.getSelectedElements(this.state),[n,i,a,l]=Ge(r);return{origin:o,withCmdOrCtrl:e[S.CTRL_OR_CMD],originInGrid:Ya(Yt(o.x,o.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:Bf(Th,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop),lastCoords:{...o},originalElements:this.scene.getNonDeletedElements().reduce((c,s)=>(c.set(s.id,Li(s)),c),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;Ch=!0,o.lastCoords.x=e.clientX,o.lastCoords.y=e.clientY;let r=Im(i=>{i.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(i,o)}),n=Xe(()=>{ps=null,Ch=!1,Fo(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 ps=n,window.addEventListener("pointermove",r),window.addEventListener("pointerup",n),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:Ne({},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){let a=Pu(r,this.state,o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap());a!=null&&(this.setState({resizingElement:a.element}),o.resize.handleType=a.transformHandleType)}else i.length>1&&(o.resize.handleType=Du(Ge(i),o.origin.x,o.origin.y,this.state.zoom,e.pointerType));if(o.resize.handleType)o.resize.isResizing=!0,o.resize.offset=Ya(db(o.resize.handleType,i,n,o.origin.x,o.origin.y)),i.length===1&&Pe(i[0])&&i[0].points.length===2&&(o.resize.arrowDirection=mb(o.resize.handleType,i[0]));else{if(this.state.selectedLinearElement){let c=this.state.editingLinearElement||this.state.selectedLinearElement,s=ue.handlePointerDown(e,this.state,this.history,o.origin,c,this.scene.getNonDeletedElements(),n);if(s.hitElement&&(o.hit.element=s.hitElement),s.linearElementEditor&&(this.setState({selectedLinearElement:s.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:s.linearElementEditor})),s.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(c=>this.isASelectedElement(c));if((a===null||!l)&&!e.shiftKey&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(a),this.state.editingLinearElement)this.setState({selectedElementIds:Ne({[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(c=>({...p1(c,a),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[a.id]||(this.state.editingGroupId&&!Ai(a,this.state.editingGroupId)&&this.setState({selectedElementIds:Ne({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!l&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(c=>{let s={...c.selectedElementIds,[a.id]:!0},m=[];if(Object.keys(c.selectedElementIds).forEach(d=>{let p=this.scene.getElement(d);p&&m.push(p)}),we(a))nn(m,a.id).forEach(d=>{delete s[d.id]});else if(a.frameId)s[a.frameId]&&delete s[a.id];else{let d=a.groupIds,p=new Set(d.flatMap(u=>ut(this.scene.getNonDeletedElements(),u)).filter(u=>we(u)).map(u=>u.id));p.size>0&&m.forEach(u=>{u.frameId&&p.has(u.frameId)&&(delete s[u.id],u.groupIds.flatMap(b=>ut(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete s[b.id]}))})}return{...At({editingGroupId:c.editingGroupId,selectedElementIds:s},this.scene.getNonDeletedElements(),c,this),showHyperlinkPopup:a.link||Ot(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=10/this.state.zoom.value,[n,i,a,l]=Ge(o);return e.x>n-r&&e.x<a+r&&e.y>i-r&&e.y<l+r}handleTextOnPointerDown=(e,o)=>{if(ie(this.state.editingElement))return;let r=o.origin.x,n=o.origin.y,i=this.getElementAtPosition(r,n,{includeBoundTextElement:!0}),a=pu(this.scene.getNonDeletedElements(),this.state,r,n,this.scene.getNonDeletedElementsMap());er(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}),yo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:et(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(e,o,r)=>{let[n,i]=Yt(r.origin.x,r.origin.y,null),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),l=C1({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 d={...m.selectedElementIds};return delete d[l.id],{selectedElementIds:Ne(d,m)}});let c=l.simulatePressure?l.pressures:[...l.pressures,e.pressure];J(l,{points:[[0,0]],pressures:c});let s=nl(r.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.addNewElement(l),this.setState({draggingElement:l,editingElement:l,startBoundElement:s,suggestedBindings:[]})};insertIframeElement=({sceneX:e,sceneY:o,width:r,height:n})=>{let[i,a]=Yt(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),l=y1({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.replaceAllElements([...this.scene.getElementsIncludingDeleted(),l]),l};insertEmbeddableElement=({sceneX:e,sceneY:o,link:r})=>{let[n,i]=Yt(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=Fn(r);if(!a)return;a.error instanceof URIError&&this.setToast({message:g("toast.unrecognizedLinkFormat"),closable:!0});let l=hu({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.replaceAllElements([...this.scene.getElementsIncludingDeleted(),l]),l};createImageElement=({sceneX:e,sceneY:o,addToFrameUnderCursor:r=!0})=>{let[n,i]=Yt(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=r?this.getTopLayerFrameAtSceneCoords({x:n,y:i}):null;return Js({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"&&qa(n.points,this.state.zoom.value)){J(n,{lastCommittedPoint:n.points[n.points.length-1]}),this.actionManager.executeAction(ko);return}let{x:i,y:a,lastCommittedPoint:l}=n;if(n.points.length>1&&l&&en(r.origin.x-i,r.origin.y-a,l[0],l[1])<Es){this.actionManager.executeAction(ko);return}this.setState(c=>({selectedElementIds:Ne({...c.selectedElementIds,[n.id]:!0},c)})),J(n,{lastCommittedPoint:n.points[n.points.length-1]}),De(this.interactiveCanvas,Le.POINTER)}else{let[n,i]=Yt(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:c}=this.state,[s,m]=o==="arrow"?[l,c]:[null,null],d=sl({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:ho.PROPORTIONAL_RADIUS}:null,startArrowhead:s,endArrowhead:m,locked:!1,frameId:a?a.id:null});this.setState(u=>{let b={...u.selectedElementIds};return delete b[d.id],{selectedElementIds:Ne(b,u)}}),J(d,{points:[...d.points,[0,0]]});let p=nl(r.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.addNewElement(d),this.setState({draggingElement:d,editingElement:d,startBoundElement:p,suggestedBindings:[]})}};getCurrentItemRoundness(e){return this.state.currentItemRoundness==="round"?{type:Ci(e)?ho.ADAPTIVE_RADIUS:ho.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(e,o)=>{let[r,n]=Yt(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=hu({type:"embeddable",...a}):l=on({type:e,...a}),l.type==="selection"?this.setState({selectionElement:l,draggingElement:l}):(this.scene.addNewElement(l),this.setState({multiElement:null,draggingElement:l,editingElement:l}))};createFrameElementOnPointerDown=(e,o)=>{let[r,n]=Yt(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,...Oo},a=o===mt.magicframe?ll(i):qs(i);this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),a]),this.setState({multiElement:null,draggingElement:a,editingElement:a})};maybeCacheReferenceSnapPoints(e,o,r=!1){Kr({event:e,appState:this.state,selectedElements:o})&&(r||!Lo.getReferenceSnapPoints())&&Lo.setReferenceSnapPoints(a3(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(e,o,r=!1){Kr({event:e,appState:this.state,selectedElements:o})&&(r||!Lo.getVisibleGaps())&&Lo.setVisibleGaps(i3(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(e){return Xe(o=>{this.maybeHandleResize(e,o)||this.maybeDragNewGenericElement(e,o)})}onKeyUpFromPointerDownHandler(e){return Xe(o=>{o.key===S.ALT&&o.preventDefault(),!this.maybeHandleResize(e,o)&&this.maybeDragNewGenericElement(e,o)})}onPointerMoveFromPointerDownHandler(e){return Im(o=>{if(e.drag.offset===null&&(e.drag.offset=Ya(pb(this.scene.getSelectedElements(this.state),e.origin.x,e.origin.y))),!(o.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(o,e))return;let n=We(o,this.state);if(vo(this.state)){this.handleEraser(o,e,n);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(n.x,n.y);let[i,a]=Yt(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")&&en(n.x,n.y,e.origin.x,e.origin.y)<An)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 d=this.state.editingLinearElement||this.state.selectedLinearElement;if(ue.shouldAddMidpoint(this.state.selectedLinearElement,n,this.state,l)){let u=ue.addMidpoint(this.state.selectedLinearElement,n,this.state,!o[S.CTRL_OR_CMD],l);if(!u)return;(0,Om.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:u.pointerDownState,selectedPointsIndices:u.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:u.pointerDownState,selectedPointsIndices:u.selectedPointsIndices}})});return}else if(d.pointerDownState.segmentMidpoint.value!==null&&!d.pointerDownState.segmentMidpoint.added)return;if(ue.handlePointDragging(o,this.state,n.x,n.y,(u,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(u,b)},d,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 c=e.hit.allHitElements.some(d=>this.isASelectedElement(d)),s=this.state.editingLinearElement&&o.shiftKey&&this.state.editingLinearElement.elementId===e.hit.element?.id;if((c||e.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!s){let d=this.scene.getSelectedElements(this.state);if(d.every(b=>b.locked))return;let p=d.find(b=>we(b)),u=this.getTopLayerFrameAtSceneCoords(n);if(this.setState({frameToHighlight:u&&!p?u:null}),e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),d.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 C=Math.abs(b.x),I=Math.abs(b.y),A=y&&C<I,_=y&&C>I;A&&(b.x=0),_&&(b.y=0)}this.maybeCacheVisibleGaps(o,d),this.maybeCacheReferenceSnapPoints(o,d);let{snapOffset:w,snapLines:k}=l3(x,b,this.state,o,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:k}),!this.state.editingFrame&&ub(e,d,b,this.state,this.scene,w,o[S.CTRL_OR_CMD]?null:this.state.gridSize),this.maybeSuggestBindingForAll(d),o.altKey&&!e.hit.hasBeenDuplicated){e.hit.hasBeenDuplicated=!0;let C=[],I=[],A=new Map,_=new Map,M=e.hit.element,L=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(Y=>Y.id)),W=this.scene.getElementsIncludingDeleted();for(let Y of W)if(L.has(Y.id)||Y.id===M?.id&&e.hit.wasAddedToSelection){let O=Qs(this.state.editingGroupId,A,Y),z=e.originalElements.get(Y.id);J(O,{x:z.x,y:z.y}),e.originalElements.set(O.id,O),C.push(O),I.push(Y),_.set(Y.id,O.id)}else C.push(Y);let B=[...C,...I];Gs(C,I,_),Ws(B,I,_,"duplicatesServeAsOld"),dc(B,I,_),this.scene.replaceAllElements(B),this.maybeCacheVisibleGaps(o,d,!0),this.maybeCacheReferenceSnapPoints(o,d,!0)}return}}let m=this.state.draggingElement;if(m){if(m.type==="freedraw"){let d=m.points,p=n.x-m.x,u=n.y-m.y,b=d.length>0&&d[d.length-1];if(!(b&&b[0]===p&&b[1]===u)){let y=m.simulatePressure?m.pressures:[...m.pressures,o.pressure];J(m,{points:[...d,[p,u]],pressures:y})}}else if(Pe(m)){e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let d=m.points,p=i-m.x,u=a-m.y;zs(o)&&d.length===2&&({width:p,height:u}=Lu(m.x,m.y,n.x,n.y)),d.length===1?J(m,{points:[...d,[p,u]]}):d.length===2&&J(m,{points:[...d.slice(0,-1),[p,u]]}),Er(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 d=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)ue.handleBoxSelection(o,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let p=!0;!o.shiftKey&&Re(d,this.state)&&(e.withCmdOrCtrl&&e.hit.element?this.setState(b=>At({...b,selectedElementIds:{[e.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):p=!1);let u=fb(d,m,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x={...p&&b.selectedElementIds,...u.reduce((y,w)=>(y[w.id]=!0,y),{})};return e.hit.element&&(u.length?delete x[e.hit.element.id]:x[e.hit.element.id]=!0),b=p?b:{...b,selectedGroupIds:{},editingGroupId:null},{...At({editingGroupId:b.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:u.length===1&&Pe(u[0])?new ue(u[0]):null,showHyperlinkPopup:u.length===1&&(u[0].link||Ot(u[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 Xe(o=>{this.removePointer(o),e.eventListeners.onMove&&e.eventListeners.onMove.flush();let{draggingElement:r,resizingElement:n,multiElement:i,activeTool:a,isResizing:l,isRotating:c}=this.state;this.setState(u=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:i||ie(this.state.editingElement)?this.state.editingElement:null,snapLines:Os(u.snapLines,[]),originSnapOffset:null})),Lo.setReferenceSnapPoints(null),Lo.setVisibleGaps(null),this.savePointer(o.clientX,o.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let s=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!e.boxSelection.hasOccurred&&e.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(ko);else{let u=ue.handlePointerUp(o,this.state.editingLinearElement,this.state,this.scene.getNonDeletedElements(),s);u!==this.state.editingLinearElement&&this.setState({editingLinearElement:u,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 u=ue.handlePointerUp(o,this.state.selectedLinearElement,this.state,this.scene.getNonDeletedElements(),s),{startBindingElement:b,endBindingElement:x}=u,y=this.scene.getElement(u.elementId);Er(y)&&Us(y,b,x,s),u!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...u,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 u=We(o,this.state),b=r.points,x=u.x-r.x,y=u.y-r.y;x===b[0][0]&&y===b[0][1]&&(y+=1e-4,x+=1e-4);let w=r.simulatePressure?[]:[...r.pressures,o.pressure];J(r,{points:[...b,[x,y]],pressures:w,lastCommittedPoint:[x,y]}),this.actionManager.executeAction(ko);return}if(Jr(r)){let u=r;try{this.initializeImageDimensions(u),this.setState({selectedElementIds:Ne({[u.id]:!0},this.state)},()=>{this.actionManager.executeAction(ko)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(x=>x.id!==u.id)),this.actionManager.executeAction(ko)}return}if(Pe(r)){r.points.length>1&&this.history.resumeRecording();let u=We(o,this.state);!e.drag.hasOccurred&&r&&!i?(J(r,{points:[...r.points,[u.x-r.x,u.y-r.y]]}),this.setState({multiElement:r,editingElement:this.state.draggingElement})):e.drag.hasOccurred&&!i&&(On(this.state)&&Er(r,!1)&&ol(r,this.state,this.scene,u,s),this.setState({suggestedBindings:[],startBoundElement:null}),a.locked?this.setState(b=>({draggingElement:null})):(yo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:et(this.state,{type:"selection"}),selectedElementIds:Ne({...b.selectedElementIds,[r.id]:!0},b),selectedLinearElement:new ue(r)}))));return}if(a.type!=="selection"&&r&&Hn(r)){this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(u=>u.id!==r.id)),this.setState({draggingElement:null});return}if(r){if(e.drag.hasOccurred){let u=We(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=mc(b,s);x&&b&&(J1(b,x,this.scene.getNonDeletedElementsMap())||(J(b,{groupIds:[]}),pc([b],this.scene.getNonDeletedElementsMap()),this.scene.informMutation()))}}else{let b=this.getTopLayerFrameAtSceneCoords(u),x=this.scene.getSelectedElements(this.state),y=this.scene.getElementsMapIncludingDeleted(),w=k=>{if(k.length>0){for(let C of k){let I=C.groupIds.indexOf(this.state.editingGroupId);J(C,{groupIds:C.groupIds.slice(0,I)},!1)}y.forEach(C=>{C.groupIds.length&&ut(y,C.groupIds[C.groupIds.length-1]).length<2&&J(C,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let k=x.filter(C=>C.frameId!==b.id&&Au(C,y,this.state));this.state.editingGroupId&&w(k),y=uc(y,k,b)}else if(!b&&this.state.editingGroupId){let k=x.filter(C=>C.frameId&&!Au(C,y,this.state));w(k)}y=tr(y,this.state,this),this.scene.replaceAllElements(y)}}if(we(r)){let u=tb(this.scene.getElementsIncludingDeleted(),r,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(uc(this.scene.getElementsMapIncludingDeleted(),u,r))}J(r,lb(r))}if(n&&this.history.resumeRecording(),n&&Hn(n)&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(u=>u.id!==n.id)),e.resize.isResizing){let u=tr(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(x=>we(x));for(let x of b)u=fc(u,Bi(this.scene.getElementsIncludingDeleted(),x,this.state,s),x,this);this.scene.replaceAllElements(u)}let m=e.hit.element;this.state.selectedLinearElement?.elementId!==m?.id&&Pe(m)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new ue(m)});let d=this.lastPointerDownEvent,p=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(vo(this.state)&&d&&p){if(this.eraserTrail.endPath(),en(d.clientX,d.clientY,p.clientX,p.clientY)===0){let b=We({clientX:p.clientX,clientY:p.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]?js(this.state,m)?this.setState(u=>{let b={...u.selectedElementIds};for(let x of m.groupIds.flatMap(y=>ut(this.scene.getNonDeletedElements(),y)))delete b[x.id];return{selectedGroupIds:{...u.selectedElementIds,...m.groupIds.map(x=>({[x]:!1})).reduce((x,y)=>({...x,...y}),{})},selectedElementIds:Ne(b,u)}}):this.state.selectedLinearElement?.isDragging||this.setState(u=>{let b={...u.selectedElementIds};delete b[m.id];let x=Se(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...At({editingGroupId:u.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),u,this),selectedLinearElement:x.length===1&&Pe(x[0])?new ue(x[0]):u.selectedLinearElement}}):m.frameId&&this.state.selectedElementIds[m.frameId]?this.setState(u=>{let b={...u.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]}),{...At({editingGroupId:u.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),u,this),showHyperlinkPopup:m.link||Ot(m)?"info":!1}}):this.setState(u=>({selectedElementIds:Ne({...u.selectedElementIds,[m.id]:!0},u)})):this.setState(u=>({...At({editingGroupId:u.editingGroupId,selectedElementIds:{[m.id]:!0}},this.scene.getNonDeletedElements(),u,this),selectedLinearElement:Pe(m)&&u.selectedLinearElement?.elementId!==m.id?new ue(m):u.selectedLinearElement}))),!e.drag.hasOccurred&&!this.state.isResizing&&(m&&$s(m,this.state,this.frameNameBoundsCache,e.origin.x,e.origin.y,this.scene.getNonDeletedElementsMap())||!m&&e.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:Ne({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null});return}if(!a.locked&&a.type!=="freedraw"&&r&&r.type!=="selection"&&this.setState(u=>({selectedElementIds:Ne({...u.selectedElementIds,[r.id]:!0},u),showHyperlinkPopup:Ot(r)&&!r.link?"editor":u.showHyperlinkPopup})),(a.type!=="selection"||Re(this.scene.getNonDeletedElements(),this.state))&&this.history.resumeRecording(),(e.drag.hasOccurred||l||c)&&(On(this.state)?tl(this.scene.getSelectedElements(this.state),this.scene.getNonDeletedElements(),s):rl(this.scene.getSelectedElements(this.state),s)),a.type==="laser"){this.laserTrails.endPath();return}!a.locked&&a.type!=="freedraw"?(yo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:et(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),m&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&Ie.pointers.size<=1&&Ei(m)&&this.isIframeLikeElementCenter(m,this.lastPointerUpEvent,e.origin.x,e.origin.y)&&this.handleEmbeddableCenterClick(m)})}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)||gt(r)&&this.elementsPendingErasure.has(r.containerId)?(e=!0,ce(r,{isDeleted:!0})):r);this.elementsPendingErasure=new Set,e&&(this.history.resumeRecording(),this.scene.replaceAllElements(o))};initializeImage=async({imageFile:e,imageElement:o,showCursorImagePreview:r=!1})=>{if(!rc(e))throw new Error(g("errors.unsupportedFileType"));let n=e.type;if(De(this.interactiveCanvas,"wait"),n===_t.svg)try{e=Cu(await F1(await e.text()),e.name)}catch(s){throw console.warn(s),new Error(g("errors.svgImageInsertError"))}let i=await(this.props.generateIdForFile?.(e)||M1(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 cl(e,{maxWidthOrHeight:hg})}catch(s){console.error("Error trying to resizing image file on insertion",s)}if(e.size>Xm)throw new Error(g("errors.fileTooBig",{maxSize:`${Math.trunc(Xm/1024/1024)}MB`}))}if(r){let s=this.files[i]?.dataURL,m=s&&A1(s);this.setImagePreviewCursor(m||e)}let l=this.files[i]?.dataURL||await ic(e),c=J(o,{fileId:i},!1);return new Promise(async(s,m)=>{try{this.files={...this.files,[i]:{mimeType:n,id:i,dataURL:l,created:Date.now(),lastRetrieved:Date.now()}};let d=this.imageCache.get(i);d||(this.addNewImagesToImageCache(),await this.updateImageCache([c])),d?.image instanceof Promise&&await d.image,this.state.pendingImageElementId!==c.id&&this.state.draggingElement?.id!==c.id&&this.initializeImageDimensions(c,!0),s(c)}catch(d){console.error(d),m(new Error(g("errors.imageInsertError")))}finally{r||yo(this.interactiveCanvas)}})};insertImageElement=async(e,o,r)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}this.scene.addNewElement(e);try{return await this.initializeImage({imageFile:o,imageElement:e,showCursorImagePreview:r})}catch(n){return J(e,{isDeleted:!0}),this.actionManager.executeAction(ko),this.setState({errorMessage:n.message||g("errors.imageInsertError")}),null}};setImagePreviewCursor=async e=>{let r;try{r=await cl(e,{maxWidthOrHeight:96})}catch(i){throw i.cause==="UNSUPPORTED"?new Error(g("errors.unsupportedFileType")):i}let n=await ic(r);if(e.type===_t.svg){let i=await N1(n),a=Math.min(i.height,96),l=a*(i.width/i.height);l>96&&(l=96,a=l*(i.height/i.width));let c=document.createElement("canvas");c.height=a,c.width=l,c.getContext("2d").drawImage(i,0,0,l,a),n=c.toDataURL(_t.svg)}this.state.pendingImageElementId&&De(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}=We({clientX:o,clientY:r},this.state),a=await tc({description:"Image",extensions:Object.keys(eg)}),l=this.createImageElement({sceneX:n,sceneY:i,addToFrameUnderCursor:!1});e?(this.insertImageElement(l,a),this.initializeImageDimensions(l),this.setState({selectedElementIds:Ne({[l.id]:!0},this.state)},()=>{this.actionManager.executeAction(ko)})):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:et(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(ko)})}};initializeImageDimensions=(e,o=!1)=>{let r=ja(e)&&this.imageCache.get(e.fileId)?.image;if(!r||r instanceof Promise){if(e.width<An/this.state.zoom.value&&e.height<An/this.state.zoom.value){let n=100/this.state.zoom.value;J(e,{x:e.x-n/2,y:e.y-n/2,width:n,height:n})}return}if(o||e.width<An/this.state.zoom.value&&e.height<An/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),c=e.x+e.width/2-l/2,s=e.y+e.height/2-a/2;J(e,{x:c,y:s,width:l,height:a})}};updateImageCache=async(e,o=this.files)=>{let{updatedFiles:r,erroredFiles:n}=await O1({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)&&or.delete(i);return n.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(i=>ja(i)&&n.has(i.fileId)?ce(i,{status:"error"}):i)),{updatedFiles:r,erroredFiles:n}};addNewImagesToImageCache=async(e=B1(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,F3.default)(()=>{this.addNewImagesToImageCache()},rg);updateBindingEnabledOnPointerMove=e=>{let o=Kg(e);this.state.isBindingEnabled!==o&&this.setState({isBindingEnabled:o})};maybeSuggestBindingAtCursor=e=>{let o=nl(e,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:o!=null?[o]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(e,o,r)=>{if(!o.length)return;let n=o.reduce((i,a)=>{let l=nl(a,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());return l!=null&&!Yg(e,r?.id,l)&&i.push(l),i},[]);this.setState({suggestedBindings:n})};maybeSuggestBindingForAll(e){if(e.length>50)return;let o=Zg(e,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:o})}clearSelection(e){this.setState(o=>({selectedElementIds:Ne({},o),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:o.editingGroupId&&e!=null&&Ai(e,o.editingGroupId)?o.editingGroupId:null})),this.setState({selectedElementIds:Ne({},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 P1(e),{x:n,y:i}=We(e,this.state);try{if(rc(o)&&this.isToolSupported("image")){if(o?.type===_t.png||o?.type===_t.svg)try{let c=await nc(o,this.state,this.scene.getElementsIncludingDeleted(),r);this.syncActionResult({...c,appState:{...c.appState||this.state,isLoading:!1},replaceFiles:!0,commitToHistory:!0});return}catch(c){if(c.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:Ne({[l.id]:!0},this.state)});return}}catch(l){return this.setState({isLoading:!1,errorMessage:l.message})}let a=e.dataTransfer.getData(_t.excalidrawlib);if(a&&typeof a=="string"){try{let l=_1(a);this.addElementsFromPasteOrLibrary({elements:_d(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&&Pi(l,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(l)||Fn(l)?.type==="video")){let c=this.insertEmbeddableElement({sceneX:n,sceneY:i,link:Ir(l)});c&&this.setState({selectedElementIds:{[c.id]:!0}})}}};loadFileToCanvas=async(e,o)=>{e=await D1(e);try{let r;try{r=await Eu(e,this.state,this.scene.getElementsIncludingDeleted(),o)}catch(n){let i=n instanceof S1;if(i&&n.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:g("errors.imageToolNotSupported")});return}let a=i?g("alerts.cannotRestoreFromImage"):g("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:a})}if(!r)return;r.type===_t.excalidraw?(this.setState({isLoading:!0}),this.syncActionResult({...r.data,appState:{...r.data.appState||this.state,isLoading:!1},replaceFiles:!0,commitToHistory:!0})):r.type===_t.excalidrawlib&&await this.library.updateLibrary({libraryItems:e,merge:!0,openLibraryMenu:!0}).catch(n=>{console.error(n),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!==Zr.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:o,y:r}=We(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",c=this.excalidrawContainerRef.current,{top:s,left:m}=c.getBoundingClientRect(),d=e.clientX-m,p=e.clientY-s;ge("contextMenu","openContextMenu",l),this.setState({...n&&!this.state.selectedElementIds[n.id]?{...this.state,...At({editingGroupId:this.state.editingGroupId,selectedElementIds:{[n.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:Pe(n)?new ue(n):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:p,left:d,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")Nu(r,this.state.activeTool.type,e.origin.x,e.origin.y,n.x,n.y,Rn(e.origin.x,n.x),Rn(e.origin.y,n.y),ki(o),Hs(o));else{let[i,a]=Yt(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),l=ja(r)&&this.imageCache.get(r.fileId)?.image,c=l&&!(l instanceof Promise)?l.width/l.height:null;this.maybeCacheReferenceSnapPoints(o,[r]);let{snapOffset:s,snapLines:m}=c3(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+=s.x,a+=s.y,this.setState({snapLines:m}),Nu(r,this.state.activeTool.type,e.originInGrid.x,e.originInGrid.y,i,a,Rn(e.originInGrid.x,i),Rn(e.originInGrid.y,a),Jr(r)?!ki(o):ki(o),Hs(o),c,this.state.originSnapOffset),this.maybeSuggestBindingForAll([r]),(this.state.activeTool.type===mt.frame||this.state.activeTool.type===mt.magicframe)&&this.setState({elementsToHighlight:Bi(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(e,o)=>{let r=this.scene.getSelectedElements(this.state),n=r.filter(m=>we(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,c]=Yt(a.x-e.resize.offset.x,a.y-e.resize.offset.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),s=new Map;if(n.forEach(m=>{nn(this.scene.getNonDeletedElements(),m.id).forEach(p=>{s.set(m.id+p.id,{x:p.x-m.x,y:p.y-m.y})})}),!this.state.selectedElementsAreBeingDragged){let[m,d]=Yt(a.x,a.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),p={x:m-e.originInGrid.x,y:d-e.originInGrid.y},u=[...e.originalElements.values()];this.maybeCacheReferenceSnapPoints(o,r);let{snapOffset:b,snapLines:x}=s3(r,Se(u,this.state),this.state,o,p,i);l+=b.x,c+=b.y,this.setState({snapLines:x})}if(sb(e.originalElements,i,r,this.scene.getElementsMapIncludingDeleted(),zs(o),Hs(o),r.length===1&&Jr(r[0])?!ki(o):ki(o),l,c,e.resize.center.x,e.resize.center.y)){this.maybeSuggestBindingForAll(r);let m=new Set;return n.forEach(d=>{Bi(this.scene.getNonDeletedElements(),d,this.state,this.scene.getNonDeletedElementsMap()).forEach(p=>m.add(p))}),this.setState({elementsToHighlight:[...m]}),!0}return!1};getContextMenuItems=e=>{let o=[];return o.push(yd,vd),e==="canvas"?this.state.viewModeEnabled?[...o,wd,xa,dh,xn]:[tf,qt,yd,vd,Ed,qt,Xu,gy,qt,wd,of,xa,dh,xn]:(o.push(Ed),this.state.viewModeEnabled?[ba,...o]:[xd,ba,tf,Qw,e3,qt,...o,qt,Gp,Vp,qt,Yp,rf,nf,sy,Zp,qt,qp,qt,Ku,Yu,Zu,ju,qt,Qp,ef,qt,uf,df,qu,mf,qt,xl])};handleWheel=Xe(e=>{if(e.preventDefault(),ms)return;let{deltaX:o,deltaY:r}=e;if(e.metaKey||e.ctrlKey){let n=Math.sign(r),i=Pn*100,a=Math.abs(r),l=r;a>i&&(l=i*n);let c=this.state.zoom.value-l/100;c+=Math.log10(Math.max(1,this.state.zoom.value))*-n*Math.min(1,a/20),this.translateCanvas(s=>({...Ar({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Mr(c)},s),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=Ys(n,r,this.scene.getNonDeletedElementsMap());if(l&&(i=l.x,a=l.y),Math.hypot(e-i,o-a)<Jh){let{x:m,y:d}=Kt({sceneX:i,sceneY:a},r);return{viewportX:m,viewportY:d,elementCenterX:i,elementCenterY:a}}}}savePointer=(e,o,r)=>{if(!e||!o)return;let{x:n,y:i}=We({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:Ie.pointers})};resetShouldCacheIgnoreZoomDebounced=Va(()=>{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:c,offsetTop:s,offsetLeft:m}=this.state;if(r===l&&n===c&&i===m&&a===s){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=Wi.find(o=>o.code===this.props.langCode)||rr;await Tc(e),this.setAppState({})}},KS=()=>{(E.MODE===Km.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(t)}}}))};KS();var U3=kh;h();var YS=()=>{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)})},W3=YS;h();var Dh=v(T(),1),G3=({children:t})=>{let{FooterCenterTunnel:e}=ze(),o=Ae();return(0,Dh.jsx)(e.In,{children:(0,Dh.jsx)("div",{className:F("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":o.zenModeEnabled}),children:t})})},ZS=G3;G3.displayName="FooterCenter";h();h();h();var Do=v(T(),1),jS=()=>(0,Do.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,Do.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"})}),XS=()=>(0,Do.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,Do.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,Do.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,Do.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,Do.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)"})]}),V3=({style:t,size:e="small",withText:o})=>(0,Do.jsxs)("div",{className:`ExcalidrawLogo is-${e}`,style:t,children:[(0,Do.jsx)(jS,{}),o&&(0,Do.jsx)(XS,{})]});var $e=v(T(),1),Rh=({icon:t,shortcut:e,children:o})=>{let r=ke();return(0,$e.jsxs)($e.Fragment,{children:[(0,$e.jsx)("div",{className:"welcome-screen-menu-item__icon",children:t}),(0,$e.jsx)("div",{className:"welcome-screen-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,$e.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:e})]})};Rh.displayName="WelcomeScreenMenuItemContent";var fs=({onSelect:t,children:e,icon:o,shortcut:r,className:n="",...i})=>(0,$e.jsx)("button",{...i,type:"button",className:`welcome-screen-menu-item ${n}`,onClick:t,children:(0,$e.jsx)(Rh,{icon:o,shortcut:r,children:e})});fs.displayName="WelcomeScreenMenuItem";var K3=({children:t,href:e,icon:o,shortcut:r,className:n="",...i})=>(0,$e.jsx)("a",{...i,className:`welcome-screen-menu-item ${n}`,href:e,target:"_blank",rel:"noreferrer",children:(0,$e.jsx)(Rh,{icon:o,shortcut:r,children:t})});K3.displayName="WelcomeScreenMenuItemLink";var Ro=({children:t})=>{let{WelcomeScreenCenterTunnel:e}=ze();return(0,$e.jsx)(e.In,{children:(0,$e.jsx)("div",{className:"welcome-screen-center",children:t||(0,$e.jsxs)($e.Fragment,{children:[(0,$e.jsx)(Nh,{}),(0,$e.jsx)(Oh,{children:g("welcomeScreen.defaults.center_heading")}),(0,$e.jsxs)(Bh,{children:[(0,$e.jsx)($h,{}),(0,$e.jsx)(Fh,{})]})]})})})};Ro.displayName="Center";var Nh=({children:t})=>(0,$e.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:t||(0,$e.jsx)(V3,{withText:!0})});Nh.displayName="Logo";var Oh=({children:t})=>(0,$e.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:t});Oh.displayName="Heading";var Bh=({children:t})=>(0,$e.jsx)("div",{className:"welcome-screen-menu",children:t});Bh.displayName="Menu";var Fh=()=>{let t=Nt();return(0,$e.jsx)(fs,{onSelect:()=>t.executeAction(Jn),shortcut:"?",icon:Ki,children:g("helpDialog.title")})};Fh.displayName="MenuItemHelp";var $h=()=>{let t=Ae(),e=Nt();return t.viewModeEnabled?null:(0,$e.jsx)(fs,{onSelect:()=>e.executeAction(ha),shortcut:$r("loadScene"),icon:Yi,children:g("buttons.load")})};$h.displayName="MenuItemLoadScene";var Y3=({onSelect:t})=>{let{t:e}=wt();return(0,$e.jsx)(fs,{shortcut:null,onSelect:t,icon:Rc,children:e("labels.liveCollaboration")})};Y3.displayName="MenuItemLiveCollaborationTrigger";Ro.Logo=Nh;Ro.Heading=Oh;Ro.Menu=Bh;Ro.MenuItem=fs;Ro.MenuItemLink=K3;Ro.MenuItemHelp=Fh;Ro.MenuItemLoadScene=$h;Ro.MenuItemLiveCollaborationTrigger=Y3;h();var Xo=v(T(),1),Bm=({children:t})=>{let{WelcomeScreenMenuHintTunnel:e}=ze();return(0,Xo.jsx)(e.In,{children:(0,Xo.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[Hb,(0,Xo.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.menuHint")})]})})};Bm.displayName="MenuHint";var Fm=({children:t})=>{let{WelcomeScreenToolbarHintTunnel:e}=ze();return(0,Xo.jsx)(e.In,{children:(0,Xo.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,Xo.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.toolbarHint")}),Ub]})})};Fm.displayName="ToolbarHint";var $m=({children:t})=>{let{WelcomeScreenHelpHintTunnel:e}=ze();return(0,Xo.jsx)(e.In,{children:(0,Xo.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,Xo.jsx)("div",{children:t||g("welcomeScreen.defaults.helpHint")}),zb]})})};$m.displayName="HelpHint";var qo=v(T(),1),Hm=t=>(0,qo.jsx)(qo.Fragment,{children:t.children||(0,qo.jsxs)(qo.Fragment,{children:[(0,qo.jsx)(Ro,{}),(0,qo.jsx)(Bm,{}),(0,qo.jsx)(Fm,{}),(0,qo.jsx)($m,{})]})});Hm.displayName="WelcomeScreen";Hm.Center=Ro;Hm.Hints={MenuHint:Bm,ToolbarHint:Fm,HelpHint:$m};var qS=Hm;h();var zm=v(T(),1),Z3=({isCollaborating:t,onSelect:e,...o})=>{let r=Ae(),n=r.width<830;return(0,zm.jsxs)(ur,{...o,className:F("collab-button",{active:t}),type:"button",onSelect:e,style:{position:"relative",width:n?void 0:"auto"},title:g("labels.liveCollaboration"),children:[n?x0:g("labels.share"),r.collaborators.size>0&&(0,zm.jsx)("div",{className:"CollabButton-collaborators",children:r.collaborators.size})]})},JS=Z3;Z3.displayName="LiveCollaborationTrigger";h();var hs=v(T(),1),j3=({children:t,icon:e})=>{let{TTDDialogTriggerTunnel:o}=ze(),r=Fe();return(0,hs.jsx)(o.In,{children:(0,hs.jsxs)(_e.Item,{onSelect:()=>{ge("ai","dialog open","ttd"),r({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:e??Cx,children:[t??g("labels.textToDiagram"),(0,hs.jsx)(_e.Item.Badge,{children:"AI"})]})})};j3.displayName="TTDDialogTrigger";var Um=v(T(),1);W3();var QS=t=>{let{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n=!1,onPointerUpdate:i,renderTopRightUI:a,langCode:l=rr.code,viewModeEnabled:c,zenModeEnabled:s,gridModeEnabled:m,libraryReturnUrl:d,theme:p,name:u,renderCustomStats:b,onPaste:x,detectScroll:y=!0,handleKeyboardGlobally:w=!1,onLibraryChange:k,autoFocus:C=!1,generateIdForFile:I,onLinkOpen:A,onPointerDown:_,onPointerUp:M,onScrollChange:L,children:W,validateEmbeddable:B,renderEmbeddable:Y,aiEnabled:O}=t,z=t.UIOptions?.canvasActions,ne={...t.UIOptions,canvasActions:{...jm.canvasActions,...z},tools:{image:t.UIOptions?.tools?.image??!0}};return z?.export&&(ne.canvasActions.export.saveFileToDisk=z.export?.saveFileToDisk??jm.canvasActions.export.saveFileToDisk),ne.canvasActions.toggleTheme===null&&typeof p>"u"&&(ne.canvasActions.toggleTheme=!0),(0,Wm.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let xe=Ee=>{typeof Ee.scale=="number"&&Ee.scale!==1&&Ee.preventDefault()};return document.addEventListener("touchmove",xe,{passive:!1}),()=>{document.removeEventListener("touchmove",xe)}},[]),(0,Um.jsx)(Ec,{unstable_createStore:()=>oo,scope:Me,children:(0,Um.jsx)(Ab,{langCode:l,theme:p,children:(0,Um.jsx)(U3,{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n,onPointerUpdate:i,renderTopRightUI:a,langCode:l,viewModeEnabled:c,zenModeEnabled:s,gridModeEnabled:m,libraryReturnUrl:d,theme:p,name:u,renderCustomStats:b,UIOptions:ne,onPaste:x,detectScroll:y,handleKeyboardGlobally:w,onLibraryChange:k,autoFocus:C,generateIdForFile:I,onLinkOpen:A,onPointerDown:_,onPointerUp:M,onScrollChange:L,validateEmbeddable:B,renderEmbeddable:Y,aiEnabled:O!==!1,children:W})})})},ek=(t,e)=>{if(t.children!==e.children)return!1;let{initialData:o,UIOptions:r={},...n}=t,{initialData:i,UIOptions:a={},...l}=e,c=Object.keys(r),s=Object.keys(a);return c.length!==s.length?!1:c.every(d=>d==="canvasActions"?Object.keys(r.canvasActions).every(u=>u==="export"&&r?.canvasActions?.export&&a?.canvasActions?.export?r.canvasActions.export.saveFileToDisk===a.canvasActions.export.saveFileToDisk:r?.canvasActions?.[u]===a?.canvasActions?.[u]):r[d]===a[d])&&Mt(n,l)},tk=Wm.default.memo(QS,ek);tk.displayName="Excalidraw";export{ur as Button,hm as DefaultSidebar,tk as Excalidraw,Wa as FONT_FAMILY,ZS as Footer,JS as LiveCollaborationTrigger,_t as MIME_TYPES,eo as MainMenu,ho as ROUNDNESS,Ur as Sidebar,dt as THEME,ch as TTDDialog,j3 as TTDDialogTrigger,qS as WelcomeScreen,Fi as bumpVersion,es as convertToExcalidrawElements,rr as defaultLang,s5 as elementPartiallyOverlapsWithOrContainsBBox,c5 as elementsOverlappingBBox,_u as exportToBlob,$n as exportToCanvas,a5 as exportToClipboard,ml as exportToSvg,Ge as getCommonBounds,d5 as getFreeDrawSvgPath,he as getNonDeletedElements,m5 as getSceneVersion,n5 as getVisibleSceneBounds,l5 as isElementInsideBBox,Hn as isInvisiblySmallElement,Pe as isLinearElement,Wi as languages,nc as loadFromBlob,wu as loadLibraryFromBlob,Eu as loadSceneOrLibraryFromBlob,Cy as mergeLibraryItems,J as mutateElement,ce as newElementWith,Ir as normalizeLink,xf as parseLibraryTokensFromUrl,vu as restore,i5 as restoreAppState,xu as restoreElements,yu as restoreLibraryItems,Kt as sceneCoordsToViewportCoords,Tu as serializeAsJSON,ku as serializeLibraryAsJSON,ke as useDevice,eC as useHandleLibrary,wt as useI18n,We as viewportCoordsToSceneCoords,W2 as zoomToFitBounds};
|
|
167
|
+
`),o)}}addTextFromPaste(e,o=!1){let{x:r,y:n}=We({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:ou,locked:!1},a=10,l=n,c=o?[e]:e.split(`
|
|
168
|
+
`),s=c.reduce((d,p,u)=>{let b=p.trim(),x=Cr(i.fontFamily);if(b.length){let y=this.getTopLayerFrameAtSceneCoords({x:r,y:l}),w=rn({...i,x:r,y:l,text:b,lineHeight:x,frameId:y?y.id:null});d.push(w),l+=w.height+a}else c[u-1]?.trim()&&(l+=s1(i.fontSize,x)+a);return d},[]);if(s.length===0)return;let m=s[0].frameId;m?this.scene.insertElementsAtIndex(s,this.scene.getElementIndex(m)):this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),...s]),this.setState({selectedElementIds:Oe(Object.fromEntries(s.map(d=>[d.id,!0])),this.state)}),!o&&s.length>1&&X3===!1&&!this.device.editor.isMobile&&(this.setToast({message:g("toast.pasteAsSingleElement",{shortcut:N("CtrlOrCmd+Shift+V")}),duration:5e3}),X3=!0),this.history.resumeRecording()}setAppState=(e,o)=>{this.setState(e,o)};removePointer=e=>{_n&&this.resetContextMenuTimer(),_e.pointers.delete(e.pointerId)};toggleLock=(e="ui")=>{this.state.activeTool.locked||ge("toolbar","toggleLock",`${e} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(o=>({activeTool:{...o.activeTool,...et(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(ey)};zoomCanvas=e=>{this.setState({...Ar({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Mr(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}=Bl({targetElements:r,appState:this.state,fitToViewport:!!o?.fitToViewport,viewportZoomFactor:o?.viewportZoomFactor});n=l.zoom,i=l.scrollX,a=l.scrollY}else{let l=zn(r,this.state);i=l.scrollX,a=l.scrollY}if(o?.animate){let l=this.state.scrollX,c=this.state.scrollY,s=this.state.zoom.value,m=Pg({fromValues:{scrollX:l,scrollY:c,zoom:s},toValues:{scrollX:i,scrollY:a,zoom:n.value},interpolateValue:(d,p,u,b)=>{if(b==="zoom")return d*Math.pow(p/d,Dn(u))},onStep:({scrollX:d,scrollY:p,zoom:u})=>{this.setState({scrollX:d,scrollY:p,zoom:{value:u}})},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,Wa,window.location.pathname)}}catch(e){this.setState({errorMessage:e.message})}};addFiles=Xe(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=>{Ja(r)&&o.has(r.fileId)&&(this.imageCache.delete(r.fileId),rr.delete(r))}),this.scene.informMutation(),this.addNewImagesToImageCache()});updateScene=Xe(e=>{e.commitToHistory&&this.history.resumeRecording(),e.appState&&this.setState(e.appState),e.elements&&this.scene.replaceAllElements(e.elements),e.collaborators&&this.setState({collaborators:e.collaborators})});onSceneUpdated=()=>{this.setState({})};toggleSidebar=({name:e,tab:o,force:r})=>{let n;return r===void 0?n=this.state.openSidebar?.name===e?null:e:n=r?e:null,this.setState({openSidebar:n?{name:n,tab:o}:null}),!!n};updateCurrentCursorPosition=Xe(e=>{this.lastViewportPosition.x=e.clientX,this.lastViewportPosition.y=e.clientY});onKeyDown=Xe(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.toLowerCase()===S.V&&(Gm=e.shiftKey,clearTimeout(j3),j3=window.setTimeout(()=>{Gm=!1},100)),e[S.CTRL_OR_CMD]&&Qo(e.target)&&(e.code===me.MINUS||e.code===me.EQUAL)){e.preventDefault();return}if(Qo(e.target)&&e.key!==S.ESCAPE||Si(e.key)&&Ag(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}),Si(e.key)){let i=this.state.gridSize&&(e.shiftKey?eu:this.state.gridSize)||(e.shiftKey?ag:eu),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 c=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});c.forEach(s=>{J(s,{x:s.x+a,y:s.y+l}),Eu(s,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:c})}),this.maybeSuggestBindingForAll(c),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])De(a)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==i[0].id)&&(this.history.resumeRecording(),this.setState({editingLinearElement:new ue(a)}));else if(ie(a)||b1(a)){let l;ie(a)||(l=a);let c=ec(a,this.state,this.scene.getNonDeletedElementsMap()),s=c.x,m=c.y;this.startTextEditing({sceneX:s,sceneY:m,container:l}),e.preventDefault();return}else we(a)&&this.setState({editingFrame:a.id})}}else if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&this.state.draggingElement===null){let i=Hy(e.key);i?(this.state.activeTool.type!==i&&ge("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&&_e.pointers.size===0&&(pi=!0,Re(this.interactiveCanvas,Pe.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&&(tn(this.state.activeTool.type)||i.some(a=>tn(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)&&oo.set(rs,"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=Xe(e=>{!(e.target instanceof HTMLCanvasElement)&&e.ctrlKey&&e.preventDefault()});onKeyUp=Xe(e=>{if(e.key===S.SPACE&&(this.state.viewModeEnabled?Re(this.interactiveCanvas,Pe.GRAB):this.state.activeTool.type==="selection"?yo(this.interactiveCanvas):($o(this.interactiveCanvas,this.state),this.setState({selectedElementIds:Oe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),pi=!1),!e[S.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Si(e.key)){let o=this.scene.getSelectedElements(this.state),r=this.scene.getNonDeletedElementsMap();On(this.state)?nl(o,this.scene.getNonDeletedElements(),r):al(o,r),this.setState({suggestedBindings:[]})}});isToolSupported=e=>this.props.UIOptions.tools?.[e]!==!1;setActiveTool=e=>{if(!this.isToolSupported(e.type)){console.warn(`"${e.type}" tool is disabled via "UIOptions.canvasActions.tools.${e.type}"`);return}let o=et(this.state,e);o.type==="hand"?Re(this.interactiveCanvas,Pe.GRAB):pi||$o(this.interactiveCanvas,this.state),Mg(document.activeElement)&&this.focusContainer(),Ug(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!=="selection"?{...r,activeTool:o,selectedElementIds:Oe({},r),selectedGroupIds:Oe({},r),editingGroupId:null,multiElement:null,...n}:{...r,activeTool:o,...n}})};setOpenDialog=e=>{this.setState({openDialog:e})};setCursor=e=>{Re(this.interactiveCanvas,e)};resetCursor=()=>{yo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>_e.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${g("labels.untitled")}-${lu()}`;onGestureStart=Xe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:Oe({},this.state),activeEmbeddable:null}),_e.initialScale=this.state.zoom.value});onGestureChange=Xe(e=>{if(e.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let o=_e.initialScale;o&&this.setState(r=>({...Ar({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Mr(o*e.scale)},r)}))});onGestureEnd=Xe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:Oe(this.state.previousSelectedElementIds,this.state)}),_e.initialScale=null});handleTextWysiwyg(e,{isExistingElement:o=!1}){let r=this.scene.getElementsMapIncludingDeleted(),n=(i,a,l)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(c=>c.id===e.id&&ie(c)?P1(c,Tr(c,r),r,{text:i,isDeleted:l,originalText:a}):c)])};Y3({id:e.id,canvas:this.canvas,getViewportCoords:(i,a)=>{let{x:l,y:c}=Kt({sceneX:i,sceneY:a},this.state);return[l-this.state.offsetLeft,c-this.state.offsetTop]},onChange:Xe(i=>{n(i,i,!1),Ku(e)&&Eu(e,r)}),onSubmit:Xe(({text:i,viaKeyboard:a,originalText:l})=>{let c=!i.trim();if(n(i,l,c),!c&&a){let s=e.containerId?e.containerId:e.id;this.setState(m=>({selectedElementIds:Oe({...m.selectedElementIds,[s]:!0},m)}))}c&&Ii(this.scene.getNonDeletedElements(),[e]),(!c||o)&&this.history.resumeRecording(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&$o(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:Oe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(e,o){let r=this.getElementAtPosition(e,o,{includeBoundTextElement:!0});return r&&ie(r)&&!r.isDeleted?r: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 Ks(i,this.state,this.frameNameBoundsCache,e,o,this.scene.getNonDeletedElementsMap())?n[n.length-2]:i}return n.length===1?n[0]:null}getElementsAtPosition(e,o,r=!1,n=!1){let i=r&&n?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(l=>(n||!l.locked)&&(r||!(ie(l)&&l.containerId))),a=this.scene.getNonDeletedElementsMap();return Xg(i,l=>bu(l,this.state,this.frameNameBoundsCache,e,o,a)).filter(l=>{let c=xc(l,a);return c&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?Bu({x:e,y:o},c,a):!0})}startTextEditing=({sceneX:e,sceneY:o,insertAtParentCenter:r=!0,container:n})=>{let i=!1,a=r&&this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n);n&&a&&(nt(n,this.scene.getNonDeletedElementsMap())||(i=!0));let l=null,c=this.scene.getSelectedElements(this.state);c.length===1?ie(c[0])?l=c[0]:n?l=nt(c[0],this.scene.getNonDeletedElementsMap()):l=this.getTextElementAtPosition(e,o):l=this.getTextElementAtPosition(e,o);let s=l?.fontFamily||this.state.currentItemFontFamily,m=l?.lineHeight||Cr(s),d=this.state.currentItemFontSize;if(!l&&i&&n&&!yr(n)){let x=u1(Fo({fontSize:d,fontFamily:s}),m),y=c1(d,m),w=Math.max(n.height,y),k=Math.max(n.width,x);J(n,{height:w,width:k}),e=n.x+k/2,o=n.y+w/2,a&&(a=this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n))}let p=this.getTopLayerFrameAtSceneCoords({x:e,y:o}),u=l||rn({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:d,fontFamily:s,textAlign:a?"center":this.state.currentItemTextAlign,verticalAlign:a?fo.MIDDLE:ou,containerId:i?n?.id:void 0,groupIds:n?.groupIds??[],lineHeight:m,angle:n?.angle??0,frameId:p?p.id:null});if(!l&&i&&n&&J(n,{boundElements:(n.boundElements||[]).concat({type:"text",id:u.id})}),this.setState({editingElement:u}),!l)if(n&&i){let b=this.scene.getElementIndex(n.id);this.scene.insertElementAtIndex(u,b+1)}else this.scene.addNewElement(u);this.setState({editingElement:u}),this.handleTextWysiwyg(u,{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&&De(o[0])){if(e[S.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==o[0].id)){this.history.resumeRecording(),this.setState({editingLinearElement:new ue(o[0])});return}else if(this.state.editingLinearElement&&this.state.editingLinearElement.elementId===o[0].id)return}yo(this.interactiveCanvas);let{x:r,y:n}=We(e,this.state);if(kr(this.state).length>0){let a=this.getElementAtPosition(r,n),l=a&&C1(a,this.state.selectedGroupIds);if(l){this.setState(c=>({...c,...At({editingGroupId:l,selectedElementIds:{[a.id]:!0}},this.scene.getNonDeletedElements(),c,this)}));return}}if(yo(this.interactiveCanvas),!e[S.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let a=this.getElementAtPosition(r,n);if(Ei(a)){this.setState({activeEmbeddable:{element:a,state:"active"}});return}let l=wu(this.scene.getNonDeletedElements(),this.state,r,n,this.scene.getNonDeletedElementsMap());if(l&&(tr(l)||!Nn(l.backgroundColor)||xu(l,this.state,this.frameNameBoundsCache,[r,n],this.scene.getNonDeletedElementsMap()))){let c=ec(l,this.state,this.scene.getNonDeletedElementsMap());r=c.x,n=c.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&&fc(i,this.scene.getNonDeletedElementsMap(),this.state,[e.x,e.y],this.device.editor.isMobile)))};redirectToLink=(e,o)=>{let r=en(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||o&&r>An||!o&&r!==0)return;let n=We(this.lastPointerDownEvent,this.state),i=this.scene.getNonDeletedElementsMap(),a=fc(this.hitLinkElement,i,this.state,[n.x,n.y],this.device.editor.isMobile),l=We(this.lastPointerUpEvent,this.state),c=fc(this.hitLinkElement,i,this.state,[l.x,l.y],this.device.editor.isMobile);if(a&&c){let s=this.hitLinkElement.link;if(s){s=Ir(s);let m;if(this.props.onLinkOpen&&(m=zs("excalidraw-link",e.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:s},m)),!m?.defaultPrevented){let d=rc(s)?"_self":"_blank",p=window.open(void 0,d);p&&(p.opener=null,p.location=s)}}}};getTopLayerFrameAtSceneCoords=e=>{let o=this.scene.getNonDeletedElementsMap(),r=this.scene.getNonDeletedFramesLikes().filter(n=>Bu(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,_e.pointers.has(e.pointerId)&&_e.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});let o=_e.initialScale;if(_e.pointers.size===2&&_e.lastCenter&&o&&_e.initialDistance){let p=_f(_e.pointers),u=p.x-_e.lastCenter.x,b=p.y-_e.lastCenter.y;_e.lastCenter=p;let x=Mf(Array.from(_e.pointers.values())),y=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:x/_e.initialDistance,w=y?Mr(o*y):this.state.zoom.value;this.setState(k=>{let T=Ar({viewportX:p.x,viewportY:p.y,nextZoom:w},k);this.translateCanvas({zoom:T.zoom,scrollX:T.scrollX+u/w,scrollY:T.scrollY+b/w,shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else _e.lastCenter=_e.initialDistance=_e.initialScale=null;if(pi||bs||Ph||Sr(this.state))return;let n=Kf(Dh,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(n?yo(this.interactiveCanvas):$o(this.interactiveCanvas,this.state));let i=We(e,this.state),{x:a,y:l}=i;if(!this.state.draggingElement&&C3(this.state.activeTool.type)){let{originOffset:p,snapLines:u}=T3(this.scene.getNonDeletedElements(),this.state,{x:a,y:l},e,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x=Ws(b.snapLines,u),y=b.originSnapOffset?Ws(b.originSnapOffset,p):p;return b.snapLines===x&&b.originSnapOffset===y?null:{snapLines:x,originSnapOffset:y}})}else this.state.draggingElement||this.setState(p=>p.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let p=ue.handlePointerMove(e,a,l,this.state,this.scene.getNonDeletedElementsMap());p&&p!==this.state.editingLinearElement&&(0,Vm.flushSync)(()=>{this.setState({editingLinearElement:p})}),p?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(i):(0,Vm.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(Wg(this.state.activeTool.type)){let{draggingElement:p}=this.state;Er(p,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(p,[i],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(i)}if(this.state.multiElement){let{multiElement:p}=this.state,{x:u,y:b}=p,{points:x,lastCommittedPoint:y}=p,w=x[x.length-1];if($o(this.interactiveCanvas,this.state),w===y)en(a-u,l-b,w[0],w[1])>=Is?J(p,{points:[...x,[a-u,l-b]]}):Re(this.interactiveCanvas,Pe.POINTER);else if(x.length>2&&y&&en(a-u,l-b,y[0],y[1])<Is)Re(this.interactiveCanvas,Pe.POINTER),J(p,{points:x.slice(0,-1)});else{let[k,T]=Yt(a,l,e[S.CTRL_OR_CMD]?null:this.state.gridSize),[I,A]=p?.lastCommittedPoint??[0,0],_=k-u-I,M=T-b-A;Zs(e)&&({width:_,height:M}=$u(I+u,A+b,k,T)),el(x,this.state.zoom.value)&&Re(this.interactiveCanvas,Pe.POINTER),J(p,{points:[...x.slice(0,-1),[I+_,A+M]]})}return}if(!!e.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let s=this.scene.getNonDeletedElements(),m=this.scene.getSelectedElements(this.state);if(m.length===1&&!n&&!this.state.editingLinearElement){let p=Hu(s,this.state,a,l,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap());if(p&&p.transformHandleType){Re(this.interactiveCanvas,Uu(p));return}}else if(m.length>1&&!n){let p=zu(Ge(m),a,l,this.state.zoom,e.pointerType);if(p){Re(this.interactiveCanvas,Uu({transformHandleType:p}));return}}let d=this.getElementAtPosition(i.x,i.y);this.hitLinkElement=this.getElementLinkAtPosition(i,d),!vo(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(Re(this.interactiveCanvas,Pe.POINTER),wy(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(Ty(),d&&(d.link||Ot(d))&&this.state.selectedElementIds[d.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?Re(this.interactiveCanvas,ie(d)?Pe.TEXT:Pe.CROSSHAIR):this.state.viewModeEnabled?Re(this.interactiveCanvas,Pe.GRAB):n?Re(this.interactiveCanvas,Pe.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l):e[S.CTRL_OR_CMD]?Re(this.interactiveCanvas,Pe.AUTO):(d||this.isHittingCommonBoundingBoxOfSelectedElements(i,m))&&!d?.locked&&(d&&Ei(d)&&this.isIframeLikeElementCenter(d,e,a,l)?(Re(this.interactiveCanvas,Pe.POINTER),this.setState({activeEmbeddable:{element:d,state:"hover"}})):(Re(this.interactiveCanvas,Pe.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=p=>{for(let u of p){if(u.locked)return;if(e.altKey?this.elementsPendingErasure.delete(u.id)&&(n=!0):this.elementsPendingErasure.has(u.id)||(n=!0,this.elementsPendingErasure.add(u.id)),n&&u.groupIds?.length){let b=u.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)}}}},c=en(o.lastCoords.x,o.lastCoords.y,r.x,r.y),s=10/this.state.zoom.value,m={...o.lastCoords},d=0;for(;d<=c;){let p=this.getElementsAtPosition(m.x,m.y);if(l(p),d===c)break;d=Math.min(d+s,c);let u=d/c,b=(1-u)*m.x+u*r.x,x=(1-u)*m.y+u*r.y;m.x=b,m.y=x}if(o.lastCoords.x=r.x,o.lastCoords.y=r.y,n){for(let p of this.scene.getNonDeletedElements())gt(p)&&(this.elementsPendingErasure.has(p.id)||this.elementsPendingErasure.has(p.containerId))&&(e.altKey?(this.elementsPendingErasure.delete(p.id),this.elementsPendingErasure.delete(p.containerId)):(this.elementsPendingErasure.add(p.id),this.elementsPendingErasure.add(p.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.onSceneUpdated()}};handleTouchMove=e=>{xs=!0};handleHoverSelectedLinearElement(e,o,r){let n=this.scene.getNonDeletedElementsMap(),i=ue.getElement(e.elementId,n),a=nt(i,n);if(i)if(this.state.selectedLinearElement){let l=-1,c=null;xu(i,this.state,this.frameNameBoundsCache,[o,r],n)?(l=ue.getPointIndexUnderCursor(i,n,this.state.zoom,o,r),c=ue.getSegmentMidpointHitCoords(e,{x:o,y:r},this.state,this.scene.getNonDeletedElementsMap()),l>=0||c?Re(this.interactiveCanvas,Pe.POINTER):Re(this.interactiveCanvas,Pe.MOVE)):Vs([i],this.state)&&Ks(i,this.state,this.frameNameBoundsCache,o,r,n)?Re(this.interactiveCanvas,Pe.MOVE):a&&bu(a,this.state,this.frameNameBoundsCache,o,r,this.scene.getNonDeletedElementsMap())&&Re(this.interactiveCanvas,Pe.MOVE),this.state.selectedLinearElement.hoverPointIndex!==l&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:l}}),ue.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,c)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:c}})}else Re(this.interactiveCanvas,Pe.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 s=this.state.draggingElement;this.updateScene({...s.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(m=>m.id!==s.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:Oe(Object.keys(this.state.selectedElementIds).filter(m=>m!==s.id).reduce((m,d)=>(m[d]=this.state.selectedElementIds[d],m),{}),this.state)}});return}let o=document.getSelection();if(o?.anchorNode&&o.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(e),!this.state.penDetected&&e.pointerType==="pen"&&this.setState(s=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(e.pointerType)&&(this.device=xi(this.device,{isTouchScreen:!0})),bs||(this.lastPointerDownEvent=e,this.handleCanvasPanUsingWheelOrSpaceDrag(e)))return;if(this.setState({lastPointerDownWith:e.pointerType,cursorButton:"down"}),this.savePointer(e.clientX,e.clientY,"down"),e.button===Zr.ERASER&&this.state.activeTool.type!==mt.eraser){this.setState({activeTool:et(this.state,{type:mt.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(e);let s=()=>{m(),d?.(),vo(this.state)&&this.setState({activeTool:et(this.state,{...this.state.activeTool.lastActiveTool||{type:mt.selection},lastActiveToolBeforeEraser:null})})},m=tt(window,"pointerup",s,{once:!0}),d;requestAnimationFrame(()=>{d=this.missingPointerEventCleanupEmitter.once(s)})});return}if(e.button!==Zr.MAIN&&e.button!==Zr.TOUCH&&e.button!==Zr.ERASER||_e.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"){Re(this.interactiveCanvas,Pe.CROSSHAIR);let s=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!s)return;this.setState({draggingElement:s,editingElement:s,pendingImageElementId:null,multiElement:null});let{x:m,y:d}=We(e,this.state),p=this.getTopLayerFrameAtSceneCoords({x:m,y:d});J(s,{x:m,y:d,frameId:p?p.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(e,this.state.activeTool.type,r):this.state.activeTool.type==="custom"?$o(this.interactiveCanvas,this.state):this.state.activeTool.type===mt.frame||this.state.activeTool.type===mt.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),c=this.onKeyUpFromPointerDownHandler(r);this.missingPointerEventCleanupEmitter.once(s=>a(s||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",c),r.eventListeners.onMove=i,r.eventListeners.onUp=a,r.eventListeners.onKeyUp=c,r.eventListeners.onKeyDown=l)};handleCanvasPointerUp=e=>{this.removePointer(e),this.lastPointerUpEvent=e;let o=We({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(Ei(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&&Ei(this.hitLinkElement)&&!X1(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"&&(xs=!1,_n?xs=!0:_n=window.setTimeout(()=>{_n=0,xs||this.handleCanvasContextMenu(e)},fg))};resetContextMenuTimer=()=>{clearTimeout(_n),_n=0,xs=!1};maybeCleanupAfterMissingPointerUp=e=>{vs?.(),this.missingPointerEventCleanupEmitter.trigger(e).clear()};handleCanvasPanUsingWheelOrSpaceDrag=e=>{if(!(_e.pointers.size<=1&&(e.button===Zr.WHEEL||e.button===Zr.MAIN&&pi||Sr(this.state)||this.state.viewModeEnabled))||ie(this.state.editingElement))return!1;bs=!0,e.preventDefault();let o=!1,r=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);Re(this.interactiveCanvas,Pe.GRABBING);let{clientX:n,clientY:i}=e,a=Om(c=>{let s=n-c.clientX,m=i-c.clientY;if(n=c.clientX,i=c.clientY,r&&!o&&(Math.abs(s)>1||Math.abs(m)>1)){o=!0;let d=u=>{document.body.removeEventListener("paste",d),u.stopPropagation()},p=()=>{setTimeout(()=>{document.body.removeEventListener("paste",d),window.removeEventListener("pointerup",p)},100)};document.body.addEventListener("paste",d),window.addEventListener("pointerup",p)}this.translateCanvas({scrollX:this.state.scrollX-s/this.state.zoom.value,scrollY:this.state.scrollY-m/this.state.zoom.value})}),l=Xe(vs=()=>{vs=null,bs=!1,pi||(this.state.viewModeEnabled?Re(this.interactiveCanvas,Pe.GRAB):$o(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){_e.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),_e.pointers.size===2&&(_e.lastCenter=_f(_e.pointers),_e.initialScale=this.state.zoom.value,_e.initialDistance=Mf(Array.from(_e.pointers.values())))}initialPointerDownState(e){let o=We(e,this.state),r=this.scene.getSelectedElements(this.state),[n,i,a,l]=Ge(r);return{origin:o,withCmdOrCtrl:e[S.CTRL_OR_CMD],originInGrid:ja(Yt(o.x,o.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:Kf(Dh,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop),lastCoords:{...o},originalElements:this.scene.getNonDeletedElements().reduce((c,s)=>(c.set(s.id,Li(s)),c),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;Ph=!0,o.lastCoords.x=e.clientX,o.lastCoords.y=e.clientY;let r=Om(i=>{i.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(i,o)}),n=Xe(()=>{vs=null,Ph=!1,$o(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:Oe({},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){let a=Hu(r,this.state,o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap());a!=null&&(this.setState({resizingElement:a.element}),o.resize.handleType=a.transformHandleType)}else i.length>1&&(o.resize.handleType=zu(Ge(i),o.origin.x,o.origin.y,this.state.zoom,e.pointerType));if(o.resize.handleType)o.resize.isResizing=!0,o.resize.offset=ja(yb(o.resize.handleType,i,n,o.origin.x,o.origin.y)),i.length===1&&De(i[0])&&i[0].points.length===2&&(o.resize.arrowDirection=Eb(o.resize.handleType,i[0]));else{if(this.state.selectedLinearElement){let c=this.state.editingLinearElement||this.state.selectedLinearElement,s=ue.handlePointerDown(e,this.state,this.history,o.origin,c,this.scene.getNonDeletedElements(),n);if(s.hitElement&&(o.hit.element=s.hitElement),s.linearElementEditor&&(this.setState({selectedLinearElement:s.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:s.linearElementEditor})),s.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(c=>this.isASelectedElement(c));if((a===null||!l)&&!e.shiftKey&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(a),this.state.editingLinearElement)this.setState({selectedElementIds:Oe({[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(c=>({...T1(c,a),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[a.id]||(this.state.editingGroupId&&!Ai(a,this.state.editingGroupId)&&this.setState({selectedElementIds:Oe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!l&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(c=>{let s={...c.selectedElementIds,[a.id]:!0},m=[];if(Object.keys(c.selectedElementIds).forEach(d=>{let p=this.scene.getElement(d);p&&m.push(p)}),we(a))nn(m,a.id).forEach(d=>{delete s[d.id]});else if(a.frameId)s[a.frameId]&&delete s[a.id];else{let d=a.groupIds,p=new Set(d.flatMap(u=>ut(this.scene.getNonDeletedElements(),u)).filter(u=>we(u)).map(u=>u.id));p.size>0&&m.forEach(u=>{u.frameId&&p.has(u.frameId)&&(delete s[u.id],u.groupIds.flatMap(b=>ut(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete s[b.id]}))})}return{...At({editingGroupId:c.editingGroupId,selectedElementIds:s},this.scene.getNonDeletedElements(),c,this),showHyperlinkPopup:a.link||Ot(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=10/this.state.zoom.value,[n,i,a,l]=Ge(o);return e.x>n-r&&e.x<a+r&&e.y>i-r&&e.y<l+r}handleTextOnPointerDown=(e,o)=>{if(ie(this.state.editingElement))return;let r=o.origin.x,n=o.origin.y,i=this.getElementAtPosition(r,n,{includeBoundTextElement:!0}),a=wu(this.scene.getNonDeletedElements(),this.state,r,n,this.scene.getNonDeletedElementsMap());tr(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}),yo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:et(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(e,o,r)=>{let[n,i]=Yt(r.origin.x,r.origin.y,null),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),l=D1({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 d={...m.selectedElementIds};return delete d[l.id],{selectedElementIds:Oe(d,m)}});let c=l.simulatePressure?l.pressures:[...l.pressures,e.pressure];J(l,{points:[[0,0]],pressures:c});let s=ll(r.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.addNewElement(l),this.setState({draggingElement:l,editingElement:l,startBoundElement:s,suggestedBindings:[]})};insertIframeElement=({sceneX:e,sceneY:o,width:r,height:n})=>{let[i,a]=Yt(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),l=A1({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.replaceAllElements([...this.scene.getElementsIncludingDeleted(),l]),l};insertEmbeddableElement=({sceneX:e,sceneY:o,link:r})=>{let[n,i]=Yt(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=Fn(r);if(!a)return;a.error instanceof URIError&&this.setToast({message:g("toast.unrecognizedLinkFormat"),closable:!0});let l=Cu({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.replaceAllElements([...this.scene.getElementsIncludingDeleted(),l]),l};createImageElement=({sceneX:e,sceneY:o,addToFrameUnderCursor:r=!0})=>{let[n,i]=Yt(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=r?this.getTopLayerFrameAtSceneCoords({x:n,y:i}):null;return ic({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"&&el(n.points,this.state.zoom.value)){J(n,{lastCommittedPoint:n.points[n.points.length-1]}),this.actionManager.executeAction(ko);return}let{x:i,y:a,lastCommittedPoint:l}=n;if(n.points.length>1&&l&&en(r.origin.x-i,r.origin.y-a,l[0],l[1])<Is){this.actionManager.executeAction(ko);return}this.setState(c=>({selectedElementIds:Oe({...c.selectedElementIds,[n.id]:!0},c)})),J(n,{lastCommittedPoint:n.points[n.points.length-1]}),Re(this.interactiveCanvas,Pe.POINTER)}else{let[n,i]=Yt(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:c}=this.state,[s,m]=o==="arrow"?[l,c]:[null,null],d=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:ho.PROPORTIONAL_RADIUS}:null,startArrowhead:s,endArrowhead:m,locked:!1,frameId:a?a.id:null});this.setState(u=>{let b={...u.selectedElementIds};return delete b[d.id],{selectedElementIds:Oe(b,u)}}),J(d,{points:[...d.points,[0,0]]});let p=ll(r.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.addNewElement(d),this.setState({draggingElement:d,editingElement:d,startBoundElement:p,suggestedBindings:[]})}};getCurrentItemRoundness(e){return this.state.currentItemRoundness==="round"?{type:Ti(e)?ho.ADAPTIVE_RADIUS:ho.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(e,o)=>{let[r,n]=Yt(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=Cu({type:"embeddable",...a}):l=on({type:e,...a}),l.type==="selection"?this.setState({selectionElement:l,draggingElement:l}):(this.scene.addNewElement(l),this.setState({multiElement:null,draggingElement:l,editingElement:l}))};createFrameElementOnPointerDown=(e,o)=>{let[r,n]=Yt(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,...Bo},a=o===mt.magicframe?dl(i):nc(i);this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),a]),this.setState({multiElement:null,draggingElement:a,editingElement:a})};maybeCacheReferenceSnapPoints(e,o,r=!1){Kr({event:e,appState:this.state,selectedElements:o})&&(r||!Po.getReferenceSnapPoints())&&Po.setReferenceSnapPoints(v3(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(e,o,r=!1){Kr({event:e,appState:this.state,selectedElements:o})&&(r||!Po.getVisibleGaps())&&Po.setVisibleGaps(x3(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(e){return Xe(o=>{this.maybeHandleResize(e,o)||this.maybeDragNewGenericElement(e,o)})}onKeyUpFromPointerDownHandler(e){return Xe(o=>{o.key===S.ALT&&o.preventDefault(),!this.maybeHandleResize(e,o)&&this.maybeDragNewGenericElement(e,o)})}onPointerMoveFromPointerDownHandler(e){return Om(o=>{if(e.drag.offset===null&&(e.drag.offset=ja(Tb(this.scene.getSelectedElements(this.state),e.origin.x,e.origin.y))),!(o.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(o,e))return;let n=We(o,this.state);if(vo(this.state)){this.handleEraser(o,e,n);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(n.x,n.y);let[i,a]=Yt(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")&&en(n.x,n.y,e.origin.x,e.origin.y)<An)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 d=this.state.editingLinearElement||this.state.selectedLinearElement;if(ue.shouldAddMidpoint(this.state.selectedLinearElement,n,this.state,l)){let u=ue.addMidpoint(this.state.selectedLinearElement,n,this.state,!o[S.CTRL_OR_CMD],l);if(!u)return;(0,Vm.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:u.pointerDownState,selectedPointsIndices:u.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:u.pointerDownState,selectedPointsIndices:u.selectedPointsIndices}})});return}else if(d.pointerDownState.segmentMidpoint.value!==null&&!d.pointerDownState.segmentMidpoint.added)return;if(ue.handlePointDragging(o,this.state,n.x,n.y,(u,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(u,b)},d,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 c=e.hit.allHitElements.some(d=>this.isASelectedElement(d)),s=this.state.editingLinearElement&&o.shiftKey&&this.state.editingLinearElement.elementId===e.hit.element?.id;if((c||e.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!s){let d=this.scene.getSelectedElements(this.state);if(d.every(b=>b.locked))return;let p=d.find(b=>we(b)),u=this.getTopLayerFrameAtSceneCoords(n);if(this.setState({frameToHighlight:u&&!p?u:null}),e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),d.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 T=Math.abs(b.x),I=Math.abs(b.y),A=y&&T<I,_=y&&T>I;A&&(b.x=0),_&&(b.y=0)}this.maybeCacheVisibleGaps(o,d),this.maybeCacheReferenceSnapPoints(o,d);let{snapOffset:w,snapLines:k}=y3(x,b,this.state,o,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:k}),!this.state.editingFrame&&wb(e,d,b,this.state,this.scene,w,o[S.CTRL_OR_CMD]?null:this.state.gridSize),this.maybeSuggestBindingForAll(d),o.altKey&&!e.hit.hasBeenDuplicated){e.hit.hasBeenDuplicated=!0;let T=[],I=[],A=new Map,_=new Map,M=e.hit.element,L=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(Y=>Y.id)),W=this.scene.getElementsIncludingDeleted();for(let Y of W)if(L.has(Y.id)||Y.id===M?.id&&e.hit.wasAddedToSelection){let O=ac(this.state.editingGroupId,A,Y),z=e.originalElements.get(Y.id);J(O,{x:z.x,y:z.y}),e.originalElements.set(O.id,O),T.push(O),I.push(Y),_.set(Y.id,O.id)}else T.push(Y);let B=[...T,...I];qs(T,I,_),Xs(B,I,_,"duplicatesServeAsOld"),bc(B,I,_),this.scene.replaceAllElements(B),this.maybeCacheVisibleGaps(o,d,!0),this.maybeCacheReferenceSnapPoints(o,d,!0)}return}}let m=this.state.draggingElement;if(m){if(m.type==="freedraw"){let d=m.points,p=n.x-m.x,u=n.y-m.y,b=d.length>0&&d[d.length-1];if(!(b&&b[0]===p&&b[1]===u)){let y=m.simulatePressure?m.pressures:[...m.pressures,o.pressure];J(m,{points:[...d,[p,u]],pressures:y})}}else if(De(m)){e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let d=m.points,p=i-m.x,u=a-m.y;Zs(o)&&d.length===2&&({width:p,height:u}=$u(m.x,m.y,n.x,n.y)),d.length===1?J(m,{points:[...d,[p,u]]}):d.length===2&&J(m,{points:[...d.slice(0,-1),[p,u]]}),Er(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 d=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)ue.handleBoxSelection(o,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let p=!0;!o.shiftKey&&Ne(d,this.state)&&(e.withCmdOrCtrl&&e.hit.element?this.setState(b=>At({...b,selectedElementIds:{[e.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):p=!1);let u=Cb(d,m,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x={...p&&b.selectedElementIds,...u.reduce((y,w)=>(y[w.id]=!0,y),{})};return e.hit.element&&(u.length?delete x[e.hit.element.id]:x[e.hit.element.id]=!0),b=p?b:{...b,selectedGroupIds:{},editingGroupId:null},{...At({editingGroupId:b.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:u.length===1&&De(u[0])?new ue(u[0]):null,showHyperlinkPopup:u.length===1&&(u[0].link||Ot(u[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 Xe(o=>{this.removePointer(o),e.eventListeners.onMove&&e.eventListeners.onMove.flush();let{draggingElement:r,resizingElement:n,multiElement:i,activeTool:a,isResizing:l,isRotating:c}=this.state;this.setState(u=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:i||ie(this.state.editingElement)?this.state.editingElement:null,snapLines:Ws(u.snapLines,[]),originSnapOffset:null})),Po.setReferenceSnapPoints(null),Po.setVisibleGaps(null),this.savePointer(o.clientX,o.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let s=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!e.boxSelection.hasOccurred&&e.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(ko);else{let u=ue.handlePointerUp(o,this.state.editingLinearElement,this.state,this.scene.getNonDeletedElements(),s);u!==this.state.editingLinearElement&&this.setState({editingLinearElement:u,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 u=ue.handlePointerUp(o,this.state.selectedLinearElement,this.state,this.scene.getNonDeletedElements(),s),{startBindingElement:b,endBindingElement:x}=u,y=this.scene.getElement(u.elementId);Er(y)&&js(y,b,x,s),u!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...u,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 u=We(o,this.state),b=r.points,x=u.x-r.x,y=u.y-r.y;x===b[0][0]&&y===b[0][1]&&(y+=1e-4,x+=1e-4);let w=r.simulatePressure?[]:[...r.pressures,o.pressure];J(r,{points:[...b,[x,y]],pressures:w,lastCommittedPoint:[x,y]}),this.actionManager.executeAction(ko);return}if(Jr(r)){let u=r;try{this.initializeImageDimensions(u),this.setState({selectedElementIds:Oe({[u.id]:!0},this.state)},()=>{this.actionManager.executeAction(ko)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(x=>x.id!==u.id)),this.actionManager.executeAction(ko)}return}if(De(r)){r.points.length>1&&this.history.resumeRecording();let u=We(o,this.state);!e.drag.hasOccurred&&r&&!i?(J(r,{points:[...r.points,[u.x-r.x,u.y-r.y]]}),this.setState({multiElement:r,editingElement:this.state.draggingElement})):e.drag.hasOccurred&&!i&&(On(this.state)&&Er(r,!1)&&il(r,this.state,this.scene,u,s),this.setState({suggestedBindings:[],startBoundElement:null}),a.locked?this.setState(b=>({draggingElement:null})):(yo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:et(this.state,{type:"selection"}),selectedElementIds:Oe({...b.selectedElementIds,[r.id]:!0},b),selectedLinearElement:new ue(r)}))));return}if(a.type!=="selection"&&r&&Hn(r)){this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(u=>u.id!==r.id)),this.setState({draggingElement:null});return}if(r){if(e.drag.hasOccurred){let u=We(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=xc(b,s);x&&b&&(sb(b,x,this.scene.getNonDeletedElementsMap())||(J(b,{groupIds:[]}),yc([b],this.scene.getNonDeletedElementsMap()),this.scene.informMutation()))}}else{let b=this.getTopLayerFrameAtSceneCoords(u),x=this.scene.getSelectedElements(this.state),y=this.scene.getElementsMapIncludingDeleted(),w=k=>{if(k.length>0){for(let T of k){let I=T.groupIds.indexOf(this.state.editingGroupId);J(T,{groupIds:T.groupIds.slice(0,I)},!1)}y.forEach(T=>{T.groupIds.length&&ut(y,T.groupIds[T.groupIds.length-1]).length<2&&J(T,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let k=x.filter(T=>T.frameId!==b.id&&Fu(T,y,this.state));this.state.editingGroupId&&w(k),y=vc(y,k,b)}else if(!b&&this.state.editingGroupId){let k=x.filter(T=>T.frameId&&!Fu(T,y,this.state));w(k)}y=or(y,this.state,this),this.scene.replaceAllElements(y)}}if(we(r)){let u=mb(this.scene.getElementsIncludingDeleted(),r,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(vc(this.scene.getElementsMapIncludingDeleted(),u,r))}J(r,bb(r))}if(n&&this.history.resumeRecording(),n&&Hn(n)&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(u=>u.id!==n.id)),e.resize.isResizing){let u=or(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(x=>we(x));for(let x of b)u=Ec(u,Bi(this.scene.getElementsIncludingDeleted(),x,this.state,s),x,this);this.scene.replaceAllElements(u)}let m=e.hit.element;this.state.selectedLinearElement?.elementId!==m?.id&&De(m)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new ue(m)});let d=this.lastPointerDownEvent,p=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(vo(this.state)&&d&&p){if(this.eraserTrail.endPath(),en(d.clientX,d.clientY,p.clientX,p.clientY)===0){let b=We({clientX:p.clientX,clientY:p.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]?oc(this.state,m)?this.setState(u=>{let b={...u.selectedElementIds};for(let x of m.groupIds.flatMap(y=>ut(this.scene.getNonDeletedElements(),y)))delete b[x.id];return{selectedGroupIds:{...u.selectedElementIds,...m.groupIds.map(x=>({[x]:!1})).reduce((x,y)=>({...x,...y}),{})},selectedElementIds:Oe(b,u)}}):this.state.selectedLinearElement?.isDragging||this.setState(u=>{let b={...u.selectedElementIds};delete b[m.id];let x=ke(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...At({editingGroupId:u.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),u,this),selectedLinearElement:x.length===1&&De(x[0])?new ue(x[0]):u.selectedLinearElement}}):m.frameId&&this.state.selectedElementIds[m.frameId]?this.setState(u=>{let b={...u.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]}),{...At({editingGroupId:u.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),u,this),showHyperlinkPopup:m.link||Ot(m)?"info":!1}}):this.setState(u=>({selectedElementIds:Oe({...u.selectedElementIds,[m.id]:!0},u)})):this.setState(u=>({...At({editingGroupId:u.editingGroupId,selectedElementIds:{[m.id]:!0}},this.scene.getNonDeletedElements(),u,this),selectedLinearElement:De(m)&&u.selectedLinearElement?.elementId!==m.id?new ue(m):u.selectedLinearElement}))),!e.drag.hasOccurred&&!this.state.isResizing&&(m&&Ks(m,this.state,this.frameNameBoundsCache,e.origin.x,e.origin.y,this.scene.getNonDeletedElementsMap())||!m&&e.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:Oe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null});return}if(!a.locked&&a.type!=="freedraw"&&r&&r.type!=="selection"&&this.setState(u=>({selectedElementIds:Oe({...u.selectedElementIds,[r.id]:!0},u),showHyperlinkPopup:Ot(r)&&!r.link?"editor":u.showHyperlinkPopup})),(a.type!=="selection"||Ne(this.scene.getNonDeletedElements(),this.state))&&this.history.resumeRecording(),(e.drag.hasOccurred||l||c)&&(On(this.state)?nl(this.scene.getSelectedElements(this.state),this.scene.getNonDeletedElements(),s):al(this.scene.getSelectedElements(this.state),s)),a.type==="laser"){this.laserTrails.endPath();return}!a.locked&&a.type!=="freedraw"?(yo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:et(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),m&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&_e.pointers.size<=1&&Ei(m)&&this.isIframeLikeElementCenter(m,this.lastPointerUpEvent,e.origin.x,e.origin.y)&&this.handleEmbeddableCenterClick(m)})}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)||gt(r)&&this.elementsPendingErasure.has(r.containerId)?(e=!0,ce(r,{isDeleted:!0})):r);this.elementsPendingErasure=new Set,e&&(this.history.resumeRecording(),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(Re(this.interactiveCanvas,"wait"),n===_t.svg)try{e=Lu(await Z1(await e.text()),e.name)}catch(s){throw console.warn(s),new Error(g("errors.svgImageInsertError"))}let i=await(this.props.generateIdForFile?.(e)||$1(e));if(!i)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(g("errors.imageInsertError"));if(!this.files[i]?.dataURL){try{e=await pl(e,{maxWidthOrHeight:Cg})}catch(s){console.error("Error trying to resizing image file on insertion",s)}if(e.size>iu)throw new Error(g("errors.fileTooBig",{maxSize:`${Math.trunc(iu/1024/1024)}MB`}))}if(r){let s=this.files[i]?.dataURL,m=s&&H1(s);this.setImagePreviewCursor(m||e)}let l=this.files[i]?.dataURL||await uc(e),c=J(o,{fileId:i},!1);return new Promise(async(s,m)=>{try{this.files={...this.files,[i]:{mimeType:n,id:i,dataURL:l,created:Date.now(),lastRetrieved:Date.now()}};let d=this.imageCache.get(i);d||(this.addNewImagesToImageCache(),await this.updateImageCache([c])),d?.image instanceof Promise&&await d.image,this.state.pendingImageElementId!==c.id&&this.state.draggingElement?.id!==c.id&&this.initializeImageDimensions(c,!0),s(c)}catch(d){console.error(d),m(new Error(g("errors.imageInsertError")))}finally{r||yo(this.interactiveCanvas)}})};insertImageElement=async(e,o,r)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}this.scene.addNewElement(e);try{return await this.initializeImage({imageFile:o,imageElement:e,showCursorImagePreview:r})}catch(n){return J(e,{isDeleted:!0}),this.actionManager.executeAction(ko),this.setState({errorMessage:n.message||g("errors.imageInsertError")}),null}};setImagePreviewCursor=async e=>{let r;try{r=await pl(e,{maxWidthOrHeight:96})}catch(i){throw i.cause==="UNSUPPORTED"?new Error(g("errors.unsupportedFileType")):i}let n=await uc(r);if(e.type===_t.svg){let i=await V1(n),a=Math.min(i.height,96),l=a*(i.width/i.height);l>96&&(l=96,a=l*(i.height/i.width));let c=document.createElement("canvas");c.height=a,c.width=l,c.getContext("2d").drawImage(i,0,0,l,a),n=c.toDataURL(_t.svg)}this.state.pendingImageElementId&&Re(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}=We({clientX:o,clientY:r},this.state),a=await sc({description:"Image",extensions:Object.keys(cg)}),l=this.createImageElement({sceneX:n,sceneY:i,addToFrameUnderCursor:!1});e?(this.insertImageElement(l,a),this.initializeImageDimensions(l),this.setState({selectedElementIds:Oe({[l.id]:!0},this.state)},()=>{this.actionManager.executeAction(ko)})):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:et(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(ko)})}};initializeImageDimensions=(e,o=!1)=>{let r=Ja(e)&&this.imageCache.get(e.fileId)?.image;if(!r||r instanceof Promise){if(e.width<An/this.state.zoom.value&&e.height<An/this.state.zoom.value){let n=100/this.state.zoom.value;J(e,{x:e.x-n/2,y:e.y-n/2,width:n,height:n})}return}if(o||e.width<An/this.state.zoom.value&&e.height<An/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),c=e.x+e.width/2-l/2,s=e.y+e.height/2-a/2;J(e,{x:c,y:s,width:l,height:a})}};updateImageCache=async(e,o=this.files)=>{let{updatedFiles:r,erroredFiles:n}=await K1({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)&&rr.delete(i);return n.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(i=>Ja(i)&&n.has(i.fileId)?ce(i,{status:"error"}):i)),{updatedFiles:r,erroredFiles:n}};addNewImagesToImageCache=async(e=Y1(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,q3.default)(()=>{this.addNewImagesToImageCache()},ug);updateBindingEnabledOnPointerMove=e=>{let o=o1(e);this.state.isBindingEnabled!==o&&this.setState({isBindingEnabled:o})};maybeSuggestBindingAtCursor=e=>{let o=ll(e,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:o!=null?[o]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(e,o,r)=>{if(!o.length)return;let n=o.reduce((i,a)=>{let l=ll(a,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());return l!=null&&!r1(e,r?.id,l)&&i.push(l),i},[]);this.setState({suggestedBindings:n})};maybeSuggestBindingForAll(e){if(e.length>50)return;let o=n1(e,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:o})}clearSelection(e){this.setState(o=>({selectedElementIds:Oe({},o),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:o.editingGroupId&&e!=null&&Ai(e,o.editingGroupId)?o.editingGroupId:null})),this.setState({selectedElementIds:Oe({},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 U1(e),{x:n,y:i}=We(e,this.state);try{if(dc(o)&&this.isToolSupported("image")){if(o?.type===_t.png||o?.type===_t.svg)try{let c=await mc(o,this.state,this.scene.getElementsIncludingDeleted(),r);this.syncActionResult({...c,appState:{...c.appState||this.state,isLoading:!1},replaceFiles:!0,commitToHistory:!0});return}catch(c){if(c.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:Oe({[l.id]:!0},this.state)});return}}catch(l){return this.setState({isLoading:!1,errorMessage:l.message})}let a=e.dataTransfer.getData(_t.excalidrawlib);if(a&&typeof a=="string"){try{let l=F1(a);this.addElementsFromPasteOrLibrary({elements:Bd(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&&Pi(l,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(l)||Fn(l)?.type==="video")){let c=this.insertEmbeddableElement({sceneX:n,sceneY:i,link:Ir(l)});c&&this.setState({selectedElementIds:{[c.id]:!0}})}}};loadFileToCanvas=async(e,o)=>{e=await W1(e);try{let r;try{r=await Mu(e,this.state,this.scene.getElementsIncludingDeleted(),o)}catch(n){let i=n instanceof N1;if(i&&n.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:g("errors.imageToolNotSupported")});return}let a=i?g("alerts.cannotRestoreFromImage"):g("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:a})}if(!r)return;r.type===_t.excalidraw?(this.setState({isLoading:!0}),this.syncActionResult({...r.data,appState:{...r.data.appState||this.state,isLoading:!1},replaceFiles:!0,commitToHistory:!0})):r.type===_t.excalidrawlib&&await this.library.updateLibrary({libraryItems:e,merge:!0,openLibraryMenu:!0}).catch(n=>{console.error(n),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!==Zr.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:o,y:r}=We(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",c=this.excalidrawContainerRef.current,{top:s,left:m}=c.getBoundingClientRect(),d=e.clientX-m,p=e.clientY-s;ge("contextMenu","openContextMenu",l),this.setState({...n&&!this.state.selectedElementIds[n.id]?{...this.state,...At({editingGroupId:this.state.editingGroupId,selectedElementIds:{[n.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:De(n)?new ue(n):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:p,left:d,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")Wu(r,this.state.activeTool.type,e.origin.x,e.origin.y,n.x,n.y,Rn(e.origin.x,n.x),Rn(e.origin.y,n.y),ki(o),Ys(o));else{let[i,a]=Yt(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),l=Ja(r)&&this.imageCache.get(r.fileId)?.image,c=l&&!(l instanceof Promise)?l.width/l.height:null;this.maybeCacheReferenceSnapPoints(o,[r]);let{snapOffset:s,snapLines:m}=w3(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+=s.x,a+=s.y,this.setState({snapLines:m}),Wu(r,this.state.activeTool.type,e.originInGrid.x,e.originInGrid.y,i,a,Rn(e.originInGrid.x,i),Rn(e.originInGrid.y,a),Jr(r)?!ki(o):ki(o),Ys(o),c,this.state.originSnapOffset),this.maybeSuggestBindingForAll([r]),(this.state.activeTool.type===mt.frame||this.state.activeTool.type===mt.magicframe)&&this.setState({elementsToHighlight:Bi(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(e,o)=>{let r=this.scene.getSelectedElements(this.state),n=r.filter(m=>we(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,c]=Yt(a.x-e.resize.offset.x,a.y-e.resize.offset.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),s=new Map;if(n.forEach(m=>{nn(this.scene.getNonDeletedElements(),m.id).forEach(p=>{s.set(m.id+p.id,{x:p.x-m.x,y:p.y-m.y})})}),!this.state.selectedElementsAreBeingDragged){let[m,d]=Yt(a.x,a.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),p={x:m-e.originInGrid.x,y:d-e.originInGrid.y},u=[...e.originalElements.values()];this.maybeCacheReferenceSnapPoints(o,r);let{snapOffset:b,snapLines:x}=E3(r,ke(u,this.state),this.state,o,p,i);l+=b.x,c+=b.y,this.setState({snapLines:x})}if(xb(e.originalElements,i,r,this.scene.getElementsMapIncludingDeleted(),Zs(o),Ys(o),r.length===1&&Jr(r[0])?!ki(o):ki(o),l,c,e.resize.center.x,e.resize.center.y)){this.maybeSuggestBindingForAll(r);let m=new Set;return n.forEach(d=>{Bi(this.scene.getNonDeletedElements(),d,this.state,this.scene.getNonDeletedElementsMap()).forEach(p=>m.add(p))}),this.setState({elementsToHighlight:[...m]}),!0}return!1};getContextMenuItems=e=>{let o=[];return o.push(Id,kd),e==="canvas"?this.state.viewModeEnabled?[...o,Md,xa,vh,xn]:[uf,qt,Id,kd,_d,qt,ap,ky,qt,Md,pf,xa,vh,xn]:(o.push(_d),this.state.viewModeEnabled?[ba,...o]:[Sd,ba,uf,u3,p3,qt,...o,qt,ef,tf,qt,rf,ff,hf,xy,nf,qt,sf,qt,op,rp,np,ip,qt,df,mf,qt,wf,yf,lp,Ef,qt,wl])};handleWheel=Xe(e=>{if(e.preventDefault(),bs)return;let{deltaX:o,deltaY:r}=e;if(e.metaKey||e.ctrlKey){let n=Math.sign(r),i=Pn*100,a=Math.abs(r),l=r;a>i&&(l=i*n);let c=this.state.zoom.value-l/100;c+=Math.log10(Math.max(1,this.state.zoom.value))*-n*Math.min(1,a/20),this.translateCanvas(s=>({...Ar({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Mr(c)},s),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=ec(n,r,this.scene.getNonDeletedElementsMap());if(l&&(i=l.x,a=l.y),Math.hypot(e-i,o-a)<lg){let{x:m,y:d}=Kt({sceneX:i,sceneY:a},r);return{viewportX:m,viewportY:d,elementCenterX:i,elementCenterY:a}}}}savePointer=(e,o,r)=>{if(!e||!o)return;let{x:n,y:i}=We({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:_e.pointers})};resetShouldCacheIgnoreZoomDebounced=Ya(()=>{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:c,offsetTop:s,offsetLeft:m}=this.state;if(r===l&&n===c&&i===m&&a===s){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=Wi.find(o=>o.code===this.props.langCode)||nr;await Lc(e),this.setAppState({})}},ik=()=>{(E.MODE===tu.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(t)}}}))};ik();var t5=Nh;h();var ak=()=>{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)})},o5=ak;h();var Uh=v(C(),1),r5=({children:t})=>{let{FooterCenterTunnel:e}=ze(),o=Le();return(0,Uh.jsx)(e.In,{children:(0,Uh.jsx)("div",{className:F("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":o.zenModeEnabled}),children:t})})},lk=r5;r5.displayName="FooterCenter";h();h();h();var Ro=v(C(),1),sk=()=>(0,Ro.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,Ro.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"})}),ck=()=>(0,Ro.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,Ro.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,Ro.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,Ro.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,Ro.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)"})]}),n5=({style:t,size:e="small",withText:o})=>(0,Ro.jsxs)("div",{className:`ExcalidrawLogo is-${e}`,style:t,children:[(0,Ro.jsx)(sk,{}),o&&(0,Ro.jsx)(ck,{})]});var $e=v(C(),1),Wh=({icon:t,shortcut:e,children:o})=>{let r=Ie();return(0,$e.jsxs)($e.Fragment,{children:[(0,$e.jsx)("div",{className:"welcome-screen-menu-item__icon",children:t}),(0,$e.jsx)("div",{className:"welcome-screen-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,$e.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:e})]})};Wh.displayName="WelcomeScreenMenuItemContent";var ys=({onSelect:t,children:e,icon:o,shortcut:r,className:n="",...i})=>(0,$e.jsx)("button",{...i,type:"button",className:`welcome-screen-menu-item ${n}`,onClick:t,children:(0,$e.jsx)(Wh,{icon:o,shortcut:r,children:e})});ys.displayName="WelcomeScreenMenuItem";var i5=({children:t,href:e,icon:o,shortcut:r,className:n="",...i})=>(0,$e.jsx)("a",{...i,className:`welcome-screen-menu-item ${n}`,href:e,target:"_blank",rel:"noreferrer",children:(0,$e.jsx)(Wh,{icon:o,shortcut:r,children:t})});i5.displayName="WelcomeScreenMenuItemLink";var No=({children:t})=>{let{WelcomeScreenCenterTunnel:e}=ze();return(0,$e.jsx)(e.In,{children:(0,$e.jsx)("div",{className:"welcome-screen-center",children:t||(0,$e.jsxs)($e.Fragment,{children:[(0,$e.jsx)(Gh,{}),(0,$e.jsx)(Vh,{children:g("welcomeScreen.defaults.center_heading")}),(0,$e.jsxs)(Kh,{children:[(0,$e.jsx)(Zh,{}),(0,$e.jsx)(Yh,{})]})]})})})};No.displayName="Center";var Gh=({children:t})=>(0,$e.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:t||(0,$e.jsx)(n5,{withText:!0})});Gh.displayName="Logo";var Vh=({children:t})=>(0,$e.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:t});Vh.displayName="Heading";var Kh=({children:t})=>(0,$e.jsx)("div",{className:"welcome-screen-menu",children:t});Kh.displayName="Menu";var Yh=()=>{let t=Nt();return(0,$e.jsx)(ys,{onSelect:()=>t.executeAction(Jn),shortcut:"?",icon:Ki,children:g("helpDialog.title")})};Yh.displayName="MenuItemHelp";var Zh=()=>{let t=Le(),e=Nt();return t.viewModeEnabled?null:(0,$e.jsx)(ys,{onSelect:()=>e.executeAction(ha),shortcut:$r("loadScene"),icon:Yi,children:g("buttons.load")})};Zh.displayName="MenuItemLoadScene";var a5=({onSelect:t})=>{let{t:e}=wt();return(0,$e.jsx)(ys,{shortcut:null,onSelect:t,icon:zc,children:e("labels.liveCollaboration")})};a5.displayName="MenuItemLiveCollaborationTrigger";No.Logo=Gh;No.Heading=Vh;No.Menu=Kh;No.MenuItem=ys;No.MenuItemLink=i5;No.MenuItemHelp=Yh;No.MenuItemLoadScene=Zh;No.MenuItemLiveCollaborationTrigger=a5;h();var qo=v(C(),1),Km=({children:t})=>{let{WelcomeScreenMenuHintTunnel:e}=ze();return(0,qo.jsx)(e.In,{children:(0,qo.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[Xb,(0,qo.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.menuHint")})]})})};Km.displayName="MenuHint";var Ym=({children:t})=>{let{WelcomeScreenToolbarHintTunnel:e}=ze();return(0,qo.jsx)(e.In,{children:(0,qo.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,qo.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.toolbarHint")}),Jb]})})};Ym.displayName="ToolbarHint";var Zm=({children:t})=>{let{WelcomeScreenHelpHintTunnel:e}=ze();return(0,qo.jsx)(e.In,{children:(0,qo.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,qo.jsx)("div",{children:t||g("welcomeScreen.defaults.helpHint")}),qb]})})};Zm.displayName="HelpHint";var Jo=v(C(),1),jm=t=>(0,Jo.jsx)(Jo.Fragment,{children:t.children||(0,Jo.jsxs)(Jo.Fragment,{children:[(0,Jo.jsx)(No,{}),(0,Jo.jsx)(Km,{}),(0,Jo.jsx)(Ym,{}),(0,Jo.jsx)(Zm,{})]})});jm.displayName="WelcomeScreen";jm.Center=No;jm.Hints={MenuHint:Km,ToolbarHint:Ym,HelpHint:Zm};var dk=jm;h();var Xm=v(C(),1),l5=({isCollaborating:t,onSelect:e,...o})=>{let r=Le(),n=r.width<830;return(0,Xm.jsxs)(pr,{...o,className:F("collab-button",{active:t}),type:"button",onSelect:e,style:{position:"relative",width:n?void 0:"auto"},title:g("labels.liveCollaboration"),children:[n?_0:g("labels.share"),r.collaborators.size>0&&(0,Xm.jsx)("div",{className:"CollabButton-collaborators",children:r.collaborators.size})]})},mk=l5;l5.displayName="LiveCollaborationTrigger";h();var Es=v(C(),1),s5=({children:t,icon:e})=>{let{TTDDialogTriggerTunnel:o}=ze(),r=Fe();return(0,Es.jsx)(o.In,{children:(0,Es.jsxs)(Me.Item,{onSelect:()=>{ge("ai","dialog open","ttd"),r({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:e??Dx,children:[t??g("labels.textToDiagram"),(0,Es.jsx)(Me.Item.Badge,{children:"AI"})]})})};s5.displayName="TTDDialogTrigger";var qm=v(C(),1);o5();var uk=t=>{let{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n=!1,onPointerUpdate:i,renderTopRightUI:a,langCode:l=nr.code,viewModeEnabled:c,zenModeEnabled:s,gridModeEnabled:m,libraryReturnUrl:d,theme:p,name:u,renderCustomStats:b,onPaste:x,detectScroll:y=!0,handleKeyboardGlobally:w=!1,onLibraryChange:k,autoFocus:T=!1,generateIdForFile:I,onLinkOpen:A,onPointerDown:_,onPointerUp:M,onScrollChange:L,children:W,validateEmbeddable:B,renderEmbeddable:Y,aiEnabled:O}=t,z=t.UIOptions?.canvasActions,ne={...t.UIOptions,canvasActions:{...nu.canvasActions,...z},tools:{image:t.UIOptions?.tools?.image??!0}};return z?.export&&(ne.canvasActions.export.saveFileToDisk=z.export?.saveFileToDisk??nu.canvasActions.export.saveFileToDisk),ne.canvasActions.toggleTheme===null&&typeof p>"u"&&(ne.canvasActions.toggleTheme=!0),(0,Jm.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let xe=Ee=>{typeof Ee.scale=="number"&&Ee.scale!==1&&Ee.preventDefault()};return document.addEventListener("touchmove",xe,{passive:!1}),()=>{document.removeEventListener("touchmove",xe)}},[]),(0,qm.jsx)(_c,{unstable_createStore:()=>oo,scope:Ae,children:(0,qm.jsx)(Hb,{langCode:l,theme:p,children:(0,qm.jsx)(t5,{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n,onPointerUpdate:i,renderTopRightUI:a,langCode:l,viewModeEnabled:c,zenModeEnabled:s,gridModeEnabled:m,libraryReturnUrl:d,theme:p,name:u,renderCustomStats:b,UIOptions:ne,onPaste:x,detectScroll:y,handleKeyboardGlobally:w,onLibraryChange:k,autoFocus:T,generateIdForFile:I,onLinkOpen:A,onPointerDown:_,onPointerUp:M,onScrollChange:L,validateEmbeddable:B,renderEmbeddable:Y,aiEnabled:O!==!1,children:W})})})},pk=(t,e)=>{if(t.children!==e.children)return!1;let{initialData:o,UIOptions:r={},...n}=t,{initialData:i,UIOptions:a={},...l}=e,c=Object.keys(r),s=Object.keys(a);return c.length!==s.length?!1:c.every(d=>d==="canvasActions"?Object.keys(r.canvasActions).every(u=>u==="export"&&r?.canvasActions?.export&&a?.canvasActions?.export?r.canvasActions.export.saveFileToDisk===a.canvasActions.export.saveFileToDisk:r?.canvasActions?.[u]===a?.canvasActions?.[u]):r[d]===a[d])&&Mt(n,l)},fk=Jm.default.memo(uk,pk);fk.displayName="Excalidraw";export{pr as Button,Cm as DefaultSidebar,fk as Excalidraw,Va as FONT_FAMILY,lk as Footer,mk as LiveCollaborationTrigger,_t as MIME_TYPES,eo as MainMenu,ho as ROUNDNESS,Ur as Sidebar,dt as THEME,xh as TTDDialog,s5 as TTDDialogTrigger,dk as WelcomeScreen,Fi as bumpVersion,as as convertToExcalidrawElements,nr as defaultLang,E5 as elementPartiallyOverlapsWithOrContainsBBox,w5 as elementsOverlappingBBox,Ou as exportToBlob,$n as exportToCanvas,v5 as exportToClipboard,hl as exportToSvg,Ge as getCommonBounds,T5 as getFreeDrawSvgPath,Od as getLibraryItemsHash,he as getNonDeletedElements,C5 as getSceneVersion,b5 as getVisibleSceneBounds,Gu as hashElementsVersion,Vu as hashString,y5 as isElementInsideBBox,Hn as isInvisiblySmallElement,De as isLinearElement,Wi as languages,mc as loadFromBlob,Au as loadLibraryFromBlob,Mu as loadSceneOrLibraryFromBlob,Ny as mergeLibraryItems,J as mutateElement,ce as newElementWith,Ir as normalizeLink,If as parseLibraryTokensFromUrl,_u as restore,x5 as restoreAppState,Iu as restoreElements,ul as restoreLibraryItems,Kt as sceneCoordsToViewportCoords,Pu as serializeAsJSON,Ru as serializeLibraryAsJSON,Ie as useDevice,pT as useHandleLibrary,wt as useI18n,We as viewportCoordsToSceneCoords,Q2 as zoomToFitBounds};
|
|
169
169
|
/*! Bundled license information:
|
|
170
170
|
|
|
171
171
|
react/cjs/react-jsx-runtime.production.min.js:
|