PageSourceSearch

https://cardio-defend-z90i7hd.gamma.site/_next/static/chunks/9646.ecd0798546d660b5.js

js cardio-defend-z90i7hd.gamma.site collected 2026-10-03 04:05:28 UTC 804,248 bytes, 210 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9646],{10161:function(e){"use strict";var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,r,o,s){if("function"!=typeof r)throw TypeError("The listener must be a function");var a=new i(r,o||e,s),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],a]:e._events[l].push(a):(e._events[l]=a,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1)),a.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,s=Array(o);i<o;i++)s[i]=r[i].fn;return s},a.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},a.prototype.emit=function(e,t,r,i,o,s){var a=n?n+e:e;if(!this._events[a])return!1;var l,c,d=this._events[a],u=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),u){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,r),!0;case 4:return d.fn.call(d.context,t,r,i),!0;case 5:return d.fn.call(d.context,t,r,i,o),!0;case 6:return d.fn.call(d.context,t,r,i,o,s),!0}for(c=1,l=Array(u-1);c<u;c++)l[c-1]=arguments[c];d.fn.apply(d.context,l)}else{var h,p=d.length;for(c=0;c<p;c++)switch(d[c].once&&this.removeListener(e,d[c].fn,void 0,!0),u){case 1:d[c].fn.call(d[c].context);break;case 2:d[c].fn.call(d[c].context,t);break;case 3:d[c].fn.call(d[c].context,t,r);break;case 4:d[c].fn.call(d[c].context,t,r,i);break;default:if(!l)for(h=1,l=Array(u-1);h<u;h++)l[h-1]=arguments[h];d[c].fn.apply(d[c].context,l)}}return!0},a.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},a.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},a.prototype.removeListener=function(e,t,r,i){var o=n?n+e:e;if(!this._events[o])return this;if(!t)return s(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||i&&!a.once||r&&a.context!==r||s(this,o);else{for(var l=0,c=[],d=a.length;l<d;l++)(a[l].fn!==t||i&&!a[l].once||r&&a[l].context!==r)&&c.push(a[l]);c.length?this._events[o]=1===c.length?c[0]:c:s(this,o)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&s(this,t)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,e.exports=a},33958:function(e,t,n){e=n.nmd(e);var r,i,o,s="__lodash_hash_undefined__",a="[object Arguments]",l="[object Array]",c="[object Boolean]",d="[object Date]",u="[object Error]",h="[object Function]",p="[object Map]",f="[object Number]",g="[object Object]",m="[object Promise]",y="[object RegExp]",b="[object Set]",x="[object String]",w="[object WeakMap]",v="[object ArrayBuffer]",S="[object DataView]",k=/^\[object .+?Constructor\]$/,j=/^(?:0|[1-9]\d*)$/,_={};_["[object Float32Array]"]=_["[object Float64Array]"]=_["[object Int8Array]"]=_["[object Int16Array]"]=_["[object Int32Array]"]=_["[object Uint8Array]"]=_["[object Uint8ClampedArray]"]=_["[object Uint16Array]"]=_["[object Uint32Array]"]=!0,_[a]=_[l]=_[v]=_[c]=_[S]=_[d]=_[u]=_[h]=_[p]=_[f]=_[g]=_[y]=_[b]=_[x]=_[w]=!1;var E="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,C="object"==typeof self&&self&&self.Object===Object&&self,P=E||C||Function("return this")(),I=t&&!t.nodeType&&t,T=I&&e&&!e.nodeType&&e,M=T&&T.exports===I,A=M&&E.process,$=function(){try{return A&&A.binding&&A.binding("util")}catch(e){}}(),D=$&&$.isTypedArray;function O(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function B(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var L=Array.prototype,R=Function.prototype,N=Object.prototype,z=P["__core-js_shared__"],F=R.toString,U=N.hasOwnProperty,H=(r=/[^.]+$/.exec(z&&z.keys&&z.keys.IE_PROTO||""))?"Symbol(sr
1c)_1."+r:"",Z=N.toString,V=RegExp("^"+F.call(U).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),K=M?P.Buffer:void 0,W=P.Symbol,Y=P.Uint8Array,G=N.propertyIsEnumerable,X=L.splice,q=W?W.toStringTag:void 0,J=Object.getOwnPropertySymbols,Q=K?K.isBuffer:void 0,ee=(i=Object.keys,o=Object,function(e){return i(o(e))}),et=e_(P,"DataView"),en=e_(P,"Map"),er=e_(P,"Promise"),ei=e_(P,"Set"),eo=e_(P,"WeakMap"),es=e_(Object,"create"),ea=eP(et),el=eP(en),ec=eP(er),ed=eP(ei),eu=eP(eo),eh=W?W.prototype:void 0,ep=eh?eh.valueOf:void 0;function ef(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function eg(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function em(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ey(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new em;++t<n;)this.add(e[t])}function eb(e){var t=this.__data__=new eg(e);this.size=t.size}function ex(e,t){for(var n=e.length;n--;)if(eI(e[n][0],t))return n;return -1}function ew(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":q&&q in Object(e)?function(e){var t=U.call(e,q),n=e[q];try{e[q]=void 0;var r=!0}catch(e){}var i=Z.call(e);return r&&(t?e[q]=n:delete e[q]),i}(e):Z.call(e)}function ev(e){return eB(e)&&ew(e)==a}function eS(e,t,n,r,i,o){var s=1&n,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return!1;var c=o.get(e);if(c&&o.get(t))return c==t;var d=-1,u=!0,h=2&n?new ey:void 0;for(o.set(e,t),o.set(t,e);++d<a;){var p=e[d],f=t[d];if(r)var g=s?r(f,p,d,t,e,o):r(p,f,d,e,t,o);if(void 0!==g){if(g)continue;u=!1;break}if(h){if(!function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}(t,function(e,t){if(!h.has(t)&&(p===e||i(p,e,n,r,o)))return h.push(t)})){u=!1;break}}else if(!(p===f||i(p,f,n,r,o))){u=!1;break}}return o.delete(e),o.delete(t),u}function ek(e){var t;return t=function(e){return null!=e&&eD(e.length)&&!e$(e)?function(e,t){var n,r=eM(e),i=!r&&eT(e),o=!r&&!i&&eA(e),s=!r&&!i&&!o&&eL(e),a=r||i||o||s,l=a?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=l.length;for(var d in e)U.call(e,d)&&!(a&&("length"==d||o&&("offset"==d||"parent"==d)||s&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||(n=null==(n=c)?9007199254740991:n)&&("number"==typeof d||j.test(d))&&d>-1&&d%1==0&&d<n))&&l.push(d);return l}(e):function(e){if(t=e&&e.constructor,e!==("function"==typeof t&&t.prototype||N))return ee(e);var t,n=[];for(var r in Object(e))U.call(e,r)&&"constructor"!=r&&n.push(r);return n}(e)}(e),eM(e)?t:function(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}(t,eE(e))}function ej(e,t){var n,r=e.__data__;return("string"==(n=typeof t)||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==t:null===t)?r["string"==typeof t?"string":"hash"]:r.map}function e_(e,t){var n=null==e?void 0:e[t];return!(!eO(n)||H&&H in n)&&(e$(n)?V:k).test(eP(n))?n:void 0}ef.prototype.clear=function(){this.__data__=es?es(null):{},this.size=0},ef.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ef.prototype.get=function(e){var t=this.__data__;if(es){var n=t[e];return n===s?void 0:n}return U.call(t,e)?t[e]:void 0},ef.prototype.has=function(e){var t=this.__data__;return es?void 0!==t[e]:U.call(t,e)},ef.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=es&&void 0===t?s:t,this},eg.prototype.clear=function(){this.__data__=[],this.size=0},eg.prototype.delete=function(e){var t=this.__data__,n=ex(t,e);return!(n<0)&&(n==t.length-1?t.pop():X.call(t,n,1),--this.size,!0)},eg.prototype.get=function(e){var t=this.__data__,n=ex(t,e);return n<0?void 0:t[n][1]},eg.prototype.has=function(e){return ex(this.__data__,e)>-1},eg.prototype.set=function(e,t){var n=this.__data__,r=ex(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},em.prototype.clear=function(){this.size=0,this.__data__={hash:new ef,map:new(en||eg),string:new ef}},em.prototype.delete=function(e){var t=ej(this,e).delete(e);return this.size-=t?1:0,t},em.prototype.get=function(e){return ej(this,e).get(e)},em.prototype.has=function(e){return ej(this,e).has(e)},em.prototype.set=function(e,t){var n=ej(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},ey.prototype.add=ey.prototype.push=function(e){return this.__data__.set(e,s),this},ey.prototype.has=function(e){return this.__data__.has(e)},eb.prototype.clear=function(){this.__data__=new eg,this.size=0},eb.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},eb.prototype.get=function(e){return this.__data__.get(e)},eb.prototype.has=function(e){return this.__data__.has(e)},eb.prototype.set=function(e,t){var n=this.__data__;if(n instanceof eg){var r=n.__data__;if(!en||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new em(r)}return n.set(e,t),this.size=n.size,this};var eE=J?function(e){return null==e?[]:function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var s=e[n];t(s,n,e)&&(o[i++]=s)}return o}(J(e=Object(e)),function(t){return G.call(e,t)})}:function(){return[]},eC=ew;function eP(e){if(null!=e){try{return F.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function eI(e,t){return e===t||e!=e&&t!=t}(et&&eC(new et(new ArrayBuffer(1)))!=S||en&&eC(new en)!=p||er&&eC(er.resolve())!=m||ei&&eC(new ei)!=b||eo&&eC(new eo)!=w)&&(eC=function(e){var t=ew(e),n=t==g?e.constructor:void 0,r=n?eP(n):"";if(r)switch(r){case ea:return S;case el:return p;case ec:return m;case ed:return b;case eu:return w}return t});var eT=ev(function(){return arguments}())?ev:function(e){return eB(e)&&U.call(e,"callee")&&!G.call(e,"callee")},eM=Array.isArray,eA=Q||function(){return!1};function e$(e){if(!eO(e))return!1;var t=ew(e);return t==h||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function eD(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function eO(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function eB(e){return null!=e&&"object"==typeof e}var eL=D?function(e){return D(e)}:function(e){return eB(e)&&eD(e.length)&&!!_[ew(e)]};e.exports=function(e,t){return function e(t,n,r,i,o){return t===n||(null!=t&&null!=n&&(eB(t)||eB(n))?function(e,t,n,r,i,o){var s=eM(e),h=eM(t),m=s?l:eC(e),w=h?l:eC(t);m=m==a?g:m,w=w==a?g:w;var k=m==g,j=w==g,_=m==w;
1if(_&&eA(e)){if(!eA(t))return!1;s=!0,k=!1}if(_&&!k)return o||(o=new eb),s||eL(e)?eS(e,t,n,r,i,o):function(e,t,n,r,i,o,s){switch(n){case S:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case v:if(e.byteLength!=t.byteLength||!o(new Y(e),new Y(t)))break;return!0;case c:case d:case f:return eI(+e,+t);case u:return e.name==t.name&&e.message==t.message;case y:case x:return e==t+"";case p:var a=O;case b:var l=1&r;if(a||(a=B),e.size!=t.size&&!l)break;var h=s.get(e);if(h)return h==t;r|=2,s.set(e,t);var g=eS(a(e),a(t),r,i,o,s);return s.delete(e),g;case"[object Symbol]":if(ep)return ep.call(e)==ep.call(t)}return!1}(e,t,m,n,r,i,o);if(!(1&n)){var E=k&&U.call(e,"__wrapped__"),C=j&&U.call(t,"__wrapped__");if(E||C){var P=E?e.value():e,I=C?t.value():t;return o||(o=new eb),i(P,I,n,r,o)}}return!!_&&(o||(o=new eb),function(e,t,n,r,i,o){var s=1&n,a=ek(e),l=a.length;if(l!=ek(t).length&&!s)return!1;for(var c=l;c--;){var d=a[c];if(!(s?d in t:U.call(t,d)))return!1}var u=o.get(e);if(u&&o.get(t))return u==t;var h=!0;o.set(e,t),o.set(t,e);for(var p=s;++c<l;){var f=e[d=a[c]],g=t[d];if(r)var m=s?r(g,f,d,t,e,o):r(f,g,d,e,t,o);if(!(void 0===m?f===g||i(f,g,n,r,o):m)){h=!1;break}p||(p="constructor"==d)}if(h&&!p){var y=e.constructor,b=t.constructor;y!=b&&"constructor"in e&&"constructor"in t&&!("function"==typeof y&&y instanceof y&&"function"==typeof b&&b instanceof b)&&(h=!1)}return o.delete(e),o.delete(t),h}(e,t,n,r,i,o))}(t,n,r,i,e,o):t!=t&&n!=n)}(e,t)}},94430:function(e,t,n){var r,i="__lodash_hash_undefined__",o=/^\[object .+?Constructor\]$/,s="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,a="object"==typeof self&&self&&self.Object===Object&&self,l=s||a||Function("return this")();function c(e,t){return!!(e?e.length:0)&&function(e,t,n){if(t!=t)return function(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return -1}(e,u,n);for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return -1}(e,t,0)>-1}function d(e,t,n){for(var r=-1,i=e?e.length:0;++r<i;)if(n(t,e[r]))return!0;return!1}function u(e){return e!=e}function h(e,t){return e.has(t)}function p(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var f=Array.prototype,g=Function.prototype,m=Object.prototype,y=l["__core-js_shared__"],b=(r=/[^.]+$/.exec(y&&y.keys&&y.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",x=g.toString,w=m.hasOwnProperty,v=m.toString,S=RegExp("^"+x.call(w).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),k=f.splice,j=D(l,"Map"),_=D(l,"Set"),E=D(Object,"create");function C(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function P(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function I(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function T(e){var t=-1,n=e?e.length:0;for(this.__data__=new I;++t<n;)this.add(e[t])}function M(e,t){for(var n,r=e.length;r--;)if((n=e[r][0])===t||n!=n&&t!=t)return r;return -1}C.prototype.clear=function(){this.__data__=E?E(null):{}},C.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},C.prototype.get=function(e){var t=this.__data__;if(E){var n=t[e];return n===i?void 0:n}return w.call(t,e)?t[e]:void 0},C.prototype.has=function(e){var t=this.__data__;return E?void 0!==t[e]:w.call(t,e)},C.prototype.set=function(e,t){return this.__data__[e]=E&&void 0===t?i:t,this},P.prototype.clear=function(){this.__data__=[]},P.prototype.delete=function(e){var t=this.__data__,n=M(t,e);return!(n<0)&&(n==t.length-1?t.pop():k.call(t,n,1),!0)},P.prototype.get=function(e){var t=this.__data__,n=M(t,e);return n<0?void 0:t[n][1]},P.prototype.has=function(e){return M(this.__data__,e)>-1},P.prototype.set=function(e,t){var n=this.__data__,r=M(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},I.prototype.clear=function(){this.__data__={hash:new C,map:new(j||P),string:new C}},I.prototype.delete=function(e){return $(this,e).delete(e)},I.prototype.get=function(e){return $(this,e).get(e)},I.prototype.has=function(e){return $(this,e).has(e)},I.prototype.set=function(e,t){return $(this,e).set(e,t),this},T.prototype.add=T.prototype.push=function(e){return this.__data__.set(e,i),this},T.prototype.has=function(e){return this.__data__.has(e)};var A=_&&1/p(new _([,-0]))[1]==1/0?function(e){return new _(e)}:function(){};function $(e,t){var n,r=e.__data__;return("string"==(n=typeof t)||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==t:null===t)?r["
1string"==typeof t?"string":"hash"]:r.map}function D(e,t){var n,r=null==e?void 0:e[t];return!(!O(r)||b&&b in r)&&("[object Function]"==(n=O(r)?v.call(r):"")||"[object GeneratorFunction]"==n||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(r)?S:o).test(function(e){if(null!=e){try{return x.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(r))?r:void 0}function O(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=function(e){return e&&e.length?function(e,t,n){var r=-1,i=c,o=e.length,s=!0,a=[],l=a;if(n)s=!1,i=d;else if(o>=200){var u=t?null:A(e);if(u)return p(u);s=!1,i=h,l=new T}else l=t?[]:a;e:for(;++r<o;){var f=e[r],g=t?t(f):f;if(f=n||0!==f?f:0,s&&g==g){for(var m=l.length;m--;)if(l[m]===g)continue e;t&&l.push(g),a.push(f)}else i(l,g,n)||(l!==a&&l.push(g),a.push(f))}return a}(e):[]}},36954:function(e,t,n){var r,i=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",r={};function i(e,t){if(!r[e]){r[e]={};for(var n=0;n<e.length;n++)r[e][e.charAt(n)]=n}return r[e][t]}var o={compressToBase64:function(e){if(null==e)return"";var n=o._compress(e,6,function(e){return t.charAt(e)});switch(n.length%4){default:case 0:return n;case 1:return n+"===";case 2:return n+"==";case 3:return n+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:o._decompress(e.length,32,function(n){return i(t,e.charAt(n))})},compressToUTF16:function(t){return null==t?"":o._compress(t,15,function(t){return e(t+32)})+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:o._decompress(e.length,16384,function(t){return e.charCodeAt(t)-32})},compressToUint8Array:function(e){for(var t=o.compress(e),n=new Uint8Array(2*t.length),r=0,i=t.length;r<i;r++){var s=t.charCodeAt(r);n[2*r]=s>>>8,n[2*r+1]=s%256}return n},decompressFromUint8Array:function(t){if(null==t)return o.decompress(t);for(var n=Array(t.length/2),r=0,i=n.length;r<i;r++)n[r]=256*t[2*r]+t[2*r+1];var s=[];return n.forEach(function(t){s.push(e(t))}),o.decompress(s.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":o._compress(e,6,function(e){return n.charAt(e)})},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),o._decompress(e.length,32,function(t){return i(n,e.charAt(t))}))},compress:function(t){return o._compress(t,16,function(t){return e(t)})},_compress:function(e,t,n){if(null==e)return"";var r,i,o,s={},a={},l="",c="",d="",u=2,h=3,p=2,f=[],g=0,m=0;for(o=0;o<e.length;o+=1)if(l=e.charAt(o),Object.prototype.hasOwnProperty.call(s,l)||(s[l]=h++,a[l]=!0),c=d+l,Object.prototype.hasOwnProperty.call(s,c))d=c;else{if(Object.prototype.hasOwnProperty.call(a,d)){if(256>
1d.charCodeAt(0)){for(r=0;r<p;r++)g<<=1,m==t-1?(m=0,f.push(n(g)),g=0):m++;for(r=0,i=d.charCodeAt(0);r<8;r++)g=g<<1|1&i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i>>=1}else{for(r=0,i=1;r<p;r++)g=g<<1|i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i=0;for(r=0,i=d.charCodeAt(0);r<16;r++)g=g<<1|1&i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i>>=1}0==--u&&(u=Math.pow(2,p),p++),delete a[d]}else for(r=0,i=s[d];r<p;r++)g=g<<1|1&i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i>>=1;0==--u&&(u=Math.pow(2,p),p++),s[c]=h++,d=String(l)}if(""!==d){if(Object.prototype.hasOwnProperty.call(a,d)){if(256>d.charCodeAt(0)){for(r=0;r<p;r++)g<<=1,m==t-1?(m=0,f.push(n(g)),g=0):m++;for(r=0,i=d.charCodeAt(0);r<8;r++)g=g<<1|1&i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i>>=1}else{for(r=0,i=1;r<p;r++)g=g<<1|i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i=0;for(r=0,i=d.charCodeAt(0);r<16;r++)g=g<<1|1&i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i>>=1}0==--u&&(u=Math.pow(2,p),p++),delete a[d]}else for(r=0,i=s[d];r<p;r++)g=g<<1|1&i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i>>=1;0==--u&&(u=Math.pow(2,p),p++)}for(r=0,i=2;r<p;r++)g=g<<1|1&i,m==t-1?(m=0,f.push(n(g)),g=0):m++,i>>=1;for(;;){if(g<<=1,m==t-1){f.push(n(g));break}m++}return f.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,function(t){return e.charCodeAt(t)})},_decompress:function(t,n,r){var i,o,s,a,l,c,d,u=[],h=4,p=4,f=3,g="",m=[],y={val:r(0),position:n,index:1};for(i=0;i<3;i+=1)u[i]=i;for(s=0,l=4,c=1;c!=l;)a=y.val&y.position,y.position>>=1,0==y.position&&(y.position=n,y.val=r(y.index++)),s|=(a>0?1:0)*c,c<<=1;switch(s){case 0:for(s=0,l=256,c=1;c!=l;)a=y.val&y.position,y.position>>=1,0==y.position&&(y.position=n,y.val=r(y.index++)),s|=(a>0?1:0)*c,c<<=1;d=e(s);break;case 1:for(s=0,l=65536,c=1;c!=l;)a=y.val&y.position,y.position>>=1,0==y.position&&(y.position=n,y.val=r(y.index++)),s|=(a>0?1:0)*c,c<<=1;d=e(s);break;case 2:return""}for(u[3]=d,o=d,m.push(d);;){if(y.index>t)return"";for(s=0,l=Math.pow(2,f),c=1;c!=l;)a=y.val&y.position,y.position>>=1,0==y.position&&(y.position=n,y.val=r(y.index++)),s|=(a>0?1:0)*c,c<<=1;switch(d=s){case 0:for(s=0,l=256,c=1;c!=l;)a=y.val&y.position,y.position>>=1,0==y.position&&(y.position=n,y.val=r(y.index++)),s|=(a>0?1:0)*c,c<<=1;u[p++]=e(s),d=p-1,h--;break;case 1:for(s=0,l=65536,c=1;c!=l;)a=y.val&y.position,y.position>>=1,0==y.position&&(y.position=n,y.val=r(y.index++)),s|=(a>0?1:0)*c,c<<=1;u[p++]=e(s),d=p-1,h--;break;case 2:return m.join("")}if(0==h&&(h=Math.pow(2,f),f++),u[d])g=u[d];else{if(d!==p)return null;g=o+o.charAt(0)}m.push(g),u[p++]=o+g.charAt(0),h--,o=g,0==h&&(h=Math.pow(2,f),f++)}}};return o}();void 0!==(r=(function(){return i}).call(t,n,t,e))&&(e.exports=r)},35872:function(){},82693:function(e,t){var n;/*!
2	Copyright (c) 2018 Jed Watson.
3	Licensed under the MIT License (MIT), see
4	http://jedwatson.github.io/classnames
5*/!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];n&&(e=o(e,function(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return i.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)r.call(e,n)&&e[n]&&(t=o(t,n));return t}(n)))}return e}function o(e,t){return t?e?e+" "+t:e+t:e}e.exports?(i.default=i,e.exports=i):void 0!==(n=(function(){return i}).apply(t,[]))&&(e.exports=n)}()},76242:function(e,t,n){"use strict";n(49999);var r=n(93639);e.exports=r("Array","at")},23394:function(e,t,n){"use strict";n(40527),n(75153);var r=n(93639);e.exports=r("Array","flatMap")},51537:function(e,t,n){"use strict";n(87521),n(90724);var r=n(93639);e.exports=r("Array","flat")},6063:function(e,t,n){"use strict";n(48539);var r=n(93639);e.exports=r("String","at")},59639:function(e,t,n){"use strict";n(52316),n(96618),n(82424);var r=n(93639);e.exports=r("String","replaceAll")},40114:function(e,t,n){"use strict";var r=n(77360),i=n(3412),o=TypeError;e.exports=function(e){if(r(e))return e;throw new o(i(e)+" is not a function")}},95048:function(e,t,n){"use strict";var r=n(36447),i=n(17413),o=n(83420).f,s=r("unscopables"),a=Array.prototype;void 0===a[s]&&o(a,s,{configurable:!0,value:i(null)}),e.exports=function(e){a[s][e]=!0}},37934:function(e,t,n){"use strict";var r=n(11287).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},17260:function(e,t,n){"use strict";var r=n(2322),i=String,o=TypeError;e.exports=function(e){if(r(e))return e;throw new o(i(e)+" is not an object")}},96934:function(e,t,n){"use strict";var r=n(6900),i=n(85709),o=n(29473),s=function(e){return function(t,n,s){var a,l=r(t),c=o(l),d=i(s,c);if(e&&n!=n){for(;c>d;)if((a=l[d++])!=a)return!0}else for(;c>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}},53368:function(e,t,n){"use strict";var r=n(42270),i=n(71629),o=n(2322),s=n(36447)("species"),a=Array;e.exports=function(e){var t;return r(e)&&(i(t=e.constructor)&&(t===a||r(t.prototype))?t=void 0:o(t)&&null===(t=t[s])&&(t=void 0)),void 0===t?a:t}},22945:function(e,t,n){"use strict";var r=n(53368);e.exports=function(e,t){return new(r(e))(0===t?0:t)}},65059:function(e,t,n){"use strict";var r=n(90017),i=r({}.toString),o=r("".slice);e.exports=function(e){return o(i(e),8,-1)}},62900:function(e,t,n){"use strict";var r=n(1420),i=n(77360),o=n(65059),s=n(36447)("toStringTag"),a=Object,l="Arguments"===o(function(){return arguments}()),c=function(e,t){try{return e[t]}catch(e){}};e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=c(t=a(e),s))?n:l?o(t):"Object"===(r=o(t))&&i(t.callee)?"Arguments":r}},12078:function(e,t,n){"use strict";var r=n(69348),i=n(95975),o=n(84946),s=n(83420);e.exports=function(e,t,n){for(var a=i(t),l=s.f,c=o.f,d=0;d<a.length;d++){var u=a[d];r(e,u)||n&&r(n,u)||l(e,u,c(t,u))}}},27316:function(e,t,n){"use strict";var r=n(15369),i=n(83420),o=n(84630);e.exports=r?function(e,t,n){return i.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},84630:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},30305:function(e,t,n){"use strict";var r=n(77360),i=n(83420),o=n(75412),s=n(85023);e.exports=function(e,t,n,a){a||(a={});var l=a.enumerable,c=void 0!==a.name?a.name:t;if(r(n)&&o(n,c,a),a.global)l?e[t]=n:s(t,n);else{try{a.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}
5l?e[t]=n:i.f(e,t,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return e}},85023:function(e,t,n){"use strict";var r=n(23131),i=Object.defineProperty;e.exports=function(e,t){try{i(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},15369:function(e,t,n){"use strict";var r=n(27140);e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},42417:function(e,t,n){"use strict";var r=n(23131),i=n(2322),o=r.document,s=i(o)&&i(o.createElement);e.exports=function(e){return s?o.createElement(e):{}}},61085:function(e){"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},3073:function(e){"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},99991:function(e,t,n){"use strict";var r,i,o=n(23131),s=n(3073),a=o.process,l=o.Deno,c=a&&a.versions||l&&l.version,d=c&&c.v8;d&&(i=(r=d.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(i=+r[1]),e.exports=i},93639:function(e,t,n){"use strict";var r=n(23131),i=n(90017);e.exports=function(e,t){return i(r[e].prototype[t])}},71871:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},74928:function(e,t,n){"use strict";var r=n(23131),i=n(84946).f,o=n(27316),s=n(30305),a=n(85023),l=n(12078),c=n(70196);e.exports=function(e,t){var n,d,u,h,p,f=e.target,g=e.global,m=e.stat;if(n=g?r:m?r[f]||a(f,{}):r[f]&&r[f].prototype)for(d in t){if(h=t[d],u=e.dontCallGetSet?(p=i(n,d))&&p.value:n[d],!c(g?d:f+(m?".":"#")+d,e.forced)&&void 0!==u){if(typeof h==typeof u)continue;l(h,u)}(e.sham||u&&u.sham)&&o(h,"sham",!0),s(n,d,h,e)}}},27140:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},70515:function(e,t,n){"use strict";n(52316);var r=n(91188),i=n(30305),o=n(48549),s=n(27140),a=n(36447),l=n(27316),c=a("species"),d=RegExp.prototype;e.exports=function(e,t,n,u){var h=a(e),p=!s(function(){var t={};return t[h]=function(){return 7},7!==""[e](t)}),f=p&&!s(function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return t=!0,null},n[h](""),!t});if(!p||!f||n){var g=/./[h],m=t(h,""[e],function(e,t,n,i,s){var a=t.exec;return a===o||a===d.exec?p&&!s?{done:!0,value:r(g,t,n,i)}:{done:!0,value:r(e,n,t,i)}:{done:!1}});i(String.prototype,e,m[0]),i(d,h,m[1])}u&&l(d[h],"sham",!0)}},23481:function(e,t,n){"use strict";var r=n(42270),i=n(29473),o=n(61085),s=n(81843),a=function(e,t,n,l,c,d,u,h){for(var p,f,g=c,m=0,y=!!u&&s(u,h);m<l;)m in n&&(p=y?y(n[m],m,t):n[m],d>0&&r(p)?(f=i(p),g=a(e,t,p,f,g,d-1)-1):(o(g+1),e[g]=p),g++),m++;return g};e.exports=a},6168:function(e,t,n){"use strict";var r=n(88606),i=Function.prototype,o=i.apply,s=i.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(o):function(){return s.apply(o,arguments)})},81843:function(e,t,n){"use strict";var r=n(97852),i=n(40114),o=n(88606),s=r(r.bind);e.exports=function(e,t){return i(e),void 0===t?e:o?s(e,t):function(){return e.apply(t,arguments)}}},88606:function(e,t,n){"use strict";var r=n(27140);e.exports=!r(function(){var e=(function(){}).bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},91188:function(e,t,n){"use strict";var r=n(88606),i=Function.prototype.call;e.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},31015:function(e,t,n){"use strict";var r=n(15369),i=n(69348),o=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,a=i(o,"name"),l=a&&(!r||r&&s(o,"name").configurable);e.exports={EXISTS:a,PROPER:a&&"something"===(function(){}).name,CONFIGURABLE:l}},97852:function(e,t,n){"use strict";var r=n(65059),i=n(90017);e.exports=function(e){if("Function"===r(e))return i(e)}},90017:function(e,t,n){"use strict";var r=n(88606),i=Function.prototype,o=i.call,s=r&&i.bind.bind(o,o);e.exports=r?s:function(e){return function(){return o.apply(e,arguments)}}},65176:function(e,t,n){"use strict";var r=n(23131),i=n(77360);e.exports=function(e,t){var n;return arguments.length<2?i(n=r[e])?n:void 0:r[e]&&r[e][t]}},48767:function(e,t,n){"use strict";var r=n(40114),i=n(63548);e.exports=function(e,t){var n=e[t];return i(n)?void 0:r(n)}},81430:function(e,t,n){"use strict";var r=n(90017),i=n(79647),o=Math.floor,s=r("".charAt),a=r("".replace),l=r("".slice),c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,d=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,u,h){var p=n+e.length,f=r.length,g=d;return void 0!==u&&(u=i(u),g=c),a(h,g,function(i,a){var c;switch(s(a,0)){case"$":return"$";case"&":return e;case"`":return l(t,0,n);case"'":return l(t,p);case"<":c=u[l(a,1,-1)];break;default:var d=+a;if(0===d)return i;if(d>f){var h=o(d/10);if(0===h)return i;if(h<=f)return void 0===r[h-1]?s(a,1):r[h-1]+s(a,1);return i}c=r[d-1]}return void 0===c?"":c})}},23131:function(e,t,n){"use strict";var r=function(e){return e&&e.Math===Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()},69348:function(e,t,n){"use strict";var r=n(90017),i=n(79647),o=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return o(i(e),t)}},11314:function(e){"use strict";e.exports={}},57195:function(e,t,n){"use strict";var r=n(65176);e.exports=r("document","documentElement")},95286:function(e,t,n){"use strict";var r=n(15369),i=n(27140),o=n(42417);e.exports=!r&&!i(function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},19254:function(e,t,n){"use strict";var r=n(90017),i=n(27140),o=n(65059),s=Object,a=r("".split);e.exports=i(function(){return!s("z").propertyIsEnumerable(0)})?function(e){return"String"===o(e)?a(e,""):s(e)}:s},98387:function(e,t,n){"use strict";var r=n(90017),i=n(77360),o=n(64547),s=r(Function.toString);i(o.inspectSource)||(o.inspectSource=function(e){return s(e)}),e.exports=o.inspectSource},6091:function(e,t,n){"use strict";var r,i,o,s=n(31186),a=n(23131),l=n(2322),c=n(27316),d=n(69348),u=n(64547),h=n(54241),p=n(11314),f="Object already initialized",g
vendor: 4,894 bytes, line 5
5=a.TypeError,m=a.WeakMap;if(s||u.state){var y=u.state||(u.state=new m);y.get=y.get,y.has=y.has,y.set=y.set,r=function(e,t){if(y.has(e))throw new g(f);return t.facade=e,y.set(e,t),t},i=function(e){return y.get(e)||{}},o=function(e){return y.has(e)}}else{var b=h("state");p[b]=!0,r=function(e,t){if(d(e,b))throw new g(f);return t.facade=e,c(e,b,t),t},i=function(e){return d(e,b)?e[b]:{}},o=function(e){return d(e,b)}}e.exports={set:r,get:i,has:o,enforce:function(e){return o(e)?i(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=i(t)).type!==e)throw new g("Incompatible receiver, "+e+" required");return n}}}},42270:function(e,t,n){"use strict";var r=n(65059);e.exports=Array.isArray||function(e){return"Array"===r(e)}},77360:function(e){"use strict";var t="object"==typeof document&&document.all;e.exports=void 0===t&&void 0!==t?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},71629:function(e,t,n){"use strict";var r=n(90017),i=n(27140),o=n(77360),s=n(62900),a=n(65176),l=n(98387),c=function(){},d=a("Reflect","construct"),u=/^\s*(?:class|function)\b/,h=r(u.exec),p=!u.test(c),f=function(e){if(!o(e))return!1;try{return d(c,[],e),!0}catch(e){return!1}},g=function(e){if(!o(e))return!1;switch(s(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!h(u,l(e))}catch(e){return!0}};g.sham=!0,e.exports=!d||i(function(){var e;return f(f.call)||!f(Object)||!f(function(){e=!0})||e})?g:f},70196:function(e,t,n){"use strict";var r=n(27140),i=n(77360),o=/#|\.prototype\./,s=function(e,t){var n=l[a(e)];return n===d||n!==c&&(i(t)?r(t):!!t)},a=s.normalize=function(e){return String(e).replace(o,".").toLowerCase()},l=s.data={},c=s.NATIVE="N",d=s.POLYFILL="P";e.exports=s},63548:function(e){"use strict";e.exports=function(e){return null==e}},2322:function(e,t,n){"use strict";var r=n(77360);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},95606:function(e){"use strict";e.exports=!1},33660:function(e,t,n){"use strict";var r=n(2322),i=n(65059),o=n(36447)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"===i(e))}},19335:function(e,t,n){"use strict";var r=n(65176),i=n(77360),o=n(60324),s=n(71618),a=Object;e.exports=s?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return i(t)&&o(t.prototype,a(e))}},29473:function(e,t,n){"use strict";var r=n(14014);e.exports=function(e){return r(e.length)}},75412:function(e,t,n){"use strict";var r=n(90017),i=n(27140),o=n(77360),s=n(69348),a=n(15369),l=n(31015).CONFIGURABLE,c=n(98387),d=n(6091),u=d.enforce,h=d.get,p=String,f=Object.defineProperty,g=r("".slice),m=r("".replace),y=r([].join),b=a&&!i(function(){return 8!==f(function(){},"length",{value:8}).length}),x=String(String).split("String"),w=e.exports=function(e,t,n){"Symbol("===g(p(t),0,7)&&(t="["+m(p(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!s(e,"name")||l&&e.name!==t)&&(a?f(e,"name",{value:t,configurable:!0}):e.name=t),b&&n&&s(n,"arity")&&e.length!==n.arity&&f(e,"length",{value:n.arity});try{n&&s(n,"constructor")&&n.constructor?a&&f(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=u(e);return s(r,"source")||(r.source=y(x,"string"==typeof t?t:"")),e};Function.prototype.toString=w(function(){return o(this)&&h(this).source||c(this)},"toString")},44845:function(e){"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},17413:function(e,t,n){"use strict";var r,i=n(17260),o=n(90365),s=n(71871),a=n(11314),l=n(57195),c=n(42417),d=n(54241),u="prototype",h="script",p=d("IE_PROTO"),f=function(){},g=function(e){return"<"+h+">"+e+"</"+h+">"},m=function(e){e.write(g("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){var e,t=c("iframe");return t.style.display="none",l.appendChild(t),t.src=String("java"+h+":"),(e=t.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F},b=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}b="undefined"!=typeof document?document.domain&&r?m(r):y():m(r);for(var e=s.length;e--;)delete b[u][s[e]];return b()};a[p]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(f[u]=i(e),n=new f,f[u]=null,n[p]=e):n=b(),void 0===t?n:o.f(n,t)}},90365:function(e,t,n){"use strict";var r=n(15369),i=n(92576),o=n(83420),s=n(17260),a=n(6900),l=n(7224);t.f=r&&!i?Object.defineProperties:function(e,t){s(e);for(var n,r=a(t),i=l(t),c=i.length,d=0;c>d;)o.f(e,n=i[d++],r[n]);return e}},83420:function(e,t,n){"use strict";var r=n(15369),i=n(95286),o=n(92576),s=n(17260),a=n(73495),l=TypeError,c=Object.defineProperty,d=Object.getOwnPropertyDescriptor,u="enumerable",h="configurable",p="writable";t.f=r?o?function(e,t,n){if(s(e),t=a(t),s(n),"function"==typeof e&&"prototype"===t&&"value"in n&&p in n&&!n[p]){var r=d(e,t);
5r&&r[p]&&(e[t]=n.value,n={configurable:h in n?n[h]:r[h],enumerable:u in n?n[u]:r[u],writable:!1})}return c(e,t,n)}:c:function(e,t,n){if(s(e),t=a(t),s(n),i)try{return c(e,t,n)}catch(e){}if("get"in n||"set"in n)throw new l("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},84946:function(e,t,n){"use strict";var r=n(15369),i=n(91188),o=n(82773),s=n(84630),a=n(6900),l=n(73495),c=n(69348),d=n(95286),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=a(e),t=l(t),d)try{return u(e,t)}catch(e){}if(c(e,t))return s(!i(o.f,e,t),e[t])}},3017:function(e,t,n){"use strict";var r=n(54588),i=n(71871).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},1816:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},60324:function(e,t,n){"use strict";var r=n(90017);e.exports=r({}.isPrototypeOf)},54588:function(e,t,n){"use strict";var r=n(90017),i=n(69348),o=n(6900),s=n(96934).indexOf,a=n(11314),l=r([].push);e.exports=function(e,t){var n,r=o(e),c=0,d=[];for(n in r)!i(a,n)&&i(r,n)&&l(d,n);for(;t.length>c;)i(r,n=t[c++])&&(~s(d,n)||l(d,n));return d}},7224:function(e,t,n){"use strict";var r=n(54588),i=n(71871);e.exports=Object.keys||function(e){return r(e,i)}},82773:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},11996:function(e,t,n){"use strict";var r=n(91188),i=n(77360),o=n(2322),s=TypeError;e.exports=function(e,t){var n,a;if("string"===t&&i(n=e.toString)&&!o(a=r(n,e))||i(n=e.valueOf)&&!o(a=r(n,e))||"string"!==t&&i(n=e.toString)&&!o(a=r(n,e)))return a;throw new s("Can't convert object to primitive value")}},95975:function(e,t,n){"use strict";var r=n(65176),i=n(90017),o=n(3017),s=n(1816),a=n(17260),l=i([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=o.f(a(e)),n=s.f;return n?l(t,n(e)):t}},48619:function(e,t,n){"use strict";var r=n(91188),i=n(17260),o=n(77360),s=n(65059),a=n(48549),l=TypeError;e.exports=function(e,t){var n=e.exec;if(o(n)){var c=r(n,e,t);return null!==c&&i(c),c}if("RegExp"===s(e))return r(a,e,t);throw new l("RegExp#exec called on incompatible receiver")}},48549:function(e,t,n){"use strict";var r,i,o=n(91188),s=n(90017),a=n(18506),l=n(85967),c=n(30150),d=n(34733),u=n(17413),h=n(6091).get,p=n(31051),f=n(62008),g=d("native-string-replace",String.prototype.replace),m=RegExp.prototype.exec,y=m,b=s("".charAt),x=s("".indexOf),w=s("".replace),v=s("".slice),S=(i=/b*/g,o(m,r=/a/,"a"),o(m,i,"a"),0!==r.lastIndex||0!==i.lastIndex),k=c.BROKEN_CARET,j=void 0!==/()??/.exec("")[1];(S||j||k||p||f)&&(y=function(e){var t,n,r,i,s,c,d,p=h(this),f=a(e),_=p.raw;if(_)return _.lastIndex=this.lastIndex,t=o(y,_,f),this.lastIndex=_.lastIndex,t;var E=p.groups,C=k&&this.sticky,P=o(l,this),I=this.source,T=0,M=f;if(C&&(-1===x(P=w(P,"y",""),"g")&&(P+="g"),M=v(f,this.lastIndex),this.lastIndex>0&&(!this.multiline||this.multiline&&"\n"!==b(f,this.lastIndex-1))&&(I="(?: "+I+")",M=" "+M,T++),n=RegExp("^(?:"+I+")",P)),j&&(n=RegExp("^"+I+"$(?!\\s)",P)),S&&(r=this.lastIndex),i=o(m,C?n:this,M),C?i?(i.input=v(i.input,T),i[0]=v(i[0],T),i.index=this.lastIndex,this.lastIndex+=i[0].length):this.lastIndex=0:S&&i&&(this.lastIndex=this.global?i.index+i[0].length:r),j&&i&&i.length>
51&&o(g,i[0],n,function(){for(s=1;s<arguments.length-2;s++)void 0===arguments[s]&&(i[s]=void 0)}),i&&E)for(s=0,i.groups=c=u(null);s<E.length;s++)c[(d=E[s])[0]]=i[d[1]];return i}),e.exports=y},85967:function(e,t,n){"use strict";var r=n(17260);e.exports=function(){var e=r(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}},47913:function(e,t,n){"use strict";var r=n(91188),i=n(69348),o=n(60324),s=n(85967),a=RegExp.prototype;e.exports=function(e){var t=e.flags;return!(void 0===t&&!("flags"in a)&&!i(e,"flags")&&o(a,e))?t:r(s,e)}},30150:function(e,t,n){"use strict";var r=n(27140),i=n(23131).RegExp,o=r(function(){var e=i("a","y");return e.lastIndex=2,null!==e.exec("abcd")}),s=o||r(function(){return!i("a","y").sticky}),a=o||r(function(){var e=i("^r","gy");return e.lastIndex=2,null!==e.exec("str")});e.exports={BROKEN_CARET:a,MISSED_STICKY:s,UNSUPPORTED_Y:o}},31051:function(e,t,n){"use strict";var r=n(27140),i=n(23131).RegExp;e.exports=r(function(){var e=i(".","s");return!(e.dotAll&&e.test("\n")&&"s"===e.flags)})},62008:function(e,t,n){"use strict";var r=n(27140),i=n(23131).RegExp;e.exports=r(function(){var e=i("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})},14932:function(e,t,n){"use strict";var r=n(63548),i=TypeError;e.exports=function(e){if(r(e))throw new i("Can't call method on "+e);return e}},54241:function(e,t,n){"use strict";var r=n(34733),i=n(24021),o=r("keys");e.exports=function(e){return o[e]||(o[e]=i(e))}},64547:function(e,t,n){"use strict";var r=n(23131),i=n(85023),o="__core-js_shared__",s=r[o]||i(o,{});e.exports=s},34733:function(e,t,n){"use strict";var r=n(95606),i=n(64547);(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.35.1",mode:r?"pure":"global",copyright:"\xa9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"})},11287:function(e,t,n){"use strict";var r=n(90017),i=n(59719),o=n(18506),s=n(14932),a=r("".charAt),l=r("".charCodeAt),c=r("".slice),d=function(e){return function(t,n){var r,d,u=o(s(t)),h=i(n),p=u.length;return h<0||h>=p?e?"":void 0:(r=l(u,h))<55296||r>56319||h+1===p||(d=l(u,h+1))<56320||d>57343?e?a(u,h):r:e?c(u,h,h+2):(r-55296<<10)+(d-56320)+65536}};e.exports={codeAt:d(!1),charAt:d(!0)}},15617:function(e,t,n){"use strict";var r=n(99991),i=n(27140),o=n(23131).String;e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&r&&r<41})},85709:function(e,t,n){"use strict";var r=n(59719),i=Math.max,o=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):o(n,t)}},6900:function(e,t,n){"use strict";var r=n(19254),i=n(14932);e.exports=function(e){return r(i(e))}},59719:function(e,t,n){"use strict";var r=n(44845);e.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}},14014:function(e,t,n){"use strict";var r=n(59719),i=Math.min;e.exports=function(e){var t=r(e);return t>0?i(t,9007199254740991):0}},79647:function(e,t,n){"use strict";var r=n(14932),i=Object;e.exports=function(e){return i(r(e))}},71895:function(e,t,n){"use strict";var r=n(91188),i=n(2322),o=n(19335),s=n(48767),a=n(11996),l=n(36447),c=TypeError,d=l("toPrimitive");e.exports=function(e,t){if(!i(e)||o(e))return e;var n,l=s(e,d);if(l){if(void 0===t&&(t="default"),!i(n=r(l,e,t))||o(n))return n;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},73495:function(e,t,n){"use strict";var r=n(71895),i=n(19335);e.exports=function(e){var t=r(e,"string");return i(t)?t:t+""}},1420:function(e,t,n){"use strict";var r=n(36447)("toStringTag"),i={};i[r]="z",e.exports="[object z]"===String(i)},18506:function(e,t,n){"use strict";var r=n(62900),i=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}},3412:function(e){"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},24021:function(e,t,n){"use strict";var r=n(90017),i=0,o=Math.random(),s=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+s(++i+o,36)}},71618:function(e,t,n){"use strict";var r=n(15617);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},92576:function(e,t,n){"use strict";var r=n(15369),i=n(27140);e.exports=r&&i(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},31186:function(e,t,n){"use strict";var r=n(23131),i=n(77360),o=r.WeakMap;e.exports=i(o)&&/native code/.test(String(o))},36447:function(e,t,n){"use strict";var r=n(23131),i=n(34733),o=n(69348),s=n(24021),a=n(15617),l=n(71618),c=r.Symbol,d=i("wks"),u=l?c.for||c:c&&c.withoutSetter||s;e.exports=function(e){return o(d,e)||(d[e]=a&&o(c,e)?c[e]:u("Symbol."+e)),d[e]}},49999:function(e,t,n){"use strict";var r=n(74928),i=n(79647),o=n(29473),s=n(59719),a=n(95048);r({target:"Array",proto:!0},{at:function(e){var t=i(this),n=o(t),r=s(e),a=r>=0?r:n+r;return a<0||a>=n?void 0:t[a]}}),a("at")},40527:function(e,t,n){"use strict";var r=n(74928),i=n(23481),o=n(40114),s=n(79647),a=n(29473),l=n(22945);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=s(this),r=a(n);return o(e),(t=l(n,0)).length=i(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},87521:function(e,t,n){"use strict";var r=n(74928),i=n(23481),o=n(79647),s=n(29473),a=n(59719),l=n(22945);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=o(this),n=s(t),r=l(t,0);return r.length=i(r,t,t,n,0,void 0===e?1:a(e)),r}})},75153:function(e,t,n){"use strict";n(95048)("flatMap")},90724:function(e,t,n){"use strict";n(95048)("flat")},52316:function(e,t,n){"use strict";var r=n(74928),i=n(48549);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},48539:function(e,t,n){"use strict";var r=n(74928),i=n(90017),o=n(14932),s=n(59719),a=n(18506),l=n(27140),c=i("".charAt);r({target:"String",proto:!0,forced:l(function(){return"\uD842"!=="\uD842\uDFB7".at(-2)})},{at:function(e){var t=a(o(this)),n=t.length,r=s(e),i=r>=0?r:n+r;return i<0||i>=n?void 0:c(t,i)}})},82424:function(e,t,n){"use strict";var r=n(74928),i=n(91188),o=n(90017),s=n(14932),a=n(77360),l=n(63548),c=n(33660),d=n(18506),u=n(48767),h=n(47913),p=n(81430),f=n(36447),g=n(95606),m=f("replace"),y=TypeError,b=o("".indexOf),x=o("".replace),w=o("".slice),v=Math.max;r({target:"String",proto:!0},{replaceAll:function(e,t){var n,r,o,f,S,k,j,_,E=s(this),C=0,P=0,I="";if(!l(e)){if((n=c(e))&&!~b(d(s(h(e))),"g"))throw new y("`.replaceAll` does not allow non-global regexes");if(r=u(e,m))return i(r,e,E,t);if(g&&n)return x(d(E),e,t)}for(o=d(E),f=d(e),(S=a(t))||(t=d(t)),j=v(1,k=f.length),C=b(o,f);-1!==C;)_=S?d(t(f,C,o)):p(f,o,C,[],void 0,t),I+=w(o,P,C)+_,P=C+k,C=C+j>o.length?-1:b(o,f,C+j);return P<o.length&&(I+=w(o,P)),I}})},96618:function(e,t,n){"use strict";var r=n(6168),i=n(91188),o=n(90017),s=n(70515),a=n(27140),l=n(17260),c=n(77360),d=n(63548),u=n(59719),h=n(14014),p=n(18506),f=n(14932),g=n(37934),m=n(48767),y=n(81430),b=n(48619),x=n(36447)("replace"),w=Math.max,v=Math.min,S=o([].concat),k=o([].push),j=o("".indexOf),_=o("".slice),E="$0"==="a".replace(/./,"$0"),C=!!/./[x]&&""===/./[x]("a","$0");s("replace",function(e,t,n){var o=C?"$":"$0";return[function(e,n){var r=f(this),o=d(e)?void 0:m(e,x);return o?i(o,e,r,n):i(t,p(r),e,n)},function(e,i){var s=l(this),a=p(e);if("string"==typeof i&&-1===j(i,o)&&-1===j(i,"$<")){var d=n(t,s,a,i);if(d.done)return d.value}var f=c(i);f||(i=p(i));var m=s.global;m&&(T=s.unicode,s.lastIndex=0);for(var x=[];null!==(M=b(s,a))&&(k(x,M),m);)""===p(M[0])&&(s.lastIndex=g(a,h(s.lastIndex),T));for(var E="",C=0,P=0;P<x.length;P++){for(var I,T,M,A,$=p((M=x[P])[0]),D=w(v(u(M.index),a.length),0),O=[],B=1;B<M.length;B++)k(O,void 0===(I=M[B])?I:String(I));var L=M.groups;if(f){var R=S([$],O,D,a);void 0!==L&&k(R,L),A=p(r(i,void 0,R))}else A=y($,a,D,O,L,i);D>=C&&(E+=_(a,C,D)+A,C=D+$.length)}return E+_(a,C)}]},!!a(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})||!E||C)},6213:function(e,t,n){"use strict";var r=n(76242);e.exports=r},93578:function(e,t,n){"use strict";var r=n(23394);e.exports=r},17325:function(e,t,n){"use strict";var r=n(51537);e.exports=r},38129:function(e,t,n){"use strict";var r=n(6063);e.exports=r},63766:function(e,t,n){"use strict";var r=n(59639);e.exports=r},97606:function(e,t){var n;/*!
6	Copyright (c) 2018 Jed Watson.
7	Licensed under the MIT License (MIT), see
8	http://jedwatson.github.io/classnames
9*/!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];
9n&&(e=o(e,function(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return i.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)r.call(e,n)&&e[n]&&(t=o(t,n));return t}(n)))}return e}function o(e,t){return t?e?e+" "+t:e+t:e}e.exports?(i.default=i,e.exports=i):void 0!==(n=(function(){return i}).apply(t,[]))&&(e.exports=n)}()},5109:function(e,t,n){"use strict";let r,i,o;n.d(t,{KDN:function(){return k.KD},uNM:function(){return nJ},ZJj:function(){return c.ZJ},TAC:function(){return c.TA},Ykc:function(){return c.Yk},osW:function(){return nZ},StR:function(){return nN},xuv:function(){return eL.xu},$Gp:function(){return k.$G},EEY:function(){return nQ},_e1:function(){return n2},Skg:function(){return k.Sk},R_W:function(){return c.R_},qit:function(){return c.qi},ciG:function(){return c.ci},pp9:function(){return c.pp},p64:function(){return c.p6},Y8S:function(){return c.Y8},XoM:function(){return c.Xo},yx9:function(){return tw},ST$:function(){return c.ST},HO5:function(){return c.HO},Ljl:function(){return nY.L},Lu5:function(){return c.Lu},WN4:function(){return n8.W},MLE:function(){return tH.M},rpf:function(){return n3},CsX:function(){return n$},Zuj:function(){return c.Zu},mqq:function(){return ez.m},pjK:function(){return v.pj},iFn:function(){return k.iF},wMU:function(){return k.wM},G7H:function(){return nD},a2c:function(){return c.a2},t88:function(){return c.t8},a_T:function(){return nA},Etb:function(){return k.Et},sZM:function(){return k.sZ},_3P:function(){return eN._},xeI:function(){return d.xe},PI:function(){return v.PI},yoY:function(){return v.yo},ezX:function(){return c.ez},bMZ:function(){return d.bM},wWH:function(){return n5.w},qvd:function(){return n0.q},zc7:function(){return nB.z},dvh:function(){return v.dv},gkc:function(){return nO.g},EeJ:function(){return nL.E},otj:function(){return n6.o},ihl:function(){return n4},nui:function(){return nF.n},fVw:function(){return c.fV},T:function(){return u.T},gRN:function(){return nE},B08:function(){return eT.B},_cv:function(){return n9._},R4W:function(){return d.R4},mRm:function(){return v.mR},ZmI:function(){return rt.Z},C2u:function(){return v.C2},_G0:function(){return v._G},VmQ:function(){return c.Vm},si8:function(){return c.si},hu8:function(){return d.hu},Y8W:function(){return v.Y8},h9n:function(){return c.h9},qU:function(){return c.qU},f5g:function(){return v.f5},uZ5:function(){return v.uZ},VK_:function(){return v.VK},oA$:function(){return d.oA},F17:function(){return c.F1},DsO:function(){return d.Ds},hR1:function(){return C},p$x:function(){return d.p$},Htt:function(){return v.Ht},_l9:function(){return c._l},wu8:function(){return c.wu},BF8:function(){return c.BF},gBS:function(){return c.gB},DWN:function(){return c.DW},iP4:function(){return d.iP},VHO:function(){return _},gRP:function(){return c.gR},k7F:function(){return c.k7},P3D:function(){return c.P3},eGT:function(){return c.eG},QsC:function(){return nz.Qs},LpX:function(){return tq},y6M:function(){return c.y6},jKo:function(){return d.jK},_LC:function(){return d._L},Xgj:function(){return d.Xg},eIg:function(){return d.eI},H$$:function(){return d.H$},rW9:function(){return v.rW},XDj:function(){return v.XD},YyG:function(){return O},OeO:function(){return v.Oe},oxh:function(){return rt.o},RKM:function(){return tb},WlM:function(){return tN},J14:function(){return c.J1},VWE:function(){return c.VW},y59:function(){return c.y5},FcS:function(){return c.Fc},bOj:function(){return nG.bO},h9x:function(){return nG.h9},qZQ:function(){return nG.qZ},GcE:function(){return nG.Gc},tYe:function(){return nG.tY},GT8:function(){return d.GT},r5k:function(){return c.r5},YTh:function(){return c.YT},Z$Q:function(){return d.Z$},FHS:function(){return c.FH},BGI:function(){return c.BG},FmS:function(){return d.Fm},Fa1:function(){return d.F},lGk:function(){return re},fNR:function(){return eA},C_M:function(){return c.C_},m0n:function(){return c.m0},EPv:function(){return d.EP},xwP:function(){return rr},RpK:function(){return v.Rp},Ofd:function(){return v.Of},UQR:function(){return nG.UQ},Yku:function(){return v.Yk},PFJ:function(){return M},YmS:function(){return a.Ym},XEs:function(){return $},$eB:function(){return nR},Vkp:function(){return d.Vk},I5b:function(){return A},Z7n:function(){return v.Z7},nDY:function(){return v.nD},hl1:function(){return d.hl},beA:function(){return D},v4J:function(){return d.v4},pLA:function(){return c.pL},XBb:function(){return c.XB},$ZD:function(){return v.$Z},FHy:function(){return v.FH},jas:function(){return a.j},jj$:function(){return eZ},ELf:function(){return tJ.E},vcd:function(){return a.vc},uK4:function(){return R},jE2:function(){return b.j},ofW:function(){return tR},Q1i:function(){return nV},Gv6:function(){return tZ},YzH:function(){return nK},oOK:function(){return eV},BKU:function(){return a.BK},Ie$:function(){return nW},TaN:function(){return tD},SE:function(){return tO},QLD:function(){return nS},Hm2:function(){return w},HgN:function(){return a.Hg},lY$:function(){return c.lY},p$I:function(){return c.p$}});var s,a=n(42869),l=n(37665),c=n(189),d=n(85947),u=n(4074),h=n(52322),p=n(2784),f=n(82693);let g={error:null};class m extends p.Component{static getDerivedStateFromError(e){return{error:e}}state=g;componentDidCatch(e){this.props.onError?.(e)}render(){let{error:e}=this.state;if(null!==e){let{fallback:t}=this.props;return(0,h.jsx)(t,{error:e})}return this.props.children}}function y({children:e,fallback:t,...n}){return null===t?(0,h.jsx)(h.Fragment,{children:e}):(0,h.jsx)(m,{fallback:t,...n,children:e})}var b=n(97096);function x(){return(0,h.jsx)("div",{className:"tl-background"})}function w(e,t,n,r,i,o){(0,p.useLayoutEffect)(()=>{let s=e.current;if(!s||void 0===t)return;let a=`translate(${t}px, ${n}px)`;void 0!==r&&(a+=` scale(${r})`),void 0!==i&&(a+=` rotate(${i}rad)`),o&&(a+=` translate(${o.x}px, ${o.y}px)`),s.style.transform=a})}var v=n(20930);
9let S=({brush:e,color:t,opacity:n,className:r})=>{let i=(0,p.useRef)(null);w(i,e.x,e.y);let o=(0,v.$Z)(Math.max(1,e.w)),s=(0,v.$Z)(Math.max(1,e.h));return(0,h.jsx)("svg",{className:"tl-overlays__item",ref:i,children:t?(0,h.jsxs)("g",{className:"tl-brush",opacity:n,children:[(0,h.jsx)("rect",{width:o,height:s,fill:t,opacity:.75}),(0,h.jsx)("rect",{width:o,height:s,fill:"none",stroke:t,opacity:.1})]}):(0,h.jsx)("rect",{className:`tl-brush tl-brush__default ${r}`,width:o,height:s})})};var k=n(38021),j=n(34406);let _={},E=P("pointerCaptureTrackingObject",{defaults:{all:new Map},shouldStoreForSession:!1}),C={preventDefaultLogging:P("preventDefaultLogging",{defaults:{all:!1}}),pointerCaptureTracking:P("pointerCaptureTracking",{defaults:{all:!1}}),elementRemovalLogging:P("elementRemovalLogging",{defaults:{all:!1}}),debugSvg:P("debugSvg",{defaults:{all:!1}}),showFps:P("showFps",{defaults:{all:!1}}),throwToBlob:P("throwToBlob",{defaults:{all:!1}}),resetConnectionEveryPing:P("resetConnectionEveryPing",{defaults:{all:!1}}),debugCursors:P("debugCursors",{defaults:{all:!1}}),forceSrgb:P("forceSrgbColors",{defaults:{all:!1}}),debugGeometry:P("debugGeometry",{defaults:{all:!1}}),hideShapes:P("hideShapes",{defaults:{all:!1}}),documentName:P("documentName",{defaults:{all:!1}})};if("undefined"!=typeof Element){let e=Element.prototype.removeChild;(0,a.Ym)("element removal logging",()=>{C.elementRemovalLogging.get()?Element.prototype.removeChild=function(t){return console.warn("[tldraw] removing child:",t),e.call(this,t)}:Element.prototype.removeChild=e})}function P(e,{defaults:t,shouldStoreForSession:n=!0}){return function(e){let t=function(e){let t=I(()=>j.env.TLDRAW_ENV)??I(()=>j.env.VERCEL_PUBLIC_TLDRAW_ENV)??I(()=>j.env.NEXT_PUBLIC_TLDRAW_ENV)??"production";switch(t){case"production":return e.defaults.production??e.defaults.all;case"preview":case"staging":return e.defaults.staging??e.defaults.all;default:return e.defaults.development??e.defaults.all}}(e),n=e.shouldStoreForSession?function(e){try{return JSON.parse(window?.sessionStorage.getItem(`tldraw_debug:${e}`)??"null")}catch(e){return null}}(e.name):null,r=(0,a.cn)(`debug:${e.name}`,n??t);return"undefined"!=typeof window&&(e.shouldStoreForSession&&(0,a.Ym)(`debug:${e.name}`,()=>{let n=r.get();try{n===t?window.sessionStorage.removeItem(`tldraw_debug:${e.name}`):window.sessionStorage.setItem(`tldraw_debug:${e.name}`,JSON.stringify(n))}catch{}}),Object.defineProperty(window,`tldraw${e.name.replace(/^[a-z]/,e=>e.toUpperCase())}`,{get:()=>r.get(),set(e){r.set(e)},configurable:!0})),Object.assign(r,e)}({name:e,defaults:t,shouldStoreForSession:n})}function I(e){try{return e()}catch{return null}}function T(e){if(e instanceof HTMLElement)return e;if(e.parentElement)return T(e.parentElement);throw Error("Could not find a parent element of an HTML type!")}function M(e){e.preventDefault(),C.preventDefaultLogging.get()&&console.warn("preventDefault called on event:",e)}function A(e,t){if(e.setPointerCapture(t.pointerId),C.pointerCaptureTracking.get()){let n=E.get();n.set(e,(n.get(e)??0)+1),console.warn("setPointerCapture called on element:",e,t)}}function $(e,t){if(e.hasPointerCapture(t.pointerId)&&(e.releasePointerCapture(t.pointerId),C.pointerCaptureTracking.get())){let n=E.get();1===n.get(e)?n.delete(e):n.has(e)?n.set(e,n.get(e)-1):console.warn("Release without capture"),console.warn("releasePointerCapture called on element:",e,t)}}let D=e=>e.stopPropagation();function O(e){return e.isKilled=!0,{point:{x:e.clientX,y:e.clientY,z:e.pressure},shiftKey:e.shiftKey,altKey:e.altKey,ctrlKey:e.metaKey||e.ctrlKey,pointerId:e.pointerId,button:e.button,isPen:"pen"===e.pointerType}}let B=(0,p.createContext)(null);function L({container:e,children:t}){return(0,h.jsx)(B.Provider,{value:e,children:t})}function R(){return(0,d.kP)((0,p.useContext)(B),"useContainer used outside of <Tldraw />")}let N=["input","select","button","textarea"];function z(){let{activeElement:e}=document;return!!(e&&(e.getAttribute("contenteditable")||N.indexOf(e.tagName.toLowerCase())>-1))}let F=["textarea","input"],U={toVector:(e,t)=>
9(void 0===e&&(e=t),Array.isArray(e)?e:[e,e]),add:(e,t)=>[e[0]+t[0],e[1]+t[1]],sub:(e,t)=>[e[0]-t[0],e[1]-t[1]],addTo(e,t){e[0]+=t[0],e[1]+=t[1]},subTo(e,t){e[0]-=t[0],e[1]-=t[1]}};function H(e,t,n){return 0===t||Math.abs(t)===1/0?Math.pow(e,5*n):e*t*n/(t+n*e)}function Z(e,t,n,r=.15){return 0===r?Math.max(t,Math.min(e,n)):e<t?-H(t-e,n-t,r)+t:e>n?+H(e-n,n-t,r)+n:e}function V(e,t,n){var r;return(t="symbol"==typeof(r=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"))?r:String(r))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(Object(n),!0).forEach(function(t){V(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}let Y={pointer:{start:"down",change:"move",end:"up"},mouse:{start:"down",change:"move",end:"up"},touch:{start:"start",change:"move",end:"end"},gesture:{start:"start",change:"change",end:"end"}};function G(e){return e?e[0].toUpperCase()+e.slice(1):""}let X=["enter","leave"],q=["gotpointercapture","lostpointercapture"];function J(e){return"touches"in e}function Q(e,t){try{let n=t.clientX-e.clientX,r=t.clientY-e.clientY,i=(t.clientX+e.clientX)/2,o=(t.clientY+e.clientY)/2;return{angle:-(180*Math.atan2(n,r))/Math.PI,distance:Math.hypot(n,r),origin:[i,o]}}catch(e){}return null}function ee(e,t){let[n,r]=Array.from(e.touches).filter(e=>t.includes(e.identifier));return Q(n,r)}function et(e){let{deltaX:t,deltaY:n,deltaMode:r}=e;return 1===r?(t*=40,n*=40):2===r&&(t*=800,n*=800),[t,n]}function en(e,...t){return"function"==typeof e?e(...t):e}function er(){}function ei(e,t){return Object.assign({},t,e||{})}class eo{constructor(e,t,n){this.ctrl=e,this.args=t,this.key=n,this.state||(this.state={},this.computeValues([0,0]),this.computeInitial(),this.init&&this.init(),this.reset())}get state(){return this.ctrl.state[this.key]}set state(e){this.ctrl.state[this.key]=e}get shared(){return this.ctrl.state.shared}get eventStore(){return this.ctrl.gestureEventStores[this.key]}get timeoutStore(){return this.ctrl.gestureTimeoutStores[this.key]}get config(){return this.ctrl.config[this.key]}get sharedConfig(){return this.ctrl.config.shared}get handler(){return this.ctrl.handlers[this.key]}reset(){let{state:e,shared:t,ingKey:n,args:r}=this;t[n]=e._active=e.active=e._blocked=e._force=!1,e._step=[!1,!1],e.intentional=!1,e._movement=[0,0],e._distance=[0,0],e._direction=[0,0],e._delta=[0,0],e._bounds=[[-1/0,1/0],[-1/0,1/0]],e.args=r,e.axis=void 0,e.memo=void 0,e.elapsedTime=e.timeDelta=0,e.direction=[0,0],e.distance=[0,0],e.overflow=[0,0],e._movementBound=[!1,!1],e.velocity=[0,0],e.movement=[0,0],e.delta=[0,0],e.timeStamp=0}start(e){let t=this.state,n=this.config;t._active||(this.reset(),this.computeInitial(),t._active=!0,t.target=e.target,t.currentTarget=e.currentTarget,t.lastOffset=n.from?en(n.from,t):t.offset,t.offset=t.lastOffset,t.startTime=t.timeStamp=e.timeStamp)}computeValues(e){let t=this.state;t._values=e,t.values=this.config.transform(e)}computeInitial(){let e=this.state;e._initial=e._values,e.initial=e.values}compute(e){let{state:t,config:n,shared:r}=this;t.args=this.args;let i=0;if(e&&(t.event=e,n.preventDefault&&e.cancelable&&t.event.preventDefault(),t.type=e.type,r.touches=this.ctrl.pointerIds.size||this.ctrl.touchIds.size,r.locked=!!document.pointerLockElement,Object.assign(r,function(e){let t={};if("buttons"in e&&(t.buttons=e.buttons),"shiftKey"in e){let{shiftKey:n,altKey:r,metaKey:i,ctrlKey:o}=e;
9Object.assign(t,{shiftKey:n,altKey:r,metaKey:i,ctrlKey:o})}return t}(e)),r.down=r.pressed=r.buttons%2==1||r.touches>0,i=e.timeStamp-t.timeStamp,t.timeStamp=e.timeStamp,t.elapsedTime=t.timeStamp-t.startTime),t._active){let e=t._delta.map(Math.abs);U.addTo(t._distance,e)}this.axisIntent&&this.axisIntent(e);let[o,s]=t._movement,[a,l]=n.threshold,{_step:c,values:d}=t;if(n.hasCustomTransform?(!1===c[0]&&(c[0]=Math.abs(o)>=a&&d[0]),!1===c[1]&&(c[1]=Math.abs(s)>=l&&d[1])):(!1===c[0]&&(c[0]=Math.abs(o)>=a&&Math.sign(o)*a),!1===c[1]&&(c[1]=Math.abs(s)>=l&&Math.sign(s)*l)),t.intentional=!1!==c[0]||!1!==c[1],!t.intentional)return;let u=[0,0];if(n.hasCustomTransform){let[e,t]=d;u[0]=!1!==c[0]?e-c[0]:0,u[1]=!1!==c[1]?t-c[1]:0}else u[0]=!1!==c[0]?o-c[0]:0,u[1]=!1!==c[1]?s-c[1]:0;this.restrictToAxis&&!t._blocked&&this.restrictToAxis(u);let h=t.offset,p=t._active&&!t._blocked||t.active;p&&(t.first=t._active&&!t.active,t.last=!t._active&&t.active,t.active=r[this.ingKey]=t._active,e&&(t.first&&("bounds"in n&&(t._bounds=en(n.bounds,t)),this.setup&&this.setup()),t.movement=u,this.computeOffset()));let[f,g]=t.offset,[[m,y],[b,x]]=t._bounds;t.overflow=[f<m?-1:f>y?1:0,g<b?-1:g>x?1:0],t._movementBound[0]=!!t.overflow[0]&&(!1===t._movementBound[0]?t._movement[0]:t._movementBound[0]),t._movementBound[1]=!!t.overflow[1]&&(!1===t._movementBound[1]?t._movement[1]:t._movementBound[1]);let w=t._active&&n.rubberband||[0,0];if(t.offset=function(e,[t,n],[r,i]){let[[o,s],[a,l]]=e;return[Z(t,o,s,r),Z(n,a,l,i)]}(t._bounds,t.offset,w),t.delta=U.sub(t.offset,h),this.computeMovement(),p&&(!t.last||i>32)){t.delta=U.sub(t.offset,h);let e=t.delta.map(Math.abs);U.addTo(t.distance,e),t.direction=t.delta.map(Math.sign),t._direction=t._delta.map(Math.sign),!t.first&&i>0&&(t.velocity=[e[0]/i,e[1]/i],t.timeDelta=i)}}emit(){let e=this.state,t=this.shared,n=this.config;if(e._active||this.clean(),(e._blocked||!e.intentional)&&!e._force&&!n.triggerAllEvents)return;let r=this.handler(W(W(W({},t),e),{},{[this.aliasKey]:e.values}));void 0!==r&&(e.memo=r)}clean(){this.eventStore.clean(),this.timeoutStore.clean()}}class es extends eo{constructor(...e){super(...e),V(this,"aliasKey","xy")}reset(){super.reset(),this.state.axis=void 0}init(){this.state.offset=[0,0],this.state.lastOffset=[0,0]}computeOffset(){this.state.offset=U.add(this.state.lastOffset,this.state.movement)}computeMovement(){this.state.movement=U.sub(this.state.offset,this.state.lastOffset)}axisIntent(e){let t=this.state,n=this.config;if(!t.axis&&e){let r="object"==typeof n.axisThreshold?n.axisThreshold[J(e)?"touch":"pointerType"in e?e.pointerType:"mouse"]:n.axisThreshold;t.axis=function([e,t],n){let r=Math.abs(e),i=Math.abs(t);return r>i&&r>n?"x":i>r&&i>n?"y":void 0}(t._movement,r)}t._blocked=(n.lockDirection||!!n.axis)&&!t.axis||!!n.axis&&n.axis!==t.axis}restrictToAxis(e){if(this.config.axis||this.config.lockDirection)switch(this.state.axis){case"x":e[1]=0;break;case"y":e[0]=0}}}let ea=e=>e,el={enabled:(e=!0)=>e,eventOptions:(e,t,n)=>W(W({},n.shared.eventOptions),e),preventDefault:(e=!1)=>e,triggerAllEvents:(e=!1)=>e,rubberband(e=0){switch(e){case!0:return[.15,.15];case!1:return[0,0];default:return U.toVector(e)}},from:e=>"function"==typeof e?e:null!=e?U.toVector(e):void 0,transform(e,t,n){let r=e||n.shared.transform;return this.hasCustomTransform=!!r,r||ea},threshold:e=>U.toVector(e,0)},ec=0,ed=W(W({},el),{},{axis(e,t,{axis:n}){if(this.lockDirection="lock"===n,!this.lockDirection)return n},axisThreshold:(e=ec)=>e,bounds(e={}){if("function"==typeof e)return t=>ed.bounds(e(t));if("current"in e)return()=>e.current;if("function"==typeof HTMLElement&&e instanceof HTMLElement)return e;let{left:t=-1/0,right:n=1/0,top:r=-1/0,bottom:i=1/0}=e;return[[t,n],[r,i]]}}),eu="undefined"!=typeof window&&window.document&&window.document.createElement;function eh(){return eu&&"ontouchstart"in window}let ep={isBrowser:eu,gesture:function(){try{return"constructor"in GestureEvent}catch(e){return!1}}(),touch:eh(),touchscreen:eh()||eu&&window.navigator.maxTouchPoints>1,pointer:eu&&"onpointerdown"in window,pointerLock:eu&&"exitPointerLock"in window.document},ef=10,eg={mouse:0,touch:0,pen:8};function em(e){let[t,n]=e.overflow,[r,i]=e._delta,[o,s]=e._direction;(t<0&&r>0&&o<0||t>0&&r<0&&o>0)&&(e._movement[0]=e._movementBound[0]),(n<0&&i>0&&s<0||n>0&&i<0&&s>0)&&(e._movement[1]=e._movementBound[1])}W(W({},ed),{},{device(e,t,{pointer:{touch:n=!1,lock:r=!1,mouse:i=!1}={}}){return(this.pointerLock=r&&ep.pointerLock,ep.touch&&n)?"touch":this.pointerLock?"mouse":ep.pointer&&!i?"pointer":ep.touch?"touch":"mouse"},preventScrollAxis(e,t,{preventScroll:n}){if(this.preventScrollDelay="number"==typeof n?n:n||void 0===n&&e?250:void 0,ep.touchscreen&&!1!==n)return e||(void 0!==n?"y":void 0)},pointerCapture(e,t,{pointer:{capture:n=!0,buttons:r=1,keys:i=!0}={}}){return this.pointerButtons=r,this.keys=i,!this.pointerLock&&"pointer"===this.device&&n},threshold(e,t,{filterTaps:n=!1,tapsThreshold:r=3,axis:i}){let o=U.toVector(e,n?r:i?1:0);return this.filterTaps=n,this.tapsThreshold=r,o},swipe({velocity:e=.5,distance:t=50,duration:n=250}={}){return{velocity:this.transform(U.toVector(e)),distance:this.transform(U.toVector(t)),duration:n}},delay(e=0){switch(e){case!0:return 180;case!1:return 0;default:return e}},axisThreshold:e=>e?W(W({},eg),e):eg,keyboardDisplacement:(e=ef)=>e});let ey=W(W({},el),{},{device(e,t,{shared:n,pointer:{touch:r=!1}={}}){if(n.target&&!ep.touch&&ep.gesture)return"gesture";if(ep.touch&&r)return"touch";if(ep.touchscreen){if(ep.pointer)return"pointer";if(ep.touch)return"touch"}},bounds(e,t,{scaleBounds:n={},angleBounds:r={}}){let i=e=>
9{let t=ei(en(n,e),{min:-1/0,max:1/0});return[t.min,t.max]},o=e=>{let t=ei(en(r,e),{min:-1/0,max:1/0});return[t.min,t.max]};return"function"!=typeof n&&"function"!=typeof r?[i(),o()]:e=>[i(e),o(e)]},threshold(e,t,n){this.lockDirection="lock"===n.axis;let r=U.toVector(e,this.lockDirection?[.1,3]:0);return r},modifierKey:e=>void 0===e?"ctrlKey":e,pinchOnWheel:(e=!0)=>e});W(W({},ed),{},{mouseOnly:(e=!0)=>e}),W(W({},ed),{},{mouseOnly:(e=!0)=>e});let eb=new Map,ex=new Map,ew={target(e){if(e)return()=>"current"in e?e.current:e},enabled:(e=!0)=>e,window:(e=ep.isBrowser?window:void 0)=>e,eventOptions:({passive:e=!0,capture:t=!1}={})=>({passive:e,capture:t}),transform:e=>e},ev=["target","eventOptions","window","enabled","transform"];function eS(e={},t){let n={};for(let[r,i]of Object.entries(t))switch(typeof i){case"function":n[r]=i.call(n,e[r],r,e);break;case"object":n[r]=eS(e[r],i);break;case"boolean":i&&(n[r]=e[r])}return n}class ek{constructor(e,t){V(this,"_listeners",new Set),this._ctrl=e,this._gestureKey=t}add(e,t,n,r,i){let o=this._listeners,s=function(e,t=""){let n=Y[e],r=n&&n[t]||t;return e+r}(t,n),a=this._gestureKey?this._ctrl.config[this._gestureKey].eventOptions:{},l=W(W({},a),i);e.addEventListener(s,r,l);let c=()=>{e.removeEventListener(s,r,l),o.delete(c)};return o.add(c),c}clean(){this._listeners.forEach(e=>e()),this._listeners.clear()}}class ej{constructor(){V(this,"_timeouts",new Map)}add(e,t,n=140,...r){this.remove(e),this._timeouts.set(e,window.setTimeout(t,n,...r))}remove(e){let t=this._timeouts.get(e);t&&window.clearTimeout(t)}clean(){this._timeouts.forEach(e=>void window.clearTimeout(e)),this._timeouts.clear()}}class e_{constructor(e){V(this,"gestures",new Set),V(this,"_targetEventStore",new ek(this)),V(this,"gestureEventStores",{}),V(this,"gestureTimeoutStores",{}),V(this,"handlers",{}),V(this,"config",{}),V(this,"pointerIds",new Set),V(this,"touchIds",new Set),V(this,"state",{shared:{shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1}}),e.drag&&eE(this,"drag"),e.wheel&&eE(this,"wheel"),e.scroll&&eE(this,"scroll"),e.move&&eE(this,"move"),e.pinch&&eE(this,"pinch"),e.hover&&eE(this,"hover")}setEventIds(e){return J(e)?(this.touchIds=new Set(Array.from(e.touches).filter(t=>{var n,r;return t.target===e.currentTarget||(null===(n=e.currentTarget)||void 0===n||null===(r=n.contains)||void 0===r?void 0:r.call(n,t.target))}).map(e=>e.identifier)),this.touchIds):"pointerId"in e?("pointerup"===e.type||"pointercancel"===e.type?this.pointerIds.delete(e.pointerId):"pointerdown"===e.type&&this.pointerIds.add(e.pointerId),this.pointerIds):void 0}applyHandlers(e,t){this.handlers=e,this.nativeHandlers=t}applyConfig(e,t){this.config=function(e,t,n={}){let{target:r,eventOptions:i,window:o,enabled:s,transform:a}=e,l=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}(e,ev);if(n.shared=eS({target:r,eventOptions:i,window:o,enabled:s,transform:a},ew),t){let e=ex.get(t);n[t]=eS(W({shared:n.shared},l),e)}else for(let e in l){let t=ex.get(e);t&&(n[e]=eS(W({shared:n.shared},l[e]),t))}return n}(e,t,this.config)}clean(){for(let e of(this._targetEventStore.clean(),this.gestures))this.gestureEventStores[e].clean(),this.gestureTimeoutStores[e].clean()}effect(){return this.config.shared.target&&this.bind(),()=>this._targetEventStore.clean()}bind(...e){let t;let n=this.config.shared,r={};if(!n.target||(t=n.target())){if(n.enabled){for(let n of this.gestures){let i=this.config[n],o=eC(r,i.eventOptions,!!t);if(i.enabled){let t=eb.get(n);new t(this,e,n).bind(o)}}let i=eC(r,n.eventOptions,!!t);for(let t in this.nativeHandlers)i(t,"",n=>this.nativeHandlers[t](W(W({},this.state.shared),{},{event:n,args:e})),void 0,!0)}for(let e in r)r[e]=function(...e){return 0===e.length?er:1===e.length?e[0]:function(){let t;for(let n of e)t=n.apply(this,arguments)||t;return t}}(...r[e]);if(!t)return r;for(let e in r){let{device:n,capture:i,passive:o}=function(e){let t=e.substring(2).toLowerCase(),n=!!~t.indexOf("passive");n&&(t=t.replace("passive",""));let r=q.includes(t)?"capturecapture":"capture",i=!!~t.indexOf(r);return i&&(t=t.replace("capture","")),{device:t,capture:i,passive:n}}(e);this._targetEventStore.add(t,n,"",r[e],{capture:i,passive:o})}}}}function eE(e,t){e.gestures.add(t),e.gestureEventStores[t]=new ek(e,t),e.gestureTimeoutStores[t]=new ej}let eC=(e,t,n)=>(r,i,o,s={},a=!1)=>{var l,c;let d=null!==(l=s.capture)&&void 0!==l?l:t.capture,u=null!==(c=s.passive)&&void 0!==c?c:t.passive,h=a?r:function(e,t="",n=!1){let r=Y[e],i=r&&r[t]||t;return"on"+G(e)+G(i)+(!function(e=!1,t){return e&&!X.includes(t)}(n,i)?"":"Capture")}(r,i,d);n&&u&&(h+="Passive"),e[h]=e[h]||[],e[h].push(o)},eP=/^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;function eI(e,t,n,r,i,o){if(!e.has(n)||!eb.has(r))return;let s=n+"Start",a=n+"End";i[r]=e=>{let r;return e.first&&s in t&&t[s](e),n in t&&(r=t[n](e)),e.last&&a in t&&t[a](e),r},o[r]=o[r]||{}}var eT=n(80489);let eM=/Mac|iPod|iPhone|iPad/.test("undefined"==typeof window?"node":window.navigator.platform);function eA(e){let{deltaY:t,deltaX:n}=e,r=0;if(e.ctrlKey||e.altKey||e.metaKey){let n=Math.sign(e.deltaY),i=Math.abs(e.deltaY),o=t;i>10&&(o=10*n),r=o/100}else e.shiftKey&&!eM&&(n=t,t=0);return{x:-n,y:-t,z:-r}}let e$=([{key:"wheel",engine:class extends es{constructor(...e){super(...e),V(this,"ingKey","wheeling")}wheel(e){this.state._active||this.start(e),this.wheelChange(e),this.timeoutStore.add("wheelEnd",this.wheelEnd.bind(this))}wheelChange(e){let t=this.state;t._delta=et(e),U.addTo(t._movement,t._delta),em(t),this.compute(e),this.emit
9()}wheelEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){e("wheel","",this.wheel.bind(this))}},resolver:ed},{key:"pinch",engine:class extends eo{constructor(...e){super(...e),V(this,"ingKey","pinching"),V(this,"aliasKey","da")}init(){this.state.offset=[1,0],this.state.lastOffset=[1,0],this.state._pointerEvents=new Map}reset(){super.reset();let e=this.state;e._touchIds=[],e.canceled=!1,e.cancel=this.cancel.bind(this),e.turns=0}computeOffset(){let{type:e,movement:t,lastOffset:n}=this.state;"wheel"===e?this.state.offset=U.add(t,n):this.state.offset=[(1+t[0])*n[0],t[1]+n[1]]}computeMovement(){let{offset:e,lastOffset:t}=this.state;this.state.movement=[e[0]/t[0],e[1]-t[1]]}axisIntent(){let e=this.state,[t,n]=e._movement;if(!e.axis){let r=30*Math.abs(t)-Math.abs(n);r<0?e.axis="angle":r>0&&(e.axis="scale")}}restrictToAxis(e){this.config.lockDirection&&("scale"===this.state.axis?e[1]=0:"angle"===this.state.axis&&(e[0]=0))}cancel(){let e=this.state;e.canceled||setTimeout(()=>{e.canceled=!0,e._active=!1,this.compute(),this.emit()},0)}touchStart(e){this.ctrl.setEventIds(e);let t=this.state,n=this.ctrl.touchIds;if(t._active&&t._touchIds.every(e=>n.has(e))||n.size<2)return;this.start(e),t._touchIds=Array.from(n).slice(0,2);let r=ee(e,t._touchIds);r&&this.pinchStart(e,r)}pointerStart(e){if(null!=e.buttons&&e.buttons%2!=1)return;this.ctrl.setEventIds(e),e.target.setPointerCapture(e.pointerId);let t=this.state,n=t._pointerEvents,r=this.ctrl.pointerIds;if(t._active&&Array.from(n.keys()).every(e=>r.has(e))||(n.size<2&&n.set(e.pointerId,e),t._pointerEvents.size<2))return;this.start(e);let i=Q(...Array.from(n.values()));i&&this.pinchStart(e,i)}pinchStart(e,t){let n=this.state;n.origin=t.origin,this.computeValues([t.distance,t.angle]),this.computeInitial(),this.compute(e),this.emit()}touchMove(e){if(!this.state._active)return;let t=ee(e,this.state._touchIds);t&&this.pinchMove(e,t)}pointerMove(e){let t=this.state._pointerEvents;if(t.has(e.pointerId)&&t.set(e.pointerId,e),!this.state._active)return;let n=Q(...Array.from(t.values()));n&&this.pinchMove(e,n)}pinchMove(e,t){let n=this.state,r=n._values[1],i=t.angle-r,o=0;Math.abs(i)>270&&(o+=Math.sign(i)),this.computeValues([t.distance,t.angle-360*o]),n.origin=t.origin,n.turns=o,n._movement=[n._values[0]/n._initial[0]-1,n._values[1]-n._initial[1]],this.compute(e),this.emit()}touchEnd(e){this.ctrl.setEventIds(e),this.state._active&&this.state._touchIds.some(e=>!this.ctrl.touchIds.has(e))&&(this.state._active=!1,this.compute(e),this.emit())}pointerEnd(e){let t=this.state;this.ctrl.setEventIds(e);try{e.target.releasePointerCapture(e.pointerId)}catch(e){}t._pointerEvents.has(e.pointerId)&&t._pointerEvents.delete(e.pointerId),t._active&&t._pointerEvents.size<2&&(t._active=!1,this.compute(e),this.emit())}gestureStart(e){e.cancelable&&e.preventDefault();let t=this.state;t._active||(this.start(e),this.computeValues([e.scale,e.rotation]),t.origin=[e.clientX,e.clientY],this.compute(e),this.emit())}gestureMove(e){if(e.cancelable&&e.preventDefault(),!this.state._active)return;let t=this.state;this.computeValues([e.scale,e.rotation]),t.origin=[e.clientX,e.clientY];let n=t._movement;t._movement=[e.scale-1,e.rotation],t._delta=U.sub(t._movement,n),this.compute(e),this.emit()}gestureEnd(e){this.state._active&&(this.state._active=!1,this.compute(e),this.emit())}wheel(e){let t=this.config.modifierKey;(!t||(Array.isArray(t)?t.find(t=>e[t]):e[t]))&&(this.state._active?this.wheelChange(e):this.wheelStart(e),this.timeoutStore.add("wheelEnd",this.wheelEnd.bind(this)))}wheelStart(e){this.start(e),this.wheelChange(e)}wheelChange(e){let t="uv"in e;!t&&e.cancelable&&e.preventDefault();let n=this.state;n._delta=[-et(e)[1]/100*n.offset[0],0],U.addTo(n._movement,n._delta),em(n),this.state.origin=[e.clientX,e.clientY],this.compute(e),this.emit()}wheelEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){let t=this.config.device;t&&(e(t,"start",this[t+"Start"].bind(this)),e(t,"change",this[t+"Move"].bind(this)),e(t,"end",this[t+"End"].bind(this)),e(t,"cancel",this[t+"End"].bind(this)),e("lostPointerCapture","",this[t+"End"].bind(this))),this.config.pinchOnWheel&&e("wheel","",this.wheel.bind(this),{passive:!1})}},resolver:ey}
9].forEach(function(e){eb.set(e.key,e.engine),ex.set(e.key,e.resolver)}),function(e,t){let{handlers:n,nativeHandlers:r,config:i}=function(e,t){let[n,r,i]=function(e){let t={},n={},r=new Set;for(let i in e)eP.test(i)?(r.add(RegExp.lastMatch),n[i]=e[i]):t[i]=e[i];return[n,t,r]}(e),o={};return eI(i,n,"onDrag","drag",o,t),eI(i,n,"onWheel","wheel",o,t),eI(i,n,"onScroll","scroll",o,t),eI(i,n,"onPinch","pinch",o,t),eI(i,n,"onMove","move",o,t),eI(i,n,"onHover","hover",o,t),{handlers:o,config:t,nativeHandlers:r}}(e,t||{});return function(e,t={},n,r){let i=p.useMemo(()=>new e_(e),[]);if(i.applyHandlers(e,r),i.applyConfig(t,n),p.useEffect(i.effect.bind(i)),p.useEffect(()=>i.clean.bind(i),[]),void 0===t.target)return i.bind.bind(i)}(n,i,void 0,r)}),eD=e=>void 0===o?(o=e,!1):e-o>120&&e-o<160?(o=e,!0):(o=e,!1);function eO(e,t,n){let r=e.getShape(t),i=e.getShapeHandles(r);return{shape:r,handle:i.find(e=>e.id===n)}}var eB=n(98357),eL=n(84527);/*!
10 * Author: excalidraw
11 * MIT License: https://github.com/excalidraw/excalidraw/blob/master/LICENSE
12 * https://github.com/excalidraw/excalidraw/blob/48c3465b19f10ec755b3eb84e21a01a468e96e43/packages/excalidraw/utils.ts#L600
13 */let eR=e=>{let t=e.parentElement;for(;t&&t!==document.body;){let{overflowY:e}=window.getComputedStyle(t),n=t.scrollHeight>t.clientHeight;if(n&&("auto"===e||"scroll"===e||"overlay"===e))return t;t=t.parentElement}return document};var eN=n(46921),ez=n(24196);let eF=(0,a.j)(function({showStroke:e=!0,showVertices:t=!0,showClosestPointOnOutline:n=!0}){let r=(0,b.j)();!function(e=!0){let[t,n]=(0,p.useState)(0),r=(0,b.j)();(0,p.useEffect)(()=>{if(!e)return;let t=()=>n(e=>e+1);return r.on("tick",t),()=>{r.off("tick",t)}},[r,e])}(n);let i=r.getZoomLevel(),o=r.getRenderingShapes(),{inputs:{currentPagePoint:s}}=r;return(0,h.jsx)("svg",{style:{position:"absolute",pointerEvents:"none",zIndex:999999999,top:0,left:0,overflow:"visible"},children:o.map(o=>{let a=r.getShape(o.id);if("group"===a.type)return null;let l=r.getShapeGeometry(a),c=r.getShapePageTransform(a),u=r.getPointInShapeSpace(a,s),p=l.nearestPoint(u),f=l.distanceToPoint(u,!0),g=Math.abs(f)*i,{vertices:m}=l;return(0,h.jsxs)("g",{transform:c.toCssString(),strokeLinecap:"round",strokeLinejoin:"round",children:[e&&(0,h.jsx)(eU,{geometry:l}),t&&m.map((e,t)=>(0,h.jsx)("circle",{cx:e.x,cy:e.y,r:"2",fill:`hsl(${(0,d.vm)(t,[0,m.length-1],[120,200])}, 100%, 50%)`,stroke:"black",strokeWidth:"1"},`v${t}`)),n&&g<150&&(0,h.jsx)("line",{x1:p.x,y1:p.y,x2:u.x,y2:u.y,opacity:1-g/150,stroke:f<0?"goldenrod":"dodgerblue",strokeWidth:"2"})]},o.id+"_outline")})})});function eU({geometry:e}){return e instanceof ez.m?(0,h.jsx)(h.Fragment,{children:[...e.children,...e.ignoredChildren].map((e,t)=>(0,h.jsx)(eU,{geometry:e},t))}):(0,h.jsx)("path",{stroke:e.debugColor??"red",strokeWidth:"2",fill:"none",opacity:"1",d:e.toSimpleSvgPath()})}var eH=n(94430);function eZ(e){return eH(e)}function eV(e){let t=(0,b.j)(),n=(0,p.useMemo)(()=>t.store.query.records("instance_presence",()=>({userId:{eq:e}})),[t,e]),r=(0,a.Hg)(`latestPresence:${e}`,()=>n.get().slice().sort((e,t)=>t.lastActivityTimestamp-e.lastActivityTimestamp)[0],[]);return r??null}let eK=(0,a.j)(function(){let e=function(){let e=(0,b.j)(),t=(0,p.useMemo)(()=>e.store.query.records("instance_presence",()=>({userId:{neq:e.user.getId()}})),[e]),n=(0,a.vc)("userIds",()=>eH(t.get().map(e=>e.userId)).sort(),{isEqual:(e,t)=>e.join(",")===t.join?.(",")},[t]);return(0,a.Hg)(n)}();return(0,h.jsx)(h.Fragment,{children:e.map(e=>(0,h.jsx)(eW,{collaboratorId:e},e))})}),eW=(0,a.j)(function({collaboratorId:e}){let t=(0,b.j)(),n=eV(e),r=function(e){let t=(0,p.useRef)(e?.lastActivityTimestamp??-1),[n,r]=(0,p.useState)(()=>eG(Date.now()-t.current));return(0,p.useEffect)(()=>{let e=setInterval(()=>{r(eG(Date.now()-t.current))},k.MN);return()=>clearInterval(e)},[]),e&&(t.current=e.lastActivityTimestamp),n}(n);if(!(n&&n.currentPageId===t.getCurrentPageId()))return null;switch(r){case"inactive":{let{followingUserId:e,highlightedUserIds:r}=t.getInstanceState();if(!(e===n.userId||r.includes(n.userId)))return null;break}case"idle":{let{highlightedUserIds:e}=t.getInstanceState();if(n.followingUserId===t.user.getId()&&!(n.chatMessage||e.includes(n.userId)))return null}}return(0,h.jsx)(eY,{latestPresence:n})}),eY=(0,a.j)(function({latestPresence:e}){let t=(0,b.j)(),{CollaboratorBrush:n,CollaboratorScribble:r,CollaboratorCursor:i,CollaboratorHint:o,CollaboratorShapeIndicator:s}=tR(),a=t.getZoomLevel(),l=t.getViewportPageBounds(),{userId:c,chatMessage:d,brush:u,scribbles:p,selectedShapeIds:f,userName:g,cursor:m,color:y}=e,x=!(m.x<l.minX-12/a||m.y<l.minY-16/a||m.x>l.maxX-12/a||m.y>l.maxY-16/a);return(0,h.jsxs)(h.Fragment,{children:[u&&n?(0,h.jsx)(n,{className:"tl-collaborator__brush",brush:u,color:y,opacity:.1},c+"_brush"):null,x&&i?(0,h.jsx)(i,{className:"tl-collaborator__cursor",point:m,color:y,zoom:a,name:"New User"!==g?g:null,chatMessage:d},c+"_cursor"):o?(0,h.jsx)(o,{className:"tl-collaborator__cursor-hint",point:m,color:y,zoom:a,viewport:l},c+"_cursor_hint"):null,r&&p.length?(0,h.jsx)(h.Fragment,{children:p.map(e=>(0,h.jsx)(r,{className:"tl-collaborator__scribble",scribble:e,color:y,zoom:a,opacity:"laser"===e.color?.5:.1},c+"_scribble_"+e.id))}
13):null,s&&f.map(e=>(0,h.jsx)(s,{className:"tl-collaborator__shape-indicator",shapeId:e,color:y,opacity:.5},c+"_"+e))]})});function eG(e){return e>k.RZ?"inactive":e>k.O8?"idle":"active"}let eX=(0,a.j)(function({id:e,shape:t,util:n,index:r,backgroundIndex:i,opacity:o,isCulled:s}){let l=(0,b.j)(),{ShapeErrorFallback:c}=tR(),d=p.useRef(null),u=p.useRef(null),f=p.useCallback((e,t)=>{d.current?.style.setProperty(e,t),u.current?.style.setProperty(e,t)},[]);(0,a.BK)("set shape container transform position",()=>{let t=l.getShape(e);if(!t)return;let n=l.getShapePageTransform(e),r=eN._.toCssString(n);f("transform",r)},[l,f]),(0,a.BK)("set shape container clip path",()=>{let t=l.getShape(e);if(!t)return null;let n=l.getShapeClipPath(e);f("clip-path",n??"none")},[l,f]),(0,a.BK)("set shape height and width",()=>{let t=l.getShape(e);if(!t)return null;let n=l.getShapeGeometry(t).bounds,r=Math.floor(100*l.getInstanceState().devicePixelRatio)/100,i=function(e){let t=e.toString().split(".")[1];if(!t)return 1;let n=Math.pow(10,t.length),r=parseInt(t,10);return n/function e(t,n){return 0===n?t:e(n,t%n)}(r,n)}(r),o=n.w%i,s=0===o?n.w:n.w+(i-o),a=n.h%i,c=0===a?n.h:n.h+(i-a);f("width",Math.max(s,i)+"px"),f("height",Math.max(c,i)+"px")},[l]),p.useLayoutEffect(()=>{f("opacity",o+""),d.current?.style.setProperty("z-index",r+""),u.current?.style.setProperty("z-index",i+"")},[o,r,i,f]);let g=p.useCallback(e=>{l.annotateError(e,{origin:"react.shape",willCrashApp:!1})},[l]);return t?(0,h.jsxs)(h.Fragment,{children:[n.backgroundComponent&&(0,h.jsx)("div",{ref:u,className:"tl-shape tl-shape-background","data-shape-type":t.type,draggable:!1,children:!s&&(0,h.jsx)(y,{fallback:c,onError:g,children:(0,h.jsx)(eJ,{shape:t,util:n})})}),(0,h.jsx)("div",{ref:d,className:"tl-shape","data-shape-type":t.type,draggable:!1,children:s?(0,h.jsx)(eQ,{shape:t}):(0,h.jsx)(y,{fallback:c,onError:g,children:(0,h.jsx)(eq,{shape:t,util:n})})})]}):null}),eq=p.memo(function({shape:e,util:t}){return(0,a.uC)("InnerShape:"+e.type,()=>t.component(e))},(e,t)=>e.shape.props===t.shape.props&&e.shape.meta===t.shape.meta&&e.util===t.util),eJ=p.memo(function({shape:e,util:t}){return(0,a.uC)("InnerShape:"+e.type,()=>t.backgroundComponent?.(e))},(e,t)=>e.shape.props===t.shape.props&&e.shape.meta===t.shape.meta),eQ=p.memo(function({shape:e}){let t=(0,b.j)(),n=t.getShapeGeometry(e).bounds;return(0,h.jsx)("div",{className:"tl-shape__culled",style:{transform:`translate(${(0,v.$Z)(n.minX)}px, ${(0,v.$Z)(n.minY)}px)`,width:Math.max(1,(0,v.$Z)(n.width)),height:Math.max(1,(0,v.$Z)(n.height))}})},()=>!0);function e0({className:e}){let t=(0,b.j)(),{Background:n,SvgDefs:r}=tR(),i=p.useRef(null),o=p.useRef(null),s=p.useRef(null);!function(e){let t=(0,b.j)();(0,p.useLayoutEffect)(()=>{function n(){let n=e.current;if(!n)return null;let r=n.getBoundingClientRect();t.updateViewportScreenBounds(new eL.xu(r.left||r.x,r.top||r.y,Math.max(r.width,1),Math.max(r.height,1)))}n();let r=eB(n,200,{trailing:!0}),i=setInterval(r,1e3);window.addEventListener("resize",r);let o=new ResizeObserver(e=>{e[0].contentRect&&r()}),s=e.current,a=null;return s&&(o.observe(s),(a=eR(s)).addEventListener("scroll",r)),()=>{clearInterval(i),window.removeEventListener("resize",r),o.disconnect(),a?.removeEventListener("scroll",r)}},[t,e])}(i),function(){let e=(0,b.j)(),t=R(),n=(0,a.Hg)("isFocused",()=>e.getInstanceState().isFocused,[e]);(0,p.useEffect)(()=>{let t=null,n=()=>{null!=t&&t();let r=`(resolution: ${window.devicePixelRatio}dppx)`,i=matchMedia(r),o=e=>{"change"===e.type&&n()};i.addEventListener?i.addEventListener("change",n):i.addListener&&i.addListener(o),t=()=>{i.removeEventListener?i.removeEventListener("change",n):i.removeListener&&i.removeListener(o)},e.updateInstanceState({devicePixelRatio:window.devicePixelRatio})};return n(),()=>{t?.()}},[e]),(0,p.useEffect)(()=>{if(!n)return;let r=n=>{if(n.altKey&&(e.isIn("zoom")||!e.getPath().endsWith(".idle"))&&!z()&&M(n),n.isKilled)return;switch(n.isKilled=!0,n.key){case"=":case"-":case"0":if(n.metaKey||n.ctrlKey){M(n);return}break;case"Tab":default:if(z()||e.getIsMenuOpen())return;break;case",":return;case"Escape":if((e.getEditingShape()||e.getSelectedShapeIds().length>0)&&n.preventDefault(),e.getOpenMenus().length>0)return;
13e.inputs.keys.has("Escape")||(e.inputs.keys.add("Escape"),e.cancel(),t.focus());return}let r={type:"keyboard",name:n.repeat?"key_repeat":"key_down",key:n.key,code:n.code,shiftKey:n.shiftKey,altKey:n.altKey,ctrlKey:n.metaKey||n.ctrlKey};e.dispatch(r)},i=t=>{if(t.isKilled||(t.isKilled=!0,z()||e.getIsMenuOpen()||","===t.key))return;let n={type:"keyboard",name:"key_up",key:t.key,code:t.code,shiftKey:t.shiftKey,altKey:t.altKey,ctrlKey:t.metaKey||t.ctrlKey};e.dispatch(n)};function o(n){if(t.contains(n.target)){let t=n.touches[0].pageX,r=n.touches[0].radiusX||0;(t-r<10||t+r>e.getViewportScreenBounds().width-10)&&(n.target?.tagName==="BUTTON"&&n.target?.click(),M(n))}}let s=e=>{t.contains(e.target)&&(e.ctrlKey||e.metaKey)&&M(e)};return t.addEventListener("touchstart",o,{passive:!1}),t.addEventListener("wheel",s,{passive:!1}),document.addEventListener("gesturestart",M),document.addEventListener("gesturechange",M),document.addEventListener("gestureend",M),t.addEventListener("keydown",r),t.addEventListener("keyup",i),()=>{t.removeEventListener("touchstart",o),t.removeEventListener("wheel",s),document.removeEventListener("gesturestart",M),document.removeEventListener("gesturechange",M),document.removeEventListener("gestureend",M),t.removeEventListener("keydown",r),t.removeEventListener("keyup",i)}},[e,t,n])}(),function(){let e=(0,b.j)();(0,p.useEffect)(()=>{if(e.environment.isFirefox&&!e.environment.isAndroid&&!e.environment.isIos){e.updateInstanceState({isCoarsePointer:!1});return}if(window.matchMedia){let t=window.matchMedia("(pointer: coarse)"),n=()=>{e.updateInstanceState({isCoarsePointer:!!t.matches})};if(n(),t)return t.addEventListener("change",n),()=>t.removeEventListener("change",n)}},[e])}(),function(e){let t=(0,b.j)(),n=p.useMemo(()=>{let n="not sure",r=1,i=1,o=1,s=0,a=new eT.B,l=new eT.B,c=e=>{if(e&&(n="zooming"),"zooming"===n)return;let t=Math.abs(s-r),i=eT.B.Dist(a,l);switch(n){case"not sure":t>24?n="zooming":i>16&&(n="panning");break;case"panning":t>64&&(n="zooming")}};return{onWheel:({event:e})=>{if(!t.getInstanceState().isFocused||(n="not sure",eD(Date.now())))return;let r=t.getEditingShapeId();if(r){let e=t.getShape(r);if(e){let n=t.getShapeUtil(e);if(n.canScroll(e)){let e=t.getShapePageBounds(r);if(e?.containsPoint(t.inputs.currentPagePoint))return}}}M(e);let i=eA(e);if(0===i.x&&0===i.y)return;let o={type:"wheel",name:"wheel",delta:i,point:new eT.B(e.clientX,e.clientY),shiftKey:e.shiftKey,altKey:e.altKey,ctrlKey:e.metaKey||e.ctrlKey};t.dispatch(o)},onPinchStart:o=>{let s=e.current;n="not sure";let{event:c,origin:d,da:u}=o;!(c instanceof WheelEvent)&&(c.target===s||s?.contains(c.target))&&(l.x=d[0],l.y=d[1],a.x=d[0],a.y=d[1],r=u[0],i=t.getZoomLevel(),t.dispatch({type:"pinch",name:"pinch_start",point:{x:d[0],y:d[1],z:t.getZoomLevel()},delta:{x:0,y:0},shiftKey:c.shiftKey,altKey:c.altKey,ctrlKey:c.metaKey||c.ctrlKey}))},onPinchEnd:r=>{let i=e.current,{event:o,origin:s,offset:a}=r;if(o instanceof WheelEvent||!(o.target===i||i?.contains(o.target)))return;let l=a[0];n="not sure",requestAnimationFrame(()=>{t.dispatch({type:"pinch",name:"pinch_end",point:{x:s[0],y:s[1],z:l},delta:{x:s[0],y:s[1]},shiftKey:o.shiftKey,altKey:o.altKey,ctrlKey:o.metaKey||o.ctrlKey})})},onPinch:r=>{let a=e.current,{event:d,origin:u,offset:h,da:p}=r;if(d instanceof WheelEvent||!(d.target===a||a?.contains(d.target)))return;let f="gesturechange"===r.type||"gestureend"===r.type;s=p[0];let g=u[0]-l.x,m=u[1]-l.y;switch(l.x=u[0],l.y=u[1],c(f),n){case"zooming":o=h[0],t.dispatch({type:"pinch",name:"pinch",point:{x:u[0],y:u[1],z:o},delta:{x:g,y:m},shiftKey:d.shiftKey,altKey:d.altKey,ctrlKey:d.metaKey||d.ctrlKey});break;case"panning":t.dispatch({type:"pinch",name:"pinch",point:{x:u[0],y:u[1],z:i},delta:{x:g,y:m},shiftKey:d.shiftKey,altKey:d.altKey,ctrlKey:d.metaKey||d.ctrlKey})}}}},[t,e]);e$(n,{target:e,eventOptions:{passive:!1},pinch:{from:()=>[t.getZoomLevel(),0],scaleBounds:()=>({from:t.getZoomLevel(),max:8,min:.05})}})}(i),function(e){let t=(0,b.j)();(0,p.useEffect)(()=>{let n=e.current;if(!n)return;let r=e=>{if(e instanceof PointerEvent&&"pen"===e.pointerType){e.isKilled=!0;let{target:n}=e;F.includes(n.tagName?.toLocaleLowerCase())||t.isIn("select.editing_shape")||M(e)}};return n.addEventListener("touchstart",r),n.addEventListener("touchend",r),()=>{n.removeEventListener("touchstart",r),n.removeEventListener("touchend",r)}},[t,e])}(i),(0,a.BK)("position layers",()=>{let e=o.current;if(!e)return;let n=s.current;if(!n)return;let{x:r,y:i,z:a}=t.getCamera(),l=a>=1?(0,d.vm)(a,[1,8],[.125,.5],!0):(0,d.vm)(a,[.1,1],[-2,.125],!0),c=`scale(${(0,v.$Z)(a)}) translate(${(0,v.$Z)(r+l)}px,${(0,v.$Z)(i+l)}px)`;e.style.setProperty("transform",c),n.style.setProperty("transform",c)},[t]);let l=function(){let e=(0,b.j)(),t=(0,p.useMemo)(function(){let t,n;return{onPointerDown:function(t){if(!t.isKilled){if(2===t.button){e.dispatch({type:"pointer",target:"canvas",name:"right_click",...O(t)});return}(0===t.button||1===t.button||5===t.button)&&(A(t.currentTarget,t),e.dispatch({type:"pointer",target:"canvas",name:"pointer_down",...O(t)}),e.getOpenMenus().length>0&&(e.updateInstanceState({openMenus:[]}),document.body.click(),e.getContainer().focus()))}},onPointerMove:function(r){r.isKilled||r.clientX===t&&r.clientY===n||(t=r.clientX,n=r.clientY,e.dispatch({type:"pointer",target:"canvas",name:"pointer_move",...O(r)}))},onPointerUp:function(r){r.isKilled||0!==r.button&&1!==r.button&&2!==r.button&&5!==r.button||(t=r.clientX,n=r.clientY,$(r.currentTarget,r),e.dispatch({type:"pointer",target:"canvas",name:"pointer_up",...O(r)}))},onPointerEnter:function(t){if(t.isKilled||e.getInstanceState().isPenMode&&"pen"!==t.pointerType)return;let n="mouse"===t.pointerType||"pen"===t.pointerType;e.updateInstanceState({isHoveringCanvas:!!n||null})},onPointerLeave:function(t){if(t.isKilled||e.getInstanceState().isPenMode&&"pen"!==t.pointerType)return;let n="mouse"===t.pointerType||"pen"===t.pointerType;e.updateInstanceState({isHoveringCanvas:!n&&null})},onDragOver:function(e){M(e)},onDrop:async function(t){if(M(t),!t.dataTransfer?.files?.length)return;let n=Array.from(t.dataTransfer.files);await e.putExternalContent({type:"files",files:n,point:e.screenToPage({x:t.clientX,y:t.clientY}),ignoreParent:!1})},onTouchStart:function(e){e.isKilled=!0,document.body.click(),M(e)},onTouchEnd:function(e){e.isKilled=!0,"A"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&M(e)},onClick:function(e){D(e)}}},[e]);return t}(),c=(0,a.Hg)("shapeSvgDefs",()=>{let e=new Map;for(let n of(0,d.UM)(t.shapeUtils)){if(!n)return;let t=n.getCanvasSvgDefs();for(let{key:n,component:r}of t)e.has(n)||e.set(n,(0,h.jsx)(r,{},n))}return[...e.values()]},[t]),u=(0,a.Hg)("debug_shapes",()=>C.hideShapes.get(),[C]),g=(0,a.Hg)("debug_svg",()=>C.debugSvg.get(),[C]),m=(0,a.Hg)("debug_geometry",()=>C.debugGeometry.get(),[C]);
13return(0,h.jsxs)("div",{ref:i,draggable:!1,className:f("tl-canvas",e),"data-testid":"canvas",...l,children:[(0,h.jsx)("svg",{className:"tl-svg-context",children:(0,h.jsxs)("defs",{children:[c,tr&&(0,h.jsx)(tr,{}),(0,h.jsx)(ti,{}),(0,h.jsx)(to,{}),(0,h.jsx)(ts,{}),r&&(0,h.jsx)(r,{})]})}),n&&(0,h.jsx)(n,{}),(0,h.jsx)(e1,{}),(0,h.jsxs)("div",{ref:o,className:"tl-html-layer tl-shapes",draggable:!1,children:[(0,h.jsx)(td,{}),(0,h.jsx)(tc,{}),u?null:g?(0,h.jsx)(e9,{}):(0,h.jsx)(e7,{})]}),(0,h.jsxs)("div",{className:"tl-overlays",children:[(0,h.jsxs)("div",{ref:s,className:"tl-html-layer",children:[m?(0,h.jsx)(eF,{}):null,(0,h.jsx)(e4,{}),(0,h.jsx)(e8,{}),(0,h.jsx)(e2,{}),(0,h.jsx)(e3,{}),(0,h.jsx)(te,{}),(0,h.jsx)(tt,{}),(0,h.jsx)(tn,{}),(0,h.jsx)(e5,{}),(0,h.jsx)(tl,{}),(0,h.jsx)(eK,{})]}),(0,h.jsx)(tu,{})]})]})}function e1(){let e=(0,b.j)(),t=(0,a.Hg)("gridSize",()=>e.getDocumentSettings().gridSize,[e]),{x:n,y:r,z:i}=(0,a.Hg)("camera",()=>e.getCamera(),[e]),o=(0,a.Hg)("isGridMode",()=>e.getInstanceState().isGridMode,[e]),{Grid:s}=tR();return s&&o?(0,h.jsx)(s,{x:n,y:r,z:i,size:t}):null}function e2(){let e=(0,b.j)(),t=(0,a.Hg)("scribbles",()=>e.getInstanceState().scribbles,[e]),n=(0,a.Hg)("zoomLevel",()=>e.getZoomLevel(),[e]),{Scribble:r}=tR();return r&&t.length?(0,h.jsx)(h.Fragment,{children:t.map(e=>(0,h.jsx)(r,{className:"tl-user-scribble",scribble:e,zoom:n},e.id))}):null}function e8(){let e=(0,b.j)(),t=(0,a.Hg)("brush",()=>e.getInstanceState().brush,[e]),{Brush:n}=tR();return n&&t?(0,h.jsx)(n,{className:"tl-user-brush",brush:t}):null}function e3(){let e=(0,b.j)(),t=(0,a.Hg)("zoomBrush",()=>e.getInstanceState().zoomBrush,[e]),{ZoomBrush:n}=tR();return n&&t?(0,h.jsx)(n,{className:"tl-user-brush tl-zoom-brush",brush:t}):null}function e5(){let e=(0,b.j)(),t=(0,a.Hg)("snapLines",()=>e.snaps.getIndicators(),[e]),n=(0,a.Hg)("zoomLevel",()=>e.getZoomLevel(),[e]),{SnapIndicator:r}=tR();return r&&t.length>0?(0,h.jsx)(h.Fragment,{children:t.map(e=>(0,h.jsx)(r,{className:"tl-user-snapline",line:e,zoom:n},e.id))}):null}function e4(){let e=(0,b.j)(),{Handles:t}=tR(),n=(0,a.Hg)("zoomLevel",()=>e.getZoomLevel(),[e]),r=(0,a.Hg)("coarse pointer",()=>e.getInstanceState().isCoarsePointer,[e]),i=(0,a.Hg)("isChangingStyle",()=>e.getInstanceState().isReadonly,[e]),o=(0,a.Hg)("isChangingStyle",()=>e.getInstanceState().isChangingStyle,[e]),s=(0,a.Hg)("onlySelectedShape",()=>e.getOnlySelectedShape(),[e]),l=(0,a.Hg)("transform",()=>s?e.getShapePageTransform(s):null,[e,s]),c=(0,a.Hg)("handles",()=>{if(!s)return null;let t=e.getShapeHandles(s);if(!t)return null;let i=(r?k.Pr:k.rQ)/n*2;return t.filter(e=>"virtual"!==e.type||!t.some(t=>t!==e&&"vertex"===t.type&&eT.B.Dist(e,t)<i)).sort(e=>"vertex"===e.type?1:-1)},[e,s,n,r]);return t&&s&&!o&&!i&&c&&l?(0,h.jsx)(t,{children:(0,h.jsx)("g",{transform:eN._.toCssString(l),children:c.map(e=>(0,h.jsx)(e6,{shapeId:s.id,handle:e,zoom:n,isCoarse:r},e.id))})}):null}function e6({shapeId:e,handle:t,zoom:n,isCoarse:r}){let i=function(e,t){let n=(0,b.j)();return p.useMemo(()=>{let r,i;return{onPointerDown:r=>{if(r.isKilled)return;let i=T(r.currentTarget);A(i,r);let{shape:o,handle:s}=eO(n,e,t);s&&n.dispatch({type:"pointer",target:"handle",handle:s,shape:o,name:"pointer_down",...O(r)})},onPointerMove:o=>{if(o.isKilled||o.clientX===r&&o.clientY===i)return;r=o.clientX,i=o.clientY;let{shape:s,handle:a}=eO(n,e,t);a&&n.dispatch({type:"pointer",target:"handle",handle:a,shape:s,name:"pointer_move",...O(o)})},onPointerUp:r=>{if(r.isKilled)return;let i=T(r.currentTarget);$(i,r);let{shape:o,handle:s}=eO(n,e,t);s&&n.dispatch({type:"pointer",target:"handle",handle:s,shape:o,name:"pointer_up",...O(r)})}}},[n,e,t])}(e,t.id),{Handle:o}=tR();return o?(0,h.jsx)("g",{"aria-label":"handle",transform:`translate(${t.x}, ${t.y})`,...i,children:(0,h.jsx)(o,{shapeId:e,handle:t,zoom:n,isCoarse:r})}):null}function e9(){let e=(0,b.j)(),t=(0,a.Hg)("rendering shapes",()=>e.getRenderingShapes(),[e]);return(0,h.jsx)(h.Fragment,{children:t.map(e=>(0,h.jsxs)(p.Fragment,{children:[(0,h.jsx)(eX,{...e}),(0,h.jsx)(ta,{id:e.id})]},e.id+"_fragment"))})}function e7(){let e=(0,b.j)(),t=(0,a.Hg)("rendering shapes",()=>e.getRenderingShapes(),[e]);return(0,h.jsx)(h.Fragment,{children:t.map(e=>(0,h.jsx)(eX,{...e},e.id+"_shape"))})}function te(){let e=(0,b.j)(),t=(0,a.Hg)("selectedShapeIds",()=>e.getSelectedShapeIds(),[e]),n=(0,a.Hg)("should display selected ids",()=>e.isInAny("select.idle","select.brushing","select.scribble_brushing","select.editing_shape","select.pointing_shape","select.pointing_selection","select.pointing_handle")&&!e.getInstanceState().isChangingStyle,[e]),{ShapeIndicator:r}=tR();return r&&n?(0,h.jsx)(h.Fragment,{children:t.map(e=>(0,h.jsx)(r,{className:"tl-user-indicator__selected",shapeId:e},e+"_indicator"))}):null}
13let tt=function(){let e=(0,b.j)(),{HoveredShapeIndicator:t}=tR(),n=(0,a.Hg)("coarse pointer",()=>e.getInstanceState().isCoarsePointer,[e]),r=(0,a.Hg)("hovering canvas",()=>e.getInstanceState().isHoveringCanvas,[e]),i=(0,a.Hg)("hovered id",()=>e.getCurrentPageState().hoveredShapeId,[e]);return!n&&r&&i&&t?(0,h.jsx)(t,{shapeId:i}):null},tn=(0,a.j)(function(){let e=(0,b.j)(),{ShapeIndicator:t}=tR(),n=(0,d.D8)(e.getHintingShapeIds());return n.length&&t?(0,h.jsx)(h.Fragment,{children:n.map(e=>(0,h.jsx)(t,{className:"tl-user-indicator__hint",shapeId:e},e+"_hinting"))}):null});function tr(){return(0,h.jsxs)("g",{id:"cursor",children:[(0,h.jsxs)("g",{fill:"rgba(0,0,0,.2)",transform:"translate(-11,-11)",children:[(0,h.jsx)("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),(0,h.jsx)("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),(0,h.jsxs)("g",{fill:"white",transform:"translate(-12,-12)",children:[(0,h.jsx)("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),(0,h.jsx)("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),(0,h.jsxs)("g",{fill:"currentColor",transform:"translate(-12,-12)",children:[(0,h.jsx)("path",{d:"m19.751 24.4155-1.844.774-3.1-7.374 1.841-.775z"}),(0,h.jsx)("path",{d:"m13 10.814v11.188l2.969-2.866.428-.139h4.768z"})]})]})}function ti(){return(0,h.jsx)("path",{id:"cursor_hint",fill:"currentColor",d:"M -2,-5 2,0 -2,5 Z"})}function to(){return(0,h.jsx)("marker",{id:"arrowhead-dot",className:"tl-arrow-hint",refX:"3.0",refY:"3.0",orient:"0",children:(0,h.jsx)("circle",{cx:"3",cy:"3",r:"2",strokeDasharray:"100%"})})}function ts(){return(0,h.jsxs)("marker",{id:"arrowhead-cross",className:"tl-arrow-hint",refX:"3.0",refY:"3.0",orient:"auto",children:[(0,h.jsx)("line",{x1:"1.5",y1:"1.5",x2:"4.5",y2:"4.5",strokeDasharray:"100%"}),(0,h.jsx)("line",{x1:"1.5",y1:"4.5",x2:"4.5",y2:"1.5",strokeDasharray:"100%"})]})}let ta=(0,a.j)(function({id:e}){let t=(0,b.j)(),n=t.getShape(e),[r,i]=p.useState(""),o=n?.parentId===t.getCurrentPageId();return(p.useEffect(()=>{if(!o)return;let n=null,r=(0,a.Ym)("shape to svg",async()=>{let r=Math.random();n=r;let o=t.getShapePageBounds(e),s=await t.getSvg([e],{padding:0,background:t.getInstanceState().exportBackground});s&&o&&n===r&&(s.style.setProperty("overflow","visible"),s.setAttribute("preserveAspectRatio","xMidYMin slice"),s.style.setProperty("transform",`translate(${o.x}px, ${o.y+o.h+12}px)`),s.style.setProperty("border","1px solid black"),i(s?.outerHTML))});return()=>{n=null,r()}},[t,e,o]),o)?(0,h.jsx)("div",{style:{paddingTop:12,position:"absolute"},children:(0,h.jsx)("div",{style:{display:"flex"},dangerouslySetInnerHTML:{__html:r}})}):null});function tl(){let e=(0,b.j)(),t=(0,a.Hg)("selection rotation",()=>e.getSelectionRotation(),[e]),n=(0,a.Hg)("selection bounds",()=>e.getSelectionRotatedPageBounds(),[e]),{SelectionForeground:r}=tR();return n&&r?(0,h.jsx)(r,{bounds:n,rotation:t}):null}function tc(){let e=(0,b.j)(),t=(0,a.Hg)("selection rotation",()=>e.getSelectionRotation(),[e]),n=(0,a.Hg)("selection bounds",()=>e.getSelectionRotatedPageBounds(),[e]),{SelectionBackground:r}=tR();return n&&r?(0,h.jsx)(r,{bounds:n,rotation:t}):null}function td(){let{OnTheCanvas:e}=tR();return e?(0,h.jsx)(e,{}):null}function tu(){let{InFrontOfTheCanvas:e}=tR();return e?(0,h.jsx)(e,{}):null}function th({className:e,zoom:t,point:n,color:r,viewport:i,opacity:o=1}){let s=(0,p.useRef)(null);return w(s,(0,v.uZ)(n.x,i.minX+5/t,i.maxX-5/t),(0,v.uZ)(n.y,i.minY+5/t,i.maxY-5/t),1/t,eT.B.Angle(i.center,n)),(0,h.jsxs)("svg",{ref:s,className:f("tl-overlays__item",e),children:[(0,h.jsx)("use",{href:"#cursor_hint",color:r,strokeWidth:3,stroke:"var(--color-background)"}),(0,h.jsx)("use",{href:"#cursor_hint",color:r,opacity:o})]})}let tp=(0,p.memo)(function({className:e,zoom:t,point:n,color:r,name:i,chatMessage:o}){let s=(0,p.useRef)(null);return(w(s,n?.x,n?.y,1/t),n)?(0,h.jsxs)("div",{ref:s,className:f("tl-overlays__item",e),children:[(0,h.jsx)("svg",{className:"tl-cursor",children:(0,h.jsx)("use",{href:"#cursor",color:r})}),o?(0,h.jsxs)(h.Fragment,{children:[i&&(0,h.jsx)("div",{className:"tl-nametag-title",style:{color:r},children:i}),(0,h.jsx)("div",{className:"tl-nametag-chat",style:{backgroundColor:r},children:o})]}):i&&(0,h.jsx)("div",{className:"tl-nametag",style:{backgroundColor:r},children:i})]}):null});function tf({x:e,y:t,z:n,size:r}){return(0,h.jsxs)("svg",{className:"tl-grid",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[(0,h.jsx)("defs",{children:k.dW.map(({min:i,mid:o,step:s},a)=>{let l=s*r*n,c=.5+e*n,u=.5+t*n,p=n<o?(0,d.vm)(n,[i,o],[0,1]):1;return(0,h.jsx)("pattern",{id:`grid-${s}`,width:l,height:l,patternUnits:"userSpaceOnUse",children:(0,h.jsx)("circle",{className:"tl-grid-dot",cx:c>0?c%l:l+c%l,cy:u>0?u%l:l+u%l,r:1,opacity:p})},`grid-pattern-${a}`)})}),k.dW.map(({step:e},t)=>(0,h.jsx)("rect",{width:"100%",height:"100%",fill:`url(#grid-${e})`},`grid-rect-${t}`))]})}function tg({handle:e,isCoarse:t,className:n,zoom:r}){let i=(t?k.Pr:k.rQ)/r,o=("create"===e.type&&t?3:4)/r;return(0,h.jsxs)("g",{className:f("tl-handle",{"tl-handle__virtual":"virtual"===e.type,"tl-handle__create":"create"===e.type},n),children:[(0,h.jsx)("circle",{className:"tl-handle__bg",r:i}),(0,h.jsx)("circle",{className:"tl-handle__fg",r:o})]})}let tm=({children:e})=>(0,h.jsx)("svg",{className:"tl-user-handles tl-overlays__item",children:e});function ty({shapeId:e}){let{ShapeIndicator:t}=tR();return t?(0,h.jsx)(t,{className:"tl-user-indicator__hovered",shapeId:e}):null}function tb(e,t=!0){let n=e.length;if(n<2)return"";let r=e[0],i=e[1];if(2===n)return`M${(0,v.Yk)(r)}L${(0,v.Yk)(i)}`;let o="";for(let t=2,s=n-1;t<s;t++)r=e[t],i=e[t+1],o+=(0,v.Y8)(r,i);return t?`M${(0,v.Y8)(e[0],e[1])}Q${(0,v.Yk)(e[1])}${(0,v.Y8)(e[1],e[2])}T${o}${(0,v.Y8)(e[n-1],e[0])}${(0,v.Y8)(e[0],e[1])}Z`:`M${(0,v.Yk)(e[0])}Q${(0,v.Yk)(e[1])}${(0,v.Y8)(e[1],e[2])}${e.length>3?"T":""}${o}L${(0,v.Yk)(e[n-1])}`}function tx({scribble:e,zoom:t,color:n,opacity:r,className:i}){return e.points.length?(0,h.jsx)("svg",{className:i?f("tl-overlays__item",i):i,children:(0,h.jsx)("path",{className:"tl-scribble",d:tb(e.points,!1),stroke:n??`var(--color-${e.color})`,fill:"none",strokeWidth:8/t,opacity:r??e.opacity})}):null}function tw({bounds:e,rotation:t}){let n=p.useRef(null);return w(n,e.x,e.y,1,t),p.useLayoutEffect(()=>{let t=n.current;t&&(t.style.width=(0,v.$Z)(Math.max(1,e.width))+"px",t.style.height=(0,v.$Z)(Math.max(1,e.height))+"px")},[e.width,e.height]),(0,h.jsx)("div",{ref:n,className:"tl-selection__bg",draggable:!1})}function tv({bounds:e,rotation:t}){let n=(0,b.j)(),r=(0,p.useRef)(null),i=(0,a.Hg)("only selected shape",()=>n.getOnlySelectedShape(),[n]),o=i?n.getShapeUtil(i).expandSelectionOutlinePx(i):0;return w(r,e?.x,e?.y,1,t,{x:-o,y:-o}),e=e.clone().expandBy(o).zeroFix(),(0,h.jsx)("svg",{ref:r,className:"tl-overlays__item tl-selection__fg","data-testid":"selection-foreground",children:(0,h.jsx)("rect",{className:f("tl-selection__fg__outline"),width:(0,v.$Z)(e.width),height:(0,v.$Z)(e.height)})})}let tS=()=>(0,h.jsx)("div",{className:"tl-shape-error-boundary"});class tk{constructor(e){this.shape=e}equals(e){return this.shape?.isLocked===e?.shape?.isLocked&&this.shape?.props===e?.shape?.props&&this.shape?.meta===e?.shape?.meta}}let tj=({shape:e,util:t})=>(0,a.uC)("Indicator:"+e.type,()=>t.indicator(e)),t_=({editor:e,id:t})=>{let n=(0,a.Hg)("shape",()=>new tk(e.store.get(t)),[e,t]),{ShapeIndicatorErrorFallback:r}=tR();return!n.shape||n.shape.isLocked?null:(0,h.jsx)(y,{fallback:r,onError:t=>e.annotateError(t,{origin:"react.shapeIndicator",willCrashApp:!1}),children:(0,h.jsx)(tj,{shape:n.shape,util:e.getShapeUtil(n.shape)},n.shape.id)})},tE=(0,p.memo)(function({shapeId:e,className:t,color:n,opacity:r}){let i=(0,b.j)(),o=(0,a.Hg)("transform",()=>{let t=i.getShapePageTransform(e);return t?t.toCssString():""},[i,e]);return(0,h.jsx)("svg",{className:f("tl-overlays__item",t),children:(0,h.jsx)("g",{className:"tl-shape-indicator",transform:o,stroke:n??"var(--color-selected)",opacity:r,children:(0,h.jsx)(t_,{editor:i,id:e})})})}),tC=()=>(0,h.jsx)("circle",{cx:4,cy:4,r:8,strokeWidth:"1",stroke:"red"});function tP({points:e,zoom:t}){let n,r,i,o;let s=2.5/t,a=e.reduce((e,t)=>
13Math.min(e,t.x),1/0),l=e.reduce((e,t)=>Math.max(e,t.x),-1/0),c=e.reduce((e,t)=>Math.min(e,t.y),1/0),d=e.reduce((e,t)=>Math.max(e,t.y),-1/0),u=e.some(e=>e.x===a&&e.y===c);return u?(n=a,r=c,i=l,o=d):(n=a,r=d,i=l,o=c),(0,h.jsxs)("g",{className:"tl-snap-indicator",stroke:"lime",children:[(0,h.jsx)("line",{x1:n,y1:r,x2:i,y2:o}),e.map((e,t)=>(0,h.jsx)("g",{transform:`translate(${e.x},${e.y})`,children:(0,h.jsx)("path",{className:"tl-snap-point",d:`M ${-s},${-s} L ${s},${s} M ${-s},${s} L ${s},${-s}`})},t))]})}function tI({gaps:e,direction:t,zoom:n}){let r=3.5/n,i=[-1/0,1/0],o=null,s="horizontal"===t;for(let t of e)(o=(0,v.mW)(i[0],i[1],s?t.startEdge[0].y:t.startEdge[0].x,s?t.startEdge[1].y:t.startEdge[1].x))&&(i=o,(o=(0,v.mW)(i[0],i[1],s?t.endEdge[0].y:t.endEdge[0].x,s?t.endEdge[1].y:t.endEdge[1].x))&&(i=o));if(null===i)return null;let a=(i[0]+i[1])/2;return(0,h.jsx)("g",{className:"tl-snap-indicator",stroke:"cyan",children:e.map(({startEdge:e,endEdge:t},n)=>(0,h.jsx)(p.Fragment,{children:s?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("line",{x1:e[0].x,y1:a-2*r,x2:e[1].x,y2:a+2*r}),(0,h.jsx)("line",{x1:t[0].x,y1:a-2*r,x2:t[1].x,y2:a+2*r}),(0,h.jsx)("line",{x1:e[0].x,y1:a,x2:t[0].x,y2:a}),(0,h.jsx)("line",{x1:(e[0].x+t[0].x)/2,y1:a-r,x2:(e[0].x+t[0].x)/2,y2:a+r})]}):(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("line",{x1:a-2*r,y1:e[0].y,x2:a+2*r,y2:e[1].y}),(0,h.jsx)("line",{x1:a-2*r,y1:t[0].y,x2:a+2*r,y2:t[1].y}),(0,h.jsx)("line",{x1:a,y1:e[0].y,x2:a,y2:t[0].y}),(0,h.jsx)("line",{x1:a-r,y1:(e[0].y+t[0].y)/2,x2:a+r,y2:(e[0].y+t[0].y)/2})]})},n))})}function tT({className:e,line:t,zoom:n}){return(0,h.jsx)("svg",{className:f("tl-overlays__item",e),children:"points"===t.type?(0,h.jsx)(tP,{...t,zoom:n}):"gaps"===t.type?(0,h.jsx)(tI,{...t,zoom:n}):null})}function tM(){return(0,h.jsx)("svg",{width:16,height:16,viewBox:"0 0 16 16",children:(0,h.jsxs)("g",{strokeWidth:2,fill:"none",fillRule:"evenodd",children:[(0,h.jsx)("circle",{strokeOpacity:.25,cx:8,cy:8,r:7,stroke:"var(--color-text-1)"}),(0,h.jsx)("path",{strokeLinecap:"round",d:"M15 8c0-4.5-4.5-7-7-7",stroke:"var(--color-text-1)",children:(0,h.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 8 8",to:"360 8 8",dur:"1s",repeatCount:"indefinite"})})]})})}let tA=()=>null;function t$(e,t){let n=(0,p.useRef)(e);return t(e,n.current)?n.current:(n.current=e,e)}function tD(e){return t$(e,d.E8)}function tO(e){return t$(e,d.dn)}let tB=(0,p.createContext)({});function tL({overrides:e={},children:t}){let n=tO(e);return(0,h.jsx)(tB.Provider,{value:(0,p.useMemo)(()=>({Background:x,SvgDefs:tA,Brush:S,ZoomBrush:S,ScreenshotBrush:S,CollaboratorBrush:S,Cursor:tp,CollaboratorCursor:tp,CollaboratorHint:th,CollaboratorShapeIndicator:tE,Grid:tf,Scribble:tx,SnapIndicator:tT,Handles:tm,Handle:tg,CollaboratorScribble:tx,ErrorFallback:tF,ShapeErrorFallback:tS,ShapeIndicatorErrorFallback:tC,Spinner:tM,SelectionBackground:tw,SelectionForeground:tv,HoveredShapeIndicator:ty,ShapeIndicator:tE,OnTheCanvas:null,InFrontOfTheCanvas:null,Canvas:e0,...n}),[n]),children:t})}function tR(){return(0,p.useContext)(tB)}function tN(){(async()=>await window.__tldraw__hardReset?.())()}function tz(){}let tF=({error:e,editor:t})=>{let n=(0,p.useRef)(null),[r,i]=(0,p.useState)(!1),[o,s]=(0,p.useState)(!1),[l,c]=(0,p.useState)(!1),{Canvas:d}=tR(),u=e instanceof Error?e.message:String(e),g=e instanceof Error?e.stack:null,y=(0,a.Hg)("isDarkMode",()=>{try{if(t)return t.user.getIsDarkMode()}catch{}return null},[t]),[x,w]=(0,p.useState)(null);(0,p.useLayoutEffect)(()=>{null!==y&&w(y);let e=n.current?.parentElement,t=!1;for(;e;){if(e.classList.contains("tl-theme__dark")||e.classList.contains("tl-theme__light")){t=!0;break}e=e.parentElement}if(t){w(null);return}w(window.matchMedia("(prefers-color-scheme: dark)").matches)},[y]),(0,p.useEffect)(()=>{if(o){let e=setTimeout(()=>{s(!1)},2e3);return()=>clearTimeout(e)}},[o]);let v=async()=>{tN()},S=new URL("https://github.com/tldraw/tldraw/issues/new");return S.searchParams.set("title",u),S.searchParams.set("labels","bug"),S.searchParams.set("body",`Hey, I ran into an error while using tldraw:
14
15\`\`\`js
16${g??u}
17\`\`\`
18
19My browser: ${navigator.userAgent}`),(0,h.jsxs)("div",{ref:n,className:f("tl-container tl-error-boundary",null===x?"":x?"tl-theme__dark":"tl-theme__light"),children:[(0,h.jsx)("div",{className:"tl-error-boundary__overlay"}),t&&(0,h.jsx)(m,{onError:tz,fallback:()=>null,children:(0,h.jsx)(b.r.Provider,{value:t,children:(0,h.jsx)("div",{className:"tl-overlay tl-error-boundary__canvas",children:d?(0,h.jsx)(d,{}):null})})}),(0,h.jsx)("div",{className:f("tl-modal","tl-error-boundary__content",{"tl-error-boundary__content__expanded":r&&!l}),children:l?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("h2",{children:"Are you sure?"}),(0,h.jsx)("p",{children:"Resetting your data will delete your drawing and cannot be undone."}),(0,h.jsxs)("div",{className:"tl-error-boundary__content__actions",children:[(0,h.jsx)("button",{onClick:()=>c(!1),children:"Cancel"}),(0,h.jsx)("button",{className:"tl-error-boundary__reset",onClick:v,children:"Reset data"})]})]}):(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("h2",{children:"Something's gone wrong."}),(0,h.jsxs)("p",{children:["Sorry, we encountered an error. Please refresh the page to continue. If you keep seeing this error, you can ",(0,h.jsx)("a",{href:S.toString(),children:"create a GitHub issue"})," or"," ",(0,h.jsx)("a",{href:"https://discord.gg/Cq6cPsTfNy",children:"ask for help on Discord"}),"."]}),r&&(0,h.jsxs)(h.Fragment,{children:["Message:",(0,h.jsx)("h4",{children:(0,h.jsx)("code",{children:u})}),"Stack trace:",(0,h.jsxs)("div",{className:"tl-error-boundary__content__error",children:[(0,h.jsx)("pre",{children:(0,h.jsx)("code",{children:g??u})}),(0,h.jsx)("button",{onClick:()=>{let e=document.createElement("textarea");e.value=g??u,document.body.appendChild(e),e.select(),document.execCommand("copy"),e.remove(),s(!0)},children:o?"Copied!":"Copy"})]})]}),(0,h.jsxs)("div",{className:"tl-error-boundary__content__actions",children:[(0,h.jsx)("button",{onClick:()=>i(!r),children:r?"Hide details":"Show details"}),(0,h.jsxs)("div",{className:"tl-error-boundary__content__actions__group",children:[(0,h.jsx)("button",{className:"tl-error-boundary__reset",onClick:()=>c(!0),children:"Reset data"}),(0,h.jsx)("button",{className:"tl-error-boundary__refresh",onClick:()=>{window.location.reload()},children:"Refresh Page"})]})]})]})})]})};var tU=n(41276),tH=n(16610);function tZ(){let e=(0,b.j)();return(0,a.Hg)("isDarkMode",()=>e.user.getIsDarkMode(),[e])}let tV="<path d='m19.7432 17.0869-4.072 4.068 2.829 2.828-8.473-.013-.013-8.47 2.841 2.842 4.075-4.068 1.414-1.415-2.844-2.842h8.486v8.484l-2.83-2.827z' fill='%23fff'/><path d='m18.6826 16.7334-4.427 4.424 1.828 1.828-5.056-.016-.014-5.054 1.842 1.841 4.428-4.422 2.474-2.475-1.844-1.843h5.073v5.071l-1.83-1.828z' fill='%23000'/>",tK="<path d='m9 17.9907v.005l5.997 5.996.001-3.999h1.999 2.02v4l5.98-6.001-5.98-5.999.001 4.019-2.021.002h-2l.001-4.022zm1.411.003 3.587-3.588-.001 2.587h3.5 2.521v-2.585l3.565 3.586-3.564 3.585-.001-2.585h-2.521l-3.499-.001-.001 2.586z' fill='%23fff'/><path d='m17.4971 18.9932h2.521v2.586l3.565-3.586-3.565-3.585v2.605h-2.521-3.5v-2.607l-3.586 3.587 3.586 3.586v-2.587z' fill='%23000'/>",tW='<path d="M22.4789 9.45728L25.9935 12.9942L22.4789 16.5283V14.1032C18.126 14.1502 14.6071 17.6737 14.5675 22.0283H17.05L13.513 25.543L9.97889 22.0283H12.5674C12.6071 16.5691 17.0214 12.1503 22.4789 12.1031L22.4789 9.45728Z" fill="black"/><path fill-rule="evenodd" clip-rule="evenodd" d="M21.4789 7.03223L27.4035 12.9945L21.4789 18.9521V15.1868C18.4798 15.6549 16.1113 18.0273 15.649 21.0284H19.475L13.5128 26.953L7.55519 21.0284H11.6189C12.1243 15.8155 16.2679 11.6677 21.4789 11.1559L21.4789 7.03223ZM22.4789 12.1031C17.0214 12.1503 12.6071 16.5691 12.5674 22.0284H9.97889L13.513 25.543L17.05 22.0284H14.5675C14.5705 21.6896 14.5947 21.3558 14.6386 21.0284C15.1157 17.4741 17.9266 14.6592 21.4789 14.1761C21.8063 14.1316 22.1401 14.1069 22.4789 14.1032V16.5284L25.9935 12.9942L22.4789 9.45729L22.4789 12.1031Z" fill="white"/>';function tY(e,t,n,r,i,o=16,s=16){let a=(-n-t)*(v.PI/180),l=Math.sin(a),c=Math.cos(a);return`url("data:image/svg+xml,<svg height='32' width='32' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg' style='color: ${i};'><defs><filter id='shadow' y='-40%' x='-40%' width='180px' height='180%' color-interpolation-filters='sRGB'><feDropShadow dx='${1*c-1*l}' dy='${1*l+1*c}' stdDeviation='1.2' flood-opacity='.5'/></filter></defs><g fill='none' transform='rotate(${t+n} 16 16)${r?" scale(-1,-1) translate(0, -32)":""}' filter='url(%23shadow)'>`+e.replaceAll('"',"'")+`</g></svg>") ${o} ${s}, pointer`}let tG=["default","pointer","cross","move","grab","grabbing","text","zoom-in","zoom-out"],tX={none:()=>"none","ew-resize":(e,t,n)=>tY(tK,e,0,t,n),"ns-resize":(e,t,n)=>tY(tK,e,90,t,n),"nesw-resize":(e,t,n)=>tY(tV,e,0,t,n),"nwse-resize":(e,t,n)=>tY(tV,e,90,t,n),"nwse-rotate":(e,t,n)=>tY(tW,e,0,t,n),"nesw-rotate":(e,t,n)=>tY(tW,e,90,t,n),"senw-rotate":(e,t,n)=>tY(tW,e,180,t,n),"swne-rotate":(e,t,n)=>tY(tW,e,270,t,n)};function tq(e,t=0,n="black"){return tX[e]((0,v.vi)(t),!1,n)}var tJ=n(73565);let tQ="TLDRAW_TAB_ID_v2",t0=globalThis.window,t1=t0?.[tQ]??t0?.sessionStorage[tQ]??"TLDRAW_INSTANCE_STATE_V1_"+(0,tJ.E)();t0&&(t0[tQ]=t1,t0&&(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(t0.navigator.platform)||t0.navigator.userAgent.includes("Mac")&&"ontouchend"in document)?t0.sessionStorage[tQ]=t1:delete t0.sessionStorage[tQ]),t0?.addEventListener("beforeunload",()=>{t0.sessionStorage[tQ]=t1});let t2=u.T.object({version:u.T.number,currentPageId:c.CF,isFocusMode:u.T.boolean,exportBackgroun
19d:u.T.boolean,isDebugMode:u.T.boolean,isToolLocked:u.T.boolean,isGridMode:u.T.boolean,pageStates:u.T.arrayOf(u.T.object({pageId:c.CF,camera:u.T.object({x:u.T.number,y:u.T.number,z:u.T.number}),selectedShapeIds:u.T.arrayOf(c.u5),focusedGroupId:c.u5.nullable()}))}),t8=(0,l.zn)({currentVersion:0}),t3=(e,t)=>t.some(t=>e instanceof t),t5=new WeakMap,t4=new WeakMap,t6=new WeakMap,t9=new WeakMap,t7=new WeakMap,ne={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return t4.get(e);if("objectStoreNames"===t)return e.objectStoreNames||t6.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return nt(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function nt(e){var t;if(e instanceof IDBRequest)return function(e){let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener("success",i),e.removeEventListener("error",o)},i=()=>{t(nt(e.result)),r()},o=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",o)});return t.then(t=>{t instanceof IDBCursor&&t5.set(t,e)}).catch(()=>{}),t7.set(t,e),t}(e);if(t9.has(e))return t9.get(e);let n="function"==typeof(t=e)?t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(i||(i=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(nn(this),e),nt(t5.get(this))}:function(...e){return nt(t.apply(nn(this),e))}:function(e,...n){let r=t.call(nn(this),e,...n);return t6.set(r,e.sort?e.sort():[e]),nt(r)}:(t instanceof IDBTransaction&&function(e){if(t4.has(e))return;let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",o),e.removeEventListener("abort",o)},i=()=>{t(),r()},o=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",i),e.addEventListener("error",o),e.addEventListener("abort",o)});t4.set(e,t)}(t),t3(t,r||(r=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(t,ne):t;return n!==e&&(t9.set(e,n),t7.set(n,e)),n}let nn=e=>t7.get(e),nr=["get","getKey","getAll","getAllKeys","count"],ni=["put","add","delete","clear"],no=new Map;function ns(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(no.get(t))return no.get(t);let n=t.replace(/FromIndex$/,""),r=t!==n,i=ni.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||nr.includes(n)))return;let o=async function(e,...t){let o=this.transaction(e,i?"readwrite":"readonly"),s=o.store;return r&&(s=s.index(t.shift())),(await Promise.all([s[n](...t),i&&o.done]))[0]};return no.set(t,o),o}ne={...s=ne,get:(e,t,n)=>ns(e,t)||s.get(e,t,n),has:(e,t)=>!!ns(e,t)||s.has(e,t)};let na="TLDRAW_DOCUMENT_v2",nl="TLDRAW_DB_NAME_INDEX_v2",nc={Records:"records",Schema:"schema",SessionState:"session_state"};async function nd(e,t){!function(e){let t=new Set(ng());t.add(e),window?.localStorage.setItem(nl,JSON.stringify([...t]))}(e);let n=await function(e,t,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){let s=indexedDB.open(e,3),a=nt(s);return r&&s.addEventListener("upgradeneeded",e=>{r(nt(s.result),e.oldVersion,e.newVersion,nt(s.transaction),e)}),n&&s.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),a.then(e=>{o&&e.addEventListener("close",()=>o()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),a}(e,0,{upgrade(e){e.objectStoreNames.contains(nc.Records)||e.createObjectStore(nc.Records),e.objectStoreNames.contains(nc.Schema)||e.createObjectStore(nc.Schema),e.objectStoreNames.contains(nc.SessionState)||e.createObjectStore(nc.SessionState)}});try{return await t(n)}finally{n.close()}}async function nu({persistenceKey:e,sessionId:t,didCancel:n}){let r=na+e;if(ng().includes(r))return await nf({persistenceKey:e,didCancel:n}),await nd(r,async e=>{if(n?.())return;let r=e.transaction([nc.Records,nc.Schema,nc.SessionState],"readonly"),i=r.objectStore(nc.Records),o=r.objectStore(nc.Schema),s=r.objectStore(nc.SessionState),a=t?(await s.get(t))?.snapshot:null;if(!a){let e=await s.getAll();a=e.sort((e,t)=>
19e.updatedAt-t.updatedAt).pop()?.snapshot}let l={records:await i.getAll(),schema:await o.get(nc.Schema),sessionStateSnapshot:a};if(n?.()){r.abort();return}return await r.done,l})}async function nh({persistenceKey:e,schema:t,changes:n,sessionId:r,sessionStateSnapshot:i,didCancel:o}){let s=na+e;await nd(s,async e=>{let s=e.transaction([nc.Records,nc.Schema,nc.SessionState],"readwrite"),a=s.objectStore(nc.Records),l=s.objectStore(nc.Schema),c=s.objectStore(nc.SessionState);for(let[e,t]of Object.entries(n.added))await a.put(t,e);for(let[e,t]of Object.values(n.updated))await a.put(t,t.id);for(let e of Object.keys(n.removed))await a.delete(e);if(l.put(t.serialize(),nc.Schema),i&&r?c.put({snapshot:i,updatedAt:Date.now(),id:r},r):(i||r)&&console.error("sessionStateSnapshot and instanceId must be provided together"),o?.())return s.abort();await s.done})}async function np({persistenceKey:e,schema:t,snapshot:n,sessionId:r,sessionStateSnapshot:i,didCancel:o}){let s=na+e;await nd(s,async e=>{let s=e.transaction([nc.Records,nc.Schema,nc.SessionState],"readwrite"),a=s.objectStore(nc.Records),l=s.objectStore(nc.Schema),c=s.objectStore(nc.SessionState);for(let[e,t]of(await a.clear(),Object.entries(n)))await a.put(t,e);if(l.put(t.serialize(),nc.Schema),i&&r?c.put({snapshot:i,updatedAt:Date.now(),id:r},r):(i||r)&&console.error("sessionStateSnapshot and instanceId must be provided together"),o?.())return s.abort();await s.done})}async function nf({persistenceKey:e,didCancel:t}){await nd(na+e,async e=>{let n=e.transaction([nc.SessionState],"readwrite"),r=n.objectStore(nc.SessionState),i=(await r.getAll()).sort((e,t)=>e.updatedAt-t.updatedAt);if(i.length<10){await n.done;return}let o=i.slice(0,i.length-10);for(let{id:e}of o)await r.delete(e);if(t?.())return n.abort();await n.done})}function ng(){let e=JSON.parse(window?.localStorage.getItem(nl)||"[]")??[];return Array.isArray(e)?e:[]}let nm=Symbol("UPDATE_INSTANCE_STATE"),ny=e=>e,nb="undefined"==typeof BroadcastChannel?class{onmessage;constructor(e){}postMessage(e){}close(){}}:BroadcastChannel;class nx{constructor(e,{persistenceKey:t,sessionId:n=t1,onLoad:r,onLoadError:i},o=new nb(`tldraw-tab-sync-${t}`)){this.store=e,this.channel=o,"undefined"!=typeof window&&(window.tlsync=this),this.persistenceKey=t,this.sessionId=n,this.serializedSchema=this.store.schema.serialize(),this.$sessionStateSnapshot=function(e){let t=e.query.ids("page");return(0,a.Fl)("sessionStateSnapshot",()=>{let n=e.get(c.PQ);if(!n)return null;let r=[...t.get()];return{version:0,currentPageId:n.currentPageId,exportBackground:n.exportBackground,isFocusMode:n.isFocusMode,isDebugMode:n.isDebugMode,isToolLocked:n.isToolLocked,isGridMode:n.isGridMode,pageStates:r.map(t=>{let n=e.get(c.iS.createId(t)),r=e.get(c.AN.createId(t));return{pageId:t,camera:{x:r?.x??0,y:r?.y??0,z:r?.z??1},selectedShapeIds:n?.selectedShapeIds??[],focusedGroupId:n?.focusedGroupId??null}})}})}(this.store),this.disposables.add(e.listen(({changes:e})=>{this.diffQueue.push(e),this.channel.postMessage(ny({type:"diff",storeId:this.store.id,changes:e,schema:this.serializedSchema})),this.schedulePersist()},{source:"user",scope:"document"})),this.disposables.add(e.listen(()=>{this.diffQueue.push(nm),this.schedulePersist()},{scope:"session"})),this.connect(r,i),this.documentTypes=new Set(Object.values(this.store.schema.types).filter(e=>"document"===e.scope).map(e=>e.typeName))}disposables=new Set;diffQueue=[];didDispose=!1;shouldDoFullDBWrite=!0;isReloading=!1;persistenceKey;sessionId;serializedSchema;isDebugging=!1;documentTypes;$sessionStateSnapshot;initTime=Date.now();debug(...e){this.isDebugging&&console.debug(...e)}async connect(e,t){let n;this.debug("connecting");try{n=await nu({persistenceKey:this.persistenceKey,sessionId:this.sessionId,didCancel:()=>this.didDispose})}catch(e){t(e),window.alert(`Oops! We could not access your browser's storage\u2014and the app won't work correctly without that. We now need to reload the page and try again.
20
21Keep seeing this message?
22\u2022 If you're using tldraw in a private or "incognito" window, try loading tldraw in a regular window or in a different browser.`),"undefined"!=typeof window&&window.location.reload();return}if(this.debug("loaded data from store",n,"didDispose",this.didDispose),!this.didDispose)try{if(n){let e=Object.fromEntries(n.records.map(e=>[e.id,e])),r=n.sessionStateSnapshot??function(e){let t=[];for(let n of Object.values(e))n.typeName?.match(/^(instance.*|pointer|camera)$/)&&t.push(n);let n=t.filter(e=>"instance"===e.typeName&&e.id!==c.PQ)[0];if(!n)return null;
22let r={version:0,currentPageId:n.currentPageId,exportBackground:!!n.exportBackground,isFocusMode:!!n.isFocusMode,isDebugMode:!!n.isDebugMode,isToolLocked:!!n.isToolLocked,isGridMode:!1,pageStates:t.filter(e=>"instance_page_state"===e.typeName&&e.instanceId===n.id).map(t=>{let n=e[t.cameraId]??{x:0,y:0,z:1};return{pageId:t.pageId,camera:{x:n.x,y:n.y,z:n.z},selectedShapeIds:t.selectedShapeIds,focusedGroupId:t.focusedGroupId}})};try{return t2.validate(r),r}catch(e){return null}}(e),i=this.store.schema.migrateStoreSnapshot({store:e,schema:n.schema??this.store.schema.serializeEarliestVersion()});if("error"===i.type){console.error("failed to migrate store",i),t(Error(`Failed to migrate store: ${i.reason}`));return}this.store.mergeRemoteChanges(()=>{this.store.put(Object.values(i.value).filter(e=>this.documentTypes.has(e.typeName)),"initialize")}),r&&function(e,t){let n=function(e){if(!e||"object"!=typeof e)return console.warn("Invalid instance state"),null;if(!("version"in e)||"number"!=typeof e.version)return console.warn("No version in instance state"),null;let t=(0,l.Te)({value:e,fromVersion:e.version,toVersion:0,migrations:t8});if("error"===t.type)return console.warn(t.reason),null;let n={...t.value,version:0};try{t2.validate(n)}catch(e){return console.warn(e),null}return n}(t);if(!n)return;let r=e.allRecords().filter(e=>"instance_page_state"===e.typeName||"camera"===e.typeName),i={added:{},updated:{},removed:{...(0,d.Ls)(r.map(e=>[e.id,e]))}};e.has(c.PQ)&&(i.removed[c.PQ]=e.get(c.PQ));let o={removed:{},updated:{},added:{[c.PQ]:e.schema.types.instance.create({id:c.PQ,currentPageId:n.currentPageId,isDebugMode:n.isDebugMode,isFocusMode:n.isFocusMode,isToolLocked:n.isToolLocked,isGridMode:n.isGridMode,exportBackground:n.exportBackground})}};for(let e of n.pageStates){let t=c.AN.createId(e.pageId),n=c.iS.createId(e.pageId);o.added[t]=c.AN.create({id:c.AN.createId(e.pageId),x:e.camera.x,y:e.camera.y,z:e.camera.z}),o.added[n]=c.iS.create({id:c.iS.createId(e.pageId),pageId:e.pageId,selectedShapeIds:e.selectedShapeIds,focusedGroupId:e.focusedGroupId})}(0,a.ay)(()=>{e.applyDiff((0,l.bs)([i,o])),e.ensureStoreIsUsable()})}(this.store,r)}this.channel.onmessage=({data:e})=>{this.debug("got message",e);let n=(0,l.$F)(this.serializedSchema,e.schema??this.store.schema.serializeEarliestVersion());if(-1===n){let e=Date.now()-this.initTime;if(e<5e3){t(Error("Schema mismatch, please close other tabs and reload the page"));return}this.debug("reloading"),this.isReloading=!0,window?.location?.reload?.();return}if(1===n){this.debug("telling them to reload"),this.channel.postMessage({type:"announce",schema:this.serializedSchema}),this.shouldDoFullDBWrite=!0,this.persistIfNeeded();return}"diff"===e.type&&(this.debug("applying diff"),(0,a.ay)(()=>{this.store.mergeRemoteChanges(()=>{this.store.applyDiff(e.changes),this.store.ensureStoreIsUsable()})}))},this.channel.postMessage({type:"announce",schema:this.serializedSchema}),this.disposables.add(()=>{this.channel.close()}),e(this)}catch(e){if(this.debug("error loading data from store",e),this.didDispose)return;t(e);return}}close(){this.debug("closing"),this.didDispose=!0,this.disposables.forEac
22h(e=>e())}isPersisting=!1;didLastWriteError=!1;scheduledPersistTimeout=null;schedulePersist(){this.debug("schedulePersist",this.scheduledPersistTimeout),this.scheduledPersistTimeout||(this.scheduledPersistTimeout=setTimeout(()=>{this.scheduledPersistTimeout=null,this.persistIfNeeded()},this.didLastWriteError?1e4:350))}persistIfNeeded(){this.debug("persistIfNeeded",{isPersisting:this.isPersisting,isReloading:this.isReloading,shouldDoFullDBWrite:this.shouldDoFullDBWrite,diffQueueLength:this.diffQueue.length,storeIsPossiblyCorrupt:this.store.isPossiblyCorrupted()}),this.scheduledPersistTimeout&&(clearTimeout(this.scheduledPersistTimeout),this.scheduledPersistTimeout=null),this.isPersisting||this.isReloading||this.store.isPossiblyCorrupted()||!this.shouldDoFullDBWrite&&!(this.diffQueue.length>0)||this.doPersist()}async doPersist(){(0,d.hu)(!this.isPersisting,"persist already in progress"),this.isPersisting=!0,this.debug("doPersist start");let e=this.diffQueue;this.diffQueue=[];try{if(this.shouldDoFullDBWrite)this.shouldDoFullDBWrite=!1,await np({persistenceKey:this.persistenceKey,schema:this.store.schema,snapshot:this.store.serialize(),didCancel:()=>this.didDispose,sessionId:this.sessionId,sessionStateSnapshot:this.$sessionStateSnapshot.get()});else{let t=(0,l.bs)(e.filter(e=>e!==nm));await nh({persistenceKey:this.persistenceKey,changes:t,schema:this.store.schema,didCancel:()=>this.didDispose,sessionId:this.sessionId,sessionStateSnapshot:this.$sessionStateSnapshot.get()})}this.didLastWriteError=!1}catch(e){this.shouldDoFullDBWrite=!0,this.didLastWriteError=!0,console.error("failed to store changes in indexed db",e),window.alert(`Oops! We could not save changes to your browser's storage. We now need to reload the page and try again.
23
24Keep seeing this message?
25\u2022 If you're using tldraw in a private or "incognito" window, try loading tldraw in a regular window or in a different browser.
26\u2022 If your hard disk is full, try clearing up some space and then reload the page.`),"undefined"!=typeof window&&window.location.reload()}this.isPersisting=!1,this.debug("doPersist end"),this.schedulePersist()}}var nw=n(80492);function nv(e){let t=function({initialData:e,defaultName:t="",...n}){let r="schema"in n&&n.schema?n.schema:(0,c.HH)({shapes:Object.fromEntries((0,nw.m)("shapeUtils"in n&&n.shapeUtils?n.shapeUtils:[]).map(e=>[e.type,{props:e.props,migrations:e.migrations}]))});return new l.yh({schema:r,initialData:e,props:{defaultName:t}})}(e);return e.snapshot&&t.loadSnapshot(e.snapshot),{store:t,opts:e}}function nS(e){let[t,n]=(0,p.useState)(()=>nv(e));if(!(0,d.dn)(t.opts,e)){let t=nv(e);return n(t),t.store}return t.store}let nk=!1;if("undefined"!=typeof window){let e=window.navigator.userAgent,t=!!e.match(/iPad/i)||!!e.match(/iPhone/i),n=!!e.match(/WebKit/i);nk=t&&n&&!e.match(/CriOS/i)}let nj=[],n_=[],nE=(0,p.memo)(function({store:e,components:t,className:n,user:r,...i}){let[o,s]=p.useState(null),a=(0,p.useMemo)(()=>r??(0,tU.L)(),[r]),c=t?.ErrorFallback===void 0?tF:t?.ErrorFallback,u={...i,shapeUtils:i.shapeUtils??nj,tools:i.tools??n_,components:t};return(0,h.jsx)("div",{ref:s,draggable:!1,className:f("tl-container tl-theme__light",n),onPointerDown:D,tabIndex:-1,children:(0,h.jsx)(y,{fallback:c,onError:e=>(0,d.lw)(e,{tags:{origin:"react.tldraw-before-app"}}),children:o&&(0,h.jsx)(L,{container:o,children:(0,h.jsx)(tL,{overrides:t,children:e?e instanceof l.yh?(0,h.jsx)(nI,{...u,store:e,user:a}):(0,h.jsx)(nP,{...u,store:e,user:a}):(0,h.jsx)(nC,{...u,store:e,user:a})})})})})});function nC(e){let{defaultName:t,snapshot:n,initialData:r,shapeUtils:i,persistenceKey:o,sessionId:s,user:a}=e,l=function({persistenceKey:e,sessionId:t,...n}){let[r,i]=(0,p.useState)(null),o=nS(n);return(0,p.useEffect)(()=>{let n=(0,tJ.E)();if(!e){i({id:n,storeWithStatus:{status:"not-synced",store:o}});return}i({id:n,storeWithStatus:{status:"loading"}});let r=e=>{i(t=>t?.id===n?{id:n,storeWithStatus:e}:t)},s=new nx(o,{sessionId:t,persistenceKey:e,onLoad(){r({store:o,status:"synced-local"})},onLoadError(e){r({status:"error",error:e})}});return()=>{i(e=>e?.id===n?null:e),s.close()}},[e,o,t]),r?.storeWithStatus??{status:"loading"}}({shapeUtils:i,initialData:r,persistenceKey:o,sessionId:s,defaultName:t,snapshot:n});return(0,h.jsx)(nP,{...e,store:l,user:a})}let nP=(0,p.memo)(function({store:e,user:t,...n}){let r=R();(0,p.useLayoutEffect)(()=>{t.userPreferences.get().isDarkMode&&(r.classList.remove("tl-theme__light"),r.classList.add("tl-theme__dark"))},[r,t]);let{LoadingScreen:i}=tR();switch(e.status){case"error":throw e.error;case"loading":return i?(0,h.jsx)(i,{}):null}return(0,h.jsx)(nI,{...n,store:e.store,user:t})});function nI({onMount:e,children:t,store:n,tools:r,shapeUtils:i,user:o,initialState:s,autoFocus:a=!0,inferDarkMode:l}){let{ErrorFallback:c}=tR(),d=R(),[u,f]=(0,p.useState)(null);(0,p.useLayoutEffect)(()=>{let e=new tH.M({store:n,shapeUtils:i,tools:r,getContainer:()=>d,user:o,initialState:s,inferDarkMode:l});return f(e),()=>{e.dispose()}},[d,i,r,n,o,s,l]);let g=(0,p.useSyncExternalStore)((0,p.useCallback)(e=>u?(u.on("crash",e),()=>u.off("crash",e)):()=>{},[u]),()=>u?.getCrashingError()??null),{Canvas:m}=tR();return u?(0,h.jsx)(y,{fallback:c,onError:e=>u.annotateError(e,{origin:"react.tldraw",willCrashApp:!0}),children:g?(0,h.jsx)(nM,{crashingError:g}):(0,h.jsx)(b.r.Provider,{value:u,children:(0,h.jsx)(nT,{autoFocus:a,onMount:e,children:t??(m?(0,h.jsx)(m,{}):null)})})}):null}
26function nT({children:e,onMount:t,autoFocus:n}){return!function(){let e=(0,b.j)(),t=R();p.useEffect(()=>{let n=e=>t.style.setProperty("--tl-zoom",e.toString()),r=(0,d.Ds)(n,100),i=new a.R0("useZoomCss",()=>{let t=e.getCurrentPageShapeIds().size;t<300?n(e.getZoomLevel()):r(e.getZoomLevel())});return i.attach(),i.execute(),()=>{i.detach()}},[e,t])}(),!function(){let e=(0,b.j)(),t=R(),n=tZ();(0,a.BK)("useCursor",()=>{let{type:r,rotation:i}=e.getInstanceState().cursor;if(tG.includes(r)){t.style.setProperty("--tl-cursor",`var(--tl-cursor-${r})`);return}t.style.setProperty("--tl-cursor",tq(r,i,n?"white":"black"))},[e,t,n])}(),!function(){let e=(0,b.j)(),t=R(),n=tZ(),r=(0,a.Hg)(C.forceSrgb);p.useEffect(()=>{n?(t.setAttribute("data-color-mode","dark"),t.classList.remove("tl-theme__light"),t.classList.add("tl-theme__dark")):(t.setAttribute("data-color-mode","light"),t.classList.remove("tl-theme__dark"),t.classList.add("tl-theme__light")),r?t.classList.add("tl-theme__force-sRGB"):t.classList.remove("tl-theme__force-sRGB")},[e,t,r,n])}(),!function(){let e=(0,b.j)();p.useEffect(()=>{if(nk)return document.addEventListener("focusout",t),()=>document.removeEventListener("focusout",t);function t(t){(t.target instanceof HTMLInputElement&&"text"===t.target.type||t.target instanceof HTMLTextAreaElement)&&e.complete()}},[e])}(),!function(){let[e,t]=(0,p.useState)(0);(0,p.useEffect)(()=>t(e=>e+1),[])}(),!function(e){let t=(0,b.j)(),n=R();(0,p.useLayoutEffect)(()=>{e?(t.getInstanceState().isFocused||t.updateInstanceState({isFocused:!0}),t.getContainer().focus()):t.getInstanceState().isFocused&&t.updateInstanceState({isFocused:!1})},[t,n,e])}(n),function(e){let t=(0,b.j)(),n=function(e){let t=(0,p.useRef)();return(0,p.useLayoutEffect)(()=>{t.current=e}),(0,p.useDebugValue)(e),(0,p.useCallback)((...e)=>{let n=t.current;return(0,d.hu)(n,"fn does not exist"),n(...e)},[])}(t=>{let n=e?.(t);return t.emit("mount"),window.tldrawReady=!0,n});p.useLayoutEffect(()=>{if(t)return n?.(t)},[t,n])}(t),(0,h.jsx)(h.Fragment,{children:e})}function nM({crashingError:e}){throw e}function nA({children:e}){return(0,h.jsx)("div",{className:"tl-loading",children:e})}function n$({children:e}){return(0,h.jsx)("div",{className:"tl-loading",children:e})}function nD({children:e,className:t="",...n}){return(0,h.jsx)("div",{...n,className:`tl-html-container ${t}`,children:e})}var nO=n(13537);n(20575),n(79461);var nB=n(85990),nL=n(99742);function nR(e,t,n={}){let{newPoint:r,handle:i,scaleX:o,scaleY:s}=t,{minWidth:a=1,maxWidth:l=1/0,minHeight:c=1,maxHeight:d=1/0}=n,u=e.props.w*o,h=e.props.h*s,p=new eT.B(0,0);if(u>0){if(u<a){switch(i){case"top_left":case"left":case"bottom_left":p.x=u-a;break;case"top":case"bottom":p.x=(u-a)/2;break;default:p.x=0}u=a}}else if(p.x=u,(u=-u)<a){switch(i){case"top_left":case"left":case"bottom_left":p.x=-u;break;default:p.x=-a}u=a}if(h>0){if(h<c){switch(i){case"top_left":case"top":case"top_right":p.y=h-c;break;case"right":case"left":p.y=(h-c)/2;break;default:p.y=0}h=c}}else if(p.y=h,(h=-h)<c){switch(i){case"top_left":case"top":case"top_right":p.y=-h;break;default:p.y=-c}h=c}let{x:f,y:g}=p.rot(e.rotation).add(r);return{x:f,y:g,props:{w:Math.min(l,u),h:Math.min(d,h)}}}class nN extends nL.E{getGeometry(e){return new nB.z({width:e.props.w,height:e.props.h,isFilled:!0})}onResize=(e,t)=>
26nR(e,t);getHandleSnapGeometry(e){return{points:this.getGeometry(e).bounds.cornersAndCenter}}}n(52778);var nz=n(35407),nF=n(58191);class nU extends nF.n{static id="idle";onPointerDown=e=>{this.parent.transition("pointing",e)};onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})};onCancel=()=>{this.editor.setCurrentTool("select")}}class nH extends nF.n{static id="pointing";markId="";wasFocusedOnEnter=!1;onEnter=()=>{this.wasFocusedOnEnter=!this.editor.getIsMenuOpen()};onPointerMove=e=>{if(this.editor.inputs.isDragging){let{originPagePoint:t}=this.editor.inputs,n=this.parent.shapeType,r=(0,c.F1)();this.markId=`creating:${r}`,this.editor.mark(this.markId),this.editor.createShapes([{id:r,type:n,x:t.x,y:t.y,props:{w:1,h:1}}]).select(r),this.editor.setCurrentTool("select.resizing",{...e,target:"selection",handle:"bottom_right",isCreating:!0,creationCursorOffset:{x:1,y:1},onInteractionEnd:this.parent.id,onCreate:this.parent.onCreate})}};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.cancel()};complete(){let{originPagePoint:e}=this.editor.inputs;if(!this.wasFocusedOnEnter)return;this.editor.mark(this.markId);let t=this.parent.shapeType,n=(0,c.F1)();this.editor.mark(this.markId),this.editor.createShapes([{id:n,type:t,x:e.x,y:e.y}]);let r=this.editor.getShape(n),{w:i,h:o}=this.editor.getShapeUtil(r).getDefaultProps(),s=new eT.B(i/2,o/2),a=this.editor.getShapeParentTransform(r);a&&s.rot(-a.rotation()),this.editor.updateShapes([{id:n,type:t,x:r.x-s.x,y:r.y-s.y}]),this.editor.setSelectedShapes([n]),this.editor.getInstanceState().isToolLocked?this.parent.transition("idle"):this.editor.setCurrentTool("select.idle")}cancel(){this.parent.transition("idle")}}class nZ extends nF.n{static id="box";static initial="idle";static children=()=>[nU,nH];onCreate}function nV(e){let t=(0,b.j)();return(0,a.Hg)("isCropping",()=>t.getCroppingShapeId()===e,[t,e])}function nK(e){let t=(0,b.j)();return(0,a.Hg)("isEditing",()=>t.getEditingShapeId()===e,[t,e])}function nW(e){let t=(0,b.j)(),n=(0,p.useMemo)(function(){let n,r;return{onPointerDown:n=>{if(n.isKilled)return;if(2===n.button){t.dispatch({type:"pointer",target:"selection",handle:e,name:"right_click",...O(n)});return}if(0!==n.button)return;let r=T(n.currentTarget);A(r,n),r.addEventListener("pointerup",function e(){r.removeEventListener("pointerup",e),$(r,n)}),t.dispatch({name:"pointer_down",type:"pointer",target:"selection",handle:e,...O(n)}),D(n)},onPointerMove:function(i){i.isKilled||0!==i.button||i.clientX===n&&i.clientY===r||(n=i.clientX,r=i.clientY,t.dispatch({name:"pointer_move",type:"pointer",target:"selection",handle:e,...O(i)}))},onPointerUp:n=>{n.isKilled||0!==n.button||t.dispatch({name:"pointer_up",type:"pointer",target:"selection",handle:e,...O(n)})}}},[t,e]);return n}n(77162);var nY=n(80695),nG=n(96284),nX=n(52938);function nq(e,t=20){return Math.max(8,Math.ceil(e/t))}class nJ extends nX.l{_center;radius;start;end;measure;length;angleStart;angleEnd;constructor(e){super({...e,isFilled:!1,isClosed:!1});let{center:t,radius:n,sweepFlag:r,largeArcFlag:i,start:o,end:s}=e;if(o.equals(s))throw Error("Arc must have different start and end points.");this.angleStart=eT.B.Angle(t,o),this.angleEnd=eT.B.Angle(t,s),this.measure=(0,v.D4)(this.angleStart,this.angleEnd,r,i),this.length=this.measure*n,this.start=o,this.end=s,this._center=t,this.radius=n}nearestPoint(e){let t;let{_center:n,measure:r,radius:i,angleEnd:o,angleStart:s,start:a,end:l}=this,c=(0,v.rW)(r,s,o,n.angle(e));if(c<=0)return a;if(c>=1)return l;let d=n.clone().add(e.clone().sub(n).uni().mul(i)),u=1/0;for(let n of[a,l,d])e.dist(n)<u&&(t=n,u=e.dist(n));if(!t)throw Error("nearest point not found");return t}hitTestLineSegment(e,t,n){let{_center:r,radius:i,measure:o,angleStart:s,angleEnd:a}=this,l=(0,nG.ZM)(e,t,r,i);return null!==l&&l.some(e=>{let t=(0,v.rW)(o,s,a,r.angle(e));return t>=0&&t<=1})}getVertices(){let{_center:e,measure:t,length:n,radius:r,angleStart:i}=this,o=[];for(let s=0,a=nq(Math.abs(n));s<a+1;s++){let n=s/a*t,l=i+n;o.push((0,v.XD)(e,r,l))}return o}}class nQ extends nX.l{constructor(e){super({isClosed:!0,...e}),this.config=e;let{x:t=0,y:n=0,radius:r}=e;this.x=t,this.y=n,this._center=new eT.B(r+t,r+n),this.radius=r}_center;radius;x;y;getBounds(){return new eL.xu(this.x,this.y,2*this.radius,2*this.radius)}getVertices(){let{_center:e,radius:t}=this,n=v.yo*t,r=[];for(let i=0,o=nq(n);i<o;i++){let n=i/o*v.yo;r.push((0,v.XD)(e,t,n))}return r}nearestPoint(e){let{_center:t,radius:n}=this;return t.equals(e)?eT.B.AddXY(t,n,0):t.clone().add(e.clone().sub(t).uni().mul(n))}hitTestLineSegment(e,t,n){let{_center:r,radius:i}=this;return null!==(0,nG.ZM)(e,t,r,i)}}var n0=n(94109);class n1 extends n0.q{a;b;c;d;constructor(e){let{start:t,cp1:n,cp2:r,end:i}=e;super({...e,points:[t,i]}),this.a=t,this.b=n,this.c=r,this.d=i}getVertices(){let e=[],{a:t,b:n,c:r,d:i}=this;for(let o=0;o<=10;o++){let s=o/10;e.push(new eT.B((1-s)*(1-s)*(1-s)*t.x+3*((1-s)*(1-s))*s*n.x+3*(1-s)*(s*s)*r.x+s*s*s*i.x,(1-s)*(1-s)*(1-s)*t.y+3*((1-s)*(1-s))*s*n.y+3*(1-s)*(s*s)*r.y+s*s*s*i.y))}return e}midPoint(){return function(e,t){let{a:n,b:r,c:i,d:o}=e;return new eT.B((1-t)*(1-t)*(1-t)*n.x+3*((1-t)*(1-t))*t*r.x+3*(1-t)*(t*t)*i.x+t*t*t*o.x,(1-t)*(1-t)*(1-t)*n.y+3*((1-t)*(1-t))*t*r.y+3*(1-t)*(t*t)*i.y+t*t*t*o.y)}(this,.5)}nearestPoint(e){let t;let n=1/0;for(let r of this.segments){let i=r.nearestPoint(e),o=i.dist(e);o<n&&(t=i,n=o)}if(!t)throw Error("nearest point not found");return t}}class n2 extends nX.l{points;constructor(e){super({...e,isClosed:!1,isFilled:!1});let{points:t}=e;this.points=t}_segments;get segments(){if(!this._segments){this._segments=[];let{points:e}=this,t=e.length,n=t-2;for(let r=0;r<t-1;r++){let t=0===r?e[0]:e[r-1],i=e[r],o=e[r+1],s=r===n?o:e[r+2],a=0===r?t:new eT.B(i.x+(o.x-t.x)/6*1.25,i.y+(o.y-t.y)/6*1.25),l=r===n?o:new eT.B(o.x-(s.x-i.x)/6*1.25,o.y-(s.y-i.y)/6*1.25);this._segments.push(new n1({start:i,cp1:a,cp2:l,end:o}))}}return this._segments}_length;get length(){return this._length||(this._length=this.segments.reduce((e,t)=>
26e+t.length,0)),this._length}getVertices(){let e=this.segments.reduce((e,t)=>e.concat(t.vertices),[]);return e.push(this.points[this.points.length-1]),e}nearestPoint(e){let t;let n=1/0;for(let r of this.segments){let i=r.nearestPoint(e),o=i.dist(e);o<n&&(t=i,n=o)}if(!t)throw Error("nearest point not found");return t}hitTestLineSegment(e,t,n){return this.segments.some(r=>r.hitTestLineSegment(e,t,n))}}var n8=n(77843);class n3 extends nX.l{constructor(e){super({...e,isClosed:!0}),this.config=e;let{width:t,height:n}=e;this.w=t,this.h=n}w;h;_edges;get edges(){if(!this._edges){let{vertices:e}=this;this._edges=[];for(let t=0,n=e.length;t<n;t++){let r=e[t],i=e[(t+1)%n];this._edges.push(new n8.W({start:r,end:i}))}}return this._edges}getVertices(){let e=Math.max(1,this.w),t=Math.max(1,this.h),n=e/2,r=t/2,i=Math.pow(n-r,2)/Math.pow(n+r,2),o=v.PI*(n+r)*(1+3*i/(10+Math.sqrt(4-3*i))),s=nq(o),a=v.yo/s,l=Math.cos(a),c=Math.sin(a),d=0,u=1,h=0,p=1,f=Array(s);for(let e=0;e<s;e++)f[e]=new eT.B(n+n*u,r+r*d),h=c*u+l*d,p=l*u-c*d,d=h,u=p;return f}nearestPoint(e){let t;let n=1/0;for(let r of this.edges){let i=r.nearestPoint(e),o=i.dist(e);o<n&&(t=i,n=o)}if(!t)throw Error("nearest point not found");return t}hitTestLineSegment(e,t,n){return this.edges.some(r=>r.hitTestLineSegment(e,t,n))}getBounds(){return new eL.xu(0,0,this.w,this.h)}}var n5=n(50603);class n4 extends n3{constructor(e){super({...e}),this.config=e}getVertices(){let e=Math.max(1,this.w),t=Math.max(1,this.h),n=e/2,r=t/2,i=Array(18);if(t>e)for(let e=0;e<9;e++){let r=-v.PI+v.PI*e/8,o=v.PI*e/8;i[e]=new eT.B(n+n*Math.cos(r),n+n*Math.sin(r)),i[e+9]=new eT.B(n+n*Math.cos(o),t-n+n*Math.sin(o))}else for(let n=0;n<9;n++){let o=-v.pj+v.PI*n/8,s=v.pj+-(v.PI*n)/8;i[n]=new eT.B(e-r+r*Math.cos(o),t-r+r*Math.sin(o)),i[n+9]=new eT.B(r-r*Math.cos(s),t-r+r*Math.sin(s))}return i}}var n6=n(85592),n9=n(8662);function n7(e,t,n,r,i){let o=k.rF,s=n?k.EB:0,a=e-s,l=e+s,c=r?0:o,d=i?t:t-o;return a<c?Math.min(1,(c-a)/o):l>d?-Math.min(1,(l-d)/o):0}function re(e){if(!e.inputs.isDragging||e.inputs.isPanning||!e.getInstanceState().canMoveCamera)return;let{inputs:{currentScreenPoint:{x:t,y:n}}}=e,r=e.getZoomLevel(),i=e.getViewportScreenBounds(),o=i.w<1e3?.612:1,s=i.h<1e3?.612:1,{isCoarsePointer:a,insets:[l,c,d,u]}=e.getInstanceState(),h=n7(t,i.w,a,u,c),p=n7(n,i.h,a,l,d);if(0===h&&0===p)return;let f=e.user.getEdgeScrollSpeed()*k.a,g=e.getCamera();e.setCamera({x:g.x+f*h*o/r,y:g.y+f*p*s/r})}var rt=n(99590);async function rn({shouldReload:e=!0}={}){sessionStorage.clear(),await Promise.all(ng().map(e=>(function(e,{blocked:t}={}){let n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",e=>t(e.oldVersion,e)),nt(n).then(()=>void 0)})(e))),localStorage.clear(),e&&window.location.reload()}function rr(e,t="_blank"){window.open(e,t,"noopener noreferrer")}"undefined"!=typeof window&&(window.__tldraw__hardReset=rn),n(6213),n(93578),n(17325),n(38129),n(63766)},13537:function(e,t,n){"use strict";n.d(t,{g:function(){return i}});var r=n(52322);function i({children:e,className:t="",...n}){return(0,r.jsx)("svg",{...n,className:`tl-svg-container ${t}`,children:e})}},20575:function(e,t,n){"use strict";n.d(t,{JM:function(){return S},ks:function(){return f},ng:function(){return p},yu:function(){return b}});var r=n(42869),i=n(37665),o=n(189),s=n(4074),a=n(73565);n(34406);let l="TLDRAW_USER_DATA_v3",c=s.T.object({id:s.T.string,name:s.T.string.nullable().optional(),locale:s.T.string.nullable().optional(),color:s.T.string.nullable().optional(),isDarkMode:s.T.boolean.nullable().optional(),animationSpeed:s.T.number.nullable().optional(),edgeScrollSpeed:s.T.number.nullable().optional(),isSnapMode:s.T.boolean.nullable().optional(),isWrapMode:s.T.boolean.nullable().optional()}),d={AddAnimationSpeed:1,AddIsSnapMode:2,MakeFieldsNullable:3,AddEdgeScrollSpeed:4,AddExcalidrawSelectMode:5},u=(0,i.zn)({currentVersion:d.AddExcalidrawSelectMode,migrators:{[d.AddAnimationSpeed]:{up:e=>({...e,animationSpeed:1}),down:({animationSpeed:e,...t})=>t},[d.AddIsSnapMode]:{up:e=>({...e,isSnapMode:!1}),down:({isSnapMode:e,...t})=>t},[d.MakeFieldsNullable]:{up:e=>e,down:e=>({id:e.id,name:e.name??f.name,locale:e.locale??f.locale,color:e.color??f.color,animationSpeed:e.animationSpeed??f.animationSpeed,isDarkMode:e.isDarkMode??f.isDarkMode,isSnapMode:e.isSnapMode??f.isSnapMode,isWrapMode:e.isWrapMode??f.isWrapMode})},[d.AddEdgeScrollSpeed]:{up:e=>({...e,edgeScrollSpeed:1}),down:({edgeScrollSpeed:e,...t})=>t},[d.AddExcalidrawSelectMode]:{up:e=>({...e,isWrapMode:!1}),down:({isWrapMode:e,...t})=>t}}}
26),h=["#FF802B","#EC5E41","#F2555A","#F04F88","#E34BA9","#BD54C6","#9D5BD2","#7B66DC","#02B1CC","#11B3A3","#39B178","#55B467"];function p(){return"undefined"!=typeof window&&(window.matchMedia?.("(prefers-color-scheme: dark)")?.matches??!1)}let f=Object.freeze({name:"New User",locale:(0,o.Bz)(),color:h[Math.floor(Math.random()*h.length)],isDarkMode:!1,edgeScrollSpeed:1,animationSpeed:"undefined"!=typeof window&&window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches?0:1,isSnapMode:!1,isWrapMode:!1});function g(){return{id:(0,a.E)()}}function m(e){if(null===e||"object"!=typeof e||!("version"in e)||!("user"in e)||"number"!=typeof e.version)return g();let t=(0,i.Te)({value:e.user,fromVersion:e.version,toVersion:u.currentVersion??0,migrations:u});if("error"===t.type)return g();try{c.validate(t.value)}catch(e){return g()}return t.value}let y=(0,r.cn)("globalUserData",null);function b(e){c.validate(e),y.set(e),"undefined"!=typeof window&&window.localStorage&&window.localStorage.setItem(l,JSON.stringify({version:u.currentVersion,user:y.get()})),x?.postMessage({type:v,origin:w,data:{user:S(),version:u.currentVersion}})}let x="undefined"==typeof BroadcastChannel?null:new BroadcastChannel("tldraw-user-sync");x?.addEventListener("message",e=>{let t=e.data;t?.type===v&&t?.origin!==w&&y.set(m(t.data))});let w=(0,a.E)(),v="tldraw-user-preferences-change";function S(){let e=y.get();return e||(e=function(){let e="undefined"==typeof window?null:JSON.parse(window?.localStorage?.getItem(l)||"null")??null;return m(e)}(),y.set(e)),e}},41276:function(e,t,n){"use strict";n.d(t,{L:function(){return o}});var r=n(42869),i=n(20575);function o(e={}){return{derivePresenceState:e.derivePresenceState??(()=>(0,r.Fl)("presence",()=>null)),userPreferences:e.userPreferences??(0,r.Fl)("userPreferences",()=>(0,i.JM)()),setUserPreferences:e.setUserPreferences??i.yu}}},80492:function(e,t,n){"use strict";n.d(t,{m:function(){return s}});var r=n(52778);let i=[r.Q],o=new Set(i.map(e=>e.type));function s(e){let t=[...i],n=new Set;for(let r of e){if(o.has(r.type))throw Error(`Shape type "${r.type}" is a core shapes type and cannot be overridden`);if(n.has(r.type))throw Error(`Shape type "${r.type}" is defined more than once`);t.push(r),n.add(r.type)}return t}},38021:function(e,t,n){"use strict";n.d(t,{$G:function(){return S},CK:function(){return C},CN:function(){return d},E:function(){return a},EB:function(){return $},Et:function(){return o},KD:function(){return s},MN:function(){return E},Ns:function(){return p},O8:function(){return _},Pr:function(){return D},Pz:function(){return m},Qd:function(){return h},RH:function(){return f},RZ:function(){return j},Sk:function(){return b},UD:function(){return y},Xy:function(){return v},Zj:function(){return l},a:function(){return M},aR:function(){return I},dW:function(){return k},iF:function(){return w},kx:function(){return i},qV:function(){return g},rF:function(){return A},rQ:function(){return O},sZ:function(){return c},s_:function(){return x},wM:function(){return T},wi:function(){return u},yV:function(){return P}});var r=n(80695);let i=2e3,o=40,s=320,a=[.1,.25,.5,1,2,4,8],l=.1,c=8,d=.5,u=.1,h=.2,p=.005,f=.05,g=450,m=200,y=6,b=4,x=32,w={};for(let e=1;e<=Math.ceil(c);e++)w[e+"_dark"]=`hash_pattern_zoom_${e}_dark`,w[e+"_light"]=`hash_pattern_zoom_${e}_light`;let v={duration:0,easing:r.L.easeInOutCubic},S=.09,k=[{min:-1,mid:.15,step:64},{min:.05,mid:.375,step:16},{min:.15,mid:1,step:4},{min:.7,mid:2.5,step:1}],j=6e4,_=3e3,E=1200,C={CAMERA_MOVE:-10},P=64,I=620,T=8,M=20,A=8,$=12,D=20,O=12},23338:function(e,t,n){"use strict";n.d(t,{w:function(){return i}});var r=n(42869);let i=e=>{let{store:t}=e,n=t.query.filterHistory("shape"),i=t.query.records("shape",()=>({type:{eq:"arrow"}}));function o(){let e=i.get(),t={};for(let n of e){let{start:e,end:r}=n.props;if("binding"===e.type){let r=t[e.boundShapeId];r?r.push({arrowId:n.id,handleId:"start"}):t[e.boundShapeId]=[{arrowId:n.id,handleId:"start"}]}if("binding"===r.type){let e=t[r.boundShapeId];e?e.push({arrowId:n.id,handleId:"end"}):t[r.boundShapeId]=[{arrowId:n.id,handleId:"end"}]}}return t}return(0,r.Fl)("arrowBindingsIndex",(t,i)=>{let s;if((0,r.e1)(t))return o();let a=n.getDiffSince(i);if(a===r.SB)return o();
26function l(e){s||(s={...t}),s[e]?s[e]===t[e]&&(s[e]=[...s[e]]):s[e]=[]}function c(e,t,n){l(e),s[e]=s[e].filter(e=>e.arrowId!==t||e.handleId!==n),0===s[e].length&&delete s[e]}function d(e,t,n){l(e),s[e].push({arrowId:t,handleId:n})}for(let t of a){for(let n of Object.values(t.added))if(e.isShapeOfType(n,"arrow")){let{start:e,end:t}=n.props;"binding"===e.type&&d(e.boundShapeId,n.id,"start"),"binding"===t.type&&d(t.boundShapeId,n.id,"end")}for(let[n,r]of Object.values(t.updated))if(e.isShapeOfType(n,"arrow")&&e.isShapeOfType(r,"arrow"))for(let e of["start","end"]){let t=n.props[e],i=r.props[e];"binding"===t.type&&"point"===i.type?c(t.boundShapeId,n.id,e):"point"===t.type&&"binding"===i.type?d(i.boundShapeId,r.id,e):"binding"===t.type&&"binding"===i.type&&t.boundShapeId!==i.boundShapeId&&(c(t.boundShapeId,n.id,e),d(i.boundShapeId,r.id,e))}for(let n of Object.values(t.removed))if(e.isShapeOfType(n,"arrow")){let{start:e,end:t}=n.props;"binding"===e.type&&c(e.boundShapeId,n.id,"start"),"binding"===t.type&&c(t.boundShapeId,n.id,"end")}}return s??t})}},13638:function(e,t,n){"use strict";n.d(t,{s:function(){return s}});var r=n(42869),i=n(189),o=n(85947);let s=e=>{let t=e.query.ids("shape");function n(){let n={},r=t.get(),i=Array(r.size);return r.forEach(t=>i.push(e.get(t))),i.sort(o.hl),i.forEach(e=>{n[e.parentId]||(n[e.parentId]=[]),n[e.parentId].push(e.id)}),n}return(0,r.Fl)("parentsToChildrenWithIndexes",(t,s)=>{let a;if((0,r.e1)(t))return n();let l=e.history.getDiffSince(s);if(l===r.SB)return n();if(0===l.length)return t;let c=null,d=e=>{c||(c={...t}),c[e]?c[e]===t[e]&&(c[e]=[...c[e]]):c[e]=[]},u=new Set;for(let e=0,t=l.length;e<t;e++){for(let t of Object.values((a=l[e]).added))(0,i.VV)(t)&&(d(t.parentId),c[t.parentId].push(t.id),u.add(c[t.parentId]));for(let[e,t]of Object.values(a.updated))if((0,i.VV)(t)&&(0,i.VV)(e)){if(e.parentId!==t.parentId)d(e.parentId),d(t.parentId),c[e.parentId].splice(c[e.parentId].indexOf(t.id),1),c[t.parentId].push(t.id),u.add(c[t.parentId]);else if(e.index!==t.index){d(t.parentId);let e=c[t.parentId].indexOf(t.id);c[t.parentId][e]=t.id,u.add(c[t.parentId])}}for(let e of Object.values(a.removed))(0,i.VV)(e)&&(d(e.parentId),c[e.parentId].splice(c[e.parentId].indexOf(e.id),1))}for(let t of u){let n=(0,o.oA)(t.map(t=>e.get(t)));n.sort(o.hl),t.splice(0,t.length,...n.map(e=>e.id))}return c??t})}},42731:function(e,t,n){"use strict";n.d(t,{Q:function(){return a}});var r=n(42869),i=n(37665),o=n(189);let s=(e,t,n)=>{for(;!(0,o.r5)(n.parentId);){let t=e.get(n.parentId);if(!t)return!1;n=t}return n.parentId===t},a=(e,t)=>{let n=e.query.ids("shape"),a=null;function l(){let r=t();return a=r,new Set([...n.get()].filter(t=>s(e,r,e.get(t))))}return(0,r.Fl)("_shapeIdsInCurrentPage",(n,c)=>{if((0,r.e1)(n))return l();let d=t();if(d!==a)return l();let u=e.history.getDiffSince(c);if(u===r.SB)return l();let h=new i.mW(n);for(let t of u){for(let n of Object.values(t.added))(0,o.VV)(n)&&s(e,d,n)&&h.add(n.id);for(let[n,r]of Object.values(t.updated))(0,o.VV)(r)&&(s(e,d,r)?h.add(r.id):h.remove(r.id));for(let e of Object.keys(t.removed))(0,o.YT)(e)&&h.remove(e)}let p=h.get();return p?(0,r.qo)(p.value,p.diff):n})}},97540:function(e,t,n){"use strict";n.d(t,{o:function(){return s}});var r=n(38021),i=n(80489),o=n(73565);class s{constructor(e){this.editor=e}_clickId="";_clickTimeout;_clickScreenPoint;_previousScreenPoint;_getClickTimeout=(e,t=(0,o.E)())=>{this._clickId=t,clearTimeout(this._clickTimeout),this._clickTimeout=setTimeout(()=>{if(this._clickState===e&&this._clickId===t){switch(this._clickState){case"pendingTriple":this.editor.dispatch({...this.lastPointerInfo,type:"click",name:"double_click",phase:"settle"});break;case"pendingQuadruple":this.editor.dispatch({...this.lastPointerInfo,type:"click",name:"triple_click",phase:"settle"});break;case"pendingOverflow":this.editor.dispatch({...this.lastPointerInfo,type:"click",name:"quadruple_click",phase:"settle"})}this._clickState="idle"}},"idle"===e||"pendingDouble"===e?r.qV:r.Pz)};_clickState="idle";get clickState(){return this._clickState}lastPointerInfo={};transformPointerDownEvent=e=>{if(!this._clickState)return e;switch(this._clickScreenPoint=i.B.From(e.point),this._previousScreenPoint&&this._previousScreenPoint.dist(this._clickScreenPoint)>40&&(this._clickState="idle"),this._previousScreenPoint=this._clickScreenPoint,this.lastPointerInfo=e,this._clickState){case"idle":return this._clickState="pendingDouble",this._clickTimeout=this._getClickTimeout(this._clickState),e;
26case"pendingDouble":return this._clickState="pendingTriple",this._clickTimeout=this._getClickTimeout(this._clickState),{...e,type:"click",name:"double_click",phase:"down"};case"pendingTriple":return this._clickState="pendingQuadruple",this._clickTimeout=this._getClickTimeout(this._clickState),{...e,type:"click",name:"triple_click",phase:"down"};case"pendingQuadruple":return this._clickState="pendingOverflow",this._clickTimeout=this._getClickTimeout(this._clickState),{...e,type:"click",name:"quadruple_click",phase:"down"};case"pendingOverflow":return this._clickState="overflow",this._clickTimeout=this._getClickTimeout(this._clickState),e;default:return this._clickTimeout=this._getClickTimeout(this._clickState),e}};transformPointerUpEvent=e=>{if(!this._clickState)return e;switch(this._clickScreenPoint=i.B.From(e.point),this._clickState){case"pendingTriple":return{...this.lastPointerInfo,type:"click",name:"double_click",phase:"up"};case"pendingQuadruple":return{...this.lastPointerInfo,type:"click",name:"triple_click",phase:"up"};case"pendingOverflow":return{...this.lastPointerInfo,type:"click",name:"quadruple_click",phase:"up"};default:return e}};cancelDoubleClickTimeout=()=>{this._clickTimeout=clearTimeout(this._clickTimeout),this._clickState="idle"};handleMove=()=>{"idle"!==this._clickState&&this._clickScreenPoint&&this._clickScreenPoint.dist(this.editor.inputs.currentScreenPoint)>(this.editor.getInstanceState().isCoarsePointer?r.UD:r.Sk)&&this.cancelDoubleClickTimeout()}}},90663:function(e,t,n){"use strict";n.d(t,{l:function(){return r}});class r{constructor(e){this.editor=e,"undefined"!=typeof window&&"navigator"in window?(this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),this.isIos=!!navigator.userAgent.match(/iPad/i)||!!navigator.userAgent.match(/iPhone/i),this.isChromeForIos=/crios.*safari/i.test(navigator.userAgent),this.isFirefox=/firefox/i.test(navigator.userAgent),this.isAndroid=/android/i.test(navigator.userAgent)):(this.isSafari=!1,this.isIos=!1,this.isChromeForIos=!1,this.isFirefox=!1,this.isAndroid=!1)}isSafari;isIos;isChromeForIos;isFirefox;isAndroid}},10795:function(e,t,n){"use strict";n.d(t,{E:function(){return d}});var r=n(42869),i=n(37665),o=n(73565);function s(e){if(e){let t=l;for(;e.length;)t=t.push(e.pop());return t}return l}class a{length=0;head=null;tail=this;push(e){return new c(e,this)}toArray(){return r.LZ}[Symbol.iterator](){return{next:()=>({value:void 0,done:!0})}}}let l=new a;class c{constructor(e,t){this.head=e,this.tail=t,this.length=t.length+1}length;push(e){return new c(e,this)}toArray(){return Array.from(this)}[Symbol.iterator](){let e=this;return{next(){if(!e.length)return{value:void 0,done:!0};{let t=e.head;return e=e.tail,{value:t,done:!1}}}}}}class d{constructor(e,t){this.ctx=e,this.annotateError=t}_undos=(0,r.cn)("HistoryManager.undos",s());_redos=(0,r.cn)("HistoryManager.redos",s());_batchDepth=0;onBatchComplete=()=>void 0;_commands={};getNumUndos(){return this._undos.get().length}getNumRedos(){return this._redos.get().length}createCommand=(e,t,n)=>{if(this._commands[e])throw Error(`Duplicate command: ${e}`);this._commands[e]=n;let r=(...a)=>{if(!this._batchDepth)return this.batch(()=>r(...a)),this.ctx;let l=t(...a);if(!l)return this.ctx;let{data:c,ephemeral:d,squashing:u,preservesRedoStack:h}=l;if(this.ignoringUpdates((e,t)=>(n.do(c),{undos:e,redos:t})),!d){let t=this._undos.get().head;u&&t&&"command"===t.type&&t.name===e&&t.preservesRedoStack===h?this._undos.update(e=>e.tail.push({...t,id:(0,o.E)(),data:(0,i.ZV)(n.squash(t.data,c))})):this._undos.update(t=>t.push({type:"command",name:e,data:(0,i.ZV)(c),id:(0,o.E)(),preservesRedoStack:h})),l.preservesRedoStack||this._redos.set(s()),this.ctx.emit("change-history",{reason:"push"})}return this.ctx};return r};batch=e=>{try{this._batchDepth++,1===this._batchDepth?(0,r.ay)(()=>{let t=this._undos.get().head?.id;e(),t!==this._undos.get().head?.id&&this.onBatchComplete()}):e()}catch(e){throw this.annotateError(e),e}finally{this._batchDepth--}return this};ignoringUpdates=e=>{let t=this._undos.get(),n=this._redos.get();
26this._undos.set(s()),this._redos.set(s());try{({undos:t,redos:n}=(0,r.ay)(()=>e(t,n)))}finally{this._undos.set(t),this._redos.set(n)}};_undo=({pushToRedoStack:e,toMark:t})=>(this.ignoringUpdates((n,r)=>{if(0===n.length)return{undos:n,redos:r};for(;n.head?.type==="STOP";){let i=n.head;if(n=n.tail,e&&(r=r.push(i)),i.id===t)return this.ctx.emit("change-history",e?{reason:"undo"}:{reason:"bail",markId:t}),{undos:n,redos:r}}if(0===n.length)return this.ctx.emit("change-history",e?{reason:"undo"}:{reason:"bail",markId:t}),{undos:n,redos:r};for(;n.head;){let i=n.head;if(n=n.tail,e&&(r=r.push(i)),"STOP"===i.type){if(i.onUndo&&(!t||i.id===t))break}else{let e=this._commands[i.name];e.undo(i.data)}}return this.ctx.emit("change-history",e?{reason:"undo"}:{reason:"bail",markId:t}),{undos:n,redos:r}}),this);undo=()=>(this._undo({pushToRedoStack:!0}),this);redo=()=>(this.ignoringUpdates((e,t)=>{if(0===t.length)return{undos:e,redos:t};for(;t.head?.type==="STOP";)e=e.push(t.head),t=t.tail;if(0===t.length)return this.ctx.emit("change-history",{reason:"redo"}),{undos:e,redos:t};for(;t.head;){let n=t.head;if(e=e.push(t.head),t=t.tail,"STOP"===n.type){if(n.onRedo)break}else{let e=this._commands[n.name];e.redo?e.redo(n.data):e.do(n.data)}}return this.ctx.emit("change-history",{reason:"redo"}),{undos:e,redos:t}}),this);bail=()=>(this._undo({pushToRedoStack:!1}),this);bailToMark=e=>(this._undo({pushToRedoStack:!1,toMark:e}),this);mark=(e=(0,o.E)(),t=!0,n=!0)=>{let r=this._undos.get().head;return r&&"STOP"===r.type&&r.id===e&&r.onUndo===t&&r.onRedo===n?r.id:(this._undos.update(r=>r.push({type:"STOP",id:e,onUndo:t,onRedo:n})),this.ctx.emit("mark-history",{id:e}),e)};clear(){this._undos.set(s()),this._redos.set(s())}}},86906:function(e,t,n){"use strict";n.d(t,{o:function(){return o}});var r=n(80489),i=n(73565);class o{constructor(e){this.editor=e}scribbleItems=new Map;state="paused";addScribble=(e,t=(0,i.E)())=>{let n={id:t,scribble:{id:t,size:20,color:"accent",opacity:.8,delay:0,points:[],shrink:.1,taper:!0,...e,state:"starting"},timeoutMs:0,delayRemaining:e.delay??0,prev:null,next:null};return this.scribbleItems.set(t,n),"paused"===this.state&&this.resume(),n};resume(){this.state="running",this.editor.addListener("tick",this.tick)}pause(){this.editor.removeListener("tick",this.tick),this.state="paused"}reset(){this.editor.updateInstanceState({scribbles:[]}),this.scribbleItems.clear(),this.pause()}stop=e=>{let t=this.scribbleItems.get(e);if(!t)throw Error(`Scribble with id ${e} not found`);return t.delayRemaining=Math.min(t.delayRemaining,200),t.scribble.state="stopping",t};addPoint=(e,t,n)=>{let i=this.scribbleItems.get(e);if(!i)throw Error(`Scribble with id ${e} not found`);let{prev:o}=i,s={x:t,y:n,z:.5};return(!o||r.B.Dist(o,s)>=1)&&(i.next=s),i};tick=e=>{this.editor.batch(()=>{this.scribbleItems.forEach(t=>{if("starting"===t.scribble.state){let{next:e,prev:n}=t;e&&e!==n&&(t.prev=e,t.scribble.points.push(e)),t.scribble.points.length>8&&(t.scribble.state="active");return}t.delayRemaining>0&&(t.delayRemaining=Math.max(0,t.delayRemaining-e)),t.timeoutMs+=e,t.timeoutMs>=16&&(t.timeoutMs=0);let{delayRemaining:n,timeoutMs:r,prev:i,next:o,scribble:s}=t;switch(s.state){case"active":o&&o!==i?(t.prev=o,s.points.push(o),0===n&&s.points.length>8&&s.points.shift()):0===r&&(s.points.length>1?s.points.shift():t.delayRemaining=s.delay);break;case"stopping":if(0===t.delayRemaining&&0===r){if(1===s.points.length){this.scribbleItems.delete(t.id);return}s.shrink&&(s.size=Math.max(1,s.size*(1-s.shrink))),s.points.shift()}}}),this.editor.updateInstanceState({scribbles:Array.from(this.scribbleItems.values()).map(({scribble:e})=>({...e,points:[...e.points]})).slice(-5)}),0===this.scribbleItems.size&&this.pause()})}}},37572:function(e,t,n){"use strict";n.d(t,{Y:function(){return r}});class r{constructor(e){this.editor=e,e.store.onBeforeCreate=(e,t)=>{let n=this._beforeCreateHandlers[e.typeName];if(n){let r=e;for(let e of n)r=e(r,t);return r}return e},e.store.onAfterCreate=(e,t)=>{let n=this._afterCreateHandlers[e.typeName];if(n)for(let r of n)r(e,t)}
26,e.store.onBeforeChange=(e,t,n)=>{let r=this._beforeChangeHandlers[t.typeName];if(r){let i=t;for(let t of r)i=t(e,i,n);return i}return t};let t=0;e.store.onAfterChange=(e,n,r)=>{if(++t>1e3)console.error("[CleanupManager.onAfterChange] Maximum update depth exceeded, bailing out.");else{let t=this._afterChangeHandlers[n.typeName];if(t)for(let i of t)i(e,n,r)}t--},e.store.onBeforeDelete=(e,t)=>{let n=this._beforeDeleteHandlers[e.typeName];if(n){for(let r of n)if(!1===r(e,t))return!1}},e.store.onAfterDelete=(e,t)=>{let n=this._afterDeleteHandlers[e.typeName];if(n)for(let r of n)r(e,t)},e.history.onBatchComplete=()=>{this._batchCompleteHandlers.forEach(e=>e())}}_beforeCreateHandlers={};_afterCreateHandlers={};_beforeChangeHandlers={};_afterChangeHandlers={};_beforeDeleteHandlers={};_afterDeleteHandlers={};_batchCompleteHandlers=[];registerBeforeCreateHandler(e,t){let n=this._beforeCreateHandlers[e];return n||(this._beforeCreateHandlers[e]=[]),this._beforeCreateHandlers[e].push(t),()=>i(this._beforeCreateHandlers[e],t)}registerAfterCreateHandler(e,t){let n=this._afterCreateHandlers[e];return n||(this._afterCreateHandlers[e]=[]),this._afterCreateHandlers[e].push(t),()=>i(this._afterCreateHandlers[e],t)}registerBeforeChangeHandler(e,t){let n=this._beforeChangeHandlers[e];return n||(this._beforeChangeHandlers[e]=[]),this._beforeChangeHandlers[e].push(t),()=>i(this._beforeChangeHandlers[e],t)}registerAfterChangeHandler(e,t){let n=this._afterChangeHandlers[e];return n||(this._afterChangeHandlers[e]=[]),this._afterChangeHandlers[e].push(t),()=>i(this._afterChangeHandlers[e],t)}registerBeforeDeleteHandler(e,t){let n=this._beforeDeleteHandlers[e];return n||(this._beforeDeleteHandlers[e]=[]),this._beforeDeleteHandlers[e].push(t),()=>i(this._beforeDeleteHandlers[e],t)}registerAfterDeleteHandler(e,t){let n=this._afterDeleteHandlers[e];return n||(this._afterDeleteHandlers[e]=[]),this._afterDeleteHandlers[e].push(t),()=>i(this._afterDeleteHandlers[e],t)}registerBatchCompleteHandler(e){return this._batchCompleteHandlers.push(e),()=>i(this._batchCompleteHandlers,e)}}function i(e,t){let n=e.indexOf(t);n>=0&&e.splice(n,1)}},79461:function(e,t,n){"use strict";n.d(t,{f:function(){return E}});var r=n(42869),i=n(189),o=n(85947),s=n(84527),a=n(46921),l=n(80489),c=n(20930),d=n(73565),u=Object.defineProperty,h=Object.getOwnPropertyDescriptor,p=(e,t,n,r)=>{for(var i,o=r>1?void 0:r?h(t,n):t,s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r?i(t,n,o):i(o))||o);return r&&o&&u(t,n,o),o};let f=e=>Math.round(1e8*e)/1e8;function g(e,t,n,r,i){let o=e.filter(e=>("forward"===r?e.startNode.id===t:e.endNode.id===t)&&f(e.length)===f(n)&&(0,c.mW)(e.breadthIntersection[0],e.breadthIntersection[1],i[0],i[1]));if(0===o.length)return[];let s=new Set;return o.forEach(t=>{let a="forward"===r?t.endNode.id:t.startNode.id;if(!s.has(a)){s.add(a);let l=g(e,a,n,r,(0,c.mW)(t.breadthIntersection[0],t.breadthIntersection[1],i[0],i[1]));o.push(...l)}}),o}class m{constructor(e){this.manager=e,this.editor=e.editor}editor;getSnapPointsCache(){let{editor:e}=this;return e.store.createComputedCache("snapPoints",t=>{let n=e.getShapePageTransform(t.id);if(!n)return;let r=e.getShapeUtil(t).getBoundsSnapGeometry(t),i=r.points??e.getShapeGeometry(t).bounds.cornersAndCenter;if(n&&i)return i.map((e,r)=>{let{x:i,y:o}=a._.applyToPoint(n,e);return{x:i,y:o,id:`${t.id}:${r}`}})})}getSnapPoints(e){return this.getSnapPointsCache().get(e)??[]}getSnappablePoints(){let e=this.getSnapPointsCache(),t=this.manager.getSnappableShapes(),n=[];for(let r of t){let t=e.get(r);t&&n.push(...t)}return n}getSnappableGapNodes(){return Array.from(this.manager.getSnappableShapes(),e=>({id:e,pageBounds:(0,o.kP)(this.editor.getShapePageBounds(e))}))}getVisibleGaps(){let e,t;let n=[],r=[],i=this.getSnappableGapNodes().sort((e,t)=>e.pageBounds.minX-t.pageBounds.minX);for(let r=0;r<i.length;r++){e=i[r];for(let o=r+1;o<i.length;o++)t=i[o],e.pageBounds.maxX<t.pageBounds.minX&&(0,c.ep)(e.pageBounds.minY,e.pageBounds.maxY,t.pageBounds.minY,t.pageBounds.maxY)&&n.push({startNode:e,endNode:t,startEdge:[new l.B(e.pageBounds.maxX,e.pageBounds.minY),new l.B(e.pageBounds.maxX,e.pageBounds.maxY)],endEdge:[new l.B(t.pageBounds.minX,t.pageBounds.minY),new l.B(t.pageBounds.minX,t.pageBounds.maxY)],length:t.pageBounds.minX-e.pageBounds.maxX,breadthIntersection:(0,c.mW)(e.pageBounds.minY,e.pageBounds.maxY,t.pageBounds.minY,t.pageBounds.maxY)})}let o=i.sort((e,t)=>
26e.pageBounds.minY-t.pageBounds.minY);for(let n=0;n<o.length;n++){e=o[n];for(let i=n+1;i<o.length;i++)t=o[i],e.pageBounds.maxY<t.pageBounds.minY&&(0,c.ep)(e.pageBounds.minX,e.pageBounds.maxX,t.pageBounds.minX,t.pageBounds.maxX)&&r.push({startNode:e,endNode:t,startEdge:[new l.B(e.pageBounds.minX,e.pageBounds.maxY),new l.B(e.pageBounds.maxX,e.pageBounds.maxY)],endEdge:[new l.B(t.pageBounds.minX,t.pageBounds.minY),new l.B(t.pageBounds.maxX,t.pageBounds.minY)],length:t.pageBounds.minY-e.pageBounds.maxY,breadthIntersection:(0,c.mW)(e.pageBounds.minX,e.pageBounds.maxX,t.pageBounds.minX,t.pageBounds.maxX)})}return{horizontal:n,vertical:r}}snapTranslateShapes({lockedAxis:e,initialSelectionPageBounds:t,initialSelectionSnapPoints:n,dragDelta:r}){let i=this.manager.getSnapThreshold(),o=this.getSnappablePoints(),s=t.clone().translate(r),a=n.map(({x:e,y:t},n)=>({id:"selection:"+n,x:e+r.x,y:t+r.y})),c=[],d=[],u=new l.B(i,i);this.collectPointSnaps({minOffset:u,nearestSnapsX:c,nearestSnapsY:d,otherNodeSnapPoints:o,selectionSnapPoints:a}),this.collectGapSnaps({selectionPageBounds:s,nearestSnapsX:c,nearestSnapsY:d,minOffset:u});let h=new l.B("x"===e?0:c[0]?.nudge??0,"y"===e?0:d[0]?.nudge??0);u.x=0,u.y=0,c.length=0,d.length=0,a.forEach(e=>{e.x+=h.x,e.y+=h.y}),s.translate(h),this.collectPointSnaps({minOffset:u,nearestSnapsX:c,nearestSnapsY:d,otherNodeSnapPoints:o,selectionSnapPoints:a}),this.collectGapSnaps({selectionPageBounds:s,nearestSnapsX:c,nearestSnapsY:d,minOffset:u});let p=this.getPointSnapLines({nearestSnapsX:c,nearestSnapsY:d}),f=this.getGapSnapLines({selectionPageBounds:s,nearestSnapsX:c,nearestSnapsY:d});return this.manager.setIndicators([...f,...p]),{nudge:h}}snapResizeShapes({initialSelectionPageBounds:e,dragDelta:t,handle:n,isAspectRatioLocked:r,isResizingFromCenter:i}){let o=this.manager.getSnapThreshold(),{box:a,scaleX:c,scaleY:d}=s.xu.Resize(e,n,i?2*t.x:t.x,i?2*t.y:t.y,r),u=n;c<0&&(u=(0,s.Ee)(u)),d<0&&(u=(0,s.Op)(u)),i&&(a.center=e.center);let h="top"===u||"bottom"===u,p="left"===u||"right"===u,f=y(u,a),g=this.getSnappablePoints(),m=[],b=[],x=new l.B(o,o);this.collectPointSnaps({minOffset:x,nearestSnapsX:m,nearestSnapsY:b,otherNodeSnapPoints:g,selectionSnapPoints:f});let w=new l.B(h?0:m[0]?.nudge??0,p?0:b[0]?.nudge??0);if(r&&(0,s.m3)(u)&&0!==w.len()){let t=m.length&&b.length?Math.abs(w.x)<Math.abs(w.y)?"x":"y":m.length?"x":"y",n=e.aspectRatio;"x"===t?(b.length=0,w.y=w.x/n,("bottom_left"===u||"top_right"===u)&&(w.y=-w.y)):(m.length=0,w.x=w.y*n,("bottom_left"===u||"top_right"===u)&&(w.x=-w.x))}let v=l.B.Add(t,w),{box:S}=s.xu.Resize(e,n,i?2*v.x:v.x,i?2*v.y:v.y,r);i&&(S.center=e.center);let k=y("any",S);m.length=0,b.length=0,x.x=0,x.y=0,this.collectPointSnaps({minOffset:x,nearestSnapsX:m,nearestSnapsY:b,otherNodeSnapPoints:g,selectionSnapPoints:k});let j=this.getPointSnapLines({nearestSnapsX:m,nearestSnapsY:b});return this.manager.setIndicators([...j]),{nudge:w}}collectPointSnaps({selectionSnapPoints:e,otherNodeSnapPoints:t,minOffset:n,nearestSnapsX:r,nearestSnapsY:i}){for(let o of e)for(let e of t){let t=l.B.Sub(o,e),s=Math.abs(t.x),a=Math.abs(t.y);f(s)<=f(n.x)&&(f(s)<f(n.x)&&(r.length=0),r.push({type:"points",points:{thisPoint:o,otherPoint:e},nudge:e.x-o.x}),n.x=s),f(a)<=f(n.y)&&(f(a)<f(n.y)&&(i.length=0),i.push({type:"points",points:{thisPoint:o,otherPoint:e},nudge:e.y-o.y}),n.y=a)}}collectGapSnaps({selectionPageBounds:e,minOffset:t,nearestSnapsX:n,nearestSnapsY:r}){let{horizontal:i,vertical:o}=this.getVisibleGaps();for(let r of i){if(!(0,c.ep)(r.breadthIntersection[0],r.breadthIntersection[1],e.minY,e.maxY))continue;let i=r.startEdge[0].x+r.length/2,o=i-e.center.x,s=r.length>e.width;if(s&&f(Math.abs(o))<=f(t.x)){f(Math.abs(o))<f(t.x)&&(n.length=0),t.x=Math.abs(o);let e={type:"gap_center",gap:r,nudge:o},i=n.find(({type:e})=>"gap_center"===e),s=i&&(0,c.mW)(r.breadthIntersection[0],r.breadthIntersection[1],i.gap.breadthIntersection[0],i.gap.breadthIntersection[1]);i&&i.gap.length>r.length&&s?n[n.indexOf(i)]=e:i&&s||n.push(e)}let a=r.startNode.pageBounds.minX-r.length,l=e.maxX,d=a-l;f(Math.abs(d))<=f(t.x)&&(f(Math.abs(d))<f(t.x)&&(n.length=0),t.x=Math.abs(d),n.push({type:"gap_duplicate",gap:r,protrusionDirection:"left",nudge:d}));let u=r.endNode.pageBounds.maxX+r.length,h=e.minX,p=u-h;f(Math.abs(p))<=f(t.x)&&(f(Math.abs(p))<f(t.x)&&(n.length=0),t.x=Math.abs(p),n.push({type:"gap_duplicate",gap:r,protrusionDirection:"right",nudge:p}))}for(let n of o){if(!(0,c.ep)(n.breadthIntersection[0],n.breadthIntersection[1],e.minX,e.maxX))continue;let i=n.startEdge[0].y+n.length/2,o=i-e.center.y,s=n.length>e.height;if(s&&f(Math.abs(o))<=f(t.y)){f(Math.abs(o))<f(t.y)&&(r.length=0),t.y=Math.abs(o);let e={type:"gap_center",gap:n,nudge:o},i=r.find(({type:e})=>"gap_center"===e),s=i&&(0,c.ep)(i.gap.breadthIntersection[0],i.gap.breadthIntersection[1],n.breadthIntersection[0],n.breadthIntersection[1]);i&&i.gap.length>n.length&&s?r[r.indexOf(i)]=e:i&&s||r.push(e);continue}let a=n.startNode.pageBounds.minY-n.length,l=e.maxY,d=a-l;f(Math.abs(d))<=f(t.y)&&(f(Math.abs(d))<f(t.y)&&(r.length=0),t.y=Math.abs(d),r.push({type:"gap_duplicate",gap:n,protrusionDirection:"top",nudge:d}));let u=n.endNode.pageBounds.maxY+n.length,h=e.minY,p=u-h;f(Math.abs(p))<=f(t.y)&&(f(Math.abs(p))<f(t.y)&&(r.length=0),t.y=Math.abs(p),r.push({type:"gap_duplicate",gap:n,protrusionDirection:"bottom",nudge:p}))}}getPointSnapLines({nearestSnapsX:e,nearestSnapsY:t}){let n={},r={};if(e.length>0){for(let t of e)if("points"===t.type){let e=f(t.points.otherPoint.x);n[e]||(n[e]=[]),n[e].push(t.points)}}if(t.length>0){for(let e of t)if("points"===e.type){let t=f(e.points.otherPoint.y);r[t]||(r[t]=[]),r[t].push(e.points)}}return Object.values(n).concat(Object.values(r)).map(e=>({id:(0,d.E)(),type:"points",points:(0,o.D8)(e.map(e=>l.B.From(e.otherPoint)).concat(e.map(e=>l.B.From(e.thisPoint))),(e,t)=>e.equals(t))}))}getGapSnapLines({selectionPageBounds:e,nearestSnapsX:t,nearestSnapsY:n}){let{vertical:r,horizontal:i}=this.getVisibleGaps(),o={top:e.sides[0],right:e.sides[1],bottom:[e.corners[3],e.corners[2]],left:[e.corners[0],e.corners[3]]},s=[];if(t.length>0)for(let n of t){if("points"===n.type)continue;let{gap:{breadthIntersection:t,startEdge:r,startNode:a,endNode:l,length:u,endEdge:h}}=n;switch(n.type){case"gap_center":{let n=(u-e.width)/2,p=(0,c.mW)(t[0],t[1],e.minY,e.maxY);s.push({type:"gaps",direction:"horizontal",id:(0,d.E)(),gaps:[...g(i,a.id,n,"backward",p),{startEdge:r,endEdge:o.left},{startEdge:o.right,endEdge:h},...g(i,l.id,n,"forward",p)]});break}case"gap_duplicate":{let p=(0,c.mW)(t[0],t[1],e.minY,e.maxY);s.push({type:"gaps",direction:"horizontal",id:(0,d.E)(),gaps:"left"===n.protrusionDirection?[{startEdge:o.right,endEdge:r.map(e=>e.clone().addXY(-a.pageBounds.width,0))},{startEdge:r,endEdge:h},...g(i,l.id,u,"forward",p)]:[...g(i,a.id,u,"backward",p),{startEdge:r,endEdge:h},{startEdge:h.map(e=>e.clone().addXY(n.gap.endNode.pageBounds.width,0)),endEdge:o.left}]})}}}if(n.length>0)for(let t of n){if("points"===t.type)continue;let{gap:{breadthIntersection:n,startEdge:i,startNode:a,endNode:l,length:u,endEdge:h}}=t;switch(t.type){case"gap_center":{let l=(u-e.height)/2,p=(0,c.mW)(n[0],n[1],e.minX,e.maxX);s.push({type:"gaps",direction:"vertical",id:(0,d.E)(),gaps:[...g(r,a.id,l,"backward",p),{startEdge:i,endEdge:o.top},{startEdge:o.bottom,endEdge:h},...g(r,t.gap.endNode.id,l,"forward",p)]});break}case"gap_duplicate":{let p=(0,c.mW)(n[0],n[1],e.minX,e.maxX);s.push({type:"gaps",direction:"vertical",id:(0,d.E)(),gaps:"top"===t.protrusionDirection?[{startEdge:o.bottom,endEdge:i.map(e=>e.clone().addXY(0,-a.pageBounds.height))},{startEdge:i,endEdge:h}
26,...g(r,l.id,u,"forward",p)]:[...g(r,a.id,u,"backward",p),{startEdge:i,endEdge:h},{startEdge:h.map(e=>e.clone().addXY(0,l.pageBounds.height)),endEdge:o.top}]})}}}return!function(e){e.sort((e,t)=>t.gaps.length-e.gaps.length);for(let t=e.length-1;t>0;t--){let n=e[t];for(let r=t-1;r>=0;r--){let i=e[r];if(i.direction===n.direction&&n.gaps.every(e=>i.gaps.some(t=>f(e.startEdge[0].x)===f(t.startEdge[0].x)&&f(e.startEdge[0].y)===f(t.startEdge[0].y)&&f(e.startEdge[1].x)===f(t.startEdge[1].x)&&f(e.startEdge[1].y)===f(t.startEdge[1].y))&&i.gaps.some(t=>f(e.endEdge[0].x)===f(t.endEdge[0].x)&&f(e.endEdge[0].y)===f(t.endEdge[0].y)&&f(e.endEdge[1].x)===f(t.endEdge[1].x)&&f(e.endEdge[1].y)===f(t.endEdge[1].y)))){e.splice(t,1);break}}}}(s),s}}function y(e,t){let{minX:n,maxX:r,minY:i,maxY:o}=t,s=[];switch(e){case"top":case"left":case"top_left":case"any":s.push({id:"top_left",handle:"top_left",x:n,y:i})}switch(e){case"top":case"right":case"top_right":case"any":s.push({id:"top_right",handle:"top_right",x:r,y:i})}switch(e){case"bottom":case"right":case"bottom_right":case"any":s.push({id:"bottom_right",handle:"bottom_right",x:r,y:o})}switch(e){case"bottom":case"left":case"bottom_left":case"any":s.push({id:"bottom_left",handle:"bottom_left",x:n,y:o})}return s}p([r.Fl],m.prototype,"getSnapPointsCache",1),p([r.Fl],m.prototype,"getSnappablePoints",1),p([r.Fl],m.prototype,"getSnappableGapNodes",1),p([r.Fl],m.prototype,"getVisibleGaps",1);var b=Object.defineProperty,x=Object.getOwnPropertyDescriptor;let w=()=>null,v=()=>[];class S{constructor(e){this.manager=e,this.editor=e.editor}editor;getSnapGeometryCache(){let{editor:e}=this;return e.store.createComputedCache("handle snap geometry",t=>{let n=e.getShapeUtil(t).getHandleSnapGeometry(t);return{outline:void 0===n.outline?e.getShapeGeometry(t):n.outline,points:n.points??[],getSelfSnapOutline:n.getSelfSnapOutline??w,getSelfSnapPoints:n.getSelfSnapPoints??v}})}*iterateSnapPointsInPageSpace(e,t){let n=this.getSnapGeometryCache().get(e)?.getSelfSnapPoints(t);if(n&&n.length){let t=(0,o.kP)(this.editor.getShapePageTransform(e));for(let e of n)yield t.applyToPoint(e)}for(let t of this.manager.getSnappableShapes()){if(t===e)continue;let n=this.getSnapGeometryCache().get(t)?.points;if(!n||!n.length)continue;let r=(0,o.kP)(this.editor.getShapePageTransform(t));for(let e of n)yield r.applyToPoint(e)}}*iterateSnapOutlines(e,t){let n=this.getSnapGeometryCache().get(e)?.getSelfSnapOutline(t);for(let t of(n&&(yield{shapeId:e,outline:n}),this.manager.getSnappableShapes())){if(t===e)continue;let n=this.getSnapGeometryCache().get(t)?.outline;n&&(yield{shapeId:t,outline:n})}}getHandleSnapPosition({currentShapeId:e,handle:t,handleInPageSpace:n}){let r=this.manager.getSnapThreshold(),i=r,s=null;for(let r of this.iterateSnapPointsInPageSpace(e,t)){let e=l.B.Dist(n,r);e<i&&(i=e,s=r)}if(s)return s;let a=r,c=null;for(let{shapeId:r,outline:i}of this.iterateSnapOutlines(e,t)){let e=(0,o.kP)(this.editor.getShapePageTransform(r)),t=this.editor.getPointInShapeSpace(r,n),s=i.nearestPoint(t),d=e.applyToPoint(s),u=l.B.Dist(n,d);u<a&&(a=u,c=d)}return c||null}snapHandle({currentShapeId:e,handle:t}){let n=(0,o.kP)(this.editor.getShapePageTransform(e)),r=n.applyToPoint(t),i=this.getHandleSnapPosition({currentShapeId:e,handle:t,handleInPageSpace:r});return i?(this.manager.setIndicators([{id:(0,d.E)(),type:"points",points:[i]}]),{nudge:l.B.Sub(i,r)}):null}}((e,t,n,r)=>{for(var i,o=r>1?void 0:r?x(t,n):t,s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r?i(t,n,o):i(o))||o);return r&&o&&b(t,n,o)})([r.Fl],S.prototype,"getSnapGeometryCache",1);var k=Object.defineProperty,j=Object.getOwnPropertyDescriptor,_=(e,t,n,r)=>{for(var i,o=r>1?void 0:r?j(t,n):t,s=e.length-1;s>=0;s--)(i=e[s])&&(o=(r?i(t,n,o):i(o))||o);return r&&o&&k(t,n,o),o};class E{constructor(e){this.editor=e,this.shapeBounds=new m(this),this.handles=new S(this)}shapeBounds;handles;_snapIndicators=(0,r.cn)("snapLines",void 0);getIndicators(){return this._snapIndicators.get()??r.LZ}clearIndicators(){this.getIndicators().length&&this._snapIndicators.set(void 0)}setIndicators(e){this._snapIndicators.set(e)}getSnapThreshold(){return 8/this.editor.getZoomLevel()}getSnappableShapes(){let{editor:e}=this,t=e.getRenderingBounds(),n=e.getSelectedShapeIds(),r=new Set,o=s=>{if((0,i.YT)(s)){let t=e.getShape(s);t&&e.isShapeOfType(t,"frame")&&r.add(s)}let a=e.getSortedChildIdsForParent(s);for(let i of a){if(n.includes(i))continue;let s=e.getShape(i);if(!s)continue;let a=e.getShapeUtil(s);if(!a.canSnap(s))continue;let l=e.getShapePageBounds(i);if(l&&t.includes(l)){if(e.isShapeOfType(s,"group")){o(i);continue}r.add(i)}}};return o(this.getCurrentCommonAncestor()??e.getCurrentPageId()),r}getCurrentCommonAncestor(){return this.editor.findCommonAncestor(this.editor.getSelectedShapes())}}_([r.Fl],E.prototype,"getSnapThreshold",1),_([r.Fl],E.prototype,"getSnappableShapes",1),_([r.Fl],E.prototype,"getCurrentCommonAncestor",1)},85289:function(e,t,n){"use strict";n.d(t,{R:function(){return a}});let r=/\r?\n|\r/g;function i(e){return e.replace(r,"\n").split("\n").map(e=>e||" ").join("\n")}let o={start:"left","start-legacy":"left",middle:"center","middle-legacy":"center",end:"right","end-legacy":"right"},s=/\s/;class a{constructor(e){this.editor=e;let t=document.createElement("div");t.id="tldraw_text_measure",t.classList.add("tl-text"),t.classList.add("tl-text-measure"),t.tabIndex=-1,this.editor.getContainer().appendChild(t),this.baseElm=t}baseElm;measureText=(e,t)=>
26{let n=this.baseElm?.cloneNode();this.baseElm.insertAdjacentElement("afterend",n),n.setAttribute("dir","ltr"),n.style.setProperty("font-family",t.fontFamily),n.style.setProperty("font-style",t.fontStyle),n.style.setProperty("font-weight",t.fontWeight),n.style.setProperty("font-size",t.fontSize+"px"),n.style.setProperty("line-height",t.lineHeight*t.fontSize+"px"),n.style.setProperty("max-width",null===t.maxWidth?null:t.maxWidth+"px"),n.style.setProperty("min-width",t.minWidth??null),n.style.setProperty("padding",t.padding),n.textContent=i(e);let r=n.getBoundingClientRect();return n.remove(),{x:0,y:0,w:r.width,h:r.height}};measureElementTextNodeSpans(e,{shouldTruncateToFirstLine:t=!1}={}){let n=[],r=e.getBoundingClientRect(),i=-r.left,o=-r.top,a=new Range,l=e.childNodes[0],c=0,d=null,u=null,h=0,p=!1;for(let r of e.childNodes)if(r.nodeType===Node.TEXT_NODE)for(let e of r.textContent??""){a.setStart(l,c),a.setEnd(l,c+e.length);let r=a.getClientRects(),f=r[r.length-1],g=f.top+o,m=f.left+i,y=f.right+i,b=s.test(e);if(b===u&&g===h&&d)d.box.w=y-d.box.x,d.text+=e;else{if(d){if(t&&g!==h){p=!0;break}n.push(d)}d={box:{x:m,y:g,w:f.width,h:f.height},text:e}}u=b,h=g,c+=e.length}return d&&n.push(d),{spans:n,didTruncate:p}}measureTextSpans(e,t){if(""===e)return[];let n=this.baseElm?.cloneNode();this.baseElm.insertAdjacentElement("afterend",n);let r=Math.ceil(t.width-2*t.padding);n.style.setProperty("width",`${r}px`),n.style.setProperty("height","min-content"),n.style.setProperty("dir","ltr"),n.style.setProperty("font-size",`${t.fontSize}px`),n.style.setProperty("font-family",t.fontFamily),n.style.setProperty("font-weight",t.fontWeight),n.style.setProperty("line-height",`${t.lineHeight*t.fontSize}px`),n.style.setProperty("text-align",o[t.textAlign]);let s="truncate-ellipsis"===t.overflow||"truncate-clip"===t.overflow;s&&(n.style.setProperty("overflow-wrap","anywhere"),n.style.setProperty("word-break","break-all"));let a=i(e);n.textContent=a;let{spans:l,didTruncate:c}=this.measureElementTextNodeSpans(n,{shouldTruncateToFirstLine:s});if("truncate-ellipsis"===t.overflow&&c){n.textContent="…";let e=Math.ceil(this.measureElementTextNodeSpans(n).spans[0].box.w);n.style.setProperty("width",`${r-e}px`),n.textContent=a;let i=this.measureElementTextNodeSpans(n,{shouldTruncateToFirstLine:!0}).spans,o=i[i.length-1];return i.push({text:"…",box:{x:Math.min(o.box.x+o.box.w,t.width-t.padding-e),y:o.box.y,w:e,h:o.box.h}}),i}return n.remove(),l}}},65650:function(e,t,n){"use strict";n.d(t,{r:function(){return i}});var r=n(80489);class i{constructor(e){this.editor=e,this.editor.disposables.add(this.dispose),this.start()}raf;isPaused=!0;last=0;t=0;start=()=>{this.isPaused=!1,cancelAnimationFrame(this.raf),this.raf=requestAnimationFrame(this.tick),this.last=Date.now()};tick=()=>{if(this.isPaused)return;let e=Date.now(),t=e-this.last;if(this.last=e,this.t+=t,this.editor.emit("frame",t),this.t<16){this.raf=requestAnimationFrame(this.tick);return}this.t-=16,this.updatePointerVelocity(t),this.editor.emit("tick",t),this.raf=requestAnimationFrame(this.tick)};dispose=()=>{this.isPaused=!0,cancelAnimationFrame(this.raf)};prevPoint=new r.B;updatePointerVelocity=e=>{let{prevPoint:t,editor:{inputs:{currentScreenPoint:n,pointerVelocity:i}}}=this;if(0===e)return;let o=r.B.Sub(n,t);this.prevPoint=n.clone();let s=o.len(),a=s?o.div(s):new r.B(0,0),l=i.clone().lrp(a.mul(s/e),.5);.01>Math.abs(l.x)&&(l.x=0),.01>Math.abs(l.y)&&(l.y=0),i.equals(l)||(this.editor.inputs.pointerVelocity=l)}}},7367:function(e,t,n){"use strict";n.d(t,{K:function(){return l}});var r=n(42869),i=n(20575),o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=(e,t,n,r)=>{for(var i,a=r>1?void 0:r?s(t,n):t,l=e.length-1;l>=0;l--)(i=e[l])&&(a=(r?i(t,n,a):i(a))||a);return r&&a&&o(t,n,a),a};class l{constructor(e,t){this.user=e,this.inferDarkMode=t}updateUserPreferences=e=>{this.user.setUserPreferences({...this.user.userPreferences.get(),...e})};getUserPreferences(){return{id:this.getId(),name:this.getName(),locale:this.getLocale(),color:this.getColor(),animationSpeed:this.getAnimationSpeed(),isSnapMode:this.getIsSnapMo
26de(),isDarkMode:this.getIsDarkMode(),isWrapMode:this.getIsWrapMode()}}getIsDarkMode(){return this.user.userPreferences.get().isDarkMode??(!!this.inferDarkMode&&(0,i.ng)())}getEdgeScrollSpeed(){return this.user.userPreferences.get().edgeScrollSpeed??i.ks.edgeScrollSpeed}getAnimationSpeed(){return this.user.userPreferences.get().animationSpeed??i.ks.animationSpeed}getId(){return this.user.userPreferences.get().id}getName(){return this.user.userPreferences.get().name??i.ks.name}getLocale(){return this.user.userPreferences.get().locale??i.ks.locale}getColor(){return this.user.userPreferences.get().color??i.ks.color}getIsSnapMode(){return this.user.userPreferences.get().isSnapMode??i.ks.isSnapMode}getIsWrapMode(){return this.user.userPreferences.get().isWrapMode??i.ks.isWrapMode}}a([r.Fl],l.prototype,"getUserPreferences",1),a([r.Fl],l.prototype,"getIsDarkMode",1),a([r.Fl],l.prototype,"getEdgeScrollSpeed",1),a([r.Fl],l.prototype,"getAnimationSpeed",1),a([r.Fl],l.prototype,"getId",1),a([r.Fl],l.prototype,"getName",1),a([r.Fl],l.prototype,"getLocale",1),a([r.Fl],l.prototype,"getColor",1),a([r.Fl],l.prototype,"getIsSnapMode",1),a([r.Fl],l.prototype,"getIsWrapMode",1)},99742:function(e,t,n){"use strict";n.d(t,{E:function(){return r}});class r{constructor(e){this.editor=e}static props;static migrations;static type;canSnap=()=>!0;canScroll=()=>!1;canUnmount=()=>!0;canBind=(e,t)=>!0;canEdit=()=>!1;canResize=()=>!0;canEditInReadOnly=()=>!1;canCrop=()=>!1;providesBackgroundForChildren(e){return!1}hideResizeHandles=()=>!1;hideRotateHandle=()=>!1;hideSelectionBoundsBg=()=>!1;hideSelectionBoundsFg=()=>!1;isAspectRatioLocked=()=>!1;canReceiveNewChildrenOfType(e,t){return!1}canDropShapes(e,t){return!1}expandSelectionOutlinePx(e){return 0}getCanvasSvgDefs(){return[]}getBoundsSnapGeometry(e){return{}}getHandleSnapGeometry(e){return{}}onBeforeCreate;onBeforeUpdate;onDragShapesOver;onDragShapesOut;onDropShapesOver;onResizeStart;onResize;onResizeEnd;onTranslateStart;onTranslate;onTranslateEnd;onHandleDrag;onRotateStart;onRotate;onRotateEnd;onBindingChange;onChildrenChange;onDoubleClickHandle;onDoubleClickEdge;onDoubleClick;onClick;onEditEnd}},52778:function(e,t,n){"use strict";n.d(t,{Q:function(){return f}});var r=n(52322),i=n(189),o=n(13537),s=n(24196),a=n(50603),l=n(94109),c=n(85990),d=n(99742),u=n(42869),h=n(97096);function p({bounds:e,className:t}){let n=(0,h.j)(),i=(0,u.Hg)("zoom level",()=>n.getZoomLevel(),[n]);return(0,r.jsx)("g",{className:t,pointerEvents:"none",strokeLinecap:"round",strokeLinejoin:"round",children:e.sides.map((e,t)=>{let{strokeDasharray:n,strokeDashoffset:o}=function(e,t,n={}){let{closed:r=!1,snap:i=1,start:o="outset",end:s="outset",lengthRatio:a=2,style:l="dashed"}=n,c=0,d=0,u=1,h=0,p=0;switch(l){case"dashed":u=1,c=Math.min(t*a,e/4);break;case"dotted":c=t/(u=100);break;default:return{strokeDasharray:"none",strokeDashoffset:"none"}}return r||("outset"===o?(e+=c/2,p+=c/2):"skip"===o&&(e-=c,p-=c),"outset"===s?e+=c/2:"skip"!==s||(e-=c)),d=Math.floor(e/c/(2*u)),(d-=d%i)<3&&"dashed"===l?e/t<5?(c=e,d=1,h=0):(c=.333*e,h=.333*e):(c=e/(d=Math.max(d,3))/(2*u),r?(p=c/2,h=(e-d*c)/d):h=(e-d*c)/Math.max(1,d-1)),{strokeDasharray:[c,h].join(" "),strokeDashoffset:p.toString()}}(e[0].dist(e[1]),1/i,{style:"dashed",lengthRatio:4});return(0,r.jsx)("line",{x1:e[0].x,y1:e[0].y,x2:e[1].x,y2:e[1].y,strokeDasharray:n,strokeDashoffset:o},t)})})}class f extends d.E{static type="group";static props=i.A7;static migrations=i.c4;hideSelectionBoundsFg=()=>!0;canBind=()=>!1;getDefaultProps(){return{}}getGeometry(e){let t=this.editor.getSortedChildIdsForParent(e.id);return 0===t.length?new c.z({width:1,height:1,isFilled:!1}):new s.m({children:t.map(e=>{let t=this.editor.getShape(e),n=this.editor.getShapeGeometry(e),r=this.editor.getShapeLocalTransform(t).applyToPoints(n.vertices);return n.isClosed?new a.w({points:r,isFilled:!0}):new l.q({points:r})})})}component(e){let t=this.editor.getErasingShapeIds().includes(e.id),{hintingShapeIds:n}=this.editor.getCurrentPageState(),i=n.length>0&&n.some(t=>t!==e.id&&this.editor.isShapeOfType(this.editor.getShape(t),"group")),s=this.editor.getCurrentPageState().focusedGroupId!==e.id;if(!t&&(s||i))return null;let a=this.editor.getShapeGeometry(e).bounds;return(0,r.jsx)(o.g,{id:e.id,children:(0,r.jsx)(p,{className:"tl-group",bounds:a})})}indicator(e){let t=this.editor.getShapeGeometry(e).bounds;return(0,r.jsx)(p,{className:"",bounds:t})}onChildrenChange=e=>{let t=this.editor.getSortedChildIdsForParent(e.id);if(0===t.length){this.editor.getCurrentPageState().focusedGroupId===e.id&&this.editor.popFocusedGroupId(),this.editor.deleteShapes([e.id]);return}if(1===t.length){this.editor.getCurrentPageState().focusedGroupId===e.id&&this.editor.popFocusedGroupId(),this.editor.reparentShapes(t,e.parentId),this.editor.deleteShapes([e.id]);return}}}},77001:function(e,t,n){"use strict";n.d(t,{p:function(){return c}});var r=n(46921),i=n(80489),o=n(96284),s=n(20930),a=n(35407),l=n(15937);function c(e,t,n=0){let{arrowheadEnd:c,arrowheadStart:u}=t.props,h=t.props.bend+n;if(Math.abs(h)>
26Math.abs(t.props.bend*a.Od))return(0,l.r)(e,t);let p=(0,a.Qs)(e,t),f=i.B.Med(p.start,p.end),g=i.B.Sub(p.end,p.start),m=i.B.Len(g)?g.uni():i.B.From(g),y=i.B.Add(f,m.per().mul(-h)),b=(0,a.Up)(e,t.props.start),x=(0,a.Up)(e,t.props.end),w=p.start.clone(),v=p.end.clone(),S=y.clone();if(i.B.Equals(w,v))return{isStraight:!0,start:{handle:w,point:w,arrowhead:t.props.arrowheadStart},end:{handle:v,point:v,arrowhead:t.props.arrowheadEnd},middle:S,isValid:!1,length:0};let k=t.props.bend<0,j=k?s.VK:s.pc,_=d(w,v,S),E=i.B.Angle(_.center,w),C=i.B.Angle(_.center,v),P=j(E,C);if(0===_.length||0===_.size||!(0,s.AV)(_.length)||!(0,s.AV)(_.size))return(0,l.r)(e,t);let I=w.clone(),T=v.clone(),M=S.clone(),A=e.getShapePageTransform(t),$=0,D=0,O=a.Kn;if(b&&!b.isExact){let n;let i=r._.applyToPoint(A,I),s=r._.applyToPoint(A,_.center),l=r._.applyToPoint(A,T),c=r._.Inverse(b.transform),d=r._.applyToPoint(c,i),h=r._.applyToPoint(c,s),p=r._.applyToPoint(c,l),{isClosed:f}=b,g=f?o.h9:o.XS,m=g(h,_.radius,b.outline);if(m){let e=h.angle(d),t=h.angle(p),r=j(e,t);m=m.filter(t=>j(e,h.angle(t))<=r);let i=.25*r;m.sort(f?(t,n)=>Math.abs(j(e,h.angle(t))-i)<Math.abs(j(e,h.angle(n))-i)?-1:1:(t,n)=>j(e,h.angle(t))<j(e,h.angle(n))?-1:1),n=m[0]??(f?void 0:d)}else n=f?void 0:d;if(n&&(I.setTo(e.getPointInShapeSpace(t,r._.applyToPoint(b.transform,n))),b.didIntersect=!0,"none"!==u)){let e=a.L$[t.props.size]/2+("size"in b.shape.props?a.L$[b.shape.props.size]/2:0);$=a.oF+e,O+=e}}if(x&&!x.isExact){let n;let i=r._.applyToPoint(A,I),s=r._.applyToPoint(A,T),l=r._.applyToPoint(A,_.center),d=r._.Inverse(x.transform),u=r._.applyToPoint(d,i),h=r._.applyToPoint(d,l),p=r._.applyToPoint(d,s),f=x.isClosed,g=f?o.h9:o.XS,m=g(h,_.radius,x.outline);if(m){let e=h.angle(u),t=h.angle(p),r=j(e,t),i=.75*r;(m=m.filter(t=>j(e,h.angle(t))<=r)).sort(f?(t,n)=>Math.abs(j(e,h.angle(t))-i)<Math.abs(j(e,h.angle(n))-i)?-1:1:(t,n)=>j(e,h.angle(t))<j(e,h.angle(n))?-1:1),n=m[0]?m[0]:f?void 0:p}else n=f?void 0:p;if(n&&(T.setTo(e.getPointInShapeSpace(t,r._.applyToPoint(x.transform,n))),x.didIntersect=!0,"none"!==c)){let e=a.L$[t.props.size]/2+("size"in x.shape.props?a.L$[x.shape.props.size]/2:0);D=a.oF+e,O+=e}}let B=i.B.Angle(_.center,I),L=i.B.Angle(_.center,T),R=j(B,L),N=R*_.radius,z=I.clone(),F=T.clone();if(0!==$){let e=$/N*(k?1:-1),t=i.B.FromAngle(B+R*e);z.setTo(_.center).add(t.mul(_.radius))}if(0!==D){let e=D/N*(k?-1:1),t=i.B.FromAngle(L+R*e);F.setTo(_.center).add(t.mul(_.radius))}let U=i.B.Dist(z,F);if(U<O&&(0!==$&&0!==D?($*=-1.5,D*=-1.5):0!==$?$*=-2:0!==D&&(D*=-2)),0!==$){let e=$/N*(k?1:-1),t=i.B.FromAngle(B+R*e);I.setTo(_.center).add(t.mul(_.radius))}if(0!==D){let e=D/N*(k?-1:1),t=i.B.FromAngle(L+R*e);T.setTo(_.center).add(t.mul(_.radius))}if(b&&x&&!b.isExact&&!x.isExact){N=(R=j(B=i.B.Angle(_.center,I),L=i.B.Angle(_.center,T)))*_.radius;let t=(0,a.xO)(e,b.shape.id,x.shape.id);if("double-bound"===t&&N<30)I.setTo(w),T.setTo(v),M.setTo(S);else if("safe"===t&&(b&&!b.didIntersect&&I.setTo(w),x&&!x.didIntersect||j(E,B)>j(E,L))){let e=Math.min(.9,a.Kn/N)*(k?1:-1),t=i.B.FromAngle(B+R*e);T.setTo(_.center).add(t.mul(_.radius))}}(function(e,t,n,r,o,a,l){let c=i.B.Angle(e,n),d=i.B.Angle(e,r),u=(0,s.VK)(c,d);l||(u=s.yo-u);let h=i.B.FromAngle(c+u*(.5*(l?1:-1)));if(o.setTo(e).add(h.mul(t)),u>a){o.rotWith(e,s.PI);let t=r.clone();r.setTo(n),n.setTo(t)}})(_.center,_.radius,I,T,M,P,k),I.equals(T)&&(I.setTo(M.clone().addXY(1,1)),T.setTo(M.clone().subXY(1,1))),w.setTo(I),v.setTo(T),S.setTo(M);let H=d(w,v,S);return{isStraight:!1,start:{point:w,handle:p.start,arrowhead:t.props.arrowheadStart},end:{point:v,handle:p.end,arrowhead:t.props.arrowheadEnd},middle:S,handleArc:_,bodyArc:H,isValid:0!==H.length&&isFinite(H.center.x)&&isFinite(H.center.y)}}function d(e,t,n){let r=-2*(e.x*(t.y-n.y)-e.y*(t.x-n.x)+t.x*n.y-n.x*t.y),o={x:((e.x*e.x+e.y*e.y)*(n.y-t.y)+(t.x*t.x+t.y*t.y)*(e.y-n.y)+(n.x*n.x+n.y*n.y)*(t.y-e.y))/r,y:((e.x*e.x+e.y*e.y)*(t.x-n.x)+(t.x*t.x+t.y*t.y)*(n.x-e.x)+(n.x*n.x+n.y*n.y)*(e.x-t.x))/r},a=i.B.Dist(o,e),l=+i.B.Clockwise(e,n,t),c=Math.hypot(e.y-t.y,e.x-t.x),d=Math.hypot(t.y-n.y,t.x-n.x),u=Math.hypot(n.y-e.y,n.x-e.x),h=2*Math.acos((d*d+u*u-c*c)/(2*d*u)),p=+(s.PI>h),f=(s.yo-h)*(l?1:-1);return{center:o,radius:a,size:f,length:f*a,largeArcFlag:p,sweepFlag:l}}},35407:function(e,t,n){"use strict";n.d(t,{Kn:function(){return d},L$:function(){return p},Od:function(){return h},Qs:function(){return c},Up:function(){return a},el:function(){return s},oF:function(){return u},xO:function(){return f}});var r=n(46921),i=n(80489),o=n(24196);function s(e){return 8>Math.abs(e.props.bend)}function a(e,t){if("point"===t.type)return;let n=e.getShape(t.boundShapeId),r=e.getShapePageTransform(n),i=e.getShapeGeometry(n),s=i instanceof o.m?i.children[0].vertices:i.vertices;return{shape:n,transform:r,isClosed:i.isClosed,isExact:t.isExact,didIntersect:!1,outline:s}}function l(e,t,n,o){if("point"===n.type)return i.B.From(n);let s=e.getShape(n.boundShapeId);if(!s)return new i.B(0,0);{let{point:a,size:l}=e.getShapeGeometry(s).bounds,c=i.B.Add(a,i.B.MulV(n.isPrecise||o?n.normalizedAnchor:{x:.5,y:.5}
26,l)),d=r._.applyToPoint(e.getShapePageTransform(s),c),u=r._.applyToPoint(r._.Inverse(t),d);return u}}function c(e,t){let n,r;let i=e.getShapePageTransform(t);"binding"===t.props.start.type&&"binding"===t.props.end.type&&(n=t.props.start.boundShapeId,r=t.props.end.boundShapeId);let o=f(e,n,r),s=l(e,i,t.props.start,"double-bound"===o||"start-contains-end"===o),a=l(e,i,t.props.end,"double-bound"===o||"end-contains-start"===o);return{start:s,end:a}}let d=10,u=10,h=10,p={s:2,m:3.5,l:5,xl:10};function f(e,t,n){if(!t||!n)return"safe";if(t===n)return"double-bound";let r=e.getShapePageBounds(t),i=e.getShapePageBounds(n);if(r&&i){if(r.contains(i))return"start-contains-end";if(i.contains(r))return"end-contains-start"}return"safe"}},15937:function(e,t,n){"use strict";n.d(t,{r:function(){return a}});var r=n(46921),i=n(80489),o=n(96284),s=n(35407);function a(e,t){let{start:n,end:r,arrowheadStart:o,arrowheadEnd:a}=t.props,c=(0,s.Qs)(e,t),d=c.start.clone(),u=c.end.clone(),h=i.B.Med(d,u);if(i.B.Equals(d,u))return{isStraight:!0,start:{handle:d,point:d,arrowhead:t.props.arrowheadStart},end:{handle:u,point:u,arrowhead:t.props.arrowheadEnd},middle:h,isValid:!1,length:0};let p=i.B.Sub(u,d).uni(),f=(0,s.Up)(e,n),g=(0,s.Up)(e,r),m=e.getShapePageTransform(t);l(u,c.start,m,g),l(d,c.end,m,f);let y=0,b=0,x=0,w=0,v=s.Kn,S=f&&g&&f.shape===g.shape,k=f&&g?(0,s.xO)(e,f.shape.id,g.shape.id):"safe";"safe"===k&&f&&g&&!S&&!f.isExact&&!g.isExact&&(g.didIntersect&&!f.didIntersect?f.isClosed&&d.setTo(u.clone().add(p.clone().mul(s.Kn))):!g.didIntersect&&g.isClosed&&u.setTo(d.clone().sub(p.clone().mul(s.Kn))));let j=i.B.Sub(u,d),_=i.B.Len(j)?j.uni():i.B.From(j),E=!i.B.Equals(_,p);S||("start-contains-end"!==k&&f&&"none"!==o&&!f.isExact&&(x=s.L$[t.props.size]/2+("size"in f.shape.props?s.L$[f.shape.props.size]/2:0),y=s.oF+x,v+=x),"end-contains-start"===k||!g||"none"===a||g.isExact||(w=s.L$[t.props.size]/2+("size"in g.shape.props?s.L$[g.shape.props.size]/2:0),b=s.oF+w,v+=w));let C=d.clone().add(_.clone().mul(y*(E?-1:1))),P=u.clone().sub(_.clone().mul(b*(E?-1:1))),I=i.B.Dist(C,P);I<v&&(0!==y&&0!==b?(y*=-1.5,b*=-1.5):0!==y?y*=-1:0!==b&&(b*=-1)),d.add(_.clone().mul(y*(E?-1:1))),u.sub(_.clone().mul(b*(E?-1:1))),E?(f&&g&&u.setTo(i.B.Add(d,_.clone().mul(-s.Kn))),h.setTo(i.B.Med(c.start,c.end))):h.setTo(i.B.Med(d,u));let T=i.B.Dist(d,u);return{isStraight:!0,start:{handle:c.start,point:d,arrowhead:t.props.arrowheadStart},end:{handle:c.end,point:u,arrowhead:t.props.arrowheadEnd},middle:h,isValid:T>0,length:T}}function l(e,t,n,s){let a;if(void 0===s||s.isExact)return;let l=r._.applyToPoint(n,t),c=r._.applyToPoint(n,e),d=r._.applyToPoint(r._.Inverse(s.transform),l),u=r._.applyToPoint(r._.Inverse(s.transform),c),h=s.isClosed,p=h?o.qZ:o.Gc,f=p(d,u,s.outline);if(null!==f&&(a=f.sort((e,t)=>i.B.Dist(e,d)-i.B.Dist(t,d))[0]??(h?void 0:u)),void 0===a)return;let g=r._.applyToPoint(s.transform,a),m=r._.applyToPoint(r._.Inverse(n),g);e.setTo(m),s.didIntersect=!0}},37669:function(e,t,n){"use strict";n.d(t,{m:function(){return i}});var r=n(58191);class i extends r.n{static id="root";static initial="";static children=()=>[];onKeyDown=e=>{if("KeyZ"===e.code&&!(e.shiftKey||e.ctrlKey)){let t=this.getCurrent();t&&t.getCurrent()?.id==="idle"&&this.children.zoom&&this.editor.setCurrentTool("zoom",{...e,onInteractionEnd:t.id})}}}},58191:function(e,t,n){"use strict";n.d(t,{n:function(){return o}});var r=n(42869),i=n(77162);class o{constructor(e,t){this.editor=e;let{id:n,children:i,initial:o}=this.constructor;this.id=n,this._isActive=(0,r.cn)("toolIsActive"+this.id,!1),this._current=(0,r.cn)("toolState"+this.id,void 0),this._path=(0,r.Fl)("toolPath"+this.id,()=>{let e=this.getCurrent();return this.id+(e?`.${e.getPath()}`:"")}),this.parent=t??{},this.parent?i&&o?(this.type="branch",this.initial=o,this.children=Object.fromEntries(i().map(e=>[e.id,new e(this.editor,this)])),this._current.set(this.children[this.initial])):this.type="leaf":(this.type="root",i&&o&&(this.initial=o,this.children=Object.fromEntries(i().map(e=>[e.id,new e(this.editor,this)])),this._current.set(this.children[this.initial])))}static id;static initial;static children;id;type;shapeType;initial;children;parent;getPath(){return this._path.get()}_path;getCurrent(){return this._current.get()}_current;getIsActive(){return this._isActive.get()}_isActive;transition=(e,t={})=>{let n=e.split("."),r=this;for(let e=0;e<n.length;e++){let i=n[e],o=r.getCurrent(),s=r.children?.[i];if(!s)throw Error(`${r.id} - no child state exists with the id ${i}.`);if(o?.id!==s.id&&(o?.exit(t,i),r._current.set(s),s.enter(t,o?.id||"initial"),!s.getIsActive()))break;r=s}return this};handleEvent=e=>{let t=i.J[e.name],n=this.getCurrent();this[t]?.(e),this.getCurrent()===n&&this.getIsActive()&&n?.handleEvent(e)};enter=(e,t)=>{if(this._isActive.set(!0),this.onEnter?.(e,t),this.onTick&&this.editor.on("tick",this.onTick),this.children&&this.initial&&this.getIsActive()){let n=this.children[this.initial];this._current.set(n),n.enter(e,t)}};exit=(e,t)=>
26{this._isActive.set(!1),this.onTick&&this.editor.off("tick",this.onTick),this.onExit?.(e,t),this.getIsActive()||this.getCurrent()?.exit(e,t)};_currentToolIdMask=(0,r.cn)("curent tool id mask",void 0);getCurrentToolIdMask(){return this._currentToolIdMask.get()}setCurrentToolIdMask(e){this._currentToolIdMask.set(e)}onWheel;onPointerDown;onPointerMove;onPointerUp;onDoubleClick;onTripleClick;onQuadrupleClick;onRightClick;onMiddleClick;onKeyDown;onKeyUp;onKeyRepeat;onCancel;onComplete;onInterrupt;onEnter;onExit;onTick}},77162:function(e,t,n){"use strict";n.d(t,{J:function(){return r}});let r={wheel:"onWheel",pointer_down:"onPointerDown",pointer_move:"onPointerMove",pointer_up:"onPointerUp",right_click:"onRightClick",middle_click:"onMiddleClick",key_down:"onKeyDown",key_up:"onKeyUp",key_repeat:"onKeyRepeat",cancel:"onCancel",complete:"onComplete",interrupt:"onInterrupt",double_click:"onDoubleClick",triple_click:"onTripleClick",quadruple_click:"onQuadrupleClick"}},97096:function(e,t,n){"use strict";n.d(t,{j:function(){return o},r:function(){return i}});var r=n(2784);let i=r.createContext({});function o(){return r.useContext(i)}},84527:function(e,t,n){"use strict";n.d(t,{Ee:function(){return a},Op:function(){return s},m3:function(){return l},xu:function(){return o}});var r=n(80489),i=n(20930);class o{constructor(e=0,t=0,n=0,r=0){this.x=e,this.y=t,this.w=n,this.h=r}x=0;y=0;w=0;h=0;get point(){return new r.B(this.x,this.y)}set point(e){this.x=e.x,this.y=e.y}get minX(){return this.x}set minX(e){this.x=e}get midX(){return this.x+this.w/2}get maxX(){return this.x+this.w}get minY(){return this.y}set minY(e){this.y=e}get midY(){return this.y+this.h/2}get maxY(){return this.y+this.h}get width(){return this.w}set width(e){this.w=e}get height(){return this.h}set height(e){this.h=e}get aspectRatio(){return this.width/this.height}get center(){return new r.B(this.midX,this.midY)}set center(e){this.minX=e.x-this.width/2,this.minY=e.y-this.height/2}get corners(){return[new r.B(this.minX,this.minY),new r.B(this.maxX,this.minY),new r.B(this.maxX,this.maxY),new r.B(this.minX,this.maxY)]}get cornersAndCenter(){return[new r.B(this.minX,this.minY),new r.B(this.maxX,this.minY),new r.B(this.maxX,this.maxY),new r.B(this.minX,this.maxY),this.center]}get sides(){let{corners:e}=this;return[[e[0],e[1]],[e[1],e[2]],[e[2],e[3]],[e[3],e[0]]]}get size(){return new r.B(this.w,this.h)}toFixed(){return this.x=(0,i.Zd)(this.x),this.y=(0,i.Zd)(this.y),this.w=(0,i.Zd)(this.w),this.h=(0,i.Zd)(this.h),this}setTo(e){return this.x=e.x,this.y=e.y,this.w=e.w,this.h=e.h,this}set(e=0,t=0,n=0,r=0){return this.x=e,this.y=t,this.w=n,this.h=r,this}expand(e){let t=Math.min(this.minX,e.minX),n=Math.min(this.minY,e.minY),r=Math.max(this.maxX,e.maxX),i=Math.max(this.maxY,e.maxY);return this.x=t,this.y=n,this.w=r-t,this.h=i-n,this}expandBy(e){return this.x-=e,this.y-=e,this.w+=2*e,this.h+=2*e,this}scale(e){return this.x/=e,this.y/=e,this.w/=e,this.h/=e,this}clone(){let{x:e,y:t,w:n,h:r}=this;return new o(e,t,n,r)}translate(e){return this.x+=e.x,this.y+=e.y,this}snapToGrid(e){let t=Math.round(this.minX/e)*e,n=Math.round(this.minY/e)*e,r=Math.round(this.maxX/e)*e,i=Math.round(this.maxY/e)*e;this.minX=t,this.minY=n,this.width=Math.max(1,r-t),this.height=Math.max(1,i-n)}collides(e){return o.Collides(this,e)}contains(e){return o.Contains(this,e)}includes(e){return o.Includes(this,e)}containsPoint(e,t=0){return o.ContainsPoint(this,e,t)}getHandlePoint(e){switch(e){case"top_left":return new r.B(this.minX,this.minY);case"top_right":return new r.B(this.maxX,this.minY);case"bottom_left":return new r.B(this.minX,this.maxY);case"bottom_right":return new r.B(this.maxX,this.maxY);case"top":return new r.B(this.midX,this.minY);case"right":return new r.B(this.maxX,this.midY);case"bottom":return new r.B(this.midX,this.maxY);case"left":return new r.B(this.minX,this.midY)}}toJson(){return{x:this.minX,y:this.minY,w:this.w,h:this.h}}resize(e,t,n){let{minX:r,minY:i,maxX:o,maxY:s}=this,{minX:a,minY:l,maxX:c,maxY:d}=this;switch(e){case"left":case"top_left":case"bottom_left":a+=t;break;case"right":case"top_right":case"bottom_right":c+=t}
26switch(e){case"top":case"top_left":case"top_right":l+=n;break;case"bottom":case"bottom_left":case"bottom_right":d+=n}let u=(c-a)/(o-r),h=(d-l)/(s-i);if(u<0){let e=c;c=a,a=e}if(h<0){let e=d;d=l,l=e}this.minX=a,this.minY=l,this.width=Math.abs(c-a),this.height=Math.abs(d-l)}union(e){let t=Math.min(this.minX,e.x),n=Math.min(this.minY,e.y),r=Math.max(this.maxX,e.w+e.x),i=Math.max(this.maxY,e.h+e.y);return this.x=t,this.y=n,this.width=r-t,this.height=i-n,this}static From(e){return new o(e.x,e.y,e.w,e.h)}static FromCenter(e,t){return new o(e.x-t.x/2,e.y-t.y/2,t.x,t.y)}static FromPoints(e){let t;if(0===e.length)return new o;let n=1/0,r=1/0,i=-1/0,s=-1/0;for(let o=0,a=e.length;o<a;o++)n=Math.min((t=e[o]).x,n),r=Math.min(t.y,r),i=Math.max(t.x,i),s=Math.max(t.y,s);return new o(n,r,i-n,s-r)}static Expand(e,t){let n=Math.min(t.minX,e.minX),r=Math.min(t.minY,e.minY),i=Math.max(t.maxX,e.maxX),s=Math.max(t.maxY,e.maxY);return new o(n,r,i-n,s-r)}static ExpandBy(e,t){return new o(e.minX-t,e.minY-t,e.width+2*t,e.height+2*t)}static Collides=(e,t)=>!(e.maxX<t.minX||e.minX>t.maxX||e.maxY<t.minY||e.minY>t.maxY);static Contains=(e,t)=>e.minX<t.minX&&e.minY<t.minY&&e.maxY>t.maxY&&e.maxX>t.maxX;static Includes=(e,t)=>o.Collides(e,t)||o.Contains(e,t);static ContainsPoint=(e,t,n=0)=>!(t.x<e.minX-n||t.y<e.minY-n||t.x>e.maxX+n||t.y>e.maxY+n);static Common=e=>{let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let o=0;o<e.length;o++){let s=e[o];t=Math.min(t,s.minX),n=Math.min(n,s.minY),r=Math.max(r,s.maxX),i=Math.max(i,s.maxY)}return new o(t,n,r-t,i-n)};static Sides=(e,t=0)=>{let{corners:n}=e;return[[n[0],n[1]],[n[1],n[2]],[n[2],n[3]],[n[3],n[0]]]};static Resize(e,t,n,r,i=!1){let{minX:s,minY:a,maxX:l,maxY:c}=e,{minX:d,minY:u,maxX:h,maxY:p}=e;switch(t){case"left":case"top_left":case"bottom_left":d+=n;break;case"right":case"top_right":case"bottom_right":h+=n}switch(t){case"top":case"top_left":case"top_right":u+=r;break;case"bottom":case"bottom_left":case"bottom_right":p+=r}let f=(h-d)/(l-s),g=(p-u)/(c-a);if(i){let e=(l-s)/(c-a),n=Math.abs(h-d),r=Math.abs(p-u),i=n*(g<0?1:-1)*(1/e),o=r*(f<0?1:-1)*e,m=e<n/r;switch(t){case"top_left":m?u=p+i:d=h+o;break;case"top_right":m?u=p+i:h=d-o;break;case"bottom_right":m?p=u-i:h=d-o;break;case"bottom_left":m?p=u-i:d=h+o;break;case"bottom":case"top":{let t=(d+h)/2,n=r*e;d=t-n/2,h=t+n/2;break}case"left":case"right":{let t=(u+p)/2,r=n/e;u=t-r/2,p=t+r/2}}}if(f<0){let e=h;h=d,d=e}if(g<0){let e=p;p=u,u=e}let m=new o(d,u,Math.abs(h-d),Math.abs(p-u));return{box:m,scaleX:+(m.width/e.width*(f>0?1:-1)).toFixed(5),scaleY:+(m.height/e.height*(g>0?1:-1)).toFixed(5)}}equals(e){return o.Equals(this,e)}static Equals(e,t){return t.x===e.x&&t.y===e.y&&t.w===e.w&&t.h===e.h}zeroFix(){return this.w=Math.max(1,this.w),this.h=Math.max(1,this.h),this}static ZeroFix(e){return new o(e.x,e.y,Math.max(1,e.w),Math.max(1,e.h))}}function s(e){switch(e){case"top":return"bottom";case"bottom":return"top";case"top_left":return"bottom_left";case"top_right":return"bottom_right";case"bottom_left":return"top_left";case"bottom_right":return"top_right";default:return e}}function a(e){switch(e){case"left":return"right";case"right":return"left";case"top_left":return"top_right";case"top_right":return"top_left";case"bottom_left":return"bottom_right";case"bottom_right":return"bottom_left";default:return e}}function l(e){return"top_left"===e||"top_right"===e||"bottom_right"===e||"bottom_left"===e}},46921:function(e,t,n){"use strict";n.d(t,{_:function(){return s}});var r=n(84527),i=n(20930),o=n(80489);class s{constructor(e,t,n,r,i,o){this.a=e,this.b=t,this.c=n,this.d=r,this.e=i,this.f=o}a=1;b=0;c=0;d=1;e=0;f=0;equals(e){return this.a===e.a&&this.b===e.b&&this.c===e.c&&this.d===e.d&&this.e===e.e&&this.f===e.f}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0,this}multiply(e){let{a:t,b:n,c:r,d:i,e:o,f:s}=this;return this.a=t*e.a+r*e.b,this.c=t*e.c+r*e.d,this.e=t*e.e+r*e.f+o,this.b=n*e.a+i*e.b,this.d=n*e.c+i*e.d,this.f=n*e.e+i*e.f+s,this}rotate(e,t,n){return 0===e?this:void 0===t?this.multiply(s.Rotate(e)):this.translate(t,n).multiply(s.Rotate(e)).translate(-t,-n)}translate(e,t){return this.multiply(s.Translate(e,t))}scale(e,t){return this.multiply(s.Scale(e,t))}invert(){let{a:e,b:t,c:n,d:r,e:i,f:o}=this,s=e*r-t*n;return this.a=r/s,this.b=-(t/s),this.c=-(n/s),this.d=e/s,this.e=-((r*i-n*o)/s),this.f=(t*i-e*o)/s,this}applyToPoint(e){return s.applyToPoint(this,e)}applyToPoints(e){return s.applyToPoints(this,e)}rotation(){return s.Rotation(this)}point(){return s.Point(this)}decomposed(){return s.Decompose(this)}toCssString(){return s.toCssString(this)}setTo(e){return Object.assign(this,e),this}decompose(){return s.Decompose(this)}clone(){return new s(this.a,this.b,this.c,this.d,this.e,this.f)}static Identity(){return new s(1,0,0,1,0,0)}static Translate(e,t){return new s(1,0,0,1,e,t)}static Rotate(e,t,n){if(0===e)return s.Identity();let r=Math.cos(e),i=Math.sin(e),o=new s(r,i,-i,r,0,0);return void 0===t?o:s.Compose(s.Translate(t,n),o,s.Translate(-t,-n))}static Scale=(e,t,n,r)=>{let i=new s(e,0,0,t,0,0);return void 0===n?i:s.Compose(s.Translate(n,r),i,s.Translate(-n,-r))};static Multiply(e,t){return{a:e.a*t.a+e.c*t.b,c:e.a*t.c+e.c*t.d,e:e.a*t.e+e.c*t.f+e.e,b:e.b*t.a+e.d*t.b,d:e.b*t.c+e.d*t.d,f:e.b*t.e+e.d*t.f+e.f}}static Inverse(e){let t=e.a*e.d-e.b*e.c;return{a:e.d/t,b:-(e.b/t),c:-(e.c/t),d:e.a/t,e:-((e.d*e.e-e.c*e.f)/t),f:(e.b*e.e-e.a*e.f)/t}}static Absolute(e){let t=e.a*e.d-e.b*e.c;return{a:e.d/t,b:-(e.b/t),c:-(e.c/t),d:e.a/t,e:(e.d*e.e-e.c*e.f)/t,f:-((e.b*e.e-e.a*e.f)/t)}}static Compose(...e){let t=s.Identity();for(let n=0,r=e.length;n<r;n++)t.multiply(e[n]);return t}static Point(e){return new o.B(e.e,e.f)}static Rotation(e){let t;if(0!==e.a||0!==e.c){let n=Math.hypot(e.a,e.c);t=Math.acos(e.a/n)*(e.c>0?-1:1)}else if(0!==e.b||0!==e.d){let n=Math.hypot(e.b,e.d);
26t=i.pj+Math.acos(e.b/n)*(e.d>0?-1:1)}else t=0;return(0,i.Ci)(t)}static Decompose(e){let t,n,r;if(0!==e.a||0!==e.c){let i=Math.hypot(e.a,e.c);t=i,n=(e.a*e.d-e.b*e.c)/i,r=Math.acos(e.a/i)*(e.c>0?-1:1)}else if(0!==e.b||0!==e.d){let o=Math.hypot(e.b,e.d);t=(e.a*e.d-e.b*e.c)/o,n=o,r=i.pj+Math.acos(e.b/o)*(e.d>0?-1:1)}else t=0,n=0,r=0;return{x:e.e,y:e.f,scaleX:t,scaleY:n,rotation:(0,i.Ci)(r)}}static Smooth(e,t=1e10){return e.a=Math.round(e.a*t)/t,e.b=Math.round(e.b*t)/t,e.c=Math.round(e.c*t)/t,e.d=Math.round(e.d*t)/t,e.e=Math.round(e.e*t)/t,e.f=Math.round(e.f*t)/t,e}static toCssString(e){return`matrix(${(0,i.$Z)(e.a)}, ${(0,i.$Z)(e.b)}, ${(0,i.$Z)(e.c)}, ${(0,i.$Z)(e.d)}, ${(0,i.$Z)(e.e)}, ${(0,i.$Z)(e.f)})`}static applyToPoint(e,t){return new o.B(e.a*t.x+e.c*t.y+e.e,e.b*t.x+e.d*t.y+e.f,t.z)}static applyToXY(e,t,n){return[e.a*t+e.c*n+e.e,e.b*t+e.d*n+e.f]}static applyToPoints(e,t){return t.map(t=>new o.B(e.a*t.x+e.c*t.y+e.e,e.b*t.x+e.d*t.y+e.f,t.z))}static applyToBounds(e,t){return new r.xu(e.e+t.minX,e.f+t.minY,t.width,t.height)}static From(e){return new s(e.a,e.b,e.c,e.d,e.e,e.f)}static Cast(e){return e instanceof s?e:s.From(e)}}},80489:function(e,t,n){"use strict";n.d(t,{B:function(){return i}});var r=n(80695);class i{constructor(e=0,t=0,n=1){this.x=e,this.y=t,this.z=n}get pressure(){return this.z}set(e=this.x,t=this.y,n=this.z){return this.x=e,this.y=t,this.z=n,this}setTo({x:e=0,y:t=0,z:n=1}){return this.x=e,this.y=t,this.z=n,this}rot(e){if(0===e)return this;let{x:t,y:n}=this,r=Math.sin(e),i=Math.cos(e);return this.x=t*i-n*r,this.y=t*r+n*i,this}rotWith(e,t){if(0===t)return this;let n=this.x-e.x,r=this.y-e.y,i=Math.sin(t),o=Math.cos(t);return this.x=e.x+(n*o-r*i),this.y=e.y+(n*i+r*o),this}clone(){let{x:e,y:t,z:n}=this;return new i(e,t,n)}sub(e){return this.x-=e.x,this.y-=e.y,this}subXY(e,t){return this.x-=e,this.y-=t,this}subScalar(e){return this.x-=e,this.y-=e,this}add(e){return this.x+=e.x,this.y+=e.y,this}addXY(e,t){return this.x+=e,this.y+=t,this}addScalar(e){return this.x+=e,this.y+=e,this}clamp(e,t){return this.x=Math.max(this.x,e),this.y=Math.max(this.y,e),void 0!==t&&(this.x=Math.min(this.x,t),this.y=Math.min(this.y,t)),this}div(e){return this.x/=e,this.y/=e,this}divV(e){return this.x/=e.x,this.y/=e.y,this}mul(e){return this.x*=e,this.y*=e,this}mulV(e){return this.x*=e.x,this.y*=e.y,this}abs(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this}nudge(e,t){let n=i.Tan(e,this);return this.add(n.mul(t))}neg(){return this.x*=-1,this.y*=-1,this}cross(e){return this.x=this.y*e.z-this.z*e.y,this.y=this.z*e.x-this.x*e.z,this}dpr(e){return i.Dpr(this,e)}cpr(e){return i.Cpr(this,e)}len2(){return i.Len2(this)}len(){return i.Len(this)}pry(e){return i.Pry(this,e)}per(){let{x:e,y:t}=this;return this.x=t,this.y=-e,this}uni(){return i.Uni(this)}tan(e){return i.Tan(this,e)}dist(e){return i.Dist(this,e)}distanceToLineSegment(e,t){return i.DistanceToLineSegment(e,t,this)}slope(e){return i.Slope(this,e)}snapToGrid(e){return this.x=Math.round(this.x/e)*e,this.y=Math.round(this.y/e)*e,this}angle(e){return i.Angle(this,e)}toAngle(){return i.ToAngle(this)}lrp(e,t){return this.x=this.x+(e.x-this.x)*t,this.y=this.y+(e.y-this.y)*t,this}equals(e){return i.Equals(this,e)}equalsXY(e,t){return i.EqualsXY(this,e,t)}norm(){let e=this.len();return this.x=0===e?0:this.x/e,this.y=0===e?0:this.y/e,this}toFixed(){return i.ToFixed(this)}toString(){return i.ToString(i.ToFixed(this))}toJson(){return i.ToJson(this)}toArray(){return i.ToArray(this)}static Add(e,t){return new i(e.x+t.x,e.y+t.y)}static AddXY(e,t,n){return new i(e.x+t,e.y+n)}static Sub(e,t){return new i(e.x-t.x,e.y-t.y)}static SubXY(e,t,n){return new i(e.x-t,e.y-n)}static AddScalar(e,t){return new i(e.x+t,e.y+t)}static SubScalar(e,t){return new i(e.x-t,e.y-t)}static Div(e,t){return new i(e.x/t,e.y/t)}static Mul(e,t){return new i(e.x*t,e.y*t)}static DivV(e,t){return new i(e.x/t.x,e.y/t.y)}static MulV(e,t){return new i(e.x*t.x,e.y*t.y)}static Neg(e){return new i(-e.x,-e.y)}static Per(e){return new i(e.y,-e.x)}static Dist2(e,t){return i.Sub(e,t).len2()}static Abs(e){return new i(Math.abs(e.x),Math.abs(e.y))}static Dist(e,t){return Math.hypot(e.y-t.y,e.x-t.x)}static Dpr(e,t){return e.x*t.x+e.y*t.y}static Cross(e,t){return new i(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z)}static Cpr(e,t){return e.x*t.y-t.x*e.y}static Len2(e){return e.x*e.x+e.y*e.y}static Len(e){return Math.hypot(e.x,e.y)}static Pry(e,t){return i.Dpr(e,t)/i.Len(t)}static Uni(e){return i.Div(e,i.Len(e))}static Tan(e,t){return i.Uni(i.Sub(e,t))}static Min(e,t){return new i(Math.min(e.x,t.x),Math.min(e.y,t.y))}static Max(e,t){return new i(Math.max(e.x,t.x),Math.max(e.y,t.y))}static From({x:e,y:t,z:n=1}){return new i(e,t,n)}static FromArray(e){return new i(e[0],e[1])}
26static Rot(e,t=0){let n=Math.sin(t),r=Math.cos(t);return new i(e.x*r-e.y*n,e.x*n+e.y*r)}static RotWith(e,t,n){let r=e.x-t.x,o=e.y-t.y,s=Math.sin(n),a=Math.cos(n);return new i(t.x+(r*a-o*s),t.y+(r*s+o*a))}static NearestPointOnLineThroughPoint(e,t,n){return i.Mul(t,i.Sub(n,e).pry(t)).add(e)}static NearestPointOnLineSegment(e,t,n,r=!0){let o=i.Tan(t,e),s=i.Add(e,i.Mul(o,i.Sub(n,e).pry(o)));if(r){if(s.x<Math.min(e.x,t.x))return i.Cast(e.x<t.x?e:t);if(s.x>Math.max(e.x,t.x))return i.Cast(e.x>t.x?e:t);if(s.y<Math.min(e.y,t.y))return i.Cast(e.y<t.y?e:t);if(s.y>Math.max(e.y,t.y))return i.Cast(e.y>t.y?e:t)}return s}static DistanceToLineThroughPoint(e,t,n){return i.Dist(n,i.NearestPointOnLineThroughPoint(e,t,n))}static DistanceToLineSegment(e,t,n,r=!0){return i.Dist(n,i.NearestPointOnLineSegment(e,t,n,r))}static Snap(e,t=1){return new i(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}static Cast(e){return e instanceof i?e:i.From(e)}static Slope(e,t){return e.x===t.y?NaN:(e.y-t.y)/(e.x-t.x)}static IsNaN(e){return isNaN(e.x)||isNaN(e.y)}static Angle(e,t){return Math.atan2(t.y-e.y,t.x-e.x)}static Lrp(e,t,n){return i.Sub(t,e).mul(n).add(e)}static Med(e,t){return new i((e.x+t.x)/2,(e.y+t.y)/2)}static Equals(e,t){return 1e-4>Math.abs(e.x-t.x)&&1e-4>Math.abs(e.y-t.y)}static EqualsXY(e,t,n){return e.x===t&&e.y===n}static Clockwise(e,t,n){return(n.x-e.x)*(t.y-e.y)-(t.x-e.x)*(n.y-e.y)<0}static Rescale(e,t){let n=i.Len(e);return new i(t*e.x/n,t*e.y/n)}static ScaleWithOrigin(e,t,n){return i.Sub(e,n).mul(t).add(n)}static ToFixed(e,t=2){return new i(+e.x.toFixed(t),+e.y.toFixed(t),+e.z.toFixed(t))}static Nudge(e,t,n){return i.Add(e,i.Tan(t,e).mul(n))}static ToString(e){return`${e.x}, ${e.y}`}static ToAngle(e){let t=Math.atan2(e.y,e.x);return t<0&&(t+=2*Math.PI),t}static FromAngle(e,t=1){return new i(Math.cos(e)*t,Math.sin(e)*t)}static ToArray(e){return[e.x,e.y,e.z]}static ToJson(e){let{x:t,y:n,z:r}=e;return{x:t,y:n,z:r}}static Average(e){let t=e.length,n=new i(0,0);for(let r=0;r<t;r++)n.add(e[r]);return n.div(t)}static Clamp(e,t,n){return void 0===n?new i(Math.min(Math.max(e.x,t)),Math.min(Math.max(e.y,t))):new i(Math.min(Math.max(e.x,t),n),Math.min(Math.max(e.y,t),n))}static PointsBetween(e,t,n=6){let s=[];for(let a=0;a<n;a++){let l=r.L.easeInQuad(a/(n-1)),c=i.Lrp(e,t,l);c.z=Math.min(1,.5+.65*Math.abs(.5-o(l))),s.push(c)}return s}static SnapToGrid(e,t=8){return new i(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}}let o=e=>e<.5?2*e*e:-1+(4-2*e)*e},80695:function(e,t,n){"use strict";n.d(t,{L:function(){return r}});let r={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e*e:-1+(4-2*e)*e,easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1- --e*e*e*e,easeInOutQuart:e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1+--e*e*e*e*e,easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e,easeInSine:e=>1-Math.cos(e*Math.PI/2),easeOutSine:e=>Math.sin(e*Math.PI/2),easeInOutSine:e=>-(Math.cos(Math.PI*e)-1)/2,easeInExpo:e=>e<=0?0:Math.pow(2,10*e-10),easeOutExpo:e=>e>=1?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>e<=0?0:e>=1?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2}},77843:function(e,t,n){"use strict";n.d(t,{W:function(){return s}});var r=n(80489),i=n(96284),o=n(52938);class s extends o.l{start;end;d;u;ul;constructor(e){super({...e,isClosed:!1,isFilled:!1});let{start:t,end:n}=e;this.start=t,this.end=n,this.d=t.clone().sub(n),this.u=this.d.clone().uni(),this.ul=this.u.len()}_length;get length(){return this._length?this._length:this.d.len()}midPoint(){return this.start.lrp(this.end,.5)}getVertices(){return[this.start,this.end]}nearestPoint(e){let{start:t,end:n,u:i,ul:o}=this;if(0===o)return t;let s=r.B.Sub(e,t).dpr(i)/o,a=t.x+i.x*s;if(a<Math.min(t.x,n.x))return t.x<n.x?t:n;if(a>Math.max(t.x,n.x))return t.x>n.x?t:n;let l=t.y+i.y*s;return l<Math.min(t.y,n.y)?t.y<n.y?t:n:l>Math.max(t.y,n.y)?t.y>n.y?t:n:new r.B(a,l)}hitTestLineSegment(e,t,n){return(0,i.cB)(e,t,this.start,this.end)}}},52938:function(e,t,n){"use strict";n.d(t,{l:function(){return s}});var r=n(84527),i=n(80489),o=n(20930);class s{isFilled=!1;isClosed=!0;isLabel=!1;debugColor;ignore;constructor(e){this.isFilled=e.isFilled,this.isClosed=e.isClosed,this.isLabel=e.isLabel??!1,this.debugColor=e.debugColor,this.ignore=e.ignore}hitTestPoint(e,t=0,n=!1){return this.distanceToPoint(e,n)<=t}distanceToPoint(e,t=!1){let n=e.dist(this.nearestPoint(e));return this.isClosed&&(this.isFilled||t)&&(0,o.Of)(e,this.vertices)?-n:n}distanceToLineSegment(e,t){let n=this.nearestPointOnLineSegment(e,t),r=i.B.DistanceToLineSegment(e,t,n);return this.isClosed&&this.isFilled&&(0,o.Of)(n,this.vertices)?-r:r}hitTestLineSegment(e,t,n=0){return this.distanceToLineSegment(e,t)<=n}nearestPointOnLineSegment(e,t){let n,r=1/0;for(let o=0;o<this.vertices.length;o++){let s=this.vertices[o],a=i.B.DistanceToLineSegment(e,t,s);a<r&&(r=a,n=s)}if(!n)throw Error("nearest point not found");return n}isPointInBounds(e,t=0){let{bounds:n}=this;return!(e.x<n.minX-t||e.y<n.minY-t||e.x>n.maxX+t||e.y>n.maxY+t)}_vertices;get vertices(){return this._vertices||(this._vertices=this.getVertices()),this._vertices}getBounds(){return r.xu.FromPoints(this.vertices)}_bounds;get bounds(){return this._bounds||(this._bounds=this.getBounds()),this._bounds}get center(){return this.bounds.center}_area;get area(){return this._area||(this._area=this.getArea()),this._area}getArea(){if(!this.isClosed)return 0;let{vertices:e}=this,t=0;for(let n=0,r=e.length;n<r;n++){let i=e[n],o=e[(n+1)%r];t+=i.x*o.y-o.x*i.y}return t/2}toSimpleSvgPath(){let e="",{vertices:t}=this,n=t.length;if(0===n)return e;e+=`M${t[0].x},${t[0].y}`;for(let r=1;r<n;r++)e+=`L${t[r].x},${t[r].y}`;return this.isClosed&&(e+="Z"),e}}},24196:function(e,t,n){"use strict";n.d(t,{m:function(){return o}});var r=n(84527),i=n(52938);class o extends i.l{children=[];ignoredChildren=[];constructor(e){for(let t of(super({...e,isClosed:!0,isFilled:!1}),e.children))t.ignore?this.ignoredChildren.push(t):this.children.push(t);if(0===this.children.length)throw Error("Group2d must have at least one child")}getVertices(){return this.children.filter(e=>!e.isLabel).flatMap(e=>e.vertices)}nearestPoint(e){let t,n=1/0,{children:r}=this;if(0===r.length)throw Error("no children");for(let i of r){let r=i.nearestPoint(e),o=r.dist(e);o<n&&(n=o,t=r)}if(!t)throw Error("nearest point not found");return t}distanceToPoint(e,t=!1){return Math.min(...this.children.map((n,r)=>n.distanceToPoint(e,t||r>0)))}hitTestPoint(e,t,n){return!!this.children.filter(e=>!e.isLabel).find(r=>r.hitTestPoint(e,t,n))}hitTestLineSegment(e,t,n){return!!this.children.filter(e=>!e.isLabel).find(r=>r.hitTestLineSegment(e,t,n))}getArea(){return this.children[0].area}toSimpleSvgPath(){let e="";for(let t of this.children)e+=t.toSimpleSvgPath();let t=r.xu.FromPoints(this.vertices).corners;for(let n=0,r=t.length;n<r;n++){let i=t[n],o=t[(n-1+r)%r],s=i.dist(o),a=t[(n+1)%r],l=i.dist(a),c=i.clone().lrp(o,4/s),d=i.clone().lrp(a,4/l);e+=`M${c.x},${c.y} L${i.x},${i.y} L${d.x},${d.y} `}return e}}},50603:function(e,t,n){"use strict";n.d(t,{w:function(){return i}});var r=n(94109);class i extends r.q{constructor(e){super({...e}),this.isClosed=!0}}},94109:function(e,t,n){"use strict";n.d(t,{q:function(){return o}});var r=n(77843),i=n(52938);class o extends i.l{points;constructor(e){super({isClosed:!1,isFilled:!1,...e});let{points:t}=e;this.points=t}_segments;get segments(){if(!this._segments){this._segments=[];let{vertices:e}=this;for(let t=0,n=e.length-1;t<n;t++){let n=e[t],i=e[t+1];this._segments.push(new r.W({start:n,end:i}))}this.isClosed&&this._segments.push(new r.W({start:e[e.length-1],end:e[0]}))}return this._segments}_length;get length(){return this._length||(this._length=this.segments.reduce((e,t)=>
26e+t.length,0)),this._length}getVertices(){return this.points}nearestPoint(e){let t,n;let{segments:r}=this,i=this.points[0],o=1/0;for(let s=0;s<r.length;s++)(n=(t=r[s].nearestPoint(e)).dist(e))<o&&(i=t,o=n);return i}hitTestLineSegment(e,t,n){return this.segments.some(r=>r.hitTestLineSegment(e,t,n))}}},85990:function(e,t,n){"use strict";n.d(t,{z:function(){return s}});var r=n(84527),i=n(80489),o=n(50603);class s extends o.w{x;y;w;h;constructor(e){let{x:t=0,y:n=0,width:r,height:o}=e;super({...e,points:[new i.B(t,n),new i.B(t+r,n),new i.B(t+r,n+o),new i.B(t,n+o)]}),this.x=t,this.y=n,this.w=r,this.h=o}getBounds(){return new r.xu(this.x,this.y,this.w,this.h)}}},96284:function(e,t,n){"use strict";n.d(t,{Gc:function(){return a},UQ:function(){return m},XS:function(){return u},ZM:function(){return s},bO:function(){return c},cB:function(){return p},h9:function(){return d},qZ:function(){return l},tY:function(){return f}});var r=n(20930),i=n(80489);function o(e,t,n,r){let o=e.x-n.x,s=e.y-n.y,a=r.x-n.x,l=r.y-n.y,c=t.x-e.x,d=t.y-e.y,u=a*s-l*o,h=c*s-d*o,p=l*c-a*d;if(0===u||0===h||0===p)return null;if(0!==p){let t=u/p,n=h/p;if(0<=t&&t<=1&&0<=n&&n<=1)return i.B.AddXY(e,t*c,t*d)}return null}function s(e,t,n,r){let o=(t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y),s=2*((t.x-e.x)*(e.x-n.x)+(t.y-e.y)*(e.y-n.y)),a=n.x*n.x+n.y*n.y+e.x*e.x+e.y*e.y-2*(n.x*e.x+n.y*e.y)-r*r,l=s*s-4*o*a;if(l<0||0===l)return null;let c=Math.sqrt(l),d=(-s+c)/(2*o),u=(-s-c)/(2*o);if((d<0||d>1)&&(u<0||u>1))return null;let h=[];return(0<=d&&d<=1&&h.push(i.B.Lrp(e,t,d)),0<=u&&u<=1&&h.push(i.B.Lrp(e,t,u)),0===h.length)?null:h}function a(e,t,n){let r;let i=[];for(let s=0,a=n.length-1;s<a;s++)(r=o(e,t,n[s],n[s+1]))&&i.push(r);return 0===i.length?null:i}function l(e,t,n){let r;let i=[];for(let s=1,a=n.length;s<a+1;s++)(r=o(e,t,n[s-1],n[s%n.length]))&&i.push(r);return 0===i.length?null:i}function c(e,t,n,r){let o=n.x-e.x,s=n.y-e.y,a=Math.sqrt(o*o+s*s),l=(a*a-r*r+t*t)/(2*a),c=Math.sqrt(t*t-l*l);return o/=a,s/=a,[new i.B(e.x+o*l-s*c,e.y+s*l+o*c),new i.B(e.x+o*l+s*c,e.y+s*l-o*c)]}function d(e,t,n){let r;let i=[];for(let o=0,a=n.length;o<a;o++)(r=s(n[o],n[(o+1)%n.length],e,t))&&i.push(...r);return 0===i.length?null:i}function u(e,t,n){let r;let i=[];for(let o=1,a=n.length;o<a;o++)(r=s(n[o-1],n[o],e,t))&&i.push(...r);return 0===i.length?null:i}function h(e,t,n){return(n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}function p(e,t,n,r){return h(e,n,r)!==h(t,n,r)&&h(e,t,n)!==h(e,t,r)}function f(e,t){let n,s,a,l;let c=new Map;for(let i=0,o=e.length;i<o;i++)if(n=e[i],(0,r.Of)(n,t)){let e=g(n);c.has(e)||c.set(e,n)}for(let i=0,o=t.length;i<o;i++)if(n=t[i],(0,r.Of)(n,e)){let e=g(n);c.has(e)||c.set(e,n)}for(let r=0,i=e.length;r<i;r++){n=e[r],s=e[(r+1)%e.length];for(let e=0,r=t.length;e<r;e++){a=t[e],l=t[(e+1)%t.length];let r=o(n,s,a,l);if(null!==r){let e=g(r);c.has(e)||c.set(e,r)}}}return 0===c.size?null:function(e){let t=i.B.Average(e);return e.sort((e,n)=>i.B.Angle(t,e)-i.B.Angle(t,n))}([...c.values()])}function g(e){return`${e.x},${e.y}`}function m(e,t){let n,r;for(let i=0,o=e.length;i<o;i++){n=e[i],r=e[(i+1)%o];for(let e=0,i=t.length;e<i;e++)if(p(n,r,t[e],t[(e+1)%i]))return!0}return!1}},20930:function(e,t,n){"use strict";n.d(t,{$Z:function(){return I},AV:function(){return M},C2:function(){return h},Ci:function(){return b},D4:function(){return D},FH:function(){return T},Ht:function(){return v},Oe:function(){return j},Of:function(){return P},PI:function(){return s},Rp:function(){return p},VK:function(){return g},XD:function(){return k},Y8:function(){return o},Yk:function(){return i},Z7:function(){return y},Zd:function(){return u},_G:function(){return w},dv:function(){return c},ep:function(){return _},f5:function(){return f},mR:function(){return A},mW:function(){return E},nD:function(){return x},pc:function(){return m},pj:function(){return a},rW:function(){return $},uZ:function(){return d},vi:function(){return S},yo:function(){return l}});var r=n(80489);function i(e){return`${I(e.x)},${I(e.y)} `}function o(e,t){return`${I((e.x+t.x)/2)},${I((e.y+t.y)/2)} `}let s=Math.PI,a=s/2,l=2*s,c=Math.sin;function d(e,t,n){return Math.max(t,void 0!==n?Math.min(e,n):e)}function u(e,t=1e10){return e?Math.round(e*t)/t:0}function h(e,t,n=1e-6){return Math.abs(e-t)<=n}function p(e,t){let n=Math.pow(e-t,2)/Math.pow(e+t,2);return s*(e+t)*(1+3*n/(10+Math.sqrt(4-3*n)))}function f(e){return(e%=l)<0?e+=l:0===e&&(e=0),e}function g(e,t){return(e=f(e))>(t=f(t))&&(t+=l),t-e}function m(e,t){return l-g(e,t)}function y(e,t){let n=(t-e)%l;return 2*n%l-n}function b(e){return(l+e)%l}function x(e,t){let n=l/t,r=Math.floor((b(e)+n/2)/n)*n%l;return r<s&&(r+=l),r>s&&(r-=l),r}function w(e,t){return e===t||h(e%(Math.PI/2)-t%(Math.PI/2),0)}function v(e){return e*s/180}function S(e){return 180*e/s}
26function k(e,t,n){return new r.B(e.x,e.y).add(r.B.FromAngle(n,t))}function j(e,t,n){let i=e/2,o=t/2,s=[],c=1/0,d=-1/0,u=1/0,h=-1/0;for(let e=0;e<n;e++){let t=l/n,p=-a+e*t,f=i+i*Math.cos(p),g=o+o*Math.sin(p);f<c&&(c=f),g<u&&(u=g),f>d&&(d=f),g>h&&(h=g),s.push(new r.B(f,g))}let p=d-c,f=h-u;if(0!=e-p||0!=t-f)for(let n=0;n<s.length;n++){let r=s[n];r.x=(r.x-c)/p*e,r.y=(r.y-u)/f*t}return s}function _(e,t,n,r){return e<r&&n<t}function E(e,t,n,r){let i=Math.max(e,n),o=Math.min(t,r);return i<=o?[i,o]:null}function C(e,t,n){return(t.x-e.x)*(n.y-e.y)-(n.x-e.x)*(t.y-e.y)}function P(e,t){let n,i,o=0;for(let s=0;s<t.length;s++){if((n=t[s]).x===e.x&&n.y===e.y||(i=t[(s+1)%t.length],r.B.Dist(e,n)+r.B.Dist(e,i)===r.B.Dist(n,i)))return!0;n.y<=e.y?i.y>e.y&&C(n,i,e)>0&&(o+=1):i.y<=e.y&&0>C(n,i,e)&&(o-=1)}return 0!==o}function I(e){return+e.toFixed(4)}function T(e){return+e.toFixed(2)}let M=e=>Math.abs(e)<Number.MAX_SAFE_INTEGER;function A(e,t,n){let r=n<0?g(e,t):m(e,t);return r}function $(e,t,n,r){let i;if(Math.abs(e)>s){i=y(t,r);let o=y(r,n);return Math.abs(i)<Math.abs(o)?i/e:(e-o)/e}{i=y(t,r);let n=i/e;return Math.sign(i)!==Math.sign(e)?Math.abs(n)>.5?1:0:n}}function D(e,t,n,r){let i=2*((t-e)%l)%l-(t-e)%l;return r?(l-Math.abs(i))*(n?1:-1):i}},85592:function(e,t,n){"use strict";n.d(t,{o:function(){return s}});var r=n(85947);function i(e,t){if(!t)return!1;switch(e.type){case"mixed":return"mixed"===t.type;case"shared":return"shared"===t.type&&e.value===t.value;default:throw(0,r.iP)(e)}}class o{map;constructor(e){this.map=new Map(e)}get(e){return this.map.get(e)}getAsKnownValue(e){let t=this.get(e);if(t&&"mixed"!==t.type)return t.value}get size(){return this.map.size}equals(e){if(this.size!==e.size)return!1;let t=new Set;for(let[n,r]of this){if(!i(r,e.get(n)))return!1;t.add(n)}for(let[n,r]of e)if(!t.has(n)&&!i(r,this.get(n)))return!1;return!0}keys(){return this.map.keys()}values(){return this.map.values()}entries(){return this.map.entries()}[Symbol.iterator](){return this.map[Symbol.iterator]()}}class s extends o{set(e,t){this.map.set(e,t)}applyValue(e,t){let n=this.get(e);if(!n){this.set(e,{type:"shared",value:t});return}switch(n.type){case"mixed":return;case"shared":n.value!==t&&this.set(e,{type:"mixed"});return;default:(0,r.iP)(n,"type")}}}},8662:function(e,t,n){"use strict";n.d(t,{_:function(){return r}});class r{items=new WeakMap;get(e,t){return this.items.has(e)||this.items.set(e,t(e)),this.items.get(e)}access(e){return this.items.get(e)}set(e,t){this.items.set(e,t)}has(e){return this.items.has(e)}invalidate(e){this.items.delete(e)}bust(){this.items=new WeakMap}}},66745:function(e,t,n){"use strict";function r(e,t,n){return fetch(e).then(function(e){return e.arrayBuffer()}).then(function(e){return new File([e],t,{type:n})})}n.d(t,{B:function(){return r}})},92226:function(e,t,n){"use strict";function r(e,t){let n=e,r=new Set(t);for(;r.has(n);)n=/^.*(\d+)$/.exec(n)?.[1]?n.replace(/(\d+)(?=\D?)$/,e=>(+e+1).toString()):`${n} 1`;return n}n.d(t,{u:function(){return r}})},65693:function(e,t,n){"use strict";n.d(t,{B:function(){return i}});var r=n(85947);function i(e,t,n){if(0===n.length)return[];let i=new Map;for(let t of(0,r.oA)(n.map(t=>e.getShape(t)))){let{parentId:n}=t;i.has(n)||i.set(n,{children:(0,r.oA)(e.getSortedChildIdsForParent(n).map(t=>e.getShape(t))),moving:new Set}),i.get(n).moving.add(t)}let o=[];switch(t){case"toBack":i.forEach(({moving:e,children:t})=>(function(e,t,n){let i,o;let s=t.length;if(e.size!==s){for(let n=0;n<s;n++){let r=t[n];if(e.has(r))i=r.index,e.delete(r);else{o=r.index;break}}if(0===e.size)return;{let t=(0,r.Xv)(i,o,e.size);n.push(...Array.from(e.values()).sort(r.hl).map((e,n)=>({...e,index:t[n]})))}}})(e,t,o));break;case"toFront":i.forEach(({moving:e,children:t})=>(function(e,t,n){let i,o;let s=t.length;if(e.size!==s){for(let n=s-1;n>-1;n--){let r=t[n];if(e.has(r))o=r.index,e.delete(r);else{i=r.index;break}}if(0===e.size)return;{let t=(0,r.Xv)(i,o,e.size);n.push(...Array.from(e.values()).sort(r.hl).map((e,n)=>({...e,index:t[n]})))}}})(e,t,o));break;case"forward":i.forEach(({moving:e,children:t})=>(function(e,t,n){let i=t.length;if(e.size===i)return;let o={name:"skipping"};for(let s=0;s<i;s++){let i=e.has(t[s]);switch(o.name){case"skipping":if(!i)continue;o={name:"selecting",selectIndex:s};break;
26case"selecting":{if(i)continue;let{selectIndex:e}=o;(0,r.Xv)(t[s].index,t[s+1]?.index,s-e).forEach((r,i)=>n.push({...t[e+i],index:r})),o={name:"skipping"}}}}})(e,t,o));break;case"backward":i.forEach(({moving:e,children:t})=>(function(e,t,n){let i=t.length;if(e.size===i)return;let o={name:"skipping"};for(let s=i-1;s>-1;s--){let i=e.has(t[s]);switch(o.name){case"skipping":if(!i)continue;o={name:"selecting",selectIndex:s};break;case"selecting":if(i)continue;(0,r.Xv)(t[s-1]?.index,t[s].index,o.selectIndex-s).forEach((e,r)=>{n.push({...t[s+r+1],index:e})}),o={name:"skipping"}}}})(e,t,o))}return o}},99590:function(e,t,n){"use strict";n.d(t,{Z:function(){return c},o:function(){return l}});var r=n(189),i=n(85947),o=n(46921),s=n(20930),a=n(80489);function l({editor:e}){let t=e.getSelectedShapes(),n=e.getSelectionRotation(),r=e.getSelectionRotatedPageBounds(),{inputs:{originPagePoint:o}}=e;if(!r)return null;let s=r.center.clone().rotWith(r.point,n);return{selectionPageCenter:s,initialCursorAngle:s.angle(o),initialSelectionRotation:n,shapeSnapshots:t.map(t=>({shape:(0,i.v4)(t),initialPagePoint:e.getShapePageTransform(t.id).point()}))}}function c({delta:e,editor:t,snapshot:n,stage:i}){let{selectionPageCenter:l,shapeSnapshots:c}=n;t.updateShapes(c.map(({shape:n,initialPagePoint:i})=>{let c=(0,r.YT)(n.parentId)?t.getShapePageTransform(n.parentId):o._.Identity(),d=a.B.RotWith(i,l,e),u=o._.applyToPoint(o._.Inverse(c),d),h=(0,s.f5)(n.rotation+e);return{id:n.id,type:n.type,x:u.x,y:u.y,rotation:h}}));let d=[];c.forEach(({shape:e})=>{let n=t.getShape(e.id);if(!n)return;let r=t.getShapeUtil(e);if("start"===i||"one-off"===i){let t=r.onRotateStart?.(e);t&&d.push(t)}let o=r.onRotate?.(e,n);if(o&&d.push(o),"end"===i||"one-off"===i){let t=r.onRotateEnd?.(e,n);t&&d.push(t)}}),d.length>0&&t.updateShapes(d)}},73565:function(e,t,n){"use strict";n.d(t,{E:function(){return i}});let r=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,t)=>((t&=63)<36?e+=t.toString(36):t<62?e+=(t-26).toString(36).toUpperCase():t>62?e+="-":e+="_",e),"");function i(){return r()}},42869:function(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"parents"in e}function i(e){for(let t=0,n=e.parents.length;t<n;t++)if(e.parents[t].__unsafe__getWithoutCapture(!0),e.parents[t].lastChangedEpoch!==e.parentEpochs[t])return!0;return!1}n.d(t,{LZ:function(){return c},R0:function(){return x},SB:function(){return u},cn:function(){return I},Fl:function(){return N},e1:function(){return A},Ym:function(){return w},zH:function(){return v},j:function(){return K},ay:function(){return E},vc:function(){return W},BK:function(){return Y},uC:function(){return U},Hg:function(){return G},qo:function(){return D}});let o=(e,t)=>{if(e.children.remove(t)&&e.children.isEmpty&&r(e))for(let t=0,n=e.parents.length;t<n;t++)o(e.parents[t],e)},s=(e,t)=>{if(e.children.add(t)&&r(e))for(let t=0,n=e.parents.length;t<n;t++)s(e.parents[t],e)};function a(e,t){let n=e===t||Object.is(e,t)||!!(e&&t&&"function"==typeof e.equals&&e.equals(t));return n}function l(e,t){let n=Symbol.for(`com.tldraw.state/${e}`),r=globalThis;return r[n]??=t(),r[n]}let c=l("empty_array",()=>Object.freeze([]));class d{arraySize=0;array=Array(8);set=null;get isEmpty(){if(this.array)return 0===this.arraySize;if(this.set)return 0===this.set.size;throw Error("no set or array")}add(e){if(this.array){let t=this.array.indexOf(e);return -1===t&&(this.arraySize<8?(this.array[this.arraySize]=e,this.arraySize++):(this.set=new Set(this.array),this.array=null,this.set.add(e)),!0)}if(this.set)return!this.set.has(e)&&(this.set.add(e),!0);throw Error("no set or array")}remove(e){if(this.array){let t=this.array.indexOf(e);return -1!==t&&(this.array[t]=void 0,this.arraySize--,t!==this.arraySize&&(this.array[t]=this.array[this.arraySize],this.array[this.arraySize]=void 0),!0)}if(this.set)return!!this.set.has(e)&&(this.set.delete(e),!0);throw Error("no set or array")}visit(e){if(this.array){for(let t=0;t<this.arraySize;t++){let n=this.array[t];void 0!==n&&e(n)}return}if(this.set){this.set.forEach(e);return}throw Error("no set or array")}}let u=Symbol.for("com.tldraw.state/RESET_VALUE");class h{constructor(e){this.capacity=e,this.buffer=Array(e)}index=0;buffer;
26pushEntry(e,t,n){if(void 0!==n){if(n===u){this.clear();return}this.buffer[this.index]=[e,t,n],this.index=(this.index+1)%this.capacity}}clear(){this.index=0,this.buffer.fill(void 0)}getChangesSince(e){let{index:t,capacity:n,buffer:r}=this;for(let i=0;i<n;i++){let o=(t-1+n-i)%n,s=r[o];if(!s)break;let[a,l]=s;if(0===i&&e>=l)return[];if(a<=e&&e<l){let e=i+1,t=Array(e);for(let i=0;i<e;i++)t[i]=r[(o+i)%n][2];return t}}return u}}class p{constructor(e,t){this.below=e,this.child=t}offset=0;numNewParents=0;maybeRemoved}let f=l("capture",()=>({stack:null}));function g(e){f.stack=new p(f.stack,e)}function m(){let e=f.stack;f.stack=e.below;let t=e.numNewParents>0||e.offset!==e.child.parents.length;if(t){for(let t=e.offset;t<e.child.parents.length;t++){let n=e.child.parents[t],r=e.child.parents.indexOf(n)>=e.offset;r&&o(n,e.child)}if(e.child.parents.length=e.offset,e.child.parentEpochs.length=e.offset,f.stack?.maybeRemoved)for(let t=0;t<f.stack.maybeRemoved.length;t++){let n=f.stack.maybeRemoved[t];-1===e.child.parents.indexOf(n)&&o(n,e.child)}}}function y(e){if(f.stack){let t=f.stack.child.parents.indexOf(e);if(t<0&&(f.stack.numNewParents++,f.stack.child.isActivelyListening&&s(e,f.stack.child)),t<0||t>=f.stack.offset){if(t!==f.stack.offset&&t>0){let e=f.stack.child.parents[f.stack.offset];f.stack.maybeRemoved?-1===f.stack.maybeRemoved.indexOf(e)&&f.stack.maybeRemoved.push(e):f.stack.maybeRemoved=[e]}f.stack.child.parents[f.stack.offset]=e,f.stack.child.parentEpochs[f.stack.offset]=e.lastChangedEpoch,f.stack.offset++}}}class b{constructor(e,t,n){this.name=e,this.runEffect=t,this._scheduleEffect=n?.scheduleEffect}_isActivelyListening=!1;get isActivelyListening(){return this._isActivelyListening}lastTraversedEpoch=-1;lastReactedEpoch=-1;_scheduleCount=0;get scheduleCount(){return this._scheduleCount}parentEpochs=[];parents=[];_scheduleEffect;maybeScheduleEffect(){if(this._isActivelyListening&&this.lastReactedEpoch!==j()){if(this.parents.length&&!i(this)){this.lastReactedEpoch=j();return}this.scheduleEffect()}}scheduleEffect(){this._scheduleCount++,this._scheduleEffect?this._scheduleEffect(this.maybeExecute):this.execute()}maybeExecute=()=>{this._isActivelyListening&&this.execute()};attach(){this._isActivelyListening=!0;for(let e=0,t=this.parents.length;e<t;e++)s(this.parents[e],this)}detach(){this._isActivelyListening=!1;for(let e=0,t=this.parents.length;e<t;e++)o(this.parents[e],this)}execute(){try{g(this);let e=this.runEffect(this.lastReactedEpoch);return this.lastReactedEpoch=j(),e}finally{m()}}}let x=l("EffectScheduler",()=>b);function w(e,t,n){let r=new x(e,t,n);return r.attach(),r.scheduleEffect(),()=>{r.detach()}}function v(e,t,n){let r=new x(e,t,n);return{scheduler:r,start:e=>{let t=e?.force??!1;r.attach(),t?r.scheduleEffect():r.maybeScheduleEffect()},stop:()=>{r.detach()}}}class S{constructor(e){this.parent=e}initialAtomValues=new Map;get isRoot(){return null===this.parent}commit(){if(this.isRoot){let e=this.initialAtomValues;this.initialAtomValues=new Map,_(e.keys())}else this.initialAtomValues.forEach((e,t)=>{this.parent.initialAtomValues.has(t)||this.parent.initialAtomValues.set(t,e)})}abort(){k.globalEpoch++,this.initialAtomValues.forEach((e,t)=>{t.set(e),t.historyBuffer?.clear()}),this.commit()}}let k=l("transactions",()=>({globalEpoch:0,globalIsReacting:!1,currentTransaction:null}));function j(){return k.globalEpoch}function _(e){if(k.globalIsReacting)throw Error("cannot change atoms during reaction cycle");try{k.globalIsReacting=!0;let t=new Set,n=e=>{e.lastTraversedEpoch!==k.globalEpoch&&(e.lastTraversedEpoch=k.globalEpoch,e instanceof x?t.add(e):e.children.visit(n))};for(let t of e)t.children.visit(n);for(let e of t)e.maybeScheduleEffect()}finally{k.globalIsReacting=!1}}function E(e){return k.currentTransaction?e():function(e){let t=new S(k.currentTransaction);k.currentTransaction=t;try{let n=!1,r=e(()=>n=!0);return n?t.abort():t.commit(),r}catch(e){throw t.abort(),e}finally{k.currentTransaction=k.currentTransaction.parent}}(e)}class C{constructor(e,t,n){if(this.name=e,this.current=t,this.isEqual=n?.isEqual??null,!n)return;n.historyLength&&(this.historyBuffer=new h(n.historyLength)),this.computeDiff=n.computeDiff}isEqual;computeDiff;lastChangedEpoch=j();children=new d;historyBuffer;__unsafe__getWithoutCapture(e){return this.current}get(){return y(this),this.current}set(e,t){if(this.isEqual?.(this.current,e)??a(this.current,e))return this.current;k.globalEpoch++,this.historyBuffer&&this.historyBuffer.pushEntry(this.lastChangedEpoch,j(),t??this.computeDiff?.(this.current,e,this.lastChangedEpoch,j())??u),this.lastChangedEpoch=j();let n=this.current;return this.current=e,k.currentTransaction?k.currentTransaction.initialAtomValues.has(this)||k.currentTransaction.initialAtomValues.set(this,n):_([this]),e}update(e){return this.set(e(this.current))}getDiffSince(e){return(y(this),e>=this.lastChangedEpoch)?c:this.historyBuffer?.getChangesSince(e)??u}}let P=l("Atom",()=>C);function I(e,t,n){return new P(e,t,n)}let T=!1,M=Symbol.for("com.tldraw.state/UNINITIALIZED"),A=e=>e===M,$=l("WithDiff",()=>class{constructor(e,t){this.value=e,this.diff=t}});function D(e,t){return new $(e,t)}class O{constructor(e,t,n){this.name=e,this.derive=t,n?.historyLength&&(this.historyBuffer=new h(n.historyLength)),this.computeDiff=n?.computeDiff,this.isEqual=n?.isEqual??a}lastChangedEpoch=-1;lastTraversedEpoch=-1;lastCheckedEpoch=-1;parents=[];parentEpochs=[];children=new d;get isActivelyListening(){return!this.children.isEmpty}historyBuffer;state=M;error=null;computeDiff;isEqual;__unsafe__getWithoutCapture(e){let t=-1===this.lastChangedEpoch;if(!t&&(this.lastCheckedEpoch===j()||!i(this))){if(this.lastCheckedEpoch=j(),!this.error||e)return this.state;throw this.error.thrownValue}try{g(this);let e=this.derive(this.state,this.lastCheckedEpoch),t=e instanceof $?e.value:e,n=this.state===M;if(n||!this.isEqual(t,this.state)){if(this.historyBuffer&&!n){let n=e instanceof $?e.diff:void 0;this.historyBuffer.pushEntry(this.lastChangedEpoch,j(),n??this.computeDiff?.(this.state,t,this.lastCheckedEpoch,j())??u)}this.lastChangedEpoch=j(),this.state=t}return this.error=null,this.lastCheckedEpoch=j(),this.state}catch(t){if(this.state!==M&&(this.state=M,this.lastChangedEpoch=j()),this.lastCheckedEpoch=j(),this.historyBuffer&&this.historyBuffer.clear(),this.error={thrownValue:t},!e)throw t;return this.state}finally{m()}}get(){try{return this.__unsafe__getWithoutCapture()}finally{y(this)}}getDiffSince(e){return(this.__unsafe__getWithoutCapture(!0),y(this),e>=this.lastChangedEpoch)?c:this.historyBuffer?.getChangesSince(e)??u}}let B=l("Computed",()=>O);function L(e={},t,n,r){return r.get?(T||(T=!0,console.warn(`Using \`@computed\` as a decorator for getters is deprecated and will be removed in the near future. Please refactor to use \`@computed\` as a decorator for methods.
27
28// Before
29@computed
30get foo() {
31	return 'foo'
32}
33
34// After
35@computed
36getFoo() {
37	return 'foo'
38}
39`)),function(e={},t,n,r){let i=r.get,o=Symbol.for("__@tldraw/state__computed__"+n);return r.get=function(){let t=this[o];
39return t||Object.defineProperty(this,o,{enumerable:!1,configurable:!1,writable:!1,value:t=new B(n,i.bind(this),e)}),t.get()},r}(e,0,n,r)):function(e={},t,n,r){let i=r.value,o=Symbol.for("__@tldraw/state__computed__"+n);return r.value=function(){let t=this[o];return t||Object.defineProperty(this,o,{enumerable:!1,configurable:!1,writable:!1,value:t=new B(n,i.bind(this),e)}),t.get()},r.value[R]=!0,r}(e,0,n,r)}let R="@@__isComputedMethod__@@";function N(){if(1==arguments.length){let e=arguments[0];return(t,n,r)=>L(e,t,n,r)}return"string"==typeof arguments[0]?new B(arguments[0],arguments[1],arguments[2]):L(void 0,arguments[0],arguments[1],arguments[2])}let z=l("apiVersion",()=>1);if(1!==z)throw Error("You have multiple incompatible versions of @tldraw/state in your app. Please deduplicate the package.");var F=n(2784);function U(e,t){let n=F.useRef(t);n.current=t;let[r,i,o]=F.useMemo(()=>{let t=null,r=new x(`useStateTracking(${e})`,()=>n.current?.(),{scheduleEffect(){t?.()}});return[r,e=>(t=e,()=>{t=null}),()=>r.scheduleCount]},[e]);return F.useSyncExternalStore(i,o,o),F.useEffect(()=>(r.attach(),r.maybeScheduleEffect(),()=>{r.detach()}),[r]),r.execute()}let H={apply:(e,t,n)=>U(e.displayName??e.name??"tracked(???)",()=>e.apply(t,n))},Z=Symbol.for("react.memo"),V=Symbol.for("react.forward_ref");function K(e){let t=null,n=e.$$typeof;return(n===Z&&(t=(e=e.type).compare),n===V)?(0,F.memo)((0,F.forwardRef)(new Proxy(e.render,H))):(0,F.memo)(new Proxy(e,H),t)}function W(){let e=arguments[0],t=arguments[1],n=3==arguments.length?void 0:arguments[2],r=3==arguments.length?arguments[2]:arguments[3];return(0,F.useMemo)(()=>N(`useComputed(${e})`,t,n),r)}function Y(e,t,n=c){(0,F.useEffect)(()=>{let n=new x(e,t);return n.attach(),n.execute(),()=>{n.detach()}},n)}function G(){let e=arguments,t=3===e.length?e[2]:[e[0]],n=3===e.length?e[0]:`useValue(${e[0].name})`,r=(0,F.useRef)(!0);r.current=!0;let i=(0,F.useMemo)(()=>1===e.length?e[0]:N(n,()=>{if(r.current)return e[1]();try{return e[1]()}catch{return{}}}),t);try{let{subscribe:e,getSnapshot:t}=(0,F.useMemo)(()=>({subscribe:e=>w(`useValue(${n})`,()=>{i.get(),e()}),getSnapshot:()=>i.get()}),[i]);return(0,F.useSyncExternalStore)(e,t,t)}finally{r.current=!1}}},37665:function(e,t,n){"use strict";n.d(t,{mW:function(){return r},yh:function(){return m},sS:function(){return k},$F:function(){return j},ju:function(){return l},zn:function(){return x},ZV:function(){return g},Te:function(){return S},bs:function(){return y}});class r{constructor(e){this.previousValue=e}nextValue;diff;get(){let e=this.diff?.removed?.size??0,t=this.diff?.added?.size??0;if(0!==e||0!==t)return{value:this.nextValue,diff:this.diff}}_add(e,t){this.nextValue??=new Set(this.previousValue),this.nextValue.add(e),this.diff??={},t?this.diff.removed?.delete(e):(this.diff.added??=new Set,this.diff.added.add(e))}add(e){let t=this.previousValue.has(e);if(t){let n=this.diff?.removed?.has(e);if(!n)return;return this._add(e,t)}let n=this.nextValue?.has(e);n||this._add(e,t)}_remove(e,t){this.nextValue??=new Set(this.previousValue),this.nextValue.delete(e),this.diff??={},t?(this.diff.removed??=new Set,this.diff.removed.add(e)):this.diff.added?.delete(e)}remove(e){let t=this.previousValue.has(e);if(!t){let n=this.diff?.added?.has(e);if(!n)return;return this._remove(e,t)}let n=this.diff?.removed?.has(e);n||this._remove(e,t)}}var i,o=n(85947);let s=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,t)=>((t&=63)<36?e+=t.toString(36):t<62?e+=(t-26).toString(36).toUpperCase():t>62?e+="-":e+="_",e),"");class a{constructor(e,t){this.typeName=e,this.createDefaultProperties=t.createDefaultProperties,this.migrations=t.migrations,this.validator=t.validator??{validate:e=>e},this.scope=t.scope??"document"}createDefaultProperties;migrations;validator;scope;create(e){let t={...this.createDefaultProperties(),id:this.createId()};for(let[n,r]of Object.entries(e))void 0!==r&&(t[n]=r);return t.typeName=this.typeName,t}clone(e){return{...(0,o.v4)(e),id:this.createId()}}createId(e){return this.typeName+":"+(e??s())}createCustomId(e){return this.typeName+":"+e}parseId(e){if(!this.isId(e))throw Error(`ID "${e}" is not a valid ID for type "${this.typeName}"`);return e.slice(this.typeName.length+1)}isInstance=e=>e?.typeName===this.typeName;isId(e){if(!e)return!1;for(let t=0;t<this.typeName.length;t++)if(e[t]!==this.typeName[t])return!1;return":"===e[this.typeName.length]}withDefaultProperties(e){return new a(this.typeName,{createDefaultProperties:e,migrations:this.migrations,validator:this.validator,scope:this.scope})}validate(e,t){return t&&this.validator.validateUsingKnownGoodVersion?this.validator.validateUsingKnownGoodVersion(t,e):this.validator.validate(e)}}function l(e,t){return new a(e,{createDefaultProperties:()=>({}
39),migrations:t.migrations??{currentVersion:0,firstVersion:0,migrators:{}},validator:t.validator,scope:t.scope})}var c=n(42869);class d{items=new WeakMap;get(e,t){return this.items.has(e)||this.items.set(e,t(e)),this.items.get(e)}}var u=n(33958);function h(e,t){for(let[n,r]of Object.entries(e)){let e=t[n];if("eq"in r&&e!==r.eq||"neq"in r&&e===r.neq||"gt"in r&&("number"!=typeof e||e<=r.gt))return!1}return!0}function p(e,t,n){let r=Object.fromEntries(Object.keys(n).map(e=>[e,new Set]));for(let[i,o]of Object.entries(n))if("eq"in o){let n=e.index(t,i),s=n.get().get(o.eq);if(s)for(let e of s)r[i].add(e)}else if("neq"in o){let n=e.index(t,i);for(let[e,t]of n.get())if(e!==o.neq)for(let e of t)r[i].add(e)}else if("gt"in o){let n=e.index(t,i);for(let[e,t]of n.get())if(e>o.gt)for(let e of t)r[i].add(e)}return function(e){if(0===e.length)return new Set;let t=e[0],n=e.slice(1),r=new Set;for(let e of t)n.every(t=>t.has(e))&&r.add(e);return r}(Object.values(r))}class f{constructor(e,t){this.atoms=e,this.history=t}indexCache=new Map;historyCache=new Map;filterHistory(e){if(this.historyCache.has(e))return this.historyCache.get(e);let t=(0,c.Fl)("filterHistory:"+e,(t,n)=>{if((0,c.e1)(t))return this.history.get();let r=this.history.getDiffSince(n);if(r===c.SB)return this.history.get();let i={added:{},removed:{},updated:{}},s=0,a=0,l=0;for(let t of r){for(let n of(0,o.UM)(t.added))if(n.typeName===e){if(i.removed[n.id]){let e=i.removed[n.id];delete i.removed[n.id],a--,e!==n&&(i.updated[n.id]=[e,n],l++)}else i.added[n.id]=n,s++}for(let[n,r]of(0,o.UM)(t.updated))r.typeName===e&&(i.added[r.id]?i.added[r.id]=r:i.updated[r.id]?i.updated[r.id]=[i.updated[r.id][0],r]:(i.updated[r.id]=[n,r],l++));for(let n of(0,o.UM)(t.removed))n.typeName===e&&(i.added[n.id]?(delete i.added[n.id],s--):(i.updated[n.id]?(i.removed[n.id]=i.updated[n.id][0],delete i.updated[n.id],l--):i.removed[n.id]=n,a++))}return s||a||l?(0,c.qo)(this.history.get(),i):t},{historyLength:100});return this.historyCache.set(e,t),t}index(e,t){let n=e+":"+t;if(this.indexCache.has(n))return this.indexCache.get(n);let r=this.__uncached_createIndex(e,t);return this.indexCache.set(n,r),r}__uncached_createIndex(e,t){let n=this.filterHistory(e),i=()=>{n.get();let r=new Map;for(let n of(0,o.UM)(this.atoms.get())){let i=n.get();if(i.typeName===e){let e=i[t];r.has(e)||r.set(e,new Set),r.get(e).add(i.id)}}return r};return(0,c.Fl)("index:"+e+":"+t,(s,a)=>{let l,d;if((0,c.e1)(s))return i();let u=n.getDiffSince(a);if(u===c.SB)return i();let h=new Map,p=(e,t)=>{let n=h.get(e);n||(n=new r(s.get(e)??new Set)),n.add(t),h.set(e,n)},f=(e,t)=>{let n=h.get(e);n||(n=new r(s.get(e)??new Set)),n.remove(t),h.set(e,n)};for(let n of u){for(let r of(0,o.UM)(n.added))if(r.typeName===e){let e=r[t];p(e,r.id)}for(let[r,i]of(0,o.UM)(n.updated))if(i.typeName===e){let e=r[t],n=i[t];e!==n&&(f(e,i.id),p(n,i.id))}for(let r of(0,o.UM)(n.removed))if(r.typeName===e){let e=r[t];f(e,r.id)}}for(let[e,t]of h){let n=t.get();n&&(l||(l=new Map(s)),d||(d=new Map),0===n.value.size?l.delete(e):l.set(e,n.value),d.set(e,n.diff))}return l&&d?(0,c.qo)(l,d):s},{historyLength:100})}record(e,t=()=>({}),n="record:"+e+(t?":"+t.toString():"")){let r=this.ids(e,t,n);return(0,c.Fl)(n,()=>{for(let e of r.get())return this.atoms.get()[e]?.get()})}records(e,t=()=>({}),n="records:"+e+(t?":"+t.toString():"")){let r=this.ids(e,t,"ids:"+n);return(0,c.Fl)(n,()=>[...r.get()].map(e=>{let t=this.atoms.get()[e];if(!t)throw Error("no atom found for record id: "+e);return t.get()}))}ids(e,t=()=>({}),n="ids:"+e+(t?":"+t.toString():"")){let i=this.filterHistory(e),s=()=>{i.get();let n=t();return 0===Object.keys(n).length?new Set((0,o.UM)(this.atoms.get()).flatMap(t=>{let n=t.get();return n.typeName===e?n.id:[]})):p(this,e,n)},a=e=>{let t=s(),n=function(e,t){let n={};for(let r of t)e.has(r)||(n.added??=new Set,n.added.add(r));for(let r of e)t.has(r)||(n.removed??=new Set,n.removed.add(r));return n.added||n.removed?n:void 0}(e,t);return n?(0,c.qo)(t,n):e},l=(0,c.Fl)("ids_query:"+n,t,{isEqual:u});return(0,c.Fl)("query:"+n,(t,n)=>{let d=l.get();if((0,c.e1)(t))return s();if(n<l.lastChangedEpoch)return a(t);let u=i.getDiffSince(n);if(u===c.SB)return a(t);let p=new r(t);for(let t of u){for(let n of(0,o.UM)(t.added))n.typeName===e&&h(d,n)&&p.add(n.id);for(let[n,r]of(0,o.UM)(t.updated))r.typeName===e&&(h(d,r)?p.add(r.id):p.remove(r.id));for(let n of(0,o.UM)(t.removed))n.typeName===e&&p.remove(n.id)}let f=p.get();return f?(0,c.qo)(f.value,f.diff):t},{historyLength:50})}exec(e,t){let n=p(this,e,t);if(0===n.size)return c.LZ;let r=this.atoms.get();return[...n].map(e=>r[e].get())}}function g(e){return e}class m{id=s();atoms=(0,c.cn)("store_atoms",{});history=(0,c.cn)("history",0,{historyLength:1e3});query=new f(this.atoms,this.history);listeners=new Set;historyAccumulator=new b;historyReactor;schema;props;scopedTypes;constructor(e){let{initialData:t,schema:n}=e;this.schema=n,this.props=e.props,t&&this.atoms.set((0,o.Ls)((0,o.EP)(t).map(([e,t])=>[e,(0,c.cn)("atom:"+e,this.schema.validateRecord(this,t,"initialize",null))]))),this.historyReactor=(0,
39c.zH)("Store.historyReactor",()=>{this.history.get(),this._flushHistory()},{scheduleEffect:e=>(0,o.xP)(e)}),this.scopedTypes={document:new Set((0,o.UM)(this.schema.types).filter(e=>"document"===e.scope).map(e=>e.typeName)),session:new Set((0,o.UM)(this.schema.types).filter(e=>"session"===e.scope).map(e=>e.typeName)),presence:new Set((0,o.UM)(this.schema.types).filter(e=>"presence"===e.scope).map(e=>e.typeName))}}_flushHistory(){if(this.historyAccumulator.hasChanges()){let e=this.historyAccumulator.flush();for(let{changes:t,source:n}of e){let e=null,r=null,i=null;for(let{onHistory:o,filters:s}of this.listeners)if("all"===s.source||s.source===n){if("all"!==s.scope){if("document"===s.scope){if(!(r??=this.filterChangesByScope(t,"document")))continue;o({changes:r,source:n})}else if("session"===s.scope){if(!(e??=this.filterChangesByScope(t,"session")))continue;o({changes:e,source:n})}else{if(!(i??=this.filterChangesByScope(t,"presence")))continue;o({changes:i,source:n})}}else o({changes:t,source:n})}}}}filterChangesByScope(e,t){let n={added:(0,o.H4)(e.added,(e,n)=>this.scopedTypes[t].has(n.typeName)),updated:(0,o.H4)(e.updated,(e,n)=>this.scopedTypes[t].has(n[1].typeName)),removed:(0,o.H4)(e.removed,(e,n)=>this.scopedTypes[t].has(n.typeName))};return 0===Object.keys(n.added).length&&0===Object.keys(n.updated).length&&0===Object.keys(n.removed).length?null:n}updateHistory(e){this.historyAccumulator.add({changes:e,source:this.isMergingRemoteChanges?"remote":"user"}),0===this.listeners.size&&this.historyAccumulator.clear(),this.history.set(this.history.get()+1,e)}validate(e){this.allRecords().forEach(t=>this.schema.validateRecord(this,t,e,null))}onBeforeCreate;onAfterCreate;onBeforeChange;onAfterChange;onBeforeDelete;onAfterDelete;_runCallbacks=!0;put=(e,t)=>{(0,c.ay)(()=>{let n;let r={},i={},o=this.atoms.__unsafe__getWithoutCapture(),s=null,a=!1,l=this.onBeforeCreate&&this._runCallbacks?this.onBeforeCreate:null,d=this.onBeforeChange&&this._runCallbacks?this.onBeforeChange:null,u=this.isMergingRemoteChanges?"remote":"user";for(let h=0,p=e.length;h<p;h++){n=e[h];let p=(s??o)[n.id];if(p){let e=p.__unsafe__getWithoutCapture();d&&(n=d(e,n,u));let i=this.schema.validateRecord(this,n,t??"updateRecord",e);if(i===e)continue;p.set(n),a=!0,r[n.id]=[e,p.__unsafe__getWithoutCapture()]}else l&&(n=l(n,u)),a=!0,i[(n=this.schema.validateRecord(this,n,t??"createRecord",null)).id]=n,s||(s={...o}),s[n.id]=(0,c.cn)("atom:"+n.id,n)}if(s&&this.atoms.set(s),a&&(this.updateHistory({added:i,updated:r,removed:{}}),this._runCallbacks)){let{onAfterCreate:e,onAfterChange:t}=this;e&&Object.values(i).forEach(t=>{e(t,u)}),t&&Object.values(r).forEach(([e,n])=>{t(e,n,u)})}})};remove=e=>{(0,c.ay)(()=>{let t;let n=[],r=this.isMergingRemoteChanges?"remote":"user";if(this.onBeforeDelete&&this._runCallbacks)for(let t of e){let e=this.atoms.__unsafe__getWithoutCapture()[t];e&&!1===this.onBeforeDelete(e.get(),r)&&n.push(t)}if(this.atoms.update(r=>{let i;for(let o of e)!n.includes(o)&&o in r&&(i||(i={...r}),t||(t={}),delete i[o],t[o]=r[o].get());return i??r}),t&&(this.updateHistory({added:{},updated:{},removed:t}),this.onAfterDelete&&this._runCallbacks)){let n;for(let i=0,o=e.length;i<o;i++)(n=t[e[i]])&&this.onAfterDelete(n,r)}})};get=e=>this.atoms.get()[e]?.get();unsafeGetWithoutCapture=e=>this.atoms.get()[e]?.__unsafe__getWithoutCapture();serialize=(e="document")=>{let t={};for(let[n,r]of(0,o.EP)(this.atoms.get())){let i=r.get();("all"===e||this.scopedTypes[e].has(i.typeName))&&(t[n]=i)}return t};getSnapshot(e="document"){return{store:this.serialize(e),schema:this.schema.serialize()}}migrateSnapshot(e){let t=this.schema.migrateStoreSnapshot(e);if("error"===t.type)throw Error(`Failed to migrate snapshot: ${t.reason}`);return{store:t.value,schema:this.schema.serialize()}}loadSnapshot(e){let t=this.schema.migrateStoreSnapshot(e);if("error"===t.type)throw Error(`Failed to migrate snapshot: ${t.reason}`);(0,c.ay)(()=>{this.clear(),this.put(Object.values(t.value)),this.ensureStoreIsUsable()})}allRecords=()=>(0,o.UM)(this.atoms.get()).map(e=>e.get());clear=()=>{this.remove((0,o.GH)(this.atoms.get()))};update=(e,t)=>
39{let n=this.atoms.get()[e];if(!n){console.error(`Record ${e} not found. This is probably an error`);return}this.put([t(n.__unsafe__getWithoutCapture())])};has=e=>!!this.atoms.get()[e];listen=(e,t)=>{this._flushHistory();let n={onHistory:e,filters:{source:t?.source??"all",scope:t?.scope??"all"}};return this.listeners.add(n),this.historyReactor.scheduler.isActivelyListening||this.historyReactor.start(),()=>{this.listeners.delete(n),0===this.listeners.size&&this.historyReactor.stop()}};isMergingRemoteChanges=!1;mergeRemoteChanges=e=>{if(this.isMergingRemoteChanges)return e();try{this.isMergingRemoteChanges=!0,(0,c.ay)(e)}finally{this.isMergingRemoteChanges=!1}};extractingChanges(e){let t=[],n=this.historyAccumulator.intercepting(e=>t.push(e.changes));try{return(0,c.ay)(e),y(t)}finally{n()}}applyDiff(e,t=!0){let n=this._runCallbacks;try{this._runCallbacks=t,(0,c.ay)(()=>{let t=(0,o.UM)(e.added).concat((0,o.UM)(e.updated).map(([e,t])=>t)),n=(0,o.GH)(e.removed);t.length&&this.put(t),n.length&&this.remove(n)})}finally{this._runCallbacks=n}}createComputedCache=(e,t,n)=>{let r=new d;return{get:i=>{let o=this.atoms.get()[i];if(o)return r.get(o,()=>{let r=n?(0,c.Fl)(o.name+":equals",()=>o.get(),{isEqual:n}):o;return(0,c.Fl)(e+":"+i,()=>t(r.get()))}).get()}}};createSelectedComputedCache=(e,t,n)=>{let r=new d;return{get:i=>{let o=this.atoms.get()[i];if(!o)return;let s=(0,c.Fl)(e+":"+i+":selector",()=>t(o.get()));return r.get(o,()=>(0,c.Fl)(e+":"+i,()=>n(s.get()))).get()}}};getRecordType=e=>{let t=this.schema.types[e.typeName];if(!t)throw Error(`Record type ${e.typeName} not found`);return t};_integrityChecker;ensureStoreIsUsable(){this._integrityChecker??=this.schema.createIntegrityChecker(this),this._integrityChecker?.()}_isPossiblyCorrupted=!1;markAsPossiblyCorrupted(){this._isPossiblyCorrupted=!0}isPossiblyCorrupted(){return this._isPossiblyCorrupted}}function y(e){let t={added:{},removed:{},updated:{}};for(let n of e){for(let[e,r]of(0,o.EP)(n.added))if(t.removed[e]){let n=t.removed[e];delete t.removed[e],n!==r&&(t.updated[e]=[n,r])}else t.added[e]=r;for(let[e,[r,i]]of(0,o.EP)(n.updated)){if(t.added[e]){t.added[e]=i,delete t.updated[e],delete t.removed[e];continue}if(t.updated[e]){t.updated[e]=[t.updated[e][0],i],delete t.removed[e];continue}t.updated[e]=n.updated[e],delete t.removed[e]}for(let[e,r]of(0,o.EP)(n.removed))t.added[e]?delete t.added[e]:t.updated[e]?(t.removed[e]=t.updated[e][0],delete t.updated[e]):t.removed[e]=r}return t}class b{_history=[];_interceptors=new Set;intercepting(e){return this._interceptors.add(e),()=>{this._interceptors.delete(e)}}add(e){for(let t of(this._history.push(e),this._interceptors))t(e)}flush(){let e=function(e){let t;let n=[],r=e[0];for(let i=1,o=e.length;i<o;i++)t=e[i],r.source!==t.source?(n.push(r),r=t):r={source:r.source,changes:y([r.changes,t.changes])};return n.push(r),n}(this._history);return this._history=[],e}clear(){this._history=[]}hasChanges(){return this._history.length>0}}function x(e){let{currentVersion:t,firstVersion:n,migrators:r={},subTypeKey:i,subTypeMigrations:o}=e;if("number"==typeof t&&"number"==typeof n){if(t===n)throw Error("Current version is equal to initial version.");if(t<n)throw Error("Current version is lower than initial version.")}return{firstVersion:n??0,currentVersion:t??0,migrators:r,subTypeKey:i,subTypeMigrations:o}}var w=((i=w||{}).IncompatibleSubtype="incompatible-subtype",i.UnknownType="unknown-type",i.TargetVersionTooNew="target-version-too-new",i.TargetVersionTooOld="target-version-too-old",i.MigrationError="migration-error",i.UnrecognizedSubtype="unrecognized-subtype",i);function v({record:e,migrations:t,fromVersion:n,toVersion:r}){let i=n;if(!("object"==typeof e&&null!==e&&"id"in e&&"typeName"in e))throw Error("[migrateRecord] object is not a record");let{typeName:o,id:s,...a}=e,l=a;for(;i<r;){let e=i+1,n=t.migrators[e];if(!n)return{type:"error",reason:"target-version-too-new"};l=n.up(l),i=e}for(;i>r;){let e=i-1,n=t.migrators[i];if(!n)return{type:"error",reason:"target-version-too-old"};l=n.down(l),i=e}return{type:"success",value:{...l,id:s,typeName:o}}}function S({value:e,migrations:t,fromVersion:n,toVersion:r}){let i=n;for(;i<r;){let n=i+1,r=t.migrators[n];if(!r)return{type:"error",reason:"target-version-too-new"};e=r.up(e),i=n}for(;i>r;){let n=i-1,r=t.migrators[i];if(!r)return{type:"error",reason:"target-version-too-old"};e=r.down(e),i=n}return{type:"success",value:e}}class k{constructor(e,t){this.types=e,this.options=t}static create(e,t){return new k(e,t??{})}get currentStoreVersion(){return this.options.snapshotMigrations?.currentVersion??0}validateRecord(e,t,n,r){try{let e=(0,o.eg)(this.types,t.typeName);if(!e)throw Error(`Missing definition for record type ${t.typeName}`);return e.validate(t,r??void 0)}catch(i){if(this.options.onValidationFailure)return this.options.onValidationFailure({store:e,record:t,phase:n,recordBefore:r,error:i});throw i}}migratePersistedRecord(e,t,n="up"){let r=(0,o.eg)(this.types,e.typeName),i=t.recordVersions[e.typeName];if(!i||!r)return{type:"error",reason:w.UnknownType};let s=r.migrations.currentVersion,a=i.version;if(s!==a){let t="up"===n?v({record:e,migrations:r.migrations,fromVersion:a,toVersion:s}):v({record:e,migrations:r.migrations,fromVersion:s,toVersion:a});if("error"===t.type)return t;e=t.value}if(!r.migrations.subTypeKey)return{type:"success",value:e};let l=r.migrations.subTypeMigrations?.[e[r.migrations.subTypeKey]],c="subTypeVersions"in i?i.subTypeVersions[e[r.migrations.subTypeKey]]:void 0;if(void 0===l)return{type:"error",reason:w.UnrecognizedSubtype};if(void 0===c)return{type:"error",reason:w.IncompatibleSubtype};let d="up"===n?v({record:e,migrations:l,fromVersion:c,toVersion:l.currentVersion}):v({record:e,migrations:l,fromVersion:l.currentVersion,toVersion:c});return"error"===d.type?d:{type:"success",value:d.value}}migrateStoreSnapshot(e){let{store:t}=e,n=this.options.snapshotMigrations;if(!n)return{type:"success",value:t};
39let r=n.currentVersion,i=e.schema.storeVersion??0;if(r<i)return{type:"error",reason:w.TargetVersionTooOld};if(r>i){let e=S({value:t,migrations:n,fromVersion:i,toVersion:r});if("error"===e.type)return e;t=e.value}let s=[];for(let n of(0,o.UM)(t)){let t=this.migratePersistedRecord(n,e.schema);if("error"===t.type)return t;t.value&&t.value!==n&&s.push(t.value)}if(s.length)for(let e of(t={...t},s))t[e.id]=e;return{type:"success",value:t}}createIntegrityChecker(e){return this.options.createIntegrityChecker?.(e)??void 0}serialize(){return{schemaVersion:1,storeVersion:this.options.snapshotMigrations?.currentVersion??0,recordVersions:Object.fromEntries((0,o.UM)(this.types).map(e=>[e.typeName,e.migrations.subTypeKey&&e.migrations.subTypeMigrations?{version:e.migrations.currentVersion,subTypeKey:e.migrations.subTypeKey,subTypeVersions:e.migrations.subTypeMigrations?Object.fromEntries(Object.entries(e.migrations.subTypeMigrations).map(([e,t])=>[e,t.currentVersion])):void 0}:{version:e.migrations.currentVersion}]))}}serializeEarliestVersion(){return{schemaVersion:1,storeVersion:this.options.snapshotMigrations?.firstVersion??0,recordVersions:Object.fromEntries((0,o.UM)(this.types).map(e=>[e.typeName,e.migrations.subTypeKey&&e.migrations.subTypeMigrations?{version:e.migrations.firstVersion,subTypeKey:e.migrations.subTypeKey,subTypeVersions:e.migrations.subTypeMigrations?Object.fromEntries(Object.entries(e.migrations.subTypeMigrations).map(([e,t])=>[e,t.firstVersion])):void 0}:{version:e.migrations.firstVersion}]))}}}let j=(e,t)=>{if(e.schemaVersion>t.schemaVersion)return 1;if(e.schemaVersion<t.schemaVersion)return -1;if(e.storeVersion>t.storeVersion)return 1;if(e.storeVersion<t.storeVersion)return -1;for(let n of Object.keys(e.recordVersions)){let r=e.recordVersions[n],i=t.recordVersions[n];if(r.version>i.version)return 1;if(r.version<i.version)return -1;if("subTypeVersions"in r&&!("subTypeVersions"in i))return 1;if(!("subTypeVersions"in r)&&"subTypeVersions"in i)return -1;if("subTypeVersions"in r&&"subTypeVersions"in i)for(let e of Object.keys(r.subTypeVersions)){let t=r.subTypeVersions[e],n=i.subTypeVersions[e];if(t>n)return 1;if(t<n)return -1}}return 0}},59315:function(e,t,n){"use strict";let r,i;n.d(t,{ZJj:function(){return m.ZJj},TAC:function(){return m.TAC},T_Y:function(){return ew},YCq:function(){return e9},Ykc:function(){return m.Ykc},ciG:function(){return m.ciG},pp9:function(){return m.pp9},p64:function(){return m.p64},XoM:function(){return m.XoM},HO5:function(){return m.HO5},MFZ:function(){return ej},YQh:function(){return t9},mqq:function(){return m.mqq},G7H:function(){return m.G7H},Zow:function(){return nh},FWf:function(){return eC},Rwx:function(){return nS},xeI:function(){return m.xeI},zc7:function(){return m.zc7},gkc:function(){return m.gkc},fVw:function(){return m.fVw},T:function(){return m.T},Qq1:function(){return eM},zBk:function(){return nP},gRN:function(){return m.gRN},pBL:function(){return P},CNS:function(){return I},meR:function(){return R},uIq:function(){return F},U_z:function(){return pd},B08:function(){return m.B08},_cv:function(){return m._cv},si8:function(){return m.si8},F17:function(){return m.F17},e5F:function(){return rw},xUL:function(){return a4},eGT:function(){return m.eGT},jKo:function(){return m.jKo},FcS:function(){return m.FcS},BGI:function(){return m.BGI},Yku:function(){return m.Yku},Vkp:function(){return m.Vkp},XBb:function(){return m.XBb},jas:function(){return m.jas},ELf:function(){return m.ELf},jE2:function(){return m.jE2},ofW:function(){return m.ofW},aLu:function(){return hN},r45:function(){return aG},HgN:function(){return m.HgN}});var o,s,a,l,c,d,u,h,p,f,g,m=n(5109);let y=()=>{let e=(0,m.jE2)();return(0,m.HgN)("threeStackableItems",()=>(function(e){let t=e.getSelectedShapeIds(),n=t.map(t=>e.getShape(t));return n.filter(t=>!(!t||e.isShapeOfType(t,"arrow")&&"binding"===t.props.start.type||e.isShapeOfType(t,"arrow")&&"binding"===t.props.end.type))})(e).length>2,[e])},b=()=>{let e=(0,m.jE2)();return(0,m.HgN)("allow group",()=>{let t=e.getSelectedShapes();if(t.length<2)return!1;for(let n of t)if(e.isShapeOfType(n,"arrow")){let{start:e,end:r}=n.props;if("binding"===e.type&&!t.some(t=>t.id===e.boundShapeId)||"binding"===r.type&&!t.some(e=>
39e.id===r.boundShapeId))return!1}return!0},[e])},x=()=>{let e=(0,m.jE2)();return(0,m.HgN)("allowUngroup",()=>e.getSelectedShapeIds().some(t=>e.getShape(t)?.type==="group"),[e])},w="undefined"!=typeof window&&"navigator"in window&&!!navigator.clipboard&&!!navigator.clipboard.read;function v(e,t){let n=(0,m.jE2)();return(0,m.HgN)("selectedShapes",()=>{let r=n.getSelectedShapes().filter(e=>!n.isShapeOrAncestorLocked(e)).length;return void 0===e?void 0===t?r:r<=t:void 0===t?r>=e:r>=e&&r<=t},[n])}function S(){let e=(0,m.jE2)();return(0,m.HgN)("hasLinkShapeSelected",()=>{let t=e.getOnlySelectedShape();return!!(t&&"embed"!==t.type&&"url"in t.props)},[e])}function k(){let e=(0,m.jE2)();return(0,m.HgN)("useCanRedo",()=>e.getCanRedo(),[e])}function j(){let e=(0,m.jE2)();return(0,m.HgN)("useCanUndo",()=>e.getCanUndo(),[e])}var _=n(52322),E=n(2784),C=n.t(E,2);function P({children:e}){let t=(0,m.jE2)(),n=(0,m.HgN)("shouldDisplayHandles",()=>t.isInAny("select.idle","select.pointing_handle"),[t]);return n?(0,_.jsx)("svg",{className:"tl-user-handles tl-overlays__item",children:e}):null}function I({shapeId:e}){let t=(0,m.jE2)(),{ShapeIndicator:n}=(0,m.ofW)(),r=(0,m.HgN)("show hovered",()=>t.isIn("select.editing_shape")?t.getHoveredShapeId()!==t.getEditingShapeId():t.isInAny("select.idle"),[t]);return n&&r?(0,_.jsx)(n,{className:"tl-user-indicator__hovered",shapeId:e}):null}var T=n(97606);let{PI:M}=Math,A=M+1e-4;function $(e,t={}){let n;let{size:r=16,smoothing:i=.5}=t;if(0===e.length||r<=0)return{left:[],right:[]};let o=e[0],s=e[e.length-1],a=s.runningLength,l=Math.pow(r*i,2),c=[],d=[],u=e[0].vector,h=e[0].point,p=h,f=h,g=p,y=!1;for(let t=0;t<e.length;t++){n=e[t];let{point:r,vector:i}=e[t],b=n.vector.dpr(u),x=(t<e.length-1?e[t+1]:e[t]).vector,w=t<e.length-1?x.dpr(n.vector):1,v=b<0&&!y,S=null!==w&&w<.2;if(v||S){if(w>-.62&&a-n.runningLength>n.radius){let e=u.clone().mul(n.radius),t=u.clone().cpr(x);t<0?(f=m.B08.Add(r,e),g=m.B08.Sub(r,e)):(f=m.B08.Sub(r,e),g=m.B08.Add(r,e)),c.push(f),d.push(g)}else{let e=u.clone().mul(n.radius).per(),t=m.B08.Sub(n.input,e);for(let e=1/13,r=0;r<1;r+=e)f=m.B08.RotWith(t,n.input,A*r),c.push(f),g=m.B08.RotWith(t,n.input,A+-(A*r)),d.push(g)}h=f,p=g,S&&(y=!0);continue}if(y=!1,n===o||n===s){let e=m.B08.Per(i).mul(n.radius);c.push(m.B08.Sub(r,e)),d.push(m.B08.Add(r,e));continue}let k=m.B08.Lrp(x,i,w).per().mul(n.radius);f=m.B08.Sub(r,k),(t<=1||m.B08.Dist2(h,f)>l)&&(c.push(f),h=f),g=m.B08.Add(r,k),(t<=1||m.B08.Dist2(p,g)>l)&&(d.push(g),p=g),u=i}return{left:c,right:d}}function D(e,t={}){let{size:n=16,start:r={},end:i={},last:o=!1}=t,{cap:s=!0}=r,{cap:a=!0}=i;if(0===e.length||n<=0)return[];let l=e[0],c=e[e.length-1],d=c.runningLength,u=!1===r.taper?0:!0===r.taper?Math.max(n,d):r.taper,h=!1===i.taper?0:!0===i.taper?Math.max(n,d):i.taper,{left:p,right:f}=$(e,t),g=l.point,y=e.length>1?e[e.length-1].point:m.B08.AddXY(l.point,1,1);if(1===e.length&&(!(u||h)||o)){let e=m.B08.Add(g,m.B08.Sub(g,y).uni().per().mul(-l.radius)),t=[];for(let n=1/13,r=n;r<=1;r+=n)t.push(m.B08.RotWith(e,g,2*A*r));return t}let b=[];if(u||h&&1===e.length);else if(s)for(let e=1/8,t=e;t<=1;t+=e){let e=m.B08.RotWith(f[0],g,A*t);b.push(e)}else{let e=m.B08.Sub(p[0],f[0]),t=m.B08.Mul(e,.5),n=m.B08.Mul(e,.51);b.push(m.B08.Sub(g,t),m.B08.Sub(g,n),m.B08.Add(g,n),m.B08.Add(g,t))}let x=[],w=c.vector.clone().per().neg();if(h||u&&1===e.length)x.push(y);else if(a){let e=m.B08.Add(y,m.B08.Mul(w,c.radius));for(let t=1/29,n=t;n<1;n+=t)x.push(m.B08.RotWith(e,y,3*A*n))}else x.push(m.B08.Add(y,m.B08.Mul(w,c.radius)),m.B08.Add(y,m.B08.Mul(w,.99*c.radius)),m.B08.Sub(y,m.B08.Mul(w,.99*c.radius)),m.B08.Sub(y,m.B08.Mul(w,c.radius)));return p.concat(x,f.reverse(),b)}function O(e,t={}){let n,r;let{streamline:i=.5,size:o=16,simulatePressure:s=!1}=t;if(0===e.length)return[];let a=.15+(1-i)*.85,l=e.map(m.B08.From),c=0;if(!s){let e=l[0];for(;e&&!(e.z>=.025);)l.shift(),e=l[0]}if(!s){let e=l[l.length-1];for(;e&&!(e.z>=.01);)l.pop(),e=l[l.length-1]}if(0===l.length)return[{point:m.B08.From(e[0]),input:m.B08.From(e[0]),pressure:s?.5:.15,vector:new m.B08(1,1),distance:0,runningLength:0,radius:1}];let d=l[1];for(;d&&!(m.B08.Dist(d,l[0])>o/3);)l[0].z=Math.max(l[0].z,d.z),l.splice(1,1),d=l[1];let u=l.pop();for(d=l[l.length-1];d&&!(m.B08.Dist(d,u)>o/3);)l.pop(),d=l[l.length-1],c++;l.push(u);let h=t.last||!t.simulatePressure||l.length>1&&m.B08.Dist(l[l.length-1],l[l.length-2])<o||c>0;if(2===l.length&&t.simulatePressure){let e=l[1];l=l.slice(0,-1);for(let t=1;t<5;t++){let n=m.B08.Lrp(l[0],e,t/4);n.z=(l[0].z+(e.z-l[0].z))*t/4,l.push(n)}}let p=[{point:l[0],input:l[0],pressure:s?.5:l[0].z,vector:new m.B08(1,1),distance:0,runningLength:0,radius:1}],f=0,g=p[0];h&&i>0&&l.push(l[l.length-1].clone());for(let e=1,i=l.length;e<i;
39e++)if(n=!a||t.last&&e===i-1?l[e].clone():l[e].clone().lrp(g.point,1-a),!g.point.equals(n)){if(f+=r=m.B08.Dist(n,g.point),e<4&&f<o)continue;g={input:l[e],point:n,pressure:s?.5:l[e].z,vector:m.B08.Sub(g.point,n).uni(),distance:r,runningLength:f,radius:1},p.push(g)}if(p[1]?.vector&&(p[0].vector=p[1].vector.clone()),f<1){let e=Math.max(.5,...p.map(e=>e.pressure));p.forEach(t=>t.pressure=e)}return p}let{min:B}=Math;function L(e,t){let n,r;let{size:i=16,thinning:o=.5,simulatePressure:s=!0,easing:a=e=>e,start:l={},end:c={}}=t,{easing:d=m.Ljl.easeOutQuad}=l,{easing:u=m.Ljl.easeOutCubic}=c,h=e[e.length-1].runningLength,p=e[0].pressure;if(!s&&h<i){let t=e.reduce((e,t)=>Math.max(e,t.pressure),.5);return e.forEach(e=>{e.pressure=t,e.radius=i*a(.5-o*(.5-e.pressure))}),e}{let t;for(let n=0,o=e.length;n<o&&!((r=e[n]).runningLength>5*i);n++){let e=B(1,r.distance/i);if(s){let n=B(1,1-e);t=B(1,p+(n-p)*(.275*e))}else t=B(1,p+(r.pressure-p)*.5);p+=(t-p)*.5}for(let t=0;t<e.length;t++){if(r=e[t],o){let{pressure:e}=r,t=B(1,r.distance/i);if(s){let n=B(1,1-t);e=B(1,p+(n-p)*(.275*t))}else e=B(1,p+(e-p)*(.275*t));r.radius=i*a(.5-o*(.5-e)),p=e}else r.radius=i/2;void 0===n&&(n=r.radius)}}let f=!1===l.taper?0:!0===l.taper?Math.max(i,h):l.taper,g=!1===c.taper?0:!0===c.taper?Math.max(i,h):c.taper;if(f||g)for(let t=0;t<e.length;t++){r=e[t];let{runningLength:n}=r,i=n<f?d(n/f):1,o=h-n<g?u((h-n)/g):1;r.radius=Math.max(.01,r.radius*Math.min(i,o))}return e}let R=({bounds:e,rotation:t})=>{let n=(0,m.jE2)(),r=(0,m.HgN)("should display",()=>n.isInAny("select.idle","select.brushing","select.scribble_brushing","select.pointing_shape","select.pointing_selection","text.resizing"),[n]);return r?(0,_.jsx)(m.yx9,{bounds:e,rotation:t}):null};function N(){let e=(0,m.jE2)();return(0,m.HgN)("isReadonlyMode",()=>e.getInstanceState().isReadonly,[e])}function z({size:e,width:t,height:n,hideAlternateHandles:r}){let i=(0,m.$ZD)(e/3),o=i/2;return(0,_.jsxs)("svg",{className:"tl-overlays__item",children:[(0,_.jsx)("polyline",{className:"tl-corner-crop-handle",points:`
40						${(0,m.$ZD)(0-o)},${(0,m.$ZD)(e)} 
41						${(0,m.$ZD)(0-o)},${(0,m.$ZD)(0-o)} 
42						${(0,m.$ZD)(e)},${(0,m.$ZD)(0-o)}`,strokeWidth:i,"data-testid":"selection.crop.top_left","aria-label":"top_left handle"}),(0,_.jsx)("line",{className:T("tl-corner-crop-edge-handle",{"tl-hidden":r}),x1:(0,m.$ZD)(t/2-e),y1:(0,m.$ZD)(0-o),x2:(0,m.$ZD)(t/2+e),y2:(0,m.$ZD)(0-o),strokeWidth:i,"data-testid":"selection.crop.top","aria-label":"top handle"}),(0,_.jsx)("polyline",{className:T("tl-corner-crop-handle",{"tl-hidden":r}),points:`
43						${(0,m.$ZD)(t-e)},${(0,m.$ZD)(0-o)} 
44						${(0,m.$ZD)(t+o)},${(0,m.$ZD)(0-o)} 
45						${(0,m.$ZD)(t+o)},${(0,m.$ZD)(e)}`,strokeWidth:i,"data-testid":"selection.crop.top_right","aria-label":"top_right handle"}),(0,_.jsx)("line",{className:T("tl-corner-crop-edge-handle",{"tl-hidden":r}),x1:(0,m.$ZD)(t+o),y1:(0,m.$ZD)(n/2-e),x2:(0,m.$ZD)(t+o),y2:(0,m.$ZD)(n/2+e),strokeWidth:i,"data-testid":"selection.crop.right","aria-label":"right handle"}),(0,_.jsx)("polyline",{className:"tl-corner-crop-handle",points:`
46						${(0,m.$ZD)(t+o)},${(0,m.$ZD)(n-e)} 
47						${(0,m.$ZD)(t+o)},${(0,m.$ZD)(n+o)}
48						${(0,m.$ZD)(t-e)},${(0,m.$ZD)(n+o)}`,strokeWidth:i,"data-testid":"selection.crop.bottom_right","aria-label":"bottom_right handle"}),(0,_.jsx)("line",{className:T("tl-corner-crop-edge-handle",{"tl-hidden":r}),x1:(0,m.$ZD)(t/2-e),y1:(0,m.$ZD)(n+o),x2:(0,m.$ZD)(t/2+e),y2:(0,m.$ZD)(n+o),strokeWidth:i,"data-testid":"selection.crop.bottom","aria-label":"bottom handle"}),(0,_.jsx)("polyline",{className:T("tl-corner-crop-handle",{"tl-hidden":r}),points:`
49						${(0,m.$ZD)(0+e)},${(0,m.$ZD)(n+o)} 
50						${(0,m.$ZD)(0-o)},${(0,m.$ZD)(n+o)}
51						${(0,m.$ZD)(0-o)},${(0,m.$ZD)(n-e)}`,strokeWidth:i,"data-testid":"selection.crop.bottom_left","aria-label":"bottom_left handle"}),(0,_.jsx)("line",{className:T("tl-corner-crop-edge-handle",{"tl-hidden":r}),x1:(0,m.$ZD)(0-o),y1:(0,m.$ZD)(n/2-e),x2:(0,m.$ZD)(0-o),y2:(0,m.$ZD)(n/2+e),strokeWidth:i,"data-testid":"selection.crop.left","aria-label":"left handle"})]})}let F=(0,m.jas)(function({bounds:e,rotation:t}){let n=(0,m.jE2)(),r=(0,E.useRef)(null),i=N(),o=(0,m.Ie$)("top"),s=(0,m.Ie$)("right"),a=(0,m.Ie$)("bottom"),l=(0,m.Ie$)("left"),c=(0,m.Ie$)("top_left"),d=(0,m.Ie$)("top_right"),u=(0,m.Ie$)("bottom_right"),h=(0,m.Ie$)("bottom_left"),p=!n.getIsMenuOpen()&&"default"===n.getInstanceState().cursor.type,f=n.getInstanceState().isCoarsePointer,g=n.getOnlySelectedShape(),y=g&&n.isShapeOrAncestorLocked(g),b=g?n.getShapeUtil(g).expandSelectionOutlinePx(g):0;if((0,m.Hm2)(r,e?.x,e?.y,1,n.getSelectionRotation(),{x:-b,y:-b}),!e)return null;e=e.clone().expandBy(b).zeroFix();let x=n.getZoomLevel(),w=n.getInstanceState().isChangingStyle,v=e.width,S=e.height,k=8/x,j=v<2*k,C=S<2*k,P=v<4*k,I=S<4*k,M=v<5*k,A=S<5*k,$=f?1.75:1,D=6/x*$,O=(P?D/2:D)*(.75*$),B=(I?D/2:D)*(.75*$),L=(!g||!n.getShapeUtil(g).hideSelectionBounds
51Fg(g))&&!w,R=L&&n.isInAny("select.idle","select.brushing","select.scribble_brushing","select.pointing_canvas","select.pointing_selection","select.pointing_shape","select.crop.idle","select.crop.pointing_crop","select.pointing_resize_handle","select.pointing_crop_handle")||L&&n.isIn("select.resizing")&&g&&n.isShapeOfType(g,"text");g&&R&&n.environment.isFirefox&&n.isShapeOfType(g,"embed")&&(R=!1);let F=n.isInAny("select.pointing_crop_handle","select.crop.idle","select.crop.pointing_crop")&&!w&&!i,H=n.isInAny("select.idle","select.pointing_selection","select.pointing_shape","select.crop.idle")&&!w&&!i,V=!f&&!(j||C)&&(H||F)&&(!g||!n.getShapeUtil(g).hideRotateHandle(g))&&!y,K=f&&(!P||!I)&&(H||F)&&(!g||!n.getShapeUtil(g).hideRotateHandle(g))&&!y,W=H&&(!g||n.getShapeUtil(g).canResize(g)&&!n.getShapeUtil(g).hideResizeHandles(g))&&!F&&!y,Y=j||C,G=j&&C,X=M||A,q=W||F,J=!V,Q=!H||!q,ee=!H||!q||Y,et=!H||!q||Y,en=!H||!q||G&&!F,er=!0,ei=!0;if(F)er=X,ei=X;else if(W){er=Y||G||f;let e=f&&g&&"text"===g.type;ei=er&&!e}let eo=Math.min(24/x,S-3*B),es=H&&f&&g&&n.isShapeOfType(g,"text")&&eo*x>=4;return(0,_.jsx)("svg",{className:"tl-overlays__item tl-selection__fg","data-testid":"selection-foreground",children:(0,_.jsxs)("g",{ref:r,children:[R&&(0,_.jsx)("rect",{className:"tl-selection__fg__outline",width:(0,m.$ZD)(v),height:(0,m.$ZD)(S)}),(0,_.jsx)(U,{"data-testid":"selection.rotate.top-left",cx:0,cy:0,targetSize:D,corner:"top_left_rotate",cursor:p?(0,m.LpX)("nwse-rotate",t):void 0,isHidden:J}),(0,_.jsx)(U,{"data-testid":"selection.rotate.top-right",cx:v+3*D,cy:0,targetSize:D,corner:"top_right_rotate",cursor:p?(0,m.LpX)("nesw-rotate",t):void 0,isHidden:J}),(0,_.jsx)(U,{"data-testid":"selection.rotate.bottom-left",cx:0,cy:S+3*D,targetSize:D,corner:"bottom_left_rotate",cursor:p?(0,m.LpX)("swne-rotate",t):void 0,isHidden:J}),(0,_.jsx)(U,{"data-testid":"selection.rotate.bottom-right",cx:v+3*D,cy:S+3*D,targetSize:D,corner:"bottom_right_rotate",cursor:p?(0,m.LpX)("senw-rotate",t):void 0,isHidden:J}),(0,_.jsx)(Z,{"data-testid":"selection.rotate.mobile",cx:P?-(1.5*D):v/2,cy:P?S/2:-(1.5*D),size:k,isHidden:!H||!K}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":er}),"data-testid":"selection.resize.top","aria-label":"top target",pointerEvents:"all",x:0,y:(0,m.$ZD)(0-(I?2*B:B)),width:(0,m.$ZD)(v),height:(0,m.$ZD)(Math.max(1,2*B)),style:p?{cursor:(0,m.LpX)("ns-resize",t)}:void 0,...o}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":ei}),"data-testid":"selection.resize.right","aria-label":"right target",pointerEvents:"all",x:(0,m.$ZD)(v-(P?0:O)),y:0,height:(0,m.$ZD)(S),width:(0,m.$ZD)(Math.max(1,2*O)),style:p?{cursor:(0,m.LpX)("ew-resize",t)}:void 0,...s}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":er}),"data-testid":"selection.resize.bottom","aria-label":"bottom target",pointerEvents:"all",x:0,y:(0,m.$ZD)(S-(I?0:B)),width:(0,m.$ZD)(v),height:(0,m.$ZD)(Math.max(1,2*B)),style:p?{cursor:(0,m.LpX)("ns-resize",t)}:void 0,...a}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":ei}),"data-testid":"selection.resize.left","aria-label":"left target",pointerEvents:"all",x:(0,m.$ZD)(0-(P?2*O:O)),y:0,height:(0,m.$ZD)(S),width:(0,m.$ZD)(Math.max(1,2*O)),style:p?{cursor:(0,m.LpX)("ew-resize",t)}:void 0,...l}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":Q}),"data-testid":"selection.target.top-left","aria-label":"top-left target",pointerEvents:"all",x:(0,m.$ZD)(0-(P?2*O:1.5*O)),y:(0,m.$ZD)(0-(I?2*B:1.5*B)),width:(0,m.$ZD)(3*O),height:(0,m.$ZD)(3*B),style:p?{cursor:(0,m.LpX)("nwse-resize",t)}:void 0,...c}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":ee}),"data-testid":"selection.target.top-right","aria-label":"top-right target",pointerEvents:"all",x:(0,m.$ZD)(v-(P?0:1.5*O)),y:(0,m.$ZD)(0-(I?2*B:1.5*B)),width:(0,m.$ZD)(3*O),height:(0,m.$ZD)(3*B),style:p?{cursor:(0,m.LpX)("nesw-resize",t)}:void 0,...d}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":en}),"data-testid":"selection.target.bottom-right","aria-label":"bottom-right target",pointerEvents:"all",x:(0,m.$ZD)(v-(P?O:1.5*O)),y:(0,m.$ZD)(S-(I?B:1.5*B)),width:(0,m.$ZD)(3*O),height:(0,m.$ZD)(3*B),style:p?{cursor:(0,m.LpX)("nwse-resize",t)}:void 0,...u}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":et}),"data-testid":"selection.target.bottom-left","aria-label":"bottom-left target",pointerEvents:"all",x:(0,m.$ZD)(0-(P?3*O:1.5*O)),y:(0,m.$ZD)(S-(I?0:1.5*B)),width:(0,m.$ZD)(3*O),height:(0,m.$ZD)(3*B),style:p?{cursor:(0,m.LpX)("nesw-resize",t)}:void 0,...h}),W&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)("rect",{"data-testid":"selection.resize.top-left",className:T("tl-corner-handle",{"tl-hidden":Q}),"aria-label":"top_left handle",x:(0,m.$ZD)(0-k/2),y:(0,m.$ZD)(0-k/2),width:(0,m.$ZD)(k),height:(0,m.$ZD)(k)}),(0,_.jsx)("rect",{"data-testid":"selection.resize.top-right",className:T("tl-corner-handle",{"tl-hidden":ee}),"aria-label":"top_right handle",x:(0,m.$ZD)(v-k/2),y:(0,m.$ZD)(0-k/2),width:(0,m.$ZD)(k),height:(0,m.$ZD)(k)}),(0,_.jsx)("rect",{"data-testid":"selection.resize.bottom-right",className:T("tl-corner-handle",{"tl-hidden":en}),"aria-label":"bottom_right handle",x:(0,m.$ZD)(v-k/2),y:(0,m.$ZD)(S-k/2),width:(0,m.$ZD)(k),height:(0,m.$ZD)(k)}),(0,_.jsx)("rect",{"data-testid":"selection.resize.bottom-left",className:T("tl-corner-handle",{"tl-hidden":et}),"aria-label":"bottom_left handle",x:(0,m.$ZD)(0-k/2),y:(0,m.$ZD)(S-k/2),width:(0,m.$ZD)(k),height:(0,m.$ZD)(k)})]}),es&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)("rect",{"data-testid":"selection.text-resize.left.handle",className:"tl-text-handle","aria-label":"bottom_left handle",x:(0,m.$ZD)(0-k/4),y:(0,m.$ZD)(S/2-eo/2),rx:k/4,width:(0,m.$ZD)(k/2),height:(0,m.$ZD)(eo)}),(0,_.jsx)("rect",{"data-testid":"selection.text-resize.right.handle",className:"tl-text-handle","aria-label":"bottom_left handle",rx:k/4,x:(0,m.$ZD)(v-k/4),y:(0,m.$ZD)(S/2-eo/2),width:(0,m.$ZD)(k/2),height:(0,m.$ZD)(eo)})]}),F&&(0,_.jsx)(z,{size:k,width:v,height:S,hideAlternateHandles:X})]})})}),U=function({cx:e,cy:t,targetSize:n,corner:r,cursor:i,isHidden:o,"data-testid":s}){let a=(0,m.Ie$)(r);return(0,_.jsx)("rect",{className:T("tl-transparent","tl-rotate-corner",{"tl-hidden":o}),"data-testid":s,"aria-label":`${r} target`,pointerEvents:"all",x:(0,m.$ZD)(e-3*n),y:(0,m.$ZD)(t-3*n),width:(0,m.$ZD)(Math.max(1,3*n)),height:(0,m.$ZD)(Math.max(1,3*n)),cursor:i,...a})},H=Math.sqrt(Math.PI),Z=function({cx:e,cy:t,size:n,isHidden:r,"data-testid":i}){let o=(0,m.Ie$)("mobile_rotate"),s=(0,m.jE2)(),a=(0,m.HgN)("zoom level",()=>s.getZoomLevel(),[s]);return(0,_.jsxs)("g",{children:[(0,_.jsx)("circle",{"data-testid":i,pointerEvents:"all",className:T("tl-transparent","tl-mobile-rotate__bg",{"tl-hidden":r}),cx:e,cy:t,r:Math.max(14*(1/a),20/Math.max(1,a)),...o}),(0,_.jsx)("circle",{className:T("tl-mobile-rotate__fg",{"tl-hidden":r}),cx:e,cy:t,r:n/H})]})},V={lineHeight:1.35,fontWeight:"normal",fontVariant:"normal",fontStyle:"normal",padding:"0px"},K={s:2,m:3.5,l:5,xl:10},W={s:18,m:24,l:36,xl:44},Y={s:18,m:22,l:26,xl:32},G={s:18,m:20,l:24,xl:28},X={draw:"var(--tl-font-draw)",sans:"var(--tl-font-sans)",serif:"var(--tl-font-serif)",mono:"var(--tl-font-mono)"};function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function J(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
51t%2?q(Object(n),!0).forEach(function(t){var r,i;r=t,i=n[t],(r=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Q(e,t){return function(e){if(Array.isArray(e))return e}(e)||/*!
52 * canvas-size
53 * v1.2.6
54 * https://github.com/jhildenbiddle/canvas-size
55 * (c) 2015-2023 John Hildenbiddle <http://hildenbiddle.com>
56 * MIT license
57 */function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,s,a=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return a}}(e,t)||et(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ee(e){return function(e){if(Array.isArray(e))return en(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||et(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function et(e,t){if(e){if("string"==typeof e)return en(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return en(e,t)}}function en(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function er(e){var t,n,r=e.sizes.shift(),i=Math.max(Math.ceil(r[0]),1),o=Math.max(Math.ceil(r[1]),1),s=[i-1,o-1,1,1],a=Date.now(),l="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;l?(t=new OffscreenCanvas(1,1),n=new OffscreenCanvas(i,o)):((t=document.createElement("canvas")).width=1,t.height=1,(n=document.createElement("canvas")).width=i,n.height=o
57);var c=t.getContext("2d"),d=n.getContext("2d");d&&(d.fillRect.apply(d,s),c.drawImage(n,i-1,o-1,1,1,0,0,1,1));var u=c&&0!==c.getImageData(0,0,1,1).data[3],h=Date.now()-a;return[t,n].forEach(function(e){e.height=0,e.width=0}),l?(postMessage({width:i,height:o,benchmark:h,isTestPass:u}),!u&&e.sizes.length&&er(e)):u?e.onSuccess(i,o,h):(e.onError(i,o,h),e.sizes.length&&er(e)),u}var ei={area:[16384,14188,11402,11180,10836,8192,4096,1],height:[8388607,65535,32767,16384,8192,4096,1],width:[4194303,65535,32767,16384,8192,4096,1]},eo=["onError","onSuccess"],es={max:null,min:1,sizes:[],step:1024,usePromise:!1,useWorker:!1,onError:Function.prototype,onSuccess:Function.prototype},ea={};function el(e){var t=e.width===e.height,n=1===e.height,r=1===e.width,i=[];if(e.width&&e.height)for(var o=e.min||es.min,s=e.step||es.step,a=Math.max(e.width,e.height);a>=o;){var l=t||n?a:1,c=t||r?a:1;i.push([l,c]),a-=s}else e.sizes.forEach(function(e){var o=t||n?e:1,s=t||r?e:1;i.push([o,s])});return i}function ec(e){var t=window&&"HTMLCanvasElement"in window,n=window&&"OffscreenCanvas"in window,r=Date.now(),i=e.onError,o=e.onSuccess,s=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}(e,eo),a=null;if(!t)return!1;if(e.useWorker&&n){var l="\n            var canvasTest = ".concat(er.toString(),";\n            onmessage = function(e) {\n                canvasTest(e.data);\n            };\n        "),c=new Blob([l],{type:"application/javascript"}),d=URL.createObjectURL(c);a=new Worker(d),URL.revokeObjectURL(d),a.onmessage=function(e){var t=e.data,n=t.width,i=t.height,o=t.benchmark;t.isTestPass?(ea[r].onSuccess(n,i,o),delete ea[r]):ea[r].onError(n,i,o)}}return e.usePromise?new Promise(function(t,n){var l=J(J({},e),{},{onError:function(t,r,o){var s;if(0===e.sizes.length)s=!0;else{var a=Q(e.sizes.slice(-1),1),l=Q(a[0],2),c=l[0],d=l[1];s=t===c&&r===d}i(t,r,o),s&&n({width:t,height:r,benchmark:o})},onSuccess:function(e,n,r){o(e,n,r),t({width:e,height:n,benchmark:r})}});if(a){var c=l.onError,d=l.onSuccess;ea[r]={onError:c,onSuccess:d},a.postMessage(s)}else er(l)}):a?void(ea[r]={onError:i,onSuccess:o},a.postMessage(s)):er(e)}var ed={maxArea:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=el({width:e.max,height:e.max,min:e.min,step:e.step,sizes:ee(ei.area)});return ec(J(J(J({},es),e),{},{sizes:t}))},maxHeight:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=el({width:1,height:e.max,min:e.min,step:e.step,sizes:ee(ei.height)});return ec(J(J(J({},es),e),{},{sizes:t}))},maxWidth:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=el({width:e.max,height:1,min:e.min,step:e.step,sizes:ee(ei.width)});return ec(J(J(J({},es),e),{},{sizes:t}))},test:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=J(J({},es),e);return t.sizes=ee(t.sizes),t.width&&t.height&&(t.sizes=[[t.width,t.height]]),ec(t)}};let eu=null;async function eh(){let e=await ed.maxWidth({usePromise:!0}),t=await ed.maxHeight({usePromise:!0}),n=await ed.maxArea({usePromise:!0});return{maxWidth:e.width,maxHeight:t.height,maxArea:n.width*n.height}}async function ep(e,t){if(e<=8192&&t<=8192&&e*t<=16777216)return[e,t];let{maxWidth:n,maxHeight:r,maxArea:i}=await (eu||(eu=eh()),eu),o=e/t;if(e>n&&(t=(e=n)/o),t>r&&(e=(t=r)*o),e*t>i){let n=Math.sqrt(i/(e*t));e*=n,t*=n}return[e,t]}let ef=e=>e.split("*").map(e=>(function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")})(e)).join(".+"),eg=(e,t)=>!!e.find(e=>{let n=new RegExp(ef(e));return t.match(n)});function em(e){let t=function(e){let t=new URL(e).host.replace("www.","");for(let n of m.Lu5)if(eg(n.hostnames,t)){let t=n.toEmbedUrl(e);if(t)return{definition:n,embedUrl:t,url:e}}}(e)??function(e){let t=new URL(e).host.replace("www.","");for(let n of m.Lu5)if(eg(n.hostnames,t)){let t=n.fromEmbedUrl(e);if(t)return{definition:n,url:t,embedUrl:e}}}(e);return t}function ey(e){try{return em(e)}catch(e){console.error(e)}}class eb extends m.nui{static id="idle";onPointerDown=e=>{this.parent.transition("pointing",e)};onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})};onCancel=()=>{this.editor.setCurrentTool("select")};onKeyUp=e=>{if("Enter"===e.key){if(this.editor.getInstanceState().isReadonly)return null;let t=this.editor.getOnlySelectedShape();t&&this.editor.getShapeUtil(t).canEdit(t)&&(this.editor.setCurrentTool("select"),this.editor.setEditingShape(t.id),this.editor.root.getCurrent()?.transition("editing_shape",{...e,target:"shape",shape:t}))}}}class ex extends m.nui{static id="pointing";shape;markId="";onEnter=()=>{this.didTimeout=!1;let e=this.editor.getShapeAtPoint(this.editor.inputs.currentPagePoint,{filter:e=>!e.isLocked&&this.editor.getShapeUtil(e).canBind(e),margin:0,hitInside:!0,renderingOnly:!0});e?this.editor.setHintingShapes([e.id]):this.createArrowShape(),this.startPreciseTimeout()};onExit=()=>{this.shape=void 0,this.editor.setHintingShapes([]),this.clearPreciseTimeout()};onPointerMove=()=>{if(this.editor.inputs.isDragging){if(this.shape||this.createArrowShape(),!this.shape)throw Error("expected shape");this.updateArrowShapeEndHandle(),this.editor.setCurrentTool("select.dragging_handle",{shape:this.shape,handle:this.editor.getShapeHandles(this.shape).find(e=>"end"===e.id),isCreating:!0,onInteractionEnd:"arrow"})}};onPointerUp=()=>{this.cancel()};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};cancel(){this.shape&&this.editor.bailToMark(this.markId),this.editor.setHintingShapes([]),this.parent.transition("idle")}createArrowShape(){let{originPagePoint:e}=this.editor.inputs,t=(0,m.F17)();this.markId=`creating:${t}`,this.editor.mark(this.markId),this.editor.createShapes([{id:t,type:"arrow",x:e.x,y:e.y}]);let n=this.editor.getShape(t);if(!n)throw Error("expected shape");let r=this.editor.getShapeHandles(n);if(!r)throw Error("expected handles for arrow");let i=this.editor.getShapeUtil("arrow"),o=this.shape,s=r.find(e=>"start"===e.id),a=i.onHandleDrag?.(n,{handle:{...s,x:0,y:0},isPrecise:!0,initial:o});if(a){let e=a.props?.start;e?.type==="binding"&&this.editor.setHintingShapes([e.boundShapeId]),this.editor.updateShapes([a],{squashing:!0})}this.shape=this.editor.getShape(t),this.editor.select(t)}updateArrowShapeEndHandle(){let e=this.shape;if(!e)throw Error("expected shape");let t=this.editor.getShapeHandles(e);if(!t)throw Error("expected handles for arrow");let n={...e,props:{...e.props,end:{...e.props.end,x:0,y:0}}};{let r=this.editor.getShapeUtil("arrow"),i=this.shape,o=this.editor.getPointInShapeSpace(e,this.editor.inputs.currentPagePoint),s=t.find(e=>"end"===e.id),a=r.onHandleDrag?.(n,{handle:{...s,x:o.x,y:o.y},isPrecise:!1,initial:i});if(a){let e=a.props?.end;e?.type==="binding"&&this.editor.setHintingShapes([e.boundShapeId]),this.editor.updateShapes([a],{squashing:!0})}}{let e=this.editor.getShapeUtil("arrow"),r=this.shape,i=t.find(e=>"start"===e.id),o=e.onHandleDrag?.(n,{handle:{...i,x:0,y:0},isPrecise:this.didTimeout,initial:r});o&&this.editor.updateShapes([o],{squashing:!0})}this.shape=this.editor.getShape(e.id)}preciseTimeout=-1;didTimeout=!1;startPreciseTimeout(){this.preciseTimeout=window.setTimeout(()=>{this.getIsActive()&&(this.didTimeout=!0)},320)}clearPreciseTimeout(){clearTimeout(this.preciseTimeout)}}class ew extends m.nui{static id="arrow";static initial="idle";static children=()=>[eb,ex];shapeType="arrow"}class ev extends m.nui{static id="drawing";info={};initialShape;shapeType="highlight"===this.parent.id?"highlight":"draw";util=this.editor.getShapeUtil(this.shapeType);isPen=!1;segmentMode="free";didJustShiftClickToExtendPreviousShapeLine=!1;pagePointWhereCurrentSegmentChanged={};pagePointWhereNextSegmentChanged=null;lastRecordedPoint={};mergeNextPoint=!1;currentLineLength=0;canDraw=!1;markId=null;onEnter=e=>{this.markId=null,this.info=e,this.canDraw=!this.editor.getIsMenuOpen(),this.lastRecordedPoint=this.editor.inputs.currentPagePoint.clone(),this.canDraw&&this.startShape()};onPointerMove=()=>{let{editor:{inputs:e}}=this;if(this.isPen!==e.isPen){if(this.markId){this.editor.bailToMark(this.markId),this.startShape();return}}else!this.canDraw&&e.isDragging&&(this.startShape(),this.canDraw=!0);this.canDraw&&(e.isPen?m.B08.Dist(e.currentPagePoint,this.lastRecordedPoint)>=1/this.editor.getZoomLevel()?(this.lastRecordedPoint=e.currentPagePoint.clone(),this.mergeNextPoint=!1):this.mergeNextPoint=!0:this.mergeNextPoint=!1,this.updateShapes())};onKeyDown=e=>{if("Shift"===e.key)switch(this.segmentMode){case"free":this.segmentMode="starting_straight",this.pagePointWhereNextSegmentChanged=this.editor.inputs.currentPagePoint.clone();break;case"starting_free":this.segmentMode="starting_straight"}this.updateShapes()};onKeyUp=e=>{if("Shift"===e.key)switch(this.editor.snaps.clearIndicators(),this.segmentMode){case"straight":this.segmentMode="starting_free",this.pagePointWhereNextSegmentChanged=this.editor.inputs.currentPagePoint.clone();break;case"starting_straight":this.pagePointWhereNextSegmentChanged=null,this.segmentMode="free"}this.updateShapes()};onExit=()=>{this.editor.snaps.clearIndicators(),this.pagePointWhereCurrentSegmentChanged=this.editor.inputs.currentPagePoint.clone()};canClose(){return"highlight"!==this.shapeType}getIsClosed(e,t){if(!this.canClose())return!1;let n=K[t],r=e[0].points[0],i=e[e.length-1],o=i.points[i.points.length-1];return r!==o&&this.currentLineLength>4*n&&m.B08.Dist(r,o)<2*n}startShape(){let{inputs:{originPagePoint:e,isPen:t}}=this.editor;this.markId="draw start "+(0,m.ELf)(),this.editor.mark(this.markId),this.isPen=t;let n=this.isPen?1.25*this.info.point.z:.5;
57if(this.segmentMode=this.editor.inputs.shiftKey?"straight":"free",this.didJustShiftClickToExtendPreviousShapeLine=!1,this.lastRecordedPoint=e.clone(),this.initialShape){let t=this.editor.getShape(this.initialShape.id);if(t&&"straight"===this.segmentMode){this.didJustShiftClickToExtendPreviousShapeLine=!0;let n=(0,m.Z$Q)(t.props.segments);if(!n)throw Error("Expected a previous segment!");let r=(0,m.Z$Q)(n.points);if(!r)throw Error("Expected a previous point!");let{x:i,y:o}=this.editor.getPointInShapeSpace(t,e).toFixed(),s=this.isPen?1.25*this.info.point.z:.5,a={type:this.segmentMode,points:[{x:r.x,y:r.y,z:+s.toFixed(2)},{x:i,y:o,z:+s.toFixed(2)}]},l=m._3P.applyToPoint(this.editor.getShapePageTransform(t.id),r);this.pagePointWhereCurrentSegmentChanged=l,this.pagePointWhereNextSegmentChanged=null;let c=[...t.props.segments,a];this.currentLineLength=this.getLineLength(c);let d={id:t.id,type:this.shapeType,props:{segments:c}};this.canClose()&&(d.props.isClosed=this.getIsClosed(c,t.props.size)),this.editor.updateShapes([d]);return}}this.pagePointWhereCurrentSegmentChanged=e.clone();let r=(0,m.F17)();this.editor.createShapes([{id:r,type:this.shapeType,x:e.x,y:e.y,props:{isPen:this.isPen,segments:[{type:this.segmentMode,points:[{x:0,y:0,z:+n.toFixed(2)}]}]}}]),this.currentLineLength=0,this.initialShape=this.editor.getShape(r)}updateShapes(){let{inputs:e}=this.editor,{initialShape:t}=this;if(!t)return;let{id:n,props:{size:r}}=t,i=this.editor.getShape(n);if(!i)return;let{segments:o}=i.props,{x:s,y:a,z:l}=this.editor.getPointInShapeSpace(i,e.currentPagePoint).toFixed(),c={x:s,y:a,z:this.isPen?+(1.25*l).toFixed(2):.5};switch(this.segmentMode){case"starting_straight":{let{pagePointWhereNextSegmentChanged:t}=this;if(null===t)throw Error("We should have a point where the segment changed");let s=m.B08.Dist(t,e.currentPagePoint)>m.Skg;if(s){let e;this.pagePointWhereCurrentSegmentChanged=this.pagePointWhereNextSegmentChanged.clone(),this.pagePointWhereNextSegmentChanged=null,this.segmentMode="straight";let t=(0,m.Z$Q)(o);if(!t)throw Error("Expected a previous segment!");let s=(0,m.Z$Q)(t.points);if(!s)throw Error("Expected a previous last point!");let a=this.editor.getPointInShapeSpace(i,this.pagePointWhereCurrentSegmentChanged).toFixed().toJson();if("straight"===t.type){this.currentLineLength+=m.B08.Dist(s,a),e={type:"straight",points:[{...s},a]};let t=this.editor.getShapePageTransform(i);this.pagePointWhereCurrentSegmentChanged=m._3P.applyToPoint(t,s)}else e={type:"straight",points:[a,c]};let l={id:n,type:this.shapeType,props:{segments:[...o,e]}};this.canClose()&&(l.props.isClosed=this.getIsClosed(o,r)),this.editor.updateShapes([l],{squashing:!0})}break}case"starting_free":{let{pagePointWhereNextSegmentChanged:t}=this;if(null===t)throw Error("We should have a point where the segment changed");let i=m.B08.Dist(t,e.currentPagePoint)>m.Skg;if(i){this.pagePointWhereCurrentSegmentChanged=this.pagePointWhereNextSegmentChanged.clone(),this.pagePointWhereNextSegmentChanged=null,this.segmentMode="free";let e=o.slice(),t=e[e.length-1],i=(0,m.Z$Q)(t.points);if(!i)throw Error("No previous point!");let s={type:"free",points:[...m.B08.PointsBetween(i,c,6).map(e=>e.toFixed().toJson())]},a=[...e,s];this.currentLineLength=this.getLineLength(a);let l={id:n,type:this.shapeType,props:{segments:a}};this.canClose()&&(l.props.isClosed=this.getIsClosed(a,r)),this.editor.updateShapes([l],{squashing:!0})}break}case"straight":{let e,t;let s=o.slice(),a=s[s.length-1],{pagePointWhereCurrentSegmentChanged:l}=this,{currentPagePoint:c,ctrlKey:d}=this.editor.inputs;if(!l)throw Error("We should have a point where the segment changed");let u=!1;this.didJustShiftClickToExtendPreviousShapeLine?this.editor.inputs.isDragging&&(u=!d,this.didJustShiftClickToExtendPreviousShapeLine=!1):u=!d;let h=this.editor.getPointInShapeSpace(i,c).toFixed().toJson(),p=!1,f=this.editor.user.getIsSnapMode()?!d:d;if(f&&s.length>2){let e;let n=8/this.editor.getZoomLevel();for(let r=0,i=o.length-2;r<i;r++){let i=o[r];if(!i)break;if("free"===i.type)continue;let s=i.points[0],a=(0,m.Z$Q)(i.points);if(!(s&&a))continue;let l=m.B08.NearestPointOnLineSegment(s,a,h),c=m.B08.Dist(l,h);if(c<n){e=l.toFixed().toJson(),n=c,t=i;break}}e&&(p=!0,h=e)}if(p&&t){let e=this.editor.getShapePageTransform(i),n=t.points[0],r=(0,m.Z$Q)(t.points);if(!r)throw Error("Expected a last point!");let o=m._3P.applyToPoint(e,n),s=m._3P.applyToPoint(e,r),a=m._3P.applyToPoint(e,h);this.editor.snaps.setIndicators([{id:(0,m.ELf)(),type:"points",points:[o,a,s]}])}else{if(this.editor.snaps.clearIndicators(),u){let t=m.B08.Angle(l,c),n=(0,m.nDY)(t,24),r=n-t;e=m.B08.RotWith(c,l,r)}else e=c;h=this.editor.getPointInShapeSpace(i,e).toFixed().toJson()}this.currentLineLength+=m.B08.Dist(a.points[0],h),s[s.length-1]={...a,type:"straight",points:[a.points[0],h]};let g={id:n,type:this.shapeType,props:{segments:s}};this.canClose()&&(g.props.isClosed=this.getIsClosed(o,r)),this.editor.updateShapes([g],{squashing:!0});break}case"free":{let e=o.slice(),t=e[e.length-1],i=[...t.points];if(i.length&&this.mergeNextPoint){let{z:e}=i[i.length-1];i[i.length-1]={x:c.x,y:c.y,z:e?Math.max(e,c.z):c.z}}else this.currentLineLength+=m.B08.Dist(i[i.length-1],c),i.push(c);e[e.length-1]={...t,points:i},this.currentLineLength=this.getLineLength(e);let s={id:n,type:this.shapeType,props:{segments:e}};if(this.canClose()&&(s.props.isClosed=this.getIsClosed(e,r)),this.editor.updateShapes([s],{squashing:!0}),i.length>500){this.editor.updateShapes([{id:n,type:this.shapeType,props:{isComplete:!0}}]);let{currentPagePoint:e}=this.editor.inputs,t=(0,m.F17)();this.editor.createShapes([{id:t,type:this.shapeType,x:(0,m.FHy)(e.x),y:(0,m.FHy)(e.y),props:{isPen:this.isPen,segments:[{type:"free",points:[{x:0,y:0,z:this.isPen?+(1.25*l).toFixed():.5}]}]}}]),this.initialShape=(0,m.v4J)(this.editor.getShape(t)),this.mergeNextPoint=!1,this.lastRecordedPoint=this.editor.inputs.currentPagePoint.clone(),this.currentLineLength=0}}}}getLineLength(e){let t=0;for(let n of e)for(let e=0;e<n.points.length-1;e++){let r=n.points[e],i=n.points[e+1];t+=m.B08.Sub(i,r).len2()}return Math.sqrt(t)}onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.editor.inputs.isDragging||(this.markId&&this.editor.bailToMark(this.markId),this.cancel())};complete(){if(!this.canDraw){this.cancel();return}let{initialShape:e}=this;e&&(this.editor.updateShapes([{id:e.id,type:e.type,props:{isComplete:!0}}]),this.parent.transition("idle"))}cancel(){this.parent.transition("idle",this.info)}}class eS extends m.nui{static id="idle";onPointerDown=e=>{this.parent.transition("pointing",e)};onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})};onKeyUp=e=>{if("Enter"===e.key){if(this.editor.getInstanceState().isReadonly)return null;let t=this.editor.getOnlySelectedShape();t&&this.editor.getShapeUtil(t).canEdit(t)&&(this.editor.setCurrentTool("select"),this.editor.setEditingShape(t.id),this.editor.root.getCurrent()?.transition("editing_shape",{...e,target:"shape",shape:t}))}};onCancel=()=>{this.editor.setCurrentTool("select")}}class ek extends m.nui{static id="pointing";markId="";onPointerUp=()=>{this.complete()};onPointerMove=e=>{if(this.editor.inputs.isDragging){let{originPagePoint:t}=this.editor.inputs,n=(0,m.F17)();this.markId=`creating:${n}`,this.editor.mark(this.markId),this.editor.createShapes([{id:n,type:"geo",x:t.x,y:t.y,props:{w:1,h:1,geo:this.editor.getStyleForNextShape(m.Zuj)}}]).select(n).setCurrentTool("select.resizing",{...e,target:"selection",handle:"bottom_right",isCreating:!0,creationCursorOffset:{x:1,y:1},onInteractionEnd:"geo"})}};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.cancel()};complete(){let{originPagePoint:e}=this.editor.inputs,t=(0,m.F17)();this.markId=`creating:${t}`,this.editor.mark(this.markId),this.editor.createShapes([{id:t,type:"geo",x:e.x,y:e.y,props:{geo:this.editor.getStyleForNextShape(m.Zuj),w:1,h:1}}]);let n=this.editor.getShape(t);if(!n)return;let r="star"===n.props.geo?new m.xuv(0,0,200,190):"cloud"===n.props.geo?new m.xuv(0,0,300,180):new m.xuv(0,0,200,200),i=r.center,o=this.editor.getShapeParentTransform(n);o&&i.rot(-o.rotation()),this.editor.select(t),this.editor.updateShapes([{id:n.id,type:"geo",x:n.x-i.x,y:n.y-i.y,props:{geo:this.editor.getStyleForNextShape(m.Zuj),w:r.width,h:r.height}}]),this.editor.getInstanceState().isToolLocked?this.parent.transition("idle"):this.editor.setCurrentTool("select",{})}cancel(){this.parent.transition("idle")}}class ej extends m.nui{static id="geo";static initial="idle";static children=()=>[eS,ek];shapeType="geo"}class e_ extends m.nui{static id="idle";shapeId="";onEnter=e=>{this.shapeId=e.shapeId,this.editor.setCursor({type:"cross",rotation:0})};onPointerDown=()=>{this.parent.transition("pointing",{shapeId:this.shapeId})};onCancel=()=>{this.editor.setCurrentTool("select")}}class eE extends m.nui{static id="pointing";shape={};markId;onEnter=e=>{let{inputs:t}=this.editor,{currentPagePoint:n}=t;this.markId=void 0;let r=e.shapeId&&this.editor.getShape(e.shapeId);if(r&&t.shiftKey){this.markId=`creating:${r.id}`,this.editor.mark(this.markId),this.shape=r;let e=this.editor.getShapeHandles(this.shape);if(!e)return;let t=e.filter(e=>"vertex"===e.type).sort(m.hl1),i=t[t.length-1],o=t[t.length-2],s=m._3P.applyToPoint(this.editor.getShapeParentTransform(this.shape),new m.B08(this.shape.x,this.shape.y)),a=m.B08.Sub(n,s).addXY(.1,.1),l=(0,m.v4J)(this.shape.props.points);if(2>m.B08.Dist(i,o)||2>m.B08.Dist(a,i))l[i.id]={id:i.id,index:i.index,x:a.x,y:a.y};else{let e=(0,m._LC)(i.index);l[e]={id:e,index:e,x:a.x,y:a.y}}this.editor.updateShapes([{id:this.shape.id,type:this.shape.type,props:{points:l}}])}else{let e=(0,m.F17)();this.markId=`creating:${e}`,this.editor.mark(this.markId),this.editor.createShapes([{id:e,type:"line",x:n.x,y:n.y}]),this.editor.select(e),this.shape=this.editor.getShape(e)}};onPointerMove=()=>{if(this.shape&&this.editor.inputs.isDragging){let e=this.editor.getShapeHandles(this.shape);if(!e)throw this.markId&&this.editor.bailToMark(this.markId),Error("No handles found");let t=(0,m.Z$Q)(e);this.editor.setCurrentTool("select.dragging_handle",{shape:this.shape,isCreating:!0,handle:{...t,x:t.x-.1,y:t.y-.1},onInteractionEnd:"line"})}};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.parent.transition("idle"),this.markId&&this.editor.bailToMark(this.markId),this.editor.snaps.clearIndicators()};complete(){this.parent.transition("idle",{shapeId:this.shape.id}),this.editor.snaps.clearIndicators()}cancel(){this.markId&&this.editor.bailToMark(this.markId),this.parent.transition("idle",{shapeId:this.shape.id}),this.editor.snaps.clearIndicators()}}class eC extends m.nui{static id="line";static initial="idle";static children=()=>[e_,eE];shapeType="line"}function eP(e){let t;
57let n=e.getShapeAtPoint(e.inputs.currentPagePoint,{hitInside:!1,hitLabels:!1,margin:m.wMU/e.getZoomLevel(),renderingOnly:!0});if(!n)return e.setHoveredShape(null);let r=e.getOutermostSelectableShape(n);return t=r===n?n:r.id===e.getFocusedGroupId()||e.getSelectedShapeIds().includes(r.id)?n:r,e.setHoveredShape(t.id)}class eI extends m.nui{static id="idle";onPointerMove=e=>{switch(e.target){case"shape":case"canvas":eP(this.editor)}};onPointerDown=e=>{this.parent.transition("pointing",e)};onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})};onKeyDown=e=>{if("Enter"===e.key){if(this.editor.getInstanceState().isReadonly)return null;let t=this.editor.getOnlySelectedShape();t&&this.editor.getShapeUtil(t).canEdit(t)&&(this.editor.setCurrentTool("select"),this.editor.setEditingShape(t.id),this.editor.root.getCurrent()?.transition("editing_shape",{...e,target:"shape",shape:t}))}};onCancel=()=>{this.editor.setCurrentTool("select")}}class eT extends m.nui{static id="pointing";shape;markId="";onExit=()=>{this.editor.setHintingShapes([])};onPointerMove=e=>{if(this.editor.inputs.isDragging){let{inputs:{originPagePoint:t}}=this.editor,n=(0,m.F17)();if(this.markId=`creating:${n}`,this.editor.mark(this.markId),this.editor.createShapes([{id:n,type:"text",x:t.x,y:t.y,props:{text:"",autoSize:!1,w:20}}]),this.editor.select(n),this.shape=this.editor.getShape(n),!this.shape)return;let{shape:r}=this;this.editor.setCurrentTool("select.resizing",{...e,target:"selection",handle:"right",isCreating:!0,creationCursorOffset:{x:1,y:1},onInteractionEnd:"text",onCreate:()=>{this.editor.setEditingShape(r.id),this.editor.setCurrentTool("select.editing_shape")}})}};onPointerUp=()=>{this.complete()};onComplete=()=>{this.cancel()};onCancel=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};complete(){this.editor.mark("creating text shape");let e=(0,m.F17)(),{x:t,y:n}=this.editor.inputs.currentPagePoint;this.editor.createShapes([{id:e,type:"text",x:t,y:n,props:{text:"",autoSize:!0}}]).select(e),this.editor.setEditingShape(e),this.editor.setCurrentTool("select"),this.editor.root.getCurrent()?.transition("editing_shape")}cancel(){this.parent.transition("idle"),this.editor.bailToMark(this.markId)}}class eM extends m.nui{static id="text";static initial="idle";static children=()=>[eI,eT];shapeType="text"}function eA(){return(0,m.y6M)({isDarkMode:(0,m.Gv6)()})}let e$=E.memo(function({theme:e,d:t,color:n,fill:r}){switch(r){case"none":return null;case"solid":return(0,_.jsx)("path",{fill:e[n].semi,d:t});case"semi":return(0,_.jsx)("path",{fill:e.solid,d:t});case"pattern":return(0,_.jsx)(eD,{theme:e,color:n,fill:r,d:t})}}),eD=function({d:e,color:t,theme:n}){let r=(0,m.jE2)(),i=(0,m.HgN)("zoomLevel",()=>r.getZoomLevel(),[r]),o=.18>=r.getZoomLevel();return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)("path",{fill:n[t].pattern,d:e}),(0,_.jsx)("path",{fill:o?n[t].semi:`url(#${m.iFn[`${Math.ceil(i)}_${n.id}`]})`,d:e})]})};function eO({d:e,color:t,fill:n,theme:r}){if("none"===n)return;if("pattern"===n){let n=document.createElementNS("http://www.w3.org/2000/svg","g"),i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d",e),i.setAttribute("fill",r[t].pattern);let o=document.createElementNS("http://www.w3.org/2000/svg","path");return o.setAttribute("d",e),o.setAttribute("fill","url(#hash_pattern)"),n.appendChild(i),n.appendChild(o),n}let i=document.createElementNS("http://www.w3.org/2000/svg","path");switch(i.setAttribute("d",e),n){case"semi":i.setAttribute("fill",r.solid);break;case"solid":i.setAttribute("fill",r[t].semi)}return i}function eB(e,t){if(!t)return e;{let n=document.createElementNS("http://www.w3.org/2000/svg","g");return n.appendChild(t),n.appendChild(e),n}}
57function eL(e,t,n){let{padding:r=0}=n,i=document.createElementNS("http://www.w3.org/2000/svg","text");if(i.setAttribute("font-size",n.fontSize+"px"),i.setAttribute("font-family",n.fontFamily),i.setAttribute("font-style",n.fontStyle),i.setAttribute("font-weight",n.fontWeight),i.setAttribute("line-height",n.lineHeight*n.fontSize+"px"),i.setAttribute("dominant-baseline","mathematical"),i.setAttribute("alignment-baseline","mathematical"),0===t.length)return i;let o=m.xuv.From(t[0].box);for(let{box:e}of t)o.union(e);let s=r+(n.offsetX??0),a=(n.offsetY??0)+n.fontSize/2+("start"===n.verticalTextAlign?r:"end"===n.verticalTextAlign?n.height-r-o.height:(Math.ceil(n.height)-o.height)/2),l=null;for(let{text:e,box:n}of t){let t=null!==l&&n.y>l;if(t){let e=document.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttribute("alignment-baseline","mathematical"),e.setAttribute("x",s+"px"),e.setAttribute("y",n.y+a+"px"),e.textContent="\n",i.appendChild(e)}let r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttribute("alignment-baseline","mathematical"),r.setAttribute("x",n.x+s+"px"),r.setAttribute("y",n.y+a+"px");let o=e.replace(/\s/g,"\xa0");r.textContent=o,i.appendChild(r),l=n.y}return n.stroke&&n.strokeWidth&&(i.setAttribute("stroke",n.stroke),i.setAttribute("stroke-width",n.strokeWidth+"px")),n.fill&&i.setAttribute("fill",n.fill),i}function eR(e){return{key:`${m.Y8S.id}:${e}`,getElement:async()=>{let t=function(e){let t=m.p64[e];for(let e of document.fonts)if(t.includes(e.family))return e;return null}(e);if(!t)return null;let n=t.$$_url,r=t.$$_fontface;if(!n||!r)return null;let i=await (await fetch(n)).blob(),o=await new Promise((e,t)=>{let n=new FileReader;n.onload=()=>e(n.result),n.onerror=t,n.readAsDataURL(i)}),s=r.replace(n,o),a=document.createElementNS("http://www.w3.org/2000/svg","style");return a.textContent=s,a}}}function eN(e,t){return{key:`${m.Y8S.id}:${e}`,getElement:async()=>{if("pattern"!==e)return null;let n=8/12,r=document.createElement("div");return r.innerHTML=`
58				<svg>
59					<defs>
60						<mask id="hash_pattern_mask">
61							<rect x="0" y="0" width="8" height="8" fill="white" />
62							<g
63								strokeLinecap="round"
64								stroke="black"
65							>
66								<line x1="${1*n}" y1="${3*n}" x2="${3*n}" y2="${1*n}" />
67								<line x1="${5*n}" y1="${7*n}" x2="${7*n}" y2="${5*n}" />
68								<line x1="${9*n}" y1="${11*n}" x2="${11*n}" y2="${9*n}" />
69							</g>
70						</mask>
71						<pattern
72							id="hash_pattern"
73							width="8"
74							height="8"
75							patternUnits="userSpaceOnUse"
76						>
77							<rect x="0" y="0" width="8" height="8" fill="${t.solid}" mask="url(#hash_pattern_mask)" />
78						</pattern>
79					</defs>
80				</svg>
81			`,Array.from(r.querySelectorAll("defs > *"))}}}function ez(){return{key:`${m.Y8S.id}:pattern`,component:eZ}}let eF=(e,t,n)=>new Promise((r,i)=>{let o=8*t*e,s=document.createElement("canvas");s.width=o,s.height=o;let a=s.getContext("2d");if(!a)return;a.fillStyle=n?"#212529":"#f8f9fa",a.fillRect(0,0,o,o),a.globalCompositeOperation="destination-out",a.lineCap="round",a.lineWidth=1.25*t*e;let l=8/12,c=n=>n*t*e;a.beginPath(),a.moveTo(c(1*l),c(3*l)),a.lineTo(c(3*l),c(1*l)),a.moveTo(c(5*l),c(7*l)),a.lineTo(c(7*l),c(5*l)),a.moveTo(c(9*l),c(11*l)),a.lineTo(c(11*l),c(9*l)),a.stroke(),s.toBlob(e=>{!e||m.hR1.throwToBlob.get()?i():r(e)})}),eU=(e,t)=>{let n=document.createElement("canvas");n.width=e[0],n.height=e[1];let r=n.getContext("2d");return r?(t(r),n.toDataURL()):""},eH=()=>{let e=[];for(let t=1;t<=Math.ceil(m.sZM);t++){let n=eU([1,1],e=>{e.fillStyle=m.qit.lightMode.black.semi,e.fillRect(0,0,1,1)}),r=eU([1,1],e=>{e.fillStyle=m.qit.darkMode.black.semi,e.fillRect(0,0,1,1)});e.push({zoom:t,url:n,darkMode:!1}),e.push({zoom:t,url:r,darkMode:!0})}return e};function eZ(){let e=(0,m.jE2)(),t=(0,E.useRef)(null),{defs:n,isReady:r}=function(){let e=(0,m.jE2)(),t=e.getInstanceState().devicePixelRatio,[n,r]=(0,E.useState)(!1),i=(0,E.useMemo)(()=>eH(),[]),[o,s]=(0,E.useState)(i);(0,E.useEffect)(()=>{let e=[];for(let n=1;n<=Math.ceil(m.sZM);n++)e.push(eF(t,n,!1).then(e=>({zoom:n,url:URL.createObjectURL(e),darkMode:!1}))),e.push(eF(t,n,!0).then(e=>({zoom:n,url:URL.createObjectURL(e),darkMode:!0})));let n=!1;return Promise.all(e).then(e=>{n||(s(e),r(!0))}),()=>{n=!0,r(!1)}},[t]);let a=(0,_.jsx)(_.Fragment,{children:o.map(e=>{let t=e.zoom+(e.darkMode?"_dark":"_light");return(0,_.jsx)("pattern",{id:m.iFn[t],width:8,height:8,patternUnits:"userSpaceOnUse",children:(0,_.jsx)("image",{href:e.url,
81width:8,height:8})},t)})});return{defs:a,isReady:n}}();return(0,E.useEffect)(()=>{if(r&&e.environment.isSafari){let e=function e(t){return t.classList.contains("tl-html-layer")?t:t.parentElement?e(t.parentElement):null}(t.current);e&&requestAnimationFrame(()=>{e.style.display="none",requestAnimationFrame(()=>{e.style.display=""})})}},[e,r]),(0,_.jsx)("g",{ref:t,"data-testid":r?"ready-pattern-fill-defs":void 0,children:n})}function eV(e,t,n={}){let{closed:r=!1,snap:i=1,start:o="outset",end:s="outset",lengthRatio:a=2,style:l="dashed"}=n,c=0,d=0,u=1,h=0,p=0;switch(l){case"dashed":u=1,c=Math.min(t*a,e/4);break;case"dotted":c=t/(u=100);break;default:return{strokeDasharray:"none",strokeDashoffset:"none"}}return r||("outset"===o?(e+=c/2,p+=c/2):"skip"===o&&(e-=c,p-=c),"outset"===s?e+=c/2:"skip"!==s||(e-=c)),d=Math.floor(e/c/(2*u)),(d-=d%i)<3&&"dashed"===l?e/t<5?(c=e,d=1,h=0):(c=.333*e,h=.333*e):(c=e/(d=Math.max(d,3))/(2*u),r?(p=c/2,h=(e-d*c)/d):h=(e-d*c)/Math.max(1,d-1)),{strokeDasharray:[c,h].join(" "),strokeDashoffset:p.toString()}}let eK=new WeakMap;function eW(e,t){let n=eK.get(t);if(n)return n;let r=e.getArrowInfo(t),i=0,o=0,s=r.isStraight?new m.WN4({start:m.B08.From(r.start.point),end:m.B08.From(r.end.point)}):new m.uNM({center:m.B08.Cast(r.handleArc.center),radius:r.handleArc.radius,start:m.B08.Cast(r.start.point),end:m.B08.Cast(r.end.point),sweepFlag:r.bodyArc.sweepFlag,largeArcFlag:r.bodyArc.largeArcFlag});if(t.props.text.trim()){let n=s.bounds,{w:r,h:a}=e.textMeasure.measureText(t.props.text,{...V,fontFamily:X[t.props.font],fontSize:G[t.props.size],maxWidth:null});if(i=r,o=a,n.width>n.height){i=Math.max(Math.min(r,64),Math.min(n.width-64,r));let{w:s,h:a}=e.textMeasure.measureText(t.props.text,{...V,fontFamily:X[t.props.font],fontSize:G[t.props.size],maxWidth:i});i=s,o=a}if(i>16*G[t.props.size]){i=16*G[t.props.size];let{w:n,h:r}=e.textMeasure.measureText(t.props.text,{...V,fontFamily:X[t.props.font],fontSize:G[t.props.size],maxWidth:i});i=n,o=r}}let a=new m.B08(i,o).addScalar(8.5);return eK.set(t,a),a}function eY(e,t){let n=K[t.props.size],r=20+(n-K.s)*2+(n===K.xl?20:0);return r}function eG(e,t){let n;let r=[],i=e.getArrowInfo(t),o="none"!==i.start.arrowhead,s="none"!==i.end.arrowhead;if(i.isStraight){let r=function(e,t,n){let r=eW(e,t),i=eY(e,t),o=m.B08.Nudge(n.start.point,n.end.point,i),s=m.B08.Nudge(n.end.point,n.start.point,i),a=(0,m.qZQ)(o,s,m.xuv.FromCenter(n.middle,r).corners);if(!a||2!==a.length)return{start:.5,end:.5};let[l,c]=a;m.B08.Dist2(l,o)>m.B08.Dist2(c,o)&&([c,l]=a);let d=o.add(m.B08.Sub(n.middle,l)),u=s.add(m.B08.Sub(n.middle,c)),h=m.B08.Dist(n.start.point,d)/n.length,p=m.B08.Dist(n.start.point,u)/n.length;return{start:h,end:p}}(e,t,i),a=(0,m.uZ5)(t.props.labelPosition,o?r.start:0,s?r.end:1);a=a>=.48&&a<=.52?.5:a,n=m.B08.Lrp(i.start.point,i.end.point,a)}else{let a=function(e,t,n){let r=eW(e,t),i=eY(e,t),o=Math.sign(t.props.bend),s=i/n.handleArc.radius*o,a=m.B08.Angle(n.bodyArc.center,n.start.point)-s,l=m.B08.Angle(n.bodyArc.center,n.end.point)+s,c=(0,m.XDj)(n.bodyArc.center,n.bodyArc.radius,a),d=(0,m.XDj)(n.bodyArc.center,n.bodyArc.radius,l),u=[],h=eX(n.bodyArc.center,n.bodyArc.radius,a,l,o,m.xuv.FromCenter(c,r).corners);u.push(new m.wWH({points:m.xuv.FromCenter(c,r).corners,debugColor:"lime",isFilled:!1,ignore:!0}));let p=eX(n.bodyArc.center,n.bodyArc.radius,a,l,o,m.xuv.FromCenter(d,r).corners);for(let e of(u.push(new m.wWH({points:m.xuv.FromCenter(d,r).corners,debugColor:"lime",isFilled:!1,ignore:!0})),[...h??[],...p??[],c,d]))u.push(new m.EEY({x:e.x-3,y:e.y-3,radius:3,isFilled:!1,debugColor:"magenta",ignore:!0}));let f=(h&&eq(n.start.point,h))??n.middle,g=(p&&eq(n.end.point,p))??n.middle,y=m.B08.Angle(n.bodyArc.center,n.start.point),b=m.B08.Angle(n.bodyArc.center,n.end.point),x=m.B08.Angle(n.bodyArc.center,f),w=m.B08.Angle(n.bodyArc.center,g);if((0,m.mRm)(y,x,o)>(0,m.mRm)(y,w,o))return{start:.5,end:.5,dbg:u};let v=(0,m.mRm)(y,b,o),S=(0,m.mRm)(y,x,o)/v,k=(0,m.mRm)(y,w,o)/v;return{start:S,end:k,dbg:u}}(e,t,i);a.dbg&&r.push(...a.dbg);let l=(0,m.uZ5)(t.props.labelPosition,o?a.start:0,s?a.end:1);l=l>=.48&&l<=.52?.5:l;let c=function(e,t,n,r){let i=(0,m.mRm)(e,t,n);return e+-(i*r*n*1)}(m.B08.Angle(i.bodyArc.center,i.start.point),m.B08.Angle(i.bodyArc.center,i.end.point),Math.sign(t.props.bend),l);n=(0,m.XDj)(i.bodyArc.center,i.bodyArc.radius,c)}let a=eW(e,t);return{box:m.xuv.FromCenter(n,a),debugGeom:r}}function eX(e,t,n,r,i,o){let s=(0,m.h9x)(e,t,o),a=(0,m.mRm)(n,r,i);return s?.filter(t=>{let r=m.mRm(n,m.B08.Angle(e,t),i);return r>=0&&r<=a})}function eq(e,t){let n=null,r=-1/0;for(let i of t){let t=m.B08.Dist2(e,i);t>r&&(n=i,r=t)}return n}function eJ(e,t,n){let r="end"===t?e.end.arrowhead:e.start.arrowhead;if("none"===r)return;let i=function(e,t,n){let r;let i="end"===t?e.end.point:e.start.point,o="end"===t?e.start.point:e.end.point,s=e.isStraight?m.B08.Dist(o,i):Math.abs(e.bodyArc.length),a=Math.max(Math.min(s/5,3*n),n);if(e.isStraight)r=m.B08.Nudge(i,o,a);else{let n=(0,m.bOj)(i,a,e.handleArc.center,e.handleArc.radius);r="end"===t?e.handleArc.sweepFlag?n[0]:n[1]:e.handleArc.sweepFlag?n[1]:n[0]}return m.B08.IsNaN(r)&&(r=e.start.point),{point:i,int:r}}(e,t,n);if(i){switch(r){case"bar":return function({int:e,point:t}){let n=m.B08.Sub(e,t).div(2),r=m.B08.Add(t,m.B08.Rot(n,m.pjK)),i=m.B08.Sub(t,m.B08.Rot(n,m.pjK));return`M ${r.x} ${r.y} L ${i.x} ${i.y}`}(i);case"square":return function({int:e,point:t}){let n=m.B08.Lrp(t,e,.85),r=m.B08.Sub(n,t).div(2),i=m.B08.Add(t,m.B08.Rot(r,m.pjK)),o=m.B08.Sub(t,m.B08.Rot(r,m.pjK)),s=m.B08.Add(n,m.B08.Rot(r,m.pjK)),a=m.B08.Sub(n,m.B08.Rot(r,m.pjK));return`M ${i.x} ${i.y} L ${s.x} ${s.y} L ${a.x} ${a.y} L ${o.x} ${o.y} Z`}(i);case"diamond":return function({point:e,int:t}){let n=m.B08.Lrp(e,t,.75),r=m.B08.RotWith(n,e,m.PI/4),i=m.B08.RotWith(n,e,-m.PI/4),o=m.B08.Lrp(r,i,.5);return o.add(m.B08.Sub(o,e)),`M ${o.x} ${o.y} L ${r.x} ${r.y} ${e.x} ${e.y} L ${i.x} ${i.y} Z`}(i);case"dot":return function({point:e,int:t}){let n=m.B08.Lrp(e,t,.45),r=m.B08.Dist(n,e);return`M ${n.x-r},${n.y}
82  a ${r},${r} 0 1,0 ${2*r},0
83  a ${r},${r} 0 1,0 -${2*r},0 `}(i);case"inverted":return function({point:e,int:t}){let n=m.B08.Sub(t,e).div(2),r=m.B08.Add(e,m.B08.Rot(n,m.pjK)),i=m.B08.Sub(e,m.B08.Rot(n,m.pjK));return`M ${r.x} ${r.y} L ${t.x} ${t.y} L ${i.x} ${i.y} Z`}(i);case"arrow":return function({point:e,int:t}){let n=m.B08.RotWith(t,e,m.PI/6),r=m.B08.RotWith(t,e,-m.PI/6);return`M ${n.x} ${n.y} L ${e.x} ${e.y} L ${r.x} ${r.y}`}(i);case"triangle":return function({point:e,int:t}){let n=m.B08.RotWith(t,e,m.PI/6),r=m.B08.RotWith(t,e,-m.PI/6);return`M ${n.x} ${n.y} L ${e.x} ${e.y} L ${r.x} ${r.y} Z`}(i)}return""}}
83function eQ(e){let{start:t,end:n,bodyArc:{radius:r,largeArcFlag:i,sweepFlag:o}}=e;return`M${t.point.x},${t.point.y} A${r} ${r} 0 ${i} ${o} ${n.point.x},${n.point.y}`}function e0(e,t){return`M${e.x},${e.y}L${t.x},${t.y}`}function e1(e){return e0(e.start.point,e.end.point)}class e2{static insertTextFirefox(e,t){e.setRangeText(t,e.selectionStart||0,e.selectionEnd||0,"end"),e.dispatchEvent(new InputEvent("input",{data:t,inputType:"insertText",isComposing:!1}))}static insert(e,t){let n=e.ownerDocument,r=n.activeElement;r!==e&&e.focus(),n.execCommand("insertText",!1,t)||e2.insertTextFirefox(e,t),r===n.body?e.blur():r instanceof HTMLElement&&r!==e&&r.focus()}static set(e,t){e.select(),e2.insert(e,t)}static getSelection(e){let{selectionStart:t,selectionEnd:n}=e;return e.value.slice(t||void 0,n||void 0)}static wrapSelection(e,t,n){let{selectionStart:r,selectionEnd:i}=e,o=e2.getSelection(e);e2.insert(e,t+o+(n??t)),e.selectionStart=(r||0)+t.length,e.selectionEnd=(i||0)+t.length}static replace(e,t,n){let r=0;e.value.replace(t,(...t)=>{let i=r+t[t.length-2],o=t[0].length;e.selectionStart=i,e.selectionEnd=i+o;let s="string"==typeof n?n:n(...t);return e2.insert(e,s),e.selectionStart=i,r+=s.length-o,s})}static findLineEnd(e,t){let n=e.lastIndexOf("\n",t-1)+1;return"	"!==e.charAt(n)?t:n+1}static indent(e){let{selectionStart:t,selectionEnd:n,value:r}=e,i=r.slice(t,n),o=/\n/g.exec(i)?.length;if(o&&o>0){let i=r.lastIndexOf("\n",t-1)+1,o=e.value.slice(i,n-1),s=o.replace(/^|\n/g,"$&  "),a=s.length-o.length;e.setSelectionRange(i,n-1),e2.insert(e,s),e.setSelectionRange(t+1,n+a)}else e2.insert(e,"  ")}static unindent(e){let{selectionStart:t,selectionEnd:n,value:r}=e,i=r.lastIndexOf("\n",t-1)+1,o=e2.findLineEnd(r,n),s=e.value.slice(i,o),a=s.replace(/(^|\n)(\t| {1,2})/g,"$1"),l=s.length-a.length;e.setSelectionRange(i,o),e2.insert(e,a);let c=/\t| {1,2}/.exec(r.slice(i,t)),d=c?c[0].length:0,u=t-d;e.setSelectionRange(t-d,Math.max(u,n-l))}static indentCE(e){let t=window.getSelection(),n=e.innerText,r=e8(e)??0,i=e8(e)??0,o=n.slice(r,i),s=/\n/g.exec(o)?.length;if(s&&s>0){let o=n.lastIndexOf("\n",r-1)+1,s=n.slice(o,i-1),a=s.replace(/^|\n/g,"$&  "),l=a.length-s.length;t&&t.setBaseAndExtent(e,r+1,e,i+l)}else{let t=window.getSelection();e.innerText=n.slice(0,r)+"  "+n.slice(r),t?.setBaseAndExtent(e,r+1,e,r+2)}}static unindentCE(e){let t=window.getSelection(),n=e.innerText,r=e8(e)??0,i=e8(e)??0,o=n.lastIndexOf("\n",r-1)+1,s=e2.findLineEnd(n,i),a=n.slice(o,s),l=a.replace(/(^|\n)(\t| {1,2})/g,"$1"),c=a.length-l.length;if(t){t.setBaseAndExtent(e,o,e,s);let a=/\t| {1,2}/.exec(n.slice(o,r)),l=a?a[0].length:0,d=r-l;t.setBaseAndExtent(e,r-l,e,Math.max(d,i-c))}}static fixNewLines=/\r?\n|\r/g;static normalizeText(e){return e.replace(e2.fixNewLines,"\n")}static normalizeTextForDom(e){return e.replace(e2.fixNewLines,"\n").split("\n").map(e=>e||" ").join("\n")}}function e8(e){if(void 0===window.getSelection)return;let t=window.getSelection();if(!t)return;let n=0;if(0!==t.rangeCount){let r=t.getRangeAt(0),i=r.cloneRange();i.selectNodeContents(e),i.setEnd(r.endContainer,r.endOffset),n=i.toString().length}return n}function e3(e,t,n){let r=(0,m.jE2)(),i=(0,E.useRef)(null),o=(0,E.useRef)(!1),s=(0,E.useRef)(),a=(0,m.HgN)("isEditing",()=>r.getEditingShapeId()===e,[r,e]);(0,E.useEffect)(()=>{let e=i.current;e&&a&&document.activeElement!==e&&e.focus()},[a]);let l=(0,E.useCallback)(()=>
83{let t=o.current;o.current=!1,requestAnimationFrame(()=>{let n=i.current;if(!n)return;let o=r.getShape(e);o&&(n.value=o.props.text,n.value.length&&!t&&n.select())})},[r,e]),c=(0,E.useCallback)(()=>{let t=s.current;requestAnimationFrame(()=>{let n=i.current,s=r.getEditingShapeId();if(n&&s){if(s===e){if(t){if(t.length){o.current=!0,n.focus();let e=window.getSelection();e&&t.forEach(t=>e.addRange(t))}else n.focus()}else n.focus()}}else window.getSelection()?.removeAllRanges(),r.complete()})},[r,e]),d=(0,E.useCallback)(e=>{if(a)switch(e.key){case"Enter":(e.ctrlKey||e.metaKey)&&r.complete();break;case"Tab":(0,m.PFJ)(e),e.shiftKey?e2.unindent(e.currentTarget):e2.indent(e.currentTarget)}},[r,a]),u=(0,E.useCallback)(n=>{if(!a)return;let i=e2.normalizeText(n.currentTarget.value),o=i.replace(/\t/g,"  ");if(o!==i){let e=n.currentTarget.selectionStart;n.currentTarget.value=o,n.currentTarget.selectionStart=e+(o.length-i.length),n.currentTarget.selectionEnd=e+(o.length-i.length),i=o}r.updateShapes([{id:e,type:t,props:{text:i}}])},[r,e,t,a]),h=0===n.trim().length;(0,E.useEffect)(()=>{if(!a)return;let e=i.current;if(e){let e=function(){let e=window.getSelection?.();if(e&&"None"!==e.type){let t=[];if(e)for(let n=0;n<e.rangeCount;n++)t.push(e.getRangeAt?.(n));s.current=t}};return document.addEventListener("selectionchange",e),()=>{document.removeEventListener("selectionchange",e)}}},[a]);let p=(0,E.useCallback)(t=>{r.dispatch({...(0,m.YyG)(t),type:"pointer",name:"pointer_down",target:"shape",shape:r.getShape(e)}),(0,m.beA)(t)},[r,e]),f=m.beA;return{rInput:i,isEditing:a,handleFocus:l,handleBlur:c,handleKeyDown:d,handleChange:u,handleInputPointerDown:p,handleDoubleClick:f,isEmpty:h}}let e5=E.memo(function({id:e,text:t,size:n,font:r,position:i,width:o,labelColor:s}){let{rInput:a,isEditing:l,handleFocus:c,handleBlur:d,handleKeyDown:u,handleChange:h,isEmpty:p,handleInputPointerDown:f,handleDoubleClick:g}=e3(e,"arrow",t),y=e2.normalizeTextForDom(t),b=y.trim().length>0;return l||b?(0,_.jsx)("div",{className:"tl-arrow-label","data-font":r,"data-align":"center","data-hastext":!p,"data-isediting":l,style:{textAlign:"center",fontSize:G[n],lineHeight:G[n]*V.lineHeight+"px",transform:`translate(${i.x}px, ${i.y}px)`,color:s},children:(0,_.jsxs)("div",{className:"tl-arrow-label__inner",children:[(0,_.jsx)("p",{style:{width:o||"9px"},children:t?e2.normalizeTextForDom(t):" "}),l&&(0,_.jsx)("textarea",{ref:a,className:"tl-text tl-text-input",name:"text",tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,placeholder:"",spellCheck:"true",wrap:"off",dir:"auto",datatype:"wysiwyg",defaultValue:t,onFocus:c,onChange:h,onKeyDown:u,onBlur:d,onTouchEnd:m.beA,onContextMenu:m.beA,onPointerDown:f,onDoubleClick:g})]})}):null}),e4=0;var e6=((o=e6||{}).START="start",o.MIDDLE="middle",o.END="end",o);class e9 extends m.EeJ{static type="arrow";static props=m.si8;static migrations=m.VmQ;canEdit=()=>!0;canBind=()=>!1;canSnap=()=>!1;hideResizeHandles=()=>!0;hideRotateHandle=()=>!0;hideSelectionBoundsBg=()=>!0;hideSelectionBoundsFg=()=>!0;getDefaultProps(){return{dash:"draw",size:"m",fill:"none",color:"black",labelColor:"black",bend:0,start:{type:"point",x:0,y:0},end:{type:"point",x:2,y:0},arrowheadStart:"none",arrowheadEnd:"arrow",text:"",labelPosition:.5,font:"draw"}}getGeometry(e){let t;let n=this.editor.getArrowInfo(e),r=[],i=n.isStraight?new m.WN4({start:m.B08.From(n.start.point),end:m.B08.From(n.end.point)}):new m.uNM({center:m.B08.Cast(n.handleArc.center),radius:n.handleArc.radius,start:m.B08.Cast(n.start.point),end:m.B08.Cast(n.end.point),sweepFlag:n.bodyArc.sweepFlag,largeArcFlag:n.bodyArc.largeArcFlag});if(e.props.text.trim()){let n=eG(this.editor,e);r.push(...n.debugGeom),t=new m.zc7({x:n.box.x,y:n.box.y,width:n.box.w,height:n.box.h,isFilled:!0,isLabel:!0})}return new m.mqq({children:[...t?[i,t]:[i],...r]})}getLength(e){let t=this.editor.getArrowInfo(e);return t.isStraight?m.B08.Dist(t.start.handle,t.end.handle):Math.abs(t.handleArc.length)}getHandles(e){let t=this.editor.getArrowInfo(e);return[{id:"start",type:"vertex",index:"a0",x:t.start.handle.x,y:t.start.handle.y,canBind:!0},{id:"middle",type:"virtual",index:"a2",x:t.middle.x,y:t.middle.y,canBind:!1},{id:"end",type:"vertex",index:"a3",x:t.end.handle.x,y:t.end.handle.y,canBind:!0}
83].filter(Boolean)}onHandleDrag=(e,{handle:t,isPrecise:n})=>{let r=t.id;if("middle"===r){let{start:n,end:r}=(0,m.QsC)(this.editor,e),i=m.B08.Sub(r,n),o=m.B08.Per(i),s=m.B08.Med(r,n),a=m.B08.Sub(s,o),l=m.B08.Add(s,o),c=m.B08.NearestPointOnLineSegment(a,l,t,!1),d=m.B08.Dist(c,s);return m.B08.Clockwise(c,r,s)&&(d*=-1),{id:e.id,type:e.type,props:{bend:d}}}let i=(0,m.p$x)(e);if(this.editor.inputs.ctrlKey)return i.props[r]={type:"point",x:t.x,y:t.y},i;let o=this.editor.getShapePageTransform(e.id).applyToPoint(t),s=this.editor.getShapeAtPoint(o,{hitInside:!0,hitFrameInside:!0,margin:0,filter:e=>!e.isLocked&&this.editor.getShapeUtil(e).canBind(e)});if(!s)return i.props[r]={type:"point",x:t.x,y:t.y},i;let a=this.editor.getShapeGeometry(s),l=m.xuv.ZeroFix(a.bounds),c=this.editor.getShapePageTransform(i.id),d=c.applyToPoint(t),u=this.editor.getPointInShapeSpace(s,d),h=n;if(!h){let e=i.props[r];("point"===e.type||"binding"===e.type&&s.id!==e.boundShapeId)&&(h=.5>this.editor.inputs.pointerVelocity.len())}if(!n){a.isClosed||(h=!0);let e=i.props["start"===r?"end":"start"];"binding"===e.type&&s.id===e.boundShapeId&&e.isPrecise&&(h=!0)}let p={x:(u.x-l.minX)/l.width,y:(u.y-l.minY)/l.height};return h&&m.B08.Dist(u,l.center)<Math.max(4,Math.min(.15*Math.min(l.width,l.height),16))/this.editor.getZoomLevel()&&(p.x=.5,p.y=.5),i.props[r]={type:"binding",boundShapeId:s.id,normalizedAnchor:p,isPrecise:h,isExact:this.editor.inputs.altKey},"binding"===i.props.start.type&&"binding"===i.props.end.type&&i.props.start.boundShapeId===i.props.end.boundShapeId&&m.B08.Equals(i.props.start.normalizedAnchor,i.props.end.normalizedAnchor)&&(i.props.end.normalizedAnchor.x+=.05),i};onTranslateStart=e=>{let t="binding"===e.props.start.type?e.props.start.boundShapeId:null,n="binding"===e.props.end.type?e.props.end.boundShapeId:null,r=(0,m.QsC)(this.editor,e),i=this.editor.getShapePageTransform(e.id),o=this.editor.getSelectedShapeIds();if(t&&(o.includes(t)||this.editor.isAncestorSelected(t))||n&&(o.includes(n)||this.editor.isAncestorSelected(n)))return;let s=e;for(let t of(tt.set(e,{pagePosition:i.applyToPoint(e),terminalBindings:(0,m.FmS)(r,(t,n)=>{let r=e.props[t];return"binding"!==r.type?null:{binding:r,shapePosition:n,pagePosition:i.applyToPoint(n)}})}),["start","end"])){let n=e.props[t];"binding"===n.type&&(s={...e,props:{...e.props,[t]:{...n,isPrecise:!0}}})}return s};onTranslate=(e,t)=>
83{let n=tt.get(e);if(!n)return;let r=this.editor.getShapePageTransform(t.id),i=m.B08.Sub(r.applyToPoint(t),n.pagePosition),o=t;for(let[e,t]of(0,m.EPv)(n.terminalBindings)){if(!t)continue;let n=m.B08.Add(t.pagePosition,m.B08.Mul(i,.5)),r=this.editor.getShapeAtPoint(n,{hitInside:!0,hitFrameInside:!0,margin:0,filter:e=>!e.isLocked&&this.editor.getShapeUtil(e).canBind(e)});if(r?.id===t.binding.boundShapeId){let i=m.xuv.ZeroFix(this.editor.getShapeGeometry(r).bounds),s=this.editor.getPointInShapeSpace(r,n),a={x:(s.x-i.minX)/i.width,y:(s.y-i.minY)/i.height};o={...o,props:{...o.props,[e]:{...t.binding,isPrecise:!0,normalizedAnchor:a}}}}else o={...o,props:{...o.props,[e]:{type:"point",x:t.shapePosition.x,y:t.shapePosition.y}}}}return o};onResize=(e,t)=>{let{scaleX:n,scaleY:r}=t,i=(0,m.QsC)(this.editor,e),{start:o,end:s}=(0,m.p$x)(e.props),{bend:a}=e.props;"point"===o.type&&(o.x=i.start.x*n,o.y=i.start.y*r),"point"===s.type&&(s.x=i.end.x*n,s.y=i.end.y*r);let l=Math.abs(n),c=Math.abs(r);n<0&&r>=0?(0!==a&&(a*=-1*Math.max(l,c)),"binding"===o.type&&(o.normalizedAnchor.x=1-o.normalizedAnchor.x),"binding"===s.type&&(s.normalizedAnchor.x=1-s.normalizedAnchor.x)):n>=0&&r<0?(0!==a&&(a*=-1*Math.max(l,c)),"binding"===o.type&&(o.normalizedAnchor.y=1-o.normalizedAnchor.y),"binding"===s.type&&(s.normalizedAnchor.y=1-s.normalizedAnchor.y)):n>=0&&r>=0?0!==a&&(a*=Math.max(l,c)):n<0&&r<0&&(0!==a&&(a*=Math.max(l,c)),"binding"===o.type&&(o.normalizedAnchor.x=1-o.normalizedAnchor.x,o.normalizedAnchor.y=1-o.normalizedAnchor.y),"binding"===s.type&&(s.normalizedAnchor.x=1-s.normalizedAnchor.x,s.normalizedAnchor.y=1-s.normalizedAnchor.y));let d={props:{start:o,end:s,bend:a}};return d};onDoubleClickHandle=(e,t)=>{switch(t.id){case"start":return{id:e.id,type:e.type,props:{...e.props,arrowheadStart:"none"===e.props.arrowheadStart?"arrow":"none"}};case"end":return{id:e.id,type:e.type,props:{...e.props,arrowheadEnd:"none"===e.props.arrowheadEnd?"arrow":"none"}}}};component(e){let t=eA(),n=this.editor.getOnlySelectedShape(),r=this.editor.isInAny("select.idle","select.pointing_handle","select.dragging_handle","select.translating","arrow.dragging")&&!this.editor.getInstanceState().isReadonly,i=this.editor.getArrowInfo(e),o=m.xuv.ZeroFix(this.editor.getShapeGeometry(e).bounds),s=E.useMemo(()=>this.editor.environment.isSafari?e4+=1:0,[e]);if(!i?.isValid)return null;let a=K[e.props.size],l=i.start.arrowhead&&eJ(i,"start",a),c=i.end.arrowhead&&eJ(i,"end",a),d=i.isStraight?e1(i):eQ(i),u=null;if(n===e&&r){let{strokeDasharray:t,strokeDashoffset:n}=eV(this.getLength(e),2,{end:"skip",start:"skip",lengthRatio:2.5});u="binding"===e.props.start.type||"binding"===e.props.end.type?(0,_.jsx)("path",{className:"tl-arrow-hint",d:i.isStraight?e0(i.start.handle,i.end.handle):function(e){let{start:t,end:n,handleArc:{radius:r,largeArcFlag:i,sweepFlag:o}}=e;return`M${t.handle.x},${t.handle.y} A${r} ${r} 0 ${i} ${o} ${n.handle.x},${n.handle.y}`}(i),strokeDasharray:t,strokeDashoffset:n,strokeWidth:2,markerStart:"binding"===e.props.start.type?e.props.start.isExact?"":e.props.start.isPrecise?"url(#arrowhead-cross)":"url(#arrowhead-dot)":"",markerEnd:"binding"===e.props.end.type?e.props.end.isExact?"":e.props.end.isPrecise?"url(#arrowhead-cross)":"url(#arrowhead-dot)":"",opacity:.16}):null}let{strokeDasharray:h,strokeDashoffset:p}=eV(i.isStraight?i.length:Math.abs(i.bodyArc.length),a,{style:e.props.dash}),f=eG(this.editor,e),g=!("none"===i.start.arrowhead||"arrow"===i.start.arrowhead),y=!("none"===i.end.arrowhead||"arrow"===i.end.arrowhead),b=(e.id+"_clip_"+s).replace(":","_");return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(m.gkc,{id:e.id,style:{minWidth:50,minHeight:50},children:[(0,_.jsx)("defs",{children:(0,_.jsxs)("mask",{id:b,children:[(0,_.jsx)("rect",{x:(0,m.$ZD)(-100+o.minX),y:(0,m.$ZD)(-100+o.minY),width:(0,m.$ZD)(o.width+200),height:(0,m.$ZD)(o.height+200),fill:"white"}),e.props.text.trim()&&(0,_.jsx)("rect",{x:f.box.x,y:f.box.y,width:f.box.w,height:f.box.h,fill:"black",rx:4,ry:4}),l&&g&&(0,_.jsx)("path",{d:l,fill:"arrow"===i.start.arrowhead?"none":"black",stroke:"none"}),c&&y&&(0,_.jsx)("path",{d:c,fill:"arrow"===i.end.arrowhead?"none":"black",stroke:"none"})]})}),(0,_.jsxs)("g",{fill:"none",stroke:t[e.props.color].solid,strokeWidth:a,strokeLinejoin:"round",strokeLinecap:"round",pointerEvents:"none",children:[u,(0,_.jsxs)("g",{mask:`url(#${b})`,children:[(0,_.jsx)("rect",{x:(0,m.$ZD)(o.minX-100),y:(0,m.$ZD)(o.minY-100),width:(0,m.$ZD)(o.width+200),height:(0,m.$ZD)(o.height+200),opacity:0}
83),(0,_.jsx)("path",{d:d,strokeDasharray:h,strokeDashoffset:p})]}),l&&g&&"none"!==e.props.fill&&(0,_.jsx)(e$,{theme:t,d:l,color:e.props.color,fill:e.props.fill}),c&&y&&"none"!==e.props.fill&&(0,_.jsx)(e$,{theme:t,d:c,color:e.props.color,fill:e.props.fill}),l&&(0,_.jsx)("path",{d:l}),c&&(0,_.jsx)("path",{d:c})]})]}),(0,_.jsx)(e5,{id:e.id,text:e.props.text,font:e.props.font,size:e.props.size,position:f.box.center,width:f.box.w,labelColor:t[e.props.labelColor].solid})]})}indicator(e){let{start:t,end:n}=(0,m.QsC)(this.editor,e),r=this.editor.getArrowInfo(e),i=this.editor.getShapeGeometry(e),o=i.bounds,s=e.props.text.trim()?i.children[1]:null,a=(0,m.YzH)(e.id);if(!r||m.B08.Equals(t,n))return null;let l=K[e.props.size],c=r.start.arrowhead&&eJ(r,"start",l),d=r.end.arrowhead&&eJ(r,"end",l),u=r.isStraight?e1(r):eQ(r),h=c&&"arrow"!==r.start.arrowhead||d&&"arrow"!==r.end.arrowhead||!!s,p=(e.id+"_clip").replace(":","_");return a&&s?(0,_.jsx)("rect",{x:(0,m.$ZD)(s.x),y:(0,m.$ZD)(s.y),width:s.w,height:s.h,rx:3.5,ry:3.5}):(0,_.jsxs)("g",{children:[h&&(0,_.jsx)("defs",{children:(0,_.jsxs)("mask",{id:p,children:[(0,_.jsx)("rect",{x:o.minX-100,y:o.minY-100,width:o.w+200,height:o.h+200,fill:"white"}),s&&(0,_.jsx)("rect",{x:(0,m.$ZD)(s.x),y:(0,m.$ZD)(s.y),width:s.w,height:s.h,fill:"black",rx:3.5,ry:3.5}),c&&(0,_.jsx)("path",{d:c,fill:"arrow"===r.start.arrowhead?"none":"black",stroke:"none"}),d&&(0,_.jsx)("path",{d:d,fill:"arrow"===r.end.arrowhead?"none":"black",stroke:"none"})]})}),(0,_.jsxs)("g",{...h?{mask:`url(#${p})`}:void 0,children:[h&&(0,_.jsx)("rect",{x:o.minX-100,y:o.minY-100,width:o.width+200,height:o.height+200,opacity:0}),(0,_.jsx)("path",{d:u})]}),c&&(0,_.jsx)("path",{d:c}),d&&(0,_.jsx)("path",{d:d}),s&&(0,_.jsx)("rect",{x:(0,m.$ZD)(s.x),y:(0,m.$ZD)(s.y),width:s.w,height:s.h,rx:3.5,ry:3.5})]})}onEditEnd=e=>{let{id:t,type:n,props:{text:r}}=e;r.trimEnd()!==e.props.text&&this.editor.updateShapes([{id:t,type:n,props:{text:r.trimEnd()}}])};toSvg(e,t){let n=(0,m.y6M)({isDarkMode:t.isDarkMode});t.addExportDef(eN(e.props.fill,n));let r=n[e.props.color].solid,i=this.editor.getArrowInfo(e),o=K[e.props.size],s=document.createElementNS("http://www.w3.org/2000/svg","g");if(!i)return s;let a=i.start.arrowhead&&eJ(i,"start",o),l=i.end.arrowhead&&eJ(i,"end",o),c=this.editor.getShapeGeometry(e),d=c.bounds,u=e.props.text.trim()?c.children[1]:null,h=(e.id+"_clip").replace(":","_");if(a||l||u){let e=document.createElementNS("http://www.w3.org/2000/svg","defs"),t=document.createElementNS("http://www.w3.org/2000/svg","mask");t.id=h;let n=document.createElementNS("http://www.w3.org/2000/svg","rect");if(n.setAttribute("x",d.minX-100+""),n.setAttribute("y",d.minY-100+""),n.setAttribute("width",d.width+200+""),n.setAttribute("height",d.height+200+""),n.setAttribute("fill","white"),t.appendChild(n),a&&t.appendChild(e7(a,i.start.arrowhead)),l&&t.appendChild(e7(l,i.end.arrowhead)),u){let e=document.createElementNS("http://www.w3.org/2000/svg","rect");e.setAttribute("x",u.x+""),e.setAttribute("y",u.y+""),e.setAttribute("width",u.w+""),e.setAttribute("height",u.h+""),e.setAttribute("fill","black"),t.appendChild(e)}e.appendChild(t),s.appendChild(e)}let p=document.createElementNS("http://www.w3.org/2000/svg","g");p.setAttribute("mask",`url(#${h})`),s.appendChild(p);let f=document.createElementNS("http://www.w3.org/2000/svg","rect");f.setAttribute("x","-100"),f.setAttribute("y","-100"),f.setAttribute("width",d.width+200+""),f.setAttribute("height",d.height+200+""),f.setAttribute("fill","transparent"),f.setAttribute("stroke","none"),p.appendChild(f);let g=function(e,t,n){let r=document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",e),r.setAttribute("fill","none"),r.setAttribute("stroke",t),r.setAttribute("stroke-width",n+""),r}(i.isStraight?e1(i):eQ(i),r,o),{strokeDasharray:y,strokeDashoffset:b}=eV(i.isStraight?i.length:Math.abs(i.bodyArc.length),o,{style:e.props.dash});if(g.setAttribute("stroke-dasharray",y),g.setAttribute("stroke-dashoffset",b),p.appendChild(g),a&&s.appendChild(te(a,e.props.color,o,"arrow"===e.props.arrowheadStart?"none":e.props.fill,n)),l&&s.appendChild(te(l,e.props.color,o,"arrow"===e.props.arrowheadEnd?"none":e.props.fill,n)),u){t.addExportDef(eR(e.props.font));let r={fontSize:G[e.props.size],lineHeight:V.lineHeight,fontFamily:m.p64[e.props.font],padding:0,textAlign:"middle",width:u.w-8,verticalTextAlign:"middle",height:u.h,fontStyle:"normal",fontWeight:"normal",overflow:"wrap"},i=eL(this.editor,this.editor.textMeasure.measureTextSpans(e.props.text,r),r);i.setAttribute("fill",n[e.props.labelColor].solid);let o=Array.from(i.children);
83o.forEach(e=>{let t=parseFloat(e.getAttribute("x")||"0"),n=parseFloat(e.getAttribute("y")||"0");e.setAttribute("x",t+4+u.x+"px"),e.setAttribute("y",n+u.y+"px")});let a=i.cloneNode(!0);a.setAttribute("stroke-width","2"),a.setAttribute("fill",n.background),a.setAttribute("stroke",n.background),s.appendChild(a),s.appendChild(i)}return s}getCanvasSvgDefs(){return[ez()]}}function e7(e,t){let n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",e),n.setAttribute("fill","arrow"===t?"none":"black"),n.setAttribute("stroke","none"),n}function te(e,t,n,r,i){let o=document.createElementNS("http://www.w3.org/2000/svg","path");o.setAttribute("d",e),o.setAttribute("fill","none"),o.setAttribute("stroke",i[t].solid),o.setAttribute("stroke-width",n+"");let s=eO({d:e,fill:r,color:t,theme:i});if(!s)return o;{let e=document.createElementNS("http://www.w3.org/2000/svg","g");return e.appendChild(s),e.appendChild(o),e}}let tt=new WeakMap,tn=(e,t)=>e.length<=t?e:e.substring(0,t-3)+"...",tr="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' fill='none'%3E%3Cpath stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13 5H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6M19 5h6m0 0v6m0-6L13 17'/%3E%3C/svg%3E";function ti({url:e,zoomLevel:t}){return(0,_.jsx)("a",{className:T("tl-hyperlink-button",{"tl-hyperlink-button__hidden":t<.32}),href:e,target:"_blank",rel:"noopener noreferrer",onPointerDown:m.beA,onPointerUp:m.beA,title:e,draggable:!1,children:(0,_.jsx)("div",{className:"tl-hyperlink-button__icon",style:{mask:`url("${tr}") center 100% / 100% no-repeat`,WebkitMask:`url("${tr}") center 100% / 100% no-repeat`}})})}let to=[{offsetX:0,offsetY:2,blur:4,spread:0,color:"#00000029"},{offsetX:0,offsetY:3,blur:6,spread:0,color:"#0000001f"}];function ts(e){let t=to.map(t=>{let{offsetX:n,offsetY:r,blur:i,spread:o,color:s}=t,a=new m.B08(n,r),{x:l,y:c}=a.rot(-e);return`${l}px ${c}px ${i}px ${o}px ${s}`});return t.join(", ")}class ta extends m.StR{static type="bookmark";static props=m.qU;static migrations=m.h9n;canResize=()=>!1;hideSelectionBoundsFg=()=>!0;getDefaultProps(){return{url:"",w:300,h:320,assetId:null}}component(e){let t=e.props.assetId?this.editor.getAsset(e.props.assetId):null,n=this.editor.getShapePageTransform(e).rotation(),r=tl(e);return(0,_.jsx)(m.G7H,{children:(0,_.jsxs)("div",{className:"tl-bookmark__container",style:{boxShadow:ts(n)},children:[(0,_.jsxs)("div",{className:"tl-bookmark__image_container",children:[t?.props.image?(0,_.jsx)("img",{className:"tl-bookmark__image",draggable:!1,src:t?.props.image,alt:t?.props.title||""}):(0,_.jsx)("div",{className:"tl-bookmark__placeholder"}),(0,_.jsx)(ti,{url:e.props.url,zoomLevel:this.editor.getZoomLevel()})]}),(0,_.jsxs)("div",{className:"tl-bookmark__copy_container",children:[t?.props.title&&(0,_.jsx)("h2",{className:"tl-bookmark__heading",children:tn(t?.props.title||"",54)}),t?.props.description&&(0,_.jsx)("p",{className:"tl-bookmark__description",children:tn(t?.props.description||"",128)}),(0,_.jsx)("a",{className:"tl-bookmark__link",href:e.props.url||"",target:"_blank",rel:"noopener noreferrer",onPointerDown:m.beA,onPointerUp:m.beA,onClick:m.beA,children:tn(r,45)})]})]})})}indicator(e){return(0,_.jsx)("rect",{width:(0,m.$ZD)(e.props.w),height:(0,m.$ZD)(e.props.h),rx:"6",ry:"6"})}onBeforeCreate=e=>{tc(this.editor,e)};onBeforeUpdate=(e,t)=>{if(e.props.url!==t.props.url){if(!m.T.linkUrl.isValid(t.props.url))return{...t,props:{...t.props,url:e.props.url}};tc(this.editor,t)}}}let tl=e=>{try{let t=new URL(e.props.url),n=t.pathname.replace(/\/*$/,"");return`${t.hostname}${n}`}catch(t){return e.props.url}};function tc(e,t){let{url:n}=t.props,r=m.Ykc.createId((0,m.jKo)(n));e.getAsset(r)?t.props.assetId!==r&&e.updateShapes([{id:t.id,type:t.type,props:{assetId:r}}]):(e.updateShapes([{id:t.id,type:t.type,props:{assetId:null}}]),td(e,t))}let td=(0,m.DsO)(async(e,t)=>{let{url:n}=t.props,r=await e.getAssetForExternalContent({type:"url",url:n});r&&e.batch(()=>{e.createAssets([r]),e.updateShapes([{id:t.id,type:t.type,props:{assetId:r.id}}])})},500);function tu(e,t=!1){let n=e.length;if(n<2)return"";let r=e[0].point,i=e[1].point;if(2===n)return`M${(0,m.Yku)(r)}L${(0,m.Yku)(i)}`;let o="";for(let t=2,s=n-1;t<s;t++)r=e[t].point,i=e[t+1].point,o+=(0,m.Y8W)(r,i);return t?`M${(0,m.Y8W)(e[0].point,e[1].point)}Q${(0,m.Yku)(e[1].point)}${(0,m.Y8W)(e[1].point,e[2].point)}T${o}${(0,m.Y8W)(e[n-1].point,e[0].point)}${(0,m.Y8W)(e[0].point,e[1].point)}Z`:`M${(0,m.Yku)(e[0].point)}Q${(0,m.Yku)(e[1].point)}${(0,m.Y8W)(e[1].point,e[2].point)}${e.length>3?"T":""}${o}L${(0,m.Yku)(e[n-1].point)}`}function th(e){let t=e[0];for(;e.length>2;){let n=e[1],r=m.B08.Dist(t.point,n.point),i=(t.radius+n.radius)/2;if(r<.5*i)e.splice(1,1);else break}let n=e[e.length-1];for(;e.length>2;){let t=e[e.length-2],r=m.B08.Dist(n.point,t.point),i=(n.radius+t.radius)/2;if(r<.5*i)e.splice(e.length-2,1);else break}return e.length>1&&(e[0]={...e[0],vector:m.B08.FromAngle(m.B08.Angle(e[1].point,e[0].point))},e[e.length-1]={...e[e.length-1],vector:m.B08.FromAngle(m.B08.Angle(e[e.length-1].point,e[e.length-2].point))}),e}function tp(){let e=(0,m.jE2)();return(0,m.HgN)("zoom",()=>.35>e.getZoomLevel(),[e])}let tf=e=>.65*e+.35*(0,m.dvh)(e*m.PI/2),tg=e=>({size:1+e,thinning:.5,streamline:.62+(1+e)/8*.06,smoothing:.62,easing:m.Ljl.easeOutSine,simulatePressure:!0}),tm=e=>({size:1+1.2*e,thinning:.62,streamline:.62,smoothing:.62,simulatePressure:!1,easing:tf}),ty=e=>({size:1+e,thinning:0,streamline:.62+(1+e)/8*.06,smoothing:.62,simulatePressure:!1,easing:m.Ljl.linear});function tb({strokeWidth:e,showAsComplete:t}){return{size:1+e,thinning:0,streamline:.5,smoothing:.5,simulatePressure:!1,easing:m.Ljl.easeOutSine,last:t}}function tx(e,t,n,r){return{...r?ty(t):"draw"===e.dash?e.isPen?tm(t):tg(t):ty(t),last:e.isComplete||n}}function tw(e){let t=[];for(let n of e)if("free"===n.type||n.points.length<2)t.push(...n.points.map(m.B08.Cast));else{let e=Math.max(4,Math.floor(m.B08.Dist(n.points[0],n.points[1])/16));t.push(...m.B08.PointsBetween(n.points[0],n.points[1],e))}return t}function tv(e,t){return({draw:"none",solid:"none",dotted:`0.1 ${2*t}`,dashed:`${2*t} ${2*t}`})[e.props.dash]}class tS extends m.EeJ{static type="draw";static props=m.wu8;static migrations=m._l9;hideResizeHandles=e=>tj(e);hideRotateHandle=e=>tj(e);
83hideSelectionBoundsFg=e=>tj(e);getDefaultProps(){return{segments:[],color:"black",fill:"none",dash:"draw",size:"m",isComplete:!1,isClosed:!1,isPen:!1}}getGeometry(e){let t=tw(e.props.segments),n=K[e.props.size];if(1===e.props.segments.length){let e=m.xuv.FromPoints(t);if(e.width<2*n&&e.height<2*n)return new m.EEY({x:-n,y:-n,radius:n,isFilled:!0})}let r=O(t,tx(e.props,n,!0,!0)).map(e=>e.point);return e.props.isClosed?new m.wWH({points:r,isFilled:"none"!==e.props.fill}):new m.qvd({points:r})}component(e){let t=eA(),n=tp(),r=K[e.props.size],i=tw(e.props.segments),o=e.props.isComplete||m.Z$Q(e.props.segments)?.type==="straight",s=r;n||e.props.isPen||"draw"!==e.props.dash||1!==i.length||(s+=(0,m.Vkp)(e.id)()*(r/6));let a=tx(e.props,s,o,n);if(!n&&"draw"===e.props.dash)return(0,_.jsxs)(m.gkc,{id:e.id,children:[e.props.isClosed&&e.props.fill&&i.length>1?(0,_.jsx)(e$,{theme:t,fill:e.props.isClosed?e.props.fill:"none",color:e.props.color,d:tu(O(i,a),e.props.isClosed)}):null,(0,_.jsx)("path",{d:function(e,t={}){let{start:n={},end:r={}}=t,{cap:i=!0}=n,{cap:o=!0}=r;(0,m.hu8)(!n.taper&&!r.taper,"cap taper not supported here"),(0,m.hu8)(!n.easing&&!r.easing,"cap easing not supported here"),(0,m.hu8)(i&&o,"cap must be true");let s=O(e,t);L(s,t);let a=function(e){if(e.length<=2)return[e];let t=[],n=[e[0]];for(let r=1;r<e.length-1;r++){let i=e[r-1],o=e[r],s=e[r+1],a=m.B08.Angle(i.point,o.point),l=m.B08.Angle(o.point,s.point),c=Math.abs((0,m.Z7n)(a,l))/Math.PI;if(c>.8){let e={...o,point:o.input};n.push(e),t.push(th(n)),n=[e];continue}if(n.push(o),c<.25)continue;let d=(i.radius+o.radius+s.radius)/3,u=m.B08.Dist(i.point,o.point)/d,h=m.B08.Dist(o.point,s.point)/d,p=u+h;if(p<1.5){n.push(o),t.push(th(n)),n=[o];continue}}return n.push(e[e.length-1]),t.push(th(n)),t}(s),l="";for(let e of a)l+=function(e,t={}){if(0===e.length)return"";if(1===e.length){var n;return"M "+e[0].point.x+" "+e[0].point.y+" m -"+(n=e[0].radius)+", 0 a "+n+","+n+" 0 1,1 "+2*n+",0 a "+n+","+n+" 0 1,1 -"+2*n+",0"}let{left:r,right:i}=$(e,t);i.reverse();let o=`M${(0,m.Yku)(r[0])}T`;for(let e=1;e<r.length;e++)o+=(0,m.Y8W)(r[e-1],r[e]);{let t=e[e.length-1],n=t.radius,r=t.vector.clone().per().neg(),i=m.B08.Add(t.point,m.B08.Mul(r,n)),s=m.B08.Add(t.point,m.B08.Mul(r,-n));o+=`${(0,m.Yku)(i)}A${(0,m.$ZD)(n)},${(0,m.$ZD)(n)} 0 0 1 ${(0,m.Yku)(s)}T`}for(let e=1;e<i.length;e++)o+=(0,m.Y8W)(i[e-1],i[e]);{let t=e[0],n=t.radius,r=t.vector.clone().per(),i=m.B08.Add(t.point,m.B08.Mul(r,n)),s=m.B08.Add(t.point,m.B08.Mul(r,-n));o+=`${(0,m.Yku)(i)}A${(0,m.$ZD)(n)},${(0,m.$ZD)(n)} 0 0 1 ${(0,m.Yku)(s)}Z`}return o}(e,t);return l}(i,a),strokeLinecap:"round",fill:t[e.props.color].solid})]});let l=O(i,a),c=l.length<2,d=c?tk(i[0],0):tu(l,e.props.isClosed);return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(e$,{theme:t,color:e.props.color,fill:c||e.props.isClosed?e.props.fill:"none",d:d}),(0,_.jsx)("path",{d:d,strokeLinecap:"round",fill:c?t[e.props.color].solid:"none",stroke:t[e.props.color].solid,strokeWidth:r,strokeDasharray:c?"none":tv(e,r),strokeDashoffset:"0"})]})}indicator(e){let t=tp(),n=K[e.props.size],r=tw(e.props.segments),i=n;t||e.props.isPen||"draw"!==e.props.dash||1!==r.length||(i+=(0,m.Vkp)(e.id)()*(n/6));let o=e.props.isComplete||m.Z$Q(e.props.segments)?.type==="straight",s=tx(e.props,i,o,!0),a=O(r,s),l=a.length>1?tu(a,e.props.isClosed):tk(r[0],i);return(0,_.jsx)("path",{d:l})}toSvg(e,t){let n;let r=(0,m.y6M)({isDarkMode:t.isDarkMode});t.addExportDef(eN(e.props.fill,r));let{color:i}=e.props,o=K[e.props.size],s=tw(e.props.segments),a=e.props.isComplete||m.Z$Q(e.props.segments)?.type==="straight",l=o;e.props.isPen||"draw"!==e.props.dash||1!==s.length||(l+=(0,m.Vkp)(e.id)()*(o/6));let c=tx(e.props,l,a,!1),d=O(s,c),u=d.length>1?tu(d,e.props.isClosed):tk(s[0],l);if("draw"===e.props.dash||d.length<2){L(d,c);let e=D(d,c),t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",(0,m.RKM)(e,!0)),t.setAttribute("fill",r[i].solid),t.setAttribute("stroke-linecap","round"),n=t}else{let t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",u),t.setAttribute("stroke",r[i].solid),t.setAttribute("fill","none"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-width",o.toString()),t.setAttribute("stroke-dasharray",tv(e,o)),t.setAttribute("stroke-dashoffset","0"),n=t}let h=eO({fill:e.props.isClosed?e.props.fill:"none",d:u,color:e.props.color,theme:r});if(h){let e=document.createElementNS("http://www.w3.org/2000/svg","g");return e.appendChild(h),e.appendChild(n),e}return n}getCanvasSvgDefs(){return[ez()]}onResize=(e,t)=>
83{let{scaleX:n,scaleY:r}=t,i=[];for(let t of e.props.segments)i.push({...t,points:t.points.map(({x:e,y:t,z:i})=>({x:(0,m.FHy)(n*e),y:(0,m.FHy)(r*t),z:i}))});return{props:{segments:i}}};expandSelectionOutlinePx(e){let t="draw"===e.props.dash?1.6:1;return K[e.props.size]*t/2}}function tk(e,t){let n=(t+1)*.5;return`M ${e.x} ${e.y} m -${n}, 0 a ${n},${n} 0 1,0 ${2*n},0 a ${n},${n} 0 1,0 -${2*n},0`}function tj(e){return 1===e.props.segments.length&&e.props.segments[0].points.length<2}let t_=e=>Object.entries(e).filter(([e,t])=>t).map(([e])=>e).join(" ");class tE extends m.StR{static type="embed";static props=m.DWN;static migrations=m.BF8;hideSelectionBoundsFg=e=>!this.canResize(e);canEdit=()=>!0;canUnmount=e=>!!ey(e.props.url)?.definition?.canUnmount;canResize=e=>!!ey(e.props.url)?.definition?.doesResize;canEditInReadOnly=()=>!0;getDefaultProps(){return{w:300,h:300,url:""}}isAspectRatioLocked=e=>{let t=ey(e.props.url);return t?.definition.isAspectRatioLocked??!1};onResize=(e,t)=>{let n=this.isAspectRatioLocked(e),r=ey(e.props.url),i=r?.definition.minWidth??200,o=r?.definition.minHeight??200;if(n){let t=e.props.w/e.props.h;t>1?i*=t:o/=t}return function(e,t,n={}){let{newPoint:r,handle:i,scaleX:o,scaleY:s}=t,{minWidth:a=1,maxWidth:l=1/0,minHeight:c=1,maxHeight:d=1/0}=n,u=e.props.w*o,h=e.props.h*s,p=new m.B08(0,0);if(u>0){if(u<a){switch(i){case"top_left":case"left":case"bottom_left":p.x=u-a;break;case"top":case"bottom":p.x=(u-a)/2;break;default:p.x=0}u=a}}else if(p.x=u,(u=-u)<a){switch(i){case"top_left":case"left":case"bottom_left":p.x=-u;break;default:p.x=-a}u=a}if(h>0){if(h<c){switch(i){case"top_left":case"top":case"top_right":p.y=h-c;break;case"right":case"left":p.y=(h-c)/2;break;default:p.y=0}h=c}}else if(p.y=h,(h=-h)<c){switch(i){case"top_left":case"top":case"top_right":p.y=-h;break;default:p.y=-c}h=c}let{x:f,y:g}=p.rot(e.rotation).add(r);return{x:f,y:g,props:{w:Math.min(l,u),h:Math.min(d,h)}}}(e,t,{minWidth:i,minHeight:o})};component(e){let{w:t,h:n,url:r}=e.props,i=(0,m.YzH)(e.id),o=(0,E.useMemo)(()=>em(r),[r]),s=(0,m.HgN)("is hovering",()=>{let{editingShapeId:e,hoveredShapeId:t}=this.editor.getCurrentPageState();if(e&&t!==e){let t=this.editor.getShape(e);if(t&&this.editor.isShapeOfType(t,"embed"))return!0}return!1},[]),a=this.editor.getShapePageTransform(e).rotation(),l=i||s;if(o?.definition.type==="github_gist"){let r=o.url.split("/").pop();if(!r)throw Error("No gist id!");return(0,_.jsx)(m.G7H,{className:"tl-embed-container",id:e.id,children:(0,_.jsx)(tC,{id:r,width:(0,m.$ZD)(t),height:(0,m.$ZD)(n),isInteractive:l,pageRotation:a})})}let c=t_({...m.gBS,...o?.definition.overridePermissions??{}});return(0,_.jsx)(m.G7H,{className:"tl-embed-container",id:e.id,children:o?.definition?(0,_.jsx)("iframe",{className:"tl-embed",sandbox:c,src:o.embedUrl,width:(0,m.$ZD)(t),height:(0,m.$ZD)(n),draggable:!1,frameBorder:"0",referrerPolicy:"no-referrer-when-downgrade",style:{border:0,pointerEvents:l?"auto":"none",zIndex:l?"":"-1",boxShadow:ts(a),borderRadius:o?.definition.overrideOutlineRadius??8,background:o?.definition.backgroundColor}}):null})}indicator(e){let t=(0,E.useMemo)(()=>ey(e.props.url),[e.props.url]);return(0,_.jsx)("rect",{width:(0,m.$ZD)(e.props.w),height:(0,m.$ZD)(e.props.h),rx:t?.definition.overrideOutlineRadius??8,ry:t?.definition.overrideOutlineRadius??8})}}function tC({id:e,file:t,isInteractive:n,width:r,height:i,style:o,pageRotation:s}){return(0,_.jsx)("iframe",{className:"tl-embed",draggable:!1,width:(0,m.$ZD)(r),height:(0,m.$ZD)(i),frameBorder:"0",scrolling:"no",seamless:!0,referrerPolicy:"no-referrer-when-downgrade",style:{...o,pointerEvents:n?"all":"none",zIndex:n?"":"-1",boxShadow:ts(s)},srcDoc:`
84			<html>
85				<head>
86					<base target="_blank">
87				</head>
88				<body>
89					<script src=https://gist.github.com/${e}.js${t?`?file=${t}`:""}></script>
90					<style type="text/css">
91						* { margin: 0px; }
92						table { height: 100%; background-color: red; }
93						.gist { background-color: none; height: 100%;  }
94						.gist .gist-file { height: calc(100vh - 2px); padding: 0px; display: grid; grid-template-rows: 1fr auto; }
95					</style>
96				</body>
97			</html>`})}let tP=(0,E.forwardRef)(({id:e,name:t,isEditing:n},r)=>{let i=(0,m.jE2)(),o=(0,E.useCallback)(e=>{"Enter"!==e.key||e.nativeEvent.isComposing||((0,m.beA)(e),e.currentTarget.blur(),i.setEditingShape(null))},[i]),s=(0,E.useCallback)(t=>{let n=i.getShape(e);if(!n)return;let r=n.props.name,o=t.currentTarget.value.trim();r!==o&&i.updateShapes([{id:e,type:"frame",props:{name:o}}],{squashing:!0})},[e,i]),a=(0,E.useCallback)(t=>{let n=i.getShape(e);if(!n)return;let r=n.props.name,o=t.currentTarget.value;r!==o&&i.updateShapes([{id:e,type:"frame",props:{name:o}}],{squashing:!0})},[e,i]);return(0,_.jsxs)("div",{className:`tl-frame-label ${n?"tl-frame-label__editing":""}`,children:[(0,_.jsx)("input",{className:"tl-frame-name-input",ref:r,style:{display:n?void 0:"none"}
97,value:t,autoFocus:!0,onKeyDown:o,onBlur:s,onChange:a}),tT(t,"Frame")+String.fromCharCode(8203)]})}),tI=function({id:e,name:t,width:n,height:r}){let i;let o=(0,m.jE2)(),s=(0,m.HgN)("shape rotation",()=>(0,m.f5g)(o.getShapePageTransform(e).rotation()),[o,e]),a=(0,m.YzH)(e),l=(0,E.useRef)(null),c=(0,E.useCallback)(t=>{let n=(0,m.YyG)(t);o.getEditingShapeId()!==e&&(o.dispatch({type:"pointer",name:"pointer_down",target:"shape",shape:o.getShape(e),...n}),t.preventDefault())},[o,e]);(0,E.useEffect)(()=>{let e=l.current;e&&a&&(e.focus(),e.select(),requestAnimationFrame(()=>{document.activeElement!==e&&(e.focus(),e.select())}))},[l,a]);let d=["top","left","bottom","right"][Math.floor(((s+Math.PI/4)*(2/Math.PI)+4)%4)];switch(d){case"top":i="";break;case"right":i=`translate(${(0,m.$ZD)(n)}px, 0px) rotate(90deg)`;break;case"bottom":i=`translate(${(0,m.$ZD)(n)}px, ${(0,m.$ZD)(r)}px) rotate(180deg)`;break;case"left":i=`translate(0px, ${(0,m.$ZD)(r)}px) rotate(270deg)`}return(0,_.jsx)("div",{className:"tl-frame-heading",style:{overflow:a?"visible":"hidden",maxWidth:`calc(var(--tl-zoom) * ${"top"===d||"bottom"===d?Math.ceil(n):Math.ceil(r)}px + var(--space-5))`,bottom:"100%",transform:`${i} scale(var(--tl-scale)) translateX(calc(-1 * var(--space-3))`},onPointerDown:c,children:(0,_.jsx)("div",{className:"tl-frame-heading-hit-area",children:(0,_.jsx)(tP,{ref:l,id:e,name:t,isEditing:a})})})};function tT(e,t){return e.match(/^\s*$/)?t:e}class tM extends m.StR{static type="frame";static props=m.k7F;static migrations=m.gRP;canBind=()=>!0;canEdit=()=>!0;getDefaultProps(){return{w:320,h:180,name:""}}getGeometry(e){return new m.zc7({width:e.props.w,height:e.props.h,isFilled:!1})}component(e){let t=this.editor.getShapeGeometry(e).bounds,n=eA(),r=(0,m.HgN)("is creating this shape",()=>{let t=this.editor.getStateDescendant("select.resizing");if(!t||!t.getIsActive())return!1;let n=t?.info;return!!n&&n.isCreating&&this.editor.getOnlySelectedShape()?.id===e.id},[e.id]);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(m.gkc,{children:(0,_.jsx)("rect",{className:T("tl-frame__body",{"tl-frame__creating":r}),width:t.width,height:t.height,fill:n.solid,stroke:n.text})}),r?null:(0,_.jsx)(tI,{id:e.id,name:e.props.name,width:t.width,height:t.height})]})}toSvg(e,t){let n;let r=(0,m.y6M)({isDarkMode:t.isDarkMode}),i=document.createElementNS("http://www.w3.org/2000/svg","g"),o=document.createElementNS("http://www.w3.org/2000/svg","rect");o.setAttribute("width",e.props.w.toString()),o.setAttribute("height",e.props.h.toString()),o.setAttribute("fill",r.solid),o.setAttribute("stroke",r.black.solid),o.setAttribute("stroke-width","1"),o.setAttribute("rx","1"),o.setAttribute("ry","1"),i.appendChild(o);let s=(0,m.f5g)(this.editor.getShapePageTransform(e.id).rotation()),a=["top","left","bottom","right"][Math.floor(((s+Math.PI/4)*(2/Math.PI)+4)%4)];switch(a){case"top":default:n="";break;case"right":n=`translate(${(0,m.$ZD)(e.props.w)}px, 0px) rotate(90deg)`;break;case"bottom":n=`translate(${(0,m.$ZD)(e.props.w)}px, ${(0,m.$ZD)(e.props.h)}px) rotate(180deg)`;break;case"left":n=`translate(0px, ${(0,m.$ZD)(e.props.h)}px) rotate(270deg)`}let l={fontSize:12,fontFamily:"Inter, sans-serif",textAlign:"start",width:e.props.w,height:32,padding:0,lineHeight:1,fontStyle:"normal",fontWeight:"normal",overflow:"truncate-ellipsis",verticalTextAlign:"middle"},c=this.editor.textMeasure.measureTextSpans(tT(e.props.name,"Frame")+String.fromCharCode(8203),l),d=c[0],u=(0,m.Z$Q)(c),h=u.box.w+u.box.x-d.box.x,p=eL(this.editor,c,{offsetY:-l.height-2,...l});p.style.setProperty("transform",n);let f=document.createElementNS("http://www.w3.org/2000/svg","rect");return f.setAttribute("x","-8px"),f.setAttribute("y",-l.height-4+"px"),f.setAttribute("width",h+16+"px"),f.setAttribute("height",`${l.height}px`),f.setAttribute("rx","4px"),f.setAttribute("ry","4px"),f.setAttribute("fill",r.background),i.appendChild(f),i.appendChild(p),i}indicator(e){let t=this.editor.getShapeGeometry(e).bounds;return(0,_.jsx)("rect",{width:(0,m.$ZD)(t.width),height:(0,m.$ZD)(t.height),className:"tl-frame-indicator"})}canReceiveNewChildrenOfType=(e,t)=>!e.isLocked;
97providesBackgroundForChildren(){return!0}canDropShapes=(e,t)=>!e.isLocked;onDragShapesOver=(e,t)=>t.every(t=>t.parentId===e.id)?{shouldHint:!1}:(this.editor.reparentShapes(t.map(e=>e.id),e.id),{shouldHint:!0});onDragShapesOut=(e,t)=>{let n=this.editor.getShape(e.parentId),r=n&&this.editor.isShapeOfType(n,"group");r?this.editor.reparentShapes(t,n.id):this.editor.reparentShapes(t,this.editor.getCurrentPageId())};onResizeEnd=e=>{let t=this.editor.getShapePageBounds(e),n=this.editor.getSortedChildIdsForParent(e.id),r=[];for(let e of n){let n=this.editor.getShapePageBounds(e);t.includes(n)||r.push(e)}r.length>0&&this.editor.reparentShapes(r,this.editor.getCurrentPageId())};onResize=(e,t)=>(0,m.$eB)(e,t)}let tA=E.memo(function({id:e,type:t,text:n,size:r,labelColor:i,font:o,align:s,verticalAlign:a,wrap:l,bounds:c}){let{rInput:d,isEmpty:u,isEditing:h,handleFocus:p,handleChange:f,handleKeyDown:g,handleBlur:y,handleInputPointerDown:b,handleDoubleClick:x}=e3(e,t,n),w=e2.normalizeTextForDom(n),v=w.length>0,S=eA();return h||v?(0,_.jsx)("div",{className:"tl-text-label","data-font":o,"data-align":s,"data-hastext":!u,"data-isediting":h,"data-textwrap":!!l,style:{justifyContent:"middle"===s||"start-legacy"===s||"middle-legacy"===s||"end-legacy"===s?"center":s,alignItems:"middle"===a?"center":a,...c?{top:c.minY,left:c.minX,width:c.width,height:c.height,position:"absolute"}:{}},children:(0,_.jsxs)("div",{className:"tl-text-label__inner",style:{fontSize:Y[r],lineHeight:Y[r]*V.lineHeight+"px",minHeight:V.lineHeight+32,minWidth:0,color:S[i].solid},children:[(0,_.jsx)("div",{className:"tl-text tl-text-content",dir:"ltr",children:w}),h&&(0,_.jsx)("textarea",{ref:d,className:"tl-text tl-text-input",name:"text",tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,placeholder:"",spellCheck:"true",wrap:"off",dir:"auto",datatype:"wysiwyg",defaultValue:n,onFocus:p,onChange:f,onKeyDown:g,onBlur:y,onTouchEnd:m.beA,onContextMenu:m.beA,onPointerDown:b,onDoubleClick:x})]})}):null});function t$({bounds:e,editor:t,font:n,shape:r}){let i={fontSize:Y[r.props.size],fontFamily:n,textAlign:r.props.align,verticalTextAlign:r.props.verticalAlign,width:Math.ceil(e.width),height:Math.ceil(e.height),padding:16,lineHeight:V.lineHeight,fontStyle:"normal",fontWeight:"normal",overflow:"wrap",offsetX:0},o=t.textMeasure.measureTextSpans(r.props.text,i),s=function(e,t,n,r){if(("start-legacy"===e||"end-legacy"===e)&&0!==n.length){let i=m.xuv.From(n[0].box);for(let{box:e}of n)i.union(e);if("start-legacy"===e)return(r-2*t-i.width)/2;if("end-legacy"===e)return-(r-2*t-i.width)/2}}(r.props.align,16,o,e.width);s&&(i.offsetX=s);let a=eL(t,o,i);return a}function tD(e){return`${(0,m.$ZD)(e.x)},${(0,m.$ZD)(e.y)} `}function tO(e=""){let t=0,n=0,r=0,i=0;function o(){let e=t^t<<11;return t=n,n=r,r=i,(i^=(i>>>19^e^e>>>8)>>>0)/4294967296*2}for(let n=0;n<e.length+64;n++)t^=0|e.charCodeAt(n),o();return o}function tB(e){let t="M",n=e.length;for(let r=0;r<n;r+=3)t+=`${tD(e[r])}L${tD(e[r+1])}Q${tD(e[r+2])}`;return t+`${tD(e[0])}`}function tL(e,t,n,r,i){let o;let s=[],a=tO(e),l=t[0],c=t.length;for(let e=0,d=c*i;e<d;e++){o=m.B08.AddXY(t[(e+1)%c],a()*n,a()*n);let i=m.B08.Sub(o,l),d=m.B08.Len(i),u=m.B08.Div(i,d).mul(Math.min(d/4,r));s.push(m.B08.Add(l,u),m.B08.Add(o,u.neg()),o),l=o}return s}function tR(e,t,n){let r,i,o=`M ${tD(t[0])}L`,s=`M ${tD(t[0])}L`,a=n/3,l=2*n,c=tO(e),d=t[0],u=t[0],h=t.length;for(let e=0,n=h-1;e<n;e++){r=t[e+1],i=m.B08.AddXY(t[e+1],c()*a,c()*a);let h=m.B08.Sub(r,d),p=m.B08.Len(h),f=m.B08.Div(h,p).mul(Math.min(p/4,l)),g=m.B08.Add(d,f),y=m.B08.Add(r,f.neg()),b=m.B08.Sub(i,u),x=m.B08.Len(b),w=m.B08.Div(b,x).mul(Math.min(x/4,l)),v=m.B08.Add(u,w),S=m.B08.Add(i,w.neg());e===n-1?(o+=`${tD(g)}L ${tD(r)}`,s+=`${tD(v)}L ${tD(i)}`):(o+=`${tD(g)}L ${tD(y)}Q ${tD(r)}`,s+=`${tD(v)}L ${tD(S)}Q ${tD(i)}`,d=r,u=i)}return[o,o+s]}function tN(e,t){let n=Math.min(e,t)/2;return Math.PI*(2*n)+2*(Math.max(e,t)-2*n)}let tz=(e,t,n,r,i)=>{switch(e){case"s":return t;case"m":return n;case"l":return r;case"xl":return i}};
97function tF(e,t,n,r){let i=(0,m.Vkp)(n),o=tN(e,t),s=Math.max(Math.ceil(o/tz(r,50,70,100,130)),6,Math.ceil(o/Math.min(e,t))),a=o/s*.2,l=Math.max(e-2*a,1),c=Math.max(t-2*a,1),d=(e-l)/2,u=(t-c)/2,h=tN(l,c)/s,p=(function(e,t,n){let r=Math.min(e,t)/2,i=Math.max(e,t)-2*r,o=Math.PI*(2*r)+2*i,s=o/n,a=e>t?[{type:"straight",start:new m.B08(r,0),delta:new m.B08(1,0)},{type:"arc",center:new m.B08(e-r,r),startAngle:-m.PI/2},{type:"straight",start:new m.B08(e-r,t),delta:new m.B08(-1,0)},{type:"arc",center:new m.B08(r,r),startAngle:m.PI/2}]:[{type:"straight",start:new m.B08(e,r),delta:new m.B08(0,1)},{type:"arc",center:new m.B08(r,t-r),startAngle:0},{type:"straight",start:new m.B08(0,t-r),delta:new m.B08(0,-1)},{type:"arc",center:new m.B08(r,r),startAngle:m.PI}],l=0,c=[];for(let e=0;e<n;e++){let e=a[0];"straight"===e.type?c.push(m.B08.Add(e.start,m.B08.Mul(e.delta,l))):c.push((0,m.XDj)(e.center,r,e.startAngle+l/r)),l+=s;let t="straight"===e.type?i:m.PI*r;for(;l>t;)l-=t,a.push(a.shift()),t="straight"===a[0].type?i:m.PI*r}return c})(l,c,s).map(e=>e.addXY(d,u)),f=e<20?0:.3*a,g=t<20?0:.3*a,y=p.slice(0);for(let e=0;e<Math.floor(s/2);e++)y[e]=m.B08.AddXY(y[e],i()*f,i()*g),y[s-e-1]=m.B08.AddXY(y[s-e-1],i()*f,i()*g);let b=[];for(let n=0;n<y.length;n++){let r=n===y.length-1?0:n+1,i=y[n],o=y[r],s=p[n],a=p[r],l=m.B08.Average([s,a]),c=m.B08.Angle(s,a)-Math.PI/2,f=m.B08.Dist(s,a),g=h-f,x=m.B08.Dist(i,o),w=x/f,v=(Math.max(d,u)+g)*w,S=m.B08.Add(l,m.B08.FromAngle(c,v));S.x<0?S.x=0:S.x>e&&(S.x=e),S.y<0?S.y=0:S.y>t&&(S.y=t);let k=tU(i,o,S),j=m.B08.Dist(k||m.B08.Average([i,o]),i);b.push({leftPoint:i,rightPoint:o,arcPoint:S,center:k,radius:j})}return b}function tU(e,t,n){let r=e.x*(t.y-n.y)-e.y*(t.x-n.x)+t.x*n.y-n.x*t.y,i=(e.x*e.x+e.y*e.y)*(n.y-t.y)+(t.x*t.x+t.y*t.y)*(e.y-n.y)+(n.x*n.x+n.y*n.y)*(t.y-e.y),o=(e.x*e.x+e.y*e.y)*(t.x-n.x)+(t.x*t.x+t.y*t.y)*(n.x-e.x)+(n.x*n.x+n.y*n.y)*(e.x-t.x),s=-i/(2*r),a=-o/(2*r);return Number.isFinite(s)&&Number.isFinite(a)?new m.B08(s,a):null}function tH(e,t,n,r){let i=tF(e,t,n,r),o=`M${(0,m.$ZD)(i[0].leftPoint.x)},${(0,m.$ZD)(i[0].leftPoint.y)}`;for(let{leftPoint:e,rightPoint:t,radius:n,center:r}of i){if(null===r){o+=` L${(0,m.$ZD)(t.x)},${(0,m.$ZD)(t.y)}`;continue}let i=tV(e,t,r)?"0":"1";o+=` A${(0,m.$ZD)(n)},${(0,m.$ZD)(n)} 0 ${i},1 ${(0,m.$ZD)(t.x)},${(0,m.$ZD)(t.y)}`}return o+" Z"}function tZ(e,t,n,r){let i=(0,m.Vkp)(n),o="s"===r?.5:"m"===r?.7:"l"===r?.9:1.6,s=e=>e+i()*o*2,a=tF(e,t,n,r),l=a.reduce((e,t)=>e+m.B08.Dist(t.leftPoint,t.rightPoint),0)/a.length,c=l>15*o?e=>new m.B08(s(e.x),s(e.y)):e=>e,d=`M${(0,m.$ZD)(a[0].leftPoint.x)},${(0,m.$ZD)(a[0].leftPoint.y)}`,u=c(a[0].leftPoint),h=`M${(0,m.$ZD)(u.x)},${(0,m.$ZD)(u.y)}`;for(let{leftPoint:e,center:t,rightPoint:n,radius:r,arcPoint:i}of a){if(null===t){d+=` L${(0,m.$ZD)(n.x)},${(0,m.$ZD)(n.y)}`;let e=c(n);h+=` L${(0,m.$ZD)(e.x)},${(0,m.$ZD)(e.y)}`,u=e;continue}let o=tV(e,n,t)?"0":"1";d+=` A${(0,m.$ZD)(r)},${(0,m.$ZD)(r)} 0 ${o},1 ${(0,m.$ZD)(n.x)},${(0,m.$ZD)(n.y)}`;let s=c(n),a=c(i),l=tU(u,s,a);if(!l){h+=` L${(0,m.$ZD)(s.x)},${(0,m.$ZD)(s.y)}`,u=s;continue}let p=Math.abs(m.B08.Dist(l,u));h+=` A${(0,m.$ZD)(p)},${(0,m.$ZD)(p)} 0 ${o},1 ${(0,m.$ZD)(s.x)},${(0,m.$ZD)(s.y)}`,u=s}return d+h+" Z"}function tV(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)>0}let tK=E.memo(function({dash:e,fill:t,color:n,strokeWidth:r,w:i,h:o,id:s,size:a}){let l=eA(),c=tH(i,o,s,a),d=tF(i,o,s,a);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{theme:l,d:c,fill:t,color:n}),(0,_.jsx)("g",{strokeWidth:r,stroke:l[n].solid,fill:"none",pointerEvents:"all",children:d.map(({leftPoint:t,rightPoint:n,center:i,radius:o},s)=>{let a=i?o*(0,m.f5g)((0,m.f5g)(m.B08.Angle(i,n))-(0,m.f5g)(m.B08.Angle(i,t))):m.B08.Dist(t,n),{strokeDasharray:l,strokeDashoffset:c}=eV(a,r,{style:e,start:"outset",end:"outset"});return(0,_.jsx)("path",{d:i?`M${t.x},${t.y}A${o},${o},0,0,1,${n.x},${n.y}`:`M${t.x},${t.y}L${n.x},${n.y}`,strokeDasharray:l,strokeDashoffset:c},s)})})]})}),tW=E.memo(function({w:e,h:t,strokeWidth:n,dash:r,color:i,fill:o}){let s=eA(),a=e/2,l=t/2,c=Math.max(0,a),d=Math.max(0,l),u=(0,m.RpK)(c,d),{strokeDasharray:h,strokeDashoffset:p}=eV(u<64?2*u:u,n,{style:r,snap:4,closed:!0}),f=`M${a-c},${l}a${c},${d},0,1,1,${2*c},0a${c},${d},0,1,1,-${2*c},0`;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{theme:s,d:f,color:i,fill:o}),(0,_.jsx)("path",{d:f,strokeWidth:n,width:(0,m.$ZD)(e),height:(0,m.$ZD)(t),fill:"none",stroke:s[i].solid,strokeDasharray:h,strokeDashoffset:p,pointerEvents:"all"})]})});function tY(e,t){if(t>e){let n=e/2;return`
98    M0,${n}
99    a${n},${n},0,1,1,${2*n},0
100    L${e},${t-n}
101    a${n},${n},0,1,1,-${2*n},0
102    Z`}let n=t/2;return`
103    M${n},0
104    L${e-n},0
105    a${n},${n},0,1,1,0,${2*n}
106    L${n},${t}
107    a${n},${n},0,1,1,0,${-(2*n)}
108    Z`}function tG(e,t){if(e>t){let n=t/2;return(0,m.RpK)(n,n)+(e-2*n)*2}let n=e/2;return(0,m.RpK)(n,n)+(t-2*n)*2}let tX=E.memo(function({w:e,h:t,strokeWidth:n,dash:r,color:i,fill:o}){let s=eA(),a=tY(e,t),l=tG(e,t),{strokeDasharray:c,strokeDashoffset:d}=eV(l<64?2*l:l,n,{style:r,snap:4,start:"outset",end:"outset",closed:!0});return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{theme:s,d:a,color:i,fill:o}),(0,_.jsx)("path",{d:a,strokeWidth:n,width:(0,m.$ZD)(e),height:(0,m.$ZD)(t),fill:"none",stroke:s[i].solid,strokeDasharray:c,strokeDashoffset:d,pointerEvents:"all"})]})}),tq=E.memo(function({dash:e,fill:t,color:n,strokeWidth:r,outline:i,lines:o}){let s=eA(),a="M"+i[0]+"L"+i.slice(1)+"Z";return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{theme:s,d:a,fill:t,color:n}),(0,_.jsxs)("g",{strokeWidth:r,stroke:s[n].solid,fill:"none",pointerEvents:"all",children:[Array.from(Array(i.length)).map((t,n)=>{let o=i[n],s=i[(n+1)%i.length],a=m.B08.Dist(o,s),{strokeDasharray:l,strokeDashoffset:c}=eV(a,r,{style:e,start:"outset",end:"outset"});return(0,_.jsx)("line",{x1:o.x,y1:o.y,x2:s.x,y2:s.y,strokeDasharray:l,strokeDashoffset:c},n)}),o&&o.map(([t,i],o)=>{let a=m.B08.Dist(t,i),{strokeDasharray:l,strokeDashoffset:c}=eV(a,r,{style:e,start:"skip",end:"outset",snap:"dotted"===e?4:void 0});return(0,_.jsx)("path",{d:`M${t.x},${t.y}L${i.x},${i.y}`,stroke:s[n].solid,strokeWidth:r,fill:"none",strokeDasharray:l,strokeDashoffset:c},`line_fg_${o}`)})]})]})}),tJ=E.memo(function({fill:e,color:t,strokeWidth:n,w:r,h:i,id:o,size:s}){let a=eA(),l=tZ(r,i,o,s);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{theme:a,d:l,fill:e,color:t}),(0,_.jsx)("path",{d:l,stroke:a[t].solid,strokeWidth:n,fill:"none"})]})});function tQ(e){return{size:1+e,thinning:.25,end:{taper:e},start:{taper:e},streamline:0,smoothing:1,simulatePressure:!1}}
108function t0(e,t,n,r){let i=(0,m.Vkp)(e),o=t/2,s=n/2,a=(0,m.RpK)(o,s),l=[],c=m.yoY*i(),d=m.yoY+m.pjK/2+Math.abs(i())*m.pjK,u=Math.max(16,a/10);for(let e=0;e<u;e++){let r=e/(u-1),a=c+r*d,h=Math.cos(a),p=Math.sin(a);l.push(new m.B08(o*h+.5*t+.05*i(),s*p+n/2+.05*i(),Math.min(1,.5+Math.abs(.5-(i()>0?m.Ljl.easeInOutSine(r):m.Ljl.easeInExpo(r)))/2)))}return O(l,tQ(r))}function t1(e,t,n,r){let i=tQ(r);return(0,m.RKM)(D(L(t0(e,t,n,r),i),i))}E.memo(function({id:e,w:t,h:n,strokeWidth:r,fill:i,color:o}){let s=eA(),a=tu(t0(e,t,n,r)),l=t1(e,t,n,r);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{theme:s,d:a,color:o,fill:i}),(0,_.jsx)("path",{d:l,fill:s[o].solid,strokeWidth:0,pointerEvents:"all"})]})});let t2=E.memo(function({id:e,outline:t,lines:n,fill:r,color:i,strokeWidth:o}){let s=eA(),a=tL(e,t,o/3,2*o,2),l=tB(a);if(n)for(let[e,t]of n)l+=`M${e.x},${e.y}L${t.x},${t.y}`;let c=tL(e,t,0,2*o,1),d=tB(c);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{d:d,fill:r,color:i,theme:s}),(0,_.jsx)("path",{d:l,stroke:s[i].solid,strokeWidth:o,fill:"none"})]})}),t8=E.memo(function({fill:e,color:t,strokeWidth:n,w:r,h:i,id:o,size:s}){let a=eA(),l=tH(r,i,o,s);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{theme:a,d:l,fill:e,color:t}),(0,_.jsx)("path",{d:l,stroke:a[t].solid,strokeWidth:n,fill:"none"})]})}),t3=E.memo(function({w:e,h:t,strokeWidth:n,fill:r,color:i}){let o=eA(),s=e/2,a=t/2,l=Math.max(0,s),c=Math.max(0,a),d=`M${s-l},${a}a${l},${c},0,1,1,${2*l},0a${l},${c},0,1,1,-${2*l},0`;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{d,color:i,fill:r,theme:o}),(0,_.jsx)("path",{d,stroke:o[i].solid,strokeWidth:n,fill:"none"})]})}),t5=E.memo(function({w:e,h:t,strokeWidth:n,fill:r,color:i}){let o=eA(),s=t4(e,t);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{d:s,color:i,fill:r,theme:o}),(0,_.jsx)("path",{d:s,stroke:o[i].solid,strokeWidth:n,fill:"none"})]})});function t4(e,t){let n;if(t>e){let r=e/2;n=`
109    M0,${r}
110    a${r},${r},0,1,1,${2*r},0
111    L${e},${t-r}
112    a${r},${r},0,1,1,-${2*r},0
113    Z`}else{let r=t/2;n=`
114    M${r},0
115    L${e-r},0
116    a${r},${r},0,1,1,0,${2*r}
117    L${r},${t}
118    a${r},${r},0,1,1,0,${-(2*r)}
119    Z`}return n}let t6=E.memo(function({outline:e,lines:t,fill:n,color:r,strokeWidth:i}){let o=eA(),s="M"+e[0]+"L"+e.slice(1)+"Z";if(t)for(let[e,n]of t)s+=`M${e.x},${e.y}L${n.x},${n.y}`;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(e$,{d:s,fill:n,color:r,theme:o}),(0,_.jsx)("path",{d:s,stroke:o[r].solid,strokeWidth:i,fill:"none"})]})});class t9 extends m.StR{static type="geo";static props=m.eGT;static migrations=m.P3D;canEdit=()=>!0;getDefaultProps(){return{w:100,h:100,geo:"rectangle",color:"black",labelColor:"black",fill:"none",dash:"draw",size:"m",font:"draw",text:"",align:"middle",verticalAlign:"middle",growY:0,url:""}}getGeometry(e){let t;let n=Math.max(1,e.props.w),r=Math.max(1,e.props.h+e.props.growY),i=n/2,o=r/2,s=K[e.props.size],a="none"!==e.props.fill;switch(e.props.geo){case"cloud":t=new m.wWH({points:function(e,t,n,r){let i=[],o=tF(e,t,n,r);for(let{center:e,radius:t,leftPoint:n,rightPoint:r}of o)i.push(...function(e,t,n,r,i){if(null===n)return[m.B08.From(e),m.B08.From(t)];let o=[],s=m.B08.Angle(n,e),a=m.B08.Angle(n,t),l=(0,m.VK_)(s,a);for(let e=0;e<i;e++){let t=e/(i-1),a=s+l*t,c=(0,m.XDj)(n,r,a);o.push(c)}return o}(n,r,e,t,10));return i}(n,r,e.id,e.props.size),isFilled:a});break;case"triangle":t=new m.wWH({points:[new m.B08(i,0),new m.B08(n,r),new m.B08(0,r)],isFilled:a});break;case"diamond":t=new m.wWH({points:[new m.B08(i,0),new m.B08(n,o),new m.B08(i,r),new m.B08(0,o)],isFilled:a});break;case"pentagon":t=new m.wWH({points:(0,m.OeO)(n,r,5),isFilled:a});break;case"hexagon":t=new m.wWH({points:(0,m.OeO)(n,r,6),isFilled:a});break;case"octagon":t=new m.wWH({points:(0,m.OeO)(n,r,8),isFilled:a});break;case"ellipse":t=new m.rpf({width:n,height:r,isFilled:a});break;case"oval":t=new m.ihl({width:n,height:r,isFilled:a});break;case"star":{let e=m.yoY/5/2,i=2*Math.floor(5/4),o=Math.cos(-m.pjK+i*e)*n/2,s=Math.cos(-m.pjK+(10-i)*e)*n/2,l=Math.sin(-m.pjK+0*e)*r/2,c=Math.sin(-m.pjK+2*Math.floor(2.5)*e)*r/2,d=n-Math.abs(o-s),u=r-Math.abs(c-l),h=n/2+s-(n/2-o),p=r/2+l-(r/2-c),f=(n-h)/2,g=(r-p)/2,y=(n+d)/2,b=(r+u)/2,x=1*y/2,w=1*b/2;t=new m.wWH({points:Array.from(Array(10)).map((t,n)=>{let r=-m.pjK+n*e;return new m.B08(f+(n%2?x:y)*Math.cos(r),g+(n%2?w:b)*Math.sin(r))}),isFilled:a});break}case"rhombus":{let e=Math.min(.38*n,.38*r);t=new m.wWH({points:[new m.B08(e,0),new m.B08(n,0),new m.B08(n-e,r),new m.B08(0,r)],isFilled:a});break}case"rhombus-2":{let e=Math.min(.38*n,.38*r);t=new m.wWH({points:[new m.B08(0,0),new m.B08(n-e,0),new m.B08(n,r),new m.B08(e,r)],isFilled:a});break}case"trapezoid":{let e=Math.min(.38*n,.38*r);t=new m.wWH({points:[new m.B08(e,0),new m.B08(n-e,0),new m.B08(n,r),new m.B08(0,r)],isFilled:a});break}case"arrow-right":{let e=.38*Math.min(n,r),i=.16*r;t=new m.wWH({points:[new m.B08(0,i),new m.B08(n-e,i),new m.B08(n-e,0),new m.B08(n,r/2),new m.B08(n-e,r),new m.B08(n-e,r-i),new m.B08(0,r-i)],isFilled:a});break}case"arrow-left":{let e=.38*Math.min(n,r),i=.16*r;t=new m.wWH({points:[new m.B08(e,0),new m.B08(e,i),new m.B08(n,i),new m.B08(n,r-i),new m.B08(e,r-i),new m.B08(e,r),new m.B08(0,r/2)],isFilled:a});break}case"arrow-up":{let e=.16*n,i=.38*Math.min(n,r);t=new m.wWH({points:[new m.B08(n/2,0),new m.B08(n,i),new m.B08(n-e,i),new m.B08(n-e,r),new m.B08(e,r),new m.B08(e,i),new m.B08(0,i)],isFilled:a});break}case"arrow-down":{let e=.16*n,i=.38*Math.min(n,r);t=new m.wWH({points:[new m.B08(e,0),new m.B08(n-e,0),new m.B08(n-e,r-i),new m.B08(n,r-i),new m.B08(n/2,r),new m.B08(0,r-i),new m.B08(e,r-i)],isFilled:a});break}case"check-box":case"x-box":case"rectangle":t=new m.zc7({width:n,height:r,isFilled:a})}let l=t7(this.editor,e),c=Math.min(n,Math.max(l.w,Math.min(32,Math.max(1,n-8)))),d=Math.min(r,Math.max(l.h,Math.min(32,Math.max(1,n-8)))),u=ne(e.props,s),h=u?u.map(e=>new m.qvd({points:e})):[];return new m.mqq({children:[t,new m.zc7({x:"start"===e.props.align?0:"end"===e.props.align?n-c:(n-c)/2,y:"start"===e.props.verticalAlign?0:"end"===e.props.verticalAlign?r-d:(r-d)/2,width:c,height:d,isFilled:!0,isLabel:!0}),...h]})}getHandleSnapGeometry(e){let t=this.getGeometry(e),n=t.children[0];switch(e.props.geo){case"arrow-down":case"arrow-left":case"arrow-right":case"arrow-up":case"check-box":case"diamond":case"hexagon":case"octagon":case"pentagon":case"rectangle":case"rhombus":case"rhombus-2":case"star":case"trapezoid":case"triangle":case"x-box":return{outline:n,points:[...n.getVertices(),t.bounds.center]};case"cloud":case"ellipse":case"oval":return{outline:n,points:[t.bounds.center]};default:(0,m.iP4)(e.props.geo)}}onEditEnd=e=>{let{id:t,type:n,props:{text:r}}=e;r.trimEnd()!==e.props.text&&this.editor.updateShapes([{id:t,type:n,props:{text:r.trimEnd()}}])};component(e){let{id:t,type:n,props:r}=e,i=K[r.size],{w:o,color:s,labelColor:a,fill:l,dash:c,growY:d,font:u,align:h,verticalAlign:p,size:f,text:g}=r;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(m.gkc,{id:t,children:(()=>{let n=r.h+d;switch(r.geo){case"cloud":if("solid"===c)return(0,_.jsx)(t8,{color:s,fill:l,strokeWidth:i,w:o,h:n,id:t,size:f});if("dashed"===c||"dotted"===c)return(0,_.jsx)(tK,{color:s,fill:l,strokeWidth:i,w:o,h:n,id:t,size:f,dash:c});if("draw"===c)return(0,_.jsx)(tJ,{color:s,fill:l,strokeWidth:i,w:o,h:n,id:t,size:f});break;case"ellipse":if("solid"===c)return(0,_.jsx)(t3,{strokeWidth:i,w:o,h:n,color:s,fill:l});if("dashed"===c||"dotted"===c)return(0,_.jsx)(tW,{id:t,strokeWidth:i,w:o,h:n,dash:c,color:s,fill:l});if("draw"===c)return(0,_.jsx)(t3,{strokeWidth:i,w:o,h:n,color:s,fill:l});break;case"oval":if("solid"===c)return(0,_.jsx)(t5,{strokeWidth:i,w:o,h:n,color:s,fill:l});if("dashed"===c||"dotted"===c)return(0,_.jsx)(tX,{id:t,strokeWidth:i,w:o,h:n,dash:c,color:s,fill:l});if("draw"===c)return(0,_.jsx)(t5,{strokeWidth:i,w:o,h:n,color:s,fill:l});break;default:{let n=this.editor.getShapeGeometry(e),r=n instanceof m.mqq?n.children[0].vertices:n.vertices,o=ne(e.props,i);if("solid"===c)return(0,_.jsx)(t6,{fill:l,color:s,strokeWidth:i,outline:r,lines:o});if("dashed"===c||"dotted"===c)return(0,_.jsx)(tq,{dash:c,fill:l,color:s,strokeWidth:i,outline:r,lines:o});if("draw"===c)return(0,_.jsx)(t2,{id:t,fill:l,color:s,strokeWidth:i,outline:r,lines:o})}}})()}
119),(0,_.jsxs)(m.G7H,{id:e.id,style:{overflow:"hidden",width:e.props.w,height:e.props.h+r.growY},children:[(0,_.jsx)(tA,{id:t,type:n,font:u,fill:l,size:f,align:h,verticalAlign:p,text:g,labelColor:a,wrap:!0,bounds:"cloud"===r.geo?this.getGeometry(e).bounds:void 0}),e.props.url&&(0,_.jsx)(ti,{url:e.props.url,zoomLevel:this.editor.getZoomLevel()})]})]})}indicator(e){let{id:t,props:n}=e,{w:r,size:i}=n,o=n.h+n.growY,s=K[i];switch(n.geo){case"ellipse":if("draw"===n.dash)return(0,_.jsx)("path",{d:tu(t0(t,r,o,s))});return(0,_.jsx)("ellipse",{cx:r/2,cy:o/2,rx:r/2,ry:o/2});case"oval":return(0,_.jsx)("path",{d:t4(r,o)});case"cloud":return(0,_.jsx)("path",{d:tH(r,o,t,i)});default:{let r;let i=this.editor.getShapeGeometry(e),o=i instanceof m.mqq?i.children[0].vertices:i.vertices;if("draw"===n.dash){let e=tL(t,o,0,2*s,1);r=tB(e)}else r="M"+o[0]+"L"+o.slice(1)+"Z";let a=ne(e.props,s);if(a)for(let[e,t]of a)r+=`M${e.x},${e.y}L${t.x},${t.y}`;return(0,_.jsx)("path",{d:r})}}}toSvg(e,t){let n;let{id:r,props:i}=e,o=K[i.size],s=(0,m.y6M)({isDarkMode:t.isDarkMode});switch(t.addExportDef(eN(e.props.fill,s)),i.geo){case"ellipse":switch(i.dash){case"draw":n=function({id:e,w:t,h:n,strokeWidth:r,fill:i,color:o,theme:s}){let a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",t1(e,t,n,r)),a.setAttribute("fill",s[o].solid);let l=eO({d:tu(t0(e,t,n,r)),fill:i,color:o,theme:s});return eB(a,l)}({id:r,w:i.w,h:i.h,color:i.color,fill:i.fill,strokeWidth:o,theme:s});break;case"solid":n=function({w:e,h:t,strokeWidth:n,fill:r,color:i,theme:o}){let s=e/2,a=t/2,l=Math.max(0,s),c=Math.max(0,a),d=`M${s-l},${a}a${l},${c},0,1,1,${2*l},0a${l},${c},0,1,1,-${2*l},0`,u=document.createElementNS("http://www.w3.org/2000/svg","path");u.setAttribute("d",d),u.setAttribute("stroke-width",n.toString()),u.setAttribute("width",e.toString()),u.setAttribute("height",t.toString()),u.setAttribute("fill","none"),u.setAttribute("stroke",o[i].solid);let h=eO({d,fill:r,color:i,theme:o});return eB(u,h)}({strokeWidth:o,w:i.w,h:i.h,color:i.color,fill:i.fill,theme:s});break;default:n=function({w:e,h:t,strokeWidth:n,dash:r,color:i,theme:o,fill:s}){let a=e/2,l=t/2,c=Math.max(0,a-n/2),d=Math.max(0,l-n/2),u=(0,m.RpK)(c,d),{strokeDasharray:h,strokeDashoffset:p}=eV(u<64?2*u:u,n,{style:r,snap:4,closed:!0}),f=`M${a-c},${l}a${c},${d},0,1,1,${2*c},0a${c},${d},0,1,1,-${2*c},0`,g=document.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("d",f),g.setAttribute("stroke-width",n.toString()),g.setAttribute("width",e.toString()),g.setAttribute("height",t.toString()),g.setAttribute("fill","none"),g.setAttribute("stroke",o[i].solid),g.setAttribute("stroke-dasharray",h),g.setAttribute("stroke-dashoffset",p);let y=eO({d:f,fill:s,color:i,theme:o});return eB(g,y)}({id:r,strokeWidth:o,w:i.w,h:i.h,dash:i.dash,color:i.color,fill:i.fill,theme:s})}break;case"oval":switch(i.dash){case"draw":default:n=function({w:e,h:t,strokeWidth:n,dash:r,color:i,theme:o,fill:s}){let a=tY(e,t),l=tG(e,t),{strokeDasharray:c,strokeDashoffset:d}=eV(l<64?2*l:l,n,{style:r,snap:4,closed:!0}),u=document.createElementNS("http://www.w3.org/2000/svg","path");u.setAttribute("d",a),u.setAttribute("stroke-width",n.toString()),u.setAttribute("width",e.toString()),u.setAttribute("height",t.toString()),u.setAttribute("fill","none"),u.setAttribute("stroke",o[i].solid),u.setAttribute("stroke-dasharray",c),u.setAttribute("stroke-dashoffset",d);let h=eO({d:a,fill:s,color:i,theme:o});return eB(u,h)}({id:r,strokeWidth:o,w:i.w,h:i.h,dash:i.dash,color:i.color,fill:i.fill,theme:s});break;case"solid":n=function({w:e,h:t,strokeWidth:n,fill:r,color:i,theme:o}){let s=t4(e,t),a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",s),a.setAttribute("stroke-width",n.toString()),a.setAttribute("width",e.toString()),a.setAttribute("height",t.toString()),a.setAttribute("fill","none"),a.setAttribute("stroke",o[i].solid);let l=eO({d:s,fill:r,color:i,theme:o});return eB(a,l)}({strokeWidth:o,w:i.w,h:i.h,color:i.color,fill:i.fill,theme:s})}break;case"cloud":switch(i.dash){case"draw":n=function({fill:e,color:t,strokeWidth:n,theme:r,w:i,h:o,id:s,size:a}){let l=tZ(i,o,s,a),c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d",l),c.setAttribute("stroke-width",n.toString()),c.setAttribute("stroke",r[t].solid),c.setAttribute("fill","none");let d=eO({d:l,fill:e,color:t,theme:r});return eB(c,d)}({id:r,strokeWidth:o,w:i.w,h:i.h,color:i.color,fill:i.fill,size:i.size,theme:s});break;case"solid":n=function({fill:e,color:t,strokeWidth:n,theme:r,w:i,h:o,id:s,size:a}){let l=tH(i,o,s,a),c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d",l),c.setAttribute("stroke-width",n.toString()),c.setAttribute("stroke",r[t].solid),c.setAttribute("fill","none");let d=eO({d:l,fill:e,color:t,theme:r});return eB(c,d)}({strokeWidth:o,w:i.w,h:i.h,color:i.color,fill:i.fill,size:i.size,id:r,theme:s});break;default:n=function({dash:e,fill:t,color:n,theme:r,strokeWidth:i,w:o,h:s,id:a,size:l}){let c=tH(o,s,a,l),d=tF(o,s,a,l),u=document.createElementNS("http://www.w3.org/2000/svg","g");for(let{leftPoint:t,rightPoint:o,center:s,radius:a}of(u.setAttribute("stroke-width",i.toString()),u.setAttribute("stroke",r[n].solid),u.setAttribute("fill","none"),d)){let n=s?a*(0,m.f5g)((0,m.f5g)(m.B08.Angle(s,o))-(0,m.f5g)(m.B08.Angle(s,t))):m.B08.Dist(t,o),{strokeDasharray:r,strokeDashoffset:l}=eV(n,i,{style:e,start:"outset",end:"outset"}),c=document.createElementNS("http://www.w3.org/2000/svg","path");
119c.setAttribute("d",s?`M${t.x},${t.y}A${a},${a},0,0,1,${o.x},${o.y}`:`M${t.x},${t.y}L${o.x},${o.y}`),c.setAttribute("stroke-dasharray",r.toString()),c.setAttribute("stroke-dashoffset",l.toString()),u.appendChild(c)}let h=eO({d:c,fill:t,color:n,theme:r});return eB(u,h)}({id:r,strokeWidth:o,w:i.w,h:i.h,dash:i.dash,color:i.color,fill:i.fill,theme:s,size:i.size})}break;default:{let t=this.editor.getShapeGeometry(e),a=t instanceof m.mqq?t.children[0].vertices:t.vertices,l=ne(e.props,o);switch(i.dash){case"draw":n=function({id:e,outline:t,lines:n,fill:r,color:i,theme:o,strokeWidth:s}){let a=tL(e,t,s/3,2*s,2),l=tB(a);if(n)for(let[e,t]of n)l+=`M${e.x},${e.y}L${t.x},${t.y}`;let c=tL(e,t,0,2*s,1),d=tB(c),u=document.createElementNS("http://www.w3.org/2000/svg","path");u.setAttribute("d",l),u.setAttribute("fill","none"),u.setAttribute("stroke",o[i].solid),u.setAttribute("stroke-width",s.toString());let h=eO({d:d,fill:r,color:i,theme:o});return eB(u,h)}({id:r,fill:i.fill,color:i.color,strokeWidth:o,outline:a,lines:l,theme:s});break;case"solid":n=function({outline:e,lines:t,fill:n,color:r,strokeWidth:i,theme:o}){let s="M"+e[0]+"L"+e.slice(1)+"Z",a=s;if(t)for(let[e,n]of t)a+=`M${e.x},${e.y}L${n.x},${n.y}`;let l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",a),l.setAttribute("stroke-width",i.toString()),l.setAttribute("stroke",o[r].solid),l.setAttribute("fill","none");let c=eO({d:s,fill:n,color:r,theme:o});return eB(l,c)}({fill:i.fill,color:i.color,strokeWidth:o,outline:a,lines:l,theme:s});break;default:n=function({dash:e,fill:t,color:n,theme:r,strokeWidth:i,outline:o,lines:s}){let a=document.createElementNS("http://www.w3.org/2000/svg","g");if(a.setAttribute("stroke-width",i.toString()),a.setAttribute("stroke",r[n].solid),a.setAttribute("fill","none"),Array.from(Array(o.length)).forEach((t,n)=>{let r=o[n],s=o[(n+1)%o.length],l=m.B08.Dist(r,s),{strokeDasharray:c,strokeDashoffset:d}=eV(l,i,{style:e}),u=document.createElementNS("http://www.w3.org/2000/svg","line");u.setAttribute("x1",r.x.toString()),u.setAttribute("y1",r.y.toString()),u.setAttribute("x2",s.x.toString()),u.setAttribute("y2",s.y.toString()),u.setAttribute("stroke-dasharray",c.toString()),u.setAttribute("stroke-dashoffset",d.toString()),a.appendChild(u)}),s)for(let[t,n]of s){let r=m.B08.Dist(t,n),{strokeDasharray:o,strokeDashoffset:s}=eV(r,i,{style:e,start:"skip",end:"skip",snap:"dotted"===e?4:2}),l=document.createElementNS("http://www.w3.org/2000/svg","line");l.setAttribute("x1",t.x.toString()),l.setAttribute("y1",t.y.toString()),l.setAttribute("x2",n.x.toString()),l.setAttribute("y2",n.y.toString()),l.setAttribute("stroke-dasharray",o.toString()),l.setAttribute("stroke-dashoffset",s.toString()),a.appendChild(l)}let l=eO({d:"M"+o[0]+"L"+o.slice(1)+"Z",fill:t,color:n,theme:r});return eB(a,l)}({dash:i.dash,fill:i.fill,color:i.color,strokeWidth:o,outline:a,lines:l,theme:s})}}}if(i.text){let r=this.editor.getShapeGeometry(e).bounds;t.addExportDef(eR(e.props.font));let i=t$({editor:this.editor,shape:e,font:m.p64[e.props.font],bounds:r}),o=i.cloneNode(!0);o.setAttribute("fill",s[e.props.labelColor].solid),o.setAttribute("stroke","none");let a=i.cloneNode(!0);a.setAttribute("stroke-width","2"),a.setAttribute("fill",s.background),a.setAttribute("stroke",s.background);let l=document.createElementNS("http://www.w3.org/2000/svg","g");if(l.append(a),l.append(o),"g"===n.nodeName)n.appendChild(l);else{let e=document.createElementNS("http://www.w3.org/2000/svg","g");return e.appendChild(n),e.appendChild(l),e}}return n}getCanvasSvgDefs(){return[ez()]}onResize=(e,{handle:t,newPoint:n,scaleX:r,scaleY:i,initialShape:o})=>{let s=o.props.w*r,a=(o.props.h+o.props.growY)*i,l=0,c=0;if(e.props.text.trim()){let t=Math.max(Math.abs(s),51),n=Math.max(Math.abs(a),51);t<51&&51===n&&(t=51),51===t&&n<51&&(n=51);let r=t7(this.editor,{...e,props:{...e.props,w:t,h:n}}),i=Math.max(Math.abs(s),r.w)*Math.sign(s),o=Math.max(Math.abs(a),r.h)*Math.sign(a);l=Math.abs(i)-Math.abs(s),c=Math.abs(o)-Math.abs(a),s=i,a=o}let d=new m.B08(0,0);r<0&&(d.x+=s),("left"===t||"top_left"===t||"bottom_left"===t)&&(d.x+=r<0?l:-l),i<0&&(d.y+=a),("top"===t||"top_left"===t||"top_right"===t)&&(d.y+=i<0?c:-c);let{x:u,y:h}=d.rot(e.rotation).add(n);return{x:u,y:h,props:{w:Math.max(Math.abs(s),1),h:Math.max(Math.abs(a),1),growY:0}}};onBeforeCreate=e=>{if(!e.props.text)return e.props.growY?{...e,props:{...e.props,growY:0}}:void 0;let t=e.props.h,n=t7(this.editor,e).h,r=null;if(n>t?r=n-t:e.props.growY&&(r=0),null!==r)return{...e,props:{...e.props,growY:r}}};onBeforeUpdate=(e,t)=>
119{let n=e.props.text,r=t.props.text;if(n===r&&e.props.font===t.props.font&&e.props.size===t.props.size)return;if(n&&!r)return{...t,props:{...t.props,growY:0}};let i=e.props.w,o=e.props.h,s=t7(this.editor,t),a=s.w,l=s.h;if(!n&&r&&1===r.length){let n=Math.max(i,a),r=Math.max(o,l);return e.props.w<51&&e.props.h<51&&(r=Math.max(n=Math.max(n=Math.max(n,51),r=Math.max(r,51)),r)),{...t,props:{...t.props,w:n,h:r,growY:0}}}let c=null;return(l>o?c=l-o:e.props.growY&&(c=0),null!==c)?{...t,props:{...t.props,growY:c,w:Math.max(t.props.w,a)}}:a>e.props.w?{...t,props:{...t.props,w:a}}:void 0};onDoubleClick=e=>{if(this.editor.inputs.altKey)switch(e.props.geo){case"rectangle":return{...e,props:{geo:"check-box"}};case"check-box":return{...e,props:{geo:"rectangle"}}}}}function t7(e,t){let n=t.props.text;if(!n)return{w:0,h:0};let r=e.textMeasure.measureText("w",{...V,fontFamily:X[t.props.font],fontSize:Y[t.props.size],maxWidth:100}),i=e.textMeasure.measureText(n,{...V,fontFamily:X[t.props.font],fontSize:Y[t.props.size],minWidth:r.w+"px",maxWidth:Math.max(0,Math.ceil(r.w+({s:2,m:3.5,l:5,xl:10})[t.props.size]),Math.ceil(t.props.w-32))});return{w:i.w+32,h:i.h+32}}function ne(e,t){switch(e.geo){case"x-box":return function(e,t,n,r){let i="draw"===r?.62:0;if("dashed"===r)return[[new m.B08(0,0),new m.B08(e/2,t/2)],[new m.B08(e,t),new m.B08(e/2,t/2)],[new m.B08(0,t),new m.B08(e/2,t/2)],[new m.B08(e,0),new m.B08(e/2,t/2)]];let o=t=>Math.max(0,Math.min(e,t)),s=e=>Math.max(0,Math.min(t,e));return[[new m.B08(o(n*i),s(n*i)),new m.B08(o(e-n*i),s(t-n*i))],[new m.B08(o(n*i),s(t-n*i)),new m.B08(o(e-n*i),s(n*i))]]}(e.w,e.h,t,e.dash);case"check-box":return function(e,t){let n=.82*Math.min(e,t),r=(e-n)/2,i=(t-n)/2,o=t=>Math.max(0,Math.min(e,t)),s=e=>Math.max(0,Math.min(t,e));return[[new m.B08(o(r+.25*n),s(i+.52*n)),new m.B08(o(r+.45*n),s(i+.82*n))],[new m.B08(o(r+.45*n),s(i+.82*n)),new m.B08(o(r+.82*n),s(i+.22*n))]]}(e.w,e.h);default:return}}class nt extends m.EeJ{static type="highlight";static props=m.VWE;static migrations=m.J14;hideResizeHandles=e=>na(e);hideRotateHandle=e=>na(e);hideSelectionBoundsFg=e=>na(e);getDefaultProps(){return{segments:[],color:"black",size:"m",isComplete:!1,isPen:!1}}getGeometry(e){let t=ns(e);if(na(e))return new m.EEY({x:-t/2,y:-t/2,radius:t/2,isFilled:!0});let{strokePoints:n,sw:r}=nn(e,t,!0),i=tb({strokeWidth:r,showAsComplete:!0});return L(n,i),new m.wWH({points:D(n,i),isFilled:!0})}component(e){return(0,_.jsx)(ni,{strokeWidth:ns(e),shape:e,opacity:.35})}backgroundComponent(e){return(0,_.jsx)(ni,{strokeWidth:ns(e),shape:e,opacity:.82})}indicator(e){let t;let n=tp(),r=ns(e),i=tw(e.props.segments),o=r;n||e.props.isPen||1!==i.length||(o+=(0,m.Vkp)(e.id)()*(r/6));let s=e.props.isComplete||m.Z$Q(e.props.segments)?.type==="straight",a=tb({strokeWidth:r,showAsComplete:s}),l=O(i,a);return t=l.length<2?function(e,t){let n=t/2;return`M ${e.x} ${e.y} m -${n}, 0 a ${n},${n} 0 1,0 ${2*n},0 a ${n},${n} 0 1,0 -${2*n},0`}(i[0],o):tu(l,!1),(0,_.jsx)("path",{d:t})}toSvg(e,t){let n=(0,m.y6M)({isDarkMode:t.isDarkMode});return no(ns(e),e,.35,n)}toBackgroundSvg(e){let t=(0,m.y6M)({isDarkMode:this.editor.user.getIsDarkMode()});return no(ns(e),e,.82,t)}onResize=(e,t)=>
119{let{scaleX:n,scaleY:r}=t,i=[];for(let t of e.props.segments)i.push({...t,points:t.points.map(({x:e,y:t,z:i})=>({x:n*e,y:r*t,z:i}))});return{props:{segments:i}}}}function nn(e,t,n){let r=tw(e.props.segments),i=e.props.isComplete||m.Z$Q(e.props.segments)?.type==="straight",o=t;n||e.props.isPen||1!==r.length||(o+=(0,m.Vkp)(e.id)()*(t/6));let s=tb({strokeWidth:o,showAsComplete:i}),a=O(r,s);return{strokePoints:a,sw:o}}function nr(e,t,n){var r;let{strokePoints:i,sw:o}=nn(e,t,n),s=i.length>1?tu(i,!1):(r=e.props.segments[0].points[0],`M ${r.x} ${r.y} m -0.1, 0 a 0.1,0.1 0 1,0 0.2,0 a 0.1,0.1 0 1,0 -0.2,0`);return{solidStrokePath:s,sw:o}}function ni({strokeWidth:e,shape:t,opacity:n}){let r=eA(),i=tp(),{solidStrokePath:o,sw:s}=nr(t,e,i),a=function(){let[e,t]=(0,E.useState)(!1);(0,E.useEffect)(()=>{let e=CSS.supports("color","color(display-p3 1 1 1)"),n=matchMedia("(color-gamut: p3)");t(e&&n.matches);let r=()=>t(e&&n.matches);return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[]);let n=(0,m.HgN)(m.hR1.forceSrgb);return n||!e?"srgb":"p3"}(),l=r[t.props.color].highlight[a];return(0,_.jsx)(m.gkc,{id:t.id,style:{opacity:n},children:(0,_.jsx)("path",{d:o,strokeLinecap:"round",fill:"none",pointerEvents:"all",stroke:l,strokeWidth:s})})}function no(e,t,n,r){let{solidStrokePath:i,sw:o}=nr(t,e,!1),s=document.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d",i),s.setAttribute("fill","none"),s.setAttribute("stroke",r[t.props.color].highlight.srgb),s.setAttribute("stroke-width",`${o}`),s.setAttribute("opacity",`${n}`),s}function ns(e){return 1.12*W[e.props.size]}function na(e){return 1===e.props.segments.length&&e.props.segments[0].points.length<2}function nl(){let[e,t]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),n=()=>{t(e.matches)};return n(),e.addEventListener("change",n),()=>e.removeEventListener("change",n)},[]),e}let nc=async e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error("Failed to load image")),r.crossOrigin="anonymous",r.src=e}),nd=async e=>{let t=await nc(e),n=document.createElement("canvas");n.width=t.width,n.height=t.height;let r=n.getContext("2d");if(r)return r.drawImage(t,0,0),n.toDataURL()};async function nu(e){let t=await fetch(e),n=await t.blob();return new Promise((e,t)=>{let r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=t,r.readAsDataURL(n)})}class nh extends m.StR{static type="image";static props=m.FcS;static migrations=m.y59;
119isAspectRatioLocked=()=>!0;canCrop=()=>!0;getDefaultProps(){return{w:100,h:100,assetId:null,playing:!0,url:"",crop:null}}component(e){let t=np(e),n=(0,m.Q1i)(e.id),r=nl(),[i,o]=(0,E.useState)(""),s=e.props.assetId?this.editor.getAsset(e.props.assetId):void 0;if(s?.type==="bookmark")throw Error("Bookmark assets can't be rendered as images");let a=(0,m.HgN)("onlySelectedShape",()=>e.id===this.editor.getOnlySelectedShape()?.id,[this.editor]),l=a&&n&&this.editor.isInAny("select.crop","select.cropping","select.pointing_crop_handle"),c=r&&(s?.props.mimeType?.includes("video")||s?.props.mimeType?.includes("gif"));return(0,E.useEffect)(()=>{if(s?.props.src&&"mimeType"in s.props&&s?.props.mimeType==="image/gif"){let e=!1,t=async()=>{let t=await nd(s.props.src);!e&&t&&o(t)};return t(),()=>{e=!0}}},[r,s?.props]),(0,_.jsxs)(_.Fragment,{children:[s?.props.src&&l&&(0,_.jsx)("div",{style:t,children:(0,_.jsx)("div",{className:"tl-image",style:{opacity:.1,backgroundImage:`url(${!e.props.playing||c?i:s.props.src})`},draggable:!1})}),(0,_.jsxs)(m.G7H,{id:e.id,style:{overflow:"hidden",width:e.props.w,height:e.props.h},children:[(0,_.jsxs)("div",{className:"tl-image-container",style:t,children:[s?.props.src?(0,_.jsx)("div",{className:"tl-image",style:{backgroundImage:`url(${!e.props.playing||c?i:s.props.src})`},draggable:!1}):null,s?.props.isAnimated&&!e.props.playing&&(0,_.jsx)("div",{className:"tl-image__tg",children:"GIF"})]}),"url"in e.props&&e.props.url&&(0,_.jsx)(ti,{url:e.props.url,zoomLevel:this.editor.getZoomLevel()})]})]})}indicator(e){let t=(0,m.Q1i)(e.id);return t?null:(0,_.jsx)("rect",{width:(0,m.$ZD)(e.props.w),height:(0,m.$ZD)(e.props.h)})}shouldGetDataURI(e){return e&&(e.startsWith("http")||e.startsWith("/")||e.startsWith("./"))}async toSvg(e){let t=document.createElementNS("http://www.w3.org/2000/svg","g"),n=e.props.assetId?this.editor.getAsset(e.props.assetId):null,r=n?.props.src||"";this.shouldGetDataURI(r)&&(r=await nu(r)||"");let i=document.createElementNS("http://www.w3.org/2000/svg","image");i.setAttributeNS("http://www.w3.org/1999/xlink","href",r);let o=np(e),s=e.props.crop;if(o.transform&&s){let{transform:e,width:n,height:r}=o,a=(s.bottomRight.x-s.topLeft.x)*n,l=(s.bottomRight.y-s.topLeft.y)*r,c=[new m.B08(0,0),new m.B08(a,0),new m.B08(a,l),new m.B08(0,l)],d=document.createElementNS("http://www.w3.org/2000/svg","polygon");d.setAttribute("points",c.map(e=>`${e.x},${e.y}`).join(" "));let u=document.createElementNS("http://www.w3.org/2000/svg","clipPath");u.setAttribute("id","cropClipPath"),u.appendChild(d);let h=document.createElementNS("http://www.w3.org/2000/svg","defs");h.appendChild(u),t.appendChild(h);let p=document.createElementNS("http://www.w3.org/2000/svg","g");p.setAttribute("clip-path","url(#cropClipPath)"),i.setAttribute("width",n.toString()),i.setAttribute("height",r.toString()),i.style.transform=e,p.appendChild(i),t.appendChild(p)}else i.setAttribute("width",e.props.w.toString()),i.setAttribute("height",e.props.h.toString()),t.appendChild(i);return t}onDoubleClick=e=>{let t=e.props.assetId?this.editor.getAsset(e.props.assetId):void 0;if(!t)return;let n=t.props.src&&"mimeType"in t.props&&"image/gif"===t.props.mimeType;n&&this.editor.updateShapes([{type:"image",id:e.id,props:{playing:!e.props.playing}}])};onDoubleClickEdge=e=>{let t=e.props;if(!t||this.editor.getCroppingShapeId()!==e.id)return;let n=(0,m.p$x)(t.crop)||{topLeft:{x:0,y:0},bottomRight:{x:1,y:1}},r=1/(n.bottomRight.x-n.topLeft.x)*e.props.w,i=1/(n.bottomRight.y-n.topLeft.y)*e.props.h,o=new m.B08(n.topLeft.x*r,n.topLeft.y*i).rot(e.rotation),s={id:e.id,type:e.type,x:e.x-o.x,y:e.y-o.y,props:{crop:{topLeft:{x:0,y:0},bottomRight:{x:1,y:1}},w:r,h:i}};this.editor.updateShapes([s])}}function np(e){let t=e.props.crop,n=t?.topLeft;if(!n)return{width:e.props.w,height:e.props.h};let r=1/(t.bottomRight.x-t.topLeft.x)*e.props.w,i=1/(t.bottomRight.y-t.topLeft.y)*e.props.h,o=-n.x*r,s=-n.y*i;return{transform:`translate(${o}px, ${s}px)`,width:r,height:i}}function nf(e,t){let{start:n,end:r}=e;return t?`M${(0,m.$ZD)(n.x)},${(0,m.$ZD)(n.y)} L${(0,m.$ZD)(r.x)},${(0,m.$ZD)(r.y)} `:`${(0,m.$ZD)(r.x)},${(0,m.$ZD)(r.y)} `}function ng(e,t){let{a:n,b:r,c:i,d:o}=e;return m.B08.Equals(n,o)?"":`${t?`M${(0,m.$ZD)(n.x)},${(0,m.$ZD)(n.y)}`:""}C${(0,m.$ZD)(r.x)},${(0,m.$ZD)(r.y)} ${(0,m.$ZD)(i.x)},${(0,m.$ZD)(i.y)} ${(0,m.$ZD)(o.x)},${(0,m.$ZD)(o.y)}`}
119function nm(e,t){let n=e.segments.reduce((e,t,n)=>e+ng(t,0===n),"");return t&&(n+="Z"),n}function ny(e,t=!1){if(!(e instanceof m.qvd))return nm(e,t);{let n;return n=e.segments.reduce((e,t,n)=>e+nf(t,0===n),""),t&&(n+="Z"),n}}function nb(e){return{size:e,thinning:.4,streamline:0,smoothing:.5,simulatePressure:!0,last:!0}}function nx(e,t,n){let r=t.vertices,i=nb(n);return O(r,i)}function nw(e,t,n){let r=function(e,t,n){let r=nb(n);return D(L(nx(e,t,n),r),r)}(e,t,n);return(0,m.RKM)(r)}let nv=new m._cv;class nS extends m.EeJ{static type="line";static props=m.BGI;static migrations=m.FHS;hideResizeHandles=()=>!0;hideRotateHandle=()=>!0;hideSelectionBoundsFg=()=>!0;hideSelectionBoundsBg=()=>!0;getDefaultProps(){let[e,t]=(0,m.H$$)(2);return{dash:"draw",size:"m",color:"black",spline:"line",points:{[e]:{id:e,index:e,x:0,y:0},[t]:{id:t,index:t,x:.1,y:.1}}}}getGeometry(e){return nj(e)}getHandles(e){return nv.get(e.props,()=>{let t=nj(e),n=nk(e),r=n.map(e=>({...e,id:e.index,type:"vertex",canSnap:!0}));for(let e=0;e<n.length-1;e++){let i=(0,m.eIg)(n[e].index,n[e+1].index),o=t.segments[e],s=o.midPoint();r.push({id:i,type:"create",index:i,x:s.x,y:s.y,canSnap:!0})}return r.sort(m.hl1)})}onResize=(e,t)=>
119{let{scaleX:n,scaleY:r}=t;return{props:{points:(0,m.FmS)(e.props.points,(e,{id:t,index:i,x:o,y:s})=>({id:t,index:i,x:o*n,y:s*r}))}}};onHandleDrag=(e,{handle:t})=>{if("vertex"===t.type)return{...e,props:{...e.props,points:{...e.props.points,[t.id]:{id:t.id,index:t.index,x:t.x,y:t.y}}}}};component(e){let t=eA(),n=nj(e),r=K[e.props.size],{dash:i,color:o}=e.props;if("line"===e.props.spline){if("solid"===i){let i=n.points,s="M"+i[0]+"L"+i.slice(1);return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(e$,{d:s,fill:"none",color:o,theme:t}),(0,_.jsx)("path",{d:s,stroke:t[o].solid,strokeWidth:r,fill:"none"})]})}if("dashed"===i||"dotted"===i){let s=n.points,a="M"+s[0]+"L"+s.slice(1);return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(e$,{d:a,fill:"none",color:o,theme:t}),(0,_.jsx)("g",{stroke:t[o].solid,strokeWidth:r,children:n.segments.map((e,t)=>{let{strokeDasharray:o,strokeDashoffset:s}=eV(e.length,r,{style:i,start:t>0?"outset":"none",end:t<n.segments.length-1?"outset":"none"});return(0,_.jsx)("path",{strokeDasharray:o,strokeDashoffset:s,d:nf(e,!0),fill:"none"},t)})})]})}if("draw"===i){let i=n.points,[s,a]=tR(e.id,i,r);return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(e$,{d:s,fill:"none",color:o,theme:t}),(0,_.jsx)("path",{d:a,stroke:t[o].solid,strokeWidth:r,fill:"none"})]})}}if("cubic"===e.props.spline){let s=ny(n);if("solid"===i)return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(e$,{d:s,fill:"none",color:o,theme:t}),(0,_.jsx)("path",{strokeWidth:r,stroke:t[o].solid,fill:"none",d:s})]});if("dashed"===i||"dotted"===i)return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(e$,{d:s,fill:"none",color:o,theme:t}),(0,_.jsx)("g",{stroke:t[o].solid,strokeWidth:r,children:n.segments.map((e,t)=>{let{strokeDasharray:o,strokeDashoffset:s}=eV(e.length,r,{style:i,start:t>0?"outset":"none",end:t<n.segments.length-1?"outset":"none"});return(0,_.jsx)("path",{strokeDasharray:o,strokeDashoffset:s,d:ng(e,!0),fill:"none"},t)})})]});if("draw"===i)return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(e$,{d:s,fill:"none",color:o,theme:t}),(0,_.jsx)("path",{d:nw(e,n,r),strokeWidth:1,stroke:t[o].solid,fill:t[o].solid})]})}}indicator(e){let t;let n=K[e.props.size],r=nj(e),{dash:i}=e.props;if("line"===e.props.spline){let o=r.points;if("solid"===i||"dotted"===i||"dashed"===i)t="M"+o[0]+"L"+o.slice(1);else{let[r]=tR(e.id,o,n);t=r}}else t=function(e,t,n){if("draw"===e.props.dash){let r=nx(e,t,n);return tu(r)}return ny(t)}(e,r,n);return(0,_.jsx)("path",{d:t})}toSvg(e,t){let n=(0,m.y6M)({isDarkMode:t.isDarkMode}),r=n[e.props.color].solid,i=nj(e),o=K[e.props.size];switch(e.props.dash){case"draw":{let t;if(i instanceof m._e1)t=nw(e,i,o);else{let[n,r]=tR(e.id,i.points,o);t=r}let n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("stroke-width",o+"px"),n.setAttribute("stroke",r),n.setAttribute("fill","none"),n.setAttribute("d",t),n}case"solid":{let e;if(i instanceof m._e1)e=nm(i,!1);else{let t=i.points;e="M"+t[0]+"L"+t.slice(1)}let t=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttribute("stroke-width",o+"px"),t.setAttribute("stroke",r),t.setAttribute("fill","none"),t.setAttribute("d",e),t}default:{let{segments:t}=i,n=document.createElementNS("http://www.w3.org/2000/svg","g");n.setAttribute("stroke",r),n.setAttribute("stroke-width",o.toString());let s=i instanceof m._e1?ng:nf;return t.forEach((r,i)=>{let a=document.createElementNS("http://www.w3.org/2000/svg","path"),{strokeDasharray:l,strokeDashoffset:c}=eV(r.length,o,{style:e.props.dash,start:i>0?"outset":"none",end:i<t.length-1?"outset":"none"});a.setAttribute("stroke-dasharray",l.toString()),a.setAttribute("stroke-dashoffset",c.toString()),a.setAttribute("d",s(r,!0)),a.setAttribute("fill","none"),n.appendChild(a)}),n}}}getHandleSnapGeometry(e){let t=nk(e);return{points:t,getSelfSnapPoints:n=>{let r=this.getHandles(e).filter(e=>"vertex"===e.type).findIndex(e=>e.id===n.id);return t.filter((e,t)=>Math.abs(t-r)>1).map(m.B08.From)},getSelfSnapOutline:t=>{let n=this.getHandles(e).filter(e=>"vertex"===e.type).findIndex(e=>e.id===t.id),r=nj(e).segments.filter((e,t)=>
119t!==n-1&&t!==n);return r.length?new m.mqq({children:r}):null}}}}function nk(e){return Object.values(e.props.points).sort(m.hl1)}function nj(e){let t=nk(e).map(m.B08.From);switch(e.props.spline){case"cubic":return new m._e1({points:t});case"line":return new m.qvd({points:t})}}class n_ extends m.EeJ{static type="note";static props=m.m0n;static migrations=m.C_M;canEdit=()=>!0;hideResizeHandles=()=>!0;hideSelectionBoundsFg=()=>!0;getDefaultProps(){return{color:"black",size:"m",text:"",font:"draw",align:"middle",verticalAlign:"middle",growY:0,url:""}}getHeight(e){return 200+e.props.growY}getGeometry(e){let t=this.getHeight(e);return new m.zc7({width:200,height:t,isFilled:!0})}component(e){let{id:t,type:n,props:{color:r,font:i,size:o,align:s,text:a,verticalAlign:l}}=e,c=eA(),d="black"===r?"yellow":r;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)("div",{style:{position:"absolute",width:200,height:this.getHeight(e)},children:(0,_.jsxs)("div",{className:"tl-note__container",style:{color:c[d].solid,backgroundColor:c[d].solid},children:[(0,_.jsx)("div",{className:"tl-note__scrim"}),(0,_.jsx)(tA,{id:t,type:n,font:i,size:o,align:s,verticalAlign:l,text:a,labelColor:"black",wrap:!0})]})}),"url"in e.props&&e.props.url&&(0,_.jsx)(ti,{url:e.props.url,zoomLevel:this.editor.getZoomLevel()})]})}indicator(e){return(0,_.jsx)("rect",{rx:"6",width:(0,m.$ZD)(200),height:(0,m.$ZD)(this.getHeight(e))})}toSvg(e,t){t.addExportDef(eR(e.props.font));let n=(0,m.y6M)({isDarkMode:t.isDarkMode}),r=this.editor.getShapeGeometry(e).bounds,i=document.createElementNS("http://www.w3.org/2000/svg","g"),o="black"===e.props.color?"yellow":e.props.color,s=document.createElementNS("http://www.w3.org/2000/svg","rect");s.setAttribute("rx","10"),s.setAttribute("width","200"),s.setAttribute("height",r.height.toString()),s.setAttribute("fill",n[o].solid),s.setAttribute("stroke",n[o].solid),s.setAttribute("stroke-width","1"),i.appendChild(s);let a=document.createElementNS("http://www.w3.org/2000/svg","rect");a.setAttribute("rx","10"),a.setAttribute("width","200"),a.setAttribute("height",r.height.toString()),a.setAttribute("fill",n.background),a.setAttribute("opacity",".28"),i.appendChild(a);let l=t$({editor:this.editor,shape:e,font:m.p64[e.props.font],bounds:r});return l.setAttribute("fill",n.text),l.setAttribute("stroke","none"),i.appendChild(l),i}onBeforeCreate=e=>nE(this.editor,e,e.props.growY);onBeforeUpdate=(e,t)=>{if(e.props.text!==t.props.text||e.props.font!==t.props.font||e.props.size!==t.props.size)return nE(this.editor,t,e.props.growY)};onEditEnd=e=>{let{id:t,type:n,props:{text:r}}=e;r.trimEnd()!==e.props.text&&this.editor.updateShapes([{id:t,type:n,props:{text:r.trimEnd()}}])}}function nE(e,t,n=0){let r=e.textMeasure.measureText(t.props.text,{...V,fontFamily:X[t.props.font],fontSize:Y[t.props.size],maxWidth:166}),i=r.h+34,o=null;if(i>200?o=i-200:n&&(o=0),null!==o)return{...t,props:{...t.props,growY:o}}}let nC=new m._cv;class nP extends m.EeJ{static type="text";static props=m.XBb;static migrations=m.pLA;getDefaultProps(){return{color:"black",size:"m",w:8,text:"",font:"draw",align:"middle",autoSize:!0,scale:1}}getMinDimensions(e){return nC.get(e.props,e=>nI(this.editor,e))}getGeometry(e){let{scale:t}=e.props,{width:n,height:r}=this.getMinDimensions(e);return new m.zc7({width:n*t,height:r*t,isFilled:!0})}canEdit=()=>!0;isAspectRatioLocked=()=>!0;component(e){let{id:t,type:n,props:{text:r,color:i}}=e,o=(0,m.y6M)({isDarkMode:this.editor.user.getIsDarkMode()}),{width:s,height:a}=this.getMinDimensions(e),{rInput:l,isEmpty:c,isEditing:d,handleFocus:u,handleChange:h,handleKeyDown:p,handleBlur:f,handleInputPointerDown:g,handleDoubleClick:y}=e3(t,n,r);return(0,_.jsx)(m.G7H,{id:e.id,children:(0,_.jsxs)("div",{className:"tl-text-shape__wrapper tl-text-shadow","data-font":e.props.font,"data-align":e.props.align,"data-hastext":!c,"data-isediting":d,"data-textwrap":!0,style:{fontSize:W[e.props.size],lineHeight:W[e.props.size]*V.lineHeight+"px",transform:`scale(${e.props.scale})`,transformOrigin:"top left",width:Math.max(1,s),height:Math.max(W[e.props.size]*V.lineHeight,a),color:o[i].solid},children:[(0,_.jsx)("div",{className:"tl-text tl-text-content",dir:"ltr",children:r}),d?(0,_.jsx)("textarea",{ref:l,className:"tl-text tl-text-input",n
119ame:"text",tabIndex:-1,autoComplete:"false",autoCapitalize:"false",autoCorrect:"false",autoSave:"false",autoFocus:!0,placeholder:"",spellCheck:"true",wrap:"off",dir:"auto",datatype:"wysiwyg",defaultValue:r,onFocus:u,onChange:h,onKeyDown:p,onBlur:f,onTouchEnd:m.beA,onContextMenu:m.beA,onPointerDown:g,onDoubleClick:y}):null]})})}indicator(e){let t=this.editor.getShapeGeometry(e).bounds,n=(0,m.jE2)();return e.props.autoSize&&n.getEditingShapeId()===e.id?null:(0,_.jsx)("rect",{width:(0,m.$ZD)(t.width),height:(0,m.$ZD)(t.height)})}toSvg(e,t){t.addExportDef(eR(e.props.font));let n=(0,m.y6M)({isDarkMode:t.isDarkMode}),r=this.editor.getShapeGeometry(e).bounds,i=e.props.text,o=r.width/(e.props.scale??1),s=r.height/(e.props.scale??1),a={fontSize:W[e.props.size],fontFamily:m.p64[e.props.font],textAlign:e.props.align,verticalTextAlign:"middle",width:o,height:s,padding:0,lineHeight:V.lineHeight,fontStyle:"normal",fontWeight:"normal",overflow:"wrap"},l=n[e.props.color].solid,c=document.createElementNS("http://www.w3.org/2000/svg","g"),d=eL(this.editor,this.editor.textMeasure.measureTextSpans(i,a),{...a,stroke:n.background,strokeWidth:2,fill:n.background,padding:0}),u=d.cloneNode(!0);return u.setAttribute("fill",l),u.setAttribute("stroke","none"),c.append(d),c.append(u),c}onResize=(e,t)=>
119{let{initialBounds:n,initialShape:r,scaleX:i,handle:o}=t;if("scale_shape"===t.mode||"right"!==o&&"left"!==o)return{id:e.id,type:e.type,...function(e,{initialBounds:t,scaleX:n,scaleY:r,newPoint:i}){let o=Math.max(.01,Math.min(Math.abs(n),Math.abs(r))),s=new m.B08(0,0);n<0&&(s.x=-(t.width*o)),r<0&&(s.y=-(t.height*o));let{x:a,y:l}=m.B08.Add(i,s.rot(e.rotation));return{x:a,y:l,props:{scale:o*e.props.scale}}}(e,t)};{let t=n.width,s=t*i,a=new m.B08(0,0);s=Math.max(1,Math.abs(s)),"left"===o?(a.x=t-s,i<0&&(a.x+=s)):i<0&&(a.x-=s);let{x:l,y:c}=a.rot(e.rotation).add(r);return{id:e.id,type:e.type,x:l,y:c,props:{w:s/r.props.scale,autoSize:!1}}}};onBeforeCreate=e=>{if(!e.props.autoSize||e.props.text.trim())return;let t=this.getMinDimensions(e);return{...e,x:e.x-t.width/2,y:e.y-t.height/2}};onEditEnd=e=>{let{id:t,type:n,props:{text:r}}=e,i=e.props.text.trimEnd();0===i.length?this.editor.deleteShapes([e.id]):i!==e.props.text&&this.editor.updateShapes([{id:t,type:n,props:{text:r.trimEnd()}}])};onBeforeUpdate=(e,t)=>{let n;if(!t.props.autoSize)return;let r=e.props.size!==t.props.size||e.props.align!==t.props.align||e.props.font!==t.props.font||1!==e.props.scale&&1===t.props.scale,i=e.props.text!==t.props.text;if(!r&&!i)return;let o=this.getMinDimensions(e),s=nI(this.editor,t.props),a=o.width*e.props.scale,l=o.height*e.props.scale,c=s.width*t.props.scale,d=s.height*t.props.scale;switch(t.props.align){case"middle":n=new m.B08((c-a)/2,i?0:(d-l)/2);break;case"end":n=new m.B08(c-a,i?0:(d-l)/2);break;default:if(i)break;n=new m.B08(0,(d-l)/2)}if(!n)return{...t,props:{...t.props,w:c}};{n.rot(t.rotation);let{x:e,y:r}=t;return{...t,x:e-n.x,y:r-n.y,props:{...t.props,w:c}}}};onDoubleClickEdge=e=>e.props.autoSize?1!==e.props.scale?{id:e.id,type:e.type,props:{scale:1}}:void 0:{id:e.id,type:e.type,props:{autoSize:!0}}}function nI(e,t){let{font:n,text:r,autoSize:i,size:o,w:s}=t,a=i?16:Math.max(16,s),l=W[o],c=e.textMeasure.measureText(r,{...V,fontFamily:X[n],fontSize:l,maxWidth:i?null:Math.floor(Math.max(a,s))});return i&&(c.w+=1),{width:Math.max(a,c.w),height:Math.max(l,c.h)}}class nT extends m.StR{static type="video";static props=m.p$I;static migrations=m.lY$;canEdit=()=>!0;isAspectRatioLocked=()=>!0;getDefaultProps(){return{w:100,h:100,assetId:null,time:0,playing:!0,url:""}}component(e){return(0,_.jsx)(nM,{shape:e,videoUtil:this})}indicator(e){return(0,_.jsx)("rect",{width:(0,m.$ZD)(e.props.w),height:(0,m.$ZD)(e.props.h)})}toSvg(e){let t=document.createElementNS("http://www.w3.org/2000/svg","g"),n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","href",function(e){let t=e.split(":")[1],n=document.querySelector(`.tl-video-shape-${t}`);if(n){let e=document.createElement("canvas");return e.width=n.videoWidth,e.height=n.videoHeight,e.getContext("2d").drawImage(n,0,0),e.toDataURL("image/png")}throw Error("Video with not found when attempting serialization.")}(e.id)),n.setAttribute("width",e.props.w.toString()),n.setAttribute("height",e.props.h.toString()),t.appendChild(n),t}}let nM=(0,m.jas)(function(e){let{shape:t,videoUtil:n}=e,r=n.editor.getShapeGeometry(t).bounds.w*n.editor.getZoomLevel()>=110,i=t.props.assetId?n.editor.getAsset(t.props.assetId):null,{time:o,playing:s}=t.props,a=(0,m.YzH)(t.id),l=nl(),c=E.useRef(null),d=E.useCallback(e=>{let r=e.currentTarget;n.editor.updateShapes([{type:"video",id:t.id,props:{playing:!0,time:r.currentTime}}])},[t.id,n.editor]),u=E.useCallback(e=>{let r=e.currentTarget;n.editor.updateShapes([{type:"video",id:t.id,props:{playing:!1,time:r.currentTime}}])},[t.id,n.editor]),h=E.useCallback(e=>{let r=e.currentTarget;a&&n.editor.updateShapes([{type:"video",id:t.id,props:{time:r.currentTime}}])},[a,t.id,n.editor]),[p,f]=E.useState(!1),g=E.useCallback(e=>{let t=e.currentTarget;o!==t.currentTime&&(t.currentTime=o),s||t.pause(),f(!0)},[s,o]);return E.useEffect(()=>{let e=c.current;e&&(p&&!a&&o!==e.currentTime&&(e.currentTime=o),a&&document.activeElement!==e&&e.focus())},[a,p,o]),E.useEffect(()=>{if(l){let e=c.current;e.pause(),e.currentTime=0}},[c,l]),(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(m.G7H,{id:t.id,children:(0,_.jsx)("div",{className:"tl-counter-scaled",children:i?.props.src?(0,_.jsx)("video",{ref:c,style:a?{pointerEvents:"all"}:void 0,className:`tl-video tl-video-shape-${t.id.split(":")[1]}
119`,width:"100%",height:"100%",draggable:!1,playsInline:!0,autoPlay:!0,muted:!0,loop:!0,disableRemotePlayback:!0,disablePictureInPicture:!0,controls:a&&r,onPlay:d,onPause:u,onTimeUpdate:h,onLoadedData:g,hidden:!p,children:(0,_.jsx)("source",{src:i.props.src})}):null})}),"url"in t.props&&t.props.url&&(0,_.jsx)(ti,{url:t.props.url,zoomLevel:n.editor.getZoomLevel()})]})}),nA=[nP,ta,tS,t9,n_,nS,tM,e9,nt,tE,nh,nT];class n$ extends m.nui{static id="erasing";info={};scribbleId="id";markId="";excludedShapeIds=new Set;onEnter=e=>{this.markId="erase scribble begin",this.editor.mark(this.markId),this.info=e;let{originPagePoint:t}=this.editor.inputs;this.excludedShapeIds=new Set(this.editor.getCurrentPageShapes().filter(e=>{if(this.editor.isShapeOrAncestorLocked(e))return!0;if(this.editor.isShapeOfType(e,"group")||this.editor.isShapeOfType(e,"frame")){let n=this.editor.getPointInShapeSpace(e,t),r=this.editor.getShapeGeometry(e);return r.bounds.containsPoint(n)}return!1}).map(e=>e.id));let n=this.editor.scribbles.addScribble({color:"muted-1",size:12});this.scribbleId=n.id,this.update()};pushPointToScribble=()=>{let{x:e,y:t}=this.editor.inputs.currentPagePoint;this.editor.scribbles.addPoint(this.scribbleId,e,t)};onExit=()=>{this.editor.scribbles.stop(this.scribbleId)};onPointerMove=()=>{this.update()};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};update(){let e=this.editor.getErasingShapeIds(),t=this.editor.getZoomLevel(),n=this.editor.getCurrentPageShapes(),{inputs:{currentPagePoint:r,previousPagePoint:i}}=this.editor,{excludedShapeIds:o}=this;this.pushPointToScribble();let s=new Set(e);for(let e of n){if(this.editor.isShapeOfType(e,"group"))continue;let n=this.editor.getShapeMask(e.id);if(n&&!(0,m.Ofd)(r,n))continue;let o=this.editor.getShapeGeometry(e),a=this.editor.getPointInShapeSpace(e,i),l=this.editor.getPointInShapeSpace(e,r);o.hitTestLineSegment(a,l,m.wMU/t)&&s.add(this.editor.getOutermostSelectableShape(e).id)}this.editor.setErasingShapes([...s].filter(e=>!o.has(e)))}complete(){this.editor.deleteShapes(this.editor.getCurrentPageState().erasingShapeIds),this.editor.setErasingShapes([]),this.parent.transition("idle")}cancel(){this.editor.setErasingShapes([]),this.editor.bailToMark(this.markId),this.parent.transition("idle",this.info)}}class nD extends m.nui{static id="idle";onPointerDown=e=>{this.parent.transition("pointing",e)};onCancel=()=>{this.editor.setCurrentTool("select")}}class nO extends m.nui{static id="pointing";onEnter=()=>{let e=this.editor.getZoomLevel(),t=this.editor.getCurrentPageShapesSorted(),{inputs:{currentPagePoint:n}}=this.editor,r=new Set,i=r.size;for(let o=t.length,s=o-1;s>=0;s--){let o=t[s];if(!(this.editor.isShapeOrAncestorLocked(o)||this.editor.isShapeOfType(o,"group"))&&this.editor.isPointInShape(o,n,{hitInside:!1,margin:m.wMU/e})){let e=this.editor.getOutermostSelectableShape(o);if(this.editor.isShapeOfType(e,"frame")&&r.size>i)break;r.add(e.id)}}this.editor.setErasingShapes([...r])};onPointerMove=e=>{this.editor.inputs.isDragging&&this.parent.transition("erasing",e)};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.cancel()};complete(){let e=this.editor.getErasingShapeIds();e.length&&(this.editor.mark("erase end"),this.editor.deleteShapes(e)),this.editor.setErasingShapes([]),this.parent.transition("idle")}cancel(){this.editor.setErasingShapes([]),this.parent.transition("idle")}}class nB extends m.nui{static id="eraser";static initial="idle";static children=()=>[nD,nO,n$];onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})}}class nL extends m.nui{static id="dragging";onEnter=()=>{this.update()};onPointerMove=()=>{this.update()};onPointerUp=()=>{this.complete()};onCancel=()=>{this.complete()};onComplete=()=>{this.complete()};update(){let{currentScreenPoint:e,previousScreenPoint:t}=this.editor.inputs,n=m.B08.Sub(e,t);(Math.abs(n.x)>0||Math.abs(n.y)>0)&&this.editor.pan(n)}complete(){this.editor.slideCamera({speed:Math.min(2,this.editor.inputs.pointerVelocity.len()),direction:this.editor.inputs.pointerVelocity,friction:m.$Gp}),this.parent.transition("idle")}}class nR extends m.nui{static id="idle";onEnter=()=>{this.editor.setCursor({type:"grab",rotation:0})};onPointerDown=e=>{this.parent.transition("pointing",e)};onCancel=()=>{this.editor.setCurrentTool("select")}}class nN extends m.nui{static id="pointing";onEnter=()=>{this.editor.stopCameraAnimation(),this.editor.updateInstanceState({cursor:{type:"grabbing",rotation:0}},{ephemeral:!0})};onPointerMove=e=>{this.editor.inputs.isDragging&&this.parent.transition("dragging",e)};onPointerUp=()=>{this.complete()};onCancel=()=>{this.complete()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.complete()};complete(){this.parent.transition("idle")}}class nz extends m.nui{static id="hand";static initial="idle";static children=()=>[nR,nN,nL];onDoubleClick=e=>{if("settle"===e.phase){let{currentScreenPoint:e}=this.editor.inputs;this.editor.zoomIn(e,{duration:220,easing:m.Ljl.easeOutQuint})}};onTripleClick=e=>{if("settle"===e.phase){let{currentScreenPoint:e}=this.editor.inputs;this.editor.zoomOut(e,{duration:320,easing:m.Ljl.easeOutQuint})}};onQuadrupleClick=e=>{if("settle"===e.phase){let e=this.editor.getZoomLevel(),{inputs:{currentScreenPoint:t}}=this.editor;1===e?this.editor.zoomToFit({duration:400,easing:m.Ljl.easeOutQuint}):this.editor.resetZoom(t,{duration:320,easing:m.Ljl.easeOutQuint})}}}class nF extends m.nui{static id="idle";onPointerDown=e=>{this.parent.transition("lasering",e)}}class nU extends m.nui{static id="lasering";scribbleId="id";onEnter=()=>{let e=this.editor.scribbles.addScribble({color:"laser",opacity:.7,size:4,delay:1200,shrink:.05,taper:!0});this.scribbleId=e.id,this.pushPointToScribble()};onExit=()=>{this.editor.scribbles.stop(this.scribbleId)};onPointerMove=()=>{this.pushPointToScribble()};onPointerUp=()=>{this.complete()};pushPointToScribble=()=>{let{x:e,y:t}=this.editor.inputs.currentPagePoint;this.editor.scribbles.addPoint(this.scribbleId,e,t)};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};complete(){this.parent.transition("idle")}cancel(){this.parent.transition("idle")}}class nH extends m.nui{static id="laser";static initial="idle";static children=()=>[nF,nU];onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})}}class nZ extends m.nui{static id="brushing";info={};brush=new m.xuv;initialSelectedShapeIds=[];excludedShapeIds=new Set;isWrapMode=!1;
119initialStartShape=null;onEnter=e=>{let{altKey:t,currentPagePoint:n}=this.editor.inputs;if(this.isWrapMode=this.editor.user.getIsWrapMode(),t){this.parent.transition("scribble_brushing",e);return}this.excludedShapeIds=new Set(this.editor.getCurrentPageShapes().filter(e=>this.editor.isShapeOfType(e,"group")||this.editor.isShapeOrAncestorLocked(e)).map(e=>e.id)),this.info=e,this.initialSelectedShapeIds=this.editor.getSelectedShapeIds().slice(),this.initialStartShape=this.editor.getShapesAtPoint(n)[0],this.onPointerMove()};onExit=()=>{this.initialSelectedShapeIds=[],this.editor.updateInstanceState({brush:null})};onTick=()=>{(0,m.lGk)(this.editor)};onPointerMove=()=>{this.hitTestShapes()};onPointerUp=()=>{this.complete()};onComplete=()=>{this.complete()};onCancel=e=>{this.editor.setSelectedShapes(this.initialSelectedShapeIds,{squashing:!0}),this.parent.transition("idle",e)};onKeyDown=e=>{this.editor.inputs.altKey?this.parent.transition("scribble_brushing",e):this.hitTestShapes()};onKeyUp=()=>{this.hitTestShapes()};complete(){this.parent.transition("idle")}hitTestShapes(){let e,t,n,r,i,o;let s=this.editor.getZoomLevel(),a=this.editor.getCurrentPageShapes(),l=this.editor.getCurrentPageId(),{inputs:{originPagePoint:c,currentPagePoint:d,shiftKey:u,ctrlKey:h}}=this.editor;this.brush.setTo(m.xuv.FromPoints([c,d]));let p=new Set(u?this.initialSelectedShapeIds:[]),{corners:f}=this.brush,{excludedShapeIds:g,isWrapMode:y}=this,b=y?!h:h;for(let c=0,u=a.length;c<u;c++)if(n=a[c],!(g.has(n.id)||p.has(n.id))&&(r=this.editor.getShapePageBounds(n))){if(this.brush.contains(r)){this.handleHit(n,d,l,p,f);continue}if(!(b||this.editor.isShapeOfType(n,"frame"))&&this.brush.collides(r)){let r=this.editor.getShapeGeometry(n);if(!(i=this.editor.getShapePageTransform(n)))continue;o=i.clone().invert().applyToPoints(f);for(let i=0;i<o.length;i++)if(e=o[i],t=o[(i+1)%o.length],r.hitTestLineSegment(e,t,m.wMU/s)){this.handleHit(n,d,l,p,f);break}}}this.editor.updateInstanceState({brush:{...this.brush.toJson()}}),this.editor.setSelectedShapes(Array.from(p),{squashing:!0})}onInterrupt=()=>{this.editor.updateInstanceState({brush:null})};handleHit(e,t,n,r,i){if(e.parentId===n){r.add(e.id);return}let o=this.editor.getOutermostSelectableShape(e),s=this.editor.getShapeMask(o.id);(!s||(0,m.UQR)(s,i)||(0,m.Ofd)(t,s))&&r.add(o.id)}}function nV(e){let t=e.getZoomLevel(),{inputs:{currentPagePoint:n}}=e;return e.getShapeAtPoint(n,{hitInside:!1,hitLabels:!1,margin:m.wMU/t,renderingOnly:!0})??e.getSelectedShapeAtPoint(n)}function nK(e,t,n){if(!t)throw Error("Needs to translate a cropped shape!");let{crop:r}=t.props;if(!r)return;let i=e.inputs.shiftKey?Math.abs(n.x)<Math.abs(n.y)?"x":"y":null;"x"===i?n.x=0:"y"===i&&(n.y=0),n.rot(-t.rotation);let o=1/(r.bottomRight.x-r.topLeft.x)*t.props.w,s=1/(r.bottomRight.y-r.topLeft.y)*t.props.h,a=r.bottomRight.y-r.topLeft.y,l=r.bottomRight.x-r.topLeft.x,c=(0,m.p$x)(r);c.topLeft.x=Math.min(1-l,Math.max(0,c.topLeft.x-n.x/o)),c.topLeft.y=Math.min(1-a,Math.max(0,c.topLeft.y-n.y/s)),c.bottomRight.x=c.topLeft.x+l,c.bottomRight.y=c.topLeft.y+a;let d={id:t.id,type:t.type,props:{crop:c}};return d}class nW extends m.nui{static id="idle";onEnter=()=>{this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0});let e=this.editor.getOnlySelectedShape();this.editor.on("change-history",this.cleanupCroppingState),e&&(this.editor.mark("crop"),this.editor.setCroppingShape(e.id))};onExit=()=>{this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0}),this.editor.off("change-history",this.cleanupCroppingState)};onCancel=()=>{this.editor.setCroppingShape(null),this.editor.setCurrentTool("select.idle",{})};onPointerDown=e=>{if(!this.editor.getIsMenuOpen()){if(e.ctrlKey){this.cancel(),this.editor.root.handleEvent(e);return}switch(e.target){case"canvas":{let t=nV(this.editor);if(t&&!this.editor.isShapeOfType(t,"group")){this.onPointerDown({...e,shape:t,target:"shape"});return}this.cancel(),this.editor.root.handleEvent(e);break}case"shape":if(e.shape.id===this.editor.getCroppingShapeId()){this.editor.setCurrentTool("select.crop.pointing_crop",e);return}this.editor.getShapeUtil(e.shape)?.canCrop(e.shape)?(this.editor.setCroppingShape(e.shape.id),this.editor.setSelectedShapes([e.shape.id]),this.editor.setCurrentTool("select.crop.pointing_crop",e)):(this.cancel(),this.editor.root.handleEvent(e));break;case"selection":switch(e.handle){case"mobile_rotate":case"top_left_rotate":case"top_right_rotate":case"bottom_left_rotate":case"bottom_right_rotate":this.editor.setCurrentTool("select.pointing_rotate_handle",{...e,onInteractionEnd:"select.crop"});break;
119case"top":case"right":case"bottom":case"left":case"top_left":case"top_right":case"bottom_left":case"bottom_right":this.editor.setCurrentTool("select.pointing_crop_handle",{...e,onInteractionEnd:"select.crop"});break;default:this.cancel()}}}};onDoubleClick=e=>{if(this.editor.inputs.shiftKey||"up"!==e.phase)return;let t=this.editor.getCroppingShapeId();if(!t)return;let n=this.editor.getShape(t);if(!n)return;let r=this.editor.getShapeUtil(n);r&&"selection"===e.target&&r.onDoubleClickEdge?.(n)};onKeyDown=()=>{this.nudgeCroppingImage(!1)};onKeyRepeat=()=>{this.nudgeCroppingImage(!0)};onKeyUp=e=>{"Enter"===e.code&&(this.editor.setCroppingShape(null),this.editor.setCurrentTool("select.idle",{}))};cancel(){this.editor.setCroppingShape(null),this.editor.setCurrentTool("select.idle",{})}cleanupCroppingState=()=>{this.editor.getCroppingShapeId()||this.editor.setCurrentTool("select.idle",{})};nudgeCroppingImage(e=!1){let{editor:{inputs:{keys:t}}}=this,n=t.has("ShiftLeft"),r=new m.B08(0,0);if(t.has("ArrowLeft")&&(r.x+=1),t.has("ArrowRight")&&(r.x-=1),t.has("ArrowUp")&&(r.y+=1),t.has("ArrowDown")&&(r.y-=1),r.equals(new m.B08(0,0)))return;n&&r.mul(10);let i=this.editor.getShape(this.editor.getCroppingShapeId());if(!i)return;let o=nK(this.editor,i,r);o&&(e||this.editor.mark("translate crop"),this.editor.updateShapes([o]))}}class nY extends m.nui{static id="pointing_crop";onCancel=()=>{this.editor.setCurrentTool("select.crop.idle",{})};onPointerMove=e=>{this.editor.inputs.isDragging&&this.editor.setCurrentTool("select.crop.translating_crop",e)};onPointerUp=e=>{this.editor.setCurrentTool("select.crop.idle",e)}}class nG extends m.nui{static id="translating_crop";info={};markId="translating crop";snapshot={};onEnter=e=>{this.info=e,this.snapshot=this.createSnapshot(),this.editor.mark(this.markId),this.editor.setCursor({type:"move",rotation:0}),this.updateShapes()};onExit=()=>{this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0})};onPointerMove=()=>{this.updateShapes()};onPointerUp=()=>{this.complete()};onComplete=()=>{this.complete()};onCancel=()=>{this.cancel()};onKeyDown=e=>{switch(e.key){case"Alt":case"Shift":this.updateShapes();return}};onKeyUp=e=>{switch(e.key){case"Enter":this.complete();return;case"Alt":case"Shift":this.updateShapes()}};complete(){this.updateShapes(),this.editor.setCurrentTool("select.crop.idle",this.info)}cancel(){this.editor.bailToMark(this.markId),this.editor.setCurrentTool("select.crop.idle",this.info)}createSnapshot(){let e=this.editor.getOnlySelectedShape();return{shape:e}}updateShapes(){let e=this.snapshot.shape;if(!e)return;let{originPagePoint:t,currentPagePoint:n}=this.editor.inputs,r=n.clone().sub(t),i=nK(this.editor,e,r);i&&this.editor.updateShapes([i],{squashing:!0})}}class nX extends m.nui{static id="crop";static initial="idle";static children=()=>[nW,nG,nY]}let nq={bottom:"ns-resize",top:"ns-resize",left:"ew-resize",right:"ew-resize",bottom_left:"nesw-resize",bottom_right:"nwse-resize",top_left:"nwse-resize",top_right:"nesw-resize",bottom_left_rotate:"swne-rotate",bottom_right_rotate:"senw-rotate",top_left_rotate:"nwse-rotate",top_right_rotate:"nesw-rotate",mobile_rotate:"grabbing"};class nJ extends m.nui{static id="pointing_resize_handle";info={};updateCursor(){let e=this.editor.getSelectedShapes(),t=nq[this.info.handle];this.editor.updateInstanceState({cursor:{type:t,rotation:1===e.length?e[0].rotation:0}})}onEnter=e=>{this.info=e,this.updateCursor()};onPointerMove=()=>{let e=this.editor.inputs.isDragging;e&&this.parent.transition("resizing",this.info)};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};complete(){this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,{}):this.parent.transition("idle")}cancel(){this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,{}):this.parent.transition("idle")}}class nQ extends m.nui{static id="cropping";info={};markId="";snapshot={};onEnter=e=>{this.info=e,this.markId="cropping",this.editor.mark(this.markId),this.snapshot=this.createSnapshot(),this.updateShapes()};onPointerMove=()=>{this.updateShapes()};onPointerUp=()=>{this.complete()};onComplete=()=>{this.complete()};onCancel=()=>{this.cancel()};
119updateCursor(){let e=this.editor.getSelectedShapes()[0];if(!e)return;let t=nq[this.info.handle];this.editor.updateInstanceState({cursor:{type:t,rotation:e.rotation}})}getDefaultCrop=()=>({topLeft:{x:0,y:0},bottomRight:{x:1,y:1}});updateShapes(){let{shape:e,cursorHandleOffset:t}=this.snapshot;if(!e)return;let n=this.editor.getShapeUtil("image");if(!n)return;let r=e.props,i=this.editor.inputs.currentPagePoint.clone().sub(t),o=this.editor.inputs.originPagePoint.clone().sub(t),s=i.clone().sub(o).rot(-e.rotation),a=r.crop??this.getDefaultCrop(),l=(0,m.p$x)(a),c=new m.B08(e.x,e.y),d=new m.B08(0,0),u=1/(a.bottomRight.x-a.topLeft.x)*r.w,h=1/(a.bottomRight.y-a.topLeft.y)*r.h,p=!1;switch(this.info.handle){case"top":case"top_left":case"top_right":{if(h<8)break;p=!0,l.topLeft.y=l.topLeft.y+s.y/h;let e=h*(l.bottomRight.y-l.topLeft.y);e<8?(l.topLeft.y=l.bottomRight.y-8/h,d.y=(l.topLeft.y-a.topLeft.y)*h):l.topLeft.y<=0?(l.topLeft.y=0,d.y=(l.topLeft.y-a.topLeft.y)*h):d.y=s.y;break}case"bottom":case"bottom_left":case"bottom_right":{if(h<8)break;p=!0,l.bottomRight.y=Math.min(1,l.bottomRight.y+s.y/h);let e=h*(l.bottomRight.y-l.topLeft.y);e<8&&(l.bottomRight.y=l.topLeft.y+8/h)}}switch(this.info.handle){case"left":case"top_left":case"bottom_left":{if(u<8)break;p=!0,l.topLeft.x=l.topLeft.x+s.x/u;let e=u*(l.bottomRight.x-l.topLeft.x);e<8?(l.topLeft.x=l.bottomRight.x-8/u,d.x=(l.topLeft.x-a.topLeft.x)*u):l.topLeft.x<=0?(l.topLeft.x=0,d.x=(l.topLeft.x-a.topLeft.x)*u):d.x=s.x;break}case"right":case"top_right":case"bottom_right":{if(u<8)break;p=!0,l.bottomRight.x=Math.min(1,l.bottomRight.x+s.x/u);let e=u*(l.bottomRight.x-l.topLeft.x);e<8&&(l.bottomRight.x=l.topLeft.x+8/u)}}if(!p)return;c.add(d.rot(e.rotation));let f={id:e.id,type:e.type,x:c.x,y:c.y,props:{crop:l,w:(l.bottomRight.x-l.topLeft.x)*u,h:(l.bottomRight.y-l.topLeft.y)*h}};this.editor.updateShapes([f],{squashing:!0}),this.updateCursor()}complete(){this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,this.info):(this.editor.setCroppingShape(null),this.parent.transition("idle"))}cancel(){this.editor.bailToMark(this.markId),this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,this.info):(this.editor.setCroppingShape(null),this.parent.transition("idle"))}createSnapshot(){let e=this.editor.getSelectionRotation(),{inputs:{originPagePoint:t}}=this.editor,n=this.editor.getOnlySelectedShape(),r=this.editor.getSelectionRotatedPageBounds(),i=m.B08.RotWith(r.getHandlePoint(this.info.handle),r.point,e),o=m.B08.Sub(t,i);return{shape:n,cursorHandleOffset:o}}}class n0 extends m.nui{static id="dragging_handle";shapeId="";initialHandle={};initialAdjacentHandle=null;initialPagePoint={};markId="";initialPageTransform;initialPageRotation;info={};isPrecise=!1;isPreciseId=null;pointingId=null;onEnter=e=>{let{shape:t,isCreating:n,handle:r}=e;if(this.info=e,this.parent.setCurrentToolIdMask(e.onInteractionEnd),this.shapeId=t.id,this.markId=n?`creating:${t.id}`:"dragging handle",n||this.editor.mark(this.markId),this.initialHandle=(0,m.v4J)(r),this.editor.isShapeOfType(t,"line")&&"create"===this.initialHandle.type){this.editor.updateShape({...t,props:{points:{...t.props.points,[r.index]:{id:r.index,index:r.index,x:r.x,y:r.y}}}});let e=this.editor.getShapeHandles(t),n=e.find(e=>e.index===r.index);this.initialHandle=(0,m.v4J)(n)}this.initialPageTransform=this.editor.getShapePageTransform(t),this.initialPageRotation=this.initialPageTransform.rotation(),this.initialPagePoint=this.editor.inputs.originPagePoint.clone(),this.editor.updateInstanceState({cursor:{type:n?"cross":"grabbing",rotation:0}},{ephemeral:!0});let i=this.editor.getShapeHandles(t).sort(m.hl1),o=i.findIndex(t=>t.id===e.handle.id);this.initialAdjacentHandle=null;for(let t=o+1;t<i.length;t++){let n=i[t];if("vertex"===n.type&&"middle"!==n.id&&n.id!==e.handle.id){this.initialAdjacentHandle=n;break}}if(!this.initialAdjacentHandle)for(let t=i.length-1;t>=0;t--){let n=i[t];if("vertex"===n.type&&"middle"!==n.id&&n.id!==e.handle.id){this.initialAdjacentHandle=n;break}}if(this.editor.isShapeOfType(t,"arrow")){let n=t.props[e.handle.id];this.isPrecise=!1,n?.type==="binding"?(this.editor.setHintingShapes([n.boundShapeId]),this.isPrecise=n.isPrecise,this.isPrecise?this.isPreciseId=n.boundShapeId:this.resetExactTimeout()):this.editor.setHintingShapes([])}this.update(),this.editor.select(this.shapeId)};exactTimeout=-1;resetExactTimeout(){-1!==this.exactTimeout&&this.clearExactTimeout(),this.exactTimeout=setTimeout(()=>{this.getIsActive()&&!this.isPrecise&&(this.isPrecise=!0,this.isPreciseId=this.pointingId,this.update()),this.exactTimeout=-1},750)}clearExactTimeout(){-1!==this.exactTimeout&&(clearTimeout(this.exactTimeout),this.exactTimeout=-1)}onPointerMove=()=>{this.update()};onKeyDown=()=>{this.update()};onKeyUp=()=>{this.update()};onPointerUp=()=>{this.complete()};onComplete=()=>{this.complete()};onCancel=()=>{this.cancel()};onExit=()=>{this.parent.setCurrentToolIdMask(void 0),this.editor.setHintingShapes([]),this.editor.snaps.clearIndicators(),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0})};complete(){this.editor.snaps.clearIndicators();let{onInteractionEnd:e}=this.info;if(this.editor.getInstanceState().isToolLocked&&e){this.editor.setCurrentTool(e,{shapeId:this.shapeId});return}this.parent.transition("idle")}cancel(){this.editor.bailToMark(this.markId),this.editor.snaps.clearIndicators();let{onInteractionEnd:e}=this.info;if(e){this.editor.setCurrentTool(e,{shapeId:this.shapeId});return}this.parent.transition("idle")}update(){let{editor:e,shapeId:t,initialPagePoint:n}=this,{initialHandle:r,initialPageRotation:i,initialAdjacentHandle:o}=this,s=this.editor.getHintingShapeIds(),a=this.editor.user.getIsSnapMo
119de(),{snaps:l,inputs:{currentPagePoint:c,shiftKey:d,ctrlKey:u,altKey:h,pointerVelocity:p}}=e,f=this.info.shape,g=e.getShape(t);if(!g)return;let y=e.getShapeUtil(g),b=c.clone().sub(n).rot(-i).add(r);if(d&&o&&"middle"!==r.id){let e=m.B08.Angle(o,b),t=(0,m.nDY)(e,24),n=t-e;b=m.B08.RotWith(b,o,n)}e.snaps.clearIndicators();let x={...r,x:b.x,y:b.y};if(r.canSnap&&(a?!u:u)){let n=e.getShapePageTransform(g.id);if(!n)throw Error("Expected a page transform");let i=l.handles.snapHandle({currentShapeId:t,handle:x});i&&(i.nudge.rot(-e.getShapeParentTransform(g).rotation()),b.add(i.nudge),x={...r,x:b.x,y:b.y})}let w=y.onHandleDrag?.(g,{handle:x,isPrecise:this.isPrecise||h,initial:f}),v={...g,...w};if(r.canBind){let t=v.props[r.id];t?.type==="binding"?s[0]!==t.boundShapeId&&(e.setHintingShapes([t.boundShapeId]),this.pointingId=t.boundShapeId,this.isPrecise=.5>p.len()||h,this.isPreciseId=this.isPrecise?t.boundShapeId:null,this.resetExactTimeout()):s.length>0&&(e.setHintingShapes([]),this.pointingId=null,this.isPrecise=!1,this.isPreciseId=null,this.resetExactTimeout())}w&&e.updateShapes([v],{squashing:!0})}}class n1 extends m.nui{static id="editing_shape";onEnter=()=>{let e=this.editor.getEditingShape();if(!e)throw Error("Entered editing state without an editing shape");eP(this.editor),this.editor.select(e)};onExit=()=>{let{editingShapeId:e}=this.editor.getCurrentPageState();if(!e)return;this.editor.setEditingShape(null);let t=this.editor.getShape(e),n=this.editor.getShapeUtil(t);n.onEditEnd?.(t)};onPointerMove=e=>{switch(e.target){case"shape":case"canvas":eP(this.editor);return}};onPointerDown=e=>{switch(e.target){case"canvas":{let t=nV(this.editor);if(t){this.onPointerDown({...e,shape:t,target:"shape"});return}break}case"shape":{let{shape:t}=e,n=this.editor.getEditingShape();if(!n)throw Error("Expected an editing shape!");if(t.type===n.type){if(this.editor.isShapeOfType(t,"geo")||this.editor.isShapeOfType(t,"arrow")){let r=this.editor.getShapeUtil(t).getGeometry(t),i=r.children[1];if(i){let r=this.editor.getPointInShapeSpace(t,this.editor.inputs.currentPagePoint);if(i.bounds.containsPoint(r)){if(t.id===n.id)return;this.parent.transition("pointing_shape",e);return}}}else{t.id===n.id?this.editor.isShapeOfType(t,"frame")&&this.editor.setEditingShape(null):this.parent.transition("pointing_shape",e);return}}}}this.parent.transition("idle",e),this.editor.root.handleEvent(e)};onComplete=e=>{this.parent.transition("idle",e)};onCancel=e=>{this.parent.transition("idle",e)}}function n2(e){let t=e.getOnlySelectedShape();return!!(t&&!e.isShapeOrAncestorLocked(t)&&e.getShapeUtil(t).canCrop(t))}function n8(e){let t=e.getSelectedShapeIds(),{shiftKey:n,altKey:r,currentPagePoint:i}=e.inputs,o=e.getShapeAtPoint(i,{hitInside:!1,margin:m.wMU/e.getZoomLevel(),hitLabels:!0,renderingOnly:!0,filter:e=>!e.isLocked});if(o){let i=e.getOutermostSelectableShape(o);if(n&&!r)e.cancelDoubleClick(),t.includes(i.id)?(e.mark("deselecting shape"),e.deselect(i)):(e.mark("shift selecting shape"),e.setSelectedShapes([...t,i.id]));else{let n;(n=i===o?o:i.id===e.getFocusedGroupId()||t.includes(i.id)?o:i)&&!t.includes(n.id)&&(e.mark("selecting shape"),e.select(n.id))}}else{if(n)return;{t.length>0&&(e.mark("selecting none"),e.selectNone());let n=e.getFocusedGroupId();if((0,m.YTh)(n)){let t=e.getShape(n);e.isPointInShape(t,i,{margin:0,hitInside:!0})||e.setFocusedGroup(null)}}}}class n3 extends m.nui{static id="idle";onEnter=()=>{this.parent.setCurrentToolIdMask(void 0),eP(this.editor),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0})};onPointerMove=()=>{eP(this.editor)};onPointerDown=e=>{if(this.editor.getIsMenuOpen())return;let t=e.ctrlKey&&n2(this.editor);if(e.ctrlKey&&!t){if("shape"===e.target&&this.isDarwin&&this.editor.inputs.keys.has("ControlLeft")&&!this.editor.isShapeOrAncestorLocked(e.shape)){this.parent.transition("pointing_shape",e);return}this.parent.transition("brushing",e);return}switch(e.target){case"canvas":{let t=nV(this.editor);if(t&&!t.isLocked){this.onPointerDown({...e,shape:t,target:"shape"});return}let n=this.editor.getSelectedShapeIds(),r=this.editor.getOnlySelectedShape(),{inputs:{currentPagePoint:i}}=this.editor;if((n.length>1||r&&!this.editor.getShapeUtil(r).hideSelectionBoundsBg(r))&&n9(this.editor,i)){this.onPointerDown({...e,target:"selection"});return}this.parent.transition("pointing_canvas",e);break}case"shape":{let{shape:t}=e;if(this.isOverArrowLabelTest(t)){this.parent.transition("pointing_arrow_label",e);break}if(this.editor.isShapeOrAncestorLocked(t)){this.parent.transition("pointing_canvas",e);break}this.parent.transition("pointing_shape",e);break}case"handle":if(this.editor.getInstanceState().isReadonly)break;this.editor.inputs.altKey?this.parent.transition("pointing_shape",e):this.parent.transition("pointing_handle",e);break;case"selection":switch(e.handle){case"mobile_rotate":case"top_left_rotate":case"top_right_rotate":case"bottom_left_rotate":case"bottom_right_rotate":this.parent.transition("pointing_rotate_handle",e);break;
119case"top":case"right":case"bottom":case"left":case"top_left":case"top_right":case"bottom_left":case"bottom_right":t?this.parent.transition("pointing_crop_handle",e):this.parent.transition("pointing_resize_handle",e);break;default:{let t=this.editor.getHoveredShape();if(t&&!this.editor.getSelectedShapeIds().includes(t.id)&&!t.isLocked){this.onPointerDown({...e,shape:t,target:"shape"});return}this.parent.transition("pointing_selection",e)}}}};onDoubleClick=e=>{if(!this.editor.inputs.shiftKey&&"up"===e.phase)switch(e.target){case"canvas":{let t=this.editor.getHoveredShape(),n=t&&!this.editor.isShapeOfType(t,"group")?t:this.editor.getSelectedShapeAtPoint(this.editor.inputs.currentPagePoint)??this.editor.getShapeAtPoint(this.editor.inputs.currentPagePoint,{margin:m.wMU/this.editor.getZoomLevel(),hitInside:!1}),r=this.editor.getFocusedGroupId();if(n){if(this.editor.isShapeOfType(n,"group")){n8(this.editor);return}{let e=this.editor.getShape(n.parentId);if(e&&this.editor.isShapeOfType(e,"group")){if(r&&e.id===r);else{n8(this.editor);return}}}this.onDoubleClick({...e,shape:n,target:"shape"});return}this.editor.inputs.shiftKey||this.handleDoubleClickOnCanvas(e);break}case"selection":{if(this.editor.getInstanceState().isReadonly)break;let t=this.editor.getOnlySelectedShape();if(t){let n=this.editor.getShapeUtil(t);if(!this.canInteractWithShapeInReadOnly(t))return;if("right"===e.handle||"left"===e.handle||"top"===e.handle||"bottom"===e.handle){let e=n.onDoubleClickEdge?.(t);if(e){this.editor.mark("double click edge"),this.editor.updateShapes([e]);return}}if(n.canCrop(t)&&!this.editor.isShapeOrAncestorLocked(t)){this.parent.transition("crop",e);return}this.shouldStartEditingShape(t)&&this.startEditingShape(t,e)}break}case"shape":{let{shape:t}=e,n=this.editor.getShapeUtil(t);if("video"!==t.type&&"embed"!==t.type&&this.editor.getInstanceState().isReadonly)break;if(n.onDoubleClick){let r=n.onDoubleClick?.(t);if(r){this.editor.updateShapes([r]);return}if(n.canCrop(t)&&!this.editor.isShapeOrAncestorLocked(t)){this.editor.mark("select and crop"),this.editor.select(e.shape?.id),this.parent.transition("crop",e);return}}this.shouldStartEditingShape(t)?this.startEditingShape(t,e):this.handleDoubleClickOnCanvas(e);break}case"handle":{if(this.editor.getInstanceState().isReadonly)break;let{shape:t,handle:n}=e,r=this.editor.getShapeUtil(t),i=r.onDoubleClickHandle?.(t,n);i?this.editor.updateShapes([i]):this.shouldStartEditingShape(t)&&this.startEditingShape(t,e)}}};onRightClick=e=>{switch(e.target){case"canvas":{let t=this.editor.getHoveredShape(),n=t&&!this.editor.isShapeOfType(t,"group")?t:this.editor.getShapeAtPoint(this.editor.inputs.currentPagePoint,{margin:m.wMU/this.editor.getZoomLevel(),hitInside:!1,hitLabels:!0,hitFrameInside:!1,renderingOnly:!0});if(n){this.onRightClick({...e,shape:n,target:"shape"});return}let r=this.editor.getSelectedShapeIds(),i=this.editor.getOnlySelectedShape(),{inputs:{currentPagePoint:o}}=this.editor;if((r.length>1||i&&!this.editor.getShapeUtil(i).hideSelectionBoundsBg(i))&&n9(this.editor,o)){this.onRightClick({...e,target:"selection"});return}this.editor.selectNone();break}case"shape":{let{selectedShapeIds:t}=this.editor.getCurrentPageState(),{shape:n}=e,r=this.editor.getOutermostSelectableShape(n,e=>!t.includes(e.id));t.includes(r.id)||(this.editor.mark("selecting shape"),this.editor.setSelectedShapes([r.id]))}}};onCancel=()=>{this.editor.getFocusedGroupId()!==this.editor.getCurrentPageId()&&this.editor.getSelectedShapeIds().length>0?this.editor.popFocusedGroupId():(this.editor.mark("clearing selection"),this.editor.selectNone())};onKeyDown=e=>{switch(e.code){case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":this.nudgeSelectedShapes(!1)}};onKeyRepeat=e=>{switch(e.code){case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":this.nudgeSelectedShapes(!0)}};onKeyUp=e=>{if("Enter"===e.code){let t=this.editor.getSelectedShapes();if(t.every(e=>this.editor.isShapeOfType(e,"group"))){this.editor.setSelectedShapes(t.flatMap(e=>this.editor.getSortedChildIdsForParent(e.id)));return}let n=this.editor.getOnlySelectedShape();if(n&&this.shouldStartEditingShape(n)){this.startEditingShape(n,{...e,target:"shape",shape:n});return}n2(this.editor)&&this.parent.transition("crop",e)}};shouldStartEditingShape(e=this.editor.getOnlySelectedShape()){return!(!e||this.editor.isShapeOrAncestorLocked(e)&&"embed"!==e.type)&&!!this.canInteractWithShapeInReadOnly(e)&&this.editor.getShapeUtil(e).canEdit(e)}startEditingShape(e,t){this.editor.isShapeOrAncestorLocked(e)&&"embed"!==e.type||(this.editor.mark("editing shape"),this.editor.setEditingShape(e.id),this.parent.transition("editing_shape",t))}isDarwin=window.navigator.userAgent.toLowerCase().indexOf("mac")>-1;isOverArrowLabelTest(e){if(!e)return!1;let t=this.editor.getPointInShapeSpace(e,this.editor.inputs.currentPagePoint);if(this.editor.isShapeOfType(e,"arrow")){let n=this.editor.getShapeGeometry(e).children[1];if(n&&(0,m.Ofd)(t,n.vertices))return!0}return!1}handleDoubleClickOnCanvas(e){if(this.editor.getInstanceState().isReadonly)return;this.editor.mark("creating text shape");let t=(0,m.F17)(),{x:n,y:r}=this.editor.inputs.currentPagePoint;this.editor.createShapes([{id:t,type:"text",x:n,y:r,props:{text:"",autoSize:!0}}]);let i=this.editor.getShape(t);if(!i)return;let o=this.editor.getShapeUtil(i);(!this.editor.getInstanceState().isReadonly||o.canEditInReadOnly(i))&&(this.editor.setEditingShape(t),this.editor.select(t),this.parent.transition("editing_shape",e))}nudgeSelectedShapes(e=!1){let{editor:{inputs:{keys:t}}}=this,n=t.has("ShiftLeft"),r=new m.B08(0,0);if(t.has("ArrowLeft")&&(r.x-=1),t.has("ArrowRight")&&(r.x+=1),t.has("ArrowUp")&&(r.y-=1),t.has("ArrowDown")&&(r.y+=1),r.equals(new m.B08(0,0)))return;e||this.editor.mark("nudge shapes");let{gridSize:i}=this.editor.getDocumentSettings(),o=this.editor.getInstanceState().isGridMode?n?i*n6:i:n?n5:n4;this.editor.nudgeShapes(this.editor.getSelectedShapeIds(),r.mul(o))}canInteractWithShapeInReadOnly(e){if(!this.editor.getInstanceState().isReadonly)return!0;let t=this.editor.getShapeUtil(e);return!!t.canEditInReadOnly(e)}}let n5=10,n4=1,n6=5;function n9(e,t){let n=e.getSelectionRotatedPageBounds();if(!n)return!1;let r=e.getSelectionRotation();return r?(0,m.Ofd)(t,n.corners.map(e=>m.B08.RotWith(e,n.point,r))):n.containsPoint(t)}class n7 extends m.nui{static id="pointing_arrow_label";shapeId="";markId="";info={};
119updateCursor(){this.editor.setCursor({type:"grabbing",rotation:0})}onEnter=e=>{let{shape:t}=e;this.parent.setCurrentToolIdMask(e.onInteractionEnd),this.info=e,this.shapeId=t.id,this.updateCursor();let n=this.editor.getShapeGeometry(t),r=n.children[1];if(!r)throw Error(`Expected to find an arrow label geometry for shape: ${t.id}`);let{currentPagePoint:i}=this.editor.inputs,o=this.editor.getPointInShapeSpace(t,i);this._labelDragOffset=m.B08.Sub(r.center,o),this.markId="label-drag start",this.editor.mark(this.markId),this.editor.setSelectedShapes([this.shapeId])};onExit=()=>{this.parent.setCurrentToolIdMask(void 0),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0})};_labelDragOffset=new m.B08(0,0);onPointerMove=()=>{let e;let{isDragging:t}=this.editor.inputs;if(!t)return;let n=this.editor.getShape(this.shapeId);if(!n)return;let r=this.editor.getArrowInfo(n),i=this.editor.getShapeGeometry(n),o=i.children[0],s=this.editor.getPointInShapeSpace(n,this.editor.inputs.currentPagePoint),a=o.nearestPoint(m.B08.Add(s,this._labelDragOffset));if(r.isStraight){let t=m.B08.Dist(r.start.point,r.end.point),n=m.B08.Dist(r.end.point,a);e=1-n/t}else{let{_center:t,measure:n,angleEnd:r,angleStart:o}=i.children[0];e=(0,m.rW9)(n,o,r,t.angle(a))}isNaN(e)&&(e=.5),this.editor.updateShape({id:n.id,type:n.type,props:{labelPosition:e}},{squashing:!0})};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};complete(){this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,{}):this.parent.transition("idle")}cancel(){this.editor.bailToMark(this.markId),this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,{}):this.parent.transition("idle")}}class re extends m.nui{static id="pointing_canvas";onEnter=()=>{let{inputs:e}=this.editor;!e.shiftKey&&this.editor.getSelectedShapeIds().length>0&&(this.editor.mark("selecting none"),this.editor.selectNone())};onPointerMove=e=>{this.editor.inputs.isDragging&&this.parent.transition("brushing",e)};onPointerUp=()=>{n8(this.editor),this.complete()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.parent.transition("idle")};complete(){this.parent.transition("idle")}}class rt extends m.nui{static id="pointing_crop_handle";info={};updateCursor(e){let t=nq[this.info.handle];this.editor.updateInstanceState({cursor:{type:t,rotation:e.rotation}})}onEnter=e=>{this.info=e,this.parent.setCurrentToolIdMask(e.onInteractionEnd);let t=this.editor.getSelectedShapes()[0];t&&(this.updateCursor(t),this.editor.setCroppingShape(t.id))};onExit=()=>{this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0}),this.parent.setCurrentToolIdMask(void 0)};onPointerMove=()=>{let e=this.editor.inputs.isDragging;e&&this.parent.transition("cropping",{...this.info,onInteractionEnd:this.info.onInteractionEnd})};onPointerUp=()=>{this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,this.info):(this.editor.setCroppingShape(null),this.parent.transition("idle"))};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};cancel(){this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,this.info):(this.editor.setCroppingShape(null),this.parent.transition("idle"))}}class rn extends m.nui{static id="pointing_handle";info={};onEnter=e=>{this.info=e;let{shape:t}=e;if(this.editor.isShapeOfType(t,"arrow")){let n=t.props[e.handle.id];n?.type==="binding"&&this.editor.setHintingShapes([n.boundShapeId])}this.editor.updateInstanceState({cursor:{type:"grabbing",rotation:0}},{ephemeral:!0})};onExit=()=>{this.editor.setHintingShapes([]),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0})};onPointerUp=()=>{this.parent.transition("idle",this.info)};onPointerMove=()=>{this.editor.inputs.isDragging&&this.parent.transition("dragging_handle",this.info)};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};cancel(){this.parent.transition("idle")}}class rr extends m.nui{static id="pointing_rotate_handle";info={};
119updateCursor(){let e=this.editor.getSelectionRotation();this.editor.updateInstanceState({cursor:{type:nq[this.info.handle],rotation:e}})}onEnter=e=>{this.parent.setCurrentToolIdMask(e.onInteractionEnd),this.info=e,this.updateCursor()};onExit=()=>{this.parent.setCurrentToolIdMask(void 0),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0})};onPointerMove=()=>{let{isDragging:e}=this.editor.inputs;e&&this.parent.transition("rotating",this.info)};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};complete(){this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,{}):this.parent.transition("idle")}cancel(){this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,{}):this.parent.transition("idle")}}class ri extends m.nui{static id="pointing_selection";info={};onEnter=e=>{this.info=e};onPointerUp=e=>{n8(this.editor),this.parent.transition("idle",e)};onPointerMove=e=>{this.editor.inputs.isDragging&&!this.editor.getInstanceState().isReadonly&&this.parent.transition("translating",e)};onDoubleClick=e=>{let t=this.editor.getHoveredShape(),n=t&&!this.editor.isShapeOfType(t,"group")?t:this.editor.getShapeAtPoint(this.editor.inputs.currentPagePoint,{hitInside:!0,margin:0,renderingOnly:!0});if(n){this.parent.transition("idle"),this.parent.onDoubleClick?.({...e,target:"shape",shape:this.editor.getShape(n)});return}};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};cancel(){this.parent.transition("idle")}}class ro extends m.nui{static id="pointing_shape";hitShape={};hitShapeForPointerUp={};didSelectOnEnter=!1;onEnter=e=>{let t=this.editor.getSelectedShapeIds(),n=this.editor.getSelectionRotatedPageBounds(),r=this.editor.getFocusedGroupId(),{inputs:{currentPagePoint:i,shiftKey:o,altKey:s}}=this.editor;this.hitShape=e.shape;let a=this.editor.getOutermostSelectableShape(e.shape);if(this.editor.getShapeUtil(e.shape).onClick||a.id===r||t.includes(a.id)||this.editor.isAncestorSelected(a.id)||t.length>1&&n?.containsPoint(i)){this.didSelectOnEnter=!1,this.hitShapeForPointerUp=a;return}this.didSelectOnEnter=!0,o&&!s?(this.editor.cancelDoubleClick(),t.includes(a.id)||(this.editor.mark("shift selecting shape"),this.editor.setSelectedShapes([...t,a.id]))):(this.editor.mark("selecting shape"),this.editor.setSelectedShapes([a.id]))};onPointerUp=e=>{let t=this.editor.getSelectedShapeIds(),n=this.editor.getFocusedGroupId(),r=this.editor.getZoomLevel(),{inputs:{currentPagePoint:i,shiftKey:o}}=this.editor,s=this.editor.getShapeAtPoint(i,{margin:m.wMU/r,hitInside:!0,renderingOnly:!0})??this.hitShape,a=s?this.editor.getOutermostSelectableShape(s):this.hitShapeForPointerUp;if(a){let r=this.editor.getShapeUtil(a);if(r.onClick){let t=r.onClick?.(a);if(t){this.editor.mark("shape on click"),this.editor.updateShapes([t]),this.parent.transition("idle",e);return}}if(a.id===n){t.length>0?(this.editor.mark("clearing shape ids"),this.editor.setSelectedShapes([])):this.editor.popFocusedGroupId(),this.parent.transition("idle",e);return}}if(!this.didSelectOnEnter){let e=this.editor.getOutermostSelectableShape(s,e=>!t.includes(e.id));if(t.includes(e.id)){if(o)this.editor.mark("deselecting on pointer up"),this.editor.deselect(a);else if(t.includes(a.id)){if(1===t.length&&(this.editor.isShapeOfType(a,"geo")||this.editor.isShapeOfType(a,"arrow"))){let e=this.editor.getShapeGeometry(a),t=e.children[1];if(t){let e=this.editor.getPointInShapeSpace(a,i);if(t.bounds.containsPoint(e,0)&&t.hitTestPoint(e)){this.editor.batch(()=>{this.editor.mark("editing on pointer up"),this.editor.select(a.id);let e=this.editor.getShapeUtil(a);(!this.editor.getInstanceState().isReadonly||e.canEditInReadOnly(a))&&(this.editor.setEditingShape(a.id),this.editor.setCurrentTool("select.editing_shape"))});return}}}this.editor.mark("selecting on pointer up"),this.editor.select(a.id)}else this.editor.mark("selecting on pointer up"),this.editor.select(a)}else if(o){let t=this.editor.getShapeAncestors(e);this.editor.mark("shift deselecting on pointer up"),this.editor.setSelectedShapes([...this.editor.getSelectedShapeIds().filter(e=>!t.find(t=>
119t.id===e)),e.id])}else this.editor.mark("selecting on pointer up"),this.editor.setSelectedShapes([e.id])}this.parent.transition("idle",e)};onPointerMove=e=>{this.editor.inputs.isDragging&&!this.editor.getInstanceState().isReadonly&&this.parent.transition("translating",e)};onCancel=()=>{this.cancel()};onComplete=()=>{this.cancel()};onInterrupt=()=>{this.cancel()};cancel(){this.parent.transition("idle")}}class rs extends m.nui{static id="resizing";info={};markId="";didHoldCommand=!1;creationCursorOffset={x:0,y:0};snapshot={};onEnter=e=>{let{isCreating:t=!1,creationCursorOffset:n={x:0,y:0}}=e;this.info=e,this.didHoldCommand=!1,this.parent.setCurrentToolIdMask(e.onInteractionEnd),this.creationCursorOffset=n,this.snapshot=this._createSnapshot(),t?(this.markId=`creating:${this.editor.getOnlySelectedShape().id}`,this.editor.updateInstanceState({cursor:{type:"cross",rotation:0}},{ephemeral:!0})):(this.markId="starting resizing",this.editor.mark(this.markId)),this.handleResizeStart(),this.updateShapes()};onTick=()=>{(0,m.lGk)(this.editor)};onPointerMove=()=>{this.updateShapes()};onKeyDown=()=>{this.updateShapes()};onKeyUp=()=>{this.updateShapes()};onPointerUp=()=>{this.complete()};onComplete=()=>{this.complete()};onCancel=()=>{this.cancel()};cancel(){this.editor.bailToMark(this.markId),this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,{}):this.parent.transition("idle")}complete(){if(this.handleResizeEnd(),this.info.isCreating&&this.info.onCreate){this.info.onCreate?.(this.editor.getOnlySelectedShape());return}if(this.editor.getInstanceState().isToolLocked&&this.info.onInteractionEnd){this.editor.setCurrentTool(this.info.onInteractionEnd,{});return}this.parent.transition("idle")}handleResizeStart(){let{shapeSnapshots:e}=this.snapshot,t=[];e.forEach(({shape:e})=>{let n=this.editor.getShapeUtil(e),r=n.onResizeStart?.(e);r&&t.push(r)}),t.length>0&&this.editor.updateShapes(t)}handleResizeEnd(){let{shapeSnapshots:e}=this.snapshot,t=[];e.forEach(({shape:e})=>{let n=this.editor.getShape(e.id),r=this.editor.getShapeUtil(e),i=r.onResizeEnd?.(e,n);i&&t.push(i)}),t.length>0&&this.editor.updateShapes(t)}updateShapes(){let{altKey:e,shiftKey:t}=this.editor.inputs,{frames:n,shapeSnapshots:r,selectionBounds:i,cursorHandleOffset:o,selectedShapeIds:s,selectionRotation:a,canShapesDeform:l}=this.snapshot,c=t||!l,{ctrlKey:d}=this.editor.inputs,u=this.editor.inputs.currentPagePoint.clone().sub(o).sub(this.creationCursorOffset),h=this.editor.inputs.originPagePoint.clone().sub(o);if(this.editor.getInstanceState().isGridMode&&!d){let{gridSize:e}=this.editor.getDocumentSettings();u.snapToGrid(e)}let p=this.info.handle,f=rl(p,Math.PI);this.editor.snaps.clearIndicators();let g=this.editor.user.getIsSnapMode()?!d:d;if(g&&a%m.pjK==0){let{nudge:t}=this.editor.snaps.shapeBounds.snapResizeShapes({dragDelta:m.B08.Sub(u,h),initialSelectionPageBounds:this.snapshot.initialSelectionPageBounds,handle:rl(p,a),isAspectRatioLocked:c,isResizingFromCenter:e});u.add(t)}let y=m.B08.RotWith(e?i.center:i.getHandlePoint(f),i.point,a),b=m.B08.Sub(u,y).rot(-a),x=m.B08.Sub(h,y).rot(-a),w=m.B08.DivV(b,x);Number.isFinite(w.x)||(w.x=1),Number.isFinite(w.y)||(w.y=1);let v="top"===p||"bottom"===p,S="left"===p||"right"===p;for(let e of(c?S?w.y=Math.abs(w.x):v?w.x=Math.abs(w.y):Math.abs(w.x)>Math.abs(w.y)?w.y=Math.abs(w.x)*(w.y<0?-1:1):w.x=Math.abs(w.y)*(w.x<0?-1:1):(v&&(w.x=1),S&&(w.y=1)),this.info.isCreating||this.updateCursor({dragHandle:p,isFlippedX:w.x<0,isFlippedY:w.y<0,rotation:a}),r.keys())){let t=r.get(e);this.editor.resizeShape(e,w,{initialShape:t.shape,initialBounds:t.bounds,initialPageTransform:t.pageTransform,dragHandle:p,mode:1===s.length&&e===s[0]?"resize_bounds":"scale_shape",scaleOrigin:y,scaleAxisRotation:a})}if(this.editor.inputs.ctrlKey)for(let{id:e,children:t}of(this.didHoldCommand=!0,n)){if(!t.length)continue;let n=r.get(e).shape,i=this.editor.getShape(e);if(!(n&&i))continue;let o=i.x-n.x,s=i.y-n.y,a=new m.B08(o,s).rot(-n.rotation);if(0!==a.x||0!==a.y)for(let e of t)this.editor.updateShape({id:e.id,type:e.type,x:e.x-a.x,y:e.y-a.y})}else if(this.didHoldCommand){for(let{children:e}of(this.didHoldCommand=!1,n))if(e.length)for(let t of e)this.editor.updateShape({id:t.
119id,type:t.type,x:t.x,y:t.y})}}updateCursor({dragHandle:e,isFlippedX:t,isFlippedY:n,rotation:r}){let i={...this.editor.getInstanceState().cursor};switch(e){case"top_left":case"bottom_right":i.type="nwse-resize",t!==n&&(i.type="nesw-resize");break;case"top_right":case"bottom_left":i.type="nesw-resize",t!==n&&(i.type="nwse-resize")}i.rotation=r,this.editor.setCursor(i)}onExit=()=>{this.parent.setCurrentToolIdMask(void 0),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0}),this.editor.snaps.clearIndicators()};_createSnapshot=()=>{let e=this.editor.getSelectedShapeIds(),t=this.editor.getSelectionRotation(),{inputs:{originPagePoint:n}}=this.editor,r=this.editor.getSelectionRotatedPageBounds(),i=m.B08.RotWith(r.getHandlePoint(this.info.handle),r.point,t),o=m.B08.Sub(n,i),s=new Map,a=[];e.forEach(t=>{let n=this.editor.getShape(t);if(n){if("frame"===n.type&&a.push({id:t,children:(0,m.oA$)(this.editor.getSortedChildIdsForParent(n).map(e=>this.editor.getShape(e)))}),s.set(n.id,this._createShapeSnapshot(n)),this.editor.isShapeOfType(n,"frame")&&1===e.length)return;this.editor.visitDescendants(n.id,e=>{let t=this.editor.getShape(e);if(t&&(s.set(t.id,this._createShapeSnapshot(t)),this.editor.isShapeOfType(t,"frame")))return!1})}});let l=![...s.values()].some(e=>!(0,m._G0)(e.pageRotation,t)||e.isAspectRatioLocked);return{shapeSnapshots:s,selectionBounds:r,cursorHandleOffset:o,selectionRotation:t,selectedShapeIds:e,canShapesDeform:l,initialSelectionPageBounds:this.editor.getSelectionPageBounds(),frames:a}};_createShapeSnapshot=e=>{let t=this.editor.getShapePageTransform(e),n=this.editor.getShapeUtil(e);return{shape:e,bounds:this.editor.getShapeGeometry(e).bounds,pageTransform:t,pageRotation:m._3P.Decompose(t).rotation,isAspectRatioLocked:n.isAspectRatioLocked(e)}}}let ra=["top","top_right","right","bottom_right","bottom","bottom_left","left","top_left"];function rl(e,t){t%=m.yoY;let n=Math.round(t/(m.PI/4)),r=ra.indexOf(e);return ra[(r+n)%ra.length]}let rc=Math.PI/180;class rd extends m.nui{static id="rotating";snapshot={};info={};markId="";onEnter=e=>{this.info=e,this.parent.setCurrentToolIdMask(e.onInteractionEnd),this.markId="rotate start",this.editor.mark(this.markId);let t=(0,m.oxh)({editor:this.editor});if(!t)return this.parent.transition("idle",this.info);this.snapshot=t,this.handleStart()};onExit=()=>{this.editor.setCursor({type:"default",rotation:0}),this.parent.setCurrentToolIdMask(void 0),this.snapshot={}};onPointerMove=()=>{this.update()};onKeyDown=()=>{this.update()};onKeyUp=()=>{this.update()};onPointerUp=()=>{this.complete()};onComplete=()=>{this.complete()};onCancel=()=>{this.cancel()};update=()=>{let e=this._getRotationFromPointerPosition({snapToNearestDegree:!1});(0,m.ZmI)({editor:this.editor,delta:e,snapshot:this.snapshot,stage:"update"}),this.editor.updateInstanceState({cursor:{type:nq[this.info.handle],rotation:e+this.snapshot.initialSelectionRotation}})};cancel=()=>{this.editor.bailToMark(this.markId),this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,this.info):this.parent.transition("idle",this.info)};complete=()=>{(0,m.ZmI)({editor:this.editor,delta:this._getRotationFromPointerPosition({snapToNearestDegree:!0}),snapshot:this.snapshot,stage:"end"}),this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,this.info):this.parent.transition("idle",this.info)};handleStart(){let e=this._getRotationFromPointerPosition({snapToNearestDegree:!1});(0,m.ZmI)({editor:this.editor,delta:this._getRotationFromPointerPosition({snapToNearestDegree:!1}),snapshot:this.snapshot,stage:"start"}),this.editor.updateInstanceState({cursor:{type:nq[this.info.handle],rotation:e+this.snapshot.initialSelectionRotation}})}_getRotationFromPointerPosition({snapToNearestDegree:e}){let t=this.editor.getSelectionRotation(),n=this.editor.getSelectionRotatedPageBounds(),{inputs:{shiftKey:r,currentPagePoint:i}}=this.editor,{initialCursorAngle:o,initialSelectionRotation:s}=this.snapshot;if(!n)return s;let a=n.center.clone().rotWith(n.point,t),l=a.angle(i)-o,c=s+l;if(r)c=(0,m.nDY)(c,24);else if(e&&(c=Math.round(c/rc)*rc,this.editor.getInstanceState().isCoarsePointer)){let e=(0,m.nDY)(c,4),t=(0,m.Z7n)(c,e);Math.abs(t)<(0,m.Htt)(5)&&(c=e)}return c-s}}class ru extends m.nui{static id="scribble_brushing";hits=new Set;size=0;scribbleId="id";initialSelectedShapeIds=new Set;newlySelectedShapeIds=new Set;onEnter=()=>
119{this.initialSelectedShapeIds=new Set(this.editor.inputs.shiftKey?this.editor.getSelectedShapeIds():[]),this.newlySelectedShapeIds=new Set,this.size=0,this.hits.clear();let e=this.editor.scribbles.addScribble({color:"selection-stroke",opacity:.32,size:12});this.scribbleId=e.id,this.updateScribbleSelection(!0),requestAnimationFrame(()=>{this.editor.updateInstanceState({brush:null})})};onExit=()=>{this.editor.scribbles.stop(this.scribbleId)};onPointerMove=()=>{this.updateScribbleSelection(!0)};onPointerUp=()=>{this.complete()};onKeyDown=()=>{this.updateScribbleSelection(!1)};onKeyUp=()=>{this.editor.inputs.altKey?this.updateScribbleSelection(!1):this.parent.transition("brushing")};onCancel=()=>{this.cancel()};onComplete=()=>{this.complete()};pushPointToScribble=()=>{let{x:e,y:t}=this.editor.inputs.currentPagePoint;this.editor.scribbles.addPoint(this.scribbleId,e,t)};updateScribbleSelection(e){let t,n,r,i;let o=this.editor.getZoomLevel(),s=this.editor.getCurrentPageShapes(),{inputs:{shiftKey:a,originPagePoint:l,previousPagePoint:c,currentPagePoint:d}}=this.editor,{newlySelectedShapeIds:u,initialSelectedShapeIds:h}=this;e&&this.pushPointToScribble();for(let e=0,a=s.length;e<a;e++)if(t=s[e],n=this.editor.getShapeGeometry(t),!(this.editor.isShapeOfType(t,"group")||u.has(t.id)||this.editor.isShapeOrAncestorLocked(t))){if(this.editor.isShapeOfType(t,"frame")){let e=this.editor.getPointInShapeSpace(t,l);if(n.bounds.containsPoint(e))continue}if(r=this.editor.getPointInShapeSpace(t,c),i=this.editor.getPointInShapeSpace(t,d),n.hitTestLineSegment(r,i,m.wMU/o)){let e=this.editor.getOutermostSelectableShape(t),n=this.editor.getShapeMask(e.id);if(n){let e=(0,m.GcE)(c,d,n);if(null!==e){let e=(0,m.Ofd)(d,n);if(!e)continue}}u.add(e.id)}}this.editor.setSelectedShapes([...new Set(a?[...u,...h]:[...u])],{squashing:!0})}complete(){this.parent.transition("idle")}cancel(){this.editor.setSelectedShapes([...this.initialSelectedShapeIds],{squashing:!0}),this.parent.transition("idle")}}class rh{constructor(e){this.editor=e,e.disposables.add(this.dispose)}prevDroppingShapeId=null;droppingNodeTimer=null;first=!0;updateDroppingNode(e,t){this.first&&(this.prevDroppingShapeId=this.editor.getDroppingOverShape(this.editor.inputs.originPagePoint,e)?.id??null,this.first=!1),null===this.droppingNodeTimer?this.setDragTimer(e,1e3,t):this.editor.inputs.pointerVelocity.len()>.5&&(clearInterval(this.droppingNodeTimer),this.setDragTimer(e,100,t))}setDragTimer(e,t,n){this.droppingNodeTimer=setTimeout(()=>{this.editor.batch(()=>{this.handleDrag(this.editor.inputs.currentPagePoint,e,n)}),this.droppingNodeTimer=null},t)}handleDrag(e,t,n){t=(0,m.oA$)(t.map(e=>this.editor.getShape(e.id)));let r=this.editor.getDroppingOverShape(e,t)?.id??null;if(r===this.prevDroppingShapeId)return;let{prevDroppingShapeId:i}=this,o=i&&this.editor.getShape(i),s=r&&this.editor.getShape(r);if(o&&this.editor.getShapeUtil(o).onDragShapesOut?.(o,t),s){let e=this.editor.getShapeUtil(s).onDragShapesOver?.(s,t);e&&e.shouldHint&&this.editor.setHintingShapes([s.id])}else this.editor.setHintingShapes([]);n?.(),this.prevDroppingShapeId=r}dropShapes(e){let{prevDroppingShapeId:t}=this;if(this.handleDrag(this.editor.inputs.currentPagePoint,e),t){let n=this.editor.getShape(t);if(!n)return;this.editor.getShapeUtil(n).onDropShapesOver?.(n,e)}}clear(){this.prevDroppingShapeId=null,null!==this.droppingNodeTimer&&clearInterval(this.droppingNodeTimer),this.droppingNodeTimer=null,this.editor.setHintingShapes([]),this.first=!0}dispose=()=>{this.clear()}}class rp extends m.nui{static id="translating";info={};selectionSnapshot={};snapshot={};markId="";isCloning=!1;isCreating=!1;onCreate=()=>void 0;dragAndDropManager=new rh(this.editor);onEnter=e=>{let{isCreating:t=!1,onCreate:n=()=>void 0}=e;if(this.info=e,this.parent.setCurrentToolIdMask(e.onInteractionEnd),this.isCreating=t,this.onCreate=n,t?this.markId=`creating:${this.editor.getOnlySelectedShape().id}`:(this.markId="translating",this.editor.mark(this.markId)),this.isCloning=!1,this.info=e,this.editor.setCursor({type:"move",rotation:0}),this.selectionSnapshot=rf(this.editor),!this.isCreating&&this.editor.inputs.altKey){this.startCloning();return}this.snapshot=this.selectionSnapshot,this.handleStart(),this.updateShapes()};onExit=()=>{this.parent.setCurrentToolIdMask(void 0),this.selectionSnapshot={},this.snapshot={},this.editor.snaps.clearIndicators(),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0}),this.dragAndDropManager.clear()};onTick=()=>{this.dragAndDropManager.updateDroppingNode(this.snapshot.movingShapes,this.updateParentTransforms),(0,m.lGk)(this.editor)};onPointerMove=()=>{this.updateShapes()};onKeyDown=()=>
119{if(this.editor.inputs.altKey&&!this.isCloning){this.startCloning();return}this.updateShapes()};onKeyUp=()=>{if(!this.editor.inputs.altKey&&this.isCloning){this.stopCloning();return}this.updateShapes()};onPointerUp=()=>{this.complete()};onComplete=()=>{this.complete()};onCancel=()=>{this.cancel()};startCloning(){this.isCreating||(this.isCloning=!0,this.reset(),this.markId="translating",this.editor.mark(this.markId),this.editor.duplicateShapes(Array.from(this.editor.getSelectedShapeIds())),this.snapshot=rf(this.editor),this.handleStart(),this.updateShapes())}stopCloning(){this.isCloning=!1,this.snapshot=this.selectionSnapshot,this.reset(),this.markId="translating",this.editor.mark(this.markId),this.updateShapes()}reset(){this.editor.bailToMark(this.markId)}complete(){this.updateShapes(),this.dragAndDropManager.dropShapes(this.snapshot.movingShapes),this.handleEnd(),this.editor.getInstanceState().isToolLocked&&this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd):this.isCreating?this.onCreate?.(this.editor.getOnlySelectedShape()):this.parent.transition("idle")}cancel(){this.reset(),this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd):this.parent.transition("idle",this.info)}handleStart(){let{movingShapes:e}=this.snapshot,t=[];e.forEach(e=>{let n=this.editor.getShapeUtil(e),r=n.onTranslateStart?.(e);r&&t.push(r)}),t.length>0&&this.editor.updateShapes(t),this.editor.setHoveredShape(null)}handleEnd(){let{movingShapes:e}=this.snapshot;if(this.isCloning){let t=m.B08.Average(e.map(e=>this.editor.getShapePageTransform(e.id).point())),n=m.B08.Sub(t,this.selectionSnapshot.averagePagePoint);this.editor.updateInstanceState({duplicateProps:{shapeIds:e.map(e=>e.id),offset:{x:n.x,y:n.y}}})}let t=[];e.forEach(e=>{let n=this.editor.getShape(e.id),r=this.editor.getShapeUtil(e),i=r.onTranslateEnd?.(e,n);i&&t.push(i)}),t.length>0&&this.editor.updateShapes(t)}handleChange(){let{movingShapes:e}=this.snapshot,t=[];e.forEach(e=>{let n=this.editor.getShape(e.id),r=this.editor.getShapeUtil(e),i=r.onTranslate?.(e,n);i&&t.push(i)}),t.length>0&&this.editor.updateShapes(t)}updateShapes(){let{snapshot:e}=this;this.dragAndDropManager.updateDroppingNode(e.movingShapes,this.updateParentTransforms),function({editor:e,shapeSnapshots:t,averagePagePoint:n,initialSelectionPageBounds:r,initialSelectionSnapPoints:i}){let{inputs:o}=e,s=e.getInstanceState().isGridMode,a=e.getDocumentSettings().gridSize,l=m.B08.Sub(o.currentPagePoint,o.originPagePoint),c=e.inputs.shiftKey?Math.abs(l.x)<Math.abs(l.y)?"x":"y":null;"x"===c?l.x=0:"y"===c&&(l.y=0),e.snaps.clearIndicators();let d=(e.user.getIsSnapMode()?!o.ctrlKey:o.ctrlKey)&&.5>e.inputs.pointerVelocity.len();if(d){let{nudge:t}=e.snaps.shapeBounds.snapTranslateShapes({dragDelta:l,initialSelectionPageBounds:r,lockedAxis:c,initialSelectionSnapPoints:i});l.add(t)}let u=m.B08.Add(n,l);s&&!o.ctrlKey&&u.snapToGrid(a);let h=m.B08.Sub(u,n);e.updateShapes((0,m.oA$)(t.map(({shape:e,pagePoint:t,parentTransform:n})=>{let r=m.B08.Add(t,h),i=n?m._3P.applyToPoint(n,r):r;return{id:e.id,type:e.type,x:i.x,y:i.y}})),{squashing:!0})}({editor:this.editor,shapeSnapshots:e.shapeSnapshots,averagePagePoint:e.averagePagePoint,initialSelectionPageBounds:e.initialPageBounds,initialSelectionSnapPoints:e.initialSnapPoints}),this.handleChange()}updateParentTransforms=()=>{let{editor:e,snapshot:{shapeSnapshots:t}}=this,n=[];t.forEach(t=>{let r=e.getShape(t.shape.id);if(!r)return null;n.push(r);let i=(0,m.r5k)(r.parentId)?null:m._3P.Inverse(e.getShapePageTransform(r.parentId));t.parentTransform=i})}}function rf(e){let t=[],n=[],r=(0,m.oA$)(e.getSelectedShapeIds().map(r=>{let i=e.getShape(r);if(!i)return null;t.push(i);let o=e.getShapePageTransform(r).point();if(!o)return null;n.push(o);let s=m.ezX.isId(i.parentId)?null:m._3P.Inverse(e.getShapePageTransform(i.parentId));return{shape:i,pagePoint:o,parentTransform:s}})),i=[];if(1===e.getSelectedShapeIds().length)i=e.snaps.shapeBounds.getSnapPoints(e.getSelectedShapeIds()[0]);else{let t=e.getSelectionPageBounds();t&&(i=t.cornersAndCenter.map((e,t)=>({id:"selection:"+t,x:e.x,y:e.y})))}return{averagePagePoint:m.B08.Average(n),movingShapes:t,shapeSnapshots:r,initialPageBounds:e.getSelectionPageBounds(),initialSnapPoints:i}}n(34406);class rg extends m.nui{static id="select";static initial="idle";reactor=void 0;static children=()=>[nX,nQ,n3,re,ro,rp,nZ,ru,rt,ri,nJ,n1,rs,rd,rr,n7,rn,n0];cleanUpDuplicateProps=()=>{let e=this.editor.getSelectedShapeIds(),t=this.editor.getInstanceState();if(!t.duplicateProps)return;let n=new Set(t.duplicateProps.shapeIds);e.length===n.size&&e.every(e=>n.has(e))||this.editor.updateInstanceState({duplicateProps:null})};onEnter=()=>{this.reactor=(0,m.YmS)("clean duplicate props",()=>{try{this.cleanUpDuplicateProps()}catch(e){console.error(e)}})};onExit=()=>{this.reactor?.(),this.editor.getCurrentPageState().editingShapeId&&this.editor.setEditingShape(null)}}class rm extends m.nui{static id="idle";info={};onEnter=e=>{this.info=e};onPointerDown=()=>{this.parent.transition("pointing",this.info)}}class ry extends m.nui{static id="pointing";info={};onEnter=e=>{this.info=e};onPointerUp=()=>{this.complete()};onPointerMove=()=>{this.editor.inputs.isDragging&&this.parent.transition("zoom_brushing",this.info)};onCancel=()=>{this.cancel()};complete(){let{currentScreenPoint:e}=this.editor.inputs;this.editor.inputs.altKey?this.editor.zoomOut(e,{duration:220}):this.editor.zoomIn(e,{duration:220}),this.parent.transition("idle",this.info)}cancel(){this.parent.transition("idle",this.info)}}class rb extends m.nui{static id="zoom_brushing";info={};zoomBrush=new m.xuv;onEnter=e=>{this.info=e,this.update()};onExit=()=>{this.editor.updateInstanceState({zoomBrush:null})};onPointerMove=()=>{this.update()};onPointerUp=()=>{this.complete()};onCancel=()=>{this.cancel()};
119update(){let{inputs:{originPagePoint:e,currentPagePoint:t}}=this.editor;this.zoomBrush.setTo(m.xuv.FromPoints([e,t])),this.editor.updateInstanceState({zoomBrush:this.zoomBrush.toJson()})}cancel(){this.parent.transition("idle",this.info)}complete(){let{zoomBrush:e}=this,t=8/this.editor.getZoomLevel();if(e.width<t&&e.height<t){let e=this.editor.inputs.currentScreenPoint;this.editor.inputs.altKey?this.editor.zoomOut(e,{duration:220}):this.editor.zoomIn(e,{duration:220})}else{let t=this.editor.inputs.altKey?this.editor.getZoomLevel()/2:void 0;this.editor.zoomToBounds(e,{targetZoom:t,duration:220})}this.parent.transition("idle",this.info)}}class rx extends m.nui{static id="zoom";static initial="idle";static children=()=>[rm,rb,ry];info={};onEnter=e=>{this.info=e,this.parent.setCurrentToolIdMask(e.onInteractionEnd),this.updateCursor()};onExit=()=>{this.parent.setCurrentToolIdMask(void 0),this.editor.updateInstanceState({zoomBrush:null,cursor:{type:"default",rotation:0}},{ephemeral:!0}),this.parent.setCurrentToolIdMask(void 0)};onKeyDown=()=>{this.updateCursor()};onKeyUp=e=>{this.updateCursor(),"KeyZ"===e.code&&this.complete()};onInterrupt=()=>{this.complete()};complete(){this.info.onInteractionEnd&&"select"!==this.info.onInteractionEnd?this.editor.setCurrentTool(this.info.onInteractionEnd,this.info):this.parent.transition("select")}updateCursor(){this.editor.inputs.altKey?this.editor.updateInstanceState({cursor:{type:"zoom-out",rotation:0}},{ephemeral:!0}):this.editor.updateInstanceState({cursor:{type:"zoom-in",rotation:0}},{ephemeral:!0})}}let rw=[nB,nz,nH,rx,rg];var rv=n(7896),rS=n(28316);function rk(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(null==e||e(r),!1===n||!r.defaultPrevented)return null==t?void 0:t(r)}}function rj(...e){return t=>e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}function r_(...e){return(0,E.useCallback)(rj(...e),e)}function rE(e,t=[]){let n=[],r=()=>{let t=n.map(e=>(0,E.createContext)(e));return function(n){let r=(null==n?void 0:n[e])||t;return(0,E.useMemo)(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return r.scopeName=e,[function(t,r){let i=(0,E.createContext)(r),o=n.length;function s(t){let{scope:n,children:r,...s}=t,a=(null==n?void 0:n[e][o])||i,l=(0,E.useMemo)(()=>s,Object.values(s));return(0,E.createElement)(a.Provider,{value:l},r)}return n=[...n,r],s.displayName=t+"Provider",[s,function(n,s){let a=(null==s?void 0:s[e][o])||i,l=(0,E.useContext)(a);if(l)return l;if(void 0!==r)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e),o=i[`__scope${r}`];return{...t,...o}},{});return(0,E.useMemo)(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}(r,...t)]}let rC=(0,E.forwardRef)((e,t)=>{let{children:n,...r}=e,i=E.Children.toArray(n),o=i.find(rT);if(o){let e=o.props.children,n=i.map(t=>t!==o?t:E.Children.count(e)>1?E.Children.only(null):(0,E.isValidElement)(e)?e.props.children:null);return(0,E.createElement)(rP,(0,rv.Z)({},r,{ref:t}),(0,E.isValidElement)(e)?(0,E.cloneElement)(e,void 0,n):null)}return(0,E.createElement)(rP,(0,rv.Z)({},r,{ref:t}),n)});rC.displayName="Slot";let rP=(0,E.forwardRef)((e,t)=>{let{children:n,...r}=e;return(0,E.isValidElement)(n)?(0,E.cloneElement)(n,{...function(e,t){let n={...t};for(let r in t){let i=e[r],o=t[r],s=/^on[A-Z]/.test(r);s?i&&o?n[r]=(...e)=>{o(...e),i(...e)}:i&&(n[r]=i):"style"===r?n[r]={...i,...o}:"className"===r&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props),ref:t?rj(t,n.ref):n.ref}):E.Children.count(n)>1?E.Children.only(null):null});rP.displayName="SlotClone";let rI=({children:e})=>(0,E.createElement)(E.Fragment,null,e);function rT(e){return(0,E.isValidElement)(e)&&e.type===rI}function rM(e){let t=e+"CollectionProvider",[n,r]=rE(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),s=e+"CollectionSlot",a=E.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=o(s,n),a=r_(t,i.collectionRef);return E.createElement(rC,{ref:a},r)}),l=e+"CollectionItemSlot",c="data-radix-collection-item",d=E.forwardRef((e,t)=>
119{let{scope:n,children:r,...i}=e,s=E.useRef(null),a=r_(t,s),d=o(l,n);return E.useEffect(()=>(d.itemMap.set(s,{ref:s,...i}),()=>void d.itemMap.delete(s))),E.createElement(rC,{[c]:"",ref:a},r)});return[{Provider:e=>{let{scope:t,children:n}=e,r=E.useRef(null),o=E.useRef(new Map).current;return E.createElement(i,{scope:t,itemMap:o,collectionRef:r},n)},Slot:a,ItemSlot:d},function(t){let n=o(e+"CollectionConsumer",t),r=E.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${c}]`)),r=Array.from(n.itemMap.values()),i=r.sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current));return i},[n.collectionRef,n.itemMap]);return r},r]}let rA=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let n=(0,E.forwardRef)((e,n)=>{let{asChild:r,...i}=e,o=r?rC:t;return(0,E.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,E.createElement)(o,(0,rv.Z)({},i,{ref:n}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function r$(e,t){e&&(0,rS.flushSync)(()=>
119e.dispatchEvent(t))}function rD(e){let t=(0,E.useRef)(e);return(0,E.useEffect)(()=>{t.current=e}),(0,E.useMemo)(()=>(...e)=>{var n;return null===(n=t.current)||void 0===n?void 0:n.call(t,...e)},[])}let rO="dismissableLayer.update",rB=(0,E.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),rL=(0,E.forwardRef)((e,t)=>{var n;let{disableOutsidePointerEvents:i=!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:a,onInteractOutside:l,onDismiss:c,...d}=e,u=(0,E.useContext)(rB),[h,p]=(0,E.useState)(null),f=null!==(n=null==h?void 0:h.ownerDocument)&&void 0!==n?n:null==globalThis?void 0:globalThis.document,[,g]=(0,E.useState)({}),m=r_(t,e=>p(e)),y=Array.from(u.layers),[b]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),x=y.indexOf(b),w=h?y.indexOf(h):-1,v=u.layersWithOutsidePointerEventsDisabled.size>0,S=w>=x,k=function(e,t=null==globalThis?void 0:globalThis.document){let n=rD(e),r=(0,E.useRef)(!1),i=(0,E.useRef)(()=>{});return(0,E.useEffect)(()=>{let e=e=>{if(e.target&&!r.current){let r={originalEvent:e};function o(){rz("dismissableLayer.pointerDownOutside",n,r,{discrete:!0})}"touch"===e.pointerType?(t.removeEventListener("click",i.current),i.current=o,t.addEventListener("click",i.current,{once:!0})):o()}else t.removeEventListener("click",i.current);r.current=!1},o=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(o),t.removeEventListener("pointerdown",e),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}(e=>{let t=e.target,n=[...u.branches].some(e=>e.contains(t));!S||n||(null==s||s(e),null==l||l(e),e.defaultPrevented||null==c||c())},f),j=function(e,t=null==globalThis?void 0:globalThis.document){let n=rD(e),r=(0,E.useRef)(!1);return(0,E.useEffect)(()=>{let e=e=>{e.target&&!r.current&&rz("dismissableLayer.focusOutside",n,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}(e=>{let t=e.target,n=[...u.branches].some(e=>e.contains(t));n||(null==a||a(e),null==l||l(e),e.defaultPrevented||null==c||c())},f);return!function(e,t=null==globalThis?void 0:globalThis.document){let n=rD(e);(0,E.useEffect)(()=>{let e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e),()=>t.removeEventListener("keydown",e)},[n,t])}(e=>{let t=w===u.layers.size-1;t&&(null==o||o(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))},f),(0,E.useEffect)(()=>{if(h)return i&&(0===u.layersWithOutsidePointerEventsDisabled.size&&(r=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(h)),u.layers.add(h),rN(),()=>{i&&1===u.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=r)}},[h,f,i,u]),(0,E.useEffect)(()=>()=>{h&&(u.layers.delete(h),u.layersWithOutsidePointerEventsDisabled.delete(h),rN())},[h,u]),(0,E.useEffect)(()=>{let e=()=>g({});return document.addEventListener(rO,e),()=>document.removeEventListener(rO,e)},[]),(0,E.createElement)(rA.div,(0,rv.Z)({},d,{ref:m,style:{pointerEvents:v?S?"auto":"none":void 0,...e.style},onFocusCapture:rk(e.onFocusCapture,j.onFocusCapture),onBlurCapture:rk(e.onBlurCapture,j.onBlurCapture),onPointerDownCapture:rk(e.onPointerDownCapture,k.onPointerDownCapture)}))}),rR=(0,E.forwardRef)((e,t)=>{let n=(0,E.useContext)(rB),r=(0,E.useRef)(null),i=r_(t,r);return(0,E.useEffect)(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,E.createElement)(rA.div,(0,rv.Z)({},e,{ref:i}))});function rN(){let e=new CustomEvent(rO);document.dispatchEvent(e)}function rz(e,t,n,{discrete:r}){let i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?r$(i,o):i.dispatchEvent(o)}let rF=(0,E.forwardRef)((e,t)=>{var n;let{container:r=null==globalThis?void 0:null===(n=globalThis.document)||void 0===n?void 0:n.body,...i}=e;return r?rS.createPortal((0,E.createElement)(rA.div,(0,rv.Z)({},i,{ref:t})),r):null}),rU=(null==globalThis?void 0:globalThis.document)?E.useLayoutEffect:()=>{},rH=e=>{let{present:t,children:n}=e,r=function(e){var t;let[n,r]=(0,E.useState)(),i=(0,E.useRef)({}),o=(0,E.useRef)(e),s=(0,E.useRef)("none"),a=e?"mounted":"unmounted",[l,c]=(t={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},(0,E.useReducer)((e,n)=>{let r=t[e][n];return null!=r?r:e},a));return(0,E.useEffect)(()=>
119{let e=rZ(i.current);s.current="mounted"===l?e:"none"},[l]),rU(()=>{let t=i.current,n=o.current,r=n!==e;if(r){let r=s.current,i=rZ(t);e?c("MOUNT"):"none"===i||(null==t?void 0:t.display)==="none"?c("UNMOUNT"):n&&r!==i?c("ANIMATION_OUT"):c("UNMOUNT"),o.current=e}},[e,c]),rU(()=>{if(n){let e=e=>{let t=rZ(i.current),r=t.includes(e.animationName);e.target===n&&r&&(0,rS.flushSync)(()=>c("ANIMATION_END"))},t=e=>{e.target===n&&(s.current=rZ(i.current))};return n.addEventListener("animationstart",t),n.addEventListener("animationcancel",e),n.addEventListener("animationend",e),()=>{n.removeEventListener("animationstart",t),n.removeEventListener("animationcancel",e),n.removeEventListener("animationend",e)}}c("ANIMATION_END")},[n,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,E.useCallback)(e=>{e&&(i.current=getComputedStyle(e)),r(e)},[])}}(t),i="function"==typeof n?n({present:r.isPresent}):E.Children.only(n),o=r_(r.ref,i.ref),s="function"==typeof n;return s||r.isPresent?(0,E.cloneElement)(i,{ref:o}):null};function rZ(e){return(null==e?void 0:e.animationName)||"none"}function rV({prop:e,defaultProp:t,onChange:n=()=>{}}){let[r,i]=function({defaultProp:e,onChange:t}){let n=(0,E.useState)(e),[r]=n,i=(0,E.useRef)(r),o=rD(t);return(0,E.useEffect)(()=>{i.current!==r&&(o(r),i.current=r)},[r,i,o]),n}({defaultProp:t,onChange:n}),o=void 0!==e,s=o?e:r,a=rD(n),l=(0,E.useCallback)(t=>{if(o){let n="function"==typeof t?t(e):t;n!==e&&a(n)}else i(t)},[o,e,i,a]);return[s,l]}rH.displayName="Presence";let rK=(0,E.forwardRef)((e,t)=>(0,E.createElement)(rA.span,(0,rv.Z)({},e,{ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}))),rW="ToastProvider",[rY,rG,rX]=rM("Toast"),[rq,rJ]=rE("Toast",[rX]),[rQ,r0]=rq(rW),r1=e=>{let{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:i="right",swipeThreshold:o=50,children:s}=e,[a,l]=(0,E.useState)(null),[c,d]=(0,E.useState)(0),u=(0,E.useRef)(!1),h=(0,E.useRef)(!1);return(0,E.createElement)(rY.Provider,{scope:t},(0,E.createElement)(rQ,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:o,toastCount:c,viewport:a,onViewportChange:l,onToastAdd:(0,E.useCallback)(()=>d(e=>e+1),[]),onToastRemove:(0,E.useCallback)(()=>d(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:u,isClosePausedRef:h},s))};r1.propTypes={label(e){if(e.label&&"string"==typeof e.label&&!e.label.trim()){let e=`Invalid prop \`label\` supplied to \`${rW}\`. Expected non-empty \`string\`.`;return Error(e)}return null}};let r2=["F8"],r8="toast.viewportPause",r3="toast.viewportResume",r5=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,hotkey:r=r2,label:i="Notifications ({hotkey})",...o}=e,s=r0("ToastViewport",n),a=rG(n),l=(0,E.useRef)(null),c=(0,E.useRef)(null),d=(0,E.useRef)(null),u=(0,E.useRef)(null),h=r_(t,u,s.onViewportChange),p=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),f=s.toastCount>0;(0,E.useEffect)(()=>{let e=e=>{var t;let n=r.every(t=>e[t]||e.code===t);n&&(null===(t=u.current)||void 0===t||t.focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[r]),(0,E.useEffect)(()=>{let e=l.current,t=u.current;if(f&&e&&t){let n=()=>{if(!s.isClosePausedRef.current){let e=new CustomEvent(r8);t.dispatchEvent(e),s.isClosePausedRef.current=!0}},r=()=>{if(s.isClosePausedRef.current){let e=new CustomEvent(r3);t.dispatchEvent(e),s.isClosePausedRef.current=!1}},i=t=>{let n=!e.contains(t.relatedTarget);n&&r()},o=()=>{let t=e.contains(document.activeElement);t||r()};return e.addEventListener("focusin",n),e.addEventListener("focusout",i),e.addEventListener("pointermove",n),e.addEventListener("pointerleave",o),window.addEventListener("blur",n),window.addEventListener("focus",r),()=>{e.removeEventListener("focusin",n),e.removeEventListener("focusout",i),e.removeEventListener("pointermove",n),e.removeEventListener("pointerleave",o),window.removeEventListener("blur",n),window.removeEventListener("focus",r)}}},[f,s.isClosePausedRef]);let g=(0,E.useCallback)(({tabbingDirection:e})=>{let t=a(),n=t.map(t=>{let n=t.ref.current,r=[n,...function(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}(n)];return"forwards"===e?r:r.reverse()});return("forwards"===e?n.reverse():n).flat()},[a]);return(0,E.useEffect)(()=>{let e=u.current;if(e){let t=t=>{let n=t.altKey||t.ctrlKey||t.metaKey,r="Tab"===t.key&&!n;if(r){var i,o,s;let n=document.activeElement,r=t.shiftKey,a=t.target===e;if(a&&r){null===(i=c.current)||void 0===i||i.focus();return}let l=g({tabbingDirection:r?"backwards":"forwards"}),u=l.findIndex(e=>e===n);iu(l.slice(u+1))?t.preventDefault():r?null===(o=c.current)||void 0===o||o.focus():null===(s=d.current)||void 0===s||s.focus()}};return e.addEventListener("keydown",t),()=>e.removeEventListener("keydown",t)}},[a,g]),(0,E.createElement)(rR,{ref:l,role:"region","aria-label":i.replace("{hotkey}",p),tabIndex:-1,style:{pointerEvents:f?void 0:"none"}},f&&(0,E.createElement)(r4,{ref:c,onFocusFromOutsideViewport:()=>{let e=g({tabbingDirection:"forwards"});iu(e)}}),(0,E.createElement)(rY.Slot,{scope:n},(0,E.createElement)(rA.ol,(0,rv.Z)({tabIndex:-1},o,{ref:h}))),f&&(0,E.createElement)(r4,{ref:d,onFocusFromOutsideViewport:()=>{let e=g({tabbingDirection:"backwards"});iu(e)}}))}),r4=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,o=r0("ToastFocusProxy",n);return(0,E.createElement)(rK,(0,rv.Z)({"aria-hidden":!0,tabIndex:0},i,{ref:t,style:{position:"fixed"},onFocus:e=>{var t;let n=e.relatedTarget,i=!(null!==(t=o.viewport)&&void 0!==t&&t.contains(n));i&&r()}}))}),r6="Toast",r9=(0,E.forwardRef)((e,t)=>{let{forceMount:n,open:r,defaultOpen:i,onOpenChange:o,...s}=e,[a=!0,l]=rV({prop:r,defaultProp:i,onChange:o});return(0,E.createElement)(rH,{present:n||a},(0,E.createElement)(it,(0,rv.Z)({open:a},s,{ref:t,onClose:()=>l(!1),onPause:rD(e.onPause),onResume:rD(e.onResume),onSwipeStart:rk(e.onSwipeStart,e=>{e.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:rk(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","move"),e.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${t}px`),e.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${n}px`)}
119),onSwipeCancel:rk(e.onSwipeCancel,e=>{e.currentTarget.setAttribute("data-swipe","cancel"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:rk(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","end"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${t}px`),e.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${n}px`),l(!1)})})))}),[r7,ie]=rq(r6,{onClose(){}}),it=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,type:r="foreground",duration:i,open:o,onClose:s,onEscapeKeyDown:a,onPause:l,onResume:c,onSwipeStart:d,onSwipeMove:u,onSwipeCancel:h,onSwipeEnd:p,...f}=e,g=r0(r6,n),[m,y]=(0,E.useState)(null),b=r_(t,e=>y(e)),x=(0,E.useRef)(null),w=(0,E.useRef)(null),v=i||g.duration,S=(0,E.useRef)(0),k=(0,E.useRef)(v),j=(0,E.useRef)(0),{onToastAdd:_,onToastRemove:C}=g,P=rD(()=>{var e;let t=null==m?void 0:m.contains(document.activeElement);t&&(null===(e=g.viewport)||void 0===e||e.focus()),s()}),I=(0,E.useCallback)(e=>{e&&e!==1/0&&(window.clearTimeout(j.current),S.current=new Date().getTime(),j.current=window.setTimeout(P,e))},[P]);(0,E.useEffect)(()=>{let e=g.viewport;if(e){let t=()=>{I(k.current),null==c||c()},n=()=>{let e=new Date().getTime()-S.current;k.current=k.current-e,window.clearTimeout(j.current),null==l||l()};return e.addEventListener(r8,n),e.addEventListener(r3,t),()=>{e.removeEventListener(r8,n),e.removeEventListener(r3,t)}}},[g.viewport,v,l,c,I]),(0,E.useEffect)(()=>{o&&!g.isClosePausedRef.current&&I(v)},[o,v,g.isClosePausedRef,I]),(0,E.useEffect)(()=>(_(),()=>C()),[_,C]);let T=(0,E.useMemo)(()=>m?function e(t){let n=[],r=Array.from(t.childNodes);return r.forEach(t=>{if(t.nodeType===t.TEXT_NODE&&t.textContent&&n.push(t.textContent),t.nodeType===t.ELEMENT_NODE){let r=t.ariaHidden||t.hidden||"none"===t.style.display,i=""===t.dataset.radixToastAnnounceExclude;if(!r){if(i){let e=t.dataset.radixToastAnnounceAlt;e&&n.push(e)}else n.push(...e(t))}}}),n}(m):null,[m]);return g.viewport?(0,E.createElement)(E.Fragment,null,T&&(0,E.createElement)(ir,{__scopeToast:n,role:"status","aria-live":"foreground"===r?"assertive":"polite","aria-atomic":!0},T),(0,E.createElement)(r7,{scope:n,onClose:P},(0,rS.createPortal)((0,E.createElement)(rY.ItemSlot,{scope:n},(0,E.createElement)(rL,{asChild:!0,onEscapeKeyDown:rk(a,()=>{g.isFocusedToastEscapeKeyDownRef.current||P(),g.isFocusedToastEscapeKeyDownRef.current=!1})},(0,E.createElement)(rA.li,(0,rv.Z)({role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":o?"open":"closed","data-swipe-direction":g.swipeDirection},f,{ref:b,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:rk(e.onKeyDown,e=>{"Escape"!==e.key||(null==a||a(e.nativeEvent),e.nativeEvent.defaultPrevented||(g.isFocusedToastEscapeKeyDownRef.current=!0,P()))}),onPointerDown:rk(e.onPointerDown,e=>{0===e.button&&(x.current={x:e.clientX,y:e.clientY})}),onPointerMove:rk(e.onPointerMove,e=>{if(!x.current)return;let t=e.clientX-x.current.x,n=e.clientY-x.current.y,r=!!w.current,i=["left","right"].includes(g.swipeDirection),o=["left","up"].includes(g.swipeDirection)?Math.min:Math.max,s=i?o(0,t):0,a=i?0:o(0,n),l="touch"===e.pointerType?10:2,c={x:s,y:a},h={originalEvent:e,delta:c};r?(w.current=c,ic("toast.swipeMove",u,h,{discrete:!1})):id(c,g.swipeDirection,l)?(w.current=c,ic("toast.swipeStart",d,h,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>l||Math.abs(n)>l)&&(x.current=null)}),onPointerUp:rk(e.onPointerUp,e=>{let t=w.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),w.current=null,x.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};id(t,g.swipeDirection,g.swipeThreshold)?ic("toast.swipeEnd",p,r,{discrete:!0}):ic("toast.swipeCancel",h,r,{discrete:!0}),n.addEventListener("click",e=>e.preventDefault(),{once:!0})}})})))),g.viewport))):null});it.propTypes={type(e){if(e.type&&!["foreground","background"].includes(e.type)){let e=`Invalid prop \`type\` supplied to \`${r6}\`. Expected \`foreground | background\`.`;return Error(e)}return null}};let ir=e=>{let{__scopeToast:t,children:n,...r}=e,i=r0(r6,t),[o,s]=(0,E.useState)(!1),[a,l]=(0,E.useState)(!1);return function(e=()=>{}){let t=rD(e);rU(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}(()=>s(!0)),(0,E.useEffect)(()=>{let e=window.setTimeout(()=>l(!0),1e3);return()=>window.clearTimeout(e)},[]),a?null:(0,E.createElement)(rF,{asChild:!0},(0,E.createElement)(rK,r,o&&(0,E.createElement)(E.Fragment,null,i.label," ",n)))},ii=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,...r}=e;return(0,E.createElement)(rA.div,(0,rv.Z)({},r,{ref:t}))}),io=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,...r}=e;return(0,E.createElement)(rA.div,(0,rv.Z)({},r,{ref:t}))}),is=(0,E.forwardRef)((e,t)=>{let{altText:n,...r}=e;return n?(0,E.createElement)(il,{altText:n,asChild:!0},(0,E.createElement)(ia,(0,rv.Z)({},r,{ref:t}))):null});is.propTypes={altText:e=>e.altText?null:Error("Missing prop `altText` expected on `ToastAction`")};let ia=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,...r}=e,i=ie("ToastClose",n);return(0,E.createElement)(il,{asChild:!0},(0,E.createElement)(rA.button,(0,rv.Z)({type:"button"},r,{ref:t,onClick:rk(e.onClick,i.onClose)})))}),il=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,altText:r,...i}=e;return(0,E.createElement)(rA.div,(0,rv.Z)({"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0},i,{ref:t}))});function ic(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,o=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?r$(i,o):i.dispatchEvent(o)}let id=(e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),o=r>i;return"left"===t||"right"===t?o&&r>n:!o&&i>n};function iu(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}let ih=[0,390,428,468,580,640,840,1023];var ip=((s=ip||{})[s.ZERO=0]="ZERO",s[s.MOBILE_XXS=1]="MOBILE_XXS",s[s.MOBILE_XS=2]="MOBILE_XS",
119s[s.MOBILE_SM=3]="MOBILE_SM",s[s.MOBILE=4]="MOBILE",s[s.TABLET_SM=5]="TABLET_SM",s[s.TABLET=6]="TABLET",s[s.DESKTOP=7]="DESKTOP",s);let ig=E.createContext(0);function im({forceMobile:e=!1,children:t}){let n=(0,m.jE2)(),r=(0,m.HgN)("breakpoint",()=>{let{width:t}=n.getViewportScreenBounds(),r=e?ip.MOBILE_SM:ih.length-1;for(let e=0;e<r;e++)if(t>ih[e]&&t<=ih[e+1])return e;return r},[n]);return(0,_.jsx)(ig.Provider,{value:r,children:t})}function iy(){return(0,E.useContext)(ig)}let ib=(0,E.createContext)(null);function ix({assetUrls:e,children:t}){return(0,_.jsx)(ib.Provider,{value:e,children:t})}function iw(){let e=(0,E.useContext)(ib);if(!e)throw Error("useAssetUrls must be used within an AssetUrlsProvider");return e}let iv={"action.convert-to-bookmark":"Convert to Bookmark","action.convert-to-embed":"Convert to Embed","action.open-embed-link":"Open link","action.align-bottom":"Align bottom","action.align-center-horizontal":"Align horizontally","action.align-center-vertical":"Align vertically","action.align-center-horizontal.short":"Align H","action.align-center-vertical.short":"Align V","action.align-left":"Align left","action.align-right":"Align right","action.align-top":"Align top","action.back-to-content":"Back to content","action.bring-forward":"Bring forward","action.bring-to-front":"Bring to front","action.copy-as-json.short":"JSON","action.copy-as-json":"Copy as JSON","action.copy-as-png.short":"PNG","action.copy-as-png":"Copy as PNG","action.copy-as-svg.short":"SVG","action.copy-as-svg":"Copy as SVG","action.copy":"Copy","action.cut":"Cut","action.delete":"Delete","action.unlock-all":"Unlock all","action.distribute-horizontal":"Distribute horizontally","action.distribute-vertical":"Distribute vertically","action.distribute-horizontal.short":"Distribute H","action.distribute-vertical.short":"Distribute V","action.duplicate":"Duplicate","action.edit-link":"Edit link","action.exit-pen-mode":"Exit pen mode","action.export-as-json.short":"JSON","action.export-as-json":"Export as JSON","action.export-as-png.short":"PNG","action.export-as-png":"Export as PNG","action.export-as-svg.short":"SVG","action.export-as-svg":"Export as SVG","action.export-all-as-json.short":"JSON","action.export-all-as-json":"Export all as JSON","action.export-all-as-png.short":"PNG","action.export-all-as-png":"Export all as PNG","action.export-all-as-svg.short":"SVG","action.export-all-as-svg":"Export all as SVG","action.fit-frame-to-content":"Fit to content","action.flip-horizontal":"Flip horizontally","action.flip-vertical":"Flip vertically","action.flip-horizontal.short":"Flip H","action.flip-vertical.short":"Flip V","action.fork-project":"Fork this project","action.group":"Group","action.insert-embed":"Insert embed","action.insert-media":"Upload media","action.leave-shared-project":"Leave shared project","action.new-project":"New project","action.new-shared-project":"New shared project","action.open-cursor-chat":"Cursor chat","action.open-file":"Open file","action.pack":"Pack","action.paste":"Paste","action.print":"Print","action.redo":"Redo","action.remove-frame":"Remove frame","action.rename":"Rename","action.rotate-ccw":"Rotate counterclockwise","action.rotate-cw":"Rotate clockwise","action.save-copy":"Save a copy","action.select-all":"Select all","action.select-none":"Select none","action.send-backward":"Send backward","action.send-to-back":"Send to back","action.share-project":"Share this project","action.stack-horizontal":"Stack horizontally","action.stack-vertical":"Stack vertically","action.stack-horizontal.short":"Stack H","action.stack-vertical.short":"Stack V","action.stop-following":"Stop following","action.stretch-horizontal":"Stretch horizontally","action.stretch-vertical":"Stretch vertically","action.stretch-horizontal.short":"Stretch H","action.stretch-vertical.short":"Stretch V","action.toggle-auto-size":"Toggle auto size","action.toggle-dark-mode.menu":"Dark mode","action.toggle-dark-mode":"Toggle dark mode","action.toggle-wrap-mode.menu":"Select on wrap","action.toggle-wrap-mode":"Toggle Select on wrap","action.toggle-reduce-motion.menu":"Reduce motion","action.toggle-reduce-motion":"Toggle reduce motion","action.toggle-edge-scrolling.menu":"Edge scrolling","action.toggle-edge-scrolling":"Toggle edge scrolling","action.toggle-debug-mode.menu":"Debug mode","action.toggle-debug-mode":"Toggle debug mode","action.toggle-focus-mode.menu":"Focus mode","action.toggle-focus-mode":"Toggle focus mode","action.toggle-grid.menu":"Show grid","action.toggle-grid":"Toggle grid","action.toggle-lock":"Toggle locked","action.toggle-snap-mode.menu":"Always snap","action.toggle-snap-mode":"Toggle always snap","action.toggle-tool-lock.menu":"Tool lock","action.toggle-tool-lock":"Toggle tool lock","action.toggle-transparent.context-menu":"Transparent","action.toggle-transparent.menu":"Transparent","action.toggle-transparent":"Toggle transparent background","action.undo":"Undo","action.ungroup":"Ungroup","action.zoom-in":"Zoom in","action.zoom-out":"Zoom out","action.zoom-to-100":"Zoom to 100%","action.zoom-to-fit":"Zoom to fit","action.zoom-to-selection":"Zoom to selection","assets.files.upload-failed":"Upload failed","assets.url.failed":"Couldn't load URL preview","color-style.black":"Black","color-style.blue":"Blue","color-style.green":"Green","color-style.grey":"Grey","color-style.light-blue":"Light blue","color-style.light-green":"Light green","color-style.light-red":"Light red","color-style.light-violet":"Light violet","color-style.orange":"Orange","color-style.red":"Red","color-style.violet":"Violet","color-style.yellow":"Yellow","fill-style.none":"None","document.default-name":"Untitled","fill-style.semi":"Semi","fill-style.solid":"Solid","fill-style.pattern":"Pattern","dash-style.dashed":"Dashed","dash-style.dotted":"Dotted","dash-style.draw":"Draw","dash-style.solid":"Solid","size-style.s":"Small","size-style.m":"Medium","size-style.l":"Large","size-style.xl":"Extra large","opacity-style.0.1":"10%","opacity-style.0.25":"25%","opacity-style.0.5":"50%","opacity-style.0.75":"75%","opacity-style.1":"100%","font-style.draw":"Draw","font-style.sans":"Sans","font-style.serif":"Serif","font-style.mono":"Mono","align-style.start":"Start","align-style.middle":"Middle","align-style.end":"End","align-style.justify":"Justify","verticalAlign-style.start":"Top","verticalAlign-style.middle":"Middle","verticalAlign-style.end":"Bottom","geo-style.arrow-down":"Arrow down","geo-style.arrow-left":"Arrow left","geo-style.arrow-right":"Arrow right","geo-style.arrow-up":"Arrow up","geo-style.diamond":"Diamond","geo-style.ellipse":"Ellipse","geo-style.hexagon":"Hexagon","geo-style.octagon":"Octagon","geo-style.oval":"Oval","geo-style.cloud":"Cloud","geo-style.pentagon":"Pentagon","geo-style.re
119ctangle":"Rectangle","geo-style.rhombus-2":"Rhombus 2","geo-style.rhombus":"Rhombus","geo-style.star":"Star","geo-style.trapezoid":"Trapezoid","geo-style.triangle":"Triangle","geo-style.x-box":"X box","geo-style.check-box":"Check box","arrowheadStart-style.none":"None","arrowheadStart-style.arrow":"Arrow","arrowheadStart-style.bar":"Bar","arrowheadStart-style.diamond":"Diamond","arrowheadStart-style.dot":"Dot","arrowheadStart-style.inverted":"Inverted","arrowheadStart-style.pipe":"Pipe","arrowheadStart-style.square":"Square","arrowheadStart-style.triangle":"Triangle","arrowheadEnd-style.none":"None","arrowheadEnd-style.arrow":"Arrow","arrowheadEnd-style.bar":"Bar","arrowheadEnd-style.diamond":"Diamond","arrowheadEnd-style.dot":"Dot","arrowheadEnd-style.inverted":"Inverted","arrowheadEnd-style.pipe":"Pipe","arrowheadEnd-style.square":"Square","arrowheadEnd-style.triangle":"Triangle","spline-style.line":"Line","spline-style.cubic":"Cubic","tool.select":"Select","tool.hand":"Hand","tool.draw":"Draw","tool.eraser":"Eraser","tool.arrow-down":"Arrow down","tool.arrow-left":"Arrow left","tool.arrow-right":"Arrow right","tool.arrow-up":"Arrow up","tool.arrow":"Arrow","tool.cloud":"Cloud","tool.diamond":"Diamond","tool.ellipse":"Ellipse","tool.hexagon":"Hexagon","tool.highlight":"Highlight","tool.line":"Line","tool.octagon":"Octagon","tool.oval":"Oval","tool.pentagon":"Pentagon","tool.rectangle":"Rectangle","tool.rhombus":"Rhombus","tool.star":"Star","tool.trapezoid":"Trapezoid","tool.triangle":"Triangle","tool.x-box":"X box","tool.check-box":"Check box","tool.asset":"Asset","tool.frame":"Frame","tool.note":"Note","tool.laser":"Laser","tool.embed":"Embed","tool.text":"Text","menu.title":"Menu","menu.copy-as":"Copy as","menu.edit":"Edit","menu.shape":"Shape","menu.export-as":"Export as","menu.file":"File","menu.language":"Language","menu.preferences":"Preferences","menu.view":"View","context-menu.arrange":"Arrange","context-menu.copy-as":"Copy as","context-menu.export-as":"Export as","context-menu.export-all-as":"Export all as","context-menu.move-to-page":"Move to page","context-menu.reorder":"Reorder","page-menu.title":"Pages","page-menu.create-new-page":"Create new page","page-menu.max-page-count-reached":"Max pages reached","page-menu.new-page-initial-name":"Page 1","page-menu.edit-start":"Edit","page-menu.edit-done":"Done","page-menu.go-to-page":"Go to page","page-menu.submenu.rename":"Rename","page-menu.submenu.duplicate-page":"Duplicate","page-menu.submenu.title":"Menu","page-menu.submenu.move-down":"Move down","page-menu.submenu.move-up":"Move up","page-menu.submenu.delete":"Delete","share-menu.title":"Share","share-menu.save-note":"Download this project to your computer as a .tldr file.","share-menu.fork-note":"Create a new shared project based on this snapshot.","share-menu.share-project":"Share this project","share-menu.default-project-name":"Shared Project","share-menu.copy-link":"Copy share link","share-menu.readonly-link":"Read-only","share-menu.create-snapshot-link":"Copy snapshot link","share-menu.snapshot-link-note":"Capture and share this project as a read-only snapshot link.","share-menu.copy-readonly-link":"Copy read-only link","share-menu.offline-note":"Create a new shared project based on your current project.","share-menu.copy-link-note":"Anyone with the link will be able to view and edit this project.","share-menu.copy-readonly-link-note":"Anyone with the link will be able to view (but not edit) this project.","share-menu.project-too-large":"Sorry, this project can't be shared because it's too large. We're working on it!","share-menu.upload-failed":"Sorry, we couldn't upload your project at the moment. Please try again or let us know if the problem persists.","status.offline":"Offline","status.online":"Online","people-menu.title":"People","people-menu.change-name":"Change name","people-menu.change-color":"Change color","people-menu.follow":"Following","people-menu.following":"Following","people-menu.leading":"Following You","people-menu.user":"(You)","people-menu.invite":"Invite others","help-menu.title":"Help and resources","help-menu.about":"About","help-menu.discord":"Discord","help-menu.github":"GitHub","help-menu.keyboard-shortcuts":"Keyboard shortcuts","help-menu.twitter":"Twitter","actions-menu.title":"Actions","edit-link-dialog.title":"Edit link","edit-link-dialog.
119invalid-url":"A link must be a valid URL.","edit-link-dialog.detail":"Links will open in a new tab.","edit-link-dialog.url":"URL","edit-link-dialog.clear":"Clear","edit-link-dialog.save":"Continue","edit-link-dialog.cancel":"Cancel","embed-dialog.title":"Insert embed","embed-dialog.back":"Back","embed-dialog.create":"Create","embed-dialog.cancel":"Cancel","embed-dialog.url":"URL","embed-dialog.instruction":"Paste in the site's URL to create the embed.","embed-dialog.invalid-url":"We could not create an embed from that URL.","edit-pages-dialog.move-down":"Move down","edit-pages-dialog.move-up":"Move up","shortcuts-dialog.title":"Keyboard shortcuts","shortcuts-dialog.edit":"Edit","shortcuts-dialog.file":"File","shortcuts-dialog.preferences":"Preferences","shortcuts-dialog.tools":"Tools","shortcuts-dialog.transform":"Transform","shortcuts-dialog.view":"View","shortcuts-dialog.collaboration":"Collaboration","home-project-dialog.title":"Home project","home-project-dialog.description":"This is your local home project. It's just for you!","rename-project-dialog.title":"Rename project","rename-project-dialog.cancel":"Cancel","rename-project-dialog.rename":"Rename","home-project-dialog.ok":"Ok","style-panel.title":"Styles","style-panel.align":"Align","style-panel.vertical-align":"Vertical align","style-panel.position":"Position","style-panel.arrowheads":"Arrows","style-panel.arrowhead-start":"Start","style-panel.arrowhead-end":"End","style-panel.color":"Color","style-panel.dash":"Dash","style-panel.fill":"Fill","style-panel.font":"Font","style-panel.geo":"Shape","style-panel.mixed":"Mixed","style-panel.opacity":"Opacity","style-panel.size":"Size","style-panel.spline":"Spline","tool-panel.drawing":"Drawing","tool-panel.shapes":"Shapes","tool-panel.more":"More","debug-panel.more":"More","navigation-zone.toggle-minimap":"Toggle minimap","navigation-zone.zoom":"Zoom","focus-mode.toggle-focus-mode":"Toggle focus mode","toast.close":"Close","file-system.file-open-error.title":"Could not open file","file-system.file-open-error.not-a-tldraw-file":"The file you tried to open doesn't look like a tldraw file.","file-system.file-open-error.file-format-version-too-new":"The file you tried to open is from a newer version of tldraw. Please reload the page and try again.","file-system.file-open-error.generic-corrupted-file":"The file you tried to open is corrupted.","file-system.confirm-open.title":"Overwrite current project?","file-system.confirm-open.description":"Opening a file will replace your current project and any unsaved changes will be lost. Are you sure you want to continue?","file-system.confirm-open.cancel":"Cancel","file-system.confirm-open.open":"Open file","file-system.confirm-open.dont-show-again":"Don't ask again","file-system.confirm-clear.title":"Clear current project?","file-system.confirm-clear.description":"Creating a new project will clear your current project and any unsaved changes will be lost. Are you sure you want to continue?","file-system.confirm-clear.cancel":"Cancel","file-system.confirm-clear.continue":"Continue","file-system.confirm-clear.dont-show-again":"Don't ask again","file-system.shared-document-file-open-error.title":"Could not open file","file-system.shared-document-file-open-error.description":"Opening files from shared projects is not supported.","sharing.confirm-leave.title":"Leave current project?","sharing.confirm-leave.description":"Are you sure you want to leave this shared project? You can return to it by navigating to its URL.","sharing.confirm-leave.cancel":"Cancel","sharing.confirm-leave.leave":"Leave","sharing.confirm-leave.dont-show-again":"Don't ask again","toast.error.export-fail.title":"Failed export","toast.error.export-fail.desc":"Failed to export image","toast.error.copy-fail.title":"Failed copy","toast.error.copy-fail.desc":"Failed to copy image","context.pages.new-page":"New page","vscode.file-open.desc":"We've updated this document to work with the current version of tldraw. If you'd like to keep the original version (which will work on old.tldraw.com), click below to create a backup.","vscode.file-open.open":"Continue","vscode.file-open.backup":"Backup","vscode.file-open.backup-saved":"Backup saved","vscode.file-open.backup-failed":"Backup failed: this is not a .tldr file.","vscode.file-open.dont-show-again":"Don't ask again","cursor-chat.type-to-chat":"Type to chat..."},iS={locale:"en",label:"English",messages:iv};async function ik(e,t){let n=await fetch(t.translations.en);
119if(!n.ok)return console.warn("No main translations found."),iS;if("en"===e)return iS;let r=m.a2c.find(t=>t.locale===e);if(!r)return console.warn(`No translation found for locale ${e}`),iS;let i=await fetch(t.translations[r.locale]),o=await i.json();if(!o)return console.warn(`No messages found for locale ${e}`),iS;let s=[];for(let e in iS.messages)o[e]||s.push(e);return s.length,{locale:e,label:r.label,messages:{...iS.messages,...o}}}let ij=E.createContext({}),i_=()=>E.useContext(ij),iE=(0,m.jas)(function({overrides:e,children:t}){let n=(0,m.jE2)(),r=n.user.getLocale(),i=iw(),[o,s]=E.useState(()=>e&&e.en?{locale:"en",label:"English",messages:{...iv,...e.en}}:{locale:"en",label:"English",messages:iv});return E.useEffect(()=>{let t=!1;return async function(){let n=await ik(r,i);n&&!t&&(e&&e[r]?s({...n,messages:{...n.messages,...e[r]}}):s(n))}(),()=>{t=!0}},[i,r,e]),(0,_.jsx)(ij.Provider,{value:o,children:t})});function iC(){let e=i_();return E.useCallback(function(t){return e.messages[t]??t},[e])}let iP=E.forwardRef(function({children:e,disabled:t,type:n,...r},i){let o=(0,m.jE2)(),s=i?.current;return t&&s===document.activeElement&&o.getContainer().focus(),(0,_.jsx)("button",{ref:i,type:"button",draggable:!1,disabled:t,...r,className:T("tlui-button",`tlui-button__${n}`,r.className),children:e})}),iI=(0,E.memo)(function({small:e,invertIcon:t,icon:n,color:r,className:i,...o}){let s=iw(),a=s.icons[n]??s.icons["question-mark-circle"],l=(0,E.useRef)(null);return(0,E.useLayoutEffect)(()=>{a||console.error(`Icon not found: ${n}. Add it to the assetUrls.icons object.`),l?.current&&(l.current.style.webkitMask=`url(${a}) center 100% / 100% no-repeat`)},[l,a,n]),(0,_.jsx)("div",{...o,ref:l,className:T("tlui-icon",{"tlui-icon__small":e},i),style:{color:r,mask:`url(${a}) center 100% / 100% no-repeat`,transform:t?"scale(-1, 1)":void 0}})});function iT({icon:e,small:t,invertIcon:n}){return(0,_.jsx)(iI,{className:"tlui-button__icon",icon:e,small:t,invertIcon:n})}let iM=0;function iA(){(0,E.useEffect)(()=>{var e,t;let n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",null!==(e=n[0])&&void 0!==e?e:i$()),document.body.insertAdjacentElement("beforeend",null!==(t=n[1])&&void 0!==t?t:i$()),iM++,()=>{1===iM&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),iM--}},[])}function i$(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}let iD="focusScope.autoFocusOnMount",iO="focusScope.autoFocusOnUnmount",iB={bubbles:!1,cancelable:!0},iL=(0,E.forwardRef)((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[a,l]=(0,E.useState)(null),c=rD(i),d=rD(o),u=(0,E.useRef)(null),h=r_(t,e=>l(e)),p=(0,E.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,E.useEffect)(()=>{if(r){function e(e){if(p.paused||!a)return;let t=e.target;a.contains(t)?u.current=t:iz(u.current,{select:!0})}function t(e){if(p.paused||!a)return;let t=e.relatedTarget;null===t||a.contains(t)||iz(u.current,{select:!0})}document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){let t=document.activeElement;if(t===document.body)for(let t of e)t.removedNodes.length>0&&iz(a)});return a&&n.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[r,a,p.paused]),(0,E.useEffect)(()=>{if(a){iF.add(p);let e=document.activeElement,t=a.contains(e);if(!t){let t=new CustomEvent(iD,iB);a.addEventListener(iD,c),a.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(iz(r,{select:t}),document.activeElement!==n)return}(iR(a).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&iz(a))}return()=>{a.removeEventListener(iD,c),setTimeout(()=>{let t=new CustomEvent(iO,iB);a.addEventListener(iO,d),a.dispatchEvent(t),t.defaultPrevented||iz(null!=e?e:document.body,{select:!0}),a.removeEventListener(iO,d),iF.remove(p)}
119,0)}}},[a,c,d,p]);let f=(0,E.useCallback)(e=>{if(!n&&!r||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,o]=function(e){let t=iR(e),n=iN(t,e),r=iN(t.reverse(),e);return[n,r]}(t),s=r&&o;s?e.shiftKey||i!==o?e.shiftKey&&i===r&&(e.preventDefault(),n&&iz(o,{select:!0})):(e.preventDefault(),n&&iz(r,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,E.createElement)(rA.div,(0,rv.Z)({tabIndex:-1},s,{ref:h,onKeyDown:f}))});function iR(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function iN(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function iz(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}let iF=(i=[],{add(e){let t=i[0];e!==t&&(null==t||t.pause()),(i=iU(i,e)).unshift(e)},remove(e){var t;null===(t=(i=iU(i,e))[0])||void 0===t||t.resume()}});function iU(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}let iH=C["useId".toString()]||(()=>void 0),iZ=0;function iV(e){let[t,n]=E.useState(iH());return rU(()=>{e||n(e=>null!=e?e:String(iZ++))},[e]),e||(t?`radix-${t}`:"")}let iK=["top","right","bottom","left"],iW=Math.min,iY=Math.max,iG=Math.round,iX=Math.floor,iq=e=>({x:e,y:e}),iJ={left:"right",right:"left",bottom:"top",top:"bottom"},iQ={start:"end",end:"start"};function i0(e,t){return"function"==typeof e?e(t):e}function i1(e){return e.split("-")[0]}function i2(e){return e.split("-")[1]}function i8(e){return"x"===e?"y":"x"}function i3(e){return"y"===e?"height":"width"}function i5(e){return["top","bottom"].includes(i1(e))?"y":"x"}function i4(e){return e.replace(/start|end/g,e=>iQ[e])}function i6(e){return e.replace(/left|right|bottom|top/g,e=>iJ[e])}function i9(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function i7(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function oe(e,t,n){let r,{reference:i,floating:o}=e,s=i5(t),a=i8(i5(t)),l=i3(a),c=i1(t),d="y"===s,u=i.x+i.width/2-o.width/2,h=i.y+i.height/2-o.height/2,p=i[l]/2-o[l]/2;switch(c){case"top":r={x:u,y:i.y-o.height};break;case"bottom":r={x:u,y:i.y+i.height};break;case"right":r={x:i.x+i.width,y:h};break;case"left":r={x:i.x-o.width,y:h};break;default:r={x:i.x,y:i.y}}switch(i2(t)){case"start":r[a]-=p*(n&&d?-1:1);break;case"end":r[a]+=p*(n&&d?-1:1)}return r}let ot=async(e,t,n)=>{let{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:s}=n,a=o.filter(Boolean),l=await (null==s.isRTL?void 0:s.isRTL(t)),c=await s.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:u}=oe(c,r,l),h=r,p={},f=0;for(let n=0;n<a.length;n++){let{name:o,fn:g}=a[n],{x:m,y:y,data:b,reset:x}=await g({x:d,y:u,initialPlacement:r,placement:h,strategy:i,middlewareData:p,rects:c,platform:s,elements:{reference:e,floating:t}});d=null!=m?m:d,u=null!=y?y:u,p={...p,[o]:{...p[o],...b}},x&&f<=50&&(f++,"object"==typeof x&&(x.placement&&(h=x.placement),x.rects&&(c=!0===x.rects?await s.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:d,y:u}=oe(c,h,l)),n=-1)}return{x:d,y:u,placement:h,strategy:i,middlewareData:p}};async function on(e,t){var n;void 0===t&&(t={});let{x:r,y:i,platform:o,rects:s,elements:a,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:h=!1,padding:p=0}=i0(t,e),f=i9(p),g=a[h?"floating"===u?"reference":"floating":u],m=i7(await o.getClippingRect({element:null==(n=await (null==o.isElement?void 0:o.isElement(g)))||n?g:g.contextElement||await (null==o.getDocumentElement?void 0:o.getDocumentElement(a.floating)),boundary:c,rootBoundary:d,strategy:l})),y="floating"===u?{...s.floating,x:r,y:i}:s.reference,b=await (null==o.getOffsetParent?void 0:o.getOffsetParent(a.floating)),x=await (null==o.isElement?void 0:o.isElement(b))&&await (null==o.getScale?void 0:o.getScale(b))||{x:1,y:1},w=i7(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:y,offsetParent:b,strategy:l}):y);return{top:(m.top-w.top+f.top)/x.y,bottom:(w.bottom-m.bottom+f.bottom)/x.y,left:(m.left-w.left+f.left)/x.x,right:(w.right-m.right+f.right)/x.x}}function or(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function oi(e){return iK.some(t=>e[t]>=0)}async function oo(e,t){let{placement:n,platform:r,elements:i}=e,o=await (null==r.isRTL?void 0:r.isRTL(i.floating)),s=i1(n),a=i2(n),l="y"===i5(n),c=["left","top"].includes(s)?-1:1,d=o&&l?-1:1,u=i0(t,e),{mainAxis:h,crossAxis:p,alignmentAxis:f}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...u};return a&&"number"==typeof f&&(p="end"===a?-1*f:f),l?{x:p*d,y:h*c}:{x:h*c,y:p*d}}function os(e){return oc(e)?(e.nodeName||"").toLowerCase():"#document"}function oa(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function ol(e){var t;return null==(t=(oc(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function oc(e){return e instanceof Node||e instanceof oa(e).Node}function od(e){return e instanceof Element||e instanceof oa(e).Element}function ou(e){return e instanceof HTMLElement||e instanceof oa(e).HTMLElement}function oh(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof oa(e).ShadowRoot)}function op(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=oy(e);
119return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(i)}function of(e){let t=og(),n=oy(e);return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some(e=>(n.willChange||"").includes(e))||["paint","layout","strict","content"].some(e=>(n.contain||"").includes(e))}function og(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}function om(e){return["html","body","#document"].includes(os(e))}function oy(e){return oa(e).getComputedStyle(e)}function ob(e){return od(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ox(e){if("html"===os(e))return e;let t=e.assignedSlot||e.parentNode||oh(e)&&e.host||ol(e);return oh(t)?t.host:t}function ow(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let i=function e(t){let n=ox(t);return om(n)?t.ownerDocument?t.ownerDocument.body:t.body:ou(n)&&op(n)?n:e(n)}(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),s=oa(i);return o?t.concat(s,s.visualViewport||[],op(i)?i:[],s.frameElement&&n?ow(s.frameElement):[]):t.concat(i,ow(i,[],n))}function ov(e){let t=oy(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=ou(e),o=i?e.offsetWidth:n,s=i?e.offsetHeight:r,a=iG(n)!==o||iG(r)!==s;return a&&(n=o,r=s),{width:n,height:r,$:a}}function oS(e){return od(e)?e:e.contextElement}function ok(e){let t=oS(e);if(!ou(t))return iq(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:o}=ov(t),s=(o?iG(n.width):n.width)/r,a=(o?iG(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}let oj=iq(0);function o_(e){let t=oa(e);return og()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:oj}function oE(e,t,n,r){var i;void 0===t&&(t=!1),void 0===n&&(n=!1);let o=e.getBoundingClientRect(),s=oS(e),a=iq(1);t&&(r?od(r)&&(a=ok(r)):a=ok(e));let l=(void 0===(i=n)&&(i=!1),r&&(!i||r===oa(s))&&i)?o_(s):iq(0),c=(o.left+l.x)/a.x,d=(o.top+l.y)/a.y,u=o.width/a.x,h=o.height/a.y;if(s){let e=oa(s),t=r&&od(r)?oa(r):r,n=e,i=n.frameElement;for(;i&&r&&t!==n;){let e=ok(i),t=i.getBoundingClientRect(),r=oy(i),o=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,s=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,d*=e.y,u*=e.x,h*=e.y,c+=o,d+=s,i=(n=oa(i)).frameElement}}return i7({width:u,height:h,x:c,y:d})}let oC=[":popover-open",":modal"];function oP(e){return oC.some(t=>{try{return e.matches(t)}catch(e){return!1}})}function oI(e){return oE(ol(e)).left+ob(e).scrollLeft}function oT(e,t,n){let r;if("viewport"===t)r=function(e,t){let n=oa(e),r=ol(e),i=n.visualViewport,o=r.clientWidth,s=r.clientHeight,a=0,l=0;if(i){o=i.width,s=i.height;let e=og();(!e||e&&"fixed"===t)&&(a=i.offsetLeft,l=i.offsetTop)}return{width:o,height:s,x:a,y:l}}(e,n);else if("document"===t)r=function(e){let t=ol(e),n=ob(e),r=e.ownerDocument.body,i=iY(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=iY(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),s=-n.scrollLeft+oI(e),a=-n.scrollTop;return"rtl"===oy(r).direction&&(s+=iY(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:s,y:a}}(ol(e));else if(od(t))r=function(e,t){let n=oE(e,!0,"fixed"===t),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=ou(e)?ok(e):iq(1),s=e.clientWidth*o.x,a=e.clientHeight*o.y,l=i*o.x,c=r*o.y;return{width:s,height:a,x:l,y:c}}(t,n);else{let n=o_(e);r={...t,x:t.x-n.x,y:t.y-n.y}}return i7(r)}function oM(e,t){return ou(e)&&"fixed"!==oy(e).position?t?t(e):e.offsetParent:null}function oA(e,t){let n=oa(e);if(!ou(e)||oP(e))return n;let r=oM(e,t);for(;r&&["table","td","th"].includes(os(r))&&"static"===oy(r).position;)r=oM(r,t);return r&&("html"===os(r)||"body"===os(r)&&"static"===oy(r).position&&!of(r))?n:r||function(e){let t=ox(e);for(;ou(t)&&!om(t);){if(of(t))return t;t=ox(t)}return null}(e)||n}let o$=async function(e){let t=this.getOffsetParent||oA,n=this.getDimensions;return{reference:function(e,t,n){let r=ou(t),i=ol(t),o="fixed"===n,s=oE(e,!0,o,t),a={scrollLeft:0,scrollTop:0},l=iq(0);if(r||!r&&!o){if(("body"!==os(t)||op(i))&&(a=ob(t)),r){let e=oE(t,!0,o,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else i&&(l.x=oI(i))}let c=s.left+a.scrollLeft-l.x,d=s.top+a.scrollTop-l.y;return{x:c,y:d,width:s.width,height:s.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await n(e.floating)}}},oD={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,o="fixed"===i,s=ol(r),a=!!t&&oP(t.floating);if(r===s||a&&o)return n;let l={scrollLeft:0,scrollTop:0},c=iq(1),d=iq(0),u=ou(r);
119if((u||!u&&!o)&&(("body"!==os(r)||op(s))&&(l=ob(r)),ou(r))){let e=oE(r);c=ok(r),d.x=e.x+r.clientLeft,d.y=e.y+r.clientTop}return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x,y:n.y*c.y-l.scrollTop*c.y+d.y}},getDocumentElement:ol,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,o="clippingAncestors"===n?function(e,t){let n=t.get(e);if(n)return n;let r=ow(e,[],!1).filter(e=>od(e)&&"body"!==os(e)),i=null,o="fixed"===oy(e).position,s=o?ox(e):e;for(;od(s)&&!om(s);){let t=oy(s),n=of(s);n||"fixed"!==t.position||(i=null);let a=o?!n&&!i:!n&&"static"===t.position&&!!i&&["absolute","fixed"].includes(i.position)||op(s)&&!n&&function e(t,n){let r=ox(t);return!(r===n||!od(r)||om(r))&&("fixed"===oy(r).position||e(r,n))}(e,s);a?r=r.filter(e=>e!==s):i=t,s=ox(s)}return t.set(e,r),r}(t,this._c):[].concat(n),s=[...o,r],a=s[0],l=s.reduce((e,n)=>{let r=oT(t,n,i);return e.top=iY(r.top,e.top),e.right=iW(r.right,e.right),e.bottom=iW(r.bottom,e.bottom),e.left=iY(r.left,e.left),e},oT(t,a,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:oA,getElementRects:o$,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=ov(e);return{width:t,height:n}},getScale:ok,isElement:od,isRTL:function(e){return"rtl"===oy(e).direction}},oO=e=>({name:"arrow",options:e,async fn(t){let{x:n,y:r,placement:i,rects:o,platform:s,elements:a,middlewareData:l}=t,{element:c,padding:d=0}=i0(e,t)||{};if(null==c)return{};let u=i9(d),h={x:n,y:r},p=i8(i5(i)),f=i3(p),g=await s.getDimensions(c),m="y"===p,y=m?"clientHeight":"clientWidth",b=o.reference[f]+o.reference[p]-h[p]-o.floating[f],x=h[p]-o.reference[p],w=await (null==s.getOffsetParent?void 0:s.getOffsetParent(c)),v=w?w[y]:0;v&&await (null==s.isElement?void 0:s.isElement(w))||(v=a.floating[y]||o.floating[f]);let S=v/2-g[f]/2-1,k=iW(u[m?"top":"left"],S),j=iW(u[m?"bottom":"right"],S),_=v-g[f]-j,E=v/2-g[f]/2+(b/2-x/2),C=iY(k,iW(E,_)),P=!l.arrow&&null!=i2(i)&&E!==C&&o.reference[f]/2-(E<k?k:j)-g[f]/2<0,I=P?E<k?E-k:E-_:0;return{[p]:h[p]+I,data:{[p]:C,centerOffset:E-C-I,...P&&{alignmentOffset:I}},reset:P}}}),oB=(e,t,n)=>{let r=new Map,i={platform:oD,...n},o={...i.platform,_c:r};return ot(e,t,{...i,platform:o})},oL=e=>({name:"arrow",options:e,fn(t){let{element:n,padding:r}="function"==typeof e?e(t):e;return n&&({}).hasOwnProperty.call(n,"current")?null!=n.current?oO({element:n.current,padding:r}).fn(t):{}:n?oO({element:n,padding:r}).fn(t):{}}});var oR="undefined"!=typeof document?E.useLayoutEffect:E.useEffect;function oN(e,t){let n,r,i;if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if((n=e.length)!==t.length)return!1;for(r=n;0!=r--;)if(!oN(e[r],t[r]))return!1;return!0}if((n=(i=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!({}).hasOwnProperty.call(t,i[r]))return!1;for(r=n;0!=r--;){let n=i[r];if(("_owner"!==n||!e.$$typeof)&&!oN(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function oz(e){if("undefined"==typeof window)return 1;let t=e.ownerDocument.defaultView||window;return t.devicePixelRatio||1}function oF(e,t){let n=oz(e);return Math.round(t*n)/n}function oU(e){let t=E.useRef(e);return oR(()=>{t.current=e}),t}let oH=(0,E.forwardRef)((e,t)=>{let{children:n,width:r=10,height:i=5,...o}=e;return(0,E.createElement)(rA.svg,(0,rv.Z)({},o,{ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),e.asChild?n:(0,E.createElement)("polygon",{points:"0,0 30,0 15,10"}))});function oZ(e){let[t,n]=(0,E.useState)(void 0);return rU(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,i;if(!Array.isArray(t)||!t.length)return;let o=t[0];if("borderBoxSize"in o){let e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,i=t.blockSize}else r=e.offsetWidth,i=e.offsetHeight;n({width:r,height:i})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}let oV="Popper",[oK,oW]=rE(oV),[oY,oG]=oK(oV),oX=(0,E.forwardRef)((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,o=oG("PopperAnchor",n),s=(0,E.useRef)(null),a=r_(t,s);return(0,E.useEffect)(()=>{o.onAnchorChange((null==r?void 0:r.current)||s.current)}),r?null:(0,E.createElement)(rA.div,(0,rv.Z)({},i,{ref:a}))}),oq="PopperContent",[oJ,oQ]=oK(oq),o0=(0,E.forwardRef)((e,t)=>{var n,r,i,o,s,a,l,c,d,u,h,p,f,g;let{__scopePopper:m,side:y="bottom",sideOffset:b=0,align:x="center",alignOffset:w=0,arrowPadding:v=0,avoidCollisions:S=!0,collisionBoundary:k=[],collisionPadding:j=0,sticky:_="partial",hideWhenDetached:C=!1,updatePositionStrategy:P="optimized",onPlaced:I,...T}=e,M=oG(oq,m),[A,$]=(0,E.useState)(null),D=r_(t,e=>$(e)),[O,B]=(0,E.useState)(null),L=oZ(O),R=null!==(n=null==L?void 0:L.width)&&void 0!==n?n:0,N=null!==(r=null==L?void 0:L.height)&&void 0!==r?r:0,z="number"==typeof j?j:{top:0,right:0,bottom:0,left:0,...j},F=Array.isArray(k)?k:[k],U=F.length>0,H={padding:z,boundary:F.filter(o8),altBoundary:U},{refs:Z,floatingStyles:V,placement:K,isPositioned:W,middlewareData:Y}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:s}={},transform:a=!0,whileElementsMounted:l,open:c}=e,[d,u]=E.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,p]=E.useState(r);oN(h,r)||p(r);let[f,g]=E.useState(null),[m,y]=E.useState(null),b=E.useCallback(e=>
119{e!==S.current&&(S.current=e,g(e))},[]),x=E.useCallback(e=>{e!==k.current&&(k.current=e,y(e))},[]),w=o||f,v=s||m,S=E.useRef(null),k=E.useRef(null),j=E.useRef(d),_=null!=l,C=oU(l),P=oU(i),I=E.useCallback(()=>{if(!S.current||!k.current)return;let e={placement:t,strategy:n,middleware:h};P.current&&(e.platform=P.current),oB(S.current,k.current,e).then(e=>{let t={...e,isPositioned:!0};T.current&&!oN(j.current,t)&&(j.current=t,rS.flushSync(()=>{u(t)}))})},[h,t,n,P]);oR(()=>{!1===c&&j.current.isPositioned&&(j.current.isPositioned=!1,u(e=>({...e,isPositioned:!1})))},[c]);let T=E.useRef(!1);oR(()=>(T.current=!0,()=>{T.current=!1}),[]),oR(()=>{if(w&&(S.current=w),v&&(k.current=v),w&&v){if(C.current)return C.current(w,v,I);I()}},[w,v,I,C,_]);let M=E.useMemo(()=>({reference:S,floating:k,setReference:b,setFloating:x}),[b,x]),A=E.useMemo(()=>({reference:w,floating:v}),[w,v]),$=E.useMemo(()=>{let e={position:n,left:0,top:0};if(!A.floating)return e;let t=oF(A.floating,d.x),r=oF(A.floating,d.y);return a?{...e,transform:"translate("+t+"px, "+r+"px)",...oz(A.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,a,A.floating,d.x,d.y]);return E.useMemo(()=>({...d,update:I,refs:M,elements:A,floatingStyles:$}),[d,I,M,A,$])}({strategy:"fixed",placement:y+("center"!==x?"-"+x:""),whileElementsMounted:(...e)=>{let t=function(e,t,n,r){let i;void 0===r&&(r={});let{ancestorScroll:o=!0,ancestorResize:s=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:c=!1}=r,d=oS(e),u=o||s?[...d?ow(d):[],...ow(t)]:[];u.forEach(e=>{o&&e.addEventListener("scroll",n,{passive:!0}),s&&e.addEventListener("resize",n)});let h=d&&l?function(e,t){let n,r=null,i=ol(e);function o(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return!function s(a,l){void 0===a&&(a=!1),void 0===l&&(l=1),o();let{left:c,top:d,width:u,height:h}=e.getBoundingClientRect();if(a||t(),!u||!h)return;let p=iX(d),f=iX(i.clientWidth-(c+u)),g=iX(i.clientHeight-(d+h)),m=iX(c),y={rootMargin:-p+"px "+-f+"px "+-g+"px "+-m+"px",threshold:iY(0,iW(1,l))||1},b=!0;function x(e){let t=e[0].intersectionRatio;if(t!==l){if(!b)return s();t?s(!1,t):n=setTimeout(()=>{s(!1,1e-7)},100)}b=!1}try{r=new IntersectionObserver(x,{...y,root:i.ownerDocument})}catch(e){r=new IntersectionObserver(x,y)}r.observe(e)}(!0),o}(d,n):null,p=-1,f=null;a&&(f=new ResizeObserver(e=>{let[r]=e;r&&r.target===d&&f&&(f.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=f)||e.observe(t)})),n()}),d&&!c&&f.observe(d),f.observe(t));let g=c?oE(e):null;return c&&function t(){let r=oE(e);g&&(r.x!==g.x||r.y!==g.y||r.width!==g.width||r.height!==g.height)&&n(),g=r,i=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach(e=>{o&&e.removeEventListener("scroll",n),s&&e.removeEventListener("resize",n)}),null==h||h(),null==(e=f)||e.disconnect(),f=null,c&&cancelAnimationFrame(i)}}(...e,{animationFrame:"always"===P});return t},elements:{reference:M.anchor},middleware:[{name:"offset",options:d={mainAxis:b+N,alignmentAxis:w},async fn(e){var t,n;let{x:r,y:i,placement:o,middlewareData:s}=e,a=await oo(e,d);return o===(null==(t=s.offset)?void 0:t.placement)&&null!=(n=s.arrow)&&n.alignmentOffset?{}:{x:r+a.x,y:i+a.y,data:{...a,placement:o}}}},S&&{name:"shift",options:h={mainAxis:!0,crossAxis:!1,limiter:"partial"===_?(void 0===u&&(u={}),{options:u,fn(e){let{x:t,y:n,placement:r,rects:i,middlewareData:o}=e,{offset:s=0,mainAxis:a=!0,crossAxis:l=!0}=i0(u,e),c={x:t,y:n},d=i5(r),h=i8(d),p=c[h],f=c[d],g=i0(s,e),m="number"==typeof g?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(a){let e="y"===h?"height":"width",t=i.reference[h]-i.floating[e]+m.mainAxis,n=i.reference[h]+i.reference[e]-m.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){var y,b;let e="y"===h?"width":"height",t=["top","left"].includes(i1(r)),n=i.reference[d]-i.floating[e]+(t&&(null==(y=o.offset)?void 0:y[d])||0)+(t?0:m.crossAxis),s=i.reference[d]+i.reference[e]+(t?0:(null==(b=o.offset)?void 0:b[d])||0)-(t?m.crossAxis:0);f<n?f=n:f>s&&(f=s)}return{[h]:p,[d]:f}}}):void 0,...H},async fn(e){let{x:t,y:n,placement:r}=e,{mainAxis:i=!0,crossAxis:o=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...a}=i0(h,e),l={x:t,y:n},c=await on(e,a),d=i5(i1(r)),u=i8(d),p=l[u],f=l[d];if(i){let e=p+c["y"===u?"top":"left"],t=p-c["y"===u?"bottom":"right"];p=iY(e,iW(p,t))}if(o){let e="y"===d?"top":"left",t="y"===d?"bottom":"right",n=f+c[e],r=f-c[t];f=iY(n,iW(f,r))}let g=s.fn({...e,[u]:p,[d]:f});return{...g,data:{x:g.x-t,y:g.y-n}}}},S&&{name:"flip",options:p={...H},async fn(e){var t,n,r,i,o;let{placement:s,middlewareData:a,rects:l,initialPlacement:c,platform:d,elements:u}=e,{mainAxis:h=!0,crossAxis:f=!0,fallbackPlacements:g,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:b=!0,...x}=i0(p,e);if(null!=(t=a.arrow)&&t.alignmentOffset)return{};let w=i1(s),v=i1(c)===c,S=await (null==d.isRTL?void 0:d.isRTL(u.floating)),k=g||(v||!b?[i6(c)]:function(e){let t=i6(e);return[i4(e),t,i4(t)]}(c));g||"none"===y||k.push(...function(e,t,n,r){let i=i2(e),o=function(e,t,n){let r=["left","right"],i=["right","left"];switch(e){case"top":case"bottom":if(n)return t?i:r;return t?r:i;case"left":case"right":return t?["top","bottom"]:["bottom","top"];default:return[]}}(i1(e),"start"===n,r);return i&&(o=o.map(e=>e+"-"+i),t&&(o=o.concat(o.map(i4)))),o}(c,b,y,S));let j=[c,...k],_=await on(e,x),E=[],C=(null==(n=a.flip)?void 0:n.overflows)||[];if(h&&E.push(_[w]),f){let e=function(e,t,n){void 0===n&&(n=!1);let r=i2(e),i=i8(i5(e)),o=i3(i),s="x"===i?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[o]>t.floating[o]&&(s=i6(s)),[s,i6(s)]}(s,l,S);E.push(_[e[0]],_[e[1]])}if(C=[...C,{placement:s,overflows:E}],!E.every(e=>e<=0)){let e=((null==(r=a.flip)?void 0:r.index)||0)+1,t=j[e];if(t)return{data:{index:e,overflows:C},reset:{placement:t}};let n=null==(i=C.filter(e=>e.overflows[0]<=0).sort((e,t)=>
119e.overflows[1]-t.overflows[1])[0])?void 0:i.placement;if(!n)switch(m){case"bestFit":{let e=null==(o=C.map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:o[0];e&&(n=e);break}case"initialPlacement":n=c}if(s!==n)return{reset:{placement:n}}}return{}}},{name:"size",options:f={...H,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:o}=t.reference,s=e.floating.style;s.setProperty("--radix-popper-available-width",`${n}px`),s.setProperty("--radix-popper-available-height",`${r}px`),s.setProperty("--radix-popper-anchor-width",`${i}px`),s.setProperty("--radix-popper-anchor-height",`${o}px`)}},async fn(e){let t,n;let{placement:r,rects:i,platform:o,elements:s}=e,{apply:a=()=>{},...l}=i0(f,e),c=await on(e,l),d=i1(r),u=i2(r),h="y"===i5(r),{width:p,height:g}=i.floating;"top"===d||"bottom"===d?(t=d,n=u===(await (null==o.isRTL?void 0:o.isRTL(s.floating))?"start":"end")?"left":"right"):(n=d,t="end"===u?"top":"bottom");let m=g-c[t],y=p-c[n],b=!e.middlewareData.shift,x=m,w=y;if(h){let e=p-c.left-c.right;w=u||b?iW(y,e):e}else{let e=g-c.top-c.bottom;x=u||b?iW(m,e):e}if(b&&!u){let e=iY(c.left,0),t=iY(c.right,0),n=iY(c.top,0),r=iY(c.bottom,0);h?w=p-2*(0!==e||0!==t?e+t:iY(c.left,c.right)):x=g-2*(0!==n||0!==r?n+r:iY(c.top,c.bottom))}await a({...e,availableWidth:w,availableHeight:x});let v=await o.getDimensions(s.floating);return p!==v.width||g!==v.height?{reset:{rects:!0}}:{}}},O&&oL({element:O,padding:v}),o3({arrowWidth:R,arrowHeight:N}),C&&{name:"hide",options:g={strategy:"referenceHidden",...H},async fn(e){let{rects:t}=e,{strategy:n="referenceHidden",...r}=i0(g,e);switch(n){case"referenceHidden":{let n=await on(e,{...r,elementContext:"reference"}),i=or(n,t.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:oi(i)}}}case"escaped":{let n=await on(e,{...r,altBoundary:!0}),i=or(n,t.floating);return{data:{escapedOffsets:i,escaped:oi(i)}}}default:return{}}}}]}),[G,X]=o5(K),q=rD(I);rU(()=>{W&&(null==q||q())},[W,q]);let J=null===(i=Y.arrow)||void 0===i?void 0:i.x,Q=null===(o=Y.arrow)||void 0===o?void 0:o.y,ee=(null===(s=Y.arrow)||void 0===s?void 0:s.centerOffset)!==0,[et,en]=(0,E.useState)();return rU(()=>{A&&en(window.getComputedStyle(A).zIndex)},[A]),(0,E.createElement)("div",{ref:Z.setFloating,"data-radix-popper-content-wrapper":"",style:{...V,transform:W?V.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:et,"--radix-popper-transform-origin":[null===(a=Y.transformOrigin)||void 0===a?void 0:a.x,null===(l=Y.transformOrigin)||void 0===l?void 0:l.y].join(" ")},dir:e.dir},(0,E.createElement)(oJ,{scope:m,placedSide:G,onArrowChange:B,arrowX:J,arrowY:Q,shouldHideArrow:ee},(0,E.createElement)(rA.div,(0,rv.Z)({"data-side":G,"data-align":X},T,{ref:D,style:{...T.style,animation:W?void 0:"none",opacity:null!==(c=Y.hide)&&void 0!==c&&c.referenceHidden?0:void 0}}))))}),o1={top:"bottom",right:"left",bottom:"top",left:"right"},o2=(0,E.forwardRef)(function(e,t){let{__scopePopper:n,...r}=e,i=oQ("PopperArrow",n),o=o1[i.placedSide];return(0,E.createElement)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]: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,E.createElement)(oH,(0,rv.Z)({},r,{ref:t,style:{...r.style,display:"block"}})))});function o8(e){return null!==e}let o3=e=>({name:"transformOrigin",options:e,fn(t){var n,r,i,o,s;let{placement:a,rects:l,middlewareData:c}=t,d=(null===(n=c.arrow)||void 0===n?void 0:n.centerOffset)!==0,u=d?0:e.arrowWidth,h=d?0:e.arrowHeight,[p,f]=o5(a),g={start:"0%",center:"50%",end:"100%"}[f],m=(null!==(r=null===(i=c.arrow)||void 0===i?void 0:i.x)&&void 0!==r?r:0)+u/2,y=(null!==(o=null===(s=c.arrow)||void 0===s?void 0:s.y)&&void 0!==o?o:0)+h/2,b="",x="";return"bottom"===p?(b=d?g:`${m}px`,x=`${-h}px`):"top"===p?(b=d?g:`${m}px`,x=`${l.floating.height+h}px`):"right"===p?(b=`${-h}px`,x=d?g:`${y}px`):"left"===p&&(b=`${l.floating.width+h}px`,x=d?g:`${y}px`),{data:{x:b,y:x}}}});function o5(e){let[t,n="center"]=e.split("-");return[t,n]}let o4=e=>{let{__scopePopper:t,children:n}=e,[r,i]=(0,E.useState)(null);return(0,E.createElement)(oY,{scope:t,anchor:r,onAnchorChange:i},n)};var o6=n(49732),o9=n(5163),o7=n(95346),se=n(22442),st=(0,n(64597)._)(),sn=function(){},sr=E.forwardRef(function(e,t){var n=E.useRef(null),r=E.useState({onScrollCapture:sn,onWheelCapture:sn,onTouchMoveCapture:sn}),i=r[0],o=r[1],s=e.forwardProps,a=e.children,l=e.className,c=e.removeScrollBar,d=e.enabled,u=e.shards,h=e.sideCar,p=e.noIsolation,f=e.inert,g=e.allowPinchZoom,m=e.as,y=void 0===m?"div":m,b=(0,o9._T)(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),x=(0,se.q)([n,t]),w=(0,o9.pi)((0,o9.pi)({},b),i);return E.createElement(E.Fragment,null,d&&E.createElement(h,{sideCar:st,removeScrollBar:c,shards:u,noIsolation:p,inert:f,setCallbacks:o,allowPinchZoom:!!g,lockRef:n}),s?E.cloneElement(E.Children.only(a),(0,o9.pi)((0,o9.pi)({},w),{ref:x})):E.createElement(y,(0,o9.pi)({},w,{className:l,ref:x}),a))});sr.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},sr.classNames={fullWidth:o7.zi,zeroRight:o7.pF};var si=n(57758),so=n(181),ss=n(33225),sa=!1;if("undefined"!=typeof window)try{var sl=Object.defineProperty({},"passive",{get:function(){return sa=!0,!0}});window.addEventListener("test",sl,sl),window.removeEventListener("test",sl,sl)}catch(e){sa=!1}var sc=!!sa&&{passive:!1},sd=function(e,t){var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&"TEXTAREA"!==e.tagName&&"visible"===n[t])},su=function(e,t){var n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),sh(e,n
119)){var r=sp(e,n);if(r[1]>r[2])return!0}n=n.parentNode}while(n&&n!==document.body);return!1},sh=function(e,t){return"v"===e?sd(t,"overflowY"):sd(t,"overflowX")},sp=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},sf=function(e,t,n,r,i){var o,s=(o=window.getComputedStyle(t).direction,"h"===e&&"rtl"===o?-1:1),a=s*r,l=n.target,c=t.contains(l),d=!1,u=a>0,h=0,p=0;do{var f=sp(e,l),g=f[0],m=f[1]-f[2]-s*g;(g||m)&&sh(e,l)&&(h+=m,p+=g),l=l.parentNode}while(!c&&l!==document.body||c&&(t.contains(l)||t===l));return u&&(i&&0===h||!i&&a>h)?d=!0:!u&&(i&&0===p||!i&&-a>p)&&(d=!0),d},sg=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},sm=function(e){return[e.deltaX,e.deltaY]},sy=function(e){return e&&"current"in e?e.current:e},sb=0,sx=[],sw=(0,si.L)(st,function(e){var t=E.useRef([]),n=E.useRef([0,0]),r=E.useRef(),i=E.useState(sb++)[0],o=E.useState(function(){return(0,ss.Ws)()})[0],s=E.useRef(e);E.useEffect(function(){s.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var t=(0,o9.ev)([e.lockRef.current],(e.shards||[]).map(sy),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var a=E.useCallback(function(e,t){if("touches"in e&&2===e.touches.length)return!s.current.allowPinchZoom;var i,o=sg(e),a=n.current,l="deltaX"in e?e.deltaX:a[0]-o[0],c="deltaY"in e?e.deltaY:a[1]-o[1],d=e.target,u=Math.abs(l)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===u&&"range"===d.type)return!1;var h=su(u,d);if(!h)return!0;if(h?i=u:(i="v"===u?"h":"v",h=su(u,d)),!h)return!1;if(!r.current&&"changedTouches"in e&&(l||c)&&(r.current=i),!i)return!0;var p=r.current||i;return sf(p,t,e,"h"===p?l:c,!0)},[]),l=E.useCallback(function(e){if(sx.length&&sx[sx.length-1]===o){var n="deltaY"in e?sm(e):sg(e),r=t.current.filter(function(t){var r;return t.name===e.type&&t.target===e.target&&(r=t.delta)[0]===n[0]&&r[1]===n[1]})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var i=(s.current.shards||[]).map(sy).filter(Boolean).filter(function(t){return t.contains(e.target)});(i.length>0?a(e,i[0]):!s.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=E.useCallback(function(e,n,r,i){var o={name:e,delta:n,target:r,should:i};t.current.push(o),setTimeout(function(){t.current=t.current.filter(function(e){return e!==o})},1)},[]),d=E.useCallback(function(e){n.current=sg(e),r.current=void 0},[]),u=E.useCallback(function(t){c(t.type,sm(t),t.target,a(t,e.lockRef.current))},[]),h=E.useCallback(function(t){c(t.type,sg(t),t.target,a(t,e.lockRef.current))},[]);E.useEffect(function(){return sx.push(o),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:h}),document.addEventListener("wheel",l,sc),document.addEventListener("touchmove",l,sc),document.addEventListener("touchstart",d,sc),function(){sx=sx.filter(function(e){return e!==o}),document.removeEventListener("wheel",l,sc),document.removeEventListener("touchmove",l,sc),document.removeEventListener("touchstart",d,sc)}},[]);var p=e.removeScrollBar,f=e.inert;return E.createElement(E.Fragment,null,f?E.createElement(o,{styles:"\n  .block-interactivity-".concat(i," {pointer-events: none;}\n  .allow-interactivity-").concat(i," {pointer-events: all;}\n")}):null,p?E.createElement(so.jp,{gapMode:"margin"}):null)}),sv=E.forwardRef(function(e,t){return E.createElement(sr,(0,o9.pi)({},e,{ref:t,sideCar:sw}))});sv.classNames=sr.classNames;let sS="Popover",[sk,sj]=rE(sS,[oW]),s_=oW(),[sE,sC]=sk(sS),sP=(0,E.forwardRef)((e,t)=>{let{__scopePopover:n,...r}=e,i=sC("PopoverTrigger",n),o=s_(n),s=r_(t,i.triggerRef),a=(0,E.createElement)(rA.button,(0,rv.Z)({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":sL(i.open)},r,{ref:s,onClick:rk(e.onClick,i.onOpenToggle)}));return i.hasCustomAnchor?a:(0,E.createElement)(oX,(0,rv.Z)({asChild:!0},o),a)}),sI="PopoverPortal",[sT,sM]=sk(sI,{forceMount:void 0}),sA="PopoverContent",s$=(0,E.forwardRef)((e,t)=>{let n=sM(sA,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=sC(sA,e.__scopePopover);return(0,E.createElement)(rH,{present:r||o.open},o.modal?(0,E.createElement)(sD,(0,rv.Z)({},i,{ref:t})):(0,E.createElement)(sO,(0,rv.Z)({},i,{ref:t})))}),sD=(0,E.forwardRef)((e,t)=>{let n=sC(sA,e.__scopePopover),r=(0,E.useRef)(null),i=r_(t,r),o=(0,E.useRef)(!1);return(0,E.useEffect)(()=>{let e=r.current;if(e)return(0,o6.Ry)(e)},[]),(0,E.createElement)(sv,{as:rC,allowPinchZoom:!0},(0,E.createElement)(sB,(0,rv.Z)({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:rk(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),o.current||null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:rk(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;o.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:rk(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})))}),sO=(0,E.forwardRef)((e,t)=>{let n=sC(sA,e.__scopePopover),r=(0,E.useRef)(!1),i=(0,E.useRef)(!1);return(0,E.createElement)(sB,(0,rv.Z)({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var o,s;null===(o=e.onCloseAutoFocus)||void 0===o||o.call(e,t),t.defaultPrevented||(r.current||null===(s=n.triggerRef.current)||void 0===s||s.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{var o,s;null===(o=e.onInteractOutside)||void 0===o||o.call(e,t),t.defaultPrevented||(r.current=!0,"pointerdown"!==t.detail.originalEvent.type||(i.current=!0));let a=t.target,l=null===(s=n.triggerRef.current)||void 0===s?void 0:s.contains(a);l&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}}))}),sB=(0,E.forwardRef)((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...u}=e,h=sC(sA,n),p=s_(n);return iA(),(0,E.createElement)(iL,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o},(0,E.createElement)(rL,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:d,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>h.onOpenChange(!1)},(0,E.createElement)(o0,(0,rv.Z)({"data-state":sL(h.open),role:"dialog",id:h.contentId},p,u,{ref:t,style:{...u.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}}))))});function sL(e){return e?"open":"closed"}let sR=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:s=!1}=e,a=s_(t),l=(0,E.useRef)(null),[c,d]=(0,E.useState)(!1),[u=!1,h]=rV({prop:r,defaultProp:i,onChange:o});return(0,E.createElement)(o4,a,(0,E.createElement)(sE,{scope:t,contentId:iV(),triggerRef:l,open:u,onOpenChange:h,onOpenToggle:(0,E.useCallback)(()=>h(e=>!e),[h]),hasCustomAnchor:c,onCustomAnchorAdd:(0,E.useCallback)(()=>d(!0),[]),onCustomAnchorRemove:(0,E.useCallback)(()=>d(!1),[]),modal:s},n))},sN=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=sC(sI,t);return(0,E.createElement)(sT,{scope:t,forceMount:n},(0,E.createElement)(rH,{present:n||o.open},(0,E.createElement)(rF,{asChild:!0,container:i},r)))},sz=()=>void 0,sF=E.createContext({});function sU({onEvent:e,children:t}){return(0,_.jsx)(sF.Provider,{value:e??sz,children:t})}function sH(){let e=E.useContext(sF);return e??sz}function sZ(e,t){let n=(0,m.jE2)(),r=(0,E.useRef)(!1),i=sH(),o=(0,E.useCallback)(i=>{r.current=i,n.batch(()=>{i?(n.complete(),n.addOpenMenu(e)):n.updateInstanceState({openMenus:n.getOpenMenus().filter(t=>!t.startsWith(e))}),t?.(i)})},[n,e,t]),s=(0,m.HgN)("is menu open",()=>n.getOpenMenus().includes(e),[n,e]);return(0,E.useEffect)(()=>(r.current&&(i("open-menu",{source:"unknown",id:e}),n.addOpenMenu(e)),()=>
119{r.current&&(n.deleteOpenMenu(e),n.getOpenMenus().forEach(t=>{t.startsWith(e)&&(i("close-menu",{source:"unknown",id:e}),n.deleteOpenMenu(t))}),r.current=!1)}),[n,e,i]),[s,o]}function sV({id:e,children:t,onOpenChange:n,open:r}){let[i,o]=sZ(e,n);return(0,_.jsx)(sR,{onOpenChange:o,open:r||i,children:(0,_.jsx)("div",{className:"tlui-popover",children:t})})}function sK({children:e}){return(0,_.jsx)(sP,{asChild:!0,dir:"ltr",children:e})}function sW({side:e,children:t,align:n="center",sideOffset:r=8,alignOffset:i=0}){let o=(0,m.uK4)();return(0,_.jsx)(sN,{container:o,children:(0,_.jsx)(s$,{className:"tlui-popover__content",side:e,sideOffset:r,align:n,alignOffset:i,dir:"ltr",children:t})})}let sY=(0,E.createContext)({type:"menu",sourceId:"main-menu"});function sG(){return(0,E.useContext)(sY)}function sX({type:e,sourceId:t,children:n}){return(0,_.jsx)(sY.Provider,{value:{type:e,sourceId:t},children:n})}function sq({children:e}){return(0,_.jsx)("span",{className:"tlui-button__label",children:e})}let sJ="Dialog",[sQ,s0]=rE(sJ),[s1,s2]=sQ(sJ),s8="DialogPortal",[s3,s5]=sQ(s8,{forceMount:void 0}),s4="DialogOverlay",s6=(0,E.forwardRef)((e,t)=>{let n=s5(s4,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=s2(s4,e.__scopeDialog);return o.modal?(0,E.createElement)(rH,{present:r||o.open},(0,E.createElement)(s9,(0,rv.Z)({},i,{ref:t}))):null}),s9=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,...r}=e,i=s2(s4,n);return(0,E.createElement)(sv,{as:rC,allowPinchZoom:!0,shards:[i.contentRef]},(0,E.createElement)(rA.div,(0,rv.Z)({"data-state":aa(i.open)},r,{ref:t,style:{pointerEvents:"auto",...r.style}})))}),s7="DialogContent",ae=(0,E.forwardRef)((e,t)=>{let n=s5(s7,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=s2(s7,e.__scopeDialog);return(0,E.createElement)(rH,{present:r||o.open},o.modal?(0,E.createElement)(at,(0,rv.Z)({},i,{ref:t})):(0,E.createElement)(an,(0,rv.Z)({},i,{ref:t})))}),at=(0,E.forwardRef)((e,t)=>{let n=s2(s7,e.__scopeDialog),r=(0,E.useRef)(null),i=r_(t,n.contentRef,r);return(0,E.useEffect)(()=>{let e=r.current;if(e)return(0,o6.Ry)(e)},[]),(0,E.createElement)(ar,(0,rv.Z)({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:rk(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:rk(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;r&&e.preventDefault()}),onFocusOutside:rk(e.onFocusOutside,e=>e.preventDefault())}))}),an=(0,E.forwardRef)((e,t)=>{let n=s2(s7,e.__scopeDialog),r=(0,E.useRef)(!1),i=(0,E.useRef)(!1);return(0,E.createElement)(ar,(0,rv.Z)({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var o,s;null===(o=e.onCloseAutoFocus)||void 0===o||o.call(e,t),t.defaultPrevented||(r.current||null===(s=n.triggerRef.current)||void 0===s||s.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{var o,s;null===(o=e.onInteractOutside)||void 0===o||o.call(e,t),t.defaultPrevented||(r.current=!0,"pointerdown"!==t.detail.originalEvent.type||(i.current=!0));let a=t.target,l=null===(s=n.triggerRef.current)||void 0===s?void 0:s.contains(a);l&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}}))}),ar=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,a=s2(s7,n),l=(0,E.useRef)(null),c=r_(t,l);return iA(),(0,E.createElement)(E.Fragment,null,(0,E.createElement)(iL,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o},(0,E.createElement)(rL,(0,rv.Z)({role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":aa(a.open)},s,{ref:c,onDismiss:()=>a.onOpenChange(!1)}))),!1)}),ai="DialogTitle",ao=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,...r}=e,i=s2(ai,n);return(0,E.createElement)(rA.h2,(0,rv.Z)({id:i.titleId},r,{ref:t}))}),as=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,...r}=e,i=s2("DialogClose",n);return(0,E.createElement)(rA.button,(0,rv.Z)({type:"button"},r,{ref:t,onClick:rk(e.onClick,()=>i.onOpenChange(!1))}))});function aa(e){return e?"open":"closed"}let[al,ac]=function(e,t){let n=(0,E.createContext)(t);function r(e){let{children:t,...r}=e,i=(0,E.useMemo)(()=>r,Object.values(r));return(0,E.createElement)(n.Provider,{value:i},t)}return r.displayName=e+"Provider",[r,function(r){let i=(0,E.useContext)(n);if(i)return i;if(void 0!==t)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}]}("DialogTitleWarning",{contentName:s7,titleName:ai,docsSlug:"dialog"}),ad=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:s=!0}=e,a=(0,E.useRef)(null),l=(0,E.useRef)(null),[c=!1,d]=rV({prop:r,defaultProp:i,onChange:o});return(0,E.createElement)(s1,{scope:t,triggerRef:a,contentRef:l,contentId:iV(),titleId:iV(),descriptionId:iV(),open:c,onOpenChange:d,onOpenToggle:(0,E.useCallback)(()=>d(e=>!e),[d]),modal:s},n)},au=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=s2(s8,t);return(0,E.createElement)(s3,{scope:t,forceMount:n},E.Children.map(r,e=>(0,E.createElement)(rH,{present:n||o.open},(0,E.createElement)(rF,{asChild:!0,container:i},e))))};function ah({className:e,children:t}){return(0,_.jsx)("div",{className:T("tlui-dialog__header",e),children:t})}function ap({className:e,children:t}){return(0,_.jsx)(ao,{dir:"ltr",className:T("tlui-dialog__header__title",e),children:t})}function af(){return(0,_.jsx)("div",{className:"tlui-dialog__header__close",children:(0,_.jsx)(as,{"data-testid":"dialog.close",dir:"ltr",asChild:!0,children:(0,_.jsx)(iP,{type:"icon","aria-label":"Close",onTouchEnd:e=>e.target.click(),children:(0,_.jsx)(iT,{small:!0,icon:"cross-2"})})})})}function ag({className:e,children:t,style:n}){return(0,_.jsx)("div",{className:T("tlui-dialog__body",e),style:n,children:t})}function am({className:e,children:t}){return(0,_.jsx)("div",{className:T("tlui-dialog__footer",e),children:t})}let ay=E.forwardRef(function({className:e,label:t,icon:n,iconLeft:r,autoselect:i=!1,autofocus:o=!1,defaultValue:s,placeholder:a,onComplete:l,onValueChange:c,onCancel:d,onBlur:u,shouldManuallyMaintainScrollPositionWhenFocused:h=!1,children:p,value:f},g){let y=(0,m.jE2)(),b=E.useRef(null);E.useImperativeHandle(g,()=>b.current);let x=iC(),w=E.useRef(s??""),v=E.useRef(s??""),[S,k]=E.useState(!1),j=E.useCallback(e=>{k(!0);let t=e.currentTarget;v.current=t.value,requestAnimationFrame(()=>{i&&t.select()})},[i]),C=E.useCallback(e=>{let t=e.currentTarget.value;v.current=t,c?.(t)},[c]),P=E.useCallback(e=>{switch(e.key){case"Enter":e.currentTarget.blur(),(0,m.beA)(e),l?.(e.currentTarget.value);break;case"Escape":e.currentTarget.value=w.current,e.currentTarget.blur(),(0,m.beA)(e),d?.(e.currentTarget.value)}},[l,d]),I=E.useCallback(e=>{k(!1);let t=e.currentTarget.value;u?.(t)},[u]);return E.useEffect(()=>{if(!y.environment.isIos)return;
119let e=window.visualViewport;if(S&&h&&e){let t=()=>{b.current?.scrollIntoView({block:"center"})};return e.addEventListener("resize",t),e.addEventListener("scroll",t),requestAnimationFrame(()=>{b.current?.scrollIntoView({block:"center"})}),()=>{e.removeEventListener("resize",t),e.removeEventListener("scroll",t)}}},[y,S,h]),(0,_.jsxs)("div",{draggable:!1,className:"tlui-input__wrapper",children:[p,t&&(0,_.jsx)("label",{children:x(t)}),r&&(0,_.jsx)(iI,{icon:r,className:"tlui-icon-left",small:!0}),(0,_.jsx)("input",{ref:b,className:T("tlui-input",e),type:"text",defaultValue:s,onKeyUp:P,onChange:C,onFocus:j,onBlur:I,autoFocus:o,placeholder:a,value:f}),n&&(0,_.jsx)(iI,{icon:n,small:!!t})]})});function ab(e){return m.T.linkUrl.isValid(e)?{isValid:!0,hasProtocol:!0}:m.T.linkUrl.isValid("https://"+e)?{isValid:!0,hasProtocol:!1}:{isValid:!1,hasProtocol:!1}}let ax=(0,m.jas)(function({onClose:e}){let t=(0,m.jE2)(),n=t.getOnlySelectedShape();return n&&"url"in n.props&&"string"==typeof n.props.url?(0,_.jsx)(aw,{onClose:e,selectedShape:n}):null}),aw=(0,m.jas)(function({onClose:e,selectedShape:t}){let n=(0,m.jE2)(),r=iC(),i=(0,E.useRef)(null);(0,E.useEffect)(()=>{requestAnimationFrame(()=>i.current?.focus())},[]);let o=(0,E.useRef)(t.props.url),[s,a]=(0,E.useState)(()=>{let e=ab(t.props.url),n=!0===e.isValid?e.hasProtocol?t.props.url:"https://"+t.props.url:"https://";return{actual:n,safe:n,valid:!0}}),l=(0,E.useCallback)(e=>{let t=e.replace(/https?:\/\/(https?:\/\/)/,(e,t)=>t),n=ab(t),r=!0===n.isValid?n.hasProtocol?t:"https://"+t:"https://";a({actual:t,safe:r,valid:n.isValid})},[]),c=(0,E.useCallback)(()=>{let t=n.getOnlySelectedShape();t&&(n.updateShapes([{id:t.id,type:t.type,props:{url:""}}]),e())},[n,e]),d=(0,E.useCallback)(()=>{let t=n.getOnlySelectedShape();t&&(t&&"url"in t.props&&t.props.url!==s.safe&&n.updateShapes([{id:t.id,type:t.type,props:{url:s.safe}}]),e())},[n,e,s]),u=(0,E.useCallback)(()=>{e()},[e]);if(!t)return e(),null;let h=o.current&&!s.valid;return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(ah,{children:[(0,_.jsx)(ap,{children:r("edit-link-dialog.title")}),(0,_.jsx)(af,{})]}),(0,_.jsx)(ag,{children:(0,_.jsxs)("div",{className:"tlui-edit-link-dialog",children:[(0,_.jsx)(ay,{ref:i,className:"tlui-edit-link-dialog__input",label:"edit-link-dialog.url",autofocus:!0,value:s.actual,onValueChange:l,onComplete:d,onCancel:u}),(0,_.jsx)("div",{children:r(s.valid?"edit-link-dialog.detail":"edit-link-dialog.invalid-url")})]})}),(0,_.jsxs)(am,{className:"tlui-dialog__footer__actions",children:[(0,_.jsx)(iP,{type:"normal",onClick:u,onTouchEnd:u,children:(0,_.jsx)(sq,{children:r("edit-link-dialog.cancel")})}),h?(0,_.jsx)(iP,{type:"danger",onTouchEnd:c,onClick:c,children:(0,_.jsx)(sq,{children:r("edit-link-dialog.clear")})}):(0,_.jsx)(iP,{type:"primary",disabled:!s.valid,onTouchEnd:d,onClick:d,children:(0,_.jsx)(sq,{children:r("edit-link-dialog.save")})})]})]})}),av=(0,m.jas)(function({onClose:e}){let t=(0,m.jE2)(),n=iC(),r=iw(),[i,o]=(0,E.useState)(null),[s,a]=(0,E.useState)(""),[l,c]=(0,E.useState)(null),[d,u]=(0,E.useState)(!1),h=(0,E.useRef)(-1);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(ah,{children:[(0,_.jsx)(ap,{children:i?`${n("embed-dialog.title")} \u2014 ${i.title}`:n("embed-dialog.title")}),(0,_.jsx)(af,{})]}),i?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(ag,{className:"tlui-embed-dialog__enter",children:[(0,_.jsx)(ay,{className:"tlui-embed-dialog__input",label:"embed-url",placeholder:"http://example.com",autofocus:!0,onValueChange:e=>{a(e);let t=ey(e);c(t&&t.definition.type===i.type?t:null),u(!1),clearTimeout(h.current),h.current=setTimeout(()=>u(!t),320)}}),""===s?(0,_.jsxs)("div",{className:"tlui-embed-dialog__instruction",children:[(0,_.jsx)("span",{children:n("embed-dialog.instruction")})," ",i.instructionLink&&(0,_.jsxs)("a",{target:"_blank",rel:"noopener noreferrer",href:i.instructionLink,className:"tlui-embed-dialog__instruction__link",children:["Learn more.",(0,_.jsx)(iI,{icon:"external-link",small:!0})]})]}):(0,_.jsx)("div",{className:"tlui-embed-dialog__warning",children:d?n("embed-dialog.invalid-url"):"\xa0"})]}),(0,_.jsxs)(am,{className:"tlui-dialog__footer__actions",children:[(0,_.jsx)(iP,{type:"normal",onClick:()=>{o(null),c(null),a("")},children:(0,_.jsx)(sq,{children:n("embed-dialog.back")})}),(0,_.jsx)("div",{className:"tlui-embed__spacer"}),(0,_.jsx)(iP,{type:"normal",onClick:e,children:(0,_.jsx)(sq,{children:n("embed-dialog.cancel")})}),(0,_.jsx)(iP,{type:"primary",disabled:!l,onClick:()=>{l&&(t.putExternalContent({type:"embed",url:s,point:t.getViewportPageCenter(),embed:l.definition}),e())},children:(0,_.jsx)(sq,{children:n("embed-dialog.create")})})]})]}):(0,_.jsx)(_.Fragment,{children:(0,_.jsx)(ag,{className:"tlui-embed-dialog__list",children:m.Lu5.map(e=>(0,_.jsxs)(iP,{type:"menu",onClick:()=>o(e),children:[(0,_.jsx)(sq,{children:e.title}),(0,_.jsx)("div",{className:"tlui-embed-dialog__item__image",style:{backgroundImage:`url(${r.embedIcons[e.type]})`}})]},e.type))})})]})});var aS=n(36954);async function ak(e,t,n){let{elements:r,files:i}=t,o={shapes:[],rootShapeIds:[],assets:[],schema:e.store.schema.seri
119alize()},s=new Map,a=new Map,l=e.getCurrentPageId(),c=new Map,d=[],u=new Set;r.forEach(e=>{if(c.set(e.id,(0,m.F17)()),null!==e.boundElements)for(let t of e.boundElements)"text"===t.type&&u.add(t.id)});let h=m.R4W;for(let e of r){if(u.has(e.id))continue;let t=c.get(e.id),n={id:t,typeName:"shape",parentId:l,index:h,x:e.x,y:e.y,rotation:0,isLocked:e.locked,opacity:aj(e.opacity),meta:{}};switch(0!==e.angle&&a.set(t,e.angle),e.groupIds&&e.groupIds.length>0?s.has(e.groupIds[0])?s.get(e.groupIds[0])?.push(t):s.set(e.groupIds[0],[t]):d.push(t),e.type){case"rectangle":case"ellipse":case"diamond":{let t="",i="middle";if(null!==e.boundElements){for(let n of e.boundElements)if("text"===n.type){let e=r.find(e=>e.id===n.id);e&&(t=e.text,i=aM[e.textAlign])}}let s="transparent"===e.backgroundColor?e.strokeColor:e.backgroundColor;o.shapes.push({...n,type:"geo",props:{geo:e.type,url:e.link??"",w:e.width,h:e.height,size:a_[e.strokeWidth]??"draw",color:aP[s]??"black",text:t,align:i,dash:a$(e),fill:aD(e)}});break}case"freedraw":o.shapes.push({...n,type:"draw",props:{dash:a$(e),size:a_[e.strokeWidth],color:aP[e.strokeColor]??"black",segments:[{type:"free",points:e.points.map(([e,t,n=.5])=>({x:e,y:t,z:n}))}]}});break;case"line":{let t=e.points[0],r=e.points[e.points.length-1],i=(0,m.H$$)(e.points.length);o.shapes.push({...n,type:"line",props:{dash:a$(e),size:a_[e.strokeWidth],color:aP[e.strokeColor]??"black",spline:e.roundness?"cubic":"line",handles:{start:{id:"start",type:"vertex",index:i[0],x:t[0],y:t[1]},end:{id:"end",type:"vertex",index:i[i.length-1],x:r[0],y:r[1]},...Object.fromEntries(e.points.slice(1,-1).map(([e,t],n)=>{let r=(0,m.ELf)();return[r,{id:r,type:"vertex",index:i[n+1],x:e,y:t}]}))}}});break}case"arrow":{let t="";if(null!==e.boundElements){for(let n of e.boundElements)if("text"===n.type){let e=r.find(e=>e.id===n.id);e&&(t=e.text)}}let i=e.points[0],s=e.points[e.points.length-1],a=c.get(e.startBinding?.elementId),l=c.get(e.endBinding?.elementId);o.shapes.push({...n,type:"arrow",props:{text:t,bend:function(e,t,n){let r=0;if(e.points.length>2){let i=new m.B08(t[0],t[1]),o=new m.B08(n[0],n[1]),s=new m.B08(e.points[1][0],e.points[1][1]),a=m.B08.Sub(o,i),l=m.B08.Per(a),c=m.B08.Med(o,i),d=m.B08.Sub(c,l),u=m.B08.Add(c,l),h=m.B08.NearestPointOnLineSegment(d,u,s,!1);r=m.B08.Dist(h,c),m.B08.Clockwise(h,o,c)&&(r*=-1)}return r}(e,i,s),dash:a$(e),size:a_[e.strokeWidth]??"m",color:aP[e.strokeColor]??"black",start:a?{type:"binding",boundShapeId:a,normalizedAnchor:{x:.5,y:.5},isPrecise:!1,isExact:!1}:{type:"point",x:i[0],y:i[1]},end:l?{type:"binding",boundShapeId:l,normalizedAnchor:{x:.5,y:.5},isPrecise:!1,isExact:!1}:{type:"point",x:s[0],y:s[1]},arrowheadEnd:aA[e.endArrowhead]??"none",arrowheadStart:aA[e.startArrowhead]??"none"}});break}case"text":{let{size:t,scale:r}=function(e){let t=aE[e];return t?{size:t,scale:1}:e<16?{size:"s",scale:e/16}:e>36?{size:"xl",scale:e/36}:{size:"m",scale:1}}(e.fontSize);o.shapes.push({...n,type:"text",props:{size:t,scale:r,font:aC[e.fontFamily]??"draw",color:aP[e.strokeColor]??"black",text:e.text,align:aM[e.textAlign]}});break}case"image":{let t=i[e.fileId];if(!t)break;let r=m.Ykc.createId();o.assets.push({id:r,typeName:"asset",type:"image",props:{w:e.width,h:e.height,name:e.id??"Untitled",isAnimated:!1,mimeType:t.mimeType,src:t.dataURL},meta:{}}),o.shapes.push({...n,type:"image",props:{w:e.width,h:e.height,assetId:r}})}}h=(0,m._LC)(h)}let p=n??(e.inputs.shiftKey?e.inputs.currentPagePoint:void 0);for(let t of(e.mark("paste"),e.putContentOntoCurrentPage(o,{point:p,select:!1,preserveIds:!0}),s.values()))if(t.length>1){e.groupShapes(t);let n=e.getShape(t[0]);n?.parentId&&(0,m.YTh)(n.parentId)&&d.push(n.parentId)}for(let[t,n]of a)e.select(t),e.rotateShapesBy([t],n);let f=(0,m.oA$)(d.map(t=>e.getShape(t))),g=m.xuv.Common(f.map(t=>e.getShapePageBounds(t))),y=e.getViewportPageBounds().center;e.updateShapes(f.map(e=>{let t={x:(e.x??0)-(g.x+g.w/2),y:(e.y??0)-(g.y+g.h/2)};return{id:e.id,type:e.type,x:y.x+t.x,y:y.y+t.y}})),e.setSelectedShapes(d)}let aj=e=>{let t=e/100;return t<.2?.1:t<.4?.25:t<.6?.5:t<.8?.75:1},a_={1:"s",2:"m",3:"l",4:"xl"},aE={16:"s",20:"m",28:"l",36:"xl"},aC={1:"draw",2:"sans",3:"mono"}
119,aP={"#ffffff":"grey","#000000":"black","#343a40":"black","#495057":"grey","#c92a2a":"red","#a61e4d":"light-red","#862e9c":"violet","#5f3dc4":"light-violet","#364fc7":"blue","#1864ab":"light-blue","#0b7285":"light-green","#087f5b":"light-green","#2b8a3e":"green","#5c940d":"light-green","#e67700":"yellow","#d9480f":"orange","#ced4da":"grey","#868e96":"grey","#fa5252":"light-red","#e64980":"red","#be4bdb":"light-violet","#7950f2":"violet","#4c6ef5":"blue","#228be6":"light-blue","#15aabf":"light-green","#12b886":"green","#40c057":"green","#82c91e":"light-green","#fab005":"yellow","#fd7e14":"orange","#212529":"grey"},aI={solid:"draw",dashed:"dashed",dotted:"dotted"},aT={"cross-hatch":"pattern",hachure:"pattern",solid:"solid"},aM={left:"start",center:"middle",right:"end"},aA={arrow:"arrow",dot:"dot",triangle:"triangle",bar:"pipe"},a$=e=>{let t=aI[e.strokeStyle]??"draw";return"draw"===t&&0===e.roughness&&(t="solid"),t},aD=e=>"transparent"===e.backgroundColor?"none":aT[e.fillStyle]??"solid";async function aO(e,t,n,r){let i=await Promise.all(t.map(async e=>await (await fetch(e)).blob())),o=i.map(e=>new File([e],"tldrawFile",{type:e.type}));e.mark("paste"),await e.putExternalContent({type:"files",files:o,point:n,ignoreParent:!1,sources:r}),t.forEach(e=>URL.revokeObjectURL(e))}async function aB(e,t,n,r){try{if(new URL(t).pathname.match(/\.(png|jpe?g|gif|svg|webp)$/i)){let n=await fetch(t,{method:"HEAD"});if(n.headers.get("content-type")?.match(/^image\//)){e.mark("paste"),aO(e,[t]);return}}}catch(e){"Failed to fetch"!==e.message&&console.error(e)}return e.mark("paste"),await e.putExternalContent({type:"url",point:n,url:t,sources:r})}let aL=e=>{try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch(e){return!1}},aR=e=>{let t=e.split(/[\n\s]/);for(let e of t)try{let t=new URL(e);if(!("http:"===t.protocol||"https:"===t.protocol))return}catch(e){return}return(0,m.jj$)(t)},aN=e=>/^<svg/.test(e),az=["input","select","textarea"];function aF(e){let{activeElement:t}=document;return e.getIsMenuOpen()||t&&(t.getAttribute("contenteditable")||az.indexOf(t.tagName.toLowerCase())>-1)}async function aU(e){return new Promise((t,n)=>{let r=new FileReader;r.addEventListener("loadend",()=>{let e=r.result;t(e)}),r.addEventListener("error",()=>{n(r.error)}),r.readAsText(e)})}let aH=e=>e.types.find(e=>e.match(/^image\//)),aZ=(e,t,n,r)=>{let i=aR(t);if(i)for(let t of i)aB(e,t,n);else aL(t)?aB(e,t,n):aN(t)?(e.mark("paste"),e.putExternalContent({type:"svg-text",text:t,point:n,sources:r})):(e.mark("paste"),e.putExternalContent({type:"text",text:t,point:n,sources:r}))},aV=async(e,t,n)=>{if(null!==e.getEditingShapeId())return;if(!t)throw Error("No clipboard data");let r=[];for(let e of Object.values(t.items))switch(e.kind){case"file":r.push({type:"file",source:new Promise(t=>t(e.getAsFile()))});break;case"string":"text/html"===e.type?r.push({type:"html",source:new Promise(t=>e.getAsString(t))}):"text/plain"===e.type?r.push({type:"text",source:new Promise(t=>e.getAsString(t))}):r.push({type:e.type,source:new Promise(t=>e.getAsString(t))})}aW(e,r,n)},aK=async(e,t,n)=>{let r=[];for(let e of t){if(aH(e))for(let t of e.types)t.match(/^image\//)&&r.push({type:"blob",source:e.getType(t)});e.types.includes("text/html")&&r.push({type:"html",source:new Promise(t=>e.getType("text/html").then(e=>aU(e).then(t)))}),e.types.includes("text/uri-list")&&r.push({type:"url",source:new Promise(t=>e.getType("text/uri-list").then(e=>aU(e).then(t)))}),e.types.includes("text/plain")&&r.push({type:"text",source:new Promise(t=>e.getType("text/plain").then(e=>aU(e).then(t)))})}return await aW(e,r,n)};async function aW(e,t,n){let r=t.filter(e=>("file"===e.type||"blob"===e.type)&&null!==e.source);if(r.length){let t=await Promise.all(r.map(e=>e.source)),i=t.filter(Boolean).map(e=>URL.createObjectURL(e));return await aO(e,i,n)}let i=await Promise.all(t.filter(e=>"file"!==e.type).map(e=>new Promise(t=>{if("file"===e.type){t({type:"error",data:null,reason:"unexpected file"});return}e.source.then(n=>{let r=n.match(/<tldraw[^>]*>(.*)<\/tldraw>/)?.[1];if(r)try{let e=(0,aS.decompressFromBase64)(r);if(null===e){t({type:"error",data:e,reason:"found tldraw data comment but could not parse base64"});return}{let n=JSON.parse(e);if("application/tldraw"!==n.type&&t({type:"error",data:n,reason:`found tldraw data comment but JSON was of a different type: ${n.type}`}),"string"==typeof n.data){t({type:"error",data:n,reason:"found tldraw json but data was a string instead of a TLClipboardModel object"});return}t({type:"tldraw",data:n.data});return}}catch(e){t({type:"error",data:r,reason:"found tldraw json but data was a string instead of a TLClipboardModel object"});return}else{if("html"===e.type){t({type:"text",data:n,subtype:"html"});return}if("url"===e.type){t({type:"text",data:n,subtype:"url"});return}try{let e=JSON.parse(n);if("excalidraw/clipboard"===e.type){t({type:"excalidraw",data:e});return}t({type:"text",data:n,subtype:"json"});return}catch(e){t({type:"text",data:n,subtype:"text"});return}}t({type:"error",data:n,reason:"unhandled case"})})})));for(let t of i)if("tldraw"===t.type){!function(e,t,n){let r=n??(e.input
119s.shiftKey?e.inputs.currentPagePoint:void 0),i=e.getSelectionPageBounds();e.mark("paste"),e.putContentOntoCurrentPage(t,{point:r,select:!0});let o=e.getSelectionPageBounds();i&&o&&i?.collides(o)&&(e.updateInstanceState({isChangingStyle:!0},{ephemeral:!0}),setTimeout(()=>{e.updateInstanceState({isChangingStyle:!1},{ephemeral:!0})},150))}(e,t.data,n);return}for(let t of i)if("excalidraw"===t.type){ak(e,t.data,n);return}for(let t of i)if("text"===t.type&&"html"===t.subtype){let r=new DOMParser().parseFromString(t.data,"text/html"),o=r.querySelector("body"),s=o&&1===Array.from(o.children).filter(e=>1===e.nodeType).length&&o.firstElementChild&&"A"===o.firstElementChild.tagName&&o.firstElementChild.hasAttribute("href")&&""!==o.firstElementChild.getAttribute("href");if(s){let t=o.firstElementChild.getAttribute("href");aZ(e,t,n,i);return}if(!i.some(e=>"text"===e.type&&"html"!==e.subtype)&&t.data.trim()){aZ(e,function(e){let t=document.implementation.createHTMLDocument("");return t.documentElement.innerHTML=e.trim(),t.body.textContent||t.body.innerText||""}(t.data),n,i);return}}for(let t of i)if("text"===t.type&&"url"===t.subtype){aB(e,t.data,n,i);return}for(let t of i)if("text"===t.type&&"text"===t.subtype&&t.data.trim()){aZ(e,t.data,n,i);return}}let aY=e=>{let t=e.getContentFromCurrentPage(e.getSelectedShapeIds());if(!t){navigator&&navigator.clipboard&&navigator.clipboard.writeText("");return}let n=(0,aS.compressToBase64)(JSON.stringify({type:"application/tldraw",kind:"content",data:t}));if("undefined"!=typeof navigator){let r=t.shapes.map(t=>e.isShapeOfType(t,"text")||e.isShapeOfType(t,"geo")||e.isShapeOfType(t,"arrow")?t.props.text:e.isShapeOfType(t,"bookmark")||e.isShapeOfType(t,"embed")?t.props.url:null).filter(m.GT8);if(navigator.clipboard?.write){let e=new Blob([`<tldraw>${n}</tldraw>`],{type:"text/html"}),t=r.join(" ");""===t&&(t=" "),navigator.clipboard.write([new ClipboardItem({"text/html":e,"text/plain":new Blob([t],{type:"text/plain"})})])}else navigator.clipboard.writeText&&navigator.clipboard.writeText(`<tldraw>${n}</tldraw>`)}};function aG(){let e=(0,m.jE2)(),t=sH(),n=(0,m.HgN)("editor.isFocused",()=>e.getInstanceState().isFocused,[e]);(0,E.useEffect)(()=>{if(!n)return;let r=()=>{0===e.getSelectedShapeIds().length||null!==e.getEditingShapeId()||aF(e)||(aY(e),t("copy",{source:"kbd"}))};function i(){0===e.getSelectedShapeIds().length||null!==e.getEditingShapeId()||aF(e)||(aY(e),e.deleteShapes(e.getSelectedShapeIds()),t("cut",{source:"kbd"}))}let o=!1,s=e=>{1===e.button&&(o=!0,requestAnimationFrame(()=>{o=!1}))},a=n=>{if(o){n.stopPropagation();return}null!==e.getEditingShapeId()||aF(e)||(n.clipboardData&&!e.inputs.shiftKey?aV(e,n.clipboardData):navigator.clipboard.read().then(t=>{Array.isArray(t)&&t[0]instanceof ClipboardItem&&aK(e,t,e.inputs.currentPagePoint)}),t("paste",{source:"kbd"}))};return document.addEventListener("copy",r),document.addEventListener("cut",i),document.addEventListener("paste",a),document.addEventListener("pointerup",s),()=>{document.removeEventListener("copy",r),document.removeEventListener("cut",i),document.removeEventListener("paste",a),document.removeEventListener("pointerup",s)}},[e,t,n])}async function aX(e,t,n){let{type:r,quality:i,scale:o}=n,s=+e.getAttribute("width"),a=+e.getAttribute("height"),[l,c]=await ep(s*o,a*o);l=Math.floor(l),c=Math.floor(c);let d=l/s,u=await aq(e),h=URL.createObjectURL(new Blob([u],{type:"image/svg+xml"})),p=await new Promise(e=>{let n=new Image;n.crossOrigin="anonymous",n.onload=async()=>{t&&await new Promise(e=>setTimeout(e,250));let r=document.createElement("canvas"),i=r.getContext("2d");r.width=l,r.height=c,i.imageSmoothingEnabled=!0,i.imageSmoothingQuality="high",i.drawImage(n,0,0,l,c),URL.revokeObjectURL(h),e(r)},n.onerror=()=>{e(null)},n.src=h});if(!p)return null;let f=await new Promise(e=>p.toBlob(t=>{(!t||m.hR1.throwToBlob.get())&&e(null),e(t)},"image/"+r,i));if(!f)return null;let g=new DataView(await f.arrayBuffer());return m.bMZ.setPhysChunk(g,d,{type:"image/"+r})}async function aq(e){let t=e.cloneNode(!0);e.setAttribute("width",+e.getAttribute("width")+""),e.setAttribute("height",+e.getAttribute("height")+"");let n=new FileReader,r=Array.from(t.querySelectorAll("image"));for(let e of r){let t=e.getAttribute("xlink:href");if(t&&!t.startsWith("data:")){let r=await (await fetch(t)).blob(),i=await new Promise((e,t)=>
119{n.onload=()=>e(n.result),n.onerror=()=>t(n.error),n.readAsDataURL(r)});e.setAttribute("xlink:href",i)}}let i=new XMLSerializer().serializeToString(t).replaceAll("&#10;      ","").replaceAll(/((\s|")[0-9]*\.[0-9]{2})([0-9]*)(\b|"|\))/g,"$1");return i}async function aJ(e,t,n){let r=await e.getSvg(t?.length?t:[...e.getCurrentPageShapeIds()],{scale:1,background:e.getInstanceState().exportBackground,...n});if(!r)throw Error("Could not construct SVG.");return r}async function aQ(e,t,n,r={}){switch(n){case"svg":return aq(await aJ(e,t,r));case"json":{let n=e.getContentFromCurrentPage(t);return JSON.stringify(n)}default:(0,m.iP4)(n)}}async function a0({editor:e,ids:t,format:n,opts:r={}}){switch(n){case"svg":return new Blob([await aQ(e,t,"svg",r)],{type:"text/plain"});case"json":return new Blob([await aQ(e,t,"json",r)],{type:"text/plain"});case"jpeg":case"png":case"webp":{let i=await aX(await aJ(e,t,r),e.environment.isSafari,{type:n,quality:1,scale:2});if(!i)throw Error("Could not construct image.");return i}default:(0,m.iP4)(n)}}let a1={jpeg:"image/jpeg",png:"image/png",webp:"image/webp",json:"text/plain",svg:"text/plain"};async function a2(e){await navigator.clipboard?.writeText?.(await e())}let a8=(0,E.createContext)({});function a3({children:e}){let[t,n]=(0,E.useState)([]),r=(0,E.useCallback)(e=>{let t=e.id??(0,m.ELf)();return n(n=>[...n.filter(t=>t.id!==e.id),{...e,id:t}]),t},[]),i=(0,E.useCallback)(e=>(n(t=>t.filter(t=>t.id!==e)),e),[]),o=(0,E.useCallback)(()=>{n(()=>[])},[]);return(0,_.jsx)(a8.Provider,{value:{toasts:t,addToast:r,removeToast:i,clearToasts:o},children:e})}function a5(){let e=(0,E.useContext)(a8);if(!e)throw Error("useToasts must be used within a ToastsProvider");return e}async function a4(e,t,n="png",r,i={}){if(!r&&(r=`shapes at ${a6()}`,1===t.length)){let n=e.getShape(t[0]);r=e.isShapeOfType(n,"frame")?n.props.name??"frame":`${n.id.replace(/:/,"_")} at ${a6()}`}r+=`.${n}`;let o=await a0({editor:e,ids:t,format:n,opts:i}),s=new File([o],r,{type:o.type});!function(e){let t=document.createElement("a"),n=URL.createObjectURL(e);t.href=n,t.download=e.name,t.click(),URL.revokeObjectURL(n)}(s)}function a6(){let e=new Date,t=String(e.getFullYear()).slice(2),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),s=String(e.getSeconds()).padStart(2,"0");return`${t}-${n}-${r} ${i}.${o}.${s}`}function a9(){let e=(0,m.jE2)(),t=(0,E.useRef)();return(0,E.useEffect)(()=>{let n=window.document.createElement("input");async function r(t){let r=t.target.files;r&&0!==r.length&&(await e.putExternalContent({type:"files",files:Array.from(r),point:e.getViewportPageBounds().center,ignoreParent:!1}),n.value="")}return n.type="file",n.accept="image/jpeg,image/png,image/gif,image/svg+xml,video/mp4,video/quicktime",n.multiple=!0,t.current=n,n.addEventListener("change",r),()=>{t.current=void 0,n.removeEventListener("change",r)}},[e]),(0,E.useCallback)(()=>{t.current?.click()},[t])}let a7=(0,E.createContext)({});function le({children:e}){let t=(0,m.jE2)(),n=sH(),[r,i]=(0,E.useState)([]),o=(0,E.useCallback)(e=>{let r=e.id??(0,m.ELf)();return i(t=>[...t.filter(t=>t.id!==e.id),{...e,id:r}]),n("open-menu",{source:"dialog",id:r}),t.addOpenMenu(r),r},[t,n]),s=(0,E.useCallback)((e,r)=>(i(t=>t.map(t=>t.id===e?{...t,...r}:t)),n("open-menu",{source:"dialog",id:e}),t.addOpenMenu(e),e),[t,n]),a=(0,E.useCallback)(e=>(i(t=>t.filter(t=>t.id!==e||(t.onClose?.(),!1))),n("close-menu",{source:"dialog",id:e}),t.deleteOpenMenu(e),e),[t,n]),l=(0,E.useCallback)(()=>{i(e=>(e.forEach(e=>{e.onClose?.(),n("close-menu",{source:"dialog",id:e.id}),t.deleteOpenMenu(e.id)}),[]))},[t,n]);return(0,_.jsx)(a7.Provider,{value:{dialogs:r,addDialog:o,removeDialog:a,clearDialogs:l,updateDialog:s},children:e})}function lt(){let e=(0,E.useContext)(a7);if(!e)throw Error("useDialogs must be used within a DialogsProvider");return e}let ln=E.createContext({});function lr(e,t){let n=e.getSelectedShapes();if(0===n.length)return e.getDocumentSettings().name||t}function li({overrides:e,children:t}){let n=(0,m.jE2)(),{addDialog:r,clearDialogs:i}=lt(),{clearToasts:o}=a5(),s=iC(),a=a9(),l=function(){let e=(0,m.jE2)(),t=(0,E.useRef)(null),n=(0,E.useRef)(null);return(0,E.useCallback)(async function(){let r=document.createElement("div"),i=document.createElement("style"),o=(e,t)=>{e&&(e.innerHTML=""),t&&document.head.contains(t)&&document.head.removeChild(t),e&&document.body.contains(e)&&document.body.removeChild(e)};o(t.current,n.current),t.current=r,n.current=i;let s=`tl-print-surface-${(0,m.ELf)()}`;r.className=s,i.innerHTML=`
120			.${s} {
121				display: none;
122			}
123
124			.${s} svg {
125				max-width: 100%;
126				height: 100%;
127				display: block;
128			}
129
130			@media print {				  
131				html, body {
132					min-height: 100%;
133					height: 100%;
134					margin: 0;
135				}
136
137				body {
138					position: relative;
139				}
140
141				body > * {
142					display: none;
143				}
144
145				.tldraw__editor {
146					display: none;
147				}
148
149				.${s} {
150					display: block !important;
151					background: white;
152					min-height: 100%;
153					height: 100%;
154					max-width: 100%;
155				}
156
157				.${s}__item {
158					padding: 10mm;
159					display: flex;
160					min-height: 100%;
161					flex-direction: column;
162					page-break-after: always;
163					position: relative;
164					overflow: hidden;
165					height: 100%;
166				}
167
168				.${s}__item__main {
169					flex: 1;
170					display: flex;
171					align-items: center;
172					justify-content: center;
173					max-height: 100%;
174				}
175
176				.${s}__item__header {
177					display: none;
178				}
179
180				.${s}__item__footer {
181					display: none;
182					text-align: right;
183				}
184
185				.${s}__item__footer__hide {
186					display: none;
187				}
188
189				
190			}
191
192		`;let a=()=>{document.head.appendChild(i),document.body.appendChild(r)},l=()=>{e.once("change-history",()=>{o(r,i)})};function c(e,t,n){try{r.innerHTML+=`<div class="${s}__item">
193        <div class="${s}__item__header">
194          ${e.replace(/</g,"&lt;").replace(/>/g,"&gt;")}
195        </div>
196        <div class="${s}__item__main">
197          ${n.outerHTML}
198        </div>
199        <div class="${s}__item__footer ${s}__item__footer__${t?"":"hide"}">
200          ${t??""}
201        </div>
202      </div>`}catch(e){console.error(e)}}function d(){e.environment.isChromeForIos?(a(),window.print()):e.environment.isSafari?(a(),document.execCommand("print",!1)):window.print()}window.addEventListener("beforeprint",a),window.addEventListener("afterprint",l);let u=e.getSelectedShapeIds(),h=e.getCurrentPageId(),p=e.getPages(),f={scale:1,background:!1,darkMode:!1,preserveAspectRatio:"xMidYMid meet"};if(e.getSelectedShapeIds().length>0){let t=await e.getSvg(u,f);if(t){let e=p.find(e=>e.id===h);c(`tldraw \u2014 ${e?.name}`,null,t),d()}}else{let t=e.getCurrentPage(),n=await e.getSvg(e.getSortedChildIdsForParent(t.id),f);n&&(c(`tldraw \u2014 ${t.name}`,null,n),d())}window.removeEventListener("beforeprint",a),window.removeEventListener("afterprint",l)},[e])}(),{cut:c,copy:d,paste:u}=function(){let e=(0,m.jE2)(),t=sH(),n=(0,E.useCallback)(function(n){0!==e.getSelectedShapeIds().length&&(aY(e),t("copy",{source:n}))},[e,t]),r=(0,E.useCallback)(function(n){0!==e.getSelectedShapeIds().length&&(aY(e),e.deleteShapes(e.getSelectedShapeIds()),t("cut",{source:n}))},[e,t]),i=(0,E.useCallback)(async function(n,r,o){null!==e.getEditingShapeId()||aF(e)||(Array.isArray(n)&&n[0]instanceof ClipboardItem?(aK(e,n,o),t("paste",{source:"menu"})):navigator.clipboard.read().then(e=>{i(e,r,o)}))},[e,t]);return{copy:n,cut:r,paste:i}}(),h=function(){let e=(0,m.jE2)(),{addToast:t}=a5(),n=iC();return(0,E.useCallback)((r,i="svg")=>{(function(e,t,n="svg",r={}){if(!window.navigator.clipboard)return Promise.reject(Error("Copy not supported"));if(window.navigator.clipboard.write){let{blobPromise:i,mimeType:o}=function(e,t,n,r={}){return{blobPromise:a0({editor:e,ids:t,format:n,opts:r}),mimeType:a1[n]}}(e,t,n,r);return window.navigator.clipboard.write([new ClipboardItem({[o]:i})]).catch(e=>(console.error(e),i.then(e=>window.navigator.clipboard.write([new ClipboardItem({[o]:e})]))))}switch(n){case"json":case"svg":return a2(async()=>aQ(e,t,n,r));case"jpeg":case"png":throw Error("Copy not supported");default:(0,m.iP4)(n)}})(e,r,i).catch(()=>{t({id:"copy-fail",icon:"warning-triangle",title:n("toast.error.copy-fail.title"),description:n("toast.error.copy-fail.desc")})})},[e,t,n])}(),p=function(){let e=(0,m.jE2)(),{addToast:t}=a5(),n=iC();return(0,E.useCallback)((r,i="png",o)=>{a4(e,r,i,o,{scale:1,background:e.getInstanceState().exportBackground}).catch(e=>{console.error(e.message),t({id:"export-fail",title:n("toast.error.export-fail.title"),description:n("toast.error.export-fail.desc")})})},[e,t,n])}(),f=s("document.default-name"),g=sH(),y=E.useMemo(()=>{function t(){return n.isIn("select")||(n.complete(),n.setCurrentTool("select")),!1}function y(){return n.isIn("select")&&n.getSelectedShapeIds().length>0}let b=[{id:"edit-link",label:"action.edit-link",icon:"link",onSelect(e){y()&&(t()||(g("edit-link",{source:e}),n.mark("edit-link"),r({component:ax})))}},{id:"insert-embed",label:"action.insert-embed",kbd:"$i",onSelect(e){g("insert-embed",{source:e}),r({component:av})}},{id:"insert-media",label:"action.insert-media",kbd:"$u",onSelect(e){g("insert-media",{source:e}),a()}},{id:"undo",label:"action.undo",icon:"undo",kbd:"$z",onSelect(e){g("undo",{source:e}),n.undo()}},{id:"redo",label:"action.redo",icon:"redo",kbd:"$!z",onSelect(e){g("redo",{source:e}),n.redo()}},{id:"export-as-svg",label:{default:"action.export-as-svg",menu:"action.export-as-svg.short","context-menu":"action.export-as-svg.short"},readonlyOk:!0,onSelect(e){g("export-as",{format:"svg",source:e}),p(n.getSelectedShapeIds(),"svg",lr(n,f))}},{id:"export-as-png",label:{default:"action.export-as-png",menu:"action.export-as-png.short","context-menu":"action.export-as-png.short"},readonlyOk:!0,onSelect(e){g("export-as",{format:"png",source:e}),p(n.getSelectedShapeIds(),"png",lr(n,f))}},{id:"export-as-json",label:{default:"action.export-as-json",menu:"action.export-as-json.short","context-menu":"action.export-as-json.short"},readonlyOk:!0,onSelect(e){g("export-as",{format:"json",source:e}),p(n.getSelectedShapeIds(),"json",lr(n,f))}},{id:"export-all-as-svg",label:{default:"action.export-all-as-svg",menu:"action.export-all-as-svg.short","context-menu":"action.export-all-as-svg.short"},readonlyOk:!0,onSelect(e){g("export-all-as",{format:"svg",source:e}),p(Array.from(n.getCurrentPageShapeIds()),"svg",lr(n,f))}},{id:"export-all-as-png",label:{default:"action.export-all-as-png",menu:"action.export-all-as-png.short","context-menu":"action.export-all-as-png.short"},readonlyOk:!0,onSelect(e){g("export-all-as",{format:"png",source:e}),p(Array.from(n.getCurrentPageShapeIds()),"png",lr(n,f))}},{id:"export-all-as-json",label:{default:"action.export-all-as-json",menu:"action.export-all-as-json.short","context-menu":"action.export-all-as-json.short"},readonlyOk:!0,onSelect(e){g("export-all-as",{format:"json",source:e}),p(Array.from(n.getCurrentPageShapeIds()),"json",lr(n,f))}},{id:"copy-as-svg",label:{default:"action.copy-as-svg",menu:"action.copy-as-svg.short","context-menu":"action.copy-as-svg.short"},kbd:"$!c",readonlyOk:!0,onSelect(e){g("copy-as",{format:"svg",source:e}),h(n.getSelectedShapeIds(),"svg")}},{id:"copy-as-png",label:{default:"action.copy-as-png",menu:"action.copy-as-png.short","context-menu":"action.copy-as-png.short"},readonlyOk:!0,onSelect(e){g("copy-as",{format:"png",source:e}),h(n.getSelectedShapeIds(),"png")}},{id:"copy-as-json",label:{default:"action.copy-as-json",menu:"action.copy-as-json.short","context-menu":"action.copy-as-json.short"},readonlyOk:!0,onSelect(e){g("copy-as",{format:"json",source:e}),h(n.getSelectedShapeIds(),"json")}},{id:"toggle-auto-size",label:"action.toggle-auto-size",onSelect(e){y()&&(t()||(g("toggle-auto-size",{source:e}),n.mark("toggling auto size"),n.updateShapes(n.getSelectedShapes().filter(e=>n.isShapeOfType(e,"text")&&!1===e.props.autoSize).map(e=>({id:e.id,type:e.type,props:{...e.props,w:8,autoSize:!0}})))))}},{id:"open-embed-link",label:"action.open-embed-link",readonlyOk:!0,onSelect(e){g("open-embed-link",{source:e});let t=n.getSelectedShapeIds(),r="No embed shapes selected";if(1!==t.length){console.error(r);return}let i=n.getShape(t[0]);if(!i||!n.isShapeOfType(i,"embed")){console.error(r);return}(0,m.xwP)(i.props.url,"_blank")}},{id:"select-zoom-tool",readonlyOk:!0,kbd:"z",onSelect(e){if(n.root.getCurrent()?.id!=="zoom"&&(g("zoom-tool",{source:e}
202),!(n.inputs.shiftKey||n.inputs.ctrlKey))){let e=n.root.getCurrent();e&&e.getCurrent()?.id==="idle"&&n.setCurrentTool("zoom",{onInteractionEnd:e.id,maskAs:"zoom"})}}},{id:"convert-to-bookmark",label:"action.convert-to-bookmark",onSelect(e){y()&&(t()||n.batch(()=>{g("convert-to-bookmark",{source:e});let t=n.getSelectedShapes(),r=[],i=[];for(let e of t){if(!e||!n.isShapeOfType(e,"embed")||!e.props.url)continue;let t=new m.B08(e.x,e.y);t.rot(-e.rotation),t.add(new m.B08(e.props.w/2-150,e.props.h/2-160)),t.rot(e.rotation);let o={id:(0,m.F17)(),type:"bookmark",rotation:e.rotation,x:t.x,y:t.y,opacity:1,props:{url:e.props.url}};r.push(o),i.push(e.id)}n.mark("convert shapes to bookmark"),n.deleteShapes(i),n.createShapes(r)}))}},{id:"convert-to-embed",label:"action.convert-to-embed",onSelect(e){y()&&(t()||(g("convert-to-embed",{source:e}),n.batch(()=>{let e=n.getSelectedShapeIds(),t=(0,m.oA$)(e.map(e=>n.getShape(e))),r=[],i=[];for(let e of t){if(!n.isShapeOfType(e,"bookmark"))continue;let{url:t}=e.props,o=ey(e.props.url);if(!o||!o.definition)continue;let{width:s,height:a}=o.definition,l=new m.B08(e.x,e.y);l.rot(-e.rotation),l.add(new m.B08(e.props.w/2-s/2,e.props.h/2-a/2)),l.rot(e.rotation);let c={id:(0,m.F17)(),type:"embed",x:l.x,y:l.y,rotation:e.rotation,props:{url:t,w:s,h:a}};r.push(c),i.push(e.id)}n.mark("convert shapes to embed"),n.deleteShapes(i),n.createShapes(r)})))}},{id:"duplicate",kbd:"$d",label:"action.duplicate",icon:"duplicate",onSelect(e){let r,i;if(!y()||t())return;g("duplicate-shapes",{source:e});let o=n.getInstanceState();if(o.duplicateProps)r=o.duplicateProps.shapeIds,i=o.duplicateProps.offset;else{r=n.getSelectedShapeIds();let e=m.xuv.Common((0,m.oA$)(r.map(e=>n.getShapePageBounds(e))));i=o.canMoveCamera?{x:e.width+10,y:0}:{x:16/n.getZoomLevel(),y:16/n.getZoomLevel()}}n.mark("duplicate shapes"),n.duplicateShapes(r,i),o.duplicateProps&&n.updateInstanceState({duplicateProps:{...o.duplicateProps,shapeIds:n.getSelectedShapeIds()}})}},{id:"ungroup",label:"action.ungroup",kbd:"$!g",icon:"ungroup",onSelect(e){y()&&(t()||(g("ungroup-shapes",{source:e}),n.mark("ungroup"),n.ungroupShapes(n.getSelectedShapeIds())))}},{id:"group",label:"action.group",kbd:"$g",icon:"group",onSelect(e){if(!y()||t())return;g("group-shapes",{source:e});let r=n.getOnlySelectedShape();r&&n.isShapeOfType(r,"group")?(n.mark("ungroup"),n.ungroupShapes(n.getSelectedShapeIds())):(n.mark("group"),n.groupShapes(n.getSelectedShapeIds()))}},{id:"remove-frame",label:"action.remove-frame",kbd:"$!f",onSelect(e){if(!y())return;g("remove-frame",{source:e});let t=n.getSelectedShapes();t.length>0&&t.every(e=>n.isShapeOfType(e,"frame"))&&(n.mark("remove-frame"),function(e,t){let n=(0,m.oA$)(t.map(t=>e.getShape(t)).filter(t=>t&&e.isShapeOfType(t,"frame")));if(!n.length)return;let r=[];e.batch(()=>{n.map(t=>{let n=e.getSortedChildIdsForParent(t.id);n.length&&(e.reparentShapes(n,t.parentId,t.index),r.push(...n))}),e.setSelectedShapes(r),e.deleteShapes(t)})}(n,t.map(e=>e.id)))}},{id:"fit-frame-to-content",label:"action.fit-frame-to-content",onSelect(e){if(!y())return;g("fit-frame-to-content",{source:e});let t=n.getOnlySelectedShape();t&&n.isShapeOfType(t,"frame")&&(n.mark("fit-frame-to-content"),function(e,t,n={}){let r=e.getShape(t);if(!r)return;let i=e.getSortedChildIdsForParent(r.id),o=(0,m.oA$)(i.map(t=>e.getShape(t)));if(!o.length)return;let s=m.xuv.FromPoints(o.flatMap(t=>{let n=e.getShapeGeometry(t.id);return e.getShapeLocalTransform(t).applyToPoints(n.vertices)})),{padding:a=50}=n,l=s.w+2*a,c=s.h+2*a,d=a-s.minX,u=a-s.minY;if(0===d&&0===u&&r.props.w===l&&r.props.h===c)return;let h=new m.B08(d,u).rot(r.rotation);e.batch(()=>{let t=i.map(t=>{let n=e.getShape(t);return{id:n.id,type:n.type,x:n.x+d,y:n.y+u}});t.push({id:r.id,type:r.type,x:r.x-h.x,y:r.y-h.y,props:{w:l,h:c}}),e.updateShapes(t)})}(n,t.id))}},{id:"align-left",label:"action.align-left",kbd:"?A",icon:"align-left",onSelect(e){y()&&(t()||(g("align-shapes",{operation:"left",source:e}),n.mark("align left"),n.alignShapes(n.getSelectedShapeIds(),"left")))}},{id:"align-center-horizontal",label:{default:"action.align-center-horizontal","context-menu":"action.align-center-horizontal.short"},kbd:"?H",icon:"align-center-horizontal",onSelect(e){y()&&(t()||(g("align-shapes",{operation:"center-horizontal",source:e}),n.mark("align center horizontal"),n.alignShapes(n.getSelectedShapeIds(),"center-horizontal")))}},{id:"align-right",label:"action.align-right",kbd:"?D",icon:"align-right",onSelect(e){y()&&(t()||(g("align-shapes",{operation:"right",source:e}),n.mark("align right"),n.alignShapes(n.getSelectedShapeIds(),"right")))}},{id:"align-center-vertical",label:{default:"action.align-center-vertical","context-menu":"action.align-center-vertical.short"},kbd:"?V",icon:"align-center-vertical",onSelect(e){y()&&(t()||(g("align-shapes",{operation:"center-vertical",source:e}),n.mark("align center vertical"),n.alignShapes(n.getSelectedShapeIds(),"center-vertical")))}},{id:"align-top",label:"action.align-top",icon:"align-top",kbd:"?W",onSelect(e){y()&&(t()||(g("align-shapes",{operation:"top",source:e}),n.mark("align top"),n.alignShapes(n.getSelectedShapeIds(),"top")))}},{id:"align-bottom",label:"action.align-bottom",icon:"align-bottom",kbd:"?S",onSelect(e){y()&&(t()||(g("align-shapes",{operation:"bottom",source:e}),n.mark("align bottom"),n.alignShapes(n.getSelectedShapeIds(),"bottom")))}},{id:"distribute-horizontal",label:{default:"action.distribute-horizontal","context-menu":"action.distribute-horizontal.short"},icon:"distribute-horizontal",kbd:"?!h",onSelect(e){y()&&(t()||(g("distribute-shapes",{operation:"horizontal",source:e}),n.mark("distribute horizontal"),n.distributeShapes(n.getSelectedShapeIds(),"horizontal")))}},{id:"distribute-vertical",label:{default:"action.distribute-vertical","context-menu":"action.distribute-vertical.short"},icon:"distribute-vertical",kbd:"?!V",onSelect(e){y()&&(t()||(g("distribute-shapes",{operation:"vertical",source:e}),n.mark("distribute vertical"),n.distributeShapes(n.getSelectedShapeIds(),"vertical")))}},{id:"stretch-horizontal",label:{default:"action.stretch-horizontal","context-menu":"action.stretch-horizontal.short"},icon:"stretch-horizontal",onSelect(e){y()&&(t()||(g("stretch-shapes",{operation:"horizontal",source:e}),n.mark("stretch horizontal"),n.stretchShapes(n.getSelectedShapeIds(),"horizontal")))}}
202,{id:"stretch-vertical",label:{default:"action.stretch-vertical","context-menu":"action.stretch-vertical.short"},icon:"stretch-vertical",onSelect(e){y()&&(t()||(g("stretch-shapes",{operation:"vertical",source:e}),n.mark("stretch vertical"),n.stretchShapes(n.getSelectedShapeIds(),"vertical")))}},{id:"flip-horizontal",label:{default:"action.flip-horizontal","context-menu":"action.flip-horizontal.short"},kbd:"!h",onSelect(e){y()&&(t()||(g("flip-shapes",{operation:"horizontal",source:e}),n.mark("flip horizontal"),n.flipShapes(n.getSelectedShapeIds(),"horizontal")))}},{id:"flip-vertical",label:{default:"action.flip-vertical","context-menu":"action.flip-vertical.short"},kbd:"!v",onSelect(e){y()&&(t()||(g("flip-shapes",{operation:"vertical",source:e}),n.mark("flip vertical"),n.flipShapes(n.getSelectedShapeIds(),"vertical")))}},{id:"pack",label:"action.pack",icon:"pack",onSelect(e){y()&&(t()||(g("pack-shapes",{source:e}),n.mark("pack"),n.packShapes(n.getSelectedShapeIds(),16)))}},{id:"stack-vertical",label:{default:"action.stack-vertical","context-menu":"action.stack-vertical.short"},icon:"stack-vertical",onSelect(e){y()&&(t()||(g("stack-shapes",{operation:"vertical",source:e}),n.mark("stack-vertical"),n.stackShapes(n.getSelectedShapeIds(),"vertical",16)))}},{id:"stack-horizontal",label:{default:"action.stack-horizontal","context-menu":"action.stack-horizontal.short"},icon:"stack-horizontal",onSelect(e){y()&&(t()||(g("stack-shapes",{operation:"horizontal",source:e}),n.mark("stack-horizontal"),n.stackShapes(n.getSelectedShapeIds(),"horizontal",16)))}},{id:"bring-to-front",label:"action.bring-to-front",kbd:"]",icon:"bring-to-front",onSelect(e){y()&&(t()||(g("reorder-shapes",{operation:"toFront",source:e}),n.mark("bring to front"),n.bringToFront(n.getSelectedShapeIds())))}},{id:"bring-forward",label:"action.bring-forward",icon:"bring-forward",kbd:"?]",onSelect(e){y()&&(t()||(g("reorder-shapes",{operation:"forward",source:e}),n.mark("bring forward"),n.bringForward(n.getSelectedShapeIds())))}},{id:"send-backward",label:"action.send-backward",icon:"send-backward",kbd:"?[",onSelect(e){y()&&(t()||(g("reorder-shapes",{operation:"backward",source:e}),n.mark("send backward"),n.sendBackward(n.getSelectedShapeIds())))}},{id:"send-to-back",label:"action.send-to-back",icon:"send-to-back",kbd:"[",onSelect(e){y()&&(t()||(g("reorder-shapes",{operation:"toBack",source:e}),n.mark("send to back"),n.sendToBack(n.getSelectedShapeIds())))}},{id:"cut",label:"action.cut",kbd:"$x",onSelect(e){y()&&(t()||(n.mark("cut"),c(e)))}},{id:"copy",label:"action.copy",kbd:"$c",readonlyOk:!0,onSelect(e){y()&&(t()||d(e))}},{id:"paste",label:"action.paste",kbd:"$v",onSelect(e){navigator.clipboard?.read().then(t=>{u(t,e,"context-menu"===e?n.inputs.currentPagePoint:void 0)})}},{id:"select-all",label:"action.select-all",kbd:"$a",readonlyOk:!0,onSelect(e){n.batch(()=>{t()||(g("select-all-shapes",{source:e}),n.mark("select all kbd"),n.selectAll())})}},{id:"select-none",label:"action.select-none",readonlyOk:!0,onSelect(e){y()&&(t()||(g("select-none-shapes",{source:e}),n.mark("select none"),n.selectNone()))}},{id:"delete",label:"action.delete",kbd:"⌫,del,backspace",icon:"trash",onSelect(e){y()&&(t()||(g("delete-shapes",{source:e}),n.mark("delete"),n.deleteShapes(n.getSelectedShapeIds())))}},{id:"rotate-cw",label:"action.rotate-cw",icon:"rotate-cw",onSelect(e){if(!y()||t())return;g("rotate-cw",{source:e}),n.mark("rotate-cw");let r=n.getSelectionRotation()%(m.pjK/2),i=(0,m.C2u)(r,0)||(0,m.C2u)(r,m.pjK/2);n.rotateShapesBy(n.getSelectedShapeIds(),m.pjK/2-(i?0:r))}},{id:"rotate-ccw",label:"action.rotate-ccw",icon:"rotate-ccw",onSelect(e){if(!y()||t())return;g("rotate-ccw",{source:e}),n.mark("rotate-ccw");let r=n.getSelectionRotation()%(m.pjK/2),i=(0,m.C2u)(r,0);n.rotateShapesBy(n.getSelectedShapeIds(),i?-(m.pjK/2):-r)}},{id:"zoom-in",label:"action.zoom-in",kbd:"$=,=",readonlyOk:!0,onSelect(e){g("zoom-in",{source:e}),n.zoomIn(n.getViewportScreenCenter(),{duration:m.KDN})}},{id:"zoom-out",label:"action.zoom-out",kbd:"$-,-",readonlyOk:!0,onSelect(e){g("zoom-out",{source:e}),n.zoomOut(n.getViewportScreenCenter(),{duration:m.KDN})}},{id:"zoom-to-100",label:"action.zoom-to-100",icon:"reset-zoom",kbd:"!0",readonlyOk:!0,onSelect(e){g("reset-zoom",{source:e}),n.resetZoom(n.getViewportScreenCenter(),{duration:m.KDN})}},{id:"zoom-to-fit",label:"action.zoom-to-fit",kbd:"!1",readonlyOk:!0,onSelect(e){g("zoom-to-fit",{source:e}),n.zoomToFit({duration:m.KDN})}},{id:"zoom-to-selection",label:"action.zoom-to-selection",kbd:"!2",readonlyOk:!0,onSelect(e){y()&&(t()||(g("zoom-to-selection",{source:e}),n.zoomToSelection({duration:m.KDN})))}},{id:"toggle-snap-mode",label:{default:"action.toggle-snap-mode",menu:"action.toggle-snap-mode.menu"},onSelect(e){g("toggle-snap-mode",{source:e}
202),n.user.updateUserPreferences({isSnapMode:!n.user.getIsSnapMode()})},checkbox:!0},{id:"toggle-dark-mode",label:{default:"action.toggle-dark-mode",menu:"action.toggle-dark-mode.menu"},kbd:"$/",readonlyOk:!0,onSelect(e){g("toggle-dark-mode",{source:e}),n.user.updateUserPreferences({isDarkMode:!n.user.getIsDarkMode()})},checkbox:!0},{id:"toggle-wrap-mode",label:{default:"action.toggle-wrap-mode",menu:"action.toggle-wrap-mode.menu"},readonlyOk:!0,onSelect(e){g("toggle-wrap-mode",{source:e}),n.user.updateUserPreferences({isWrapMode:!n.user.getIsWrapMode()})},checkbox:!0},{id:"toggle-reduce-motion",label:{default:"action.toggle-reduce-motion",menu:"action.toggle-reduce-motion.menu"},readonlyOk:!0,onSelect(e){g("toggle-reduce-motion",{source:e}),n.user.updateUserPreferences({animationSpeed:0===n.user.getAnimationSpeed()?1:0})},checkbox:!0},{id:"toggle-edge-scrolling",label:{default:"action.toggle-edge-scrolling",menu:"action.toggle-edge-scrolling.menu"},readonlyOk:!0,onSelect(e){g("toggle-edge-scrolling",{source:e}),n.user.updateUserPreferences({edgeScrollSpeed:0===n.user.getEdgeScrollSpeed()?1:0})},checkbox:!0},{id:"toggle-transparent",label:{default:"action.toggle-transparent",menu:"action.toggle-transparent.menu","context-menu":"action.toggle-transparent.context-menu"},readonlyOk:!0,onSelect(e){g("toggle-transparent",{source:e}),n.updateInstanceState({exportBackground:!n.getInstanceState().exportBackground},{ephemeral:!0})},checkbox:!0},{id:"toggle-tool-lock",label:{default:"action.toggle-tool-lock",menu:"action.toggle-tool-lock.menu"},kbd:"q",onSelect(e){g("toggle-tool-lock",{source:e}),n.updateInstanceState({isToolLocked:!n.getInstanceState().isToolLocked})},checkbox:!0},{id:"unlock-all",label:"action.unlock-all",onSelect(e){g("unlock-all",{source:e});let t=[];for(let e of n.getCurrentPageShapes())e.isLocked&&t.push({id:e.id,type:e.type,isLocked:!1});t.length>0&&n.updateShapes(t)}},{id:"toggle-focus-mode",label:{default:"action.toggle-focus-mode",menu:"action.toggle-focus-mode.menu"},readonlyOk:!0,kbd:"$.",checkbox:!0,onSelect(e){requestAnimationFrame(()=>{n.batch(()=>{g("toggle-focus-mode",{source:e}),i(),o(),n.updateInstanceState({isFocusMode:!n.getInstanceState().isFocusMode})})})}},{id:"toggle-grid",label:{default:"action.toggle-grid",menu:"action.toggle-grid.menu"},readonlyOk:!0,kbd:"$'",onSelect(e){g("toggle-grid-mode",{source:e}),n.updateInstanceState({isGridMode:!n.getInstanceState().isGridMode})},checkbox:!0},{id:"toggle-debug-mode",label:{default:"action.toggle-debug-mode",menu:"action.toggle-debug-mode.menu"},readonlyOk:!0,onSelect(e){g("toggle-debug-mode",{source:e}),n.updateInstanceState({isDebugMode:!n.getInstanceState().isDebugMode})},checkbox:!0},{id:"print",label:"action.print",kbd:"$p",readonlyOk:!0,onSelect(e){g("print",{source:e}),l()}},{id:"exit-pen-mode",label:"action.exit-pen-mode",icon:"cross-2",readonlyOk:!0,onSelect(e){g("exit-pen-mode",{source:e}),n.updateInstanceState({isPenMode:!1})}},{id:"stop-following",label:"action.stop-following",icon:"cross-2",readonlyOk:!0,onSelect(e){g("stop-following",{source:e}),n.stopFollowingUser()}},{id:"back-to-content",label:"action.back-to-content",icon:"arrow-left",readonlyOk:!0,onSelect(e){g("zoom-to-content",{source:e}),n.zoomToContent()}},{id:"toggle-lock",label:"action.toggle-lock",kbd:"!l",onSelect(e){n.mark("locking"),g("toggle-lock",{source:e}),n.toggleLock(n.getSelectedShapeIds())}},{id:"new-page",label:"context.pages.new-page",onSelect(e){let t=m.ezX.createId(),r=n.getSelectedShapeIds();n.batch(()=>{n.mark("move_shapes_to_page"),n.createPage({name:s("page-menu.new-page-initial-name"),id:t}),n.moveShapesToPage(r,t)}),g("new-page",{source:e})}}],x=Object.fromEntries(b.map(e=>[e.id,e]));return e?e(n,x,void 0):x},[n,g,e,r,a,p,h,c,d,u,i,o,l,s,f]);return(0,_.jsx)(ln.Provider,{value:y,children:t})}function lo(){let e=E.useContext(ln);if(!e)throw Error("useTools must be used within a ToolProvider");return e}function ls(e,t){return e?"string"==typeof e?e:t?e[t]??e.default:void 0:void 0}let la=(0,E.createContext)(void 0);function ll(e){let t=(0,E.useContext)(la);return e||t||"ltr"}let lc="rovingFocusGroup.onEntryFocus",ld={bubbles:!1,cancelable:!0},lu="RovingFocusGroup",[lh,lp,lf]=rM(lu),[lg,lm]=rE(lu,[lf]),[ly,lb]=lg(lu),lx=(0,E.forwardRef)((e,t)=>(0,E.createElement)(lh.Provider,{scope:e.__scopeRovingFocusGroup},(0,E.createElement)(lh.Slot,{scope:e.__scopeRovingFocusGroup},(0,E.createElement)(lw,(0,rv.Z)({},e,{ref:t}))))),lw=(0,E.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:l,onEntryFocus:c,...d}=e,u=(0,E.useRef)(null),h=r_(t,u),p=ll(o),[f=null,g]=rV({prop:s,defaultProp:a,onChange:l}),[m,y]=(0,E.useState)(!1),b=rD(c),x=lp(n),w=(0,E.useRef)(!1),[v,S]=(0,E.useState)(0);return(0,E.useEffect)(()=>{let e=u.current;if(e)return e.addEventListener(lc,b),()=>e.removeEventListener(lc,b)},[b]),(0,E.createElement)(ly,{scope:n,orientation:r,dir:p,loop:i,currentTabStopId:f,onItemFocus:(0,E.useCallback)(e=>g(e),[g]),onItemShiftTab:(0,E.useCallback)(()=>y(!0),[]),onFocusableItemAdd:(0,E.useCallback)(()=>S(e=>e+1),[]),onFocusableItemRemove:(0,E.useCallback)(()=>S(e=>e-1),[])},(0,E.createElement)(rA.div,(0,rv.Z)({tabIndex:m||0===v?-1:0,"data-orientation":r},d,{ref:h,style:{outline:"none",...e.style},onMouseDown:rk(e.onMouseDown,()=>{w.current=!0}),onFocus:rk(e.onFocus,e=>{let t=!w.current;if(e.target===e.currentTarget&&t&&!m){let t=new CustomEvent(lc,ld);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>
202e.focusable),t=e.find(e=>e.active),n=e.find(e=>e.id===f),r=[t,n,...e].filter(Boolean),i=r.map(e=>e.ref.current);lk(i)}}w.current=!1}),onBlur:rk(e.onBlur,()=>y(!1))})))}),lv=(0,E.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,...s}=e,a=iV(),l=o||a,c=lb("RovingFocusGroupItem",n),d=c.currentTabStopId===l,u=lp(n),{onFocusableItemAdd:h,onFocusableItemRemove:p}=c;return(0,E.useEffect)(()=>{if(r)return h(),()=>p()},[r,h,p]),(0,E.createElement)(lh.ItemSlot,{scope:n,id:l,focusable:r,active:i},(0,E.createElement)(rA.span,(0,rv.Z)({tabIndex:d?0:-1,"data-orientation":c.orientation},s,{ref:t,onMouseDown:rk(e.onMouseDown,e=>{r?c.onItemFocus(l):e.preventDefault()}),onFocus:rk(e.onFocus,()=>c.onItemFocus(l)),onKeyDown:rk(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey){c.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=function(e,t,n){var r;let i=(r=e.key,"rtl"!==n?r:"ArrowLeft"===r?"ArrowRight":"ArrowRight"===r?"ArrowLeft":r);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(i))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(i)))return lS[i]}(e,c.orientation,c.dir);if(void 0!==t){e.preventDefault();let i=u().filter(e=>e.focusable),o=i.map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var n,r;"prev"===t&&o.reverse();let i=o.indexOf(e.currentTarget);o=c.loop?(n=o,r=i+1,n.map((e,t)=>n[(r+t)%n.length])):o.slice(i+1)}setTimeout(()=>lk(o))}})})))}),lS={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function lk(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}let lj=["Enter"," "],l_=["ArrowUp","PageDown","End"],lE=["ArrowDown","PageUp","Home",...l_],lC={ltr:[...lj,"ArrowRight"],rtl:[...lj,"ArrowLeft"]},lP={ltr:["ArrowLeft"],rtl:["ArrowRight"]},lI="Menu",[lT,lM,lA]=rM(lI),[l$,lD]=rE(lI,[lA,oW,lm]),lO=oW(),lB=lm(),[lL,lR]=l$(lI),[lN,lz]=l$(lI),lF=(0,E.forwardRef)((e,t)=>{let{__scopeMenu:n,...r}=e,i=lO(n);return(0,E.createElement)(oX,(0,rv.Z)({},i,r,{ref:t}))}),lU="MenuPortal",[lH,lZ]=l$(lU,{forceMount:void 0}),lV="MenuContent",[lK,lW]=l$(lV),lY=(0,E.forwardRef)((e,t)=>{let n=lZ(lV,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=lR(lV,e.__scopeMenu),s=lz(lV,e.__scopeMenu);return(0,E.createElement)(lT.Provider,{scope:e.__scopeMenu},(0,E.createElement)(rH,{present:r||o.open},(0,E.createElement)(lT.Slot,{scope:e.__scopeMenu},s.modal?(0,E.createElement)(lG,(0,rv.Z)({},i,{ref:t})):(0,E.createElement)(lX,(0,rv.Z)({},i,{ref:t})))))}),lG=(0,E.forwardRef)((e,t)=>{let n=lR(lV,e.__scopeMenu),r=(0,E.useRef)(null),i=r_(t,r);return(0,E.useEffect)(()=>{let e=r.current;if(e)return(0,o6.Ry)(e)},[]),(0,E.createElement)(lq,(0,rv.Z)({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:rk(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)}))}),lX=(0,E.forwardRef)((e,t)=>{let n=lR(lV,e.__scopeMenu);return(0,E.createElement)(lq,(0,rv.Z)({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)}))}),lq=(0,E.forwardRef)((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:a,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:h,onDismiss:p,disableOutsideScroll:f,...g}=e,m=lR(lV,n),y=lz(lV,n),b=lO(n),x=lB(n),w=lM(n),[v,S]=(0,E.useState)(null),k=(0,E.useRef)(null),j=r_(t,k,m.onContentChange),_=(0,E.useRef)(0),C=(0,E.useRef)(""),P=(0,E.useRef)(0),I=(0,E.useRef)(null),T=(0,E.useRef)("right"),M=(0,E.useRef)(0),A=f?sv:E.Fragment,$=f?{as:rC,allowPinchZoom:!0}:void 0,D=e=>{var t,n;let r=C.current+e,i=w().filter(e=>!e.disabled),o=document.activeElement,s=null===(t=i.find(e=>e.ref.current===o))||void 0===t?void 0:t.textValue,a=i.map(e=>e.textValue),l=function(e,t,n){var r;let i=t.length>1&&Array.from(t).every(e=>e===t[0]),o=i?t[0]:t,s=n?e.indexOf(n):-1,a=(r=Math.max(s,0),e.map((t,n)=>e[(r+n)%e.length])),l=1===o.length;l&&(a=a.filter(e=>e!==n));let c=a.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return c!==n?c:void 0}(a,r,s),c=null===(n=i.find(e=>e.textValue===l))||void 0===n?void 0:n.ref.current;!function e(t){C.current=t,window.clearTimeout(_.current),""!==t&&(_.current=window.setTimeout(()=>e(""),1e3))}(r),c&&setTimeout(()=>c.focus())};(0,E.useEffect)(()=>()=>window.clearTimeout(_.current),[]),iA();let O=(0,E.useCallback)(e=>{var t,n;let r=T.current===(null===(t=I.current)||void 0===t?void 0:t.side);return r&&function(e,t){if(!t)return!1;let n={x:e.clientX,y:e.clientY};return function(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,o=t.length-1;e<t.length;o=e++){let s=t[e].x,a=t[e].y,l=t[o].x,c=t[o].y,d=a>r!=c>r&&n<(l-s)*(r-a)/(c-a)+s;d&&(i=!i)}return i}(n,t)}(e,null===(n=I.current)||void 0===n?void 0:n.area)},[]);return(0,E.createElement)(lK,{scope:n,searchRef:C,onItemEnter:(0,E.useCallback)(e=>{O(e)&&e.preventDefault()},[O]),onItemLeave:(0,E.useCallback)(e=>{var t;O(e)||(null===(t=k.current)||void 0===t||t.focus(),S(null))},[O]),onTriggerLeave:(0,E.useCallback)(e=>{O(e)&&e.preventDefault()},[O]),pointerGraceTimerRef:P,onPointerGraceIntentChange:(0,E.useCallback)(e=>{I.current=e},[])},(0,E.createElement)(A,$,(0,E.createElement)(iL,{asChild:!0,trapped:i,onMountAutoFocus:rk(o,e=>{var t;e.preventDefault(),null===(t=k.current)||void 0===t||t.focus()}),onUnmountAutoFocus:s},(0,E.createElement)(rL,{asChild:!0,disableOutsidePointerEvents:a,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:h,onDismiss:p},(0,E.createElement)(lx,(0,rv.Z)({asChild:!0},x,{dir:y.dir,orientation:"vertical",loop:r,currentTabStopId:v,onCurrentTabStopIdChange:S,onEntryFocus:rk(l,e=>{y.isUsingKeyboardRef.current||e.preventDefault()})}),(0,E.createElement)(o0,(0,rv.Z)({role:"menu","aria-orientation":"vertical","data-state":co(m.open),"data-radix-menu-content":"",dir:y.dir},b,g,{ref:j,style:{outline:"none",...g.style},onKeyDown:rk(g.onKeyDown,e=>{let t=e.target,n=t.closest("[data-radix-menu-content]")===e.currentTarget,r=e.ctrlKey||e.altKey||e.metaKey,i=1===e.ke
202y.length;n&&("Tab"===e.key&&e.preventDefault(),!r&&i&&D(e.key));let o=k.current;if(e.target!==o||!lE.includes(e.key))return;e.preventDefault();let s=w().filter(e=>!e.disabled),a=s.map(e=>e.ref.current);l_.includes(e.key)&&a.reverse(),function(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}(a)}),onBlur:rk(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(_.current),C.current="")}),onPointerMove:rk(e.onPointerMove,cl(e=>{let t=e.target,n=M.current!==e.clientX;if(e.currentTarget.contains(t)&&n){let t=e.clientX>M.current?"right":"left";T.current=t,M.current=e.clientX}}))})))))))}),lJ=(0,E.forwardRef)((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,E.createElement)(rA.div,(0,rv.Z)({role:"group"},r,{ref:t}))}),lQ=((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,E.createElement)(rA.div,(0,rv.Z)({},r,{ref:t}))},"MenuItem"),l0="menu.itemSelect",l1=(0,E.forwardRef)((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,o=(0,E.useRef)(null),s=lz(lQ,e.__scopeMenu),a=lW(lQ,e.__scopeMenu),l=r_(t,o),c=(0,E.useRef)(!1);return(0,E.createElement)(l2,(0,rv.Z)({},i,{ref:l,disabled:n,onClick:rk(e.onClick,()=>{let e=o.current;if(!n&&e){let t=new CustomEvent(l0,{bubbles:!0,cancelable:!0});e.addEventListener(l0,e=>null==r?void 0:r(e),{once:!0}),r$(e,t),t.defaultPrevented?c.current=!1:s.onClose()}}),onPointerDown:t=>{var n;null===(n=e.onPointerDown)||void 0===n||n.call(e,t),c.current=!0},onPointerUp:rk(e.onPointerUp,e=>{var t;c.current||null===(t=e.currentTarget)||void 0===t||t.click()}),onKeyDown:rk(e.onKeyDown,e=>{let t=""!==a.searchRef.current;!n&&(!t||" "!==e.key)&&lj.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})}))}),l2=(0,E.forwardRef)((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,s=lW(lQ,n),a=lB(n),l=(0,E.useRef)(null),c=r_(t,l),[d,u]=(0,E.useState)(!1),[h,p]=(0,E.useState)("");return(0,E.useEffect)(()=>{let e=l.current;if(e){var t;p((null!==(t=e.textContent)&&void 0!==t?t:"").trim())}},[o.children]),(0,E.createElement)(lT.ItemSlot,{scope:n,disabled:r,textValue:null!=i?i:h},(0,E.createElement)(lv,(0,rv.Z)({asChild:!0},a,{focusable:!r}),(0,E.createElement)(rA.div,(0,rv.Z)({role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0},o,{ref:c,onPointerMove:rk(e.onPointerMove,cl(e=>{if(r)s.onItemLeave(e);else if(s.onItemEnter(e),!e.defaultPrevented){let t=e.currentTarget;t.focus()}})),onPointerLeave:rk(e.onPointerLeave,cl(e=>s.onItemLeave(e))),onFocus:rk(e.onFocus,()=>u(!0)),onBlur:rk(e.onBlur,()=>u(!1))}))))}),l8=(0,E.forwardRef)((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,E.createElement)(l6,{scope:e.__scopeMenu,checked:n},(0,E.createElement)(l1,(0,rv.Z)({role:"menuitemcheckbox","aria-checked":cs(n)?"mixed":n},i,{ref:t,"data-state":ca(n),onSelect:rk(i.onSelect,()=>null==r?void 0:r(!!cs(n)||!n),{checkForDefaultPrevented:!1})})))}),[l3,l5]=l$("MenuRadioGroup",{value:void 0,onValueChange:()=>{}}),l4=((e,t)=>{let{value:n,onValueChange:r,...i}=e,o=rD(r);return(0,E.createElement)(l3,{scope:e.__scopeMenu,value:n,onValueChange:o},(0,E.createElement)(lJ,(0,rv.Z)({},i,{ref:t})))},"MenuItemIndicator"),[l6,l9]=l$(l4,{checked:!1}),l7=((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,o=l9(l4,n);return(0,E.createElement)(rH,{present:r||cs(o.checked)||!0===o.checked},(0,E.createElement)(rA.span,(0,rv.Z)({},i,{ref:t,"data-state":ca(o.checked)})))},"MenuSub"),[ce,ct]=l$(l7),cn="MenuSubTrigger",cr=(0,E.forwardRef)((e,t)=>{let n=lR(cn,e.__scopeMenu),r=lz(cn,e.__scopeMenu),i=ct(cn,e.__scopeMenu),o=lW(cn,e.__scopeMenu),s=(0,E.useRef)(null),{pointerGraceTimerRef:a,onPointerGraceIntentChange:l}=o,c={__scopeMenu:e.__scopeMenu},d=(0,E.useCallback)(()=>{s.current&&window.clearTimeout(s.current),s.current=null},[]);return(0,E.useEffect)(()=>d,[d]),(0,E.useEffect)(()=>{let e=a.current;return()=>{window.clearTimeout(e),l(null)}},[a,l]),(0,E.createElement)(lF,(0,rv.Z)({asChild:!0},c),(0,E.createElement)(l2,(0,rv.Z)({id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":co(n.open)},e,{ref:rj(t,i.onTriggerChange),onClick:t=>{var r;null===(r=e.onClick)||void 0===r||r.call(e,t),e.disabled||t.defaultPrevented||(t.currentTarget.focu
202s(),n.open||n.onOpenChange(!0))},onPointerMove:rk(e.onPointerMove,cl(t=>{o.onItemEnter(t),t.defaultPrevented||e.disabled||n.open||s.current||(o.onPointerGraceIntentChange(null),s.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:rk(e.onPointerLeave,cl(e=>{var t,r;d();let i=null===(t=n.content)||void 0===t?void 0:t.getBoundingClientRect();if(i){let t=null===(r=n.content)||void 0===r?void 0:r.dataset.side,s="right"===t,l=i[s?"left":"right"],c=i[s?"right":"left"];o.onPointerGraceIntentChange({area:[{x:e.clientX+(s?-5:5),y:e.clientY},{x:l,y:i.top},{x:c,y:i.top},{x:c,y:i.bottom},{x:l,y:i.bottom}],side:t}),window.clearTimeout(a.current),a.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(e),e.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:rk(e.onKeyDown,t=>{let i=""!==o.searchRef.current;if(!e.disabled&&(!i||" "!==t.key)&&lC[r.dir].includes(t.key)){var s;n.onOpenChange(!0),null===(s=n.content)||void 0===s||s.focus(),t.preventDefault()}})})))}),ci=(0,E.forwardRef)((e,t)=>{let n=lZ(lV,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=lR(lV,e.__scopeMenu),s=lz(lV,e.__scopeMenu),a=ct("MenuSubContent",e.__scopeMenu),l=(0,E.useRef)(null),c=r_(t,l);return(0,E.createElement)(lT.Provider,{scope:e.__scopeMenu},(0,E.createElement)(rH,{present:r||o.open},(0,E.createElement)(lT.Slot,{scope:e.__scopeMenu},(0,E.createElement)(lq,(0,rv.Z)({id:a.contentId,"aria-labelledby":a.triggerId},i,{ref:c,align:"start",side:"rtl"===s.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{var t;s.isUsingKeyboardRef.current&&(null===(t=l.current)||void 0===t||t.focus()),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:rk(e.onFocusOutside,e=>{e.target!==a.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:rk(e.onEscapeKeyDown,e=>{s.onClose(),e.preventDefault()}),onKeyDown:rk(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=lP[s.dir].includes(e.key);if(t&&n){var r;o.onOpenChange(!1),null===(r=a.trigger)||void 0===r||r.focus(),e.preventDefault()}})})))))});function co(e){return e?"open":"closed"}function cs(e){return"indeterminate"===e}function ca(e){return cs(e)?"indeterminate":e?"checked":"unchecked"}function cl(e){return t=>"mouse"===t.pointerType?e(t):void 0}let cc=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:s=!0}=e,a=lO(t),[l,c]=(0,E.useState)(null),d=(0,E.useRef)(!1),u=rD(o),h=ll(i);return(0,E.useEffect)(()=>{let e=()=>{d.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>d.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,E.createElement)(o4,a,(0,E.createElement)(lL,{scope:t,open:n,onOpenChange:u,content:l,onContentChange:c},(0,E.createElement)(lN,{scope:t,onClose:(0,E.useCallback)(()=>u(!1),[u]),isUsingKeyboardRef:d,dir:h,modal:s},r)))},cd=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=lR(lU,t);return(0,E.createElement)(lH,{scope:t,forceMount:n},(0,E.createElement)(rH,{present:n||o.open},(0,E.createElement)(rF,{asChild:!0,container:i},r)))},cu=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,o=lR(l7,t),s=lO(t),[a,l]=(0,E.useState)(null),[c,d]=(0,E.useState)(null),u=rD(i);return(0,E.useEffect)(()=>(!1===o.open&&u(!1),()=>u(!1)),[o.open,u]),(0,E.createElement)(o4,s,(0,E.createElement)(lL,{scope:t,open:r,onOpenChange:u,content:c,onContentChange:d},(0,E.createElement)(ce,{scope:t,contentId:iV(),triggerId:iV(),trigger:a,onTriggerChange:l},n)))}
202,ch="ContextMenu",[cp,cf]=rE(ch,[lD]),cg=lD(),[cm,cy]=cp(ch),cb=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,o=cy("ContextMenuTrigger",n),s=cg(n),a=(0,E.useRef)({x:0,y:0}),l=(0,E.useRef)({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...a.current})}),c=(0,E.useRef)(0),d=(0,E.useCallback)(()=>window.clearTimeout(c.current),[]),u=e=>{a.current={x:e.clientX,y:e.clientY},o.onOpenChange(!0)};return(0,E.useEffect)(()=>d,[d]),(0,E.useEffect)(()=>void(r&&d()),[r,d]),(0,E.createElement)(E.Fragment,null,(0,E.createElement)(lF,(0,rv.Z)({},s,{virtualRef:l})),(0,E.createElement)(rA.span,(0,rv.Z)({"data-state":o.open?"open":"closed","data-disabled":r?"":void 0},i,{ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:rk(e.onContextMenu,e=>{d(),u(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:rk(e.onPointerDown,cC(e=>{d(),c.current=window.setTimeout(()=>u(e),700)})),onPointerMove:r?e.onPointerMove:rk(e.onPointerMove,cC(d)),onPointerCancel:r?e.onPointerCancel:rk(e.onPointerCancel,cC(d)),onPointerUp:r?e.onPointerUp:rk(e.onPointerUp,cC(d))})))}),cx=e=>{let{__scopeContextMenu:t,...n}=e,r=cg(t);return(0,E.createElement)(cd,(0,rv.Z)({},r,n))},cw=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cy("ContextMenuContent",n),o=cg(n),s=(0,E.useRef)(!1);return(0,E.createElement)(lY,(0,rv.Z)({},o,r,{ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:t=>{var n;null===(n=e.onCloseAutoFocus)||void 0===n||n.call(e,t),!t.defaultPrevented&&s.current&&t.preventDefault(),s.current=!1},onInteractOutside:t=>{var n;null===(n=e.onInteractOutside)||void 0===n||n.call(e,t),t.defaultPrevented||i.modal||(s.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}}))}),cv=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cg(n);return(0,E.createElement)(lJ,(0,rv.Z)({},i,r,{ref:t}))}),cS=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cg(n);return(0,E.createElement)(l1,(0,rv.Z)({},i,r,{ref:t}))}),ck=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cg(n);return(0,E.createElement)(l8,(0,rv.Z)({},i,r,{ref:t}))}),cj=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:o}=e,s=cg(t),[a,l]=rV({prop:i,defaultProp:o,onChange:r});return(0,E.createElement)(cu,(0,rv.Z)({},s,{open:a,onOpenChange:l}),n)},c_=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cg(n);return(0,E.createElement)(cr,(0,rv.Z)({},i,r,{ref:t}))}),cE=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cg(n);return(0,E.createElement)(ci,(0,rv.Z)({},i,r,{ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}}))});function cC(e){return t=>"mouse"!==t.pointerType?e(t):void 0}let cP=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:o=!0}=e,[s,a]=(0,E.useState)(!1),l=cg(t),c=rD(r),d=(0,E.useCallback)(e=>{a(e),c(e)},[c]);return(0,E.createElement)(cm,{scope:t,open:s,onOpenChange:d,modal:o},(0,E.createElement)(cc,(0,rv.Z)({},l,{dir:i,open:s,onOpenChange:d,modal:o}),n))},cI="undefined"!=typeof window&&window.navigator.userAgent.toLowerCase().indexOf("mac")>-1,cT=cI?"⌘":"Ctrl",cM=cI?"⌥":"Alt";function cA(e){return e.split(",")[0].split("").map(e=>{let t=e.replace(/\$/g,cT).replace(/\?/g,cM).replace(/!/g,"⇧");return t[0].toUpperCase()+t.slice(1)})}function c$(e){return"— "+cA(e).join(" ")}function cD(e){return(0,_.jsx)("svg",{width:16,height:16,viewBox:"0 0 16 16",...e,children:(0,_.jsxs)("g",{strokeWidth:2,fill:"none",fillRule:"evenodd",children:[(0,_.jsx)("circle",{strokeOpacity:.25,cx:8,cy:8,r:7,stroke:"currentColor"}),(0,_.jsx)("path",{strokeLinecap:"round",d:"M15 8c0-4.5-4.5-7-7-7",stroke:"currentColor",children:(0,_.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 8 8",to:"360 8 8",dur:"1s",repeatCount:"indef
202inite"})})]})})}let cO="DropdownMenu",[cB,cL]=rE(cO,[lD]),cR=lD(),[cN,cz]=cB(cO),cF=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=cz("DropdownMenuTrigger",n),s=cR(n);return(0,E.createElement)(lF,(0,rv.Z)({asChild:!0},s),(0,E.createElement)(rA.button,(0,rv.Z)({type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r},i,{ref:rj(t,o.triggerRef),onPointerDown:rk(e.onPointerDown,e=>{r||0!==e.button||!1!==e.ctrlKey||(o.onOpenToggle(),o.open||e.preventDefault())}),onKeyDown:rk(e.onKeyDown,e=>{!r&&(["Enter"," "].includes(e.key)&&o.onOpenToggle(),"ArrowDown"===e.key&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})))}),cU=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cz("DropdownMenuContent",n),o=cR(n),s=(0,E.useRef)(!1);return(0,E.createElement)(lY,(0,rv.Z)({id:i.contentId,"aria-labelledby":i.triggerId},o,r,{ref:t,onCloseAutoFocus:rk(e.onCloseAutoFocus,e=>{var t;s.current||null===(t=i.triggerRef.current)||void 0===t||t.focus(),s.current=!1,e.preventDefault()}),onInteractOutside:rk(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;(!i.modal||r)&&(s.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}}))}),cH=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cR(n);return(0,E.createElement)(lJ,(0,rv.Z)({},i,r,{ref:t}))}),cZ=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cR(n);return(0,E.createElement)(l1,(0,rv.Z)({},i,r,{ref:t}))}),cV=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cR(n);return(0,E.createElement)(l8,(0,rv.Z)({},i,r,{ref:t}))}),cK=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cR(n);return(0,E.createElement)(cr,(0,rv.Z)({},i,r,{ref:t}))}),cW=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cR(n);return(0,E.createElement)(ci,(0,rv.Z)({},i,r,{ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}}))}),cY=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:s,modal:a=!0}=e,l=cR(t),c=(0,E.useRef)(null),[d=!1,u]=rV({prop:i,defaultProp:o,onChange:s});return(0,E.createElement)(cN,{scope:t,triggerId:iV(),triggerRef:c,contentId:iV(),open:d,onOpenChange:u,onOpenToggle:(0,E.useCallback)(()=>u(e=>!e),[u]),modal:a},(0,E.createElement)(cc,(0,rv.Z)({},l,{open:d,onOpenChange:u,dir:r,modal:a}),n))},cG=e=>{let{__scopeDropdownMenu:t,...n}=e,r=cR(t);return(0,E.createElement)(cd,(0,rv.Z)({},r,n))},cX=e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:i,defaultOpen:o}=e,s=cR(t),[a=!1,l]=rV({prop:r,defaultProp:o,onChange:i});return(0,E.createElement)(cu,(0,rv.Z)({},s,{open:a,onOpenChange:l}),n)};function cq({id:e,children:t,modal:n=!1,debugOpen:r=!1}){let[i,o]=sZ(e);return(0,_.jsx)(cY,{open:r||i,dir:"ltr",modal:n,onOpenChange:o,children:t})}function cJ({children:e,...t}){return(0,_.jsx)(cF,{dir:"ltr",asChild:!0,onTouchEnd:e=>(0,m.PFJ)(e),...t,children:e})}function cQ({side:e="bottom",align:t="start",sideOffset:n=8,alignOffset:r=8,children:i}){let o=(0,m.uK4)();return(0,_.jsx)(cG,{container:o,children:(0,_.jsx)(cU,{className:"tlui-menu",side:e,sideOffset:n,align:t,alignOffset:r,collisionPadding:4,children:i})})}function c0({id:e,children:t}){let[n,r]=sZ(e);return(0,_.jsx)(cX,{open:n,onOpenChange:r,children:t})}function c1({id:e,label:t,title:n,disabled:r}){return(0,_.jsx)(cK,{dir:"ltr",asChild:!0,disabled:r,children:(0,_.jsxs)(iP,{"data-testid":e,type:"menu",className:"tlui-menu__submenu__trigger",disabled:r,title:n,children:[(0,_.jsx)(sq,{children:t}),(0,_.jsx)(iT,{icon:"chevron-right",small:!0})]})})}function c2({id:e,alignOffset:t=-1,sideOffset:n=-4,size:r="small",children:i}){let o=(0,m.uK4)();return(0,_.jsx)(cG,{container:o,children:(0,_.jsx)(cW,{"data-testid":e,className:"tlui-menu tlui-menu__submenu__content",alignOffset:t,sideOffset:n,collisionPadding:4,"data-size":r,children:i})})}function c8({children:e}){return(0,_.jsx)(cH,{dir:"ltr",className:"tlui-menu__group",children:e})}function c3({noClose:e,children:t}){return(0,_.jsx)(cZ,{dir:"ltr",asChild:!0,onClick:e?m.PFJ:void 0,children:t})}function c5({children:e,visibleOnMobileLayout:t=!1}){let n=iy();return!t&&n<ip.MOBILE?null:(0,_.jsx)("kbd",{className:"tlui-kbd",children:cA(e).map((e,t)=>(0,_.jsx)("span",{children:e},t))})}function c4({disabled:e=!1,spinner:t=!1,readonlyOk:n=!1,id:r,kbd:i,label:o,icon:s,onSelect:a,noClose:l}){let{type:c,sourceId:d}=sG(),u=iC(),[h,p]=(0,E.useState)(!1),f=N();if(f&&!n)return null;let g=ls(o,c),y=i?c$(i):void 0,b=g?u(g):void 0,x=b&&y?`${b} ${y}`:b;switch(c){case"menu":return(0,_.jsx)(c3,{children:(0,_.jsxs)(iP,{type:"menu","data-testid":`${d}.${r}`,disabled:e,title:x,onClick:e=>{l&&(0,m.PFJ)(e),h?p(!1):a(d)},children:[(0,_.jsx)(sq,{children:b}),i&&(0,_.jsx)(c5,{children:i})]})});case"context-menu":if(e)return null;
202return(0,_.jsxs)(cS,{dir:"ltr",title:x,draggable:!1,className:"tlui-button tlui-button__menu","data-testid":`${d}.${r}`,onSelect:e=>{l&&(0,m.PFJ)(e),h?p(!1):a(d)},children:[(0,_.jsx)("span",{className:"tlui-button__label",draggable:!1,children:b}),i&&(0,_.jsx)(c5,{children:i}),t&&(0,_.jsx)(cD,{})]});case"panel":return(0,_.jsxs)(iP,{"data-testid":`${d}.${r}`,type:"menu",title:x,disabled:e,onClick:()=>a(d),children:[(0,_.jsx)(sq,{children:b}),s&&(0,_.jsx)(iT,{icon:s})]});case"small-icons":case"icons":return(0,_.jsx)(iP,{"data-testid":`${d}.${r}`,type:"icon",title:x,disabled:e,onClick:()=>a(d),children:(0,_.jsx)(iT,{icon:s,small:"small-icons"===c})});case"keyboard-shortcuts":if(!i)return console.warn(`Menu item '${o}' isn't shown in the keyboard shortcuts dialog because it doesn't have a keyboard shortcut.`),null;return(0,_.jsxs)("div",{className:"tlui-shortcuts-dialog__key-pair","data-testid":`${d}.${r}`,children:[(0,_.jsx)("div",{className:"tlui-shortcuts-dialog__key-pair__key",children:b}),(0,_.jsx)("div",{className:"tlui-shortcuts-dialog__key-pair__value",children:(0,_.jsx)(c5,{visibleOnMobileLayout:!0,children:i})})]});case"helper-buttons":return(0,_.jsxs)(iP,{type:"low",onClick:()=>a(d),children:[(0,_.jsx)(iT,{icon:s}),(0,_.jsx)(sq,{children:b})]});default:return null}}function c6(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c9,{}),(0,_.jsx)(c7,{}),(0,_.jsx)(de,{}),(0,_.jsx)(dt,{}),(0,_.jsx)(dn,{}),(0,_.jsx)(ds,{}),(0,_.jsx)(da,{}),(0,_.jsx)(dl,{})]})}function c9(){let e=lo(),t=v(2);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c4,{...e["align-left"],disabled:!t}),(0,_.jsx)(c4,{...e["align-center-horizontal"],disabled:!t}),(0,_.jsx)(c4,{...e["align-right"],disabled:!t}),(0,_.jsx)(c4,{...e["stretch-horizontal"],disabled:!t}),(0,_.jsx)(c4,{...e["align-top"],disabled:!t}),(0,_.jsx)(c4,{...e["align-center-vertical"],disabled:!t}),(0,_.jsx)(c4,{...e["align-bottom"],disabled:!t}),(0,_.jsx)(c4,{...e["stretch-vertical"],disabled:!t})]})}function c7(){let e=lo(),t=v(3);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c4,{...e["distribute-horizontal"],disabled:!t}),(0,_.jsx)(c4,{...e["distribute-vertical"],disabled:!t})]})}function de(){let e=lo(),t=y();return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c4,{...e["stack-horizontal"],disabled:!t}),(0,_.jsx)(c4,{...e["stack-vertical"],disabled:!t})]})}function dt(){let e=lo(),t=v(1);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c4,{...e["send-to-back"],disabled:!t}),(0,_.jsx)(c4,{...e["send-backward"],disabled:!t}),(0,_.jsx)(c4,{...e["bring-forward"],disabled:!t}),(0,_.jsx)(c4,{...e["bring-to-front"],disabled:!t})]})}function dn(){let e=iy();return e<ip.TABLET_SM?(0,_.jsx)(dr,{}):(0,_.jsx)(di,{})}function dr(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("zoom is 1",()=>1===t.getZoomLevel(),[t]);return(0,_.jsx)(c4,{...e["zoom-to-100"],disabled:n})}function di(){let e=lo(),t=v(1);return(0,_.jsx)(c4,{...e["rotate-ccw"],disabled:!t})}function ds(){let e=lo(),t=v(1);return(0,_.jsx)(c4,{...e["rotate-cw"],disabled:!t})}function da(){let e=lo(),t=S();return(0,_.jsx)(c4,{...e["edit-link"],disabled:!t})}function dl(){let e=b(),t=x();return e?(0,_.jsx)(dc,{}):t?(0,_.jsx)(dd,{}):(0,_.jsx)(dc,{})}function dc(){let e=lo(),t=v(2);return(0,_.jsx)(c4,{...e.group,disabled:!t})}function dd(){let e=lo();return(0,_.jsx)(c4,{...e.ungroup})}let du=(0,E.memo)(function({children:e}){let t=iC(),n=iy(),r=N(),i=(0,m.jE2)(),o=(0,m.HgN)("should display quick actions when in readonly",()=>i.isInAny("hand","zoom"),[i]),s=e??(0,_.jsx)(c6,{});if(!r||o)return(0,_.jsxs)(sV,{id:"actions-menu",children:[(0,_.jsx)(sK,{children:(0,_.jsx)(iP,{type:"icon","data-testid":"actions-menu.button",title:t("actions-menu.title"),children:(0,_.jsx)(iT,{icon:"dots-vertical",small:!0})})}),(0,_.jsx)(sW,{side:n>=ip.TABLET?"bottom":"top",sideOffset:6,children:(0,_.jsx)("div",{className:"tlui-actions-menu tlui-buttons__grid","data-testid":"actions-menu.content",children:(0,_.jsx)(sX,{type:"icons",sourceId:"actions-menu",children:s})})})]})});function dh({id:e,kbd:t,label:n,readonlyOk:r,onSelect:i,disabled:o=!1,checked:s=!1}){let{type:a,sourceId:l}=sG(),c=N(),d=iC();if(c&&!r)return null;let u=ls(n,a),h=u?d(u):void 0;switch(a){case"menu":return(0,_.jsxs)(cV,{dir:"ltr",className:"tlui-button tlui-button__menu tlui-button__checkbox",title:h,onSelect:e=>{i?.(l),(0,m.PFJ)(e)},disabled:o,checked:s,children:[(0,_.jsx)(iI,{small:!0,icon:s?"check":"checkbox-empty"}),h&&(0,_.jsx)("span",{className:"tlui-button__label",draggable:!1,
202children:h}),t&&(0,_.jsx)(c5,{children:t})]});case"context-menu":return(0,_.jsxs)(ck,{className:"tlui-button tlui-button__menu tlui-button__checkbox",dir:"ltr",title:h,onSelect:e=>{i(l),(0,m.PFJ)(e)},disabled:o,checked:s,children:[(0,_.jsx)(iI,{small:!0,icon:s?"check":"checkbox-empty"}),h&&(0,_.jsx)("span",{className:"tlui-button__label",draggable:!1,children:h}),t&&(0,_.jsx)(c5,{children:t})]},e);default:return null}}function dp({id:e,label:t,children:n}){let{type:r,sourceId:i}=sG(),o=iC(),s=ls(t,r),a=s?o(s):void 0;switch(r){case"panel":return(0,_.jsx)("div",{className:"tlui-menu__group","data-testid":`${i}-group.${e}`,children:n});case"menu":return(0,_.jsx)(c8,{"data-testid":`${i}-group.${e}`,children:n});case"context-menu":return(0,_.jsx)(cv,{dir:"ltr",className:"tlui-menu__group","data-testid":`${i}-group.${e}`,children:n});case"keyboard-shortcuts":return(0,_.jsxs)("div",{className:"tlui-shortcuts-dialog__group","data-testid":`${i}-group.${e}`,children:[(0,_.jsx)("h2",{className:"tlui-shortcuts-dialog__group__title",children:a}),(0,_.jsx)("div",{className:"tlui-shortcuts-dialog__group__content",children:n})]});default:return n}}function df({id:e,disabled:t=!1,label:n,size:r="small",children:i}){let{type:o,sourceId:s}=sG(),a=(0,m.uK4)(),l=iC(),c=n?"string"==typeof n?n:n[o]??n.default:void 0,d=c?l(c):void 0;switch(o){case"menu":return(0,_.jsxs)(c0,{id:`${s}-sub.${e}`,children:[(0,_.jsx)(c1,{id:`${s}-sub.${d?d.toLowerCase()+"-button":""}`,disabled:t,label:d,title:d}),(0,_.jsx)(c2,{id:`${s}-sub.${d?d.toLowerCase()+"-content":""}`,size:r,children:i})]});case"context-menu":if(t)return null;return(0,_.jsxs)(dg,{id:`${s}-sub.${e}`,children:[(0,_.jsx)(c_,{dir:"ltr",disabled:t,asChild:!0,children:(0,_.jsxs)(iP,{"data-testid":`${s}-sub-trigger.${e}`,type:"menu",className:"tlui-menu__submenu__trigger",children:[(0,_.jsx)(sq,{children:d}),(0,_.jsx)(iT,{icon:"chevron-right",small:!0})]})}),(0,_.jsx)(cx,{container:a,children:(0,_.jsx)(cE,{"data-testid":`${s}-sub-content.${e}`,className:"tlui-menu tlui-menu__submenu__content",alignOffset:-1,sideOffset:-4,collisionPadding:4,"data-size":r,children:i})})]});default:return i}}function dg({id:e,children:t}){let[n,r]=sZ(e);return(0,_.jsx)(cj,{open:n,onOpenChange:r,children:t})}function dm(){let e=lo(),t=function(){let e=(0,m.jE2)();return(0,m.HgN)("showAutoSizeToggle",()=>{let t=e.getSelectedShapes();return 1===t.length&&e.isShapeOfType(t[0],"text")&&!1===t[0].props.autoSize},[e])}();return(0,_.jsx)(c4,{...e["toggle-auto-size"],disabled:!t})}function dy(){let e=lo(),t=S();return(0,_.jsx)(c4,{...e["edit-link"],disabled:!t})}function db(){let e=lo(),t=v(1);return(0,_.jsx)(c4,{...e.duplicate,disabled:!t})}function dx(){let e=lo(),t=b();return(0,_.jsx)(c4,{...e.group,disabled:!t})}function dw(){let e=lo(),t=x();return(0,_.jsx)(c4,{...e.ungroup,disabled:!t})}function dv(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("allow unframe",()=>{let t=e.getSelectedShapes();return 0!==t.length&&t.every(t=>e.isShapeOfType(t,"frame"))},[e]);return(0,_.jsx)(c4,{...t["remove-frame"],disabled:!n})}function dS(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("allow fit frame to content",()=>{let t=e.getOnlySelectedShape();return!!t&&e.isShapeOfType(t,"frame")&&e.getSortedChildIdsForParent(t).length>0},[e]);return(0,_.jsx)(c4,{...t["fit-frame-to-content"],disabled:!n})}function dk(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("selected shapes",()=>e.getSelectedShapes().length>0,[e]);return(0,_.jsx)(c4,{...t["toggle-lock"],disabled:!n})}function dj(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isTransparentBg",()=>!t.getInstanceState().exportBackground,[t]);return(0,_.jsx)(dh,{...e["toggle-transparent"],checked:n})}function d_(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("any shapes",()=>e.getCurrentPageShapeIds().size>0,[e]);return(0,_.jsx)(c4,{...t["unlock-all"],disabled:!n})}function dE(){let e=(0,m.jE2)(),t=(0,m.HgN)("zoomed to 100",()=>1===e.getZoomLevel(),[e]),n=lo();return(0,_.jsx)(c4,{...n["zoom-to-100"],noClose:!0,disabled:t})}function dC(){let e=(0,m.jE2)(),t=(0,m.HgN)("has shapes",()=>e.getCurrentPageShapeIds().size>0,[e]),n=lo();return(0,_.jsx)(c4,{...n["zoom-to-fit"],disabled:!t,"data-testid":"minimap.zoom-menu.zoom-to-fit",noClose:!0})}function dP(){let e=(0,m.jE2)(),t=(0,m.HgN)("has shapes",()=>e.getSelectedShapeIds().length>0,[e]),n=lo();return(0,_.jsx)(c4,{...n["zoom-to-selection"],disabled:!t,"data-testid":"minimap.zoom-menu.zoom-to-selection",noClose:!0})}function dI(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("atLeastOneShapeOnPage",()=>e.getCurrentPageShapeIds().size>0,[]);return(0,_.jsxs)(dp,{id:"clipboard",children:[(0,_.jsx)(dT,{}),(0,_.jsx)(dM,{}),(0,_.jsxs)(df,{id:"copy-as",label:"context-menu.copy-as",size:"small",disabled:!n,children:[(0,_.jsxs)(dp,{id:"copy-as-group",children:[(0,_.jsx)(c4,{...t["copy-as-svg"]}),!!window.navigator.clipboard?.write&&(0,_.jsx)(c4,{...t["copy-as-png"]}),(0,_.jsx)(c4,{...t["copy-as-json"]})]}),(0,_.jsx)(dp,{id:"copy-as-bg",children:(0,_.jsx)(dj,{})})]}),(0,_.jsx)(db,{}),(0,_.jsx)(dA,{}),(0,_.jsx)(dO,{})]})}function dT(){let e=lo(),t=v(1);return(0,_.jsx)(c4,{...e.cut,disabled:!t})}function dM(){let e=lo(),t=function(e,t){let n=(0,m.jE2)();return(0,m.HgN)("selectedShapes",()=>{let r=n.getSelectedShapes().length;return void 0===e?void 0===t?r:r<=t:void 0===t?r>=e:r>=e&&r<=t},[n,e,t])}(1);return(0,_.jsx)(c4,{...e.copy,disabled:!t})}function dA(){let e=lo();return(0,_.jsx)(c4,{...e.paste,disabled:!w})}function d$(){let e=lo(),t=v(1);return(0,_.jsx)(dp,{id:"conversions",children:(0,_.jsxs)(df,{id:"export-as",label:"context-menu.export-as",size:"small",disabled:!t,children:[(0,_.jsxs)(dp,{id:"export-as-group",children:[(0,_.jsx)(c4,{...e["export-as-svg"]}),(0,_.jsx)(c4,{...e["export-as-png"]}),(0,_.jsx)(c4,{...e["export-as-json"]})]}),(0,_.jsx)(dp,{id:"export-as-bg",children:(0,_.jsx)(dj,{})})]})})}function dD(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("atLeastOneShapeOnPage",()=>t.getCurrentPageShapeIds().size>0,[t]);return(0,_.jsx)(dp,{id:"set-selection-group",children:(0,_.jsx)(c4,{...e["select-all"],disabled:!n})})}function dO(){let e=lo(),t=v(1);return(0,_.jsx)(c4,{...e.delete,disabled:!t})}function dB(){let e=v(2),t=function(){let e=(0,m.jE2)();return(0,m.HgN)("onlyFlippableShape",()=>{let t=e.getSelectedShapes();return 1===t.length&&t.every(t=>e.isShapeOfType(t,"group")||e.isShapeOfType(t,"arrow")||e.isShapeOfType(t,"line")||e.isShapeOfType(t,"draw"))},[e])}(),n=lo();return e||t?(0,_.jsxs)(df,{id:"arrange",label:"context-menu.arrange",size:"small",children:[e&&(0,_.jsxs)(dp,{id:"align",children:[(0,_.jsx)(c4,{...n["align-left"]}),(0,_.jsx)(c4,{...n["align-center-horizontal"]}),(0,_.jsx)(c4,{...n["align-right"]}),(0,_.jsx)(c4,{...n["align-top"]}),(0,_.jsx)(c4,{...n["align-center-vertical"]}),(0,_.jsx)(c4,{...n["align-bottom"]})]}),(0,_.jsx)(dL,{}),e&&(0,_.jsxs)(dp,{id:"stretch",children:[(0,_.jsx)(c4,{...n["stretch-horizontal"]}
202),(0,_.jsx)(c4,{...n["stretch-vertical"]})]}),t&&(0,_.jsxs)(dp,{id:"flip",children:[(0,_.jsx)(c4,{...n["flip-horizontal"]}),(0,_.jsx)(c4,{...n["flip-vertical"]})]}),(0,_.jsx)(dR,{})]}):null}function dL(){let e=lo(),t=v(3);return t?(0,_.jsxs)(dp,{id:"distribute",children:[(0,_.jsx)(c4,{...e["distribute-horizontal"]}),(0,_.jsx)(c4,{...e["distribute-vertical"]})]}):null}function dR(){let e=lo(),t=v(2),n=y();return t?(0,_.jsxs)(dp,{id:"order",children:[(0,_.jsx)(c4,{...e.pack}),n&&(0,_.jsx)(c4,{...e["stack-horizontal"]}),n&&(0,_.jsx)(c4,{...e["stack-vertical"]})]}):null}function dN(){let e=lo(),t=v(1);return t?(0,_.jsx)(df,{id:"reorder",label:"context-menu.reorder",size:"small",children:(0,_.jsxs)(dp,{id:"reorder",children:[(0,_.jsx)(c4,{...e["bring-to-front"]}),(0,_.jsx)(c4,{...e["bring-forward"]}),(0,_.jsx)(c4,{...e["send-backward"]}),(0,_.jsx)(c4,{...e["send-to-back"]})]})}):null}function dz(){let e=(0,m.jE2)(),t=(0,m.HgN)("pages",()=>e.getPages(),[e]),n=(0,m.HgN)("current page id",()=>e.getCurrentPageId(),[e]),{addToast:r}=a5(),i=lo(),o=sH(),s=v(1);return s?(0,_.jsxs)(df,{id:"move-to-page",label:"context-menu.move-to-page",size:"small",children:[(0,_.jsx)(dp,{id:"pages",children:t.map(t=>(0,_.jsx)(c4,{id:t.id,disabled:n===t.id,label:t.name,onSelect:()=>{e.mark("move_shapes_to_page"),e.moveShapesToPage(e.getSelectedShapeIds(),t.id);let i=e.getPage(t.id);i&&r({title:"Changed Page",description:`Moved to ${i.name}.`,actions:[{label:"Go Back",type:"primary",onClick:()=>{e.mark("change-page"),e.setCurrentPage(n)}}]}),o("move-to-page",{source:"context-menu"})},title:t.name},t.id))}),(0,_.jsx)(dp,{id:"new-page",children:(0,_.jsx)(c4,{...i["new-page"]})})]}):null}function dF(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("oneEmbedSelected",()=>{let t=e.getOnlySelectedShape();return!!t&&!!(e.isShapeOfType(t,"embed")&&t.props.url&&!e.isShapeOrAncestorLocked(t))},[e]),r=(0,m.HgN)("oneEmbeddableBookmarkSelected",()=>{let t=e.getOnlySelectedShape();return!!t&&!!(e.isShapeOfType(t,"bookmark")&&t.props.url&&ey(t.props.url)&&!e.isShapeOrAncestorLocked(t))},[e]);return(0,_.jsxs)(dp,{id:"embeds",children:[(0,_.jsx)(c4,{...t["convert-to-bookmark"],disabled:!n}),(0,_.jsx)(c4,{...t["convert-to-embed"],disabled:!r})]})}function dU(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isSnapMode",()=>t.user.getIsSnapMode(),[t]);return(0,_.jsx)(dh,{...e["toggle-snap-mode"],checked:n})}function dH(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isToolLock",()=>t.getInstanceState().isToolLocked,[t]);return(0,_.jsx)(dh,{...e["toggle-tool-lock"],checked:n})}function dZ(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isGridMode",()=>t.getInstanceState().isGridMode,[t]);return(0,_.jsx)(dh,{...e["toggle-grid"],checked:n})}function dV(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isWrapMode",()=>t.user.getIsWrapMode(),[t]);return(0,_.jsx)(dh,{...e["toggle-wrap-mode"],checked:n})}function dK(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isDarkMode",()=>t.user.getIsDarkMode(),[t]);return(0,_.jsx)(dh,{...e["toggle-dark-mode"],checked:n})}function dW(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isFocusMode",()=>t.getInstanceState().isFocusMode,[t]);return(0,_.jsx)(dh,{...e["toggle-focus-mode"],checked:n})}function dY(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("edgeScrollSpeed",()=>t.user.getEdgeScrollSpeed(),[t]);return(0,_.jsx)(dh,{...e["toggle-edge-scrolling"],checked:1===n})}function dG(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("animationSpeed",()=>t.user.getAnimationSpeed(),[t]);return(0,_.jsx)(dh,{...e["toggle-reduce-motion"],checked:0===n})}function dX(){let e=lo(),t=(0,m.jE2)(),n=(0,m.HgN)("isDebugMode",()=>t.getInstanceState().isDebugMode,[t]);return(0,_.jsx)(dh,{...e["toggle-debug-mode"],checked:n})}function dq(){let e=(0,m.jE2)(),t=(0,m.HgN)("isSelectToolActive",()=>"select"===e.getCurrentToolId(),[e]);return t?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(dp,{id:"selection",children:[(0,_.jsx)(dm,{}),(0,_.jsx)(dy,{}),(0,_.jsx)(dx,{}),(0,_.jsx)(dw,{}),(0,_.jsx)(dv,{}),(0,_.jsx)(dS,{}),(0,_.jsx)(dk,{})]}),(0,_.jsx)(dF,{}),(0,_.jsxs)(dp,{id:"modify",children:[(0,_.jsx)(dB,{}),(0,_.jsx)(dN,{}),(0,_.jsx)(dz,{})]}),(0,_.jsx)(dI,{}),(0,_.jsx)(d$,{}),(0,_.jsx)(dD,{})]}):null}let dJ=(0,E.memo)(function({children:e}){let t=(0,m.jE2)(),{Canvas:n}=(0,m.ofW)(),r=(0,E.useCallback)(e=>{if(e){if(t.getInstanceState().isCoarsePointer){let e=t.getSelectedShapes(),{inputs:{currentPagePoint:n}}=t,r=t.getShapesAtPoint(n);if(!t.getSelectedShapes().length||!r.some(t=>e.includes(t))){let e=r.filter(e=>t.isShapeOrAncestorLocked(e));e.length&&t.select(...e.map(e=>e.id))}}}else{let e=t.getOnlySelectedShape();e&&t.isShapeOrAncestorLocked(e)&&t.setSelectedShapes([])}},[t]),i=(0,m.uK4)(),[o,s]=sZ("context menu",r),a=e??(0,_.jsx)(dq,{});return(0,_.jsxs)(cP,{dir:"ltr",onOpenChange:s,modal:!1,children:[(0,_.jsx)(cb,{onContextMenu:void 0,dir:"ltr",children:n?(0,_.jsx)(n,{}):null}),o&&(0,_.jsx)(cx,{container:i,children:(0,_.jsx)(cw,{className:"tlui-menu scrollable","data-testid":"context-menu",alignOffset:-4,collisionPadding:4,onContextMenu:m.PFJ,children:(0,_.jsx)(sX,{type:"context-menu",sourceId:"context-menu",children:a})})})]})});function dQ({checked:e}){return(0,_.jsx)(iI,{icon:e?"check":"checkbox-empty",className:"tlui-button__icon",small:!0})}function d0(){let e=(0,m.jE2)(),{addToast:t}=a5(),{addDialog:n}=lt(),[r,i]=E.useState(!1);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(dp,{id:"items",children:[(0,_.jsx)(c4,{id:"add-toast",onSelect:()=>{t({id:(0,m.ELf)(),title:"Something happened",description:"Hey, attend to this thing over here. It might be important!",keepOpen:!0}),t({id:(0,m.ELf)(),title:"Something happened",description:"Hey, attend to this thing over here. It might be important!",keepOpen:!0,actions:[{label:"Primary",type:"primary",onClick:()=>{}},{label:"Normal",type:"normal",onClick:()=>{}},{label:"Danger",type:"danger",onClick:()=>{}}]}),t({id:(0,m.ELf)(),title:"Something happened",description:"Hey, attend to this thing over here. It might be important!",keepOpen:!0,icon:"twitter",actions:[{label:"Primary",type:"primary",onClick:()=>{}},{label:"Normal",type:"normal",onClick:()=>{}},{label:"Danger",type:"danger",onClick:()=>{}}]})},label:"Show toast"}),(0,_.jsx)(c4,{id:"show-dialog",label:"Show dialog",onSelect:()=>{n({component:({onClose:e})=>(0,_.jsx)(d8,{displayDontShowAgain:!0,onCancel:()=>e(),onContinue:()=>e()}),onClose:()=>{}})}}),(0,_.jsx)(c4,{id:"create-shapes",label:"Create 100 shapes",onSelect:()=>(function(e,t){let n=Array(t),r=Math.floor(Math.sqrt(t));for(let e=0;e<t;e++)d5++,n[e]={id:(0,m.F17)("box"+d5),type:"geo",x:e%r*132,y:132*Math.floor(e/r)};e.batch(()=>{e.createShapes(n).setSelectedShapes(n.map(e=>e.id))})})(e,100)}),(0,_.jsx)(c4,{id:"count-nodes",label:"Count shapes / nodes",onSelect:()=>{let t=e.getSelectedShapes(),n=0===t.length?e.getRenderingShapes():t,r=n.map(e=>document.getElementById(e.id).parentElement),i=r.length;for(let e of r)i+=function e({children:t}){let n=0;if(!t.length)return 0;for(let r of[...t])n++,n+=e(r);return n}(e);window.alert(`Shapes ${n.length}, DOM nodes:${i}`)}}),(()=>{if(r)throw Error("oh no!")})(),(0,_.jsx)(c4,{id:"throw-error",onSelect:()=>i(!0),label:"Throw error"}),(0,_.jsx)(c4,{id:"hard-reset",onSelect:m.WlM,label:"Hard reset"})]}),(0,_.jsxs)(dp,{id:"flags",children:[(0,_.jsx)(d1,{}),(0,_.jsx)(d2,{})]})]})}function d1(){let e=Object.values(m.hR1);return e.length?(0,_.jsx)(df,{id:"debug flags",label:"Debug Flags",children:(0,_.jsx)(dp,{id:"debug flags",children:e.map(e=>(0,_.jsx)(d3,{flag:e},e.name))})}):null}function d2(){let e=Object.values(m.VHO);return e.length?(0,_.jsx)(df,{id:"feature flags",label:"Feature Flags",children:(0,_.jsx)(dp,{id:"feature flags",children:e.map(e=>(0,_.jsx)(d3,{flag:e},e.name))})}):null}function d8({title:e="title",body:t="hello hello hello",cancel:n="Cancel",confirm:r="Continue",displayDontShowAgain:i=!1,onCancel:o,onContinue:s}){let[a,l]=E.useState(!1);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(ah,{children:[(0,_.jsx)(ap,{children:e}),(0,_.jsx)(af,{})]}),(0,_.jsx)(ag,{style:{maxWidth:350},children:t}),(0,_.jsxs)(am,{className:"tlui-dialog__footer__actions",children:[i&&(0,_.jsxs)(iP,{type:"normal",onClick:()=>l(!a),style:{marginRight:"auto"},children:[(0,_.jsx)(dQ,{checked:a}),(0,_.jsx)(sq,{children:"Don't show again"})]}),(0,_.jsx)(iP,{type:"normal",onClick:o,children:(0,_.jsx)(sq,{children:n})}),(0,_.jsx)(iP,{type:"primary",onClick:async()=>s(),children:(0,_.jsx)(sq,{children:r})})]})]})}
202let d3=(0,m.jas)(function({flag:e,onChange:t}){let n=e.get();return(0,_.jsx)(dh,{id:e.name,title:e.name,label:e.name.replace(/([a-z0-9])([A-Z])/g,e=>`${e[0]} ${e[1].toLowerCase()}`).replace(/^[a-z]/,e=>e.toUpperCase()),checked:n,onSelect:()=>{e.set(!n),t?.(!n)}})}),d5=0;function d4({children:e}){let t=e??(0,_.jsx)(d0,{});return(0,_.jsxs)(cq,{id:"debug",children:[(0,_.jsx)(cJ,{children:(0,_.jsx)(iP,{type:"icon",title:"Debug menu",children:(0,_.jsx)(iT,{icon:"dots-horizontal"})})}),(0,_.jsx)(cQ,{side:"top",align:"end",alignOffset:0,children:(0,_.jsx)(sX,{type:"menu",sourceId:"debug-panel",children:t})})]})}let d6=(0,m.jas)(function(){let e=(0,m.jE2)(),t=sH(),{languages:n,currentLanguage:r}=function(){let e=(0,m.jE2)();return{languages:m.a2c,currentLanguage:e.user.getLocale()}}();return(0,_.jsx)(df,{id:"help menu language",label:"menu.language",children:(0,_.jsx)(dp,{id:"languages",children:n.map(({locale:n,label:i})=>(0,_.jsx)(dh,{id:`language-${n}`,title:n,label:i,checked:n===r,onSelect:()=>{e.user.updateUserPreferences({locale:n}),t("change-language",{source:"menu",locale:n})}},n))})})});function d9(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(d6,{}),(0,_.jsx)(d7,{})]})}function d7(){let{KeyboardShortcutsDialog:e}=h5(),{addDialog:t}=lt();return e?(0,_.jsx)(c4,{id:"keyboard-shortcuts-button",label:"help-menu.keyboard-shortcuts",readonlyOk:!0,onSelect:()=>{t({component:e})}}):null}let ue=(0,E.memo)(function({children:e}){let t=iC(),n=iy(),r=e??(0,_.jsx)(d9,{});return n<ip.MOBILE?null:(0,_.jsx)("div",{className:"tlui-help-menu",children:(0,_.jsxs)(cq,{id:"help menu",children:[(0,_.jsx)(cJ,{children:(0,_.jsx)(iP,{type:"help",title:t("help-menu.title"),"data-testid":"help-menu.button",children:(0,_.jsx)(iT,{icon:"question-mark",small:!0})})}),(0,_.jsx)(cQ,{side:"top",align:"end",alignOffset:0,sideOffset:8,children:(0,_.jsx)(sX,{type:"menu",sourceId:"help-menu",children:r})})]})})});function ut(){let e=(0,m.jE2)(),t=lo(),[n,r]=(0,E.useState)(!1);return((0,E.useEffect)(()=>{let t=!1,n=setInterval(()=>{let n=e.getRenderingShapes(),i=e.getRenderingBounds(),o=n.filter(e=>e.maskedPageBounds&&i.includes(e.maskedPageBounds)),s=0===o.length&&e.getCurrentPageShapes().length>0;t!==s&&(r(s),t=s)},1e3);return()=>{clearInterval(n)}},[e]),n)?(0,_.jsx)(c4,{...t["back-to-content"],onSelect:()=>{t["back-to-content"].onSelect("helper-buttons"),r(!1)}}):null}function un(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("is pen mode",()=>e.getInstanceState().isPenMode,[e]);return n?(0,_.jsx)(c4,{...t["exit-pen-mode"]}):null}function ur(){let e=(0,m.jE2)(),t=lo(),n=(0,m.HgN)("is following user",()=>!!e.getInstanceState().followingUserId,[e]);return n?(0,_.jsx)(c4,{...t["stop-following"]}):null}function ui(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(un,{}),(0,_.jsx)(ut,{}),(0,_.jsx)(ur,{})]})}function uo({children:e}){let t=e??(0,_.jsx)(ui,{});return(0,_.jsx)("div",{className:"tlui-helper-buttons",children:(0,_.jsx)(sX,{type:"helper-buttons",sourceId:"helper-buttons",children:t})})}let us=E.createContext({});function ua({overrides:e,children:t}){let n=(0,m.jE2)(),r=sH(),{addDialog:i}=lt(),o=a9(),s=E.useMemo(()=>{let t=[{id:"select",label:"tool.select",icon:"tool-pointer",kbd:"v",readonlyOk:!0,onSelect(e){n.setCurrentTool("select"),r("select-tool",{source:e,id:"select"})}},{id:"hand",label:"tool.hand",icon:"tool-hand",kbd:"h",readonlyOk:!0,onSelect(e){n.setCurrentTool("hand"),r("select-tool",{source:e,id:"hand"})}},{id:"eraser",label:"tool.eraser",icon:"tool-eraser",kbd:"e",onSelect(e){n.setCurrentTool("eraser"),r("select-tool",{source:e,id:"eraser"})}},{id:"draw",label:"tool.draw",icon:"tool-pencil",kbd:"d,b,x",onSelect(e){n.setCurrentTool("draw"),r("select-tool",{source:e,id:"draw"})}},...[...m.Zuj.values].map(e=>({id:e,label:`tool.${e}`,meta:{geo:e},kbd:"rectangle"===e?"r":"ellipse"===e?"o":void 0,icon:"geo-"+e,onSelect(t){n.batch(()=>{n.updateInstanceState({stylesForNextShape:{...n.getInstanceState().stylesForNextShape,[m.Zuj.id]:e}},{ephemeral:!0}),n.setCurrentTool("geo"),r("select-tool",{source:t,id:`geo-${e}`})})}})),{id:"arrow",label:"tool.arrow",icon:"tool-arrow",kbd:"a",onSelect(e){n.setCurrentTool("arrow"),r("select-tool",{source:e,id:"arrow"})}},{id:"line",label:"tool.line",icon:"tool-line",kbd:"l",onSelect(e){n.setCurrentTool("line"),r("select-tool",{source:e,id:"line"})}},{id:"frame",label:"tool.frame",icon:"tool-frame",kbd:"f",onSelect(e){n.setCurrentTool("frame"),r("select-tool",{source:e,id:"frame"})}},{id:"text",label:"tool.text",icon:"tool-text",kbd:"t",onSelect(e){n.setCurrentTool("text"),r("select-tool",{source:e,id:"text"})}},{id:"asset",label:"tool.asset",icon:"tool-media",kbd:"$u",onSelect(e){o(),r("select-tool",{source:e,id:"media"})}},{id:"note",label:"tool.note",icon:"tool-note",kbd:"n",onSelect(e){n.setCurrentTool("note"),r("select-tool",{source:e,id:"note"})}},{id:"laser",label:"tool.laser",readonlyOk:!0,icon:"tool-laser",kbd:"k",onSelect(e){n.setCurrentTool("laser"),r("select-tool",{source:e,id:"laser"})}},{id:"embed",label:"tool.embed",icon:"tool-embed",onSelect(e){i({component:av}),r("select-tool",{source:e,id:"embed"})}}];t.push({id:"highlight",label:"tool.highlight",icon:"tool-highlight",kbd:"!d",onSelect(e){n.setCurrentTool("highlight"),r("select-tool",{source:e,id:"highlight"})}});let s=Object.fromEntries(t.map(e=>[e.id,e]));return e?e(n,s,{insertMedia:o}):s},[e,n,r,o,i]);return(0,_.jsx)(us.Provider,{value:s,children:t})}function ul(){let e=E.useContext(us);if(!e)throw Error("useTools must be used within a ToolProvider");return e}function uc(){let e=lo(),t=ul();return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(dp,{label:"shortcuts-dialog.tools",id:"tools",children:[(0,_.jsx)(c4,{...e["toggle-tool-lock"]}),(0,_.jsx)(c4,{...t.select}),(0,_.jsx)(c4,{...t.draw}),(0,_.jsx)(c4,{...t.eraser}),(0,_.jsx)(c4,{...t.hand}),(0,_.jsx)(c4,{...t.rectangle}),(0,_.jsx)(c4,{...t.ellipse}),(0,_.jsx)(c4,{...t.arrow}),(0,_.jsx)(c4,{...t.line}),(0,_.jsx)(c4,{...t.text}),(0,_.jsx)(c4,{...t.frame}
202),(0,_.jsx)(c4,{...t.note}),(0,_.jsx)(c4,{...t.laser})]}),(0,_.jsxs)(dp,{label:"shortcuts-dialog.file",id:"file",children:[(0,_.jsx)(c4,{...e["insert-media"]}),(0,_.jsx)(c4,{...e.print})]}),(0,_.jsxs)(dp,{label:"shortcuts-dialog.preferences",id:"preferences",children:[(0,_.jsx)(c4,{...e["toggle-dark-mode"]}),(0,_.jsx)(c4,{...e["toggle-focus-mode"]}),(0,_.jsx)(c4,{...e["toggle-grid"]})]}),(0,_.jsxs)(dp,{label:"shortcuts-dialog.edit",id:"edit",children:[(0,_.jsx)(c4,{...e.undo}),(0,_.jsx)(c4,{...e.redo}),(0,_.jsx)(c4,{...e.cut}),(0,_.jsx)(c4,{...e.copy}),(0,_.jsx)(c4,{...e.paste}),(0,_.jsx)(c4,{...e["select-all"]}),(0,_.jsx)(c4,{...e.delete}),(0,_.jsx)(c4,{...e.duplicate})]}),(0,_.jsxs)(dp,{label:"shortcuts-dialog.view",id:"view",children:[(0,_.jsx)(c4,{...e["zoom-in"]}),(0,_.jsx)(c4,{...e["zoom-out"]}),(0,_.jsx)(c4,{...e["zoom-to-100"]}),(0,_.jsx)(c4,{...e["zoom-to-fit"]}),(0,_.jsx)(c4,{...e["zoom-to-selection"]})]}),(0,_.jsxs)(dp,{label:"shortcuts-dialog.transform",id:"transform",children:[(0,_.jsx)(c4,{...e["bring-to-front"]}),(0,_.jsx)(c4,{...e["bring-forward"]}),(0,_.jsx)(c4,{...e["send-backward"]}),(0,_.jsx)(c4,{...e["send-to-back"]}),(0,_.jsx)(c4,{...e.group}),(0,_.jsx)(c4,{...e.ungroup}),(0,_.jsx)(c4,{...e["flip-horizontal"]}),(0,_.jsx)(c4,{...e["flip-vertical"]}),(0,_.jsx)(c4,{...e["align-top"]}),(0,_.jsx)(c4,{...e["align-center-vertical"]}),(0,_.jsx)(c4,{...e["align-bottom"]}),(0,_.jsx)(c4,{...e["align-left"]}),(0,_.jsx)(c4,{...e["align-center-horizontal"]}),(0,_.jsx)(c4,{...e["align-right"]})]})]})}let ud=(0,E.memo)(function({children:e}){let t=iC(),n=iy(),r=e??(0,_.jsx)(uc,{});return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(ah,{className:"tlui-shortcuts-dialog__header",children:[(0,_.jsx)(ap,{children:t("shortcuts-dialog.title")}),(0,_.jsx)(af,{})]}),(0,_.jsx)(ag,{className:T("tlui-shortcuts-dialog__body",{"tlui-shortcuts-dialog__body__mobile":n<=ip.MOBILE_XS,"tlui-shortcuts-dialog__body__tablet":n<=ip.TABLET}),children:(0,_.jsx)(sX,{type:"keyboard-shortcuts",sourceId:"kbd",children:r})}),(0,_.jsx)("div",{className:"tlui-dialog__scrim"})]})});function uu(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(uh,{}),(0,_.jsx)(up,{}),(0,_.jsx)(ub,{}),(0,_.jsx)(ux,{}),(0,_.jsx)(uw,{})]})}function uh(){let e=(0,m.jE2)(),t=(0,m.HgN)("isSelectToolActive",()=>"select"===e.getCurrentToolId(),[e]);return(0,_.jsxs)(df,{id:"edit",label:"menu.edit",disabled:!t,children:[(0,_.jsx)(uy,{}),(0,_.jsx)(dI,{}),(0,_.jsx)(dD,{})]})}function up(){let e=(0,m.jE2)(),t=(0,m.HgN)("isSelectToolActive",()=>"select"===e.getCurrentToolId(),[e]);return(0,_.jsxs)(df,{id:"shape",label:"menu.shape",disabled:!t,children:[(0,_.jsx)(d$,{}),(0,_.jsx)(um,{}),(0,_.jsx)(uf,{}),(0,_.jsx)(dF,{}),(0,_.jsx)(ug,{})]})}function uf(){return(0,_.jsxs)(dp,{id:"misc",children:[(0,_.jsx)(dm,{}),(0,_.jsx)(dy,{})]})}function ug(){return(0,_.jsxs)(dp,{id:"lock",children:[(0,_.jsx)(dk,{}),(0,_.jsx)(d_,{})]})}function um(){return(0,_.jsxs)(dp,{id:"multi-shape",children:[(0,_.jsx)(dx,{}),(0,_.jsx)(dw,{}),(0,_.jsx)(dv,{}),(0,_.jsx)(dS,{})]})}function uy(){let e=lo(),t=j(),n=k();return(0,_.jsxs)(dp,{id:"undo-redo",children:[(0,_.jsx)(c4,{...e.undo,disabled:!t}),(0,_.jsx)(c4,{...e.redo,disabled:!n})]})}function ub(){let e=lo();return(0,_.jsx)(df,{id:"view",label:"menu.view",children:(0,_.jsxs)(dp,{id:"view-actions",children:[(0,_.jsx)(c4,{...e["zoom-in"]}),(0,_.jsx)(c4,{...e["zoom-out"]}),(0,_.jsx)(dE,{}),(0,_.jsx)(dC,{}),(0,_.jsx)(dP,{})]})})}function ux(){let e=lo();return(0,_.jsxs)(dp,{id:"extras",children:[(0,_.jsx)(c4,{...e["insert-embed"]}),(0,_.jsx)(c4,{...e["insert-media"]})]})}function uw(){return(0,_.jsx)(dp,{id:"preferences",children:(0,_.jsxs)(df,{id:"preferences",label:"menu.preferences",children:[(0,_.jsxs)(dp,{id:"preferences-actions",children:[(0,_.jsx)(dU,{}),(0,_.jsx)(dH,{}),(0,_.jsx)(dZ,{}),(0,_.jsx)(dV,{}),(0,_.jsx)(dK,{}),(0,_.jsx)(dW,{}),(0,_.jsx)(dY,{}),(0,_.jsx)(dG,{}),(0,_.jsx)(dX,{})]}),(0,_.jsx)(dp,{id:"language",children:(0,_.jsx)(d6,{})})]})})}let uv=(0,E.memo)(function({children:e}){let t=(0,m.uK4)(),[n,r]=sZ("main menu"),i=iC(),o=e??(0,_.jsx)(uu,{});return(0,_.jsxs)(cY,{dir:"ltr",open:n,onOpenChange:r,modal:!1,children:[(0,_.jsx)(cF,{asChild:!0,dir:"ltr",children:(0,_.jsx)(iP,{type:"icon","data-testid":"main-menu.button",title:i("menu.title"),children:(0,_.jsx)(iT,{icon:"menu",small:!0})})}),(0,_.jsx)(cG,{container:t,children:(0,_.jsx)(cU,{className:"tlui-menu",side:"bottom",align:"start",collisionPadding:4,alignOffset:0,sideOffset:6,children:(0,_.jsx)(sX,{type:"menu",sourceId:"main-menu",children:o})})})]})}),uS=(0,E.memo)(function(){let e=iy(),{MainMenu:t,QuickActions:n,ActionsMenu:r,PageMenu:i}=h5();return t||i||!(e<6)?(0,_.jsx)("div",{className:"tlui-menu-zone",children:(0,_.jsxs)("div",{className:"tlui-buttons__horizontal",children:[t&&(0,_.jsx)(t,{}),i&&(0,_.jsx)(i,{}),e<6?null:(0,_.jsxs)(_.Fragment,{children:[n&&(0,_.jsx)(n,{}),r&&(0,_.jsx)(r,{})]})]})}):null});class uk{constructor(e){this.editor=e}dpr=1;colors={shapeFill:"rgba(144, 144, 144, .1)",selectFill:"#2f80ed",viewportFill:"rgba(144, 144, 144, .1)"};id=(0,m.ELf)();cvs=null;pageBounds=[];collaborators=[];canvasScreenBounds=new m.xuv;canvasPageBounds=new m.xuv;
202contentPageBounds=new m.xuv;contentScreenBounds=new m.xuv;originPagePoint=new m.B08;originPageCenter=new m.B08;isInViewport=!1;debug=!1;setDpr(e){this.dpr=+e.toFixed(2)}updateContentScreenBounds=()=>{let{contentScreenBounds:e,contentPageBounds:t,canvasScreenBounds:n}=this,{x:r,y:i,w:o,h:s}=e;if(t.w>t.h){let e=n.w/(t.w/t.h);e>n.h?(r=(n.w-n.w*(n.h/e))/2,i=0,o=n.w*(n.h/e),s=n.h):(r=0,i=(n.h-e)/2,o=n.w,s=e)}else if(t.w<t.h){let e=n.h/(t.h/t.w);r=(n.w-e)/2,i=0,o=e,s=n.h}else r=n.h/2,i=0,o=n.h,s=n.h;e.set(r,i,o,s)};updateCanvasPageBounds=()=>{let{canvasPageBounds:e,canvasScreenBounds:t,contentPageBounds:n,contentScreenBounds:r}=this;e.set(0,0,n.width/(r.width/t.width),n.height/(r.height/t.height)),e.center=n.center};getScreenPoint=(e,t)=>{let{canvasScreenBounds:n}=this,r=(e-n.minX)*this.dpr,i=(t-n.minY)*this.dpr;return{x:r,y:i}};getPagePoint=(e,t)=>{let{contentPageBounds:n,contentScreenBounds:r,canvasPageBounds:i}=this,{x:o,y:s}=this.getScreenPoint(e,t);return new m.B08(i.minX+o*n.width/r.width,i.minY+s*n.height/r.height,1)};minimapScreenPointToPagePoint=(e,t,n=!1,r=!1)=>{let{editor:i}=this,o=i.getViewportPageBounds(),{x:s,y:a}=this.getPagePoint(e,t);if(r){let e=this.editor.getCurrentPageBounds(),t=(e?.minX??0)-o.width/2,n=(e?.maxX??0)+o.width/2,r=(e?.minY??0)-o.height/2,i=(e?.maxY??0)+o.height/2,l=Math.max(0,t+o.width-s),c=Math.max(0,-(n-o.width-s)),d=Math.max(0,r+o.height-a),u=Math.max(0,-(i-o.height-a)),h=Math.max(0,l-c),p=Math.max(0,c-l),f=Math.max(0,d-u),g=Math.max(0,u-d);h&&h>p?s+=h/2:p&&(s-=p/2),f&&f>g?a+=f/2:g&&(a-=g/2),s=(0,m.uZ5)(s,t,n),a=(0,m.uZ5)(a,r,i)}if(n){let{originPagePoint:e}=this,t=Math.abs(s-e.x),n=Math.abs(a-e.y);t>n?a=e.y:s=e.x}return new m.B08(s,a)};updateColors=()=>{let e=getComputedStyle(this.editor.getContainer());this.colors={shapeFill:e.getPropertyValue("--color-text-3").trim(),selectFill:e.getPropertyValue("--color-selected").trim(),viewportFill:e.getPropertyValue("--color-muted-1").trim()}};render=()=>{let e,t;let{cvs:n,pageBounds:r}=this;this.updateCanvasPageBounds();let{editor:i,canvasScreenBounds:o,canvasPageBounds:s,contentPageBounds:a,contentScreenBounds:l}=this,{width:c,height:d}=o,u=i.getSelectedShapeIds(),h=i.getViewportPageBounds();if(!n||!r)return;let p=n.getContext("2d");if(!p)throw Error("Minimap (shapes): Could not get context");p.resetTransform(),p.globalAlpha=1,p.clearRect(0,0,c,d);let f=l.width/a.width,g=l.height/a.height;p.translate((c-l.width)/2,(d-l.height)/2),p.scale(f,g),p.translate(-a.minX,-a.minY);let y=8/f,b=8/f,x=1/f,w=1/f,v=y/4,S=b/4,k=new Path2D,j=new Path2D,{shapeFill:_,selectFill:E,viewportFill:C}=this.colors;for(let t=0,n=r.length;t<n;t++)e=r[t],uk.roundedRect(u.includes(e.id)?j:k,e.minX,e.minY,e.width,e.height,(0,m.uZ5)(y,x,e.width/v),(0,m.uZ5)(b,w,e.height/S));if(p.fillStyle=_,p.fill(k),p.fillStyle=E,p.fill(j),this.debug){let e=m.xuv.Common(r),{minX:t,minY:n,width:i,height:o}=e;p.strokeStyle="green",p.lineWidth=2/f,p.strokeRect(t+1/f,n+1/g,i-2/f,o-2/g)}{let{brush:e}=i.getInstanceState();if(e){let{x:t,y:n,w:r,h:i}=e;p.beginPath(),uk.sharpRect(p,t,n,r,i),p.closePath(),p.fillStyle=C,p.fill()}}{let{minX:e,minY:t,width:n,height:r}=h;p.beginPath();let i=12/f,o=12/f;uk.roundedRect(p,e,t,n,r,Math.min(n/4,i),Math.min(r/4,o)),p.closePath(),p.fillStyle=C,p.fill(),this.debug&&(p.strokeStyle="orange",p.strokeRect(e+1/f,t+1/g,n-2/f,r-2/g))}let P=2.5/f,I=2.5/g,T=i.getCurrentPageId();for(let e=0;e<this.collaborators.length;e++)(t=this.collaborators[e]).currentPageId===T&&(p.beginPath(),p.ellipse((0,m.uZ5)(t.cursor.x,s.minX+P,s.maxX-P),(0,m.uZ5)(t.cursor.y,s.minY+I,s.maxY-I),5/f,5/g,0,0,m.yoY),p.fillStyle=t.color,p.fill());if(this.debug){p.lineWidth=2/f;{let{minX:e,minY:t,width:n,height:r}=a;p.strokeStyle="red",p.strokeRect(e+1/f,t+1/g,n-2/f,r-2/g)}{let{minX:e,minY:t,width:n,height:r}=s;p.strokeStyle="blue",p.strokeRect(e+1/f,t+1/g,n-2/f,r-2/g)}}};static roundedRect(e,t,n,r,i,o,s){if(o<1&&s<1){e.rect(t,n,r,i);return}e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.quadraticCurveTo(t+r,n,t+r,n+s),e.lineTo(t+r,n+i-s),e.quadraticCurveTo(t+r,n+i,t+r-o,n+i),e.lineTo(t+o,n+i),e.quadraticCurveTo(t,n+i,t,n+i-s),e.lineTo(t,n+s),e.quadraticCurveTo(t,n,t+o,n)}static sharpRect(e,t,n,r,i,o,s){e.rect(t,n,r,i)}}function uj(){let e=(0,m.jE2)(),t=E.useRef(null),n=E.useRef(!1),r=(0,m.Gv6)(),i=(0,m.vc
202d)("dpr",()=>e.getInstanceState().devicePixelRatio,[e]),o=E.useMemo(()=>e.store.query.records("instance_presence"),[e]),s=E.useMemo(()=>new uk(e),[e]);E.useEffect(()=>{let e=requestAnimationFrame(()=>{s.updateColors(),s.render()});return()=>{cancelAnimationFrame(e)}},[e,s,r]);let a=E.useCallback(t=>{if(!e.getCurrentPageShapeIds().size)return;let n=s.minimapScreenPointToPagePoint(t.clientX,t.clientY,!1,!1),r=s.minimapScreenPointToPagePoint(t.clientX,t.clientY,!1,!0);s.originPagePoint.setTo(r),s.originPageCenter.setTo(e.getViewportPageBounds().center),e.centerOnPoint(n,{duration:m.KDN})},[e,s]),l=E.useCallback(t=>{let r=t.currentTarget;if((0,m.I5b)(r,t),!e.getCurrentPageShapeIds().size)return;n.current=!0,s.isInViewport=!1;let i=s.minimapScreenPointToPagePoint(t.clientX,t.clientY,!1,!1),o=s.minimapScreenPointToPagePoint(t.clientX,t.clientY,!1,!0),a=e.getViewportPageBounds();if(s.isInViewport=a.containsPoint(o),s.isInViewport)s.originPagePoint.setTo(o),s.originPageCenter.setTo(a.center);else{let t=m.B08.Sub(a.center,a.point),n=m.B08.Add(i,t);s.originPagePoint.setTo(n),s.originPageCenter.setTo(i),e.centerOnPoint(i,{duration:m.KDN})}document.body.addEventListener("pointerup",function e(t){r&&(0,m.XEs)(r,t),n.current=!1,document.body.removeEventListener("pointerup",e)})},[e,s]),c=E.useCallback(t=>{let r=s.minimapScreenPointToPagePoint(t.clientX,t.clientY,t.shiftKey,!0);if(n.current){if(s.isInViewport){let t=s.originPagePoint.clone().sub(s.originPageCenter);e.centerOnPoint(m.B08.Sub(r,t));return}e.centerOnPoint(r)}let i=s.getPagePoint(t.clientX,t.clientY),o=e.pageToScreen(i),a={type:"pointer",target:"canvas",name:"pointer_move",...(0,m.YyG)(t),point:o,isPen:e.getInstanceState().isPenMode};e.dispatch(a)},[e,s]),d=E.useCallback(t=>{let n=(0,m.fNR)(t);e.dispatch({type:"wheel",name:"wheel",delta:n,point:new m.B08(t.clientX,t.clientY),shiftKey:t.shiftKey,altKey:t.altKey,ctrlKey:t.metaKey||t.ctrlKey})},[e]);return(0,m.BKU)("update when dpr changes",()=>{let e=i.get();s.setDpr(e);let n=t.current,r=n.getBoundingClientRect(),o=r.width*e,a=r.height*e;n.width=o,n.height=a,s.canvasScreenBounds.set(r.x,r.y,o,a),s.cvs=t.current},[i,s]),(0,m.BKU)("minimap render when pagebounds or collaborators changes",()=>{let t=e.getCurrentPageShapeIds(),n=e.getCurrentPageBounds(),r=e.getViewportPageBounds();i.get(),s.contentPageBounds=n?m.xuv.Expand(n,r):r,s.updateContentScreenBounds();let a=[];t.forEach(t=>{let n=e.getShapePageBounds(t);if(!n)return;let r=e.getShapeMask(t);if(r){let e=(0,m.tYe)(r,n.corners);if(!e)return;n=m.xuv.FromPoints(e)}n&&(n.id=t,a.push(n))}),s.pageBounds=a,s.collaborators=o.get(),s.render()},[e,s]),(0,_.jsx)("div",{className:"tlui-minimap",children:(0,_.jsx)("canvas",{role:"img","aria-label":"minimap",ref:t,className:"tlui-minimap__canvas",onDoubleClick:a,onPointerMove:c,onPointerDown:l,onWheel:d})})}let u_=(0,E.memo)(function(){let e=lo(),t=iC(),n=iy(),[r,i]=function(e,t){let[n,r]=E.useState(t);E.useLayoutEffect(()=>{let t=localStorage.getItem(e);if(t)try{r(JSON.parse(t))}catch(t){console.error(`Could not restore value ${e} from local storage.`)}},[e]);let i=E.useCallback(t=>{r(n=>{let r="function"==typeof t?t(n):t;return localStorage.setItem(e,JSON.stringify(r)),r})},[e]);return[n,i]}("minimap",!0),o=(0,E.useCallback)(()=>{i(e=>!e)},[i]),{ZoomMenu:s,Minimap:a}=h5();return n<ip.MOBILE?null:(0,_.jsxs)("div",{className:"tlui-navigation-panel",children:[(0,_.jsx)("div",{className:"tlui-buttons__horizontal",children:s&&n<ip.TABLET?(0,_.jsx)(s,{}):r?(0,_.jsxs)(_.Fragment,{children:[s&&(0,_.jsx)(s,{}),a&&(0,_.jsx)(iP,{type:"icon","data-testid":"minimap.toggle-button",title:t("navigation-zone.toggle-minimap"),className:"tlui-navigation-panel__toggle",onClick:o,children:(0,_.jsx)(iT,{icon:r?"chevrons-ne":"chevrons-sw"})})]}):(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(iP,{type:"icon","data-testid":"minimap.zoom-out",title:`${t(ls(e["zoom-out"].label))} ${c$(e["zoom-out"].kbd)}`,onClick:()=>e["zoom-out"].onSelect("navigation-zone"),children:(0,_.jsx)(iT,{icon:"minus"})}),s&&(0,_.jsx)(s,{}),(0,_.jsx)(iP,{type:"icon","data-testid":"minimap.zoom-in",title:`${t(ls(e["zoom-in"].label))} ${c$(e["zoom-in"].kbd)}`,onClick:()=>e["zoom-in"].onSelect("navigation-zone"),children:(0,_.jsx)(iT,{icon:"plus"})}),a&&(0,_.jsx)(iP,{type:"icon","data-testid":"minimap.toggle-button",title:t("navigation-zone.toggle-minima
202p"),className:"tlui-navigation-panel__toggle",onClick:o,children:(0,_.jsx)(iT,{icon:r?"chevrons-ne":"chevrons-sw"})})]})}),a&&n>=ip.TABLET&&!r&&(0,_.jsx)(a,{})]})}),uE=function({name:e,id:t,isCurrentPage:n}){let r=(0,m.jE2)(),i=(0,E.useRef)(null),o=(0,E.useCallback)(e=>{r.renamePage(t,e||"New Page",{ephemeral:!0})},[r,t]),s=(0,E.useCallback)(e=>{r.mark("rename page"),r.renamePage(t,e||"New Page",{ephemeral:!1})},[r,t]);return(0,_.jsx)(ay,{className:"tlui-page-menu__item__input",ref:e=>i.current=e,defaultValue:e,onValueChange:o,onComplete:s,onCancel:s,shouldManuallyMaintainScrollPositionWhenFocused:!0,autofocus:n,autoselect:!0})},uC=(e,t,n,r)=>{let i;let o=e.getPages(),s=n>r?o[r-1]:o[r],a=n>r?o[r]:o[r+1];(i=s&&!a?(0,m._LC)(s.index):!s&&a?(0,m.Xgj)(o[0].index):(0,m.eIg)(s.index,a.index))!==o[n].index&&(e.mark("moving page"),e.updatePage({id:t,index:i}))},uP=(0,m.jas)(function({index:e,listSize:t,item:n,onRename:r}){let i=(0,m.jE2)(),o=iC(),s=i.getPages(),a=(0,E.useCallback)(()=>{i.mark("creating page");let e=m.ezX.createId();i.duplicatePage(n.id,e)},[i,n]),l=(0,E.useCallback)(()=>{uC(i,n.id,e,e-1)},[i,n,e]),c=(0,E.useCallback)(()=>{uC(i,n.id,e,e+1)},[i,n,e]),d=(0,E.useCallback)(()=>{i.mark("deleting page"),i.deletePage(n.id)},[i,n]);return(0,_.jsxs)(cq,{id:`page item submenu ${e}`,children:[(0,_.jsx)(cJ,{children:(0,_.jsx)(iP,{type:"icon",title:o("page-menu.submenu.title"),children:(0,_.jsx)(iT,{icon:"dots-vertical"})})}),(0,_.jsx)(cQ,{alignOffset:0,side:"right",sideOffset:-4,children:(0,_.jsxs)(sX,{type:"menu",sourceId:"page-menu",children:[(0,_.jsxs)(dp,{id:"modify",children:[r&&(0,_.jsx)(c4,{id:"rename",label:"page-menu.submenu.rename",onSelect:r}),(0,_.jsx)(c4,{id:"duplicate",label:"page-menu.submenu.duplicate-page",onSelect:a,disabled:s.length>=m.Etb}),e>0&&(0,_.jsx)(c4,{id:"move-up",onSelect:l,label:"page-menu.submenu.move-up"}),e<t-1&&(0,_.jsx)(c4,{id:"move-down",label:"page-menu.submenu.move-down",onSelect:c}
202)]}),t>1&&(0,_.jsx)(dp,{id:"delete",children:(0,_.jsx)(c4,{id:"delete",onSelect:d,label:"page-menu.submenu.delete"})})]})})]})}),uI=(0,E.memo)(function(){let e=(0,m.jE2)(),t=iC(),n=iy(),r=(0,E.useCallback)(()=>f(!1),[]),[i,o]=sZ("page-menu",r),s=(0,E.useRef)(null),a=(0,m.HgN)("pages",()=>e.getPages(),[e]),l=(0,m.HgN)("currentPage",()=>e.getCurrentPage(),[e]),c=(0,m.HgN)("currentPageId",()=>e.getCurrentPageId(),[e]),d=N(),u=(0,m.HgN)("maxPageCountReached",()=>e.getPages().length>=m.Etb,[e]),h=(0,m.HgN)("isCoarsePointer",()=>e.getInstanceState().isCoarsePointer,[e]),[p,f]=(0,E.useState)(!1),g=(0,E.useCallback)(()=>{d||f(e=>!e)},[d]),y=(0,E.useRef)({isPointing:!1,status:"idle",pointing:null,startY:0,startIndex:0,dragIndex:0}),[b,x]=(0,E.useState)(Object.fromEntries(a.map((e,t)=>[e.id,{y:36*t,offsetY:0,isSelected:!1}])));(0,E.useLayoutEffect)(()=>{x(Object.fromEntries(a.map((e,t)=>[e.id,{y:36*t,offsetY:0,isSelected:!1}])))},[36,a]),(0,E.useEffect)(()=>{i&&requestAnimationFrame(()=>{let e=document.querySelector(`[data-testid="page-menu-item-${c}"]`);if(e){let t=s.current;if(!t)return;let n=e.offsetTop,r=t.scrollTop;n<r&&t.scrollTo({top:n});let i=n+36,o=t.scrollTop+t.offsetHeight;i>o&&t.scrollTo({top:i-t.offsetHeight})}})},[36,c,i]);let w=(0,E.useCallback)(e=>{let{clientY:t,currentTarget:n}=e,{dataset:{id:r,index:i}}=n;if(!r||!i)return;let o=y.current;(0,m.I5b)(e.currentTarget,e),o.status="pointing",o.pointing={id:r,index:+i};let s=b[r],l=s.y;o.startY=t,o.startIndex=Math.max(0,Math.min(Math.round(l/36),a.length-1))},[36,a.length,b]),v=(0,E.useCallback)(e=>{let t=y.current;if("pointing"===t.status){let{clientY:n}=e,r=n-t.startY;Math.abs(r)>5&&(t.status="dragging")}if("dragging"===t.status){let{clientY:n}=e,r=n-t.startY,i=b[t.pointing.id],{startIndex:o,pointing:s}=t,l=i.y+r,c=Math.max(0,Math.min(Math.round(l/36),a.length-1)),d={...b};if(d[s.id]={y:i.y,offsetY:r,isSelected:!0},c!==t.dragIndex){t.dragIndex=c;for(let e=0;e<a.length;e++){let n=a[e];if(n.id===t.pointing.id)continue;let{y:r}=d[n.id];c===o?r=36*e:c<o?r=c<=e&&e<o?(e+1)*36:36*e:c>o&&(r=c>=e&&e>o?(e-1)*36:36*e),r!==d[n.id].y&&(d[n.id]={y:r,offsetY:0,isSelected:!0})}}x(d)}},[36,a,b]),S=(0,E.useCallback)(t=>{let n=y.current;if("dragging"===n.status){let{id:t,index:r}=n.pointing;uC(e,t,r,n.dragIndex)}(0,m.XEs)(t.currentTarget,t),n.status="idle"},[e]),k=(0,E.useCallback)(e=>{let t=y.current;"Escape"===e.key&&("dragging"===t.status&&x(Object.fromEntries(a.map((e,t)=>[e.id,{y:36*t,offsetY:0,isSelected:!1}]))),t.status="idle")},[36,a]),j=(0,E.useCallback)(()=>{d||e.batch(()=>{e.mark("creating page");let n=m.ezX.createId();e.createPage({name:t("page-menu.new-page-initial-name"),id:n}),e.setCurrentPage(n),f(!0)})},[e,t,d]);return(0,_.jsxs)(sV,{id:"pages",onOpenChange:o,open:i,children:[(0,_.jsx)(sK,{"data-testid":"main.page-menu",children:(0,_.jsxs)(iP,{type:"menu",title:l.name,"data-testid":"page-menu.button",className:"tlui-page-menu__trigger",children:[(0,_.jsx)("div",{className:"tlui-page-menu__name",children:l.name}),(0,_.jsx)(iT,{icon:"chevron-down",small:!0})]})}),(0,_.jsx)(sW,{side:"bottom",align:"start",sideOffset:6,children:(0,_.jsxs)("div",{className:"tlui-page-menu__wrapper",children:[(0,_.jsxs)("div",{className:"tlui-page-menu__header",children:[(0,_.jsx)("div",{className:"tlui-page-menu__header__title",children:t("page-menu.title")}),!d&&(0,_.jsxs)("div",{className:"tlui-buttons__horizontal",children:[(0,_.jsx)(iP,{type:"icon","data-testid":"page-menu.edit",title:t(p?"page-menu.edit-done":"page-menu.edit-start"),onClick:g,children:(0,_.jsx)(iT,{icon:p?"check":"edit"})}),(0,_.jsx)(iP,{type:"icon","data-testid":"page-menu.create",title:t(u?"page-menu.max-page-count-reached":"page-menu.create-new-page"),disabled:u,onClick:j,children:(0,_.jsx)(iT,{icon:"plus"})})]})]}),(0,_.jsx)("div",{"data-testid":"page-menu.list",className:"tlui-page-menu__list tlui-menu__group",style:{height:36*a.length+4},ref:s,children:a.map((r,i)=>{let o=b[r.id]??{position:40*i,offsetY:0};return p?(0,_.jsxs)("div",{"data-testid":"page-menu.item",className:"tlui-page_menu__item__sortable",style:{zIndex:r.id===l.id?888:i,transform:`translate(0px, ${o.y+o.offsetY}px)`}
202,children:[(0,_.jsx)(iP,{type:"icon",tabIndex:-1,className:"tlui-page_menu__item__sortable__handle",onPointerDown:w,onPointerUp:S,onPointerMove:v,onKeyDown:k,"data-id":r.id,"data-index":i,children:(0,_.jsx)(iT,{icon:"drag-handle-dots"})}),n<ip.TABLET_SM&&h?(0,_.jsxs)(iP,{type:"normal",className:"tlui-page-menu__item__button",onClick:()=>{let t=window.prompt("Rename page",r.name);t&&t!==r.name&&e.renamePage(r.id,t)},onDoubleClick:g,children:[(0,_.jsx)(dQ,{checked:r.id===l.id}),(0,_.jsx)(sq,{children:r.name})]}):(0,_.jsx)("div",{className:"tlui-page_menu__item__sortable__title",style:{height:36},children:(0,_.jsx)(uE,{id:r.id,name:r.name,isCurrentPage:r.id===l.id})}),!d&&(0,_.jsx)("div",{className:"tlui-page_menu__item__submenu","data-isediting":p,children:(0,_.jsx)(uP,{index:i,item:r,listSize:a.length})})]},r.id+"_editing"):(0,_.jsxs)("div",{"data-testid":"page-menu.item",className:"tlui-page-menu__item",children:[(0,_.jsxs)(iP,{type:"normal",className:"tlui-page-menu__item__button",onClick:()=>e.setCurrentPage(r.id),onDoubleClick:g,title:t("page-menu.go-to-page"),children:[(0,_.jsx)(dQ,{checked:r.id===l.id}),(0,_.jsx)(sq,{children:r.name})]}),!d&&(0,_.jsx)("div",{className:"tlui-page_menu__item__submenu",children:(0,_.jsx)(uP,{index:i,item:r,listSize:a.length,onRename:()=>{if(e.environment.isIos){let t=window.prompt("Rename page",r.name);t&&t!==r.name&&e.renamePage(r.id,t)}else e.batch(()=>{f(!0),e.setCurrentPage(r.id)})}})})]},r.id)})})]})})]})});function uT(){let e=lo(),t=(0,m.jE2)(),n=j(),r=k(),i=v(1),o=N(),s=(0,m.HgN)("should display quick actions",()=>t.isInAny("select","hand","zoom"),[t]);if(!o||s)return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c4,{...e.undo,disabled:!n}),(0,_.jsx)(c4,{...e.redo,disabled:!r}),(0,_.jsx)(c4,{...e.delete,disabled:!i}),(0,_.jsx)(c4,{...e.duplicate,disabled:!i})]})}let uM=(0,E.memo)(function({children:e}){let t=e??(0,_.jsx)(uT,{});return(0,_.jsx)(sX,{type:"small-icons",sourceId:"quick-actions",children:t})}),uA=Object.freeze([m.R_W,m.ciG,m.pp9,m.ST$]);function u$(e=uA){let t=(0,m.jE2)();return(0,m.HgN)("getRelevantStyles",()=>{let n=new m.otj(t.getSharedStyles()),r=!!t.root.getCurrent()?.shapeType,i=t.isIn("select")&&t.getSelectedShapeIds().length>0;
202if(0===n.size&&t.isIn("select")&&0===t.getSelectedShapeIds().length)for(let r of e)n.applyValue(r,t.getStyleForNextShape(r));return r||i||n.size>0?n:null},[t])}let uD={color:[{value:"black",icon:"color"},{value:"grey",icon:"color"},{value:"light-violet",icon:"color"},{value:"violet",icon:"color"},{value:"blue",icon:"color"},{value:"light-blue",icon:"color"},{value:"yellow",icon:"color"},{value:"orange",icon:"color"},{value:"green",icon:"color"},{value:"light-green",icon:"color"},{value:"light-red",icon:"color"},{value:"red",icon:"color"}],fill:[{value:"none",icon:"fill-none"},{value:"semi",icon:"fill-semi"},{value:"solid",icon:"fill-solid"},{value:"pattern",icon:"fill-pattern"}],dash:[{value:"draw",icon:"dash-draw"},{value:"dashed",icon:"dash-dashed"},{value:"dotted",icon:"dash-dotted"},{value:"solid",icon:"dash-solid"}],size:[{value:"s",icon:"size-small"},{value:"m",icon:"size-medium"},{value:"l",icon:"size-large"},{value:"xl",icon:"size-extra-large"}],font:[{value:"draw",icon:"font-draw"},{value:"sans",icon:"font-sans"},{value:"serif",icon:"font-serif"},{value:"mono",icon:"font-mono"}],horizontalAlign:[{value:"start",icon:"text-align-left"},{value:"middle",icon:"text-align-center"},{value:"end",icon:"text-align-right"}],verticalAlign:[{value:"start",icon:"vertical-align-start"},{value:"middle",icon:"vertical-align-center"},{value:"end",icon:"vertical-align-end"}],geo:[{value:"rectangle",icon:"geo-rectangle"},{value:"ellipse",icon:"geo-ellipse"},{value:"cloud",icon:"geo-cloud"},{value:"triangle",icon:"geo-triangle"},{value:"diamond",icon:"geo-diamond"},{value:"pentagon",icon:"geo-pentagon"},{value:"hexagon",icon:"geo-hexagon"},{value:"octagon",icon:"geo-octagon"},{value:"star",icon:"geo-star"},{value:"rhombus",icon:"geo-rhombus"},{value:"rhombus-2",icon:"geo-rhombus-2"},{value:"oval",icon:"geo-oval"},{value:"trapezoid",icon:"geo-trapezoid"},{value:"arrow-right",icon:"geo-arrow-right"},{value:"arrow-left",icon:"geo-arrow-left"},{value:"arrow-up",icon:"geo-arrow-up"},{value:"arrow-down",icon:"geo-arrow-down"},{value:"x-box",icon:"geo-x-box"},{value:"check-box",icon:"geo-check-box"}],arrowheadStart:[{value:"none",icon:"arrowhead-none"},{value:"arrow",icon:"arrowhead-arrow"},{value:"triangle",icon:"arrowhead-triangle"},{value:"square",icon:"arrowhead-square"},{value:"dot",icon:"arrowhead-dot"},{value:"diamond",icon:"arrowhead-diamond"},{value:"inverted",icon:"arrowhead-triangle-inverted"},{value:"bar",icon:"arrowhead-bar"}],arrowheadEnd:[{value:"none",icon:"arrowhead-none"},{value:"arrow",icon:"arrowhead-arrow"},{value:"triangle",icon:"arrowhead-triangle"},{value:"square",icon:"arrowhead-square"},{value:"dot",icon:"arrowhead-dot"},{value:"diamond",icon:"arrowhead-diamond"},{value:"inverted",icon:"arrowhead-triangle-inverted"},{value:"bar",icon:"arrowhead-bar"}],spline:[{value:"line",icon:"spline-line"},{value:"cubic",icon:"spline-cubic"}]},uO=(0,E.memo)(function(e){let{uiType:t,items:n,title:r,style:i,value:o,onValueChange:s}=e,a=(0,m.jE2)(),l=iC(),c=(0,E.useRef)(!1),{handleButtonClick:d,handleButtonPointerDown:u,handleButtonPointerEnter:h,handleButtonPointerUp:p}=(0,E.useMemo)(()=>{let e=()=>{c.current=!1,window.removeEventListener("pointerup",e)};return{handleButtonClick:e=>{let{id:t}=e.currentTarget.dataset;("shared"!==o.type||o.value!==t)&&(a.mark("point picker item"),s(i,t,!1))},handleButtonPointerDown:t=>{let{id:n}=t.currentTarget.dataset;a.mark("point picker item"),s(i,n,!0),c.current=!0,window.addEventListener("pointerup",e)},handleButtonPointerEnter:e=>{if(!c.current)return;let{id:t}=e.currentTarget.dataset;s(i,t,!0)},handleButtonPointerUp:e=>{let{id:t}=e.currentTarget.dataset;("shared"!==o.type||o.value!==t)&&s(i,t,!1)}}},[o,a,s,i]),f=(0,m.HgN)("theme",()=>(0,m.y6M)({isDarkMode:a.user.getIsDarkMode()}),[a]);return(0,_.jsx)("div",{"data-testid":`style.${t}`,className:T("tlui-buttons__grid"),children:n.map(e=>(0,_.jsx)(iP,{type:"icon","data-id":e.value,"data-testid":`style.${t}.${e.value}`,"aria-label":e.value,"data-state":"shared"===o.type&&o.value===e.value?"hinted":void 0,title:r+" — "+l(`${t}-style.${e.value}`),className:T("tlui-button-grid__button"),style:i===m.R_W?{color:f[e.value].solid}:void 0,onPointerEnter:h,onPointerDown:u,onPointerUp:p,onClick:d,children:(0,_.jsx)(iT,{icon:e.icon})},e.value))})});function uB(e,[t,n]){return Math.min(n,Math.max(t,e))}let uL=["PageUp","PageDown"],uR=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],uN={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},uz="Slider",[uF,uU,uH]=rM(uz),[uZ,uV]=rE(uz,[uH]),[uK,uW]=uZ(uz),uY=(0,E.forwardRef)((e,t)=>{let{name:n,min:r=0,max:i=100,step:o=1,orientation:s="horizontal",disabled:a=!1,minStepsBetweenThumbs:l=0,defaultValue:c=[r],value:d,onValueChange:u=()=>{},onValueCommit:h=()=>{},inverted:p=!1,...f}=e,[g,m]=(0,E.useState)(null),y=r_(t,e=>m(e)),b=(0,E.useRef)(new Set),x=(0,E.useRef)(0),w=!g||!!g.closest("form"),v="horizontal"===s?uq:uJ,[S=[],k]=rV({prop:d,defaultProp:c,onChange:e=>{var t;let n=[...b.current];null===(t=n[x.current])||void 0===t||t.focus(),u(e)}}),j=(0,E.useRef)(S);
202function _(e,t,{commit:n}={commit:!1}){let s=(String(o).split(".")[1]||"").length,a=function(e,t){let n=Math.pow(10,t);return Math.round(e*n)/n}(Math.round((e-r)/o)*o+r,s),c=uB(a,[r,i]);k((e=[])=>{let r=function(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}(e,c,t);if(!function(e,t){if(t>0){let n=e.slice(0,-1).map((t,n)=>e[n+1]-t);return Math.min(...n)>=t}return!0}(r,l*o))return e;{x.current=r.indexOf(c);let t=String(r)!==String(e);return t&&n&&h(r),t?r:e}})}return(0,E.createElement)(uK,{scope:e.__scopeSlider,disabled:a,min:r,max:i,valueIndexToChangeRef:x,thumbs:b.current,values:S,orientation:s},(0,E.createElement)(uF.Provider,{scope:e.__scopeSlider},(0,E.createElement)(uF.Slot,{scope:e.__scopeSlider},(0,E.createElement)(v,(0,rv.Z)({"aria-disabled":a,"data-disabled":a?"":void 0},f,{ref:y,onPointerDown:rk(f.onPointerDown,()=>{a||(j.current=S)}),min:r,max:i,inverted:p,onSlideStart:a?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}(S,e);_(e,t)},onSlideMove:a?void 0:function(e){_(e,x.current)},onSlideEnd:a?void 0:function(){let e=j.current[x.current],t=S[x.current];t!==e&&h(S)},onHomeKeyDown:()=>!a&&_(r,0,{commit:!0}),onEndKeyDown:()=>!a&&_(i,S.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!a){let n=uL.includes(e.key),r=n||e.shiftKey&&uR.includes(e.key),i=x.current,s=S[i],a=o*(r?10:1)*t;_(s+a,i,{commit:!0})}}})))),w&&S.map((e,t)=>(0,E.createElement)(u4,{key:t,name:n?n+(S.length>1?"[]":""):void 0,value:e})))}),[uG,uX]=uZ(uz,{startEdge:"left",endEdge:"right",size:"width",direction:1}),uq=(0,E.forwardRef)((e,t)=>{let{min:n,max:r,dir:i,inverted:o,onSlideStart:s,onSlideMove:a,onSlideEnd:l,onStepKeyDown:c,...d}=e,[u,h]=(0,E.useState)(null),p=r_(t,e=>h(e)),f=(0,E.useRef)(),g=ll(i),m="ltr"===g,y=m&&!o||!m&&o;function b(e){let t=f.current||u.getBoundingClientRect(),i=[0,t.width],o=u9(i,y?[n,r]:[r,n]);return f.current=t,o(e-t.left)}return(0,E.createElement)(uG,{scope:e.__scopeSlider,startEdge:y?"left":"right",endEdge:y?"right":"left",direction:y?1:-1,size:"width"},(0,E.createElement)(uQ,(0,rv.Z)({dir:g,"data-orientation":"horizontal"},d,{ref:p,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=b(e.clientX);null==s||s(t)},onSlideMove:e=>{let t=b(e.clientX);null==a||a(t)},onSlideEnd:()=>{f.current=void 0,null==l||l()},onStepKeyDown:e=>{let t=uN[y?"from-left":"from-right"].includes(e.key);null==c||c({event:e,direction:t?-1:1})}})))}),uJ=(0,E.forwardRef)((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:s,onSlideEnd:a,onStepKeyDown:l,...c}=e,d=(0,E.useRef)(null),u=r_(t,d),h=(0,E.useRef)(),p=!i;function f(e){let t=h.current||d.current.getBoundingClientRect(),i=[0,t.height],o=u9(i,p?[r,n]:[n,r]);return h.current=t,o(e-t.top)}return(0,E.createElement)(uG,{scope:e.__scopeSlider,startEdge:p?"bottom":"top",endEdge:p?"top":"bottom",size:"height",direction:p?1:-1},(0,E.createElement)(uQ,(0,rv.Z)({"data-orientation":"vertical"},c,{ref:u,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=f(e.clientY);null==o||o(t)},onSlideMove:e=>{let t=f(e.clientY);null==s||s(t)},onSlideEnd:()=>{h.current=void 0,null==a||a()},onStepKeyDown:e=>{let t=uN[p?"from-bottom":"from-top"].includes(e.key);null==l||l({event:e,direction:t?-1:1})}})))}),uQ=(0,E.forwardRef)((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:s,onEndKeyDown:a,onStepKeyDown:l,...c}=e,d=uW(uz,n);return(0,E.createElement)(rA.span,(0,rv.Z)({},c,{ref:t,onKeyDown:rk(e.onKeyDown,e=>{"Home"===e.key?(s(e),e.preventDefault()):"End"===e.key?(a(e),e.preventDefault()):uL.concat(uR).includes(e.key)&&(l(e),e.preventDefault())}),onPointerDown:rk(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),d.thumbs.has(t)?t.focus():r(e)}),onPointerMove:rk(e.onPointerMove,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:rk(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),o(e))})}))}),u0=(0,E.forwardRef)((e,t)=>{let{__scopeSlider:n,...r}=e,i=uW("SliderTrack",n);return(0,E.createElement)(rA.span,(0,rv.Z)({"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation},r,{ref:t}))}),u1="SliderRange",u2=(0,E.forwardRef)((e,t)=>{let{__scopeSlider:n,...r}=e,i=uW(u1,n),o=uX(u1,n),s=(0,E.useRef)(null),a=r_(t,s),l=i.values.length,c=i.values.map(e=>u6(e,i.min,i.max));return(0,E.createElement)(rA.span,(0,rv.Z)({"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0},r,{ref:a,style:{...e.style,[o.startEdge]:(l>1?Math.min(...c):0)+"%",[o.endEdge]:100-Math.max(...c)+"%"}}))}),u8="SliderThumb",u3=(0,E.forwardRef)((e,t)=>{let n=uU(e.__scopeSlider),[r,i]=(0,E.useState)(null),o=r_(t,e=>i(e)),s=(0,E.useMemo)(()=>r?n().findIndex(e=>e.ref.current===r):-1,[n,r]);return(0,E.createElement)(u5,(0,rv.Z)({},e,{ref:o,index:s}))}),u5=(0,E.forwardRef)((e,t)=>{var n;let{__scopeSlider:r,index:i,...o}=e,s=uW(u8,r),a=uX(u8,r),[l,c]=(0,E.useState)(null),d=r_(t,e=>c(e)),u=oZ(l),h=s.values[i],p=void 0===h?0:u6(h,s.min,s.max),f=(n=s.values.length)>2?`Value ${i+1} of ${n}`:2===n?["Minimum","Maximum"][i]:void 0,g=null==u?void 0:u[a.size],m=g?function(e,t,n){let r=e/2,i=u9([0,50],[0,r]);return(r-i(t)*n)*n}(g,p,a.direction):0;return(0,E.useEffect)(()=>
202{if(l)return s.thumbs.add(l),()=>{s.thumbs.delete(l)}},[l,s.thumbs]),(0,E.createElement)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[a.startEdge]:`calc(${p}% + ${m}px)`}},(0,E.createElement)(uF.ItemSlot,{scope:e.__scopeSlider},(0,E.createElement)(rA.span,(0,rv.Z)({role:"slider","aria-label":e["aria-label"]||f,"aria-valuemin":s.min,"aria-valuenow":h,"aria-valuemax":s.max,"aria-orientation":s.orientation,"data-orientation":s.orientation,"data-disabled":s.disabled?"":void 0,tabIndex:s.disabled?void 0:0},o,{ref:d,style:void 0===h?{display:"none"}:e.style,onFocus:rk(e.onFocus,()=>{s.valueIndexToChangeRef.current=i})}))))}),u4=e=>{let{value:t,...n}=e,r=(0,E.useRef)(null),i=function(e){let t=(0,E.useRef)({value:e,previous:e});return(0,E.useMemo)(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}(t);return(0,E.useEffect)(()=>{let e=r.current,n=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(n,"value"),s=o.set;if(i!==t&&s){let n=new Event("input",{bubbles:!0});s.call(e,t),e.dispatchEvent(n)}},[i,t]),(0,E.createElement)("input",(0,rv.Z)({style:{display:"none"}},n,{ref:r,defaultValue:t}))};function u6(e,t,n){return uB(100/(n-t)*(e-t),[0,100])}function u9(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}let u7=(0,E.memo)(function(e){let{title:t,steps:n,value:r,label:i,onValueChange:o}=e,s=(0,m.jE2)(),a=iC(),l=(0,E.useCallback)(e=>{o(e[0],!0)},[o]),c=(0,E.useCallback)(()=>{s.mark("click slider")},[s]),d=(0,E.useCallback)(()=>{r&&o(r,!1)},[r,o]);return(0,_.jsx)("div",{className:"tlui-slider__container",children:(0,_.jsxs)(uY,{"data-testid":e["data-testid"],className:"tlui-slider","area-label":"Opacity",dir:"ltr",min:0,max:n,step:1,value:r?[r]:void 0,onPointerDown:c,onValueChange:l,onPointerUp:d,title:t+" — "+a(i),children:[(0,_.jsx)(u0,{className:"tlui-slider__track",dir:"ltr",children:null!==r&&(0,_.jsx)(u2,{className:"tlui-slider__range",dir:"ltr"})}),null!==r&&(0,_.jsx)(u3,{className:"tlui-slider__thumb",dir:"ltr"})]})})}),he=E.memo(function({label:e,uiTypeA:t,uiTypeB:n,labelA:r,labelB:i,itemsA:o,itemsB:s,styleA:a,styleB:l,valueA:c,valueB:d,onValueChange:u}){let h=iC(),p=E.useMemo(()=>o.find(e=>"shared"===c.type&&c.value===e.value)?.icon??"mixed",[o,c]),f=E.useMemo(()=>s.find(e=>"shared"===d.type&&d.value===e.value)?.icon??"mixed",[s,d]);return void 0===c&&void 0===d?null:(0,_.jsxs)("div",{className:"tlui-style-panel__double-select-picker",children:[(0,_.jsx)("div",{title:h(e),className:"tlui-style-panel__double-select-picker-label",children:h(e)}),(0,_.jsxs)("div",{className:"tlui-buttons__horizontal",children:[(0,_.jsxs)(cq,{id:`style panel ${t} A`,children:[(0,_.jsx)(cJ,{children:(0,_.jsx)(iP,{type:"icon","data-testid":`style.${t}`,title:h(r)+" — "+(null===c||"mixed"===c.type?h("style-panel.mixed"):h(`${t}-style.${c.value}`)),children:(0,_.jsx)(iT,{icon:p,small:!0,invertIcon:!0})})}),(0,_.jsx)(cQ,{side:"bottom",align:"end",sideOffset:0,alignOffset:-2,children:(0,_.jsx)("div",{className:"tlui-buttons__grid",children:o.map((e,n)=>(0,_.jsx)(c3,{"data-testid":`style.${t}.${e.value}`,children:(0,_.jsx)(iP,{type:"icon",onClick:()=>u(a,e.value,!1),title:`${h(r)} \u2014 ${h(`${t}-style.${e.value}`)}`,children:(0,_.jsx)(iT,{icon:e.icon,invertIcon:!0})},e.value)},n))})})]}),(0,_.jsxs)(cq,{id:`style panel ${n}`,children:[(0,_.jsx)(cJ,{children:(0,_.jsx)(iP,{type:"icon","data-testid":`style.${n}`,title:h(i)+" — "+(null===d||"mixed"===d.type?h("style-panel.mixed"):h(`${n}-style.${d.value}`)),children:(0,_.jsx)(iT,{icon:f,small:!0})})}),(0,_.jsx)(cQ,{side:"bottom",align:"end",sideOffset:0,alignOffset:-2,children:(0,_.jsx)("div",{className:"tlui-buttons__grid",children:s.map(e=>(0,_.jsx)(c3,{children:(0,_.jsx)(iP,{type:"icon",title:`${h(i)} \u2014 ${h(`${n}-style.${e.value}`)}`,"data-testid":`style.${n}.${e.value}`,onClick:()=>u(l,e.value,!1),children:(0,_.jsx)(iT,{icon:e.icon})})},e.value))})})]})]})]})}),ht=E.memo(function({id:e,label:t,uiType:n,style:r,items:i,type:o,value:s,onValueChange:a}){let l=iC(),c=(0,m.jE2)(),d=E.useMemo(()=>i.find(e=>"shared"===s.type&&e.value===s.value)?.icon,[i,s]),u="mixed"===s.type?l("style-panel.mixed"):l(`${n}-style.${s.value}`),h=t?l(t):"";return(0,_.jsxs)(cq,{id:`style panel ${e}`,children:[(0,_.jsx)(cJ,{children:(0,_.jsxs)(iP,{type:o,"data-testid":`style.${n}`,title:u,children:[(0,_.jsx)(sq,{children:h}),(0,_.jsx)(iT,{icon:d??"mixed"})]})}),(0,_.jsx)(cQ,{side:"left",align:"center",alignOffset:0,children:(0,_.jsx)("div",{className:"tlui-buttons__grid",children:i.map(e=>(0,_.jsx)(c3,{children:(0,_.jsx)(iP,{type:"icon","data-testid":`style.${n}.${e.value}`,title:l(`${n}-style.${e.value}`),onClick:()=>{c.mark("select style dropdown item"),a(r,e.value,!1)},children:(0,_.jsx)(iT,{icon:e.icon})})},e.value))})})]})});function hn({styles:e}){if(!e)return null;let t=e.get(m.Zuj),n=e.get(m.ZJj),r=e.get(m.TAC),i=e.get(m.t88),o=e.get(m.Y8S);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(hi,{styles:e}),void 0!==o&&(0,_.jsx)(ho,{styles:e}),!(void 0===t&&void 0===n&&void 0===r&&void 0===i)&&(0,_.jsxs)("div",{className:"tlui-style-panel__section","aria-label":"style panel styles",children:[(0,_.jsx)(hs,{styles:e}),(0,_.jsx)(hl,{styles:e}),(0,_.jsx)(ha,{styles:e})]})]})}function hr(){let e=(0,m.jE2)(),t=sH();return E.useMemo(()=>function(n,r,i){e.batch(()=>{e.isIn("select")&&e.setStyleForSelectedShapes(n,r,{squashing:i}),e.setStyleForNextShapes(n,r,{squashing:i}),e.updateInstanceState({isChangingStyle:!0},{ephemeral:!0})}),t("set-style",{source:"style-panel",id:n.id,value:r})},[e,t])}function hi({styles:e}){let t=iC(),n=hr(),r=e.get(m.R_W),i=e.get(m.pp9),o=e.get(m.ciG),s=e.get(m.ST$);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)("div",{tabIndex:-1,
202className:"tlui-style-panel__section__common","aria-label":"style panel styles","data-testid":"style.panel",children:[void 0===r?null:(0,_.jsx)(uO,{title:t("style-panel.color"),uiType:"color",style:m.R_W,items:uD.color,value:r,onValueChange:n}),(0,_.jsx)(hd,{})]}),(void 0!==i||void 0!==o||void 0!==s)&&(0,_.jsxs)("div",{className:"tlui-style-panel__section","aria-label":"style panel styles",children:[void 0===i?null:(0,_.jsx)(uO,{title:t("style-panel.fill"),uiType:"fill",style:m.pp9,items:uD.fill,value:i,onValueChange:n}),void 0===o?null:(0,_.jsx)(uO,{title:t("style-panel.dash"),uiType:"dash",style:m.ciG,items:uD.dash,value:o,onValueChange:n}),void 0===s?null:(0,_.jsx)(uO,{title:t("style-panel.size"),uiType:"size",style:m.ST$,items:uD.size,value:s,onValueChange:n})]})]})}function ho({styles:e}){let t=iC(),n=hr(),r=e.get(m.Y8S),i=e.get(m.XoM),o=e.get(m.HO5);return void 0===r&&void 0===i?null:(0,_.jsxs)("div",{className:"tlui-style-panel__section","aria-label":"style panel text",children:[void 0===r?null:(0,_.jsx)(uO,{title:t("style-panel.font"),uiType:"font",style:m.Y8S,items:uD.font,value:r,onValueChange:n}),void 0===i?null:(0,_.jsxs)("div",{className:"tlui-style-panel__row",children:[(0,_.jsx)(uO,{title:t("style-panel.align"),uiType:"align",style:m.XoM,items:uD.horizontalAlign,value:i,onValueChange:n}),(0,_.jsx)("div",{className:"tlui-style-panel__row__extra-button",children:void 0===o?(0,_.jsx)(iP,{type:"icon",title:t("style-panel.vertical-align"),"data-testid":"vertical-align",disabled:!0,children:(0,_.jsx)(iT,{icon:"vertical-align-center"})}):(0,_.jsx)(ht,{type:"icon",id:"geo-vertical-alignment",uiType:"verticalAlign",style:m.HO5,items:uD.verticalAlign,value:o,onValueChange:n})})]})]})}function hs({styles:e}){let t=hr(),n=e.get(m.Zuj);return void 0===n?null:(0,_.jsx)(ht,{id:"geo",type:"menu",label:"style-panel.geo",uiType:"geo",style:m.Zuj,items:uD.geo,value:n,onValueChange:t})}function ha({styles:e}){let t=hr(),n=e.get(m.t88);return void 0===n?null:(0,_.jsx)(ht,{id:"spline",type:"menu",label:"style-panel.spline",uiType:"spline",style:m.t88,items:uD.spline,value:n,onValueChange:t})}function hl({styles:e}){let t=hr(),n=e.get(m.ZJj),r=e.get(m.TAC);return n&&r?(0,_.jsx)(he,{label:"style-panel.arrowheads",uiTypeA:"arrowheadStart",styleA:m.TAC,itemsA:uD.arrowheadStart,valueA:r,uiTypeB:"arrowheadEnd",styleB:m.ZJj,itemsB:uD.arrowheadEnd,valueB:n,onValueChange:t,labelA:"style-panel.arrowhead-start",labelB:"style-panel.arrowhead-end"}):null}let hc=[.1,.25,.5,.75,1];function hd(){let e=(0,m.jE2)(),t=(0,m.HgN)("opacity",()=>e.getSharedOpacity(),[e]),n=sH(),r=iC(),i=E.useCallback((t,r)=>{let i=hc[t];e.batch(()=>{e.isIn("select")&&e.setOpacityForSelectedShapes(i,{squashing:r}),e.setOpacityForNextShapes(i,{squashing:r}),e.updateInstanceState({isChangingStyle:!0},{ephemeral:!0})}),n("set-style",{source:"style-panel",id:"opacity",value:t})},[e,n]);if(void 0===t)return null;let o="mixed"===t.type?-1:hc.indexOf((0,m.Fa1)(hc,e=>Math.abs(e-t.value)));return(0,_.jsx)(u7,{"data-testid":"style.opacity",value:o>=0?o:hc.length-1,label:"mixed"===t.type?"style-panel.mixed":`opacity-style.${t.value}`,onValueChange:i,steps:hc.length-1,title:r("style-panel.opacity")})}let hu=(0,E.memo)(function({isMobile:e,children:t}){let n=(0,m.jE2)(),r=u$(),i=(0,E.useCallback)(()=>{e||n.updateInstanceState({isChangingStyle:!1},{ephemeral:!0})},[n,e]),o=t??(0,_.jsx)(hn,{styles:r});return(0,_.jsx)("div",{className:T("tlui-style-panel",{"tlui-style-panel__wrapper":!e}),"data-ismobile":e,onPointerLeave:i,children:o})}),hh="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function hp(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),n)}function hf(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r):e.detachEvent&&e.detachEvent("on".concat(t),n)}function hg(e,t){let n=t.slice(0,t.length-1);for(let t=0;t<n.length;t++)n[t]=e[n[t].toLowerCase()];return n}function hm(e){"string"!=typeof e&&(e=""),e=e.replace(/\s/g,"");let t=e.split(","),n=t.lastIndexOf("");for(;n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}let hy={backspace:8,"⌫":8,tab:9,clear:12,enter:13,"↩":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal
202:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":hh?173:189,"=":hh?61:187,";":hh?59:186,"'":222,"[":219,"]":221,"\\":220},hb={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},hx={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},hw={16:!1,18:!1,17:!1,91:!1},hv={};for(let e=1;e<20;e++)hy["f".concat(e)]=111+e;let hS=[],hk=null,hj="all",h_=new Map,hE=e=>hy[e.toLowerCase()]||hb[e.toLowerCase()]||e.toUpperCase().charCodeAt(0),hC=e=>Object.keys(hy).find(t=>hy[t]===e),hP=e=>Object.keys(hb).find(t=>hb[t]===e);function hI(e){hj=e||"all"}function hT(){return hj||"all"}function hM(e){if(void 0===e)Object.keys(hv).forEach(e=>{Array.isArray(hv[e])&&hv[e].forEach(e=>hA(e)),delete hv[e]}),hB(null);else if(Array.isArray(e))e.forEach(e=>{e.key&&hA(e)});else if("object"==typeof e)e.key&&hA(e);else if("string"==typeof e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];let[i,o]=n;"function"==typeof i&&(o=i,i=""),hA({key:e,scope:i,method:o,splitKey:"+"})}}let hA=e=>{let{key:t,scope:n,method:r,splitKey:i="+"}=e,o=hm(t);o.forEach(e=>{let t=e.split(i),o=t.length,s=t[o-1],a="*"===s?"*":hE(s);if(!hv[a])return;n||(n=hT());let l=o>1?hg(hb,t):[],c=[];hv[a]=hv[a].filter(e=>{let t=!r||e.method===r,i=t&&e.scope===n&&function(e,t){let n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,i=!0;for(let e=0;e<n.length;e++)-1===r.indexOf(n[e])&&(i=!1);return i}(e.mods,l);return i&&c.push(e.element),!i}),c.forEach(e=>hB(e))})};function h$(e,t,n,r){let i;if(t.element===r&&(t.scope===n||"all"===t.scope)){for(let e in i=t.mods.length>0,hw)Object.prototype.hasOwnProperty.call(hw,e)&&(!hw[e]&&t.mods.indexOf(+e)>-1||hw[e]&&-1===t.mods.indexOf(+e))&&(i=!1);(0!==t.mods.length||hw[16]||hw[18]||hw[17]||hw[91])&&!i&&"*"!==t.shortcut||(t.keys=[],t.keys=t.keys.concat(hS),!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0)))}}function hD(e,t){let n=hv["*"],r=e.keyCode||e.which||e.charCode;if(!hO.filter.call(this,e))return;if((93===r||224===r)&&(r=91),-1===hS.indexOf(r)&&229!==r&&hS.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach(t=>{let n=hx[t];e[t]&&-1===hS.indexOf(n)?hS.push(n):!e[t]&&hS.indexOf(n)>-1?hS.splice(hS.indexOf(n),1):"metaKey"===t&&e[t]&&3===hS.length&&!(e.ctrlKey||e.shiftKey||e.altKey)&&(hS=hS.slice(hS.indexOf(n)))}),r in hw){for(let e in hw[r]=!0,hb)hb[e]===r&&(hO[e]=!0);if(!n)return}for(let t in hw)Object.prototype.hasOwnProperty.call(hw,t)&&(hw[t]=e[hx[t]]);e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===hS.indexOf(17)&&hS.push(17),-1===hS.indexOf(18)&&hS.push(18),hw[17]=!0,hw[18]=!0);let i=hT();if(n)for(let r=0;r<n.length;r++)n[r].scope===i&&("keydown"===e.type&&n[r].keydown||"keyup"===e.type&&n[r].keyup)&&h$(e,n[r],i,t);if(!(r in hv))return;let o=hv[r],s=o.length;for(let n=0;n<s;n++)if(("keydown"===e.type&&o[n].keydown||"keyup"===e.type&&o[n].keyup)&&o[n].key){let r=o[n],{splitKey:s}=r,a=r.key.split(s),l=[];for(let e=0;e<a.length;e++)l.push(hE(a[e]));l.sort().join("")===hS.sort().join("")&&h$(e,r,i,t)}}function hO(e,t,n){hS=[];let r=hm(e),i=[],o="all",s=document,a=0,l=!1,c=!0,d="+",u=!1,h=!1;for(void 0===n&&"function"==typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(o=t.scope),t.element&&(s=t.element),t.keyup&&(l=t.keyup),void 0!==t.keydown&&(c=t.keydown),void 0!==t.capture&&(u=t.capture),"string"==typeof t.splitKey&&(d=t.splitKey),!0===t.single&&(h=!0)),"string"==typeof t&&(o=t),h&&hM(e,o);a<r.length;a++)e=r[a].split(d),i=[],e.length>1&&(i=hg(hb,e)),(e="*"===(e=e[e.length-1])?"*":hE(e))in hv||(hv[e]=[]),hv[e].push({keyup:l,keydown:c,scope:o,mods:i,shortcut:r[a],method:n,key:r[a],splitKey:d,element:s});if(void 0!==s&&window){if(!h_.has(s)){let e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;return hD(e,s)},t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;hD(e,s),function(e){let t=e.keyCode||e.which||e.charCode,n=hS.indexOf(t);if(n>=0&&hS.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&hS.splice(0,hS.length),(93===t||224===t)&&(t=91),t in hw)for(let e in hw[t]=!1,hb)hb[e]===t&&(hO[e]=!1)}(e)};h_.set(s,{keydownListener:e,keyupListenr:t,capture:u}),hp(s,"keydown",e,u),hp(s,"keyup",t,u)}if(!hk){let e=()=>{hS=[]};hk={listener:e,capture:u}
202,hp(window,"focus",e,u)}}}function hB(e){let t=Object.values(hv).flat(),n=t.findIndex(t=>{let{element:n}=t;return n===e});if(n<0){let{keydownListener:t,keyupListenr:n,capture:r}=h_.get(e)||{};t&&n&&(hf(e,"keyup",n,r),hf(e,"keydown",t,r),h_.delete(e))}if(t.length<=0||h_.size<=0){let e=Object.keys(h_);if(e.forEach(e=>{let{keydownListener:t,keyupListenr:n,capture:r}=h_.get(e)||{};t&&n&&(hf(e,"keyup",n,r),hf(e,"keydown",t,r),h_.delete(e))}),h_.clear(),Object.keys(hv).forEach(e=>delete hv[e]),hk){let{listener:e,capture:t}=hk;hf(window,"focus",e,t),hk=null}}}let hL={getPressedKeyString:function(){return hS.map(e=>hC(e)||hP(e)||String.fromCharCode(e))},setScope:hI,getScope:hT,deleteScope:function(e,t){let n,r;for(let t in e||(e=hT()),hv)if(Object.prototype.hasOwnProperty.call(hv,t))for(r=0,n=hv[t];r<n.length;)if(n[r].scope===e){let e=n.splice(r,1);e.forEach(e=>{let{element:t}=e;return hB(t)})}else r++;hT()===e&&hI(t||"all")},getPressedKeyCodes:function(){return hS.slice(0)},getAllKeyCodes:function(){let e=[];return Object.keys(hv).forEach(t=>{hv[t].forEach(t=>{let{key:n,scope:r,mods:i,shortcut:o}=t;e.push({scope:r,shortcut:o,mods:i,keys:n.split("+").map(e=>hE(e))})})}),e},isPressed:function(e){return"string"==typeof e&&(e=hE(e)),-1!==hS.indexOf(e)},filter:function(e){let t=e.target||e.srcElement,{tagName:n}=t,r=!0,i="INPUT"===n&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(t.type);return(t.isContentEditable||(i||"TEXTAREA"===n||"SELECT"===n)&&!t.readOnly)&&(r=!1),r},trigger:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(hv).forEach(n=>{let r=hv[n].filter(n=>n.scope===t&&n.shortcut===e);r.forEach(e=>{e&&e.method&&e.method()})})},unbind:hM,keyMap:hy,modifier:hb,modifierMap:hx};for(let e in hL)Object.prototype.hasOwnProperty.call(hL,e)&&(hO[e]=hL[e]);if("undefined"!=typeof window){let e=window.hotkeys;hO.noConflict=t=>(t&&window.hotkeys===hO&&(window.hotkeys=e),hO),window.hotkeys=hO}let hR=["copy","cut","paste","asset"];function hN(){let e=(0,m.jE2)(),t=N(),n=lo(),r=ul(),i=(0,m.HgN)("is focused",()=>e.getInstanceState().isFocused,[e]),{itemsInPanel:o}=hQ();(0,E.useEffect)(()=>{if(!i)return;let o=e.getContainer();hO.setScope(e.store.id);let s=(t,n)=>{hO(t,{element:document.body,scope:e.store.id},n)};for(let r of Object.values(n))r.kbd&&(!t||r.readonlyOk)&&(hR.includes(r.id)||s(hz(r.kbd),t=>{hF(e)||((0,m.PFJ)(t),r.onSelect("kbd"))}));for(let t of Object.values(r))t.kbd&&(t.readonlyOk||!e.getInstanceState().isReadonly)&&(hR.includes(t.id)||s(hz(t.kbd),n=>{hF(e)||((0,m.PFJ)(n),t.onSelect("kbd"))}));return s(",",t=>{if(hF(e)||e.inputs.keys.has("Comma"))return;(0,m.PFJ)(t),o.focus(),e.inputs.keys.add("Comma");let{x:n,y:r,z:i}=e.inputs.currentScreenPoint,s={type:"pointer",name:"pointer_down",point:{x:n,y:r,z:i},shiftKey:t.shiftKey,altKey:t.altKey,ctrlKey:t.metaKey||t.ctrlKey,pointerId:0,button:0,isPen:e.getInstanceState().isPenMode,target:"canvas"};e.dispatch(s)}),hO(",",{element:document.body,keyup:!0,keydown:!1,scope:e.store.id},t=>{if(hF(e)||!e.inputs.keys.has("Comma"))return;e.inputs.keys.delete("Comma");let{x:n,y:r,z:i}=e.inputs.currentScreenPoint,o={type:"pointer",name:"pointer_up",point:{x:n,y:r,z:i},shiftKey:t.shiftKey,altKey:t.altKey,ctrlKey:t.metaKey||t.ctrlKey,pointerId:0,button:0,isPen:e.getInstanceState().isPenMode,target:"canvas"};e.dispatch(o)}),()=>{hO.deleteScope(e.store.id)}},[n,r,t,e,i,o])}function hz(e){return(function(e){"string"!=typeof e&&(e=""),e=e.replace(/\s/g,"");let t=e.split(","),n=t.lastIndexOf("");for(;n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t})(e).map(e=>{let t=e.split("");return 1===t.length?t[0]:"!"===t[0]?`shift+${t[1]}`:"?"===t[0]?3===t.length&&"!"===t[1]?`alt+shift+${t[2]}`:`alt+${t[1]}`:"$"===t[0]?"!"===t[1]?`cmd+shift+${t[2]},ctrl+shift+${t[2]}`:"?"===t[1]?`cmd+\u2325+${t[2]},ctrl+alt+${t[2]}`:`cmd+${t[1]},ctrl+${t[1]}`:e}).join(",")}function hF(e){return e.getIsMenuOpen()||null!==e.getEditingShapeId()||e.getCrashingError()}function hU(e){return{id:e.id,type:"item",readonlyOk:e.readonlyOk,toolItem:e}}let hH=E.createContext([]);function hZ({overrides:e,children:t}){let n=(0,m.jE2)(),r=ul(),i=E.useMemo(()=>{let t=(0,m.oA$)([hU(r.select),hU(r.hand),hU(r.draw),hU(r.eraser),hU(r.arrow),hU(r.text),hU(r.note),hU(r.asset),hU(r.rectangle),hU(r.ellipse),hU(r.diamond),hU(r.triangle),hU(r.trapezoid),hU(r.rhombus),hU(r.hexagon),hU(r.cloud),hU(r.star),hU(r.oval),hU(r["x-box"]),hU(r["check-box"]),hU(r["arrow-left"]),hU(r["arrow-up"]),hU(r["arrow-down"]),hU(r["arrow-right"]),hU(r.line),hU(r.highlight),hU(r.frame),hU(r.laser)]);return e?e(n,t,{tools:r}):t},[n,e,r]);return(0,_.jsx)(hH.Provider,{value:i,children:t})}function hV(){let e=E.useContext(hH);if(!e)throw Error("useToolbarSchema must be used within a ToolbarSchemaProvider");return e}function hK(){let e=(0,m.jE2)(),t=iC(),n=u$(),r=n?.get(m.R_W),i=(0,m.y6M)({isDarkMode:e.user.getIsDarkMode()}),o=(r?.type==="shared"?i[r.value]:i.black).solid,s=(0,m.HgN)("disable style panel",()=>e.isInAny("hand","zoom","eraser","laser"),[e]),a=(0,E.useCallback)(t=>{t||e.updateInstanceState({isChangingStyle:!1},{ephemeral:!0})},[e]),{StylePanel:l}=h5();return l?(0,_.jsxs)(sV,{id:"mobile style menu",onOpenChange:a,children:[(0,_.jsx)(sK,{children:(0,_.jsx)(iP,{type:"tool","data-testid":"mobile-styles.button",style:{color:s?"var(--color-muted-1)":o},title:t("style-panel.title"),disabled:s,children:(0,_.jsx)(iT,{icon:s?"blob":r?.type==="mixed"?"mixed":"blob"})})}),(0,_.jsx)(sW,{side:"top",align:"end",children:l&&(0,_.jsx)(l,{isMobile:!0})})]}):null}let hW=["select","hand","draw","eraser","text","zoom","laser","highlight"];function hY({activeToolId:e}){let t=(0,m.jE2)(),n=iy(),r=iC(),i=(0,m.HgN)("is tool locked",()=>t.getInstanceState().isToolLocked,[t]);return!e||hW.includes(e)?null:(0,_.jsx)(iP,{type:"normal",title:r("action.toggle-tool-lock"),"data-testid":"tool-lock",className:T("tlui-toolbar__lock-button",{"tlui-toolbar__lock-button__mobile":n<ip.TABLET_SM}),onClick:()=>t.updateInstanceState({isToolLocked:!i}),children:(0,_.jsx)(iT,{icon:i?"lock":"unlock",small:!0})})}let hG=(0,E.memo)(function(){let e=(0,m.jE2)(),t=iC(),n=iy(),r=E.useRef(void 0),i=N(),o=hV(),s=(0,m.HgN)("current tool id",()=>e.getCurrentToolId(),[e]),a=(0,m.HgN)("geo",()=>e.getSharedStyles().getAsKnownValue(m.Zuj),[e]),l=e=>e.label?`${t(e.label)} ${e.kbd?c$(e.kbd):""}`:"",c=o.find(e=>hJ(e.toolItem,s,a)),{itemsInPanel:d,itemsInDropdown:u}=hQ(),h=(0,E.useMemo)(()=>{let e=u.find(e=>e===c);return e||(r.current||(r.current=u[0]),e=r.current,u.includes(e)||(e=u[0])),r.current=e,e},[c,u]);(0,E.useEffect)(()=>{let t=[...d,h];for(let n=0;n<Math.min(10,t.length);n++){let r=`${n+1}`.slice(-1);hO(r,r=>{hF(e)||((0,m.PFJ)(r),t[n].toolItem.onSelect("kbd"))})}return()=>{hO.unbind("1,2,3,4,5,6,7,8,9,0")}},[h,e,d]);let{ActionsMenu:p,QuickActions:f}=h5();return(0,_.jsx)("div",{className:"tlui-toolbar",children:(0,_.jsxs)("div",{className:"tlui-toolbar__inner",children:[(0,_.jsxs)("div",{className:"tlui-toolbar__left",children:[!i&&(0,_.jsxs)("div",{className:"tlui-toolbar__extras",children:[n<ip.TABLET&&(0,_.jsxs)("div",{className:"tlui-toolbar__extras__controls tlui-buttons__horizontal",children:[f&&(0,_.jsx)(f,{}),p&&(0,_.jsx)(p,{})]}),(0,_.jsx)(hY,{activeToolId:s})]}),(0,_.jsxs)("div",{className:T("tlui-toolbar__tools",{"tlui-toolbar__tools__mobile":n<ip.TABLET_SM}),children:[d.map(({toolItem:e})=>(0,_.jsx)(hq,{item:e,title:l(e),isSelected:hJ(e,s,a)},e.id)),u.length?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(hq,{item:h.toolItem,title:l(h.toolItem),isSelected:hJ(h.toolItem,s,a)},h.toolItem.id),(0,_.jsxs)(cq,{id:"toolbar overflow",modal:!1,children:[(0,_.jsx)(cJ,{children:(0,_.jsx)(iP,{title:t("tool-panel.more"),type:"tool",className:"tlui-toolbar__overflow","data-testid":"tools.more-button",children:(0,_.jsx)(iT,{icon:"chevron-up"})})}),(0,_.jsx)(cQ,{side:"top",align:"center",children:(0,_.jsx)(hX,{toolbarItems:u})})]})]}):null]})]}),n<ip.TABLET_SM&&!i&&(0,_.jsx)("div",{className:"tlui-toolbar__tools",children:(0,_.jsx)(hK,{})})]})})}),hX=(0,m.jas)(function({toolbarItems:e}){let t=iC();return(0,_.jsx)("div",{className:"tlui-buttons__grid","data-testid":"tools.more-content",children:e.map(({toolItem:{id:e,meta:n,kbd:r,label:i,onSelect:o,icon:s}})=>(0,_.jsx)(c3,{"data-tool":e,"data-geo":n?.geo??"","aria-label":i,children:(0,_.jsx)(iP,{type:"icon",className:"tlui-button-grid__button",onClick:()=>o("toolbar"),"data-testid":`tools.more.${e}`,title:i?`${t(i)} ${r?c$(r):""}`:"",children:(0,_.jsx)(iT,{icon:s})})},e))})});function hq({item:e,title:t,isSelected:n}){return(0,_.jsx)(iP,{type:"tool","data-testid":`tools.${e.id}`,"data-tool":e.id,"data-geo":e.meta?.geo??"","aria-label":e.label,"data-state":n?"selected":void 0,onClick:()=>e.onSelect("toolbar"),title:t,onTouchStart:t=>{(0,m.PFJ)(t),e.onSelect("toolbar")},children:(0,_.jsx)(iT,{icon:e.icon})})}let hJ=(e,t,n)=>e.meta?.geo?"geo"===t&&n===e.meta?.geo:t===e.id;function hQ(){let e=iy(),t=hV(),n=N();return(0,E.useMemo)(()=>{let r=t.filter(e=>!n||e.readonlyOk),i=Math.min(8,5+e),o=r.slice(0,i),s=r.slice(i);return s.length<=2?{itemsInPanel:r,itemsInDropdown:[]}:{itemsInPanel:o,itemsInDropdown:s}},[t,e,n])}function h0(){let e=lo();return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(c4,{...e["zoom-in"],noClose:!0}),(0,_.jsx)(c4,{...e["zoom-out"],noClose:!0}),(0,_.jsx)(dE,{}),(0,_.jsx)(dC,{}),(0,_.jsx)(dP,{})]})}let h1=(0,E.memo)(function({children:e}){let t=(0,m.uK4)(),[n,r]=sZ("zoom menu"),i=e??(0,_.jsx)(h0,{});return(0,_.jsxs)(cY,{dir:"ltr",open:n,onOpenChange:r,modal:!1,children:[(0,_.jsx)(cF,{asChild:!0,dir:"ltr",children:(0,_.jsx)(h2,{})}),(0,_.jsx)(cG,{container:t,children:(0,_.jsx)(cU,{className:"tlui-menu",side:"top",align:"start",alignOffset:0,sideOffset:8,collisionPadding:4,children:(0,_.jsx)(sX,{type:"menu",sourceId:"zoom-menu",children:i})})})]})}),h2=(0,E.forwardRef)(function(e,t){let n=(0,m.jE2)(),r=iy(),i=(0,m.HgN)("zoom",()=>n.getZoomLevel(),[n]),o=iC(),s=(0,E.useCallback)(()=>{n.resetZoom(n.getViewportScreenCenter(),{duration:m.KDN})},[n]);return(0,_.jsx)(iP,{ref:t,...e,type:"icon",title:`${o("navigation-zone.zoom")}`,"data-testid":"minimap.zoom-menu-button",className:r<ip.TABLET_SM?"tlui-zoom-menu__button":"tlui-zoom-menu__button__pct",onDoubleClick:s,icon:r<ip.MOBILE?"zoom-in":void 0,children:r<ip.MOBILE?null:(0,_.jsxs)("span",{style:{flexGrow:0,textAlign:"center"},children:[Math.floor(100*i),"%"]})})}),h8=(0,E.createContext)({});function h3({overrides:e={},children:t}){let n=(0,m.SE)(e);return(0,_.jsx)(h8.Provider,{value:(0,E.useMemo)(()=>({ContextMenu:dJ,ActionsMenu:du,HelpMenu:ue,ZoomMenu:h1,MainMenu:uv,Minimap:uj,StylePanel:hu,PageMenu:uI,NavigationPanel:u_,Toolbar:hG,KeyboardShortcutsDialog:ud,QuickActions:uM,HelperButtons:uo,DebugMenu:d4,MenuPanel:uS,...n}),[n]),children:t})}function h5(){return(0,E.useContext)(h8)}let h4=(0,E.memo)(function(){let{DebugMenu:e}=h5();return(0,_.jsxs)("div",{className:"tlui-debug-panel",children:[(0,_.jsx)(h6,{}),(0,_.jsx)(h9,{}),e&&(0,_.jsx)(e,{})]})}),h6=(0,m.jas)(function(){!function(e=!0){let[t,n]=(0,E.useState)(0),r=(0,m.jE2)();(0,E.useEffect)(()=>
202{if(!e)return;let t=()=>n(e=>e+1);return r.on("tick",t),()=>{r.off("tick",t)}},[r,e])}();let e=(0,m.jE2)(),t=e.getPath(),n=e.getHoveredShape(),r=e.getOnlySelectedShape(),i="select.idle"!==t&&t.includes("select.")?r:n,o=i&&t.includes("select.")?` / ${i.type||""}${"geo"in i.props?" / "+i.props.geo:""} / [${m.B08.ToFixed(e.getPointInShapeSpace(i,e.inputs.currentPagePoint),0)}]`:"",s=t.startsWith("select.")&&!t.includes(".idle")?` / [${m.B08.ToFixed(e.inputs.originPagePoint,0)}] \u2192 [${m.B08.ToFixed(e.inputs.currentPagePoint,0)}] = ${m.B08.Dist(e.inputs.originPagePoint,e.inputs.currentPagePoint).toFixed(0)}`:"";return(0,_.jsx)("div",{className:"tlui-debug-panel__current-state",children:`${t}${o}${s}`})});function h9(){let e=(0,m.HgN)("show_fps",()=>m.hR1.showFps.get(),[m.hR1]),t=(0,E.useRef)(null);return((0,E.useEffect)(()=>{if(!e)return;let n=0,r=!1,i=performance.now(),o=0,s=0,a=!1;return function e(){if(!r){if(s++,(o=performance.now()-i)>250){let e=Math.round(s*(250/o)*4);e>n&&(n=e);let r=.75*n;(e<r&&!a||e>=r&&a)&&(a=!a),t.current.innerHTML=`FPS ${e.toString()}`,t.current.className="tlui-debug-panel__fps"+(a?" tlui-debug-panel__fps__slow":""),o-=250,s=0,i=performance.now()}requestAnimationFrame(e)}}(),()=>{r=!0}},[e]),e)?(0,_.jsx)("div",{ref:t}):null}let h7=({id:e,component:t,onClose:n})=>{let{removeDialog:r}=lt(),i=(0,m.uK4)(),o=(0,E.useCallback)(t=>{if(!t){if(n)try{n()}catch(e){console.warn(e)}r(e)}},[e,n,r]);return(0,_.jsx)(ad,{onOpenChange:o,defaultOpen:!0,children:(0,_.jsx)(au,{container:i,children:(0,_.jsx)(s6,{dir:"ltr",className:"tlui-dialog__overlay",onClick:e=>{e.target===e.currentTarget&&o(!1)},children:(0,_.jsx)(ae,{dir:"ltr",className:"tlui-dialog__content",children:(0,_.jsx)(t,{onClose:()=>o(!1)})})})})})},pe=E.memo(function(){let{dialogs:e}=lt();return(0,_.jsx)(_.Fragment,{children:e.map(e=>(0,_.jsx)(h7,{...e},e.id))})});function pt(){let e=(0,m.jE2)(),t=(0,m.HgN)("follow",()=>e.getInstanceState().followingUserId,[e]);return t?(0,_.jsx)(pn,{userId:t}):null}function pn({userId:e}){let t=(0,m.oOK)(e);return t?(0,_.jsx)("div",{className:"tlui-following-indicator",style:{borderColor:t.color}}):null}function pr({toast:e}){let{removeToast:t}=a5(),n=iC(),r=e.actions&&e.actions.length>0;return(0,_.jsxs)(r9,{onOpenChange:n=>{n||t(e.id)},className:"tlui-toast__container",duration:e.keepOpen?1/0:5e3,children:[e.icon&&(0,_.jsx)("div",{className:"tlui-toast__icon",children:(0,_.jsx)(iI,{icon:e.icon})}),(0,_.jsxs)("div",{className:"tlui-toast__main",children:[(0,_.jsxs)("div",{className:"tlui-toast__content",children:[e.title&&(0,_.jsx)(ii,{className:"tlui-toast__title",children:e.title}),e.description&&(0,_.jsx)(io,{className:"tlui-toast__description",children:e.description})]}),e.actions&&(0,_.jsxs)("div",{className:"tlui-toast__actions",children:[e.actions.map((e,t)=>(0,_.jsx)(is,{altText:e.label,asChild:!0,onClick:e.onClick,children:(0,_.jsx)(iP,{type:e.type,children:(0,_.jsx)(sq,{children:e.label})})},t)),(0,_.jsx)(ia,{asChild:!0,children:(0,_.jsx)(iP,{type:"normal",className:"tlui-toast__close",style:{marginLeft:"auto"},children:(0,_.jsx)(sq,{children:e.closeLabel??n("toast.close")})})})]})]}),!r&&(0,_.jsx)(ia,{asChild:!0,children:(0,_.jsx)(iP,{type:"normal",className:"tlui-toast__close",children:(0,_.jsx)(sq,{children:e.closeLabel??n("toast.close")})})})]})}let pi=E.memo(function(){let{toasts:e}=a5();return(0,_.jsx)(_.Fragment,{children:e.map(e=>(0,_.jsx)(pr,{toast:e},e.id))})});function po(){let{toasts:e}=a5(),[t,n]=E.useState(!1);return(E.useEffect(()=>{let t=!1;return e.length?n(!0):setTimeout(()=>{t||n(!1)},1e3),()=>{t=!0}},[e.length,n]),t)?(0,_.jsx)(r5,{className:"tlui-toast__viewport"}):null}let ps="2.0.0",pa={fonts:{draw:`https://unpkg.com/@tldraw/assets@${ps}/fonts/Shantell_Sans-Tldrawish.woff2`,serif:`https://unpkg.com/@tldraw/assets@${ps}/fonts/IBMPlexSerif-Medium.woff2`,sansSerif:`https://unpkg.com/@tldraw/assets@${ps}/fonts/IBMPlexSans-Medium.woff2`,monospace:`https://unpkg.com/@tldraw/assets@${ps}/fonts/IBMPlexMono-Medium.woff2`}},pl={...pa,icons:Object.fromEntries(["align-bottom-center","align-bottom-left","align-bottom-right","align-bottom","align-center-center","align-center-horizontal","align-center-left","align-center-right","align-center-vertical","align-left","align-right","align-top-center","align-top-left","align-top-right","align-top","arrow-left","arrowhead-arrow","arrowhead-bar","arrowhead-diamond","arrowhead-dot","arrowhead-none","arrowhead-square","arrowhead-triangle-inverted","arrowhead-triangle","as
202pect-ratio","avatar","blob","bring-forward","bring-to-front","check","checkbox-checked","checkbox-empty","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-ne","chevrons-sw","clipboard-copied","clipboard-copy","code","collab","color","comment","cross-2","cross","dash-dashed","dash-dotted","dash-draw","dash-solid","discord","distribute-horizontal","distribute-vertical","dot","dots-horizontal","dots-vertical","drag-handle-dots","duplicate","edit","external-link","file","fill-none","fill-pattern","fill-semi","fill-solid","follow","following","font-draw","font-mono","font-sans","font-serif","geo-arrow-down","geo-arrow-left","geo-arrow-right","geo-arrow-up","geo-check-box","geo-cloud","geo-diamond","geo-ellipse","geo-hexagon","geo-octagon","geo-oval","geo-pentagon","geo-rectangle","geo-rhombus-2","geo-rhombus","geo-star","geo-trapezoid","geo-triangle","geo-x-box","github","group","hidden","image","info-circle","leading","link","lock-small","lock","menu","minus","mixed","pack","page","plus","question-mark-circle","question-mark","redo","reset-zoom","rotate-ccw","rotate-cw","ruler","search","send-backward","send-to-back","settings-horizontal","settings-vert
202ical-1","settings-vertical","share-1","share-2","size-extra-large","size-large","size-medium","size-small","spline-cubic","spline-line","stack-horizontal","stack-vertical","status-offline","status-online","stretch-horizontal","stretch-vertical","text-align-center","text-align-justify","text-align-left","text-align-right","tool-arrow","tool-embed","tool-eraser","tool-frame","tool-hand","tool-highlight","tool-laser","tool-line","tool-media","tool-note","tool-pencil","tool-pointer","tool-text","trash","triangle-down","triangle-up","twitter","undo","ungroup","unlock-small","unlock","vertical-align-center","vertical-align-end","vertical-align-start","visible","warning-triangle","zoom-in","zoom-out"].map(e=>[e,`https://unpkg.com/@tldraw/assets@${ps}/icons/icon/${e}.svg`])),translations:Object.fromEntries(m.a2c.map(e=>[e.locale,`https://unpkg.com/@tldraw/assets@${ps}/translations/${e.locale}.json`])),embedIcons:Object.fromEntries(m.Lu5.map(e=>[e.type,`https://unpkg.com/@tldraw/assets@${ps}/embed-icons/${e.type}.png`]))};function pc(e){return(0,E.useMemo)(()=>e,e)}function pd({overrides:e,components:t,assetUrls:n,onUiEvent:r,forceMobile:i,children:o}){return(0,_.jsx)(ix,{assetUrls:n?{fonts:Object.assign({...pl.fonts},{...n?.fonts}),icons:Object.assign({...pl.icons},{...n?.icons}),embedIcons:Object.assign({...pl.embedIcons},{...n?.embedIcons}),translations:Object.assign({...pl.translations},{...n?.translations})}:pl,children:(0,_.jsx)(iE,{overrides:function(e){let t=pc(null==e?[]:Array.isArray(e)?e:[e]);return(0,E.useMemo)(()=>{let e={};for(let n of t)if(n.translations)for(let[t,r]of(0,m.EPv)(n.translations)){let n=e[t];n||(n=e[t]={}),Object.assign(n,r)}return e},[t])}(e),children:(0,_.jsx)(sU,{onEvent:r,children:(0,_.jsx)(a3,{children:(0,_.jsx)(le,{children:(0,_.jsx)(im,{forceMobile:i,children:(0,_.jsx)(h3,{overrides:t,children:(0,_.jsx)(pu,{overrides:e,children:o})})})})})})})})}function pu({overrides:e,children:t}){let n=function(e){let t=function(){let{addToast:e,removeToast:t,clearToasts:n}=a5(),{addDialog:r,clearDialogs:i,removeDialog:o,updateDialog:s}=lt(),a=iy(),l=a<ip.TABLET_SM,c=iC();return(0,E.useMemo)(()=>({addToast:e,removeToast:t,clearToasts:n,addDialog:r,clearDialogs:i,removeDialog:o,updateDialog:s,msg:c,isMobile:l}),[r,e,i,n,c,o,t,s,l])}(),n=pc(null==e?[]:Array.isArray(e)?e:[e]);return(0,E.useMemo)(()=>(function(e,t){let n={};for(let t of e)if(t.translations)for(let[e,r]of(0,m.EPv)(t.translations)){let t=n[e];t||(t=n[e]={}),Object.assign(t,r)}return{actions:(n,r)=>{for(let i of e)i.actions&&(r=i.actions(n,r,t));return r},toolbar:(n,r,i)=>{for(let o of e)o.toolbar&&(r=o.toolbar(n,r,{...t,...i}));return r},tools:(n,r,i)=>{for(let o of e)o.tools&&(r=o.tools(n,r,{...t,...i}));return r},translations:n}})(n,t),[n,t])}(e);return(0,_.jsx)(li,{overrides:n.actions,children:(0,_.jsx)(ua,{overrides:n.tools,children:(0,_.jsx)(hZ,{overrides:n.toolbar,children:t})})})}E.memo(function({renderDebugMenuItems:e,children:t,hideUi:n,components:r,...i}){return(0,_.jsx)(pd,{...i,components:r,children:(0,_.jsx)(ph,{hideUi:n,renderDebugMenuItems:e,children:t})})});let ph=E.memo(function({children:e,hideUi:t,...n}){return(0,_.jsxs)(_.Fragment,{children:[e,t?null:(0,_.jsx)(pp,{...n})]})}),pp=E.memo(function(){let e=(0,m.jE2)(),t=iC(),n=iy(),r=N(),i=(0,m.HgN)("focus",()=>e.getInstanceState().isFocusMode,[e]),o=(0,m.HgN)("debug",()=>e.getInstanceState().isDebugMode,[e]),{SharePanel:s,TopPanel:a,MenuPanel:l,StylePanel:c,Toolbar:d,HelpMenu:u,NavigationPanel:h,HelperButtons:p}=h5();hN(),aG(),function(){let e=(0,m.jE2)(),{addToast:t}=a5();(0,E.useEffect)(()=>{function n({name:e,count:n}){t({title:"Maximum Shapes Reached",description:`You've reached the maximum number of shapes allowed on ${e} (${n}). Please delete some shapes or move to a different page to continue.`})}return e.addListener("max-shapes",n),()=>{e.removeListener("max-shapes",n)}},[e,t])}();let{"toggle-focus-mode":f}=lo();return(0,_.jsx)(r1,{children:(0,_.jsxs)("div",{className:T("tlui-layout",{"tlui-layout__mobile":n<ip.TABLET_SM}),"data-breakpoint":n,children:[i?(0,_.jsx)("div",{className:"tlui-layout__top",children:(0,_.jsx)(iP,{type:"icon",className:"tlui-focus-button",title:t("focus-mode.toggle-focus-mode"),onClick:()=>f.onSelect("menu"),children:(0,_.jsx)(iT,{icon:"dot"})})}):(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)("div",{className:"tlui-layout__top",children:[(0,_.jsxs)("div",{className:"tlui-layout__top__left",children:[l&&(0,_.jsx)(l,{}),p&&(0,_.jsx)(p,{})]}),(0,_.jsx)("div",{className:"tlui-layout__top__center",children:a&&(0,_.jsx)(a,{})}),(0,_.jsxs)("div",{className:"tlui-layout__top__right",children:[s&&(0,_.jsx)(s,{}),c&&n>=ip.TABLET_SM&&!r&&(0,_.jsx)(c,{})]})]}),(0,_.jsxs)("div",{className:"tlui-layout__bottom",children:[(0,_.jsxs)("div",{className:"tlui-layout__bottom__main",children:[h&&(0,_.jsx)(h,{}),d&&(0,_.jsx)(d,{}),u&&(0,_.jsx)(u,{})]}),o&&(0,_.jsx)(h4,{})]})]}),(0,_.jsx)(pi,{}),(0,_.jsx)(pe,{}),(0,_.jsx)(po,{}),(0,_.jsx)(pt,{})]})})});async function pf(e,t){let{url:n,style:r="normal",weight:i="500",display:o,featureSettings:s,stretch:a,unicodeRange:l,variant:c,format:d}=t,u=new FontFace(e,`url(${n})`,{style:r,weight:i,display:o,featureSettings:s,stretch:a,unicodeRange:l,variant:c});return await u.load(),document.fonts.add(u),u.$$_url=n,u.$$_fontface=`
203@font-face {
204	font-family: ${u.family};
205	font-stretch: ${u.stretch};
206	font-weight: ${u.weight};
207	font-style: ${u.style};
208	src: url("${n}") format("${d}")
209}`,u}var pg=((a=pg||{})[a.SUCCESS=0]="SUCCESS",a[a.FAILED=1]="FAILED",a[a.WAITING=2]="WAITING",a);let pm=(e,t)=>
209{let[n,r]=(0,E.useState)(2);return(0,E.useEffect)(()=>{let n=!1;return r(2),pf(e,t).then(()=>{n||r(0)}).catch(e=>{n||(console.error(e),r(1))}),()=>{n=!0}},[e,t]),n};Object.freeze(["image/jpeg","image/png","image/gif","image/svg+xml"]),Object.freeze(["video/mp4","video/quicktime"]),(0,E.memo)(function(e){var t;let[n,r]=(0,E.useState)(null),[i,o]=(0,E.useState)(null),s=(0,m.TaN)(e.shapeUtils??[]),a=(0,E.useMemo)(()=>[...nA,...s],[s]),l=(0,m.QLD)({snapshot:e.snapshot,shapeUtils:a}),c=(0,E.useMemo)(()=>t?{fonts:{...pa.fonts,...t?.fonts}}:pa,[t]),{done:d,error:u}=function(e){let t=(0,E.useMemo)(()=>({draw:{url:e.fonts.draw,format:e.fonts.draw.split(".").pop()},serif:{url:e.fonts.serif,format:e.fonts.serif.split(".").pop()},sansSerif:{url:e.fonts.sansSerif,format:e.fonts.sansSerif.split(".").pop()},monospace:{url:e.fonts.monospace,format:e.fonts.monospace.split(".").pop()}}),[e]),n=[pm("tldraw_draw",t.draw),pm("tldraw_serif",t.serif),pm("tldraw_sans",t.sansSerif),pm("tldraw_mono",t.monospace)];return{error:n.some(e=>1===e),done:!n.some(e=>2===e)}}(c),{pageId:h,bounds:p,scale:f,background:g,padding:y,darkMode:b,preserveAspectRatio:x,format:w="svg"}=e;return((0,E.useLayoutEffect)(()=>{if(!i||!l||!d)return;let e=!1,t=document.createElement("div");i.appendChild(t),i.classList.add("tl-container","tl-theme__light");let n=new m.MLE({store:l,shapeUtils:a??[],tools:[],getContainer:()=>t});h&&n.setCurrentPage(h);let o=n.getCurrentPageShapeIds();return async function(){let t=await n.getSvg([...o],{bounds:p,scale:f,background:g,padding:y,darkMode:b,preserveAspectRatio:x});if(t&&!e){if("svg"===w){let n=await aq(t);if(!e){let e=new Blob([n],{type:"image/svg+xml"}),t=URL.createObjectURL(e);r(t)}}else if("png"===w){let i=await aX(t,n.environment.isSafari,{type:w,quality:1,scale:2});if(i&&!e){let e=URL.createObjectURL(i);r(e)}}}n.dispose()}(),()=>{e=!0}},[w,i,l,a,h,p,f,g,y,b,x,d,u]),u)?(0,_.jsx)(m.CsX,{children:"Could not load assets."}):d?(0,_.jsx)("div",{ref:o,style:{position:"relative",width:"100%",height:"100%"},children:n&&(0,_.jsx)("img",{src:n,style:{width:"100%",height:"100%"}})}):(0,_.jsx)(m.a_T,{children:"Loading assets..."})});var py=((l=py||{}).Sticky="sticky",l.Ellipse="ellipse",l.Rectangle="rectangle",l.Triangle="triangle",l.Draw="draw",l.Arrow="arrow",l.Text="text",l.Group="group",l.Image="image",l.Video="video",l),pb=((c=pb||{}).White="white",c.LightGray="lightGray",c.Gray="gray",c.Black="black",c.Green="green",c.Cyan="cyan",c.Blue="blue",c.Indigo="indigo",c.Violet="violet",c.Red="red",c.Orange="orange",c.Yellow="yellow",c),px=((d=px||{}).Small="small",d.Medium="medium",d.Large="large",d),pw=((u=pw||{}).Draw="draw",u.Solid="solid",u.Dashed="dashed",u.Dotted="dotted",u),pv=((h=pv||{}).Start="start",h.Middle="middle",h.End="end",h.Justify="justify",h),pS=((p=pS||{}).Script="script",p.Sans="sans",p.Serif="serif",p.Mono="mono",p),pk=((f=pk||{}).Arrow="arrow",f),pj=((g=pj||{}).Image="image",g.Video="video",g);m.T.object({tldrawFileFormatVersion:m.T.nonZeroInteger,schema:m.T.object({schemaVersion:m.T.positiveInteger,storeVersion:m.T.positiveInteger,recordVersions:m.T.dict(m.T.string,m.T.object({version:m.T.positiveInteger,subTypeVersions:m.T.dict(m.T.string,m.T.positiveInteger).optional(),subTypeKey:m.T.string.optional()}))}),records:m.T.arrayOf(m.T.object({id:m.T.string,typeName:m.T.string}).allowUnknownProperties())})},189:function(e,t,n){"use strict";n.d(t,{ZJ:function(){return eB},TA:function(){return eO},Yk:function(){return ef},AN:function(){return u},R_:function(){return eC},qi:function(){return e_},ci:function(){return eI},pp:function(){return eT},p6:function(){return eA},Y8:function(){return eM},Xo:function(){return e3},ST:function(){return e$},HO:function(){return e5},Lu:function(){return eq},Zu:function(){return e4},iS:function(){return B},a2:function(){return tE},t8:function(){return tl},ez:function(){return E},fV:function(){return em},G4:function(){return q},PQ:function(){return T},LV:function(){return F},Vm:function(){return ez},si:function(){return eR},h9:function(){return eH},qU:function(){return eF},F1:function(){return eS},HH:function(){return t_},_l:function(){return eW},wu:function(){return eV},BF:function(){return e1},gB:function(){return eJ},DW:function(){return eQ},gR:function(){return e8},k7:function(){return e2},P3:function(){return e7},eG:function(){return e6},y6:function(){return eE},Bz:function(){return tC},DR:function(){return ek},c4:function(){return tt},A7:function(){return te},J1:function(){return tr},VW:function(){return tn},y5:function(){return ta},Fc:function(){return to},r5:function(){return C},VV:function(){return ew},YT:function(){return ev},FH:function(){return th},BG:function(){return td},C_:function(){return tg},m0:function(){return tp}
209,CF:function(){return S},u5:function(){return A},pL:function(){return tb},XB:function(){return tm},lY:function(){return tv},p$:function(){return tx}});var r=n(4074);function i(e){return r.T.string.refine(t=>{if(!t.startsWith(`${e}:`))throw Error(`${e} ID must start with "${e}:"`);return t})}let o=i("asset");function s(e,t){return r.T.object({id:o,typeName:r.T.literal("asset"),type:r.T.literal(e),props:t,meta:r.T.jsonValue})}n(42869);var a=n(37665);let l=r.T.model("camera",r.T.object({typeName:r.T.literal("camera"),id:i("camera"),x:r.T.number,y:r.T.number,z:r.T.number,meta:r.T.jsonValue})),c={AddMeta:1},d=(0,a.zn)({currentVersion:c.AddMeta,migrators:{[c.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),u=(0,a.ju)("camera",{validator:l,migrations:d,scope:"session"}).withDefaultProperties(()=>({x:0,y:0,z:1,meta:{}})),h=r.T.object({x:r.T.number,y:r.T.number,z:r.T.number.optional()}),p=r.T.object({x:r.T.number,y:r.T.number,w:r.T.number,h:r.T.number}),f=new Set(["none","default","pointer","cross","grab","rotate","grabbing","resize-edge","resize-corner","text","move","ew-resize","ns-resize","nesw-resize","nwse-resize","nesw-rotate","nwse-rotate","swne-rotate","senw-rotate","zoom-in","zoom-out"]),g=r.T.setEnum(f),m=r.T.object({type:g,rotation:r.T.number}),y=r.T.number.check(e=>{if(e<0||e>1)throw new r.T.ValidationError("Opacity must be between 0 and 1")}),b=new Set(["accent","white","black","selection-stroke","selection-fill","laser","muted-1"]),x=r.T.setEnum(b),w=new Set(["starting","paused","active","stopping"]),v=r.T.object({id:r.T.string,points:r.T.arrayOf(h),size:r.T.positiveNumber,color:x,opacity:r.T.number,state:r.T.setEnum(w),delay:r.T.number,shrink:r.T.number,taper:r.T.boolean}),S=i("page"),k=r.T.model("page",r.T.object({typeName:r.T.literal("page"),id:S,name:r.T.string,index:r.T.indexKey,meta:r.T.jsonValue})),j={AddMeta:1},_=(0,a.zn)({currentVersion:j.AddMeta,migrators:{[j.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),E=(0,a.ju)("page",{validator:k,migrations:_,scope:"document"}).withDefaultProperties(()=>({meta:{}}));function C(e){return E.isId(e)}i("instance");let P={AddTransparentExportBgs:1,RemoveDialog:2,AddToolLockMode:3,RemoveExtraPropsForNextShape:4,AddLabelColor:5,AddFollowingUserId:6,RemoveAlignJustify:7,AddZoom:8,AddVerticalAlign:9,AddScribbleDelay:10,RemoveUserId:11,AddIsPenModeAndIsGridMode:12,HoistOpacity:13,AddChat:14,AddHighlightedUserIds:15,ReplacePropsForNextShapeWithStylesForNextShape:16,AddMeta:17,RemoveCursorColor:18,AddLonelyProperties:19,ReadOnlyReadonly:20,AddHoveringCanvas:21,AddScribbles:22,AddInset:23,AddDuplicateProps:24},I=(0,a.zn)({currentVersion:P.AddDuplicateProps,migrators:{[P.AddTransparentExportBgs]:{up:e=>({...e,exportBackground:!0}),down:({exportBackground:e,...t})=>t},[P.RemoveDialog]:{up:({dialog:e,...t})=>t,down:e=>({...e,dialog:null})},[P.AddToolLockMode]:{up:e=>({...e,isToolLocked:!1}),down:({isToolLocked:e,...t})=>t},[P.RemoveExtraPropsForNextShape]:{up:({propsForNextShape:e,...t})=>({...t,propsForNextShape:Object.fromEntries(Object.entries(e).filter(([e])=>["color","labelColor","dash","fill","size","font","align","verticalAlign","icon","geo","arrowheadStart","arrowheadEnd","spline"].includes(e)))}),down:e=>e},[P.AddLabelColor]:{up:({propsForNextShape:e,...t})=>({...t,propsForNextShape:{...e,labelColor:"black"}}),down:e=>{let{labelColor:t,...n}=e.propsForNextShape;return{...e,propsForNextShape:{...n}}}},[P.AddFollowingUserId]:{up:e=>({...e,followingUserId:null}),down:({followingUserId:e,...t})=>t},[P.RemoveAlignJustify]:{up:e=>{let t=e.propsForNextShape.align;return"justify"===t&&(t="start"),{...e,propsForNextShape:{...e.propsForNextShape,align:t}}},down:e=>({...e})},[P.AddZoom]:{up:e=>({...e,zoomBrush:null}),down:({zoomBrush:e,...t})=>t},[P.AddVerticalAlign]:{up:e=>({...e,propsForNextShape:{...e.propsForNextShape,verticalAlign:"middle"}}),down:e=>{let{verticalAlign:t,...n}=e.propsForNextShape;return{...e,propsForNextShape:n}}},[P.AddScribbleDelay]:{up:e=>null!==e.scribble?{...e,scribble:{...e.scribble,delay:0}}:{...e},down:e=>{if(null!==e.scribble){let{delay:t,...n}=e.scribble;return{...e,scribble:n}}return{...e}}},[P.RemoveUserId]:{up:({userId:e,...t})=>t,down:e=>({...e,userId:"user:none"})},[P.AddIsPenModeAndIsGridMode]:{up:e=>({...e,isPenMode:!1,isGridMode:!1}),down:({isPenMode:e,isGridMode:t,...n})=>n},[P.HoistOpacity]:{up:({propsForNextShape:{opacity:e,...t},...n})=>({...n,opacityForNextShape:Number(e??"1"),propsForNextShape:t}),down:({opacityForNextShape:e,...t})=>({...t,propsForNextShape:{...t.propsForNextShape,opacity:e<.175?"0.1":e<.375?"0.25":e<.625?"0.5":e<.875?"0.75":"1"}})},[P.AddChat]:{up:e=>({...e,chatMessage:"",isChatting:!1}),down:({chatMessage:e,isChatting:t,...n})=>n},[P.AddHighlightedUserIds]:{up:e=>({...e,highlightedUserIds:[]}),down:({highlightedUserIds:e,...t})=>t},[P.ReplacePropsForNextShapeWithStylesForNextShape]:{up:({propsForNextShape:e,...t})=>({...t,stylesForNextShape:{}}),down:({stylesForNextShape:e,...t})=>({...t,propsForNextShape:{color:"black",labelColor:"black",dash:"draw",fill:"none",size:"m",icon:"file",font:"draw",align:"middle",verticalAlign:"middle",geo:"rectangle",arrowheadStart:"none",arrowheadEnd:"arrow",spline:"line"}})},[P.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})},[P.RemoveCursorColor]:{up:e=>{let{color:t,...n}=e.cursor;return{...e,cursor:n}},down:e=>({...e,cursor:{...e.cursor,color:"black"}})}
209,[P.AddLonelyProperties]:{up:e=>({...e,canMoveCamera:!0,isFocused:!1,devicePixelRatio:1,isCoarsePointer:!1,openMenus:[],isChangingStyle:!1,isReadOnly:!1}),down:({canMoveCamera:e,isFocused:t,devicePixelRatio:n,isCoarsePointer:r,openMenus:i,isChangingStyle:o,isReadOnly:s,...a})=>({...a})},[P.ReadOnlyReadonly]:{up:({isReadOnly:e,...t})=>({...t,isReadonly:e}),down:({isReadonly:e,...t})=>({...t,isReadOnly:e})},[P.AddHoveringCanvas]:{up:e=>({...e,isHoveringCanvas:null}),down:({isHoveringCanvas:e,...t})=>({...t})},[P.AddScribbles]:{up:({scribble:e,...t})=>({...t,scribbles:[]}),down:({scribbles:e,...t})=>({...t,scribble:null})},[P.AddInset]:{up:e=>({...e,insets:[!1,!1,!1,!1]}),down:({insets:e,...t})=>({...t})},[P.AddDuplicateProps]:{up:e=>({...e,duplicateProps:null}),down:({duplicateProps:e,...t})=>({...t})}}}),T="instance:instance",M=r.T.string.refine(e=>{if(!e.startsWith("page:")&&!e.startsWith("shape:"))throw Error('Parent ID must start with "page:" or "shape:"');return e}),A=i("shape"),$=r.T.model("instance_page_state",r.T.object({typeName:r.T.literal("instance_page_state"),id:i("instance_page_state"),pageId:S,selectedShapeIds:r.T.arrayOf(A),hintingShapeIds:r.T.arrayOf(A),erasingShapeIds:r.T.arrayOf(A),hoveredShapeId:A.nullable(),editingShapeId:A.nullable(),croppingShapeId:A.nullable(),focusedGroupId:A.nullable(),meta:r.T.jsonValue})),D={AddCroppingId:1,RemoveInstanceIdAndCameraId:2,AddMeta:3,RenameProperties:4,RenamePropertiesAgain:5},O=(0,a.zn)({currentVersion:D.RenamePropertiesAgain,migrators:{[D.AddCroppingId]:{up:e=>({...e,croppingShapeId:null}),down:({croppingShapeId:e,...t})=>t},[D.RemoveInstanceIdAndCameraId]:{up:({instanceId:e,cameraId:t,...n})=>n,down:e=>({...e,instanceId:T,cameraId:u.createId("void")})},[D.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})},[D.RenameProperties]:{up:e=>{let{selectedShapeIds:t,hintingShapeIds:n,erasingShapeIds:r,hoveredShapeId:i,editingShapeId:o,croppingShapeId:s,focusedGroupId:a,...l}=e;return{selectedShapeIds:t,hintingShapeIds:n,erasingShapeIds:r,hoveredShapeId:i,editingShapeId:o,croppingShapeId:s,focusedGroupId:a,...l}},down:e=>{let{selectedShapeIds:t,hintingShapeIds:n,erasingShapeIds:r,hoveredShapeId:i,editingShapeId:o,croppingShapeId:s,focusedGroupId:a,...l}=e;return{selectedShapeIds:t,hintingShapeIds:n,erasingShapeIds:r,hoveredShapeId:i,editingShapeId:o,croppingShapeId:s,focusedGroupId:a,...l}}},[D.RenamePropertiesAgain]:{up:e=>{let{selectedIds:t,hintingIds:n,erasingIds:r,hoveredId:i,editingId:o,croppingShapeId:s,croppingId:a,focusLayerId:l,...c}=e;return{...c,selectedShapeIds:t,hintingShapeIds:n,erasingShapeIds:r,hoveredShapeId:i,editingShapeId:o,croppingShapeId:s??a??null,focusedGroupId:l}},down:e=>{let{selectedShapeIds:t,hintingShapeIds:n,erasingShapeIds:r,hoveredShapeId:i,editingShapeId:o,croppingShapeId:s,focusedGroupId:a,...l}=e;return{...l,selectedIds:t,hintingIds:n,erasingIds:r,hoveredId:i,editingId:o,croppingId:s,focusLayerId:a}}}}}),B=(0,a.ju)("instance_page_state",{migrations:O,validator:$,scope:"session"}).withDefaultProperties(()=>({editingShapeId:null,croppingShapeId:null,selectedShapeIds:[],hoveredShapeId:null,erasingShapeIds:[],hintingShapeIds:[],focusedGroupId:null,meta:{}})),L=r.T.model("pointer",r.T.object({typeName:r.T.literal("pointer"),id:i("pointer"),x:r.T.number,y:r.T.number,lastActivityTimestamp:r.T.number,meta:r.T.jsonValue})),R={AddMeta:1},N=(0,a.zn)({currentVersion:R.AddMeta,migrators:{[R.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),z=(0,a.ju)("pointer",{validator:L,migrations:N,scope:"session"}).withDefaultProperties(()=>({x:0,y:0,lastActivityTimestamp:0,meta:{}})),F=z.createId("pointer"),U=r.T.model("instance_presence",r.T.object({typeName:r.T.literal("instance_presence"),id:i("instance_presence"),userId:r.T.string,userName:r.T.string,lastActivityTimestamp:r.T.number,followingUserId:r.T.string.nullable(),cursor:r.T.object({x:r.T.number,y:r.T.number,type:g,rotation:r.T.number}),color:r.T.string,camera:r.T.object({x:r.T.number,y:r.T.number,z:r.T.number}),screenBounds:p,selectedShapeIds:r.T.arrayOf(i("shape")),currentPageId:i("page"),brush:p.nullable(),scribbles:r.T.arrayOf(v),chatMessage:r.T.string,meta:r.T.jsonValue})),H={AddScribbleDelay:1,RemoveInstanceId:2,AddChatMessage:3,AddMeta:4,Re
209nameSelectedShapeIds:5},Z=(0,a.zn)({currentVersion:H.RenameSelectedShapeIds,migrators:{[H.AddScribbleDelay]:{up:e=>null!==e.scribble?{...e,scribble:{...e.scribble,delay:0}}:{...e},down:e=>{if(null!==e.scribble){let{delay:t,...n}=e.scribble;return{...e,scribble:n}}return{...e}}},[H.RemoveInstanceId]:{up:({instanceId:e,...t})=>t,down:e=>({...e,instanceId:T})},[H.AddChatMessage]:{up:e=>({...e,chatMessage:""}),down:({chatMessage:e,...t})=>t},[H.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})},[H.RenameSelectedShapeIds]:{up:e=>{let{selectedShapeIds:t,...n}=e;return{selectedShapeIds:t,...n}},down:e=>{let{selectedShapeIds:t,...n}=e;return{selectedShapeIds:t,...n}}}}}),V=(0,a.ju)("instance_presence",{migrations:Z,validator:U,scope:"presence"}).withDefaultProperties(()=>({lastActivityTimestamp:0,followingUserId:null,color:"#FF0000",camera:{x:0,y:0,z:1},cursor:{x:0,y:0,type:"default",rotation:0},screenBounds:{x:0,y:0,w:1,h:1},selectedShapeIds:[],brush:null,scribbles:[],chatMessage:"",meta:{}}));var K=n(85947);let W=r.T.model("document",r.T.object({typeName:r.T.literal("document"),id:r.T.literal("document:document"),gridSize:r.T.number,name:r.T.string,meta:r.T.jsonValue})),Y={AddName:1,AddMeta:2},G=(0,a.zn)({currentVersion:Y.AddMeta,migrators:{[Y.AddName]:{up:e=>({...e,name:""}),down:({name:e,...t})=>t},[Y.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),X=(0,a.ju)("document",{migrations:G,validator:W,scope:"document"}).withDefaultProperties(()=>({gridSize:10,name:"",meta:{}})),q=X.createId("document");function J(e,t){return e.index<t.index?-1:e.index>t.index?1:0}function Q(e){"asset"===e.typeName&&("src"in e&&(e.src="<redacted>"),"src"in e.props&&(e.props.src="<redacted>"))}let ee=({error:e,phase:t,record:n,recordBefore:r})=>{throw(0,K.lw)(e,{tags:{origin:"store.validateRecord",storePhase:t,isExistingValidationIssue:"initialize"===t},extras:{recordBefore:r?Q((0,K.v4)(r)):void 0,recordAfter:Q((0,K.v4)(n))}}),e};function et(e){let t=e.query.ids("page"),n=()=>{if(!e.has(q))return e.put([X.create({id:q,name:e.props.defaultName})]),n();if(!e.has(F))return e.put([z.create({id:F})]),n();let r=t.get();if(0===r.size)return e.put([E.create({id:"page:page",name:"Page 1",index:"a1",meta:{}})]),n();let i=e.get(T);if(!i)return e.put([e.schema.types.instance.create({id:T,currentPageId:[...r].map(t=>e.get(t)).sort(J)[0].id,exportBackground:!0})]),n();if(!r.has(i.currentPageId))return e.put([{...i,currentPageId:[...r].map(t=>e.get(t)).sort(J)[0].id}]),n();let o=new Set,s=new Set;for(let t of r){let n=B.createId(t);e.has(n)||o.add(n);let r=u.createId(t);e.has(r)||s.add(r)}o.size>0&&e.put([...o].map(e=>B.create({id:e,pageId:B.parseId(e)}))),s.size>0&&e.put([...s].map(e=>u.create({id:e})))};return n}let en=s("bookmark",r.T.object({title:r.T.string,description:r.T.string,image:r.T.string,src:r.T.srcUrl.nullable()})),er={MakeUrlsValid:1},ei=(0,a.zn)({currentVersion:er.MakeUrlsValid,migrators:{[er.MakeUrlsValid]:{up:e=>{let t=e.props.src;return t&&!r.T.srcUrl.isValid(t)?{...e,props:{...e.props,src:""}}:e},down:e=>e}}}),eo=s("image",r.T.object({w:r.T.number,h:r.T.number,name:r.T.string,isAnimated:r.T.boolean,mimeType:r.T.string.nullable(),src:r.T.srcUrl.nullable()})),es={AddIsAnimated:1,RenameWidthHeight:2,MakeUrlsValid:3},ea=(0,a.zn)({currentVersion:es.MakeUrlsValid,migrators:{[es.AddIsAnimated]:{up:e=>({...e,props:{...e.props,isAnimated:!1}}),down:e=>{let{isAnimated:t,...n}=e.props;return{...e,props:n}}},[es.RenameWidthHeight]:{up:e=>{let{width:t,height:n,...r}=e.props;return{...e,props:{w:t,h:n,...r}}},down:e=>{let{w:t,h:n,...r}=e.props;return{...e,props:{width:t,height:n,...r}}}},[es.MakeUrlsValid]:{up:e=>{let t=e.props.src;return t&&!r.T.srcUrl.isValid(t)?{...e,props:{...e.props,src:""}}:e},down:e=>e}}}),el=s("video",r.T.object({w:r.T.number,h:r.T.number,name:r.T.string,isAnimated:r.T.boolean,mimeType:r.T.string.nullable(),src:r.T.srcUrl.nullable()})),ec={AddIsAnimated:1,RenameWidthHeight:2,MakeUrlsValid:3},ed=(0,a.zn)({currentVersion:ec.MakeUrlsValid,migrators:{[ec.AddIsAnimated]:{up:e=>({...e,props:{...e.props,isAnimated:!1}}),down:e=>{let{isAnimated:t,...n}=e.props;return{...e,props:n}}},[ec.RenameWidthHeight]:{up:e=>{let{width:t,height:n,...r}=e.props;return{...e,props:{w:t,h:n,...r}}},down:e=>{let{w:t,h:n,...r}=e.props;return{...e,props:{width:t,height:n,...r}}}},[ec.MakeUrlsValid]:{up:e=>{let t=e.props.src;return t&&!r.T.srcUrl.isValid(t)?{...e,props:{...e.props,src:""}}:e},down:e=>e}}}),eu=r.T.model("asset",r.T.union("type",{image:eo,video:el,bookmark:en}
209)),eh={AddMeta:1},ep=(0,a.zn)({subTypeKey:"type",subTypeMigrations:{image:ea,video:ed,bookmark:ei},currentVersion:eh.AddMeta,migrators:{[eh.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),ef=(0,a.ju)("asset",{migrations:ep,validator:eu,scope:"document"}).withDefaultProperties(()=>({meta:{}})),eg=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((e,t)=>((t&=63)<36?e+=t.toString(36):t<62?e+=(t-26).toString(36).toUpperCase():t>62?e+="-":e+="_",e),"");class em{constructor(e,t,n){this.id=e,this.defaultValue=t,this.type=n}static define(e,t){let{defaultValue:n,type:i=r.T.any}=t;return new em(e,n,i)}static defineEnum(e,t){let{defaultValue:n,values:r}=t;return new ey(e,n,r)}validate(e){return this.type.validate(e)}validateUsingKnownGoodVersion(e,t){return this.type.validateUsingKnownGoodVersion?this.type.validateUsingKnownGoodVersion(e,t):this.validate(t)}}class ey extends em{constructor(e,t,n){super(e,t,r.T.literalEnum(...n)),this.values=n}}let eb={AddIsLocked:1,HoistOpacity:2,AddMeta:3},ex=(0,a.zn)({currentVersion:eb.AddMeta,migrators:{[eb.AddIsLocked]:{up:e=>({...e,isLocked:!1}),down:e=>{let{isLocked:t,...n}=e;return{...n}}},[eb.HoistOpacity]:{up:({props:{opacity:e,...t},...n})=>({...n,opacity:Number(e??"1"),props:t}),down:({opacity:e,...t})=>({...t,props:{...t.props,opacity:e<.175?"0.1":e<.375?"0.25":e<.625?"0.5":e<.875?"0.75":"1"}})},[eb.AddMeta]:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}});function ew(e){return!!e&&"shape"===e.typeName}function ev(e){return!!e&&e.startsWith("shape:")}function eS(e){return`shape:${e??eg()}`}function ek(e){let t=new Map;for(let[n,r]of Object.entries(e))if(r instanceof em){if(t.has(r))throw Error(`Duplicate style prop ${r.id}. Each style prop can only be used once within a shape.`);t.set(r,n)}return t}let ej=["black","grey","light-violet","violet","blue","light-blue","yellow","orange","green","light-green","light-red","red"],e_={lightMode:{id:"light",text:"#000000",background:"rgb(249, 250, 251)",solid:"#fcfffe",black:{solid:"#1d1d1d",semi:"#e8e8e8",pattern:"#494949",highlight:{srgb:"#fddd00",p3:"color(display-p3 0.972 0.8705 0.05)"}},blue:{solid:"#4263eb",semi:"#dce1f8",pattern:"#6681ee",highlight:{srgb:"#10acff",p3:"color(display-p3 0.308 0.6632 0.9996)"}},green:{solid:"#099268",semi:"#d3e9e3",pattern:"#39a785",highlight:{srgb:"#00ffc8",p3:"color(display-p3 0.2536 0.984 0.7981)"}},grey:{solid:"#adb5bd",semi:"#eceef0",pattern:"#bcc3c9",highlight:{srgb:"#cbe7f1",p3:"color(display-p3 0.8163 0.9023 0.9416)"}},"light-blue":{solid:"#4dabf7",semi:"#ddedfa",pattern:"#6fbbf8",highlight:{srgb:"#00f4ff",p3:"color(display-p3 0.1512 0.9414 0.9996)"}},"light-green":{solid:"#40c057",semi:"#dbf0e0",pattern:"#65cb78",highlight:{srgb:"#65f641",p3:"color(display-p3 0.563 0.9495 0.3857)"}},"light-red":{solid:"#ff8787",semi:"#f4dadb",pattern:"#fe9e9e",highlight:{srgb:"#ff7fa3",p3:"color(display-p3 0.9988 0.5301 0.6397)"}},"light-violet":{solid:"#e599f7",semi:"#f5eafa",pattern:"#e9acf8",highlight:{srgb:"#ff88ff",p3:"color(display-p3 0.9676 0.5652 0.9999)"}},orange:{solid:"#f76707",semi:"#f8e2d4",pattern:"#f78438",highlight:{srgb:"#ffa500",p3:"color(display-p3 0.9988 0.6905 0.266)"}},red:{solid:"#e03131",semi:"#f4dadb",pattern:"#e55959",highlight:{srgb:"#ff636e",p3:"color(display-p3 0.9992 0.4376 0.45)"}},violet:{solid:"#ae3ec9",semi:"#ecdcf2",pattern:"#bd63d3",highlight:{srgb:"#c77cff",p3:"color(display-p3 0.7469 0.5089 0.9995)"}},yellow:{solid:"#ffc078",semi:"#f9f0e6",pattern:"#fecb92",highlight:{srgb:"#fddd00",p3:"color(display-p3 0.972 0.8705 0.05)"}}},darkMode:{id:"dark",text:"hsl(210, 17%, 98%)",background:"hsl(240, 5%, 8%)",solid:"#010403",black:{solid:"#e1e1e1",semi:"#2c3036",pattern:"#989898",highlight:{srgb:"#d2b700",p3:"color(display-p3 0.8078 0.7225 0.0312)"}},blue:{solid:"#4263eb",semi:"#262d40",pattern:"#3a4b9e",highlight:{srgb:"#0079d2",p3:"color(display-p3 0.0032 0.4655 0.7991)"}},green:{solid:"#099268",semi:"#253231",pattern:"#366a53",highlight:{srgb:"#009774",p3:"color(display-p3 0.0085 0.582 0.4604)"}},grey:{solid:"#9398b0",semi:"#33373c",pattern:"#7c8187",highlight:{srgb:"#9cb4cb",p3:"color(display-p3 0.6299 0.7012 0.7856)"}},"light-blue":{solid:"#4dabf7",semi:"#2a3642",pattern:"#4d7aa9",highlight:{srgb:"#00bdc8",p3:"color(display-p3 0.0023 0.7259 0.7735)"}},"light-green":{solid:"#40c057",semi:"#2a3830",pattern:"#4e874e",highlight:{srgb:"#00a000",p3:"color(display-p3 0.2711 0.6172 0.0195)"}},"light-red":{solid:"#ff8787",semi:"#3b3235",pattern:"#a56767",highlight:{srgb:"#db005b",p3:"color(display-p3 0.7849 0.0585 0.3589)"}},"light-violet":{solid:"#e599f7",semi:"#383442",pattern:"#9770a9",highlight:{srgb:"#c400c7",p3:"color(display-p3 0.7024 0.0403 0.753)"}},orange:{solid:"#f76707",semi:"#3a2e2a",pattern:"#9f552d",highlight:{srgb:"#d07a00",p3:"color(display-p3 0.7699 0.4937 0.0085)"}},red:{solid:"#e03131",semi:"#36292b",pattern:"#8f3734",highlight:{srgb:"#de002c",p3:"color(display-p3 0.7978 0.0509 0.2035)"}},violet:{solid:"#ae3ec9",semi:"#31293c",pattern:"#763a8b",highlight:{srgb:"#9e00ee",p3:"color(display-p3 0.5651 0.00
20979 0.8986)"}},yellow:{solid:"#ffc034",semi:"#3c3934",pattern:"#fecb92",highlight:{srgb:"#d2b700",p3:"color(display-p3 0.8078 0.7225 0.0312)"}}}};function eE(e){return e.isDarkMode?e_.darkMode:e_.lightMode}let eC=em.defineEnum("tldraw:color",{defaultValue:"black",values:ej}),eP=em.defineEnum("tldraw:labelColor",{defaultValue:"black",values:ej}),eI=em.defineEnum("tldraw:dash",{defaultValue:"draw",values:["draw","solid","dashed","dotted"]}),eT=em.defineEnum("tldraw:fill",{defaultValue:"none",values:["none","semi","solid","pattern"]}),eM=em.defineEnum("tldraw:font",{defaultValue:"draw",values:["draw","sans","serif","mono"]}),eA={draw:"'tldraw_draw', sans-serif",sans:"'tldraw_sans', sans-serif",serif:"'tldraw_serif', serif",mono:"'tldraw_mono', monospace"},e$=em.defineEnum("tldraw:size",{defaultValue:"m",values:["s","m","l","xl"]}),eD=["arrow","triangle","square","dot","pipe","diamond","inverted","bar","none"],eO=em.defineEnum("tldraw:arrowheadStart",{defaultValue:"none",values:eD}),eB=em.defineEnum("tldraw:arrowheadEnd",{defaultValue:"arrow",values:eD}),eL=r.T.union("type",{binding:r.T.object({type:r.T.literal("binding"),boundShapeId:A,normalizedAnchor:h,isExact:r.T.boolean,isPrecise:r.T.boolean}),point:r.T.object({type:r.T.literal("point"),x:r.T.number,y:r.T.number})}),eR={labelColor:eP,color:eC,fill:eT,dash:eI,size:e$,arrowheadStart:eO,arrowheadEnd:eB,font:eM,start:eL,end:eL,bend:r.T.number,text:r.T.string,labelPosition:r.T.number},eN={AddLabelColor:1,AddIsPrecise:2,AddLabelPosition:3},ez=(0,a.zn)({currentVersion:eN.AddLabelPosition,migrators:{[eN.AddLabelColor]:{up:e=>({...e,props:{...e.props,labelColor:"black"}}),down:e=>{let{labelColor:t,...n}=e.props;return{...e,props:n}}},[eN.AddIsPrecise]:{up:e=>{let{start:t,end:n}=e.props;return{...e,props:{...e.props,start:"binding"===t.type?{...t,isPrecise:!(.5===t.normalizedAnchor.x&&.5===t.normalizedAnchor.y)}:t,end:"binding"===n.type?{...n,isPrecise:!(.5===n.normalizedAnchor.x&&.5===n.normalizedAnchor.y)}:n}}},down:e=>{let{start:t,end:n}=e.props,r={...t},i={...n};return"binding"===r.type&&(r.isPrecise||(r.normalizedAnchor={x:.5,y:.5}),delete r.isPrecise),"binding"===i.type&&(i.isPrecise||(i.normalizedAnchor={x:.5,y:.5}),delete i.isPrecise),{...e,props:{...e.props,start:r,end:i}}}},[eN.AddLabelPosition]:{up:e=>({...e,props:{...e.props,labelPosition:.5}}),down:e=>{let{labelPosition:t,...n}=e.props;return{...e,props:n}}}}}),eF={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,assetId:o.nullable(),url:r.T.linkUrl},eU={NullAssetId:1,MakeUrlsValid:2},eH=(0,a.zn)({currentVersion:eU.MakeUrlsValid,migrators:{[eU.NullAssetId]:{up:e=>void 0===e.props.assetId?{...e,props:{...e.props,assetId:null}}:e,down:e=>{if(null===e.props.assetId){let{assetId:t,...n}=e.props;return{...e,props:n}}return e}},[eU.MakeUrlsValid]:{up:e=>{let t=e.props.url;return""===t||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}}},down:e=>e}}}),eZ=r.T.object({type:r.T.literalEnum("free","straight"),points:r.T.arrayOf(h)}),eV={color:eC,fill:eT,dash:eI,size:e$,segments:r.T.arrayOf(eZ),isComplete:r.T.boolean,isClosed:r.T.boolean,isPen:r.T.boolean},eK={AddInPen:1},eW=(0,a.zn)({currentVersion:eK.AddInPen,migrators:{[eK.AddInPen]:{up:e=>{let{points:t}=e.props.segments[0];if(0===t.length)return{...e,props:{...e.props,isPen:!1}};let n=!(0===t[0].z||.5===t[0].z);return t[1]&&(n=n&&!(0===t[1].z||.5===t[1].z)),{...e,props:{...e.props,isPen:n}}},down:e=>{let{isPen:t,...n}=e.props;return{...e,props:{...n}}}}}});var eY=n(34406);let eG=/(^\/r\/[^/]+\/?$)/,eX=e=>{try{return new URL(e)}catch(e){return}},eq=[{type:"tldraw",title:"tldraw",hostnames:["beta.tldraw.com","tldraw.com","localhost:3000"],minWidth:300,minHeight:300,width:720,height:500,doesResize:!0,canUnmount:!0,overridePermissions:{"allow-top-navigation":!0},toEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(eG))return e},fromEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(eG))return e}},{type:"figma",title:"Figma",hostnames:["figma.com"],width:720,height:500,doesResize:!0,canUnmount:!0,toEmbedUrl:e=>{if(e.match(/https:\/\/([\w\.-]+\.)?figma.com\/(file|proto)\/([0-9a-zA-Z]{22,128})(?:\/.*)?$/)&&!e.includes("figma.com/embed"))return`https://www.figma.com/embed?embed_host=share&url=${e}`},fromEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/^\/embed\/?$/)){let e=t.searchParams.get("url");
209if(e)return e}}},{type:"google_maps",title:"Google Maps",hostnames:["google.*"],width:720,height:500,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{if(e.includes("/maps/")){let t;let n=e.match(/@(.*),(.*),(.*)z/);if(n){let[,r,i,o]=n,s=new URL(e).host.replace("www.","");t=`https://${s}/maps/embed/v1/view?key=${eY.env.NEXT_PUBLIC_GC_API_KEY}&center=${r},${i}&zoom=${o}`}else t="";return t}},fromEmbedUrl:e=>{let t=eX(e);if(!t)return;let n=t.pathname.match(/^\/maps\/embed\/v1\/view\/?$/);if(n&&t.searchParams.has("center")&&t.searchParams.get("zoom")){let e=t.searchParams.get("zoom"),[n,r]=t.searchParams.get("center").split(",");return`https://www.google.com/maps/@${n},${r},${e}z`}}},{type:"val_town",title:"Val Town",hostnames:["val.town"],minWidth:260,minHeight:100,width:720,height:500,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{let t=eX(e),n=t&&t.pathname.match(/\/v\/([^/]+)\/?/);if(n)return`https://www.val.town/embed/${n[1]}`},fromEmbedUrl:e=>{let t=eX(e),n=t&&t.pathname.match(/\/embed\/([^/]+)\/?/);if(n)return`https://www.val.town/v/${n[1]}`}},{type:"codesandbox",title:"CodeSandbox",hostnames:["codesandbox.io"],minWidth:300,minHeight:300,width:720,height:500,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{let t=eX(e),n=t&&t.pathname.match(/\/s\/([^/]+)\/?/);if(n)return`https://codesandbox.io/embed/${n[1]}`},fromEmbedUrl:e=>{let t=eX(e),n=t&&t.pathname.match(/\/embed\/([^/]+)\/?/);if(n)return`https://codesandbox.io/s/${n[1]}`}},{type:"codepen",title:"Codepen",hostnames:["codepen.io"],minWidth:300,minHeight:300,width:520,height:400,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{let t=e.match(/https:\/\/codepen.io\/([^/]+)\/pen\/([^/]+)/);if(t){let[e,n,r]=t;return`https://codepen.io/${n}/embed/${r}`}},fromEmbedUrl:e=>{let t=e.match(/https:\/\/codepen.io\/([^/]+)\/embed\/([^/]+)/);if(t){let[e,n,r]=t;return`https://codepen.io/${n}/pen/${r}`}}},{type:"scratch",title:"Scratch",hostnames:["scratch.mit.edu"],width:520,height:400,doesResize:!1,canUnmount:!1,toEmbedUrl:e=>{let t=e.match(/https?:\/\/scratch.mit.edu\/projects\/([^/]+)/);if(t){let[e,n]=t;return`https://scratch.mit.edu/projects/embed/${n}`}},fromEmbedUrl:e=>{let t=e.match(/https:\/\/scratch.mit.edu\/projects\/embed\/([^/]+)/);if(t){let[e,n]=t;return`https://scratch.mit.edu/projects/${n}`}}},{type:"youtube",title:"YouTube",hostnames:["*.youtube.com","youtube.com","youtu.be"],width:800,height:450,doesResize:!0,canUnmount:!1,overridePermissions:{"allow-presentation":!0},isAspectRatioLocked:!0,toEmbedUrl:e=>{let t=eX(e);if(!t)return;let n=t.hostname.replace(/^www./,"");if("youtu.be"===n){let e=t.pathname.split("/").filter(Boolean)[0];return`https://www.youtube.com/embed/${e}`}if(("youtube.com"===n||"m.youtube.com"===n)&&t.pathname.match(/^\/watch/)){let e=t.searchParams.get("v");return`https://www.youtube.com/embed/${e}`}},fromEmbedUrl:e=>{let t=eX(e);if(!t)return;let n=t.hostname.replace(/^www./,"");if("youtube.com"===n){let e=t.pathname.match(/^\/embed\/([^/]+)\/?/);if(e)return`https://www.youtube.com/watch?v=${e[1]}`}}},{type:"google_calendar",title:"Google Calendar",hostnames:["calendar.google.*"],width:720,height:500,minWidth:460,minHeight:360,doesResize:!0,canUnmount:!1,instructionLink:"https://support.google.com/calendar/answer/41207?hl=en",toEmbedUrl:e=>{let t=eX(e),n=t?.searchParams.get("cid");if(t?.pathname.match(/\/calendar\/u\/0/)&&n){t.pathname="/calendar/embed";let e=Array.from(t.searchParams.keys());for(let n of e)t.searchParams.delete(n);return t.searchParams.set("src",n),t.href}},fromEmbedUrl:e=>{let t=eX(e),n=t?.searchParams.get("src");if(t?.pathname.match(/\/calendar\/embed/)&&n){t.pathname="/calendar/u/0";let e=Array.from(t.searchParams.keys());for(let n of e)t.searchParams.delete(n);return t.searchParams.set("cid",n),t.href}}},{type:"google_slides",title:"Google Slides",hostnames:["docs.google.*"],width:720,height:500,minWidth:460,minHeight:360,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{let t=eX(e);if(t?.pathname.match(/^\/presentation/)&&t?.pathname.match(/\/pub\/?$/)){t.pathname=t.pathname.replace(/\/pub$/,"/embed");let e=Array.from(t.searchParams.keys());for(let n of e)t.searchParams.delete(n);return t.href}},fromEmbedUrl:e=>{let t=eX(e);if(t?.pathname.match(/^\/presentation/)&&t?.pathname.match(/\/embed\/?$/)){t.pathname=t.pathname.replace(/\/embed$/,"/pub");let e=Array.from(t.searchParams.keys());for(let n of e)t.searchParams.delete(n);return t.href}}},{type:"github_gist",title:"GitHub Gist",hostnames:["gist.github.com"],width:720,height:500,doesResize:!0,canUnmount:!0,toEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/\/([^/]+)\/([^/]+)/)){if(!e.split("/").pop())return;return e}},fromEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/\/([^/]+)\/([^/]+)/)){if(!e.split("/").pop())return;return e}}},{type:"replit",title:"Replit",hostnames:["replit.com"],width:720,height:500,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/\/@([^/]+)\/([^/]+)/))return`${e}?embed=true`},fromEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/\/@([^/]+)\/([^/]+)/)&&t.searchParams.has("embed"))return t.searchParams.delete("embed"),t.href}},{type:"felt",title:"Felt",hostnames:["felt.com"],width:720,height:500,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/^\/map\//))return t.origin+"/embed"+t.pathname},fromEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/^\/embed\/map\//))return t.pathname=t.pathname.replace(/^\/embed/,""),t.href}},{type:"spotify",title:"Spotify",hostnames:["open.spotify.com"],width:720,height:500,minHeight:500,overrideOutlineRadius:12,doesResize:!0,canUnmount:!1,toEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/^\/(artist|album)\//))return t.origin+"/embed"+t.pathname},fromEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/^\/embed\/(artist|album)\//))return t.origin+t.pathname.replace(/^\/embed/,"")}},{type:"vimeo",title:"Vimeo",hostnames:["vimeo.com","player.vimeo.com"],width:640,height:360,doesResize:!0,canUnmount:!1,isAspectRatioLocked:!0,toEmbedUrl:e=>{let t=eX(e);if(t&&"vimeo.com"===t.hostname&&t.pathname.match(/^\/[0-9]+/))return"https://player.vimeo.com/video/"+t.pathname.split("/")[1]+"?title=0&byline=0"},fromEmbedUrl:e=>{let t=eX(e);if(t&&"player.vimeo.com"===t.hostname){let e=t.pathname.match(/^\/video\/([^/]+)\/?$/);if(e)return"https://vimeo.com/"+e[1]}}},{type:"excalidraw",title:"Excalidraw",hostnames:["excalidraw.com"],width:720,height:500,doesResize:!0,canUnmount:!1,isAspectRatioLocked:!0,toEmbedUrl:e=>{let t=eX(e);if(t&&t.hash.match(/#room=/))return e},fromEmbedUrl:e=>{let t=eX(e);if(t&&t.hash.match(/#room=/))return e}},{type:"observable",title:"Observable",hostnames:["observablehq.com"],width:720,height:500,doesResize:!0,canUnmount:!1,isAspectRatioLocked:!1,backgroundColor:"#fff",toEmbedUrl:e=>{let t=eX(e);if(t&&t.pathname.match(/^\/@([^/]+)\/([^/]+)\/?$/))return`${t.origin}/embed${t.pathname}?cell=*`;if(t&&t.pathname.match(/^\/d\/([^/]+)\/?$/)){let e=t.pathname.replace(/^\/d/,"");return`${t.origin}/embed${e}?cell=*`}},fromEmbedUrl:e=>{let t=eX(e);return t&&t.pathname.match(/^\/embed\/@([^/]+)\/([^/]+)\/?$/)?`${t.origin}${t.pathname.replace("/embed","")}#cell-*`:t&&t.pathname.match(/^\/embed\/([^/]+)\/?$/)?`${t.origin}${t.pathname.replace("/embed","/d")}#cell-*`:void 0}}],eJ={"allow-downloads-without-user-activation":!1,"allow-downloads":!1,"allow-modals":!1,"allow-orientation-lock":!1,"allow-pointer-lock":!1,"allow-popups":!0,"allow-popups-to-escape-sandbox":!1,"allow-presentation":!1,"allow-storage-access-by-user-activation":!1,"allow-top-navigation":!1,"allow-top-navigation-by-user-activation":!1,"allow-scripts":!0,"allow-same-origin":!0,"allow-forms":!0},eQ={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,url:r.T.string},e0={GenOriginalUrlInEmbed:1,RemoveDoesResize:2,RemoveTmpOldUrl:3,RemovePermissionOverrides:4},e1=(0,a.zn)({currentVersion:e0.RemovePermissionOverrides,migrators:{[e0.GenOriginalUrlInEmbed]:{up:e=>{let t;let n=e.props.url,r=new URL(n).host.replace("www.","");for(let e of eq)if(e.hostnames.includes(r))try{t=e.fromEmbedUrl(n)}catch(e){console.warn(e)}return{...e,props:{...e.props,tmpOldUrl:e.props.url,url:t??""}}},down:e=>{let t=e.props.tmpOldUrl;if(!t||""===t){let n=e.props.url,r=new URL(n).host.replace("www.","");for(let e of eq)if(e.hostnames.includes(r))try{t=e.toEmbedUrl(n)}catch(e){console.warn(e)}}let{tmpOldUrl:n,...r}=e.props;return{...e,props:{...r,url:t??""}}}},[e0.RemoveDoesResize]:{up:e=>{let{doesResize:t,...n}=e.props;return{...e,props:{...n}}},down:e=>({...e,props:{...e.props,doesResize:!0}})},[e0.RemoveTmpOldUrl]:{up:e=>{let{tmpOldUrl:t,...n}=e.props;return{...e,props:{...n}}},down:e=>({...e,props:{...e.props}})},[e0.RemovePermissionOverrides]:{up:e=>{let{overridePermissions:t,...n}=e.props;return{...e,props:{...n}}},down:e=>({...e,props:{...e.props}})}}}),e2={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,name:r.T.string},e8=(0,a.zn)({}),e3=em.defineEnum("tldraw:horizontalAlign",{defaultValue:"middle",values:["start","middle","end","start-legacy","end-legacy","middle-legacy"]}),e5=em.defineEnum("tldraw:verticalAlign",{defaultValue:"middle",values:["start","middle","end"]}),e4=em.defineEnum("tldraw:geo",{defaultValue:"rectangle",values:["cloud","rectangle","ellipse","triangle","diamond","pentagon","hexagon","octagon","star","rhombus","rhombus-2","oval","trapezoid","arrow-right","arrow-left","arrow-up","arrow-down","x-box","check-box"]}),e6={geo:e4,labelColor:eP,color:eC,fill:eT,dash:eI,size:e$,font:eM,align:e3,verticalAlign:e5,url:r.T.linkUrl,w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,growY:r.T.positiveNumber,text:r.T.string},e9={AddUrlProp:1,AddLabelColor:2,RemoveJustify:3,AddCheckBox:4,AddVerticalAlign:5,MigrateLegacyAlign:6,AddCloud:7,MakeUrlsValid:8},e7=(0,a.zn)({currentVersion:e9.MakeUrlsValid,migrators:{[e9.AddUrlProp]:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},[e9.AddLabelColor]:{up:e=>({...e,props:{...e.props,labelColor:"black"}}),down:e=>{let{labelColor:t,...n}=e.props;return{...e,props:n}}},[e9.RemoveJustify]:{up:e=>{let t=e.props.align;return"justify"===t&&(t="start"),{...e,props:{...e.props,align:t}}},down:e=>({...e})},[e9.AddCheckBox]:{up:e=>({...e}),down:e=>({...e,props:{...e.props,geo:"check-box"===e.props.geo?"rectangle":e.props.geo}
209})},[e9.AddVerticalAlign]:{up:e=>({...e,props:{...e.props,verticalAlign:"middle"}}),down:e=>{let{verticalAlign:t,...n}=e.props;return{...e,props:n}}},[e9.MigrateLegacyAlign]:{up:e=>{let t;switch(e.props.align){case"start":t="start-legacy";break;case"end":t="end-legacy";break;default:t="middle-legacy"}return{...e,props:{...e.props,align:t}}},down:e=>{let t;switch(e.props.align){case"start-legacy":t="start";break;case"end-legacy":t="end";break;case"middle-legacy":t="middle";break;default:t=e.props.align}return{...e,props:{...e.props,align:t}}}},[e9.AddCloud]:{up:e=>e,down:e=>{if("cloud"===e.props.geo)return{...e,props:{...e.props,geo:"rectangle"}}}},[e9.MakeUrlsValid]:{up:e=>{let t=e.props.url;return""===t||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}}},down:e=>e}}}),te={},tt=(0,a.zn)({}),tn={color:eC,size:e$,segments:r.T.arrayOf(eZ),isComplete:r.T.boolean,isPen:r.T.boolean},tr=(0,a.zn)({}),ti=r.T.object({topLeft:h,bottomRight:h}),to={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,playing:r.T.boolean,url:r.T.linkUrl,assetId:o.nullable(),crop:ti.nullable()},ts={AddUrlProp:1,AddCropProp:2,MakeUrlsValid:3},ta=(0,a.zn)({currentVersion:ts.MakeUrlsValid,migrators:{[ts.AddUrlProp]:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},[ts.AddCropProp]:{up:e=>({...e,props:{...e.props,crop:null}}),down:e=>{let{crop:t,...n}=e.props;return{...e,props:n}}},[ts.MakeUrlsValid]:{up:e=>{let t=e.props.url;return""===t||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}}},down:e=>e}}}),tl=em.defineEnum("tldraw:spline",{defaultValue:"line",values:["cubic","line"]}),tc=r.T.object({id:r.T.string,index:r.T.indexKey,x:r.T.number,y:r.T.number}),td={color:eC,dash:eI,size:e$,spline:tl,points:r.T.dict(r.T.string,tc)},tu={AddSnapHandles:1,RemoveExtraHandleProps:2,HandlesToPoints:3,PointIndexIds:4},th=(0,a.zn)({currentVersion:tu.PointIndexIds,migrators:{[tu.AddSnapHandles]:{up:e=>{let t=(0,K.p$)(e.props.handles);for(let e in t)t[e].canSnap=!0;return{...e,props:{...e.props,handles:t}}},down:e=>{let t=(0,K.p$)(e.props.handles);for(let e in t)delete t[e].canSnap;return{...e,props:{...e.props,handles:t}}}},[tu.RemoveExtraHandleProps]:{up:e=>({...e,props:{...e.props,handles:(0,K.Ls)(Object.values(e.props.handles).map(e=>[e.index,{x:e.x,y:e.y}]))}}),down:e=>{let t=Object.entries(e.props.handles).map(([e,t])=>({index:e,...t})).sort(K.hl);return{...e,props:{...e.props,handles:Object.fromEntries(t.map((e,n)=>{let r=0===n?"start":n===t.length-1?"end":`handle:${e.index}`;return[r,{id:r,type:"vertex",canBind:!1,canSnap:!0,index:e.index,x:e.x,y:e.y}]}))}}}},[tu.HandlesToPoints]:{up:e=>{let{handles:t,...n}=e.props,r=Object.entries(t).map(([e,{x:t,y:n}])=>({x:t,y:n,index:e})).sort(K.hl);return{...e,props:{...n,points:r.map(({x:e,y:t})=>({x:e,y:t}))}}},down:e=>{let{points:t,...n}=e.props,r=(0,K.H$)(t.length);return{...e,props:{...n,handles:Object.fromEntries(t.map((e,t)=>{let n=r[t];return[n,{x:e.x,y:e.y}]}))}}}},[tu.PointIndexIds]:{up:e=>{let{points:t,...n}=e.props,r=(0,K.H$)(t.length);return{...e,props:{...n,points:Object.fromEntries(t.map((e,t)=>{let n=r[t];return[n,{id:n,index:n,x:e.x,y:e.y}]}))}}},down:e=>{let t=Object.values(e.props.points).sort(K.hl);return{...e,props:{...e.props,points:t.map(({x:e,y:t})=>({x:e,y:t}))}}}}}}),tp={color:eC,size:e$,font:eM,align:e3,verticalAlign:e5,growY:r.T.positiveNumber,url:r.T.linkUrl,text:r.T.string},tf={AddUrlProp:1,RemoveJustify:2,MigrateLegacyAlign:3,AddVerticalAlign:4,MakeUrlsValid:5},tg=(0,a.zn)({currentVersion:tf.MakeUrlsValid,migrators:{[tf.AddUrlProp]:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},[tf.RemoveJustify]:{up:e=>{let t=e.props.align;return"justify"===t&&(t="start"),{...e,props:{...e.props,align:t}}},down:e=>({...e})},[tf.MigrateLegacyAlign]:{up:e=>{let t;switch(e.props.align){case"start":t="start-legacy";break;case"end":t="end-legacy";break;default:t="middle-legacy"}return{...e,props:{...e.props,align:t}}},down:e=>{let t;switch(e.props.align){case"start-legacy":t="start";break;case"end-legacy":t="end";break;case"middle-legacy":t="middle";break;default:t=e.props.align}return{...e,props:{...e.props,align:t}}}},[tf.AddVerticalAlign]:{up:e=>({...e,props:{...e.props,verticalAlign:"middle"}}),down:e=>{let{verticalAlign:t,...n}=e.props;return{...e,props:n}}},[tf.MakeUrlsValid]:{up:e=>{let t=e.props.url;return""===t||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}}},down:e=>e}}}),tm={color:eC,size:e$,font:eM,align:e3,w:r.T.nonZeroNumber,text:r.T.string,scale:r.T.nonZeroNumber,autoSize:r.T.boolean},ty={RemoveJustify:1},tb=(0,a.zn)({currentVersion:ty.RemoveJustify,migrators:{[ty.RemoveJustify]:{up:e=>{let t=e.props.align;return"justify"===t&&(t="start"),{...e,props:{...e.props,align:t}}},down:e=>({...e})}}}),tx={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,time:r.T.number,playing:r.T.boolean,url:r.T.linkUrl,assetId:o.nullable()},tw={AddUrlProp:1,MakeUrlsValid:2},tv=(0,a.zn)({currentVersion:tw.MakeUrlsValid,migrators:{[tw.AddUrlProp]:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},[tw.MakeUrlsValid]:{up:e=>{let t=e.props.url;return""===t||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}}},down:e=>e}}}),tS={RemoveCodeAndIconShapeTypes:1,AddInstancePresenceType:2,RemoveTLUserAndPresenceAndAddPointer:3,RemoveUserDocument:4},tk=(0,a.zn)({currentVersion:tS.RemoveUserDocument,migrators:{[tS.RemoveCodeAndIconShapeTypes]:{up:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>"shape"!==t.typeName||"icon"!==t.type&&"code"!==t.type)),down:e=>e},[tS.AddInstancePresenceType]:{up:e=>e,down:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>"instance_presence"!==t.typeName))},[tS.RemoveTLUserAndPresenceAndAddPointer]:{up:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>!t.typeName.match(/^(user|user_presence)$/))),down:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>"pointer"!==t.typeName))},[tS.RemoveUserDocument]:{up:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>!t.typeName.match("user_document"))),down:e=>e}}}),tj={arrow:{migrations:ez,props:eR},bookmark:{migrations:eH,props:eF},draw:{migrations:eW,props:eV},embed:{migrations:e1,props:eQ},frame:{migrations:e8,props:e2},geo:{migrations:e7,props:e6},group:{migrations:tt,props:te},highlight:{migrations:tr,props:tn},image:{migrations:ta,props:to},line:{migrations:th,props:td},note:{migrations:tg,props:tp},text:{migrations:tb,props:tm},video:{migrations:tv,props:tx}};function t_({shapes:e=tj}={}){let t=new Map;for(let n of(0,K.UM)(e))for(let e of ek(n.props??{}
209).keys()){if(t.has(e.id)&&t.get(e.id)!==e)throw Error(`Multiple StyleProp instances with the same id: ${e.id}`);t.set(e.id,e)}let n=(0,a.ju)("shape",{migrations:(0,a.zn)({currentVersion:ex.currentVersion,firstVersion:ex.firstVersion,migrators:ex.migrators,subTypeKey:"type",subTypeMigrations:(0,K.Fm)(e,(e,t)=>t.migrations??(0,a.zn)({}))}),scope:"document",validator:r.T.model("shape",r.T.union("type",(0,K.Fm)(e,(e,{props:t,meta:n})=>r.T.object({id:A,typeName:r.T.literal("shape"),x:r.T.number,y:r.T.number,rotation:r.T.number,index:r.T.indexKey,parentId:M,type:r.T.literal(e),isLocked:r.T.boolean,opacity:y,props:t?r.T.object(t):r.T.jsonValue,meta:n?r.T.object(n):r.T.jsonValue}))))}).withDefaultProperties(()=>({x:0,y:0,rotation:0,isLocked:!1,opacity:1,meta:{}})),o=function(e){let t={};for(let[n,i]of e)t[n]=r.T.optional(i);let n=r.T.model("instance",r.T.object({typeName:r.T.literal("instance"),id:i("instance"),currentPageId:S,followingUserId:r.T.string.nullable(),brush:p.nullable(),opacityForNextShape:y,stylesForNextShape:r.T.object(t),cursor:m,scribbles:r.T.arrayOf(v),isFocusMode:r.T.boolean,isDebugMode:r.T.boolean,isToolLocked:r.T.boolean,exportBackground:r.T.boolean,screenBounds:p,insets:r.T.arrayOf(r.T.boolean),zoomBrush:p.nullable(),isPenMode:r.T.boolean,isGridMode:r.T.boolean,chatMessage:r.T.string,isChatting:r.T.boolean,highlightedUserIds:r.T.arrayOf(r.T.string),canMoveCamera:r.T.boolean,isFocused:r.T.boolean,devicePixelRatio:r.T.number,isCoarsePointer:r.T.boolean,isHoveringCanvas:r.T.boolean.nullable(),openMenus:r.T.arrayOf(r.T.string),isChangingStyle:r.T.boolean,isReadonly:r.T.boolean,meta:r.T.jsonValue,duplicateProps:r.T.object({shapeIds:r.T.arrayOf(i("shape")),offset:r.T.object({x:r.T.number,y:r.T.number})}).nullable()}));return(0,a.ju)("instance",{migrations:I,validator:n,scope:"session"}).withDefaultProperties(()=>({followingUserId:null,opacityForNextShape:1,stylesForNextShape:{},brush:null,scribbles:[],cursor:{type:"default",rotation:0},isFocusMode:!1,exportBackground:!1,isDebugMode:!1,isToolLocked:!1,screenBounds:{x:0,y:0,w:1080,h:720},insets:[!1,!1,!1,!1],zoomBrush:null,isGridMode:!1,isPenMode:!1,chatMessage:"",isChatting:!1,highlightedUserIds:[],canMoveCamera:!0,isFocused:!1,devicePixelRatio:"undefined"==typeof window?1:window.devicePixelRatio,isCoarsePointer:!1,isHoveringCanvas:null,openMenus:[],isChangingStyle:!1,isReadonly:!1,meta:{},duplicateProps:null}))}(t);return a.sS.create({asset:ef,camera:u,document:X,instance:o,instance_page_state:B,page:E,shape:n,instance_presence:V,pointer:z},{snapshotMigrations:tk,onValidationFailure:ee,createIntegrityChecker:et})}let tE=[{locale:"ca",label:"Catal\xe0"},{locale:"cs",label:"Čeština"},{locale:"da",label:"Danish"},{locale:"de",label:"Deutsch"},{locale:"en",label:"English"},{locale:"es",label:"Espa\xf1ol"},{locale:"fr",label:"Fran\xe7ais"},{locale:"gl",label:"Galego"},{locale:"hr",label:"Hrvatski"},{locale:"it",label:"Italiano"},{locale:"hu",label:"Magyar"},{locale:"no",label:"Norwegian"},{locale:"pl",label:"Polski"},{locale:"pt-br",label:"Portugu\xeas - Brasil"},{locale:"pt-pt",label:"Portugu\xeas - Europeu"},{locale:"ro",label:"Rom\xe2nă"},{locale:"ru",label:"Russian"},{locale:"sl",label:"Slovenščina"},{locale:"fi",label:"Suomi"},{locale:"sv",label:"Svenska"},{locale:"vi",label:"Tiếng Việt"},{locale:"tr",label:"T\xfcrk\xe7e"},{locale:"uk",label:"Ukrainian"},{locale:"he",label:"עברית"},{locale:"ar",label:"عربي"},{locale:"fa",label:"فارسی"},{locale:"ku",label:"کوردی"},{locale:"ne",label:"नेपाली"},{locale:"hi-in",label:"हिन्दी"},{locale:"te",label:"తెలుగు"},{locale:"th",label:"ภาษาไทย"},{locale:"my",label:"မြန်မာစာ"},{locale:"ko-kr",label:"한국어"},{locale:"ja",label:"日本語"},{locale:"zh-cn",label:"简体中文"},{locale:"zh-tw",label:"繁體中文 (台灣)"}];function tC(){let e="undefined"!=typeof window?window.navigator.languages??["en"]:["en"];return function(e){for(let t of e){let e=function(e){let t=tE.find(t=>t.locale===e.toLowerCase());if(t)return t.locale;let[n,r]=e.split(/[-_]/).map(e=>e.toLowerCase());if(r){let e=tE.find(e=>e.locale===n);if(e)return e.locale}return n in tP?tP[n]:null}(t);if(e)return e}return"en"}(e)}let tP={zh:"zh-cn",pt:"pt-br",ko:"ko-kr",hi:"hi-in"}},85947:function(e,t,n){"use strict";let r;function i(e,t){let n=[];t:for(let r of e){for(let e of n)if(t?t(r,e):r===e)continue t;n.push(r)}return n}function o(e){return e.filter(e=>null!=e)}function s(e){return e[e.length-1]}function a(e,t){let n;let r=1/0;for(let i of e){let e=t(i);e<r&&(n=i,r=e)}return n}function l(e,t){if(e===t)return!0;
209if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Object.is(e[n],t[n]))return!1;return!0}function c(e){let t=(...n)=>{try{return e(...n)}catch(e){throw e instanceof Error&&Error.captureStackTrace&&Error.captureStackTrace(e,t),e}};return t}function d(e,t){let n=t&&e&&"object"==typeof e&&t in e?e[t]:e;throw Error(`Unknown switch case ${n}`)}n.d(t,{xe:function(){return w},bM:function(){return x},R4:function(){return Y},lw:function(){return g},E8:function(){return l},dn:function(){return M},hu:function(){return u},kP:function(){return h},oA:function(){return o},Ds:function(){return p},D8:function(){return i},p$:function(){return function e(t){if(!t)return t;if(Array.isArray(t)){let n=[],r=t.length;for(let i=0;i<r;i++)n.push(e(t[i]));return n}if("object"==typeof t){let n=Object.keys(t),r=n.length,i={};for(let o=0;o<r;o++){let r=n[o];i[r]=e(t[r])}return i}return t}},iP:function(){return d},H4:function(){return I},jK:function(){return m},_L:function(){return Q},Xg:function(){return ee},eI:function(){return J},H$:function(){return et},vw:function(){return q},Xv:function(){return X},eg:function(){return j},nr:function(){return k},GT:function(){return ei},Z$:function(){return s},Fm:function(){return T},F:function(){return a},vm:function(){return S},EP:function(){return C},Ls:function(){return P},GH:function(){return _},UM:function(){return E},Vk:function(){return v},uv:function(){return er},hl:function(){return en},v4:function(){return eo},xP:function(){return B},LP:function(){return G}});let u=c((e,t)=>{if(!e)throw Error(t||"Assertion Error")}),h=c((e,t)=>{if(null==e)throw Error(t??"value must be defined");return e});function p(e,t){let n;let r=(...r)=>(n||((n={}).promise=new Promise((e,t)=>{n.resolve=e,n.reject=t})),clearTimeout(n.timeout),n.latestArgs=r,n.timeout=setTimeout(()=>{let t=n;n=void 0;try{t.resolve(e(...t.latestArgs))}catch(e){t.reject(e)}},t),n.promise);return r.cancel=()=>{n&&clearTimeout(n.timeout)},r}let f=new WeakMap;function g(e,t){if("object"!=typeof e||null===e)return;let n=f.get(e);n||(n={tags:{},extras:{}},f.set(e,n)),t.tags&&(n.tags={...n.tags,...t.tags}),t.extras&&(n.extras={...n.extras,...t.extras})}function m(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return t+""}let y=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(y=new Int32Array(y));let b=(e,t)=>{let n=0===t?0:-1^~~t;for(let t=0;t<e.length;t++)n=y[(n^e[t])&255]^n>>>8;return -1^n};class x{static isPng(e,t){return 137===e.getUint8(t+0)&&80===e.getUint8(t+1)&&78===e.getUint8(t+2)&&71===e.getUint8(t+3)&&13===e.getUint8(t+4)&&10===e.getUint8(t+5)&&26===e.getUint8(t+6)&&10===e.getUint8(t+7)}static getChunkType(e,t){return[String.fromCharCode(e.getUint8(t)),String.fromCharCode(e.getUint8(t+1)),String.fromCharCode(e.getUint8(t+2)),String.fromCharCode(e.getUint8(t+3))].join("")}static readChunks(e,t=0){let n={};if(!x.isPng(e,t))throw Error("Not a PNG");for(t+=8;t<=e.buffer.byteLength;){let r=t,i=e.getInt32(t);t+=4;let o=x.getChunkType(e,t);if("IDAT"===o&&n[o]){t+=i+4+4;continue}if("IEND"===o)break;n[o]={start:r,dataOffset:t+4,size:i},t+=i+4+4}return n}static parsePhys(e,t){return{ppux:e.getUint32(t),ppuy:e.getUint32(t+4),unit:e.getUint8(t+4)}}static findChunk(e,t){let n=x.readChunks(e);return n[t]}
209static setPhysChunk(e,t=1,n){let r=46,i=0,o=x.findChunk(e,"pHYs");o&&(r=o.start,i=o.size);let s=x.findChunk(e,"IDAT");s&&(r=s.start,i=0);let a=new ArrayBuffer(21),l=new DataView(a);l.setUint32(0,9),l.setUint8(4,112),l.setUint8(5,72),l.setUint8(6,89),l.setUint8(7,115),l.setInt32(8,2835.5*t),l.setInt32(12,2835.5*t),l.setInt8(16,1);let c=new Uint8Array(a.slice(4,17));l.setInt32(17,b(c));let d=e.buffer.slice(0,r),u=e.buffer.slice(r+i);return new Blob([d,a,u],n)}}class w{static loadVideo(e){return new Promise((t,n)=>{let r=document.createElement("video");r.onloadeddata=()=>t(r),r.onerror=e=>{console.error(e),n(Error("Could not load video"))},r.crossOrigin="anonymous",r.src=e})}static loadImage(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=e=>{console.error(e),n(Error("Could not load image"))},r.crossOrigin="anonymous",r.src=e})}static blobToDataUrl(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=e=>{console.error(e),n(Error("Could not read blob"))},r.readAsDataURL(e)})}static async getVideoSize(e){return w.usingObjectURL(e,async e=>{let t=await w.loadVideo(e);return{w:t.videoWidth,h:t.videoHeight}})}static async getImageSize(e){let t=await w.usingObjectURL(e,w.loadImage);try{if("image/png"===e.type){let n=new DataView(await e.arrayBuffer());if(x.isPng(n,0)){let e=x.findChunk(n,"pHYs");if(e){let r=x.parsePhys(n,e.dataOffset);if(0===r.unit&&r.ppux===r.ppuy){let e=Math.max(r.ppux/2834.5,1);return{w:Math.round(t.naturalWidth/e),h:Math.round(t.naturalHeight/e)}}}}}}catch(e){console.error(e)}return{w:t.naturalWidth,h:t.naturalHeight}}static async usingObjectURL(e,t){let n=URL.createObjectURL(e);try{return await t(n)}finally{URL.revokeObjectURL(n)}}}function v(e=""){let t=0,n=0,r=0,i=0;function o(){let e=t^t<<11;return t=n,n=r,r=i,(i^=(i>>>19^e^e>>>8)>>>0)/4294967296*2}for(let n=0;n<e.length+64;n++)t^=0|e.charCodeAt(n),o();return o}function S(e,t,n,r=!1){let[i,o]=t,[s,a]=n,l=s+(e-i)/(o-i)*(a-s);return r?s<a?Math.max(Math.min(l,a),s):Math.max(Math.min(l,s),a):l}function k(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function j(e,t){if(k(e,t))return e[t]}function _(e){return Object.keys(e)}function E(e){return Object.values(e)}function C(e){return Object.entries(e)}function P(e){return Object.fromEntries(e)}function I(e,t){let n={},r=!1;for(let[i,o]of C(e))t(i,o)?n[i]=o:r=!0;return r?n:e}function T(e,t){let n={};for(let[r,i]of C(e)){let e=t(r,i);n[r]=e}return n}function M(e,t){if(e===t)return!0;let n=new Set(Object.keys(e)),r=new Set(Object.keys(t));if(n.size!==r.size)return!1;for(let i of n)if(!r.has(i)||!Object.is(e[i],t[i]))return!1;return!0}var A=n(34406);let $=()=>void 0!==A&&!1,D=[],O=()=>{let e=D.splice(0,D.length);for(let t of e)t()};function B(e){if($())return e();!D.includes(e)&&(D.push(e),r||(r=requestAnimationFrame(()=>{r=void 0,O()})))}let L="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",R="A00000000000000000000000000";function N(e){if(e>="a"&&e<="z")return e.charCodeAt(0)-97+2;if(e>="A"&&e<="Z")return 90-e.charCodeAt(0)+2;throw Error("Invalid index key head: "+e)}function z(e){if(e.length!==N(e.charAt(0)))throw Error("invalid integer part of index key: "+e)}function F(e){if(void 0===e)throw Error("n is undefined")}function U(e){z(e);let[t,...n]=e.split(""),r=!0;for(let e=n.length-1;r&&e>=0;e--){let t=L.indexOf(n[e])+1;t===L.length?n[e]="0":(n[e]=L.charAt(t),r=!1)}if(!r)return t+n.join("");{if("Z"===t)return"a0";if("z"===t)return;let e=String.fromCharCode(t.charCodeAt(0)+1);return e>"a"?n.push("0"):n.pop(),e+n.join("")}}function H(e,t){if(void 0!==t&&e>=t)throw Error(e+" >= "+t);if("0"===e.slice(-1)||t&&"0"===t.slice(-1))throw Error("trailing zero");if(t){let n=0;for(;(e.charAt(n)||"0")===t.charAt(n);)n++;if(n>0)return t.slice(0,n)+H(e.slice(n),t.slice(n))}let n=e?L.indexOf(e.charAt(0)):0,r=void 0!==t?L.indexOf(t.charAt(0)):L.length;if(r-n>1){let e=Math.round(.5*(n+r));return L.charAt(e)}return t&&t.length>1?t.slice(0,1):L.charAt(n)+H(e.slice(1),void 0)}function Z(e){let t=N(e.charAt(0));if(t>e.length)throw Error("invalid index: "+e);return e.slice(0,t)}function V(e){if(e===R)throw Error("invalid index: "+e);let t=Z(e),n=e.slice(t.length);if("0"===n.slice(-1))throw Error("invalid index: "+e)}function K(e,t){if(void 0!==e&&V(e),void 0!==t&&V(t),void 0!==e&&void 0!==t&&e>=t)throw Error(e+" >= "+t);if(void 0===e&&void 0===t)return"a0";if(void 0===e){if(void 0===t)throw Error("b is undefined");let e=Z(t),n=t.slice(e.length);if(e===R)return e+H("",n);if(e<t)return e;let r=function(e){z(e);let[t,...n]=e.split(""),r=!0;for(let e=n.length-1;r&&e>=0;e--){let t=L.indexOf(n[e])-1;-1===t?n[e]=L.slice(-1):(n[e]=L.charAt(t),r=!1)}if(!r)return t+n.join("");{if("a"===t)return"Z"+L.slice(-1);if("A"===t)return;let e=String.fromCharCode(t.charCodeAt(0)-1);return e<"Z"?n.push(L.slice(-1)):n.pop(),e+n.join("")}}(e);return F(r),r}if(void 0===t){let t=Z(e),n=e.slice(t.length),r=U(t);return void 0===r?t+H(n,void 0):r}let n=Z(e),r=e.slice(n.length),i=Z(t),o=t.slice(i.length);if(n===i)return n+H(r,o);let s=U(n);return F(s),s<t?s:n+H(r,void 0)}function W(e,t,n){if(0===n)return[];if(1===n)return[K(e,t)];if(void 0===t){let r=K(e,t),i=[r];for(let e=0;e<n-1;e++)i.push(r=K(r,t));return i}if(void 0===e){let r=K(e,t),i=[r];for(let t=0;t<n-1;t++)i.push(r=K(e,r));return i.reverse(),i}let r=Math.floor(n/2),i=K(e,t);return[...W(e,i,r),i,...W(i,t,n-r-1)]}let Y="a0";function G(e){V(e)}
209function X(e,t,n){return W(e,t,n)}function q(e,t){return W(e,void 0,t)}function J(e,t){return W(e,t,1)[0]}function Q(e){return W(e,void 0,1)[0]}function ee(e){return W(void 0,e,1)[0]}function et(e,t="a1"){return[t,...W(t,void 0,e)]}function en(e,t){return e.index<t.index?-1:e.index>t.index?1:0}function er(e,t){return e.id>t.id?1:-1}function ei(e){return null!==e}let eo="undefined"!=typeof window&&window.structuredClone?window.structuredClone:e=>e?JSON.parse(JSON.stringify(e)):e},4074:function(e,t,n){"use strict";n.d(t,{T:function(){return r}});var r={};n.r(r),n.d(r,{ArrayOfValidator:function(){return c},DictValidator:function(){return h},ObjectValidator:function(){return d},UnionValidator:function(){return u},ValidationError:function(){return o},Validator:function(){return l},any:function(){return g},array:function(){return E},arrayOf:function(){return C},bigint:function(){return j},boolean:function(){return k},dict:function(){return $},indexKey:function(){return V},integer:function(){return w},jsonDict:function(){return A},jsonValue:function(){return M},linkUrl:function(){return U},literal:function(){return _},literalEnum:function(){return N},model:function(){return O},nonZeroInteger:function(){return S},nonZeroNumber:function(){return x},nullable:function(){return R},number:function(){return y},object:function(){return I},optional:function(){return L},positiveInteger:function(){return v},positiveNumber:function(){return b},setEnum:function(){return B},srcUrl:function(){return Z},string:function(){return m},union:function(){return D},unknown:function(){return f},unknownObject:function(){return P}});var i=n(85947);class o extends Error{constructor(e,t=[]){let n=function(e){if(!e.length)return null;let t="";for(let n of e)"number"==typeof n?t+=`.${n}`:n.startsWith("(")?t.endsWith(")")?t=`${t.slice(0,-1)}, ${n.slice(1)}`:t+=n:t+=`.${n}`;return(t=t.replace(/id = [^,]+, /,"").replace(/id = [^)]+/,"")).startsWith(".")?t.slice(1):t}(t),r=e.split("\n").map((e,t)=>0===t?e:`  ${e}`).join("\n");super(t?`At ${n}: ${r}`:r),this.rawMessage=e,this.path=t}name="ValidationError"}function s(e,t){try{return t()}catch(t){if(t instanceof o)throw new o(t.rawMessage,[e,...t.path]);throw new o(t.toString(),[e])}}function a(e){if(null===e)return"null";if(Array.isArray(e))return"an array";let t=typeof e;switch(t){case"bigint":case"boolean":case"function":case"number":case"string":case"symbol":return`a ${t}`;case"object":return`an ${t}`;case"undefined":return"undefined";default:(0,i.iP)(t)}}class l{constructor(e,t){this.validationFn=e,this.validateUsingKnownGoodVersionFn=t}validate(e){let t=this.validationFn(e);return t}validateUsingKnownGoodVersion(e,t){return Object.is(e,t)?e:this.validateUsingKnownGoodVersionFn?this.validateUsingKnownGoodVersionFn(e,t):this.validate(t)}isValid(e){try{return this.validate(e),!0}catch{return!1}}nullable(){return R(this)}optional(){return L(this)}refine(e){return new l(t=>e(this.validate(t)),(t,n)=>{let r=this.validateUsingKnownGoodVersion(t,n);return Object.is(t,r)?t:e(r)})}check(e,t){return"string"==typeof e?this.refine(n=>(s(`(check ${e})`,()=>t(n)),n)):this.refine(t=>(e(t),t))}}class c extends l{constructor(e){super(t=>{let n=E.validate(t);for(let t=0;t<n.length;t++)s(t,()=>e.validate(n[t]));return n},(t,n)=>{if(!e.validateUsingKnownGoodVersion)return this.validate(n);let r=E.validate(n),i=t.length!==r.length;for(let n=0;n<r.length;n++){let o=r[n];if(n>=t.length){i=!0,s(n,()=>e.validate(o));continue}if(Object.is(t[n],o))continue;let a=s(n,()=>e.validateUsingKnownGoodVersion(t[n],o));Object.is(a,t[n])||(i=!0)}return i?n:t}),this.itemValidator=e}nonEmpty(){return this.check(e=>{if(0===e.length)throw new o("Expected a non-empty array")})}lengthGreaterThan1(){return this.check(e=>{if(e.length<=1)throw new o("Expected an array with length greater than 1")})}}class d extends l{constructor(e,t=!1){super(n=>{if("object"!=typeof n||null===n)throw new o(`Expected object, got ${a(n)}`);for(let[t,r]of Object.entries(e))s(t,()=>{r.validate((0,i.eg)(n,t))});if(!t){for(let t of Object.keys(n))if(!(0,i.nr)(e,t))throw new o("Unexpected property",[t])}return n},(n,r)=>{if("object"!=typeof r||null===r)throw new o(`Expected object, got ${a(r)}`);let l=!1;for(let[t,o]of Object.entries(e)){let e=(0,i.eg)(n,t),a=(0,i.eg)(r,t);if(Object.is(e,a))continue;let c=s(t,()=>o.validateUsingKnownGoodVersion?o.validateUsingKnownGoodVersion(e,a):o.validate(a));Object.is(c,e)||(l=!0)}if(!t){for(let t of Object.keys(r))if(!(0,i.nr)(e,t))throw new o("Unexpected property",[t])}for(let e of Object.keys(n))if(!(0,i.nr)(r,e)){l=!0;break}return l?r:n}),this.config=e,this.shouldAllowUnknownProperties=t}allowUnknownProperties(){return new d(this.config,!0)}extend(e){return new d({...this.config,...e})}}class u extends l{constructor(e,t,n){super(t=>{this.expectObject(t);let{matchingSchema:n,variant:r}=this.getMatchingSchemaAndVariant(t);return void 0===n?this.unknownValueValidation(t,r):s(`(${e} = ${r})`,()=>n.validate(t))},(t,n)=>{this.expectObject(n),this.expectObject(t);let{matchingSchema:r,variant:o}=this.getMatchingSchemaAndVariant(n);return void 0===r?this.unknownValueValidation(n,o):(0,i.eg)(t,e)!==(0,i.eg)(n,e)?s(`(${e} = ${o})`,()=>r.validate(n)):s(`(${e} = ${o})`,()=>r.validateUsingKnownGoodVersion?r.validateUsingKnownGoodVersion(t,n):r.validate(n))}),this.key=e,this.config=t,this.unknownValueValidation=n}expectObject(e){if("object"!=typeof e||null===e)throw new o(`Expected an object, got ${a(e)}`,[])}getMatchingSchemaAndVariant(e){let t=(0,i.eg)(e,this.key);if("string"!=typeof t)throw new o(`Expected a string for key "${this.key}", got ${a(t)}`);let n=(0,i.nr)(this.config,t)?this.config[t]:void 0;return{matchingSchema:n,variant:t}}validateUnknownVariants(e){return new u(this.key,this.config,e)}}class h extends l{constructor(e,t){super(n=>{if("object"!=typeof n||null===n)throw new o(`Expected object, got ${a(n)}`);for(let[r,i]of Object.entries(n))s(r,()=>{e.validate(r),t.validate(i)});return n},(n,r)=>{if("object"!=typeof r||null===r)throw new o(`Expected object, got ${a(r)}`);let l=!1;
209for(let[o,a]of Object.entries(r)){if(!(0,i.nr)(n,o)){l=!0,s(o,()=>{e.validate(o),t.validate(a)});continue}let r=(0,i.eg)(n,o),c=a;if(Object.is(r,c))continue;let d=s(o,()=>t.validateUsingKnownGoodVersion?t.validateUsingKnownGoodVersion(r,c):t.validate(c));Object.is(d,r)||(l=!0)}for(let e of Object.keys(n))if(!(0,i.nr)(r,e)){l=!0;break}return l?r:n}),this.keyValidator=e,this.valueValidator=t}}function p(e){return new l(t=>{if(typeof t!==e)throw new o(`Expected ${e}, got ${a(t)}`);return t})}let f=new l(e=>e),g=new l(e=>e),m=p("string"),y=p("number").check(e=>{if(Number.isNaN(e))throw new o("Expected a number, got NaN");if(!Number.isFinite(e))throw new o(`Expected a finite number, got ${e}`)}),b=y.check(e=>{if(e<0)throw new o(`Expected a positive number, got ${e}`)}),x=y.check(e=>{if(e<=0)throw new o(`Expected a non-zero positive number, got ${e}`)}),w=y.check(e=>{if(!Number.isInteger(e))throw new o(`Expected an integer, got ${e}`)}),v=w.check(e=>{if(e<0)throw new o(`Expected a positive integer, got ${e}`)}),S=w.check(e=>{if(e<=0)throw new o(`Expected a non-zero positive integer, got ${e}`)}),k=p("boolean"),j=p("bigint");function _(e){return new l(t=>{if(t!==e)throw new o(`Expected ${e}, got ${JSON.stringify(t)}`);return e})}let E=new l(e=>{if(!Array.isArray(e))throw new o(`Expected an array, got ${a(e)}`);return e});function C(e){return new c(e)}let P=new l(e=>{if("object"!=typeof e||null===e)throw new o(`Expected object, got ${a(e)}`);return e});function I(e){return new d(e)}function T(e){return"object"==typeof e&&null!==e&&(e.constructor===Object||!e.constructor)}let M=new l(e=>{if(function e(t){return null===t||"number"==typeof t||"string"==typeof t||"boolean"==typeof t||(Array.isArray(t)?t.every(e):!!T(t)&&Object.values(t).every(e))}(e))return e;throw new o(`Expected json serializable value, got ${typeof e}`)},(e,t)=>{if(Array.isArray(e)&&Array.isArray(t)){let n=e.length!==t.length;for(let r=0;r<t.length;r++){if(r>=e.length){n=!0,M.validate(t[r]);continue}let i=e[r],o=t[r];if(Object.is(i,o))continue;let s=M.validateUsingKnownGoodVersion(i,o);Object.is(s,i)||(n=!0)}return n?t:e}if(!(T(e)&&T(t)))return M.validate(t);{let n=!1;for(let r of Object.keys(t)){if(!(0,i.nr)(e,r)){n=!0,M.validate(t[r]);continue}let o=e[r],s=t[r];if(Object.is(o,s))continue;let a=M.validateUsingKnownGoodVersion(o,s);Object.is(a,o)||(n=!0)}for(let r of Object.keys(e))if(!(0,i.nr)(t,r)){n=!0;break}return n?t:e}});function A(){return $(m,M)}function $(e,t){return new h(e,t)}function D(e,t){return new u(e,t,(n,r)=>{throw new o(`Expected one of ${Object.keys(t).map(e=>JSON.stringify(e)).join(" or ")}, got ${JSON.stringify(r)}`,[e])})}function O(e,t){return new l(n=>s(e,()=>t.validate(n)),(n,r)=>s(e,()=>t.validateUsingKnownGoodVersion?t.validateUsingKnownGoodVersion(n,r):t.validate(r)))}function B(e){return new l(t=>{if(!e.has(t)){let n=Array.from(e,e=>JSON.stringify(e)).join(" or ");throw new o(`Expected ${n}, got ${t}`)}return t})}function L(e){return new l(t=>{if(void 0!==t)return e.validate(t)},(t,n)=>{if((void 0!==t||void 0!==n)&&void 0!==n)return e.validateUsingKnownGoodVersion&&void 0!==t?e.validateUsingKnownGoodVersion(t,n):e.validate(n)})}function R(e){return new l(t=>null===t?null:e.validate(t),(t,n)=>null===n?null:e.validateUsingKnownGoodVersion&&null!==t?e.validateUsingKnownGoodVersion(t,n):e.validate(n))}function N(...e){return B(new Set(e))}function z(e){try{return new URL(e)}catch(t){if(e.startsWith("/")||e.startsWith("./"))try{return new URL(e,"http://example.com")}catch(t){throw new o(`Expected a valid url, got ${JSON.stringify(e)}`)}throw new o(`Expected a valid url, got ${JSON.stringify(e)}`)}}let F=new Set(["http:","https:","mailto:"]),U=m.check(e=>{if(""===e)return;let t=z(e);
209if(!F.has(t.protocol.toLowerCase()))throw new o(`Expected a valid url, got ${JSON.stringify(e)} (invalid protocol)`)}),H=new Set(["http:","https:","data:"]),Z=m.check(e=>{if(""===e)return;let t=z(e);if(!H.has(t.protocol.toLowerCase()))throw new o(`Expected a valid url, got ${JSON.stringify(e)} (invalid protocol)`)}),V=m.refine(e=>{try{return(0,i.LP)(e),e}catch{throw new o(`Expected an index key, got ${JSON.stringify(e)}`)}})}}]);
210//# sourceMappingURL=9646.ecd0798546d660b5.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.