claude-canvas 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3188,7 +3188,7 @@ function getCurrentDir() {
|
|
|
3188
3188
|
return (0, import_node_path.dirname)(fileURLToPath(meta.url));
|
|
3189
3189
|
}
|
|
3190
3190
|
function getVersion() {
|
|
3191
|
-
if (true) return "1.0.
|
|
3191
|
+
if (true) return "1.0.8";
|
|
3192
3192
|
try {
|
|
3193
3193
|
const pkg = JSON.parse((0, import_node_fs.readFileSync)((0, import_node_path.resolve)(getCurrentDir(), "../../package.json"), "utf-8"));
|
|
3194
3194
|
return pkg.version;
|
|
@@ -444,7 +444,7 @@ void main() {
|
|
|
444
444
|
color.b += max != color.b ? (max - color.b) * amt : 0.00;
|
|
445
445
|
gl_FragColor = color;
|
|
446
446
|
}
|
|
447
|
-
`}applyTo2d(e){let{imageData:{data:t}}=e,n=-this.vibrance;for(let e=0;e<t.length;e+=4){let r=t[e],i=t[e+1],a=t[e+2],o=Math.max(r,i,a),s=(r+i+a)/3,c=2*Math.abs(o-s)/255*n;t[e]+=o===r?0:(o-r)*c,t[e+1]+=o===i?0:(o-i)*c,t[e+2]+=o===a?0:(o-a)*c}}sendUniformData(e,t){e.uniform1f(t.uVibrance,-this.vibrance)}isNeutralState(){return this.vibrance===0}};I(Cc,`type`,`Vibrance`),I(Cc,`defaults`,{vibrance:0}),I(Cc,`uniformLocations`,[`uVibrance`]),R.setClass(Cc),Object.freeze({__proto__:null,BaseFilter:Ws,BlackWhite:oc,BlendColor:Ks,BlendImage:Js,Blur:Ys,Brightness:Xs,Brownie:ec,ColorMatrix:Qs,Composed:sc,Contrast:cc,Convolute:uc,Gamma:fc,Grayscale:mc,HueRotation:gc,Invert:_c,Kodachrome:nc,Noise:vc,Pixelate:yc,Polaroid:ic,RemoveColor:bc,Resize:xc,Saturation:Sc,Sepia:ac,Technicolor:rc,Vibrance:Cc,Vintage:tc});var wc=`modulepreload`,Tc=function(e){return`/`+e},Ec={},Dc=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Tc(t,n),t in Ec)return;Ec[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:wc,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Oc=null;async function kc(){Oc=(await Dc(()=>import(`./rough-DRqkAAOb.js`),[])).default.generator()}function Ac(){if(!Oc)throw Error(`Call initRoughLineGenerator() first`);return Oc}function jc(e,t,n,r){return Math.abs(e*73856093^t*19349663^n*83492791^r*44867|0)%2147483647||1}function Mc(e){let t=e.calcLinePoints(),n=e.calcOwnMatrix();return{p1:new z(t.x1,t.y1).transform(n),p2:new z(t.x2,t.y2).transform(n)}}function Nc(){return{p1:new mi({x:0,y:0,cursorStyle:`move`,render:To.renderCircleControl,positionHandler(e,t,n){let r=n.calcLinePoints();return new z(r.x1,r.y1).transform(t)},actionHandler(e,t,n,r){let i=t.target,a=i.canvas;if(!a)return!1;let o=a.getScenePoint(e),{p2:s}=Mc(i);return i.x1=o.x,i.y1=o.y,i.x2=s.x,i.y2=s.y,i._setWidthHeight(),i.setCoords(),i.dirty=!0,!0}}),p2:new mi({x:0,y:0,cursorStyle:`move`,render:To.renderCircleControl,positionHandler(e,t,n){let r=n.calcLinePoints();return new z(r.x2,r.y2).transform(t)},actionHandler(e,t,n,r){let i=t.target,a=i.canvas;if(!a)return!1;let o=a.getScenePoint(e),{p1:s}=Mc(i);return i.x1=s.x,i.y1=s.y,i.x2=o.x,i.y2=o.y,i._setWidthHeight(),i.setCoords(),i.dirty=!0,!0}})}}function Pc(e,t){e.beginPath();for(let n of t)switch(n.op){case`move`:e.moveTo(n.data[0],n.data[1]);break;case`lineTo`:e.lineTo(n.data[0],n.data[1]);break;case`bcurveTo`:e.bezierCurveTo(n.data[0],n.data[1],n.data[2],n.data[3],n.data[4],n.data[5]);break}e.stroke()}function Fc(e){let t=``;for(let n of e)switch(n.op){case`move`:t+=`M ${n.data[0]} ${n.data[1]} `;break;case`lineTo`:t+=`L ${n.data[0]} ${n.data[1]} `;break;case`bcurveTo`:t+=`C ${n.data[0]} ${n.data[1]} ${n.data[2]} ${n.data[3]} ${n.data[4]} ${n.data[5]} `;break}return t.trim()}var Ic=class e extends ts{constructor(e,t={}){super(e,{...t,stroke:`transparent`,strokeWidth:10,objectCaching:!1}),this.strokeColor=t.strokeColor??`#000000`,this.roughness=t.roughness??1.5,this.seed=t.seed??jc(e[0],e[1],e[2],e[3]),this.controls=Nc(),this.hasBorders=!1}_render(e){let t=this.calcLinePoints(),n=Ac().line(t.x1,t.y1,t.x2,t.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed});e.save();for(let t of n.sets)t.type===`path`&&(e.strokeStyle=this.strokeColor,e.lineWidth=1.5,Pc(e,t.ops));e.restore()}toObject(e=[]){return super.toObject([...e,`strokeColor`,`roughness`,`seed`])}toSVG(){let e=this.calcLinePoints(),t=Ac().line(e.x1,e.y1,e.x2,e.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed}),n=``;for(let e of t.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}return`<g transform="matrix(${this.calcOwnMatrix().join(` `)})">${n}</g>`}static type=`RoughLineObject`;static async fromObject(t){return new e([t.x1,t.y1,t.x2,t.y2],{...t,strokeColor:t.strokeColor,roughness:t.roughness,seed:t.seed})}};R.setClass(Ic);var Lc=class e extends ts{constructor(e,t={}){super(e,{...t,stroke:`transparent`,strokeWidth:10,objectCaching:!1}),this.strokeColor=t.strokeColor??`#000000`,this.roughness=t.roughness??1.5,this.seed=t.seed??jc(e[0],e[1],e[2],e[3]),this.controls=Nc(),this.hasBorders=!1}_render(e){let t=this.calcLinePoints(),n=Ac().line(t.x1,t.y1,t.x2,t.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed});e.save(),e.strokeStyle=this.strokeColor,e.lineWidth=1.5;for(let t of n.sets)t.type===`path`&&Pc(e,t.ops);let r=t.x2-t.x1,i=t.y2-t.y1,a=Math.sqrt(r*r+i*i)||1,o=r/a,s=i/a,c=t.x2-o*14+-s*7,l=t.y2-s*14+o*7,u=t.x2-o*14+s*7,d=t.y2-s*14+-o*7,f=Ac().linearPath([[t.x2,t.y2],[c,l]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+1}),p=Ac().linearPath([[t.x2,t.y2],[u,d]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+2});for(let t of f.sets)t.type===`path`&&Pc(e,t.ops);for(let t of p.sets)t.type===`path`&&Pc(e,t.ops);e.restore()}toObject(e=[]){return super.toObject([...e,`strokeColor`,`roughness`,`seed`])}toSVG(){let e=this.calcLinePoints(),t=Ac().line(e.x1,e.y1,e.x2,e.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed}),n=``;for(let e of t.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}let r=e.x2-e.x1,i=e.y2-e.y1,a=Math.sqrt(r*r+i*i)||1,o=r/a,s=i/a,c=e.x2-o*14+-s*7,l=e.y2-s*14+o*7,u=e.x2-o*14+s*7,d=e.y2-s*14+-o*7,f=Ac().linearPath([[e.x2,e.y2],[c,l]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+1}),p=Ac().linearPath([[e.x2,e.y2],[u,d]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+2});for(let e of f.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}for(let e of p.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}return`<g transform="matrix(${this.calcOwnMatrix().join(` `)})">${n}</g>`}static type=`RoughArrowObject`;static async fromObject(t){return new e([t.x1,t.y1,t.x2,t.y2],{...t,strokeColor:t.strokeColor,roughness:t.roughness,seed:t.seed})}};R.setClass(Lc);var Rc=`#000000`,U=`#B5651D`,zc=`rgba(181, 101, 29, 0.35)`,Bc=1.5,Vc=`Patrick Hand, cursive`,Hc=null;async function Uc(){return Hc||(Hc=(await Dc(()=>import(`./rough-DRqkAAOb.js`),[])).default.generator(),Hc)}var Wc=null;function Gc(){return Uc().then(e=>{Wc=e})}function Kc(){if(!Wc)throw Error(`Call initGenerator() before using wobble functions`);return Wc}function qc(e){let t=``;for(let n of e)switch(n.op){case`move`:t+=`M ${n.data[0]} ${n.data[1]} `;break;case`lineTo`:t+=`L ${n.data[0]} ${n.data[1]} `;break;case`bcurveTo`:t+=`C ${n.data[0]} ${n.data[1]} ${n.data[2]} ${n.data[3]} ${n.data[4]} ${n.data[5]} `;break}return t.trim()}function Jc(e,t,n,r){return Math.abs(e*73856093^t*19349663^n*83492791^r*44867|0)%2147483647||1}var Yc={roughness:1.5,stroke:Rc,strokeWidth:Bc,fill:zc,fillStyle:`hachure`,fillWeight:1,hachureGap:5,hachureAngle:-41},Xc={roughness:1.5,stroke:Rc,strokeWidth:Bc};function Zc(e,t,n){let r=[];for(let i of e.sets){let e=qc(i.ops);e&&(i.type===`fillSketch`?r.push(new Xo(e,{stroke:t||`rgba(181, 101, 29, 0.35)`,strokeWidth:Yc.fillWeight,fill:`transparent`,selectable:!1,evented:!1})):i.type===`fillPath`?r.push(new Xo(e,{stroke:`transparent`,strokeWidth:0,fill:t||`rgba(181, 101, 29, 0.35)`,selectable:!1,evented:!1})):i.type===`path`&&r.push(new Xo(e,{stroke:n||`#000000`,strokeWidth:Bc,fill:`transparent`,selectable:!1,evented:!1})))}return r}function Qc(e){for(let t of e.getObjects())if(t instanceof Xo){let e=t.stroke,n=t.fill;(e&&(e.startsWith(`rgba`)||e===`transparent`)||n&&n.startsWith(`rgba`))&&(t.visible=!1)}e.dirty=!0}function $c(e,t,n,r){let i={...Yc,stroke:t,fill:n,seed:r};return e&&e!==`none`&&e!==`hachure`?{...i,fillStyle:e}:i}function el(e,t,n,r,i){let a=Jc(e,t,n,r),o=ul(U,.35),s=$c(i,U,o,a),c=new Na(Zc(Kc().rectangle(e,t,n,r,s),o,U),{selectable:!0,hasControls:!1});return i===`none`&&Qc(c),c}function tl(e,t,n,r){let i=Jc(e,t,n,n),a=ul(U,.35),o=$c(r,U,a,i),s=new Na(Zc(Kc().circle(e,t,n*2,o),a,U),{selectable:!0,hasControls:!1});return r===`none`&&Qc(s),s}function nl(e,t,n,r,i){let a=Jc(e,t,n,r),o=ul(U,.35),s=$c(i,U,o,a),c=new Na(Zc(Kc().ellipse(e,t,n*2,r*2,s),o,U),{selectable:!0,hasControls:!1});return i===`none`&&Qc(c),c}function rl(e,t,n,r){let i=Jc(e,t,n,r);return new Na(Zc(Kc().line(e,t,n,r,{...Xc,stroke:U,seed:i}),void 0,U),{selectable:!0,hasControls:!1})}function il(e,t,n,r){let i=Jc(e,t,n,r),a={...Xc,stroke:U,seed:i},o=Zc(Kc().line(e,t,n,r,a),void 0,U),s=n-e,c=r-t,l=Math.sqrt(s*s+c*c)||1,u=s/l,d=c/l,f=n-u*14+-d*7,p=r-d*14+u*7,m=n-u*14+d*7,h=r-d*14+-u*7,g=Kc().linearPath([[n,r],[f,p]],{...a,seed:i+1}),_=Kc().linearPath([[n,r],[m,h]],{...a,seed:i+2});return new Na([...o,...Zc(g,void 0,U),...Zc(_,void 0,U)],{selectable:!0,hasControls:!1})}var al=el,ol=tl,sl=nl,cl=rl,ll=il;function ul(e,t){return`rgba(${parseInt(e.slice(1,3),16)}, ${parseInt(e.slice(3,5),16)}, ${parseInt(e.slice(5,7),16)}, ${t})`}function dl(e,t,n,r,i,a){let o=Jc(e,t,n,r),s=ul(i,.35),c=$c(a,i,s,o),l=new Na(Zc(Kc().rectangle(0,0,n,r,c),s,i),{left:e,top:t,originX:`left`,originY:`top`,selectable:!0,hasControls:!0});return a===`none`&&Qc(l),l}function fl(e,t,n,r,i,a){let o=Jc(e,t,n,r),s=ul(i,.35),c=$c(a,i,s,o),l=new Na(Zc(Kc().ellipse(n/2,r/2,n,r,c),s,i),{left:e,top:t,originX:`left`,originY:`top`,selectable:!0,hasControls:!0});return a===`none`&&Qc(l),l}function pl(e){if(e instanceof Ic||e instanceof Lc)return e.strokeColor;if(e instanceof ps)return e.fill||void 0;if(e instanceof Xo)return e.stroke||void 0;if(e instanceof Na){for(let t of e.getObjects())if(t instanceof Xo){let e=t.stroke;if(e&&!e.startsWith(`rgba`)&&e!==`transparent`)return e}}}function ml(e,t){if(e instanceof Na){let n=ul(t,.35);for(let r of e.getObjects())if(r instanceof Xo){let e=r.stroke,i=r.fill;e&&(e.startsWith(`rgba`)||e===`transparent`)?(r.set({stroke:n}),i&&i.startsWith(`rgba`)&&r.set({fill:n})):r.set({stroke:t})}}}function hl(e,t,n){e.set({selectable:!1,evented:!1,data:{layer:`claude`,shapeType:t,...n&&{geo:n}}})}function gl(e){return e.fillStyle?e.fillStyle:e.fill===!1?`none`:`hachure`}function _l(e,t,n,r,i){let a=r-e,o=i-t;if(a===0&&o===0)return{x:e,y:t};let s=n.width/2,c=n.height/2,l=1/0;if(a!==0){let e=s/Math.abs(a),t=s/Math.abs(a),n=a>0?e:t;Math.abs(o*n)<=c&&(l=Math.min(l,n))}if(o!==0){let e=c/Math.abs(o),t=c/Math.abs(o),n=o>0?e:t;Math.abs(a*n)<=s&&(l=Math.min(l,n))}return isFinite(l)||(l=0),{x:e+a*l,y:t+o*l}}function vl(e,t){return e.getObjects().find(e=>e.data?.groupId===t)}function yl(e,t){for(let n of e.getObjects()){let r=n.data;if(r?.shapeType!==`connector`||r.fromId!==t&&r.toId!==t)continue;let i=vl(e,r.fromId),a=vl(e,r.toId);if(!i||!a)continue;let o=i.getBoundingRect(),s=a.getBoundingRect(),c=o.left+o.width/2,l=o.top+o.height/2,u=s.left+s.width/2,d=s.top+s.height/2,f=_l(c,l,o,u,d),p=_l(u,d,s,c,l);n instanceof Lc&&(n.x1=f.x,n.y1=f.y,n.x2=p.x,n.y2=p.y,n._setWidthHeight(),n.setCoords(),n.dirty=!0)}}function bl(e,t){let n=[];for(let r of t)switch(r.type){case`rect`:{let t=gl(r),i=al(r.x,r.y,r.width,r.height,t);hl(i,`rect`,{x:r.x,y:r.y,width:r.width,height:r.height}),t!==`hachure`&&(i.data.fillStyle=t),r.label&&(i.data.label=r.label),r.color&&ml(i,r.color),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`circle`:{let t=gl(r),i=ol(r.x,r.y,r.radius,t);hl(i,`circle`,{x:r.x,y:r.y,radius:r.radius}),t!==`hachure`&&(i.data.fillStyle=t),r.label&&(i.data.label=r.label),r.color&&ml(i,r.color),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`ellipse`:{let t=gl(r),i=sl(r.x,r.y,r.width/2,r.height/2,t);hl(i,`ellipse`,{x:r.x,y:r.y,width:r.width,height:r.height}),t!==`hachure`&&(i.data.fillStyle=t),r.label&&(i.data.label=r.label),r.color&&ml(i,r.color),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`line`:{let t=cl(r.x1,r.y1,r.x2,r.y2);hl(t,`line`),r.label&&(t.data.label=r.label),r.color&&ml(t,r.color),r.opacity!==void 0&&t.set({opacity:r.opacity}),e.add(t),n.push(t);break}case`arrow`:{let t=ll(r.x1,r.y1,r.x2,r.y2);hl(t,`arrow`),r.label&&(t.data.label=r.label),r.color&&ml(t,r.color),r.opacity!==void 0&&t.set({opacity:r.opacity}),e.add(t),n.push(t);break}case`text`:{let t=r.textAlign??`left`,i=new ps(r.content,{left:r.x,top:r.y,fontSize:r.fontSize??16,fontFamily:Vc,fill:r.color??`#B5651D`,textAlign:t,originX:t===`center`?`center`:t===`right`?`right`:`left`,fontWeight:r.fontWeight??`normal`,fontStyle:r.fontStyle??`normal`,underline:r.underline??!1,linethrough:r.linethrough??!1,selectable:!0,hasControls:!1});hl(i,`text`),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`freehand`:{if(r.points.length<2)break;let t=new Xo(r.points.map(([e,t],n)=>`${n===0?`M`:`L`} ${e} ${t}`).join(` `),{stroke:r.color??`#000000`,strokeWidth:Bc,fill:`transparent`,selectable:!0,hasControls:!1});hl(t,`freehand`),r.opacity!==void 0&&t.set({opacity:r.opacity}),e.add(t),n.push(t);break}case`group`:{if(r.id){let t=e.getObjects().find(e=>e.data?.groupId===r.id);t&&e.remove(t)}let t=new Na(bl({_objects:[],add(e){this._objects.push(e)}},r.commands),{selectable:!0,evented:!0,hasControls:!1});t.set({data:{layer:`claude`,shapeType:`group`,groupId:r.id}}),e.add(t),n.push(t);break}case`connector`:{let t=vl(e,r.from),i=vl(e,r.to);if(!t||!i)break;let a=t.getBoundingRect(),o=i.getBoundingRect(),s=a.left+a.width/2,c=a.top+a.height/2,l=o.left+o.width/2,u=o.top+o.height/2,d=_l(s,c,a,l,u),f=_l(l,u,o,s,c),p=new Lc([d.x,d.y,f.x,f.y],{strokeColor:U,roughness:1.5});p.set({selectable:!1,evented:!1,data:{layer:`claude`,shapeType:`connector`,fromId:r.from,toId:r.to}}),r.label&&(p.data.label=r.label),e.add(p),n.push(p);break}}return n}function xl(e){let t=[];for(let n of e.getObjects()){let r=n.data?.label;if(!r)continue;let i=n.getBoundingRect(),a=new ps(r,{left:i.left+i.width/2,top:i.top-4,fontSize:12,fontFamily:`sans-serif`,fill:`rgba(0,0,0,0.5)`,originX:`center`,originY:`bottom`,selectable:!1,evented:!1});e.add(a),t.push(a)}return t}function Sl(e){return{exportSVG:(0,C.useCallback)((t=!1)=>{let n=e.current;if(!n)return``;let r=t?xl(n):[],i=n.toSVG();for(let e of r)n.remove(e);return i},[]),exportPNG:(0,C.useCallback)((t=!1)=>{let n=e.current;if(!n)return``;let r=t?xl(n):[];n.requestRenderAll();let i=n.getObjects(),a;if(i.length===0)a=n.toDataURL({format:`png`,multiplier:1});else{let e=1/0,t=1/0,r=-1/0,o=-1/0;for(let n of i){let i=n.getBoundingRect();e=Math.min(e,i.left),t=Math.min(t,i.top),r=Math.max(r,i.left+i.width),o=Math.max(o,i.top+i.height)}a=n.toDataURL({format:`png`,multiplier:1,left:e-40,top:t-40,width:r-e+80,height:o-t+80})}for(let e of r)n.remove(e);return a},[]),exportJSON:(0,C.useCallback)(()=>{let t=e.current;if(!t)return`[]`;let n=[];for(let e of t.getObjects()){let t=e.data,r=t?.shapeType,i=t?.label,a=e.opacity!==void 0&&e.opacity!==1?e.opacity:void 0,o=pl(e),s=t?.fillStyle;if(r===`rect`){let t=e.getBoundingRect(),r={type:`rect`,x:Math.round(t.left),y:Math.round(t.top),width:Math.round(t.width),height:Math.round(t.height)};i&&(r.label=i),s&&s!==`hachure`&&(r.fillStyle=s),o&&(r.color=o),a!==void 0&&(r.opacity=a),n.push(r)}else if(r===`circle`){let t=e.getBoundingRect(),r=Math.round(Math.min(t.width,t.height)/2),c={type:`circle`,x:Math.round(t.left+t.width/2),y:Math.round(t.top+t.height/2),radius:r};i&&(c.label=i),s&&s!==`hachure`&&(c.fillStyle=s),o&&(c.color=o),a!==void 0&&(c.opacity=a),n.push(c)}else if(r===`ellipse`){let t=e.getBoundingRect(),r={type:`ellipse`,x:Math.round(t.left),y:Math.round(t.top),width:Math.round(t.width),height:Math.round(t.height)};i&&(r.label=i),s&&s!==`hachure`&&(r.fillStyle=s),o&&(r.color=o),a!==void 0&&(r.opacity=a),n.push(r)}else if(r===`line`||r===`arrow`){let t,s,c,l;if(e instanceof Ic||e instanceof Lc){let n=e.calcLinePoints(),r=e.calcOwnMatrix(),i=new z(n.x1,n.y1).transform(r),a=new z(n.x2,n.y2).transform(r);t=Math.round(i.x),s=Math.round(i.y),c=Math.round(a.x),l=Math.round(a.y)}else{let n=e.getBoundingRect();t=Math.round(n.left),s=Math.round(n.top),c=Math.round(n.left+n.width),l=Math.round(n.top+n.height)}let u={type:r,x1:t,y1:s,x2:c,y2:l};i&&(u.label=i),o&&(u.color=o),a!==void 0&&(u.opacity=a),n.push(u)}else if(r===`text`){let t=e,r=t.textAlign||`left`,i={type:`text`,x:Math.round(t.left??0),y:Math.round(t.top??0),content:t.text??``,fontSize:t.fontSize??16};r!==`left`&&(i.textAlign=r),t.fontWeight&&t.fontWeight!==`normal`&&(i.fontWeight=t.fontWeight),t.fontStyle&&t.fontStyle!==`normal`&&(i.fontStyle=t.fontStyle),t.underline&&(i.underline=!0),t.linethrough&&(i.linethrough=!0),o&&(i.color=o),a!==void 0&&(i.opacity=a),n.push(i)}else if(r===`freehand`&&e instanceof Xo){let t=e.path;if(!t)continue;let r=e.calcOwnMatrix(),i=[];for(let e of t)if(e[0]===`M`||e[0]===`L`){let t=new z(e[1],e[2]).transform(r);i.push([Math.round(t.x),Math.round(t.y)])}else if(e[0]===`Q`){let t=new z(e[3],e[4]).transform(r);i.push([Math.round(t.x),Math.round(t.y)])}if(i.length>=2){let e={type:`freehand`,points:i};o&&(e.color=o),a!==void 0&&(e.opacity=a),n.push(e)}}else if(r===`group`&&e instanceof Na){let r=t?.groupId;if(!r)continue;let i=[];for(let t of e.getObjects()){let e=t.data,n=e?.shapeType,r=e?.label,a=e?.geo;if(n===`rect`&&a){let t={type:`rect`,x:a.x,y:a.y,width:a.width,height:a.height};r&&(t.label=r),e?.fillStyle&&e.fillStyle!==`hachure`&&(t.fillStyle=e.fillStyle),i.push(t)}else if(n===`circle`&&a){let e={type:`circle`,x:a.x,y:a.y,radius:a.radius};r&&(e.label=r),i.push(e)}else if(n===`ellipse`&&a){let e={type:`ellipse`,x:a.x,y:a.y,width:a.width,height:a.height};r&&(e.label=r),i.push(e)}else n===`text`&&t instanceof ps&&i.push({type:`text`,x:Math.round(t.left??0),y:Math.round(t.top??0),content:t.text??``,fontSize:t.fontSize??16})}i.length>0&&n.push({type:`group`,id:r,commands:i})}else if(r===`connector`){let e=t?.fromId,r=t?.toId;if(e&&r){let t={type:`connector`,from:e,to:r};i&&(t.label=i),n.push(t)}}}return JSON.stringify({commands:n},null,2)},[])}}function Cl(e){return{zoomIn:(0,C.useCallback)(()=>{let t=e.current;if(!t)return;let n=t.getZoom()*1.2;n=Math.min(10,n);let r=new z(t.getWidth()/2,t.getHeight()/2);t.zoomToPoint(r,n),t.requestRenderAll()},[]),zoomOut:(0,C.useCallback)(()=>{let t=e.current;if(!t)return;let n=t.getZoom()/1.2;n=Math.max(.1,n);let r=new z(t.getWidth()/2,t.getHeight()/2);t.zoomToPoint(r,n),t.requestRenderAll()},[]),resetZoom:(0,C.useCallback)(()=>{let t=e.current;t&&(t.setViewportTransform([1,0,0,1,0,0]),t.requestRenderAll())},[]),fitToScreen:(0,C.useCallback)(()=>{let t=e.current;if(!t)return;let n=t.getObjects();if(n.length===0){t.setViewportTransform([1,0,0,1,0,0]),t.requestRenderAll();return}let r=1/0,i=1/0,a=-1/0,o=-1/0;for(let e of n){let t=e.getBoundingRect();r=Math.min(r,t.left),i=Math.min(i,t.top),a=Math.max(a,t.left+t.width),o=Math.max(o,t.top+t.height)}let s=a-r,c=o-i;if(s===0||c===0)return;let l=t.getWidth()-120,u=t.getHeight()-120,d=Math.min(l/s,u/c,3);t.setViewportTransform([1,0,0,1,0,0]);let f=(r+a)/2,p=(i+o)/2;t.zoomToPoint(new z(t.getWidth()/2,t.getHeight()/2),d);let m=t.viewportTransform;m[4]=t.getWidth()/2-f*d,m[5]=t.getHeight()/2-p*d,t.requestRenderAll()},[]),getZoom:(0,C.useCallback)(()=>e.current?.getZoom()??1,[])}}function wl(e,t,n,r){let i=(0,C.useRef)(null),a=(0,C.useRef)(r);a.current=r;let o=(0,C.useRef)(null),s=(0,C.useRef)(!1),c=(0,C.useRef)(!1),l=(0,C.useRef)({x:0,y:0});(0,C.useEffect)(()=>{let r=e.current,u=t.current;if(!r||!u)return;let d=u.clientWidth,f=u.clientHeight;r.width=d,r.height=f;let p=new No(r,{width:d,height:f,backgroundColor:`transparent`,selection:!0,stopContextMenu:!1,fireRightClick:!0});i.current=p,window.__fabricCanvas=p,p.on(`mouse:wheel`,e=>{let t=e.e,n=t.deltaY,r=p.getZoom();r*=.999**n,r=Math.min(10,Math.max(.1,r)),p.zoomToPoint(new z(t.offsetX,t.offsetY),r),t.preventDefault(),t.stopPropagation()});let m=e=>{e.code===`Space`&&(s.current=!0,p.defaultCursor=`grab`,p.selection=!1)},h=e=>{e.code===`Space`&&(s.current=!1,p.defaultCursor=`default`,p.selection=!0)};document.addEventListener(`keydown`,m),document.addEventListener(`keyup`,h),p.on(`mouse:down`,e=>{let t=e.e,r=n?.current===`hand`;(s.current||t.button===1||r&&t.button===0)&&(c.current=!0,l.current={x:t.clientX,y:t.clientY},p.defaultCursor=`grabbing`)}),p.on(`mouse:move`,e=>{if(!c.current)return;let t=e.e,n=t.clientX-l.current.x,r=t.clientY-l.current.y;l.current={x:t.clientX,y:t.clientY};let i=p.viewportTransform;i[4]+=n,i[5]+=r,p.requestRenderAll()}),p.on(`mouse:up`,()=>{if(c.current){c.current=!1;let e=n?.current===`hand`;p.defaultCursor=s.current||e?`grab`:`default`}});let g=new ResizeObserver(()=>{if(!u)return;let e=u.clientWidth,t=u.clientHeight;e>0&&t>0&&(p.setDimensions({width:e,height:t}),p.renderAll())});g.observe(u);let _=.75;return p.on(`before:render`,()=>{let e=p.getContext(),t=p.viewportTransform,n=t[0],r=t[4],i=t[5],o=a.current?.canvasBg??`#FAFAF7`,s=a.current?.dotColor??`#d4d4d4`;e.save(),e.setTransform(1,0,0,1,0,0),e.fillStyle=o,e.fillRect(0,0,p.getWidth(),p.getHeight()),e.restore();let c=Math.floor(-r/n/20)*20,l=Math.floor(-i/n/20)*20,u=Math.ceil((p.getWidth()-r)/n/20)*20,d=Math.ceil((p.getHeight()-i)/n/20)*20;e.save(),e.transform(t[0],t[1],t[2],t[3],t[4],t[5]),e.fillStyle=s;let f=_/n;_*.5,_*2;let m=Math.min(1.5,Math.max(.375,f));for(let t=c;t<=u;t+=20)for(let n=l;n<=d;n+=20)e.beginPath(),e.arc(t,n,m,0,Math.PI*2),e.fill();e.restore()}),p.on(`object:moving`,e=>{let t=e.target.data?.groupId;t&&(yl(p,t),p.requestRenderAll())}),p.on(`after:render`,()=>{let e=p.viewportTransform,t=e[0],n=e[4],r=e[5],i=[];for(let e of p.getObjects()){let a=e.data?.label;if(!a)continue;let o=e.getBoundingRect();i.push({text:a,x:o.left*t+n+o.width*t/2,y:o.top*t+r-20})}o.current?.(i)}),()=>{document.removeEventListener(`keydown`,m),document.removeEventListener(`keyup`,h),g.disconnect(),p.dispose(),i.current=null}},[e,t]),(0,C.useEffect)(()=>{i.current?.requestRenderAll()},[r]);let u=(0,C.useCallback)(()=>i.current,[]),d=(0,C.useCallback)(e=>{let t=i.current;if(!t||e.length===0)return;let n=1/0,r=1/0,a=-1/0,o=-1/0;for(let t of e){let e=t.getBoundingRect();n=Math.min(n,e.left),r=Math.min(r,e.top),a=Math.max(a,e.left+e.width),o=Math.max(o,e.top+e.height)}let s=(n+a)/2,c=(r+o)/2,l=t.getWidth(),u=t.getHeight(),d=t.viewportTransform,f=s*d[0]+d[4],p=c*d[3]+d[5];if(f<80||f>l-80||p<80||p>u-80){let e=l/2-s*d[0],n=u/2-c*d[3];Tl(d[4],d[5],e,n,t,d)}},[]),f=(0,C.useCallback)(e=>{let t=i.current;if(!t)return[];let n=bl(t,e);return t.renderAll(),n},[]),p=(0,C.useCallback)(()=>{let e=i.current;e&&(e.clear(),e.backgroundColor=`transparent`,e.renderAll())},[]),m=(0,C.useCallback)(()=>{let e=i.current;if(!e)return``;let t=e.getObjects();if(t.length===0)return e.toDataURL({format:`png`,multiplier:1});let n=1/0,r=1/0,a=-1/0,o=-1/0;for(let e of t){let t=e.getBoundingRect();n=Math.min(n,t.left),r=Math.min(r,t.top),a=Math.max(a,t.left+t.width),o=Math.max(o,t.top+t.height)}return e.toDataURL({format:`png`,multiplier:1,left:n-40,top:r-40,width:a-n+80,height:o-r+80})},[]),{exportSVG:h,exportPNG:g,exportJSON:_}=Sl(i),v=(0,C.useCallback)(e=>{let t=i.current;if(!t)return;let n=t.getObjects().filter(t=>t.data?.layer===e);for(let e of n)t.remove(e);t.renderAll()},[]),{zoomIn:y,zoomOut:b,resetZoom:x,fitToScreen:S,getZoom:w}=Cl(i);return{renderCommands:f,clear:p,clearLayer:v,takeScreenshot:m,autopan:d,getCanvas:u,spaceDownRef:s,zoomIn:y,zoomOut:b,resetZoom:x,fitToScreen:S,getZoom:w,onLabelsUpdate:(0,C.useCallback)(e=>{o.current=e},[]),exportSVG:h,exportPNG:g,exportJSON:_}}function Tl(e,t,n,r,i,a){let o=performance.now();function s(c){let l=Math.min((c-o)/400,1),u=l<.5?2*l*l:-1+(4-2*l)*l;a[4]=e+(n-e)*u,a[5]=t+(r-t)*u,i.requestRenderAll(),l<1&&requestAnimationFrame(s)}requestAnimationFrame(s)}function El(e){let{renderCommands:t,clear:n,clearLayer:r,takeScreenshot:i,autopan:a,getCanvas:o,exportSVG:s,exportPNG:c,exportJSON:l,onAskBatch:u,getAllAnswers:d,getQuestionsState:f,narrationRef:p,sendRef:m}=e,h=(0,C.useRef)(d);h.current=d;let g=(0,C.useRef)(f);g.current=f;let _=async()=>{let e=o();if(!e)return;let t=i();if(!h.current||!g.current){m.current?.({type:`screenshot_response`,payload:{image:t,answers:[]}});return}let n=h.current(),r=g.current(),a=[],s=e.toJSON();for(let t of n){let n=r.find(e=>e.question.id===t.questionId);if(n&&n.question.type===`canvas`){await e.loadFromJSON(n.canvasJson),e.requestRenderAll();let r=i();a.push({...t,canvasSnapshot:r})}else a.push(t)}await e.loadFromJSON(s),e.requestRenderAll(),m.current?.({type:`screenshot_response`,payload:{image:t,answers:a}})},v=(0,C.useCallback)(async()=>{let e=o();if(!e)return;let t=i();if(!h.current||!g.current){m.current?.({type:`answers_submitted`,payload:{image:t,answers:[]}});return}let n=h.current(),r=g.current(),a=[],s=e.toJSON();for(let t of n){let n=r.find(e=>e.question.id===t.questionId);if(n&&n.question.type===`canvas`){await e.loadFromJSON(n.canvasJson),e.requestRenderAll();let r=i();a.push({...t,canvasSnapshot:r})}else a.push(t)}await e.loadFromJSON(s),e.requestRenderAll(),m.current?.({type:`answers_submitted`,payload:{image:t,answers:a}})},[o,i]);return{handleMessage:(0,C.useCallback)(e=>{if(e.type===`draw`){let n=e.payload;n?.narration&&p.current?.animateText(n.narration),n?.commands&&a(t(n.commands))}else if(e.type===`ask`){let r=e.payload;if(r?.questions&&u){let e=o();if(!e)return;let i=[];for(let a of r.questions)n(),a.commands&&t(a.commands),e.forEachObject(e=>{e.set({selectable:!0,evented:!0})}),e.requestRenderAll(),i.push({question:a,canvasJson:e.toJSON()});i.length>0&&e.loadFromJSON(i[0].canvasJson).then(()=>e.requestRenderAll()),u(i)}}else if(e.type===`clear`){let t=e.payload;t?r(t):n()}else if(e.type===`export_request`){let t=e.payload;if(t){let e;e=t.format===`json`?l():t.format===`svg`?s(t.labels):c(t.labels),m.current?.({type:`export_response`,payload:e})}}else e.type===`screenshot_request`&&_()},[t,n,r,i,a,o,d,f,u,s,c,l]),submitAnswers:v}}function Dl({onMessage:e}){let t=(0,C.useRef)(null),n=(0,C.useRef)(e);return n.current=e,(0,C.useEffect)(()=>{let e=!1,r,i=1e3;function a(){if(e)return;let o=location.protocol===`https:`?`wss:`:`ws:`,s=new WebSocket(`${o}//${location.host}/ws`);t.current=s,s.onopen=()=>{i=1e3,window.dispatchEvent(new CustomEvent(`ws-status`,{detail:`connected`}))},s.onclose=()=>{window.dispatchEvent(new CustomEvent(`ws-status`,{detail:`disconnected`})),e||(r=setTimeout(a,i),i=Math.min(i*2,3e4))},s.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}n.current(t)}}return a(),()=>{e=!0,clearTimeout(r),t.current?.close()}},[]),{send:(0,C.useCallback)(e=>{t.current?.readyState===WebSocket.OPEN&&t.current.send(JSON.stringify(e))},[])}}function Ol(e){return e.data?.layer===`user`}function kl(e,t,n){e.set({data:{layer:`user`,...t&&{shapeType:t},...n&&{geo:n}}})}function Al({getCanvas:e,activeTool:t,color:n,brushSize:r,spaceDownRef:i,selectTool:a,saveSnapshot:o}){let s=(0,C.useRef)(!1),c=(0,C.useRef)({x:0,y:0}),l=(0,C.useRef)(null),u=(0,C.useRef)(null),d=t===`rect`||t===`circle`||t===`arrow`||t===`line`;return{onMouseDown:f=>{if(i.current||f.e.button===2)return;let p=e();if(!p)return;let m=p.getScenePoint(f.e);if(t===`paint`){let e=p.getScenePoint(f.e),t=p.getObjects().filter(e=>Ol(e)),r=null;for(let n=t.length-1;n>=0;n--)if(t[n].containsPoint(e)){r=t[n];break}if(r){if(r instanceof Ic||r instanceof Lc)r.strokeColor=n;else if(r instanceof Ds)r.set({fill:n});else if(r instanceof Xo)r.set({stroke:n});else if(r instanceof Na){let e=ul(n,.35),t=r.getObjects();for(let r of t)if(r instanceof Xo){let t=r.stroke,i=r.fill;t&&(t.startsWith(`rgba`)||t===`transparent`)?(r.set({stroke:e}),i&&i.startsWith(`rgba`)&&r.set({fill:e})):r.set({stroke:n})}}p.requestRenderAll(),o?.()}return}if(t===`text`){let e=p.getActiveObject();if(e instanceof Ds&&e.isEditing){e.exitEditing(),e.text?.trim()||p.remove(e),u.current=e.text?.trim()?e:null,a(`pointer`);return}let t=new Ds(``,{left:m.x,top:m.y,originX:`left`,originY:`top`,fontSize:16+r*2,fontFamily:`Patrick Hand, cursive`,fill:n,selectable:!0,hasControls:!0});kl(t,`text`),p.add(t),p.setActiveObject(t),t.enterEditing(),p.requestRenderAll();return}if(d){if(s.current=!0,c.current={x:m.x,y:m.y},t===`rect`){let e=new Sa({left:m.x,top:m.y,originX:`left`,originY:`top`,width:0,height:0,fill:`transparent`,stroke:n,strokeWidth:1,strokeDashArray:[5,5],selectable:!1,evented:!1});l.current=e,p.add(e)}else if(t===`circle`){let e=new is({left:m.x,top:m.y,originX:`left`,originY:`top`,rx:0,ry:0,fill:`transparent`,stroke:n,strokeWidth:1,strokeDashArray:[5,5],selectable:!1,evented:!1});l.current=e,p.add(e)}else if(t===`line`){let e=new Ic([m.x,m.y,m.x,m.y],{strokeColor:n,selectable:!1,evented:!1});l.current=e,p.add(e)}else if(t===`arrow`){let e=new Lc([m.x,m.y,m.x,m.y],{strokeColor:n,selectable:!1,evented:!1});l.current=e,p.add(e)}}},onMouseMove:n=>{if(!s.current||!l.current||i.current)return;let r=e();if(!r)return;let a=r.getScenePoint(n.e),o=c.current,u=n.e.shiftKey;if(t===`rect`){let e=l.current,t=Math.abs(a.x-o.x),n=Math.abs(a.y-o.y);if(u){let e=Math.max(t,n);t=e,n=e}let r=Math.min(o.x,a.x),i=Math.min(o.y,a.y);e.set({left:r,top:i,width:t,height:n})}else if(t===`circle`){let e=l.current,t=Math.abs(a.x-o.x),n=Math.abs(a.y-o.y);if(u){let e=Math.max(t,n);t=e,n=e}let r=Math.min(o.x,a.x),i=Math.min(o.y,a.y);e.set({left:r,top:i,rx:t/2,ry:n/2})}else if(t===`arrow`||t===`line`){let e=l.current,t=a.x,n=a.y;if(u){let e=Math.abs(t-o.x),r=Math.abs(n-o.y),i=Math.atan2(r,e),a=Math.sqrt(e*e+r*r),s=Math.round(i/(Math.PI/4))*(Math.PI/4);t=o.x+Math.cos(s)*a*Math.sign(t-o.x||1),n=o.y+Math.sin(s)*a*Math.sign(n-o.y||1)}e.set({x2:t,y2:n}),e._setWidthHeight(),e.setCoords()}r.requestRenderAll()},onMouseUp:r=>{if(!s.current||i.current){s.current=!1;return}let d=e();if(!d)return;s.current=!1;let f=d.getScenePoint(r.e),p=c.current,m=f.x-p.x,h=f.y-p.y;if(Math.abs(m)<5&&Math.abs(h)<5){l.current&&=(d.remove(l.current),null);return}let g=null;if((t===`line`||t===`arrow`)&&l.current){let e=l.current;e.set({selectable:!0,evented:!0}),kl(e,t),l.current=null,g=e,o?.()}else{l.current&&=(d.remove(l.current),null);let e=r.e.shiftKey,i=Math.abs(m),a=Math.abs(h);if(e&&(t===`rect`||t===`circle`)){let e=Math.max(i,a);i=e,a=e}let o=Math.min(p.x,f.x),s=Math.min(p.y,f.y);if(t===`rect`){let e=dl(o,s,i,a,n);kl(e,`rect`,{x:o,y:s,width:i,height:a}),d.add(e),g=e}else if(t===`circle`){let e=fl(o,s,i,a,n);kl(e,`ellipse`,{x:o,y:s,width:i,height:a}),d.add(e),g=e}}d.requestRenderAll(),g&&(u.current=g,a(`pointer`))},ghostRef:l,isDraggingRef:s,pendingSelectRef:u}}function jl(e){return e.data?.layer===`user`}function Ml(e){e.set({data:{layer:`user`}})}function Nl(e){let t=(0,C.useRef)([]),n=(0,C.useRef)(e.getCanvas);n.current=e.getCanvas;let r=(0,C.useRef)(e.saveSnapshot);r.current=e.saveSnapshot;let i=(0,C.useCallback)((e,t,r)=>{let i=n.current();if(!i)return;let a=new FileReader;a.onload=()=>{let e=a.result,n=new Image;n.onload=()=>{let e=new zs(n,{left:t,top:r,originX:`left`,originY:`top`});Ml(e),i.add(e),i.setActiveObject(e),i.requestRenderAll()},n.src=e},a.readAsDataURL(e)},[]);return{onKeyDown:(0,C.useCallback)(e=>{let r=e.target;if(r.tagName===`INPUT`||r.tagName===`TEXTAREA`||r.isContentEditable)return;let i=n.current();if(i){if(e.key===`Escape`){i.discardActiveObject(),i.requestRenderAll();return}if((e.metaKey||e.ctrlKey)&&e.key===`c`){let n=i.getActiveObject();if(n&&n.isEditing)return;let r=i.getActiveObjects().filter(jl);r.length>0&&(t.current=r,e.preventDefault());return}if((e.metaKey||e.ctrlKey)&&e.key===`v`){if(t.current.length===0)return;e.preventDefault();let n=t.current.map(e=>e.clone());Promise.all(n).then(e=>{i.discardActiveObject();for(let t of e)t.set({left:(t.left??0)+20,top:(t.top??0)+20}),t.data={layer:`user`},i.add(t);e.length===1&&i.setActiveObject(e[0]),i.requestRenderAll(),t.current=e});return}if(e.key===`Delete`||e.key===`Backspace`){let e=i.getActiveObject();if(e&&e.isEditing)return;let t=i.getActiveObjects().filter(jl);for(let e of t)i.remove(e);i.discardActiveObject(),i.requestRenderAll()}}},[]),onPaste:(0,C.useCallback)(e=>{let t=n.current();if(!t)return;let r=e.clipboardData?.items;if(r){for(let n of r)if(n.type.startsWith(`image/`)){e.preventDefault();let r=n.getAsFile();if(!r)continue;i(r,(t.width??800)/2,(t.height??600)/2);break}}},[i]),onDragOver:(0,C.useCallback)(e=>{e.preventDefault()},[]),onDrop:(0,C.useCallback)(e=>{e.preventDefault();let t=n.current();if(!t)return;let r=e.dataTransfer?.files;if(r)for(let n of r){if(!n.type.startsWith(`image/`))continue;let r=t.getScenePoint(e);i(n,r.x,r.y)}},[i])}}function Pl(e){let t=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="${e}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z"/><path d="m5 2 5 5"/><path d="M2 13h15"/><path d="M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z"/></svg>`;return`url("data:image/svg+xml;base64,${btoa(t)}") 2 22, pointer`}function Fl(e){return e.data?.layer===`user`}function Il(e,t,n){e.set({data:{layer:`user`,...t&&{shapeType:t},...n&&{geo:n}}})}function Ll({getCanvas:e,activeTool:t,color:n,brushSize:r,spaceDownRef:i,selectTool:a,resolvedTheme:o,saveSnapshot:s,pauseHistory:c,resumeHistory:l}){let u=(0,C.useRef)(!1),{onMouseDown:d,onMouseMove:f,onMouseUp:p,ghostRef:m,isDraggingRef:h,pendingSelectRef:g}=Al({getCanvas:e,activeTool:t,color:n,brushSize:r,spaceDownRef:i,selectTool:a,saveSnapshot:s}),{onKeyDown:_,onPaste:v,onDragOver:y,onDrop:b}=Nl({getCanvas:e,saveSnapshot:s});(0,C.useEffect)(()=>{let t=e();if(!t)return;let r=t.getActiveObject();r&&Fl(r)&&r instanceof Ds&&(r.set({fill:n}),t.requestRenderAll())},[n,e]),(0,C.useEffect)(()=>{let i=e();if(!i)return;let x=t===`pencil`||t===`marker`,S=t===`rect`||t===`circle`||t===`arrow`||t===`line`,C=t===`pointer`,w=t===`hand`;if(i.isDrawingMode=!1,i.selection=C,h.current=!1,C?i.defaultCursor=`default`:w?(i.defaultCursor=`grab`,i.selection=!1):x||S?i.defaultCursor=`crosshair`:t===`text`?i.defaultCursor=`text`:t===`paint`&&(i.defaultCursor=`pointer`),m.current&&=(i.remove(m.current),null),g.current?(i.setActiveObject(g.current),g.current=null):i.discardActiveObject(),i.requestRenderAll(),x){i.isDrawingMode=!0,i.freeDrawingBrush||=new Zo(i);let e=i.freeDrawingBrush;e.color=n,e.decimate=4,t===`pencil`?e.width=r:t===`marker`&&(e.color=`rgba(255, 230, 0, 0.4)`,e.width=16)}let T=t===`paint`,ee=C||T,E=T?Pl(o===`dark`?`white`:`black`):void 0;i.forEachObject(e=>{e.selectable=ee,e.evented=ee,e.hoverCursor=E??null});let D=e=>{let n=e.target;n.text?.trim()||(i.remove(n),i.discardActiveObject()),t===`text`&&(n.text?.trim()&&(g.current=n),a(`pointer`))},te=e=>{e.path&&(Il(e.path,`freehand`),s?.(),g.current=e.path,a(`pointer`))},O=i.getSelectionElement(),k=t=>{if(u.current)return;let r=t.target;if(!(r instanceof Na)||!Fl(r))return;let i=r.data,a=i?.shapeType;if(!a||![`rect`,`ellipse`].includes(a))return;let o=r.scaleX??1,d=r.scaleY??1;if(Math.abs(o-1)<.001&&Math.abs(d-1)<.001)return;u.current=!0;let f=e();if(!f){u.current=!1;return}let p=i?.geo,m=p?.width??100,h=p?.height??100,g=Math.round(m*o),_=Math.round(h*d),v=r.getBoundingRect(),y=Math.round(v.left),b=Math.round(v.top),x=pl(r)||n,S=i?.fillStyle,C;C=a===`rect`?dl(y,b,g,_,x,S):fl(y,b,g,_,x,S),C.set({data:{...i,geo:{x:y,y:b,width:g,height:_}},opacity:r.opacity,selectable:!0,evented:!0,hasControls:!0}),c?.();let w=f.getObjects().indexOf(r);f.remove(r),f.insertAt(w,C),l?.(),f.setActiveObject(C),f.requestRenderAll(),u.current=!1,s?.()};return i.on(`mouse:down`,d),i.on(`mouse:move`,f),i.on(`mouse:up`,p),i.on(`text:editing:exited`,D),i.on(`object:modified`,k),x&&i.on(`path:created`,te),document.addEventListener(`keydown`,_),document.addEventListener(`paste`,v),O&&(O.addEventListener(`dragover`,y),O.addEventListener(`drop`,b)),()=>{i.off(`mouse:down`,d),i.off(`mouse:move`,f),i.off(`mouse:up`,p),i.off(`text:editing:exited`,D),i.off(`object:modified`,k),x&&i.off(`path:created`,te),document.removeEventListener(`keydown`,_),document.removeEventListener(`paste`,v),O&&(O.removeEventListener(`dragover`,y),O.removeEventListener(`drop`,b))}},[e,t,n,r,i,a,o,s,c,l,_,v,y,b])}var Rl=50;function zl(e){return!!e.data?.layer}function Bl(e){let t=e.getObjects().filter(zl).map(e=>e.toObject([`data`,`originX`,`originY`]));return JSON.stringify(t)}function Vl({getCanvas:e}){let t=(0,C.useRef)([]),n=(0,C.useRef)(-1),r=(0,C.useRef)(!1),i=(0,C.useRef)(!1),a=(0,C.useCallback)(()=>{if(r.current||i.current)return;let a=e();if(!a)return;let o=Bl(a);n.current<t.current.length-1&&(t.current=t.current.slice(0,n.current+1)),t.current[t.current.length-1]!==o&&(t.current.push(o),t.current.length>Rl&&t.current.shift(),n.current=t.current.length-1)},[e]),o=(0,C.useCallback)(async t=>{let n=e();if(!n)return;r.current=!0;let i=n.getObjects().filter(zl);for(let e of i)n.remove(e);let a=JSON.parse(t);if(a.length>0){let e=await uo.enlivenObjects(a);for(let t of e)n.add(t)}n.discardActiveObject(),n.requestRenderAll(),r.current=!1},[e]),s=(0,C.useCallback)(async()=>{n.current<=0||(n.current--,await o(t.current[n.current]))},[o]),c=(0,C.useCallback)(async()=>{n.current>=t.current.length-1||(n.current++,await o(t.current[n.current]))},[o]),l=(0,C.useCallback)(()=>{i.current=!0},[]),u=(0,C.useCallback)(()=>{i.current=!1},[]);return(0,C.useEffect)(()=>{let n=e();if(!n)return;t.current.length===0&&a();let r=e=>{e.target.data?.layer&&a()},i=()=>a();return n.on(`object:added`,r),n.on(`object:removed`,r),n.on(`object:modified`,i),()=>{n.off(`object:added`,r),n.off(`object:removed`,r),n.off(`object:modified`,i)}},[e,a]),{undo:s,redo:c,saveSnapshot:a,pauseHistory:l,resumeHistory:u}}var Hl=5,W=`#FF1493`;function G(e){let t=e.getBoundingRect();return{left:t.left,right:t.left+t.width,centerX:t.left+t.width/2,top:t.top,bottom:t.top+t.height,centerY:t.top+t.height/2}}function Ul({getCanvas:e}){let t=(0,C.useRef)([]);(0,C.useEffect)(()=>{let n=e();if(!n)return;function r(){let n=e();if(n){for(let e of t.current)n.remove(e);t.current=[]}}function i(e){return new ts(e,{stroke:W,strokeWidth:.5,strokeDashArray:[4,4],selectable:!1,evented:!1,excludeFromExport:!0})}let a=n=>{let a=e();if(!a)return;r();let o=n.target,s=G(o),c=a.width??2e3,l=a.height??2e3,u=a.getObjects().filter(e=>e!==o&&!t.current.includes(e)),d=!1,f=!1;o.getBoundingRect();for(let e of u){if(d&&f)break;let n=G(e);if(!d){let e=[[s.left,n.left],[s.left,n.right],[s.left,n.centerX],[s.right,n.left],[s.right,n.right],[s.right,n.centerX],[s.centerX,n.left],[s.centerX,n.right],[s.centerX,n.centerX]];for(let[n,r]of e){let e=r-n;if(Math.abs(e)<Hl){o.set({left:(o.left??0)+e}),o.setCoords();let n=i([r,0,r,l]);a.add(n),t.current.push(n),d=!0;break}}}if(!f){let e=[[s.top,n.top],[s.top,n.bottom],[s.top,n.centerY],[s.bottom,n.top],[s.bottom,n.bottom],[s.bottom,n.centerY],[s.centerY,n.top],[s.centerY,n.bottom],[s.centerY,n.centerY]];for(let[n,r]of e){let e=r-n;if(Math.abs(e)<Hl){o.set({top:(o.top??0)+e}),o.setCoords();let n=i([0,r,c,r]);a.add(n),t.current.push(n),f=!0;break}}}}a.requestRenderAll()},o=()=>{r();let t=e();t&&t.requestRenderAll()};return n.on(`object:moving`,a),n.on(`object:modified`,o),n.on(`mouse:up`,o),()=>{r(),n.off(`object:moving`,a),n.off(`object:modified`,o),n.off(`mouse:up`,o)}},[e])}function Wl(e){return e.data?.layer===`user`}function Gl(e){let{getCanvas:t,saveSnapshot:n}=e,[r,i]=(0,C.useState)(null),a=e=>{let n=t();if(!n)return;let r=e.getBoundingRect(),a=n.viewportTransform,o=a[0],s=a[4],c=a[5];i({target:e,x:r.left*o+s+r.width*o/2,y:r.top*o+c-20,value:e.data?.label??``})};return(0,C.useEffect)(()=>{let e=t();if(!e)return;let n=e=>{e.target&&Wl(e.target)&&(e.target instanceof Ds||a(e.target))};return e.on(`mouse:dblclick`,n),()=>{e.off(`mouse:dblclick`,n)}},[t]),{labelEdit:r,setLabelEdit:i,startLabelEdit:a,commitLabelEdit:()=>{if(!r)return;let e=t();if(!e)return;let a=r.value.trim();r.target.data||(r.target.data={}),a?r.target.data.label=a:delete r.target.data.label,e.requestRenderAll(),n(),i(null)}}}function Kl(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Kl(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function ql(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Kl(e))&&(r&&(r+=` `),r+=t);return r}var Jl=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Yl=ql,Xl=(e,t)=>n=>{if(t?.variants==null)return Yl(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Jl(t)||Jl(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return Yl(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};function Zl(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Ql(...e){return t=>{let n=!1,r=e.map(e=>{let r=Zl(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Zl(e[t],null)}}}}function K(...e){return C.useCallback(Ql(...e),e)}var $l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),q=o(((e,t)=>{t.exports=$l()}))();function eu(e){let t=tu(e),n=C.forwardRef((e,n)=>{let{children:r,...i}=e,a=C.Children.toArray(r),o=a.find(ru);if(o){let e=o.props.children,r=a.map(t=>t===o?C.Children.count(e)>1?C.Children.only(null):C.isValidElement(e)?e.props.children:null:t);return(0,q.jsx)(t,{...i,ref:n,children:C.isValidElement(e)?C.cloneElement(e,void 0,r):null})}return(0,q.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function tu(e){let t=C.forwardRef((e,t)=>{let{children:n,...r}=e;if(C.isValidElement(n)){let e=au(n),i=iu(r,n.props);return n.type!==C.Fragment&&(i.ref=t?Ql(t,e):e),C.cloneElement(n,i)}return C.Children.count(n)>1?C.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var nu=Symbol(`radix.slottable`);function ru(e){return C.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===nu}function iu(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function au(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ou=c(m(),1),J=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=eu(`Primitive.${t}`),r=C.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,q.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function su(e,t){e&&ou.flushSync(()=>e.dispatchEvent(t))}var cu=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),lu=`VisuallyHidden`,uu=C.forwardRef((e,t)=>(0,q.jsx)(J.span,{...e,ref:t,style:{...cu,...e.style}}));uu.displayName=lu;var du=uu;function fu(e,t=[]){let n=[];function r(t,r){let i=C.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=C.useMemo(()=>o,Object.values(o));return(0,q.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=C.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>C.createContext(e));return function(n){let r=n?.[e]||t;return C.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,pu(i,...t)]}function pu(...e){let t=e[0];if(e.length===1)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 C.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function mu(e){let t=hu(e),n=C.forwardRef((e,n)=>{let{children:r,...i}=e,a=C.Children.toArray(r),o=a.find(_u);if(o){let e=o.props.children,r=a.map(t=>t===o?C.Children.count(e)>1?C.Children.only(null):C.isValidElement(e)?e.props.children:null:t);return(0,q.jsx)(t,{...i,ref:n,children:C.isValidElement(e)?C.cloneElement(e,void 0,r):null})}return(0,q.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function hu(e){let t=C.forwardRef((e,t)=>{let{children:n,...r}=e;if(C.isValidElement(n)){let e=yu(n),i=vu(r,n.props);return n.type!==C.Fragment&&(i.ref=t?Ql(t,e):e),C.cloneElement(n,i)}return C.Children.count(n)>1?C.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gu=Symbol(`radix.slottable`);function _u(e){return C.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===gu}function vu(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function yu(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function bu(e){let t=e+`CollectionProvider`,[n,r]=fu(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=C.useRef(null),a=C.useRef(new Map).current;return(0,q.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=mu(s),l=C.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,q.jsx)(c,{ref:K(t,a(s,n).collectionRef),children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=mu(u),p=C.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=C.useRef(null),s=K(t,o),c=a(u,n);return C.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,q.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return C.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:l,ItemSlot:p},m,r]}typeof window<`u`&&window.document&&window.document.createElement;function Y(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var xu=globalThis?.document?C.useLayoutEffect:()=>{},Su=C.useInsertionEffect||xu;function Cu({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=wu({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=C.useRef(e!==void 0);C.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,C.useCallback(t=>{if(s){let n=Tu(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function wu({defaultProp:e,onChange:t}){let[n,r]=C.useState(e),i=C.useRef(n),a=C.useRef(t);return Su(()=>{a.current=t},[t]),C.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function Tu(e){return typeof e==`function`}function Eu(e,t){return C.useReducer((e,n)=>t[e][n]??e,e)}var Du=e=>{let{present:t,children:n}=e,r=Ou(t),i=typeof n==`function`?n({present:r.isPresent}):C.Children.only(n),a=K(r.ref,Au(i));return typeof n==`function`||r.isPresent?C.cloneElement(i,{ref:a}):null};Du.displayName=`Presence`;function Ou(e){let[t,n]=C.useState(),r=C.useRef(null),i=C.useRef(e),a=C.useRef(`none`),[o,s]=Eu(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return C.useEffect(()=>{let e=ku(r.current);a.current=o===`mounted`?e:`none`},[o]),xu(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=ku(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),xu(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=ku(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=ku(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:C.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function ku(e){return e?.animationName||`none`}function Au(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ju=C.useId||(()=>void 0),Mu=0;function Nu(e){let[t,n]=C.useState(ju());return xu(()=>{e||n(e=>e??String(Mu++))},[e]),e||(t?`radix-${t}`:``)}var Pu=C.createContext(void 0);function Fu(e){let t=C.useContext(Pu);return e||t||`ltr`}function Iu(e){let t=C.useRef(e);return C.useEffect(()=>{t.current=e}),C.useMemo(()=>(...e)=>t.current?.(...e),[])}function Lu(e,t=globalThis?.document){let n=Iu(e);C.useEffect(()=>{let e=e=>{e.key===`Escape`&&n(e)};return t.addEventListener(`keydown`,e,{capture:!0}),()=>t.removeEventListener(`keydown`,e,{capture:!0})},[n,t])}var Ru=`DismissableLayer`,zu=`dismissableLayer.update`,Bu=`dismissableLayer.pointerDownOutside`,Vu=`dismissableLayer.focusOutside`,Hu,Uu=C.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Wu=C.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:o,onDismiss:s,...c}=e,l=C.useContext(Uu),[u,d]=C.useState(null),f=u?.ownerDocument??globalThis?.document,[,p]=C.useState({}),m=K(t,e=>d(e)),h=Array.from(l.layers),[g]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),_=h.indexOf(g),v=u?h.indexOf(u):-1,y=l.layersWithOutsidePointerEventsDisabled.size>0,b=v>=_,x=qu(e=>{let t=e.target,n=[...l.branches].some(e=>e.contains(t));!b||n||(i?.(e),o?.(e),e.defaultPrevented||s?.())},f),S=Ju(e=>{let t=e.target;[...l.branches].some(e=>e.contains(t))||(a?.(e),o?.(e),e.defaultPrevented||s?.())},f);return Lu(e=>{v===l.layers.size-1&&(r?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))},f),C.useEffect(()=>{if(u)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(Hu=f.body.style.pointerEvents,f.body.style.pointerEvents=`none`),l.layersWithOutsidePointerEventsDisabled.add(u)),l.layers.add(u),Yu(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=Hu)}},[u,f,n,l]),C.useEffect(()=>()=>{u&&(l.layers.delete(u),l.layersWithOutsidePointerEventsDisabled.delete(u),Yu())},[u,l]),C.useEffect(()=>{let e=()=>p({});return document.addEventListener(zu,e),()=>document.removeEventListener(zu,e)},[]),(0,q.jsx)(J.div,{...c,ref:m,style:{pointerEvents:y?b?`auto`:`none`:void 0,...e.style},onFocusCapture:Y(e.onFocusCapture,S.onFocusCapture),onBlurCapture:Y(e.onBlurCapture,S.onBlurCapture),onPointerDownCapture:Y(e.onPointerDownCapture,x.onPointerDownCapture)})});Wu.displayName=Ru;var Gu=`DismissableLayerBranch`,Ku=C.forwardRef((e,t)=>{let n=C.useContext(Uu),r=C.useRef(null),i=K(t,r);return C.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,q.jsx)(J.div,{...e,ref:i})});Ku.displayName=Gu;function qu(e,t=globalThis?.document){let n=Iu(e),r=C.useRef(!1),i=C.useRef(()=>{});return C.useEffect(()=>{let e=e=>{if(e.target&&!r.current){let r=function(){Xu(Bu,n,a,{discrete:!0})},a={originalEvent:e};e.pointerType===`touch`?(t.removeEventListener(`click`,i.current),i.current=r,t.addEventListener(`click`,i.current,{once:!0})):r()}else t.removeEventListener(`click`,i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener(`pointerdown`,e)},0);return()=>{window.clearTimeout(a),t.removeEventListener(`pointerdown`,e),t.removeEventListener(`click`,i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Ju(e,t=globalThis?.document){let n=Iu(e),r=C.useRef(!1);return C.useEffect(()=>{let e=e=>{e.target&&!r.current&&Xu(Vu,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Yu(){let e=new CustomEvent(zu);document.dispatchEvent(e)}function Xu(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?su(i,a):i.dispatchEvent(a)}var Zu=`focusScope.autoFocusOnMount`,Qu=`focusScope.autoFocusOnUnmount`,$u={bubbles:!1,cancelable:!0},ed=`FocusScope`,td=C.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=C.useState(null),l=Iu(i),u=Iu(a),d=C.useRef(null),f=K(t,e=>c(e)),p=C.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;C.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:cd(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||cd(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&cd(s)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),C.useEffect(()=>{if(s){ld.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(Zu,$u);s.addEventListener(Zu,l),s.dispatchEvent(t),t.defaultPrevented||(nd(fd(id(s)),{select:!0}),document.activeElement===e&&cd(s))}return()=>{s.removeEventListener(Zu,l),setTimeout(()=>{let t=new CustomEvent(Qu,$u);s.addEventListener(Qu,u),s.dispatchEvent(t),t.defaultPrevented||cd(e??document.body,{select:!0}),s.removeEventListener(Qu,u),ld.remove(p)},0)}}},[s,l,u,p]);let m=C.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=rd(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&cd(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&cd(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,q.jsx)(J.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})});td.displayName=ed;function nd(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(cd(r,{select:t}),document.activeElement!==n)return}function rd(e){let t=id(e);return[ad(t,e),ad(t.reverse(),e)]}function id(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;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 ad(e,t){for(let n of e)if(!od(n,{upTo:t}))return n}function od(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function sd(e){return e instanceof HTMLInputElement&&`select`in e}function cd(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&sd(e)&&t&&e.select()}}var ld=ud();function ud(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=dd(e,t),e.unshift(t)},remove(t){e=dd(e,t),e[0]?.resume()}}}function dd(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function fd(e){return e.filter(e=>e.tagName!==`A`)}var pd=`Portal`,md=C.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=C.useState(!1);xu(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?ou.createPortal((0,q.jsx)(J.div,{...r,ref:t}),o):null});md.displayName=pd;var hd=0;function gd(){C.useEffect(()=>{let e=document.querySelectorAll(`[data-radix-focus-guard]`);return document.body.insertAdjacentElement(`afterbegin`,e[0]??_d()),document.body.insertAdjacentElement(`beforeend`,e[1]??_d()),hd++,()=>{hd===1&&document.querySelectorAll(`[data-radix-focus-guard]`).forEach(e=>e.remove()),hd--}},[])}function _d(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var vd=function(){return vd=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},vd.apply(this,arguments)};function yd(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function bd(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var xd=`right-scroll-bar-position`,X=`width-before-scroll-bar`,Sd=`with-scroll-bars-hidden`,Cd=`--removed-body-scroll-bar-size`;function wd(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function Td(e,t){var n=(0,C.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var Ed=typeof window<`u`?C.useLayoutEffect:C.useEffect,Dd=new WeakMap;function Od(e,t){var n=Td(t||null,function(t){return e.forEach(function(e){return wd(e,t)})});return Ed(function(){var t=Dd.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||wd(e,null)}),i.forEach(function(e){r.has(e)||wd(e,a)})}Dd.set(n,e)},[e]),n}function kd(e){return e}function Ad(e,t){t===void 0&&(t=kd);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function jd(e){e===void 0&&(e={});var t=Ad(null);return t.options=vd({async:!0,ssr:!1},e),t}var Md=function(e){var t=e.sideCar,n=yd(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return C.createElement(r,vd({},n))};Md.isSideCarExport=!0;function Nd(e,t){return e.useMedium(t),Md}var Pd=jd(),Fd=function(){},Id=C.forwardRef(function(e,t){var n=C.useRef(null),r=C.useState({onScrollCapture:Fd,onWheelCapture:Fd,onTouchMoveCapture:Fd}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,m=e.noIsolation,h=e.inert,g=e.allowPinchZoom,_=e.as,v=_===void 0?`div`:_,y=e.gapMode,b=yd(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),x=f,S=Od([n,t]),w=vd(vd({},b),i);return C.createElement(C.Fragment,null,u&&C.createElement(x,{sideCar:Pd,removeScrollBar:l,shards:d,noRelative:p,noIsolation:m,inert:h,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:y}),o?C.cloneElement(C.Children.only(s),vd(vd({},w),{ref:S})):C.createElement(v,vd({},w,{className:c,ref:S}),s))});Id.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Id.classNames={fullWidth:X,zeroRight:xd};var Ld,Rd=function(){if(Ld)return Ld;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function zd(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=Rd();return t&&e.setAttribute(`nonce`,t),e}function Bd(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Vd(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var Hd=function(){var e=0,t=null;return{add:function(n){e==0&&(t=zd())&&(Bd(t,n),Vd(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Ud=function(){var e=Hd();return function(t,n){C.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Wd=function(){var e=Ud();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},Gd={left:0,top:0,right:0,gap:0},Kd=function(e){return parseInt(e||``,10)||0},qd=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[Kd(n),Kd(r),Kd(i)]},Jd=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return Gd;var t=qd(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Yd=Wd(),Xd=`data-scroll-locked`,Zd=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
447
|
+
`}applyTo2d(e){let{imageData:{data:t}}=e,n=-this.vibrance;for(let e=0;e<t.length;e+=4){let r=t[e],i=t[e+1],a=t[e+2],o=Math.max(r,i,a),s=(r+i+a)/3,c=2*Math.abs(o-s)/255*n;t[e]+=o===r?0:(o-r)*c,t[e+1]+=o===i?0:(o-i)*c,t[e+2]+=o===a?0:(o-a)*c}}sendUniformData(e,t){e.uniform1f(t.uVibrance,-this.vibrance)}isNeutralState(){return this.vibrance===0}};I(Cc,`type`,`Vibrance`),I(Cc,`defaults`,{vibrance:0}),I(Cc,`uniformLocations`,[`uVibrance`]),R.setClass(Cc),Object.freeze({__proto__:null,BaseFilter:Ws,BlackWhite:oc,BlendColor:Ks,BlendImage:Js,Blur:Ys,Brightness:Xs,Brownie:ec,ColorMatrix:Qs,Composed:sc,Contrast:cc,Convolute:uc,Gamma:fc,Grayscale:mc,HueRotation:gc,Invert:_c,Kodachrome:nc,Noise:vc,Pixelate:yc,Polaroid:ic,RemoveColor:bc,Resize:xc,Saturation:Sc,Sepia:ac,Technicolor:rc,Vibrance:Cc,Vintage:tc});var wc=`modulepreload`,Tc=function(e){return`/`+e},Ec={},Dc=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Tc(t,n),t in Ec)return;Ec[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:wc,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Oc=null;async function kc(){Oc=(await Dc(()=>import(`./rough-DRqkAAOb.js`),[])).default.generator()}function Ac(){if(!Oc)throw Error(`Call initRoughLineGenerator() first`);return Oc}function jc(e,t,n,r){return Math.abs(e*73856093^t*19349663^n*83492791^r*44867|0)%2147483647||1}function Mc(e){let t=e.calcLinePoints(),n=e.calcOwnMatrix();return{p1:new z(t.x1,t.y1).transform(n),p2:new z(t.x2,t.y2).transform(n)}}function Nc(){return{p1:new mi({x:0,y:0,cursorStyle:`move`,render:To.renderCircleControl,positionHandler(e,t,n){let r=n.calcLinePoints();return new z(r.x1,r.y1).transform(t)},actionHandler(e,t,n,r){let i=t.target,a=i.canvas;if(!a)return!1;let o=a.getScenePoint(e),{p2:s}=Mc(i);return i.x1=o.x,i.y1=o.y,i.x2=s.x,i.y2=s.y,i._setWidthHeight(),i.setCoords(),i.dirty=!0,!0}}),p2:new mi({x:0,y:0,cursorStyle:`move`,render:To.renderCircleControl,positionHandler(e,t,n){let r=n.calcLinePoints();return new z(r.x2,r.y2).transform(t)},actionHandler(e,t,n,r){let i=t.target,a=i.canvas;if(!a)return!1;let o=a.getScenePoint(e),{p1:s}=Mc(i);return i.x1=s.x,i.y1=s.y,i.x2=o.x,i.y2=o.y,i._setWidthHeight(),i.setCoords(),i.dirty=!0,!0}})}}function Pc(e,t){e.beginPath();for(let n of t)switch(n.op){case`move`:e.moveTo(n.data[0],n.data[1]);break;case`lineTo`:e.lineTo(n.data[0],n.data[1]);break;case`bcurveTo`:e.bezierCurveTo(n.data[0],n.data[1],n.data[2],n.data[3],n.data[4],n.data[5]);break}e.stroke()}function Fc(e){let t=``;for(let n of e)switch(n.op){case`move`:t+=`M ${n.data[0]} ${n.data[1]} `;break;case`lineTo`:t+=`L ${n.data[0]} ${n.data[1]} `;break;case`bcurveTo`:t+=`C ${n.data[0]} ${n.data[1]} ${n.data[2]} ${n.data[3]} ${n.data[4]} ${n.data[5]} `;break}return t.trim()}var Ic=class e extends ts{constructor(e,t={}){super(e,{...t,stroke:`transparent`,strokeWidth:10,objectCaching:!1}),this.strokeColor=t.strokeColor??`#000000`,this.roughness=t.roughness??1.5,this.seed=t.seed??jc(e[0],e[1],e[2],e[3]),this.controls=Nc(),this.hasBorders=!1}_render(e){let t=this.calcLinePoints(),n=Ac().line(t.x1,t.y1,t.x2,t.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed});e.save();for(let t of n.sets)t.type===`path`&&(e.strokeStyle=this.strokeColor,e.lineWidth=1.5,Pc(e,t.ops));e.restore()}toObject(e=[]){return super.toObject([...e,`strokeColor`,`roughness`,`seed`])}toSVG(){let e=this.calcLinePoints(),t=Ac().line(e.x1,e.y1,e.x2,e.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed}),n=``;for(let e of t.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}return`<g transform="matrix(${this.calcOwnMatrix().join(` `)})">${n}</g>`}static type=`RoughLineObject`;static async fromObject(t){return new e([t.x1,t.y1,t.x2,t.y2],{...t,strokeColor:t.strokeColor,roughness:t.roughness,seed:t.seed})}};R.setClass(Ic);var Lc=class e extends ts{constructor(e,t={}){super(e,{...t,stroke:`transparent`,strokeWidth:10,objectCaching:!1}),this.strokeColor=t.strokeColor??`#000000`,this.roughness=t.roughness??1.5,this.seed=t.seed??jc(e[0],e[1],e[2],e[3]),this.controls=Nc(),this.hasBorders=!1}_render(e){let t=this.calcLinePoints(),n=Ac().line(t.x1,t.y1,t.x2,t.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed});e.save(),e.strokeStyle=this.strokeColor,e.lineWidth=1.5;for(let t of n.sets)t.type===`path`&&Pc(e,t.ops);let r=t.x2-t.x1,i=t.y2-t.y1,a=Math.sqrt(r*r+i*i)||1,o=r/a,s=i/a,c=t.x2-o*14+-s*7,l=t.y2-s*14+o*7,u=t.x2-o*14+s*7,d=t.y2-s*14+-o*7,f=Ac().linearPath([[t.x2,t.y2],[c,l]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+1}),p=Ac().linearPath([[t.x2,t.y2],[u,d]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+2});for(let t of f.sets)t.type===`path`&&Pc(e,t.ops);for(let t of p.sets)t.type===`path`&&Pc(e,t.ops);e.restore()}toObject(e=[]){return super.toObject([...e,`strokeColor`,`roughness`,`seed`])}toSVG(){let e=this.calcLinePoints(),t=Ac().line(e.x1,e.y1,e.x2,e.y2,{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed}),n=``;for(let e of t.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}let r=e.x2-e.x1,i=e.y2-e.y1,a=Math.sqrt(r*r+i*i)||1,o=r/a,s=i/a,c=e.x2-o*14+-s*7,l=e.y2-s*14+o*7,u=e.x2-o*14+s*7,d=e.y2-s*14+-o*7,f=Ac().linearPath([[e.x2,e.y2],[c,l]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+1}),p=Ac().linearPath([[e.x2,e.y2],[u,d]],{roughness:this.roughness,stroke:this.strokeColor,strokeWidth:1.5,seed:this.seed+2});for(let e of f.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}for(let e of p.sets)if(e.type===`path`){let t=Fc(e.ops);n+=`<path d="${t}" stroke="${this.strokeColor}" stroke-width="1.5" fill="none" />`}return`<g transform="matrix(${this.calcOwnMatrix().join(` `)})">${n}</g>`}static type=`RoughArrowObject`;static async fromObject(t){return new e([t.x1,t.y1,t.x2,t.y2],{...t,strokeColor:t.strokeColor,roughness:t.roughness,seed:t.seed})}};R.setClass(Lc);var Rc=`#000000`,U=`#B5651D`,zc=`rgba(181, 101, 29, 0.35)`,Bc=1.5,Vc=`Inter, sans-serif`,Hc=null;async function Uc(){return Hc||(Hc=(await Dc(()=>import(`./rough-DRqkAAOb.js`),[])).default.generator(),Hc)}var Wc=null;function Gc(){return Uc().then(e=>{Wc=e})}function Kc(){if(!Wc)throw Error(`Call initGenerator() before using wobble functions`);return Wc}function qc(e){let t=``;for(let n of e)switch(n.op){case`move`:t+=`M ${n.data[0]} ${n.data[1]} `;break;case`lineTo`:t+=`L ${n.data[0]} ${n.data[1]} `;break;case`bcurveTo`:t+=`C ${n.data[0]} ${n.data[1]} ${n.data[2]} ${n.data[3]} ${n.data[4]} ${n.data[5]} `;break}return t.trim()}function Jc(e,t,n,r){return Math.abs(e*73856093^t*19349663^n*83492791^r*44867|0)%2147483647||1}var Yc={roughness:1.5,stroke:Rc,strokeWidth:Bc,fill:zc,fillStyle:`hachure`,fillWeight:1,hachureGap:5,hachureAngle:-41},Xc={roughness:1.5,stroke:Rc,strokeWidth:Bc};function Zc(e,t,n){let r=[];for(let i of e.sets){let e=qc(i.ops);e&&(i.type===`fillSketch`?r.push(new Xo(e,{stroke:t||`rgba(181, 101, 29, 0.35)`,strokeWidth:Yc.fillWeight,fill:`transparent`,selectable:!1,evented:!1})):i.type===`fillPath`?r.push(new Xo(e,{stroke:`transparent`,strokeWidth:0,fill:t||`rgba(181, 101, 29, 0.35)`,selectable:!1,evented:!1})):i.type===`path`&&r.push(new Xo(e,{stroke:n||`#000000`,strokeWidth:Bc,fill:`transparent`,selectable:!1,evented:!1})))}return r}function Qc(e){for(let t of e.getObjects())if(t instanceof Xo){let e=t.stroke,n=t.fill;(e&&(e.startsWith(`rgba`)||e===`transparent`)||n&&n.startsWith(`rgba`))&&(t.visible=!1)}e.dirty=!0}function $c(e,t,n,r){let i={...Yc,stroke:t,fill:n,seed:r};return e&&e!==`none`&&e!==`hachure`?{...i,fillStyle:e}:i}function el(e,t,n,r,i){let a=Jc(e,t,n,r),o=ul(U,.35),s=$c(i,U,o,a),c=new Na(Zc(Kc().rectangle(e,t,n,r,s),o,U),{selectable:!0,hasControls:!1});return i===`none`&&Qc(c),c}function tl(e,t,n,r){let i=Jc(e,t,n,n),a=ul(U,.35),o=$c(r,U,a,i),s=new Na(Zc(Kc().circle(e,t,n*2,o),a,U),{selectable:!0,hasControls:!1});return r===`none`&&Qc(s),s}function nl(e,t,n,r,i){let a=Jc(e,t,n,r),o=ul(U,.35),s=$c(i,U,o,a),c=new Na(Zc(Kc().ellipse(e,t,n*2,r*2,s),o,U),{selectable:!0,hasControls:!1});return i===`none`&&Qc(c),c}function rl(e,t,n,r){let i=Jc(e,t,n,r);return new Na(Zc(Kc().line(e,t,n,r,{...Xc,stroke:U,seed:i}),void 0,U),{selectable:!0,hasControls:!1})}function il(e,t,n,r){let i=Jc(e,t,n,r),a={...Xc,stroke:U,seed:i},o=Zc(Kc().line(e,t,n,r,a),void 0,U),s=n-e,c=r-t,l=Math.sqrt(s*s+c*c)||1,u=s/l,d=c/l,f=n-u*14+-d*7,p=r-d*14+u*7,m=n-u*14+d*7,h=r-d*14+-u*7,g=Kc().linearPath([[n,r],[f,p]],{...a,seed:i+1}),_=Kc().linearPath([[n,r],[m,h]],{...a,seed:i+2});return new Na([...o,...Zc(g,void 0,U),...Zc(_,void 0,U)],{selectable:!0,hasControls:!1})}var al=el,ol=tl,sl=nl,cl=rl,ll=il;function ul(e,t){return`rgba(${parseInt(e.slice(1,3),16)}, ${parseInt(e.slice(3,5),16)}, ${parseInt(e.slice(5,7),16)}, ${t})`}function dl(e,t,n,r,i,a){let o=Jc(e,t,n,r),s=ul(i,.35),c=$c(a,i,s,o),l=new Na(Zc(Kc().rectangle(0,0,n,r,c),s,i),{left:e,top:t,originX:`left`,originY:`top`,selectable:!0,hasControls:!0});return a===`none`&&Qc(l),l}function fl(e,t,n,r,i,a){let o=Jc(e,t,n,r),s=ul(i,.35),c=$c(a,i,s,o),l=new Na(Zc(Kc().ellipse(n/2,r/2,n,r,c),s,i),{left:e,top:t,originX:`left`,originY:`top`,selectable:!0,hasControls:!0});return a===`none`&&Qc(l),l}function pl(e){if(e instanceof Ic||e instanceof Lc)return e.strokeColor;if(e instanceof ps)return e.fill||void 0;if(e instanceof Xo)return e.stroke||void 0;if(e instanceof Na){for(let t of e.getObjects())if(t instanceof Xo){let e=t.stroke;if(e&&!e.startsWith(`rgba`)&&e!==`transparent`)return e}}}function ml(e,t){if(e instanceof Na){let n=ul(t,.35);for(let r of e.getObjects())if(r instanceof Xo){let e=r.stroke,i=r.fill;e&&(e.startsWith(`rgba`)||e===`transparent`)?(r.set({stroke:n}),i&&i.startsWith(`rgba`)&&r.set({fill:n})):r.set({stroke:t})}}}function hl(e,t,n){e.set({selectable:!1,evented:!1,data:{layer:`claude`,shapeType:t,...n&&{geo:n}}})}function gl(e){return e.fillStyle?e.fillStyle:e.fill===!1?`none`:`hachure`}function _l(e,t,n,r,i){let a=r-e,o=i-t;if(a===0&&o===0)return{x:e,y:t};let s=n.width/2,c=n.height/2,l=1/0;if(a!==0){let e=s/Math.abs(a),t=s/Math.abs(a),n=a>0?e:t;Math.abs(o*n)<=c&&(l=Math.min(l,n))}if(o!==0){let e=c/Math.abs(o),t=c/Math.abs(o),n=o>0?e:t;Math.abs(a*n)<=s&&(l=Math.min(l,n))}return isFinite(l)||(l=0),{x:e+a*l,y:t+o*l}}function vl(e,t){return e.getObjects().find(e=>e.data?.groupId===t)}function yl(e,t){for(let n of e.getObjects()){let r=n.data;if(r?.shapeType!==`connector`||r.fromId!==t&&r.toId!==t)continue;let i=vl(e,r.fromId),a=vl(e,r.toId);if(!i||!a)continue;let o=i.getBoundingRect(),s=a.getBoundingRect(),c=o.left+o.width/2,l=o.top+o.height/2,u=s.left+s.width/2,d=s.top+s.height/2,f=_l(c,l,o,u,d),p=_l(u,d,s,c,l);n instanceof Lc&&(n.x1=f.x,n.y1=f.y,n.x2=p.x,n.y2=p.y,n._setWidthHeight(),n.setCoords(),n.dirty=!0)}}function bl(e,t){let n=[];for(let r of t)switch(r.type){case`rect`:{let t=gl(r),i=al(r.x,r.y,r.width,r.height,t);hl(i,`rect`,{x:r.x,y:r.y,width:r.width,height:r.height}),t!==`hachure`&&(i.data.fillStyle=t),r.label&&(i.data.label=r.label),r.color&&ml(i,r.color),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`circle`:{let t=gl(r),i=ol(r.x,r.y,r.radius,t);hl(i,`circle`,{x:r.x,y:r.y,radius:r.radius}),t!==`hachure`&&(i.data.fillStyle=t),r.label&&(i.data.label=r.label),r.color&&ml(i,r.color),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`ellipse`:{let t=gl(r),i=sl(r.x,r.y,r.width/2,r.height/2,t);hl(i,`ellipse`,{x:r.x,y:r.y,width:r.width,height:r.height}),t!==`hachure`&&(i.data.fillStyle=t),r.label&&(i.data.label=r.label),r.color&&ml(i,r.color),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`line`:{let t=cl(r.x1,r.y1,r.x2,r.y2);hl(t,`line`),r.label&&(t.data.label=r.label),r.color&&ml(t,r.color),r.opacity!==void 0&&t.set({opacity:r.opacity}),e.add(t),n.push(t);break}case`arrow`:{let t=ll(r.x1,r.y1,r.x2,r.y2);hl(t,`arrow`),r.label&&(t.data.label=r.label),r.color&&ml(t,r.color),r.opacity!==void 0&&t.set({opacity:r.opacity}),e.add(t),n.push(t);break}case`text`:{let t=r.textAlign??`left`,i=new ps(r.content,{left:r.x,top:r.y,fontSize:r.fontSize??16,fontFamily:Vc,fill:r.color??`#B5651D`,textAlign:t,originX:t===`center`?`center`:t===`right`?`right`:`left`,fontWeight:r.fontWeight??`normal`,fontStyle:r.fontStyle??`normal`,underline:r.underline??!1,linethrough:r.linethrough??!1,selectable:!0,hasControls:!1});hl(i,`text`),r.opacity!==void 0&&i.set({opacity:r.opacity}),e.add(i),n.push(i);break}case`freehand`:{if(r.points.length<2)break;let t=new Xo(r.points.map(([e,t],n)=>`${n===0?`M`:`L`} ${e} ${t}`).join(` `),{stroke:r.color??`#000000`,strokeWidth:Bc,fill:`transparent`,selectable:!0,hasControls:!1});hl(t,`freehand`),r.opacity!==void 0&&t.set({opacity:r.opacity}),e.add(t),n.push(t);break}case`group`:{if(r.id){let t=e.getObjects().find(e=>e.data?.groupId===r.id);t&&e.remove(t)}let t=new Na(bl({_objects:[],add(e){this._objects.push(e)}},r.commands),{selectable:!0,evented:!0,hasControls:!1});t.set({data:{layer:`claude`,shapeType:`group`,groupId:r.id}}),e.add(t),n.push(t);break}case`connector`:{let t=vl(e,r.from),i=vl(e,r.to);if(!t||!i)break;let a=t.getBoundingRect(),o=i.getBoundingRect(),s=a.left+a.width/2,c=a.top+a.height/2,l=o.left+o.width/2,u=o.top+o.height/2,d=_l(s,c,a,l,u),f=_l(l,u,o,s,c),p=new Lc([d.x,d.y,f.x,f.y],{strokeColor:U,roughness:1.5});p.set({selectable:!1,evented:!1,data:{layer:`claude`,shapeType:`connector`,fromId:r.from,toId:r.to}}),r.label&&(p.data.label=r.label),e.add(p),n.push(p);break}}return n}function xl(e){let t=[];for(let n of e.getObjects()){let r=n.data?.label;if(!r)continue;let i=n.getBoundingRect(),a=new ps(r,{left:i.left+i.width/2,top:i.top-4,fontSize:12,fontFamily:`sans-serif`,fill:`rgba(0,0,0,0.5)`,originX:`center`,originY:`bottom`,selectable:!1,evented:!1});e.add(a),t.push(a)}return t}function Sl(e){return{exportSVG:(0,C.useCallback)((t=!1)=>{let n=e.current;if(!n)return``;let r=t?xl(n):[],i=n.toSVG();for(let e of r)n.remove(e);return i},[]),exportPNG:(0,C.useCallback)((t=!1)=>{let n=e.current;if(!n)return``;let r=t?xl(n):[];n.requestRenderAll();let i=n.getObjects(),a;if(i.length===0)a=n.toDataURL({format:`png`,multiplier:1});else{let e=1/0,t=1/0,r=-1/0,o=-1/0;for(let n of i){let i=n.getBoundingRect();e=Math.min(e,i.left),t=Math.min(t,i.top),r=Math.max(r,i.left+i.width),o=Math.max(o,i.top+i.height)}a=n.toDataURL({format:`png`,multiplier:1,left:e-40,top:t-40,width:r-e+80,height:o-t+80})}for(let e of r)n.remove(e);return a},[]),exportJSON:(0,C.useCallback)(()=>{let t=e.current;if(!t)return`[]`;let n=[];for(let e of t.getObjects()){let t=e.data,r=t?.shapeType,i=t?.label,a=e.opacity!==void 0&&e.opacity!==1?e.opacity:void 0,o=pl(e),s=t?.fillStyle;if(r===`rect`){let t=e.getBoundingRect(),r={type:`rect`,x:Math.round(t.left),y:Math.round(t.top),width:Math.round(t.width),height:Math.round(t.height)};i&&(r.label=i),s&&s!==`hachure`&&(r.fillStyle=s),o&&(r.color=o),a!==void 0&&(r.opacity=a),n.push(r)}else if(r===`circle`){let t=e.getBoundingRect(),r=Math.round(Math.min(t.width,t.height)/2),c={type:`circle`,x:Math.round(t.left+t.width/2),y:Math.round(t.top+t.height/2),radius:r};i&&(c.label=i),s&&s!==`hachure`&&(c.fillStyle=s),o&&(c.color=o),a!==void 0&&(c.opacity=a),n.push(c)}else if(r===`ellipse`){let t=e.getBoundingRect(),r={type:`ellipse`,x:Math.round(t.left),y:Math.round(t.top),width:Math.round(t.width),height:Math.round(t.height)};i&&(r.label=i),s&&s!==`hachure`&&(r.fillStyle=s),o&&(r.color=o),a!==void 0&&(r.opacity=a),n.push(r)}else if(r===`line`||r===`arrow`){let t,s,c,l;if(e instanceof Ic||e instanceof Lc){let n=e.calcLinePoints(),r=e.calcOwnMatrix(),i=new z(n.x1,n.y1).transform(r),a=new z(n.x2,n.y2).transform(r);t=Math.round(i.x),s=Math.round(i.y),c=Math.round(a.x),l=Math.round(a.y)}else{let n=e.getBoundingRect();t=Math.round(n.left),s=Math.round(n.top),c=Math.round(n.left+n.width),l=Math.round(n.top+n.height)}let u={type:r,x1:t,y1:s,x2:c,y2:l};i&&(u.label=i),o&&(u.color=o),a!==void 0&&(u.opacity=a),n.push(u)}else if(r===`text`){let t=e,r=t.textAlign||`left`,i={type:`text`,x:Math.round(t.left??0),y:Math.round(t.top??0),content:t.text??``,fontSize:t.fontSize??16};r!==`left`&&(i.textAlign=r),t.fontWeight&&t.fontWeight!==`normal`&&(i.fontWeight=t.fontWeight),t.fontStyle&&t.fontStyle!==`normal`&&(i.fontStyle=t.fontStyle),t.underline&&(i.underline=!0),t.linethrough&&(i.linethrough=!0),o&&(i.color=o),a!==void 0&&(i.opacity=a),n.push(i)}else if(r===`freehand`&&e instanceof Xo){let t=e.path;if(!t)continue;let r=e.calcOwnMatrix(),i=[];for(let e of t)if(e[0]===`M`||e[0]===`L`){let t=new z(e[1],e[2]).transform(r);i.push([Math.round(t.x),Math.round(t.y)])}else if(e[0]===`Q`){let t=new z(e[3],e[4]).transform(r);i.push([Math.round(t.x),Math.round(t.y)])}if(i.length>=2){let e={type:`freehand`,points:i};o&&(e.color=o),a!==void 0&&(e.opacity=a),n.push(e)}}else if(r===`group`&&e instanceof Na){let r=t?.groupId;if(!r)continue;let i=[];for(let t of e.getObjects()){let e=t.data,n=e?.shapeType,r=e?.label,a=e?.geo;if(n===`rect`&&a){let t={type:`rect`,x:a.x,y:a.y,width:a.width,height:a.height};r&&(t.label=r),e?.fillStyle&&e.fillStyle!==`hachure`&&(t.fillStyle=e.fillStyle),i.push(t)}else if(n===`circle`&&a){let e={type:`circle`,x:a.x,y:a.y,radius:a.radius};r&&(e.label=r),i.push(e)}else if(n===`ellipse`&&a){let e={type:`ellipse`,x:a.x,y:a.y,width:a.width,height:a.height};r&&(e.label=r),i.push(e)}else n===`text`&&t instanceof ps&&i.push({type:`text`,x:Math.round(t.left??0),y:Math.round(t.top??0),content:t.text??``,fontSize:t.fontSize??16})}i.length>0&&n.push({type:`group`,id:r,commands:i})}else if(r===`connector`){let e=t?.fromId,r=t?.toId;if(e&&r){let t={type:`connector`,from:e,to:r};i&&(t.label=i),n.push(t)}}}return JSON.stringify({commands:n},null,2)},[])}}function Cl(e){return{zoomIn:(0,C.useCallback)(()=>{let t=e.current;if(!t)return;let n=t.getZoom()*1.2;n=Math.min(10,n);let r=new z(t.getWidth()/2,t.getHeight()/2);t.zoomToPoint(r,n),t.requestRenderAll()},[]),zoomOut:(0,C.useCallback)(()=>{let t=e.current;if(!t)return;let n=t.getZoom()/1.2;n=Math.max(.1,n);let r=new z(t.getWidth()/2,t.getHeight()/2);t.zoomToPoint(r,n),t.requestRenderAll()},[]),resetZoom:(0,C.useCallback)(()=>{let t=e.current;t&&(t.setViewportTransform([1,0,0,1,0,0]),t.requestRenderAll())},[]),fitToScreen:(0,C.useCallback)(()=>{let t=e.current;if(!t)return;let n=t.getObjects();if(n.length===0){t.setViewportTransform([1,0,0,1,0,0]),t.requestRenderAll();return}let r=1/0,i=1/0,a=-1/0,o=-1/0;for(let e of n){let t=e.getBoundingRect();r=Math.min(r,t.left),i=Math.min(i,t.top),a=Math.max(a,t.left+t.width),o=Math.max(o,t.top+t.height)}let s=a-r,c=o-i;if(s===0||c===0)return;let l=t.getWidth()-120,u=t.getHeight()-120,d=Math.min(l/s,u/c,3);t.setViewportTransform([1,0,0,1,0,0]);let f=(r+a)/2,p=(i+o)/2;t.zoomToPoint(new z(t.getWidth()/2,t.getHeight()/2),d);let m=t.viewportTransform;m[4]=t.getWidth()/2-f*d,m[5]=t.getHeight()/2-p*d,t.requestRenderAll()},[]),getZoom:(0,C.useCallback)(()=>e.current?.getZoom()??1,[])}}function wl(e,t,n,r){let i=(0,C.useRef)(null),a=(0,C.useRef)(r);a.current=r;let o=(0,C.useRef)(null),s=(0,C.useRef)(!1),c=(0,C.useRef)(!1),l=(0,C.useRef)({x:0,y:0});(0,C.useEffect)(()=>{let r=e.current,u=t.current;if(!r||!u)return;let d=u.clientWidth,f=u.clientHeight;r.width=d,r.height=f;let p=new No(r,{width:d,height:f,backgroundColor:`transparent`,selection:!0,stopContextMenu:!1,fireRightClick:!0});i.current=p,window.__fabricCanvas=p,p.on(`mouse:wheel`,e=>{let t=e.e,n=t.deltaY,r=p.getZoom();r*=.999**n,r=Math.min(10,Math.max(.1,r)),p.zoomToPoint(new z(t.offsetX,t.offsetY),r),t.preventDefault(),t.stopPropagation()});let m=e=>{e.code===`Space`&&(s.current=!0,p.defaultCursor=`grab`,p.selection=!1)},h=e=>{e.code===`Space`&&(s.current=!1,p.defaultCursor=`default`,p.selection=!0)};document.addEventListener(`keydown`,m),document.addEventListener(`keyup`,h),p.on(`mouse:down`,e=>{let t=e.e,r=n?.current===`hand`;(s.current||t.button===1||r&&t.button===0)&&(c.current=!0,l.current={x:t.clientX,y:t.clientY},p.defaultCursor=`grabbing`)}),p.on(`mouse:move`,e=>{if(!c.current)return;let t=e.e,n=t.clientX-l.current.x,r=t.clientY-l.current.y;l.current={x:t.clientX,y:t.clientY};let i=p.viewportTransform;i[4]+=n,i[5]+=r,p.requestRenderAll()}),p.on(`mouse:up`,()=>{if(c.current){c.current=!1;let e=n?.current===`hand`;p.defaultCursor=s.current||e?`grab`:`default`}});let g=new ResizeObserver(()=>{if(!u)return;let e=u.clientWidth,t=u.clientHeight;e>0&&t>0&&(p.setDimensions({width:e,height:t}),p.renderAll())});g.observe(u);let _=.75;return p.on(`before:render`,()=>{let e=p.getContext(),t=p.viewportTransform,n=t[0],r=t[4],i=t[5],o=a.current?.canvasBg??`#FAFAF7`,s=a.current?.dotColor??`#d4d4d4`;e.save(),e.setTransform(1,0,0,1,0,0),e.fillStyle=o,e.fillRect(0,0,p.getWidth(),p.getHeight()),e.restore();let c=Math.floor(-r/n/20)*20,l=Math.floor(-i/n/20)*20,u=Math.ceil((p.getWidth()-r)/n/20)*20,d=Math.ceil((p.getHeight()-i)/n/20)*20;e.save(),e.transform(t[0],t[1],t[2],t[3],t[4],t[5]),e.fillStyle=s;let f=_/n;_*.5,_*2;let m=Math.min(1.5,Math.max(.375,f));for(let t=c;t<=u;t+=20)for(let n=l;n<=d;n+=20)e.beginPath(),e.arc(t,n,m,0,Math.PI*2),e.fill();e.restore()}),p.on(`object:moving`,e=>{let t=e.target.data?.groupId;t&&(yl(p,t),p.requestRenderAll())}),p.on(`after:render`,()=>{let e=p.viewportTransform,t=e[0],n=e[4],r=e[5],i=[];for(let e of p.getObjects()){let a=e.data?.label;if(!a)continue;let o=e.getBoundingRect();i.push({text:a,x:o.left*t+n+o.width*t/2,y:o.top*t+r-20})}o.current?.(i)}),()=>{document.removeEventListener(`keydown`,m),document.removeEventListener(`keyup`,h),g.disconnect(),p.dispose(),i.current=null}},[e,t]),(0,C.useEffect)(()=>{i.current?.requestRenderAll()},[r]);let u=(0,C.useCallback)(()=>i.current,[]),d=(0,C.useCallback)(e=>{let t=i.current;if(!t||e.length===0)return;let n=1/0,r=1/0,a=-1/0,o=-1/0;for(let t of e){let e=t.getBoundingRect();n=Math.min(n,e.left),r=Math.min(r,e.top),a=Math.max(a,e.left+e.width),o=Math.max(o,e.top+e.height)}let s=(n+a)/2,c=(r+o)/2,l=t.getWidth(),u=t.getHeight(),d=t.viewportTransform,f=s*d[0]+d[4],p=c*d[3]+d[5];if(f<80||f>l-80||p<80||p>u-80){let e=l/2-s*d[0],n=u/2-c*d[3];Tl(d[4],d[5],e,n,t,d)}},[]),f=(0,C.useCallback)(e=>{let t=i.current;if(!t)return[];let n=bl(t,e);return t.renderAll(),n},[]),p=(0,C.useCallback)(()=>{let e=i.current;e&&(e.clear(),e.backgroundColor=`transparent`,e.renderAll())},[]),m=(0,C.useCallback)(()=>{let e=i.current;if(!e)return``;let t=e.getObjects();if(t.length===0)return e.toDataURL({format:`png`,multiplier:1});let n=1/0,r=1/0,a=-1/0,o=-1/0;for(let e of t){let t=e.getBoundingRect();n=Math.min(n,t.left),r=Math.min(r,t.top),a=Math.max(a,t.left+t.width),o=Math.max(o,t.top+t.height)}return e.toDataURL({format:`png`,multiplier:1,left:n-40,top:r-40,width:a-n+80,height:o-r+80})},[]),{exportSVG:h,exportPNG:g,exportJSON:_}=Sl(i),v=(0,C.useCallback)(e=>{let t=i.current;if(!t)return;let n=t.getObjects().filter(t=>t.data?.layer===e);for(let e of n)t.remove(e);t.renderAll()},[]),{zoomIn:y,zoomOut:b,resetZoom:x,fitToScreen:S,getZoom:w}=Cl(i);return{renderCommands:f,clear:p,clearLayer:v,takeScreenshot:m,autopan:d,getCanvas:u,spaceDownRef:s,zoomIn:y,zoomOut:b,resetZoom:x,fitToScreen:S,getZoom:w,onLabelsUpdate:(0,C.useCallback)(e=>{o.current=e},[]),exportSVG:h,exportPNG:g,exportJSON:_}}function Tl(e,t,n,r,i,a){let o=performance.now();function s(c){let l=Math.min((c-o)/400,1),u=l<.5?2*l*l:-1+(4-2*l)*l;a[4]=e+(n-e)*u,a[5]=t+(r-t)*u,i.requestRenderAll(),l<1&&requestAnimationFrame(s)}requestAnimationFrame(s)}function El(e){let{renderCommands:t,clear:n,clearLayer:r,takeScreenshot:i,autopan:a,getCanvas:o,exportSVG:s,exportPNG:c,exportJSON:l,onAskBatch:u,getAllAnswers:d,getQuestionsState:f,narrationRef:p,sendRef:m}=e,h=(0,C.useRef)(d);h.current=d;let g=(0,C.useRef)(f);g.current=f;let _=async()=>{let e=o();if(!e)return;let t=i();if(!h.current||!g.current){m.current?.({type:`screenshot_response`,payload:{image:t,answers:[]}});return}let n=h.current(),r=g.current(),a=[],s=e.toJSON();for(let t of n){let n=r.find(e=>e.question.id===t.questionId);if(n&&n.question.type===`canvas`){await e.loadFromJSON(n.canvasJson),e.requestRenderAll();let r=i();a.push({...t,canvasSnapshot:r})}else a.push(t)}await e.loadFromJSON(s),e.requestRenderAll(),m.current?.({type:`screenshot_response`,payload:{image:t,answers:a}})},v=(0,C.useCallback)(async()=>{let e=o();if(!e)return;let t=i();if(!h.current||!g.current){m.current?.({type:`answers_submitted`,payload:{image:t,answers:[]}});return}let n=h.current(),r=g.current(),a=[],s=e.toJSON();for(let t of n){let n=r.find(e=>e.question.id===t.questionId);if(n&&n.question.type===`canvas`){await e.loadFromJSON(n.canvasJson),e.requestRenderAll();let r=i();a.push({...t,canvasSnapshot:r})}else a.push(t)}await e.loadFromJSON(s),e.requestRenderAll(),m.current?.({type:`answers_submitted`,payload:{image:t,answers:a}})},[o,i]);return{handleMessage:(0,C.useCallback)(e=>{if(e.type===`draw`){let n=e.payload;n?.narration&&p.current?.animateText(n.narration),n?.commands&&a(t(n.commands))}else if(e.type===`ask`){let r=e.payload;if(r?.questions&&u){let e=o();if(!e)return;let i=[];for(let a of r.questions)n(),a.commands&&t(a.commands),e.forEachObject(e=>{e.set({selectable:!0,evented:!0})}),e.requestRenderAll(),i.push({question:a,canvasJson:e.toJSON()});i.length>0&&e.loadFromJSON(i[0].canvasJson).then(()=>e.requestRenderAll()),u(i)}}else if(e.type===`clear`){let t=e.payload;t?r(t):n()}else if(e.type===`export_request`){let t=e.payload;if(t){let e;e=t.format===`json`?l():t.format===`svg`?s(t.labels):c(t.labels),m.current?.({type:`export_response`,payload:e})}}else e.type===`screenshot_request`&&_()},[t,n,r,i,a,o,d,f,u,s,c,l]),submitAnswers:v}}function Dl({onMessage:e}){let t=(0,C.useRef)(null),n=(0,C.useRef)(e);return n.current=e,(0,C.useEffect)(()=>{let e=!1,r,i=1e3;function a(){if(e)return;let o=location.protocol===`https:`?`wss:`:`ws:`,s=new WebSocket(`${o}//${location.host}/ws`);t.current=s,s.onopen=()=>{i=1e3,window.dispatchEvent(new CustomEvent(`ws-status`,{detail:`connected`}))},s.onclose=()=>{window.dispatchEvent(new CustomEvent(`ws-status`,{detail:`disconnected`})),e||(r=setTimeout(a,i),i=Math.min(i*2,3e4))},s.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}n.current(t)}}return a(),()=>{e=!0,clearTimeout(r),t.current?.close()}},[]),{send:(0,C.useCallback)(e=>{t.current?.readyState===WebSocket.OPEN&&t.current.send(JSON.stringify(e))},[])}}function Ol(e){return e.data?.layer===`user`}function kl(e,t,n){e.set({data:{layer:`user`,...t&&{shapeType:t},...n&&{geo:n}}})}function Al({getCanvas:e,activeTool:t,color:n,brushSize:r,spaceDownRef:i,selectTool:a,saveSnapshot:o}){let s=(0,C.useRef)(!1),c=(0,C.useRef)({x:0,y:0}),l=(0,C.useRef)(null),u=(0,C.useRef)(null),d=t===`rect`||t===`circle`||t===`arrow`||t===`line`;return{onMouseDown:f=>{if(i.current||f.e.button===2)return;let p=e();if(!p)return;let m=p.getScenePoint(f.e);if(t===`paint`){let e=p.getScenePoint(f.e),t=p.getObjects().filter(e=>Ol(e)),r=null;for(let n=t.length-1;n>=0;n--)if(t[n].containsPoint(e)){r=t[n];break}if(r){if(r instanceof Ic||r instanceof Lc)r.strokeColor=n;else if(r instanceof Ds)r.set({fill:n});else if(r instanceof Xo)r.set({stroke:n});else if(r instanceof Na){let e=ul(n,.35),t=r.getObjects();for(let r of t)if(r instanceof Xo){let t=r.stroke,i=r.fill;t&&(t.startsWith(`rgba`)||t===`transparent`)?(r.set({stroke:e}),i&&i.startsWith(`rgba`)&&r.set({fill:e})):r.set({stroke:n})}}p.requestRenderAll(),o?.()}return}if(t===`text`){let e=p.getActiveObject();if(e instanceof Ds&&e.isEditing){e.exitEditing(),e.text?.trim()||p.remove(e),u.current=e.text?.trim()?e:null,a(`pointer`);return}let t=new Ds(``,{left:m.x,top:m.y,originX:`left`,originY:`top`,fontSize:16+r*2,fontFamily:`Inter, sans-serif`,fill:n,selectable:!0,hasControls:!0});kl(t,`text`),p.add(t),p.setActiveObject(t),t.enterEditing(),p.requestRenderAll();return}if(d){if(s.current=!0,c.current={x:m.x,y:m.y},t===`rect`){let e=new Sa({left:m.x,top:m.y,originX:`left`,originY:`top`,width:0,height:0,fill:`transparent`,stroke:n,strokeWidth:1,strokeDashArray:[5,5],selectable:!1,evented:!1});l.current=e,p.add(e)}else if(t===`circle`){let e=new is({left:m.x,top:m.y,originX:`left`,originY:`top`,rx:0,ry:0,fill:`transparent`,stroke:n,strokeWidth:1,strokeDashArray:[5,5],selectable:!1,evented:!1});l.current=e,p.add(e)}else if(t===`line`){let e=new Ic([m.x,m.y,m.x,m.y],{strokeColor:n,selectable:!1,evented:!1});l.current=e,p.add(e)}else if(t===`arrow`){let e=new Lc([m.x,m.y,m.x,m.y],{strokeColor:n,selectable:!1,evented:!1});l.current=e,p.add(e)}}},onMouseMove:n=>{if(!s.current||!l.current||i.current)return;let r=e();if(!r)return;let a=r.getScenePoint(n.e),o=c.current,u=n.e.shiftKey;if(t===`rect`){let e=l.current,t=Math.abs(a.x-o.x),n=Math.abs(a.y-o.y);if(u){let e=Math.max(t,n);t=e,n=e}let r=Math.min(o.x,a.x),i=Math.min(o.y,a.y);e.set({left:r,top:i,width:t,height:n})}else if(t===`circle`){let e=l.current,t=Math.abs(a.x-o.x),n=Math.abs(a.y-o.y);if(u){let e=Math.max(t,n);t=e,n=e}let r=Math.min(o.x,a.x),i=Math.min(o.y,a.y);e.set({left:r,top:i,rx:t/2,ry:n/2})}else if(t===`arrow`||t===`line`){let e=l.current,t=a.x,n=a.y;if(u){let e=Math.abs(t-o.x),r=Math.abs(n-o.y),i=Math.atan2(r,e),a=Math.sqrt(e*e+r*r),s=Math.round(i/(Math.PI/4))*(Math.PI/4);t=o.x+Math.cos(s)*a*Math.sign(t-o.x||1),n=o.y+Math.sin(s)*a*Math.sign(n-o.y||1)}e.set({x2:t,y2:n}),e._setWidthHeight(),e.setCoords()}r.requestRenderAll()},onMouseUp:r=>{if(!s.current||i.current){s.current=!1;return}let d=e();if(!d)return;s.current=!1;let f=d.getScenePoint(r.e),p=c.current,m=f.x-p.x,h=f.y-p.y;if(Math.abs(m)<5&&Math.abs(h)<5){l.current&&=(d.remove(l.current),null);return}let g=null;if((t===`line`||t===`arrow`)&&l.current){let e=l.current;e.set({selectable:!0,evented:!0}),kl(e,t),l.current=null,g=e,o?.()}else{l.current&&=(d.remove(l.current),null);let e=r.e.shiftKey,i=Math.abs(m),a=Math.abs(h);if(e&&(t===`rect`||t===`circle`)){let e=Math.max(i,a);i=e,a=e}let o=Math.min(p.x,f.x),s=Math.min(p.y,f.y);if(t===`rect`){let e=dl(o,s,i,a,n);kl(e,`rect`,{x:o,y:s,width:i,height:a}),d.add(e),g=e}else if(t===`circle`){let e=fl(o,s,i,a,n);kl(e,`ellipse`,{x:o,y:s,width:i,height:a}),d.add(e),g=e}}d.requestRenderAll(),g&&(u.current=g,a(`pointer`))},ghostRef:l,isDraggingRef:s,pendingSelectRef:u}}function jl(e){return e.data?.layer===`user`}function Ml(e){e.set({data:{layer:`user`}})}function Nl(e){let t=(0,C.useRef)([]),n=(0,C.useRef)(e.getCanvas);n.current=e.getCanvas;let r=(0,C.useRef)(e.saveSnapshot);r.current=e.saveSnapshot;let i=(0,C.useCallback)((e,t,r)=>{let i=n.current();if(!i)return;let a=new FileReader;a.onload=()=>{let e=a.result,n=new Image;n.onload=()=>{let e=new zs(n,{left:t,top:r,originX:`left`,originY:`top`});Ml(e),i.add(e),i.setActiveObject(e),i.requestRenderAll()},n.src=e},a.readAsDataURL(e)},[]);return{onKeyDown:(0,C.useCallback)(e=>{let r=e.target;if(r.tagName===`INPUT`||r.tagName===`TEXTAREA`||r.isContentEditable)return;let i=n.current();if(i){if(e.key===`Escape`){i.discardActiveObject(),i.requestRenderAll();return}if((e.metaKey||e.ctrlKey)&&e.key===`c`){let n=i.getActiveObject();if(n&&n.isEditing)return;let r=i.getActiveObjects().filter(jl);r.length>0&&(t.current=r,e.preventDefault());return}if((e.metaKey||e.ctrlKey)&&e.key===`v`){if(t.current.length===0)return;e.preventDefault();let n=t.current.map(e=>e.clone());Promise.all(n).then(e=>{i.discardActiveObject();for(let t of e)t.set({left:(t.left??0)+20,top:(t.top??0)+20}),t.data={layer:`user`},i.add(t);e.length===1&&i.setActiveObject(e[0]),i.requestRenderAll(),t.current=e});return}if(e.key===`Delete`||e.key===`Backspace`){let e=i.getActiveObject();if(e&&e.isEditing)return;let t=i.getActiveObjects().filter(jl);for(let e of t)i.remove(e);i.discardActiveObject(),i.requestRenderAll()}}},[]),onPaste:(0,C.useCallback)(e=>{let t=n.current();if(!t)return;let r=e.clipboardData?.items;if(r){for(let n of r)if(n.type.startsWith(`image/`)){e.preventDefault();let r=n.getAsFile();if(!r)continue;i(r,(t.width??800)/2,(t.height??600)/2);break}}},[i]),onDragOver:(0,C.useCallback)(e=>{e.preventDefault()},[]),onDrop:(0,C.useCallback)(e=>{e.preventDefault();let t=n.current();if(!t)return;let r=e.dataTransfer?.files;if(r)for(let n of r){if(!n.type.startsWith(`image/`))continue;let r=t.getScenePoint(e);i(n,r.x,r.y)}},[i])}}function Pl(e){let t=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="${e}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z"/><path d="m5 2 5 5"/><path d="M2 13h15"/><path d="M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z"/></svg>`;return`url("data:image/svg+xml;base64,${btoa(t)}") 2 22, pointer`}function Fl(e){return e.data?.layer===`user`}function Il(e,t,n){e.set({data:{layer:`user`,...t&&{shapeType:t},...n&&{geo:n}}})}function Ll({getCanvas:e,activeTool:t,color:n,brushSize:r,spaceDownRef:i,selectTool:a,resolvedTheme:o,saveSnapshot:s,pauseHistory:c,resumeHistory:l}){let u=(0,C.useRef)(!1),{onMouseDown:d,onMouseMove:f,onMouseUp:p,ghostRef:m,isDraggingRef:h,pendingSelectRef:g}=Al({getCanvas:e,activeTool:t,color:n,brushSize:r,spaceDownRef:i,selectTool:a,saveSnapshot:s}),{onKeyDown:_,onPaste:v,onDragOver:y,onDrop:b}=Nl({getCanvas:e,saveSnapshot:s});(0,C.useEffect)(()=>{let t=e();if(!t)return;let r=t.getActiveObject();r&&Fl(r)&&r instanceof Ds&&(r.set({fill:n}),t.requestRenderAll())},[n,e]),(0,C.useEffect)(()=>{let i=e();if(!i)return;let x=t===`pencil`||t===`marker`,S=t===`rect`||t===`circle`||t===`arrow`||t===`line`,C=t===`pointer`,w=t===`hand`;if(i.isDrawingMode=!1,i.selection=C,h.current=!1,C?i.defaultCursor=`default`:w?(i.defaultCursor=`grab`,i.selection=!1):x||S?i.defaultCursor=`crosshair`:t===`text`?i.defaultCursor=`text`:t===`paint`&&(i.defaultCursor=`pointer`),m.current&&=(i.remove(m.current),null),g.current?(i.setActiveObject(g.current),g.current=null):i.discardActiveObject(),i.requestRenderAll(),x){i.isDrawingMode=!0,i.freeDrawingBrush||=new Zo(i);let e=i.freeDrawingBrush;e.color=n,e.decimate=4,t===`pencil`?e.width=r:t===`marker`&&(e.color=`rgba(255, 230, 0, 0.4)`,e.width=16)}let T=t===`paint`,ee=C||T,E=T?Pl(o===`dark`?`white`:`black`):void 0;i.forEachObject(e=>{e.selectable=ee,e.evented=ee,e.hoverCursor=E??null});let D=e=>{let n=e.target;n.text?.trim()||(i.remove(n),i.discardActiveObject()),t===`text`&&(n.text?.trim()&&(g.current=n),a(`pointer`))},te=e=>{e.path&&(Il(e.path,`freehand`),s?.(),g.current=e.path,a(`pointer`))},O=i.getSelectionElement(),k=t=>{if(u.current)return;let r=t.target;if(!(r instanceof Na)||!Fl(r))return;let i=r.data,a=i?.shapeType;if(!a||![`rect`,`ellipse`].includes(a))return;let o=r.scaleX??1,d=r.scaleY??1;if(Math.abs(o-1)<.001&&Math.abs(d-1)<.001)return;u.current=!0;let f=e();if(!f){u.current=!1;return}let p=i?.geo,m=p?.width??100,h=p?.height??100,g=Math.round(m*o),_=Math.round(h*d),v=r.getBoundingRect(),y=Math.round(v.left),b=Math.round(v.top),x=pl(r)||n,S=i?.fillStyle,C;C=a===`rect`?dl(y,b,g,_,x,S):fl(y,b,g,_,x,S),C.set({data:{...i,geo:{x:y,y:b,width:g,height:_}},opacity:r.opacity,selectable:!0,evented:!0,hasControls:!0}),c?.();let w=f.getObjects().indexOf(r);f.remove(r),f.insertAt(w,C),l?.(),f.setActiveObject(C),f.requestRenderAll(),u.current=!1,s?.()};return i.on(`mouse:down`,d),i.on(`mouse:move`,f),i.on(`mouse:up`,p),i.on(`text:editing:exited`,D),i.on(`object:modified`,k),x&&i.on(`path:created`,te),document.addEventListener(`keydown`,_),document.addEventListener(`paste`,v),O&&(O.addEventListener(`dragover`,y),O.addEventListener(`drop`,b)),()=>{i.off(`mouse:down`,d),i.off(`mouse:move`,f),i.off(`mouse:up`,p),i.off(`text:editing:exited`,D),i.off(`object:modified`,k),x&&i.off(`path:created`,te),document.removeEventListener(`keydown`,_),document.removeEventListener(`paste`,v),O&&(O.removeEventListener(`dragover`,y),O.removeEventListener(`drop`,b))}},[e,t,n,r,i,a,o,s,c,l,_,v,y,b])}var Rl=50;function zl(e){return!!e.data?.layer}function Bl(e){let t=e.getObjects().filter(zl).map(e=>e.toObject([`data`,`originX`,`originY`]));return JSON.stringify(t)}function Vl({getCanvas:e}){let t=(0,C.useRef)([]),n=(0,C.useRef)(-1),r=(0,C.useRef)(!1),i=(0,C.useRef)(!1),a=(0,C.useCallback)(()=>{if(r.current||i.current)return;let a=e();if(!a)return;let o=Bl(a);n.current<t.current.length-1&&(t.current=t.current.slice(0,n.current+1)),t.current[t.current.length-1]!==o&&(t.current.push(o),t.current.length>Rl&&t.current.shift(),n.current=t.current.length-1)},[e]),o=(0,C.useCallback)(async t=>{let n=e();if(!n)return;r.current=!0;let i=n.getObjects().filter(zl);for(let e of i)n.remove(e);let a=JSON.parse(t);if(a.length>0){let e=await uo.enlivenObjects(a);for(let t of e)n.add(t)}n.discardActiveObject(),n.requestRenderAll(),r.current=!1},[e]),s=(0,C.useCallback)(async()=>{n.current<=0||(n.current--,await o(t.current[n.current]))},[o]),c=(0,C.useCallback)(async()=>{n.current>=t.current.length-1||(n.current++,await o(t.current[n.current]))},[o]),l=(0,C.useCallback)(()=>{i.current=!0},[]),u=(0,C.useCallback)(()=>{i.current=!1},[]);return(0,C.useEffect)(()=>{let n=e();if(!n)return;t.current.length===0&&a();let r=e=>{e.target.data?.layer&&a()},i=()=>a();return n.on(`object:added`,r),n.on(`object:removed`,r),n.on(`object:modified`,i),()=>{n.off(`object:added`,r),n.off(`object:removed`,r),n.off(`object:modified`,i)}},[e,a]),{undo:s,redo:c,saveSnapshot:a,pauseHistory:l,resumeHistory:u}}var Hl=5,W=`#FF1493`;function G(e){let t=e.getBoundingRect();return{left:t.left,right:t.left+t.width,centerX:t.left+t.width/2,top:t.top,bottom:t.top+t.height,centerY:t.top+t.height/2}}function Ul({getCanvas:e}){let t=(0,C.useRef)([]);(0,C.useEffect)(()=>{let n=e();if(!n)return;function r(){let n=e();if(n){for(let e of t.current)n.remove(e);t.current=[]}}function i(e){return new ts(e,{stroke:W,strokeWidth:.5,strokeDashArray:[4,4],selectable:!1,evented:!1,excludeFromExport:!0})}let a=n=>{let a=e();if(!a)return;r();let o=n.target,s=G(o),c=a.width??2e3,l=a.height??2e3,u=a.getObjects().filter(e=>e!==o&&!t.current.includes(e)),d=!1,f=!1;o.getBoundingRect();for(let e of u){if(d&&f)break;let n=G(e);if(!d){let e=[[s.left,n.left],[s.left,n.right],[s.left,n.centerX],[s.right,n.left],[s.right,n.right],[s.right,n.centerX],[s.centerX,n.left],[s.centerX,n.right],[s.centerX,n.centerX]];for(let[n,r]of e){let e=r-n;if(Math.abs(e)<Hl){o.set({left:(o.left??0)+e}),o.setCoords();let n=i([r,0,r,l]);a.add(n),t.current.push(n),d=!0;break}}}if(!f){let e=[[s.top,n.top],[s.top,n.bottom],[s.top,n.centerY],[s.bottom,n.top],[s.bottom,n.bottom],[s.bottom,n.centerY],[s.centerY,n.top],[s.centerY,n.bottom],[s.centerY,n.centerY]];for(let[n,r]of e){let e=r-n;if(Math.abs(e)<Hl){o.set({top:(o.top??0)+e}),o.setCoords();let n=i([0,r,c,r]);a.add(n),t.current.push(n),f=!0;break}}}}a.requestRenderAll()},o=()=>{r();let t=e();t&&t.requestRenderAll()};return n.on(`object:moving`,a),n.on(`object:modified`,o),n.on(`mouse:up`,o),()=>{r(),n.off(`object:moving`,a),n.off(`object:modified`,o),n.off(`mouse:up`,o)}},[e])}function Wl(e){return e.data?.layer===`user`}function Gl(e){let{getCanvas:t,saveSnapshot:n}=e,[r,i]=(0,C.useState)(null),a=e=>{let n=t();if(!n)return;let r=e.getBoundingRect(),a=n.viewportTransform,o=a[0],s=a[4],c=a[5];i({target:e,x:r.left*o+s+r.width*o/2,y:r.top*o+c-20,value:e.data?.label??``})};return(0,C.useEffect)(()=>{let e=t();if(!e)return;let n=e=>{e.target&&Wl(e.target)&&(e.target instanceof Ds||a(e.target))};return e.on(`mouse:dblclick`,n),()=>{e.off(`mouse:dblclick`,n)}},[t]),{labelEdit:r,setLabelEdit:i,startLabelEdit:a,commitLabelEdit:()=>{if(!r)return;let e=t();if(!e)return;let a=r.value.trim();r.target.data||(r.target.data={}),a?r.target.data.label=a:delete r.target.data.label,e.requestRenderAll(),n(),i(null)}}}function Kl(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Kl(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function ql(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Kl(e))&&(r&&(r+=` `),r+=t);return r}var Jl=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Yl=ql,Xl=(e,t)=>n=>{if(t?.variants==null)return Yl(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Jl(t)||Jl(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return Yl(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};function Zl(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Ql(...e){return t=>{let n=!1,r=e.map(e=>{let r=Zl(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Zl(e[t],null)}}}}function K(...e){return C.useCallback(Ql(...e),e)}var $l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),q=o(((e,t)=>{t.exports=$l()}))();function eu(e){let t=tu(e),n=C.forwardRef((e,n)=>{let{children:r,...i}=e,a=C.Children.toArray(r),o=a.find(ru);if(o){let e=o.props.children,r=a.map(t=>t===o?C.Children.count(e)>1?C.Children.only(null):C.isValidElement(e)?e.props.children:null:t);return(0,q.jsx)(t,{...i,ref:n,children:C.isValidElement(e)?C.cloneElement(e,void 0,r):null})}return(0,q.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function tu(e){let t=C.forwardRef((e,t)=>{let{children:n,...r}=e;if(C.isValidElement(n)){let e=au(n),i=iu(r,n.props);return n.type!==C.Fragment&&(i.ref=t?Ql(t,e):e),C.cloneElement(n,i)}return C.Children.count(n)>1?C.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var nu=Symbol(`radix.slottable`);function ru(e){return C.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===nu}function iu(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function au(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ou=c(m(),1),J=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=eu(`Primitive.${t}`),r=C.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,q.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function su(e,t){e&&ou.flushSync(()=>e.dispatchEvent(t))}var cu=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),lu=`VisuallyHidden`,uu=C.forwardRef((e,t)=>(0,q.jsx)(J.span,{...e,ref:t,style:{...cu,...e.style}}));uu.displayName=lu;var du=uu;function fu(e,t=[]){let n=[];function r(t,r){let i=C.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=C.useMemo(()=>o,Object.values(o));return(0,q.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=C.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>C.createContext(e));return function(n){let r=n?.[e]||t;return C.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,pu(i,...t)]}function pu(...e){let t=e[0];if(e.length===1)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 C.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function mu(e){let t=hu(e),n=C.forwardRef((e,n)=>{let{children:r,...i}=e,a=C.Children.toArray(r),o=a.find(_u);if(o){let e=o.props.children,r=a.map(t=>t===o?C.Children.count(e)>1?C.Children.only(null):C.isValidElement(e)?e.props.children:null:t);return(0,q.jsx)(t,{...i,ref:n,children:C.isValidElement(e)?C.cloneElement(e,void 0,r):null})}return(0,q.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function hu(e){let t=C.forwardRef((e,t)=>{let{children:n,...r}=e;if(C.isValidElement(n)){let e=yu(n),i=vu(r,n.props);return n.type!==C.Fragment&&(i.ref=t?Ql(t,e):e),C.cloneElement(n,i)}return C.Children.count(n)>1?C.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gu=Symbol(`radix.slottable`);function _u(e){return C.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===gu}function vu(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function yu(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function bu(e){let t=e+`CollectionProvider`,[n,r]=fu(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=C.useRef(null),a=C.useRef(new Map).current;return(0,q.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=mu(s),l=C.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,q.jsx)(c,{ref:K(t,a(s,n).collectionRef),children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=mu(u),p=C.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=C.useRef(null),s=K(t,o),c=a(u,n);return C.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,q.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return C.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:l,ItemSlot:p},m,r]}typeof window<`u`&&window.document&&window.document.createElement;function Y(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var xu=globalThis?.document?C.useLayoutEffect:()=>{},Su=C.useInsertionEffect||xu;function Cu({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=wu({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=C.useRef(e!==void 0);C.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,C.useCallback(t=>{if(s){let n=Tu(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function wu({defaultProp:e,onChange:t}){let[n,r]=C.useState(e),i=C.useRef(n),a=C.useRef(t);return Su(()=>{a.current=t},[t]),C.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function Tu(e){return typeof e==`function`}function Eu(e,t){return C.useReducer((e,n)=>t[e][n]??e,e)}var Du=e=>{let{present:t,children:n}=e,r=Ou(t),i=typeof n==`function`?n({present:r.isPresent}):C.Children.only(n),a=K(r.ref,Au(i));return typeof n==`function`||r.isPresent?C.cloneElement(i,{ref:a}):null};Du.displayName=`Presence`;function Ou(e){let[t,n]=C.useState(),r=C.useRef(null),i=C.useRef(e),a=C.useRef(`none`),[o,s]=Eu(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return C.useEffect(()=>{let e=ku(r.current);a.current=o===`mounted`?e:`none`},[o]),xu(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=ku(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),xu(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=ku(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=ku(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:C.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function ku(e){return e?.animationName||`none`}function Au(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ju=C.useId||(()=>void 0),Mu=0;function Nu(e){let[t,n]=C.useState(ju());return xu(()=>{e||n(e=>e??String(Mu++))},[e]),e||(t?`radix-${t}`:``)}var Pu=C.createContext(void 0);function Fu(e){let t=C.useContext(Pu);return e||t||`ltr`}function Iu(e){let t=C.useRef(e);return C.useEffect(()=>{t.current=e}),C.useMemo(()=>(...e)=>t.current?.(...e),[])}function Lu(e,t=globalThis?.document){let n=Iu(e);C.useEffect(()=>{let e=e=>{e.key===`Escape`&&n(e)};return t.addEventListener(`keydown`,e,{capture:!0}),()=>t.removeEventListener(`keydown`,e,{capture:!0})},[n,t])}var Ru=`DismissableLayer`,zu=`dismissableLayer.update`,Bu=`dismissableLayer.pointerDownOutside`,Vu=`dismissableLayer.focusOutside`,Hu,Uu=C.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Wu=C.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:o,onDismiss:s,...c}=e,l=C.useContext(Uu),[u,d]=C.useState(null),f=u?.ownerDocument??globalThis?.document,[,p]=C.useState({}),m=K(t,e=>d(e)),h=Array.from(l.layers),[g]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),_=h.indexOf(g),v=u?h.indexOf(u):-1,y=l.layersWithOutsidePointerEventsDisabled.size>0,b=v>=_,x=qu(e=>{let t=e.target,n=[...l.branches].some(e=>e.contains(t));!b||n||(i?.(e),o?.(e),e.defaultPrevented||s?.())},f),S=Ju(e=>{let t=e.target;[...l.branches].some(e=>e.contains(t))||(a?.(e),o?.(e),e.defaultPrevented||s?.())},f);return Lu(e=>{v===l.layers.size-1&&(r?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))},f),C.useEffect(()=>{if(u)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(Hu=f.body.style.pointerEvents,f.body.style.pointerEvents=`none`),l.layersWithOutsidePointerEventsDisabled.add(u)),l.layers.add(u),Yu(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=Hu)}},[u,f,n,l]),C.useEffect(()=>()=>{u&&(l.layers.delete(u),l.layersWithOutsidePointerEventsDisabled.delete(u),Yu())},[u,l]),C.useEffect(()=>{let e=()=>p({});return document.addEventListener(zu,e),()=>document.removeEventListener(zu,e)},[]),(0,q.jsx)(J.div,{...c,ref:m,style:{pointerEvents:y?b?`auto`:`none`:void 0,...e.style},onFocusCapture:Y(e.onFocusCapture,S.onFocusCapture),onBlurCapture:Y(e.onBlurCapture,S.onBlurCapture),onPointerDownCapture:Y(e.onPointerDownCapture,x.onPointerDownCapture)})});Wu.displayName=Ru;var Gu=`DismissableLayerBranch`,Ku=C.forwardRef((e,t)=>{let n=C.useContext(Uu),r=C.useRef(null),i=K(t,r);return C.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,q.jsx)(J.div,{...e,ref:i})});Ku.displayName=Gu;function qu(e,t=globalThis?.document){let n=Iu(e),r=C.useRef(!1),i=C.useRef(()=>{});return C.useEffect(()=>{let e=e=>{if(e.target&&!r.current){let r=function(){Xu(Bu,n,a,{discrete:!0})},a={originalEvent:e};e.pointerType===`touch`?(t.removeEventListener(`click`,i.current),i.current=r,t.addEventListener(`click`,i.current,{once:!0})):r()}else t.removeEventListener(`click`,i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener(`pointerdown`,e)},0);return()=>{window.clearTimeout(a),t.removeEventListener(`pointerdown`,e),t.removeEventListener(`click`,i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Ju(e,t=globalThis?.document){let n=Iu(e),r=C.useRef(!1);return C.useEffect(()=>{let e=e=>{e.target&&!r.current&&Xu(Vu,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Yu(){let e=new CustomEvent(zu);document.dispatchEvent(e)}function Xu(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?su(i,a):i.dispatchEvent(a)}var Zu=`focusScope.autoFocusOnMount`,Qu=`focusScope.autoFocusOnUnmount`,$u={bubbles:!1,cancelable:!0},ed=`FocusScope`,td=C.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=C.useState(null),l=Iu(i),u=Iu(a),d=C.useRef(null),f=K(t,e=>c(e)),p=C.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;C.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:cd(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||cd(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&cd(s)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),C.useEffect(()=>{if(s){ld.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(Zu,$u);s.addEventListener(Zu,l),s.dispatchEvent(t),t.defaultPrevented||(nd(fd(id(s)),{select:!0}),document.activeElement===e&&cd(s))}return()=>{s.removeEventListener(Zu,l),setTimeout(()=>{let t=new CustomEvent(Qu,$u);s.addEventListener(Qu,u),s.dispatchEvent(t),t.defaultPrevented||cd(e??document.body,{select:!0}),s.removeEventListener(Qu,u),ld.remove(p)},0)}}},[s,l,u,p]);let m=C.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=rd(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&cd(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&cd(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,q.jsx)(J.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})});td.displayName=ed;function nd(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(cd(r,{select:t}),document.activeElement!==n)return}function rd(e){let t=id(e);return[ad(t,e),ad(t.reverse(),e)]}function id(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;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 ad(e,t){for(let n of e)if(!od(n,{upTo:t}))return n}function od(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function sd(e){return e instanceof HTMLInputElement&&`select`in e}function cd(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&sd(e)&&t&&e.select()}}var ld=ud();function ud(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=dd(e,t),e.unshift(t)},remove(t){e=dd(e,t),e[0]?.resume()}}}function dd(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function fd(e){return e.filter(e=>e.tagName!==`A`)}var pd=`Portal`,md=C.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=C.useState(!1);xu(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?ou.createPortal((0,q.jsx)(J.div,{...r,ref:t}),o):null});md.displayName=pd;var hd=0;function gd(){C.useEffect(()=>{let e=document.querySelectorAll(`[data-radix-focus-guard]`);return document.body.insertAdjacentElement(`afterbegin`,e[0]??_d()),document.body.insertAdjacentElement(`beforeend`,e[1]??_d()),hd++,()=>{hd===1&&document.querySelectorAll(`[data-radix-focus-guard]`).forEach(e=>e.remove()),hd--}},[])}function _d(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var vd=function(){return vd=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},vd.apply(this,arguments)};function yd(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function bd(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var xd=`right-scroll-bar-position`,X=`width-before-scroll-bar`,Sd=`with-scroll-bars-hidden`,Cd=`--removed-body-scroll-bar-size`;function wd(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function Td(e,t){var n=(0,C.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var Ed=typeof window<`u`?C.useLayoutEffect:C.useEffect,Dd=new WeakMap;function Od(e,t){var n=Td(t||null,function(t){return e.forEach(function(e){return wd(e,t)})});return Ed(function(){var t=Dd.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||wd(e,null)}),i.forEach(function(e){r.has(e)||wd(e,a)})}Dd.set(n,e)},[e]),n}function kd(e){return e}function Ad(e,t){t===void 0&&(t=kd);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function jd(e){e===void 0&&(e={});var t=Ad(null);return t.options=vd({async:!0,ssr:!1},e),t}var Md=function(e){var t=e.sideCar,n=yd(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return C.createElement(r,vd({},n))};Md.isSideCarExport=!0;function Nd(e,t){return e.useMedium(t),Md}var Pd=jd(),Fd=function(){},Id=C.forwardRef(function(e,t){var n=C.useRef(null),r=C.useState({onScrollCapture:Fd,onWheelCapture:Fd,onTouchMoveCapture:Fd}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,m=e.noIsolation,h=e.inert,g=e.allowPinchZoom,_=e.as,v=_===void 0?`div`:_,y=e.gapMode,b=yd(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),x=f,S=Od([n,t]),w=vd(vd({},b),i);return C.createElement(C.Fragment,null,u&&C.createElement(x,{sideCar:Pd,removeScrollBar:l,shards:d,noRelative:p,noIsolation:m,inert:h,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:y}),o?C.cloneElement(C.Children.only(s),vd(vd({},w),{ref:S})):C.createElement(v,vd({},w,{className:c,ref:S}),s))});Id.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Id.classNames={fullWidth:X,zeroRight:xd};var Ld,Rd=function(){if(Ld)return Ld;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function zd(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=Rd();return t&&e.setAttribute(`nonce`,t),e}function Bd(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Vd(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var Hd=function(){var e=0,t=null;return{add:function(n){e==0&&(t=zd())&&(Bd(t,n),Vd(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Ud=function(){var e=Hd();return function(t,n){C.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Wd=function(){var e=Ud();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},Gd={left:0,top:0,right:0,gap:0},Kd=function(e){return parseInt(e||``,10)||0},qd=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[Kd(n),Kd(r),Kd(i)]},Jd=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return Gd;var t=qd(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Yd=Wd(),Xd=`data-scroll-locked`,Zd=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
448
448
|
.${Sd} {
|
|
449
449
|
overflow: hidden ${r};
|
|
450
450
|
padding-right: ${s}px ${r};
|
package/dist/client/index.html
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
7
|
<title>Claude Canvas</title>
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
-
<link href="https://fonts.googleapis.com/css2?family=
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-DwCcxwtn.js"></script>
|
|
11
11
|
<link rel="stylesheet" crossorigin href="/assets/index-svMNxi11.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|