PageSourceSearch

https://purdentix-review-x2rnzd4.gamma.site/_next/static/chunks/9646.7109b4da453fcd94.js

js purdentix-review-x2rnzd4.gamma.site collected 2026-10-03 04:09:47 UTC 796,804 bytes, 192 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,z=Object.prototype,N=P["__core-js_shared__"],F=R.toString,U=z.hasOwnProperty,H=(r=/[^.]+$/.exec(N&&N.keys&&N.keys.IE_PROTO||""))?"Symbol(sr
1c)_1."+r:"",Z=z.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=z.propertyIsEnumerable,X=L.splice,q=W?W.toStringTag:void 0,Q=Object.getOwnPropertySymbols,J=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||z))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=Q?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}(Q(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=J||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=-1;++o<i;)if(t(e[o],o,e))return o;return -1}(e,d,0);for(var r=-1,i=e.length;++r<i;)if(e[r]===t)return r;return -1}(e,t,0)>-1}function d(e){return e!=e}function u(e,t){return e.has(t)}function h(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var p=Array.prototype,f=Function.prototype,g=Object.prototype,m=l["__core-js_shared__"],y=(r=/[^.]+$/.exec(m&&m.keys&&m.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",b=f.toString,x=g.hasOwnProperty,w=g.toString,v=RegExp("^"+b.call(x).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),S=p.splice,k=$(l,"Map"),j=$(l,"Set"),_=$(Object,"create");function E(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 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.__data__=new P;++t<n;)this.add(e[t])}function T(e,t){for(var n,r=e.length;r--;)if((n=e[r][0])===t||n!=n&&t!=t)return r;return -1}E.prototype.clear=function(){this.__data__=_?_(null):{}},E.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},E.prototype.get=function(e){var t=this.__data__;if(_){var n=t[e];return n===i?void 0:n}return x.call(t,e)?t[e]:void 0},E.prototype.has=function(e){var t=this.__data__;return _?void 0!==t[e]:x.call(t,e)},E.prototype.set=function(e,t){return this.__data__[e]=_&&void 0===t?i:t,this},C.prototype.clear=function(){this.__data__=[]},C.prototype.delete=function(e){var t=this.__data__,n=T(t,e);return!(n<0)&&(n==t.length-1?t.pop():S.call(t,n,1),!0)},C.prototype.get=function(e){var t=this.__data__,n=T(t,e);return n<0?void 0:t[n][1]},C.prototype.has=function(e){return T(this.__data__,e)>-1},C.prototype.set=function(e,t){var n=this.__data__,r=T(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},P.prototype.clear=function(){this.__data__={hash:new E,map:new(k||C),string:new E}},P.prototype.delete=function(e){return A(this,e).delete(e)},P.prototype.get=function(e){return A(this,e).get(e)},P.prototype.has=function(e){return A(this,e).has(e)},P.prototype.set=function(e,t){return A(this,e).set(e,t),this},I.prototype.add=I.prototype.push=function(e){return this.__data__.set(e,i),this},I.prototype.has=function(e){return this.__data__.has(e)};var M=j&&1/h(new j([,-0]))[1]==1/0?function(e){return new j(e)}:function(){};function A(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 $(e,t){var n,r=null==e?void 0:e[t];return!(!D(r)||y&&y in r)&&("[object Function]"==(n=D(r)?w.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)?v:o).test(function(e){if(null!=e){try{return b.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(r))?r:void 0}function D(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(o>=200){var d=M(e);if(d)return h(d);s=!1,i=u,l=new I}else l=a;e:for(;++r<o;){var p=e[r],f=p;if(p=0!==p?p:0,s&&f==f){for(var g=l.length;g--;)if(l[g]===f)continue e;t&&l.push(f),a.push(p)}else i(l,f,void 0)||(l!==a&&l.push(f),a.push(p))}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;!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)}()},66590:function(e,t,n){"use strict";n(5600);var r=n(18193);e.exports=r("Array","at")},9169:function(e,t,n){"use strict";n(71596),n(71979);var r=n(18193);e.exports=r("Array","flatMap")},3859:function(e,t,n){"use strict";n(68998),n(66860);var r=n(18193);e.exports=r("Array","flat")},43236:function(e,t,n){"use strict";n(65150);var r=n(18193);e.exports=r("String","at")},23305:function(e,t,n){"use strict";n(87246),n(21531),n(3210);var r=n(18193);e.exports=r("String","replaceAll")},21052:function(e,t,n){"use strict";var r=n(30688),i=n(3397),o=TypeError;e.exports=function(e){if(r(e))return e;throw new o(i(e)+" is not a function")}},27003:function(e,t,n){"use strict";var r=n(72032),i=n(38536),o=n(12131).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}},7503:function(e,t,n){"use strict";var r=n(87048).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},89175:function(e,t,n){"use strict";var r=n(35309),i=String,o=TypeError;e.exports=function(e){if(r(e))return e;throw new o(i(e)+" is not an object")}},21138:function(e,t,n){"use strict";var r=n(36854),i=n(37352),o=n(8344),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)}},39120:function(e,t,n){"use strict";var r=n(40256),i=n(77046),o=n(35309),s=n(72032)("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}},41699:function(e,t,n){"use strict";var r=n(39120);e.exports=function(e,t){return new(r(e))(0===t?0:t)}},52177:function(e,t,n){"use strict";var r=n(9668),i=r({}.toString),o=r("".slice);e.exports=function(e){return o(i(e),8,-1)}}
1,51566:function(e,t,n){"use strict";var r=n(52522),i=n(30688),o=n(52177),s=n(72032)("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}},43891:function(e,t,n){"use strict";var r=n(84678),i=n(50990),o=n(37537),s=n(12131);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))}}},22385:function(e,t,n){"use strict";var r=n(99924),i=n(12131),o=n(17781);e.exports=r?function(e,t,n){return i.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},17781:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},52470:function(e,t,n){"use strict";var r=n(30688),i=n(12131),o=n(41135),s=n(11604);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){}l?e[t]=n:i.f(e,t,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return e}},11604:function(e,t,n){"use strict";var r=n(52150),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}},99924:function(e,t,n){"use strict";var r=n(64694);e.exports=!r(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},21442:function(e,t,n){"use strict";var r=n(52150),i=n(35309),o=r.document,s=i(o)&&i(o.createElement);e.exports=function(e){return s?o.createElement(e):{}}},23433:function(e){"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},1370:function(e){"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},17067:function(e,t,n){"use strict";var r,i,o=n(52150),s=n(1370),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},18193:function(e,t,n){"use strict";var r=n(52150),i=n(9668);e.exports=function(e,t){return i(r[e].prototype[t])}},92367:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},98533:function(e,t,n){"use strict";var r=n(52150),i=n(37537).f,o=n(22385),s=n(52470),a=n(11604),l=n(43891),c=n(51633);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)}}},64694:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},39526:function(e,t,n){"use strict";n(87246);var r=n(68724),i=n(52470),o=n(83346),s=n(64694),a=n(72032),l=n(22385),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)}},13857:function(e,t,n){"use strict";var r=n(40256),i=n(8344),o=n(23433),s=n(14162),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},39659:function(e,t,n){"use strict";var r=n(26398),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)})},14162:function(e,t,n){"use strict";var r=n(5033),i=n(21052),o=n(26398),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)}}},26398:function(e,t,n){"use strict";var r=n(64694);e.exports=!r(function(){var e=(function(){}).bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},68724:function(e,t,n){"use strict";var r=n(26398),i=Function.prototype.call;e.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},40453:function(e,t,n){"use strict";var r=n(99924),i=n(84678),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}},5033:function(e,t,n){"use strict";var r=n(52177),i=n(9668);e.exports=function(e){if("Function"===r(e))return i(e)}},9668:function(e,t,n){"use strict";var r=n(26398),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)}}},2160:function(e,t,n){"use strict";var r=n(52150),i=n(30688);e.exports=function(e,t){var n;return arguments.length<2?i(n=r[e])?n:void 0:r[e]&&r[e][t]}},75383:function(e,t,n){"use strict";var r=n(21052),i=n(5268);e.exports=function(e,t){var n=e[t];return i(n)?void 0:r(n)}},56889:function(e,t,n){"use strict";var r=n(9668),i=n(90298),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})}},52150: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")()},84678:function(e,t,n){"use strict";
vendor: 5,868 bytes, line 1
1var r=n(9668),i=n(90298),o=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return o(i(e),t)}},37390:function(e){"use strict";e.exports={}},28651:function(e,t,n){"use strict";var r=n(2160);e.exports=r("document","documentElement")},17913:function(e,t,n){"use strict";var r=n(99924),i=n(64694),o=n(21442);e.exports=!r&&!i(function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},74347:function(e,t,n){"use strict";var r=n(9668),i=n(64694),o=n(52177),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},1881:function(e,t,n){"use strict";var r=n(9668),i=n(30688),o=n(46762),s=r(Function.toString);i(o.inspectSource)||(o.inspectSource=function(e){return s(e)}),e.exports=o.inspectSource},67804:function(e,t,n){"use strict";var r,i,o,s=n(34724),a=n(52150),l=n(35309),c=n(22385),d=n(84678),u=n(46762),h=n(41962),p=n(37390),f="Object already initialized",g=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}}}},40256:function(e,t,n){"use strict";var r=n(52177);e.exports=Array.isArray||function(e){return"Array"===r(e)}},30688: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}},77046:function(e,t,n){"use strict";var r=n(9668),i=n(64694),o=n(30688),s=n(51566),a=n(2160),l=n(1881),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},51633:function(e,t,n){"use strict";var r=n(64694),i=n(30688),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},5268:function(e){"use strict";e.exports=function(e){return null==e}},35309:function(e,t,n){"use strict";var r=n(30688);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},66555:function(e){"use strict";e.exports=!1},79710:function(e,t,n){"use strict";var r=n(35309),i=n(52177),o=n(72032)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"===i(e))}},27935:function(e,t,n){"use strict";var r=n(2160),i=n(30688),o=n(66148),s=n(94866),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))}},8344:function(e,t,n){"use strict";var r=n(27331);e.exports=function(e){return r(e.length)}},41135:function(e,t,n){"use strict";var r=n(9668),i=n(64694),o=n(30688),s=n(84678),a=n(99924),l=n(40453).CONFIGURABLE,c=n(1881),d=n(67804),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")},41787: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)}},38536:function(e,t,n){"use strict";var r,i=n(89175),o=n(50227),s=n(92367),a=n(37390),l=n(28651),c=n(21442),d=n(41962),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)}},50227:function(e,t,n){"use strict";var r=n(99924),i=n(82666),o=n(12131),s=n(89175),a=n(36854),l=n(41728);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}},12131:function(e,t,n){"use strict";var r=n(99924),i=n(17913),o=n(82666),s=n(89175),a=n(2358),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);
1r&&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}},37537:function(e,t,n){"use strict";var r=n(99924),i=n(68724),o=n(98208),s=n(17781),a=n(36854),l=n(2358),c=n(84678),d=n(17913),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])}},6217:function(e,t,n){"use strict";var r=n(41528),i=n(92367).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},15168:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},66148:function(e,t,n){"use strict";var r=n(9668);e.exports=r({}.isPrototypeOf)},41528:function(e,t,n){"use strict";var r=n(9668),i=n(84678),o=n(36854),s=n(21138).indexOf,a=n(37390),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}},41728:function(e,t,n){"use strict";var r=n(41528),i=n(92367);e.exports=Object.keys||function(e){return r(e,i)}},98208: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},10110:function(e,t,n){"use strict";var r=n(68724),i=n(30688),o=n(35309),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")}},50990:function(e,t,n){"use strict";var r=n(2160),i=n(9668),o=n(6217),s=n(15168),a=n(89175),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}},76802:function(e,t,n){"use strict";var r=n(68724),i=n(89175),o=n(30688),s=n(52177),a=n(83346),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")}},83346:function(e,t,n){"use strict";var r,i,o=n(68724),s=n(9668),a=n(60599),l=n(97929),c=n(93047),d=n(72645),u=n(38536),h=n(67804).get,p=n(65030),f=n(36159),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>
11&&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},97929:function(e,t,n){"use strict";var r=n(89175);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}},80976:function(e,t,n){"use strict";var r=n(68724),i=n(84678),o=n(66148),s=n(97929),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)}},93047:function(e,t,n){"use strict";var r=n(64694),i=n(52150).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}},65030:function(e,t,n){"use strict";var r=n(64694),i=n(52150).RegExp;e.exports=r(function(){var e=i(".","s");return!(e.dotAll&&e.test("\n")&&"s"===e.flags)})},36159:function(e,t,n){"use strict";var r=n(64694),i=n(52150).RegExp;e.exports=r(function(){var e=i("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})},11166:function(e,t,n){"use strict";var r=n(5268),i=TypeError;e.exports=function(e){if(r(e))throw new i("Can't call method on "+e);return e}},41962:function(e,t,n){"use strict";var r=n(72645),i=n(65736),o=r("keys");e.exports=function(e){return o[e]||(o[e]=i(e))}},46762:function(e,t,n){"use strict";var r=n(52150),i=n(11604),o="__core-js_shared__",s=r[o]||i(o,{});e.exports=s},72645:function(e,t,n){"use strict";var r=n(66555),i=n(46762);(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"})},87048:function(e,t,n){"use strict";var r=n(9668),i=n(81680),o=n(60599),s=n(11166),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)}},4112:function(e,t,n){"use strict";var r=n(17067),i=n(64694),o=n(52150).String;e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&r&&r<41})},37352:function(e,t,n){"use strict";var r=n(81680),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)}},36854:function(e,t,n){"use strict";var r=n(74347),i=n(11166);e.exports=function(e){return r(i(e))}},81680:function(e,t,n){"use strict";var r=n(41787);e.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}},27331:function(e,t,n){"use strict";var r=n(81680),i=Math.min;e.exports=function(e){var t=r(e);return t>0?i(t,9007199254740991):0}},90298:function(e,t,n){"use strict";var r=n(11166),i=Object;e.exports=function(e){return i(r(e))}},31272:function(e,t,n){"use strict";var r=n(68724),i=n(35309),o=n(27935),s=n(75383),a=n(10110),l=n(72032),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)}},2358:function(e,t,n){"use strict";var r=n(31272),i=n(27935);e.exports=function(e){var t=r(e,"string");return i(t)?t:t+""}},52522:function(e,t,n){"use strict";var r=n(72032)("toStringTag"),i={};i[r]="z",e.exports="[object z]"===String(i)},60599:function(e,t,n){"use strict";var r=n(51566),i=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}},3397:function(e){"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},65736:function(e,t,n){"use strict";var r=n(9668),i=0,o=Math.random(),s=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+s(++i+o,36)}},94866:function(e,t,n){"use strict";var r=n(4112);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},82666:function(e,t,n){"use strict";var r=n(99924),i=n(64694);e.exports=r&&i(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},34724:function(e,t,n){"use strict";var r=n(52150),i=n(30688),o=r.WeakMap;e.exports=i(o)&&/native code/.test(String(o))},72032:function(e,t,n){"use strict";var r=n(52150),i=n(72645),o=n(84678),s=n(65736),a=n(4112),l=n(94866),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]}},5600:function(e,t,n){"use strict";var r=n(98533),i=n(90298),o=n(8344),s=n(81680),a=n(27003);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")},71596:function(e,t,n){"use strict";var r=n(98533),i=n(13857),o=n(21052),s=n(90298),a=n(8344),l=n(41699);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}})},68998:function(e,t,n){"use strict";var r=n(98533),i=n(13857),o=n(90298),s=n(8344),a=n(81680),l=n(41699);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}})},71979:function(e,t,n){"use strict";n(27003)("flatMap")},66860:function(e,t,n){"use strict";n(27003)("flat")},87246:function(e,t,n){"use strict";var r=n(98533),i=n(83346);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},65150:function(e,t,n){"use strict";var r=n(98533),i=n(9668),o=n(11166),s=n(81680),a=n(60599),l=n(64694),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)}})},3210:function(e,t,n){"use strict";var r=n(98533),i=n(68724),o=n(9668),s=n(11166),a=n(30688),l=n(5268),c=n(79710),d=n(60599),u=n(75383),h=n(80976),p=n(
156889),f=n(72032),g=n(66555),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}})},21531:function(e,t,n){"use strict";var r=n(39659),i=n(68724),o=n(9668),s=n(39526),a=n(64694),l=n(89175),c=n(30688),d=n(5268),u=n(81680),h=n(27331),p=n(60599),f=n(11166),g=n(7503),m=n(75383),y=n(56889),b=n(76802),x=n(72032)("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)},83428:function(e,t,n){"use strict";var r=n(66590);e.exports=r},20863:function(e,t,n){"use strict";var r=n(9169);e.exports=r},14449:function(e,t,n){"use strict";var r=n(3859);e.exports=r},20167:function(e,t,n){"use strict";var r=n(43236);e.exports=r},65950:function(e,t,n){"use strict";var r=n(23305);e.exports=r},97606:function(e,t){var n;!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)}()},5109:function(e,t,n){"use strict";let r,i,o,s;n.d(t,{KDN:function(){return k.KD},uNM:function(){return n3},ZJj:function(){return c.ZJ},TAC:function(){return c.TA},Ykc:function(){return c.Yk},osW:function(){return nX},StR:function(){return nV},xuv:function(){return ez.xu},$Gp:function(){return k.$G},EEY:function(){return n5},_e1:function(){return n9},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 tS},ST$:function(){return c.ST},HO5:function(){return c.HO},Ljl:function(){return n0.L},Lu5:function(){return c.Lu},WN4:function(){return n7.W},MLE:function(){return tY.M},rpf:function(){return re},CsX:function(){return nz},Zuj:function(){return c.Zu},mqq:function(){return eU.m},pjK:function(){return v.pj},iFn:function(){return k.iF},wMU:function(){return k.wM},G7H:function(){return nN},a2c:function(){return c.a2},t88:function(){return c.t8},a_T:function(){return nR},Etb:function(){return k.Et},sZM:function(){return k.sZ},_3P:function(){return eF._},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 rt.w},qvd:function(){return n6.q},zc7:function(){return nU.z},dvh:function(){return v.dv},gkc:function(){return nF.g},EeJ:function(){return nH.E},otj:function(){return rr.o},ihl:function(){return rn},nui:function(){return nW.n},fVw:function(){return c.fV},T:function(){return u.T},gRN:function(){return nA},B08:function(){return eA.B},_cv:function(){return ri._},R4W:function(){return d.R4},mRm:function(){return v.mR},ZmI:function(){return ra.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 nK.Qs},LpX:function(){return t2},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 ra.o},RKM:function(){return tw},WlM:function(){return tZ},J14:function(){return c.J1},VWE:function(){return c.VW},y59:function(){return c.y5},FcS:function(){return c.Fc},bOj:function(){return n1.bO},h9x:function(){return n1.h9},qZQ:function(){return n1.qZ},GcE:function(){return n1.Gc},tYe:function(){return n1.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 rs},fNR:function(){return eD},C_M:function(){return c.C_},m0n:function(){return c.m0},EPv:function(){return d.EP},xwP:function(){return rc},RpK:function(){return v.Rp},Ofd:function(){return v.Of},UQR:function(){return n1.UQ},Yku:function(){return v.Yk},PFJ:function(){return M},YmS:function(){return a.Ym},XEs:function(){return $},$eB:function(){return nZ},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 eK},ELf:function(){return t8.E},vcd:function(){return a.vc},uK4:function(){return R},jE2:function(){return b.j},ofW:function(){return tN},Q1i:function(){return nq},Gv6:function(){return tG},YzH:function(){return nQ},oOK:function(){return eW},BKU:function(){return a.BK},Ie$:function(){return nJ},TaN:function(){return tB},SE:function(){return tL},QLD:function(){return nP},Hm2:function(){return w},HgN:function(){return a.Hg},lY$:function(){return c.lY},p$I:function(){return c.p$}});var 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);
1let 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){switch(I(()=>j.env.TLDRAW_ENV)??I(()=>j.env.VERCEL_PUBLIC_TLDRAW_ENV)??I(()=>j.env.NEXT_PUBLIC_TLDRAW_ENV)??"production"){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 z=["input","select","button","textarea"];function N(){let{activeElement:e}=document;return!!(e&&(e.getAttribute("contenteditable")||z.indexOf(e.tagName.toLowerCase())>-1))}let F=["textarea","input"],U={toVector:(e,t)=>(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}
1function 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 Q(e){return"touches"in e}function J(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 J(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;Object.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[Q(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});class ey 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")}}
1restrictToAxis(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=J(...Array.from(n.values()));i&&this.pinchStart(e,i)}pinchStart(e,t){this.state.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=J(...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){"uv"in e||!e.cancelable||e.preventDefault();let t=this.state;t._delta=[-et(e)[1]/100*t.offset[0],0],U.addTo(t._movement,t._delta),em(t),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})}}let eb=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=>{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){return this.lockDirection="lock"===n.axis,U.toVector(e,this.lockDirection?[.1,3]:0)},modifierKey:e=>void 0===e?"ctrlKey":e,pinchOnWheel:(e=!0)=>e});W(W({},ed),{},{mouseOnly:(e=!0)=>e});class ex 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
1()}wheelEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){e("wheel","",this.wheel.bind(this))}}W(W({},ed),{},{mouseOnly:(e=!0)=>e});let ew=new Map,ev=new Map,eS={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},ek=["target","eventOptions","window","enabled","transform"];function ej(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]=ej(e[r],i);break;case"boolean":i&&(n[r]=e[r])}return n}class e_{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];return e+(n&&n[t]||t)}(t,n),a=W(W({},this._gestureKey?this._ctrl.config[this._gestureKey].eventOptions:{}),i);e.addEventListener(s,r,a);let l=()=>{e.removeEventListener(s,r,a),o.delete(l)};return o.add(l),l}clean(){this._listeners.forEach(e=>e()),this._listeners.clear()}}class eE{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 eC{constructor(e){V(this,"gestures",new Set),V(this,"_targetEventStore",new e_(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&&eP(this,"drag"),e.wheel&&eP(this,"wheel"),e.scroll&&eP(this,"scroll"),e.move&&eP(this,"move"),e.pinch&&eP(this,"pinch"),e.hover&&eP(this,"hover")}setEventIds(e){return Q(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,ek);if(n.shared=ej({target:r,eventOptions:i,window:o,enabled:s,transform:a},eS),t){let e=ev.get(t);n[t]=ej(W({shared:n.shared},l),e)}else for(let e in l){let t=ev.get(e);t&&(n[e]=ej(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=eI(r,i.eventOptions,!!t);i.enabled&&new(ew.get(n))(this,e,n).bind(o)}let i=eI(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 eP(e,t){e.gestures.add(t),e.gestureEventStores[t]=new e_(e,t),e.gestureTimeoutStores[t]=new eE}let eI=(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)},eT=/^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;function eM(e,t,n,r,i,o){if(!e.has(n)||!ew.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 eA=n(80489);let e$=/Mac|iPod|iPhone|iPad/.test("undefined"==typeof window?"node":window.navigator.platform);function eD(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&&!e$&&(n=t,t=0);return{x:-n,y:-t,z:-r}}let eO=([{key:"wheel",engine:ex,resolver:ed},{key:"pinch",engine:ey,resolver:eb}
1].forEach(function(e){ew.set(e.key,e.engine),ev.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)eT.test(i)?(r.add(RegExp.lastMatch),n[i]=e[i]):t[i]=e[i];return[n,t,r]}(e),o={};return eM(i,n,"onDrag","drag",o,t),eM(i,n,"onWheel","wheel",o,t),eM(i,n,"onScroll","scroll",o,t),eM(i,n,"onPinch","pinch",o,t),eM(i,n,"onMove","move",o,t),eM(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 eC(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)}),eB=e=>void 0===o?(o=e,!1):e-o>120&&e-o<160?(o=e,!0):(o=e,!1);function eL(e,t,n){let r=e.getShape(t),i=e.getShapeHandles(r);return{shape:r,handle:i.find(e=>e.id===n)}}var eR=n(98357),ez=n(84527);let eN=e=>{let t=e.parentElement;for(;t&&t!==document.body;){let{overflowY:e}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&("auto"===e||"scroll"===e||"overlay"===e))return t;t=t.parentElement}return document};var eF=n(46921),eU=n(24196);let eH=(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)(eZ,{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 eZ({geometry:e}){return e instanceof eU.m?(0,h.jsx)(h.Fragment,{children:[...e.children,...e.ignoredChildren].map((e,t)=>(0,h.jsx)(eZ,{geometry:e},t))}):(0,h.jsx)("path",{stroke:e.debugColor??"red",strokeWidth:"2",fill:"none",opacity:"1",d:e.toSimpleSvgPath()})}var eV=n(94430);function eK(e){return eV(e)}function eW(e){let t=(0,b.j)(),n=(0,p.useMemo)(()=>t.store.query.records("instance_presence",()=>({userId:{eq:e}})),[t,e]);return(0,a.Hg)(`latestPresence:${e}`,()=>n.get().slice().sort((e,t)=>t.lastActivityTimestamp-e.lastActivityTimestamp)[0],[])??null}let eY=(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",()=>eV(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)(eG,{collaboratorId:e},e))})}),eG=(0,a.j)(function({collaboratorId:e}){let t=(0,b.j)(),n=eW(e),r=function(e){let t=(0,p.useRef)(e?.lastActivityTimestamp??-1),[n,r]=(0,p.useState)(()=>eq(Date.now()-t.current));return(0,p.useEffect)(()=>{let e=setInterval(()=>{r(eq(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)(eX,{latestPresence:n})}),eX=(0,a.j)(function({latestPresence:e}){let t=(0,b.j)(),{CollaboratorBrush:n,CollaboratorScribble:r,CollaboratorCursor:i,CollaboratorHint:o,CollaboratorShapeIndicator:s}=tN(),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))}
1):null,s&&f.map(e=>(0,h.jsx)(s,{className:"tl-collaborator__shape-indicator",shapeId:e,color:y,opacity:.5},c+"_"+e))]})});function eq(e){return e>k.RZ?"inactive":e>k.O8?"idle":"active"}let eQ=(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}=tN(),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",()=>{if(!l.getShape(e))return;let t=l.getShapePageTransform(e);f("transform",eF._.toCssString(t))},[l,f]),(0,a.BK)("set shape container clip path",()=>{if(!l.getShape(e))return null;f("clip-path",l.getShapeClipPath(e)??"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=function(e){let t=e.toString().split(".")[1];if(!t)return 1;let n=Math.pow(10,t.length);return n/function e(t,n){return 0===n?t:e(n,t%n)}(parseInt(t,10),n)}(Math.floor(100*l.getInstanceState().devicePixelRatio)/100),i=n.w%r,o=0===i?n.w:n.w+(r-i),s=n.h%r,a=0===s?n.h:n.h+(r-s);f("width",Math.max(o,r)+"px"),f("height",Math.max(a,r)+"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)(e0,{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)(e1,{shape:t}):(0,h.jsx)(y,{fallback:c,onError:g,children:(0,h.jsx)(eJ,{shape:t,util:n})})})]}):null}),eJ=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),e0=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),e1=p.memo(function({shape:e}){let t=(0,b.j)().getShapeGeometry(e).bounds;return(0,h.jsx)("div",{className:"tl-shape__culled",style:{transform:`translate(${(0,v.$Z)(t.minX)}px, ${(0,v.$Z)(t.minY)}px)`,width:Math.max(1,(0,v.$Z)(t.width)),height:Math.max(1,(0,v.$Z)(t.height))}})},()=>!0);function e2({className:e}){let t=(0,b.j)(),{Background:n,SvgDefs:r}=tN(),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 ez.xu(r.left||r.x,r.top||r.y,Math.max(r.width,1),Math.max(r.height,1)))}n();let r=eR(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=eN(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=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),i=e=>{"change"===e.type&&n()};r.addEventListener?r.addEventListener("change",n):r.addListener&&r.addListener(i),t=()=>{r.removeEventListener?r.removeEventListener("change",n):r.removeListener&&r.removeListener(i)},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"))&&!N()&&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(N()||e.getIsMenuOpen())return;break;case",":return;case"Escape":if((e.getEditingShape()||e.getSelectedShapeIds().length>0)&&n.preventDefault(),e.getOpenMenus().length>0)return;
1e.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,N()||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)();eO(p.useMemo(()=>{let n="not sure",r=1,i=1,o=1,s=0,a=new eA.B,l=new eA.B,c=e=>{if(e&&(n="zooming"),"zooming"===n)return;let t=Math.abs(s-r),i=eA.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",eB(Date.now())))return;let r=t.getEditingShapeId();if(r){let e=t.getShape(r);if(e&&t.getShapeUtil(e).canScroll(e)){let e=t.getShapePageBounds(r);if(e?.containsPoint(t.inputs.currentPagePoint))return}}M(e);let i=eD(e);if(0===i.x&&0===i.y)return;let o={type:"wheel",name:"wheel",delta:i,point:new eA.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]),{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)();return(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])}(),c=(0,a.Hg)("shapeSvgDefs",()=>{let e=new Map;for(let n of(0,d.UM)(t.shapeUtils)){if(!n)return;for(let{key:t,component:r}of n.getCanvasSvgDefs())e.has(t)||e.set(t,(0,h.jsx)(r,{},t))}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]);
1return(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,to&&(0,h.jsx)(to,{}),(0,h.jsx)(ts,{}),(0,h.jsx)(ta,{}),(0,h.jsx)(tl,{}),r&&(0,h.jsx)(r,{})]})}),n&&(0,h.jsx)(n,{}),(0,h.jsx)(e8,{}),(0,h.jsxs)("div",{ref:o,className:"tl-html-layer tl-shapes",draggable:!1,children:[(0,h.jsx)(th,{}),(0,h.jsx)(tu,{}),u?null:g?(0,h.jsx)(te,{}):(0,h.jsx)(tt,{})]}),(0,h.jsxs)("div",{className:"tl-overlays",children:[(0,h.jsxs)("div",{ref:s,className:"tl-html-layer",children:[m?(0,h.jsx)(eH,{}):null,(0,h.jsx)(e9,{}),(0,h.jsx)(e5,{}),(0,h.jsx)(e3,{}),(0,h.jsx)(e6,{}),(0,h.jsx)(tn,{}),(0,h.jsx)(tr,{}),(0,h.jsx)(ti,{}),(0,h.jsx)(e4,{}),(0,h.jsx)(td,{}),(0,h.jsx)(eY,{})]}),(0,h.jsx)(tp,{})]})]})}function e8(){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}=tN();return s&&o?(0,h.jsx)(s,{x:n,y:r,z:i,size:t}):null}function e3(){let e=(0,b.j)(),t=(0,a.Hg)("scribbles",()=>e.getInstanceState().scribbles,[e]),n=(0,a.Hg)("zoomLevel",()=>e.getZoomLevel(),[e]),{Scribble:r}=tN();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 e5(){let e=(0,b.j)(),t=(0,a.Hg)("brush",()=>e.getInstanceState().brush,[e]),{Brush:n}=tN();return n&&t?(0,h.jsx)(n,{className:"tl-user-brush",brush:t}):null}function e6(){let e=(0,b.j)(),t=(0,a.Hg)("zoomBrush",()=>e.getInstanceState().zoomBrush,[e]),{ZoomBrush:n}=tN();return n&&t?(0,h.jsx)(n,{className:"tl-user-brush tl-zoom-brush",brush:t}):null}function e4(){let e=(0,b.j)(),t=(0,a.Hg)("snapLines",()=>e.snaps.getIndicators(),[e]),n=(0,a.Hg)("zoomLevel",()=>e.getZoomLevel(),[e]),{SnapIndicator:r}=tN();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 e9(){let e=(0,b.j)(),{Handles:t}=tN(),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&&eA.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:eF._.toCssString(l),children:c.map(e=>(0,h.jsx)(e7,{shapeId:s.id,handle:e,zoom:n,isCoarse:r},e.id))})}):null}function e7({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;A(T(r.currentTarget),r);let{shape:i,handle:o}=eL(n,e,t);o&&n.dispatch({type:"pointer",target:"handle",handle:o,shape:i,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}=eL(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;$(T(r.currentTarget),r);let{shape:i,handle:o}=eL(n,e,t);o&&n.dispatch({type:"pointer",target:"handle",handle:o,shape:i,name:"pointer_up",...O(r)})}}},[n,e,t])}(e,t.id),{Handle:o}=tN();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 te(){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)(eQ,{...e}),(0,h.jsx)(tc,{id:e.id})]},e.id+"_fragment"))})}function tt(){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)(eQ,{...e},e.id+"_shape"))})}function tn(){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}=tN();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}let tr=function(){let e=(0,b.j)(),{HoveredShapeIndicator:t}=tN(),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},ti=(0,a.j)(function(){let e=(0,b.j)(),{ShapeIndicator:t}=tN(),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 to(){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"})]})]})}
1function ts(){return(0,h.jsx)("path",{id:"cursor_hint",fill:"currentColor",d:"M -2,-5 2,0 -2,5 Z"})}function ta(){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 tl(){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 tc=(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 td(){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}=tN();return n&&r?(0,h.jsx)(r,{bounds:n,rotation:t}):null}function tu(){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}=tN();return n&&r?(0,h.jsx)(r,{bounds:n,rotation:t}):null}function th(){let{OnTheCanvas:e}=tN();return e?(0,h.jsx)(e,{}):null}function tp(){let{InFrontOfTheCanvas:e}=tN();return e?(0,h.jsx)(e,{}):null}function tf({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,eA.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 tg=(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 tm({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=c>0?c%l:l+c%l,f=u>0?u%l:l+u%l,g=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:p,cy:f,r:1,opacity:g})},`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 ty({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 tb=({children:e})=>(0,h.jsx)("svg",{className:"tl-user-handles tl-overlays__item",children:e});function tx({shapeId:e}){let{ShapeIndicator:t}=tN();return t?(0,h.jsx)(t,{className:"tl-user-indicator__hovered",shapeId:e}):null}function tw(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 tv({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:tw(e.points,!1),stroke:n??`var(--color-${e.color})`,fill:"none",strokeWidth:8/t,opacity:r??e.opacity})}):null}function tS({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 tk({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 tj=()=>(0,h.jsx)("div",{className:"tl-shape-error-boundary"});class t_{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 tE=({shape:e,util:t})=>(0,a.uC)("Indicator:"+e.type,()=>t.indicator(e)),tC=({editor:e,id:t})=>{let n=(0,a.Hg)("shape",()=>new t_(e.store.get(t)),[e,t]),{ShapeIndicatorErrorFallback:r}=tN();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)(tE,{shape:n.shape,util:e.getShapeUtil(n.shape)},n.shape.id)})},tP=(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)(tC,{editor:i,id:e})})})}),tI=()=>(0,h.jsx)("circle",{cx:4,cy:4,r:8,strokeWidth:"1",stroke:"red"});function tT({points:e,zoom:t}){let n,r,i,o;let s=2.5/t,a=e.reduce((e,t)=>
1Math.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);return e.some(e=>e.x===a&&e.y===c)?(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 tM({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 tA({className:e,line:t,zoom:n}){return(0,h.jsx)("svg",{className:f("tl-overlays__item",e),children:"points"===t.type?(0,h.jsx)(tT,{...t,zoom:n}):"gaps"===t.type?(0,h.jsx)(tM,{...t,zoom:n}):null})}function t$(){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 tD=()=>null;function tO(e,t){let n=(0,p.useRef)(e);return t(e,n.current)?n.current:(n.current=e,e)}function tB(e){return tO(e,d.E8)}function tL(e){return tO(e,d.dn)}let tR=(0,p.createContext)({});function tz({overrides:e={},children:t}){let n=tL(e);return(0,h.jsx)(tR.Provider,{value:(0,p.useMemo)(()=>({Background:x,SvgDefs:tD,Brush:S,ZoomBrush:S,ScreenshotBrush:S,CollaboratorBrush:S,Cursor:tg,CollaboratorCursor:tg,CollaboratorHint:tf,CollaboratorShapeIndicator:tP,Grid:tm,Scribble:tv,SnapIndicator:tA,Handles:tb,Handle:ty,CollaboratorScribble:tv,ErrorFallback:tK,ShapeErrorFallback:tj,ShapeIndicatorErrorFallback:tI,Spinner:t$,SelectionBackground:tS,SelectionForeground:tk,HoveredShapeIndicator:tx,ShapeIndicator:tP,OnTheCanvas:null,InFrontOfTheCanvas:null,Canvas:e2,...n}),[n]),children:t})}function tN(){return(0,p.useContext)(tR)}let tF=(e,t)=>window.open(e,t,"noopener noreferrer"),tU=()=>window.location.reload(),tH=async()=>await window.__tldraw__hardReset?.();function tZ(){tH()}function tV(){}let tK=({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}=tN(),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()=>{tZ()},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:
2
3\`\`\`js
4${g??u}
5\`\`\`
6
7My 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:tV,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:()=>{tU()},children:"Refresh Page"})]})]})]})})]})};var tW=n(41276),tY=n(16610);function tG(){let e=(0,b.j)();return(0,a.Hg)("isDarkMode",()=>e.user.getIsDarkMode(),[e])}let tX="<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'/>",tq="<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'/>",tQ='<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 tJ(e,t,n,r,i,o=16,s=16){let a=v.PI/180*(-n-t),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 t0=["default","pointer","cross","move","grab","grabbing","text","zoom-in","zoom-out"],t1={none:()=>"none","ew-resize":(e,t,n)=>tJ(tq,e,0,t,n),"ns-resize":(e,t,n)=>tJ(tq,e,90,t,n),"nesw-resize":(e,t,n)=>tJ(tX,e,0,t,n),"nwse-resize":(e,t,n)=>tJ(tX,e,90,t,n),"nwse-rotate":(e,t,n)=>tJ(tQ,e,0,t,n),"nesw-rotate":(e,t,n)=>tJ(tQ,e,90,t,n),"senw-rotate":(e,t,n)=>tJ(tQ,e,180,t,n),"swne-rotate":(e,t,n)=>tJ(tQ,e,270,t,n)};function t2(e,t=0,n="black"){return t1[e]((0,v.vi)(t),!1,n)}var t8=n(73565);let t3="TLDRAW_TAB_ID_v2",t5=globalThis.window,t6=t5?.[t3]??t5?.sessionStorage[t3]??"TLDRAW_INSTANCE_STATE_V1_"+(0,t8.E)();t5&&(t5[t3]=t6,t5&&(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(t5.navigator.platform)||t5.navigator.userAgent.includes("Mac")&&"ontouchend"in document)?t5.sessionStorage[t3]=t6:delete t5.sessionStorage[t3]),t5?.addEventListener("beforeunload",()=>{t5.sessionStorage[t3]=t6});let t4=u.T.object({version:u.T.number,currentPageId:c.CF,isFocusMode:u.T.boolean,exportBackgroun
7d: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()}))}),t9=(0,l.zn)({currentVersion:0}),t7=(e,t)=>t.some(t=>e instanceof t),ne=new WeakMap,nt=new WeakMap,nn=new WeakMap,nr=new WeakMap,ni=new WeakMap,no={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return nt.get(e);if("objectStoreNames"===t)return e.objectStoreNames||nn.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return ns(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function ns(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(ns(e.result)),r()},o=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",o)});return t.then(t=>{t instanceof IDBCursor&&ne.set(t,e)}).catch(()=>{}),ni.set(t,e),t}(e);if(nr.has(e))return nr.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(na(this),e),ns(ne.get(this))}:function(...e){return ns(t.apply(na(this),e))}:function(e,...n){let r=t.call(na(this),e,...n);return nn.set(r,e.sort?e.sort():[e]),ns(r)}:(t instanceof IDBTransaction&&function(e){if(nt.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)});nt.set(e,t)}(t),t7(t,r||(r=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(t,no):t;return n!==e&&(nr.set(e,n),ni.set(n,e)),n}let na=e=>ni.get(e),nl=["get","getKey","getAll","getAllKeys","count"],nc=["put","add","delete","clear"],nd=new Map;function nu(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(nd.get(t))return nd.get(t);let n=t.replace(/FromIndex$/,""),r=t!==n,i=nc.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||nl.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 nd.set(t,o),o}no={...s=no,get:(e,t,n)=>nu(e,t)||s.get(e,t,n),has:(e,t)=>!!nu(e,t)||s.has(e,t)};let nh="TLDRAW_DOCUMENT_v2",np="TLDRAW_DB_NAME_INDEX_v2",nf={Records:"records",Schema:"schema",SessionState:"session_state"};async function ng(e,t){!function(e){let t=new Set(nw());t.add(e),window?.localStorage.setItem(np,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=ns(s);return r&&s.addEventListener("upgradeneeded",e=>{r(ns(s.result),e.oldVersion,e.newVersion,ns(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(nf.Records)||e.createObjectStore(nf.Records),e.objectStoreNames.contains(nf.Schema)||e.createObjectStore(nf.Schema),e.objectStoreNames.contains(nf.SessionState)||e.createObjectStore(nf.SessionState)}});try{return await t(n)}finally{n.close()}}async function nm({persistenceKey:e,sessionId:t,didCancel:n}){let r=nh+e;if(nw().includes(r))return await nx({persistenceKey:e,didCancel:n}),await ng(r,async e=>{if(n?.())return;let r=e.transaction([nf.Records,nf.Schema,nf.SessionState],"readonly"),i=r.objectStore(nf.Records),o=r.objectStore(nf.Schema),s=r.objectStore(nf.SessionState),a=t?(await s.get(t))?.snapshot:null;if(!a){let e=await s.getAll();a=e.sort((e,t)=>
7e.updatedAt-t.updatedAt).pop()?.snapshot}let l={records:await i.getAll(),schema:await o.get(nf.Schema),sessionStateSnapshot:a};if(n?.()){r.abort();return}return await r.done,l})}async function ny({persistenceKey:e,schema:t,changes:n,sessionId:r,sessionStateSnapshot:i,didCancel:o}){await ng(nh+e,async e=>{let s=e.transaction([nf.Records,nf.Schema,nf.SessionState],"readwrite"),a=s.objectStore(nf.Records),l=s.objectStore(nf.Schema),c=s.objectStore(nf.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(),nf.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 nb({persistenceKey:e,schema:t,snapshot:n,sessionId:r,sessionStateSnapshot:i,didCancel:o}){await ng(nh+e,async e=>{let s=e.transaction([nf.Records,nf.Schema,nf.SessionState],"readwrite"),a=s.objectStore(nf.Records),l=s.objectStore(nf.Schema),c=s.objectStore(nf.SessionState);for(let[e,t]of(await a.clear(),Object.entries(n)))await a.put(t,e);if(l.put(t.serialize(),nf.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 nx({persistenceKey:e,didCancel:t}){await ng(nh+e,async e=>{let n=e.transaction([nf.SessionState],"readwrite"),r=n.objectStore(nf.SessionState),i=(await r.getAll()).sort((e,t)=>e.updatedAt-t.updatedAt);if(i.length<10){await n.done;return}for(let{id:e}of i.slice(0,i.length-10))await r.delete(e);if(t?.())return n.abort();await n.done})}function nw(){let e=JSON.parse(window?.localStorage.getItem(np)||"[]")??[];return Array.isArray(e)?e:[]}let nv=Symbol("UPDATE_INSTANCE_STATE"),nS=e=>e;class nk{onmessage;constructor(e){}postMessage(e){}close(){}}let nj="undefined"==typeof BroadcastChannel?nk:BroadcastChannel;class n_{constructor(e,{persistenceKey:t,sessionId:n=t6,onLoad:r,onLoadError:i},o=new nj(`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(nS({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(nv),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 nm({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.
8
9Keep seeing this message?
10\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;
10let 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 t4.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:t9});if("error"===t.type)return console.warn(t.reason),null;let n={...t.value,version:0};try{t4.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());
10if(-1===n){if(Date.now()-this.initTime<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.forEach(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 nb({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!==nv));await ny({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.
11
12Keep seeing this message?
13\u2022 If you're using tldraw in a private or "incognito" window, try loading tldraw in a regular window or in a different browser.
14\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 nE=n(80492);function nC(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,nE.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 nP(e){let[t,n]=(0,p.useState)(()=>nC(e));if(!(0,d.dn)(t.opts,e)){let t=nC(e);return n(t),t.store}return t.store}let nI=!1;if("undefined"!=typeof window){let e=window.navigator.userAgent,t=!!e.match(/iPad/i)||!!e.match(/iPhone/i),n=!!e.match(/WebKit/i);nI=t&&n&&!e.match(/CriOS/i)}let nT=[],nM=[],nA=(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,tW.L)(),[r]),c=t?.ErrorFallback===void 0?tK:t?.ErrorFallback,u={...i,shapeUtils:i.shapeUtils??nT,tools:i.tools??nM,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)(tz,{overrides:t,children:e?e instanceof l.yh?(0,h.jsx)(nO,{...u,store:e,user:a}):(0,h.jsx)(nD,{...u,store:e,user:a}):(0,h.jsx)(n$,{...u,store:e,user:a})})})})})});function n$(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=nP(n);return(0,p.useEffect)(()=>{let n=(0,t8.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 n_(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)(nD,{...e,store:l,user:a})}let nD=(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}=tN();switch(e.status){case"error":throw e.error;case"loading":return i?(0,h.jsx)(i,{}):null}return(0,h.jsx)(nO,{...n,store:e.store,user:t})});function nO({onMount:e,children:t,store:n,tools:r,shapeUtils:i,user:o,initialState:s,autoFocus:a=!0,inferDarkMode:l}){let{ErrorFallback:c}=tN(),d=R(),[u,f]=(0,p.useState)(null);(0,p.useLayoutEffect)(()=>{let e=new tY.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}=tN();return u?(0,h.jsx)(y,{fallback:c,onError:e=>u.annotateError(e,{origin:"react.tldraw",willCrashApp:!0}),children:g?(0,h.jsx)(nL,{crashingError:g}):(0,h.jsx)(b.r.Provider,{value:u,children:(0,h.jsx)(nB,{autoFocus:a,onMount:e,children:t??(m?(0,h.jsx)(m,{}):null)})})}):null}
14function nB({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",()=>{e.getCurrentPageShapeIds().size<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=tG();(0,a.BK)("useCursor",()=>{let{type:r,rotation:i}=e.getInstanceState().cursor;if(t0.includes(r)){t.style.setProperty("--tl-cursor",`var(--tl-cursor-${r})`);return}t.style.setProperty("--tl-cursor",t2(r,i,n?"white":"black"))},[e,t,n])}(),!function(){let e=(0,b.j)(),t=R(),n=tG(),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(nI)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 nL({crashingError:e}){throw e}function nR({children:e}){return(0,h.jsx)("div",{className:"tl-loading",children:e})}function nz({children:e}){return(0,h.jsx)("div",{className:"tl-loading",children:e})}function nN({children:e,className:t="",...n}){return(0,h.jsx)("div",{...n,className:`tl-html-container ${t}`,children:e})}var nF=n(13537);n(20575),n(79461);var nU=n(85990),nH=n(99742);function nZ(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 eA.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 nV extends nH.E{getGeometry(e){return new nU.z({width:e.props.w,height:e.props.h,isFilled:!0})}onResize=(e,t)=>
14nZ(e,t);getHandleSnapGeometry(e){return{points:this.getGeometry(e).bounds.cornersAndCenter}}}n(52778);var nK=n(35407),nW=n(58191);class nY extends nW.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 nG extends nW.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 eA.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 nX extends nW.n{static id="box";static initial="idle";static children=()=>[nY,nG];onCreate}function nq(e){let t=(0,b.j)();return(0,a.Hg)("isCropping",()=>t.getCroppingShapeId()===e,[t,e])}function nQ(e){let t=(0,b.j)();return(0,a.Hg)("isEditing",()=>t.getEditingShapeId()===e,[t,e])}function nJ(e){let t=(0,b.j)();return(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])}n(77162);var n0=n(80695),n1=n(96284),n2=n(52938);function n8(e,t=20){return Math.max(8,Math.ceil(e/t))}class n3 extends n2.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=eA.B.Angle(t,o),this.angleEnd=eA.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,n1.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=n8(Math.abs(n));s<a+1;s++){let n=i+s/a*t;o.push((0,v.XD)(e,r,n))}return o}}class n5 extends n2.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 eA.B(r+t,r+n),this.radius=r}_center;radius;x;y;getBounds(){return new ez.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=n8(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)?eA.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,n1.ZM)(e,t,r,i)}}var n6=n(94109);class n4 extends n6.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 eA.B((1-s)*(1-s)*(1-s)*t.x+(1-s)*(1-s)*3*s*n.x+3*(1-s)*(s*s)*r.x+s*s*s*i.x,(1-s)*(1-s)*(1-s)*t.y+(1-s)*(1-s)*3*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 eA.B(.25*(1-t)*n.x+(1-t)*(1-t)*3*t*r.x+3*(1-t)*(t*t)*i.x+t*t*t*o.x,(1-t)*(1-t)*(1-t)*n.y+(1-t)*(1-t)*3*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 n9 extends n2.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 eA.B(i.x+(o.x-t.x)/6*1.25,i.y+(o.y-t.y)/6*1.25),l=r===n?o:new eA.B(o.x-(s.x-i.x)/6*1.25,o.y-(s.y-i.y)/6*1.25);this._segments.push(new n4({start:i,cp1:a,cp2:l,end:o}))}}return this._segments}_length;get length(){return this._length||(this._length=this.segments.reduce((e,t)=>
14e+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 n7=n(77843);class re extends n2.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 n7.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=n8(v.PI*(n+r)*(1+3*i/(10+Math.sqrt(4-3*i)))),s=v.yo/o,a=Math.cos(s),l=Math.sin(s),c=0,d=1,u=0,h=1,p=Array(o);for(let e=0;e<o;e++)p[e]=new eA.B(n+n*d,r+r*c),u=l*d+a*c,h=a*d-l*c,c=u,d=h;return p}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 ez.xu(0,0,this.w,this.h)}}var rt=n(50603);class rn extends re{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 eA.B(n+n*Math.cos(r),n+n*Math.sin(r)),i[e+9]=new eA.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 eA.B(e-r+r*Math.cos(o),t-r+r*Math.sin(o)),i[n+9]=new eA.B(r-r*Math.cos(s),t-r+r*Math.sin(s))}return i}}var rr=n(85592),ri=n(8662);function ro(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 rs(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=ro(t,i.w,a,u,c),p=ro(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 ra=n(99590);async function rl({shouldReload:e=!0}={}){sessionStorage.clear(),await Promise.all(nw().map(e=>(function(e,{blocked:t}={}){let n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",e=>t(e.oldVersion,e)),ns(n).then(()=>void 0)})(e))),localStorage.clear(),e&&window.location.reload()}function rc(e,t="_blank"){tF(e,t)}"undefined"!=typeof window&&(window.__tldraw__hardReset=rl),n(83428),n(20863),n(14449),n(20167),n(65950)},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 v},ks:function(){return p},ng:function(){return h},yu:function(){return y}});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=(0,i.zn)({currentVersion:5,migrators:{1:{up:e=>({...e,animationSpeed:1}),down:({animationSpeed:e,...t})=>t},2:{up:e=>({...e,isSnapMode:!1}),down:({isSnapMode:e,...t})=>t},3:{up:e=>e,down:e=>({id:e.id,name:e.name??p.name,locale:e.locale??p.locale,color:e.color??p.color,animationSpeed:e.animationSpeed??p.animationSpeed,isDarkMode:e.isDarkMode??p.isDarkMode,isSnapMode:e.isSnapMode??p.isSnapMode,isWrapMode:e.isWrapMode??p.isWrapMode})},4:{up:e=>({...e,edgeScrollSpeed:1}),down:({edgeScrollSpeed:e,...t})=>t},5:{up:e=>({...e,isWrapMode:!1}),down:({isWrapMode:e,...t})=>t}}}
14),u=["#FF802B","#EC5E41","#F2555A","#F04F88","#E34BA9","#BD54C6","#9D5BD2","#7B66DC","#02B1CC","#11B3A3","#39B178","#55B467"];function h(){return"undefined"!=typeof window&&(window.matchMedia?.("(prefers-color-scheme: dark)")?.matches??!1)}let p=Object.freeze({name:"New User",locale:(0,o.Bz)(),color:u[Math.floor(Math.random()*u.length)],isDarkMode:!1,edgeScrollSpeed:1,animationSpeed:"undefined"!=typeof window&&window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches?0:1,isSnapMode:!1,isWrapMode:!1});function f(){return{id:(0,a.E)()}}function g(e){if(null===e||"object"!=typeof e||!("version"in e)||!("user"in e)||"number"!=typeof e.version)return f();let t=(0,i.Te)({value:e.user,fromVersion:e.version,toVersion:d.currentVersion??0,migrations:d});if("error"===t.type)return f();try{c.validate(t.value)}catch(e){return f()}return t.value}let m=(0,r.cn)("globalUserData",null);function y(e){c.validate(e),m.set(e),"undefined"!=typeof window&&window.localStorage&&window.localStorage.setItem(l,JSON.stringify({version:d.currentVersion,user:m.get()})),b?.postMessage({type:w,origin:x,data:{user:v(),version:d.currentVersion}})}let b="undefined"==typeof BroadcastChannel?null:new BroadcastChannel("tldraw-user-sync");b?.addEventListener("message",e=>{let t=e.data;t?.type===w&&t?.origin!==x&&m.set(g(t.data))});let x=(0,a.E)(),w="tldraw-user-preferences-change";function v(){let e=m.get();return e||(e=g("undefined"==typeof window?null:JSON.parse(window?.localStorage?.getItem(l)||"null")??null),m.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 o}});let r=[n(52778).Q],i=new Set(r.map(e=>e.type));function o(e){let t=[...r],n=new Set;for(let r of e){if(i.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();
14function 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;
14case"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();
14this._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 this._commands[i.name].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)}
14,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){return this._beforeCreateHandlers[e]||(this._beforeCreateHandlers[e]=[]),this._beforeCreateHandlers[e].push(t),()=>i(this._beforeCreateHandlers[e],t)}registerAfterCreateHandler(e,t){return this._afterCreateHandlers[e]||(this._afterCreateHandlers[e]=[]),this._afterCreateHandlers[e].push(t),()=>i(this._afterCreateHandlers[e],t)}registerBeforeChangeHandler(e,t){return this._beforeChangeHandlers[e]||(this._beforeChangeHandlers[e]=[]),this._beforeChangeHandlers[e].push(t),()=>i(this._beforeChangeHandlers[e],t)}registerAfterChangeHandler(e,t){return this._afterChangeHandlers[e]||(this._afterChangeHandlers[e]=[]),this._afterChangeHandlers[e].push(t),()=>i(this._afterChangeHandlers[e],t)}registerBeforeDeleteHandler(e,t){return this._beforeDeleteHandlers[e]||(this._beforeDeleteHandlers[e]=[]),this._beforeDeleteHandlers[e].push(t),()=>i(this._beforeDeleteHandlers[e],t)}registerAfterDeleteHandler(e,t){return this._afterDeleteHandlers[e]||(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).points??e.getShapeGeometry(t).bounds.cornersAndCenter;if(n&&r)return r.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)=>
14e.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-e.center.x;if(r.length>e.width&&f(Math.abs(i))<=f(t.x)){f(Math.abs(i))<f(t.x)&&(n.length=0),t.x=Math.abs(i);let e={type:"gap_center",gap:r,nudge:i},o=n.find(({type:e})=>"gap_center"===e),s=o&&(0,c.mW)(r.breadthIntersection[0],r.breadthIntersection[1],o.gap.breadthIntersection[0],o.gap.breadthIntersection[1]);o&&o.gap.length>r.length&&s?n[n.indexOf(o)]=e:o&&s||n.push(e)}let o=r.startNode.pageBounds.minX-r.length-e.maxX;f(Math.abs(o))<=f(t.x)&&(f(Math.abs(o))<f(t.x)&&(n.length=0),t.x=Math.abs(o),n.push({type:"gap_duplicate",gap:r,protrusionDirection:"left",nudge:o}));let s=r.endNode.pageBounds.maxX+r.length-e.minX;f(Math.abs(s))<=f(t.x)&&(f(Math.abs(s))<f(t.x)&&(n.length=0),t.x=Math.abs(s),n.push({type:"gap_duplicate",gap:r,protrusionDirection:"right",nudge:s}))}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-e.center.y;if(n.length>e.height&&f(Math.abs(i))<=f(t.y)){f(Math.abs(i))<f(t.y)&&(r.length=0),t.y=Math.abs(i);let e={type:"gap_center",gap:n,nudge:i},o=r.find(({type:e})=>"gap_center"===e),s=o&&(0,c.ep)(o.gap.breadthIntersection[0],o.gap.breadthIntersection[1],n.breadthIntersection[0],n.breadthIntersection[1]);o&&o.gap.length>n.length&&s?r[r.indexOf(o)]=e:o&&s||r.push(e);continue}let o=n.startNode.pageBounds.minY-n.length-e.maxY;f(Math.abs(o))<=f(t.y)&&(f(Math.abs(o))<f(t.y)&&(r.length=0),t.y=Math.abs(o),r.push({type:"gap_duplicate",gap:n,protrusionDirection:"top",nudge:o}));let s=n.endNode.pageBounds.maxY+n.length-e.minY;f(Math.abs(s))<=f(t.y)&&(f(Math.abs(s))<f(t.y)&&(r.length=0),t.y=Math.abs(s),r.push({type:"gap_duplicate",gap:n,protrusionDirection:"bottom",nudge:s}))}}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}
14,...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)).applyToPoint(t),r=this.getHandleSnapPosition({currentShapeId:e,handle:t,handleInPageSpace:n});return r?(this.manager.setIndicators([{id:(0,d.E)(),type:"points",points:[r]}]),{nudge:l.B.Sub(r,n)}):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)}
14for(let i of e.getSortedChildIdsForParent(s)){if(n.includes(i))continue;let s=e.getShape(i);if(!s||!e.getShapeUtil(s).canSnap(s))continue;let a=e.getShapePageBounds(i);if(a&&t.includes(a)){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)=>
14{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
14de(),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}}}},97279: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)>
14Math.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=j(E,i.B.Angle(_.center,v));if(0===_.length||0===_.size||!(0,s.AV)(_.length)||!(0,s.AV)(_.size))return(0,l.r)(e,t);let P=w.clone(),I=v.clone(),T=S.clone(),M=e.getShapePageTransform(t),A=0,$=0,D=a.Kn;if(b&&!b.isExact){let n;let i=r._.applyToPoint(M,P),s=r._.applyToPoint(M,_.center),l=r._.applyToPoint(M,I),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)(h,_.radius,b.outline);if(g){let e=h.angle(d),t=j(e,h.angle(p));g=g.filter(n=>j(e,h.angle(n))<=t);let r=.25*t;g.sort(f?(t,n)=>Math.abs(j(e,h.angle(t))-r)<Math.abs(j(e,h.angle(n))-r)?-1:1:(t,n)=>j(e,h.angle(t))<j(e,h.angle(n))?-1:1),n=g[0]??(f?void 0:d)}else n=f?void 0:d;if(n&&(P.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=a.oF+e,D+=e}}if(x&&!x.isExact){let n;let i=r._.applyToPoint(M,P),s=r._.applyToPoint(M,I),l=r._.applyToPoint(M,_.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)(h,_.radius,x.outline);if(g){let e=h.angle(u),t=j(e,h.angle(p)),r=.75*t;(g=g.filter(n=>j(e,h.angle(n))<=t)).sort(f?(t,n)=>Math.abs(j(e,h.angle(t))-r)<Math.abs(j(e,h.angle(n))-r)?-1:1:(t,n)=>j(e,h.angle(t))<j(e,h.angle(n))?-1:1),n=g[0]?g[0]:f?void 0:p}else n=f?void 0:p;if(n&&(I.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);$=a.oF+e,D+=e}}let O=i.B.Angle(_.center,P),B=i.B.Angle(_.center,I),L=j(O,B),R=L*_.radius,z=P.clone(),N=I.clone();if(0!==A){let e=A/R*(k?1:-1),t=i.B.FromAngle(O+L*e);z.setTo(_.center).add(t.mul(_.radius))}if(0!==$){let e=$/R*(k?-1:1),t=i.B.FromAngle(B+L*e);N.setTo(_.center).add(t.mul(_.radius))}if(i.B.Dist(z,N)<D&&(0!==A&&0!==$?(A*=-1.5,$*=-1.5):0!==A?A*=-2:0!==$&&($*=-2)),0!==A){let e=A/R*(k?1:-1),t=i.B.FromAngle(O+L*e);P.setTo(_.center).add(t.mul(_.radius))}if(0!==$){let e=$/R*(k?-1:1),t=i.B.FromAngle(B+L*e);I.setTo(_.center).add(t.mul(_.radius))}if(b&&x&&!b.isExact&&!x.isExact){R=(L=j(O=i.B.Angle(_.center,P),B=i.B.Angle(_.center,I)))*_.radius;let t=(0,a.xO)(e,b.shape.id,x.shape.id);if("double-bound"===t&&R<30)P.setTo(w),I.setTo(v),T.setTo(S);else if("safe"===t&&(b&&!b.didIntersect&&P.setTo(w),x&&!x.didIntersect||j(E,O)>j(E,B))){let e=Math.min(.9,a.Kn/R)*(k?1:-1),t=i.B.FromAngle(O+L*e);I.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+.5*(l?1:-1)*u);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,P,I,T,C,k),P.equals(I)&&(P.setTo(T.clone().addXY(1,1)),I.setTo(T.clone().subXY(1,1))),w.setTo(P),v.setTo(I),S.setTo(T);let F=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:F,isValid:0!==F.length&&isFinite(F.center.x)&&isFinite(F.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}
14,l)),d=r._.applyToPoint(e.getShapePageTransform(s),c);return r._.applyToPoint(r._.Inverse(t),d)}}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);return{start:l(e,i,t.props.start,"double-bound"===o||"start-contains-end"===o),end:l(e,i,t.props.end,"double-bound"===o||"end-contains-start"===o)}}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.B.Dist(C,P)<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 I=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:I>0,length:I}}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)(d,u,s.outline);if(null!==p&&(a=p.sort((e,t)=>i.B.Dist(e,d)-i.B.Dist(t,d))[0]??(h?void 0:u)),void 0===a)return;let f=r._.applyToPoint(s.transform,a),g=r._.applyToPoint(r._.Inverse(n),f);e.setTo(g),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)=>
14{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}
14switch(e){case"top":case"top_left":case"top_right":l+=n;break;case"bottom":case"bottom_left":case"bottom_right":d+=n}let u=(d-l)/(s-i);if((c-a)/(o-r)<0){let e=c;c=a,a=e}if(u<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);return new o(n,r,Math.max(t.maxX,e.maxX)-n,Math.max(t.maxY,e.maxY)-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);
14t=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])}
14static 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)=>
14e+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=s*s-4*o*(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);if(a<0||0===a)return null;let l=Math.sqrt(a),c=(-s+l)/(2*o),d=(-s-l)/(2*o);if((c<0||c>1)&&(d<0||d>1))return null;let u=[];return(0<=c&&c<=1&&u.push(i.B.Lrp(e,t,c)),0<=d&&d<=1&&u.push(i.B.Lrp(e,t,d)),0===u.length)?null:u}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;let a=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);a.has(e)||a.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);a.has(e)||a.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++){let r=o(n,s,t[e],t[(e+1)%t.length]);if(null!==r){let e=g(r);a.has(e)||a.set(e,r)}}}return 0===a.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))}([...a.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}
14function 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=-a+l/n*e,p=i+i*Math.cos(t),f=o+o*Math.sin(t);p<c&&(c=p),f<u&&(u=f),p>d&&(d=p),f>h&&(h=f),s.push(new r.B(p,f))}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){return n<0?g(e,t):m(e,t)}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}{let n=(i=y(t,r))/e;return Math.sign(i)!==Math.sign(e)?Math.abs(n)>.5?1:0:n}}function D(e,t,n,r){let i=(t-e)%l*2%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;
14case"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 z},e1:function(){return A},Ym:function(){return w},zH:function(){return v},j:function(){return V},ay:function(){return E},vc:function(){return K},BK:function(){return W},uC:function(){return F},Hg:function(){return Y},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){return e===t||Object.is(e,t)||!!(e&&t&&"function"==typeof e.equals&&e.equals(t))}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)return -1===this.array.indexOf(e)&&(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;
14pushEntry(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;if(f.stack=e.below,e.numNewParents>0||e.offset!==e.child.parents.length){for(let t=e.offset;t<e.child.parents.length;t++){let n=e.child.parents[t];e.child.parents.indexOf(n)>=e.offset&&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){if(-1!==this.lastChangedEpoch&&(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.
15
16// Before
17@computed
18get foo() {
19	return 'foo'
20}
21
22// After
23@computed
24getFoo() {
25	return 'foo'
26}
27`)),function(e={},t,n,r){let i=r.get,o=Symbol.for("__@tldraw/state__computed__"+n);return r.get=function(){let t=this[o];
27return 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 z(){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])}if(1!==l("apiVersion",()=>1))throw Error("You have multiple incompatible versions of @tldraw/state in your app. Please deduplicate the package.");var N=n(2784);function F(e,t){let n=N.useRef(t);n.current=t;let[r,i,o]=N.useMemo(()=>{let t=null,r=new x(`useStateTracking(${e})`,()=>n.current?.(),{scheduleEffect(){t?.()}});return[r,e=>(t=e,()=>{t=null}),()=>r.scheduleCount]},[e]);return N.useSyncExternalStore(i,o,o),N.useEffect(()=>(r.attach(),r.maybeScheduleEffect(),()=>{r.detach()}),[r]),r.execute()}let U={apply:(e,t,n)=>F(e.displayName??e.name??"tracked(???)",()=>e.apply(t,n))},H=Symbol.for("react.memo"),Z=Symbol.for("react.forward_ref");function V(e){let t=null,n=e.$$typeof;return(n===H&&(t=(e=e.type).compare),n===Z)?(0,N.memo)((0,N.forwardRef)(new Proxy(e.render,U))):(0,N.memo)(new Proxy(e,U),t)}function K(){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,N.useMemo)(()=>z(`useComputed(${e})`,t,n),r)}function W(e,t,n=c){(0,N.useEffect)(()=>{let n=new x(e,t);return n.attach(),n.execute(),()=>{n.detach()}},n)}function Y(){let e=arguments,t=3===e.length?e[2]:[e[0]],n=3===e.length?e[0]:`useValue(${e[0].name})`,r=(0,N.useRef)(!0);r.current=!0;let i=(0,N.useMemo)(()=>1===e.length?e[0]:z(n,()=>{if(r.current)return e[1]();try{return e[1]()}catch{return{}}}),t);try{let{subscribe:e,getSnapshot:t}=(0,N.useMemo)(()=>({subscribe:e=>w(`useValue(${n})`,()=>{i.get(),e()}),getSnapshot:()=>i.get()}),[i]);return(0,N.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){if(!this.diff?.removed?.has(e))return;return this._add(e,t)}this.nextValue?.has(e)||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){if(!this.diff?.added?.has(e))return;return this._remove(e,t)}this.diff?.removed?.has(e)||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:()=>({}
27),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).get().get(o.eq);if(n)for(let e of n)r[i].add(e)}else if("neq"in o){for(let[n,s]of e.index(t,i).get())if(n!==o.neq)for(let e of s)r[i].add(e)}else if("gt"in o){for(let[n,s]of e.index(t,i).get())if(n>o.gt)for(let e of s)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))r.typeName===e&&p(r[t],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))r.typeName===e&&f(r[t],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,
27c.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())for(let{changes:e,source:t}of this.historyAccumulator.flush()){let n=null,r=null,i=null;for(let{onHistory:o,filters:s}of this.listeners)if("all"===s.source||s.source===t){if("all"!==s.scope){if("document"===s.scope){if(!(r??=this.filterChangesByScope(e,"document")))continue;o({changes:r,source:t})}else if("session"===s.scope){if(!(n??=this.filterChangesByScope(e,"session")))continue;o({changes:n,source:t})}else{if(!(i??=this.filterChangesByScope(e,"presence")))continue;o({changes:i,source:t})}}else o({changes:e,source:t})}}}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++){let p=(s??o)[(n=e[h]).id];if(p){let e=p.__unsafe__getWithoutCapture();if(d&&(n=d(e,n,u)),this.schema.validateRecord(this,n,t??"updateRecord",e)===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)=>
27{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};
27let 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 ej},YCq:function(){return tn},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 eP},YQh:function(){return nn},mqq:function(){return m.mqq},G7H:function(){return m.G7H},Zow:function(){return nm},FWf:function(){return eM},Rwx:function(){return nE},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 eO},zBk:function(){return nA},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 pf},B08:function(){return m.B08},_cv:function(){return m._cv},si8:function(){return m.si8},F17:function(){return m.F17},e5F:function(){return rj},xUL:function(){return le},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 hH},r45:function(){return aJ},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",()=>e.getSelectedShapeIds().map(t=>e.getShape(t)).filter(t=>!(!t||e.isShapeOfType(t,"arrow")&&"binding"===t.props.start.type||e.isShapeOfType(t,"arrow")&&"binding"===t.props.end.type)).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=>
27e.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)();return(0,m.HgN)("shouldDisplayHandles",()=>t.isInAny("select.idle","select.pointing_handle"),[t])?(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=null!==w&&w<.2;if(b<0&&!y||v){if(w>-.62&&a-n.runningLength>n.radius){let e=u.clone().mul(n.radius);0>u.clone().cpr(x)?(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,v&&(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 S=m.B08.Lrp(x,i,w).per().mul(n.radius);f=m.B08.Sub(r,S),(t<=1||m.B08.Dist2(h,f)>l)&&(c.push(f),h=f),g=m.B08.Add(r,S),(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;
27e++)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+.275*e*(n-p))}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+.275*t*(n-p))}else e=B(1,p+.275*t*(e-p));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++){let{runningLength:n}=r=e[t],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)();return(0,m.HgN)("should display",()=>n.isInAny("select.idle","select.brushing","select.scribble_brushing","select.pointing_shape","select.pointing_selection","text.resizing"),[n])?(0,_.jsx)(m.yx9,{bounds:e,rotation:t}):null};function z(){let e=(0,m.jE2)();return(0,m.HgN)("isReadonlyMode",()=>e.getInstanceState().isReadonly,[e])}function N({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:`
28						${(0,m.$ZD)(0-o)},${(0,m.$ZD)(e)} 
29						${(0,m.$ZD)(0-o)},${(0,m.$ZD)(0-o)} 
30						${(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:`
31						${(0,m.$ZD)(t-e)},${(0,m.$ZD)(0-o)} 
32						${(0,m.$ZD)(t+o)},${(0,m.$ZD)(0-o)} 
33						${(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:`
34						${(0,m.$ZD)(t+o)},${(0,m.$ZD)(n-e)} 
35						${(0,m.$ZD)(t+o)},${(0,m.$ZD)(n+o)}
36						${(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:`
37						${(0,m.$ZD)(0+e)},${(0,m.$ZD)(n+o)} 
38						${(0,m.$ZD)(0-o)},${(0,m.$ZD)(n+o)}
39						${(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=z(),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=.75*$*(P?D/2:D),B=.75*$*(I?D/2:D),L=(!g||!n.getShapeUtil(g).hideSelectionBounds
39Fg(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,Q=!V,J=!H||!K,ee=!H||!q,et=!H||!q||Y,en=!H||!q||Y,er=!H||!q||G&&!F,ei=!0,eo=!0;if(F)ei=X,eo=X;else if(W){ei=Y||G||f;let e=f&&g&&"text"===g.type;eo=ei&&!e}let es=Math.min(24/x,S-3*B),ea=H&&f&&g&&n.isShapeOfType(g,"text")&&es*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:
39Q}),(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:Q}),(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:Q}),(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:Q}),(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:J}),(0,_.jsx)("rect",{className:T("tl-transparent",{"tl-hidden":ei}),"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":eo}),"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":ei}),"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":eo}),"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":ee}),"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":et}),"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":er}),"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":en}),"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":ee}),"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":et}),"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":er}),"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":en}),"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)})]}),ea&&(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-es/2),rx:k/4,width:(0,m.$ZD)(k/2),height:(0,m.$ZD)(es)}),(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-es/2),width:(0,m.$ZD)(k/2),height:(0,m.$ZD)(es)})]}),F&&(0,_.jsx)(N,{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(1/a*14,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 Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
39t%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 J(e,t){return function(e){if(Array.isArray(e))return e}(e)||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=Date.now(),a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;a?(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
39);var l=t.getContext("2d"),c=n.getContext("2d");c&&(c.fillRect.apply(c,[i-1,o-1,1,1]),l.drawImage(n,i-1,o-1,1,1,0,0,1,1));var d=l&&0!==l.getImageData(0,0,1,1).data[3],u=Date.now()-s;return[t,n].forEach(function(e){e.height=0,e.width=0}),a?(postMessage({width:i,height:o,benchmark:u,isTestPass:d}),!d&&e.sizes.length&&er(e)):d?e.onSuccess(i,o,u):(e.onError(i,o,u),e.sizes.length&&er(e)),d}var ei=[16384,14188,11402,11180,10836,8192,4096,1],eo=[8388607,65535,32767,16384,8192,4096,1],es=[4194303,65535,32767,16384,8192,4096,1],ea=["onError","onSuccess"],el={max:null,min:1,sizes:[],step:1024,usePromise:!1,useWorker:!1,onError:Function.prototype,onSuccess:Function.prototype},ec={};function ed(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||el.min,s=e.step||el.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 eu(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,ea),a=null;if(!t)return!1;if(e.useWorker&&n){var l=new Blob(["\n            var canvasTest = ".concat(er.toString(),";\n            onmessage = function(e) {\n                canvasTest(e.data);\n            };\n        ")],{type:"application/javascript"}),c=URL.createObjectURL(l);a=new Worker(c),URL.revokeObjectURL(c),a.onmessage=function(e){var t=e.data,n=t.width,i=t.height,o=t.benchmark;t.isTestPass?(ec[r].onSuccess(n,i,o),delete ec[r]):ec[r].onError(n,i,o)}}return e.usePromise?new Promise(function(t,n){var l=Q(Q({},e),{},{onError:function(t,r,o){var s;if(0===e.sizes.length)s=!0;else{var a=J(e.sizes.slice(-1),1),l=J(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;ec[r]={onError:c,onSuccess:d},a.postMessage(s)}else er(l)}):a?void(ec[r]={onError:i,onSuccess:o},a.postMessage(s)):er(e)}var eh=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=ed({width:e.max,height:e.max,min:e.min,step:e.step,sizes:ee(ei)});return eu(Q(Q(Q({},el),e),{},{sizes:t}))},ep=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=ed({width:1,height:e.max,min:e.min,step:e.step,sizes:ee(eo)});return eu(Q(Q(Q({},el),e),{},{sizes:t}))},ef=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=ed({width:e.max,height:1,min:e.min,step:e.step,sizes:ee(es)});return eu(Q(Q(Q({},el),e),{},{sizes:t}))};let eg=null;async function em(){let e=await ef({usePromise:!0}),t=await ep({usePromise:!0}),n=await eh({usePromise:!0});return{maxWidth:e.width,maxHeight:t.height,maxArea:n.width*n.height}}async function ey(e,t){if(e<=8192&&t<=8192&&e*t<=16777216)return[e,t];let{maxWidth:n,maxHeight:r,maxArea:i}=await (eg||(eg=em()),eg),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 eb=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(".+"),ex=(e,t)=>!!e.find(e=>{let n=new RegExp(eb(e));return t.match(n)});function ew(e){return function(e){let t=new URL(e).host.replace("www.","");for(let n of m.Lu5)if(ex(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(ex(n.hostnames,t)){let t=n.fromEmbedUrl(e);if(t)return{definition:n,url:t,embedUrl:e}}}(e)}function ev(e){try{return ew(e)}catch(e){console.error(e)}}class eS 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 ek 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 ej extends m.nui{static id="arrow";static initial="idle";static children=()=>[eS,ek];shapeType="arrow"}class e_ 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;
39if(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");if(m.B08.Dist(t,e.currentPagePoint)>m.Skg){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");if(m.B08.Dist(t,e.currentPagePoint)>m.Skg){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=[...e,{type:"free",points:[...m.B08.PointsBetween(i,c,6).map(e=>e.toFixed().toJson())]}];this.currentLineLength=this.getLineLength(s);let a={id:n,type:this.shapeType,props:{segments:s}};this.canClose()&&(a.props.isClosed=this.getIsClosed(s,r)),this.editor.updateShapes([a],{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;if((this.editor.user.getIsSnapMode()?!d:d)&&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);e=m.B08.RotWith(c,l,n-t)}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 f={id:n,type:this.shapeType,props:{segments:s}};this.canClose()&&(f.props.isClosed=this.getIsClosed(o,r)),this.editor.updateShapes([f],{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 eE 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 eC 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 eP extends m.nui{static id="geo";static initial="idle";static children=()=>[eE,eC];shapeType="geo"}class eI 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 eT 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 eM extends m.nui{static id="line";static initial="idle";static children=()=>[eI,eT];shapeType="line"}function eA(e){let t;
39let 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 e$ extends m.nui{static id="idle";onPointerMove=e=>{switch(e.target){case"shape":case"canvas":eA(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 eD 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 eO extends m.nui{static id="text";static initial="idle";static children=()=>[e$,eD];shapeType="text"}function eB(){return(0,m.y6M)({isDarkMode:(0,m.Gv6)()})}let eL=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)(eR,{theme:e,color:n,fill:r,d:t})}}),eR=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 ez({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 eN(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}}function eF(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){if(null!==l&&n.y>l){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 t=document.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","mathematical"),t.setAttribute("x",n.x+s+"px"),t.setAttribute("y",n.y+a+"px");let r=e.replace(/\s/g,"\xa0");t.textContent=r,i.appendChild(t),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 eU(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)=>
39{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 eH(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=`
40				<svg>
41					<defs>
42						<mask id="hash_pattern_mask">
43							<rect x="0" y="0" width="8" height="8" fill="white" />
44							<g
45								strokeLinecap="round"
46								stroke="black"
47							>
48								<line x1="${1*n}" y1="${3*n}" x2="${3*n}" y2="${1*n}" />
49								<line x1="${5*n}" y1="${7*n}" x2="${7*n}" y2="${5*n}" />
50								<line x1="${9*n}" y1="${11*n}" x2="${11*n}" y2="${9*n}" />
51							</g>
52						</mask>
53						<pattern
54							id="hash_pattern"
55							width="8"
56							height="8"
57							patternUnits="userSpaceOnUse"
58						>
59							<rect x="0" y="0" width="8" height="8" fill="${t.solid}" mask="url(#hash_pattern_mask)" />
60						</pattern>
61					</defs>
62				</svg>
63			`,Array.from(r.querySelectorAll("defs > *"))}}}function eZ(){return{key:`${m.Y8S.id}:pattern`,component:eY}}let eV=(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;a.beginPath(),a.moveTo(1*l*t*e,3*l*t*e),a.lineTo(3*l*t*e,1*l*t*e),a.moveTo(5*l*t*e,7*l*t*e),a.lineTo(7*l*t*e,5*l*t*e),a.moveTo(9*l*t*e,11*l*t*e),a.lineTo(11*l*t*e,9*l*t*e),a.stroke(),s.toBlob(e=>{!e||m.hR1.throwToBlob.get()?i():r(e)})}),eK=(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()):""},eW=()=>{let e=[];for(let t=1;t<=Math.ceil(m.sZM);t++){let n=eK([1,1],e=>{e.fillStyle=m.qit.lightMode.black.semi,e.fillRect(0,0,1,1)}),r=eK([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 eY(){let e=(0,m.jE2)(),t=(0,E.useRef)(null),{defs:n,isReady:r}=function(){let e=(0,m.jE2)().getInstanceState().devicePixelRatio,[t,n]=(0,E.useState)(!1),r=(0,E.useMemo)(()=>eW(),[]),[i,o]=(0,E.useState)(r);return(0,E.useEffect)(()=>{let t=[];for(let n=1;n<=Math.ceil(m.sZM);n++)t.push(eV(e,n,!1).then(e=>({zoom:n,url:URL.createObjectURL(e),darkMode:!1}))),t.push(eV(e,n,!0).then(e=>({zoom:n,url:URL.createObjectURL(e),darkMode:!0})));let r=!1;return Promise.all(t).then(e=>{r||(o(e),n(!0))}),()=>{r=!0,n(!1)}},[e]),{defs:(0,_.jsx)(_.Fragment,{children:i.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,width:8,height:8})},t)})}),isReady:t}}();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 eG(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 eX=new WeakMap;function eq(e,t){let n=eX.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 eX.set(t,a),a}function eQ(e,t){let n=K[t.props.size];return 20+(n-K.s)*2+(n===K.xl?20:0)}function eJ(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=eq(e,t),i=eQ(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));return{start:m.B08.Dist(n.start.point,d)/n.length,end:m.B08.Dist(n.start.point,u)/n.length}}(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=eq(e,t),i=eQ(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=e0(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=e0(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}
63)),[...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&&e1(n.start.point,h))??n.middle,g=(p&&e1(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);return{start:(0,m.mRm)(y,x,o)/v,end:(0,m.mRm)(y,w,o)/v,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=eq(e,t);return{box:m.xuv.FromCenter(n,a),debugGeom:r}}function e0(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 e1(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 e2(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=Math.max(Math.min((e.isStraight?m.B08.Dist(o,i):Math.abs(e.bodyArc.length))/5,3*n),n);if(e.isStraight)r=m.B08.Nudge(i,o,s);else{let n=(0,m.bOj)(i,s,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}
64  a ${r},${r} 0 1,0 ${2*r},0
65  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""}}function e8(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 e3(e,t){return`M${e.x},${e.y}L${t.x},${t.y}`}function e5(e){return e3(e.start.point,e.end.point)}class e6{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)||e6.insertTextFirefox(e,t),r===n.body?e.blur():r instanceof HTMLElement&&r!==e&&r.focus()}static set(e,t){e.select(),e6.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=e6.getSelection(e);e6.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 e6.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),e6.insert(e,s),e.setSelectionRange(t+1,n+a)}else e6.insert(e,"  ")}static unindent(e){let{selectionStart:t,selectionEnd:n,value:r}=e,i=r.lastIndexOf("\n",t-1)+1,o=e6.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),e6.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=e4(e)??0,i=e4(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,"$&  ").length-s.length;t&&t.setBaseAndExtent(e,r+1,e,i+a)}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=e4(e)??0,i=e4(e)??0,o=n.lastIndexOf("\n",r-1)+1,s=e6.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(e6.fixNewLines,"\n")}static normalizeTextForDom(e){return e.replace(e6.fixNewLines,"\n").split("\n").map(e=>e||" ").join("\n")}}function e4(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 e9(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)(()=>
65{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?e6.unindent(e.currentTarget):e6.indent(e.currentTarget)}},[r,a]),u=(0,E.useCallback)(n=>{if(!a)return;let i=e6.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;return(0,E.useEffect)(()=>{if(a&&i.current){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]),{rInput:i,isEditing:a,handleFocus:l,handleBlur:c,handleKeyDown:d,handleChange:u,handleInputPointerDown:(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]),handleDoubleClick:m.beA,isEmpty:h}}let e7=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}=e9(e,"arrow",t),y=e6.normalizeTextForDom(t).trim().length>0;return l||y?(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?e6.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}),te=0;var tt=((o=tt||{}).START="start",o.MIDDLE="middle",o.END="end",o);class tn 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=eJ(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}
65].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).applyToPoint(t),d=this.editor.getPointInShapeSpace(s,c),u=n;if(!u){let e=i.props[r];("point"===e.type||"binding"===e.type&&s.id!==e.boundShapeId)&&(u=.5>this.editor.inputs.pointerVelocity.len())}if(!n){a.isClosed||(u=!0);let e=i.props["start"===r?"end":"start"];"binding"===e.type&&s.id===e.boundShapeId&&e.isPrecise&&(u=!0)}let h={x:(d.x-l.minX)/l.width,y:(d.y-l.minY)/l.height};return u&&m.B08.Dist(d,l.center)<Math.max(4,Math.min(.15*Math.min(l.width,l.height),16))/this.editor.getZoomLevel()&&(h.x=.5,h.y=.5),i.props[r]={type:"binding",boundShapeId:s.id,normalizedAnchor:h,isPrecise:u,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(to.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)=>
65{let n=to.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);return 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)),{props:{start:o,end:s,bend:a}}};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=eB(),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?te+=1:0,[e]);if(!i?.isValid)return null;let a=K[e.props.size],l=i.start.arrowhead&&e2(i,"start",a),c=i.end.arrowhead&&e2(i,"end",a),d=i.isStraight?e5(i):e8(i),u=null;if(n===e&&r){let{strokeDasharray:t,strokeDashoffset:n}=eG(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?e3(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}=eG(i.isStraight?i.length:Math.abs(i.bodyArc.length),a,{style:e.props.dash}),f=eJ(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}
65),(0,_.jsx)("path",{d:d,strokeDasharray:h,strokeDashoffset:p})]}),l&&g&&"none"!==e.props.fill&&(0,_.jsx)(eL,{theme:t,d:l,color:e.props.color,fill:e.props.fill}),c&&y&&"none"!==e.props.fill&&(0,_.jsx)(eL,{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)(e7,{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&&e2(r,"start",l),d=r.end.arrowhead&&e2(r,"end",l),u=r.isStraight?e5(r):e8(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(eH(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&&e2(i,"start",o),l=i.end.arrowhead&&e2(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(tr(a,i.start.arrowhead)),l&&t.appendChild(tr(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?e5(i):e8(i),r,o),{strokeDasharray:y,strokeDashoffset:b}=eG(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(ti(a,e.props.color,o,"arrow"===e.props.arrowheadStart?"none":e.props.fill,n)),l&&s.appendChild(ti(l,e.props.color,o,"arrow"===e.props.arrowheadEnd?"none":e.props.fill,n)),u){t.addExportDef(eU(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=eF(this.editor,this.editor.textMeasure.measureTextSpans(e.props.text,r),r);i.setAttribute("fill",n[e.props.labelColor].solid),Array.from(i.children).forEac
65h(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 o=i.cloneNode(!0);o.setAttribute("stroke-width","2"),o.setAttribute("fill",n.background),o.setAttribute("stroke",n.background),s.appendChild(o),s.appendChild(i)}return s}getCanvasSvgDefs(){return[eZ()]}}function tr(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 ti(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=ez({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 to=new WeakMap,ts=(e,t)=>e.length<=t?e:e.substring(0,t-3)+"...",ta="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 tl({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("${ta}") center 100% / 100% no-repeat`,WebkitMask:`url("${ta}") center 100% / 100% no-repeat`}})})}let tc=[{offsetX:0,offsetY:2,blur:4,spread:0,color:"#00000029"},{offsetX:0,offsetY:3,blur:6,spread:0,color:"#0000001f"}];function td(e){return tc.map(t=>{let{offsetX:n,offsetY:r,blur:i,spread:o,color:s}=t,{x:a,y:l}=new m.B08(n,r).rot(-e);return`${a}px ${l}px ${i}px ${o}px ${s}`}).join(", ")}class tu 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=th(e);return(0,_.jsx)(m.G7H,{children:(0,_.jsxs)("div",{className:"tl-bookmark__container",style:{boxShadow:td(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)(tl,{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:ts(t?.props.title||"",54)}),t?.props.description&&(0,_.jsx)("p",{className:"tl-bookmark__description",children:ts(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:ts(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=>{tp(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}};tp(this.editor,t)}}}let th=e=>{try{let t=new URL(e.props.url),n=t.pathname.replace(/\/*$/,"");return`${t.hostname}${n}`}catch(t){return e.props.url}};function tp(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}}]),tf(e,t))}let tf=(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 tg(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 tm(e){let t=e[0];for(;e.length>2;){let n=e[1];if(m.B08.Dist(t.point,n.point)<(t.radius+n.radius)/2*.5)e.splice(1,1);else break}let n=e[e.length-1];for(;e.length>2;){let t=e[e.length-2];if(m.B08.Dist(n.point,t.point)<(n.radius+t.radius)/2*.5)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 ty(){let e=(0,m.jE2)();return(0,m.HgN)("zoom",()=>.35>e.getZoomLevel(),[e])}let tb=e=>.65*e+.35*(0,m.dvh)(e*m.PI/2),tx=e=>({size:1+e,thinning:.5,streamline:.62+(1+e)/8*.06,smoothing:.62,easing:m.Ljl.easeOutSine,simulatePressure:!0}),tw=e=>({size:1+1.2*e,thinning:.62,streamline:.62,smoothing:.62,simulatePressure:!1,easing:tb}),tv=e=>({size:1+e,thinning:0,streamline:.62+(1+e)/8*.06,smoothing:.62,simulatePressure:!1,easing:m.Ljl.linear});function tS({strokeWidth:e,showAsComplete:t}){return{size:1+e,thinning:0,streamline:.5,smoothing:.5,simulatePressure:!1,easing:m.Ljl.easeOutSine,last:t}}function tk(e,t,n,r){return{...r?tv(t):"draw"===e.dash?e.isPen?tw(t):tx(t):tv(t),last:e.isComplete||n}}function tj(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 t_(e,t){return({draw:"none",solid:"none",dotted:`0.1 ${2*t}`,dashed:`${2*t} ${2*t}`})[e.props.dash]}class tE extends m.EeJ{static type="draw";static props=m.wu8;static migrations=m._l9;hideResizeHandles=e=>tP(e);hideRotateHandle=e=>tP(e);
65hideSelectionBoundsFg=e=>tP(e);getDefaultProps(){return{segments:[],color:"black",fill:"none",dash:"draw",size:"m",isComplete:!1,isClosed:!1,isPen:!1}}getGeometry(e){let t=tj(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,tk(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=eB(),n=ty(),r=K[e.props.size],i=tj(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=tk(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)(eL,{theme:t,fill:e.props.isClosed?e.props.fill:"none",color:e.props.color,d:tg(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(tm(n)),n=[e];continue}if(n.push(o),c<.25)continue;let d=(i.radius+o.radius+s.radius)/3;if(m.B08.Dist(i.point,o.point)/d+m.B08.Dist(o.point,s.point)/d<1.5){n.push(o),t.push(tm(n)),n=[o];continue}}return n.push(e[e.length-1]),t.push(tm(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?tC(i[0],0):tg(l,e.props.isClosed);return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(eL,{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":t_(e,r),strokeDashoffset:"0"})]})}indicator(e){let t=ty(),n=K[e.props.size],r=tj(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=O(r,tk(e.props,i,o,!0)),a=s.length>1?tg(s,e.props.isClosed):tC(r[0],i);return(0,_.jsx)("path",{d:a})}toSvg(e,t){let n;let r=(0,m.y6M)({isDarkMode:t.isDarkMode});t.addExportDef(eH(e.props.fill,r));let{color:i}=e.props,o=K[e.props.size],s=tj(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=tk(e.props,l,a,!1),d=O(s,c),u=d.length>1?tg(d,e.props.isClosed):tC(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",t_(e,o)),t.setAttribute("stroke-dashoffset","0"),n=t}let h=ez({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)=>
65{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 tC(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 tP(e){return 1===e.props.segments.length&&e.props.segments[0].points.length<2}let tI=e=>Object.entries(e).filter(([e,t])=>t).map(([e])=>e).join(" ");class tT extends m.StR{static type="embed";static props=m.DWN;static migrations=m.BF8;hideSelectionBoundsFg=e=>!this.canResize(e);canEdit=()=>!0;canUnmount=e=>!!ev(e.props.url)?.definition?.canUnmount;canResize=e=>!!ev(e.props.url)?.definition?.doesResize;canEditInReadOnly=()=>!0;getDefaultProps(){return{w:300,h:300,url:""}}isAspectRatioLocked=e=>{let t=ev(e.props.url);return t?.definition.isAspectRatioLocked??!1};onResize=(e,t)=>{let n=this.isAspectRatioLocked(e),r=ev(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)(()=>ew(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)(tM,{id:r,width:(0,m.$ZD)(t),height:(0,m.$ZD)(n),isInteractive:l,pageRotation:a})})}let c=tI({...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:td(a),borderRadius:o?.definition.overrideOutlineRadius??8,background:o?.definition.backgroundColor}}):null})}indicator(e){let t=(0,E.useMemo)(()=>ev(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 tM({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:td(s)},srcDoc:`
66			<html>
67				<head>
68					<base target="_blank">
69				</head>
70				<body>
71					<script src=https://gist.github.com/${e}.js${t?`?file=${t}`:""}></script>
72					<style type="text/css">
73						* { margin: 0px; }
74						table { height: 100%; background-color: red; }
75						.gist { background-color: none; height: 100%;  }
76						.gist .gist-file { height: calc(100vh - 2px); padding: 0px; display: grid; grid-template-rows: 1fr auto; }
77					</style>
78				</body>
79			</html>`})}let tA=(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"}
79,value:t,autoFocus:!0,onKeyDown:o,onBlur:s,onChange:a}),tD(t,"Frame")+String.fromCharCode(8203)]})}),t$=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((2/Math.PI*(s+Math.PI/4)+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)(tA,{ref:l,id:e,name:t,isEditing:a})})})};function tD(e,t){return e.match(/^\s*$/)?t:e}class tO 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=eB(),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)(t$,{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");switch(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),["top","left","bottom","right"][Math.floor((2/Math.PI*((0,m.f5g)(this.editor.getShapePageTransform(e.id).rotation())+Math.PI/4)+4)%4)]){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 s={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"},a=this.editor.textMeasure.measureTextSpans(tD(e.props.name,"Frame")+String.fromCharCode(8203),s),l=a[0],c=(0,m.Z$Q)(a),d=c.box.w+c.box.x-l.box.x,u=eF(this.editor,a,{offsetY:-s.height-2,...s});u.style.setProperty("transform",n);let h=document.createElementNS("http://www.w3.org/2000/svg","rect");return h.setAttribute("x","-8px"),h.setAttribute("y",-s.height-4+"px"),h.setAttribute("width",d+16+"px"),h.setAttribute("height",`${s.height}px`),h.setAttribute("rx","4px"),h.setAttribute("ry","4px"),h.setAttribute("fill",r.background),i.appendChild(h),i.appendChild(u),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;
79providesBackgroundForChildren(){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);n&&this.editor.isShapeOfType(n,"group")?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 tB=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}=e9(e,t,n),w=e6.normalizeTextForDom(n),v=w.length>0,S="start-legacy"===s||"middle-legacy"===s||"end-legacy"===s,k=eB();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||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:k[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 tL({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 t=m.xuv.From(n[0].box);for(let{box:e}of n)t.union(e);if("start-legacy"===e)return(r-32-t.width)/2;if("end-legacy"===e)return-(r-32-t.width)/2}}(r.props.align,0,o,e.width);return s&&(i.offsetX=s),eF(t,o,i)}function tR(e){return`${(0,m.$ZD)(e.x)},${(0,m.$ZD)(e.y)} `}function tz(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 tN(e){let t,n,r,i="M",o=e.length;for(let s=0;s<o;s+=3)t=e[s],n=e[s+1],r=e[s+2],i+=`${tR(t)}L${tR(n)}Q${tR(r)}`;return i+`${tR(e[0])}`}function tF(e,t,n,r,i){let o;let s=[],a=tz(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 tU(e,t,n){let r,i,o=`M ${tR(t[0])}L`,s=`M ${tR(t[0])}L`,a=n/3,l=2*n,c=tz(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+=`${tR(g)}L ${tR(r)}`,s+=`${tR(v)}L ${tR(i)}`):(o+=`${tR(g)}L ${tR(y)}Q ${tR(r)}`,s+=`${tR(v)}L ${tR(S)}Q ${tR(i)}`,d=r,u=i)}return[o,o+s]}function tH(e,t){let n=Math.min(e,t)/2;return 2*n*Math.PI+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}};
79function tV(e,t,n,r){let i=(0,m.Vkp)(n),o=tH(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=tH(l,c)/s,p=(function(e,t,n){let r=Math.min(e,t)/2,i=Math.max(e,t)-2*r,o=(2*r*Math.PI+2*i)/n,s=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}],a=0,l=[];for(let e=0;e<n;e++){let e=s[0];"straight"===e.type?l.push(m.B08.Add(e.start,m.B08.Mul(e.delta,a))):l.push((0,m.XDj)(e.center,r,e.startAngle+a/r)),a+=o;let t="straight"===e.type?i:m.PI*r;for(;a>t;)a-=t,s.push(s.shift()),t="straight"===s[0].type?i:m.PI*r}return l})(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=m.B08.Dist(i,o)/f*(Math.max(d,u)+(h-f)),x=m.B08.Add(l,m.B08.FromAngle(c,g));x.x<0?x.x=0:x.x>e&&(x.x=e),x.y<0?x.y=0:x.y>t&&(x.y=t);let w=tK(i,o,x),v=m.B08.Dist(w||m.B08.Average([i,o]),i);b.push({leftPoint:i,rightPoint:o,arcPoint:x,center:w,radius:v})}return b}function tK(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 tW(e,t,n,r){let i=tV(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=tG(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 tY(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=tV(e,t,n,r),l=a.reduce((e,t)=>e+m.B08.Dist(t.leftPoint,t.rightPoint),0)/a.length>15*o?e=>new m.B08(s(e.x),s(e.y)):e=>e,c=`M${(0,m.$ZD)(a[0].leftPoint.x)},${(0,m.$ZD)(a[0].leftPoint.y)}`,d=l(a[0].leftPoint),u=`M${(0,m.$ZD)(d.x)},${(0,m.$ZD)(d.y)}`;for(let{leftPoint:e,center:t,rightPoint:n,radius:r,arcPoint:i}of a){if(null===t){c+=` L${(0,m.$ZD)(n.x)},${(0,m.$ZD)(n.y)}`;let e=l(n);u+=` L${(0,m.$ZD)(e.x)},${(0,m.$ZD)(e.y)}`,d=e;continue}let o=tG(e,n,t)?"0":"1";c+=` A${(0,m.$ZD)(r)},${(0,m.$ZD)(r)} 0 ${o},1 ${(0,m.$ZD)(n.x)},${(0,m.$ZD)(n.y)}`;let s=l(n),a=tK(d,s,l(i));if(!a){u+=` L${(0,m.$ZD)(s.x)},${(0,m.$ZD)(s.y)}`,d=s;continue}let h=Math.abs(m.B08.Dist(a,d));u+=` A${(0,m.$ZD)(h)},${(0,m.$ZD)(h)} 0 ${o},1 ${(0,m.$ZD)(s.x)},${(0,m.$ZD)(s.y)}`,d=s}return c+u+" Z"}function tG(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)>0}let tX=E.memo(function({dash:e,fill:t,color:n,strokeWidth:r,w:i,h:o,id:s,size:a}){let l=eB(),c=tW(i,o,s,a),d=tV(i,o,s,a);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{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{strokeDasharray:a,strokeDashoffset:l}=eG(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),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:a,strokeDashoffset:l},s)})})]})}),tq=E.memo(function({w:e,h:t,strokeWidth:n,dash:r,color:i,fill:o}){let s=eB(),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}=eG(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)(eL,{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 tQ(e,t){if(t>e){let n=e/2;return`
80    M0,${n}
81    a${n},${n},0,1,1,${2*n},0
82    L${e},${t-n}
83    a${n},${n},0,1,1,-${2*n},0
84    Z`}let n=t/2;return`
85    M${n},0
86    L${e-n},0
87    a${n},${n},0,1,1,0,${2*n}
88    L${n},${t}
89    a${n},${n},0,1,1,0,${-(2*n)}
90    Z`}function tJ(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 t0=E.memo(function({w:e,h:t,strokeWidth:n,dash:r,color:i,fill:o}){let s=eB(),a=tQ(e,t),l=tJ(e,t),{strokeDasharray:c,strokeDashoffset:d}=eG(l<64?2*l:l,n,{style:r,snap:4,start:"outset",end:"outset",closed:!0});return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{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"})]})}),t1=E.memo(function({dash:e,fill:t,color:n,strokeWidth:r,outline:i,lines:o}){let s=eB(),a="M"+i[0]+"L"+i.slice(1)+"Z";return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{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],{strokeDasharray:a,strokeDashoffset:l}=eG(m.B08.Dist(o,s),r,{style:e,start:"outset",end:"outset"});return(0,_.jsx)("line",{x1:o.x,y1:o.y,x2:s.x,y2:s.y,strokeDasharray:a,strokeDashoffset:l},n)}),o&&o.map(([t,i],o)=>{let{strokeDasharray:a,strokeDashoffset:l}=eG(m.B08.Dist(t,i),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:a,strokeDashoffset:l},`line_fg_${o}`)})]})]})}
90),t2=E.memo(function({fill:e,color:t,strokeWidth:n,w:r,h:i,id:o,size:s}){let a=eB(),l=tY(r,i,o,s);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{theme:a,d:l,fill:e,color:t}),(0,_.jsx)("path",{d:l,stroke:a[t].solid,strokeWidth:n,fill:"none"})]})});function t8(e){return{size:1+e,thinning:.25,end:{taper:e},start:{taper:e},streamline:0,smoothing:1,simulatePressure:!1}}function t3(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,t8(r))}function t5(e,t,n,r){let i=t8(r);return(0,m.RKM)(D(L(t3(e,t,n,r),i),i))}E.memo(function({id:e,w:t,h:n,strokeWidth:r,fill:i,color:o}){let s=eB(),a=tg(t3(e,t,n,r)),l=t5(e,t,n,r);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{theme:s,d:a,color:o,fill:i}),(0,_.jsx)("path",{d:l,fill:s[o].solid,strokeWidth:0,pointerEvents:"all"})]})});let t6=E.memo(function({id:e,outline:t,lines:n,fill:r,color:i,strokeWidth:o}){let s=eB(),a=tN(tF(e,t,o/3,2*o,2));if(n)for(let[e,t]of n)a+=`M${e.x},${e.y}L${t.x},${t.y}`;let l=tN(tF(e,t,0,2*o,1));return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{d:l,fill:r,color:i,theme:s}),(0,_.jsx)("path",{d:a,stroke:s[i].solid,strokeWidth:o,fill:"none"})]})}),t4=E.memo(function({fill:e,color:t,strokeWidth:n,w:r,h:i,id:o,size:s}){let a=eB(),l=tW(r,i,o,s);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{theme:a,d:l,fill:e,color:t}),(0,_.jsx)("path",{d:l,stroke:a[t].solid,strokeWidth:n,fill:"none"})]})}),t9=E.memo(function({w:e,h:t,strokeWidth:n,fill:r,color:i}){let o=eB(),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)(eL,{d,color:i,fill:r,theme:o}),(0,_.jsx)("path",{d,stroke:o[i].solid,strokeWidth:n,fill:"none"})]})}),t7=E.memo(function({w:e,h:t,strokeWidth:n,fill:r,color:i}){let o=eB(),s=ne(e,t);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(eL,{d:s,color:i,fill:r,theme:o}),(0,_.jsx)("path",{d:s,stroke:o[i].solid,strokeWidth:n,fill:"none"})]})});function ne(e,t){let n;if(t>e){let r=e/2;n=`
91    M0,${r}
92    a${r},${r},0,1,1,${2*r},0
93    L${e},${t-r}
94    a${r},${r},0,1,1,-${2*r},0
95    Z`}else{let r=t/2;n=`
96    M${r},0
97    L${e-r},0
98    a${r},${r},0,1,1,0,${2*r}
99    L${r},${t}
100    a${r},${r},0,1,1,0,${-(2*r)}
101    Z`}return n}let nt=E.memo(function({outline:e,lines:t,fill:n,color:r,strokeWidth:i}){let o=eB(),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)(eL,{d:s,fill:n,color:r,theme:o}),(0,_.jsx)("path",{d:s,stroke:o[r].solid,strokeWidth:i,fill:"none"})]})});class nn 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=[];for(let{center:o,radius:s,leftPoint:a,rightPoint:l}of tV(e,t,n,r))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<10;e++){let t=s+e/9*l,i=(0,m.XDj)(n,r,t);o.push(i)}return o}(a,l,o,s,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=nr(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=ni(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)(t4,{color:s,fill:l,strokeWidth:i,w:o,h:n,id:t,size:f});
101if("dashed"===c||"dotted"===c)return(0,_.jsx)(tX,{color:s,fill:l,strokeWidth:i,w:o,h:n,id:t,size:f,dash:c});if("draw"===c)return(0,_.jsx)(t2,{color:s,fill:l,strokeWidth:i,w:o,h:n,id:t,size:f});break;case"ellipse":if("solid"===c)return(0,_.jsx)(t9,{strokeWidth:i,w:o,h:n,color:s,fill:l});if("dashed"===c||"dotted"===c)return(0,_.jsx)(tq,{id:t,strokeWidth:i,w:o,h:n,dash:c,color:s,fill:l});if("draw"===c)return(0,_.jsx)(t9,{strokeWidth:i,w:o,h:n,color:s,fill:l});break;case"oval":if("solid"===c)return(0,_.jsx)(t7,{strokeWidth:i,w:o,h:n,color:s,fill:l});if("dashed"===c||"dotted"===c)return(0,_.jsx)(t0,{id:t,strokeWidth:i,w:o,h:n,dash:c,color:s,fill:l});if("draw"===c)return(0,_.jsx)(t7,{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=ni(e.props,i);if("solid"===c)return(0,_.jsx)(nt,{fill:l,color:s,strokeWidth:i,outline:r,lines:o});if("dashed"===c||"dotted"===c)return(0,_.jsx)(t1,{dash:c,fill:l,color:s,strokeWidth:i,outline:r,lines:o});if("draw"===c)return(0,_.jsx)(t6,{id:t,fill:l,color:s,strokeWidth:i,outline:r,lines:o})}}})()}),(0,_.jsxs)(m.G7H,{id:e.id,style:{overflow:"hidden",width:e.props.w,height:e.props.h+r.growY},children:[(0,_.jsx)(tB,{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)(tl,{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:tg(t3(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:ne(r,o)});case"cloud":return(0,_.jsx)("path",{d:tW(r,o,t,i)});default:{let r;let i=this.editor.getShapeGeometry(e),o=i instanceof m.mqq?i.children[0].vertices:i.vertices;r="draw"===n.dash?tN(tF(t,o,0,2*s,1)):"M"+o[0]+"L"+o.slice(1)+"Z";let a=ni(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(eH(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");return a.setAttribute("d",t5(e,t,n,r)),a.setAttribute("fill",s[o].solid),eN(a,ez({d:tg(t3(e,t,n,r)),fill:i,color:o,theme:s}))}({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");return 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),eN(u,ez({d,fill:r,color:i,theme:o}))}({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}=eG(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");return 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),eN(g,ez({d:f,fill:s,color:i,theme:o}))}({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=tQ(e,t),l=tJ(e,t),{strokeDasharray:c,strokeDashoffset:d}=eG(l<64?2*l:l,n,{style:r,snap:4,closed:!0}),u=document.createElementNS("http://www.w3.org/2000/svg","path");return 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),eN(u,ez({d:a,fill:s,color:i,theme:o}))}({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=ne(e,t),a=document.createElementNS("http://www.w3.org/2000/svg","path");
101return 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),eN(a,ez({d:s,fill:r,color:i,theme:o}))}({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=tY(i,o,s,a),c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",l),c.setAttribute("stroke-width",n.toString()),c.setAttribute("stroke",r[t].solid),c.setAttribute("fill","none"),eN(c,ez({d:l,fill:e,color:t,theme:r}))}({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=tW(i,o,s,a),c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",l),c.setAttribute("stroke-width",n.toString()),c.setAttribute("stroke",r[t].solid),c.setAttribute("fill","none"),eN(c,ez({d:l,fill:e,color:t,theme:r}))}({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=tW(o,s,a,l),d=tV(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{strokeDasharray:n,strokeDashoffset:r}=eG(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),i,{style:e,start:"outset",end:"outset"}),l=document.createElementNS("http://www.w3.org/2000/svg","path");l.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}`),l.setAttribute("stroke-dasharray",n.toString()),l.setAttribute("stroke-dashoffset",r.toString()),u.appendChild(l)}return eN(u,ez({d:c,fill:t,color:n,theme:r}))}({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=ni(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=tN(tF(e,t,s/3,2*s,2));if(n)for(let[e,t]of n)a+=`M${e.x},${e.y}L${t.x},${t.y}`;let l=tN(tF(e,t,0,2*s,1)),c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",a),c.setAttribute("fill","none"),c.setAttribute("stroke",o[i].solid),c.setAttribute("stroke-width",s.toString()),eN(c,ez({d:l,fill:r,color:i,theme:o}))}({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");return l.setAttribute("d",a),l.setAttribute("stroke-width",i.toString()),l.setAttribute("stroke",o[r].solid),l.setAttribute("fill","none"),eN(l,ez({d:s,fill:n,color:r,theme:o}))}({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],{strokeDasharray:l,strokeDashoffset:c}=eG(m.B08.Dist(r,s),i,{style:e}),d=document.createElementNS("http://www.w3.org/2000/svg","line");d.setAttribute("x1",r.x.toString()),d.setAttribute("y1",r.y.toString()),d.setAttribute("x2",s.x.toString()),d.setAttribute("y2",s.y.toString()),d.setAttribute("stroke-dasharray",l.toString()),d.setAttribute("stroke-dashoffset",c.toString()),a.appendChild(d)}),s)for(let[t,n]of s){let{strokeDasharray:r,strokeDashoffset:o}=eG(m.B08.Dist(t,n),i,{style:e,start:"skip",end:"skip",snap:"dotted"===e?4:2}),s=document.createElementNS("http://www.w3.org/2000/svg","line");s.setAttribute("x1",t.x.toString()),s.setAttribute("y1",t.y.toString()),s.setAttribute("x2",n.x.toString()),s.setAttribute("y2",n.y.toString()),s.setAttribute("stroke-dasharray",r.toString()),s.setAttribute("stroke-dashoffset",o.toString()),a.appendChild(s)}
101return eN(a,ez({d:"M"+o[0]+"L"+o.slice(1)+"Z",fill:t,color:n,theme:r}))}({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(eU(e.props.font));let i=tL({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=nr(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=nr(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)=>{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=nr(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 nr(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 ni(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 no extends m.EeJ{static type="highlight";static props=m.VWE;static migrations=m.J14;hideResizeHandles=e=>nu(e);hideRotateHandle=e=>nu(e);hideSelectionBoundsFg=e=>nu(e);getDefaultProps(){return{segments:[],color:"black",size:"m",isComplete:!1,isPen:!1}}getGeometry(e){let t=nd(e);if(nu(e))return new m.EEY({x:-t/2,y:-t/2,radius:t/2,isFilled:!0});let{strokePoints:n,sw:r}=ns(e,t,!0),i=tS({strokeWidth:r,showAsComplete:!0});return L(n,i),new m.wWH({points:D(n,i),isFilled:!0})}component(e){return(0,_.jsx)(nl,{strokeWidth:nd(e),shape:e,opacity:.35})}backgroundComponent(e){return(0,_.jsx)(nl,{strokeWidth:nd(e),shape:e,opacity:.82})}indicator(e){let t;let n=ty(),r=nd(e),i=tj(e.props.segments),o=r;
101n||e.props.isPen||1!==i.length||(o+=(0,m.Vkp)(e.id)()*(r/6));let s=O(i,tS({strokeWidth:r,showAsComplete:e.props.isComplete||m.Z$Q(e.props.segments)?.type==="straight"}));return t=s.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):tg(s,!1),(0,_.jsx)("path",{d:t})}toSvg(e,t){let n=(0,m.y6M)({isDarkMode:t.isDarkMode});return nc(nd(e),e,.35,n)}toBackgroundSvg(e){let t=(0,m.y6M)({isDarkMode:this.editor.user.getIsDarkMode()});return nc(nd(e),e,.82,t)}onResize=(e,t)=>{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 ns(e,t,n){let r=tj(e.props.segments),i=e.props.isComplete||m.Z$Q(e.props.segments)?.type==="straight",o=t;return n||e.props.isPen||1!==r.length||(o+=(0,m.Vkp)(e.id)()*(t/6)),{strokePoints:O(r,tS({strokeWidth:o,showAsComplete:i})),sw:o}}function na(e,t,n){var r;let{strokePoints:i,sw:o}=ns(e,t,n);return{solidStrokePath:i.length>1?tg(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`),sw:o}}function nl({strokeWidth:e,shape:t,opacity:n}){let r=eB(),{solidStrokePath:i,sw:o}=na(t,e,ty()),s=function(){let[e,t]=(0,E.useState)(!1);return(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)},[]),(0,m.HgN)(m.hR1.forceSrgb)||!e?"srgb":"p3"}(),a=r[t.props.color].highlight[s];return(0,_.jsx)(m.gkc,{id:t.id,style:{opacity:n},children:(0,_.jsx)("path",{d:i,strokeLinecap:"round",fill:"none",pointerEvents:"all",stroke:a,strokeWidth:o})})}function nc(e,t,n,r){let{solidStrokePath:i,sw:o}=na(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 nd(e){return 1.12*W[e.props.size]}function nu(e){return 1===e.props.segments.length&&e.props.segments[0].points.length<2}function nh(){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 np=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}),nf=async e=>{let t=await np(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 ng(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 nm extends m.StR{static type="image";static props=m.FcS;static migrations=m.y59;
101isAspectRatioLocked=()=>!0;canCrop=()=>!0;getDefaultProps(){return{w:100,h:100,assetId:null,playing:!0,url:"",crop:null}}component(e){let t=ny(e),n=(0,m.Q1i)(e.id),r=nh(),[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])&&n&&this.editor.isInAny("select.crop","select.cropping","select.pointing_crop_handle"),l=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;return(async()=>{let t=await nf(s.props.src);!e&&t&&o(t)})(),()=>{e=!0}}},[r,s?.props]),(0,_.jsxs)(_.Fragment,{children:[s?.props.src&&a&&(0,_.jsx)("div",{style:t,children:(0,_.jsx)("div",{className:"tl-image",style:{opacity:.1,backgroundImage:`url(${!e.props.playing||l?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||l?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)(tl,{url:e.props.url,zoomLevel:this.editor.getZoomLevel()})]})]})}indicator(e){return(0,m.Q1i)(e.id)?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 ng(r)||"");let i=document.createElementNS("http://www.w3.org/2000/svg","image");i.setAttributeNS("http://www.w3.org/1999/xlink","href",r);let o=ny(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;t&&t.props.src&&"mimeType"in t.props&&"image/gif"===t.props.mimeType&&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 ny(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 nb(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 nx(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)}`}
101function nw(e,t){let n=e.segments.reduce((e,t,n)=>e+nx(t,0===n),"");return t&&(n+="Z"),n}function nv(e,t=!1){if(!(e instanceof m.qvd))return nw(e,t);{let n;return n=e.segments.reduce((e,t,n)=>e+nb(t,0===n),""),t&&(n+="Z"),n}}function nS(e){return{size:e,thinning:.4,streamline:0,smoothing:.5,simulatePressure:!0,last:!0}}function nk(e,t,n){return O(t.vertices,nS(n))}function nj(e,t,n){let r=function(e,t,n){let r=nS(n);return D(L(nk(e,t,n),r),r)}(e,t,n);return(0,m.RKM)(r)}let n_=new m._cv;class nE 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 nP(e)}getHandles(e){return n_.get(e.props,()=>{let t=nP(e),n=nC(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].midPoint();r.push({id:i,type:"create",index:i,x:o.x,y:o.y,canSnap:!0})}return r.sort(m.hl1)})}onResize=(e,t)=>
101{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=eB(),n=nP(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)(eL,{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)(eL,{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}=eG(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:nb(e,!0),fill:"none"},t)})})]})}if("draw"===i){let i=n.points,[s,a]=tU(e.id,i,r);return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(eL,{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=nv(n);if("solid"===i)return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(eL,{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)(eL,{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}=eG(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:nx(e,!0),fill:"none"},t)})})]});if("draw"===i)return(0,_.jsxs)(m.gkc,{id:e.id,children:[(0,_.jsx)(eL,{d:s,fill:"none",color:o,theme:t}),(0,_.jsx)("path",{d:nj(e,n,r),strokeWidth:1,stroke:t[o].solid,fill:t[o].solid})]})}}indicator(e){let t;let n=K[e.props.size],r=nP(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]=tU(e.id,o,n);t=r}}else t="draw"===e.props.dash?tg(nk(e,r,n)):nv(r);return(0,_.jsx)("path",{d:t})}toSvg(e,t){let n=(0,m.y6M)({isDarkMode:t.isDarkMode})[e.props.color].solid,r=nP(e),i=K[e.props.size];switch(e.props.dash){case"draw":{let t;if(r instanceof m._e1)t=nj(e,r,i);else{let[n,o]=tU(e.id,r.points,i);t=o}let o=document.createElementNS("http://www.w3.org/2000/svg","path");return o.setAttribute("stroke-width",i+"px"),o.setAttribute("stroke",n),o.setAttribute("fill","none"),o.setAttribute("d",t),o}case"solid":{let e;if(r instanceof m._e1)e=nw(r,!1);else{let t=r.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",i+"px"),t.setAttribute("stroke",n),t.setAttribute("fill","none"),t.setAttribute("d",e),t}default:{let{segments:t}=r,o=document.createElementNS("http://www.w3.org/2000/svg","g");o.setAttribute("stroke",n),o.setAttribute("stroke-width",i.toString());let s=r instanceof m._e1?nx:nb;return t.forEach((n,r)=>{let a=document.createElementNS("http://www.w3.org/2000/svg","path"),{strokeDasharray:l,strokeDashoffset:c}=eG(n.length,i,{style:e.props.dash,start:r>0?"outset":"none",end:r<t.length-1?"outset":"none"});a.setAttribute("stroke-dasharray",l.toString()),a.setAttribute("stroke-dashoffset",c.toString()),a.setAttribute("d",s(n,!0)),a.setAttribute("fill","none"),o.appendChild(a)}),o}}}getHandleSnapGeometry(e){let t=nC(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=nP(e).segments.filter((e,t)=>t!==n-1&&t!==n);return r.length?new m.mqq({children:r}):null}}}}function nC(e){return Object.values(e.props.points).sort(m.hl1)}function nP(e){let t=nC(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 nI extends m.EeJ{static type="note";static props=m.m0n;static migrations=m.C_M;canEdit=()=>!0;hideResizeHandles=()=>!0;
101hideSelectionBoundsFg=()=>!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=eB(),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)(tB,{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)(tl,{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(eU(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=tL({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=>nT(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 nT(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 nT(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}).h+34,i=null;if(r>200?i=r-200:n&&(i=0),null!==i)return{...t,props:{...t.props,growY:i}}}let nM=new m._cv;class nA 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 nM.get(e.props,e=>n$(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}=e9(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",name:"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(eU(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=eF(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)=>
101{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=n$(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 n$(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 nD 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)(nO,{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 nO=(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=nh(),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]}
101`,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)(tl,{url:t.props.url,zoomLevel:n.editor.getZoomLevel()})]})}),nB=[nA,tu,tE,nn,nI,nE,tO,tn,no,tT,nm,nD];class nL 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);return this.editor.getShapeGeometry(e).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 nR extends m.nui{static id="idle";onPointerDown=e=>{this.parent.transition("pointing",e)};onCancel=()=>{this.editor.setCurrentTool("select")}}class nz 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 nN extends m.nui{static id="eraser";static initial="idle";static children=()=>[nR,nz,nL];onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})}}class nF 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 nU 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 nH 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=()=>[nU,nH,nF];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 nV extends m.nui{static id="idle";onPointerDown=e=>{this.parent.transition("lasering",e)}}class nK 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 nW extends m.nui{static id="laser";static initial="idle";static children=()=>[nV,nK];onEnter=()=>{this.editor.setCursor({type:"cross",rotation:0})}}class nY extends m.nui{static id="brushing";info={};brush=new m.xuv;initialSelectedShapeIds=[];excludedShapeIds=new Set;isWrapMode=!1;
101initialStartShape=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 nG(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 nX(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);return 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,{id:t.id,type:t.type,props:{crop:c}}}class nq 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=nG(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;
101case"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=nX(this.editor,i,r);o&&(e||this.editor.mark("translate crop"),this.editor.updateShapes([o]))}}class nQ 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 nJ 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(){return{shape:this.editor.getOnlySelectedShape()}}updateShapes(){let e=this.snapshot.shape;if(!e)return;let{originPagePoint:t,currentPagePoint:n}=this.editor.inputs,r=n.clone().sub(t),i=nX(this.editor,e,r);i&&this.editor.updateShapes([i],{squashing:!0})}}class n0 extends m.nui{static id="crop";static initial="idle";static children=()=>[nq,nJ,nQ]}let n1={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 n2 extends m.nui{static id="pointing_resize_handle";info={};updateCursor(){let e=this.editor.getSelectedShapes(),t=n1[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=()=>{this.editor.inputs.isDragging&&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 n8 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()};
101updateCursor(){let e=this.editor.getSelectedShapes()[0];if(!e)return;let t=n1[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||!this.editor.getShapeUtil("image"))return;let n=e.props,r=this.editor.inputs.currentPagePoint.clone().sub(t),i=this.editor.inputs.originPagePoint.clone().sub(t),o=r.clone().sub(i).rot(-e.rotation),s=n.crop??this.getDefaultCrop(),a=(0,m.p$x)(s),l=new m.B08(e.x,e.y),c=new m.B08(0,0),d=1/(s.bottomRight.x-s.topLeft.x)*n.w,u=1/(s.bottomRight.y-s.topLeft.y)*n.h,h=!1;switch(this.info.handle){case"top":case"top_left":case"top_right":if(u<8)break;h=!0,a.topLeft.y=a.topLeft.y+o.y/u,u*(a.bottomRight.y-a.topLeft.y)<8?(a.topLeft.y=a.bottomRight.y-8/u,c.y=(a.topLeft.y-s.topLeft.y)*u):a.topLeft.y<=0?(a.topLeft.y=0,c.y=(a.topLeft.y-s.topLeft.y)*u):c.y=o.y;break;case"bottom":case"bottom_left":case"bottom_right":if(u<8)break;h=!0,a.bottomRight.y=Math.min(1,a.bottomRight.y+o.y/u),u*(a.bottomRight.y-a.topLeft.y)<8&&(a.bottomRight.y=a.topLeft.y+8/u)}switch(this.info.handle){case"left":case"top_left":case"bottom_left":if(d<8)break;h=!0,a.topLeft.x=a.topLeft.x+o.x/d,d*(a.bottomRight.x-a.topLeft.x)<8?(a.topLeft.x=a.bottomRight.x-8/d,c.x=(a.topLeft.x-s.topLeft.x)*d):a.topLeft.x<=0?(a.topLeft.x=0,c.x=(a.topLeft.x-s.topLeft.x)*d):c.x=o.x;break;case"right":case"top_right":case"bottom_right":if(d<8)break;h=!0,a.bottomRight.x=Math.min(1,a.bottomRight.x+o.x/d),d*(a.bottomRight.x-a.topLeft.x)<8&&(a.bottomRight.x=a.topLeft.x+8/d)}if(!h)return;l.add(c.rot(e.rotation));let p={id:e.id,type:e.type,x:l.x,y:l.y,props:{crop:a,w:(a.bottomRight.x-a.topLeft.x)*d,h:(a.bottomRight.y-a.topLeft.y)*u}};this.editor.updateShapes([p],{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);return{shape:n,cursorHandleOffset:m.B08.Sub(t,i)}}}class n3 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).find(e=>e.index===r.index);this.initialHandle=(0,m.v4J)(e)}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
101de(),{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);b=m.B08.RotWith(b,o,t-e)}e.snaps.clearIndicators();let x={...r,x:b.x,y:b.y};if(r.canSnap&&(a?!u:u)){if(!e.getShapePageTransform(g.id))throw Error("Expected a page transform");let n=l.handles.snapHandle({currentShapeId:t,handle:x});n&&(n.nudge.rot(-e.getShapeParentTransform(g).rotation()),b.add(n.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 n5 extends m.nui{static id="editing_shape";onEnter=()=>{let e=this.editor.getEditingShape();if(!e)throw Error("Entered editing state without an editing shape");eA(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":eA(this.editor);return}};onPointerDown=e=>{switch(e.target){case"canvas":{let t=nG(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).children[1];if(r){let i=this.editor.getPointInShapeSpace(t,this.editor.inputs.currentPagePoint);if(r.bounds.containsPoint(i)){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 n6(e){let t=e.getOnlySelectedShape();return!!(t&&!e.isShapeOrAncestorLocked(t)&&e.getShapeUtil(t).canCrop(t))}function n4(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 n9 extends m.nui{static id="idle";onEnter=()=>{this.parent.setCurrentToolIdMask(void 0),eA(this.editor),this.editor.updateInstanceState({cursor:{type:"default",rotation:0}},{ephemeral:!0})};onPointerMove=()=>{eA(this.editor)};onPointerDown=e=>{if(this.editor.getIsMenuOpen())return;let t=e.ctrlKey&&n6(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=nG(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))&&rn(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;
101case"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")){n4(this.editor);return}{let e=this.editor.getShape(n.parentId);if(e&&this.editor.isShapeOfType(e,"group")){if(r&&e.id===r);else{n4(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))&&rn(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}n6(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*rt:i:n?n7:re;this.editor.nudgeShapes(this.editor.getSelectedShapeIds(),r.mul(o))}canInteractWithShapeInReadOnly(e){return!!(!this.editor.getInstanceState().isReadonly||this.editor.getShapeUtil(e).canEditInReadOnly(e))}}let n7=10,re=1,rt=5;function rn(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 rr extends m.nui{static id="pointing_arrow_label";shapeId="";markId="";info={};
101updateCursor(){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).children[1];if(!n)throw Error(`Expected to find an arrow label geometry for shape: ${t.id}`);let{currentPagePoint:r}=this.editor.inputs,i=this.editor.getPointInShapeSpace(t,r);this._labelDragOffset=m.B08.Sub(n.center,i),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);e=1-m.B08.Dist(r.end.point,a)/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 ri 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=()=>{n4(this.editor),this.complete()};onComplete=()=>{this.complete()};onInterrupt=()=>{this.parent.transition("idle")};complete(){this.parent.transition("idle")}}class ro extends m.nui{static id="pointing_crop_handle";info={};updateCursor(e){let t=n1[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=()=>{this.editor.inputs.isDragging&&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 rs 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 ra extends m.nui{static id="pointing_rotate_handle";info={};
101updateCursor(){let e=this.editor.getSelectionRotation();this.editor.updateInstanceState({cursor:{type:n1[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 rl extends m.nui{static id="pointing_selection";info={};onEnter=e=>{this.info=e};onPointerUp=e=>{n4(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 rc 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).children[1];if(e){let t=this.editor.getPointInShapeSpace(a,i);if(e.bounds.containsPoint(t,0)&&e.hitTestPoint(t)){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=>
101t.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 rd 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=rh(p,Math.PI);if(this.editor.snaps.clearIndicators(),(this.editor.user.getIsSnapMode()?!d:d)&&a%m.pjK==0){let{nudge:t}=this.editor.snaps.shapeBounds.snapResizeShapes({dragDelta:m.B08.Sub(u,h),initialSelectionPageBounds:this.snapshot.initialSelectionPageBounds,handle:rh(p,a),isAspectRatioLocked:c,isResizingFromCenter:e});u.add(t)}let g=m.B08.RotWith(e?i.center:i.getHandlePoint(f),i.point,a),y=m.B08.Sub(u,g).rot(-a),b=m.B08.Sub(h,g).rot(-a),x=m.B08.DivV(y,b);Number.isFinite(x.x)||(x.x=1),Number.isFinite(x.y)||(x.y=1);let w="top"===p||"bottom"===p,v="left"===p||"right"===p;for(let e of(c?v?x.y=Math.abs(x.x):w?x.x=Math.abs(x.y):Math.abs(x.x)>Math.abs(x.y)?x.y=Math.abs(x.x)*(x.y<0?-1:1):x.x=Math.abs(x.y)*(x.x<0?-1:1):(w&&(x.x=1),v&&(x.y=1)),this.info.isCreating||this.updateCursor({dragHandle:p,isFlippedX:x.x<0,isFlippedY:x.y<0,rotation:a}),r.keys())){let t=r.get(e);this.editor.resizeShape(e,x,{initialShape:t.shape,initialBounds:t.bounds,initialPageTransform:t.pageTransform,dragHandle:p,mode:1===s.length&&e===s[0]?"resize_bounds":"scale_shape",scaleOrigin:g,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.
101id,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 ru=["top","top_right","right","bottom_right","bottom","bottom_left","left","top_left"];function rh(e,t){let n=Math.round((t%=m.yoY)/(m.PI/4)),r=ru.indexOf(e);return ru[(r+n)%ru.length]}let rp=Math.PI/180;class rf 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:n1[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:n1[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=s+(n.center.clone().rotWith(n.point,t).angle(i)-o);if(r)a=(0,m.nDY)(a,24);else if(e&&(a=Math.round(a/rp)*rp,this.editor.getInstanceState().isCoarsePointer)){let e=(0,m.nDY)(a,4);Math.abs((0,m.Z7n)(a,e))<(0,m.Htt)(5)&&(a=e)}return a-s}}class rg extends m.nui{static id="scribble_brushing";hits=new Set;size=0;scribbleId="id";initialSelectedShapeIds=new Set;newlySelectedShapeIds=new Set;onEnter=()=>
101{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&&null!==(0,m.GcE)(c,d,n)&&!(0,m.Ofd)(d,n))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 rm{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 ry extends m.nui{static id="translating";info={};selectionSnapshot={};snapshot={};markId="";isCloning=!1;isCreating=!1;onCreate=()=>void 0;dragAndDropManager=new rm(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=rb(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=()=>
101{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=rb(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;if("x"===c?l.x=0:"y"===c&&(l.y=0),e.snaps.clearIndicators(),(e.user.getIsSnapMode()?!o.ctrlKey:o.ctrlKey)&&.5>e.inputs.pointerVelocity.len()){let{nudge:t}=e.snaps.shapeBounds.snapTranslateShapes({dragDelta:l,initialSelectionPageBounds:r,lockedAxis:c,initialSelectionSnapPoints:i});l.add(t)}let d=m.B08.Add(n,l);
101s&&!o.ctrlKey&&d.snapToGrid(a);let u=m.B08.Sub(d,n);e.updateShapes((0,m.oA$)(t.map(({shape:e,pagePoint:t,parentTransform:n})=>{let r=m.B08.Add(t,u),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 rb(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 rx extends m.nui{static id="select";static initial="idle";reactor=void 0;static children=()=>[n0,n8,n9,ri,rc,ry,nY,rg,ro,rl,n2,n5,rd,rf,ra,rr,rs,n3];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 rw extends m.nui{static id="idle";info={};onEnter=e=>{this.info=e};onPointerDown=()=>{this.parent.transition("pointing",this.info)}}class rv 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 rS 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()};update(){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 rk extends m.nui{static id="zoom";static initial="idle";static children=()=>[rw,rS,rv];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")}
101updateCursor(){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 rj=[nN,nZ,nW,rk,rx];var r_=n(7896),rE=n(28316);function rC(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 rP(...e){return t=>e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}function rI(...e){return(0,E.useCallback)(rP(...e),e)}function rT(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)[`__scope${r}`];return{...t,...i}},{});return(0,E.useMemo)(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}(r,...t)]}let rM=(0,E.forwardRef)((e,t)=>{let{children:n,...r}=e,i=E.Children.toArray(n),o=i.find(rD);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)(rA,(0,r_.Z)({},r,{ref:t}),(0,E.isValidElement)(e)?(0,E.cloneElement)(e,void 0,n):null)}return(0,E.createElement)(rA,(0,r_.Z)({},r,{ref:t}),n)});rM.displayName="Slot";let rA=(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];/^on[A-Z]/.test(r)?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?rP(t,n.ref):n.ref}):E.Children.count(n)>1?E.Children.only(null):null});rA.displayName="SlotClone";let r$=({children:e})=>(0,E.createElement)(E.Fragment,null,e);function rD(e){return(0,E.isValidElement)(e)&&e.type===r$}function rO(e){let t=e+"CollectionProvider",[n,r]=rT(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=rI(t,o(s,n).collectionRef);return E.createElement(rM,{ref:i},r)}),l=e+"CollectionItemSlot",c="data-radix-collection-item";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:E.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,s=E.useRef(null),a=rI(t,s),d=o(l,n);return E.useEffect(()=>(d.itemMap.set(s,{ref:s,...i}),()=>void d.itemMap.delete(s))),E.createElement(rM,{[c]:"",ref:a},r)})},function(t){let n=o(e+"CollectionConsumer",t);return E.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${c}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])},r]}let rB=["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?rM:t;return(0,E.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,E.createElement)(o,(0,r_.Z)({},i,{ref:n}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function rL(e,t){e&&(0,rE.flushSync)(()=>
101e.dispatchEvent(t))}function rR(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 rz="dismissableLayer.update",rN=(0,E.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),rF=(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)(rN),[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=rI(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=rR(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=rR(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;[...u.branches].some(e=>e.contains(t))||(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=rR(e);(0,E.useEffect)(()=>{let e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e),()=>t.removeEventListener("keydown",e)},[n,t])}(e=>{w!==u.layers.size-1||(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),rH(),()=>{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),rH())},[h,u]),(0,E.useEffect)(()=>{let e=()=>g({});return document.addEventListener(rz,e),()=>document.removeEventListener(rz,e)},[]),(0,E.createElement)(rB.div,(0,r_.Z)({},d,{ref:m,style:{pointerEvents:v?S?"auto":"none":void 0,...e.style},onFocusCapture:rC(e.onFocusCapture,j.onFocusCapture),onBlurCapture:rC(e.onBlurCapture,j.onBlurCapture),onPointerDownCapture:rC(e.onPointerDownCapture,k.onPointerDownCapture)}))}),rU=(0,E.forwardRef)((e,t)=>{let n=(0,E.useContext)(rN),r=(0,E.useRef)(null),i=rI(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)(rB.div,(0,r_.Z)({},e,{ref:i}))});function rH(){let e=new CustomEvent(rz);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?rL(i,o):i.dispatchEvent(o)}let rV=(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?rE.createPortal((0,E.createElement)(rB.div,(0,r_.Z)({},i,{ref:t})),r):null}),rK=(null==globalThis?void 0:globalThis.document)?E.useLayoutEffect:()=>{},rW=e=>{let{present:t,children:n}=e,r=function(e){var t,n;let[r,i]=(0,E.useState)(),o=(0,E.useRef)({}),s=(0,E.useRef)(e),a=(0,E.useRef)("none"),[l,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},(0,E.useReducer)((e,t)=>{let r=n[e][t];return null!=r?r:e},t));return(0,E.useEffect)(()=>{let e=rY(o.current);a.current="mounted"===l?e:"none"},[l]),rK(()=>
101{let t=o.current,n=s.current;if(n!==e){let r=a.current,i=rY(t);e?c("MOUNT"):"none"===i||(null==t?void 0:t.display)==="none"?c("UNMOUNT"):n&&r!==i?c("ANIMATION_OUT"):c("UNMOUNT"),s.current=e}},[e,c]),rK(()=>{if(r){let e=e=>{let t=rY(o.current).includes(e.animationName);e.target===r&&t&&(0,rE.flushSync)(()=>c("ANIMATION_END"))},t=e=>{e.target===r&&(a.current=rY(o.current))};return r.addEventListener("animationstart",t),r.addEventListener("animationcancel",e),r.addEventListener("animationend",e),()=>{r.removeEventListener("animationstart",t),r.removeEventListener("animationcancel",e),r.removeEventListener("animationend",e)}}c("ANIMATION_END")},[r,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,E.useCallback)(e=>{e&&(o.current=getComputedStyle(e)),i(e)},[])}}(t),i="function"==typeof n?n({present:r.isPresent}):E.Children.only(n),o=rI(r.ref,i.ref);return"function"==typeof n||r.isPresent?(0,E.cloneElement)(i,{ref:o}):null};function rY(e){return(null==e?void 0:e.animationName)||"none"}function rG({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=rR(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=rR(n);return[s,(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])]}rW.displayName="Presence";let rX=(0,E.forwardRef)((e,t)=>(0,E.createElement)(rB.span,(0,r_.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}}))),rq="ToastProvider",[rQ,rJ,r0]=rO("Toast"),[r1,r2]=rT("Toast",[r0]),[r8,r3]=r1(rq),r5=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)(rQ.Provider,{scope:t},(0,E.createElement)(r8,{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))};r5.propTypes={label:e=>e.label&&"string"==typeof e.label&&!e.label.trim()?Error(`Invalid prop \`label\` supplied to \`${rq}\`. Expected non-empty \`string\`.`):null};let r6=["F8"],r4="toast.viewportPause",r9="toast.viewportResume",r7=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,hotkey:r=r6,label:i="Notifications ({hotkey})",...o}=e,s=r3("ToastViewport",n),a=rJ(n),l=(0,E.useRef)(null),c=(0,E.useRef)(null),d=(0,E.useRef)(null),u=(0,E.useRef)(null),h=rI(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;r.every(t=>e[t]||e.code===t)&&(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(r4);t.dispatchEvent(e),s.isClosePausedRef.current=!0}},r=()=>{if(s.isClosePausedRef.current){let e=new CustomEvent(r9);t.dispatchEvent(e),s.isClosePausedRef.current=!1}},i=t=>{e.contains(t.relatedTarget)||r()},o=()=>{e.contains(document.activeElement)||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().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?t.reverse():t).flat()},[a]);return(0,E.useEffect)(()=>{let e=u.current;if(e){let t=t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if("Tab"===t.key&&!n){var r,i,o;let n=document.activeElement,s=t.shiftKey;if(t.target===e&&s){null===(r=c.current)||void 0===r||r.focus();return}let a=g({tabbingDirection:s?"backwards":"forwards"}),l=a.findIndex(e=>e===n);im(a.slice(l+1))?t.preventDefault():s?null===(i=c.current)||void 0===i||i.focus():null===(o=d.current)||void 0===o||o.focus()}};return e.addEventListener("keydown",t),()=>e.removeEventListener("keydown",t)}},[a,g]),(0,E.createElement)(rU,{ref:l,role:"region","aria-label":i.replace("{hotkey}",p),tabIndex:-1,style:{pointerEvents:f?void 0:"none"}},f&&(0,E.createElement)(ie,{ref:c,onFocusFromOutsideViewport:()=>{im(g({tabbingDirection:"forwards"}))}}),(0,E.createElement)(rQ.Slot,{scope:n},(0,E.createElement)(rB.ol,(0,r_.Z)({tabIndex:-1},o,{ref:h}))),f&&(0,E.createElement)(ie,{ref:d,onFocusFromOutsideViewport:()=>{im(g({tabbingDirection:"backwards"}))}}))}),ie=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,o=r3("ToastFocusProxy",n);return(0,E.createElement)(rX,(0,r_.Z)({"aria-hidden":!0,tabIndex:0},i,{ref:t,style:{position:"fixed"},onFocus:e=>{var t;let n=e.relatedTarget;null!==(t=o.viewport)&&void 0!==t&&t.contains(n)||r()}}))}),it="Toast",ir=(0,E.forwardRef)((e,t)=>{let{forceMount:n,open:r,defaultOpen:i,onOpenChange:o,...s}=e,[a=!0,l]=rG({prop:r,defaultProp:i,onChange:o});return(0,E.createElement)(rW,{present:n||a},(0,E.createElement)(is,(0,r_.Z)({open:a},s,{ref:t,onClose:()=>l(!1),onPause:rR(e.onPause),onResume:rR(e.onResume),onSwipeStart:rC(e.onSwipeStart,e=>{e.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:rC(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`)}
101),onSwipeCancel:rC(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:rC(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)})})))}),[ii,io]=r1(it,{onClose(){}}),is=(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=r3(it,n),[m,y]=(0,E.useState)(null),b=rI(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=rR(()=>{var e;(null==m?void 0:m.contains(document.activeElement))&&(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(r4,n),e.addEventListener(r9,t),()=>{e.removeEventListener(r4,n),e.removeEventListener(r9,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=[];return Array.from(t.childNodes).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)(ia,{__scopeToast:n,role:"status","aria-live":"foreground"===r?"assertive":"polite","aria-atomic":!0},T),(0,E.createElement)(ii,{scope:n,onClose:P},(0,rE.createPortal)((0,E.createElement)(rQ.ItemSlot,{scope:n},(0,E.createElement)(rF,{asChild:!0,onEscapeKeyDown:rC(a,()=>{g.isFocusedToastEscapeKeyDownRef.current||P(),g.isFocusedToastEscapeKeyDownRef.current=!1})},(0,E.createElement)(rB.li,(0,r_.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:rC(e.onKeyDown,e=>{"Escape"!==e.key||(null==a||a(e.nativeEvent),e.nativeEvent.defaultPrevented||(g.isFocusedToastEscapeKeyDownRef.current=!0,P()))}),onPointerDown:rC(e.onPointerDown,e=>{0===e.button&&(x.current={x:e.clientX,y:e.clientY})}),onPointerMove:rC(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,ip("toast.swipeMove",u,h,{discrete:!1})):ig(c,g.swipeDirection,l)?(w.current=c,ip("toast.swipeStart",d,h,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>l||Math.abs(n)>l)&&(x.current=null)}),onPointerUp:rC(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};ig(t,g.swipeDirection,g.swipeThreshold)?ip("toast.swipeEnd",p,r,{discrete:!0}):ip("toast.swipeCancel",h,r,{discrete:!0}),n.addEventListener("click",e=>e.preventDefault(),{once:!0})}})})))),g.viewport))):null});is.propTypes={type:e=>e.type&&!["foreground","background"].includes(e.type)?Error(`Invalid prop \`type\` supplied to \`${it}\`. Expected \`foreground | background\`.`):null};let ia=e=>{let{__scopeToast:t,children:n,...r}=e,i=r3(it,t),[o,s]=(0,E.useState)(!1),[a,l]=(0,E.useState)(!1);return function(e=()=>{}){let t=rR(e);rK(()=>{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)(rV,{asChild:!0},(0,E.createElement)(rX,r,o&&(0,E.createElement)(E.Fragment,null,i.label," ",n)))},il=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,...r}=e;return(0,E.createElement)(rB.div,(0,r_.Z)({},r,{ref:t}))}),ic=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,...r}=e;return(0,E.createElement)(rB.div,(0,r_.Z)({},r,{ref:t}))}),id=(0,E.forwardRef)((e,t)=>{let{altText:n,...r}=e;return n?(0,E.createElement)(ih,{altText:n,asChild:!0},(0,E.createElement)(iu,(0,r_.Z)({},r,{ref:t}))):null});id.propTypes={altText:e=>e.altText?null:Error("Missing prop `altText` expected on `ToastAction`")};let iu=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,...r}=e,i=io("ToastClose",n);return(0,E.createElement)(ih,{asChild:!0},(0,E.createElement)(rB.button,(0,r_.Z)({type:"button"},r,{ref:t,onClick:rC(e.onClick,i.onClose)})))}),ih=(0,E.forwardRef)((e,t)=>{let{__scopeToast:n,altText:r,...i}=e;return(0,E.createElement)(rB.div,(0,r_.Z)({"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0},i,{ref:t}))});function ip(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?rL(i,o):i.dispatchEvent(o)}let ig=(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 im(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}let iy=[0,390,428,468,580,640,840,1023];var ib=((s=ib||{})[s.ZERO=0]="ZERO",s[s.MOBILE_XXS=1]="MOBILE_XXS",s[s.MOBILE_XS=2]="MOBILE_XS",
101s[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 ix=E.createContext(0);function iw({forceMobile:e=!1,children:t}){let n=(0,m.jE2)(),r=(0,m.HgN)("breakpoint",()=>{let{width:t}=n.getViewportScreenBounds(),r=e?ib.MOBILE_SM:iy.length-1;for(let e=0;e<r;e++)if(t>iy[e]&&t<=iy[e+1])return e;return r},[n]);return(0,_.jsx)(ix.Provider,{value:r,children:t})}function iv(){return(0,E.useContext)(ix)}let iS=(0,E.createContext)(null);function ik({assetUrls:e,children:t}){return(0,_.jsx)(iS.Provider,{value:e,children:t})}function ij(){let e=(0,E.useContext)(iS);if(!e)throw Error("useAssetUrls must be used within an AssetUrlsProvider");return e}let i_={"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
101ctangle":"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.
101invalid-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..."},iE={locale:"en",label:"English",messages:i_};async function iC(e,t){if(!(await fetch(t.translations.en)).ok)return console.warn("No main translations foun
101d."),iE;if("en"===e)return iE;let n=m.a2c.find(t=>t.locale===e);if(!n)return console.warn(`No translation found for locale ${e}`),iE;let r=await fetch(t.translations[n.locale]),i=await r.json();if(!i)return console.warn(`No messages found for locale ${e}`),iE;let o=[];for(let e in iE.messages)i[e]||o.push(e);return o.length,{locale:e,label:n.label,messages:{...iE.messages,...i}}}let iP=E.createContext({}),iI=()=>E.useContext(iP),iT=(0,m.jas)(function({overrides:e,children:t}){let n=(0,m.jE2)().user.getLocale(),r=ij(),[i,o]=E.useState(()=>e&&e.en?{locale:"en",label:"English",messages:{...i_,...e.en}}:{locale:"en",label:"English",messages:i_});return E.useEffect(()=>{let t=!1;return async function(){let i=await iC(n,r);i&&!t&&(e&&e[n]?o({...i,messages:{...i.messages,...e[n]}}):o(i))}(),()=>{t=!0}},[r,n,e]),(0,_.jsx)(iP.Provider,{value:i,children:t})});function iM(){let e=iI();return E.useCallback(function(t){return e.messages[t]??t},[e])}let iA=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})}),i$=(0,E.memo)(function({small:e,invertIcon:t,icon:n,color:r,className:i,...o}){let s=ij(),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 iD({icon:e,small:t,invertIcon:n}){return(0,_.jsx)(i$,{className:"tlui-button__icon",icon:e,small:t,invertIcon:n})}let iO=0;function iB(){(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:iL()),document.body.insertAdjacentElement("beforeend",null!==(t=n[1])&&void 0!==t?t:iL()),iO++,()=>{1===iO&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),iO--}},[])}function iL(){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 iR="focusScope.autoFocusOnMount",iz="focusScope.autoFocusOnUnmount",iN={bubbles:!1,cancelable:!0},iF=(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=rR(i),d=rR(o),u=(0,E.useRef)(null),h=rI(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){if(document.activeElement===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){iV.add(p);let e=document.activeElement;if(!a.contains(e)){let t=new CustomEvent(iR,iN);a.addEventListener(iR,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}(iU(a).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&iZ(a))}return()=>{a.removeEventListener(iR,c),setTimeout(()=>{let t=new CustomEvent(iz,iN);a.addEventListener(iz,d),a.dispatchEvent(t),t.defaultPrevented||iZ(null!=e?e:document.body,{select:!0}),a.removeEventListener(iz,d),iV.remove(p)}
101,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=iU(e);return[iH(t,e),iH(t.reverse(),e)]}(t);r&&o?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)(rB.div,(0,r_.Z)({tabIndex:-1},s,{ref:h,onKeyDown:f}))});function iU(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 iH(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 iV=(i=[],{add(e){let t=i[0];e!==t&&(null==t||t.pause()),(i=iK(i,e)).unshift(e)},remove(e){var t;null===(t=(i=iK(i,e))[0])||void 0===t||t.resume()}});function iK(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}let iW=C["useId".toString()]||(()=>void 0),iY=0;function iG(e){let[t,n]=E.useState(iW());return rK(()=>{e||n(e=>null!=e?e:String(iY++))},[e]),e||(t?`radix-${t}`:"")}let iX=["top","right","bottom","left"],iq=Math.min,iQ=Math.max,iJ=Math.round,i0=Math.floor,i1=e=>({x:e,y:e}),i2={left:"right",right:"left",bottom:"top",top:"bottom"},i8={start:"end",end:"start"};function i3(e,t){return"function"==typeof e?e(t):e}function i5(e){return e.split("-")[0]}function i6(e){return e.split("-")[1]}function i4(e){return"x"===e?"y":"x"}function i9(e){return"y"===e?"height":"width"}function i7(e){return["top","bottom"].includes(i5(e))?"y":"x"}function oe(e){return e.replace(/start|end/g,e=>i8[e])}function ot(e){return e.replace(/left|right|bottom|top/g,e=>i2[e])}function on(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function or(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function oi(e,t,n){let r,{reference:i,floating:o}=e,s=i7(t),a=i4(i7(t)),l=i9(a),c=i5(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(i6(t)){case"start":r[a]-=p*(n&&d?-1:1);break;case"end":r[a]+=p*(n&&d?-1:1)}return r}let oo=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}=oi(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}=oi(c,h,l)),n=-1)}return{x:d,y:u,placement:h,strategy:i,middlewareData:p}};async function os(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}=i3(t,e),f=on(p),g=a[h?"floating"===u?"reference":"floating":u],m=or(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=or(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 oa(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ol(e){return iX.some(t=>e[t]>=0)}async function oc(e,t){let{placement:n,platform:r,elements:i}=e,o=await (null==r.isRTL?void 0:r.isRTL(i.floating)),s=i5(n),a=i6(n),l="y"===i7(n),c=["left","top"].includes(s)?-1:1,d=o&&l?-1:1,u=i3(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 od(e){return op(e)?(e.nodeName||"").toLowerCase():"#document"}function ou(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function oh(e){var t;return null==(t=(op(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function op(e){return e instanceof Node||e instanceof ou(e).Node}function of(e){return e instanceof Element||e instanceof ou(e).Element}function og(e){return e instanceof HTMLElement||e instanceof ou(e).HTMLElement}function om(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof ou(e).ShadowRoot)}function oy(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=ov(e);
101return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(i)}function ob(e){let t=ox(),n=ov(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 ox(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}function ow(e){return["html","body","#document"].includes(od(e))}function ov(e){return ou(e).getComputedStyle(e)}function oS(e){return of(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ok(e){if("html"===od(e))return e;let t=e.assignedSlot||e.parentNode||om(e)&&e.host||oh(e);return om(t)?t.host:t}function oj(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let i=function e(t){let n=ok(t);return ow(n)?t.ownerDocument?t.ownerDocument.body:t.body:og(n)&&oy(n)?n:e(n)}(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),s=ou(i);return o?t.concat(s,s.visualViewport||[],oy(i)?i:[],s.frameElement&&n?oj(s.frameElement):[]):t.concat(i,oj(i,[],n))}function o_(e){let t=ov(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=og(e),o=i?e.offsetWidth:n,s=i?e.offsetHeight:r,a=iJ(n)!==o||iJ(r)!==s;return a&&(n=o,r=s),{width:n,height:r,$:a}}function oE(e){return of(e)?e:e.contextElement}function oC(e){let t=oE(e);if(!og(t))return i1(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:o}=o_(t),s=(o?iJ(n.width):n.width)/r,a=(o?iJ(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}let oP=i1(0);function oI(e){let t=ou(e);return ox()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:oP}function oT(e,t,n,r){var i;void 0===t&&(t=!1),void 0===n&&(n=!1);let o=e.getBoundingClientRect(),s=oE(e),a=i1(1);t&&(r?of(r)&&(a=oC(r)):a=oC(e));let l=(void 0===(i=n)&&(i=!1),r&&(!i||r===ou(s))&&i)?oI(s):i1(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=ou(s),t=r&&of(r)?ou(r):r,n=e,i=n.frameElement;for(;i&&r&&t!==n;){let e=oC(i),t=i.getBoundingClientRect(),r=ov(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=ou(i)).frameElement}}return or({width:u,height:h,x:c,y:d})}let oM=[":popover-open",":modal"];function oA(e){return oM.some(t=>{try{return e.matches(t)}catch(e){return!1}})}function o$(e){return oT(oh(e)).left+oS(e).scrollLeft}function oD(e,t,n){let r;if("viewport"===t)r=function(e,t){let n=ou(e),r=oh(e),i=n.visualViewport,o=r.clientWidth,s=r.clientHeight,a=0,l=0;if(i){o=i.width,s=i.height;let e=ox();(!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=oh(e),n=oS(e),r=e.ownerDocument.body,i=iQ(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=iQ(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),s=-n.scrollLeft+o$(e),a=-n.scrollTop;return"rtl"===ov(r).direction&&(s+=iQ(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:s,y:a}}(oh(e));else if(of(t))r=function(e,t){let n=oT(e,!0,"fixed"===t),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=og(e)?oC(e):i1(1),s=e.clientWidth*o.x;return{width:s,height:e.clientHeight*o.y,x:i*o.x,y:r*o.y}}(t,n);else{let n=oI(e);r={...t,x:t.x-n.x,y:t.y-n.y}}return or(r)}function oO(e,t){return og(e)&&"fixed"!==ov(e).position?t?t(e):e.offsetParent:null}function oB(e,t){let n=ou(e);if(!og(e)||oA(e))return n;let r=oO(e,t);for(;r&&["table","td","th"].includes(od(r))&&"static"===ov(r).position;)r=oO(r,t);return r&&("html"===od(r)||"body"===od(r)&&"static"===ov(r).position&&!ob(r))?n:r||function(e){let t=ok(e);for(;og(t)&&!ow(t);){if(ob(t))return t;t=ok(t)}return null}(e)||n}let oL=async function(e){let t=this.getOffsetParent||oB,n=this.getDimensions;return{reference:function(e,t,n){let r=og(t),i=oh(t),o="fixed"===n,s=oT(e,!0,o,t),a={scrollLeft:0,scrollTop:0},l=i1(0);if(r||!r&&!o){if(("body"!==od(t)||oy(i))&&(a=oS(t)),r){let e=oT(t,!0,o,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else i&&(l.x=o$(i))}return{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await n(e.floating)}}},oR={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,o="fixed"===i,s=oh(r),a=!!t&&oA(t.floating);if(r===s||a&&o)return n;let l={scrollLeft:0,scrollTop:0},c=i1(1),d=i1(0),u=og(r);
101if((u||!u&&!o)&&(("body"!==od(r)||oy(s))&&(l=oS(r)),og(r))){let e=oT(r);c=oC(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:oh,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=oj(e,[],!1).filter(e=>of(e)&&"body"!==od(e)),i=null,o="fixed"===ov(e).position,s=o?ok(e):e;for(;of(s)&&!ow(s);){let t=ov(s),n=ob(s);n||"fixed"!==t.position||(i=null),(o?!n&&!i:!n&&"static"===t.position&&!!i&&["absolute","fixed"].includes(i.position)||oy(s)&&!n&&function e(t,n){let r=ok(t);return!(r===n||!of(r)||ow(r))&&("fixed"===ov(r).position||e(r,n))}(e,s))?r=r.filter(e=>e!==s):i=t,s=ok(s)}return t.set(e,r),r}(t,this._c):[].concat(n),r],s=o[0],a=o.reduce((e,n)=>{let r=oD(t,n,i);return e.top=iQ(r.top,e.top),e.right=iq(r.right,e.right),e.bottom=iq(r.bottom,e.bottom),e.left=iQ(r.left,e.left),e},oD(t,s,i));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:oB,getElementRects:oL,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=o_(e);return{width:t,height:n}},getScale:oC,isElement:of,isRTL:function(e){return"rtl"===ov(e).direction}},oz=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}=i3(e,t)||{};if(null==c)return{};let u=on(d),h={x:n,y:r},p=i4(i7(i)),f=i9(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=iq(u[m?"top":"left"],S),j=iq(u[m?"bottom":"right"],S),_=v-g[f]-j,E=v/2-g[f]/2+(b/2-x/2),C=iQ(k,iq(E,_)),P=!l.arrow&&null!=i6(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}}}),oN=(e,t,n)=>{let r=new Map,i={platform:oR,...n},o={...i.platform,_c:r};return oo(e,t,{...i,platform:o})},oF=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?oz({element:n.current,padding:r}).fn(t):{}:n?oz({element:n,padding:r}).fn(t):{}}});var oU="undefined"!=typeof document?E.useLayoutEffect:E.useEffect;function oH(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(!oH(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)&&!oH(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function oZ(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function oV(e,t){let n=oZ(e);return Math.round(t*n)/n}function oK(e){let t=E.useRef(e);return oU(()=>{t.current=e}),t}let oW=(0,E.forwardRef)((e,t)=>{let{children:n,width:r=10,height:i=5,...o}=e;return(0,E.createElement)(rB.svg,(0,r_.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 oY(e){let[t,n]=(0,E.useState)(void 0);return rK(()=>{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 oG="Popper",[oX,oq]=rT(oG),[oQ,oJ]=oX(oG),o0=(0,E.forwardRef)((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,o=oJ("PopperAnchor",n),s=(0,E.useRef)(null),a=rI(t,s);return(0,E.useEffect)(()=>{o.onAnchorChange((null==r?void 0:r.current)||s.current)}),r?null:(0,E.createElement)(rB.div,(0,r_.Z)({},i,{ref:a}))}),o1="PopperContent",[o2,o8]=oX(o1),o3=(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=oJ(o1,m),[A,$]=(0,E.useState)(null),D=rI(t,e=>$(e)),[O,B]=(0,E.useState)(null),L=oY(O),R=null!==(n=null==L?void 0:L.width)&&void 0!==n?n:0,z=null!==(r=null==L?void 0:L.height)&&void 0!==r?r:0,N="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:N,boundary:F.filter(o4),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);oH(h,r)||p(r);let[f,g]=E.useState(null),[m,y]=E.useState(null),b=E.useCallback(e=>
101{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=oK(l),P=oK(i),I=E.useCallback(()=>{if(!S.current||!k.current)return;let e={placement:t,strategy:n,middleware:h};P.current&&(e.platform=P.current),oN(S.current,k.current,e).then(e=>{let t={...e,isPositioned:!0};T.current&&!oH(j.current,t)&&(j.current=t,rE.flushSync(()=>{u(t)}))})},[h,t,n,P]);oU(()=>{!1===c&&j.current.isPositioned&&(j.current.isPositioned=!1,u(e=>({...e,isPositioned:!1})))},[c]);let T=E.useRef(!1);oU(()=>(T.current=!0,()=>{T.current=!1}),[]),oU(()=>{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=oV(A.floating,d.x),r=oV(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)=>(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=oE(e),u=o||s?[...d?oj(d):[],...oj(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=oh(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=i0(d),f=i0(i.clientWidth-(c+u)),g={rootMargin:-p+"px "+-f+"px "+-i0(i.clientHeight-(d+h))+"px "+-i0(c)+"px",threshold:iQ(0,iq(1,l))||1},m=!0;function y(e){let t=e[0].intersectionRatio;if(t!==l){if(!m)return s();t?s(!1,t):n=setTimeout(()=>{s(!1,1e-7)},100)}m=!1}try{r=new IntersectionObserver(y,{...g,root:i.ownerDocument})}catch(e){r=new IntersectionObserver(y,g)}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?oT(e):null;return c&&function t(){let r=oT(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}),elements:{reference:M.anchor},middleware:[{name:"offset",options:d={mainAxis:b+z,alignmentAxis:w},async fn(e){var t,n;let{x:r,y:i,placement:o,middlewareData:s}=e,a=await oc(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}=i3(u,e),c={x:t,y:n},d=i7(r),h=i4(d),p=c[h],f=c[d],g=i3(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(i5(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}=i3(h,e),l={x:t,y:n},c=await os(e,a),d=i7(i5(r)),u=i4(d),p=l[u],f=l[d];if(i){let e="y"===u?"top":"left",t="y"===u?"bottom":"right",n=p+c[e],r=p-c[t];p=iQ(n,iq(p,r))}if(o){let e="y"===d?"top":"left",t="y"===d?"bottom":"right",n=f+c[e],r=f-c[t];f=iQ(n,iq(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}=i3(p,e);if(null!=(t=a.arrow)&&t.alignmentOffset)return{};let w=i5(s),v=i5(c)===c,S=await (null==d.isRTL?void 0:d.isRTL(u.floating)),k=g||(v||!b?[ot(c)]:function(e){let t=ot(e);return[oe(e),t,oe(t)]}(c));g||"none"===y||k.push(...function(e,t,n,r){let i=i6(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[]}}(i5(e),"start"===n,r);return i&&(o=o.map(e=>e+"-"+i),t&&(o=o.concat(o.map(oe)))),o}(c,b,y,S));let j=[c,...k],_=await os(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=i6(e),i=i4(i7(e)),o=i9(i),s="x"===i?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[o]>
101t.floating[o]&&(s=ot(s)),[s,ot(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)=>e.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}=i3(f,e),c=await os(e,l),d=i5(r),u=i6(r),h="y"===i7(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?iq(y,e):e}else{let e=g-c.top-c.bottom;x=u||b?iq(m,e):e}if(b&&!u){let e=iQ(c.left,0),t=iQ(c.right,0),n=iQ(c.top,0),r=iQ(c.bottom,0);h?w=p-2*(0!==e||0!==t?e+t:iQ(c.left,c.right)):x=g-2*(0!==n||0!==r?n+r:iQ(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&&oF({element:O,padding:v}),o9({arrowWidth:R,arrowHeight:z}),C&&{name:"hide",options:g={strategy:"referenceHidden",...H},async fn(e){let{rects:t}=e,{strategy:n="referenceHidden",...r}=i3(g,e);switch(n){case"referenceHidden":{let n=oa(await os(e,{...r,elementContext:"reference"}),t.reference);return{data:{referenceHiddenOffsets:n,referenceHidden:ol(n)}}}case"escaped":{let n=oa(await os(e,{...r,altBoundary:!0}),t.floating);return{data:{escapedOffsets:n,escaped:ol(n)}}}default:return{}}}}]}),[G,X]=o7(K),q=rR(I);rK(()=>{W&&(null==q||q())},[W,q]);let Q=null===(i=Y.arrow)||void 0===i?void 0:i.x,J=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 rK(()=>{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)(o2,{scope:m,placedSide:G,onArrowChange:B,arrowX:Q,arrowY:J,shouldHideArrow:ee},(0,E.createElement)(rB.div,(0,r_.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}}))))}),o5={top:"bottom",right:"left",bottom:"top",left:"right"},o6=(0,E.forwardRef)(function(e,t){let{__scopePopper:n,...r}=e,i=o8("PopperArrow",n),o=o5[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)(oW,(0,r_.Z)({},r,{ref:t,style:{...r.style,display:"block"}})))});function o4(e){return null!==e}let o9=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]=o7(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 o7(e){let[t,n="center"]=e.split("-");return[t,n]}let se=e=>{let{__scopePopper:t,children:n}=e,[r,i]=(0,E.useState)(null);return(0,E.createElement)(oQ,{scope:t,anchor:r,onAnchorChange:i},n)};var st=n(49732),sn=n(5163),sr=n(95346),si=n(22442),so=(0,n(64597)._)(),ss=function(){},sa=E.forwardRef(function(e,t){var n=E.useRef(null),r=E.useState({onScrollCapture:ss,onWheelCapture:ss,onTouchMoveCapture:ss}),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=(0,sn._T)(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),b=(0,si.q)([n,t]),x=(0,sn.pi)((0,sn.pi)({},y),i);return E.createElement(E.Fragment,null,d&&E.createElement(h,{sideCar:so,removeScrollBar:c,shards:u,noIsolation:p,inert:f,setCallbacks:o,allowPinchZoom:!!g,lockRef:n}),s?E.cloneElement(E.Children.only(a),(0,sn.pi)((0,sn.pi)({},x),{ref:b})):E.createElement(void 0===m?"div":m,(0,sn.pi)({},x,{className:l,ref:b}),a))});sa.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},sa.classNames={fullWidth:sr.zi,zeroRight:sr.pF};var sl=n(57758),sc=n(181),sd=n(33225),su=!1;
101if("undefined"!=typeof window)try{var sh=Object.defineProperty({},"passive",{get:function(){return su=!0,!0}});window.addEventListener("test",sh,sh),window.removeEventListener("test",sh,sh)}catch(e){su=!1}var sp=!!su&&{passive:!1},sf=function(e,t){var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&"TEXTAREA"!==e.tagName&&"visible"===n[t])},sg=function(e,t){var n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),sm(e,n)){var r=sy(e,n);if(r[1]>r[2])return!0}n=n.parentNode}while(n&&n!==document.body);return!1},sm=function(e,t){return"v"===e?sf(t,"overflowY"):sf(t,"overflowX")},sy=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},sb=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=sy(e,l),g=f[0],m=f[1]-f[2]-s*g;(g||m)&&sm(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},sx=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},sw=function(e){return[e.deltaX,e.deltaY]},sv=function(e){return e&&"current"in e?e.current:e},sS=0,sk=[],sj=(0,sl.L)(so,function(e){var t=E.useRef([]),n=E.useRef([0,0]),r=E.useRef(),i=E.useState(sS++)[0],o=E.useState(function(){return(0,sd.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,sn.ev)([e.lockRef.current],(e.shards||[]).map(sv),!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=sx(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=sg(u,d);if(!h)return!0;if(h?i=u:(i="v"===u?"h":"v",h=sg(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 sb(p,t,e,"h"===p?l:c,!0)},[]),l=E.useCallback(function(e){if(sk.length&&sk[sk.length-1]===o){var n="deltaY"in e?sw(e):sx(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(sv).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=sx(e),r.current=void 0},[]),u=E.useCallback(function(t){c(t.type,sw(t),t.target,a(t,e.lockRef.current))},[]),h=E.useCallback(function(t){c(t.type,sx(t),t.target,a(t,e.lockRef.current))},[]);E.useEffect(function(){return sk.push(o),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:h}),document.addEventListener("wheel",l,sp),document.addEventListener("touchmove",l,sp),document.addEventListener("touchstart",d,sp),function(){sk=sk.filter(function(e){return e!==o}),document.removeEventListener("wheel",l,sp),document.removeEventListener("touchmove",l,sp),document.removeEventListener("touchstart",d,sp)}},[]);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(sc.jp,{gapMode:"margin"}):null)}),s_=E.forwardRef(function(e,t){return E.createElement(sa,(0,sn.pi)({},e,{ref:t,sideCar:sj}))});s_.classNames=sa.classNames;let sE="Popover",[sC,sP]=rT(sE,[oq]),sI=oq(),[sT,sM]=sC(sE),sA=(0,E.forwardRef)((e,t)=>{let{__scopePopover:n,...r}=e,i=sM("PopoverTrigger",n),o=sI(n),s=rI(t,i.triggerRef),a=(0,E.createElement)(rB.button,(0,r_.Z)({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":sF(i.open)},r,{ref:s,onClick:rC(e.onClick,i.onOpenToggle)}));return i.hasCustomAnchor?a:(0,E.createElement)(o0,(0,r_.Z)({asChild:!0},o),a)}),s$="PopoverPortal",[sD,sO]=sC(s$,{forceMount:void 0}),sB="PopoverContent",sL=(0,E.forwardRef)((e,t)=>{let n=sO(sB,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=sM(sB,e.__scopePopover);return(0,E.createElement)(rW,{present:r||o.open},o.modal?(0,E.createElement)(sR,(0,r_.Z)({},i,{ref:t})):(0,E.createElement)(sz,(0,r_.Z)({},i,{ref:t})))}),sR=(0,E.forwardRef)((e,t)=>{let n=sM(sB,e.__scopePopover),r=(0,E.useRef)(null),i=rI(t,r),o=(0,E.useRef)(!1);return(0,E.useEffect)(()=>{let e=r.current;if(e)return(0,st.Ry)(e)},[]),(0,E.createElement)(s_,{as:rM,allowPinchZoom:!0},(0,E.createElement)(sN,(0,r_.Z)({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:rC(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),o.current||null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:rC(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:rC(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})))}),sz=(0,E.forwardRef)((e,t)=>{let n=sM(sB,e.__scopePopover),r=(0,E.useRef)(!1),i=(0,E.useRef)(!1);return(0,E.createElement)(sN,(0,r_.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;(null===(s=n.triggerRef.current)||void 0===s?void 0:s.contains(a))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}}))}),sN=(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=sM(sB,n),p=sI(n);return iB(),(0,E.createElement)(iF,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o},(0,E.createElement)(rF,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:d,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>h.onOpenChange(!1)},(0,E.createElement)(o3,(0,r_.Z)({"data-state":sF(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 sF(e){return e?"open":"closed"}let sU=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:s=!1}=e,a=sI(t),l=(0,E.useRef)(null),[c,d]=(0,E.useState)(!1),[u=!1,h]=rG({prop:r,defaultProp:i,onChange:o});return(0,E.createElement)(se,a,(0,E.createElement)(sT,{scope:t,contentId:iG(),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))},sH=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=sM(s$,t);return(0,E.createElement)(sD,{scope:t,forceMount:n},(0,E.createElement)(rW,{present:n||o.open},(0,E.createElement)(rV,{asChild:!0,container:i},r)))},sZ=()=>void 0,sV=E.createContext({});function sK({onEvent:e,children:t}){return(0,_.jsx)(sV.Provider,{value:e??sZ,children:t})}function sW(){return E.useContext(sV)??sZ}function sY(e,t){let n=(0,m.jE2)(),r=(0,E.useRef)(!1),i=sW(),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)),()=>
101{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 sG({id:e,children:t,onOpenChange:n,open:r}){let[i,o]=sY(e,n);return(0,_.jsx)(sU,{onOpenChange:o,open:r||i,children:(0,_.jsx)("div",{className:"tlui-popover",children:t})})}function sX({children:e}){return(0,_.jsx)(sA,{asChild:!0,dir:"ltr",children:e})}function sq({side:e,children:t,align:n="center",sideOffset:r=8,alignOffset:i=0}){let o=(0,m.uK4)();return(0,_.jsx)(sH,{container:o,children:(0,_.jsx)(sL,{className:"tlui-popover__content",side:e,sideOffset:r,align:n,alignOffset:i,dir:"ltr",children:t})})}let sQ=(0,E.createContext)({type:"menu",sourceId:"main-menu"});function sJ(){return(0,E.useContext)(sQ)}function s0({type:e,sourceId:t,children:n}){return(0,_.jsx)(sQ.Provider,{value:{type:e,sourceId:t},children:n})}function s1({children:e}){return(0,_.jsx)("span",{className:"tlui-button__label",children:e})}let s2="Dialog",[s8,s3]=rT(s2),[s5,s6]=s8(s2),s4="DialogPortal",[s9,s7]=s8(s4,{forceMount:void 0}),ae="DialogOverlay",at=(0,E.forwardRef)((e,t)=>{let n=s7(ae,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=s6(ae,e.__scopeDialog);return o.modal?(0,E.createElement)(rW,{present:r||o.open},(0,E.createElement)(an,(0,r_.Z)({},i,{ref:t}))):null}),an=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,...r}=e,i=s6(ae,n);return(0,E.createElement)(s_,{as:rM,allowPinchZoom:!0,shards:[i.contentRef]},(0,E.createElement)(rB.div,(0,r_.Z)({"data-state":au(i.open)},r,{ref:t,style:{pointerEvents:"auto",...r.style}})))}),ar="DialogContent",ai=(0,E.forwardRef)((e,t)=>{let n=s7(ar,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=s6(ar,e.__scopeDialog);return(0,E.createElement)(rW,{present:r||o.open},o.modal?(0,E.createElement)(ao,(0,r_.Z)({},i,{ref:t})):(0,E.createElement)(as,(0,r_.Z)({},i,{ref:t})))}),ao=(0,E.forwardRef)((e,t)=>{let n=s6(ar,e.__scopeDialog),r=(0,E.useRef)(null),i=rI(t,n.contentRef,r);return(0,E.useEffect)(()=>{let e=r.current;if(e)return(0,st.Ry)(e)},[]),(0,E.createElement)(aa,(0,r_.Z)({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:rC(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:rC(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:rC(e.onFocusOutside,e=>e.preventDefault())}))}),as=(0,E.forwardRef)((e,t)=>{let n=s6(ar,e.__scopeDialog),r=(0,E.useRef)(!1),i=(0,E.useRef)(!1);return(0,E.createElement)(aa,(0,r_.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;(null===(s=n.triggerRef.current)||void 0===s?void 0:s.contains(a))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}}))}),aa=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,a=s6(ar,n),l=rI(t,(0,E.useRef)(null));return iB(),(0,E.createElement)(E.Fragment,null,(0,E.createElement)(iF,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o},(0,E.createElement)(rF,(0,r_.Z)({role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":au(a.open)},s,{ref:l,onDismiss:()=>a.onOpenChange(!1)}))),!1)}),al="DialogTitle",ac=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,...r}=e,i=s6(al,n);return(0,E.createElement)(rB.h2,(0,r_.Z)({id:i.titleId},r,{ref:t}))}),ad=(0,E.forwardRef)((e,t)=>{let{__scopeDialog:n,...r}=e,i=s6("DialogClose",n);return(0,E.createElement)(rB.button,(0,r_.Z)({type:"button"},r,{ref:t,onClick:rC(e.onClick,()=>i.onOpenChange(!1))}))});function au(e){return e?"open":"closed"}let[ah,ap]=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:ar,titleName:al,docsSlug:"dialog"}),af=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]=rG({prop:r,defaultProp:i,onChange:o});return(0,E.createElement)(s5,{scope:t,triggerRef:a,contentRef:l,contentId:iG(),titleId:iG(),descriptionId:iG(),open:c,onOpenChange:d,onOpenToggle:(0,E.useCallback)(()=>d(e=>!e),[d]),modal:s},n)},ag=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=s6(s4,t);return(0,E.createElement)(s9,{scope:t,forceMount:n},E.Children.map(r,e=>(0,E.createElement)(rW,{present:n||o.open},(0,E.createElement)(rV,{asChild:!0,container:i},e))))};function am({className:e,children:t}){return(0,_.jsx)("div",{className:T("tlui-dialog__header",e),children:t})}function ay({className:e,children:t}){return(0,_.jsx)(ac,{dir:"ltr",className:T("tlui-dialog__header__title",e),children:t})}function ab(){return(0,_.jsx)("div",{className:"tlui-dialog__header__close",children:(0,_.jsx)(ad,{"data-testid":"dialog.close",dir:"ltr",asChild:!0,children:(0,_.jsx)(iA,{type:"icon","aria-label":"Close",onTouchEnd:e=>e.target.click(),children:(0,_.jsx)(iD,{small:!0,icon:"cross-2"})})})})}function ax({className:e,children:t,style:n}){return(0,_.jsx)("div",{className:T("tlui-dialog__body",e),style:n,children:t})}function aw({className:e,children:t}){return(0,_.jsx)("div",{className:T("tlui-dialog__footer",e),children:t})}let av=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=iM(),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;
101let 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)(i$,{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)(i$,{icon:n,small:!!t})]})});function aS(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 ak=(0,m.jas)(function({onClose:e}){let t=(0,m.jE2)().getOnlySelectedShape();return t&&"url"in t.props&&"string"==typeof t.props.url?(0,_.jsx)(aj,{onClose:e,selectedShape:t}):null}),aj=(0,m.jas)(function({onClose:e,selectedShape:t}){let n=(0,m.jE2)(),r=iM(),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=aS(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=aS(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)(am,{children:[(0,_.jsx)(ay,{children:r("edit-link-dialog.title")}),(0,_.jsx)(ab,{})]}),(0,_.jsx)(ax,{children:(0,_.jsxs)("div",{className:"tlui-edit-link-dialog",children:[(0,_.jsx)(av,{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)(aw,{className:"tlui-dialog__footer__actions",children:[(0,_.jsx)(iA,{type:"normal",onClick:u,onTouchEnd:u,children:(0,_.jsx)(s1,{children:r("edit-link-dialog.cancel")})}),h?(0,_.jsx)(iA,{type:"danger",onTouchEnd:c,onClick:c,children:(0,_.jsx)(s1,{children:r("edit-link-dialog.clear")})}):(0,_.jsx)(iA,{type:"primary",disabled:!s.valid,onTouchEnd:d,onClick:d,children:(0,_.jsx)(s1,{children:r("edit-link-dialog.save")})})]})]})}),a_=(0,m.jas)(function({onClose:e}){let t=(0,m.jE2)(),n=iM(),r=ij(),[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)(am,{children:[(0,_.jsx)(ay,{children:i?`${n("embed-dialog.title")} \u2014 ${i.title}`:n("embed-dialog.title")}),(0,_.jsx)(ab,{})]}),i?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(ax,{className:"tlui-embed-dialog__enter",children:[(0,_.jsx)(av,{className:"tlui-embed-dialog__input",label:"embed-url",placeholder:"http://example.com",autofocus:!0,onValueChange:e=>{a(e);let t=ev(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)(i$,{icon:"external-link",small:!0})]})]}):(0,_.jsx)("div",{className:"tlui-embed-dialog__warning",children:d?n("embed-dialog.invalid-url"):"\xa0"})]}),(0,_.jsxs)(aw,{className:"tlui-dialog__footer__actions",children:[(0,_.jsx)(iA,{type:"normal",onClick:()=>{o(null),c(null),a("")},children:(0,_.jsx)(s1,{children:n("embed-dialog.back")})}),(0,_.jsx)("div",{className:"tlui-embed__spacer"}),(0,_.jsx)(iA,{type:"normal",onClick:e,children:(0,_.jsx)(s1,{children:n("embed-dialog.cancel")})}),(0,_.jsx)(iA,{type:"primary",disabled:!l,onClick:()=>{l&&(t.putExternalContent({type:"embed",url:s,point:t.getViewportPageCenter(),embed:l.definition}),e())},children:(0,_.jsx)(s1,{children:n("embed-dialog.create")})})]})]}):(0,_.jsx)(_.Fragment,{children:(0,_.jsx)(ax,{className:"tlui-embed-dialog__list",children:m.Lu5.map(e=>(0,_.jsxs)(iA,{type:"menu",onClick:()=>o(e),children:[(0,_.jsx)(s1,{children:e.title}),(0,_.jsx)("div",{className:"tlui-embed-dialog__item__image",style:{backgroundImage:`url(${r.embedIcons[e.type]})`}})]},e.type))})})]})});var aE=n(36954);async function aC(e,t,n){let{elements:r,files:i}=t,o={shapes:[],rootShapeIds:[],assets:[],schema:e.store.schema.seri
101alize()},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:aP(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=aO[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:aI[e.strokeWidth]??"draw",color:aA[s]??"black",text:t,align:i,dash:aL(e),fill:aR(e)}});break}case"freedraw":o.shapes.push({...n,type:"draw",props:{dash:aL(e),size:aI[e.strokeWidth],color:aA[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:aL(e),size:aI[e.strokeWidth],color:aA[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:aL(e),size:aI[e.strokeWidth]??"m",color:aA[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:aB[e.endArrowhead]??"none",arrowheadStart:aB[e.startArrowhead]??"none"}});break}case"text":{let{size:t,scale:r}=function(e){let t=aT[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:aM[e.fontFamily]??"draw",color:aA[e.strokeColor]??"black",text:e.text,align:aO[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 aP=e=>{let t=e/100;return t<.2?.1:t<.4?.25:t<.6?.5:t<.8?.75:1},aI={1:"s",2:"m",3:"l",4:"xl"},aT={16:"s",20:"m",28:"l",36:"xl"},aM={1:"draw",2:"sans",3:"mono"}
101,aA={"#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"},a$={solid:"draw",dashed:"dashed",dotted:"dotted"},aD={"cross-hatch":"pattern",hachure:"pattern",solid:"solid"},aO={left:"start",center:"middle",right:"end"},aB={arrow:"arrow",dot:"dot",triangle:"triangle",bar:"pipe"},aL=e=>{let t=a$[e.strokeStyle]??"draw";return"draw"===t&&0===e.roughness&&(t="solid"),t},aR=e=>"transparent"===e.backgroundColor?"none":aD[e.fillStyle]??"solid";async function az(e,t,n,r){let i=(await Promise.all(t.map(async e=>await (await fetch(e)).blob()))).map(e=>new File([e],"tldrawFile",{type:e.type}));e.mark("paste"),await e.putExternalContent({type:"files",files:i,point:n,ignoreParent:!1,sources:r}),t.forEach(e=>URL.revokeObjectURL(e))}async function aN(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"),az(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 aF=e=>{try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch(e){return!1}},aU=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)},aH=e=>/^<svg/.test(e),aZ=["input","select","textarea"];function aV(e){let{activeElement:t}=document;return e.getIsMenuOpen()||t&&(t.getAttribute("contenteditable")||aZ.indexOf(t.tagName.toLowerCase())>-1)}async function aK(e){return new Promise((t,n)=>{let r=new FileReader;r.addEventListener("loadend",()=>{t(r.result)}),r.addEventListener("error",()=>{n(r.error)}),r.readAsText(e)})}let aW=e=>e.types.find(e=>e.match(/^image\//)),aY=(e,t,n,r)=>{let i=aU(t);if(i)for(let t of i)aN(e,t,n);else aF(t)?aN(e,t,n):aH(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}))},aG=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))})}aq(e,r,n)},aX=async(e,t,n)=>{let r=[];for(let e of t){if(aW(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=>aK(e).then(t)))}),e.types.includes("text/uri-list")&&r.push({type:"url",source:new Promise(t=>e.getType("text/uri-list").then(e=>aK(e).then(t)))}),e.types.includes("text/plain")&&r.push({type:"text",source:new Promise(t=>e.getType("text/plain").then(e=>aK(e).then(t)))})}return await aq(e,r,n)};async function aq(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))).filter(Boolean).map(e=>URL.createObjectURL(e));return await az(e,t,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,aE.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
101s.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){aC(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").querySelector("body");if(r&&1===Array.from(r.children).filter(e=>1===e.nodeType).length&&r.firstElementChild&&"A"===r.firstElementChild.tagName&&r.firstElementChild.hasAttribute("href")&&""!==r.firstElementChild.getAttribute("href")){aY(e,r.firstElementChild.getAttribute("href"),n,i);return}if(!i.some(e=>"text"===e.type&&"html"!==e.subtype)&&t.data.trim()){aY(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){aN(e,t.data,n,i);return}for(let t of i)if("text"===t.type&&"text"===t.subtype&&t.data.trim()){aY(e,t.data,n,i);return}}let aQ=e=>{let t=e.getContentFromCurrentPage(e.getSelectedShapeIds());if(!t){navigator&&navigator.clipboard&&navigator.clipboard.writeText("");return}let n=(0,aE.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 aJ(){let e=(0,m.jE2)(),t=sW(),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()||aV(e)||(aQ(e),t("copy",{source:"kbd"}))};function i(){0===e.getSelectedShapeIds().length||null!==e.getEditingShapeId()||aV(e)||(aQ(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()||aV(e)||(n.clipboardData&&!e.inputs.shiftKey?aG(e,n.clipboardData):navigator.clipboard.read().then(t=>{Array.isArray(t)&&t[0]instanceof ClipboardItem&&aX(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 a0(e,t,n){let{type:r,quality:i,scale:o}=n,s=+e.getAttribute("width"),a=+e.getAttribute("height"),[l,c]=await ey(s*o,a*o);l=Math.floor(l),c=Math.floor(c);let d=l/s,u=await a1(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 a1(e){let t=e.cloneNode(!0);e.setAttribute("width",+e.getAttribute("width")+""),e.setAttribute("height",+e.getAttribute("height")+"");let n=new FileReader;for(let e of Array.from(t.querySelectorAll("image"))){let t=e.getAttribute("xlink:href");if(t&&!t.startsWith("data:")){let r=await (await fetch(t)).blob(),i=await new Promise((e,t)=>
101{n.onload=()=>e(n.result),n.onerror=()=>t(n.error),n.readAsDataURL(r)});e.setAttribute("xlink:href",i)}}return new XMLSerializer().serializeToString(t).replaceAll("&#10;      ","").replaceAll(/((\s|")[0-9]*\.[0-9]{2})([0-9]*)(\b|"|\))/g,"$1")}async function a2(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 a8(e,t,n,r={}){switch(n){case"svg":return a1(await a2(e,t,r));case"json":return JSON.stringify(e.getContentFromCurrentPage(t));default:(0,m.iP4)(n)}}async function a3({editor:e,ids:t,format:n,opts:r={}}){switch(n){case"svg":return new Blob([await a8(e,t,"svg",r)],{type:"text/plain"});case"json":return new Blob([await a8(e,t,"json",r)],{type:"text/plain"});case"jpeg":case"png":case"webp":{let i=await a0(await a2(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 a5={jpeg:"image/jpeg",png:"image/png",webp:"image/webp",json:"text/plain",svg:"text/plain"};async function a6(e){await navigator.clipboard?.writeText?.(await e())}let a4=(0,E.createContext)({});function a9({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)(a4.Provider,{value:{toasts:t,addToast:r,removeToast:i,clearToasts:o},children:e})}function a7(){let e=(0,E.useContext)(a4);if(!e)throw Error("useToasts must be used within a ToastsProvider");return e}async function le(e,t,n="png",r,i={}){if(!r&&(r=`shapes at ${lt()}`,1===t.length)){let n=e.getShape(t[0]);r=e.isShapeOfType(n,"frame")?n.props.name??"frame":`${n.id.replace(/:/,"_")} at ${lt()}`}r+=`.${n}`;let o=await a3({editor:e,ids:t,format:n,opts:i});!function(e){let t=document.createElement("a"),n=URL.createObjectURL(e);t.href=n,t.download=e.name,t.click(),URL.revokeObjectURL(n)}(new File([o],r,{type:o.type}))}function lt(){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 ln(){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 lr=(0,E.createContext)({});function li({children:e}){let t=(0,m.jE2)(),n=sW(),[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)(lr.Provider,{value:{dialogs:r,addDialog:o,removeDialog:a,clearDialogs:l,updateDialog:s},children:e})}function lo(){let e=(0,E.useContext)(lr);if(!e)throw Error("useDialogs must be used within a DialogsProvider");return e}let ls=E.createContext({});function la(e,t){if(0===e.getSelectedShapes().length)return e.getDocumentSettings().name||t}function ll({overrides:e,children:t}){let n=(0,m.jE2)(),{addDialog:r,clearDialogs:i}=lo(),{clearToasts:o}=a7(),s=iM(),a=ln(),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=`
102			.${s} {
103				display: none;
104			}
105
106			.${s} svg {
107				max-width: 100%;
108				height: 100%;
109				display: block;
110			}
111
112			@media print {				  
113				html, body {
114					min-height: 100%;
115					height: 100%;
116					margin: 0;
117				}
118
119				body {
120					position: relative;
121				}
122
123				body > * {
124					display: none;
125				}
126
127				.tldraw__editor {
128					display: none;
129				}
130
131				.${s} {
132					display: block !important;
133					background: white;
134					min-height: 100%;
135					height: 100%;
136					max-width: 100%;
137				}
138
139				.${s}__item {
140					padding: 10mm;
141					display: flex;
142					min-height: 100%;
143					flex-direction: column;
144					page-break-after: always;
145					position: relative;
146					overflow: hidden;
147					height: 100%;
148				}
149
150				.${s}__item__main {
151					flex: 1;
152					display: flex;
153					align-items: center;
154					justify-content: center;
155					max-height: 100%;
156				}
157
158				.${s}__item__header {
159					display: none;
160				}
161
162				.${s}__item__footer {
163					display: none;
164					text-align: right;
165				}
166
167				.${s}__item__footer__hide {
168					display: none;
169				}
170
171				
172			}
173
174		`;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">
175        <div class="${s}__item__header">
176          ${e.replace(/</g,"&lt;").replace(/>/g,"&gt;")}
177        </div>
178        <div class="${s}__item__main">
179          ${n.outerHTML}
180        </div>
181        <div class="${s}__item__footer ${s}__item__footer__${t?"":"hide"}">
182          ${t??""}
183        </div>
184      </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=sW(),n=(0,E.useCallback)(function(n){0!==e.getSelectedShapeIds().length&&(aQ(e),t("copy",{source:n}))},[e,t]),r=(0,E.useCallback)(function(n){0!==e.getSelectedShapeIds().length&&(aQ(e),e.deleteShapes(e.getSelectedShapeIds()),t("cut",{source:n}))},[e,t]),i=(0,E.useCallback)(async function(n,r,o){null!==e.getEditingShapeId()||aV(e)||(Array.isArray(n)&&n[0]instanceof ClipboardItem?(aX(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}=a7(),n=iM();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:a3({editor:e,ids:t,format:n,opts:r}),mimeType:a5[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 a6(async()=>a8(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}=a7(),n=iM();return(0,E.useCallback)((r,i="png",o)=>{le(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=sW(),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=Object.fromEntries([{id:"edit-link",label:"action.edit-link",icon:"link",onSelect(e){y()&&(t()||(g("edit-link",{source:e}),n.mark("edit-link"),r({component:ak})))}},{id:"insert-embed",label:"action.insert-embed",kbd:"$i",onSelect(e){g("insert-embed",{source:e}),r({component:a_})}},{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",la(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",la(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",la(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",la(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",la(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",la(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}
184),!(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=ev(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")))}}
184,{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}
184),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})}}].map(e=>[e.id,e]));return e?e(n,b,void 0):b},[n,g,e,r,a,p,h,c,d,u,i,o,l,s,f]);return(0,_.jsx)(ls.Provider,{value:y,children:t})}function lc(){let e=E.useContext(ls);if(!e)throw Error("useTools must be used within a ToolProvider");return e}function ld(e,t){return e?"string"==typeof e?e:t?e[t]??e.default:void 0:void 0}let lu=(0,E.createContext)(void 0);function lh(e){let t=(0,E.useContext)(lu);return e||t||"ltr"}let lp="rovingFocusGroup.onEntryFocus",lf={bubbles:!1,cancelable:!0},lg="RovingFocusGroup",[lm,ly,lb]=rO(lg),[lx,lw]=rT(lg,[lb]),[lv,lS]=lx(lg),lk=(0,E.forwardRef)((e,t)=>(0,E.createElement)(lm.Provider,{scope:e.__scopeRovingFocusGroup},(0,E.createElement)(lm.Slot,{scope:e.__scopeRovingFocusGroup},(0,E.createElement)(lj,(0,r_.Z)({},e,{ref:t}))))),lj=(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=rI(t,u),p=lh(o),[f=null,g]=rG({prop:s,defaultProp:a,onChange:l}),[m,y]=(0,E.useState)(!1),b=rR(c),x=ly(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(lp,b),()=>e.removeEventListener(lp,b)},[b]),(0,E.createElement)(lv,{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)(rB.div,(0,r_.Z)({tabIndex:m||0===v?-1:0,"data-orientation":r},d,{ref:h,style:{outline:"none",...e.style},onMouseDown:rC(e.onMouseDown,()=>{w.current=!0}),onFocus:rC(e.onFocus,e=>{let t=!w.current;if(e.target===e.currentTarget&&t&&!m){let t=new CustomEvent(lp,lf);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>
184e.focusable);lC([e.find(e=>e.active),e.find(e=>e.id===f),...e].filter(Boolean).map(e=>e.ref.current))}}w.current=!1}),onBlur:rC(e.onBlur,()=>y(!1))})))}),l_=(0,E.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,...s}=e,a=iG(),l=o||a,c=lS("RovingFocusGroupItem",n),d=c.currentTabStopId===l,u=ly(n),{onFocusableItemAdd:h,onFocusableItemRemove:p}=c;return(0,E.useEffect)(()=>{if(r)return h(),()=>p()},[r,h,p]),(0,E.createElement)(lm.ItemSlot,{scope:n,id:l,focusable:r,active:i},(0,E.createElement)(rB.span,(0,r_.Z)({tabIndex:d?0:-1,"data-orientation":c.orientation},s,{ref:t,onMouseDown:rC(e.onMouseDown,e=>{r?c.onItemFocus(l):e.preventDefault()}),onFocus:rC(e.onFocus,()=>c.onItemFocus(l)),onKeyDown:rC(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 lE[i]}(e,c.orientation,c.dir);if(void 0!==t){e.preventDefault();let i=u().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)i.reverse();else if("prev"===t||"next"===t){var n,r;"prev"===t&&i.reverse();let o=i.indexOf(e.currentTarget);i=c.loop?(n=i,r=o+1,n.map((e,t)=>n[(r+t)%n.length])):i.slice(o+1)}setTimeout(()=>lC(i))}})})))}),lE={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function lC(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}let lP=["Enter"," "],lI=["ArrowUp","PageDown","End"],lT=["ArrowDown","PageUp","Home",...lI],lM={ltr:[...lP,"ArrowRight"],rtl:[...lP,"ArrowLeft"]},lA={ltr:["ArrowLeft"],rtl:["ArrowRight"]},l$="Menu",[lD,lO,lB]=rO(l$),[lL,lR]=rT(l$,[lB,oq,lw]),lz=oq(),lN=lw(),[lF,lU]=lL(l$),[lH,lZ]=lL(l$),lV=(0,E.forwardRef)((e,t)=>{let{__scopeMenu:n,...r}=e,i=lz(n);return(0,E.createElement)(o0,(0,r_.Z)({},i,r,{ref:t}))}),lK="MenuPortal",[lW,lY]=lL(lK,{forceMount:void 0}),lG="MenuContent",[lX,lq]=lL(lG),lQ=(0,E.forwardRef)((e,t)=>{let n=lY(lG,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=lU(lG,e.__scopeMenu),s=lZ(lG,e.__scopeMenu);return(0,E.createElement)(lD.Provider,{scope:e.__scopeMenu},(0,E.createElement)(rW,{present:r||o.open},(0,E.createElement)(lD.Slot,{scope:e.__scopeMenu},s.modal?(0,E.createElement)(lJ,(0,r_.Z)({},i,{ref:t})):(0,E.createElement)(l0,(0,r_.Z)({},i,{ref:t})))))}),lJ=(0,E.forwardRef)((e,t)=>{let n=lU(lG,e.__scopeMenu),r=(0,E.useRef)(null),i=rI(t,r);return(0,E.useEffect)(()=>{let e=r.current;if(e)return(0,st.Ry)(e)},[]),(0,E.createElement)(l1,(0,r_.Z)({},e,{ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:rC(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)}))}),l0=(0,E.forwardRef)((e,t)=>{let n=lU(lG,e.__scopeMenu);return(0,E.createElement)(l1,(0,r_.Z)({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)}))}),l1=(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=lU(lG,n),y=lZ(lG,n),b=lz(n),x=lN(n),w=lO(n),[v,S]=(0,E.useState)(null),k=(0,E.useRef)(null),j=rI(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?s_:E.Fragment,$=f?{as:rM,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=function(e,t,n){var r;let i=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,o=(r=Math.max(n?e.indexOf(n):-1,0),e.map((t,n)=>e[(r+n)%e.length]));1===i.length&&(o=o.filter(e=>e!==n));let s=o.find(e=>e.toLowerCase().startsWith(i.toLowerCase()));return s!==n?s:void 0}(i.map(e=>e.textValue),r,s),l=null===(n=i.find(e=>e.textValue===a))||void 0===n?void 0:n.ref.current;!function e(t){C.current=t,window.clearTimeout(_.current),""!==t&&(_.current=window.setTimeout(()=>e(""),1e3))}(r),l&&setTimeout(()=>l.focus())};(0,E.useEffect)(()=>()=>window.clearTimeout(_.current),[]),iB();let O=(0,E.useCallback)(e=>{var t,n,r;return T.current===(null===(t=I.current)||void 0===t?void 0:t.side)&&!!(r=null===(n=I.current)||void 0===n?void 0:n.area)&&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;a>r!=c>r&&n<(l-s)*(r-a)/(c-a)+s&&(i=!i)}return i}({x:e.clientX,y:e.clientY},r)},[]);return(0,E.createElement)(lX,{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)(iF,{asChild:!0,trapped:i,onMountAutoFocus:rC(o,e=>{var t;e.preventDefault(),null===(t=k.current)||void 0===t||t.focus()}),onUnmountAutoFocus:s},(0,E.createElement)(rF,{asChild:!0,disableOutsidePointerEvents:a,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:h,onDismiss:p},(0,E.createElement)(lk,(0,r_.Z)({asChild:!0},x,{dir:y.dir,orientation:"vertical",loop:r,currentTabStopId:v,onCurrentTabStopIdChange:S,onEntryFocus:rC(l,e=>{y.isUsingKeyboardRef.current||e.preventDefault()})}),(0,E.createElement)(o3,(0,r_.Z)({role:"menu","aria-orientation":"vertical","data-state":cc(m.open),"data-radix-menu-content":"",dir:y.dir},b,g,{ref:j,style:{outline:"none",...g.style},onKeyDown:rC(g.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=1===e.ke
184y.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&r&&D(e.key));let i=k.current;if(e.target!==i||!lT.includes(e.key))return;e.preventDefault();let o=w().filter(e=>!e.disabled).map(e=>e.ref.current);lI.includes(e.key)&&o.reverse(),function(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}(o)}),onBlur:rC(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(_.current),C.current="")}),onPointerMove:rC(e.onPointerMove,ch(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}}))})))))))}),l2=(0,E.forwardRef)((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,E.createElement)(rB.div,(0,r_.Z)({role:"group"},r,{ref:t}))}),l8=((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,E.createElement)(rB.div,(0,r_.Z)({},r,{ref:t}))},"MenuItem"),l3="menu.itemSelect",l5=(0,E.forwardRef)((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,o=(0,E.useRef)(null),s=lZ(l8,e.__scopeMenu),a=lq(l8,e.__scopeMenu),l=rI(t,o),c=(0,E.useRef)(!1);return(0,E.createElement)(l6,(0,r_.Z)({},i,{ref:l,disabled:n,onClick:rC(e.onClick,()=>{let e=o.current;if(!n&&e){let t=new CustomEvent(l3,{bubbles:!0,cancelable:!0});e.addEventListener(l3,e=>null==r?void 0:r(e),{once:!0}),rL(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:rC(e.onPointerUp,e=>{var t;c.current||null===(t=e.currentTarget)||void 0===t||t.click()}),onKeyDown:rC(e.onKeyDown,e=>{let t=""!==a.searchRef.current;!n&&(!t||" "!==e.key)&&lP.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})}))}),l6=(0,E.forwardRef)((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,s=lq(l8,n),a=lN(n),l=(0,E.useRef)(null),c=rI(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)(lD.ItemSlot,{scope:n,disabled:r,textValue:null!=i?i:h},(0,E.createElement)(l_,(0,r_.Z)({asChild:!0},a,{focusable:!r}),(0,E.createElement)(rB.div,(0,r_.Z)({role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0},o,{ref:c,onPointerMove:rC(e.onPointerMove,ch(e=>{r?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus())})),onPointerLeave:rC(e.onPointerLeave,ch(e=>s.onItemLeave(e))),onFocus:rC(e.onFocus,()=>u(!0)),onBlur:rC(e.onBlur,()=>u(!1))}))))}),l4=(0,E.forwardRef)((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,E.createElement)(ct,{scope:e.__scopeMenu,checked:n},(0,E.createElement)(l5,(0,r_.Z)({role:"menuitemcheckbox","aria-checked":cd(n)?"mixed":n},i,{ref:t,"data-state":cu(n),onSelect:rC(i.onSelect,()=>null==r?void 0:r(!!cd(n)||!n),{checkForDefaultPrevented:!1})})))}),[l9,l7]=lL("MenuRadioGroup",{value:void 0,onValueChange:()=>{}}),ce=((e,t)=>{let{value:n,onValueChange:r,...i}=e,o=rR(r);return(0,E.createElement)(l9,{scope:e.__scopeMenu,value:n,onValueChange:o},(0,E.createElement)(l2,(0,r_.Z)({},i,{ref:t})))},"MenuItemIndicator"),[ct,cn]=lL(ce,{checked:!1}),cr=((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,o=cn(ce,n);return(0,E.createElement)(rW,{present:r||cd(o.checked)||!0===o.checked},(0,E.createElement)(rB.span,(0,r_.Z)({},i,{ref:t,"data-state":cu(o.checked)})))},"MenuSub"),[ci,co]=lL(cr),cs="MenuSubTrigger",ca=(0,E.forwardRef)((e,t)=>{let n=lU(cs,e.__scopeMenu),r=lZ(cs,e.__scopeMenu),i=co(cs,e.__scopeMenu),o=lq(cs,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)(lV,(0,r_.Z)({asChild:!0},c),(0,E.createElement)(l6,(0,r_.Z)({id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":cc(n.open)},e,{ref:rP(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
184s(),n.open||n.onOpenChange(!0))},onPointerMove:rC(e.onPointerMove,ch(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:rC(e.onPointerLeave,ch(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:rC(e.onKeyDown,t=>{let i=""!==o.searchRef.current;if(!e.disabled&&(!i||" "!==t.key)&&lM[r.dir].includes(t.key)){var s;n.onOpenChange(!0),null===(s=n.content)||void 0===s||s.focus(),t.preventDefault()}})})))}),cl=(0,E.forwardRef)((e,t)=>{let n=lY(lG,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=lU(lG,e.__scopeMenu),s=lZ(lG,e.__scopeMenu),a=co("MenuSubContent",e.__scopeMenu),l=(0,E.useRef)(null),c=rI(t,l);return(0,E.createElement)(lD.Provider,{scope:e.__scopeMenu},(0,E.createElement)(rW,{present:r||o.open},(0,E.createElement)(lD.Slot,{scope:e.__scopeMenu},(0,E.createElement)(l1,(0,r_.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:rC(e.onFocusOutside,e=>{e.target!==a.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:rC(e.onEscapeKeyDown,e=>{s.onClose(),e.preventDefault()}),onKeyDown:rC(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=lA[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 cc(e){return e?"open":"closed"}function cd(e){return"indeterminate"===e}function cu(e){return cd(e)?"indeterminate":e?"checked":"unchecked"}function ch(e){return t=>"mouse"===t.pointerType?e(t):void 0}let cp=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:s=!0}=e,a=lz(t),[l,c]=(0,E.useState)(null),d=(0,E.useRef)(!1),u=rR(o),h=lh(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)(se,a,(0,E.createElement)(lF,{scope:t,open:n,onOpenChange:u,content:l,onContentChange:c},(0,E.createElement)(lH,{scope:t,onClose:(0,E.useCallback)(()=>u(!1),[u]),isUsingKeyboardRef:d,dir:h,modal:s},r)))},cf=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=lU(lK,t);return(0,E.createElement)(lW,{scope:t,forceMount:n},(0,E.createElement)(rW,{present:n||o.open},(0,E.createElement)(rV,{asChild:!0,container:i},r)))},cg=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,o=lU(cr,t),s=lz(t),[a,l]=(0,E.useState)(null),[c,d]=(0,E.useState)(null),u=rR(i);return(0,E.useEffect)(()=>(!1===o.open&&u(!1),()=>u(!1)),[o.open,u]),(0,E.createElement)(se,s,(0,E.createElement)(lF,{scope:t,open:r,onOpenChange:u,content:c,onContentChange:d},(0,E.createElement)(ci,{scope:t,contentId:iG(),triggerId:iG(),trigger:a,onTriggerChange:l},n)))},cm="ContextMenu",[cy,cb]=rT(cm,[lR]),cx=lR(),[cw,cv]=cy(cm),cS=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,o=cv("ContextMenuTrigger",n),s=cx(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)(lV,(0,r_.Z)({},s,{virtualRef:l})),(0,E.createElement)(rB.span,(0,r_.Z)({"data-state":o.open?"open":"closed","data-disabled":r?"":void 0},i,{ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:rC(e.onContextMenu,e=>{d(),u(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:rC(e.onPointerDown,cM(e=>{d(),c.current=window.setTimeout(()=>u(e),700)}
184)),onPointerMove:r?e.onPointerMove:rC(e.onPointerMove,cM(d)),onPointerCancel:r?e.onPointerCancel:rC(e.onPointerCancel,cM(d)),onPointerUp:r?e.onPointerUp:rC(e.onPointerUp,cM(d))})))}),ck=e=>{let{__scopeContextMenu:t,...n}=e,r=cx(t);return(0,E.createElement)(cf,(0,r_.Z)({},r,n))},cj=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cv("ContextMenuContent",n),o=cx(n),s=(0,E.useRef)(!1);return(0,E.createElement)(lQ,(0,r_.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)"}}))}),c_=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cx(n);return(0,E.createElement)(l2,(0,r_.Z)({},i,r,{ref:t}))}),cE=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cx(n);return(0,E.createElement)(l5,(0,r_.Z)({},i,r,{ref:t}))}),cC=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cx(n);return(0,E.createElement)(l4,(0,r_.Z)({},i,r,{ref:t}))}),cP=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:o}=e,s=cx(t),[a,l]=rG({prop:i,defaultProp:o,onChange:r});return(0,E.createElement)(cg,(0,r_.Z)({},s,{open:a,onOpenChange:l}),n)},cI=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cx(n);return(0,E.createElement)(ca,(0,r_.Z)({},i,r,{ref:t}))}),cT=(0,E.forwardRef)((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=cx(n);return(0,E.createElement)(cl,(0,r_.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 cM(e){return t=>"mouse"!==t.pointerType?e(t):void 0}let cA=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:o=!0}=e,[s,a]=(0,E.useState)(!1),l=cx(t),c=rR(r),d=(0,E.useCallback)(e=>{a(e),c(e)},[c]);return(0,E.createElement)(cw,{scope:t,open:s,onOpenChange:d,modal:o},(0,E.createElement)(cp,(0,r_.Z)({},l,{dir:i,open:s,onOpenChange:d,modal:o}),n))},c$="undefined"!=typeof window&&window.navigator.userAgent.toLowerCase().indexOf("mac")>-1,cD=c$?"⌘":"Ctrl",cO=c$?"⌥":"Alt";function cB(e){return e.split(",")[0].split("").map(e=>{let t=e.replace(/\$/g,cD).replace(/\?/g,cO).replace(/!/g,"⇧");return t[0].toUpperCase()+t.slice(1)})}function cL(e){return"— "+cB(e).join(" ")}function cR(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:"indefinite"})})]})})}let cz="DropdownMenu",[cN,cF]=rT(cz,[lR]),cU=lR(),[cH,cZ]=cN(cz),cV=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=cZ("DropdownMenuTrigger",n),s=cU(n);return(0,E.createElement)(lV,(0,r_.Z)({asChild:!0},s),(0,E.createElement)(rB.button,(0,r_.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:rP(t,o.triggerRef),onPointerDown:rC(e.onPointerDown,e=>{r||0!==e.button||!1!==e.ctrlKey||(o.onOpenToggle(),o.open||e.preventDefault())}),onKeyDown:rC(e.onKeyDown,e=>
184{!r&&(["Enter"," "].includes(e.key)&&o.onOpenToggle(),"ArrowDown"===e.key&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})))}),cK=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cZ("DropdownMenuContent",n),o=cU(n),s=(0,E.useRef)(!1);return(0,E.createElement)(lQ,(0,r_.Z)({id:i.contentId,"aria-labelledby":i.triggerId},o,r,{ref:t,onCloseAutoFocus:rC(e.onCloseAutoFocus,e=>{var t;s.current||null===(t=i.triggerRef.current)||void 0===t||t.focus(),s.current=!1,e.preventDefault()}),onInteractOutside:rC(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)"}}))}),cW=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cU(n);return(0,E.createElement)(l2,(0,r_.Z)({},i,r,{ref:t}))}),cY=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cU(n);return(0,E.createElement)(l5,(0,r_.Z)({},i,r,{ref:t}))}),cG=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cU(n);return(0,E.createElement)(l4,(0,r_.Z)({},i,r,{ref:t}))}),cX=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cU(n);return(0,E.createElement)(ca,(0,r_.Z)({},i,r,{ref:t}))}),cq=(0,E.forwardRef)((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=cU(n);return(0,E.createElement)(cl,(0,r_.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)"}}))}),cQ=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:s,modal:a=!0}=e,l=cU(t),c=(0,E.useRef)(null),[d=!1,u]=rG({prop:i,defaultProp:o,onChange:s});return(0,E.createElement)(cH,{scope:t,triggerId:iG(),triggerRef:c,contentId:iG(),open:d,onOpenChange:u,onOpenToggle:(0,E.useCallback)(()=>u(e=>!e),[u]),modal:a},(0,E.createElement)(cp,(0,r_.Z)({},l,{open:d,onOpenChange:u,dir:r,modal:a}),n))},cJ=e=>{let{__scopeDropdownMenu:t,...n}=e,r=cU(t);return(0,E.createElement)(cf,(0,r_.Z)({},r,n))},c0=e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:i,defaultOpen:o}=e,s=cU(t),[a=!1,l]=rG({prop:r,defaultProp:o,onChange:i});return(0,E.createElement)(cg,(0,r_.Z)({},s,{open:a,onOpenChange:l}),n)};function c1({id:e,children:t,modal:n=!1,debugOpen:r=!1}){let[i,o]=sY(e);return(0,_.jsx)(cQ,{open:r||i,dir:"ltr",modal:n,onOpenChange:o,children:t})}function c2({children:e,...t}){return(0,_.jsx)(cV,{dir:"ltr",asChild:!0,onTouchEnd:e=>(0,m.PFJ)(e),...t,children:e})}function c8({side:e="bottom",align:t="start",sideOffset:n=8,alignOffset:r=8,children:i}){let o=(0,m.uK4)();return(0,_.jsx)(cJ,{container:o,children:(0,_.jsx)(cK,{className:"tlui-menu",side:e,sideOffset:n,align:t,alignOffset:r,collisionPadding:4,children:i})})}function c3({id:e,children:t}){let[n,r]=sY(e);return(0,_.jsx)(c0,{open:n,onOpenChange:r,children:t})}function c5({id:e,label:t,title:n,disabled:r}){return(0,_.jsx)(cX,{dir:"ltr",asChild:!0,disabled:r,children:(0,_.jsxs)(iA,{"data-testid":e,type:"menu",className:"tlui-menu__submenu__trigger",disabled:r,title:n,children:[(0,_.jsx)(s1,{children:t}),(0,_.jsx)(iD,{icon:"chevron-right",small:!0})]})})}function c6({id:e,alignOffset:t=-1,sideOffset:n=-4,size:r="small",children:i}){let o=(0,m.uK4)();return(0,_.jsx)(cJ,{container:o,children:(0,_.jsx)(cq,{"data-testid":e,className:"tlui-menu tlui-menu__submenu__content",alignOffset:t,sideOffset:n,collisionPadding:4,"data-size":r,children:i})})}function c4({children:e}){return(0,_.jsx)(cW,{dir:"ltr",className:"tlui-menu__group",children:e})}function c9({noClose:e,children:t}){return(0,_.jsx)(cY,{dir:"ltr",asChild:!0,onClick:e?m.PFJ:void 0,children:t})}function c7({children:e,visibleOnMobileLayout:t=!1}){let n=iv();return!t&&n<ib.MOBILE?null:(0,_.jsx)("kbd",{className:"tlui-kbd",children:cB(e).map((e,t)=>(0,_.jsx)("span",{children:e},t))})}function de({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}=sJ(),u=iM(),[h,p]=(0,E.useState)(!1);if(z()&&!n)return null;let f=ld(o,c),g=i?cL(i):void 0,y=f?u(f):void 0,b=y&&g?`${y} ${g}`:y;switch(c){case"menu":return(0,_.jsx)(c9,{children:(0,_.jsxs)(iA,{type:"menu","data-testid":`${d}.${r}`,disabled:e,title:b,onClick:e=>{l&&(0,m.PFJ)(e),h?p(!1):a(d)},children:[(0,_.jsx)(s1,{children:y}
184),i&&(0,_.jsx)(c7,{children:i})]})});case"context-menu":if(e)return null;return(0,_.jsxs)(cE,{dir:"ltr",title:b,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:y}),i&&(0,_.jsx)(c7,{children:i}),t&&(0,_.jsx)(cR,{})]});case"panel":return(0,_.jsxs)(iA,{"data-testid":`${d}.${r}`,type:"menu",title:b,disabled:e,onClick:()=>a(d),children:[(0,_.jsx)(s1,{children:y}),s&&(0,_.jsx)(iD,{icon:s})]});case"small-icons":case"icons":return(0,_.jsx)(iA,{"data-testid":`${d}.${r}`,type:"icon",title:b,disabled:e,onClick:()=>a(d),children:(0,_.jsx)(iD,{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:y}),(0,_.jsx)("div",{className:"tlui-shortcuts-dialog__key-pair__value",children:(0,_.jsx)(c7,{visibleOnMobileLayout:!0,children:i})})]});case"helper-buttons":return(0,_.jsxs)(iA,{type:"low",onClick:()=>a(d),children:[(0,_.jsx)(iD,{icon:s}),(0,_.jsx)(s1,{children:y})]});default:return null}}function dt(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(dn,{}),(0,_.jsx)(dr,{}),(0,_.jsx)(di,{}),(0,_.jsx)(ds,{}),(0,_.jsx)(da,{}),(0,_.jsx)(dd,{}),(0,_.jsx)(du,{}),(0,_.jsx)(dh,{})]})}function dn(){let e=lc(),t=v(2);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(de,{...e["align-left"],disabled:!t}),(0,_.jsx)(de,{...e["align-center-horizontal"],disabled:!t}),(0,_.jsx)(de,{...e["align-right"],disabled:!t}),(0,_.jsx)(de,{...e["stretch-horizontal"],disabled:!t}),(0,_.jsx)(de,{...e["align-top"],disabled:!t}),(0,_.jsx)(de,{...e["align-center-vertical"],disabled:!t}),(0,_.jsx)(de,{...e["align-bottom"],disabled:!t}),(0,_.jsx)(de,{...e["stretch-vertical"],disabled:!t})]})}function dr(){let e=lc(),t=v(3);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(de,{...e["distribute-horizontal"],disabled:!t}),(0,_.jsx)(de,{...e["distribute-vertical"],disabled:!t})]})}function di(){let e=lc(),t=y();return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(de,{...e["stack-horizontal"],disabled:!t}),(0,_.jsx)(de,{...e["stack-vertical"],disabled:!t})]})}function ds(){let e=lc(),t=v(1);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(de,{...e["send-to-back"],disabled:!t}),(0,_.jsx)(de,{...e["send-backward"],disabled:!t}),(0,_.jsx)(de,{...e["bring-forward"],disabled:!t}),(0,_.jsx)(de,{...e["bring-to-front"],disabled:!t})]})}function da(){return iv()<ib.TABLET_SM?(0,_.jsx)(dl,{}):(0,_.jsx)(dc,{})}function dl(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("zoom is 1",()=>1===t.getZoomLevel(),[t]);return(0,_.jsx)(de,{...e["zoom-to-100"],disabled:n})}function dc(){let e=lc(),t=v(1);return(0,_.jsx)(de,{...e["rotate-ccw"],disabled:!t})}function dd(){let e=lc(),t=v(1);return(0,_.jsx)(de,{...e["rotate-cw"],disabled:!t})}function du(){let e=lc(),t=S();return(0,_.jsx)(de,{...e["edit-link"],disabled:!t})}function dh(){let e=b(),t=x();return e?(0,_.jsx)(dp,{}):t?(0,_.jsx)(df,{}):(0,_.jsx)(dp,{})}function dp(){let e=lc(),t=v(2);return(0,_.jsx)(de,{...e.group,disabled:!t})}function df(){let e=lc();return(0,_.jsx)(de,{...e.ungroup})}let dg=(0,E.memo)(function({children:e}){let t=iM(),n=iv(),r=z(),i=(0,m.jE2)(),o=(0,m.HgN)("should display quick actions when in readonly",()=>i.isInAny("hand","zoom"),[i]),s=e??(0,_.jsx)(dt,{});if(!r||o)return(0,_.jsxs)(sG,{id:"actions-menu",children:[(0,_.jsx)(sX,{children:(0,_.jsx)(iA,{type:"icon","data-testid":"actions-menu.button",title:t("actions-menu.title"),children:(0,_.jsx)(iD,{icon:"dots-vertical",small:!0})})}),(0,_.jsx)(sq,{side:n>=ib.TABLET?"bottom":"top",sideOffset:6,children:(0,_.jsx)("div",{className:"tlui-actions-menu tlui-buttons__grid","data-testid":"actions-menu.content",children:(0,_.jsx)(s0,{type:"icons",sourceId:"actions-menu",children:s})})})]})});function dm({id:e,kbd:t,label:n,readonlyOk:r,onSelect:i,disabled:o=!1,checked:s=!1}){let{type:a,sourceId:l}=sJ(),c=z(),d=iM();if(c&&!r)return null;let u=ld(n,a),h=u?d(u):void 0;switch(a){case"menu":return(0,_.jsxs)(cG,{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)(i$,{small:!0,icon:s?"check":"checkbox-empty"}),h&&(0,_.jsx)("span",{className:"tlui-button__label",draggable:!1,
184children:h}),t&&(0,_.jsx)(c7,{children:t})]});case"context-menu":return(0,_.jsxs)(cC,{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)(i$,{small:!0,icon:s?"check":"checkbox-empty"}),h&&(0,_.jsx)("span",{className:"tlui-button__label",draggable:!1,children:h}),t&&(0,_.jsx)(c7,{children:t})]},e);default:return null}}function dy({id:e,label:t,children:n}){let{type:r,sourceId:i}=sJ(),o=iM(),s=ld(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)(c4,{"data-testid":`${i}-group.${e}`,children:n});case"context-menu":return(0,_.jsx)(c_,{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 db({id:e,disabled:t=!1,label:n,size:r="small",children:i}){let{type:o,sourceId:s}=sJ(),a=(0,m.uK4)(),l=iM(),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)(c3,{id:`${s}-sub.${e}`,children:[(0,_.jsx)(c5,{id:`${s}-sub.${d?d.toLowerCase()+"-button":""}`,disabled:t,label:d,title:d}),(0,_.jsx)(c6,{id:`${s}-sub.${d?d.toLowerCase()+"-content":""}`,size:r,children:i})]});case"context-menu":if(t)return null;return(0,_.jsxs)(dx,{id:`${s}-sub.${e}`,children:[(0,_.jsx)(cI,{dir:"ltr",disabled:t,asChild:!0,children:(0,_.jsxs)(iA,{"data-testid":`${s}-sub-trigger.${e}`,type:"menu",className:"tlui-menu__submenu__trigger",children:[(0,_.jsx)(s1,{children:d}),(0,_.jsx)(iD,{icon:"chevron-right",small:!0})]})}),(0,_.jsx)(ck,{container:a,children:(0,_.jsx)(cT,{"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 dx({id:e,children:t}){let[n,r]=sY(e);return(0,_.jsx)(cP,{open:n,onOpenChange:r,children:t})}function dw(){let e=lc(),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)(de,{...e["toggle-auto-size"],disabled:!t})}function dv(){let e=lc(),t=S();return(0,_.jsx)(de,{...e["edit-link"],disabled:!t})}function dS(){let e=lc(),t=v(1);return(0,_.jsx)(de,{...e.duplicate,disabled:!t})}function dk(){let e=lc(),t=b();return(0,_.jsx)(de,{...e.group,disabled:!t})}function dj(){let e=lc(),t=x();return(0,_.jsx)(de,{...e.ungroup,disabled:!t})}function d_(){let e=(0,m.jE2)(),t=lc(),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)(de,{...t["remove-frame"],disabled:!n})}function dE(){let e=(0,m.jE2)(),t=lc(),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)(de,{...t["fit-frame-to-content"],disabled:!n})}function dC(){let e=(0,m.jE2)(),t=lc(),n=(0,m.HgN)("selected shapes",()=>e.getSelectedShapes().length>0,[e]);return(0,_.jsx)(de,{...t["toggle-lock"],disabled:!n})}function dP(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isTransparentBg",()=>!t.getInstanceState().exportBackground,[t]);return(0,_.jsx)(dm,{...e["toggle-transparent"],checked:n})}function dI(){let e=(0,m.jE2)(),t=lc(),n=(0,m.HgN)("any shapes",()=>e.getCurrentPageShapeIds().size>0,[e]);return(0,_.jsx)(de,{...t["unlock-all"],disabled:!n})}function dT(){let e=(0,m.jE2)(),t=(0,m.HgN)("zoomed to 100",()=>1===e.getZoomLevel(),[e]),n=lc();return(0,_.jsx)(de,{...n["zoom-to-100"],noClose:!0,disabled:t})}function dM(){let e=(0,m.jE2)(),t=(0,m.HgN)("has shapes",()=>e.getCurrentPageShapeIds().size>0,[e]),n=lc();return(0,_.jsx)(de,{...n["zoom-to-fit"],disabled:!t,"data-testid":"minimap.zoom-menu.zoom-to-fit",noClose:!0})}function dA(){let e=(0,m.jE2)(),t=(0,m.HgN)("has shapes",()=>e.getSelectedShapeIds().length>0,[e]),n=lc();return(0,_.jsx)(de,{...n["zoom-to-selection"],disabled:!t,"data-testid":"minimap.zoom-menu.zoom-to-selection",noClose:!0})}function d$(){let e=(0,m.jE2)(),t=lc(),n=(0,m.HgN)("atLeastOneShapeOnPage",()=>e.getCurrentPageShapeIds().size>0,[]);return(0,_.jsxs)(dy,{id:"clipboard",children:[(0,_.jsx)(dD,{}),(0,_.jsx)(dO,{}),(0,_.jsxs)(db,{id:"copy-as",label:"context-menu.copy-as",size:"small",disabled:!n,children:[(0,_.jsxs)(dy,{id:"copy-as-group",children:[(0,_.jsx)(de,{...t["copy-as-svg"]}),!!window.navigator.clipboard?.write&&(0,_.jsx)(de,{...t["copy-as-png"]}),(0,_.jsx)(de,{...t["copy-as-json"]})]}),(0,_.jsx)(dy,{id:"copy-as-bg",children:(0,_.jsx)(dP,{})})]}),(0,_.jsx)(dS,{}),(0,_.jsx)(dB,{}),(0,_.jsx)(dz,{})]})}function dD(){let e=lc(),t=v(1);return(0,_.jsx)(de,{...e.cut,disabled:!t})}function dO(){let e=lc(),t=function(e,t){let n=(0,m.jE2)();return(0,m.HgN)("selectedShapes",()=>n.getSelectedShapes().length>=1,[n,1,void 0])}(1);return(0,_.jsx)(de,{...e.copy,disabled:!t})}function dB(){let e=lc();return(0,_.jsx)(de,{...e.paste,disabled:!w})}function dL(){let e=lc(),t=v(1);return(0,_.jsx)(dy,{id:"conversions",children:(0,_.jsxs)(db,{id:"export-as",label:"context-menu.export-as",size:"small",disabled:!t,children:[(0,_.jsxs)(dy,{id:"export-as-group",children:[(0,_.jsx)(de,{...e["export-as-svg"]}),(0,_.jsx)(de,{...e["export-as-png"]}),(0,_.jsx)(de,{...e["export-as-json"]})]}),(0,_.jsx)(dy,{id:"export-as-bg",children:(0,_.jsx)(dP,{})})]})})}function dR(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("atLeastOneShapeOnPage",()=>t.getCurrentPageShapeIds().size>0,[t]);return(0,_.jsx)(dy,{id:"set-selection-group",children:(0,_.jsx)(de,{...e["select-all"],disabled:!n})})}function dz(){let e=lc(),t=v(1);return(0,_.jsx)(de,{...e.delete,disabled:!t})}function dN(){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=lc();return e||t?(0,_.jsxs)(db,{id:"arrange",label:"context-menu.arrange",size:"small",children:[e&&(0,_.jsxs)(dy,{id:"align",children:[(0,_.jsx)(de,{...n["align-left"]}),(0,_.jsx)(de,{...n["align-center-horizontal"]}),(0,_.jsx)(de,{...n["align-right"]}),(0,_.jsx)(de,{...n["align-top"]}),(0,_.jsx)(de,{...n["align-center-vertical"]}),(0,_.jsx)(de,{...n["align-bottom"]})]}),(0,_.jsx)(dF,{}),e&&(0,_.jsxs)(dy,{id:"stretch",children:[(0,_.jsx)(de,{...n["stretch-horizontal"]}
184),(0,_.jsx)(de,{...n["stretch-vertical"]})]}),t&&(0,_.jsxs)(dy,{id:"flip",children:[(0,_.jsx)(de,{...n["flip-horizontal"]}),(0,_.jsx)(de,{...n["flip-vertical"]})]}),(0,_.jsx)(dU,{})]}):null}function dF(){let e=lc();return v(3)?(0,_.jsxs)(dy,{id:"distribute",children:[(0,_.jsx)(de,{...e["distribute-horizontal"]}),(0,_.jsx)(de,{...e["distribute-vertical"]})]}):null}function dU(){let e=lc(),t=v(2),n=y();return t?(0,_.jsxs)(dy,{id:"order",children:[(0,_.jsx)(de,{...e.pack}),n&&(0,_.jsx)(de,{...e["stack-horizontal"]}),n&&(0,_.jsx)(de,{...e["stack-vertical"]})]}):null}function dH(){let e=lc();return v(1)?(0,_.jsx)(db,{id:"reorder",label:"context-menu.reorder",size:"small",children:(0,_.jsxs)(dy,{id:"reorder",children:[(0,_.jsx)(de,{...e["bring-to-front"]}),(0,_.jsx)(de,{...e["bring-forward"]}),(0,_.jsx)(de,{...e["send-backward"]}),(0,_.jsx)(de,{...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}=a7(),i=lc(),o=sW();return v(1)?(0,_.jsxs)(db,{id:"move-to-page",label:"context-menu.move-to-page",size:"small",children:[(0,_.jsx)(dy,{id:"pages",children:t.map(t=>(0,_.jsx)(de,{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)(dy,{id:"new-page",children:(0,_.jsx)(de,{...i["new-page"]})})]}):null}function dV(){let e=(0,m.jE2)(),t=lc(),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&&ev(t.props.url)&&!e.isShapeOrAncestorLocked(t))},[e]);return(0,_.jsxs)(dy,{id:"embeds",children:[(0,_.jsx)(de,{...t["convert-to-bookmark"],disabled:!n}),(0,_.jsx)(de,{...t["convert-to-embed"],disabled:!r})]})}function dK(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isSnapMode",()=>t.user.getIsSnapMode(),[t]);return(0,_.jsx)(dm,{...e["toggle-snap-mode"],checked:n})}function dW(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isToolLock",()=>t.getInstanceState().isToolLocked,[t]);return(0,_.jsx)(dm,{...e["toggle-tool-lock"],checked:n})}function dY(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isGridMode",()=>t.getInstanceState().isGridMode,[t]);return(0,_.jsx)(dm,{...e["toggle-grid"],checked:n})}function dG(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isWrapMode",()=>t.user.getIsWrapMode(),[t]);return(0,_.jsx)(dm,{...e["toggle-wrap-mode"],checked:n})}function dX(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isDarkMode",()=>t.user.getIsDarkMode(),[t]);return(0,_.jsx)(dm,{...e["toggle-dark-mode"],checked:n})}function dq(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isFocusMode",()=>t.getInstanceState().isFocusMode,[t]);return(0,_.jsx)(dm,{...e["toggle-focus-mode"],checked:n})}function dQ(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("edgeScrollSpeed",()=>t.user.getEdgeScrollSpeed(),[t]);return(0,_.jsx)(dm,{...e["toggle-edge-scrolling"],checked:1===n})}function dJ(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("animationSpeed",()=>t.user.getAnimationSpeed(),[t]);return(0,_.jsx)(dm,{...e["toggle-reduce-motion"],checked:0===n})}function d0(){let e=lc(),t=(0,m.jE2)(),n=(0,m.HgN)("isDebugMode",()=>t.getInstanceState().isDebugMode,[t]);return(0,_.jsx)(dm,{...e["toggle-debug-mode"],checked:n})}function d1(){let e=(0,m.jE2)();return(0,m.HgN)("isSelectToolActive",()=>"select"===e.getCurrentToolId(),[e])?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(dy,{id:"selection",children:[(0,_.jsx)(dw,{}),(0,_.jsx)(dv,{}),(0,_.jsx)(dk,{}),(0,_.jsx)(dj,{}),(0,_.jsx)(d_,{}),(0,_.jsx)(dE,{}),(0,_.jsx)(dC,{})]}),(0,_.jsx)(dV,{}),(0,_.jsxs)(dy,{id:"modify",children:[(0,_.jsx)(dN,{}),(0,_.jsx)(dH,{}),(0,_.jsx)(dZ,{})]}),(0,_.jsx)(d$,{}),(0,_.jsx)(dL,{}),(0,_.jsx)(dR,{})]}):null}let d2=(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]=sY("context menu",r),a=e??(0,_.jsx)(d1,{});return(0,_.jsxs)(cA,{dir:"ltr",onOpenChange:s,modal:!1,children:[(0,_.jsx)(cS,{onContextMenu:void 0,dir:"ltr",children:n?(0,_.jsx)(n,{}):null}),o&&(0,_.jsx)(ck,{container:i,children:(0,_.jsx)(cj,{className:"tlui-menu scrollable","data-testid":"context-menu",alignOffset:-4,collisionPadding:4,onContextMenu:m.PFJ,children:(0,_.jsx)(s0,{type:"context-menu",sourceId:"context-menu",children:a})})})]})});function d8({checked:e}){return(0,_.jsx)(i$,{icon:e?"check":"checkbox-empty",className:"tlui-button__icon",small:!0})}function d3(){let e=(0,m.jE2)(),{addToast:t}=a7(),{addDialog:n}=lo(),[r,i]=E.useState(!1);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(dy,{id:"items",children:[(0,_.jsx)(de,{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)(de,{id:"show-dialog",label:"Show dialog",onSelect:()=>{n({component:({onClose:e})=>(0,_.jsx)(d4,{displayDontShowAgain:!0,onCancel:()=>e(),onContinue:()=>e()}),onClose:()=>{}})}}),(0,_.jsx)(de,{id:"create-shapes",label:"Create 100 shapes",onSelect:()=>(function(e,t){let n=Array(100),r=Math.floor(Math.sqrt(100));for(let e=0;e<t;e++)d7++,n[e]={id:(0,m.F17)("box"+d7),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)(de,{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)(de,{id:"throw-error",onSelect:()=>i(!0),label:"Throw error"}),(0,_.jsx)(de,{id:"hard-reset",onSelect:m.WlM,label:"Hard reset"})]}),(0,_.jsxs)(dy,{id:"flags",children:[(0,_.jsx)(d5,{}),(0,_.jsx)(d6,{})]})]})}function d5(){let e=Object.values(m.hR1);return e.length?(0,_.jsx)(db,{id:"debug flags",label:"Debug Flags",children:(0,_.jsx)(dy,{id:"debug flags",children:e.map(e=>(0,_.jsx)(d9,{flag:e},e.name))})}):null}function d6(){let e=Object.values(m.VHO);return e.length?(0,_.jsx)(db,{id:"feature flags",label:"Feature Flags",children:(0,_.jsx)(dy,{id:"feature flags",children:e.map(e=>(0,_.jsx)(d9,{flag:e},e.name))})}):null}function d4({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)(am,{children:[(0,_.jsx)(ay,{children:e}),(0,_.jsx)(ab,{})]}),(0,_.jsx)(ax,{style:{maxWidth:350},children:t}),(0,_.jsxs)(aw,{className:"tlui-dialog__footer__actions",children:[i&&(0,_.jsxs)(iA,{type:"normal",onClick:()=>l(!a),style:{marginRight:"auto"},children:[(0,_.jsx)(d8,{checked:a}),(0,_.jsx)(s1,{children:"Don't show again"})]}),(0,_.jsx)(iA,{type:"normal",onClick:o,children:(0,_.jsx)(s1,{children:n})}),(0,_.jsx)(iA,{type:"primary",onClick:async()=>s(),children:(0,_.jsx)(s1,{children:r})})]})]})}
184let d9=(0,m.jas)(function({flag:e,onChange:t}){let n=e.get();return(0,_.jsx)(dm,{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)}})}),d7=0;function ue({children:e}){let t=e??(0,_.jsx)(d3,{});return(0,_.jsxs)(c1,{id:"debug",children:[(0,_.jsx)(c2,{children:(0,_.jsx)(iA,{type:"icon",title:"Debug menu",children:(0,_.jsx)(iD,{icon:"dots-horizontal"})})}),(0,_.jsx)(c8,{side:"top",align:"end",alignOffset:0,children:(0,_.jsx)(s0,{type:"menu",sourceId:"debug-panel",children:t})})]})}let ut=(0,m.jas)(function(){let e=(0,m.jE2)(),t=sW(),{languages:n,currentLanguage:r}=function(){let e=(0,m.jE2)();return{languages:m.a2c,currentLanguage:e.user.getLocale()}}();return(0,_.jsx)(db,{id:"help menu language",label:"menu.language",children:(0,_.jsx)(dy,{id:"languages",children:n.map(({locale:n,label:i})=>(0,_.jsx)(dm,{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 un(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(ut,{}),(0,_.jsx)(ur,{})]})}function ur(){let{KeyboardShortcutsDialog:e}=h7(),{addDialog:t}=lo();return e?(0,_.jsx)(de,{id:"keyboard-shortcuts-button",label:"help-menu.keyboard-shortcuts",readonlyOk:!0,onSelect:()=>{t({component:e})}}):null}let ui=(0,E.memo)(function({children:e}){let t=iM(),n=iv(),r=e??(0,_.jsx)(un,{});return n<ib.MOBILE?null:(0,_.jsx)("div",{className:"tlui-help-menu",children:(0,_.jsxs)(c1,{id:"help menu",children:[(0,_.jsx)(c2,{children:(0,_.jsx)(iA,{type:"help",title:t("help-menu.title"),"data-testid":"help-menu.button",children:(0,_.jsx)(iD,{icon:"question-mark",small:!0})})}),(0,_.jsx)(c8,{side:"top",align:"end",alignOffset:0,sideOffset:8,children:(0,_.jsx)(s0,{type:"menu",sourceId:"help-menu",children:r})})]})})});function uo(){let e=(0,m.jE2)(),t=lc(),[n,r]=(0,E.useState)(!1);return((0,E.useEffect)(()=>{let t=!1,n=setInterval(()=>{let n=e.getRenderingShapes(),i=e.getRenderingBounds(),o=0===n.filter(e=>e.maskedPageBounds&&i.includes(e.maskedPageBounds)).length&&e.getCurrentPageShapes().length>0;t!==o&&(r(o),t=o)},1e3);return()=>{clearInterval(n)}},[e]),n)?(0,_.jsx)(de,{...t["back-to-content"],onSelect:()=>{t["back-to-content"].onSelect("helper-buttons"),r(!1)}}):null}function us(){let e=(0,m.jE2)(),t=lc();return(0,m.HgN)("is pen mode",()=>e.getInstanceState().isPenMode,[e])?(0,_.jsx)(de,{...t["exit-pen-mode"]}):null}function ua(){let e=(0,m.jE2)(),t=lc();return(0,m.HgN)("is following user",()=>!!e.getInstanceState().followingUserId,[e])?(0,_.jsx)(de,{...t["stop-following"]}):null}function ul(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(us,{}),(0,_.jsx)(uo,{}),(0,_.jsx)(ua,{})]})}function uc({children:e}){let t=e??(0,_.jsx)(ul,{});return(0,_.jsx)("div",{className:"tlui-helper-buttons",children:(0,_.jsx)(s0,{type:"helper-buttons",sourceId:"helper-buttons",children:t})})}let ud=E.createContext({});function uu({overrides:e,children:t}){let n=(0,m.jE2)(),r=sW(),{addDialog:i}=lo(),o=ln(),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:a_}),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)(ud.Provider,{value:s,children:t})}function uh(){let e=E.useContext(ud);if(!e)throw Error("useTools must be used within a ToolProvider");return e}function up(){let e=lc(),t=uh();return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(dy,{label:"shortcuts-dialog.tools",id:"tools",children:[(0,_.jsx)(de,{...e["toggle-tool-lock"]}),(0,_.jsx)(de,{...t.select}),(0,_.jsx)(de,{...t.draw}),(0,_.jsx)(de,{...t.eraser}),(0,_.jsx)(de,{...t.hand}),(0,_.jsx)(de,{...t.rectangle}),(0,_.jsx)(de,{...t.ellipse}),(0,_.jsx)(de,{...t.arrow}),(0,_.jsx)(de,{...t.line}),(0,_.jsx)(de,{...t.text}),(0,_.jsx)(de,{...t.frame}
184),(0,_.jsx)(de,{...t.note}),(0,_.jsx)(de,{...t.laser})]}),(0,_.jsxs)(dy,{label:"shortcuts-dialog.file",id:"file",children:[(0,_.jsx)(de,{...e["insert-media"]}),(0,_.jsx)(de,{...e.print})]}),(0,_.jsxs)(dy,{label:"shortcuts-dialog.preferences",id:"preferences",children:[(0,_.jsx)(de,{...e["toggle-dark-mode"]}),(0,_.jsx)(de,{...e["toggle-focus-mode"]}),(0,_.jsx)(de,{...e["toggle-grid"]})]}),(0,_.jsxs)(dy,{label:"shortcuts-dialog.edit",id:"edit",children:[(0,_.jsx)(de,{...e.undo}),(0,_.jsx)(de,{...e.redo}),(0,_.jsx)(de,{...e.cut}),(0,_.jsx)(de,{...e.copy}),(0,_.jsx)(de,{...e.paste}),(0,_.jsx)(de,{...e["select-all"]}),(0,_.jsx)(de,{...e.delete}),(0,_.jsx)(de,{...e.duplicate})]}),(0,_.jsxs)(dy,{label:"shortcuts-dialog.view",id:"view",children:[(0,_.jsx)(de,{...e["zoom-in"]}),(0,_.jsx)(de,{...e["zoom-out"]}),(0,_.jsx)(de,{...e["zoom-to-100"]}),(0,_.jsx)(de,{...e["zoom-to-fit"]}),(0,_.jsx)(de,{...e["zoom-to-selection"]})]}),(0,_.jsxs)(dy,{label:"shortcuts-dialog.transform",id:"transform",children:[(0,_.jsx)(de,{...e["bring-to-front"]}),(0,_.jsx)(de,{...e["bring-forward"]}),(0,_.jsx)(de,{...e["send-backward"]}),(0,_.jsx)(de,{...e["send-to-back"]}),(0,_.jsx)(de,{...e.group}),(0,_.jsx)(de,{...e.ungroup}),(0,_.jsx)(de,{...e["flip-horizontal"]}),(0,_.jsx)(de,{...e["flip-vertical"]}),(0,_.jsx)(de,{...e["align-top"]}),(0,_.jsx)(de,{...e["align-center-vertical"]}),(0,_.jsx)(de,{...e["align-bottom"]}),(0,_.jsx)(de,{...e["align-left"]}),(0,_.jsx)(de,{...e["align-center-horizontal"]}),(0,_.jsx)(de,{...e["align-right"]})]})]})}let uf=(0,E.memo)(function({children:e}){let t=iM(),n=iv(),r=e??(0,_.jsx)(up,{});return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(am,{className:"tlui-shortcuts-dialog__header",children:[(0,_.jsx)(ay,{children:t("shortcuts-dialog.title")}),(0,_.jsx)(ab,{})]}),(0,_.jsx)(ax,{className:T("tlui-shortcuts-dialog__body",{"tlui-shortcuts-dialog__body__mobile":n<=ib.MOBILE_XS,"tlui-shortcuts-dialog__body__tablet":n<=ib.TABLET}),children:(0,_.jsx)(s0,{type:"keyboard-shortcuts",sourceId:"kbd",children:r})}),(0,_.jsx)("div",{className:"tlui-dialog__scrim"})]})});function ug(){return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(um,{}),(0,_.jsx)(uy,{}),(0,_.jsx)(uS,{}),(0,_.jsx)(uk,{}),(0,_.jsx)(uj,{})]})}function um(){let e=(0,m.jE2)(),t=(0,m.HgN)("isSelectToolActive",()=>"select"===e.getCurrentToolId(),[e]);return(0,_.jsxs)(db,{id:"edit",label:"menu.edit",disabled:!t,children:[(0,_.jsx)(uv,{}),(0,_.jsx)(d$,{}),(0,_.jsx)(dR,{})]})}function uy(){let e=(0,m.jE2)(),t=(0,m.HgN)("isSelectToolActive",()=>"select"===e.getCurrentToolId(),[e]);return(0,_.jsxs)(db,{id:"shape",label:"menu.shape",disabled:!t,children:[(0,_.jsx)(dL,{}),(0,_.jsx)(uw,{}),(0,_.jsx)(ub,{}),(0,_.jsx)(dV,{}),(0,_.jsx)(ux,{})]})}function ub(){return(0,_.jsxs)(dy,{id:"misc",children:[(0,_.jsx)(dw,{}),(0,_.jsx)(dv,{})]})}function ux(){return(0,_.jsxs)(dy,{id:"lock",children:[(0,_.jsx)(dC,{}),(0,_.jsx)(dI,{})]})}function uw(){return(0,_.jsxs)(dy,{id:"multi-shape",children:[(0,_.jsx)(dk,{}),(0,_.jsx)(dj,{}),(0,_.jsx)(d_,{}),(0,_.jsx)(dE,{})]})}function uv(){let e=lc(),t=j(),n=k();return(0,_.jsxs)(dy,{id:"undo-redo",children:[(0,_.jsx)(de,{...e.undo,disabled:!t}),(0,_.jsx)(de,{...e.redo,disabled:!n})]})}function uS(){let e=lc();return(0,_.jsx)(db,{id:"view",label:"menu.view",children:(0,_.jsxs)(dy,{id:"view-actions",children:[(0,_.jsx)(de,{...e["zoom-in"]}),(0,_.jsx)(de,{...e["zoom-out"]}),(0,_.jsx)(dT,{}),(0,_.jsx)(dM,{}),(0,_.jsx)(dA,{})]})})}function uk(){let e=lc();return(0,_.jsxs)(dy,{id:"extras",children:[(0,_.jsx)(de,{...e["insert-embed"]}),(0,_.jsx)(de,{...e["insert-media"]})]})}function uj(){return(0,_.jsx)(dy,{id:"preferences",children:(0,_.jsxs)(db,{id:"preferences",label:"menu.preferences",children:[(0,_.jsxs)(dy,{id:"preferences-actions",children:[(0,_.jsx)(dK,{}),(0,_.jsx)(dW,{}),(0,_.jsx)(dY,{}),(0,_.jsx)(dG,{}),(0,_.jsx)(dX,{}),(0,_.jsx)(dq,{}),(0,_.jsx)(dQ,{}),(0,_.jsx)(dJ,{}),(0,_.jsx)(d0,{})]}),(0,_.jsx)(dy,{id:"language",children:(0,_.jsx)(ut,{})})]})})}let u_=(0,E.memo)(function({children:e}){let t=(0,m.uK4)(),[n,r]=sY("main menu"),i=iM(),o=e??(0,_.jsx)(ug,{});return(0,_.jsxs)(cQ,{dir:"ltr",open:n,onOpenChange:r,modal:!1,children:[(0,_.jsx)(cV,{asChild:!0,dir:"ltr",children:(0,_.jsx)(iA,{type:"icon","data-testid":"main-menu.button",title:i("menu.title"),children:(0,_.jsx)(iD,{icon:"menu",small:!0})})}),(0,_.jsx)(cJ,{container:t,children:(0,_.jsx)(cK,{className:"tlui-menu",side:"bottom",align:"start",collisionPadding:4,alignOffset:0,sideOffset:6,children:(0,_.jsx)(s0,{type:"menu",sourceId:"main-menu",children:o})})})]})}),uE=(0,E.memo)(function(){let e=iv(),{MainMenu:t,QuickActions:n,ActionsMenu:r,PageMenu:i}=h7();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 uC{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;
184contentPageBounds=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;return{x:(e-n.minX)*this.dpr,y:(t-n.minY)*this.dpr}};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;Math.abs(s-e.x)>Math.abs(a-e.y)?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],uC.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{minX:e,minY:t,width:n,height:i}=m.xuv.Common(r);p.strokeStyle="green",p.lineWidth=2/f,p.strokeRect(e+1/f,t+1/g,n-2/f,i-2/g)}{let{brush:e}=i.getInstanceState();if(e){let{x:t,y:n,w:r,h:i}=e;p.beginPath(),uC.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;uC.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 uP(){let e=(0,m.jE2)(),t=E.useRef(null),n=E.useRef(!1),r=(0,m.Gv6)(),i=(0,m.vc
184d)("dpr",()=>e.getInstanceState().devicePixelRatio,[e]),o=E.useMemo(()=>e.store.query.records("instance_presence"),[e]),s=E.useMemo(()=>new uC(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 uI=(0,E.memo)(function(){let e=lc(),t=iM(),n=iv(),[r,i]=function(e,t){let[n,r]=E.useState(t);return 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]),[n,E.useCallback(t=>{r(n=>{let r="function"==typeof t?t(n):t;return localStorage.setItem(e,JSON.stringify(r)),r})},[e])]}("minimap",!0),o=(0,E.useCallback)(()=>{i(e=>!e)},[i]),{ZoomMenu:s,Minimap:a}=h7();return n<ib.MOBILE?null:(0,_.jsxs)("div",{className:"tlui-navigation-panel",children:[(0,_.jsx)("div",{className:"tlui-buttons__horizontal",children:s&&n<ib.TABLET?(0,_.jsx)(s,{}):r?(0,_.jsxs)(_.Fragment,{children:[s&&(0,_.jsx)(s,{}),a&&(0,_.jsx)(iA,{type:"icon","data-testid":"minimap.toggle-button",title:t("navigation-zone.toggle-minimap"),className:"tlui-navigation-panel__toggle",onClick:o,children:(0,_.jsx)(iD,{icon:r?"chevrons-ne":"chevrons-sw"})})]}):(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(iA,{type:"icon","data-testid":"minimap.zoom-out",title:`${t(ld(e["zoom-out"].label))} ${cL(e["zoom-out"].kbd)}`,onClick:()=>e["zoom-out"].onSelect("navigation-zone"),children:(0,_.jsx)(iD,{icon:"minus"})}),s&&(0,_.jsx)(s,{}),(0,_.jsx)(iA,{type:"icon","data-testid":"minimap.zoom-in",title:`${t(ld(e["zoom-in"].label))} ${cL(e["zoom-in"].kbd)}`,onClick:()=>e["zoom-in"].onSelect("navigation-zone"),children:(0,_.jsx)(iD,{icon:"plus"})}),a&&(0,_.jsx)(iA,{type:"icon","data-testid":"minimap.toggle-button",title:t("navigation-zone.toggle-minima
184p"),className:"tlui-navigation-panel__toggle",onClick:o,children:(0,_.jsx)(iD,{icon:r?"chevrons-ne":"chevrons-sw"})})]})}),a&&n>=ib.TABLET&&!r&&(0,_.jsx)(a,{})]})}),uT=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)(av,{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})},uM=(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}))},uA=(0,m.jas)(function({index:e,listSize:t,item:n,onRename:r}){let i=(0,m.jE2)(),o=iM(),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)(()=>{uM(i,n.id,e,e-1)},[i,n,e]),c=(0,E.useCallback)(()=>{uM(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)(c1,{id:`page item submenu ${e}`,children:[(0,_.jsx)(c2,{children:(0,_.jsx)(iA,{type:"icon",title:o("page-menu.submenu.title"),children:(0,_.jsx)(iD,{icon:"dots-vertical"})})}),(0,_.jsx)(c8,{alignOffset:0,side:"right",sideOffset:-4,children:(0,_.jsxs)(s0,{type:"menu",sourceId:"page-menu",children:[(0,_.jsxs)(dy,{id:"modify",children:[r&&(0,_.jsx)(de,{id:"rename",label:"page-menu.submenu.rename",onSelect:r}),(0,_.jsx)(de,{id:"duplicate",label:"page-menu.submenu.duplicate-page",onSelect:a,disabled:s.length>=m.Etb}),e>0&&(0,_.jsx)(de,{id:"move-up",onSelect:l,label:"page-menu.submenu.move-up"}),e<t-1&&(0,_.jsx)(de,{id:"move-down",label:"page-menu.submenu.move-down",onSelect:c}
184)]}),t>1&&(0,_.jsx)(dy,{id:"delete",children:(0,_.jsx)(de,{id:"delete",onSelect:d,label:"page-menu.submenu.delete"})})]})})]})}),u$=(0,E.memo)(function(){let e=(0,m.jE2)(),t=iM(),n=iv(),[r,i]=sY("page-menu",(0,E.useCallback)(()=>p(!1),[])),o=(0,E.useRef)(null),s=(0,m.HgN)("pages",()=>e.getPages(),[e]),a=(0,m.HgN)("currentPage",()=>e.getCurrentPage(),[e]),l=(0,m.HgN)("currentPageId",()=>e.getCurrentPageId(),[e]),c=z(),d=(0,m.HgN)("maxPageCountReached",()=>e.getPages().length>=m.Etb,[e]),u=(0,m.HgN)("isCoarsePointer",()=>e.getInstanceState().isCoarsePointer,[e]),[h,p]=(0,E.useState)(!1),f=(0,E.useCallback)(()=>{c||p(e=>!e)},[c]),g=(0,E.useRef)({isPointing:!1,status:"idle",pointing:null,startY:0,startIndex:0,dragIndex:0}),[y,b]=(0,E.useState)(Object.fromEntries(s.map((e,t)=>[e.id,{y:36*t,offsetY:0,isSelected:!1}])));(0,E.useLayoutEffect)(()=>{b(Object.fromEntries(s.map((e,t)=>[e.id,{y:36*t,offsetY:0,isSelected:!1}])))},[36,s]),(0,E.useEffect)(()=>{r&&requestAnimationFrame(()=>{let e=document.querySelector(`[data-testid="page-menu-item-${l}"]`);if(e){let t=o.current;if(!t)return;let n=e.offsetTop;n<t.scrollTop&&t.scrollTo({top:n});let r=n+36;r>t.scrollTop+t.offsetHeight&&t.scrollTo({top:r-t.offsetHeight})}})},[36,l,r]);let x=(0,E.useCallback)(e=>{let{clientY:t,currentTarget:n}=e,{dataset:{id:r,index:i}}=n;if(!r||!i)return;let o=g.current;(0,m.I5b)(e.currentTarget,e),o.status="pointing",o.pointing={id:r,index:+i};let a=y[r].y;o.startY=t,o.startIndex=Math.max(0,Math.min(Math.round(a/36),s.length-1))},[36,s.length,y]),w=(0,E.useCallback)(e=>{let t=g.current;if("pointing"===t.status){let{clientY:n}=e;Math.abs(n-t.startY)>5&&(t.status="dragging")}if("dragging"===t.status){let{clientY:n}=e,r=n-t.startY,i=y[t.pointing.id],{startIndex:o,pointing:a}=t,l=Math.max(0,Math.min(Math.round((i.y+r)/36),s.length-1)),c={...y};if(c[a.id]={y:i.y,offsetY:r,isSelected:!0},l!==t.dragIndex){t.dragIndex=l;for(let e=0;e<s.length;e++){let n=s[e];if(n.id===t.pointing.id)continue;let{y:r}=c[n.id];l===o?r=36*e:l<o?r=l<=e&&e<o?(e+1)*36:36*e:l>o&&(r=l>=e&&e>o?(e-1)*36:36*e),r!==c[n.id].y&&(c[n.id]={y:r,offsetY:0,isSelected:!0})}}b(c)}},[36,s,y]),v=(0,E.useCallback)(t=>{let n=g.current;if("dragging"===n.status){let{id:t,index:r}=n.pointing;uM(e,t,r,n.dragIndex)}(0,m.XEs)(t.currentTarget,t),n.status="idle"},[e]),S=(0,E.useCallback)(e=>{let t=g.current;"Escape"===e.key&&("dragging"===t.status&&b(Object.fromEntries(s.map((e,t)=>[e.id,{y:36*t,offsetY:0,isSelected:!1}]))),t.status="idle")},[36,s]),k=(0,E.useCallback)(()=>{c||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),p(!0)})},[e,t,c]);return(0,_.jsxs)(sG,{id:"pages",onOpenChange:i,open:r,children:[(0,_.jsx)(sX,{"data-testid":"main.page-menu",children:(0,_.jsxs)(iA,{type:"menu",title:a.name,"data-testid":"page-menu.button",className:"tlui-page-menu__trigger",children:[(0,_.jsx)("div",{className:"tlui-page-menu__name",children:a.name}),(0,_.jsx)(iD,{icon:"chevron-down",small:!0})]})}),(0,_.jsx)(sq,{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")}),!c&&(0,_.jsxs)("div",{className:"tlui-buttons__horizontal",children:[(0,_.jsx)(iA,{type:"icon","data-testid":"page-menu.edit",title:t(h?"page-menu.edit-done":"page-menu.edit-start"),onClick:f,children:(0,_.jsx)(iD,{icon:h?"check":"edit"})}),(0,_.jsx)(iA,{type:"icon","data-testid":"page-menu.create",title:t(d?"page-menu.max-page-count-reached":"page-menu.create-new-page"),disabled:d,onClick:k,children:(0,_.jsx)(iD,{icon:"plus"})})]})]}),(0,_.jsx)("div",{"data-testid":"page-menu.list",className:"tlui-page-menu__list tlui-menu__group",style:{height:36*s.length+4},ref:o,children:s.map((r,i)=>{let o=y[r.id]??{position:40*i,offsetY:0};return h?(0,_.jsxs)("div",{"data-testid":"page-menu.item",className:"tlui-page_menu__item__sortable",style:{zIndex:r.id===a.id?888:i,transform:`translate(0px, ${o.y+o.offsetY}px)`}
184,children:[(0,_.jsx)(iA,{type:"icon",tabIndex:-1,className:"tlui-page_menu__item__sortable__handle",onPointerDown:x,onPointerUp:v,onPointerMove:w,onKeyDown:S,"data-id":r.id,"data-index":i,children:(0,_.jsx)(iD,{icon:"drag-handle-dots"})}),n<ib.TABLET_SM&&u?(0,_.jsxs)(iA,{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:f,children:[(0,_.jsx)(d8,{checked:r.id===a.id}),(0,_.jsx)(s1,{children:r.name})]}):(0,_.jsx)("div",{className:"tlui-page_menu__item__sortable__title",style:{height:36},children:(0,_.jsx)(uT,{id:r.id,name:r.name,isCurrentPage:r.id===a.id})}),!c&&(0,_.jsx)("div",{className:"tlui-page_menu__item__submenu","data-isediting":h,children:(0,_.jsx)(uA,{index:i,item:r,listSize:s.length})})]},r.id+"_editing"):(0,_.jsxs)("div",{"data-testid":"page-menu.item",className:"tlui-page-menu__item",children:[(0,_.jsxs)(iA,{type:"normal",className:"tlui-page-menu__item__button",onClick:()=>e.setCurrentPage(r.id),onDoubleClick:f,title:t("page-menu.go-to-page"),children:[(0,_.jsx)(d8,{checked:r.id===a.id}),(0,_.jsx)(s1,{children:r.name})]}),!c&&(0,_.jsx)("div",{className:"tlui-page_menu__item__submenu",children:(0,_.jsx)(uA,{index:i,item:r,listSize:s.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(()=>{p(!0),e.setCurrentPage(r.id)})}})})]},r.id)})})]})})]})});function uD(){let e=lc(),t=(0,m.jE2)(),n=j(),r=k(),i=v(1),o=z(),s=(0,m.HgN)("should display quick actions",()=>t.isInAny("select","hand","zoom"),[t]);if(!o||s)return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(de,{...e.undo,disabled:!n}),(0,_.jsx)(de,{...e.redo,disabled:!r}),(0,_.jsx)(de,{...e.delete,disabled:!i}),(0,_.jsx)(de,{...e.duplicate,disabled:!i})]})}let uO=(0,E.memo)(function({children:e}){let t=e??(0,_.jsx)(uD,{});return(0,_.jsx)(s0,{type:"small-icons",sourceId:"quick-actions",children:t})}),uB=Object.freeze([m.R_W,m.ciG,m.pp9,m.ST$]);function uL(e=uB){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;
184if(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 uR={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"}]},uz=(0,E.memo)(function(e){let{uiType:t,items:n,title:r,style:i,value:o,onValueChange:s}=e,a=(0,m.jE2)(),l=iM(),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)(iA,{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)(iD,{icon:e.icon})},e.value))})});function uN(e,[t,n]){return Math.min(n,Math.max(t,e))}let uF=["PageUp","PageDown"],uU=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],uH={"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",[uV,uK,uW]=rO(uZ),[uY,uG]=rT(uZ,[uW]),[uX,uq]=uY(uZ),uQ=(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=rI(t,e=>m(e)),b=(0,E.useRef)(new Set),x=(0,E.useRef)(0),w="horizontal"===s,v=!g||!!g.closest("form"),[S=[],k]=rG({prop:d,defaultProp:c,onChange:e=>{var t;null===(t=[...b.current][x.current])||void 0===t||t.focus(),u(e)}}),j=(0,E.useRef)(S);
184function _(e,t,{commit:n}={commit:!1}){let s=(String(o).split(".")[1]||"").length,a=uN(function(e,t){let n=Math.pow(10,t);return Math.round(e*n)/n}(Math.round((e-r)/o)*o+r,s),[r,i]);k((e=[])=>{var r,i;let s=function(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}(e,a,t);if(r=s,!(!((i=l*o)>0)||Math.min(...r.slice(0,-1).map((e,t)=>r[t+1]-e))>=i))return e;{x.current=s.indexOf(a);let t=String(s)!==String(e);return t&&n&&h(s),t?s:e}})}return(0,E.createElement)(uX,{scope:e.__scopeSlider,disabled:a,min:r,max:i,valueIndexToChangeRef:x,thumbs:b.current,values:S,orientation:s},(0,E.createElement)(uV.Provider,{scope:e.__scopeSlider},(0,E.createElement)(uV.Slot,{scope:e.__scopeSlider},(0,E.createElement)(w?u1:u2,(0,r_.Z)({"aria-disabled":a,"data-disabled":a?"":void 0},f,{ref:y,onPointerDown:rC(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));return n.indexOf(Math.min(...n))}(S,e);_(e,t)},onSlideMove:a?void 0:function(e){_(e,x.current)},onSlideEnd:a?void 0:function(){let e=j.current[x.current];S[x.current]!==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=uF.includes(e.key)||e.shiftKey&&uU.includes(e.key),r=x.current;_(S[r]+o*(n?10:1)*t,r,{commit:!0})}}})))),v&&S.map((e,t)=>(0,E.createElement)(he,{key:t,name:n?n+(S.length>1?"[]":""):void 0,value:e})))}),[uJ,u0]=uY(uZ,{startEdge:"left",endEdge:"right",size:"width",direction:1}),u1=(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=rI(t,e=>h(e)),f=(0,E.useRef)(),g=lh(i),m="ltr"===g,y=m&&!o||!m&&o;function b(e){let t=f.current||u.getBoundingClientRect(),i=hn([0,t.width],y?[n,r]:[r,n]);return f.current=t,i(e-t.left)}return(0,E.createElement)(uJ,{scope:e.__scopeSlider,startEdge:y?"left":"right",endEdge:y?"right":"left",direction:y?1:-1,size:"width"},(0,E.createElement)(u8,(0,r_.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=uH[y?"from-left":"from-right"].includes(e.key);null==c||c({event:e,direction:t?-1:1})}})))}),u2=(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=rI(t,d),h=(0,E.useRef)(),p=!i;function f(e){let t=h.current||d.current.getBoundingClientRect(),i=hn([0,t.height],p?[r,n]:[n,r]);return h.current=t,i(e-t.top)}return(0,E.createElement)(uJ,{scope:e.__scopeSlider,startEdge:p?"bottom":"top",endEdge:p?"top":"bottom",size:"height",direction:p?1:-1},(0,E.createElement)(u8,(0,r_.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=uH[p?"from-bottom":"from-top"].includes(e.key);null==l||l({event:e,direction:t?-1:1})}})))}),u8=(0,E.forwardRef)((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:s,onEndKeyDown:a,onStepKeyDown:l,...c}=e,d=uq(uZ,n);return(0,E.createElement)(rB.span,(0,r_.Z)({},c,{ref:t,onKeyDown:rC(e.onKeyDown,e=>{"Home"===e.key?(s(e),e.preventDefault()):"End"===e.key?(a(e),e.preventDefault()):uF.concat(uU).includes(e.key)&&(l(e),e.preventDefault())}),onPointerDown:rC(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),d.thumbs.has(t)?t.focus():r(e)}),onPointerMove:rC(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:rC(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),o(e))})}))}),u3=(0,E.forwardRef)((e,t)=>{let{__scopeSlider:n,...r}=e,i=uq("SliderTrack",n);return(0,E.createElement)(rB.span,(0,r_.Z)({"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation},r,{ref:t}))}),u5="SliderRange",u6=(0,E.forwardRef)((e,t)=>{let{__scopeSlider:n,...r}=e,i=uq(u5,n),o=u0(u5,n),s=rI(t,(0,E.useRef)(null)),a=i.values.length,l=i.values.map(e=>ht(e,i.min,i.max));return(0,E.createElement)(rB.span,(0,r_.Z)({"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0},r,{ref:s,style:{...e.style,[o.startEdge]:(a>1?Math.min(...l):0)+"%",[o.endEdge]:100-Math.max(...l)+"%"}}))}),u4="SliderThumb",u9=(0,E.forwardRef)((e,t)=>{let n=uK(e.__scopeSlider),[r,i]=(0,E.useState)(null),o=rI(t,e=>i(e)),s=(0,E.useMemo)(()=>r?n().findIndex(e=>e.ref.current===r):-1,[n,r]);return(0,E.createElement)(u7,(0,r_.Z)({},e,{ref:o,index:s}))}),u7=(0,E.forwardRef)((e,t)=>{var n;let{__scopeSlider:r,index:i,...o}=e,s=uq(u4,r),a=u0(u4,r),[l,c]=(0,E.useState)(null),d=rI(t,e=>c(e)),u=oY(l),h=s.values[i],p=void 0===h?0:ht(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=hn([0,50],[0,r]);return(r-i(t)*n)*n}(g,p,a.direction):0;return(0,E.useEffect)(()=>
184{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)(uV.ItemSlot,{scope:e.__scopeSlider},(0,E.createElement)(rB.span,(0,r_.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:rC(e.onFocus,()=>{s.valueIndexToChangeRef.current=i})}))))}),he=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=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(i!==t&&n){let r=new Event("input",{bubbles:!0});n.call(e,t),e.dispatchEvent(r)}},[i,t]),(0,E.createElement)("input",(0,r_.Z)({style:{display:"none"}},n,{ref:r,defaultValue:t}))};function ht(e,t,n){return uN(100/(n-t)*(e-t),[0,100])}function hn(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 hr=(0,E.memo)(function(e){let{title:t,steps:n,value:r,label:i,onValueChange:o}=e,s=(0,m.jE2)(),a=iM(),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)(uQ,{"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)(u3,{className:"tlui-slider__track",dir:"ltr",children:null!==r&&(0,_.jsx)(u6,{className:"tlui-slider__range",dir:"ltr"})}),null!==r&&(0,_.jsx)(u9,{className:"tlui-slider__thumb",dir:"ltr"})]})})}),hi=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=iM(),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)(c1,{id:`style panel ${t} A`,children:[(0,_.jsx)(c2,{children:(0,_.jsx)(iA,{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)(iD,{icon:p,small:!0,invertIcon:!0})})}),(0,_.jsx)(c8,{side:"bottom",align:"end",sideOffset:0,alignOffset:-2,children:(0,_.jsx)("div",{className:"tlui-buttons__grid",children:o.map((e,n)=>(0,_.jsx)(c9,{"data-testid":`style.${t}.${e.value}`,children:(0,_.jsx)(iA,{type:"icon",onClick:()=>u(a,e.value,!1),title:`${h(r)} \u2014 ${h(`${t}-style.${e.value}`)}`,children:(0,_.jsx)(iD,{icon:e.icon,invertIcon:!0})},e.value)},n))})})]}),(0,_.jsxs)(c1,{id:`style panel ${n}`,children:[(0,_.jsx)(c2,{children:(0,_.jsx)(iA,{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)(iD,{icon:f,small:!0})})}),(0,_.jsx)(c8,{side:"bottom",align:"end",sideOffset:0,alignOffset:-2,children:(0,_.jsx)("div",{className:"tlui-buttons__grid",children:s.map(e=>(0,_.jsx)(c9,{children:(0,_.jsx)(iA,{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)(iD,{icon:e.icon})})},e.value))})})]})]})]})}),ho=E.memo(function({id:e,label:t,uiType:n,style:r,items:i,type:o,value:s,onValueChange:a}){let l=iM(),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)(c1,{id:`style panel ${e}`,children:[(0,_.jsx)(c2,{children:(0,_.jsxs)(iA,{type:o,"data-testid":`style.${n}`,title:u,children:[(0,_.jsx)(s1,{children:h}),(0,_.jsx)(iD,{icon:d??"mixed"})]})}),(0,_.jsx)(c8,{side:"left",align:"center",alignOffset:0,children:(0,_.jsx)("div",{className:"tlui-buttons__grid",children:i.map(e=>(0,_.jsx)(c9,{children:(0,_.jsx)(iA,{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)(iD,{icon:e.icon})})},e.value))})})]})});function hs({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)(hl,{styles:e}),void 0!==o&&(0,_.jsx)(hc,{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)(hd,{styles:e}),(0,_.jsx)(hh,{styles:e}),(0,_.jsx)(hu,{styles:e})]})]})}function ha(){let e=(0,m.jE2)(),t=sW();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 hl({styles:e}){let t=iM(),n=ha(),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,
184className:"tlui-style-panel__section__common","aria-label":"style panel styles","data-testid":"style.panel",children:[void 0===r?null:(0,_.jsx)(uz,{title:t("style-panel.color"),uiType:"color",style:m.R_W,items:uR.color,value:r,onValueChange:n}),(0,_.jsx)(hf,{})]}),(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)(uz,{title:t("style-panel.fill"),uiType:"fill",style:m.pp9,items:uR.fill,value:i,onValueChange:n}),void 0===o?null:(0,_.jsx)(uz,{title:t("style-panel.dash"),uiType:"dash",style:m.ciG,items:uR.dash,value:o,onValueChange:n}),void 0===s?null:(0,_.jsx)(uz,{title:t("style-panel.size"),uiType:"size",style:m.ST$,items:uR.size,value:s,onValueChange:n})]})]})}function hc({styles:e}){let t=iM(),n=ha(),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)(uz,{title:t("style-panel.font"),uiType:"font",style:m.Y8S,items:uR.font,value:r,onValueChange:n}),void 0===i?null:(0,_.jsxs)("div",{className:"tlui-style-panel__row",children:[(0,_.jsx)(uz,{title:t("style-panel.align"),uiType:"align",style:m.XoM,items:uR.horizontalAlign,value:i,onValueChange:n}),(0,_.jsx)("div",{className:"tlui-style-panel__row__extra-button",children:void 0===o?(0,_.jsx)(iA,{type:"icon",title:t("style-panel.vertical-align"),"data-testid":"vertical-align",disabled:!0,children:(0,_.jsx)(iD,{icon:"vertical-align-center"})}):(0,_.jsx)(ho,{type:"icon",id:"geo-vertical-alignment",uiType:"verticalAlign",style:m.HO5,items:uR.verticalAlign,value:o,onValueChange:n})})]})]})}function hd({styles:e}){let t=ha(),n=e.get(m.Zuj);return void 0===n?null:(0,_.jsx)(ho,{id:"geo",type:"menu",label:"style-panel.geo",uiType:"geo",style:m.Zuj,items:uR.geo,value:n,onValueChange:t})}function hu({styles:e}){let t=ha(),n=e.get(m.t88);return void 0===n?null:(0,_.jsx)(ho,{id:"spline",type:"menu",label:"style-panel.spline",uiType:"spline",style:m.t88,items:uR.spline,value:n,onValueChange:t})}function hh({styles:e}){let t=ha(),n=e.get(m.ZJj),r=e.get(m.TAC);return n&&r?(0,_.jsx)(hi,{label:"style-panel.arrowheads",uiTypeA:"arrowheadStart",styleA:m.TAC,itemsA:uR.arrowheadStart,valueA:r,uiTypeB:"arrowheadEnd",styleB:m.ZJj,itemsB:uR.arrowheadEnd,valueB:n,onValueChange:t,labelA:"style-panel.arrowhead-start",labelB:"style-panel.arrowhead-end"}):null}let hp=[.1,.25,.5,.75,1];function hf(){let e=(0,m.jE2)(),t=(0,m.HgN)("opacity",()=>e.getSharedOpacity(),[e]),n=sW(),r=iM(),i=E.useCallback((t,r)=>{let i=hp[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:hp.indexOf((0,m.Fa1)(hp,e=>Math.abs(e-t.value)));return(0,_.jsx)(hr,{"data-testid":"style.opacity",value:o>=0?o:hp.length-1,label:"mixed"===t.type?"style-panel.mixed":`opacity-style.${t.value}`,onValueChange:i,steps:hp.length-1,title:r("style-panel.opacity")})}let hg=(0,E.memo)(function({isMobile:e,children:t}){let n=(0,m.jE2)(),r=uL(),i=(0,E.useCallback)(()=>{e||n.updateInstanceState({isChangingStyle:!1},{ephemeral:!0})},[n,e]),o=t??(0,_.jsx)(hs,{styles:r});return(0,_.jsx)("div",{className:T("tlui-style-panel",{"tlui-style-panel__wrapper":!e}),"data-ismobile":e,onPointerLeave:i,children:o})}),hm="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function hy(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r):e.attachEvent&&e.attachEvent("on".concat(t),n)}function hb(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r):e.detachEvent&&e.detachEvent("on".concat(t),n)}function hx(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 hw(e){"string"!=typeof e&&(e="");let t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");for(;n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}let hv={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
184:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":hm?173:189,"=":hm?61:187,";":hm?59:186,"'":222,"[":219,"]":221,"\\":220},hS={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},hk={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},hj={16:!1,18:!1,17:!1,91:!1},h_={};for(let e=1;e<20;e++)hv["f".concat(e)]=111+e;let hE=[],hC=null,hP="all",hI=new Map,hT=e=>hv[e.toLowerCase()]||hS[e.toLowerCase()]||e.toUpperCase().charCodeAt(0),hM=e=>Object.keys(hv).find(t=>hv[t]===e),hA=e=>Object.keys(hS).find(t=>hS[t]===e);function h$(e){hP=e||"all"}function hD(){return hP||"all"}function hO(e){if(void 0===e)Object.keys(h_).forEach(e=>{Array.isArray(h_[e])&&h_[e].forEach(e=>hB(e)),delete h_[e]}),hN(null);else if(Array.isArray(e))e.forEach(e=>{e.key&&hB(e)});else if("object"==typeof e)e.key&&hB(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=""),hB({key:e,scope:i,method:o,splitKey:"+"})}}let hB=e=>{let{key:t,scope:n,method:r,splitKey:i="+"}=e;hw(t).forEach(e=>{let t=e.split(i),o=t.length,s=t[o-1],a="*"===s?"*":hT(s);if(!h_[a])return;n||(n=hD());let l=o>1?hx(hS,t):[],c=[];h_[a]=h_[a].filter(e=>{let t=(!r||e.method===r)&&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 t&&c.push(e.element),!t}),c.forEach(e=>hN(e))})};function hL(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,hj)Object.prototype.hasOwnProperty.call(hj,e)&&(!hj[e]&&t.mods.indexOf(+e)>-1||hj[e]&&-1===t.mods.indexOf(+e))&&(i=!1);(0!==t.mods.length||hj[16]||hj[18]||hj[17]||hj[91])&&!i&&"*"!==t.shortcut||(t.keys=[],t.keys=t.keys.concat(hE),!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0)))}}function hR(e,t){let n=h_["*"],r=e.keyCode||e.which||e.charCode;if(!hz.filter.call(this,e))return;if((93===r||224===r)&&(r=91),-1===hE.indexOf(r)&&229!==r&&hE.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach(t=>{let n=hk[t];e[t]&&-1===hE.indexOf(n)?hE.push(n):!e[t]&&hE.indexOf(n)>-1?hE.splice(hE.indexOf(n),1):"metaKey"===t&&e[t]&&3===hE.length&&!(e.ctrlKey||e.shiftKey||e.altKey)&&(hE=hE.slice(hE.indexOf(n)))}),r in hj){for(let e in hj[r]=!0,hS)hS[e]===r&&(hz[e]=!0);if(!n)return}for(let t in hj)Object.prototype.hasOwnProperty.call(hj,t)&&(hj[t]=e[hk[t]]);e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===hE.indexOf(17)&&hE.push(17),-1===hE.indexOf(18)&&hE.push(18),hj[17]=!0,hj[18]=!0);let i=hD();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)&&hL(e,n[r],i,t);if(!(r in h_))return;let o=h_[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(hT(a[e]));l.sort().join("")===hE.sort().join("")&&hL(e,r,i,t)}}function hz(e,t,n){hE=[];let r=hw(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&&hO(e,o);a<r.length;a++)e=r[a].split(d),i=[],e.length>1&&(i=hx(hS,e)),(e="*"===(e=e[e.length-1])?"*":hT(e))in h_||(h_[e]=[]),h_[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(!hI.has(s)){let e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;return hR(e,s)},t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;hR(e,s),function(e){let t=e.keyCode||e.which||e.charCode,n=hE.indexOf(t);if(n>=0&&hE.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&hE.splice(0,hE.length),(93===t||224===t)&&(t=91),t in hj)for(let e in hj[t]=!1,hS)hS[e]===t&&(hz[e]=!1)}(e)};hI.set(s,{keydownListener:e,keyupListenr:t,capture:u}),hy(s,"keydown",e,u),hy(s,"keyup",t,u)}if(!hC){let e=()=>{hE=[]};hC={listener:e,capture:u}
184,hy(window,"focus",e,u)}}}function hN(e){let t=Object.values(h_).flat();if(0>t.findIndex(t=>{let{element:n}=t;return n===e})){let{keydownListener:t,keyupListenr:n,capture:r}=hI.get(e)||{};t&&n&&(hb(e,"keyup",n,r),hb(e,"keydown",t,r),hI.delete(e))}if((t.length<=0||hI.size<=0)&&(Object.keys(hI).forEach(e=>{let{keydownListener:t,keyupListenr:n,capture:r}=hI.get(e)||{};t&&n&&(hb(e,"keyup",n,r),hb(e,"keydown",t,r),hI.delete(e))}),hI.clear(),Object.keys(h_).forEach(e=>delete h_[e]),hC)){let{listener:e,capture:t}=hC;hb(window,"focus",e,t),hC=null}}let hF={getPressedKeyString:function(){return hE.map(e=>hM(e)||hA(e)||String.fromCharCode(e))},setScope:h$,getScope:hD,deleteScope:function(e,t){let n,r;for(let t in e||(e=hD()),h_)if(Object.prototype.hasOwnProperty.call(h_,t))for(r=0,n=h_[t];r<n.length;)n[r].scope===e?n.splice(r,1).forEach(e=>{let{element:t}=e;return hN(t)}):r++;hD()===e&&h$(t||"all")},getPressedKeyCodes:function(){return hE.slice(0)},getAllKeyCodes:function(){let e=[];return Object.keys(h_).forEach(t=>{h_[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=>hT(e))})})}),e},isPressed:function(e){return"string"==typeof e&&(e=hT(e)),-1!==hE.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(h_).forEach(n=>{h_[n].filter(n=>n.scope===t&&n.shortcut===e).forEach(e=>{e&&e.method&&e.method()})})},unbind:hO,keyMap:hv,modifier:hS,modifierMap:hk};for(let e in hF)Object.prototype.hasOwnProperty.call(hF,e)&&(hz[e]=hF[e]);if("undefined"!=typeof window){let e=window.hotkeys;hz.noConflict=t=>(t&&window.hotkeys===hz&&(window.hotkeys=e),hz),window.hotkeys=hz}let hU=["copy","cut","paste","asset"];function hH(){let e=(0,m.jE2)(),t=z(),n=lc(),r=uh(),i=(0,m.HgN)("is focused",()=>e.getInstanceState().isFocused,[e]),{itemsInPanel:o}=h8();(0,E.useEffect)(()=>{var o;if(!i)return;let s=e.getContainer();hz.setScope(e.store.id);let a=(t,n)=>{hz(t,{element:document.body,scope:e.store.id},n)};for(let r of Object.values(n))r.kbd&&(!t||r.readonlyOk)&&(hU.includes(r.id)||a(hZ(r.kbd),t=>{hV(e)||((0,m.PFJ)(t),r.onSelect("kbd"))}));for(let t of Object.values(r))t.kbd&&(t.readonlyOk||!e.getInstanceState().isReadonly)&&(hU.includes(t.id)||a(hZ(t.kbd),n=>{hV(e)||((0,m.PFJ)(n),t.onSelect("kbd"))}));return a(",",t=>{if(hV(e)||e.inputs.keys.has("Comma"))return;(0,m.PFJ)(t),s.focus(),e.inputs.keys.add("Comma");let{x:n,y:r,z:i}=e.inputs.currentScreenPoint,o={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(o)}),o=t=>{if(hV(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)},hz(",",{element:document.body,keyup:!0,keydown:!1,scope:e.store.id},o),()=>{hz.deleteScope(e.store.id)}},[n,r,t,e,i,o])}function hZ(e){return(function(e){"string"!=typeof e&&(e="");let t=(e=e.replace(/\s/g,"")).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 hV(e){return e.getIsMenuOpen()||null!==e.getEditingShapeId()||e.getCrashingError()}function hK(e){return{id:e.id,type:"item",readonlyOk:e.readonlyOk,toolItem:e}}let hW=E.createContext([]);function hY({overrides:e,children:t}){let n=(0,m.jE2)(),r=uh(),i=E.useMemo(()=>{let t=(0,m.oA$)([hK(r.select),hK(r.hand),hK(r.draw),hK(r.eraser),hK(r.arrow),hK(r.text),hK(r.note),hK(r.asset),hK(r.rectangle),hK(r.ellipse),hK(r.diamond),hK(r.triangle),hK(r.trapezoid),hK(r.rhombus),hK(r.hexagon),hK(r.cloud),hK(r.star),hK(r.oval),hK(r["x-box"]),hK(r["check-box"]),hK(r["arrow-left"]),hK(r["arrow-up"]),hK(r["arrow-down"]),hK(r["arrow-right"]),hK(r.line),hK(r.highlight),hK(r.frame),hK(r.laser)]);return e?e(n,t,{tools:r}):t},[n,e,r]);return(0,_.jsx)(hW.Provider,{value:i,children:t})}function hG(){let e=E.useContext(hW);if(!e)throw Error("useToolbarSchema must be used within a ToolbarSchemaProvider");return e}function hX(){let e=(0,m.jE2)(),t=iM(),n=uL(),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}=h7();return l?(0,_.jsxs)(sG,{id:"mobile style menu",onOpenChange:a,children:[(0,_.jsx)(sX,{children:(0,_.jsx)(iA,{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)(iD,{icon:s?"blob":r?.type==="mixed"?"mixed":"blob"})})}),(0,_.jsx)(sq,{side:"top",align:"end",children:l&&(0,_.jsx)(l,{isMobile:!0})})]}):null}let hq=["select","hand","draw","eraser","text","zoom","laser","highlight"];function hQ({activeToolId:e}){let t=(0,m.jE2)(),n=iv(),r=iM(),i=(0,m.HgN)("is tool locked",()=>t.getInstanceState().isToolLocked,[t]);return!e||hq.includes(e)?null:(0,_.jsx)(iA,{type:"normal",title:r("action.toggle-tool-lock"),"data-testid":"tool-lock",className:T("tlui-toolbar__lock-button",{"tlui-toolbar__lock-button__mobile":n<ib.TABLET_SM}),onClick:()=>t.updateInstanceState({isToolLocked:!i}),children:(0,_.jsx)(iD,{icon:i?"lock":"unlock",small:!0})})}let hJ=(0,E.memo)(function(){let e=(0,m.jE2)(),t=iM(),n=iv(),r=E.useRef(void 0),i=z(),o=hG(),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?cL(e.kbd):""}`:"",c=o.find(e=>h2(e.toolItem,s,a)),{itemsInPanel:d,itemsInDropdown:u}=h8(),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++)hz(`${n+1}`.slice(-1),r=>{hV(e)||((0,m.PFJ)(r),t[n].toolItem.onSelect("kbd"))});return()=>{hz.unbind("1,2,3,4,5,6,7,8,9,0")}},[h,e,d]);let{ActionsMenu:p,QuickActions:f}=h7();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<ib.TABLET&&(0,_.jsxs)("div",{className:"tlui-toolbar__extras__controls tlui-buttons__horizontal",children:[f&&(0,_.jsx)(f,{}),p&&(0,_.jsx)(p,{})]}),(0,_.jsx)(hQ,{activeToolId:s})]}),(0,_.jsxs)("div",{className:T("tlui-toolbar__tools",{"tlui-toolbar__tools__mobile":n<ib.TABLET_SM}),children:[d.map(({toolItem:e})=>(0,_.jsx)(h1,{item:e,title:l(e),isSelected:h2(e,s,a)},e.id)),u.length?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(h1,{item:h.toolItem,title:l(h.toolItem),isSelected:h2(h.toolItem,s,a)},h.toolItem.id),(0,_.jsxs)(c1,{id:"toolbar overflow",modal:!1,children:[(0,_.jsx)(c2,{children:(0,_.jsx)(iA,{title:t("tool-panel.more"),type:"tool",className:"tlui-toolbar__overflow","data-testid":"tools.more-button",children:(0,_.jsx)(iD,{icon:"chevron-up"})})}),(0,_.jsx)(c8,{side:"top",align:"center",children:(0,_.jsx)(h0,{toolbarItems:u})})]})]}):null]})]}),n<ib.TABLET_SM&&!i&&(0,_.jsx)("div",{className:"tlui-toolbar__tools",children:(0,_.jsx)(hX,{})})]})})}),h0=(0,m.jas)(function({toolbarItems:e}){let t=iM();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)(c9,{"data-tool":e,"data-geo":n?.geo??"","aria-label":i,children:(0,_.jsx)(iA,{type:"icon",className:"tlui-button-grid__button",onClick:()=>o("toolbar"),"data-testid":`tools.more.${e}`,title:i?`${t(i)} ${r?cL(r):""}`:"",children:(0,_.jsx)(iD,{icon:s})})},e))})});function h1({item:e,title:t,isSelected:n}){return(0,_.jsx)(iA,{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)(iD,{icon:e.icon})})}
184let h2=(e,t,n)=>e.meta?.geo?"geo"===t&&n===e.meta?.geo:t===e.id;function h8(){let e=iv(),t=hG(),n=z();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 h3(){let e=lc();return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(de,{...e["zoom-in"],noClose:!0}),(0,_.jsx)(de,{...e["zoom-out"],noClose:!0}),(0,_.jsx)(dT,{}),(0,_.jsx)(dM,{}),(0,_.jsx)(dA,{})]})}let h5=(0,E.memo)(function({children:e}){let t=(0,m.uK4)(),[n,r]=sY("zoom menu"),i=e??(0,_.jsx)(h3,{});return(0,_.jsxs)(cQ,{dir:"ltr",open:n,onOpenChange:r,modal:!1,children:[(0,_.jsx)(cV,{asChild:!0,dir:"ltr",children:(0,_.jsx)(h6,{})}),(0,_.jsx)(cJ,{container:t,children:(0,_.jsx)(cK,{className:"tlui-menu",side:"top",align:"start",alignOffset:0,sideOffset:8,collisionPadding:4,children:(0,_.jsx)(s0,{type:"menu",sourceId:"zoom-menu",children:i})})})]})}),h6=(0,E.forwardRef)(function(e,t){let n=(0,m.jE2)(),r=iv(),i=(0,m.HgN)("zoom",()=>n.getZoomLevel(),[n]),o=iM(),s=(0,E.useCallback)(()=>{n.resetZoom(n.getViewportScreenCenter(),{duration:m.KDN})},[n]);return(0,_.jsx)(iA,{ref:t,...e,type:"icon",title:`${o("navigation-zone.zoom")}`,"data-testid":"minimap.zoom-menu-button",className:r<ib.TABLET_SM?"tlui-zoom-menu__button":"tlui-zoom-menu__button__pct",onDoubleClick:s,icon:r<ib.MOBILE?"zoom-in":void 0,children:r<ib.MOBILE?null:(0,_.jsxs)("span",{style:{flexGrow:0,textAlign:"center"},children:[Math.floor(100*i),"%"]})})}),h4=(0,E.createContext)({});function h9({overrides:e={},children:t}){let n=(0,m.SE)(e);return(0,_.jsx)(h4.Provider,{value:(0,E.useMemo)(()=>({ContextMenu:d2,ActionsMenu:dg,HelpMenu:ui,ZoomMenu:h5,MainMenu:u_,Minimap:uP,StylePanel:hg,PageMenu:u$,NavigationPanel:uI,Toolbar:hJ,KeyboardShortcutsDialog:uf,QuickActions:uO,HelperButtons:uc,DebugMenu:ue,MenuPanel:uE,...n}),[n]),children:t})}function h7(){return(0,E.useContext)(h4)}let pe=(0,E.memo)(function(){let{DebugMenu:e}=h7();return(0,_.jsxs)("div",{className:"tlui-debug-panel",children:[(0,_.jsx)(pt,{}),(0,_.jsx)(pn,{}),e&&(0,_.jsx)(e,{})]})}),pt=(0,m.jas)(function(){!function(e=!0){let[t,n]=(0,E.useState)(0),r=(0,m.jE2)();(0,E.useEffect)(()=>{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 pn(){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(250/o*s*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 pr=({id:e,component:t,onClose:n})=>{let{removeDialog:r}=lo(),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)(af,{onOpenChange:o,defaultOpen:!0,children:(0,_.jsx)(ag,{container:i,children:(0,_.jsx)(at,{dir:"ltr",className:"tlui-dialog__overlay",onClick:e=>{e.target===e.currentTarget&&o(!1)},children:(0,_.jsx)(ai,{dir:"ltr",className:"tlui-dialog__content",children:(0,_.jsx)(t,{onClose:()=>o(!1)})})})})})},pi=E.memo(function(){let{dialogs:e}=lo();return(0,_.jsx)(_.Fragment,{children:e.map(e=>(0,_.jsx)(pr,{...e},e.id))})});function po(){let e=(0,m.jE2)(),t=(0,m.HgN)("follow",()=>e.getInstanceState().followingUserId,[e]);return t?(0,_.jsx)(ps,{userId:t}):null}function ps({userId:e}){let t=(0,m.oOK)(e);return t?(0,_.jsx)("div",{className:"tlui-following-indicator",style:{borderColor:t.color}}):null}function pa({toast:e}){let{removeToast:t}=a7(),n=iM(),r=e.actions&&e.actions.length>0;return(0,_.jsxs)(ir,{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)(i$,{icon:e.icon})}),(0,_.jsxs)("div",{className:"tlui-toast__main",children:[(0,_.jsxs)("div",{className:"tlui-toast__content",children:[e.title&&(0,_.jsx)(il,{className:"tlui-toast__title",children:e.title}),e.description&&(0,_.jsx)(ic,{className:"tlui-toast__description",children:e.description})]}),e.actions&&(0,_.jsxs)("div",{className:"tlui-toast__actions",children:[e.actions.map((e,t)=>(0,_.jsx)(id,{altText:e.label,asChild:!0,onClick:e.onClick,children:(0,_.jsx)(iA,{type:e.type,children:(0,_.jsx)(s1,{children:e.label})})},t)),(0,_.jsx)(iu,{asChild:!0,children:(0,_.jsx)(iA,{type:"normal",className:"tlui-toast__close",style:{marginLeft:"auto"},children:(0,_.jsx)(s1,{children:e.closeLabel??n("toast.close")})})})]})]}),!r&&(0,_.jsx)(iu,{asChild:!0,children:(0,_.jsx)(iA,{type:"normal",className:"tlui-toast__close",children:(0,_.jsx)(s1,{children:e.closeLabel??n("toast.close")})})})]})}let pl=E.memo(function(){let{toasts:e}=a7();return(0,_.jsx)(_.Fragment,{children:e.map(e=>(0,_.jsx)(pa,{toast:e},e.id))})});function pc(){let{toasts:e}=a7(),[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)(r7,{className:"tlui-toast__viewport"}):null}let pd="2.0.0",pu={fonts:{draw:`https://unpkg.com/@tldraw/assets@${pd}/fonts/Shantell_Sans-Tldrawish.woff2`,serif:`https://unpkg.com/@tldraw/assets@${pd}/fonts/IBMPlexSerif-Medium.woff2`,sansSerif:`https://unpkg.com/@tldraw/assets@${pd}/fonts/IBMPlexSans-Medium.woff2`,monospace:`https://unpkg.com/@tldraw/assets@${pd}/fonts/IBMPlexMono-Medium.woff2`}},ph={...pu,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
184pect-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
184ical-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@${pd}/icons/icon/${e}.svg`])),translations:Object.fromEntries(m.a2c.map(e=>[e.locale,`https://unpkg.com/@tldraw/assets@${pd}/translations/${e.locale}.json`])),embedIcons:Object.fromEntries(m.Lu5.map(e=>[e.type,`https://unpkg.com/@tldraw/assets@${pd}/embed-icons/${e.type}.png`]))};function pp(e){return(0,E.useMemo)(()=>e,e)}function pf({overrides:e,components:t,assetUrls:n,onUiEvent:r,forceMobile:i,children:o}){return(0,_.jsx)(ik,{assetUrls:n?{fonts:Object.assign({...ph.fonts},{...n?.fonts}),icons:Object.assign({...ph.icons},{...n?.icons}),embedIcons:Object.assign({...ph.embedIcons},{...n?.embedIcons}),translations:Object.assign({...ph.translations},{...n?.translations})}:ph,children:(0,_.jsx)(iT,{overrides:function(e){let t=pp(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)(sK,{onEvent:r,children:(0,_.jsx)(a9,{children:(0,_.jsx)(li,{children:(0,_.jsx)(iw,{forceMobile:i,children:(0,_.jsx)(h9,{overrides:t,children:(0,_.jsx)(pg,{overrides:e,children:o})})})})})})})})}function pg({overrides:e,children:t}){let n=function(e){let t=function(){let{addToast:e,removeToast:t,clearToasts:n}=a7(),{addDialog:r,clearDialogs:i,removeDialog:o,updateDialog:s}=lo(),a=iv()<ib.TABLET_SM,l=iM();return(0,E.useMemo)(()=>({addToast:e,removeToast:t,clearToasts:n,addDialog:r,clearDialogs:i,removeDialog:o,updateDialog:s,msg:l,isMobile:a}),[r,e,i,n,l,o,t,s,a])}(),n=pp(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)(ll,{overrides:n.actions,children:(0,_.jsx)(uu,{overrides:n.tools,children:(0,_.jsx)(hY,{overrides:n.toolbar,children:t})})})}E.memo(function({renderDebugMenuItems:e,children:t,hideUi:n,components:r,...i}){return(0,_.jsx)(pf,{...i,components:r,children:(0,_.jsx)(pm,{hideUi:n,renderDebugMenuItems:e,children:t})})});let pm=E.memo(function({children:e,hideUi:t,...n}){return(0,_.jsxs)(_.Fragment,{children:[e,t?null:(0,_.jsx)(py,{...n})]})}),py=E.memo(function(){let e=(0,m.jE2)(),t=iM(),n=iv(),r=z(),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}=h7();hH(),aJ(),function(){let e=(0,m.jE2)(),{addToast:t}=a7();(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}=lc();return(0,_.jsx)(r5,{children:(0,_.jsxs)("div",{className:T("tlui-layout",{"tlui-layout__mobile":n<ib.TABLET_SM}),"data-breakpoint":n,children:[i?(0,_.jsx)("div",{className:"tlui-layout__top",children:(0,_.jsx)(iA,{type:"icon",className:"tlui-focus-button",title:t("focus-mode.toggle-focus-mode"),onClick:()=>f.onSelect("menu"),children:(0,_.jsx)(iD,{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>=ib.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)(pe,{})]})]}),(0,_.jsx)(pl,{}),(0,_.jsx)(pi,{}),(0,_.jsx)(pc,{}),(0,_.jsx)(po,{})]})})});async function pb(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=`
185@font-face {
186	font-family: ${u.family};
187	font-stretch: ${u.stretch};
188	font-weight: ${u.weight};
189	font-style: ${u.style};
190	src: url("${n}") format("${d}")
191}`,u}var px=((a=px||{})[a.SUCCESS=0]="SUCCESS",a[a.FAILED=1]="FAILED",a[a.WAITING=2]="WAITING",a);let pw=(e,t)=>
191{let[n,r]=(0,E.useState)(2);return(0,E.useEffect)(()=>{let n=!1;return r(2),pb(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)(()=>[...nB,...s],[s]),l=(0,m.QLD)({snapshot:e.snapshot,shapeUtils:a}),{done:c,error:d}=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=[pw("tldraw_draw",t.draw),pw("tldraw_serif",t.serif),pw("tldraw_sans",t.sansSerif),pw("tldraw_mono",t.monospace)];return{error:n.some(e=>1===e),done:!n.some(e=>2===e)}}((0,E.useMemo)(()=>pu,[t])),{pageId:u,bounds:h,scale:p,background:f,padding:g,darkMode:y,preserveAspectRatio:b,format:x="svg"}=e;return((0,E.useLayoutEffect)(()=>{if(!i||!l||!c)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});u&&n.setCurrentPage(u);let o=n.getCurrentPageShapeIds();return async function(){let t=await n.getSvg([...o],{bounds:h,scale:p,background:f,padding:g,darkMode:y,preserveAspectRatio:b});if(t&&!e){if("svg"===x){let n=await a1(t);if(!e){let e=new Blob([n],{type:"image/svg+xml"});r(URL.createObjectURL(e))}}else if("png"===x){let i=await a0(t,n.environment.isSafari,{type:x,quality:1,scale:2});i&&!e&&r(URL.createObjectURL(i))}}n.dispose()}(),()=>{e=!0}},[x,i,l,a,u,h,p,f,g,y,b,c,d]),d)?(0,_.jsx)(m.CsX,{children:"Could not load assets."}):c?(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 pv=((l=pv||{}).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),pS=((c=pS||{}).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),pk=((d=pk||{}).Small="small",d.Medium="medium",d.Large="large",d),pj=((u=pj||{}).Draw="draw",u.Solid="solid",u.Dashed="dashed",u.Dotted="dotted",u),p_=((h=p_||{}).Start="start",h.Middle="middle",h.End="end",h.Justify="justify",h),pE=((p=pE||{}).Script="script",p.Sans="sans",p.Serif="serif",p.Mono="mono",p),pC=((f=pC||{}).Arrow="arrow",f),pP=((g=pP||{}).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 ej},TA:function(){return ek},Yk:function(){return er},AN:function(){return d},R_:function(){return eg},qi:function(){return ep},ci:function(){return ey},pp:function(){return eb},p6:function(){return ew},Y8:function(){return ex},Xo:function(){return eU},ST:function(){return ev},HO:function(){return eH},Lu:function(){return eB},Zu:function(){return eZ},iS:function(){return A},a2:function(){return tr},t8:function(){return e0},ez:function(){return j},fV:function(){return eo},G4:function(){return Z},PQ:function(){return C},LV:function(){return B},Vm:function(){return eC},si:function(){return eE},h9:function(){return eI},qU:function(){return eP},F1:function(){return ed},HH:function(){return tn},_l:function(){return eA},wu:function(){return eM},BF:function(){return ez},gB:function(){return eL},DW:function(){return eR},gR:function(){return eF},k7:function(){return eN},P3:function(){return eK},eG:function(){return eV},y6:function(){return ef},Bz:function(){return ti},DR:function(){return eu},c4:function(){return eY},A7:function(){return eW},J1:function(){return eX},VW:function(){return eG},y5:function(){return eJ},Fc:function(){return eQ},r5:function(){return _},VV:function(){return el},YT:function(){return ec},FH:function(){return e8},BG:function(){return e2},C_:function(){return e5},m0:function(){return e3},CF:function(){return v},u5:function(){return I},pL:function(){return e4},XB:function(){return e6},lY:function(){return e7},p$:function(){return e9}});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=(0,a.zn)({currentVersion:1,migrators:{1:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),d=(0,a.ju)("camera",{validator:l,migrations:c,scope:"session"}).withDefaultProperties(()=>({x:0,y:0,z:1,meta:{}})),u=r.T.object({x:r.T.number,y:r.T.number,z:r.T.number.optional()}),h=r.T.object({x:r.T.number,y:r.T.number,w:r.T.number,h:r.T.number}),p=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"]),f=r.T.setEnum(p),g=r.T.object({type:f,rotation:r.T.number}),m=r.T.number.check(e=>{if(e<0||e>1)throw new r.T.ValidationError("Opacity must be between 0 and 1")}),y=new Set(["accent","white","black","selection-stroke","selection-fill","laser","muted-1"]),b=r.T.setEnum(y),x=new Set(["starting","paused","active","stopping"]),w=r.T.object({id:r.T.string,points:r.T.arrayOf(u),size:r.T.positiveNumber,color:b,opacity:r.T.number,state:r.T.setEnum(x
191),delay:r.T.number,shrink:r.T.number,taper:r.T.boolean}),v=i("page"),S=r.T.model("page",r.T.object({typeName:r.T.literal("page"),id:v,name:r.T.string,index:r.T.indexKey,meta:r.T.jsonValue})),k=(0,a.zn)({currentVersion:1,migrators:{1:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),j=(0,a.ju)("page",{validator:S,migrations:k,scope:"document"}).withDefaultProperties(()=>({meta:{}}));function _(e){return j.isId(e)}i("instance");let E=(0,a.zn)({currentVersion:24,migrators:{1:{up:e=>({...e,exportBackground:!0}),down:({exportBackground:e,...t})=>t},2:{up:({dialog:e,...t})=>t,down:e=>({...e,dialog:null})},3:{up:e=>({...e,isToolLocked:!1}),down:({isToolLocked:e,...t})=>t},4:{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},5:{up:({propsForNextShape:e,...t})=>({...t,propsForNextShape:{...e,labelColor:"black"}}),down:e=>{let{labelColor:t,...n}=e.propsForNextShape;return{...e,propsForNextShape:{...n}}}},6:{up:e=>({...e,followingUserId:null}),down:({followingUserId:e,...t})=>t},7:{up:e=>{let t=e.propsForNextShape.align;return"justify"===t&&(t="start"),{...e,propsForNextShape:{...e.propsForNextShape,align:t}}},down:e=>({...e})},8:{up:e=>({...e,zoomBrush:null}),down:({zoomBrush:e,...t})=>t},9:{up:e=>({...e,propsForNextShape:{...e.propsForNextShape,verticalAlign:"middle"}}),down:e=>{let{verticalAlign:t,...n}=e.propsForNextShape;return{...e,propsForNextShape:n}}},10:{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}}},11:{up:({userId:e,...t})=>t,down:e=>({...e,userId:"user:none"})},12:{up:e=>({...e,isPenMode:!1,isGridMode:!1}),down:({isPenMode:e,isGridMode:t,...n})=>n},13:{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"}})},14:{up:e=>({...e,chatMessage:"",isChatting:!1}),down:({chatMessage:e,isChatting:t,...n})=>n},15:{up:e=>({...e,highlightedUserIds:[]}),down:({highlightedUserIds:e,...t})=>t},16:{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"}})},17:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})},18:{up:e=>{let{color:t,...n}=e.cursor;return{...e,cursor:n}},down:e=>({...e,cursor:{...e.cursor,color:"black"}})},19:{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})},20:{up:({isReadOnly:e,...t})=>({...t,isReadonly:e}),down:({isReadonly:e,...t})=>({...t,isReadOnly:e})},21:{up:e=>({...e,isHoveringCanvas:null}),down:({isHoveringCanvas:e,...t})=>({...t})},22:{up:({scribble:e,...t})=>({...t,scribbles:[]}),down:({scribbles:e,...t})=>({...t,scribble:null})},23:{up:e=>({...e,insets:[!1,!1,!1,!1]}),down:({insets:e,...t})=>({...t})},24:{up:e=>({...e,duplicateProps:null}),down:({duplicateProps:e,...t})=>({...t})}}}),C="instance:instance",P=r.T.string.refine(e=>{if(!e.startsWith("page:")&&!e.startsWith("shape:"))throw Error('Parent ID must start with "page:" or "shape:"');return e}),I=i("shape"),T=r.T.model("instance_page_state",r.T.object({typeName:r.T.literal("instance_page_state"),id:i("instance_page_state"),pageId:v,selectedShapeIds:r.T.arrayOf(I),hintingShapeIds:r.T.arrayOf(I),erasingShapeIds:r.T.arrayOf(I),hoveredShapeId:I.nullable(),editingShapeId:I.nullable(),croppingShapeId:I.nullable(),focusedGroupId:I.nullable(),meta:r.T.jsonValue})),M=(0,a.zn)({currentVersion:5,migrators:{1:{up:e=>({...e,croppingShapeId:null}),down:({croppingShapeId:e,...t})=>t},2:{up:({instanceId:e,cameraId:t,...n})=>n,down:e=>({...e,instanceId:C,cameraId:d.createId("void")})},3:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})},4:{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}}},5:{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}}}}}),A=(0,a.ju)("instance_page_state",{migrations:M,validator:T,scope:"session"}).withDefaultProperties(()=>({editingShapeId:null,croppingShapeId:null,selectedShapeIds:[],hoveredShapeId:null,erasingShapeIds:[],hintingShapeIds:[],focusedGroupId:null,meta:{}})),$=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})),D=(0,a.zn)({currentVersion:1,migrators:{1:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),O=(0,a.ju)("pointer",{validator:$,migrations:D,scope:"session"}).withDefaultProperties(()=>({x:0,y:0,lastActivityTimestamp:0,meta:{}})),B=O.createId("pointer"),L=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:f,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:h,selectedShapeIds:r.T.arrayOf(i("shape")),currentPageId:i("page"),brush:h.nullable(),scribbles:r.T.arrayOf(w),chatMessage:r.T.string,meta:r.T.jsonValue})),R=(0,a.zn)({currentVersion:5,migrators:{1:{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}}},2:{up:({instanceId:e,...t})=>t,down:e=>({...e,instanceId:C})},3:{up:e=>({...e,chatMessage:""}),down:({chatMessage:e,...t})=>t},4:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})},5:{up:e=>{let{selectedShapeIds:t,...n}=e;return{selectedShapeIds:t,...n}},down:e=>{let{selectedShapeIds:t,...n}=e;return{selectedShapeIds:t,...n}}}}}),z=(0,a.ju)("instance_presence",{migrations:R,validator:L,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 N=n(85947);let F=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})),U=(0,a.zn)({currentVersion:2,migrators:{1:{up:e=>({...e,name:""}),down:({name:e,...t})=>t},2:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),H=(0,a.ju)("document",{migrations:U,validator:F,scope:"document"}).withDefaultProperties(()=>({gridSize:10,name:"",meta:{}})),Z=H.createId("document");function V(e,t){return e.index<t.index?-1:e.index>
191t.index?1:0}function K(e){"asset"===e.typeName&&("src"in e&&(e.src="<redacted>"),"src"in e.props&&(e.props.src="<redacted>"))}let W=({error:e,phase:t,record:n,recordBefore:r})=>{throw(0,N.lw)(e,{tags:{origin:"store.validateRecord",storePhase:t,isExistingValidationIssue:"initialize"===t},extras:{recordBefore:r?K((0,N.v4)(r)):void 0,recordAfter:K((0,N.v4)(n))}}),e};function Y(e){let t=e.query.ids("page"),n=()=>{if(!e.has(Z))return e.put([H.create({id:Z,name:e.props.defaultName})]),n();if(!e.has(B))return e.put([O.create({id:B})]),n();let r=t.get();if(0===r.size)return e.put([j.create({id:"page:page",name:"Page 1",index:"a1",meta:{}})]),n();let i=e.get(C);if(!i)return e.put([e.schema.types.instance.create({id:C,currentPageId:[...r].map(t=>e.get(t)).sort(V)[0].id,exportBackground:!0})]),n();if(!r.has(i.currentPageId))return e.put([{...i,currentPageId:[...r].map(t=>e.get(t)).sort(V)[0].id}]),n();let o=new Set,s=new Set;for(let t of r){let n=A.createId(t);e.has(n)||o.add(n);let r=d.createId(t);e.has(r)||s.add(r)}o.size>0&&e.put([...o].map(e=>A.create({id:e,pageId:A.parseId(e)}))),s.size>0&&e.put([...s].map(e=>d.create({id:e})))};return n}let G=s("bookmark",r.T.object({title:r.T.string,description:r.T.string,image:r.T.string,src:r.T.srcUrl.nullable()})),X=(0,a.zn)({currentVersion:1,migrators:{1:{up:e=>{let t=e.props.src;return t&&!r.T.srcUrl.isValid(t)?{...e,props:{...e.props,src:""}}:e},down:e=>e}}}),q=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()})),Q=(0,a.zn)({currentVersion:3,migrators:{1:{up:e=>({...e,props:{...e.props,isAnimated:!1}}),down:e=>{let{isAnimated:t,...n}=e.props;return{...e,props:n}}},2:{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}}}},3:{up:e=>{let t=e.props.src;return t&&!r.T.srcUrl.isValid(t)?{...e,props:{...e.props,src:""}}:e},down:e=>e}}}),J=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()})),ee=(0,a.zn)({currentVersion:3,migrators:{1:{up:e=>({...e,props:{...e.props,isAnimated:!1}}),down:e=>{let{isAnimated:t,...n}=e.props;return{...e,props:n}}},2:{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}}}},3:{up:e=>{let t=e.props.src;return t&&!r.T.srcUrl.isValid(t)?{...e,props:{...e.props,src:""}}:e},down:e=>e}}}),et=r.T.model("asset",r.T.union("type",{image:q,video:J,bookmark:G})),en=(0,a.zn)({subTypeKey:"type",subTypeMigrations:{image:Q,video:ee,bookmark:X},currentVersion:1,migrators:{1:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}}),er=(0,a.ju)("asset",{migrations:en,validator:et,scope:"document"}).withDefaultProperties(()=>({meta:{}})),ei=(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 eo{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 eo(e,n,i)}static defineEnum(e,t){let{defaultValue:n,values:r}=t;return new es(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 es extends eo{constructor(e,t,n){super(e,t,r.T.literalEnum(...n)),this.values=n}}let ea=(0,a.zn)({currentVersion:3,migrators:{1:{up:e=>({...e,isLocked:!1}),down:e=>{let{isLocked:t,...n}=e;return{...n}}},2:{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"}})},3:{up:e=>({...e,meta:{}}),down:({meta:e,...t})=>({...t})}}});function el(e){return!!e&&"shape"===e.typeName}function ec(e){return!!e&&e.startsWith("shape:")}function ed(e){return`shape:${e??ei()}`}function eu(e){let t=new Map;for(let[n,r]of Object.entries(e))if(r instanceof eo){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 eh=["black","grey","light-violet","violet","blue","light-blue","yellow","orange","green","light-green","light-red","red"],ep={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
19179 0.8986)"}},yellow:{solid:"#ffc034",semi:"#3c3934",pattern:"#fecb92",highlight:{srgb:"#d2b700",p3:"color(display-p3 0.8078 0.7225 0.0312)"}}}};function ef(e){return e.isDarkMode?ep.darkMode:ep.lightMode}let eg=eo.defineEnum("tldraw:color",{defaultValue:"black",values:eh}),em=eo.defineEnum("tldraw:labelColor",{defaultValue:"black",values:eh}),ey=eo.defineEnum("tldraw:dash",{defaultValue:"draw",values:["draw","solid","dashed","dotted"]}),eb=eo.defineEnum("tldraw:fill",{defaultValue:"none",values:["none","semi","solid","pattern"]}),ex=eo.defineEnum("tldraw:font",{defaultValue:"draw",values:["draw","sans","serif","mono"]}),ew={draw:"'tldraw_draw', sans-serif",sans:"'tldraw_sans', sans-serif",serif:"'tldraw_serif', serif",mono:"'tldraw_mono', monospace"},ev=eo.defineEnum("tldraw:size",{defaultValue:"m",values:["s","m","l","xl"]}),eS=["arrow","triangle","square","dot","pipe","diamond","inverted","bar","none"],ek=eo.defineEnum("tldraw:arrowheadStart",{defaultValue:"none",values:eS}),ej=eo.defineEnum("tldraw:arrowheadEnd",{defaultValue:"arrow",values:eS}),e_=r.T.union("type",{binding:r.T.object({type:r.T.literal("binding"),boundShapeId:I,normalizedAnchor:u,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})}),eE={labelColor:em,color:eg,fill:eb,dash:ey,size:ev,arrowheadStart:ek,arrowheadEnd:ej,font:ex,start:e_,end:e_,bend:r.T.number,text:r.T.string,labelPosition:r.T.number},eC=(0,a.zn)({currentVersion:3,migrators:{1:{up:e=>({...e,props:{...e.props,labelColor:"black"}}),down:e=>{let{labelColor:t,...n}=e.props;return{...e,props:n}}},2:{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}}}},3:{up:e=>({...e,props:{...e.props,labelPosition:.5}}),down:e=>{let{labelPosition:t,...n}=e.props;return{...e,props:n}}}}}),eP={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,assetId:o.nullable(),url:r.T.linkUrl},eI=(0,a.zn)({currentVersion:2,migrators:{1:{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}},2:{up:e=>""===e.props.url||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}},down:e=>e}}}),eT=r.T.object({type:r.T.literalEnum("free","straight"),points:r.T.arrayOf(u)}),eM={color:eg,fill:eb,dash:ey,size:ev,segments:r.T.arrayOf(eT),isComplete:r.T.boolean,isClosed:r.T.boolean,isPen:r.T.boolean},eA=(0,a.zn)({currentVersion:1,migrators:{1:{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 e$=n(34406);let eD=/(^\/r\/[^/]+\/?$)/,eO=e=>{try{return new URL(e)}catch(e){return}},eB=[{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=eO(e);if(t&&t.pathname.match(eD))return e},fromEmbedUrl:e=>{let t=eO(e);if(t&&t.pathname.match(eD))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=eO(e);if(t&&t.pathname.match(/^\/embed\/?$/)){let e=t.searchParams.get("url");if(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=${e$.env.NEXT_PUBLIC_GC_API_KEY}&center=${r},${i}&zoom=${o}`}else t="";return t}},fromEmbedUrl:e=>{let t=eO(e);if(t&&t.pathname.match(/^\/maps\/embed\/v1\/view\/?$/)&&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=eO(e),n=t&&t.pathname.match(/\/v\/([^/]+)\/?/);if(n)return`https://www.val.town/embed/${n[1]}`},fromEmbedUrl:e=>{let t=eO(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=eO(e),n=t&&t.pathname.match(/\/s\/([^/]+)\/?/);if(n)return`https://codesandbox.io/embed/${n[1]}`},fromEmbedUrl:e=>{let t=eO(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=eO(e);if(!t)return;let n=t.hostname.replace(/^www./,"");
191if("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=eO(e);if(t&&"youtube.com"===t.hostname.replace(/^www./,"")){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=eO(e),n=t?.searchParams.get("cid");if(t?.pathname.match(/\/calendar\/u\/0/)&&n){for(let e of(t.pathname="/calendar/embed",Array.from(t.searchParams.keys())))t.searchParams.delete(e);return t.searchParams.set("src",n),t.href}},fromEmbedUrl:e=>{let t=eO(e),n=t?.searchParams.get("src");if(t?.pathname.match(/\/calendar\/embed/)&&n){for(let e of(t.pathname="/calendar/u/0",Array.from(t.searchParams.keys())))t.searchParams.delete(e);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=eO(e);if(t?.pathname.match(/^\/presentation/)&&t?.pathname.match(/\/pub\/?$/)){for(let e of(t.pathname=t.pathname.replace(/\/pub$/,"/embed"),Array.from(t.searchParams.keys())))t.searchParams.delete(e);return t.href}},fromEmbedUrl:e=>{let t=eO(e);if(t?.pathname.match(/^\/presentation/)&&t?.pathname.match(/\/embed\/?$/)){for(let e of(t.pathname=t.pathname.replace(/\/embed$/,"/pub"),Array.from(t.searchParams.keys())))t.searchParams.delete(e);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=eO(e);if(t&&t.pathname.match(/\/([^/]+)\/([^/]+)/)){if(!e.split("/").pop())return;return e}},fromEmbedUrl:e=>{let t=eO(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=eO(e);if(t&&t.pathname.match(/\/@([^/]+)\/([^/]+)/))return`${e}?embed=true`},fromEmbedUrl:e=>{let t=eO(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=eO(e);if(t&&t.pathname.match(/^\/map\//))return t.origin+"/embed"+t.pathname},fromEmbedUrl:e=>{let t=eO(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=eO(e);if(t&&t.pathname.match(/^\/(artist|album)\//))return t.origin+"/embed"+t.pathname},fromEmbedUrl:e=>{let t=eO(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=eO(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=eO(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=eO(e);if(t&&t.hash.match(/#room=/))return e},fromEmbedUrl:e=>{let t=eO(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=eO(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=eO(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}}],eL={"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},eR={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,url:r.T.string},ez=(0,a.zn)({currentVersion:4,migrators:{1:{up:e=>{let t;let n=e.props.url,r=new URL(n).host.replace("www.","");for(let e of eB)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 eB)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??""}}}},2:{up:e=>{let{doesResize:t,...n}=e.props;return{...e,props:{...n}}},down:e=>({...e,props:{...e.props,doesResize:!0}})},3:{up:e=>{let{tmpOldUrl:t,...n}=e.props;return{...e,props:{...n}}},down:e=>({...e,props:{...e.props}})},4:{up:e=>{let{overridePermissions:t,...n}=e.props;return{...e,props:{...n}}},down:e=>({...e,props:{...e.props}})}}}),eN={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,name:r.T.string},eF=(0,a.zn)({}),eU=eo.defineEnum("tldraw:horizontalAlign",{defaultValue:"middle",values:["start","middle","end","start-legacy","end-legacy","middle-legacy"]}),eH=eo.defineEnum("tldraw:verticalAlign",{defaultValue:"middle",values:["start","middle","end"]}),eZ=eo.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"]}),eV={geo:eZ,labelColor:em,color:eg,fill:eb,dash:ey,size:ev,font:ex,align:eU,verticalAlign:eH,url:r.T.linkUrl,w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,growY:r.T.positiveNumber,text:r.T.string},eK=(0,a.zn)({currentVersion:8,migrators:{1:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},2:{up:e=>({...e,props:{...e.props,labelColor:"black"}}),down:e=>{let{labelColor:t,...n}=e.props;return{...e,props:n}}},3:{up:e=>{let t=e.props.align;return"justify"===t&&(t="start"),{...e,props:{...e.props,align:t}}},down:e=>({...e})},4:{up:e=>({...e}),down:e=>({...e,props:{...e.props,geo:"check-box"===e.props.geo?"rectangle":e.props.geo}
191})},5:{up:e=>({...e,props:{...e.props,verticalAlign:"middle"}}),down:e=>{let{verticalAlign:t,...n}=e.props;return{...e,props:n}}},6:{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}}}},7:{up:e=>e,down:e=>{if("cloud"===e.props.geo)return{...e,props:{...e.props,geo:"rectangle"}}}},8:{up:e=>""===e.props.url||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}},down:e=>e}}}),eW={},eY=(0,a.zn)({}),eG={color:eg,size:ev,segments:r.T.arrayOf(eT),isComplete:r.T.boolean,isPen:r.T.boolean},eX=(0,a.zn)({}),eq=r.T.object({topLeft:u,bottomRight:u}),eQ={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,playing:r.T.boolean,url:r.T.linkUrl,assetId:o.nullable(),crop:eq.nullable()},eJ=(0,a.zn)({currentVersion:3,migrators:{1:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},2:{up:e=>({...e,props:{...e.props,crop:null}}),down:e=>{let{crop:t,...n}=e.props;return{...e,props:n}}},3:{up:e=>""===e.props.url||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}},down:e=>e}}}),e0=eo.defineEnum("tldraw:spline",{defaultValue:"line",values:["cubic","line"]}),e1=r.T.object({id:r.T.string,index:r.T.indexKey,x:r.T.number,y:r.T.number}),e2={color:eg,dash:ey,size:ev,spline:e0,points:r.T.dict(r.T.string,e1)},e8=(0,a.zn)({currentVersion:4,migrators:{1:{up:e=>{let t=(0,N.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,N.p$)(e.props.handles);for(let e in t)delete t[e].canSnap;return{...e,props:{...e.props,handles:t}}}},2:{up:e=>({...e,props:{...e.props,handles:(0,N.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(N.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}]}))}}}},3:{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(N.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,N.H$)(t.length);return{...e,props:{...n,handles:Object.fromEntries(t.map((e,t)=>[r[t],{x:e.x,y:e.y}]))}}}},4:{up:e=>{let{points:t,...n}=e.props,r=(0,N.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(N.hl);return{...e,props:{...e.props,points:t.map(({x:e,y:t})=>({x:e,y:t}))}}}}}}),e3={color:eg,size:ev,font:ex,align:eU,verticalAlign:eH,growY:r.T.positiveNumber,url:r.T.linkUrl,text:r.T.string},e5=(0,a.zn)({currentVersion:5,migrators:{1:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},2:{up:e=>{let t=e.props.align;return"justify"===t&&(t="start"),{...e,props:{...e.props,align:t}}},down:e=>({...e})},3:{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}}}},4:{up:e=>({...e,props:{...e.props,verticalAlign:"middle"}}),down:e=>{let{verticalAlign:t,...n}=e.props;return{...e,props:n}}},5:{up:e=>""===e.props.url||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}},down:e=>e}}}),e6={color:eg,size:ev,font:ex,align:eU,w:r.T.nonZeroNumber,text:r.T.string,scale:r.T.nonZeroNumber,autoSize:r.T.boolean},e4=(0,a.zn)({currentVersion:1,migrators:{1:{up:e=>{let t=e.props.align;return"justify"===t&&(t="start"),{...e,props:{...e.props,align:t}}},down:e=>({...e})}}}),e9={w:r.T.nonZeroNumber,h:r.T.nonZeroNumber,time:r.T.number,playing:r.T.boolean,url:r.T.linkUrl,assetId:o.nullable()},e7=(0,a.zn)({currentVersion:2,migrators:{1:{up:e=>({...e,props:{...e.props,url:""}}),down:e=>{let{url:t,...n}=e.props;return{...e,props:n}}},2:{up:e=>""===e.props.url||r.T.linkUrl.isValid(e.props.url)?e:{...e,props:{...e.props,url:""}},down:e=>e}}}),te=(0,a.zn)({currentVersion:4,migrators:{1:{up:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>"shape"!==t.typeName||"icon"!==t.type&&"code"!==t.type)),down:e=>e},2:{up:e=>e,down:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>"instance_presence"!==t.typeName))},3:{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))},4:{up:e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>!t.typeName.match("user_document"))),down:e=>e}}}),tt={arrow:{migrations:eC,props:eE},bookmark:{migrations:eI,props:eP},draw:{migrations:eA,props:eM},embed:{migrations:ez,props:eR},frame:{migrations:eF,props:eN},geo:{migrations:eK,props:eV},group:{migrations:eY,props:eW},highlight:{migrations:eX,props:eG},image:{migrations:eJ,props:eQ},line:{migrations:e8,props:e2},note:{migrations:e5,props:e3},text:{migrations:e4,props:e6},video:{migrations:e7,props:e9}};function tn({shapes:e=tt}={}){let t=new Map;for(let n of(0,N.UM)(e))for(let e of eu(n.props??{}
191).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:ea.currentVersion,firstVersion:ea.firstVersion,migrators:ea.migrators,subTypeKey:"type",subTypeMigrations:(0,N.Fm)(e,(e,t)=>t.migrations??(0,a.zn)({}))}),scope:"document",validator:r.T.model("shape",r.T.union("type",(0,N.Fm)(e,(e,{props:t,meta:n})=>r.T.object({id:I,typeName:r.T.literal("shape"),x:r.T.number,y:r.T.number,rotation:r.T.number,index:r.T.indexKey,parentId:P,type:r.T.literal(e),isLocked:r.T.boolean,opacity:m,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:v,followingUserId:r.T.string.nullable(),brush:h.nullable(),opacityForNextShape:m,stylesForNextShape:r.T.object(t),cursor:g,scribbles:r.T.arrayOf(w),isFocusMode:r.T.boolean,isDebugMode:r.T.boolean,isToolLocked:r.T.boolean,exportBackground:r.T.boolean,screenBounds:h,insets:r.T.arrayOf(r.T.boolean),zoomBrush:h.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:E,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:er,camera:d,document:H,instance:o,instance_page_state:A,page:j,shape:n,instance_presence:z,pointer:O},{snapshotMigrations:te,onValidationFailure:W,createIntegrityChecker:Y})}let tr=[{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 ti(){return function(e){for(let t of e){let e=function(e){let t=tr.find(t=>t.locale===e.toLowerCase());if(t)return t.locale;let[n,r]=e.split(/[-_]/).map(e=>e.toLowerCase());if(r){let e=tr.find(e=>e.locale===n);if(e)return e.locale}return n in to?to[n]:null}(t);if(e)return e}return"en"}("undefined"!=typeof window?window.navigator.languages??["en"]:["en"])}let to={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;
191if(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 J},Xg:function(){return ee},eI:function(){return Q},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){return x.readChunks(e)[t]}
191static 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));return l.setInt32(17,b(c)),new Blob([e.buffer.slice(0,r),a,e.buffer.slice(r+i)],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=()=>{for(let e of D.splice(0,D.length))e()};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 z(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 N(e){if(e.length!==z(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){N(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;return r-n>1?L.charAt(Math.round(.5*(n+r))):t&&t.length>1?t.slice(0,1):L.charAt(n)+H(e.slice(1),void 0)}function Z(e){let t=z(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);if("0"===e.slice(t.length).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){N(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)}
191function X(e,t,n){return W(e,t,n)}function q(e,t){return W(e,void 0,t)}function Q(e,t){return W(e,t,1)[0]}function J(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 z},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){return this.validationFn(e)}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}!Object.is(t[n],o)&&(Object.is(s(n,()=>e.validateUsingKnownGoodVersion(t[n],o)),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);!Object.is(e,a)&&(Object.is(s(t,()=>o.validateUsingKnownGoodVersion?o.validateUsingKnownGoodVersion(e,a):o.validate(a)),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)}`);return{matchingSchema:(0,i.nr)(this.config,t)?this.config[t]:void 0,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;
191for(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;!Object.is(r,c)&&(Object.is(s(o,()=>t.validateUsingKnownGoodVersion?t.validateUsingKnownGoodVersion(r,c):t.validate(c)),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];!Object.is(i,o)&&(Object.is(M.validateUsingKnownGoodVersion(i,o),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];!Object.is(o,s)&&(Object.is(M.validateUsingKnownGoodVersion(o,s),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 z(...e){return B(new Set(e))}function N(e){try{return new URL(e)}catch(t){if(e.startsWith("/")||e.startsWith("./"))try{return new URL(e,"http://example.com")}catch(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=N(e);if(!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=N(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)}`)}})}}]);
192//# sourceMappingURL=9646.7109b4da453fcd94.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.