1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,666324,163354,756948,372596,875453,695147,937304,2948,41174,891486,766032,990848,598919,536579,567153,e=>{"use strict";let t,r,n,i,o;var a=e.i(966078),l=e.i(864648);e.s(["useSocketIO",0,({projectUid:e,boardUid:t,enabled:r,onConnect:n,onDisconnect:i,onError:o,onProjectEvent:s})=>{let{socket:d,connected:u,connecting:c,error:h,joinProject:p,leaveProject:m}=(0,l.useSocketIOConnection)(),g=(0,a.useRef)(n),f=(0,a.useRef)(i),b=(0,a.useRef)(o),x=(0,a.useRef)(s);g.current=n,f.current=i,b.current=o,x.current=s,(0,a.useEffect)(()=>{if(r&&e)return p(e,t??void 0),()=>m(e)},[r,e,t,p,m]),(0,a.useEffect)(()=>{if(!r||!d)return;let e=e=>t=>{x.current?.(e,t)},t=[["element_created",e("element_created")],["element_updated",e("element_updated")],["element_deleted",e("element_deleted")],["whiteboard_staged_elements_ready",e("whiteboard_staged_elements_ready")],["whiteboard_staged_batch_resolved",e("whiteboard_staged_batch_resolved")],["whiteboard_history_batch_undone",e("whiteboard_history_batch_undone")],["user_action",e("user_action")],["project_updated",e("project_updated")],["whiteboard_edit_status",e("whiteboard_edit_status")],["whiteboard_generation_progress",e("whiteboard_generation_progress")],["ai_image_generation_status",e("ai_image_generation_status")],["ai_note_generation_status",e("ai_note_generation_status")],["ai_moodboard_generation_status",e("ai_moodboard_generation_status")],["ai_planner_generation_status",e("ai_planner_generation_status")],["ai_mindmap_generation_status",e("ai_mindmap_generation_status")],["ai_tasks_planner_generation_status",e("ai_tasks_planner_generation_status")],["ai_kanban_planner_generation_status",e("ai_kanban_planner_generation_status")],["ai_storyboard_generation_status",e("ai_storyboard_generation_status")],["ai_table_generation_status",e("ai_table_generation_status")],["ai_tracker_planner_generation_status",e("ai_tracker_planner_generation_status")],["ai_constellation_generation_status",e("ai_constellation_generation_status")],["ai_edit_whiteboard_work_flow_status",e("ai_edit_whiteboard_work_flow_status")],["ai_generate_whiteboard_work_flow_status",e("ai_generate_whiteboard_work_flow_status")]],n=e=>{console.debug("â
Successfully joined project room:",e)},i=e=>{console.error("Socket.IO server error:",e),b.current?.(e)},o=()=>g.current?.(),a=()=>f.current?.(),l=(e,t)=>{(e.startsWith("project_")||e.includes("element_"))&&x.current?.(e,t)};return t.forEach(([e,t])=>d.on(e,t)),d.on("joined_project",n),d.on("error",i),d.on("connect",o),d.on("disconnect",a),d.onAny(l),()=>{t.forEach(([e,t])=>
1d.off(e,t)),d.off("joined_project",n),d.off("error",i),d.off("connect",o),d.off("disconnect",a),d.offAny(l)}},[r,d]);let y=(e,t)=>{d?.connected?d.emit(e,t):console.warn("â ï¸ Cannot emit event: Socket not connected")};return{connected:u,connecting:c,error:h,socket:r?d:null,emit:y,emitToProject:(t,r)=>{d?.connected&&e?y(t,{...r,projectUid:e}):console.warn("â ï¸ Cannot emit to project: Socket not connected or no project")}}}],666324),e.s(["useIsCollaborativeBoard",0,({boardLoaded:e,participantCount:t,viewOnly:r,isExportMode:n,editLinkDisabled:i})=>(0,a.useMemo)(()=>!n&&!r&&!!e&&(t>1||!i),[e,n,r,t,i])],163354),e.i(700930);var s=e.i(170758),d=e.i(527537);let u=e=>{let t=0;for(let r=0;r<e.length;r+=1)t=31*t+e.charCodeAt(r)|0;return Math.abs(t)},c=(0,d.create)((e,t)=>({peers:new Map,cursorTick:0,membershipTick:0,selectionTick:0,upsertPeerCursor:({userId:r,userName:n,userEmail:i,cursor:o})=>{let{peers:a,membershipTick:l}=t(),s=a.get(r);if(s){s.cursor=o,s.userName=n,s.userEmail=i,s.updatedAt=Date.now(),e(e=>({cursorTick:e.cursorTick+1}));return}a.set(r,{userId:r,userName:n,userEmail:i,kind:"user",colorIndex:u(r),cursor:o,selectedElementIds:[],updatedAt:Date.now()}),e(e=>({cursorTick:e.cursorTick+1,membershipTick:l+1}))},setPeerSelection:({userId:r,userName:n,grpcUserId:i,elementIds:o})=>{let{peers:a,membershipTick:l}=t(),s=a.get(r);if(s){s.selectedElementIds=o,s.userName=n,i&&(s.grpcUserId=i),s.updatedAt=Date.now(),e(e=>({selectionTick:e.selectionTick+1}));return}a.set(r,{userId:r,userName:n,grpcUserId:i,kind:"user",colorIndex:u(r),cursor:null,selectedElementIds:o,updatedAt:Date.now()}),e(e=>({selectionTick:e.selectionTick+1,membershipTick:l+1}))},setAgentWorking:(r,n)=>{let i,{peers:o,membershipTick:a}=t(),l=(i=r.userId,`agent:${i}`),s=o.get(l);if(0===n.length){if(!o.delete(l))return;e(e=>({selectionTick:e.selectionTick+1,membershipTick:a+1}));return}if(s){s.selectedElementIds=n,s.updatedAt=Date.now(),e(e=>({selectionTick:e.selectionTick+1}));return}o.set(l,{userId:l,userName:r.userName??"",grpcUserId:r.isSelf?void 0:r.userId,kind:"agent",isOwnAgent:r.isSelf,colorIndex:u(r.userId),cursor:null,selectedElementIds:n,updatedAt:Date.now()}),e(e=>({selectionTick:e.selectionTick+1,membershipTick:a+1}))},removePeer:r=>{let{peers:n}=t();n.delete(r)&&e(e=>({membershipTick:e.membershipTick+1}))},clearPeers:()=>{let{peers:r}=t();0!==r.size&&(r.clear(),e(e=>({membershipTick:e.membershipTick+1})))}}));e.s(["useWhiteboardPresenceStore",0,c],756948);var h=e.i(385050);e.s(["useCollabPresence",0,({socket:e,projectUid:t,boardUid:r,enabled:n})=>{let{screenToFlowPosition:i}=(0,s.useCanvasEngine)(),o=(0,a.useRef)(0),l=(0,a.useRef)(!1),d=c(e=>e.upsertPeerCursor),u=c(e=>e.setPeerSelection),p=c(e=>e.removePeer),m=c(e=>e.clearPeers);(0,a.useEffect)(()=>{if(!n||!e)return;let t=e=>{!e?.userId||!e?.position||r&&e.boardUid&&e.boardUid!==r||d({userId:String(e.userId),userName:e.userName||"Someone",userEmail:e.userEmail,cursor:{x:e.position.x,y:e.position.y}})},i=e=>{e?.userId&&p(String(e.userId))},o=e=>{!e?.userId||r&&e.boardUid&&e.boardUid!==r||u({userId:String(e.userId),userName:e.userName||"Someone",grpcUserId:null!=e.grpcUserId?String(e.grpcUserId):void 0,elementIds:Array.isArray(e.elementIds)?e.elementIds:[]})};return e.on("user_cursor_move",t),e.on("user_cursor_leave",i),e.on("user_selection_change",o),()=>{e.off("user_cursor_move",t),e.off("user_cursor_leave",i),e.off("user_selection_change",o)}},[n,e,r,d,u,p]),(0,a.useEffect)(()=>{if(!n||!e||!t||!r)return;let i="",o=null,a=null,l=null,s=()=>{let n=h.useWhiteboardSelectionStore.getState();if(n.activeNodes===o&&n.activeChildNodes===a&&n.activeElement===l)return;o=n.activeNodes,a=n.activeChildNodes,l=n.activeElement;let s=new Set;n.activeNodes.forEach(e=>s.add(e.id)),n.activeChildNodes.forEach(e=>s.add(e.id));let d=n.activeElement?.whiteboardElementUid;d&&s.add(d);let u=Array.from(s),c=u.slice().sort().join("|");c!==i&&(i=c,e.connected&&e.emit("selection_change",{projectUid:t,boardUid:r,elementIds:u}))};s();let d=h.useWhiteboardSelectionStore.subscribe(s),u=null,c=()=>{null!==u&&window.clearTimeout(u),u=window.setTimeout(()=>{u=null,i="",o=null,a=null,l=null,s()},1500)};return e.on("connect",c),()=>{e.off("connect",c),null!==u&&window.clearTimeout(u),d(),e.connected&&e.emit("selection_change",{projectUid:t,boardUid:r,elementIds:[]})}},[n,e,t,r]),(0,a.useEffect)(()=>{m()},[r,m]),(0,a.useEffect)(()=>
1{if(!n||!e)return;let t=()=>m();return e.on("connect",t),()=>{e.off("connect",t)}},[n,e,m]),(0,a.useEffect)(()=>{if(!n)return;let e=window.setInterval(()=>{let{peers:e}=c.getState(),t=Date.now();e.forEach(e=>{let r=e.selectedElementIds.length>0?9e5:12e4;t-e.updatedAt>r&&p(e.userId)})},3e4);return()=>window.clearInterval(e)},[n,p]),(0,a.useEffect)(()=>{n||m()},[n,m]);let g=(0,a.useCallback)(()=>{n&&e?.connected&&t&&l.current&&(l.current=!1,e.emit("cursor_leave",{projectUid:t,boardUid:r}))},[n,e,t,r]),f=(0,a.useCallback)(a=>{if(!n||!e?.connected||!t||"u">typeof document&&document.hidden)return;let s=Date.now();if(s-o.current<40)return;o.current=s;let d=i({x:a.clientX,y:a.clientY});Number.isFinite(d.x)&&Number.isFinite(d.y)&&(l.current=!0,e.emit("cursor_move",{projectUid:t,boardUid:r,x:d.x,y:d.y}))},[n,e,t,r,i]),b=(0,a.useRef)(g);return b.current=g,(0,a.useEffect)(()=>()=>b.current(),[]),{handlePointerMove:f,emitCursorLeave:g}}],372596);var p=e.i(254878),m=e.i(84132),g=e.i(38462);let f=e=>"u">typeof CSS?CSS.escape(e):e,b=e=>{if("u"<typeof document||!e)return!1;let t=g.useWhiteboardViewStore.getState().canvasEngine?.getNode(e);return!!t&&!t.hidden||!!document.querySelector(`${(0,m.nodeElementSelector)(e)}, [data-wall-item-uid="${f(e)}"]`)},x=e=>{if("u"<typeof document)return;let t=e.uid?`[data-board-uid="${f(e.uid)}"]`:e.id?`[data-board-id="${e.id}"]`:void 0;if(!t)return;let r=document.querySelector(t);if(!r)return;let n=r.closest("[data-wall-item-uid]");return n?n.dataset.wallItemUid:(0,m.closestNodeElement)(r)?.dataset.id},y=new Map;e.s(["useAgentPresence",0,({socket:e,boardUid:t,enabled:r})=>{let n=c(e=>e.setAgentWorking),{currentUser:i}=(0,p.useCurrentUser)(),o=i?.id?String(i.id):null;(0,a.useEffect)(()=>{if(!r||!e)return;let t=null,i=()=>{let e=Date.now(),r=1/0;y.forEach((t,i)=>{e>=t.staleAt&&(t.targets=[],t.places=[]);let o=new Set([...t.targets.map(e=>b(e.uid)?e.uid:x({uid:e.boardUid,id:e.boardId})),...t.places.map(e=>x(e))].filter(e=>!!e));o.forEach(r=>{t.raisedAt.has(r)||t.raisedAt.set(r,e)}),t.raisedAt.forEach((n,i)=>{if(o.has(i))return;let a=n+1200;a<=e?t.raisedAt.delete(i):r=Math.min(r,a)});let a=Array.from(t.raisedAt.keys()),l=a.join(",");l!==t.painted&&(t.painted=l,n(t.owner,a));let s=t.targets.length>0||t.places.length>0;s||0!==a.length?s&&(r=Math.min(r,e+500,t.staleAt)):y.delete(i)}),null!==t&&window.clearTimeout(t),t=r===1/0?null:window.setTimeout(i,Math.max(0,r-e))},a=e=>{let t=e?.userId!=null?String(e.userId):"";if(!t)return;let r={userId:t,userName:"string"==typeof e?.userName?e.userName:void 0,isSelf:null!==o&&t===o},n=y.get(t)??{owner:r,targets:[],places:[],raisedAt:new Map,painted:"",staleAt:0};n.owner=r,n.targets=Array.isArray(e?.elements)?e.elements:[],n.places=Array.isArray(e?.places)?e.places:[],n.staleAt=Date.now()+3e5,y.set(t,n),i()};return y.forEach(e=>{e.raisedAt.clear(),e.painted=""}),e.on("ai_element_activity",a),i(),()=>{e.off("ai_element_activity",a),null!==t&&window.clearTimeout(t),t=null,y.forEach(e=>{e.painted="",n(e.owner,[])})}},[r,e,t,o,n])}],875453);let w=()=>new Map,E=e=>{let t=w();return e.forEach((e,r)=>{t.set(r,e)}),t},C=(e,t,r)=>{let n=e.get(t);return void 0===n&&e.set(t,n=r()),n},T=()=>new Set,S=e=>e[e.length-1],A=(e,t)=>{for(let r=0;r<t.length;r++)e.push(t[r])},_=Array.from,v=(e,t)=>{for(let r=0;r<e.length;r++)if(!t(e[r],r,e))return!1;return!0},k=(e,t)=>{for(let r=0;r<e.length;r++)if(t(e[r],r,e))return!0;return!1},F=Array.isArray;class D{constructor(){this._observers=w()}on(e,t){return C(this._observers,e,T).add(t),t}once(e,t){let r=(...n)=>{this.off(e,r),t(...n)};this.on(e,r)}off(e,t){let r=this._observers.get(e);void 0!==r&&(r.delete(t),0===r.size&&this._observers.delete(e))}emit(e,t){return _((this._observers.get(e)||w()).values()).forEach(e=>e(...t))}destroy(){this._observers=w()}}let M=Math.floor,I=Math.abs,U=(e,t)=>e<t?e:t,L=(e,t)=>e>t?e:t,B=e=>0!==e?e<0:1/e<0,W=Number.MAX_SAFE_INTEGER,P=Number.MIN_SAFE_INTEGER,j=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&M(e)===e),R=String.fromCharCode;R(65535);let N=/^\s*/g,O=/([A-Z])/g,H=(e,t)=>e.replace(O,e=>`${t}${e.toLowerCase()}`).replace(N,""),z="u">typeof TextEncoder?new TextEncoder:null,G=z?e=>z.encode(e):e=>{let t=unescape(encodeURIComponent(e)),r=t.length,n=new Uint8Array(r);for(let e=0;e<r;e++)n[e]=t.codePointAt(e);return n},V="u"<typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});V&&1===V.decode(new Uint8Array).length&&(V=null);let $=(e,t)=>((e,t)=>{let r=Array(e);for(let n=0;n<e;n++)r[n]=t(n,r);return r})(t,()=>e).join("");class J{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}let K=()=>new J,Y=e=>{let t=new Uint8Array((e=>{let t=e.cpos;for(let r=0;r<e.bufs.length;r++)t+=e.bufs[r].length;return t})(e)),r=0;for(let n=0;n<e.bufs.length;n++){let i=e.bufs[n];t.set(i,r),r+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),r),t},q=(e,t)=>
1{let r=e.cbuf.length;e.cpos===r&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*r),e.cpos=0),e.cbuf[e.cpos++]=t},X=(e,t)=>{for(;t>127;)q(e,128|127&t),t=M(t/128);q(e,127&t)},Q=(e,t)=>{let r=B(t);for(r&&(t=-t),q(e,128*(t>63)|64*!!r|63&t),t=M(t/64);t>0;)q(e,128*(t>127)|127&t),t=M(t/128)},Z=new Uint8Array(3e4),ee=Z.length/3,et=z&&z.encodeInto?(e,t)=>{if(t.length<ee){let r=z.encodeInto(t,Z).written||0;X(e,r);for(let t=0;t<r;t++)q(e,Z[t])}else en(e,G(t))}:(e,t)=>{let r=unescape(encodeURIComponent(t)),n=r.length;X(e,n);for(let t=0;t<n;t++)q(e,r.codePointAt(t))},er=(e,t)=>{let r=e.cbuf.length,n=e.cpos,i=U(r-n,t.length),o=t.length-i;e.cbuf.set(t.subarray(0,i),n),e.cpos+=i,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(L(2*r,o)),e.cbuf.set(t.subarray(i)),e.cpos=o)},en=(e,t)=>{X(e,t.byteLength),er(e,t)},ei=(e,t)=>{let r;(r=e.cbuf.length)-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*L(r,t)),e.cpos=0);let n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},eo=new DataView(new ArrayBuffer(4)),ea=(e,t)=>{switch(typeof t){case"string":q(e,119),et(e,t);break;case"number":if(j(t)&&0x7fffffff>=I(t))q(e,125),Q(e,t);else if(eo.setFloat32(0,t),eo.getFloat32(0)===t)q(e,124),ei(e,4).setFloat32(0,t,!1);else q(e,123),ei(e,8).setFloat64(0,t,!1);break;case"bigint":q(e,122),ei(e,8).setBigInt64(0,t,!1);break;case"object":if(null===t)q(e,126);else if(F(t)){q(e,117),X(e,t.length);for(let r=0;r<t.length;r++)ea(e,t[r])}else if(t instanceof Uint8Array)q(e,116),en(e,t);else{q(e,118);let r=Object.keys(t);X(e,r.length);for(let n=0;n<r.length;n++){let i=r[n];et(e,i),ea(e,t[i])}}break;case"boolean":q(e,t?120:121);break;default:q(e,127)}};class el extends J{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&X(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}let es=e=>{e.count>0&&(Q(e.encoder,1===e.count?e.s:-e.s),e.count>1&&X(e.encoder,e.count-2))};class ed{constructor(){this.encoder=new J,this.s=0,this.count=0}write(e){this.s===e?this.count++:(es(this),this.count=1,this.s=e)}toUint8Array(){return es(this),Y(this.encoder)}}let eu=e=>{if(e.count>0){let t=2*e.diff+ +(1!==e.count);Q(e.encoder,t),e.count>1&&X(e.encoder,e.count-2)}};class ec{constructor(){this.encoder=new J,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(eu(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return eu(this),Y(this.encoder)}}class eh{constructor(){this.sarr=[],this.s="",this.lensE=new ed}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){let e=new J;return this.sarr.push(this.s),this.s="",et(e,this.sarr.join("")),er(e,this.lensE.toUint8Array()),Y(e)}}let ep=()=>{throw Error("Method unimplemented")},em=()=>{throw Error("Unexpected case")},eg=Error("Unexpected end of array"),ef=Error("Integer out of Range");class eb{constructor(e){this.arr=e,this.pos=0}}let ex=e=>new eb(e),ey=e=>{var t;let r;return t=eE(e),r=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t),e.pos+=t,r},ew=e=>e.arr[e.pos++],eE=e=>{let t=0,r=1,n=e.arr.length;for(;e.pos<n;){let n=e.arr[e.pos++];if(t+=(127&n)*r,r*=128,n<128)return t;if(t>W)throw ef}throw eg},eC=e=>{let t=e.arr[e.pos++],r=63&t,n=64,i=(64&t)>0?-1:1;if((128&t)==0)return i*r;let o=e.arr.length;for(;e.pos<o;){if(r+=(127&(t=e.arr[e.pos++]))*n,n*=128,t<128)return i*r;if(r>W)throw ef}throw eg},eT=V?e=>V.decode(ey(e)):e=>{let t=eE(e);if(0===t)return"";{let r=String.fromCodePoint(ew(e));if(--t<100)for(;t--;)r+=String.fromCodePoint(ew(e));else for(;t>0;){let n=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,r+=String.fromCodePoint.apply(null,i),t-=n}return decodeURIComponent(escape(r))}},eS=(e,t)=>{let r=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,r},eA=[e=>void 0,e=>null,eC,e=>eS(e,4).getFloat32(0,!1),e=>eS(e,8).getFloat64(0,!1),e=>eS(e,8).getBigInt64(0,!1),e=>!1,e=>!0,eT,e=>{let t=eE(e),r={};for(let n=0;n<t;n++)r[eT(e)]=e_(e);return r},e=>{let t=eE(e),r=[];for(let n=0;n<t;n++)r.push(e_(e));return r},ey],e_=e=>eA[127-ew(e)](e);class ev extends eb{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){0===this.count&&(this.s=this.reader(this),this.pos!==this.arr.length?this.count=eE(this)+1:this.count=-1);return this.count--,this.s}}class ek extends eb{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=eC(this);let e=B(this.s);this.count=1,e&&(this.s=-this.s,this.count=eE(this)+2)}return this.count--,this.s}}class eF extends eb{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){let e=eC(this);this.diff=M(e/2),this.count=1,1&e&&(this.count=eE(this)+2)}return this.s+=this.diff,this.count--,this.s}}class eD{constructor(e){this.decoder=new ek(e),this.str=eT(this.decoder),this.spos=0}read(){let e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}crypto.subtle;let eM=crypto.getRandomValues.bind(crypto),eI=()=>eM(new Uint32Array(1))[0],eU=Date.now,eL=e=>new Promise(e);
1Promise.all.bind(Promise),e.i(469930);var eB=e.i(565562);let eW=e=>void 0===e?null:e,eP=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}};try{"u">typeof localStorage&&localStorage&&(eP=localStorage)}catch(e){}let ej=eP,eR=Symbol("Equality"),eN=(e,t)=>e===t||!!e?.[eR]?.(t),eO=Object.assign,eH=Object.keys,ez=(e,t)=>{for(let r in e)if(!t(e[r],r))return!1;return!0},eG=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),eV=Object.freeze,e$=e=>{for(let t in e){let r=e[t];("object"==typeof r||"function"==typeof r)&&e$(e[t])}return eV(e)},eJ=(e,t,r=0)=>{try{for(;r<e.length;r++)e[r](...t)}finally{r<e.length&&eJ(e,t,r+1)}},eK=e=>e,eY=(e,t)=>{if(e===t)return!0;if(null==e||null==t||e.constructor!==t.constructor&&(e.constructor||Object)!==(t.constructor||Object))return!1;if(null!=e[eR])return e[eR](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;break;case Set:if(e.size!==t.size)return!1;for(let r of e)if(!t.has(r))return!1;break;case Map:if(e.size!==t.size)return!1;for(let r of e.keys())if(!t.has(r)||!eY(e.get(r),t.get(r)))return!1;break;case void 0:case Object:if(eH(e).length!==eH(t).length)return!1;for(let r in e)if(!eG(e,r)||!eY(e[r],t[r]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!eY(e[r],t[r]))return!1;break;default:return!1}return!0},eq=void 0!==eB.default&&eB.default.release&&/node|io\.js/.test(eB.default.release.name)&&"[object process]"===Object.prototype.toString.call(void 0!==eB.default?eB.default:0);"u">typeof navigator&&/Mac/.test(navigator.platform);let eX=[],eQ=e=>(()=>{if(void 0===t)if(eq){t=w();let e=eB.default.argv,r=null;for(let n=0;n<e.length;n++){let i=e[n];"-"===i[0]?(null!==r&&t.set(r,""),r=i):null!==r?(t.set(r,i),r=null):eX.push(i)}null!==r&&t.set(r,"")}else"object"==typeof location?(t=w(),(location.search||"?").slice(1).split("&").forEach(e=>{if(0!==e.length){let[r,n]=e.split("=");t.set(`--${H(r,"-")}`,n),t.set(`-${H(r,"-")}`,n)}})):t=w();return t})().has(e),eZ=e=>eq?eW(eB.default.env[e.toUpperCase().replaceAll("-","_")]):eW(ej.getItem(e)),e0=e=>eQ("--"+e)||null!==eZ(e),e1=e0("production"),e5=eq&&["true","1","2"].includes(eB.default.env.FORCE_COLOR)||!eQ("--no-colors")&&!e0("no-color")&&(!eq||eB.default.stdout.isTTY)&&(!eq||eQ("--color")||null!==eZ("COLORTERM")||(eZ("TERM")||"").includes("color"));class e2{constructor(e,t){this.left=e,this.right=t}}let e4=(e,t)=>new e2(e,t),e8=e=>e.next()>=.5,e3=(e,t,r)=>M(e.next()*(r+1-t)+t),e6=(e,t,r)=>M(e.next()*(r+1-t)+t),e9=e=>R(e6(e,97,122)),e7=(e,t)=>t[e6(e,0,t.length-1)],te=Symbol("0schema");class tt{constructor(){this._rerrs=[]}extend(e,t,r,n=null){this._rerrs.push({path:e,expected:t,has:r,message:n})}toString(){let e=[];for(let t=this._rerrs.length-1;t>0;t--){let r=this._rerrs[t];e.push($(" ",(this._rerrs.length-t)*2)+`${null!=r.path?`[${r.path}] `:""}${r.has} doesn't match ${r.expected}. ${r.message}`)}return e.join("\n")}}let tr=(e,t)=>e===t||null!=e&&null!=t&&e.constructor===t.constructor&&(e[eR]?eN(e,t):F(e)?v(e,e=>k(t,t=>tr(e,t))):"object"==typeof e&&ez(e,(e,r)=>tr(e,t[r])));class tn{static _dilutes=!1;extends(e){let[t,r]=[this.shape,e.shape];return this.constructor._dilutes&&([r,t]=[t,r]),tr(t,r)}equals(e){return this.constructor===e.constructor&&eY(this.shape,e.shape)}[te](){return!0}[eR](e){return this.equals(e)}validate(e){return this.check(e)}check(e,t){ep()}get nullable(){return tU(this,tK)}get optional(){return new tm(this)}cast(e){return tQ(e,this),e}expect(e){return tQ(e,this),e}}class ti extends tn{constructor(e,t){super(),this.shape=e,this._c=t}check(e,t){let r=e?.constructor===this.shape&&(null==this._c||this._c(e));return r||t?.extend(null,this.shape.name,e?.constructor.name,e?.constructor!==this.shape?"Constructor match failed":"Check failed"),r}}let to=(e,t=null)=>new ti(e,t);to(ti);class ta extends tn{constructor(e){super(),this.shape=e}check(e,t){let r=this.shape(e);return r||t?.extend(null,"custom prop",e?.constructor.name,"failed to check custom prop"),r}}let tl=e=>new ta(e);to(ta);class ts extends tn{constructor(e){super(),this.shape=e}check(e,t){let r=this.shape.some(t=>t===e);return r||t?.extend(null,this.shape.join(" | "),e.toString()),r}}let td=(...e)=>new ts(e),tu=to(ts),tc=RegExp.escape||(e=>e.replace(/[().|&,$^[\]]/g,e=>"\\"+e)),th=e=>tz.check(e)?[tc(e)]:tu.check(e)?e.shape.map(e=>e+""):tH.check(e)?["[+-]?\\d+.?\\d*"]:tG.check(e)?[".*"]:tL.check(e)?e.shape.map(th).flat(1):void em();to(class extends tn{constructor(e){super(),this.shape=e,this._r=RegExp("^"+e.map(th).map(e=>`(${e.join("|")})`).join("")+"$")}check(e,t){let r=null!=this._r.exec(e);return r||t?.extend(null,this._r.toString(),e.toString(),"String doesn't match string template."),r}});let tp=Symbol("optional");class tm extends tn{constructor(e){super(),this.shape=e}check(e,t){let r=void 0===e||this.shape.check(e);return r||t?.extend(null,"undefined (optional)","()"),r}get[tp](){return!0}}let tg=to(tm);class tf extends tn{check(e,t){return t?.extend(null,"never",typeof e),!1}}new tf,to(tf);class tb extends tn{constructor(e,t=!1){super(),this.shape=e,this._isPartial=t}static _dilutes=!0;get partial(){return new tb(this.shape,!0)}check(e,t){return null==e?(t?.extend(null,"object","null"),!1):ez(this.shape,(r,n)=>{let i=this._isPartial&&!eG(e,n)||r.check(e[n],t);return i||t?.extend(n.toString(),r.toString(),typeof e[n],"Object property does not match"),i})}}let tx=to(tb),ty=tl(e=>null!=e&&(e.constructor===Object||null==e.constructor));class tw extends tn{constructor(e,t){super(),this.shape={keys:e,values:t}}check(e,t){return null!=e&&ez(e,(r,n)=>{let i=this.shape.keys.check(n,t);return i||t?.extend(n+"","Record",typeof e,i?"Key doesn't match sc
1hema":"Value doesn't match value"),i&&this.shape.values.check(r,t)})}}let tE=(e,t)=>new tw(e,t),tC=to(tw);class tT extends tn{constructor(e){super(),this.shape=e}check(e,t){return null!=e&&ez(this.shape,(r,n)=>{let i=r.check(e[n],t);return i||t?.extend(n.toString(),"Tuple",typeof r),i})}}to(tT);class tS extends tn{constructor(e){super(),this.shape=1===e.length?e[0]:new tI(e)}check(e,t){let r=F(e)&&v(e,e=>this.shape.check(e));return r||t?.extend(null,"Array",""),r}}let tA=(...e)=>new tS(e),t_=to(tS),tv=tl(e=>F(e));class tk extends tn{constructor(e,t){super(),this.shape=e,this._c=t}check(e,t){let r=e instanceof this.shape&&(null==this._c||this._c(e));return r||t?.extend(null,this.shape.name,e?.constructor.name),r}}to(tk);let tF=((e,t=null)=>new tk(e,t))(tn),tD=to(class extends tn{constructor(e){super(),this.len=e.length-1,this.args=((...e)=>new tT(e))(...e.slice(-1)),this.res=e[this.len]}check(e,t){let r=e.constructor===Function&&e.length<=this.len;return r||t?.extend(null,"function",typeof e),r}}),tM=tl(e=>"function"==typeof e);to(class extends tn{constructor(e){super(),this.shape=e}check(e,t){let r=v(this.shape,r=>r.check(e,t));return r||t?.extend(null,"Intersectinon",typeof e),r}},e=>e.shape.length>0);class tI extends tn{static _dilutes=!0;constructor(e){super(),this.shape=e}check(e,t){let r=k(this.shape,r=>r.check(e,t));return t?.extend(null,"Union",typeof e),r}}let tU=(...e)=>e.findIndex(e=>tL.check(e))>=0?tU(...e.map(e=>tX(e)).map(e=>tL.check(e)?e.shape:[e]).flat(1)):1===e.length?e[0]:new tI(e),tL=to(tI),tB=()=>!0,tW=tl(tB),tP=to(ta,e=>e.shape===tB),tj=tl(e=>"bigint"==typeof e),tR=tl(e=>e===tj),tN=tl(e=>"symbol"==typeof e);tl(e=>e===tN);let tO=tl(e=>"number"==typeof e),tH=tl(e=>e===tO),tz=tl(e=>"string"==typeof e),tG=tl(e=>e===tz),tV=tl(e=>"boolean"==typeof e),t$=tl(e=>e===tV),tJ=td(void 0);to(ts,e=>1===e.shape.length&&void 0===e.shape[0]),td(void 0);let tK=td(null),tY=to(ts,e=>1===e.shape.length&&null===e.shape[0]);to(Uint8Array),to(ti,e=>e.shape===Uint8Array);let tq=tU(tO,tz,tK,tJ,tj,tV,tN);r=tA(tW),n=tE(tz,tW),i=tU(tO,tz,tK,tV,r,n),r.shape=i,n.shape.values=i;let tX=e=>{if(tF.check(e))return e;if(ty.check(e)){let t={};for(let r in e)t[r]=tX(e[r]);return new tb(t)}if(tv.check(e))return tU(...e.map(tX));if(tq.check(e))return td(e);if(tM.check(e))return to(e);em()},tQ=e1?()=>{}:(e,t)=>{let r=new tt;if(!t.check(e,r))throw Error(`Expected value to be of type ${t.constructor.name}. 2${r.toString()}`)},tZ=new class e{constructor(e){this.patterns=[],this.$state=e}if(e,t){return this.patterns.push({if:tX(e),h:t}),this}else(e){return this.if(tW,e)}done(){return(e,t)=>{for(let r=0;r<this.patterns.length;r++){let n=this.patterns[r];if(n.if.check(e))return n.h(e,t)}throw Error("Unhandled pattern")}}}(tW).if(tH,(e,t)=>e3(t,P,W)).if(tG,(e,t)=>((e,t=0,r=20)=>{let n=e6(e,t,r),i="";for(let t=0;t<n;t++)i+=e9(e);return i})(t)).if(t$,(e,t)=>e8(t)).if(tR,(e,t)=>BigInt(e3(t,P,W))).if(tL,(e,t)=>t0(t,e7(t,e.shape))).if(tx,(e,t)=>{let r={};for(let n in e.shape){let i=e.shape[n];if(tg.check(i)){if(e8(t))continue;i=i.shape}r[n]=tZ(i,t)}return r}).if(t_,(e,t)=>{let r=[],n=e6(t,0,42);for(let i=0;i<n;i++)r.push(t0(t,e.shape));return r}).if(tu,(e,t)=>e7(t,e.shape)).if(tY,(e,t)=>null).if(tD,(e,t)=>{let r=t0(t,e.res);return()=>r}).if(tP,(e,t)=>t0(t,e7(t,[tO,tz,tK,tJ,tj,tV,tA(tO),tE(tU("a","b","c"),tO)]))).if(tC,(e,t)=>{let r={},n=e3(t,0,3);for(let i=0;i<n;i++){let n=t0(t,e.shape.keys),i=t0(t,e.shape.values);r[n]=i}return r}).done(),t0=(e,t)=>tZ(tX(t),e),t1="u">typeof document?document:{};tl(e=>e.nodeType===t3),"u">typeof DOMParser&&new DOMParser,tl(e=>e.nodeType===t2),tl(e=>e.nodeType===t4);let t5=e=>((e,t)=>{let r=[];for(let[n,i]of e)r.push(t(i,n));return r})(e,(e,t)=>`${t}:${e};`).join(""),t2=t1.ELEMENT_NODE,t4=t1.TEXT_NODE;t1.CDATA_SECTION_NODE,t1.COMMENT_NODE;let t8=t1.DOCUMENT_NODE;t1.DOCUMENT_TYPE_NODE;let t3=t1.DOCUMENT_FRAGMENT_NODE;tl(e=>e.nodeType===t8);let t6=e=>class{constructor(e){this._=e}destroy(){e(this._)}};t6(clearTimeout),t6(clearInterval),t6(e=>"u">typeof requestAnimationFrame&&cancelAnimationFrame(e)),t6(e=>"u">typeof cancelIdleCallback&&cancelIdleCallback(e));let t9=Symbol,t7=t9(),re=t9(),rt=t9(),rr=t9(),rn=t9(),ri=t9(),ro=t9(),ra=t9(),rl=t9();eU();let rs={[t7]:e4("font-weight","bold"),[re]:e4("font-weight","normal"),[rt]:e4("color","blue"),[rn]:e4("color","green"),[rr]:e4("color","grey"),[ri]:e4("color","red"),[ro]:e4("color","purple"),[ra]:e4("color","orange"),[rl]:e4("
2color","black")},rd=e5?e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());let t=[],r=[],n=w(),i=[],o=0;for(;o<e.length;o++){let i=e[o],a=rs[i];if(void 0!==a)n.set(a.left,a.right);else{if(void 0===i)break;if(i.constructor===String||i.constructor===Number){let e=t5(n);o>0||e.length>0?(t.push("%c"+i),r.push(e)):t.push(i)}else break}}for(o>0&&(i=r).unshift(t.join(""));o<e.length;o++){let t=e[o];t instanceof Symbol||i.push(t)}return i}:e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());let t=[],r=[],n=0;for(;n<e.length;n++){let r=e[n];if(void 0===r)break;if(r.constructor===String||r.constructor===Number)t.push(r);else if(r.constructor===Object)break}for(n>0&&r.push(t.join(""));n<e.length;n++){let t=e[n];t instanceof Symbol||r.push(t)}return r},ru=T(),rc=e=>({[Symbol.iterator](){return this},next:e}),rh=(e,t)=>rc(()=>{let{done:r,value:n}=e.next();return{done:r,value:r?void 0:t(n)}});class rp{constructor(e,t){this.clock=e,this.len=t}}class rm{constructor(){this.clients=new Map}}let rg=(e,t,r)=>t.clients.forEac
2h((t,n)=>{let i=e.doc.store.clients.get(n);if(null!=i){let n=i[i.length-1],o=n.id.clock+n.length;for(let n=0,a=t[n];n<t.length&&a.clock<o;a=t[++n])r1(e,i,a.clock,a.len,r)}}),rf=(e,t)=>{let r=e.clients.get(t.client);return void 0!==r&&null!==((e,t)=>{let r=0,n=e.length-1;for(;r<=n;){let i=M((r+n)/2),o=e[i],a=o.clock;if(a<=t){if(t<a+o.len)return i;r=i+1}else n=i-1}return null})(r,t.clock)},rb=e=>{e.clients.forEach(e=>{let t,r;for(e.sort((e,t)=>e.clock-t.clock),t=1,r=1;t<e.length;t++){let n=e[r-1],i=e[t];n.clock+n.len>=i.clock?e[r-1]=new rp(n.clock,L(n.len,i.clock+i.len-n.clock)):(r<t&&(e[r]=i),r++)}e.length=r})},rx=(e,t,r,n)=>{C(e.clients,t,()=>[]).push(new rp(r,n))},ry=()=>new rm,rw=(e,t)=>{X(e.restEncoder,t.clients.size),_(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,r])=>{e.resetDsCurVal(),X(e.restEncoder,t);let n=r.length;X(e.restEncoder,n);for(let t=0;t<n;t++){let n=r[t];e.writeDsClock(n.clock),e.writeDsLen(n.len)}})},rE=e=>{let t=new rm,r=eE(e.restDecoder);for(let n=0;n<r;n++){e.resetDsCurVal();let r=eE(e.restDecoder),n=eE(e.restDecoder);if(n>0){let i=C(t.clients,r,()=>[]);for(let t=0;t<n;t++)i.push(new rp(e.readDsClock(),e.readDsLen()))}}return t},rC=(e,t,r)=>{let n=new rm,i=eE(e.restDecoder);for(let o=0;o<i;o++){e.resetDsCurVal();let i=eE(e.restDecoder),o=eE(e.restDecoder),a=r.clients.get(i)||[],l=rK(r,i);for(let r=0;r<o;r++){let r=e.readDsClock(),o=r+e.readDsLen();if(r<l){l<o&&rx(n,i,l,o-l);let e=rq(a,r),s=a[e];for(!s.deleted&&s.id.clock<r&&(a.splice(e+1,0,ix(t,s,r-s.id.clock)),e++);e<a.length;)if((s=a[e++]).id.clock<o)s.deleted||(o<s.id.clock+s.length&&a.splice(e,0,ix(t,s,o-s.id.clock)),s.delete(t));else break}else rx(n,i,r,o-r)}}if(n.clients.size>0){let e=new rM;return X(e.restEncoder,0),rw(e,n),e.toUint8Array()}return null};class rT extends D{constructor({guid:e="10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(e^eI()&15>>e/4).toString(16)),collectionid:t=null,gc:r=!0,gcFilter:n=()=>!0,meta:i=null,autoLoad:o=!1,shouldLoad:a=!0}={}){super(),this.gc=r,this.gcFilter=n,this.clientID=eI(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new r$,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=a,this.autoLoad=o,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=eL(e=>{this.on("load",()=>{this.isLoaded=!0,e(this)})});const l=()=>eL(e=>{let t=r=>{(void 0===r||!0===r)&&(this.off("sync",t),e())};this.on("sync",t)});this.on("sync",e=>{!1===e&&this.isSynced&&(this.whenSynced=l()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=l()}load(){let e=this._item;null===e||this.shouldLoad||r6(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(_(this.subdocs).map(e=>e.guid))}transact(e,t=null){return r6(this,e,t)}get(e,t=nx){let r=C(this.share,e,()=>{let e=new t;return e._integrate(this,null),e}),n=r.constructor;if(t!==nx&&n!==t)if(n===nx){let n=new t;n._map=r._map,r._map.forEach(e=>{for(;null!==e;e=e.left)e.parent=n}),n._start=r._start;for(let e=n._start;null!==e;e=e.right)e.parent=n;return n._length=r._length,this.share.set(e,n),n._integrate(this,null),n}else throw Error(`Type with the name ${e} has already been defined with a different constructor`);return r}getArray(e=""){return this.get(e,nL)}getText(e=""){return this.get(e,nQ)}getMap(e=""){return this.get(e,nW)}getXmlElement(e=""){return this.get(e,n1)}getXmlFragment(e=""){return this.get(e,n0)}toJSON(){let e={};return this.share.forEach((t,r)=>{e[r]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,_(this.subdocs).forEach(e=>e.destroy());let e=this._item;if(null!==e){this._item=null;let t=e.content;t.doc=new rT({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,r6(e.parent.doc,r=>{let n=t.doc;e.deleted||r.subdocsAdded.add(n),r.subdocsRemoved.add(this)},null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class rS{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return eE(this.restDecoder)}readDsLen(){return eE(this.restDecoder)}}class rA extends rS{readLeftID(){return rz(eE(this.restDecoder),eE(this.restDecoder))}readRightID(){return rz(eE(this.restDecoder),eE(this.restDecoder))}readClient(){return eE(this.restDecoder)}readInfo(){return ew(this.restDecoder)}readString(){return eT(this.restDecoder)}readParentInfo(){return 1===eE(this.restDecoder)}readTypeRef(){return eE(this.restDecoder)}readLen(){return eE(this.restDecoder)}readAny(){return e_(this.restDecoder)}readBuf(){var e=ey(this.restDecoder);let t=new Uint8Array(e.byteLength);return t.set(e),t}readJSON(){return JSON.parse(eT(this.restDecoder))}readKey(){return eT(this.restDecoder)}}class r_{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=eE(this.restDecoder),this.dsCurrVal}readDsLen(){let e=eE(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class rv extends r_{constructor(e){super(e),this.keys=[],eE(e),this.keyClockDecoder=new eF(ey(e)),this.clientDecoder=new ek(ey(e)),this.leftClockDecoder=new eF(ey(e)),this.rightClockDecoder=new eF(ey(e)),this.infoDecoder=new ev(ey(e),ew),this.stringDecoder=new eD(ey(e)),this.parentInfoDecoder=new ev(ey(e),ew),this.typeRefDecoder=new ek(ey(e)),this.lenDecoder=new ek(ey(e))}readLeftID(){return new rO(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new rO(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return e_(this.restDecoder)}readBuf(){return ey(this.restDecoder)}readJSON(){return e_(this.restDecoder)}readKey(){let e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{let e=this.stringDecoder.read();return this.keys.push(e),e}}}class rk{constructor(){this.restEncoder=K()}toUint8Array(){return Y(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){X(this.restEncoder,e)}writeDsLen(e){X(this.restEncoder,e)}}class rF extends rk{writeLeftID(e){X(this.restEncoder,e.client),X(this.restEncoder,e.clock)}writeRightID(e){X(this.restEncoder,e.client),X(this.restEncoder,e.clock)}writeClient(e){X(this.restEncoder,e)}writeInfo(e){q(this.restEncoder,e)}writeString(e){et(this.restEncoder,e)}writeParentInfo(e){X(this.restEncoder,+!!e)}writeTypeRef(e){X(this.restEncoder,e)}writeLen(e){X(this.restEncoder,e)}writeAny(e){ea(this.restEncoder,e)}writeBuf(e){en(this.restEncoder,e)}writeJSON(e){et(this.restEncoder,JSON.stringify(e))}writeKey(e){et(this.restEncoder,e)}}class rD{constructor(){this.restEncoder=K(),this.dsCurrVal=0}toUint8Array(){return Y(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){let t=e-this.dsCurrVal;this.dsCurrVal=e,X(this.restEncoder,t)}writeDsLen(e){0===e&&em(),X(this.restEncoder,e-1),this.dsCurrVal+=e}}class rM extends rD{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new ec,this.clientEncoder=new ed,this.leftClockEncoder=new ec,this.rightClockEncoder=new ec,this.infoEncoder=new el(q),this.stringEncoder=new eh,this.parentInfoEncoder=new el(q),this.typeRefEncoder=new ed,this.lenEncoder=new ed}toUint8Array(){let e=K();return X(e,0),en(e,this.keyClockEncoder.toUint8Array()),en(e,this.clientEncoder.toUint8Array()),en(e,this.leftClockEncoder.toUint8Array()),en(e,this.rightClockEncoder.toUint8Array()),en(e,Y(this.infoEncoder)),en(e,this.stringEncoder.toUint8Array()),en(e,Y(this.parentInfoEncoder)),en(e,this.typeRefEncoder.toUint8Array()),en(e,this.lenEncoder.toUint8Array()),er(e,Y(this.restEncoder)),Y(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(+!!e)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){ea(this.restEncoder,e)}writeBuf(e){en(this.restEncoder,e)}writeJSON(e){ea(this.restEncoder,e)}writeKey(e){let t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}let rI=(e,t,r)=>{let n=new Map;r.forEach((e,r)=>{rK(t,r)>e&&n.set(r,e)}),rJ(t).forEach((e,t)=>{r.has(t)||n.set(t,0)}),X(e.restEncoder,n.size),_(n.entries()).sort((e,t)=>
2t[0]-e[0]).forEach(([r,n])=>{((e,t,r,n)=>{n=L(n,t[0].id.clock);let i=rq(t,n);X(e.restEncoder,t.length-i),e.writeClient(r),X(e.restEncoder,n);let o=t[i];o.write(e,n-o.id.clock);for(let r=i+1;r<t.length;r++)t[r].write(e,0)})(e,t.clients.get(r),r,n)})},rU=(e,t,r,n=rv)=>{let i=ex(t);((e,t,r,n=new rv(e))=>r6(t,e=>{e.local=!1;let t=!1,r=e.doc,i=r.store,o=((e,t,r)=>{let n=[],i=_(r.keys()).sort((e,t)=>e-t);if(0===i.length)return null;let o=()=>{if(0===i.length)return null;let e=r.get(i[i.length-1]);for(;e.refs.length===e.i;){if(i.pop(),!(i.length>0))return null;e=r.get(i[i.length-1])}return e},a=o();if(null===a)return null;let l=new r$,s=new Map,d=(e,t)=>{let r=s.get(e);(null==r||r>t)&&s.set(e,t)},u=a.refs[a.i++],c=new Map,h=()=>{for(let e of n){let t=e.id.client,n=r.get(t);n?(n.i--,l.clients.set(t,n.refs.slice(n.i)),r.delete(t),n.i=0,n.refs=[]):l.clients.set(t,[e]),i=i.filter(e=>e!==t)}n.length=0};for(;;){if(u.constructor!==iC){let i=C(c,u.id.client,()=>rK(t,u.id.client))-u.id.clock;if(i<0)n.push(u),d(u.id.client,u.id.clock-1),h();else{let o=u.getMissing(e,t);if(null!==o){n.push(u);let e=r.get(o)||{refs:[],i:0};if(e.refs.length===e.i)d(o,rK(t,o)),h();else{u=e.refs[e.i++];continue}}else(0===i||i<u.length)&&(u.integrate(e,i),c.set(u.id.client,u.id.clock+u.length))}}if(n.length>0)u=n.pop();else if(null!==a&&a.i<a.refs.length)u=a.refs[a.i++];else{if(null===(a=o()))break;u=a.refs[a.i++]}}if(l.clients.size>0){let e=new rM;return rI(e,l,new Map),X(e.restEncoder,0),{missing:s,update:e.toUint8Array()}}return null})(e,i,((e,t)=>{let r=w(),n=eE(e.restDecoder);for(let i=0;i<n;i++){let n=eE(e.restDecoder),i=Array(n),o=e.readClient(),a=eE(e.restDecoder);r.set(o,{i:0,refs:i});for(let r=0;r<n;r++){let n=e.readInfo();switch(31&n){case 0:{let t=e.readLen();i[r]=new n3(rz(o,a),t),a+=t;break}case 10:{let t=eE(e.restDecoder);i[r]=new iC(rz(o,a),t),a+=t;break}default:{let l=(192&n)==0,s=new iy(rz(o,a),null,(128&n)==128?e.readLeftID():null,null,(64&n)==64?e.readRightID():null,l?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,l&&(32&n)==32?e.readString():null,iw(e,n));i[r]=s,a+=s.length}}}}return r})(n,r)),a=i.pendingStructs;if(a){for(let[e,r]of a.missing)if(r<rK(i,e)){t=!0;break}if(o){for(let[e,t]of o.missing){let r=a.missing.get(e);(null==r||r>t)&&a.missing.set(e,t)}a.update=nr([a.update,o.update])}}else i.pendingStructs=o;let l=rC(n,e,i);if(i.pendingDs){let t=new rv(ex(i.pendingDs));eE(t.restDecoder);let r=rC(t,e,i);l&&r?i.pendingDs=nr([l,r]):i.pendingDs=l||r}else i.pendingDs=l;if(t){let t=i.pendingStructs.update;i.pendingStructs=null,rU(e.doc,t)}},r,!1))(i,e,r,new n(i))},rL=(e,t)=>((e,t=new Uint8Array([0]),r=new rM)=>{((e,t,r=new Map)=>{var n;let i;rI(e,t.store,r),rw(e,(n=t.store,i=ry(),n.clients.forEach((e,t)=>{let r=[];for(let t=0;t<e.length;t++){let n=e[t];if(n.deleted){let i=n.id.clock,o=n.length;if(t+1<e.length)for(let r=e[t+1];t+1<e.length&&r.deleted;r=e[++t+1])o+=r.length;r.push(new rp(i,o))}}r.length>0&&i.clients.set(t,r)}),i))})(r,e,rB(t));let n=[r.toUint8Array()];if(e.store.pendingDs&&n.push(e.store.pendingDs),e.store.pendingStructs&&n.push(nn(e.store.pendingStructs.update,t)),n.length>1){if(r.constructor===rF)return ne(n.map((e,t)=>0===t?e:nl(e)));else if(r.constructor===rM)return nr(n)}return n[0]})(e,t,new rF),rB=e=>(e=>{let t=new Map,r=eE(e.restDecoder);for(let n=0;n<r;n++){let r=eE(e.restDecoder),n=eE(e.restDecoder);t.set(r,n)}return t})(new rS(ex(e))),rW=(e,t)=>(X(e.restEncoder,t.size),_(t.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,r])=>{X(e.restEncoder,t),X(e.restEncoder,r)}),e);class rP{constructor(){this.l=[]}}let rj=()=>new rP,rR=(e,t)=>{let r=e.l,n=r.length;e.l=r.filter(e=>t!==e),n===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},rN=(e,t,r)=>eJ(e.l,[t,r]);class rO{constructor(e,t){this.client=e,this.clock=t}}let rH=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,rz=(e,t)=>new rO(e,t);o=ry(),new class e{constructor(e,t){this.ds=e,this.sv=t}}(o,new Map);let rG=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!rf(t.ds,e.id),rV=(e,t)=>{let r=C(e.meta,rV,T),n=e.doc.store;r.has(t)||(t.sv.forEach((t,r)=>{t<rK(n,r)&&rZ(e,rz(r,t))}),rg(e,t.ds,e=>{}),r.add(t))};class r${constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}let rJ=e=>{let t=new Map;
2return e.clients.forEach((e,r)=>{let n=e[e.length-1];t.set(r,n.id.clock+n.length)}),t},rK=(e,t)=>{let r=e.clients.get(t);if(void 0===r)return 0;let n=r[r.length-1];return n.id.clock+n.length},rY=(e,t)=>{let r=e.clients.get(t.id.client);if(void 0===r)r=[],e.clients.set(t.id.client,r);else{let e=r[r.length-1];if(e.id.clock+e.length!==t.id.clock)throw em()}r.push(t)},rq=(e,t)=>{let r=0,n=e.length-1,i=e[n],o=i.id.clock;if(o===t)return n;let a=M(t/(o+i.length-1)*n);for(;r<=n;){if((o=(i=e[a]).id.clock)<=t){if(t<o+i.length)return a;r=a+1}else n=a-1;a=M((r+n)/2)}throw em()},rX=(e,t)=>{let r=e.clients.get(t.client);return r[rq(r,t.clock)]},rQ=(e,t,r)=>{let n=rq(t,r),i=t[n];return i.id.clock<r&&i instanceof iy?(t.splice(n+1,0,ix(e,i,r-i.id.clock)),n+1):n},rZ=(e,t)=>{let r=e.doc.store.clients.get(t.client);return r[rQ(e,r,t.clock)]},r0=(e,t,r)=>{let n=t.clients.get(r.client),i=rq(n,r.clock),o=n[i];return r.clock!==o.id.clock+o.length-1&&o.constructor!==n3&&n.splice(i+1,0,ix(e,o,r.clock-o.id.clock+1)),o},r1=(e,t,r,n,i)=>{let o;if(0===n)return;let a=r+n,l=rQ(e,t,r);do a<(o=t[l++]).id.clock+o.length&&rQ(e,t,a),i(o);while(l<t.length&&t[l].id.clock<a)};class r5{constructor(e,t,r){this.doc=e,this.deleteSet=new rm,this.beforeState=rJ(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=r,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}let r2=(e,t)=>(0!==t.deleteSet.clients.size||!!((e,t)=>{for(let[r,n]of e)if(t(n,r))return!0;return!1})(t.afterState,(e,r)=>t.beforeState.get(r)!==e))&&(rb(t.deleteSet),rI(e,t.doc.store,t.beforeState),rw(e,t.deleteSet),!0),r4=(e,t,r)=>{let n=t._item;(null===n||n.id.clock<(e.beforeState.get(n.id.client)||0)&&!n.deleted)&&C(e.changed,t,T).add(r)},r8=(e,t)=>{let r=e[t],n=e[t-1],i=t;for(;i>0;r=n,n=e[--i-1]){if(n.deleted===r.deleted&&n.constructor===r.constructor&&n.mergeWith(r)){r instanceof iy&&null!==r.parentSub&&r.parent._map.get(r.parentSub)===r&&r.parent._map.set(r.parentSub,n);continue}break}let o=t-i;return o&&e.splice(t+1-o,o),o},r3=(e,t)=>{if(t<e.length){let r=e[t],n=r.doc,i=n.store,o=r.deleteSet,a=r._mergeStructs;try{rb(o),r.afterState=rJ(r.doc.store),n.emit("beforeObserverCalls",[r,n]);let e=[];r.changed.forEach((t,n)=>e.push(()=>{null!==n._item&&n._item.deleted||n._callObserver(r,t)})),e.push(()=>{r.changedParentTypes.forEach((t,n)=>{n._dEH.l.length>0&&(null===n._item||!n._item.deleted)&&((t=t.filter(e=>null===e.target._item||!e.target._item.deleted)).forEach(e=>{e.currentTarget=n,e._path=null}),t.sort((e,t)=>e.path.length-t.path.length),e.push(()=>{rN(n._dEH,t,r)}))}),e.push(()=>n.emit("afterTransaction",[r,n])),e.push(()=>{r._needFormattingCleanup&&nY(r)})}),eJ(e,[])}finally{n.gc&&((e,t,r)=>{for(let[n,i]of e.clients.entries()){let e=t.clients.get(n);for(let n=i.length-1;n>=0;n--){let o=i[n],a=o.clock+o.len;for(let n=rq(e,o.clock),i=e[n];n<e.length&&i.id.clock<a;i=e[++n]){let i=e[n];if(o.clock+o.len<=i.id.clock)break;i instanceof iy&&i.deleted&&!i.keep&&r(i)&&i.gc(t,!1)}}}})(o,i,n.gcFilter),o.clients.forEach((e,t)=>{let r=i.clients.get(t);for(let t=e.length-1;t>=0;t--){let n=e[t],i=U(r.length-1,1+rq(r,n.clock+n.len-1));for(let e=i,t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+r8(r,e)}}),r.afterState.forEach((e,t)=>{let n=r.beforeState.get(t)||0;if(n!==e){let e=i.clients.get(t),r=L(rq(e,n),1);for(let t=e.length-1;t>=r;)t-=1+r8(e,t)}});for(let e=a.length-1;e>=0;e--){let{client:t,clock:r}=a[e].id,n=i.clients.get(t),o=rq(n,r);!(o+1<n.length&&r8(n,o+1)>1)&&o>0&&r8(n,o)}if(r.local||r.afterState.get(n.clientID)===r.beforeState.get(n.clientID)||(((...e)=>{console.log(...rd(e)),ru.forEach(t=>t.print(e))})(ra,t7,"[yjs] ",re,ri,"Changed the client-id because another client seems to be using it."),n.clientID=eI()),n.emit("afterTransactionCleanup",[r,n]),n._observers.has("update")){let e=new rF;r2(e,r)&&n.emit("update",[e.toUint8Array(),r.origin,n,r])}if(n._observers.has("updateV2")){let e=new rM;r2(e,r)&&n.emit("updateV2",[e.toUint8Array(),r.origin,n,r])}let{subdocsAdded:l,subdocsLoaded:s,subdocsRemoved:d}=r;(l.size>0||d.size>0||s.size>
20)&&(l.forEach(e=>{e.clientID=n.clientID,null==e.collectionid&&(e.collectionid=n.collectionid),n.subdocs.add(e)}),d.forEach(e=>n.subdocs.delete(e)),n.emit("subdocs",[{loaded:s,added:l,removed:d},n,r]),d.forEach(e=>e.destroy())),e.length<=t+1?(n._transactionCleanups=[],n.emit("afterAllTransactions",[n,e])):r3(e,t+1)}}},r6=(e,t,r=null,n=!0)=>{let i=e._transactionCleanups,o=!1,a=null;null===e._transaction&&(o=!0,e._transaction=new r5(e,r,n),i.push(e._transaction),1===i.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{a=t(e._transaction)}finally{if(o){let t=e._transaction===i[0];e._transaction=null,t&&r3(i,0)}}return a};class r9{constructor(e,t){this.gen=function*(e){let t=eE(e.restDecoder);for(let r=0;r<t;r++){let t=eE(e.restDecoder),r=e.readClient(),n=eE(e.restDecoder);for(let i=0;i<t;i++){let t=e.readInfo();if(10===t){let t=eE(e.restDecoder);yield new iC(rz(r,n),t),n+=t}else if((31&t)!=0){let i=(192&t)==0,o=new iy(rz(r,n),null,(128&t)==128?e.readLeftID():null,null,(64&t)==64?e.readRightID():null,i?e.readParentInfo()?e.readString():e.readLeftID():null,i&&(32&t)==32?e.readString():null,iw(e,t));yield o,n+=o.length}else{let t=e.readLen();yield new n3(rz(r,n),t),n+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do this.curr=this.gen.next().value||null;while(this.filterSkips&&null!==this.curr&&this.curr.constructor===iC)return this.curr}}class r7{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}let ne=e=>nr(e,rA,rF),nt=(e,t)=>{if(e.constructor===n3){let{client:r,clock:n}=e.id;return new n3(rz(r,n+t),e.length-t)}if(e.constructor===iC){let{client:r,clock:n}=e.id;return new iC(rz(r,n+t),e.length-t)}{let{client:r,clock:n}=e.id;return new iy(rz(r,n+t),null,rz(r,n+t-1),null,e.rightOrigin,e.parent,e.parentSub,e.content.splice(t))}},nr=(e,t=rv,r=rM)=>
2{if(1===e.length)return e[0];let n=e.map(e=>new t(ex(e))),i=n.map(e=>new r9(e,!0)),o=null,a=new r,l=new r7(a);for(;(i=i.filter(e=>null!==e.curr)).sort((e,t)=>{if(e.curr.id.client!==t.curr.id.client)return t.curr.id.client-e.curr.id.client;{let r=e.curr.id.clock-t.curr.id.clock;return 0===r?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===iC?1:-1:r}}),0!==i.length;){let e=i[0],t=e.curr.id.client;if(null!==o){let r=e.curr,n=!1;for(;null!==r&&r.id.clock+r.length<=o.struct.id.clock+o.struct.length&&r.id.client>=o.struct.id.client;)r=e.next(),n=!0;if(null===r||r.id.client!==t||n&&r.id.clock>o.struct.id.clock+o.struct.length)continue;if(t!==o.struct.id.client)no(l,o.struct,o.offset),o={struct:r,offset:0},e.next();else if(o.struct.id.clock+o.struct.length<r.id.clock)if(o.struct.constructor===iC)o.struct.length=r.id.clock+r.length-o.struct.id.clock;else{no(l,o.struct,o.offset);let e=r.id.clock-o.struct.id.clock-o.struct.length;o={struct:new iC(rz(t,o.struct.id.clock+o.struct.length),e),offset:0}}else{let t=o.struct.id.clock+o.struct.length-r.id.clock;t>0&&(o.struct.constructor===iC?o.struct.length-=t:r=nt(r,t)),o.struct.mergeWith(r)||(no(l,o.struct,o.offset),o={struct:r,offset:0},e.next())}}else o={struct:e.curr,offset:0},e.next();for(let r=e.curr;null!==r&&r.id.client===t&&r.id.clock===o.struct.id.clock+o.struct.length&&r.constructor!==iC;r=e.next())no(l,o.struct,o.offset),o={struct:r,offset:0}}return null!==o&&(no(l,o.struct,o.offset),o=null),na(l),rw(a,(e=>{let t=new rm;for(let r=0;r<e.length;r++)e[r].clients.forEach((n,i)=>{if(!t.clients.has(i)){let o=n.slice();for(let t=r+1;t<e.length;t++)A(o,e[t].clients.get(i)||[]);t.clients.set(i,o)}});return rb(t),t})(n.map(e=>rE(e)))),a.toUint8Array()},nn=(e,t,r=rv,n=rM)=>{let i=rB(t),o=new n,a=new r7(o),l=new r(ex(e)),s=new r9(l,!1);for(;s.curr;){let e=s.curr,t=e.id.client,r=i.get(t)||0;if(s.curr.constructor===iC){s.next();continue}if(e.id.clock+e.length>r)for(no(a,e,L(r-e.id.clock,0)),s.next();s.curr&&s.curr.id.client===t;)no(a,s.curr,0),s.next();else for(;s.curr&&s.curr.id.client===t&&s.curr.id.clock+s.curr.length<=r;)s.next()}return na(a),rw(o,rE(l)),o.toUint8Array()},ni=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:Y(e.encoder.restEncoder)}),e.encoder.restEncoder=K(),e.written=0)},no=(e,t,r)=>{e.written>0&&e.currClient!==t.id.client&&ni(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),X(e.encoder.restEncoder,t.id.clock+r)),t.write(e.encoder,r),e.written++},na=e=>{ni(e);let t=e.encoder.restEncoder;X(t,e.clientStructs.length);for(let r=0;r<e.clientStructs.length;r++){let n=e.clientStructs[r];X(t,n.written),er(t,n.restEncoder)}},nl=e=>((e,t,r,n)=>{let i=new r(ex(e)),o=new r9(i,!1),a=new n,l=new r7(a);for(let e=o.curr;null!==e;e=o.next())no(l,t(e),0);return na(l),rw(a,rE(i)),a.toUint8Array()})(e,eK,rv,rF),ns="You must not compute changes after the event-handler fired.";class nd{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=nu(this.currentTarget,this.target))}deletes(e){return rf(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw Error(ns);let e=new Map,t=this.target;this.transaction.changed.get(t).forEach(r=>{if(null!==r){let n,i,o=t._map.get(r);if(this.adds(o)){let e=o.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(o))if(!(null!==e&&this.deletes(e)))return;else n="delete",i=S(e.content.getContent());else null!==e&&this.deletes(e)?(n="update",i=S(e.content.getContent())):(n="add",i=void 0)}else{if(!this.deletes(o))return;n="delete",i=S(o.content.getContent())}e.set(r,{action:n,oldValue:i})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw Error(ns);let t=this.target,r=T(),n=T(),i=[];if(e={added:r,deleted:n,delta:i,keys:this.keys},this.transaction.changed.get(t).has(null)){let e=null,o=()=>{e&&i.push(e)};for(let i=t._start;null!==i;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&((null===e||void 0===e.delete)&&(o(),e={delete:0}),e.delete+=i.length,n.add(i)):this.adds(i)?((null===e||void 0===e.insert)&&(o(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),r.add(i)):((null===e||void 0===e.retain)&&(o(),e={retain:0}),e.retain+=i.length);null!==e&&void 0===e.retain&&o()}this._changes=e}return e}}let nu=(e,t)=>{let r=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)r.unshift(t._item.parentSub);else{let e=0,n=t._item.parent._start;for(;n!==t._item&&null!==n;
2)!n.deleted&&n.countable&&(e+=n.length),n=n.right;r.unshift(e)}t=t._item.parent}return r},nc=()=>{((...e)=>{console.warn(...rd(e)),e.unshift(ra),ru.forEach(t=>t.print(e))})("Invalid access: Add Yjs type to a document before reading data.")},nh=0;class np{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=nh++}}let nm=(e,t,r)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=r,e.timestamp=nh++},ng=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;let r=0===e._searchMarker.length?null:e._searchMarker.reduce((e,r)=>I(t-e.index)<I(t-r.index)?e:r),n=e._start,i=0;for(null!==r&&(n=r.p,i=r.index,r.timestamp=nh++);null!==n.right&&i<t;){if(!n.deleted&&n.countable){if(t<i+n.length)break;i+=n.length}n=n.right}for(;null!==n.left&&i>t;)!(n=n.left).deleted&&n.countable&&(i-=n.length);for(;null!==n.left&&n.left.id.client===n.id.client&&n.left.id.clock+n.left.length===n.id.clock;)!(n=n.left).deleted&&n.countable&&(i-=n.length);if(null!==r&&I(r.index-i)<n.parent.length/80)return nm(r,n,i),r;var o=e._searchMarker,a=n,l=i;if(o.length>=80){let e=o.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return nm(e,a,l),e}{let e=new np(a,l);return o.push(e),e}},nf=(e,t,r)=>{for(let n=e.length-1;n>=0;n--){let i=e[n];if(r>0){let t=i.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)(t=t.left)&&!t.deleted&&t.countable&&(i.index-=t.length);if(null===t||!0===t.marker){e.splice(n,1);continue}i.p=t,t.marker=!0}(t<i.index||r>0&&t===i.index)&&(i.index=L(t,i.index+r))}},nb=(e,t,r)=>{let n=e,i=t.changedParentTypes;for(;C(i,e,()=>[]).push(r),null!==e._item;)e=e._item.parent;rN(n._eH,r,t)};class nx{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=rj(),this._dEH=rj(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ep()}clone(){throw ep()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){let t;t=this._eH,t.l.push(e)}observeDeep(e){let t;t=this._dEH,t.l.push(e)}unobserve(e){rR(this._eH,e)}unobserveDeep(e){rR(this._dEH,e)}toJSON(){}}let ny=(e,t,r)=>{e.doc??nc(),t<0&&(t=e._length+t),r<0&&(r=e._length+r);let n=r-t,i=[],o=e._start;for(;null!==o&&n>0;){if(o.countable&&!o.deleted){let e=o.content.getContent();if(e.length<=t)t-=e.length;else{for(let r=t;r<e.length&&n>0;r++)i.push(e[r]),n--;t=0}}o=o.right}return i},nw=e=>{e.doc??nc();let t=[],r=e._start;for(;null!==r;){if(r.countable&&!r.deleted){let e=r.content.getContent();for(let r=0;r<e.length;r++)t.push(e[r])}r=r.right}return t},nE=(e,t)=>{let r=0,n=e._start;for(e.doc??nc();null!==n;){if(n.countable&&!n.deleted){let i=n.content.getContent();for(let n=0;n<i.length;n++)t(i[n],r++,e)}n=n.right}},nC=(e,t)=>{let r=[];return nE(e,(n,i)=>{r.push(t(n,i,e))}),r},nT=(e,t)=>{e.doc??nc();let r=ng(e,t),n=e._start;for(null!==r&&(n=r.p,t-=r.index);null!==n;n=n.right)if(!n.deleted&&n.countable){if(t<n.length)return n.content.getContent()[t];t-=n.length}},nS=(e,t,r,n)=>{let i=r,o=e.doc,a=o.clientID,l=o.store,s=null===r?t._start:r.right,d=[],u=()=>{d.length>0&&((i=new iy(rz(a,rK(l,a)),i,i&&i.lastId,s,s&&s.id,t,null,new ia(d))).integrate(e,0),d=[])};n.forEach(r=>{if(null===r)d.push(r);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:d.push(r);break;default:switch(u(),r.constructor){case Uint8Array:case ArrayBuffer:(i=new iy(rz(a,rK(l,a)),i,i&&i.lastId,s,s&&s.id,t,null,new n6(new Uint8Array(r)))).integrate(e,0);break;case rT:(i=new iy(rz(a,rK(l,a)),i,i&&i.lastId,s,s&&s.id,t,null,new ie(r))).integrate(e,0);break;default:if(r instanceof nx)(i=new iy(rz(a,rK(l,a)),i,i&&i.lastId,s,s&&s.id,t,null,new ib(r))).integrate(e,0);else throw Error("Unexpected content type in insert operation")}}}),u()},nA=(e,t,r,n)=>{if(r>t._length)throw Error("Length exceeded!");if(0===r)return t._searchMarker&&nf(t._searchMarker,r,n.length),nS(e,t,null,n);let i=r,o=ng(t,r),a=t._start;for(null!==o&&(a=o.p,0==(r-=o.index)&&(r+=(a=a.prev)&&a.countable&&!a.deleted?a.length:0));null!==a;a=a.right)if(!a.deleted&&a.countable){if(r<=a.length){r<a.length&&rZ(e,rz(a.id.client,a.id.clock+r));break}r-=a.length}return t._searchMarker&&nf(t._searchMarker,i,n.length),nS(e,t,a,n)},n_=(e,t,r,n)=>{if(0===n)return;let i=r,o=n,a=ng(t,r),l=t._start;for(null!==a&&(l=a.p,r-=a.index);null!==l&&r>0;l=l.right)!l.deleted&&l.countable&&(r<l.length&&rZ(e,rz(l.id.client,l.id.clock+r)),r-=l.length);for(;n>0&&null!==l;)l.deleted||(n<l.length&&rZ(e,rz(l.id.client,l.id.clock+n)),l.delete(e),n-=l.length),l=l.right;if(n>0)throw Error("Length exceeded!");t._searchMarker&&nf(t._searchMarker,i,-o+n)},nv=(e,t,r)=>{let n=t._map.get(r);void 0!==n&&n.delete(e)},nk=(e,t,r,n)=>{let i,o=t._map.get(r)||null,a=e.doc,l=a.clientID;if(null==n)i=new ia([n]);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:i=new ia([n]);break;case Uint8Array:i=new n6(n);break;case rT:i=new ie(n);break;default:if(n instanceof nx)i=new ib(n);else throw Error("Unexpected content type")}new iy(rz(l,rK(a.store,l)),o,o&&o.lastId,null,null,t,r,i).integrate(e,0)},nF=(e,t)=>{e.doc??nc();let r=e._map.get(t);return void 0===r||r.deleted?void 0:r.content.getContent()[r.length-1]},nD=e=>{let t={};
2return e.doc??nc(),e._map.forEach((e,r)=>{e.deleted||(t[r]=e.content.getContent()[e.length-1])}),t},nM=(e,t)=>{e.doc??nc();let r=e._map.get(t);return void 0!==r&&!r.deleted},nI=e=>{let t,r;return e.doc??nc(),t=e._map.entries(),r=e=>!e[1].deleted,rc(()=>{let e;do e=t.next();while(!e.done&&!r(e.value))return e})};class nU extends nd{}class nL extends nx{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){let t=new nL;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new nL}clone(){let e=new nL;return e.insert(0,this.toArray().map(e=>e instanceof nx?e.clone():e)),e}get length(){return this.doc??nc(),this._length}_callObserver(e,t){super._callObserver(e,t),nb(this,e,new nU(this,e))}insert(e,t){null!==this.doc?r6(this.doc,r=>{nA(r,this,e,t)}):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?r6(this.doc,t=>{((e,t,r)=>{let n=(t._searchMarker||[]).reduce((e,t)=>t.index>e.index?t:e,{index:0,p:t._start}).p;if(n)for(;n.right;)n=n.right;return nS(e,t,n,r)})(t,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?r6(this.doc,r=>{n_(r,this,e,t)}):this._prelimContent.splice(e,t)}get(e){return nT(this,e)}toArray(){return nw(this)}slice(e=0,t=this.length){return ny(this,e,t)}toJSON(){return this.map(e=>e instanceof nx?e.toJSON():e)}map(e){return nC(this,e)}forEach(e){nE(this,e)}[Symbol.iterator](){let e,t,r;return e=this._start,t=null,r=0,{[Symbol.iterator](){return this},next:()=>{if(null===t){for(;null!==e&&e.deleted;)e=e.right;if(null===e)return{done:!0,value:void 0};t=e.content.getContent(),r=0,e=e.right}let n=t[r++];return t.length<=r&&(t=null),{done:!1,value:n}}}}_write(e){e.writeTypeRef(id)}}class nB extends nd{constructor(e,t,r){super(e,t),this.keysChanged=r}}class nW extends nx{constructor(e){super(),this._prelimContent=null,void 0===e?this._prelimContent=new Map:this._prelimContent=new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new nW}clone(){let e=new nW;return this.forEach((t,r)=>{e.set(r,t instanceof nx?t.clone():t)}),e}_callObserver(e,t){nb(this,e,new nB(this,e,t))}toJSON(){this.doc??nc();let e={};return this._map.forEach((t,r)=>{if(!t.deleted){let n=t.content.getContent()[t.length-1];e[r]=n instanceof nx?n.toJSON():n}}),e}get size(){return[...nI(this)].length}keys(){return rh(nI(this),e=>e[0])}values(){return rh(nI(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return rh(nI(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??nc(),this._map.forEach((t,r)=>{t.deleted||e(t.content.getContent()[t.length-1],r,this)})}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?r6(this.doc,t=>{nv(t,this,e)}):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?r6(this.doc,r=>{nk(r,this,e,t)}):this._prelimContent.set(e,t),t}get(e){return nF(this,e)}has(e){return nM(this,e)}clear(){null!==this.doc?r6(this.doc,e=>{this.forEach(function(t,r,n){nv(e,n,r)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(iu)}}let nP=(e,t)=>{let r,n;return e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((r=e)===(n=t)||eH(r).length===eH(n).length&&ez(r,(e,t)=>(void 0!==e||eG(n,t))&&eN(n[t],e)))};class nj{constructor(e,t,r,n){this.left=e,this.right=t,this.index=r,this.currentAttributes=n}forward(){null===this.right&&em(),this.right.content.constructor===ir?this.right.deleted||nH(this.currentAttributes,this.right.content):this.right.deleted||(this.index+=this.right.length),this.left=this.right,this.right=this.right.right}}let nR=(e,t,r)=>{for(;null!==t.right&&r>0;)t.right.content.constructor===ir?t.right.deleted||nH(t.currentAttributes,t.right.content):t.right.deleted||(r<t.right.length&&rZ(e,rz(t.right.id.client,t.right.id.clock+r)),t.index+=t.right.length,r-=t.right.length),t.left=t.right,t.right=t.right.right;return t},nN=(e,t,r,n)=>{let i=new Map,o=n?ng(t,r):null;return o?nR(e,new nj(o.p.left,o.p,o.index,i),r-o.index):nR(e,new nj(null,t._start,0,i),r)},nO=(e,t,r,n)=>{for(;null!==r.right&&(!0===r.right.deleted||r.right.content.constructor===ir&&nP(n.get(r.right.content.key),r.right.content.value));)r.right.deleted||n.delete(r.right.content.key),r.forward();let i=e.doc,o=i.clientID;
2n.forEach((n,a)=>{let l=r.left,s=r.right,d=new iy(rz(o,rK(i.store,o)),l,l&&l.lastId,s,s&&s.id,t,null,new ir(a,n));d.integrate(e,0),r.right=d,r.forward()})},nH=(e,t)=>{let{key:r,value:n}=t;null===n?e.delete(r):e.set(r,n)},nz=(e,t)=>{for(;null!==e.right&&(e.right.deleted||e.right.content.constructor===ir&&nP(t[e.right.content.key]??null,e.right.content.value));){;e.forward()}},nG=(e,t,r,n)=>{let i=e.doc,o=i.clientID,a=new Map;for(let l in n){let s=n[l],d=r.currentAttributes.get(l)??null;if(!nP(d,s)){a.set(l,d);let{left:n,right:u}=r;r.right=new iy(rz(o,rK(i.store,o)),n,n&&n.lastId,u,u&&u.id,t,null,new ir(l,s)),r.right.integrate(e,0),r.forward()}}return a},nV=(e,t,r,n,i)=>{r.currentAttributes.forEach((e,t)=>{void 0===i[t]&&(i[t]=null)});let o=e.doc,a=o.clientID;nz(r,i);let l=nG(e,t,r,i),s=n.constructor===String?new il(n):n instanceof nx?new ib(n):new it(n),{left:d,right:u,index:c}=r;t._searchMarker&&nf(t._searchMarker,r.index,s.getLength()),(u=new iy(rz(a,rK(o.store,a)),d,d&&d.lastId,u,u&&u.id,t,null,s)).integrate(e,0),r.right=u,r.index=c,r.forward(),nO(e,t,r,l)},n$=(e,t,r,n,i)=>{let o=e.doc,a=o.clientID;nz(r,i);let l=nG(e,t,r,i);for(;null!==r.right&&(n>0||l.size>0&&(r.right.deleted||r.right.content.constructor===ir));){if(!r.right.deleted)if(r.right.content.constructor===ir){let{key:t,value:o}=r.right.content,a=i[t];if(void 0!==a){if(nP(a,o))l.delete(t);else{if(0===n)break;l.set(t,o)}r.right.delete(e)}else r.currentAttributes.set(t,o)}else n<r.right.length&&rZ(e,rz(r.right.id.client,r.right.id.clock+n)),n-=r.right.length;r.forward()}if(n>0){let i="";for(;n>0;n--)i+="\n";r.right=new iy(rz(a,rK(o.store,a)),r.left,r.left&&r.left.lastId,r.right,r.right&&r.right.id,t,null,new il(i)),r.right.integrate(e,0),r.forward()}nO(e,t,r,l)},nJ=(e,t,r,n,i)=>{let o=t,a=w();for(;o&&(!o.countable||o.deleted);){if(!o.deleted&&o.content.constructor===ir){let e=o.content;a.set(e.key,e)}o=o.right}let l=0,s=!1;for(;t!==o;){if(r===t&&(s=!0),!t.deleted){let r=t.content;if(r.constructor===ir){let{key:o,value:d}=r,u=n.get(o)??null;(a.get(o)!==r||u===d)&&(t.delete(e),l++,s||(i.get(o)??null)!==d||u===d||(null===u?i.delete(o):i.set(o,u))),s||t.deleted||nH(i,r)}}t=t.right}return l},nK=e=>{let t=0;return r6(e.doc,r=>{let n=e._start,i=e._start,o=w(),a=E(o);for(;i;)!1===i.deleted&&(i.content.constructor===ir?nH(a,i.content):(t+=nJ(r,n,i,o,a),o=E(a),n=i)),i=i.right}),t},nY=e=>{let t=new Set,r=e.doc;for(let[n,i]of e.afterState.entries()){let o=e.beforeState.get(n)||0;i!==o&&r1(e,r.store.clients.get(n),o,i,e=>{e.deleted||e.content.constructor!==ir||e.constructor===n3||t.add(e.parent)})}r6(r,r=>{for(let n of(rg(e,e.deleteSet,e=>{if(e instanceof n3||!e.parent._hasFormatting||t.has(e.parent))return;let n=e.parent;if(e.content.constructor===ir)t.add(n);else{for(var i=e;i&&i.right&&(i.right.deleted||!i.right.countable);)i=i.right;let t=new Set;for(;i&&(i.deleted||!i.countable);){if(!i.deleted&&i.content.constructor===ir){let e=i.content.key;t.has(e)?i.delete(r):t.add(e)}i=i.left}}}),t))nK(n)})},nq=(e,t,r)=>{let n=r,i=E(t.currentAttributes),o=t.right;for(;r>0&&null!==t.right;){if(!1===t.right.deleted)switch(t.right.content.constructor){case ib:case it:case il:r<t.right.length&&rZ(e,rz(t.right.id.client,t.right.id.clock+r)),r-=t.right.length,t.right.delete(e)}t.forward()}o&&nJ(e,o,t.right,i,t.currentAttributes);let a=(t.left||t.right).parent;return a._searchMarker&&nf(a._searchMarker,t.index,-n+r),t};class nX extends nd{constructor(e,t,r){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,r.forEach(e=>{null===e?this.childListChanged=!0:this.keysChanged.add(e)})}get changes(){if(null===this._changes){let e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(null===this._delta){let e=this.target.doc,t=[];r6(e,e=>{let r=new Map,n=new Map,i=this.target._start,o=null,a={},l="",s=0,d=0,u=()=>{if(null!==o){let e=null;switch(o){case"delete":d>0&&(e={delete:d}),d=0;break;case"insert":("object"==typeof l||l.length>0)&&(e={insert:l},r.size>0&&(e.attributes={},r.forEach((t,r)=>{null!==t&&(e.attributes[r]=t)}))),l="";break;case"retain":s>0&&(e={retain:s},(e=>{for(let t in e)return!1;return!0})(a)||(e.attributes=eO({},a))),s=0}e&&t.push(e),o=null}};for(;null!==i;){switch(i.content.constructor){case ib:case it:this.adds(i)?this.deletes(i)||(u(),o="insert",l=i.content.getContent()[0],u()):this.deletes(i)?("delete"!==o&&(u(),o="delete"),d+=1):i.deleted||("retain"!==o&&(u(),o="retain"),s+=1);break;case il:this.adds(i)?this.deletes(i)||("insert"!==o&&(u(),o="insert"),l+=i.content.str):this.deletes(i)?("delete"!==o&&(u(),o="delete"),d+=i.length):i.deleted||("retain"!==o&&(u(),o="retain"),s+=i.length);break;case ir:{let{key:t,value:l}=i.content;if(this.adds(i))this.deletes(i)||(nP(r.get(t)??null,l)?null!==l&&i.delete(e):("retain"===o&&u(),nP(l,n.get(t)??null)?delete a[t]:a[t]=l));else if(this.deletes(i)){n.set(t,l);let e=r.get(t)??null;nP(e,l)||("retain"===o&&u(),a[t]=e)}else if(!i.deleted){n.set(t,l);let r=a[t];void 0!==r&&(nP(r,l)?null!==r&&i.delete(e):("retain"===o&&u(),null===l?delete a[t]:a[t]=l))}i.deleted||("insert"===o&&u(),nH(r,i.content))}}i=i.right}for(u();t.length>0;){let e=t[t.length-1];if(void 0!==e.retain&&void 0===e.attributes)t.pop();else break}}),this._delta=t}return this._delta}}class nQ extends nx{constructor(e){super(),this._pending=void 0!==e?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??nc(),this._length}_integrate(e,t){super._integrate(e,t);
2try{this._pending.forEach(e=>e())}catch(e){console.error(e)}this._pending=null}_copy(){return new nQ}clone(){let e=new nQ;return e.applyDelta(this.toDelta()),e}_callObserver(e,t){super._callObserver(e,t);let r=new nX(this,e,t);nb(this,e,r),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??nc();let e="",t=this._start;for(;null!==t;)!t.deleted&&t.countable&&t.content.constructor===il&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){null!==this.doc?r6(this.doc,r=>{let n=new nj(null,this._start,0,new Map);for(let i=0;i<e.length;i++){let o=e[i];if(void 0!==o.insert){let a=t||"string"!=typeof o.insert||i!==e.length-1||null!==n.right||"\n"!==o.insert.slice(-1)?o.insert:o.insert.slice(0,-1);("string"!=typeof a||a.length>0)&&nV(r,this,n,a,o.attributes||{})}else void 0!==o.retain?n$(r,this,n,o.retain,o.attributes||{}):void 0!==o.delete&&nq(r,n,o.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,t,r){this.doc??nc();let n=[],i=new Map,o=this.doc,a="",l=this._start;function s(){if(a.length>0){let e={},t=!1;i.forEach((r,n)=>{t=!0,e[n]=r});let r={insert:a};t&&(r.attributes=e),n.push(r),a=""}}let d=()=>{for(;null!==l;){if(rG(l,e)||void 0!==t&&rG(l,t))switch(l.content.constructor){case il:{let n=i.get("ychange");void 0===e||rG(l,e)?void 0===t||rG(l,t)?void 0!==n&&(s(),i.delete("ychange")):(void 0===n||n.user!==l.id.client||"added"!==n.type)&&(s(),i.set("ychange",r?r("added",l.id):{type:"added"})):(void 0===n||n.user!==l.id.client||"removed"!==n.type)&&(s(),i.set("ychange",r?r("removed",l.id):{type:"removed"})),a+=l.content.str;break}case ib:case it:{s();let e={insert:l.content.getContent()[0]};if(i.size>0){let t={};e.attributes=t,i.forEach((e,r)=>{t[r]=e})}n.push(e);break}case ir:rG(l,e)&&(s(),nH(i,l.content))}l=l.right}s()};return e||t?r6(o,r=>{e&&rV(r,e),t&&rV(r,t),d()},"cleanup"):d(),n}insert(e,t,r){if(t.length<=0)return;let n=this.doc;null!==n?r6(n,n=>{let i=nN(n,this,e,!r);r||(r={},i.currentAttributes.forEach((e,t)=>{r[t]=e})),nV(n,this,i,t,r)}):this._pending.push(()=>this.insert(e,t,r))}insertEmbed(e,t,r){let n=this.doc;null!==n?r6(n,n=>{let i=nN(n,this,e,!r);nV(n,this,i,t,r||{})}):this._pending.push(()=>this.insertEmbed(e,t,r||{}))}delete(e,t){if(0===t)return;let r=this.doc;null!==r?r6(r,r=>{nq(r,nN(r,this,e,!0),t)}):this._pending.push(()=>this.delete(e,t))}format(e,t,r){if(0===t)return;let n=this.doc;null!==n?r6(n,n=>{let i=nN(n,this,e,!1);null!==i.right&&n$(n,this,i,t,r)}):this._pending.push(()=>this.format(e,t,r))}removeAttribute(e){null!==this.doc?r6(this.doc,t=>{nv(t,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,t){null!==this.doc?r6(this.doc,r=>{nk(r,this,e,t)}):this._pending.push(()=>this.setAttribute(e,t))}getAttribute(e){return nF(this,e)}getAttributes(){return nD(this)}_write(e){e.writeTypeRef(ic)}}class nZ{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??nc()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(null!==e&&(!this._firstCall||e.deleted||!this._filter(t)))do if(t=e.content.type,e.deleted||t.constructor!==n1&&t.constructor!==n0||null===t._start)for(;null!==e;){let t=e.next;if(null!==t){e=t;break}e=e.parent===this._root?null:e.parent._item}else e=t._start;while(null!==e&&(e.deleted||!this._filter(e.content.type)))return(this._firstCall=!1,null===e)?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class n0 extends nx{constructor(){super(),this._prelimContent=[]}get firstChild(){let e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new n0}clone(){let e=new n0;return e.insert(0,this.toArray().map(e=>e instanceof nx?e.clone():e)),e}get length(){return this.doc??nc(),null===this._prelimContent?this._length:this._prelimContent.length}createTreeWalker(e){return new nZ(this,e)}querySelector(e){e=e.toUpperCase();let t=new nZ(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),_(new nZ(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){nb(this,e,new n5(this,t,e))}toString(){return nC(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,t={},r){let n=e.createDocumentFragment();return void 0!==r&&r._createAssociation(n,this),nE(this,i=>{n.insertBefore(i.toDOM(e,t,r),null)}),n}insert(e,t){null!==this.doc?r6(this.doc,r=>{nA(r,this,e,t)}):this._prelimContent.splice(e,0,...t)}insertAfter(e,t){if(null!==this.doc)r6(this.doc,r=>{nS(r,this,e&&e instanceof nx?e._item:e,t)});else{let r=this._prelimContent,n=null===e?0:r.findIndex(t=>t===e)+1;if(0===n&&null!==e)throw Error("Reference item not found");r.splice(n,0,...t)}}delete(e,t=1){null!==this.doc?r6(this.doc,r=>{n_(r,this,e,t)}):this._prelimContent.splice(e,t)}toArray(){return nw(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return nT(this,e)}slice(e=0,t=this.length){return ny(this,e,t)}forEach(e){nE(this,e)}_write(e){e.writeTypeRef(ip)}}class n1 extends n0{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}
2_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach((e,t)=>{this.setAttribute(t,e)}),this._prelimAttrs=null}_copy(){return new n1(this.nodeName)}clone(){let e=new n1(this.nodeName);var t,r,n=this.getAttributes();for(let i in n){t=n[i],r=i,e.setAttribute(r,t)}return e.insert(0,this.toArray().map(e=>e instanceof nx?e.clone():e)),e}toString(){let e=this.getAttributes(),t=[],r=[];for(let t in e)r.push(t);r.sort();let n=r.length;for(let i=0;i<n;i++){let n=r[i];t.push(n+'="'+e[n]+'"')}let i=this.nodeName.toLocaleLowerCase(),o=t.length>0?" "+t.join(" "):"";return`<${i}${o}>${super.toString()}</${i}>`}removeAttribute(e){null!==this.doc?r6(this.doc,t=>{nv(t,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,t){null!==this.doc?r6(this.doc,r=>{nk(r,this,e,t)}):this._prelimAttrs.set(e,t)}getAttribute(e){return nF(this,e)}hasAttribute(e){return nM(this,e)}getAttributes(e){let t;return e?(t={},this._map.forEach((r,n)=>{let i=r;for(;null!==i&&(!e.sv.has(i.id.client)||i.id.clock>=(e.sv.get(i.id.client)||0));)i=i.left;null!==i&&rG(i,e)&&(t[n]=i.content.getContent()[i.length-1])}),t):nD(this)}toDOM(e=document,t={},r){let n=e.createElement(this.nodeName),i=this.getAttributes();for(let e in i){let t=i[e];"string"==typeof t&&n.setAttribute(e,t)}return nE(this,i=>{n.appendChild(i.toDOM(e,t,r))}),void 0!==r&&r._createAssociation(n,this),n}_write(e){e.writeTypeRef(ih),e.writeKey(this.nodeName)}}class n5 extends nd{constructor(e,t,r){super(e,r),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(e=>{null===e?this.childListChanged=!0:this.attributesChanged.add(e)})}}class n2 extends nW{constructor(e){super(),this.hookName=e}_copy(){return new n2(this.hookName)}clone(){let e=new n2(this.hookName);return this.forEach((t,r)=>{e.set(r,t)}),e}toDOM(e=document,t={},r){let n,i=t[this.hookName];return(n=void 0!==i?i.createDom(this):document.createElement(this.hookName)).setAttribute("data-yjs-hook",this.hookName),void 0!==r&&r._createAssociation(n,this),n}_write(e){e.writeTypeRef(im),e.writeKey(this.hookName)}}class n4 extends nQ{get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new n4}clone(){let e=new n4;return e.applyDelta(this.toDelta()),e}toDOM(e=document,t,r){let n=e.createTextNode(this.toString());return void 0!==r&&r._createAssociation(n,this),n}toString(){return this.toDelta().map(e=>{let t=[];for(let r in e.attributes){let n=[];for(let t in e.attributes[r])n.push({key:t,value:e.attributes[r][t]});n.sort((e,t)=>e.key<t.key?-1:1),t.push({nodeName:r,attrs:n})}t.sort((e,t)=>e.nodeName<t.nodeName?-1:1);let r="";for(let e=0;e<t.length;e++){let n=t[e];r+=`<${n.nodeName}`;for(let e=0;e<n.attrs.length;e++){let t=n.attrs[e];r+=` ${t.key}="${t.value}"`}r+=">"}r+=e.insert;for(let e=t.length-1;e>=0;e--)r+=`</${t[e].nodeName}>`;return r}).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(ig)}}class n8{constructor(e,t){this.id=e,this.length=t}get deleted(){throw ep()}mergeWith(e){return!1}write(e,t,r){throw ep()}integrate(e,t){throw ep()}}class n3 extends n8{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),rY(e.doc.store,this)}write(e,t){e.writeInfo(0),e.writeLen(this.length-t)}getMissing(e,t){return null}}class n6{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new n6(this.content)}splice(e){throw ep()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}}class n9{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new n9(this.len)}splice(e){let t=new n9(this.len-e);return this.len=e,t}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){rx(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}}let n7=(e,t)=>new rT({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class ie{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),null!==e.meta&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new ie(n7(this.doc.guid,this.opts))}splice(e){throw ep()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}class it{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new it(this.embed)}splice(e){throw ep()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}}class ir{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new ir(this.key,this.value)}splice(e){throw ep()}mergeWith(e){return!1}integrate(e,t){let r=t.parent;r._searchMarker=null,r._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}class ii{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ii(this.arr)}splice(e){let t=new ii(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let r=this.arr.length;e.writeLen(r-t);for(let n=t;n<r;n++){let t=this.arr[n];e.writeString(void 0===t?"undefined":JSON.stringify(t))}}getRef(){return 2}}let io="development"===eZ("node_env");class ia{constructor(e){this.arr=e,io&&e$(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new ia(this.arr)}splice(e){let t=new ia(this.arr.slice(e));return this.arr=this.arr.slice(0,e),t}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let r=this.arr.length;e.writeLen(r-t);for(let n=t;n<r;n++){let t=this.arr[n];e.writeAny(t)}}getRef(){return 8}}class il{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new il(this.str)}splice(e){let t=new il(this.str.slice(e));this.str=this.str.slice(0,e);let r=this.str.charCodeAt(e-1);return r>=55296&&r<=56319&&(this.str=this.str.slice(0,e-1)+"�",t.str="�"+t.str.slice(1)),t}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(0===t?this.str:this.str.slice(t))}getRef(){return 4}}let is=[e=>new nL,e=>new nW,e=>new nQ,e=>new n1(e.readKey()),e=>new n0,e=>new n2(e.readKey()),e=>new n4],id=0,iu=1,ic=2,ih=3,ip=4,im=5,ig=6;class ib{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}
2copy(){return new ib(this.type._copy())}splice(e){throw ep()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;null!==t;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach(t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)}),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;null!==t;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach(t=>{for(;null!==t;)t.gc(e,!0),t=t.left}),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}}let ix=(e,t,r)=>{let{client:n,clock:i}=t.id,o=new iy(rz(n,i+r),t,rz(n,i+r-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(r));return t.deleted&&o.markDeleted(),t.keep&&(o.keep=!0),null!==t.redone&&(o.redone=rz(t.redone.client,t.redone.clock+r)),t.right=o,null!==o.right&&(o.right.left=o),e._mergeStructs.push(o),null!==o.parentSub&&null===o.right&&o.parent._map.set(o.parentSub,o),t.length=r,o};class iy extends n8{constructor(e,t,r,n,i,o,a,l){super(e,l.getLength()),this.origin=r,this.left=t,this.right=n,this.rightOrigin=i,this.parent=o,this.parentSub=a,this.redone=null,this.content=l,this.info=2*!!this.content.isCountable()}set marker(e){(8&this.info)>0!==e&&(this.info^=8)}get marker(){return(8&this.info)>0}get keep(){return(1&this.info)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(2&this.info)>0}get deleted(){return(4&this.info)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,t){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=rK(t,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=rK(t,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===rO&&this.id.client!==this.parent.client&&this.parent.clock>=rK(t,this.parent.client))return this.parent.client;if(this.origin&&(this.left=r0(e,t,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=rZ(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===n3||this.right&&this.right.constructor===n3)this.parent=null;else if(this.parent){if(this.parent.constructor===rO){let e=rX(t,this.parent);e.constructor===n3?this.parent=null:this.parent=e.content.type}}else this.left&&this.left.constructor===iy?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===iy&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=r0(e,e.doc.store,rz(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||null!==this.right.left)||this.left&&this.left.right!==this.right){let t,r=this.left;if(null!==r)t=r.right;else if(null!==this.parentSub)for(t=this.parent._map.get(this.parentSub)||null;null!==t&&null!==t.left;)t=t.left;else t=this.parent._start;let n=new Set,i=new Set;for(;null!==t&&t!==this.right;){if(i.add(t),n.add(t),rH(this.origin,t.origin)){if(t.id.client<this.id.client)r=t,n.clear();else if(rH(this.rightOrigin,t.rightOrigin))break}else if(null!==t.origin&&i.has(rX(e.doc.store,t.origin)))n.has(rX(e.doc.store,t.origin))||(r=t,n.clear());else break;t=t.right}this.left=r}if(null!==this.left){let e=this.left.right;this.right=e,this.left.right=this}else{let e;if(null!==this.parentSub)for(e=this.parent._map.get(this.parentSub)||null;null!==e&&null!==e.left;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}null!==this.right?this.right.left=this:null!==this.parentSub&&(this.parent._map.set(this.parentSub,this),null!==this.left&&this.left.delete(e)),null===this.parentSub&&this.countable&&!this.deleted&&(this.parent._length+=this.length),rY(e.doc.store,this),this.content.integrate(e,this),r4(e,this.parent,this.parentSub),(null!==this.parent._item&&this.parent._item.deleted||null!==this.parentSub&&null!==this.right)&&this.delete(e)}else new n3(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;null!==e&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;null!==e&&e.deleted;)e=e.left;return e}get lastId(){return 1===this.length?this.id:rz(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&rH(e.origin,this.lastId)&&this.right===e&&rH(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&null===this.redone&&null===e.redone&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){let t=this.parent._searchMarker;return t&&t.forEach(t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,null!==this.right&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){let t=this.parent;this.countable&&null===this.parentSub&&(t._length-=this.length),this.markDeleted(),rx(e.deleteSet,this.id.client,this.id.clock,this.length),r4(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw em();if(this.content.gc(e),t){var r;let t;r=new n3(this.id,this.length),(t=e.clients.get(this.id.client))[rq(t,this.id.clock)]=r}else this.content=new n9(this.length)}write(e,t){let r=t>0?rz(this.id.client,this.id.clock+t-1):this.origin,n=this.rightOrigin,i=this.parentSub,o=31&this.content.getRef()|128*(null!==r)|64*(null!==n)|32*(null!==i);if(e.writeInfo(o),null!==r&&e.writeLeftID(r),null!==n&&e.writeRightID(n),null===r&&null===n){let t=this.parent;if(void 0!==t._item){let r=t._item;if(null===r){let r=(e=>{for(let[t,r]of e.doc.share.entries())if(r===e)return t;throw em()})(t);e.writeParentInfo(!0),e.writeString(r)}
2else e.writeParentInfo(!1),e.writeLeftID(r.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===rO?(e.writeParentInfo(!1),e.writeLeftID(t)):em();null!==i&&e.writeString(i)}this.content.write(e,t)}}let iw=(e,t)=>iE[31&t](e),iE=[()=>{em()},e=>new n9(e.readLen()),e=>{let t=e.readLen(),r=[];for(let n=0;n<t;n++){let t=e.readString();"undefined"===t?r.push(void 0):r.push(JSON.parse(t))}return new ii(r)},e=>new n6(e.readBuf()),e=>new il(e.readString()),e=>new it(e.readJSON()),e=>new ir(e.readKey(),e.readJSON()),e=>new ib(is[e.readTypeRef()](e)),e=>{let t=e.readLen(),r=[];for(let n=0;n<t;n++)r.push(e.readAny());return new ia(r)},e=>new ie(n7(e.readString(),e.readAny())),()=>{em()}];class iC extends n8{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){em()}write(e,t){e.writeInfo(10),X(e.restEncoder,this.length-t)}getMissing(e,t){return null}}let iT="u">typeof globalThis?globalThis:"u">typeof window?window:e.g,iS="__ $YJS$ __";!0===iT[iS]&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),iT[iS]=!0;let iA="local",i_="remote",iv="payload",ik=e=>({x:e.position?.x??0,y:e.position?.y??0,w:e.width??null,h:e.height??null,dataRef:e.data,parentId:e.parentId,type:e.type}),iF=(e,t)=>e.dataRef===t.data&&e.x===(t.position?.x??0)&&e.y===(t.position?.y??0)&&e.parentId===t.parentId&&e.type===t.type&&e.w===(t.width??null)&&e.h===(t.height??null),iD=(e,t)=>e.dataRef===t.data&&e.parentId===t.parentId&&e.type===t.type,iM=e=>"number"==typeof e&&Number.isFinite(e),iI=["isUploading","isStaged","isTemplatePreview","_moodboardMeta"],iU=e=>{try{let{selected:t,...r}=e;return JSON.stringify(r)}catch{return null}},iL=e=>"string"==typeof e&&e.length>0,iB=(e,t)=>{try{let r=JSON.parse(e);if(!r||"object"!=typeof r||!iL(r.id)||!iL(r.source)||!iL(r.target))return null;return t?{...r,selected:t.selected}:r}catch{return null}},iW=e=>{try{return JSON.stringify((e=>{let{selected:t,dragging:r,measured:n,...i}=e;if(i.data&&"object"==typeof i.data){let e={...i.data};iI.forEach(t=>delete e[t]),i.data=e}return i})(e))}catch{return null}},iP=e=>e.get(iv)??null,ij=(e,t)=>{try{let r=JSON.parse(t);if(!r||"object"!=typeof r||!iL(r.id)||r.id!==e.id)return null;let n=r.data&&"object"==typeof r.data?{...r.data}:r.data;return n&&"object"==typeof n&&e.data&&iI.forEach(t=>{void 0!==e.data[t]&&(n[t]=e.data[t])}),{...r,data:n,selected:e.selected,dragging:e.dragging,measured:e.measured}}catch{return null}},iR=(e,t)=>{let r=t.get("x"),n=t.get("y"),i=t.get("w"),o=t.get("h"),a=iM(r)&&iM(n),l=!a||e.position?.x===r&&e.position?.y===n,s=iM(i)?i:null,d=iM(o)?o:null,u=(e.width??null)===s&&(e.height??null)===d;if(l&&u)return e;let c={...e};return!l&&a&&(c.position={x:r,y:n}),u||(null!=s&&(c.width=s,c.style={...c.style||{},width:s}),null!=d&&(c.height=d,c.style={...c.style||{},height:d})),c},iN=e=>e?e instanceof Uint8Array?e:e instanceof ArrayBuffer||Array.isArray(e)?new Uint8Array(e):e?.data&&Array.isArray(e.data)?new Uint8Array(e.data):null:null;e.s(["useCollabDocument",0,({socket:e,projectUid:t,boardUid:r,enabled:n})=>{let[i,o]=(0,a.useState)(null),[l,s]=(0,a.useState)(!1),[d,u]=(0,a.useState)(!1),c=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!n||!r){o(null),s(!1);return}let e=new rT;return c.current=e,o(e),s(!1),u(!1),()=>{c.current=null,o(null),s(!1),e.destroy()}},[n,r]),(0,a.useEffect)(()=>{if(!n||!i||!e||!r||!t)return;let o=n=>{if(n?.boardUid!==r)return;let o=iN(n.update);o&&o.byteLength>0&&rU(i,o,i_,rA);let a=iN(n.stateVector),l=a?rL(i,a):rL(i);l.byteLength>4194304&&console.warn(`Collab sync reply for board ${r} is ${l.byteLength} bytes â near or over the server update limit; peers may not converge.`),l.byteLength>0&&e.emit("collab_update",{boardUid:r,projectUid:t,update:l}),s(!0)},a=e=>{if(e?.boardUid!==r)return;let t=iN(e.update);t&&rU(i,t,i_,rA)},l=null,d=1e3,c=e=>{e?.boardUid===r&&(console.warn("Collaboration denied for this board:",e?.reason),u(!0))},h=e=>{e?.boardUid!==r||null===l&&(l=window.setTimeout(()=>{l=null,d=Math.min(2*d,3e4),p()},d))};e.on("collab_sync",o),e.on("collab_update",a),e.on("collab_denied",c),e.on("collab_unavailable",h);let p=()=>{e.emit("collab_join",{boardUid:r,projectUid:t,stateVector:((e,t=new rD)=>(e instanceof Map?rW(t,e):rW(t,rJ(e.store)),t.toUint8Array()))(i,new rk)})};e.connected&&p(),e.on("connect",p);let m=(n,i)=>{i!==i_&&e.emit("collab_update",{boardUid:r,projectUid:t,update:n})};return i.on("update",m),()=>{i.off("update",m),e.off("collab_sync",o),e.off("collab_update",a),null!==l&&window.clearTimeout(l),e.off("collab_denied",c),e.off("collab_unavailable",h),e.off("connect",p),e.connected&&e.emit("collab_leave",{boardUid:r,projectUid:t})}},[n,i,e,r,t]),{doc:i,isSynced:l,isDenied:d,LOCAL_ORIGIN:iA}}],695147);var iO=e.i(732934);e.s(["useCanvasStoreApi",()=>iO.useStoreApi],937304);var iO=iO;let iH=new Set,iz=e=>
2{e.forEach(e=>iH.add(e))};e.s(["getRemotelyEditedUids",0,()=>iH,"markRemotelyEdited",0,iz,"resetRemoteEdits",0,()=>{iH.clear()}],2948),e.s(["useCollabSync",0,({doc:e,isSynced:t,enabled:r,onRemoteApplied:n})=>{let{getNodes:i,setNodes:o,getEdges:l,setEdges:d}=(0,s.useCanvasEngine)(),u=(0,iO.useStoreApi)(),c=(0,a.useRef)(n);c.current=n;let h=(0,a.useRef)(new Map),p=(0,a.useRef)(new Map),m=(0,a.useRef)(null),g=(0,a.useRef)(null),f=(0,a.useRef)(new Set),b=(0,a.useRef)(null),x=(0,a.useRef)(new Map),y=(0,a.useRef)(new Map),w=(0,a.useRef)(null),E=(0,a.useRef)(new Set),C=(0,a.useRef)(new Set),T=(0,a.useRef)(null),S=(0,a.useRef)(null),A=(0,a.useRef)(0),_=(0,a.useRef)(new Set),v=(0,a.useRef)(new Set);(0,a.useEffect)(()=>{h.current=new Map,p.current=new Map,m.current=null,f.current=new Set,x.current=new Map,y.current=new Map,w.current=null,E.current=new Set,_.current=new Set,v.current=new Set,C.current=new Set,A.current=0},[e]),(0,a.useEffect)(()=>{if(!r||!e||!t)return;let n=()=>{g.current=null;let t=h.current,r=p.current,n=[],a=[],s=i(),d=e.getMap("elements");if(s!==m.current||_.current.size>0){m.current=s;let e=new Set;for(let i of s){if(e.add(i.id),i.data?.isStaged||i.data?.isTemplatePreview||!Number.isFinite(i.position?.x)||!Number.isFinite(i.position?.y))continue;let o=t.get(i.id);if(o&&iF(o,i))continue;if(!o&&d.has(i.id)){let e=iP(d.get(i.id));e&&r.set(i.id,e),t.set(i.id,ik(i));continue}let a=!o||!iD(o,i),l=null;a&&(l=iW(i))&&r.set(i.id,l),n.push({node:i,payload:l}),t.set(i.id,ik(i))}let i=_.current;t.forEach((t,r)=>{e.has(r)?i.delete(r):i.has(r)?a.push(r):i.add(r)}),a.forEach(e=>{t.delete(e),r.delete(e),i.delete(e)})}let u=l(),c=x.current,f=y.current,b=[],E=[],C=e.getMap("edges");if(u!==w.current||v.current.size>0){w.current=u;let e=new Set;for(let t of u){if(e.add(t.id),t.data?.isStaged||t.data?.isTemplatePreview||c.get(t.id)===t)continue;if(c.set(t.id,t),!f.has(t.id)&&C.has(t.id)){f.set(t.id,C.get(t.id));continue}let r=iU(t);r&&f.get(t.id)!==r&&(f.set(t.id,r),b.push([t.id,r]))}let t=v.current;c.forEach((r,n)=>{e.has(n)?t.delete(n):t.has(n)?E.push(n):t.add(n)}),E.forEach(e=>{c.delete(e),f.delete(e),t.delete(e)})}_.current.forEach(e=>{t.has(e)||_.current.delete(e)}),v.current.forEach(e=>{c.has(e)||v.current.delete(e)});let T=_.current.size>0||v.current.size>0;if(0===n.length&&0===a.length&&0===b.length&&0===E.length){T&&o();return}A.current=Date.now(),T&&o();let S=[];n.forEach(({node:t,payload:r})=>S.push({bytes:(r?.length??0)+64,apply:()=>{var n,i,o;let a,l,s;return n=e,i=t,o=r,(l=(a=n.getMap("elements")).get(i.id))||(l=new nW,a.set(i.id,l)),void(iM((s=ik(i)).x)&&l.get("x")!==s.x&&l.set("x",s.x),iM(s.y)&&l.get("y")!==s.y&&l.set("y",s.y),l.get("w")!==s.w&&l.set("w",s.w),l.get("h")!==s.h&&l.set("h",s.h),o&&l.get(iv)!==o&&l.set(iv,o))}})),b.forEach(([e,t])=>S.push({bytes:t.length,apply:()=>C.set(e,t)})),a.forEach(t=>S.push({bytes:64,apply:()=>{var r,n;let i;return r=e,n=t,void((i=r.getMap("elements")).has(n)&&i.delete(n))}}
2)),E.forEach(e=>S.push({bytes:64,apply:()=>{C.has(e)&&C.delete(e)}})),((e,t,r)=>{if(0===t.length)return;let n=[],i=0,o=()=>{if(0===n.length)return;let t=n;n=[],i=0,e.transact(()=>t.forEach(e=>e.apply()),r)};t.forEach(e=>{n.length>0&&i+e.bytes>524288&&o(),n.push(e),i+=e.bytes}),o()})(e,S,iA)},o=()=>{null===S.current&&null===g.current&&(S.current=window.setTimeout(()=>{S.current=null,g.current=requestAnimationFrame(n)},50))},a=()=>{if(null!==g.current||null!==S.current)return;let e=Date.now()-A.current;if(e>=50){g.current=requestAnimationFrame(n);return}S.current=window.setTimeout(()=>{S.current=null,g.current=requestAnimationFrame(n)},50-e)};a();let s=u.subscribe(a);return()=>{s(),null!==g.current&&(cancelAnimationFrame(g.current),g.current=null),null!==S.current&&(window.clearTimeout(S.current),S.current=null)}},[r,e,t,i,l,u]),(0,a.useEffect)(()=>{if(!r||!e)return;let t=e.getMap("elements"),n=()=>{null===b.current&&(b.current=requestAnimationFrame(()=>{(t=>{let r=E.current;if(0===r.size&&0===t.size)return;E.current=new Set;let n=e.getMap("edges"),i=l(),o=x.current,a=y.current,s=!1,u=[],h=new Set;for(let e of i){if(t.has(e.source)||t.has(e.target)){o.delete(e.id),a.delete(e.id),s=!0;continue}if(!r.has(e.id)){u.push(e);continue}h.add(e.id);let i=n.get(e.id);if(!i){s=!0,o.delete(e.id),a.delete(e.id);continue}if(a.get(e.id)===i){u.push(e);continue}let l=iB(i,e);if(!l){u.push(e);continue}a.set(e.id,i),o.set(e.id,l),u.push(l),s=!0}r.forEach(e=>{if(h.has(e))return;let r=n.get(e);if(!r)return;let i=iB(r);!i||t.has(i.source)||t.has(i.target)||(a.set(e,r),o.set(e,i),u.push(i),s=!0)}),s&&(iz(r),w.current=u,d(u),c.current?.())})((()=>{b.current=null;let e=f.current;if(0===e.size)return;f.current=new Set;let r=i(),n=!1,a=[],l=new Set;for(let i of r){if(!e.has(i.id)){a.push(i);continue}l.add(i.id);let r=t.get(i.id);if(!r){n=!0;continue}if(i.dragging){C.current.add(i.id),a.push(i);continue}let o=i,s=iP(r);if(s&&s!==p.current.get(i.id)){let e=ij(o,s);e&&(p.current.set(i.id,s),o=e)}(o=iR(o,r))!==i&&(n=!0),a.push(o)}if(e.forEach(e=>{if(l.has(e))return;let r=t.get(e);if(!r)return;let i=(e=>{let t=e.get(iv);if(!t)return null;try{let r=JSON.parse(t);if(!r||"object"!=typeof r||!iL(r.id))return null;let n=iR(r,e);if(!iM(n.position?.x)||!iM(n.position?.y))return null;return n}catch{return null}})(r);if(i){let t=iP(r);t&&p.current.set(e,t),a.push(i),n=!0}}),!n)return;iz(e);let s=h.current;a.forEach(t=>{e.has(t.id)&&s.set(t.id,ik(t))}),e.forEach(e=>{t.get(e)||(s.delete(e),p.current.delete(e))}),m.current=a,o(a),c.current?.();let d=new Set;return e.forEach(e=>{t.get(e)||d.add(e)}),d})()??new Set),null===T.current&&0!==C.current.size&&(T.current=window.setTimeout(()=>{T.current=null;let e=C.current;0!==e.size&&(C.current=new Set,e.forEach(e=>f.current.add(e)),n())},150))}))},a=(e,r)=>{r.origin===i_&&(e.forEach(e=>{if(e.target===t)return void e.changes.keys.forEach((e,t)=>f.current.add(t));let r=e.path[0];"string"==typeof r&&f.current.add(r)}),f.current.size>0&&n())},s=e.getMap("edges"),u=(e,t)=>{t.origin===i_&&(e.changes.keys.forEach((e,t)=>E.current.add(t)),E.current.size>0&&n())};return t.observeDeep(a),s.observe(u),()=>{t.unobserveDeep(a),s.unobserve(u),null!==b.current&&(cancelAnimationFrame(b.current),b.current=null),null!==T.current&&(window.clearTimeout(T.current),T.current=null)}},[r,e,o,i,d,l])}],41174),e.s(["useCollabStatus",0,({enabled:e,isDenied:t,isSynced:r})=>
2{let{socket:n,connected:i,connecting:o,connectionRejected:s}=(0,l.useSocketIOConnection)(),[d,u]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{if(!e||r)return void u(!1);let t=window.setTimeout(()=>u(!0),5e3);return()=>window.clearTimeout(t)},[e,r]),n){if(s)return"error";if(!i&&!o)return"reconnecting"}return e?t?"denied":!r&&d?"connecting":null:null}],891486);var iG=e.i(644510);e.s(["useCollabCacheWriter",0,({enabled:e,viewOnly:t,slug:r,whiteboardUid:n})=>{let{getNodes:i,getEdges:o}=(0,s.useCanvasEngine)(),l=(0,a.useRef)(null),d=(0,a.useCallback)(()=>{let e=(0,iG.getWhiteboardFlowStateCacheKey)(t,r,n??""),a=i().filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>({...e,hidden:!1,selected:!1,dragging:!1})),l=o().filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>e.selected?{...e,selected:!1}:e);(0,iG.setWhiteboardFlowStateNodesAndEdgesCache)(e,a,l).catch(e=>{console.error("Error caching whiteboard state after remote change:",e)})},[t,r,n,i,o]),u=(0,a.useCallback)(()=>{e&&null===l.current&&(l.current=window.setTimeout(()=>{l.current=null,d()},1500))},[e,d]);return(0,a.useEffect)(()=>{if(!e)return;let t=()=>{null!==l.current&&(window.clearTimeout(l.current),l.current=null,d())},r=()=>{document.hidden&&t()};return document.addEventListener("visibilitychange",r),window.addEventListener("pagehide",t),()=>{document.removeEventListener("visibilitychange",r),window.removeEventListener("pagehide",t),t()}},[e,d]),u}],766032),e.s(["isDeliberateReposition",0,function(e){let t=e?.changes;return!!t&&"object"==typeof t&&(!0===t.moved||"parentUid"in t)}],990848);var iV=e.i(785929),i$=e.i(941332),iJ=e.i(306148),iK=e.i(763798),iY=e.i(565307),iq=e.i(669424),iX=e.i(959219),iQ=e.i(608300),iZ=e.i(438974),i0=e.i(130111),i1=e.i(556734),i5=e.i(394323),i2=e.i(520465),i4=e.i(266512),i8=e.i(647547),i3=e.i(874186),i6=e.i(200285),i9=e.i(197240),i7=e.i(940190),oe=e.i(649456),ot=e.i(213596),or=e.i(410223),on=e.i(926249),oi=e.i(816790),oo=e.i(203306),oa=e.i(599444),ol=e.i(214184),os=e.i(886e3),od=e.i(261940),ou=e.i(630920),oc=e.i(165832),oh=e.i(350618);let op=(0,a.memo)(oa.default);e.s(["default",0,function(e){let{isOpen:t,onClose:r,project:n,projectId:i,projectUid:o,newBlueprintDialog:l,addWhiteboardElement:s,...d}=e,u=(0,i5.useToast)(),c=(0,oo.useRouter)(),{openUpgradePlanModal:p}=(0,os.default)(),[m,g]=(0,a.useState)(),[f,b]=(0,a.useState)(""),[x]=(0,on.useMutation)(i3.CreateBlueprintDocument);(0,iZ.useColorModeValue)("black","white"),(0,iZ.useColorModeValue)("secondaryGray.300","whiteAlpha.100");let y=(0,iZ.useColorModeValue)("#929292","#414141"),w=(0,iZ.useColorModeValue)("#252525","#242424"),E=(0,iZ.useColorModeValue)("white","#161616"),C=(0,iZ.useColorModeValue)("#37352F","rgba(255, 255, 255, 0.8)"),T=(0,iZ.useColorModeValue)("rgba(0, 0, 0, 0.2)","rgba(255, 255, 255, 0.2)");(0,iZ.useColorModeValue)({bg:"secondaryGray.400"},{bg:"whiteAlpha.50"}),(0,iZ.useColorModeValue)({bg:"secondaryGray.400"},{bg:"whiteAlpha.100"});let S=ot.object().shape({title:ot.string().max(24,"Must be at most 24 characters")}),A=(0,or.useFormik)({initialValues:{title:""},validationSchema:S,onSubmit:async(e,{setSubmitting:t})=>{t(!0),await x({variables:{uid:(0,od.v4)(),projectUid:o,title:e.title,thumbnail:f}}).then(async e=>{if(e.data?.createBlueprint.id){if(U(),l&&s&&null!=e.data.createBlueprint.uid){let t=l.delta,r=h.useWhiteboardSelectionStore.getState(),n=(0,i9.getDefaultCreateDimensions)(i6.WhiteboardDroppableType.DroppableFlow);await s({delta:t,item:{type:i6.WhiteboardDroppableType.DroppableFlow,input:{type:"blueprint",title:e.data.createBlueprint.title??"",href:`${e.data.createBlueprint.uid}`,thumbnail:e.data.createBlueprint.thumbnail}},createElement:!1,setCurrentActiveElement:r.setCurrentActiveElement,setItemHasCreationFocus:r.setItemHasCreationFocus,elementId:e.data.createBlueprint.id,elementUid:e.data.createBlueprint.uid,...n?{attributes:n}:{}})}(0,ou.pushToBlueprintPage)({router:c,blueprintUid:e.data?.createBlueprint?.uid,projectUid:n?.uid,project:n})}else console.error("Failed to create blueprint. Please try again."),u({render:({onClose:e})=>(0,iV.jsx)(oh.PillToast,{title:"Failed to create tactic. Please try again.",onClose:e})})}).catch(e=>{t(!1),U(),(0,ol.handleGraphQLError)({error:e,toast:u,customMessage:oi.SERVER_ERROR_MESSAGE,onRes
2ourceExhaustedErrorHandler:()=>{p("blueprints")}})})}}),{errors:_,touched:v,values:k,isSubmitting:F,handleSubmit:D,getFieldProps:M,resetForm:I}=A,U=()=>{r(),I()},L=(0,a.useCallback)(e=>{b(e),g(oi.S3_IMAGE_URL_PREFIX+e)},[]);return(0,iV.jsxs)(iK.Modal,{closeOnOverlayClick:!0,isCentered:!0,size:"sm",isOpen:t,onClose:U,children:[(0,iV.jsx)(iX.ModalOverlay,{}),(0,iV.jsx)(iq.ModalContent,{mx:"8px",bg:"transparent",boxShadow:"unset",children:(0,iV.jsx)(iY.ModalBody,{p:"0px",bg:"transparent",children:(0,iV.jsx)(or.FormikProvider,{value:A,children:(0,iV.jsx)(or.Form,{noValidate:!0,onSubmit:D,children:(0,iV.jsx)(i0.FormControl,{children:(0,iV.jsxs)(i7.default,{...d,p:0,bg:E,color:C,borderRadius:"16px",borderTop:`0.5px solid ${T}`,children:[(0,iV.jsxs)(iJ.Flex,{direction:"column",pl:"26px",pt:"26px",pr:"26px",children:[(0,iV.jsxs)(iJ.Flex,{w:"100%",children:[(0,iV.jsx)(iJ.Flex,{direction:"column",w:"100%",justifyContent:"center",alignItems:"center",children:(0,iV.jsx)(iQ.Text,{fontSize:"xl",ml:"30px",fontWeight:"300",fontFamily:"'GT Super Display', serif",children:"Create Tactic"})}),(0,iV.jsx)(oc.default,{onCloseClicked:U})]}),(0,iV.jsx)(iJ.Flex,{direction:"column",alignItems:"center",mt:"11px",children:(0,iV.jsx)(i7.default,{alignItems:"center",boxShadow:"3px 4px 4px 0px #00000026",p:0,borderRadius:"16px",w:"90px",h:"93px",mb:"34px",children:(0,iV.jsx)(iJ.Flex,{direction:"column",mb:"34px",position:"relative",children:(0,iV.jsxs)(i8.Box,{w:"91px",h:"96px",bg:y,borderRadius:"16px",position:"relative",children:[m&&(0,iV.jsx)(i2.Image,{src:m,alt:k.title,objectFit:"cover",borderRadius:"16px",w:"90px",h:"93px"}),(0,iV.jsx)(iQ.Text,{fontSize:"10px",fontWeight:"600",bg:w,color:"white",pt:"4px",pl:"7px",pr:"7px",position:"absolute",bottom:"0",left:"0",w:"100%",h:"38px",textAlign:"start",borderBottomLeftRadius:"16px",borderBottomRightRadius:"16px",children:k.title&&""!=k.title?k.title:"Untitled"})]})})})})]}),(0,iV.jsx)(i4.Divider,{mb:"30px"}),(0,iV.jsxs)(iJ.Flex,{direction:"column",pl:"26px",pb:"26px",pr:"26px",children:[(0,iV.jsx)(oe.default,{id:"title",label:"Title",placeholder:"Name your tactic",...M("title"),required:!0,maxLength:24,errorMessage:v.title&&_.title,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D())}}),(0,iV.jsxs)(iJ.Flex,{direction:"column",children:[(0,iV.jsx)(i1.FormLabel,{fontSize:"13px",fontWeight:"bold",children:"Thumbnail"}),(0,iV.jsx)(op,{onFileSelect:L,width:"100%",height:"250px",singleUploadOnly:!0,hideLink:!0})]}),(0,iV.jsx)(iJ.Flex,{align:{sm:"center",lg:"center"},justify:{sm:"center",lg:"center"},w:"100%",children:(0,iV.jsx)(i$.Button,{minW:"164.7px",h:"39.6px",mt:"30px",mb:"5px",bg:"var(--chakra-colors-brand-500)",borderRadius:"9px",borderTop:(0,iZ.useColorModeValue)("1px solid #FFFFFF","1px solid rgba(255, 255, 255, 0.2)"),color:"white",fontSize:"sm",fontWeight:"500",_hover:{bg:"var(--chakra-colors-brand-600)"},_active:{bg:"var(--chakra-colors-brand-600)"},_focus:{bg:"var(--chakra-colors-brand-600)"},isLoading:F,type:"submit",children:"Create blueprint"})})]})]})})})})})})]})}],598919);let om=[i3.ToolElementType.ToolComments,i3.ToolElementType.ToolFreehandStroke],og=e=>!!e&&om.includes(e),of=(e,t,r)=>{if(null==r||null==t||t!==r||!og(e))return!1;let n=g.useWhiteboardViewStore.getState();return!!(n.canComment||n.canDraw)},ob=(e,t)=>{if(!t)return!1;let r=g.useWhiteboardViewStore.getState();if(!(r.canComment||r.canDraw)||null==r.currentUserId)return!1;for(let n of e??[]){if(n?.id===t)return of(n?.data?.type,n?.data?.creatorUserId,r.currentUserId);let e=n?.data?.element?.elements;if(Array.isArray(e)){for(let n of e)if(n?.uid===t)return of(n?.elementType,n?.creatorUserId,r.currentUserId)}}return!1};e.s(["filterOwnViewOnlyCommentUids",0,(e,t)=>{let r=g.useWhiteboardViewStore.getState();return r.canComment||r.canDraw?t.filter(t=>ob(e,t)):t},"getViewOnlyCommentContext",0,()=>{let e=g.useWhiteboardViewStore.getState();return{active:!!(e.canComment||e.canDraw),whiteboardUid:e.viewOnlyWhiteboardUid??"",readonlyLinkKey:e.viewOnlyLinkKey??"",accessToken:e.viewOnlyAccessToken}}
2,"isOwnViewOnlyCommentUid",0,ob,"isViewOnlyCommentDraggable",0,of,"isViewOnlyCommentElementType",0,og,"useViewOnlyCommentMutations",0,()=>{let[e]=(0,on.useMutation)(i3.AddViewOnlyWhiteboardElementDocument),[t]=(0,on.useMutation)(i3.UpdateViewOnlyWhiteboardElementContentDocument),[r]=(0,on.useMutation)(i3.UpdateViewOnlyWhiteboardElementLocationDocument),[n]=(0,on.useMutation)(i3.UpdateViewOnlyWhiteboardElementAttributesDocument),[i]=(0,on.useMutation)(i3.UpdateViewOnlyWhiteboardElementParentDataDocument),[o]=(0,on.useMutation)(i3.DeleteViewOnlyWhiteboardElementsDocument);return{addViewOnlyMutation:e,updateViewOnlyContentMutation:t,updateViewOnlyLocationMutation:r,updateViewOnlyAttributesMutation:n,updateViewOnlyParentDataMutation:i,deleteViewOnlyMutation:o}}],536579),e.s(["DEFAULT_EDGE_STROKE_WIDTH",0,2,"WHITEBOARD_EDGE_ATTRIBUTE_KEYS",0,{STROKE_WIDTH:"stroke_width",STROKE_COLOR:"stroke_color",IS_DASHED:"is_dashed",IS_CURVED:"is_curved",HAS_START_ARROW_HEAD:"has_start_arrow_head",HAS_END_ARROW_HEAD:"has_end_arrow_head",EDGE_TYPE:"edge_type",CONTROL_POINTS_JSON_STRING:"control_points_json_string",LABEL:"label"}],567153)},525996,e=>{"use strict";var t,r=((t={}).Linear="linear",t.CatmullRom="catmull-rom",t.BezierCatmullRom="bezier-catmull-rom",t.SmoothStep="smooth-step",t);e.s(["Algorithm",()=>r,"DEFAULT_AUTO_CONNECT_ALGORITHM",0,"smooth-step","DEFAULT_DRAG_CONNECT_ALGORITHM",0,"bezier-catmull-rom"])},150490,606846,169331,820052,332472,233596,51642,292822,306846,e=>{"use strict";e.i(700930);var t=e.i(368769),r=e.i(261940),n=e.i(567153),i=e.i(525996);let o=(e,r)=>{let{hasEndArrowHead:o,hasStartArrowHead:a,isDashed:s,strokeColor:d,strokeWidth:u=e.style?.strokeWidth||n.DEFAULT_EDGE_STROKE_WIDTH,edgeType:c}=r,h=void 0!==d?d:e.style?.stroke,p={...e.style,...void 0!==d?{stroke:d}:{},...void 0!==s?{strokeDasharray:s?"5 5":""}:{},...void 0!==u?{strokeWidth:u}:{}},m=void 0!==o?o?{type:t.MarkerType.ArrowClosed,width:40,height:10,markerUnits:"strokeWidth",...h?{color:h}:{}}:void 0:e.data?.hasEndArrowHead?{type:t.MarkerType.ArrowClosed,width:40,height:10,markerUnits:"strokeWidth",...h?{color:h}:{}}:void 0,g=void 0!==a?a?{type:t.MarkerType.ArrowClosed,width:40,height:10,markerUnits:"strokeWidth",...h?{color:h}:{}}:void 0:e.data?.hasStartArrowHead?{type:t.MarkerType.ArrowClosed,width:40,height:10,markerUnits:"strokeWidth",...h?{color:h}:{}}:void 0;return{...e,type:"editable-edge",style:p,markerEnd:m,markerStart:g,data:{...e.data,...void 0!==o?{hasEndArrowHead:o}:{},...void 0!==a?{hasStartArrowHead:a}:{},...void 0!==s?{isDashed:s}:{},algorithm:l(c,e.data?.algorithm??i.Algorithm.BezierCatmullRom),...c===i.Algorithm.SmoothStep?{points:[]}:{}}}},a=new Set(Object.values(i.Algorithm)),l=(e,t)=>e?"default"===e||"editable-edge"===e?i.Algorithm.BezierCatmullRom:a.has(e)?e:i.Algorithm.BezierCatmullRom:t;e.s(["algorithmToPersistEdgeType",0,e=>e===i.Algorithm.BezierCatmullRom?"default":e,"buildStyledConnectEdge",0,({source:e,target:t,sourceHandle:a,targetHandle:l,algorithm:s=i.DEFAULT_DRAG_CONNECT_ALGORITHM,selected:d=!1})=>o({id:(0,r.v4)(),source:e,target:t,sourceHandle:a,targetHandle:l,type:"editable-edge",animated:!1,selected:d,style:{strokeWidth:n.DEFAULT_EDGE_STROKE_WIDTH},data:{algorithm:s,points:[],hasEndArrowHead:!0}},{hasEndArrowHead:!0,edgeType:s}),"getUpdatedEdgeWithStyles",0,o,"getUpdatedEdgesWithStyles",0,(e,t)=>e.map(e=>o(e,t))],150490);var s=e.i(84132),d=e.i(874186),u=e.i(384901),c=e.i(197240);function h(e){return"ToolFrame"===e.type&&!e.data?.isStaged&&!e.data?.isTemplatePreview}function p(e){let t=e.data?.attributes??{};return{x:e.position.x,y:e.position.y,width:t.width??Number(e.style?.width??0),height:t.height??Number(e.style?.height??0)}}function m(e,t){let r=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),n=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),i=e.width*e.height;return i<=0?0:r*n/i}function g(e,t){return e.filter(({rect:{x:e,y:r,width:n,height:i}})=>!(n<=0)&&!(i<=0)&&t.x>=e&&t.x<=e+n&&t.y>=r&&t.y<=r+i)}e.s(["computeFrameOverlapRatio",0,m,"findFrameContainingPoint",0,function(e,t){let r=null;for(let n of g(e,t)){let e=n.rect.width*n.rect.height;
2(!r||e<r.area||e===r.area&&n.id<r.id)&&(r={id:n.id,area:e})}return r?r.id:null},"findFramesContainingPoint",0,g,"getFrameRect",0,p,"isAdoptableFrameNode",0,h,"pickAdoptingFrame",0,function(e,t,r,n){let i=0,o=[];for(let a of t){let t=m(e,a.rect);a.id===r&&(i=t),t>=n&&o.push({id:a.id,ratio:t,area:a.rect.width*a.rect.height})}return 0===o.length?null:r&&i>=n&&!o.some(e=>e.id!==r&&e.ratio>i)?r:(o.sort((e,t)=>t.ratio-e.ratio||e.area-t.area||(e.id<t.id?-1:1)),o[0].id)},"toAdoptableFrames",0,function(e){let t=[];for(let r of e)h(r)&&t.push({id:r.id,rect:p(r)});return t}],606846);let f=c.DEFAULT_WALL_WIDTH,b=e=>{if("number"==typeof e&&Number.isFinite(e)&&e>0)return e;if("string"==typeof e){let t=parseFloat(e);if(Number.isFinite(t)&&t>0)return t}return 0},x=async(e,t)=>{let r=Date.now()+4e3,n="";for(;;){let i=e().filter(e=>t.has(e.id)&&document.querySelector(`[data-id="${e.id}"]`)),o=i.map(e=>{let t=y(e);return`${e.id}:${Math.round(t.width)}x${Math.round(t.height)}`}).join("|");if(""!==o&&o===n||Date.now()>=r)return i;n=o,await new Promise(e=>setTimeout(e,120))}},y=e=>{if(e.type===d.ToolElementType.ToolWhiteboardWall){let t=e.data?.attributes,r=e.measured,n=e=>"number"==typeof e&&e>0&&e<=2400?e:0;return{width:(t?.width>0?t.width:0)||n(r?.width)||n(e.width)||n(b(e.style?.width))||f,height:Math.max(t?.height>0?t.height:0,n(r?.height)||n(e.height)||n(b(e.style?.height)))||300}}let t=(e=>{let t=document.querySelector(`[data-id="${e}"]`);if(t){let e=t.getBoundingClientRect(),r=window.getComputedStyle(t);return{width:Math.max(parseFloat(r.width)||e.width||150,50),height:Math.max(parseFloat(r.height)||e.height||50,30),x:e.x,y:e.y}}return{width:150,height:50,x:0,y:0}})(e.id);return{width:t.width,height:t.height}},w=new WeakMap,E=(e,t)=>{let r=e.position.x,n=e.position.y,i=e.parentId,o=new Set;for(;i&&!o.has(i);){o.add(i);let e=t.find(e=>e.id===i);if(!e)break;r+=e.position.x,n+=e.position.y,i=e.parentId}return{x:r,y:n}},C=new Set([d.ToolElementType.ToolGroup,d.ToolElementType.ToolFrame,"reactFlowDroppableWallGap","reactFlowDroppableInnerWall"]);e.s(["WALL_LAYOUT_DEFAULT_HEIGHT",0,300,"WALL_LAYOUT_DEFAULT_WIDTH",0,f,"absolutizeChildPositions",0,e=>{let t=new Map(e.map(e=>[e.id,e.position]));return e.map(e=>{let r=e.parentId?t.get(e.parentId):void 0;return r?{...e,position:{x:e.position.x+r.x,y:e.position.y+r.y}}:e})},"findAdjacentFreeX",0,({nodes:e,sourceNode:t,direction:r,gapPx:n,width:i,height:o})=>{let a=E(t,e),l=y(t),s=a.y,u=a.y+o,c=e.filter(e=>e.id!==t.id&&!C.has(e.type??"")&&!e.hidden).map(t=>{let r=(e=>{if(e.type===d.ToolElementType.ToolWhiteboardWall)return y(e);let t=e.measured,r=t?.width??0,n=t?.height??0;return r>0&&n>0?{width:r,height:n}:{width:"number"==typeof e.width&&e.width>0?e.width:b(e.style?.width),height:"number"==typeof e.height&&e.height>0?e.height:b(e.style?.height)}})(t);if(r.width<=0||r.height<=0)return null;let n=E(t,e);return{x:n.x,y:n.y,...r}}).filter(e=>null!==e&&e.y<u&&e.y+e.height>s),h="right"===r?a.x+l.width+n:a.x-n-i;for(let e=0;e<100;e++){let e=c.filter(e=>e.x<h+i&&e.x+e.width>h);if(0===e.length)break;h="right"===r?Math.max(...e.map(e=>e.x+e.width))+n:Math.min(...e.map(e=>e.x))-n-i}return h},"getAbsoluteNodePosition",0,E,"getLayoutDimensionsForNode",0,y,"getNodeAbsolutePosition",0,(e,t)=>{let r=e.position.x,n=e.position.y,i=new Set([e.id]),o=e.parentId?t.get(e.parentId):void 0;for(;o&&!i.has(o.id);)r+=o.position.x,n+=o.position.y,i.add(o.id),o=o.parentId?t.get(o.parentId):void 0;return{x:r,y:n}},"getNodeFlowDimensions",0,(e,t)=>{let r=e?.measured?.width??(b(e?.width)||b(e?.style?.width)),n=e?.measured?.height??(b(e?.height)||b(e?.style?.height));if((!r||!n)&&e){let i=t?.get(e.id);if(i)r=r||i.w,n=n||i.h;else{let i=(0,s.queryNodeElement)(e.id);if(i){let o={w:i.offsetWidth,h:i.offsetHeight};t?.set(e.id,o),r=r||o.w,n=n||o.h}}}return{w:r,h:n}},"isTitleNode",0,e=>e?.type===d.ToolElementType.ToolHeading||(e?.type===d.ToolElementType.ToolNote||e?.type===d.ToolElementType.ToolToDo)&&e?.data?.attributes?.backgroundColor===u.TRANSPARENT_BACKGROUND,"putAllFrameNodesFirst",0,e=>{let t=[],r=[];for(let n of e)n.type===d.ToolElementType.ToolFrame?t.push(n):r.push(n);return 0===t.length?e:[...t,...r]},"putFrameNodeFirst",0,(e,t)=>{let r=e.find(e=>e.id===t);return r?[r,...e.filter(e=>e.id!==t)]:e},"relativizeChildPositions",0,e=>{let t=new Map(e.map(e=>[e.id,e.position]));return e.map(e=>{let r=e.parentId?t.get(e.parentId):void 0;return r?{...e,position:{x:e.position.x-r.x,y:e.position.y-r.y}}:e})},"stackFramesBySize",0,e=>{let t=[];for(let r of e){if(r.type!==d.ToolElementType.ToolFrame)continue;let{width:e,height:n}=p(r);t.push({id:r.id,area:e*n})}if(t.length<2)return e;t.sort((e,t)=>
2t.area-e.area||(e.id>t.id?-1:+(e.id<t.id)));let r=new Map;t.forEach((e,t)=>r.set(e.id,c.TOOL_FRAME_NODE_Z_INDEX+Math.min(t,8e3)));let n=null;for(let t=0;t<e.length;t++){let i=e[t],o=r.get(i.id);if(void 0===o)continue;let a=i.selected?o-1e3:o;if(i.zIndex===a)continue;let l=w.get(i);l&&l.zIndex===a||(l={zIndex:a,node:{...i,zIndex:a}},w.set(i,l)),(n??=e.slice())[t]=l.node}return n??e},"waitForSettledNodes",0,x],169331);let T=new Map,S=(e,t,r)=>{e&&T.set(e,{x:t,y:r,at:Date.now()})},A=(e,t)=>.5>Math.abs(e.x-t.x)&&.5>Math.abs(e.y-t.y);e.s(["claimLocalMove",0,S,"clearLocalMoveClaims",0,()=>{T.clear()},"preserveLocalMoves",0,(e,t)=>{let r=null;for(let e of t){if(e.dragging)S(e.id,e.position.x,e.position.y);else if(!T.has(e.id))continue;(r??=new Map).set(e.id,e)}if(!r)return e;let n=Date.now();return e.map(e=>{let t=r.get(e.id);if(!t)return e;if(t.dragging)return{...e,position:t.position,dragging:!0,selected:t.selected};let i=T.get(e.id);return i?t.parentId!==e.parentId||n-i.at>8e3||!A(t.position,i)||A(e.position,i)?(T.delete(e.id),e):{...e,position:{x:i.x,y:i.y},selected:t.selected??e.selected}:e})},"releaseLocalMove",0,e=>{T.delete(e)}],820052);var _=e.i(785929),v=e.i(966078),k=e.i(926249),F=e.i(840399),D=e.i(647547),M=e.i(941332),I=e.i(306148),U=e.i(453548),L=e.i(974797),B=e.i(20740),W=e.i(689389),P=e.i(608300),j=e.i(438974),R=e.i(385050),N=e.i(38462),O=e.i(565254),H=e.i(62553);let z={highlight:"#BFD4FA",core:"var(--chakra-colors-brand-500)",shade:"#1F3E7F",deep:"#12285A",pale:"#DCE8FD",rim:"#152C60"}
2,G={light:z,dark:z};e.s(["default",0,({resourceUid:e})=>{let[t,r]=(0,v.useState)(!1),n=(0,j.useColorModeValue)("gray.500","rgba(255,255,255,0.55)"),i=(0,j.useColorModeValue)("#1A1A1A","white"),o=(0,j.useColorModeValue)("white","#232323"),a=(0,j.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),l=(0,j.useColorModeValue)("rgba(0,0,0,0.06)","rgba(255,255,255,0.06)"),{data:s}=(0,F.useQuery)(d.AiAgentObservationsDocument,{variables:{resourceUid:e},skip:!e,fetchPolicy:"cache-and-network"}),[u]=(0,k.useMutation)(d.DismissAiAgentObservationDocument,{refetchQueries:[{query:d.AiAgentObservationsDocument,variables:{resourceUid:e}}]}),c=(0,R.useWhiteboardSelectionStore)(e=>null!==e.whiteboardCommandBridge),h=(0,N.useWhiteboardViewStore)(e=>e.boardContentVersion),p=(0,O.useAiAgentUndoMirror)(e=>e.stackVersion),m=(0,v.useMemo)(()=>{let e=s?.aiAgentObservations??[],t=R.useWhiteboardSelectionStore.getState().whiteboardCommandBridge;return t?e.filter(e=>0===e.elementUids.length||e.elementUids.some(e=>t.hasElement(e))):e},[s,c,h,p]),g=(0,v.useCallback)(e=>{let t=R.useWhiteboardSelectionStore.getState().whiteboardCommandBridge;t&&0!==e.length&&(t.focusElement(e.filter(e=>t.hasElement(e))),r(!1))},[]);return 0===m.length?null:(0,_.jsxs)(U.Popover,{isOpen:t,onClose:()=>r(!1),placement:"bottom-end",isLazy:!0,children:[(0,_.jsx)(W.PopoverTrigger,{children:(0,_.jsx)(M.Button,{variant:"ghost",size:"sm",h:"30px",px:"10px",fontWeight:500,fontSize:"13px",color:n,onClick:()=>r(e=>!e),leftIcon:(0,_.jsx)(H.default,{palette:G,size:13}),children:"Noticed"})}),(0,_.jsx)(B.PopoverContent,{bg:o,border:"1px solid",borderColor:a,borderRadius:"14px",w:"340px",_focusVisible:{outline:"none"},children:(0,_.jsx)(L.PopoverBody,{px:"0",py:"6px",maxH:"380px",overflowY:"auto",children:m.map((e,t)=>(0,_.jsxs)(D.Box,{px:"14px",py:"11px",borderTop:0===t?void 0:"1px solid",borderColor:l,children:[(0,_.jsx)(P.Text,{fontSize:"13px",color:i,lineHeight:"1.45",children:e.body}),(0,_.jsx)(P.Text,{fontSize:"12px",color:n,lineHeight:"1.45",mt:"3px",children:e.because}),(0,_.jsxs)(I.Flex,{gap:"10px",mt:"7px",children:[e.elementUids.length>0&&(0,_.jsx)(M.Button,{size:"xs",variant:"link",fontWeight:400,fontSize:"xs",color:n,onClick:()=>g(e.elementUids),children:"Show me"}),(0,_.jsx)(M.Button,{size:"xs",variant:"link",fontWeight:400,fontSize:"xs",color:n,onClick:()=>u({variables:{uid:e.uid}}),children:"Dismiss"})]})]},e.uid))})})]})}],332472),e.s(["default",0,()=>{let{colorMode:e}=(0,j.useColorMode)(),t=(0,R.useWhiteboardSelectionStore)(e=>e.isPresentationMode),r=(0,R.useWhiteboardSelectionStore)(e=>e.setIsPresentationMode),n=(0,j.useColorModeValue)("#FFFFFF","#282828"),i=(0,j.useColorModeValue)("rgba(0,0,0,0.08)","transparent"),o=(0,j.useColorModeValue)("black","#E0E0E0"),a=(0,j.useColorModeValue)("#F2F2F2","#212121"),l=(0,v.useCallback)(()=>{r(!0),document.documentElement.requestFullscreen&&document.documentElement.requestFullscreen().catch(()=>{})},[r]),s=(0,v.useCallback)(()=>{r(!1),document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[r]);return(0,_.jsx)(M.Button,{onClick:t?s:l,h:"29px",px:"12px",minW:"30px",fontSize:"12px",fontWeight:500,color:o,bg:n,borderRadius:"9px",border:"dark"===e?"none":"1px solid",borderColor:i,transition:"all 0.2s ease",_hover:{transform:"translateY(-1px)",bg:a},sx:{position:"relative",..."dark"===e&&{"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"9px",padding:"1px",background:"linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.01) 45%, rgba(255,255,255,0.18) 100%)",WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",pointerEvents:"none"}}},children:t?"Stop":"Present"})}],233596);var V=e.i(170758),$=e.i(394323),J=e.i(214184);let K=(e,t)=>{if(e===t)return!0;if(null==e||null==t)return(e??null)===(t??null);if("object"!=typeof e||"object"!=typeof t||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1)if(!K(e[r],t[r]))return!1;return!0}for(let r of Object.keys(e))if(!K(e[r],t[r]))return!1;for(let r of Object.keys(t))if(!(r in e)&&void 0!==t[r])return!1;return!0},Y=(e,t,r,n)=>{let i=new Map(e.map(e=>[e.id,e])),o=new Map(t.map(e=>[e.id,e])),a=!1;
2return i.forEach((e,t)=>{if(r?.has(t))return;let i=o.get(t);i?K(e,i)||n.set(t,{before:e,after:i}):(n.set(t,{before:e,after:null}),a=!0)}),o.forEach((e,t)=>{r?.has(t)||i.has(t)||(n.set(t,{before:null,after:e}),a=!0)}),a},q=(e,t,r)=>{let n,i="undo"===r?"before":"after",o="undo"===r?t.beforeNodeOrder:t.afterNodeOrder;if(o){let r=new Map(e.nodes.map(e=>[e.id,e]));for(let e of(n=[],o)){let o=t.nodes.get(e),a=o?o[i]:r.get(e)??null;a&&n.push(a)}}else n=e.nodes.map(e=>t.nodes.get(e.id)?.[i]??e);let a=[],l=new Set;for(let r of e.edges){l.add(r.id);let e=t.edges.get(r.id);if(!e){a.push(r);continue}let n=e[i];n&&a.push(n)}return t.edges.forEach((e,t)=>{if(l.has(t))return;let r=e[i];r&&a.push(r)}),{nodes:n,edges:a}};var X=e.i(2948);e.s(["useWhiteboardHistory",0,({viewOnly:e,project:t,refetchWhiteboard:r,saveReactFlowStateToCache:n})=>{let{setNodes:i,getNodes:o,setEdges:a,getEdges:l}=(0,V.useCanvasEngine)(),s=(0,$.useToast)(),u=(0,R.useWhiteboardSelectionStore)(e=>e.isCanvasTicketDetailsModalOpenDetails.open),c=(0,R.useWhiteboardSelectionStore)(e=>e.isDocumentEditingModalOpenDetails.open),h=(0,v.useRef)([]),p=(0,v.useRef)([]),m=(0,v.useRef)(null),g=(0,v.useRef)(e),f=(0,v.useRef)(r),b=(0,v.useRef)(u),x=(0,v.useRef)(c);g.current=e,f.current=r,b.current=u,x.current=c;let[y]=(0,k.useMutation)(d.UndoWhiteboardActionDocument),[w]=(0,k.useMutation)(d.RedoWhiteboardActionDocument),E=(0,v.useCallback)(()=>{var e,t;let r,n,i,a=m.current;if(!a)return;m.current=null;let s=(e={nodes:o(),edges:l()},t=(0,X.getRemotelyEditedUids)(),r=new Map,n=new Map,i=Y(a.nodes,e.nodes,t,r),((Y(a.edges,e.edges,t,n),0===r.size&&0===n.size)?null:{nodes:r,edges:n,beforeNodeOrder:i?a.nodes.map(e=>e.id):null,afterNodeOrder:i?e.nodes.map(e=>e.id):null})??{nodes:new Map,edges:new Map,beforeNodeOrder:null,afterNodeOrder:null});(0,X.resetRemoteEdits)();let d=h.current;h.current=[...d.slice(Math.max(0,d.length-100+1),d.length),s]},[o,l]),C=(0,v.useCallback)(e=>{if(!g.current){let e,t;E(),(0,X.resetRemoteEdits)(),e=o(),t=l(),m.current={nodes:JSON.parse(JSON.stringify(e)),edges:JSON.parse(JSON.stringify(t))},p.current=[]}},[E,o,l]),T=(0,v.useCallback)(()=>{if(!g.current){if(m.current){m.current=null;return}0!==h.current.length&&(h.current=h.current.slice(0,h.current.length-1))}},[]),S=(0,v.useCallback)(()=>h.current.length>0||null!==m.current,[]),A=(0,v.useCallback)(()=>p.current.length>0,[]);return{takeWhiteboardSnapshot:C,revertLastWhiteboardSnapshot:T,undoWhiteboardAction:(0,v.useCallback)(async()=>{if(g.current||b.current||x.current||!t?.current?.whiteboard?.id||!t?.current?.id)return!1;E();let e=h.current[h.current.length-1];if(!e)return!1;let r={nodes:o(),edges:l()},d=[...p.current],u=[...h.current];h.current=h.current.slice(0,h.current.length-1),p.current=[...p.current,e];let c=q(r,e,"undo");await i(c.nodes),await a(c.edges),await n();try{await y({variables:{whiteboardId:t?.current?.whiteboard?.id,projectId:t.current?.id}})}catch(e){return console.error(e),(0,J.handleGraphQLError)({error:e,toast:s}),p.current=d,h.current=u,await i(r.nodes),await a(r.edges),await f.current(),!1}return!0},[y,t,o,l,i,a,s,n,E]),redoWhiteboardAction:(0,v.useCallback)(async()=>{if(g.current||b.current||x.current||!t?.current?.whiteboard?.id||!t?.current?.id)return!1;E();let e=p.current[p.current.length-1];if(!e)return!1;let r={nodes:o(),edges:l()},d=[...p.current],u=[...h.current];p.current=p.current.slice(0,p.current.length-1),h.current=[...h.current,e];let c=q(r,e,"redo");await i(c.nodes),await a(c.edges),await n();try{await w({variables:{whiteboardId:t?.current?.whiteboard?.id,projectId:t.current?.id}})}catch(e){return console.error(e),(0,J.handleGraphQLError)({error:e,toast:s}),p.current=d,h.current=u,await i(r.nodes),await a(r.edges),await f.current(),!1}return!0},[w,t,o,l,i,a,s,E]),canUndo:S,canRedo:A}}],51642),e.s(["ELEMENT_GAP_PX",0,20,"WALL_CONNECT_GAP_PX",0,120],292822);function Q(e){let t,r=e.getNodes().filter(e=>!e.parentId&&!e.data?.isStaged);if(0===r.length){let r=e.screenToFlowPosition({x:window.innerWidth/2,y:window.innerHeight/2});t={x:r.x,y:r.y}}else{let e=-1/0,n=1/0;for(let t of r){let r=t.measured?.width??("number"==typeof t.width?t.width:0);e=Math.max(e,t.position.x+r),n=Math.min(n,t.position.y)}t={x:e+40,y:n}}let n=Math.max(e.getViewport().zoom,.8);return e.setCenter(t.x+260,t.y+180,{zoom:n,duration:500}),t}e.s(["computeAndFocusAgentPlacement",0,Q,"useAgentSkillPlacementSeed",0,function(){let e=(0,R.useWhiteboardSelectionStore)(e=>e.agentSkillPlacementActive),{getNodes:t,getViewport:r,setCenter:n,screenToFlowPosition:i}=(0,V.useCanvasEngine)();(0,v.useEffect)(()=>
2{if(!e)return;let o=R.useWhiteboardSelectionStore.getState();if(o.agentSkillPlacementPosition)return;let a=Q({getNodes:t,getViewport:r,setCenter:n,screenToFlowPosition:i});o.setAgentSkillPlacementPosition(a)},[e,t,r,n,i])}],306846)},326170,e=>{"use strict";var t=e.i(874186),r=e.i(885599);let n=async(e,n,i)=>{let o=`/${n}/${i}`;try{let{data:n}=await e.query({query:t.SharedResourceLinkVisitsForUserDocument,fetchPolicy:"cache-first"}),a=(n?.sharedResourceLinkVisitsForUser??[]).find(e=>e.boardUid===i||e.resourceUid===i);if(a)return(0,r.buildSharedVisitHref)(a)??o}catch{}return o};e.s(["resolveLinkedBoardHref",0,n])},942264,e=>{"use strict";let t=(0,e.i(527537).create)(e=>({currentCursor:"grab",setCurrentCursor:t=>e(e=>({currentCursor:"function"==typeof t?t(e.currentCursor):t}))}));e.s(["useWhiteboardCursorStore",0,t])},624909,209376,644705,e=>{"use strict";var t=e.i(527537);let r=(e,t)=>"function"==typeof e?e(t):e,n=(0,t.create)(e=>({isDragging:!1,setIsDragging:t=>e(e=>({isDragging:r(t,e.isDragging)})),wasItemClicked:!1,setWasItemClicked:t=>e(e=>({wasItemClicked:r(t,e.wasItemClicked)})),currentCopyPasteDraggable:null,setCurrentCopyPasteDraggable:t=>e(e=>({currentCopyPasteDraggable:r(t,e.currentCopyPasteDraggable)})),isWhiteboardScrollingDisabled:!1,setIsWhiteboardScrollingDisabled:t=>e(e=>({isWhiteboardScrollingDisabled:r(t,e.isWhiteboardScrollingDisabled)})),draggableLoadingState:void 0,setDraggableLoadingState:t=>e(e=>({draggableLoadingState:r(t,e.draggableLoadingState)})),isVideoActive:!1,setIsVideoActive:t=>e(e=>({isVideoActive:r(t,e.isVideoActive)})),activeAudioUid:null,setActiveAudioUid:t=>e(e=>{let n=r(t,e.activeAudioUid);return n===e.activeAudioUid?e:{activeAudioUid:n}})}));e.s(["useWhiteboardInteractionStore",0,n],624909);var i=e.i(966078);e.s(["useBoolean",0,function(e=!1){let[t,r]=(0,i.useState)(e);return[t,(0,i.useMemo)(()=>({on:()=>r(!0),off:()=>r(!1),toggle:()=>r(e=>!e)}),[])]}],209376);var o=e.i(732934);e.s(["useCanvasStore",()=>o.useStore],644705)},670856,e=>{e.v({"animated-checkbox":"canvas-custom-styles-module__FlZwQG__animated-checkbox",canvasEditorPadNote:"canvas-custom-styles-module__FlZwQG__canvasEditorPadNote",canvasEditorPadTodo:"canvas-custom-styles-module__FlZwQG__canvasEditorPadTodo",canvasEditorPadWall:"canvas-custom-styles-module__FlZwQG__canvasEditorPadWall","checkbox-fade-in":"canvas-custom-styles-module__FlZwQG__checkbox-fade-in",checkboxFadeIn:"canvas-custom-styles-module__FlZwQG__checkboxFadeIn",checkboxPulse:"canvas-custom-styles-module__FlZwQG__checkboxPulse",editorContent:"canvas-custom-styles-module__FlZwQG__editorContent",isEditorEmpty:"canvas-custom-styles-module__FlZwQG__isEditorEmpty",placeholder:"canvas-custom-styles-module__FlZwQG__placeholder","task-content":"canvas-custom-styles-module__FlZwQG__task-content",tiptap:"canvas-custom-styles-module__FlZwQG__tiptap"})},639331,736822,806582,631088,e=>{"use strict";e.s(["default",()=>x],639331);var t=e.i(785929),r=e.i(966078);e.i(700930);var n=e.i(819808),i=e.i(368769),o=e.i(644705),a=e.i(517455),l=e.i(385050),s=e.i(527537),d=e.i(525996);let u=(0,s.create)(e=>({whiteboardEdgeConnectAddMenu:null,openWhiteboardEdgeConnectAddMenu:t=>e({whiteboardEdgeConnectAddMenu:t,awaitingImagePick:!1}),closeWhiteboardEdgeConnectAddMenu:()=>e(e=>null!==e.whiteboardEdgeConnectAddMenu||e.awaitingImagePick?{whiteboardEdgeConnectAddMenu:null,awaitingImagePick:!1}:e),awaitingImagePick:!1,beginImagePick:()=>e({awaitingImagePick:!0}),isEdgeDotHovered:!1,setEdgeDotHovered:t=>e(e=>e.isEdgeDotHovered===t?e:{isEdgeDotHovered:t}),whiteboardEdgeConnectAlgorithm:d.DEFAULT_AUTO_CONNECT_ALGORITHM,setWhiteboardEdgeConnectAlgorithm:t=>e(e=>e.whiteboardEdgeConnectAlgorithm===t?e:{whiteboardEdgeConnectAlgorithm:t})}));e.s(["useWhiteboardEdgeConnectAddStore",0,u],736822);var c=e.i(705962),h=e.i(874186);let p=new Set([h.ToolElementType.ToolWhiteboardWall,h.ToolElementType.ToolGroup,h.ToolElementType.ToolFrame,h.ToolElementType.ToolComments,h.ToolElementType.ToolNewLine,h.ToolElementType.ToolFreehandStroke]);e.s(["EDGE_CONNECT_ADD_DISABLED_SOURCE_TYPES",0,p,"EDGE_CONNECT_CLICK_THRESHOLD_COARSE_PX",0,12,"EDGE_CONNECT_CLICK_THRESHOLD_PX",0,6,"EDGE_CONNECT_DOT_MAX_SCALE",0,2.5,"EDGE_CONNECT_DOT_ZOOM_COMPENSATION",0,.5,"EDGE_CONNECT_GAP_FROM_SOURCE_PX",0,300,"EDGE_CONNECT_SIBLING_GAP_PX",0,40],806582);let m={height:10,width:10,visibility:"hidden",pointerEvents:"none"},g=["top","bottom","left","right"],f=(0,r.memo)(function({position:e,posEnum:i,handleId:o,style:a,connectAddEligible:l,onDotPointerDown:s,setDotHovered:d,onHoverChange:u}){let c=(0,r.useCallback)(()=>{u(e),l&&d(!0)},[l,u,e,d]),h=(0,r.useCallback)(()=>{u(null),l&&d(!1)},[l,u,d]),p=(0,r.useCallback)(t=>s(t,e),[s,e]);return(0,t.jsx)(n.Handle,{style:a,id:o,type:"source",position:i,isConnectable:!0,onMouseEnter:c,onMouseLeave:h,onPointerDownCapture:p})}),b={top:i.Position.Top,bottom:i.Position.Bottom,left:i.Position.Left,right:i.Position.Right},x=(0,r.memo)(({whiteboardElementUid:e,selected:s,isHovered:d,hideBottomHandle:h=!1,titleHandleTopOffsetPx:x,nodeType:y})=>{let{viewOnly:w}=(0,a.default)(),E=(0,l.useWhiteboardSelectionStore)(e=>e.isPresentationMode),C=(0,l.useWhiteboardSelectionStore)((0,r.useCallback)(t=>{let r=t.activeElement;return null!=r&&!1!==r&&r.whiteboardElementUid===e},[e])),T=(0,l.useWhiteboardSelectionStore)((0,r.useCallback)(e=>d&&(e.isEdgeBeingConnected||null!=e.currentEdgeBeingReconnected),[d])),S=(0,l.useWhiteboardSelectionStore)((0,r.useCallback)(e=>!0===s&&e.isNodeDragging,[s])),A=(0,o.useCanvasStore)((0,r.useCallback)(e=>{if(!0!==s)return!1;if(e.userSelectionActive)return!0;let t=0;for(let r of e.nodes)if(r.selected&&++t>=2)return!0;return!1},[s])),_=u(e=>e.openWhiteboardEdgeConnectAddMenu),v=u(e=>e.setEdgeDotHovered),k=(0,c.useIsCoarsePointer)(),F=!p.has(y??""),[D,M]=(0,r.useState)(null),I=(0,r.useRef)(null),U=!w&&!E&&!S&&!A&&(s||C&&d||T),L=Math.min(1+(1/Math.min((0,o.useCanvasStore)((0,r.useCallback)(e=>U?e.transform?.[2]??1:1,[U])),1)-1)*.5,2.5),B=(0,r.useMemo)(()=>Object.fromEntries(g.map(e=>{let t;return[e,{height:t=(D===e?15:10)*L,width:t,zIndex:2,transition:"height 0.2s ease, width 0.2s ease",visibility:U?"visible":"hidden"}]})),[D,L,U]),W=(0,r.useMemo)(()=>Object.fromEntries(g.map(t=>[t,`${e}-${t}`])),[e]),P=(0,r.useMemo)(()=>void 0===x?null:{...m,top:x},[x]),j=(0,r.useCallback)((t,r)=>{if(0!==t.button||!F)return;I.current={x:t.clientX,y:t.clientY,direction:r};let n=t=>{document.removeEventListener("pointerup",n,!0);let r=I.current;I.current=null,!r||Math.hypot(t.clientX-r.x,t.clientY-r.y)>(k?12:6)||_({sourceNodeId:e,direction:r.direction,anchorX:t.clientX,anchorY:t.clientY})};document.addEventListener("pointerup",n,!0)},[F,k,_,e]);return(0,t.jsxs)(t.Fragment,{children:[g.map(e=>h&&"bottom"===e?null:(0,t.jsx)(f,{position:e,posEnum:b[e],handleId:W[e],style:B[e],connectAddEligible:F,onDotPointerDown:j,setDotHovered:v,onHoverChange:M},e)),void 0!==x&&P&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.Handle,{style:P,id:`${e}-title-left`,type:"source",position:i.Position.Left,isConnectable:!1}),(0,t.jsx)(n.Handle,{style:P,id:`${e}-title-right`,type:"source",position:i.Position.Right,isConnectable:!1})]})]})},(e,t)=>e.whiteboardElementUid===t.whiteboardElementUid&&e.selected===t.selected&&e.isHovered===t.isHovered&&e.hideBottomHandle===t.hideBottomHandle&&e.titleHandleTopOffsetPx===t.titleHandleTopOffsetPx&&e.nodeType===t.nodeType);var y=e.i(84132),w=e.i(67647),E=e.i(7593),C=e.i(263184),T=e.i(670856),S=e.i(61010),A=e.i(534406),_=e.i(355327),v=e.i(160295),k=e.i(14147),F=e.i(213502),D=e.i(527403);let M=!1,I=!1,U=()=>
2{if(I)return;I=!0,window.addEventListener("pointerdown",e=>{e.isPrimary&&(M=!0)},!0);let e=e=>{e.isPrimary&&(M=!1)};window.addEventListener("pointerup",e,!0),window.addEventListener("pointercancel",e,!0)},L=e=>{let t;if(!M)return void setTimeout(e,0);let r=()=>{window.removeEventListener("click",r,!0),window.removeEventListener("pointercancel",r,!0),window.removeEventListener("pointerup",n,!0),void 0!==t&&window.clearTimeout(t),setTimeout(e,0)},n=()=>{t=window.setTimeout(r,100)};window.addEventListener("click",r,!0),window.addEventListener("pointercancel",r,!0),window.addEventListener("pointerup",n,!0)};var B=e.i(64101),W=e.i(45750),P=e.i(140459),j=e.i(949035),R=e.i(720287),N=e.i(921608),O=e.i(438974),H=e.i(608300),z=e.i(420104),G=e.i(52226),V=e.i(624929),$=e.i(558544);let J=[],K=(0,r.forwardRef)(({className:e,editorClassName:n,content:i="",hidePlaceholder:o=!1,isEditable:a=!0,isDisabled:s=!1,onUpdate:d,headingOneTextOverride:u,useSmallFont:h=!1,bubbleMenuContainer:p,onEditorSet:m,isModal:g=!1,isChildOfCanvasItem:f=!1,scalePlaceholderText:b=1,disableImageDrop:x=!1,disableFloatingPlaceholder:M=!1,placeholderText:I="Enter your text or press '/' for commands...",autoFocus:K=!0,onBackspaceWhenEmpty:Y,collaboratorMentionParticipants:q=J,enforceHeadingOnly:X=!1,enableTaskMetadata:Q=!1},Z)=>{let[ee,et]=(0,r.useState)(!1),er=(0,l.useWhiteboardSelectionStore)(e=>e.isResizingElement),{colorMode:en}=(0,O.useColorMode)(),ei=(0,$.useIsMobileViewport)(),eo=(0,c.useIsCoarsePointer)(),ea=ei||eo,[el,es]=(0,r.useState)({isOpen:!1,url:"",position:{x:0,y:0},cursorPos:0}),ed=(0,r.useRef)(d);(0,r.useEffect)(()=>{ed.current=d},[d]);let eu=(0,r.useRef)(Y);(0,r.useEffect)(()=>{eu.current=Y},[Y]);let ec=(0,r.useRef)(X);(0,r.useEffect)(()=>{ec.current=X},[X]);let eh=(0,r.useRef)(a);(0,r.useEffect)(()=>{eh.current=a},[a]);let ep=(0,r.useRef)(!1),em=(0,r.useRef)(!1),eg=(0,r.useRef)(!1),ef=(0,r.useCallback)((e,t)=>{let r=t.clipboardData?.getData("text/plain")?.trim();if(r&&(0,A.isValidUrl)(r)){t.preventDefault();let{from:n}=e.state.selection,i=e.coordsAtPos(n);return ep.current=!0,es({isOpen:!0,url:r,position:{x:i.left,y:i.bottom+8},cursorPos:n}),!0}return!1},[]),eb=(0,w.useEditor)({editorProps:{attributes:{class:`${T.default.editorContent} ${n} `},transformPastedHTML:e=>(0,G.preprocessMarkdownLinks)(e),handlePaste:(e,t)=>
2!!eh.current&&(!!(ef(e,t)||(0,V.handleMarkdownPaste)(e,t))||(0,S.handleImagePaste)(e,t)),handleKeyDown:(e,t)=>{if(ec.current){if("Enter"===t.key)return t.preventDefault(),!0;if("Backspace"===t.key||"Delete"===t.key){let{state:r}=e,{selection:n,doc:i}=r;if(n.from<=1&&n.to>=i.content.size-1&&!n.empty&&1===i.childCount&&i.firstChild&&i.firstChild.content.size>0){let n=r.tr.delete(1,i.content.size-1);return e.dispatch(n),t.preventDefault(),!0}}}if("Backspace"===t.key&&eu.current){let r,{doc:n}=e.state;if(r=!1,n.descendants(e=>e.isText?""===(e.text??"").replace(/\u00a0/g," ").trim()||(r=!0,!1):!!e.isTextblock||"hardBreak"===e.type.name||(r=!0,!1)),!r)return t.preventDefault(),eu.current(),!0}return!1},handleDrop:(e,t,r,n)=>{if(!eh.current||x)return!1;let i=t.dataTransfer?.getData("text/plain")?.trim();if(i&&(0,A.isValidUrl)(i)){t.preventDefault();let r=e.posAtCoords({left:t.clientX,top:t.clientY}),n=r?.pos||e.state.selection.from;return ep.current=!0,es({isOpen:!0,url:i,position:{x:t.clientX,y:t.clientY+8},cursorPos:n}),!0}return(0,S.handleImageDrop)(e,t)}},content:(0,D.stripTrailingEmptyParagraphsAfterList)((0,G.preprocessMarkdownLinks)(i)),onBlur:({editor:e,event:t})=>{if(ep.current)return;if(em.current||l.useWhiteboardSelectionStore.getState().isResizingElement&&!eg.current)return void ed.current(e.getHTML(),!0);if(l.useWhiteboardSelectionStore.getState().isTiptapSubMenuActive){"none"!==e.view.dom.getAttribute("inputmode")&&ed.current(e.getHTML(),!0);return}if("none"===e.view.dom.getAttribute("inputmode"))return;let r=t.relatedTarget;r&&(r.classList&&r.classList.contains("task-item-checkbox")||r.closest(".ProseMirror")||r.closest(".tippy-content")||r.closest('[data-comment-thread-modal="true"]')||r.closest("[data-task-chip-menu]"))||(et(!1),ed.current(e.getHTML()))},onFocus:()=>{et(!0)},extensions:[...(0,k.getTipTapExtensions)(en,{includeMediaCommands:!1,collaboratorMentionParticipants:q,includeCollaboratorMentions:q.length>0&&!X,includeCommentThreads:!0,onCommentThreadUpdate:e=>ed.current(e,!0),includeTaskMetadata:Q,onTaskItemUpdate:e=>ed.current(e,!0),includeFontSizeEditing:!0}),k.LinkWithoutUnderline.configure({openOnClick:!0,autolink:!1,linkOnPaste:!1,HTMLAttributes:{class:"tiptap-link",rel:"noopener noreferrer",target:"_blank"}}),B.Indent,F.TrailingNode.configure({notAfter:F.DEFAULT_TRAILING_NODE_NOT_AFTER}),N.default.extend({addAttributes:()=>({color:{default:null,parseHTML:e=>e.getAttribute("data-color"),renderHTML:e=>({"data-color":e.color,style:`background-color: ${e.color}; color: inherit;`})},class:{default:"",parseHTML:e=>e.getAttribute("class"),renderHTML:e=>e.class?{class:e.class}:{}}})}).configure({multicolor:!0}),R.default.configure({}),E.default.configure({emptyEditorClass:T.default.isEditorEmpty,showOnlyWhenEditable:!0,showOnlyCurrent:!1,placeholder:({node:e,editor:t})=>{if("heading"===e.type.name&&1===e.attrs.level)return u?`${u}...`:"Heading 1";if("heading"===e.type.name&&2===e.attrs.level)return"Heading 2";if("heading"===e.type.name&&3===e.attrs.level)return"Heading 3";if("taskList"===e.type.name)return" Enter your todo text";if(t.state.doc.content.content.some(e=>!e.isTextblock))return"";if(M)return ee?"":I;let{selection:r}=t.state,{$anchor:n,empty:i}=r,o=1===n.depth,a=n.parent.isTextblock&&!n.parent.type.spec.code&&!n.parent.textContent,l=1===n.pos;return t.isActive("paragraph")&&t.view.hasFocus()&&i&&o&&a&&!l||ee?"":I}}),S.default.configure({onUpdate:e=>{ed.current(e)}}),_.default.configure({onUpdate:e=>{ed.current(e)}}),v.default.configure({onUpdate:e=>{ed.current(e)}}),z.default,...h?[W.default.configure({HTMLAttributes:{style:"font-size: 16px !important"}}),P.default.configure({levels:[1,2,3]}).extend({renderHTML({node:e,HTMLAttributes:t}){let r=e.attrs.level;return[`h${r}`,{...t,style:`font-size: ${1===r?"var(--canvas-heading-1-font-size, 24px)":2===r?"20px":"16px"} !important${t.style?`; ${t.style}`:""}`},0]}}),j.default.configure({HTMLAttributes:{style:"font-size: 16px !important"}})]:[]]},[en,q,X,Q]);(0,r.useEffect)(()=>{if(!eb)return;m?.(eb);let e=e=>{"Escape"===e.key&&(eg.current=!0,eb.view.dom.blur(),setTimeout(()=>{eg.current=!1},0))};return eb.view.dom.addEventListener("keydown",e),()=>{eb.view.dom.removeEventListener("keydown",e)}},[eb,m]);let ex=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let e=ex.current;ex.current=er,!e||er||eb&&!eb.isDestroyed&&!eb.isFocused&&ee&&eb.commands.focus()},[er,eb,ee]),(0,r.useEffect)(()=>
2{if(!eb||!ea)return;let e=()=>{l.useWhiteboardSelectionStore.getState().setMobileCanvasTipTapEditor({editor:eb,headingOnly:ec.current})};return eb.on("focus",e),eb.isFocused&&e(),()=>{eb.off("focus",e);let t=l.useWhiteboardSelectionStore.getState();t.mobileCanvasTipTapEditor?.editor===eb&&t.setMobileCanvasTipTapEditor(null)}},[eb,ea]),(0,r.useEffect)(()=>{if(!eb||ea||!f)return;U();let e=()=>{l.useWhiteboardSelectionStore.getState().setActiveCanvasNoteFormattingEditor({editor:eb,headingOnly:ec.current,onForceSave:()=>ed.current(eb.getHTML(),!0)})},t=()=>{let e=l.useWhiteboardSelectionStore.getState();e.activeCanvasNoteFormattingEditor?.editor===eb&&e.setActiveCanvasNoteFormattingEditor(null)},r=()=>{L(()=>{if(eb.isDestroyed)return;let e=l.useWhiteboardSelectionStore.getState();e.isTiptapSubMenuActive||e.isResizingElement||eb.isFocused||t()})};return eb.on("focus",e),eb.on("blur",r),eb.isFocused&&e(),()=>{eb.off("focus",e),eb.off("blur",r),t()}},[eb,ea,f]),(0,r.useEffect)(()=>{if(!eb)return;U();let e=!1,t=l.useWhiteboardSelectionStore.getState().setIsTiptapTextSelectionActive,r=()=>{if(eb.isDestroyed)return;let{selection:r}=eb.state,n=!r.empty&&r.content().size>0;eb.isFocused&&n?(e=!0,t(!0)):e&&(e=!1,L(()=>{if(eb.isDestroyed||l.useWhiteboardSelectionStore.getState().isTiptapSubMenuActive)return;let{selection:e}=eb.state;eb.isFocused&&!e.empty&&e.content().size>0||t(!1)}))};return eb.on("selectionUpdate",r),eb.on("focus",r),eb.on("blur",r),()=>{eb.off("selectionUpdate",r),eb.off("focus",r),eb.off("blur",r),e&&t(!1)}},[eb]),(0,r.useEffect)(()=>{if(!eb||eb.isDestroyed||!ec.current)return;let e=()=>{if(!eb||eb.isDestroyed||!ec.current)return;let{doc:e}=eb.state,t=e.firstChild;if(1===e.childCount&&null!==t&&"heading"===t.type.name&&1===t.attrs.level)return;let r=e.textContent,n=t?.attrs?.textAlign??e.firstChild?.attrs?.textAlign,i=n?` style="text-align: ${n}"`:"";eb.chain().setContent(`<h1${i}>${r}</h1>`,!1).run()};return eb.on("update",e),e(),()=>{eb.off("update",e)}},[eb,X]),(0,r.useEffect)(()=>{if(!eb||eb.isDestroyed)return;let e=eb.getHTML(),t=(0,D.stripTrailingEmptyParagraphsAfterList)((0,G.preprocessMarkdownLinks)(i));e.trim()===t.trim()||ee||queueMicrotask(()=>{!eb||eb.isDestroyed||eb.isFocused||eb.commands.setContent(t)}),eb.setOptions({editable:a})},[eb,i,a,ee]),(0,r.useEffect)(()=>{K&&a&&eb&&!eb.isDestroyed&&setTimeout(()=>{eb.commands.focus("start")},0)},[a,eb]);let ey=(0,r.useCallback)(e=>{eb&&el.url&&(ep.current=!1,eb.chain().focus().setTextSelection(el.cursorPos).run(),(0,A.insertLinkByType)(eb,el.url,e)),ep.current=!1,es({isOpen:!1,url:"",position:{x:0,y:0},cursorPos:0})},[eb,el.url,el.cursorPos]),ew=(0,r.useCallback)((e,t)=>{if(!eb||eb.isDestroyed||!e)return;let r=eb.view;try{if(t){let e=r.posAtCoords({left:t.x,top:t.y});e?eb.chain().focus().setTextSelection(e.pos).run():eb.chain().focus().run()}else eb.chain().focus().run();let n={clipboardData:{getData:t=>"text/plain"===t?e:"",items:[]},preventDefault:()=>{}};if(ef(r,n)||(0,V.handleMarkdownPaste)(r,n)||(0,S.handleImagePaste)(r,n))return;let i=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");eb.commands.insertContent(i.split("\n").join("<br>"))}catch(e){console.debug("smartPasteText failed:",e)}},[eb,ef]),eE=(0,r.useCallback)(()=>{if(eb&&!eb.isDestroyed)try{eb.chain().focus().selectAll().run()}catch(e){console.debug("selectAllText failed:",e)}},[eb]);return(0,r.useImperativeHandle)(Z,()=>({smartPasteText:ew,selectAllText:eE}),[ew,eE]),(0,r.useEffect)(()=>{let e;if(!el.isOpen)return;let t=e=>{e.target.closest("[data-paste-menu]")||(ep.current=!1,es({isOpen:!1,url:"",position:{x:0,y:0},cursorPos:0}))};return e=setTimeout(()=>{document.addEventListener("mousedown",t)},50),()=>{clearTimeout(e),document.removeEventListener("mousedown",t)}},[el.isOpen]),(0,r.useEffect)(()=>{if(!eb)return;let e=eb.view.dom,t=t=>{if(!eb.isFocused)return;let r=t.target;if(e.contains(r)||r.closest(".ProseMirror")||r.closest("[data-paste-menu]")||r.closest(".selection-menu-root")||r.closest("[data-tippy-root]")||r.closest('[role="menu"]')||r.closest(".chakra-menu__menu-list")||r.closest(".selection-menu-button")||r.closest("[data-tippy-content]"))return;let{state:n}=eb.view,{selection:i}=n;if(!i.empty){let{$anchor:e}=i;eb.chain().setTextSelection(e.pos).run()}e.blur()};return document.addEventListener("mousedown",t,!0),()=>{document.removeEventListener("mousedown",t,!0)}},[eb]),(0,t.jsxs)(t.Fragment,{children:[el.isOpen&&(0,t.jsx)(A.default,{url:el.url,position:el.position,onSelect:ey,onClose:()=>{ep.current=!1,es({isOpen:!1,url:"",position:{x:0,y:0},cursorPos:0})},isYouTube:(0,A.isYouTubeUrl)(el.url)}),eb&&(0,t.jsxs)(t.Fragment,{children:[!M&&(0,t.jsx)(w.FloatingMenu,{editor:eb,tippyOptions:f?{duration:100,offset:[0,0],appendTo:()=>(0,y.closestCanvasRoot)(eb.view.dom)||document.body,popperOptions:{modifiers:[{name:"preventOverflow",options:{boundary:"viewport",altAxis:!0}},{name:"computeStyles",options:{gpuAcceleration:!1}}]}}:{duration:100,offset:[0,0]},shouldShow:({editor:e,view:t,state:r,oldState:n})=>{if(!e.isActive("paragraph"))return!1;let{selection:i}=r,{$anchor:o,empty:a}=i,l=1===o.depth,s=o.parent.isTextblock&&!o.parent.type.spec.code&&!o.parent.textContent,d=1===o.pos;return!!t.hasFocus()&&!!a&&!!l&&!!s&&!d},children:!o&&(0,t.jsx)(H.Text,{className:T.default.placeholder,onClick:()=>eb.commands.focus(),onDoubleClick:()=>eb.commands.focus(),fontSize:"16px",color:"#6E6E6E",mt:"3px",style:f?{transform:`scale(${b})`,transformOrigin:"left top"}:void 0,children:"Enter your text or press '/' for commands..."})}),!ea&&(0,t.jsx)(w.BubbleMenu,{tippyOptions:f?{duration:10,placement:"top",appendTo:()=>document.body,getReferenceClientRect:()=>{let{state:e}=eb.view,{selection:t}=e,{from:r,to:n}=t,i=eb.view.coordsAtPos(r),o=eb.view.coordsAtPos(n),a=Math.min(i.left,o.left),l=Math.max(i.right,o.right),s=Math.min(i.top,o.top),d=Math.max(i.bottom,o.bottom);
2return{width:l-a,height:d-s,top:s,bottom:d,left:a,right:l,x:a,y:s,toJSON:function(){return{}}}},onShow:e=>{let t=(0,y.closestCanvasRoot)(eb.view.dom),r=t?(0,y.queryCanvasViewport)(t):null;if(!r)return;let n=r.style.transform||"",i=null,o=()=>{i||(i=requestAnimationFrame(()=>{e.state.isVisible&&e.popperInstance&&e.popperInstance.update(),i=null}))};r.addEventListener("scroll",o,{passive:!0});let a=new MutationObserver(()=>{(r.style.transform||"")!==n&&o()});a.observe(r,{attributes:!0,attributeFilter:["style"],subtree:!1}),r.addEventListener("wheel",o,{passive:!0}),e._bubbleMenuCleanup=()=>{r.removeEventListener("scroll",o),r.removeEventListener("wheel",o),a.disconnect(),i&&(cancelAnimationFrame(i),i=null)}},onHide:e=>{e._bubbleMenuCleanup&&(e._bubbleMenuCleanup(),delete e._bubbleMenuCleanup)},popperOptions:{strategy:"fixed",modifiers:[{name:"preventOverflow",options:{boundary:"viewport",altAxis:!0,padding:45}},{name:"computeStyles",options:{gpuAcceleration:!1}}]},zIndex:9999}:{duration:10,appendTo:g?p||document.body:()=>"string"==typeof p?document.querySelector(p)||document.body:p||document.body,popperOptions:{modifiers:[{name:"preventOverflow",options:{boundary:"viewport",altAxis:!1,padding:45}}]},zIndex:9999},editor:eb,shouldShow:({editor:e,state:t})=>{let r=!t.selection.empty&&t.selection.content().size>0;return e.isFocused&&r},children:(0,t.jsx)(C.default,{editor:eb,selectionMenuOpenRef:em,onForceSave:()=>ed.current(eb.getHTML(),!0),isHeadingTool:X,expanded:f,enableFontSize:f})})]}),(0,t.jsx)(w.EditorContent,{editor:eb,className:`tiptap ${T.default.tiptap}${e?` ${e}`:""}`})]})});K.displayName="CanvasTipTap",e.s(["default",0,K],631088)},603995,e=>{"use strict";var t=e.i(785929),r=e.i(438974);let n=(0,e.i(966078).memo)(({width:e=16,height:n=18})=>{let{colorMode:i}=(0,r.useColorMode)();return"dark"===i?(0,t.jsx)("svg",{width:"13",height:"14",viewBox:"0 0 13 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M9.125 0.875C11.058 0.875 12.625 2.442 12.625 4.375V9.625C12.625 11.558 11.058 13.125 9.125 13.125H3.875C1.942 13.125 0.375 11.558 0.375 9.625V4.375C0.375 2.442 1.942 0.875 3.875 0.875H9.125ZM11.3125 5.25H1.6875V9.625C1.6875 10.8331 2.66688 11.8125 3.875 11.8125H9.125C10.3331 11.8125 11.3125 10.8331 11.3125 9.625V5.25Z",fill:"#D6D6D6"})}):(0,t.jsx)("svg",{width:"13",height:"14",viewBox:"0 0 13 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M9.125 0.875C11.058 0.875 12.625 2.442 12.625 4.375V9.625C12.625 11.558 11.058 13.125 9.125 13.125H3.875C1.942 13.125 0.375 11.558 0.375 9.625V4.375C0.375 2.442 1.942 0.875 3.875 0.875H9.125ZM11.3125 5.25H1.6875V9.625C1.6875 10.8331 2.66688 11.8125 3.875 11.8125H9.125C10.3331 11.8125 11.3125 10.8331 11.3125 9.625V5.25Z",fill:"#696969"})})});e.s(["default",0,n])},830947,e=>{"use strict";var t=e.i(785929),r=e.i(438974),n=e.i(608300),i=e.i(966078),o=e.i(903786),a=e.i(603995),l=e.i(851179),s=e.i(581240);let d=(0,i.memo)(({dateValue:e,onDateChange:i,hasBackgroundColor:d=!1,usePortal:u=!0,enableShadow:c=!1,isSmallIcon:h=!1,disableHover:p=!1,isOverdue:m=!1})=>{let{colorMode:g}=(0,r.useColorMode)(),f=m?(0,l.overdueChipColors)(g):null,b=(0,r.useColorModeValue)("#1A202C","white"),x=(0,r.useColorModeValue)("#EEEEEE","#2A2A2A"),y=(0,r.useColorModeValue)("hoverLight.primary","hoverDark.primary"),w=(0,r.useColorModeValue)("#DFDFDF","rgba(255, 255, 255, 0.08)"),E=(0,r.useColorModeValue)(s.ELEVATED_SURFACE.bg.light,s.ELEVATED_SURFACE.bg.dark),C=(0,r.useColorModeValue)(s.ELEVATED_SURFACE.border.light,s.ELEVATED_SURFACE.border.dark),T=(0,r.useColorModeValue)(s.ELEVATED_SURFACE.shadow.light,s.ELEVATED_SURFACE.shadow.dark);(0,r.useColorModeValue)("#FFFFFF","#454545");let S=(0,r.useColorModeValue)("transparent","#383838"),A=(0,r.useColorModeValue)("#F5F5F5","#252525"),_=(0,r.useColorModeValue)("#EEEEEE","#2A2A2A"),v=(0,r.useColorModeValue)("hoverLight.primary","hoverDark.primary"),k={dateNavBtnProps:{colorScheme:"textColorPrimary",fontSize:"12px",bg:"calendarNavBtnColor",borderRadius:"100px"},popoverCompProps:{popoverBodyProps:{bg:"transparent",borderRadius:"14px",padding:"0px",border:"none"},popoverContentProps:{border:"1px solid",borderColor:C,bg:E,borderRadius:s.ELEVATED_SURFACE.radius,padding:"5px",boxShadow:T}},calendarPanelProps:{wrapperProps:{bg:"transparent",borderRadius:"14px",fontSize:"12px"},contentProps:{border:"none"},dividerProps:{borderColor:S,height:"1px"}},dayOfMonthBtnProps:{defaultBtnProps:{_hover:{background:"secondaryGray.600"},fontSize:"12px"},selectedBtnProps:{background:"brand.500",color:b}}},F={"data-square":"true",bg:f?.bg??(d?"rgba(0, 0, 0, 0.15)":x),fontSize:"12px",fontWeight:"400",color:f?.text??b,height:"27px",border:"1px solid",borderColor:f||d?"transparent":w,borderRadius:"7px",leftIcon:(0,t.jsx)(a.default,{}),padding:"0 8px",children:e?void 0:(0,t.jsx)(n.Text,{children:"Due date"}),boxShadow:c?"0px -1px 0px 0px #0000001A inset, 0px 15px 40px 0px #00000026, 0px 5px 10px 0px #0000000D":"none",backdropFilter:"blur(30px)",_hover:p||f?{bg:f?.bg??(d?"rgba(0, 0, 0, 0.15)":x)}:{bg:y}},D={...k,triggerIconBtnProps:{bg:A,color:_,borderColor:_,borderRadius:"10px",border:"1px",_hover:p?{bg:A}:{bg:v}},inputProps:{w:"0px",pl:"0px",h:"29px",border:"none",outline:"none",cursor:"default",_focusVisible:{outline:"none",border:"none",boxShadow:"none"},_focus:{outline:"none",border:"none",boxShadow:"none"},_selected:{bg:"transparent",color:"transparent",borderColor:"transparent",outline:"none"}}}
2,M={...k,triggerBtnProps:F};return(0,t.jsx)(o.SingleDatepicker,{date:e,onDateChange:e=>{i(e.toString())},usePortal:u,configs:{dateFormat:"MMM dd"},...h?{triggerVariant:"input",triggerIcon:(0,t.jsx)(a.default,{}),propsConfigs:D}:{propsConfigs:M}})},(e,t)=>{let r=e.dateValue?.getTime(),n=t.dateValue?.getTime();return(r===n||void 0===r&&void 0===n)&&e.onDateChange===t.onDateChange&&e.hasBackgroundColor===t.hasBackgroundColor&&e.usePortal===t.usePortal&&e.enableShadow===t.enableShadow&&e.isSmallIcon===t.isSmallIcon&&e.disableHover===t.disableHover&&e.isOverdue===t.isOverdue});e.s(["default",0,d])},659043,e=>{"use strict";var t=e.i(785929),r=e.i(966078),n=e.i(306148),i=e.i(647547),o=e.i(608300),a=e.i(438974),l=e.i(785036),s=e.i(830940),d=e.i(594949);let u=27;e.s(["CANVAS_TOOL_LABEL_HEIGHT_PX",0,u,"CanvasToolLabel",0,({labelColorHex:e,label:c,onClick:h,onRemove:p,ticketBackgroundColor:m,heightPx:g=u,leadingDot:f})=>{let[b,x]=(0,r.useState)(!1),{colorMode:y}=(0,a.useColorMode)(),w=(0,a.useColorModeValue)("#EEEEEE","#2A2A2A"),E=(0,a.useColorModeValue)("#ADADAD","white"),C=!!(e&&""!==e),T=!!m,{resolvedBg:S,resolvedTextColor:A}=(0,r.useMemo)(()=>{if(C){let t=(0,d.getLabelColorsForMode)(e,y);if(t)return{resolvedBg:t.bg,resolvedTextColor:t.text};let r=(0,d.convertLabelColorForMode)(e,y)??e;return{resolvedBg:r,resolvedTextColor:(0,s.getSameHueLabelTextColor)(r)??"white"}}return T?{resolvedBg:"rgba(0, 0, 0, 0.15)",resolvedTextColor:(0,s.isColorLight)(m)?"rgba(26, 26, 26, 0.6)":"rgba(241, 241, 241, 0.7)"}:{resolvedBg:w,resolvedTextColor:E}},[C,e,y,T,m,w,E]),_=!!(p??h);return(0,t.jsxs)(i.Box,{minW:"42px",w:"auto",height:`${g}px`,border:"none",borderRadius:"8px",bg:S,position:"relative",onClick:p??h,cursor:_?"pointer":void 0,overflow:"hidden",onMouseEnter:p?()=>x(!0):void 0,onMouseLeave:p?()=>x(!1):void 0,children:[(0,t.jsxs)(n.Flex,{px:"10px",py:"0px",h:"100%",alignItems:"center",justifyContent:"center",gap:f?"6px":void 0,w:"100%",children:[f&&(0,t.jsx)(i.Box,{w:"6px",h:"6px",borderRadius:"50%",bg:A,flexShrink:0}),(0,t.jsx)(o.Text,{fontSize:"11px",fontWeight:500,color:A,textAlign:"center",minW:0,noOfLines:1,children:c&&""!=c?c:"Label"})]}),p&&(0,t.jsx)(n.Flex,{position:"absolute",inset:0,alignItems:"center",justifyContent:"center",bg:S,opacity:+!!b,transition:"opacity 0.12s ease",pointerEvents:"none",children:(0,t.jsx)(l.MdClose,{size:12,color:A})})]})}])},144633,79481,804525,e=>{"use strict";e.i(700930);var t=e.i(84132),r=e.i(966078),n=e.i(763371),i=e.i(1318),o=e.i(558544),a=e.i(320818),l=e.i(385050);let s="data-canvas-modal-surface",d=()=>{let{isNavSidebarOpen:e}=(0,n.default)(),t=(0,o.useIsMobileViewport)(),s=(0,l.useIsCanvasRailPanelOpen)(),d=(0,a.useAiPanelReservesSpace)()||s&&!t,u=(0,i.useNavSidebarWidth)(),c=(0,i.useRightRailWidth)();return(0,r.useMemo)(()=>{let r={left:!t&&e?u:0,right:d?c:0};return{isAgentPanelBeside:d,insets:r,containerProps:{left:`${r.left}px`,width:`calc(100% - ${r.left+r.right}px)`,...d?{pointerEvents:"none"}:{}}}},[d,t,e,u,c])};e.s(["CANVAS_MODAL_SURFACE_ATTRIBUTE",0,s,"useCanvasModalClickAway",0,(e,n)=>{let i=(0,r.useRef)(n);i.current=n,(0,r.useEffect)(()=>{if(!e)return;let r=e=>{let r=e.target;!r||r.closest(`[${s}]`)||r.closest(t.CANVAS_ROOT_SELECTOR)&&i.current()};return document.addEventListener("pointerdown",r,!0),()=>document.removeEventListener("pointerdown",r,!0)},[e])},"useCanvasModalGeometry",0,d],144633);var u=e.i(785929),c=e.i(647547),h=e.i(959219),p=e.i(816790);e.s(["default",0,()=>{let{isAgentPanelBeside:e}=d();return e?(0,u.jsx)(c.Box,{position:"fixed",top:`calc(${p.NAVBAR_HEIGHT} + ${p.RIGHT_RAIL_PANEL_GUTTER})`,right:p.RIGHT_RAIL_PANEL_GUTTER,bottom:p.RIGHT_RAIL_PANEL_GUTTER,w:`calc(${p.AI_CHAT_SIDEBAR_WIDTH} - 2 * ${p.RIGHT_RAIL_PANEL_GUTTER})`,borderRadius:p.RIGHT_RAIL_PANEL_RADIUS,boxShadow:"0 0 0 100000px var(--chakra-colors-blackAlpha-600)",zIndex:"modal",pointerEvents:"none"}):(0,u.jsx)(h.ModalOverlay,{})}],79481);var m=e.i(415938),g=e.i(438974);let f=({color:e="currentColor",size:t="18px"})=>(0,u.jsx)("svg",{height:t,width:t,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsx)("path",{d:"m20,3H4c-1.654,0-3,1.346-3,3v12c0,1.654,1.346,3,3,3h16c1.654,0,3-1.346,3-3V6c0-1.654-1.346-3-3-3ZM3,18V6c0-.551.449-1,1-1h11v14H4
2c-.551,0-1-.449-1-1Z",fill:e,strokeWidth:"0"})}),b=({color:e="currentColor",size:t="18px"})=>(0,u.jsx)("svg",{height:t,width:t,viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:(0,u.jsxs)("g",{fill:e,children:[(0,u.jsx)("path",{d:"m14,3H6c-1.657,0-3,1.343-3,3v2h14v-2c0-1.657-1.343-3-3-3Zm-8,3c-.552,0-1-.448-1-1s.448-1,1-1,1,.448,1,1-.448,1-1,1Zm3,0c-.552,0-1-.448-1-1s.448-1,1-1,1,.448,1,1-.448,1-1,1Z",fill:e,strokeWidth:"0"}),(0,u.jsx)("rect",{height:"14",width:"14",fill:"none",rx:"3",ry:"3",stroke:e,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,transform:"translate(0 20) rotate(-90)",x:"3",y:"3"})]})});e.s(["default",0,({modalType:e,onChangeModalType:t})=>{let r=(0,g.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.06)"),n="modal"===e?"side-panel":"modal",i="side-panel"===n?"Open as side window":"Open as modal";return(0,u.jsx)(m.Tooltip,{label:i,openDelay:300,children:(0,u.jsx)(c.Box,{as:"button",cursor:"pointer",bg:"transparent",border:"none",h:"28px",minW:"28px",px:"6px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"9999px",_hover:{bg:r},"aria-label":i,onClick:()=>t(n),children:"side-panel"===n?(0,u.jsx)(f,{color:"#838383",size:"18px"}):(0,u.jsx)(b,{color:"#838383",size:"18px"})})})}],804525)},175814,e=>{"use strict";let t=(0,e.i(527537).create)(e=>({batchId:null,stagedElements:[],stagedEdges:[],isReady:!1,isResolving:!1,resolvingElementUids:[],focusedEditUid:null,frameless:!1,handlers:null,setStagedBatch:(t,r,n=!0,i=[])=>e({batchId:t,stagedElements:r,isReady:n,stagedEdges:i,resolvingElementUids:[],focusedEditUid:null}),clearStagedBatch:()=>e({batchId:null,stagedElements:[],stagedEdges:[],isReady:!1,isResolving:!1,resolvingElementUids:[],focusedEditUid:null,frameless:!1}),setIsResolving:t=>e({isResolving:t}),setElementResolving:(t,r)=>e(e=>({resolvingElementUids:r?e.resolvingElementUids.includes(t)?e.resolvingElementUids:[...e.resolvingElementUids,t]:e.resolvingElementUids.filter(e=>e!==t)})),removeStagedElement:t=>e(e=>{let r=e.stagedElements.filter(e=>e.element.uid!==t);return 0===r.length?{batchId:null,stagedElements:[],stagedEdges:[],isReady:!1,isResolving:!1,resolvingElementUids:[],focusedEditUid:null,frameless:!1}:{stagedElements:r,resolvingElementUids:e.resolvingElementUids.filter(e=>e!==t),focusedEditUid:e.focusedEditUid===t?null:e.focusedEditUid}}),setFocusedEditUid:t=>e({focusedEditUid:t}),setFrameless:t=>e({frameless:t}),setHandlers:t=>e({handlers:t})}));e.s(["useWhiteboardStagingStore",0,t])},855152,195022,73781,565782,761819,e=>{"use strict";var t=e.i(785929),r=e.i(966078),n=e.i(647547),i=e.i(306148),o=e.i(874186),a=e.i(261940),l=e.i(203306),s=e.i(926249),d=e.i(840399),u=e.i(935004),c=e.i(816790),h=e.i(394323),p=e.i(350618),m=e.i(608338),g=e.i(838458),f=e.i(385050),b=e.i(659852),x=e.i(175814);let y=new Map,w=new Map,E={subscribe(e,t){let r=w.get(e);if(r)for(let e of r)t(e);let n=y.get(e);return n||(n=new Set,y.set(e,n)),n.add(t),()=>{let r=y.get(e);r&&(r.delete(t),0===r.size&&y.delete(e))}},publish(e,t){if("start"===t.phase)w.set(e,[t]);else{let r=w.get(e);r?r.push(t):w.set(e,[t])}y.get(e)?.forEach(e=>e(t)),"end"===t.phase&&w.delete(e)}};e.s(["CanvasToolHtmlEmbedAppStreamBus",0,E],195022);var C=e.i(215202);let T=new class{async getSessions(e,t){try{return(await C.db.whiteboardAgentSessions.filter(r=>r.projectId===e&&(null==t||r.whiteboardId===t)).sortBy("lastUpdated")).reverse()}catch(e){return console.error("Failed to get whiteboard agent sessions:",e),[]}}async getSessionMetadata(e){try{return await C.db.whiteboardAgentSessions.get(e)||null}catch(e){return console.error("Failed to get whiteboard agent session metadata:",e),null}}async saveSessionMetadata(e){try{await C.db.whiteboardAgentSessions.put({...e,lastUpdated:Date.now()})}catch(e){throw console.error("Failed to save whiteboard agent session metadata:",e),e}}async saveSessionsMetadata(e){try{if(0===e.length)return;let t=e.map(e=>({...e,lastUpdated:Date.now()}));await C.db.whiteboardAgentSessions.bulkPut(t)}catch(e){throw console.error("Failed to save whiteboard agent sessions metadata:",e),e}}async deleteSessionMetadata(e){try{await C.db.whiteboardAgentSessions.delete(e)}catch(e){throw console.error("Failed to delete whiteboard agent session metadata:",e),e}}
2async getMessages(e){try{let t=await C.db.whiteboardAgentSessionMessages.get(e);if(!t)return[];return(t.messages||[]).sort((e,t)=>e.timestamp-t.timestamp)}catch(e){return console.error("Failed to get whiteboard agent messages:",e),[]}}async saveMessages(e,t){try{let r=t.map(e=>({...e,timestamp:e.timestamp||Date.now()})).sort((e,t)=>e.timestamp-t.timestamp);await C.db.whiteboardAgentSessionMessages.put({sessionId:e,messages:r})}catch(e){throw console.error("Failed to save whiteboard agent messages:",e),e}}async saveMessage(e,t){try{let r=await C.db.whiteboardAgentSessionMessages.get(e),n=r?.messages||[],i=n.findIndex(e=>e.historyId===t.historyId),o={...t,timestamp:t.timestamp||Date.now()},a=i>=0?n.map((e,t)=>t===i?o:e):[...n,o];a.sort((e,t)=>e.timestamp-t.timestamp),await C.db.whiteboardAgentSessionMessages.put({sessionId:e,messages:a})}catch(e){throw console.error("Failed to save whiteboard agent message:",e),e}}async deleteMessage(e,t){try{let r=await C.db.whiteboardAgentSessionMessages.get(e);if(!r)return;let n=r.messages.filter(e=>e.historyId!==t);await C.db.whiteboardAgentSessionMessages.put({sessionId:e,messages:n})}catch(e){throw console.error("Failed to delete whiteboard agent message:",e),e}}async deleteMessages(e,t){try{if(0===t.length)return;let r=await C.db.whiteboardAgentSessionMessages.get(e);if(!r)return;let n=new Set(t),i=r.messages.filter(e=>!n.has(e.historyId));await C.db.whiteboardAgentSessionMessages.put({sessionId:e,messages:i})}catch(e){throw console.error("Failed to delete whiteboard agent messages:",e),e}}async clearSessionMessages(e){try{await C.db.whiteboardAgentSessionMessages.put({sessionId:e,messages:[]})}catch(e){throw console.error("Failed to clear whiteboard agent session messages:",e),e}}async deleteSessionMessages(e){try{await C.db.whiteboardAgentSessionMessages.delete(e)}catch(e){throw console.error("Failed to delete whiteboard agent session messages:",e),e}}async deleteSession(e){try{await Promise.all([this.deleteSessionMetadata(e),this.deleteSessionMessages(e)])}catch(e){throw console.error("Failed to delete whiteboard agent session:",e),e}}},S="Creation",A=new Set([o.ToolElementType.ToolHtmlEmbed,o.ToolElementType.ToolBarChart,o.ToolElementType.ToolLineChart,o.ToolElementType.ToolPieChart,o.ToolElementType.ToolChartGauge,o.ToolElementType.ToolChartRadar,o.ToolElementType.ToolChartSparkline,o.ToolElementType.ToolChartScatter,o.ToolElementType.ToolMermaid]);function _(e){let t=e.replace(/\s+/g," ").trim();return t?t.length>60?`${t.slice(0,59)}â¦`:t:S}function v(e){let t=[];for(let r of e){if(r.isPatch)continue;let e=r.element?.elementType,n=r.element?.uid;e&&n&&A.has(e)&&t.push({uid:n,kind:e,title:function(e){let t=function(e){let t=e.element.contentJsonString;if(t)try{let e=JSON.parse(t);if(e&&"object"==typeof e)return e}catch{}return e.element.content??void 0}(e);if(e.element.elementType===o.ToolElementType.ToolHtmlEmbed){let e=function(e){if(!e)return;let t=e.match(/<title[^>]*>([\s\S]*?)<\/title>/i),r=t?.[1]?.replace(/<[^>]+>/g,"");if(r&&r.trim())return _(r);let n=e.match(/<h[1-3][^>]*>([\s\S]*?)<\/h[1-3]>/i),i=n?.[1]?.replace(/<[^>]+>/g,"");if(i&&i.trim())return _(i)}(t?.htmlString??null);if(e)return e}if(t)for(let e of["prompt","content","title","caption","text","label","name"]){let r=t[e];if("string"==typeof r&&r.trim())return _(r)}return S}(r)})}return t}e.i(762593);var k=e.i(297362),F=e.i(33952),D=e.i(254878);let M=function(){let[e,{loading:t}]=(0,s.useMutation)(o.AgenticChatWithWhiteboardDocument),[n,{loading:i}]=(0,s.useMutation)(o.CancelAgenticChatWithWhiteboardDocument);return{sendMessage:(0,r.useCallback)(async t=>{try{let{data:r}=await e({variables:{requestId:t.requestId??(0,a.v4)(),projectId:t.projectId,prompt:t.prompt,sessionId:t.sessionId,systemPersonaId:t.systemPersonaId??void 0,whiteboardId:t.whiteboardId??void 0,projectUid:t.projectUid??void 0,whiteboardElementUids:t.whiteboardElementUids??[],contextMentions:t.contextMentions??void 0,fileAttachments:t.fileAttachments??void 0,aiMode:t.aiMode??void 0,skillId:t.skillId??void 0}});return{success:!!r?.agenticChatWithWhiteboard?.success}}catch(e){throw console.error("Failed to send agentic chat message:",e),e}},[e]),cancelMessage:(0,r.useCallback)(async e=>{try{let{data:t}=await n({variables:{projectId:e}});return{success:!!t?.cancelAgenticChatWithWhiteboard?.status}}catch(e){throw console.error("Failed to cancel agentic chat message:",e),e}},[n]),isSending:t,isCancelling:i}},I=e=>
2({historyId:e.historyId,userMessage:e.userMessage,modelMessage:e.modelMessage,contextMentions:e.contextMentions??null,intentClarification:e.intentClarification??null,toolCreationDetails:e.toolCreationDetails?e.toolCreationDetails.map(e=>({uid:e.uid,kind:e.kind,title:e.title})):null,timestamp:Date.now()}),U=function({sessionId:e}){let[t,n]=(0,r.useState)([]),[i,a]=(0,r.useState)(!0),[l,u]=(0,r.useState)(!1),[c,h]=(0,r.useState)(!1),p=(0,r.useCallback)(async t=>{if(null==e||!t?.whiteboardAgentSessionHistory)return;let r=t.whiteboardAgentSessionHistory.filter(e=>!!e).map(I);try{await T.saveMessages(e,r)}catch(e){console.error("Failed to save whiteboard agent messages to IndexedDB:",e)}n(r.sort((e,t)=>e.timestamp-t.timestamp)),h(!0)},[e]),{loading:m,refetch:g}=(0,d.useQuery)(o.WhiteboardAgentSessionHistoryDocument,{variables:{sessionId:e??0},fetchPolicy:"network-only",skip:null==e||!l,onCompleted:e=>{p(e)},onError:e=>{console.error("Failed to fetch whiteboard agent session history:",e),h(!0)}}),[f]=(0,s.useMutation)(o.DeleteAllWhiteboardAgentChatHistoryDocument),[b]=(0,s.useMutation)(o.DeleteMultipleWhiteboardAgentChatHistoryDocument);(0,r.useEffect)(()=>{if(null==e){n([]),u(!1),h(!1),a(!1);return}let t=!1;return(async()=>{try{a(!0);let r=await T.getMessages(e);t||(n(r),u(!0))}catch(e){console.error("Failed to load whiteboard agent messages from cache:",e),t||u(!0)}finally{t||a(!1)}})(),()=>{t=!0}},[e]),(0,r.useEffect)(()=>{l&&a(m)},[m,l]);let x=(0,r.useCallback)(async()=>{if(null!=e){a(!0);try{let{data:e}=await g();await p(e)}catch(e){console.error("Failed to refresh whiteboard agent session history:",e)}finally{a(!1)}}},[e,g,p]);return{messages:t,isLoading:i,hasLoadedFromCache:l,hasQueriedServer:c,refreshHistory:x,deleteAllHistory:(0,r.useCallback)(async()=>{if(null!=e)try{await f({variables:{sessionId:e}}),await T.clearSessionMessages(e),n([])}catch(e){throw console.error("Failed to delete all whiteboard agent chat history:",e),e}},[e,f]),deleteMessages:(0,r.useCallback)(async t=>{if(null!=e&&0!==t.length)try{await b({variables:{historyIds:t}}),await T.deleteMessages(e,t);let r=new Set(t);n(e=>e.filter(e=>!r.has(e.historyId)))}catch(e){throw console.error("Failed to delete whiteboard agent messages:",e),e}},[e,b])}},L=function(){let[e,{loading:t}]=(0,s.useMutation)(o.SubmitWhiteboardAgentIntentClarificationAnswersDocument);return{submitWhiteboardAgentIntentClarificationAnswers:(0,r.useCallback)(async t=>{let{data:r}=await e({variables:t});return{success:!!r?.submitWhiteboardAgentIntentClarificationAnswers?.success}},[e]),isSubmitting:t}},B=function(){let[e,{loading:t}]=(0,s.useMutation)(o.SubmitWhiteboardAgentSkillSelectionDocument);return{submitWhiteboardAgentSkillSelection:(0,r.useCallback)(async t=>{let{data:r}=await e({variables:t});return{success:!!r?.submitWhiteboardAgentSkillSelection?.success}},[e]),isSubmitting:t}};var W=e.i(214184);let P=(0,r.createContext)({}),j=({children:e,projectId:n,whiteboardId:i,sessionId:y,refreshChatSessionsFromServer:w})=>{let C=o.AiAssistanceResourceType.Project,A=(0,l.useParams)(),_="string"==typeof A?.slug?A.slug:"",I=(0,h.useToast)(),{currentUser:j}=(0,D.useCurrentUser)(),{confirmUserFileUploadAfterS3:R}=(0,k.useUserFileUploadGalleryMutations)(),[N,O]=(0,r.useState)(!1),[H,z]=(0,r.useState)(null),[G,V]=(0,r.useState)(null),$=(0,r.useRef)(null),[J,K]=(0,r.useState)([]),[Y,q]=(0,r.useState)(""),[X,Q]=(0,r.useState)(""),[Z,ee]=(0,r.useState)(""),et=(0,r.useRef)(""),[er,en]=(0,r.useState)([]),ei=(0,r.useRef)([]),eo=(0,r.useRef)(null),ea=(0,r.useRef)(""),el=(0,r.useRef)(""),es=(0,r.useRef)(new Map),ed=(0,r.useRef)(new Set),eu=(0,r.useRef)(!1),[ec,eh]=(0,r.useState)("basic"),ep=(0,r.useRef)("basic"),[em,eg]=(0,r.useState)([]),ef=(0,r.useRef)([]),[eb,ex]=(0,r.useState)([]),ey=(0,r.useRef)([]),ew=(0,r.useCallback)(e=>{ey.current=e,ex(e)},[]),eE=(0,r.useCallback)(e=>{ew([...ey.current,{id:(0,a.v4)(),text:e}])},[ew]),eC=(0,r.useCallback)(e=>{ew(ey.current.filter(t=>t.id!==e))},[ew]),[eT,eS]=(0,r.useState)(!1),[eA,e_]=(0,r.useState)(!1),ev=(0,r.useRef)(0),ek=(0,r.useRef)(null),eF=(0,r.useRef)(void 0);eF.current=w;let{sendMessage:eD,cancelMessage:eM}=M(),{submitWhiteboardAgentIntentClarificationAnswers:eI}=L(),{submitWhiteboardAgentSkillSelection:eU}=B(),[eL,eB]=(0,r.useState)(null),[eW,eP]=(0,r.useState)(null),[ej,eR]=(0,r.useState)(null),eN=(0,r.useRef)(!1),eO=(0,r.useRef)([]),{messages:eH,hasLoadedFromCac
2he:ez,refreshHistory:eG,deleteAllHistory:eV,deleteMessages:e$}=U({sessionId:y}),[eJ]=(0,s.useMutation)(o.GenerateMediaUploadUrlDocument),[eK,eY]=(0,r.useState)(!1),[eq,eX]=(0,r.useState)(!1),[eQ,eZ]=(0,r.useState)(!1);(0,r.useEffect)(()=>{eB(null),eP(null),eR(null),ee(""),et.current="",en([]),ei.current=[],q(""),Q(""),ea.current="",el.current="",eO.current=[],es.current=new Map,ed.current=new Set,eY(!1)},[y]),(0,r.useEffect)(()=>{if(eW)return;let e=f.useWhiteboardSelectionStore.getState();e.setAgentSkillPlacementActive(!1),e.setAgentSkillPlacementPosition(null)},[eW]),(0,r.useEffect)(()=>()=>{let e=f.useWhiteboardSelectionStore.getState();e.setAgentSkillPlacementActive(!1),e.setAgentSkillPlacementPosition(null),e.setAgentSkillPlacementPendingPosition(null)},[]);let{data:e0,error:e1,loading:e5,refetch:e2}=(0,d.useQuery)(o.EnabledAiChatSystemPersonasDocument,{variables:{}});(0,r.useEffect)(()=>{let e=e=>({historyId:e.historyId,userMessage:e.userMessage,modelMessage:e.modelMessage,contextMentions:e.contextMentions??void 0,intentClarification:e.intentClarification??void 0,toolCreationDetails:e.toolCreationDetails??void 0});for(let e of eH)if(e.toolCreationDetails)for(let t of e.toolCreationDetails)ed.current.add(t.uid);eH.length>50?(ev.current=eH.length-50,eS(!0),K(eH.slice(eH.length-50).map(e))):(ev.current=0,eS(!1),K(eH.map(e)))},[eH]),(0,r.useEffect)(()=>{e0&&e0.enabledAiChatSystemPersonas&&z(e0.enabledAiChatSystemPersonas)},[e0]),(0,r.useEffect)(()=>{G&&($.current=G)},[G]),(0,r.useEffect)(()=>{ep.current=ec},[ec]);let e4=(0,r.useCallback)(async()=>{if(!eA&&eT){e_(!0);try{let e=(await T.getMessages(y)).map(e=>({historyId:e.historyId,userMessage:e.userMessage,modelMessage:e.modelMessage,contextMentions:e.contextMentions??void 0,intentClarification:e.intentClarification??void 0,toolCreationDetails:e.toolCreationDetails??void 0})),t=Math.max(0,ev.current-50);ev.current=t,eS(t>0),K(e.slice(t))}catch(e){console.error("Failed to load older messages:",e)}finally{e_(!1)}}},[eA,eT,y]);(0,r.useEffect)(()=>{eK&&!eu.current&&(es.current=new Map),eu.current=eK},[eK]),(0,r.useEffect)(()=>x.useWhiteboardStagingStore.subscribe(e=>{if(eu.current)for(let t of v(e.stagedElements)){let e=es.current.get(t.uid);e&&(e.title!==S||t.title===S)||es.current.set(t.uid,t)}}),[]);let e8=(0,r.useCallback)(()=>{for(let e of v(x.useWhiteboardStagingStore.getState().stagedElements)){let t=es.current.get(e.uid);t&&(t.title!==S||e.title===S)||es.current.set(e.uid,e)}let e=Array.from(es.current.values()).filter(e=>!ed.current.has(e.uid));return e.forEach(e=>ed.current.add(e.uid)),e},[]),e3=(0,r.useCallback)((e,t)=>{if("ai_chat_token"===e&&t.resourceId===n&&t.resourceType===C){if(t.token&&(t.isThinking?(el.current+=t.token,Q((0,g.formatAiMessage)(el.current))):(ea.current+=t.token,ek.current||(ek.current=setTimeout(()=>{ek.current=null,q((0,g.formatAiMessage)(ea.current))},80)))),t.isDone){if(!t.historyId)return void console.error("Invalid state: isDone=true but missing historyId. Message is NOT complete, continuing to wait.");let e=et.current,r=ei.current,n=r.length>0?JSON.stringify(r):void 0;ee(""),et.current="",en([]),ei.current=[];let i=el.current,o=ea.current,a=o;i&&(a=`<thinking>${(0,g.formatAiMessage)(i)}</thinking> 3${o}`);let l=eO.current,s=l.length>0?{rounds:l}:void 0;eO.current=[];let d=e8(),u={userMessage:e||t.userMessage||"",modelMessage:a,historyId:t.historyId,contextMentions:n,inlineSummary:t.inlineSummary||void 0,intentClarification:s,toolCreationDetails:d.length>0?d:void 0};K(e=>{if(e.some(e=>e.historyId===u.historyId))return e;let t=[...e,u],r={historyId:u.historyId,userMessage:u.userMessage,modelMessage:u.modelMessage,timestamp:Date.now(),contextMentions:n,intentClarification:s??null,toolCreationDetails:d.length>0?d:void 0};return T.saveMessage(y,r).catch(e=>{console.error("Failed to save message to IndexedDB:",e)}),t}),q(""),ek.current&&(clearTimeout(ek.current),ek.current=null),ea.current="",el.current="",Q(""),eY(!1),eX(!1),x.useWhiteboardStagingStore.getState().handlers?.onReady("")}t.errorMessage&&(console.error("Error from AI service:",t.errorMessage),q(""),Q(""),ea.current="",el.current="",eO.current=[],eY
3(!1))}},[n,C,y,I,e8]),e6=(0,r.useCallback)(e=>{if(!e||Number(e.resourceId)!==n||e.resourceType!==C)return;let t=eF.current;t&&t().catch(()=>{})},[n,C]),e9=(0,r.useCallback)(e=>{e&&Number(e.resourceId)===n&&(eB({clarificationId:e.clarificationId,questions:Array.isArray(e.questions)?e.questions:[]}),eY(!1),q(""),Q(""),ea.current="",el.current="")},[n]),e7=(0,r.useCallback)(e=>{if(!e||Number(e.resourceId)!==n)return;let t=!!e.confident&&eN.current;eN.current=!1,eP({selectionId:e.selectionId,skills:Array.isArray(e.skills)?e.skills:[],allSkills:Array.isArray(e.allSkills)?e.allSkills.map(e=>({...e,reason:e.reason??""})):[],placementOnly:t});let r=f.useWhiteboardSelectionStore.getState();r.setAgentSkillPlacementPendingPosition(null),r.setAgentSkillPlacementPosition(null),r.setAgentSkillPlacementActive(!0),eY(!1),q(""),Q(""),ea.current="",el.current=""},[n]),te=(0,r.useCallback)(e=>{e&&Number(e.resourceId)===n&&x.useWhiteboardStagingStore.getState().handlers?.onReady(e.batchId)},[n]),tt=(0,r.useCallback)(e=>{e&&e.elementUid&&Number(e.resourceId)===n&&E.publish(e.elementUid,{phase:e.phase,delta:e.delta})},[n]),tr=(0,r.useCallback)(async e=>{if(eL){eB(null),eY(!0);try{await eI({projectId:n,sessionId:y,clarificationId:eL.clarificationId,answers:e,whiteboardId:i??void 0});let t=e.map(e=>({question:e.question,answer:e.answer??void 0,selectedElementUids:e.selectedElementUids??[]}));eO.current=[...eO.current,{questions:eL.questions,answers:t}]}catch(e){console.error("Failed to submit clarification answers:",e),eB(eL),eY(!1),(0,W.handleGraphQLError)({error:e,toast:I,onResourceExhaustedErrorHandler:()=>eZ(!0)})}}},[eL,n,y,i,eI,I]),tn=(0,r.useCallback)(async e=>{if(!eW)return;let t=f.useWhiteboardSelectionStore.getState(),r=e.length>0?t.agentSkillPlacementPosition:null;t.setAgentSkillPlacementActive(!1),t.setAgentSkillPlacementPosition(null),t.setAgentSkillPlacementPendingPosition(r),eP(null),eY(!0);try{await eU({projectId:n,sessionId:y,selectionId:eW.selectionId,selectedSkillIds:e,projectUid:_||void 0,whiteboardId:i??void 0})}catch(e){console.error("Failed to submit skill selection:",e),eP(eW),eY(!1),t.setAgentSkillPlacementPendingPosition(null),t.setAgentSkillPlacementPosition(r),t.setAgentSkillPlacementActive(!0),(0,W.handleGraphQLError)({error:e,toast:I,onResourceExhaustedErrorHandler:()=>eZ(!0)})}},[eW,n,y,i,_,eU,I]),ti=(0,r.useCallback)(async e=>{let t=(e||"").trim();if(!t||eK)return;eN.current=!0;let r=f.useWhiteboardSelectionStore.getState();r.setAgentSkillPlacementActive(!1),r.setAgentSkillPlacementPosition(null),r.setAgentSkillPlacementPendingPosition(null),eP(null),eB(null),eO.current=[],ee(t),et.current=t,en([]),ei.current=[],eY(!0);try{if(eo.current=new AbortController,!(await eD({projectId:n,prompt:t,sessionId:y,systemPersonaId:$.current?.id??null,whiteboardId:i??null,projectUid:_||void 0,whiteboardElementUids:[],aiMode:ep.current})).success)throw Error("Unexpected error occurred. Failed to send message")}catch(e){if(console.error(e),eY(!1),eX(!1),e instanceof Error&&"signal is aborted without reason"===e.message)return;e?.graphQLErrors?.some(e=>e?.extensions?.code==="RESOURCE_EXHAUSTED")?eZ(!0):(0,W.handleGraphQLError)({error:e,toast:I})}finally{eo.current=null}},[eK,n,y,i,_,eD,I]),to=(0,r.useCallback)(async({skillId:e,content:t,displayLabel:r})=>{if(eK)return;let o=(t||"").trim();if(!o)return;let a=f.useWhiteboardSelectionStore.getState();a.setAgentSkillPlacementActive(!1),a.setAgentSkillPlacementPosition(null),eP(null),eB(null),eO.current=[],eN.current=!1;let l=a.whiteboardCommandBridge?.focusAgentPlacementSpot?.();a.setAgentSkillPlacementPendingPosition(l??null),ee(r),et.current=r,en([]),ei.current=[],eY(!0);try{if(eo.current=new AbortController,!(await eD({projectId:n,prompt:o,sessionId:y,systemPersonaId:$.current?.id??null,whiteboardId:i??null,projectUid:_||void 0,whiteboardElementUids:[],aiMode:ep.current,skillId:e})).success)throw Error("Unexpected error occurred. Failed to run skill")}catch(e){if(console.error(e),eY(!1),eX(!1),f.useWhiteboardSelectionStore.getState().setAgentSkillPlacementPendingPosition(null),e instanceof Error&&"signal is aborted without reason"===e.message)return;e?.graphQLErrors?.some(e=>e?.extensions?.code==="RESOURCE_EXHAUSTED")?eZ(!0):(0,W.handleGraphQLError)({error:e,toast:I})}finally{eo.current=null}},[eK,n,y,i,_,eD,I]),{socket:ta,connect:tl,disconnect:ts,emit:td}=(0,m.useAiChatSocketIO)({enabled:!0,resourceId:n,resourceType:C,onAiChatToken:e3.bind(null,"ai_chat_token"),onAiChatSessionTitleUpdated:e6,onWhiteboardAgentIntentClarification:e9,onWhiteboardAgentSkillSuggestion:e7,onWhiteboardStagedElementsReady:te,onHtmlAppStream:tt,onConnect:()=>{},onDisconnect:()=>{},onError:e=>{console.error("Socket.IO error:",e),I({render:({onClose:e})=>(0,t.jsx)(p.PillToast,{title:"Unexpected error occurred. Failed to connect.",onClose:e})})}}),tu=(0,r.useCallback)(()=>{ta&&!ta.connected&&tl()},[ta,tl]);(0,r.useEffect)(()=>
3{if(!ta)return;let e=()=>{setTimeout(()=>{ta&&!ta.connected&&tl()},1e3+2e3*Math.random())};return ta.on("disconnect",e),()=>{ta.off("disconnect",e)}},[ta,tl]);let tc=c.MAX_AI_CHAT_FILE_ATTACHMENTS,th=(0,r.useCallback)(async e=>{if(ef.current.length>=tc)return void I({title:`Maximum ${tc} files allowed.`,status:"error"});let r=(0,F.maxSingleAttachmentFileBytes)(j?.subscriptionLevel);if(e.size>r)return void I({render:({onClose:e})=>(0,t.jsx)(p.PillToast,{title:"File too large",description:`Max ${(0,F.formatAttachmentFileSizeLimit)(r)}`,onClose:e})});let n=(0,a.v4)(),i={id:n,file:e,fileName:e.name,fileKey:"",fileType:e.type||"application/octet-stream",status:"uploading"},l=[...ef.current,i];ef.current=l,eg(l);try{let t=await eJ({variables:{resourceType:o.MediaUploadResourceType.AiChat,mediaType:o.MediaUploadMediaType.File,fileName:e.name,fileSizeBytes:e.size}});if(!t.data?.generateMediaUploadUrl?.url||!t.data.generateMediaUploadUrl.fileName)throw Error("Failed to generate upload URL");let r=JSON.parse(t.data.generateMediaUploadUrl.url),i=new FormData;Object.keys(r.fields).forEach(e=>{i.append(e,r.fields[e])}),i.append("file",e);let a=await u.default.post(r.url,i,{headers:{"Content-Type":e.type}});if(204!==a.status)throw Error("Upload failed");let l=ef.current.map(e=>e.id===n?{...e,fileKey:t.data.generateMediaUploadUrl.fileName,status:"uploaded"}:e);ef.current=l,eg(l),R({file:e,filePath:t.data.generateMediaUploadUrl.fileName,uploadType:o.UserFileUploadGalleryType.AiChatFile})}catch(r){console.error("File upload error:",r);let e=ef.current.map(e=>e.id===n?{...e,status:"error"}:e);ef.current=e,eg(e),I({render:({onClose:e})=>(0,t.jsx)(p.PillToast,{title:"Failed to upload file. Please try again.",onClose:e})})}},[eJ,I,R,j]),tp=(0,r.useCallback)(e=>{let t=ef.current.filter(t=>t.id!==e);ef.current=t,eg(t)},[]),tm=(0,r.useCallback)(async(e,t,r)=>{if(eB(null),eO.current=[],eN.current=!1,!e.current)return;let a=e.current.getText(),l=[...ey.current.map(e=>e.text),a].filter(e=>e&&e.trim().length>0).join("\n\n");if(!l)return;let s=a.replace(/\{\{[^}]*\}\}/g,"").replace(/\s{2,}/g," ").trim();ee(s),et.current=s;let d=t??[],u=d.some(e=>"whiteboard"===e.type),c=d.filter(e=>"whiteboard"!==e.type),h=ef.current.filter(e=>"uploaded"===e.status&&e.fileKey).map(e=>({fileName:e.fileName,fileKey:e.fileKey,fileType:e.fileType})),p=[...c,...h.map(e=>({id:e.fileKey,label:e.fileName,type:"file"})),...C===o.AiAssistanceResourceType.Project?(0,b.elementSpecsToMentions)((0,b.readSelectedElementSpecs)(u)):[],...ey.current.map(e=>({id:e.id,label:e.text.slice(0,200),type:"pasted",text:e.text}))];if(en(p),ei.current=p,t&&t.length>0){let e=t.map(e=>`{{${e.type}_${e.id}}}`).filter(e=>!l.includes(e));if(e.length>0){let t=e.join(" ");l=`${t} ${l}`}}eY(!0),e.current.commands.setContent("");try{eo.current=new AbortController;let e=t?.some(e=>"whiteboard"===e.type),a=t?.find(e=>"whiteboard"===e.type),s=a?.id?Number(a.id):null,d=s&&!isNaN(s)?s:i,u=r||e&&d,c=[];if(!e&&C===o.AiAssistanceResourceType.Project)try{let e=f.useWhiteboardSelectionStore.getState();if(c=e.combinedActiveNodes().map(e=>e.id).filter(e=>e),0===c.length&&e.activeElement){let t=e.activeElement.whiteboardElementUid;t&&(c=[t])}}catch(e){console.error("Whiteboard selection store not available in this context")}if(ej){let e=f.useWhiteboardSelectionStore.getState().whiteboardCommandBridge?.focusAgentPlacementSpot?.();f.useWhiteboardSelectionStore.getState().setAgentSkillPlacementPendingPosition(e??null)}let m=await eD({projectId:n,prompt:l,sessionId:y,systemPersonaId:$.current?.id??null,whiteboardId:(u||ej)&&d?d:null,projectUid:_||void 0,whiteboardElementUids:c,contextMentions:p.length>0?JSON.stringify(p):null,fileAttachments:h.length>0?h:void 0,aiMode:ep.current,skillId:ej??void 0});if(!m.success)throw Error("Unexpected error occurred. Failed to send message");return ef.current=[],eg([]),ew([]),eR(null),m}catch(e){if(console.error(e),eY(!1),eX(!1),e instanceof Error&&"signal is aborted without reason"===e.message)return;e?.graphQLErrors?.some(e=>e?.extensions?.code==="RESOURCE_EXHAUSTED")?eZ(!0):(0,W.handleGraphQLError)({error:e,toast:I})}finally{eo.current=null}},[G,n,y,i,_,ej,eD,I]),tg=(0,r.useCallback)(async()=>{try{if(eX(!0),!(await eM(n)).success)throw Error("Unexpected error occurred. Failed to cancel send message")}catch(e){console.error(e),eX(!1)}},[n,eM]),tf=(0,r.useCallback)(()=>{tg(),eY(!1)},[tg,eY,eX]),tb=(0,r.useCallback)(async()=>{try{await eV(),K([])}catch(e){console.error("Failed to delete all whiteboard agent chat history:",e),I({render:({onClose:e})=>(0,t.jsx)(p.PillToast,{title:"Failed to delete all whiteboard agent chat history. Please try again.",onClose:e})})}},[eV]),tx=(0,r.useCallback)(async e=>{let r=J[e].historyId;K(t=>{let r=[...t];return r.splice(e,1),r});try{await e$([r])}catch(e){console.error("Failed to delete whiteboard agent message:",e),I({render:({onClose:e})=>(0,t.jsx)(p.PillToast,{title:"Failed to delete whiteboard agent message. Please try again.",onClose:e})})}},[J,e$]),ty=(0,r.useCallback)(async e=>{let r=J.slice(e+1).map(e=>e.historyId);if(K(t=>t.slice(0,e+1)),0!==r.length)try{await e$(r)}catch(e){console.error("Failed to delete whiteboard agent messages:",e),I({render:({onClose:e})=>(0,t.jsx)(p.PillToast,{title:"Failed to delete whiteboard agent messages. Please try again.",onClose:e})})}},[J,e$]),tw=(0,r.useCallback)(e=>{let t=e.replace(/\{\{[^}]*\}\}/g,"").replace(/\s{2,}/g," ").trim();ee(t),et.current=t,en([]),ei.current=[],ea.current="",el.current="",eY(!0)},[]),[tE,tC]=(0,r.useState)(null),tT=(0,r.useRef)(!1),tS=(0,r.useCallback)(({userPrompt:e,contextMentions:t})=>{tT.current=!0,tC(null),eO.current=[],ea.current="",el.current="",q(""),Q("");let r=e.replace(/\{\{[^}]*\}\}/g,"").replace(/\s{2,}/g," ").trim();ee(r),et.current=r;let n=(t??[]).filter(e=>e&&e.type);en(n),ei.current=n,eY(!0),eX(!1)},[]),tA=(0,r.useCallback)(e=>{tT.current&&e&&(el.current+=e,Q((0,g.formatAiMessage)(el.current)))},[]),t_=(0,r.useCallback)(e=>{tT.current&&e&&(ea.current+=e,ek.current||(ek.current=setTimeout(()=>{ek.current=null,q((0,g.formatAiMessage)(ea.current))},80)))},[]),tv=(0,r.useCallback)(e=>{tC(e)},[]),tk=(0,r.useCallback)(e=>{if(!tT.current)return;tT.current=!1,ek.current&&(clearTimeout(ek.current),ek.current=null);let t=et.current,r=ei.current,n=e?.contextMentionsJson??(r.length>0?JSON.stringify(r):void 0),i=el.current,o=ea.current,a=e?.modelMessage??o??"",l=i?`<thinking>${(0,g.formatAiMessage)(i)}</thinking> 4${a}`:a;if(e?.errorMessage&&console.error("Whiteboard agent turn error:",e.errorMessage),e?.historyId&&!e.errorMessage){let r=e8
4(),i={userMessage:t,modelMessage:l,historyId:e.historyId,contextMentions:n,toolCreationDetails:r.length>0?r:void 0};K(e=>{if(e.some(e=>e.historyId===i.historyId))return e;let t=[...e,i],o={historyId:i.historyId,userMessage:i.userMessage,modelMessage:i.modelMessage,timestamp:Date.now(),contextMentions:n,toolCreationDetails:r.length>0?r:void 0};return T.saveMessage(y,o).catch(e=>{console.error("Failed to save agent message to IndexedDB:",e)}),t})}q(""),Q(""),ea.current="",el.current="",ee(""),et.current="",en([]),ei.current=[],tC(null),eY(!1),eX(!1)},[y,e8]),tF=(0,r.useCallback)(async()=>{if(y&&!(y<=0))try{await eG()}catch(e){console.error("refreshChatHistoryFromServer failed:",e)}},[eG,y]);return(0,t.jsx)(P.Provider,{value:{isAiSystemPersonasLoading:e5,aiSystemPersonas:H,selectedSystemPersona:G,setSelectedSystemPersona:V,onCancelSendButtonClicked:tg,whiteboardAgentSessionHistoryError:void 0,isWhiteboardAgentSessionHistoryLoading:!1,refetchWhiteboardAgentSessionHistory:eG,isLoading:eK,setIsLoading:eY,shouldUseTypingEffect:N,setShouldUseTypingEffect:O,onSendButtonClicked:tm,chatHistory:J,currentStreamedMessage:Y,currentStreamedThinking:X,activeUserPromptMessage:Z,activeUserContextMentions:er,onDeleteHistoryCalled:tb,isDeleteAllWhiteboardAgentChatHistoryMutationLoading:!1,isChatCancelled:eq,onStopButtonClicked:tf,deleteMessage:tx,returnToMessage:ty,pendingFileAttachments:em,pastedTexts:eb,addPastedText:eE,removePastedText:eC,uploadFileAttachment:th,removeFileAttachment:tp,isHistoryReady:ez,isAILimitReached:eQ,aiMode:ec,setAiMode:eh,hasMoreMessages:eT,isLoadingOlderMessages:eA,loadMoreMessages:e4,ensureSocketConnected:tu,sessionId:y,injectUserMessage:tw,agentPendingQuestion:tE,beginAgentTurn:tS,appendAgentThinking:tA,appendAgentMessage:t_,setAgentQuestion:tv,completeAgentTurn:tk,agentIntentClarification:eL,submitAgentIntentClarification:tr,agentSkillSuggestion:eW,submitAgentSkillSelection:tn,sendAgentSkillOverrideMessage:ti,selectedQuickSkillId:ej,setSelectedQuickSkillId:eR,runSkillFromContent:to,refreshChatHistoryFromServer:tF},children:e})};function R(){return(0,r.useContext)(P)}e.i(709279);var N=e.i(329186);let O=e=>({id:String(e.sessionId),title:e.title,timestamp:new Date(e.lastUpdated),isActive:!1}),H=e=>({sessionId:e.sessionId,userId:e.userId,projectId:e.projectId,whiteboardId:e.whiteboardId??null,title:e.title,lastUpdated:Date.now()});var z=e.i(418764),G=e.i(438974),V=e.i(608300),$=e.i(520465),J=e.i(941332),K=e.i(686381),Y=e.i(859898),q=e.i(940190),X=e.i(196778),Q=e.i(11155),Z=e.i(374721),ee=e.i(866231),et=e.i(308970),er=e.i(615676),en=e.i(883918),ei=e.i(10851),eo=e.i(745344),ea=e.i(971913),el=e.i(318893),es=e.i(702805),ed=e.i(248920),eu=e.i(833046),ec=e.i(449953),eh=e.i(570165),ep=e.i(73710),em=e.i(949318),eg=e.i(182036),ef=e.i(365060),eb=e.i(901619),ex=e.i(415938),ey=e.i(594798),ew=e.i(848275),eE=e.i(525383),eC=e.i(781666),eT=e.i(228467),eS=e.i(512737),eA=e.i(856652),e_=e.i(288639),ev=e.i(602318);let ek=(e="9px")=>{let{colorMode:t}=(0,G.useColorMode)();return"dark"!==t?{position:"relative"}:{position:"relative","&::after":{content:'""',position:"absolute",inset:0,borderRadius:e,padding:"1px",background:"linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.01) 45%, rgba(255,255,255,0.18) 100%)",WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",pointerEvents:"none"}}};e.s(["useNeutralButtonGradientSx",0,ek],73781);let eF=[{skillId:"kanban",label:"Organize notes",description:"Organize in walls with draggable cards",icon:ey.default},{skillId:"html-app",label:"Design anything",description:"Generate a custom interactive design",icon:Y.FaPalette,betaOnly:!0},{skillId:"storyboard",label:"Storyboard a scene",description:"Lay out scenes frame by frame",icon:eA.default},{skillId:"tasks-planner",label:"Break into tasks",description:"Turn content into a checkable task list",icon:eE.default},{skillId:"table",label:"Build a table",description:"Structure content into rows and columns",icon:e_.default},{skillId:"tracker",label:"Track progress",description:"Track items with statuses and owners",icon:eT.default},{skillId:"document",label:"Make a document",description:"Format your content into a clean document",icon:Y.FaFileLines},{skillId:"mindmap",label:"Make a mind map",description:"Branch a topic into a left/right mind map",icon:Y.FaSitemap},{skillId:"planner",label:"Plan your week",description:"Plan work across days and weeks",icon:eS.default},{skillId:"moodboard",label:"Collect inspiration",description:"Collect visuals and references in one place",icon:ew.default},{skillId:"image-generation",label:"Generate an image",description:"Create an AI image from a description",icon:Y.FaWandMagicSparkles,betaOnly:!0},{skillId:"dashboard",label:"Visualize data",description:"Turn your data into a dashboard of charts",icon:ev.default}
4,{skillId:"constellation",label:"Map your ideas",description:"Map ideas as a connected web",icon:eC.default}],eD=({selectedSkillId:e,onSelect:r,onClear:o,disabled:a})=>{let{isBetaTester:l}=(0,D.useCurrentUser)(),{colorMode:s}=(0,G.useColorMode)(),d=(0,G.useColorModeValue)("gray.600","rgba(255,255,255,0.7)"),u=(0,G.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.1)"),c=(0,G.useColorModeValue)("gray.800","#ffffff"),h=(0,G.useColorModeValue)("rgba(255,255,255,0.7)","rgba(40,40,40,0.6)"),p=(0,G.useColorModeValue)("rgba(0,0,0,0.08)","transparent"),m=(0,G.useColorModeValue)("gray.800","rgba(255,255,255,0.92)"),g=(0,G.useColorModeValue)("rgba(0,0,0,0.06)","rgba(255,255,255,0.12)"),f=ek("999px"),b=(0,G.useColorModeValue)("#ffffff","#1e1e1e"),x=(0,G.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.08)"),y=(0,G.useColorModeValue)("#1d1d1f","rgba(255,255,255,0.92)"),w=(0,G.useColorModeValue)("rgba(29,29,31,0.6)","rgba(255,255,255,0.5)"),E=(0,G.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.08)"),C=(0,G.useColorModeValue)("0px 10px 40px rgba(0,0,0,0.08), 0px 2px 12px rgba(0,0,0,0.04), inset 0px 0px 0px 0.5px rgba(255,255,255,0.5)","0px 10px 40px rgba(0,0,0,0.6), 0px 2px 12px rgba(0,0,0,0.4), inset 0px 0px 0px 0.5px rgba(255,255,255,0.1)");if(e){let r=eF.find(t=>t.skillId===e);return r?(0,t.jsxs)(i.Flex,{align:"center",h:"28px",ml:"8px",px:"10px",bg:h,borderRadius:"full",border:"dark"===s?"none":"1px solid",borderColor:p,sx:f,gap:1.5,children:[(0,t.jsx)(ep.Icon,{as:r.icon,w:3.5,h:3.5,color:m}),(0,t.jsx)(V.Text,{fontSize:"12px",fontWeight:"500",color:m,children:r.label}),(0,t.jsx)(n.Box,{as:"button",type:"button",display:"flex",alignItems:"center",justifyContent:"center",w:"16px",h:"16px",ml:.5,borderRadius:"full",color:m,onClick:o,_hover:{bg:g},transition:"all 0.2s ease",cursor:"pointer",children:(0,t.jsx)(ep.Icon,{as:Q.FiX,w:2.5,h:2.5})})]}):null}let T=l?eF:eF.filter(e=>!e.betaOnly),S=T.slice(0,6),A=T.slice(6);return(0,t.jsxs)(i.Flex,{align:"center",gap:"2px",children:[S.map(e=>(0,t.jsx)(ex.Tooltip,{label:(0,t.jsxs)(n.Box,{textAlign:"center",children:[(0,t.jsx)(V.Text,{fontSize:"xs",fontWeight:"600",color:"inherit",children:e.label}),(0,t.jsx)(V.Text,{fontSize:"11px",fontWeight:"400",opacity:.75,color:"inherit",children:e.description})]}),placement:"top",hasArrow:!0,children:(0,t.jsx)(J.Button,{size:"sm",bg:"transparent",color:d,border:"1px solid",borderColor:"transparent",borderRadius:"full",p:0,minW:"28px",w:"28px",h:"28px",onClick:()=>r(e.skillId),isDisabled:a,_hover:{bg:u,color:c},_active:{transform:"scale(0.95)"},transition:"all 0.15s ease",children:(0,t.jsx)(ep.Icon,{as:e.icon,w:3.5,h:3.5})})},e.skillId)),A.length>0&&(0,t.jsxs)(em.Menu,{placement:"top-end",closeOnSelect:!0,children:[(0,t.jsx)(ex.Tooltip,{label:"More",placement:"top",hasArrow:!0,children:(0,t.jsx)(eg.MenuButton,{as:J.Button,size:"sm",bg:"transparent",color:d,border:"1px solid",borderColor:"transparent",borderRadius:"full",p:0,minW:"28px",w:"28px",h:"28px",isDisabled:a,_hover:{bg:u,color:c},_active:{transform:"scale(0.95)"},transition:"all 0.15s ease",children:(0,t.jsx)(i.Flex,{align:"center",justify:"center",children:(0,t.jsx)(ep.Icon,{as:Q.FiMoreHorizontal,w:4,h:4})})})}),(0,t.jsx)(eb.MenuList,{bg:b,border:"0.5px solid",borderColor:x,borderRadius:"14px",minW:"200px",py:"6px",px:"6px",boxShadow:C,children:A.map(e=>(0,t.jsx)(ef.MenuItem,{onClick:()=>r(e.skillId),bg:"transparent",color:y,fontSize:"13px",fontWeight:"400",px:"10px",py:"8px",borderRadius:"10px",_hover:{bg:E},_focus:{bg:E},children:(0,t.jsxs)(i.Flex,{align:"flex-start",gap:"10px",children:[(0,t.jsx)(i.Flex,{alignItems:"center",justifyContent:"center",w:"18px",h:"18px",flexShrink:0,color:w,children:(0,t.jsx)(ep.Icon,{as:e.icon,boxSize:"14px"})}),(0,t.jsxs)(n.Box,{children:[(0,t.jsx)(V.Text,{color:y,lineHeight:"18px",children:e.label}),(0,t.jsx)(V.Text,{fontSize:"11px",lineHeight:"15px",color:w,children:e.description})]})]})},e.skillId))})]})]})};var eM=e.i(705962),eI=e.i(651060),eU=e.i(308194),eL=e.i(916277);let eB=e=>`Could you ${e}? If you need more information from me, ask me 1-2 key questions right away. Tell me if more context or files would help, and use any tools you have, like web search.`,eW=[{key:"design",label:"Design",icon:Y.FaPalette,betaOnly:!0,items:[{label:"Design a landing page for my product",prompt:eB("design a landing page for my product"),skillId:"html-app"},{label:"Build a design system for my brand",prompt:eB("build a design system for my brand"),skillId:"html-app"},{label:"Design an email campaign for my launch",prompt:eB("design an email campaign for my launch"),skillId:"html-app"},{label:"Create a pitch proposal for my client",prompt:eB("create a pitch proposal for my client"),skillId:"html-app"},{label:"Design a pricing page for my product",prompt:eB("design a pricing page for my product"),skillId:"html-app"}]},{key:"organize",label:"Organize",icon:eI.default,items:[{label:"Organize my notes into a kanban board",prompt:eB("organize my notes into a kanban board"),skillId:"kanban"},{label:"Create a tracker for my deliverables",prompt:eB("create a tracker for my deliverables"),skillId:"tracker"},{label:"Plan my content calendar",prompt:eB("plan my content calendar"),skillId:"planner"},{label:"Turn my notes into a table",prompt:eB("turn my notes into a table"),skillId:"table"},{label:"Break my project into tasks",prompt:eB("break my project into a task list"),skillId:"tasks-planner"}]},{key:"visualize",label:"Visualize",icon:ev.default,items:[{label:"Turn my data into a dashboard",prompt:eB("turn my data into a dashboard"),skillId:"dashboard"},{label:"Map my ideas into a mind map",prompt:eB("map my ideas into a mind map"),skillId:"constellation"},{label:"Chart my numbers",prompt:eB("chart my numbers"),skillId:"dashboard"},{label:"Visualize my funnel",prompt:eB("visualize my funnel"),skillId:"dashboard"},{label:"Diagram my process",prompt:eB("diagram my process")}]},{key:"research",label:"Research",icon:eU.default,items:[{label:"Research my competitors",prompt:eB("research my competitors and compare them")},{label:"Research my target audience",prompt:eB("research my target audience and build personas")},{label:"Find the latest trends in my industry",prompt:eB("find the latest trends in my industry")},{label:"Research a topic for my board",prompt:eB("research a topic and add the findings to my board")},{label:"Find visual references for my project",prompt:eB("find visual references for my project"),skillId:"moodboard"}]},{key:"storyboard",label:"Storyboard",icon:eA.default,items:[{label:"Storyboard my script",prompt:eB("storyboard my script"),skillId:"storyboard"},{label:"Storyboard an ad for my product",prompt:eB("storyboard an ad for my product"),skillId:"storyboard"},{label:"Build a moodboard for my project",prompt:eB("build a moodboard for my project"),skillId:"moodboard"},{label:"Create a brand moodboard for my client",prompt:eB("create a brand moodboard for my client"),skillId:"moodboard"},{label:"Make a shot list for my shoot",prompt:eB("make a shot list for my shoot"),skillId:"table"}]},{key:"write",label:"Write",icon:eL.default,items:[{label:"Draft an outline for my YouTube video",prompt:eB("draft an outline for my YouTube video")},{label:"Write a proposal for my client",prompt:eB("write a proposal for my client")},{label:"Draft a PRD for my feature",prompt:eB("draft a PRD for my feature")},{label:"Write a treatment for my film",prompt:eB("write a treatment for my film")},{label:"Summarize my board for a stakeholder",prompt:eB("summarize my board for a stakeholder")}]}],eP="10px",ej=({onFillInput:e,onPreviewInput:o,onEndPreview:a,onSelectSkill:l,onOpenChange:s,disabled:d})=>{let{colorMode:u}=(0,G.useColorMode)(),c=(0,eM.useIsCoarsePointer)(),{isBetaTester:h}=(0,D.useCurrentUser)(),[p,m]=(0,r.useState)(null),g=h?eW:eW.filter(e=>!e.betaOnly);(0,r.useEffect)(()=>(s?.(null!==p),()=>s?.(!1)),[p,s]);let f=ek(eP),b=(0,G.useColorModeValue)("#ffffff","rgba(255,255,255,0.04)"),x=(0,G.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),y=(0,G.useColorModeValue)("#404040","rgba(255,255,255,0.85)"),w=(0,G.useColorModeValue)("gray.600","rgba(255,255,255,0.7)"),E=(0,G.useColorModeValue)("rgba(0,0,0,0.03)","rgba(255,255,255,0.08)"),C=(0,G.useColorModeValue)("#909090","rgba(255,255,255,0.5)"),T=(0,G.useColorModeValue)("#2a2a2a","rgba(255,255,255,0.9)"),S=(0,G.useColorModeValue)("rgba(0,0,0,0.03)","rgba(255,255,255,0.06)"),A=(0,G.useColorModeValue)("rgba(0,0,0,0.06)","rgba(255,255,255,0.06)"),_=(0,r.useCallback)(()=>{a(),m(null)},[a]);(0,r.useEffect)(()=>
4{if(!p)return;let e=e=>{"Escape"===e.key&&_()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[p,_]);let v=(0,r.useCallback)(t=>{t.skillId&&l(t.skillId),e(t.prompt),m(null)},[l,e]),k=g.find(e=>e.key===p)??null;return k?(0,t.jsxs)(n.Box,{w:"100%",maxW:"440px",borderRadius:"16px",overflow:"hidden",children:[(0,t.jsxs)(i.Flex,{align:"center",justify:"space-between",px:"20px",py:"12px",children:[(0,t.jsxs)(i.Flex,{align:"center",gap:"8px",children:[(0,t.jsx)(ep.Icon,{as:k.icon,w:3.5,h:3.5,color:C}),(0,t.jsx)(V.Text,{fontSize:"14px",fontWeight:500,color:C,children:k.label})]}),(0,t.jsx)(n.Box,{as:"button",type:"button","aria-label":"Close",display:"flex",alignItems:"center",justifyContent:"center",w:"24px",h:"24px",borderRadius:"full",color:C,_hover:{bg:S},transition:"all 0.15s ease",onClick:_,children:(0,t.jsx)(ep.Icon,{as:Q.FiX,w:3.5,h:3.5})})]}),(0,t.jsx)(n.Box,{mx:"12px",h:"1px",bg:A}),(0,t.jsx)(n.Box,{px:"8px",pb:"8px",children:k.items.map((e,r)=>(0,t.jsxs)(n.Box,{children:[r>0&&(0,t.jsx)(n.Box,{mx:"4px",my:"2px",h:"1px",bg:A}),(0,t.jsxs)(i.Flex,{as:"button",type:"button",w:"100%",align:"center",textAlign:"left",px:"12px",py:{base:"13px",md:"12px"},borderRadius:"12px",cursor:"pointer",transition:"background 0.15s ease",_hover:{bg:S},sx:{"&:hover .starter-row-chevron":{opacity:1}},onClick:()=>v(e),...c?void 0:{onMouseEnter:()=>o(e.prompt),onMouseLeave:()=>a()},children:[(0,t.jsx)(V.Text,{fontSize:"15px",fontWeight:400,color:T,flex:1,children:e.label}),(0,t.jsx)(ep.Icon,{as:Q.FiChevronRight,className:"starter-row-chevron",w:4,h:4,ml:"8px",color:C,opacity:0,transition:"opacity 0.15s ease"})]})]},e.label))})]}):(0,t.jsx)(i.Flex,{wrap:"wrap",justify:"center",gap:"8px",w:"100%",maxW:"440px",children:g.map(e=>(0,t.jsxs)(i.Flex,{as:"button",type:"button","aria-label":`${e.label} examples`,"aria-expanded":!1,align:"center",gap:"6px",h:{base:"40px",md:"32px"},px:"12px",bg:b,color:y,border:"dark"===u?"none":"1px solid",borderColor:x,borderRadius:eP,sx:f,cursor:d?"not-allowed":"pointer",opacity:d?.5:1,pointerEvents:d?"none":"auto",transition:"all 0.15s ease",_hover:{bg:E},_active:{transform:"scale(0.97)"},onClick:()=>m(e.key),children:[(0,t.jsx)(ep.Icon,{as:e.icon,w:3.5,h:3.5,color:w}),(0,t.jsx)(V.Text,{as:"span",fontSize:"13px",fontWeight:500,color:y,children:e.label})]},e.key))})};var eR=e.i(131526),eN=e.i(175342),eO=e.i(38462),eH=e.i(406964),ez=e.i(151993),eG=e.i(918806),eV=e.i(682281);let e$=({question:e,draft:o,focusedIndex:a,onChange:l,onPickOption:s,onHoverOption:d,onConfirm:u})=>{let c=(0,G.useColorModeValue)("gray.800","white"),h=(0,G.useColorModeValue)("gray.500","rgba(255,255,255,0.5)"),p=(0,G.useColorModeValue)("rgba(0,0,0,0.03)","rgba(255,255,255,0.05)"),m=(0,G.useColorModeValue)("rgba(0,0,0,0.06)","rgba(255,255,255,0.07)"),g=(0,G.useColorModeValue)("rgba(0,0,0,0.14)","rgba(255,255,255,0.16)"),b=(0,G.useColorModeValue)("rgba(0,0,0,0.1)","rgba(255,255,255,0.11)"),x=(0,G.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.07)"),y=(0,G.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),w=(0,G.useColorModeValue)("rgba(0,0,0,0.10)","rgba(255,255,255,0.14)"),E=(0,G.useColorModeValue)("rgba(0,0,0,0.07)","rgba(255,255,255,0.08)"),C=(0,G.useColorModeValue)("rgba(0,0,0,0.22)","rgba(255,255,255,0.28)"),T=(0,G.useColorModeValue)("rgba(0,0,0,0.38)","rgba(255,255,255,0.45)"),S="#4B81EE",A=(0,r.useRef)(l);(0,r.useEffect)(()=>{A.current=l},[l]);let[_,v]=(0,r.useState)(0);if((0,r.useEffect)(()=>{if("whiteboard_elements"!==e.answerType)return;f.useWhiteboardSelectionStore.getState().setAgentClarificationElementSelectActive(!0);let t=()=>{let e=(()=>{try{let e=f.useWhiteboardSelectionStore.getState(),t=e.combinedActiveNodes().map(e=>e.id).filter(e=>e);if(0===t.length&&e.activeElement){let r=e.activeElement.whiteboardElementUid;r&&(t=[r])}return t}catch{return[]}})();v(e.length),A.current({answer:"",selectedOptions:[],selectedElementUids:e})},r=f.useWhiteboardSelectionStore.subscribe(t);return t(),()=>{r(),f.useWhiteboardSelectionStore.getState().setAgentClarificationElementSelectActive(!1)}},[e.answerType]),"text"===e.answerType)return(0,t.jsx)(eV.Textarea,{value:o.answer,onChange:e=>l({answer:e.target.value,selectedOptions:[],selectedElementUids:[]}),onKeyDown:e=>
4{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),u())},placeholder:"Type your answer...",resize:"none",bg:p,border:"1px solid",borderColor:m,borderRadius:"10px",color:c,fontSize:"sm",px:3,py:2,minH:"72px",maxH:"160px",autoFocus:!0,_placeholder:{color:h},_hover:{borderColor:b},_focus:{outline:"none",boxShadow:"none",borderColor:g}});if("whiteboard_elements"===e.answerType)return(0,t.jsx)(n.Box,{bg:p,border:"1px solid",borderColor:_>0?g:m,borderRadius:"10px",px:3,py:2.5,transition:"border-color 0.15s ease",children:(0,t.jsx)(V.Text,{fontSize:"14px",color:_>0?c:h,children:_>0?`${_} element${1===_?"":"s"} selected on the board`:"Click the element(s) on the board you want me to change"})});let k=e.allowMultiple;return(0,t.jsx)(n.Box,{onMouseLeave:()=>d(-1),children:e.options.map((e,l)=>{let u=o.selectedOptions.includes(e),p=l===a;return(0,t.jsxs)(r.Fragment,{children:[l>0&&(0,t.jsx)(n.Box,{h:"1px",bg:E,mx:"10px"}),(0,t.jsxs)(i.Flex,{role:k?"checkbox":"button","aria-checked":k?u:void 0,tabIndex:-1,onClick:()=>s(e),onMouseEnter:()=>d(l),align:"center",gap:"12px",px:"10px",py:"10px",borderRadius:"10px",cursor:"pointer",bg:p?x:"transparent",transition:"background 0.12s ease",children:[k?(0,t.jsx)(i.Flex,{align:"center",justify:"center",w:"20px",h:"20px",flexShrink:0,borderRadius:"6px",border:"1.5px solid",borderColor:u?S:p?T:C,bg:u?S:"transparent",color:"white",transition:"background 0.12s ease, border-color 0.12s ease",children:u&&(0,t.jsx)(ep.Icon,{as:Q.FiCheck,w:"15px",h:"15px"})}):(0,t.jsx)(i.Flex,{align:"center",justify:"center",w:"26px",h:"26px",flexShrink:0,borderRadius:"8px",bg:p?w:y,color:p?c:h,fontSize:"13px",fontWeight:500,children:l+1}),(0,t.jsx)(V.Text,{flex:"1",fontSize:"14px",color:c,lineHeight:"1.4",children:e}),!k&&u?(0,t.jsx)(ep.Icon,{as:Q.FiCheck,w:4,h:4,color:h,flexShrink:0}):!k&&p?(0,t.jsx)(ep.Icon,{as:Q.FiArrowRight,w:4,h:4,color:h,flexShrink:0}):null]})]},`${e}-${l}`)})})},eJ=()=>({answer:"",selectedOptions:[],selectedElementUids:[]}),eK=e=>"chip_choice"===e||"multiple_choice"===e,eY=({questions:e,isSubmitting:o,onSubmit:a})=>{let{colorMode:l}=(0,G.useColorMode)(),s=(0,G.useColorModeValue)("gray.800","white"),d=(0,G.useColorModeValue)("gray.500","rgba(255,255,255,0.5)"),u=(0,G.useColorModeValue)("rgba(0,0,0,0.07)","rgba(255,255,255,0.08)"),c=(0,G.useColorModeValue)("rgba(0,0,0,0.22)","rgba(255,255,255,0.28)"),h="#4B81EE",p=(0,G.useColorModeValue)("white","rgba(255,255,255,0.04)"),m=(0,G.useColorModeValue)("rgba(0,0,0,0.12)","rgba(255,255,255,0.14)"),g=(0,G.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),f=(0,G.useColorModeValue)("#1A1A1A","white"),b=(0,G.useColorModeValue)("white","#1A1A1A"),x=(0,G.useColorModeValue)("#000000","rgba(255,255,255,0.88)"),y=ek(),[w,E]=(0,r.useState)(()=>e.map(()=>eJ())),[C,T]=(0,r.useState)(0),[S,A]=(0,r.useState)(-1),_=(0,r.useRef)(null),v=e.length,k=e[C],F=w[C]??eJ(),D=!!k&&eK(k.answerType),M=k?.options??[],I=(0,r.useRef)(w),U=(0,r.useCallback)((e,t)=>{let r=[...I.current];r[e]=t,I.current=r,E(r)},[]);(0,r.useEffect)(()=>{A(-1)},[C]),(0,r.useEffect)(()=>{e[C]?.answerType!=="text"&&_.current?.focus({preventScroll:!0})},[C,e]);let L=(0,r.useCallback)(()=>{o||a(e.map((e,t)=>{let r=I.current[t]??eJ(),n=((e,t)=>{if("whiteboard_elements"!==e){if(eK(e)){let e=[...t.selectedOptions];return t.answer.trim()&&e.push(t.answer.trim()),e.length>0?e.join(", "):void 0}return t.answer.trim()?t.answer.trim():void 0}})(e.answerType,r),i=(r.selectedElementUids?.length??0)>0;return{question:e.question,answer:n||i?n:"(skipped by user)",selectedElementUids:r.selectedElementUids}}))},[o,e,a]),B=(0,r.useCallback)(()=>{C<v-1?T(C+1):L()},[C,v,L]),W=(0,r.useCallback)(()=>{T(e=>Math.max(0,e-1))},[]),P=(0,r.useCallback)(e=>{if(!k)return;let t=I.current[C]??eJ();if(k.allowMultiple){let r=t.selectedOptions.includes(e)?t.selectedOptions.filter(t=>t!==e):[...t.selectedOptions,e];U(C,{answer:t.answer,selectedOptions:r,selectedElementUids:[]});return}U(C,{answer:"",selectedOptions:[e],selectedElementUids:[]}),B()},[k,C,U,B]),j=(0,r.useCallback)(e=>{let t=I.current[C]??eJ();U(C,{answer:e,selectedOptions:k?.allowMultiple?t.selectedOptions:[],selectedElementUids:[]})},[k,C,U]),R=(0,r.useCallback)(()=>{U(C,eJ()),B()},[C,U,B]);if(0===v||!k)return null;let N=D&&!k.allowMultiple,O=C===v-1,H=D&&k.allowCustom&&F.answer.trim().length>0;return(0,t.jsxs)(n.Box,{ref:_,tabIndex:-1,onKeyDown:e=>{let t=e.target.tagName;if("INPUT"!==t&&"TEXTAREA"!==t&&k){if(D&&"ArrowDown"===e.key)e.preventDefault(),A(e=>Math.min(M.length-1,e+1));else if(D&&"ArrowUp"===e.key)e.preventDefault(),A(e=>Math.max(0,e-1));else if("ArrowRight"===e.key)e.preventDefault(),B();else if("ArrowLeft"===e.key)e.preventDefault(),W();else if("Enter"===e.key)e.preventDefault(),D&&!k.allowMultiple&&void 0!==M[S]?P(M[S]):B();else if(D&&/^[1-9]$/.test(e.key)){let t=Number(e.key)-1;t<M.length&&(e.preventDefault(),A(t),P(M[t]))}}},px:"18px",pt:"16px",pb:"14px",outline:"none",_focus:{outline:"none",boxShadow:"none"},_focusVisible:{outline:"none",boxShadow:"none"},children:[(0,t.jsxs)(i.Flex,{align:"flex-start",justify:"space-between",gap:3,mb:"18px",children:[(0,t.jsx)(V.Text,{fontSize:"15px",fontWeight:500,color:s,lineHeight:"1.35",pt:"2px",children:k.question}),v>1&&(0,t.jsxs)(i.Flex,{align:"center",gap:"2px",flexShrink:0,pt:"1px",children:[(0,t.jsx)(eH.IconButton,{"aria-label":"Previous question",icon:(0,t.jsx)(ep.Icon,{as:Q.FiChevronLeft,w:4,h:4}),onClick:W,isDisabled:0===C||o,variant:"ghost",size:"sm",color:d,_hover:{bg:g}}),(0,t.jsxs)(V.Text,{fontSize:"13px",color:d,whiteSpace:"nowrap",px:"2px",children:[C+1," of ",v]}),(0,t.jsx)(eH.IconButton,{"aria-label":"Next question",icon:(0,t.jsx)(ep.Icon,{as:Q.FiChevronRight,w:4,h:4}),onClick:B,isDisabled:o,variant:"ghost",size:"sm",color:d,_hover:{bg:g}})]})]}),(0,t.jsx)(e$,{question:k,draft:F,focusedIndex:S,onChange:e=>U(C,e),onPickOption:P,onHoverOption:A,onConfirm:B},C),D&&k.allowCustom&&(0,t.jsx)(n.Box,{h:"1px",bg:u,mx:"10px",mt:"8px"}),D&&k.allowCustom&&(0,t.jsxs)(i.Flex,{align:"center",gap:"12px",w:"100%",minW:0,px:"10px",py:"6px",mt:"8px",borderRadius:"10px",bg:H?g:"transparent",transition:"background 0.12s ease",children:[k.allowMultiple?(0,t.jsx)(i.Flex,{align:"center",justify:"center",w:"20px",h:"20px",flexShrink:0,borderRadius:"6px",border:"1.5px solid",borderColor:H?h:c,bg:H?h:"transparent",color:"white",transition:"background 0.12s ease, border-color 0.12s ease",children:H&&(0,t.jsx)(ep.Icon,{as:Q.FiCheck,w:"15px",h:"15px"})}):(0,t.jsx)(i.Flex,{align:"center",justify:"center",w:"26px",h:"26px",flexShrink:0,children:(0,t.jsx)(eG.default,{})}),(0,t.jsx)(ez.Input,{value:F.answer,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),B())},placeholder:"Something else",variant:"unstyled",fontSize:"14px",color:s,flex:"1",minW:0,_placeholder:{color:d}})]}),(0,t.jsxs)(i.Flex,{align:"center",justify:"space-between",gap:"8px",mt:D?"8px":"12px",children:[D&&k.allowMultiple?(0,t.jsxs)(V.Text,{fontSize:"13px",color:d,pl
4:"2px",children:[F.selectedOptions.length+ +!!H," selected"]}):(0,t.jsx)(n.Box,{}),(0,t.jsxs)(i.Flex,{align:"center",gap:"8px",flexShrink:0,children:[(0,t.jsx)(J.Button,{onClick:R,isDisabled:o,h:"34px",px:"16px",fontSize:"13px",fontWeight:500,color:s,bg:p,border:"dark"===l?"none":"1px solid",borderColor:m,borderRadius:"9px",sx:y,_hover:{bg:g},_active:{transform:"scale(0.98)"},children:"Skip"}),(!N||H)&&(0,t.jsx)(eH.IconButton,{"aria-label":O?"Submit":"Continue",icon:(0,t.jsx)(ep.Icon,{as:Q.FiArrowRight,w:4,h:4}),onClick:B,isLoading:o,h:"34px",w:"34px",minW:"34px",borderRadius:"9px",bg:f,color:b,_hover:{bg:x},_active:{transform:"scale(0.96)"}})]})]})]})},eq=()=>{let{agentIntentClarification:e,submitAgentIntentClarification:r,isLoading:n}=R();return e?(0,t.jsx)(eY,{questions:e.questions,isSubmitting:n,onSubmit:r},e.clarificationId):null};var eX=e.i(164848),eQ=e.i(692312),eZ=e.i(819234),e0=e.i(977074),e1=e.i(91560);let e5=(0,eX.chakra)(eZ.default),e2=[{keywords:["storyboard"],icon:eA.default},{keywords:["moodboard"],icon:ew.default},{keywords:["document"],icon:Y.FaFileLines},{keywords:["mindmap","mind map","sitemap"],icon:e0.default},{keywords:["kanban"],icon:ey.default},{keywords:["wall"],icon:ey.default},{keywords:["table"],icon:e_.default},{keywords:["tracker"],icon:eT.default},{keywords:["constellation"],icon:eC.default},{keywords:["task"],icon:eE.default},{keywords:["plan","timeline","schedule","calendar"],icon:eS.default}],e4=({skills:e,allSkills:o,isSubmitting:a,placementOnly:l,onSubmit:s,onOverrideMessage:d})=>{let u=o??[],[c,h]=(0,r.useState)(l?"placement":"choice"),[p,m]=(0,r.useState)(()=>u[0]?.skillId??null),[g,f]=(0,r.useState)(""),{colorMode:b}=(0,G.useColorMode)(),x="#4F7FF7",y=(0,G.useColorModeValue)("#1A1A1A","white"),w=(0,G.useColorModeValue)("white","#1A1A1A"),E=(0,G.useColorModeValue)("#000000","rgba(255,255,255,0.88)"),C=(0,G.useColorModeValue)("gray.700","rgba(255,255,255,0.85)"),T=(0,G.useColorModeValue)("gray.500","rgba(255,255,255,0.55)"),S=(0,G.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),A=(0,G.useColorModeValue)("rgba(0,0,0,0.02)","rgba(255,255,255,0.03)"),_=(0,G.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.07)"),v=(0,G.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.05)"),k=(0,G.useColorModeValue)("white","rgba(255,255,255,0.04)"),F=(0,G.useColorModeValue)("rgba(0,0,0,0.12)","rgba(255,255,255,0.14)"),D=(0,G.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),M=ek(),I=(0,G.useColorModeValue)("rgba(0,0,0,0.03)","rgba(255,255,255,0.05)"),U=(0,G.useColorModeValue)("rgba(0,0,0,0.06)","rgba(255,255,255,0.07)"),L=(0,G.useColorModeValue)("rgba(0,0,0,0.14)","rgba(255,255,255,0.16)"),B=(0,G.useColorModeValue)("rgba(0,0,0,0.1)","rgba(255,255,255,0.11)"),W=(0,G.useColorModeValue)("rgba(0,0,0,0.18)","rgba(255,255,255,0.2)"),P=(0,G.useColorModeValue)("rgba(0,0,0,0.2)","rgba(255,255,255,0.2)"),j=()=>{a||s(["__ai_decide__"])},R=()=>{a||s([])},N=()=>{let e=g.trim();e&&!a&&d(e)},O={role:"button",tabIndex:0,align:"flex-start",gap:"10px",cursor:"pointer",border:"1px solid",borderColor:S,bg:A,borderRadius:"10px",px:3,py:2.5,transition:"background 0.12s ease",_hover:{bg:v}};if("placement"===c){let r=e[0];return(0,t.jsxs)(n.Box,{px:4,pt:3,pb:3,children:[(0,t.jsxs)(V.Text,{fontSize:"sm",fontWeight:"500",color:C,mb:2,children:["Where should I add this ",r?.title??"workflow","?"]}),(0,t.jsx)(V.Text,{fontSize:"12px",color:T,mb:3,children:"Click anywhere on the board to choose where it lands (defaults to center), then hit Run."}),(0,t.jsx)(eQ.VStack,{align:"stretch",spacing:2,children:(0,t.jsxs)(i.Flex,{...O,onClick:()=>!a&&h("custom"),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a||h("custom"))},children:[(0,t.jsx)(i.Flex,{align:"center",justify:"center",flexShrink:0,mt:"1px",color:C,children:(0,t.jsx)(eG.default,{color:"currentColor"})}),(0,t.jsxs)(n.Box,{children:[(0,t.jsx)(V.Text,{fontSize:"13px",fontWeight:600,color:C,lineHeight:"1.3",children:"Write something else"}),(0,t.jsx)(V.Text,{fontSize:"12px",color:T,mt:"2px",children:"Changed your mind? Tell the AI what to do instead."})]})]})}),(0,t.jsxs)(i.Flex,{justify:"flex-end",align:"center",gap:2,mt:3,children:[(0,t.jsx)(J.Button,{onClick:R,isDisabled:a,h:"34px",px:"16px",fontSize:"13px",fontWeight:500,color:C,bg:k,border:"dark"===b?"none":"1px solid",borderColor:F,borderRadius:"9px",sx:M,_hover:{bg:D},_active:{transform:"scale(0.98)"},children:"Just answer in chat"}),(0,t.jsx)(J.Button,{size:"sm",onClick:()=>
4r&&!a&&s([r.skillId]),isDisabled:!r||a,isLoading:a,bg:x,color:"white",borderRadius:"9px",px:4,h:"34px",rightIcon:(0,t.jsx)(ep.Icon,{as:Q.FiArrowUp,w:4,h:4}),_hover:{bg:"#3B6FE8"},_active:{transform:"scale(0.98)"},_disabled:{opacity:.45,cursor:"not-allowed"},transition:"all 0.2s ease",children:"Run"})]})]})}if("choice"===c){let e=g.trim().length>0;return(0,t.jsxs)(n.Box,{px:4,pt:3,pb:3,children:[(0,t.jsx)(V.Text,{fontSize:"sm",fontWeight:"500",color:C,mb:3,children:"How should this be added to your board?"}),(0,t.jsxs)(eQ.VStack,{align:"stretch",spacing:2,children:[(0,t.jsxs)(i.Flex,{...O,onClick:j,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),j())},children:[(0,t.jsx)(i.Flex,{align:"center",justify:"center",flexShrink:0,mt:"1px",color:C,children:(0,t.jsx)(ep.Icon,{as:e1.default,w:"16px",h:"16px"})}),(0,t.jsxs)(n.Box,{children:[(0,t.jsx)(V.Text,{fontSize:"13px",fontWeight:600,color:C,lineHeight:"1.3",children:"Let AI decide"}),(0,t.jsx)(V.Text,{fontSize:"12px",color:T,mt:"2px",children:"AI picks the best fit and stages it for review."})]})]}),(0,t.jsxs)(i.Flex,{...O,onClick:()=>!a&&h("workflows"),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a||h("workflows"))},children:[(0,t.jsx)(i.Flex,{align:"center",justify:"center",flexShrink:0,mt:"1px",color:C,children:(0,t.jsx)(ep.Icon,{as:ey.default,w:"18px",h:"18px"})}),(0,t.jsxs)(n.Box,{children:[(0,t.jsx)(V.Text,{fontSize:"13px",fontWeight:600,color:C,lineHeight:"1.3",children:"Choose workflow"}),(0,t.jsx)(V.Text,{fontSize:"12px",color:T,mt:"2px",children:"Select a workflow to run."})]})]})]}),(0,t.jsxs)(i.Flex,{align:"flex-start",gap:"10px",mt:2,px:3,py:2.5,border:"1px solid",borderColor:W,bg:I,borderRadius:"10px",transition:"border-color 0.12s ease, box-shadow 0.12s ease",_hover:{borderColor:L},_focusWithin:{borderColor:x,boxShadow:`0 0 0 1px ${x}`},children:[(0,t.jsx)(i.Flex,{align:"center",justify:"center",flexShrink:0,mt:"2px",color:C,children:(0,t.jsx)(eG.default,{color:"currentColor"})}),(0,t.jsx)(e5,{value:g,onChange:e=>f(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),N())},placeholder:"Tell AI how to add it insteadâ¦",minRows:2,maxRows:6,disabled:a,flex:"1",minW:0,p:0,border:"none",bg:"transparent",resize:"none",outline:"none",fontSize:"13px",lineHeight:"1.5",color:C,_placeholder:{color:T},_focus:{outline:"none",boxShadow:"none"},sx:{"&::-webkit-scrollbar":{width:"4px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:P,borderRadius:"2px"}}})]}),(0,t.jsx)(V.Text,{fontSize:"12px",color:T,mt:3,children:"Click anywhere on the board to choose where it lands (defaults to center)."}),(0,t.jsxs)(i.Flex,{justify:"flex-end",align:"center",gap:2,mt:3,children:[(0,t.jsx)(J.Button,{onClick:R,isDisabled:a,isLoading:a&&!e,h:"34px",px:"16px",fontSize:"13px",fontWeight:500,color:C,bg:k,border:"dark"===b?"none":"1px solid",borderColor:F,borderRadius:"9px",sx:M,_hover:{bg:D},_active:{transform:"scale(0.98)"},children:"Just answer in chat"}),e&&(0,t.jsx)(eH.IconButton,{"aria-label":"Send",icon:(0,t.jsx)(ep.Icon,{as:Q.FiArrowUp,w:4,h:4}),onClick:N,isLoading:a,h:"34px",w:"34px",minW:"34px",borderRadius:"9px",bg:y,color:w,_hover:{bg:E},_active:{transform:"scale(0.96)"}})]})]})}return"custom"===c?(0,t.jsxs)(n.Box,{px:4,pt:3,pb:3,children:[(0,t.jsxs)(i.Flex,{align:"center",gap:1,mb:3,children:[(0,t.jsx)(eH.IconButton,{"aria-label":"Back",icon:(0,t.jsx)(ep.Icon,{as:Q.FiChevronLeft,w:4,h:4}),onClick:()=>h(l?"placement":"choice"),isDisabled:a,variant:"ghost",size:"xs",minW:0,w:"20px",h:"20px",color:T,_hover:{color:C,bg:"transparent"}}),(0,t.jsx)(V.Text,{fontSize:"sm",fontWeight:"500",color:C,children:"Tell the AI what to do instead"})]}),(0,t.jsx)(eV.Textarea,{value:g,onChange:e=>f(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),N())},placeholder:"e.g. No â just research this instead",resize:"none",bg:I,border:"1px solid",borderColor:U,borderRadius:"10px",color:C,fontSize:"sm",px:3,py:2,minH:"72px",maxH:"160px",autoFocus:!0,isDisabled:a,_placeholder:{color:T},_hover:{borderColor:B},_focus:{outline:"none",boxShadow:"none",borderColor:L}}),(0,t.jsx)(i.Flex,{justify:"flex-end",align:"center",gap:2,mt:3,children:(0,t.jsx)(J.Button,{size:"sm",onClick:N,isDisabled:!g.trim()||a,isLoading:a,bg:x,c
4olor:"white",borderRadius:"9px",px:4,h:"34px",rightIcon:(0,t.jsx)(ep.Icon,{as:Q.FiArrowUp,w:4,h:4}),_hover:{bg:"#3B6FE8"},_active:{transform:"scale(0.98)"},_disabled:{opacity:.45,cursor:"not-allowed"},transition:"all 0.2s ease",children:"Send"})})]}):(0,t.jsxs)(n.Box,{px:4,pt:3,pb:3,children:[(0,t.jsxs)(i.Flex,{align:"center",gap:1,mb:3,children:[(0,t.jsx)(eH.IconButton,{"aria-label":"Back",icon:(0,t.jsx)(ep.Icon,{as:Q.FiChevronLeft,w:4,h:4}),onClick:()=>h("choice"),isDisabled:a,variant:"ghost",size:"xs",minW:0,w:"20px",h:"20px",color:T,_hover:{color:C,bg:"transparent"}}),(0,t.jsx)(V.Text,{fontSize:"sm",fontWeight:"500",color:C,children:"Select a workflow to run"})]}),(0,t.jsx)(eQ.VStack,{align:"stretch",spacing:2,maxH:"260px",overflowY:"auto",pr:1,sx:{"&::-webkit-scrollbar":{width:"4px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:P,borderRadius:"2px"}},children:u.map(e=>{let r,o,a=p===e.skillId;return(0,t.jsxs)(i.Flex,{role:"button",tabIndex:0,onClick:()=>m(e.skillId),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),m(e.skillId))},align:"flex-start",gap:"10px",cursor:"pointer",border:"1px solid",borderColor:S,bg:a?_:A,borderRadius:"10px",px:3,py:2.5,transition:"background 0.12s ease",_hover:{bg:a?_:v},children:[(0,t.jsx)(i.Flex,{align:"center",justify:"center",flexShrink:0,mt:"1px",color:C,children:(r=`${e.skillId} ${e.title}`.toLowerCase(),o=e2.find(({keywords:e})=>e.some(e=>r.includes(e))),(0,t.jsx)(ep.Icon,{as:o?.icon??Q.FiLayout,w:"16px",h:"16px"}))}),(0,t.jsxs)(n.Box,{flex:"1",minW:0,children:[(0,t.jsx)(V.Text,{fontSize:"13px",fontWeight:600,color:C,lineHeight:"1.3",noOfLines:1,children:e.title}),(0,t.jsx)(V.Text,{fontSize:"12px",color:T,mt:"2px",noOfLines:1,children:e.reason||e.summary})]})]},e.skillId)})}),(0,t.jsx)(V.Text,{fontSize:"12px",color:T,mt:3,children:"Click anywhere on the board to choose where it lands (defaults to center), then hit Run."}),(0,t.jsxs)(i.Flex,{justify:"flex-end",align:"center",gap:2,mt:3,children:[(0,t.jsx)(J.Button,{onClick:R,isDisabled:a,h:"34px",px:"16px",fontSize:"13px",fontWeight:500,color:C,bg:k,border:"dark"===b?"none":"1px solid",borderColor:F,borderRadius:"9px",sx:M,_hover:{bg:D},_active:{transform:"scale(0.98)"},children:"Just answer in chat"}),(0,t.jsx)(J.Button,{size:"sm",onClick:()=>{p&&!a&&s([p])},isDisabled:!p||a,isLoading:a,bg:x,color:"white",borderRadius:"9px",px:4,h:"34px",rightIcon:(0,t.jsx)(ep.Icon,{as:Q.FiArrowUp,w:4,h:4}),_hover:{bg:"#3B6FE8"},_active:{transform:"scale(0.98)"},_disabled:{opacity:.45,cursor:"not-allowed"},transition:"all 0.2s ease",children:"Run"})]})]})},e8=()=>{let{agentSkillSuggestion:e,submitAgentSkillSelection:r,sendAgentSkillOverrideMessage:n,isLoading:i}=R();return e?(0,t.jsx)(e4,{skills:e.skills,allSkills:e.allSkills,isSubmitting:i,placementOnly:e.placementOnly,onSubmit:r,onOverrideMessage:n},e.selectionId):null},e3=({insetX:e})=>{let r=(0,x.useWhiteboardStagingStore)(e=>e.batchId),o=(0,x.useWhiteboardStagingStore)(e=>e.isReady),a=(0,x.useWhiteboardStagingStore)(e=>e.stagedElements.length),l=(0,x.useWhiteboardStagingStore)(e=>e.handlers?.focusBatch),s=(0,x.useWhiteboardStagingStore)(e=>e.handlers?.acceptBatch),d=(0,x.useWhiteboardStagingStore)(e=>e.handlers?.rejectBatch),u=(0,x.useWhiteboardStagingStore)(e=>e.isResolving),c=(0,x.useWhiteboardStagingStore)(e=>e.resolvingElementUids.length>0),h=(0,x.useWhiteboardStagingStore)(e=>e.frameless),{colorMode:p}=(0,G.useColorMode)(),m=(0,G.useColorModeValue)("white","#222222"),g=(0,G.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),f=(0,G.useColorModeValue)("gray.800","white"),b=(0,G.useColorModeValue)("gray.500","rgba(255,255,255,0.55)"),y=(0,G.useColorModeValue)("rgba(255,255,255,0.7)","rgba(40,40,40,0.6)"),w=(0,G.useColorModeValue)("rgba(0,0,0,0.08)","transparent"),E=(0,G.useColorModeValue)("rgba(255,255,255,0.9)","rgba(55,55,55,0.7)"),C=ek();return r&&o?(0,t.jsx)(n.Box,{position:"absolute",bottom:"100%",left:e,right:e,pb:"8px",zIndex:20,children:(0,t.jsxs)(i.Flex,{align:"center",justify:"space-between",gap:3,bg:m,border:"1px solid",borderColor:g,borderRadius:"12px",px:"14px",py:"10px",children:[(0,t.jsxs)(V.Text,{fontSize:"13px",color:b,noOfLines:1,flex:"1",minW:0,children:[(0,t.jsx)(n.Box,{as:"span",color:f,fontWeight:600,children:"AI proposal"})," ","· ",a," ",1===a?"item":"items"]}),(0,t.jsxs)(i.Flex,{align:"center",gap:2,flexShrink:0,children:[(0,t.jsx)(J.Button,{onClick:()=>l?.(),isDisabled:!l,h:"30px",px:"12px",fontSize:"13px",fontWeight:500,color:f,bg:y,border:"dark"===p?"none":"1px solid",borderColor:w,borderRadius:"9px",sx:C,_hover:{bg:E},children:h?"Review":"Review on board"}),h&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(J.Button,{onClick:()=>d?.(),isDisabled:!d||u||c,h:"30px",px:"12px",fontSize:"13px",fontWeight:500,color:f,bg:y,border:"dark"===p?"none":"1px solid",borderColor:w,borderRadius:"9px",sx:C,_hover:{bg:E},children:"Reject"}),(0,t.jsx)(J.Button,{onClick:()=>s?.(),isDisabled:!s||u||c,isLoading:u,h:"30px",px:"14px",fontSize:"13px",fontWeight:600,color:"white",bg:"#4F7FF7",borderRadius:"9px",_hover:{bg:"#3B6FE8"},_active:{transform:"scale(0.98)"},children:a>1?"Accept all":"Accept"})]})]})]})}):null},e6=({trail:e})=>{let r=(0,G.useColorModeValue)("gray.500","rgba(255,255,255,0.5)"),o=(0,G.useColorModeValue)("gray.700","rgba(255,255,255,0.8)"),a=(0,G.useColorModeValue)("gray.600","rgba(255,255,255,0.65)"),l=(0,G.useColorModeValue)("rgba(0,0,0,0.03)","rgba(255,255,255,0.04)"),s=(0,G.useColorModeValue)("rgba(0,0,0,0.06)","rgba(255,255,255,0.06)"),d=(0,G.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),u=(e.rounds??[]).flatMap(e=>e.answers??[]).map(e=>{let t=e.answer?.trim()?e.answer.trim():e.selectedElementUids.length>0?`${e.selectedElementUids.length} element${1===e.selectedElementUids.length?"":"s"} selected`:"";return{question:e.question,text:t}}).filter(e=>e.text.length>0);return 0===u.length?null:(0,t.jsxs)(n.Box,{bg:l,border:"1px solid",borderColor:s,borderRadius:"10px",px:3,py:2.5,
4children:[(0,t.jsx)(V.Text,{fontSize:"11px",fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",color:a,children:"Questions & Answers"}),(0,t.jsx)(n.Box,{borderTop:"1px solid",borderColor:d,mt:2,mb:2.5}),(0,t.jsx)(i.Flex,{direction:"column",gap:3,children:u.map((e,a)=>(0,t.jsxs)(i.Flex,{gap:2,align:"flex-start",children:[(0,t.jsxs)(V.Text,{fontSize:"12px",fontWeight:600,color:r,lineHeight:"1.5",flexShrink:0,children:[a+1,"."]}),(0,t.jsxs)(n.Box,{children:[e.question&&(0,t.jsx)(V.Text,{fontSize:"12px",color:r,mb:"2px",children:e.question}),(0,t.jsx)(V.Text,{fontSize:"13px",color:o,children:e.text})]})]},a))})]})},e9=r.default.memo(({chat:e,index:i,isLastMessage:o,deleteMessage:a,returnToMessage:l,setShouldUseTypingEffect:s,lastMessageRef:d,onCreateSkillFromContent:u,messageActions:c,historyId:h,onAddLinkToBoard:p,onAddLinksToBoard:m,onFocusToolCreation:g,isToolCreationFocusable:f})=>{let b=(0,r.useCallback)(()=>{a(i)},[a,i]),x=(0,r.useCallback)(()=>{l(i)},[l,i]),y=(0,r.useCallback)(()=>{s(!1)},[s]),w=r.default.useMemo(()=>{if(!e.contextMentions)return[];try{return JSON.parse(e.contextMentions)}catch{return[]}},[e.contextMentions]);return(0,t.jsx)("div",{ref:d,children:(0,t.jsx)(ee.default,{modelPromptMessage:e.modelMessage,userPromptMessage:e.userMessage,useTypingEffect:!1,onDeleteMessage:b,onReturnToMessage:x,isLastMessage:o,onTypingComplete:y,inlineSummary:e.inlineSummary,onCreateSkillFromContent:u,contextMentions:w,messageActions:c,historyId:h,onAddLinkToBoard:p,onAddLinksToBoard:m,toolCreationDetails:e.toolCreationDetails,onFocusToolCreation:g,isToolCreationFocusable:f,clarificationSlot:e.intentClarification?(0,t.jsx)(n.Box,{mt:"6px",mb:"16px",children:(0,t.jsx)(e6,{trail:e.intentClarification})}):void 0})})});e9.displayName="ChatMessageRow";let e7=(0,r.forwardRef)(({maximized:e=!1,chatContainerHeight:a="100%",initialMessage:l,resourceType:s,onChatClicked:d,whiteboardId:u,whiteboardThumbnail:h,messageActions:p},m)=>{let{addLinkToBoard:g,addLinksToBoard:b}=(0,eN.useAddLinkToBoard)(),y=(0,eO.useWhiteboardViewStore)(e=>e.viewOnly),w=y?void 0:g,E=y?void 0:b,C=(0,r.useCallback)(e=>{f.useWhiteboardSelectionStore.getState().whiteboardCommandBridge?.focusElement?.(e)},[]),T=(0,x.useWhiteboardStagingStore)(e=>e.stagedElements.map(e=>e.element?.uid).join(",")),S=(0,f.useWhiteboardSelectionStore)(e=>!!e.whiteboardCommandBridge),A=(0,r.useCallback)(e=>!!x.useWhiteboardStagingStore.getState().stagedElements.some(t=>t.element?.uid===e)||!!f.useWhiteboardSelectionStore.getState().whiteboardCommandBridge?.hasElement?.(e),[T,S]),{isLoading:_,chatHistory:v,currentStreamedMessage:k,currentStreamedThinking:F,activeUserPromptMessage:D,activeUserContextMentions:M,setShouldUseTypingEffect:I,onSendButtonClicked:U,selectedQuickSkillId:L,setSelectedQuickSkillId:B,runSkillFromContent:W,isWhiteboardAgentSessionHistoryLoading:P,onStopButtonClicked:j,deleteMessage:N,returnToMessage:O,isChatCancelled:H,pendingFileAttachments:ep,pastedTexts:em,addPastedText:eg,removePastedText:ef,uploadFileAttachment:eb,removeFileAttachment:ex,isHistoryReady:ey,isAILimitReached:ew,aiMode:eE,setAiMode:eC,hasMoreMessages:eT,isLoadingOlderMessages:eS,loadMoreMessages:eA,agentIntentClarification:e_,agentSkillSuggestion:ev,ensureSocketConnected:ek,sessionId:eF,injectUserMessage:eM,agentPendingQuestion:eI,beginAgentTurn:eU,refreshChatHistoryFromServer:eL}=R(),eB=s===o.AiAssistanceResourceType.Project&&!!u,[eW,eP]=(0,r.useState)(!0),[eH,ez]=(0,r.useState)(null),eG=(0,r.useRef)(!1),eV=(0,f.useWhiteboardSelectionStore)(e=>e.isAIChatGenerationInProgress);(0,r.useEffect)(()=>{if(!eB||eG.current||!ey)return;let e=(window.location.pathname||"").split("/").filter(Boolean)[0];if(!e)return;let t=(0,z.peekWhiteboardPendingAiGenPrompt)(e);t&&(eG.current=!0,(0,z.clearWhiteboardPendingAiGenPrompt)(e),eV?eU({userPrompt:t.userPrompt}):eL().catch(()=>{}))},[eB,ey,eV,eU,eL]);let e$=(0,r.useRef)(null),eJ=(0,r.useRef)(null),eK=(0,r.useRef)(null),eY=(0,r.useRef)(!1),eX=(0,r.useRef)(!1),eQ=(0,r.useRef)(null),eZ=(0,r.useRef)(0),e0=(0,r.useRef)(null),[e1,e5]=(0,r.useState)(!1),[e2,e4]=(0,r.useState)([]),e6=(0,r.useRef)([]),[e7,te]=(0,r.useState)(!1),tt=(0,r.useRef)(""),[tr,tn]=(0,r.useState)(!1),ti=(0,G.useColorModeValue)("#4B81EE","white");(0,r.useEffect)(()=>
4{if(s!==o.AiAssistanceResourceType.Project||!u)return;let e=e6.current.filter(e=>"whiteboard"!==e.type);e.length!==e6.current.length&&(e6.current=e,e4(e),e5(e.length>0))},[s,u,h]);let[to,ta]=(0,r.useState)(0),tl=(0,r.useRef)(null),ts=(0,r.useCallback)(()=>{setTimeout(()=>tl.current?.commands.focus(),0)},[]),td=(0,r.useRef)({key:"",time:0});(0,r.useImperativeHandle)(m,()=>({triggerSendFromSelection:(e,t,r=!1)=>{let n;if(!tl.current)return;let i=`${t}::${e}`,o=Date.now();td.current.key===i&&o-td.current.time<800||(td.current={key:i,time:o},n=e&&r?`<p>${t}</p><p>Selected table cells: ${e}</p><p>Return the complete updated table as HTML. Only modify the requested cells â keep all other rows and columns unchanged.</p>`:e?`<p>${t}</p><p>Selected text: ${e}</p>`:`<p>${t}</p>`,tl.current.commands.setContent(n),U(tl,tZ()).catch(()=>{}))},getSessionId:()=>eF??null,prefillInput:e=>{tl.current?.commands.setContent(e),tl.current?.commands.focus()},injectUserMessage:e=>{eM(e)}}));let tu=(0,r.useRef)(null),[tc,th]=(0,r.useState)(!1),tp=(0,r.useCallback)(e=>{tu.current=null,tl.current?.commands.setContent(e,!0),tl.current?.commands.focus("end")},[]),tm=(0,r.useCallback)(e=>{let t=tl.current;t&&(null===tu.current&&(tu.current=t.getHTML()),t.commands.setContent(e))},[]),tg=(0,r.useCallback)(()=>{null!==tu.current&&(tl.current?.commands.setContent(tu.current),tu.current=null)},[]),tf=(0,r.useCallback)((e,t,r)=>{W({skillId:e,content:t,displayLabel:r}).catch(()=>{})},[W]),tb=(0,r.useCallback)(async()=>{if(!eT||eS)return;let e=eJ.current,t=e?.scrollHeight??0;await eA(),requestAnimationFrame(()=>{if(e){let r=e.scrollHeight;e.scrollTop=r-t}})},[eT,eS,eA]),tx=(0,r.useCallback)(e=>{let t=e.target.files;if(!t)return;ta(Date.now()+600),setTimeout(()=>ta(0),650);let r=Array.from(t),n=c.MAX_AI_CHAT_FILE_ATTACHMENTS-ep.length;r.slice(0,Math.max(0,n)).forEach(e=>eb(e)),e.target.value="",ts()},[eb,ep.length,ts]),[ty,tw]=(0,r.useState)(!1),tE=(0,r.useRef)(0),tC=(0,r.useCallback)(e=>{if(tE.current=0,tw(!1),_)return;let t=e.filter(e=>{let t="."+e.name.split(".").pop()?.toLowerCase();return c.ACCEPTED_FILE_EXTENSIONS.includes(t)}),r=c.MAX_AI_CHAT_FILE_ATTACHMENTS-ep.length;t.slice(0,Math.max(0,r)).forEach(e=>eb(e))},[_,ep.length,eb]),tT=(0,ea.useBoardImagePaste)(tC),tS=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),tE.current++,e.dataTransfer.types.includes("Files")&&tw(!0)},[]),tA=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),tE.current--,0===tE.current&&tw(!1)},[]),t_=(0,r.useCallback)(e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation())},[]),tv=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),tE.current=0,tw(!1),tC(Array.from(e.dataTransfer.files))},[tC]),tk=(0,ed.useSelectedElementSpecs)(s,e2.some(e=>"whiteboard"===e.type)),[tF,tD]=(0,r.useState)(()=>0===tk.length),tM=(0,r.useCallback)(()=>tD(!1),[]);(0,r.useEffect)(()=>{let e=setTimeout(tM,6e3);return()=>clearTimeout(e)},[tM]),(0,r.useEffect)(()=>{tk.length>0&&tM()},[tk.length,tM]);let tI=()=>{let e=eJ.current;e&&(eX.current=!0,e.scrollTo({top:e.scrollHeight,behavior:"smooth"}),setTimeout(()=>{eX.current=!1},500)),tn(!1)};(0,r.useEffect)(()=>{_&&!k&&(eY.current=!1)},[_,k]);let tU=0===v.length;(0,r.useEffect)(()=>{tU&&tn(!1)},[tU]),(0,r.useEffect)(()=>()=>{eQ.current&&(clearTimeout(eQ.current),eQ.current=null),e0.current&&(clearTimeout(e0.current),e0.current=null)},[]),(0,r.useEffect)(()=>{D&&!eY.current&&requestAnimationFrame(()=>{!eY.current&&e$.current?(eX.current=!0,e$.current.scrollIntoView({behavior:"smooth",block:"end"}),setTimeout(()=>{eX.current=!1},500)):!eY.current&&eJ.current&&tI()})},[D]),(0,r.useEffect)(()=>{if(!k||eY.current){eQ.current&&(clearTimeout(eQ.current),eQ.current=null),k||(eZ.current=0);return}let e=Date.now()-eZ.current;return e>=150?requestAnimationFrame(()=>{k&&!eY.current&&(e$.current?(eX.current=!0,e$.current.scrollIntoView({behavior:"smooth",block:"end"}),setTimeout(()=>{eX.current=!1},500)):eJ.current&&tI(),eZ.current=Date.now())}):(eQ.current&&clearTimeout(eQ.current),eQ.current=setTimeout(()=>{requestAnimationFrame(()=>{k&&!eY.current&&(e$.current?(eX.current=!0,e$.current.scrollIntoView({behavior:"smooth",block:"end"}),setTimeout(()=>{eX.current=!1},500)):eJ.current&&tI(),eZ.current=Date.now())}),eQ.current=null},150-e)),()=>{eQ.current&&(clearTimeout(eQ.current),eQ.current=null)}},[k]);let[tL,tB]=(0,r.useState)(!1),[tW,tP]=(0,r.useState)(!1),tj=(0,r.useRef)(null),tR=(0,r.useRef)(null),tN=(0,G.useColorModeValue)("rgba(0,0,0,0.16)","rgba(255,255,255,0.18)"),tO=(0,G.useColorModeValue)("#303030","#939393"),tH=(0,G.useColorModeValue)("rgba(0, 0, 0, 0.08)","rgba(255, 255, 255, 0.05)"),tz=(0,G.useColorModeValue)("rgba(75, 129, 238, 0.06)","rgba(75, 129, 238, 0.1)");(0,G.useColorModeValue)("#505050","#E0E0E0");let tG=(0,G.useColorModeValue)("rgba(0, 0, 0, 0.028)","rgba(255, 255, 255, 0.05)"),tV=(0,G.useColorModeValue)("#A5A5AB","#6C6C72"),t$=(0,G.useColorModeValue)("#F7F7F8","#282828"),tJ=(0,G.useColorModeValue)("white","#222222"),tK=(0,G.useColorModeValue)("white","#2A2A2A"),tY=(0,r.useRef)(null),tq=(0,r.useRef)(null),tX=(0,r.useMemo)(()=>e2.filter(e=>"blueprint"===e.type).map(e=>({id:e.id,label:e.label,type:"blueprint",thumbnail:e.thumbnail})),[e2]),tQ=e=>{if("whiteboard"===e.type&&e6.current.some(e=>"whiteboard"===e.type))return;let t={...e,id:String(e.id)},r=[...e6.current,t];e6.current=r,e4(r),e5(!0),ts()},tZ=()=>{let e=[];
4if(tl.current){let t=tl.current.state.doc.toJSON(),r=t=>{"mention"===t.type&&e.push({id:String(t.attrs.id),label:t.attrs.label,type:t.attrs.itemType||t.attrs.type,thumbnail:t.attrs.thumbnail,description:t.attrs.description}),t.content&&t.content.forEach(r)};t.content&&t.content.forEach(r)}let t=[...e];return e6.current.forEach(r=>{let n=String(r.id);e.find(e=>String(e.id)===n)||t.push({...r,id:n})}),t},t0=e=>{if(e6.current.find(t=>t.id===e)){let t=e6.current.filter(t=>t.id!==e);e6.current=t,e4(t),e5(t.length>0);return}if(!tl.current)return;let t=tl.current,{state:r}=t,{tr:n,doc:i}=r,o=!1;i.descendants((r,a)=>{if(o)return!1;if("mention"===r.type.name&&r.attrs.id===e){n.delete(a,a+r.nodeSize);let e=a+r.nodeSize;return e<i.content.size&&" "===i.textBetween(e,e+1)&&n.delete(e,e+1),t.view.dispatch(n),o=!0,!1}return!0}),o&&t.commands.focus()};return((0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&tL&&tB(!1)};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[tL]),(0,r.useEffect)(()=>{let e=tt.current&&!k;tt.current=k,_||k||!e$.current||e||eY.current||requestAnimationFrame(()=>{!eY.current&&e$.current&&(eX.current=!0,e$.current.scrollIntoView({behavior:"smooth",block:"end"}),setTimeout(()=>{eX.current=!1},500))})},[v,_,k]),(0,r.useEffect)(()=>{if(tL&&tR.current&&tj.current){let e=()=>{let e=tR.current,t=tj.current;if(!e||!t)return;let r=t.getBoundingClientRect(),n=e.offsetWidth,i=e.offsetHeight,o=r.left,a=r.top-i-8;o<20&&(o=20),o+n>window.innerWidth-20&&(o=window.innerWidth-n-20),a<20&&(a=r.bottom+8),e.style.left=`${o}px`,e.style.top=`${a}px`};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}},[tL]),P&&0===v.length&&!ey)?(0,t.jsx)(i.Flex,{h:a,direction:"column"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.Flex,{h:a,direction:"column",children:[(0,t.jsx)(n.Box,{ref:eJ,overflowY:"auto",flex:"1",minH:0,pt:"10px",pl:e?"2.5%":"0px",pr:e?"2.5%":"5px",pb:e?"36px":"10px",sx:{scrollbarWidth:"thin",scrollbarColor:"transparent transparent","&[data-scrolling='true']":{scrollbarColor:`${tN} transparent`},"&::-webkit-scrollbar":{width:"5px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:"transparent",borderRadius:"3px",transition:"background 0.3s ease"},"&[data-scrolling='true']::-webkit-scrollbar-thumb":{background:tN}},onScroll:()=>{let e,t=eJ.current;if(t&&(t.setAttribute("data-scrolling","true"),e0.current&&clearTimeout(e0.current),e0.current=setTimeout(()=>{eJ.current?.removeAttribute("data-scrolling")},700)),eX.current)return;let r=!(e=eJ.current)||e.scrollHeight-e.scrollTop-e.clientHeight<100;tn(!r),(_||k)&&(r?eY.current=!1:(eY.current=!0,eQ.current&&(clearTimeout(eQ.current),eQ.current=null)))},onClick:e=>{e.stopPropagation(),d&&d()},children:(0,t.jsxs)(i.Flex,{direction:"column",h:"100%",children:[l&&(0,t.jsxs)(q.default,{borderRadius:"16px",border:"none",px:"22px",py:"18px",mb:"18px",boxShadow:"none",bg:t$,children:[(0,t.jsxs)(i.Flex,{mb:"10px",children:[(0,t.jsx)(n.Box,{w:"18px",h:"18px",position:"relative",display:"flex",alignItems:"center",justifyContent:"center",children:(0,t.jsx)(Z.default,{src:X.default,alt:"StoryflowIconOne",fill:!0,style:{objectFit:"contain"}})}),(0,t.jsx)(V.Text,{ml:"8px",fontSize:"12px",fontWeight:600,color:tO,children:"StoryflowAI"})]}),(0,t.jsx)(V.Text,{fontSize:"13px",fontWeight:400,children:l})]}),0==v.length&&!_&&!k&&!e_&&!ev&&ey&&(0,t.jsx)(et.default,{resourceType:s,selectedToolId:eH,onSuggestionClick:tp,headlineOverride:eB&&!eH?"How can I help you today?":void 0,actionsSlot:eB&&!eH?(0,t.jsx)(ej,{onFillInput:tp,onPreviewInput:tm,onEndPreview:tg,onSelectSkill:e=>B(e),onOpenChange:th,disabled:_}):void 0}),eT&&(0,t.jsx)(i.Flex,{justify:"center",py:"8px",children:(0,t.jsx)(J.Button,{size:"xs",variant:"ghost",onClick:tb,isLoading:eS,children:"Load older messages"})}),v.map((e,r)=>{let n=r===v.length-1;return(0,t.jsx)(e9,{chat:e,index:r,isLastMessage:n,deleteMessage:N,returnToMessage:O,setShouldUseTypingEffect:I,lastMessageRef:n?e$:null,onCreateSkillFromContent:eB?tf:void 0,messageActions:n?p:p?.filter(e=>!e.lastMessageOnly),historyId:e.historyId,onAddLinkToBoard:w,onAddLinksToBoard:E,onFocusToolCreation:C,isToolCreationFocusable:A},e.historyId)}),(k||F)&&(0,t.jsx)("div",{ref:e$,children:(0,t.jsx)(ee.default,{modelPromptMessage:k,userPromptMessage:D,useTypingEffect:!1,onDeleteMessage:()=>{},onReturnToMessage:()=>{},isLastMessage:!0,onTypingComplete:()=>{},contextMentions:M,streamingThinking:F,isStreaming:!0,onAddLinkToBoard:w,onAddLinksToBoard:E})}),(_||e_||ev)&&D&&!k&&!F&&(0,t.jsxs)(n.Box,{mb:"18px",children:[(0,t.jsx)(el.AIChatContextMentionBadges,{mentions:M}),(0,t.jsx)(i.Flex,{justifyContent:"flex-end",mb:"16px",children:(0,t.jsx)(n.Box,{maxW:"85%",borderRadius:"18px",px:"16px",py:"12px",bg:t$,fontSize:"14px",fontWeight:400,lineHeight:"1.5",children:(0,t.jsx)(V.Text,{children:D})})}),_&&(0,t.jsx)(n.Box,{pl:"4px",children:(0,t.jsx)(er.AiChatPendingThinkingIndicator,{})})]})]})}),(0,t.jsxs)(n.Box,{position:"relative",pt:"14px",pl:e?"2.5%":"0px",pr:e?"2.5%":"0px",h:"auto",mb:"2px",mt:"auto",onKeyDownCapture:tM,onPointerDownCapture:tM,children:[(e_||ev)&&(0,t.jsx)(n.Box,{position:"absolute",bottom:"100%",left:e?"2.5%":"0px",right:e?"2.5%":"0px",pb:"8px",zIndex:20,children:(0,t.jsxs)(n.Box,{bg:tJ,border:"1px solid",borderColor:tH,borderRadius:"16px",overflow:"hidden",maxH:"60vh",overflowY:"auto",children:[(0,t.jsx)(eq,{}),(0,t.jsx)(e8,{})]})}),!e_&&!ev&&(0,t.jsx)(e3,{insetX:e?"2.5%":"0px"}),tr&&(0,t.jsx)(i.Flex,{position:"absolute",top:"-32px",left:"50%",transform:"translateX(-50%)",zIndex:10,children:(0,t.jsx)(J.Button,{onClick:tI,size:"xs",bg
4:tK,color:(0,G.useColorModeValue)("#606060","#B0B0B0"),border:"1px solid",borderColor:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.08)","rgba(255, 255, 255, 0.08)"),borderRadius:"full",w:"28px",h:"28px",minW:"28px",p:0,boxShadow:(0,G.useColorModeValue)("0 1px 4px rgba(0, 0, 0, 0.08)","0 1px 4px rgba(0, 0, 0, 0.2)"),_hover:{bg:(0,G.useColorModeValue)("#F5F5F5","#303030"),transform:"scale(1.05)"},transition:"all 0.2s ease",children:(0,t.jsx)(n.Box,{as:Q.FiArrowDown,w:4,h:4})})}),(0,t.jsx)(K.SlideFade,{in:tF,offsetY:14,unmountOnExit:!0,style:{marginBottom:"-12px"},children:(0,t.jsxs)(i.Flex,{w:"fit-content",maxW:"100%",mx:"auto",alignItems:"center",gap:"8px",pt:"8px",pb:"16px",px:"16px",borderTopRadius:"8px",bg:tG,color:tV,children:[(0,t.jsx)(n.Box,{display:"flex",alignItems:"center",justifyContent:"center",w:"15px",h:"15px",flexShrink:0,opacity:.8,children:(0,t.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsxs)("g",{fill:"currentColor",children:[(0,t.jsx)("circle",{cx:"2.75",cy:"9",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"9",cy:"2.75",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"2.75",cy:"2.75",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"2.75",cy:"5.875",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"2.75",cy:"12.125",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"2.75",cy:"15.25",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"15.25",cy:"2.75",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"15.25",cy:"5.875",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"12.125",cy:"2.75",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"5.875",cy:"2.75",r:"0.75",stroke:"none"}),(0,t.jsx)("circle",{cx:"5.875",cy:"15.25",r:"0.75",stroke:"none"}),(0,t.jsx)("polyline",{fill:"none",points:"9.25 15.25 9.25 9.25 15.25 9.25",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5}),(0,t.jsx)("line",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,x1:"9.25",x2:"15.25",y1:"9.25",y2:"15.25"})]})})}),(0,t.jsx)(V.Text,{fontSize:"12px",fontWeight:"400",opacity:.8,children:"Select object on the canvas for context or to edit"})]})}),(0,t.jsxs)(q.default,{borderRadius:"18px",border:"1px",p:0,pl:"3px",pt:"3px",borderColor:ty?"#4B81EE":tH,background:tJ,boxShadow:"none",position:"relative",overflow:"visible",onDragEnter:tS,onDragLeave:tA,onDragOver:t_,onDrop:tv,onPaste:tT,transition:"border-color 0.2s ease",children:[ew&&(0,t.jsx)(n.Box,{position:"absolute",bottom:"100%",left:0,right:0,pb:2,zIndex:10,children:(0,t.jsx)(eu.AILimitBanner,{})}),ty&&(0,t.jsx)(i.Flex,{position:"absolute",top:0,left:0,right:0,bottom:0,bg:tz,borderRadius:"18px",zIndex:10,alignItems:"center",justifyContent:"center",pointerEvents:"none",children:(0,t.jsx)(V.Text,{fontSize:"13px",fontWeight:"500",color:"#4B81EE",children:"Drop files here"})}),(0,t.jsxs)(i.Flex,{direction:"column",alignItems:"flex-end",children:[(0,t.jsxs)(i.Flex,{alignItems:"center",flexWrap:"wrap",w:"100%",mb:"2px",children:[(0,t.jsx)(n.Box,{position:"absolute",w:"0",h:"0",overflow:"visible",pointerEvents:"none",children:(0,t.jsx)(n.Box,{pointerEvents:"auto",children:(0,t.jsx)(ei.default,{ref:tq,selectedItems:tX,onAdd:e=>tQ({id:e.id,label:e.label,type:e.type,thumbnail:e.thumbnail}),onRemove:t0,onItemSelected:ts,hideTrigger:!0,dropdownDirection:"up"})})}),e2.length>0&&(0,t.jsxs)(t.Fragment,{children:[e2.length>0&&(0,t.jsx)(J.Button,{h:"24px",px:"8px",ml:"4px",my:"6px",size:"sm",bg:(0,G.useColorModeValue)("rgba(75, 129, 238, 0.08)","rgba(75, 129, 238, 0.12)"),borderRadius:"5px",border:"0.5px solid",borderColor:(0,G.useColorModeValue)("rgba(75, 129, 238, 0.2)","rgba(75, 129, 238, 0.2)"),_hover:{bg:(0,G.useColorModeValue)("rgba(75, 129, 238, 0.12)","rgba(75, 129, 238, 0.16)")},position:"relative",sx:{"& .cross-icon:hover":{cursor:"pointer !important"}},children:(0,t.jsxs)(i.Flex,{alignItems:"center",position:"relative",role:"group",children:[(0,t.jsxs)(n.Box,{position:"relative",zIndex:"1",sx:{cursor:"inherit"},children:["blueprint"===e2[0].type&&(0,t.jsx)(n.Box,{w:"14px",h:"14px",borderRadius:"4px",_groupHover:{opacity:0}
4,mr:"4px",opacity:(0,G.useColorModeValue)(1,.8),children:(0,t.jsx)($.Image,{src:e2[0].thumbnail&&void 0!=e2[0].thumbnail?(0,eo.getMainCdnImageUrl)(e2[0].thumbnail):eo.BLUEPRINT_THUMBNAIL_FALLBACK_SRC,onError:eo.handleBlueprintThumbnailError,objectFit:"cover",width:"14px",height:"14px",borderRadius:"4px"})}),"document"===e2[0].type&&(0,t.jsx)(n.Box,{as:Y.FaFile,mr:"4px",className:"context-icon original-icon",_groupHover:{opacity:0},fontSize:"12px",color:(0,G.useColorModeValue)("#4B81EE","#4B81EE")}),"blueprintcard"===e2[0].type&&(0,t.jsx)(n.Box,{w:"14px",h:"14px",_groupHover:{opacity:0},borderRadius:"4px",mr:"4px",opacity:(0,G.useColorModeValue)(1,.8),children:(0,t.jsx)($.Image,{src:e2[0].thumbnail&&void 0!=e2[0].thumbnail?(0,eo.getMainCdnImageUrl)(e2[0].thumbnail):eo.BLUEPRINT_THUMBNAIL_FALLBACK_SRC,onError:eo.handleBlueprintThumbnailError,objectFit:"cover",width:"14px",height:"14px",borderRadius:"4px"})}),"whiteboard"===e2[0].type&&(0,t.jsx)(n.Box,{w:"14px",h:"14px",borderRadius:"4px",_groupHover:{opacity:0},mr:"4px",opacity:(0,G.useColorModeValue)(1,.8),children:(0,t.jsx)($.Image,{src:e2[0].thumbnail&&void 0!=e2[0].thumbnail?(0,eo.getMainCdnImageUrl)(e2[0].thumbnail):eo.BLUEPRINT_THUMBNAIL_FALLBACK_SRC,onError:eo.handleBlueprintThumbnailError,objectFit:"cover",width:"14px",height:"14px",borderRadius:"4px"})}),(0,t.jsx)(V.Text,{mr:"4px",fontSize:"11px",fontWeight:"bold",position:"absolute",top:"0",left:"0",className:"context-icon cross-icon",color:ti,opacity:"0",transition:"opacity 0.2s",_groupHover:{opacity:1},onClick:e=>{e.stopPropagation(),e.preventDefault(),t0(e2[0].id)},cursor:"pointer",zIndex:2,sx:{"&:hover":{cursor:"pointer !important"},cursor:"pointer !important",display:"flex",alignItems:"center",justifyContent:"center",width:"12px",height:"12px"},children:"â"})]}),(0,t.jsx)(V.Text,{fontSize:"11px",fontWeight:"500",color:ti,noOfLines:1,maxW:"120px",children:e2[0].label})]})},`${e2[0].type}-${e2[0].id}-0`),e2.length>1&&(0,t.jsx)(J.Button,{ref:tj,h:"24px",px:"8px",ml:"4px",my:"6px",size:"sm",bg:(0,G.useColorModeValue)("rgba(75, 129, 238, 0.08)","rgba(75, 129, 238, 0.12)"),borderRadius:"5px",border:"0.5px solid",borderColor:(0,G.useColorModeValue)("rgba(75, 129, 238, 0.2)","rgba(75, 129, 238, 0.2)"),_hover:{bg:(0,G.useColorModeValue)("rgba(75, 129, 238, 0.12)","rgba(75, 129, 238, 0.16)"),transform:"translateY(-1px)",boxShadow:"0px 1px 3px rgba(0, 0, 0, 0.1)"},onClick:()=>tB(!0),transition:"all 0.2s ease",children:(0,t.jsxs)(i.Flex,{alignItems:"center",children:[(0,t.jsxs)(V.Text,{fontSize:"11px",fontWeight:"500",color:(0,G.useColorModeValue)("#4B81EE","#4B81EE"),noOfLines:1,children:["+",e2.length-1," more"]}),(0,t.jsx)(n.Box,{as:Y.FaChevronUp,size:"8px",ml:"4px",color:(0,G.useColorModeValue)("#4B81EE","#4B81EE"),transform:tL?"rotate(0deg)":"rotate(180deg)",transition:"transform 0.2s ease"})]})})]})]}),(0,t.jsx)(es.AIChatContextStrip,{attachments:ep,elements:tk,pastedTexts:em,onRemoveAttachment:ex,onRemovePastedText:ef}),(0,t.jsx)(en.default,{onEditorReady:e=>{tl.current=e,e.on("update",()=>{let t=e.getJSON();if(te(e.getText().trim().length>0),JSON.stringify(t).includes('"type":"mention"')){let e=[],r=t=>{"mention"!==t.type||t.attrs.isManualTrigger||e.push({id:t.attrs.id,label:t.attrs.label,type:t.attrs.itemType,thumbnail:t.attrs.thumbnail,description:t.attrs.description}),t.content&&t.content.forEach(r)};t.content&&t.content.forEach(r);let n=e6.current,i=[...n];e.forEach(e=>{n.find(t=>t.id===e.id)||i.push(e)}),e4(e=>e.length!==i.length||i.some((t,r)=>!e[r]||e[r].id!==t.id)?i:e),e5(i.length>0)}else{let e=e6.current;e4(t=>t.length!==e.length||e.some((e,r)=>!t[r]||t[r].id!==e.id)?e:t),e5(e.length>0)}})},isMainInput:!0,minHeight:"85px",fixedHeight:tc?"132px":void 0,onEnter:()=>{let e=tZ();console.debug("onEnter1 - editor mentions:",e),U(tl,e).then(()=>{let e;e=e6.current.filter(e=>"whiteboard"===e.type),e6.current=e,e4(e),e5(e.length>0)}).catch(()=>{})},onMentionTriggerReady:e=>{tY.current=e},onContextSelected:tQ,onEditorClicked:()=>{d&&d()},whiteboardId:u,onFileDrop:tC,onLargeTextPaste:eg}),(0,t.jsx)("input",{ref:eK,type:"file",multiple:!0,accept:c.ACCEPTED_FILE_EXTENSIONS.join(","),style:{display:"none"},onChange:tx}),(0,t.jsxs)(i.Flex,{w:"100%",mt:"10px",alignItems:"center",justifyContent:"space-between",children:[(0,t.jsxs)(i.Flex,{alignItems:"center",children:[(0,t.jsx)(n.Box,{ml:"8px",mb:"8px",children:(0,t.jsx)(ec.default,{onAddContext:()=>{tl.current&&tl.current.commands.focus(),tY.current&&tY.current()},onAddTactic:()=>tq.current?.open("blueprint"),isThinkingEnabled:"thinking"===eE,onToggleThinking:()=>eC(e=>"basic"===e?"thinking":"basic"),isWebSearchEnabled:eW,onToggleWebSearch:()=>eP(e=>!e),onOpenAiSettings:()=>tP(!0),disabled:_})}),(0,t.jsx)(eh.default,{tooltipLabel:eB?"Upload files to ask questions, get summaries, or extract insights":"Upload PDFs, images or docs to reference in your question",disabled:_||ep.length>=c.MAX_AI_CHAT_FILE_ATTACHMENTS,mb:"8px",onClick:()=>{window.addEventListener("focus",ts,{once:!0}),eK.current?.click()}}),eB&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.Box,{w:"1px",h:"18px",ml:"8px",mr:"2px",mb:"8px",bg:(0,G.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),flexShrink:0}),(0,t.jsx)(n.Box,{mb:"8px",children:(0,t.jsx)(eD,{selectedSkillId:L,onSelect:e=>B(e),onClear:()=>B(null),disabled:_})})]})]}),_||H?(0,t.jsx)(J.Button,{size:"sm",bg:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.08)","rgba(255, 255, 255, 0.1)"),color:(0,G.useColorModeValue)("#505050","#E0E0E0"),border:"1px solid",borderColor:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.1)","rgba(255, 255, 255, 0.1)"),borderRadius:"full",p:2,minW:"32px",w:"32px",h:"32px",ml:"5px",mb:"8px",mr:"8px",onClick:()=>j(),isDisabled:H,_hover:{bg:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.12)","rgba(255, 255, 255, 0.15)"),borderColor:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.2)","rgba(255, 255, 255, 0.2)")},_active:{bg:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.15)","rgba(255, 255, 255, 0.18)")},_focus:{bg:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.12)","rgba(255, 255, 255, 0.15)")},transition:"all 0.2s ease",children:(0,t.jsx)(n.Box,{as:Y.FaCircleStop,w:4,h:4})}):(0,t.jsx)(J.Button,{size:"sm",bg:e7||e1||ep.length>0||em.length>0?"#4B81EE":"transparent",color:e7||e1||ep.length>0||em.length>0?"white":(0,G.useColorModeValue)("gray.600","rgba(255, 255, 255, 0.7)"),border:"1px solid",borderColor:e7||e1||ep.length>0||em.length>0?"#4B81EE":(0,G.useColorModeValue)("rgba(0, 0, 0, 0.1)","rgba(255, 255, 255, 0.1)"),borderRadius:"full",p:2,minW:"32px",w:"32px",h:"32px",ml:"5px",mb:"8px",mr:"8px",onClick:()=>{let e=tZ();console.debug("onEnter2 - editor mentions:",e),U(tl,e).then(()=>{e6.current=[],e4([]),e5(!1)}).catch(()=>{})},isLoading:_,isDisabled:!e7&&!e1&&0===ep.length&&0===em.length,_hover:{bg:e7||e1||ep.length>0||em.length>0?"#3B6FE8":(0,G.useColorModeValue)("rgba(0, 0, 0, 0.05)","rgba(255, 255, 255, 0.1)"),borderColor:e7||e1||ep.length>0||em.length>0?"#3B6FE8":(0,G.useColorModeValue)("rgba(0, 0, 0, 0.2)","rgba(255, 255, 255, 0.2)")},transition:"all 0.2s ease",children:!_&&(0,t.jsx)(n.Box,{as:Q.FiArrowUp,w:4,h:4})})]})]})]})]})]}),tW&&(0,t.jsx)(eR.default,{isOpen:tW,onClose:()=>{tP(!1),ts()}}),tL&&(0,t.jsx)(n.Box,{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",onClick:()=>tB(!1),zIndex:1e4,children:(0,t.jsxs)(n.Box,{position:"fixed",zIndex:10001,bg:(0,G.useColorModeValue)("white","#1C1C1C"),border:"1px solid",borderColor:(0,G.useColorModeValue)("rgba(0, 0, 0, 0.1)","rgba(255, 255, 255, 0.1)"),borderRadius:"10px",boxShadow:"0px 8px 20px rgba(0, 0, 0, 0.22)",p:"12px",maxW:"350px",maxH:"300px",overflowY:"auto",onClick:e=>e.stopPropagation(),ref:tR,opacity:"0",transform:"translateY(10px)",animation:"fadeIn 0.2s ease-out forwards",sx:{"@keyframes fadeIn":{"0%":{opacity:0,transform:"translateY(10px)"},"100%":{opacity:1,transform:"translateY(0)"}}},children:[(0,t.jsx)(V.Text,{fontSize:"12px",fontWeight:"600",mb:"10px",color:(0,G.useColorModeValue)("rgba(55, 53, 47, 0.8)","rgba(255, 255, 255, 0.8)"),
4children:"Added Context"}),(0,t.jsx)(i.Flex,{direction:"column",gap:"6px",children:e2.map((e,r)=>(0,t.jsxs)(i.Flex,{p:"8px",borderRadius:"6px",alignItems:"center",position:"relative",role:"group",cursor:"pointer",_hover:{bg:(0,G.useColorModeValue)("rgba(75, 129, 238, 0.08)","rgba(75, 129, 238, 0.12)"),cursor:"pointer"},sx:{"& .cross-icon-more:hover":{cursor:"pointer !important"},"& *":{cursor:"pointer !important"}},children:[(0,t.jsxs)(n.Box,{position:"relative",zIndex:"1",sx:{cursor:"inherit"},children:["blueprint"===e.type&&(0,t.jsx)(n.Box,{w:"14px",h:"14px",borderRadius:"4px",_groupHover:{opacity:0},opacity:(0,G.useColorModeValue)(1,.8),children:(0,t.jsx)($.Image,{src:e.thumbnail&&void 0!=e.thumbnail?(0,eo.getMainCdnImageUrl)(e.thumbnail):eo.BLUEPRINT_THUMBNAIL_FALLBACK_SRC,onError:eo.handleBlueprintThumbnailError,objectFit:"cover",width:"14px",height:"14px",borderRadius:"4px"})}),"document"===e.type&&(0,t.jsx)(n.Box,{as:Y.FaFile,className:"context-icon original-icon-more",_groupHover:{opacity:0},fontSize:"14px",color:(0,G.useColorModeValue)("#4B81EE","#4B81EE")}),"blueprintcard"===e.type&&(0,t.jsx)(n.Box,{w:"14px",h:"14px",borderRadius:"4px",_groupHover:{opacity:0}
4,opacity:(0,G.useColorModeValue)(1,.8),children:(0,t.jsx)($.Image,{src:e.thumbnail&&void 0!=e.thumbnail?(0,eo.getMainCdnImageUrl)(e.thumbnail):eo.BLUEPRINT_THUMBNAIL_FALLBACK_SRC,onError:eo.handleBlueprintThumbnailError,objectFit:"cover",width:"14px",height:"14px",borderRadius:"4px"})}),"whiteboard"===e.type&&(0,t.jsx)(n.Box,{w:"14px",h:"14px",borderRadius:"4px",_groupHover:{opacity:0},opacity:(0,G.useColorModeValue)(1,.8),children:(0,t.jsx)($.Image,{src:e.thumbnail&&void 0!=e.thumbnail?(0,eo.getMainCdnImageUrl)(e.thumbnail):eo.BLUEPRINT_THUMBNAIL_FALLBACK_SRC,onError:eo.handleBlueprintThumbnailError,objectFit:"cover",width:"14px",height:"14px",borderRadius:"4px"})}),(0,t.jsx)(V.Text,{mr:"8px",fontSize:"12px",fontWeight:"bold",position:"absolute",top:"0",left:"0",className:"context-icon cross-icon-more",color:ti,opacity:"0",transition:"opacity 0.2s",_groupHover:{opacity:1},onClick:t=>{t.stopPropagation(),t0(e.id),e2.length<=2&&tB(!1)},cursor:"pointer",zIndex:2,sx:{"&:hover":{cursor:"pointer !important"},cursor:"pointer !important",display:"flex",alignItems:"center",justifyContent:"center",width:"14px",height:"14px"},children:"â"})]}),(0,t.jsx)(V.Text,{fontSize:"12px",fontWeight:"500",ml:"5px",color:ti,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxW:"350px",children:e.label})]},`more-mention-${r}`))})]})})]})});e7.displayName="WhiteboardAiAgentChatBody";let te=o.AiAssistanceResourceType.Project,tt=(0,r.forwardRef)(({maximized:e=!1,chatContainerHeight:a="100%",projectId:l,initialMessage:u,onChatClicked:c,whiteboardId:p,whiteboardThumbnail:m,onMinimize:g,messageActions:f},b)=>{let{sessions:x,currentSession:y,createSession:w,selectSession:E,deleteSession:C,updateSessionTitle:S,refreshSessions:A,isLoading:_,hasQueriedServer:v}=function({projectId:e,whiteboardId:t}){let n=(0,h.useToast)(),[i,a]=(0,r.useState)([]),[l,u]=(0,r.useState)(null),[c,p]=(0,r.useState)(!0),[m,g]=(0,r.useState)(!1),[f,b]=(0,r.useState)(!1),x=(0,r.useRef)(null);x.current=l;let y=(0,r.useCallback)(async r=>{if(!r?.whiteboardAgentSessions)return;let n=r.whiteboardAgentSessions.filter(r=>!!r&&r.projectId===e&&(null==t||r.whiteboardId===t)).filter(e=>!!e).map(H);try{await T.saveSessionsMetadata(n)}catch(e){console.error("Failed to save whiteboard agent sessions to IndexedDB:",e)}let i=x.current,o=n.map(O),l=null;if(i?l=i.id:o.length>0&&(l=(o.find(e=>e.isActive)||o[0]).id),l){let e=(o=o.map(e=>({...e,isActive:e.id===l}))).find(e=>e.id===l);e&&u(e)}a(o),b(!0)},[e,t]),{loading:w,refetch:E}=(0,d.useQuery)(o.WhiteboardAgentSessionsDocument,{variables:{projectId:e,whiteboardId:t??void 0},fetchPolicy:"network-only",skip:!m,onCompleted:e=>{y(e)},onError:e=>{console.error("Failed to fetch whiteboard agent sessions from server:",e),b(!0),(0,W.handleGraphQLError)({error:e,toast:n})}}),[C]=(0,s.useMutation)(o.CreateWhiteboardAgentSessionDocument),[S]=(0,s.useMutation)(o.UpdateWhiteboardAgentSessionTitleDocument),[A]=(0,s.useMutation)(o.DeleteWhiteboardAgentSessionDocument);(0,r.useEffect)(()=>{(async()=>{try{p(!0);let r=(await T.getSessions(e,t)).map(O);if(r.length>0){let e=r.find(e=>e.isActive)||r[0];r=r.map(t=>({...t,isActive:t.id===e.id})),a(r),u({...e,isActive:!0})}else a(r);g(!0)}catch(e){console.error("Failed to load whiteboard agent sessions from cache:",e),g(!0),(0,W.handleGraphQLError)({error:e,toast:n})}finally{p(!1)}})()},[e,t]),(0,r.useEffect)(()=>{m&&p(w)},[w,m]),(0,r.useEffect)(()=>{l&&i.length>0&&i.some(e=>e.id===l.id&&!e.isActive||e.id!==l.id&&e.isActive)&&a(e=>e.map(e=>({...e,isActive:e.id===l.id})))},[l?.id]);let _=(0,r.useCallback)(async r=>{try{let{data:n}=await C({variables:{projectId:e,whiteboardId:t??void 0,title:r||"New AI chat"}});if(!n?.createWhiteboardAgentSession)throw Error("Failed to create whiteboard agent session");let i=n.createWhiteboardAgentSession,o=H(i);await T.saveSessionMetadata(o);let l={...O(o),isActive:!0};return a(e=>[l,...e.map(e=>({...e,isActive:!1}))]),u(l),l}catch(e){throw console.error("Failed to create whiteboard agent session:",e),e}},[e,t,C]),v=(0,r.useCallback)(r=>{let n=i.map(e=>({...e,isActive:e.id===r})),o=n.find(e=>e.id===r);if(o){a(n),u(o);let i={sessionId:Number(r),userId:0,projectId:e,whiteboardId:t??null,title:o.title,lastUpdated:Date.now()};T.saveSessionMetadata(i).catch(e=>{console.error("Failed to update whiteboard agent session in IndexedDB:",e)})}},[i,e,t]),k=(0,r.useCallback)(async e=>{try{await A({variables:{sessionId:Number(e)}}),await T.deleteSession(Number(e));let t=i.filter(t=>t.id!==e);if(l?.id===e){let e=t[0]||null;e&&(e.isActive=!0),u(e)}a(t)}catch(e){throw console.error("Failed to delete whiteboard agent session:",e),e}},[i,l,A]),F=(0,r.useCallback)(async(e,t)=>{try{let{data:r}=await S({variables:{sessionId:Number(e),title:t}});if(!r?.updateWhiteboardAgentSessionTitle)throw Error("Failed to update whiteboard agent session title");let n=r.updateWhiteboardAgentSessionTitle,o=H(n);await T.saveSessionMetadata(o);let s=i.map(r=>r.id===e?{...r,title:t}:r);a(s),l?.id===e&&u({...l,title:t})}catch(e){throw console.error("Failed to update whiteboard agent session title:",e),e}},[i,l,S]);return{sessions:i,currentSession:l,isLoading:c,hasQueriedServer:f,createSession:_,selectSession:v,deleteSession:k,updateSessionTitle:F,refreshSessions:(0,r.useCallback)(async()=>{p(!0);try{let{data:e}=await E();await y(e)}catch(e){console.error("Failed to refresh whiteboard agent sessions:",e)}finally{p(!1)}},[E,y])}}({projectId:l,whiteboardId:p}),[k,F]=(0,r.useState)(()=>
4{let e=(window.location.pathname||"").split("/").filter(Boolean)[0];if(!e)return 0;let t=(0,z.peekWhiteboardPendingAiGenPrompt)(e);return t?.sessionId&&t.sessionId>0?t.sessionId:0});(0,r.useEffect)(()=>{if(!k)return;let e=String(k);y&&y.id===e?F(0):x.find(t=>t.id===e)&&(E(e),F(0))},[k,x,y,E]),(0,r.useEffect)(()=>{if(!k||!v||_)return;let e=String(k);x.some(t=>t.id===e)||F(0)},[k,v,_,x]);let D=(0,r.useRef)(!1);(0,r.useEffect)(()=>{!v||_||y||0!==x.length||D.current||0!==k||(D.current=!0,w().catch(e=>{D.current=!1,console.error("Failed to create initial session:",e)}))},[v,_,y,x.length,w,k]);let M=async()=>{await w()},I=async e=>{await C(e)},U=async(e,t)=>{await S(e,t)};if(!y)return null;let L=Number(y.id);return(0,t.jsxs)(i.Flex,{direction:"column",h:"100%",children:[(0,t.jsx)(N.AIChatHeader,{currentChatTitle:y.title||"New AI chat",chatSessions:x,onNewChat:M,onSelectChat:e=>{E(e)},onDeleteSession:I,onUpdateSessionTitle:U,onMinimize:g}),(0,t.jsx)(n.Box,{flex:"1",overflow:"hidden",mt:"12px",bg:"transparent",children:(0,t.jsx)(j,{projectId:l,whiteboardId:p,sessionId:L,refreshChatSessionsFromServer:A,children:(0,t.jsx)(e7,{ref:b,maximized:e,chatContainerHeight:a,resourceType:te,initialMessage:u,onChatClicked:c,whiteboardId:p,whiteboardThumbnail:m,messageActions:f})})})]})});tt.displayName="WhiteboardAiAgentChat";let tr=(0,r.memo)(({projectId:e,whiteboardId:r,whiteboardThumbnail:n,onChatClicked:i,onMinimize:o})=>(0,t.jsx)(tt,{projectId:e,chatContainerHeight:"100%",onChatClicked:i,whiteboardId:r,whiteboardThumbnail:n,onMinimize:o}));e.s(["default",0,tr],855152);var tn=e.i(769847),ti=e.i(599444);e.s(["WhiteboardSidebarImageGalleryPanel",0,({onMinimize:e,onDefaultFileSelect:i})=>{let o=(0,f.useWhiteboardSelectionStore)(e=>e.imageGalleryOnFileSelect),a=(0,G.useColorModeValue)("radial-gradient(ellipse 120% 80% at 50% 20%, #FFFFFF 0%, #FEFEFE 35%, #FCFCFC 60%, #F9F9F9 80%, #F6F6F6 100%)","#1C1C1C"),l=(0,G.useColorModeValue)("gray.500","rgba(255,255,255,0.5)"),s=(0,G.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),d=(0,G.useColorModeValue)("gray.800","rgba(255,255,255,0.9)"),u=(0,r.useCallback)(e=>{(o??i??(()=>{}))(e)},[o,i]);return(0,t.jsx)(tn.motion.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:8},transition:{duration:.18,ease:"easeOut"},style:{position:"absolute",inset:0,zIndex:5,borderRadius:"20px",overflow:"hidden"},children:(0,t.jsxs)(n.Box,{position:"relative",h:"100%",w:"100%",background:a,borderRadius:"20px",children:[(0,t.jsx)(n.Box,{position:"absolute",top:"14px",right:"14px",zIndex:2,children:(0,t.jsx)(ex.Tooltip,{label:"Minimize",placement:"bottom",hasArrow:!0,children:(0,t.jsx)(eH.IconButton,{"aria-label":"Minimize sidebar",icon:(0,t.jsx)(Q.FiMinus,{size:"16px"}),size:"sm",variant:"ghost",color:l,borderRadius:"8px",minW:"28px",h:"28px",_hover:{bg:s,color:d},onClick:e})})}),(0,t.jsx)(n.Box,{h:"100%",w:"100%",p:"14px",pt:"50px",children:(0,t.jsx)(ti.default,{bare:!0,width:"100%",height:"100%",enabledDroppable:!0,hideLink:!0,onFileSelect:u})})]})},"whiteboard-sidebar-image-gallery")}],565782);let to="template-preview";e.s(["whiteboardTemplateJsonToStagedElementPreview",0,function(e){let t;if(!e)return{elements:[],edges:[]};try{t=JSON.parse(e)}catch{return{elements:[],edges:[]}}if(!Array.isArray(t))return{elements:[],edges:[]};let r=[],n=[],i=(e,t)=>{let n=e?.original_uid??e?.uid;if(!n)return;let{children:o,...a}=e.data??{},l=e.element_attributes,s={...a,whiteboardElementUid:n,...Array.isArray(e.labels)?{labels:e.labels}:{}};if(r.push({stagedBatchId:to,element:{uid:n,parentUid:t??(e.parent_uid||null),parentOrderIndex:e.parent_order_index??null,elementType:e.type,elementLocation:JSON.stringify({x:e.xPosition??0,y:e.yPosition??0}),elementAttributes:"string"==typeof l?l:JSON.stringify(l??{}),contentJsonString:JSON.stringify(s),content:s}}),Array.isArray(o))for(let e of o)i(e,n)};for(let e of t)if(e?.type==="Edge"){let t=e.original_uid??e.uid;if(!t||!e.source||!e.target)continue;n.push({stagedBatchId:to,uid:t,edgeType:e.edge_type??"default",source:e.source,sourceHandle:e.source_handle??"",target:e.target,targetHandle:e.target_handle??"",strokeColor:e.stroke_color??null,strokeWidth:e.stroke_width??null,isDashed:e.is_dashed??null,isCurved:e.is_curved??null,hasStartArrowHead:e.has_start_arrow_head??null,hasEndArrowHead:e.has_end_arrow_head??null,styleJsonString:e.style_json_string??null})}else e?.type&&i(e,null);return{elements:r,edges:n}}],761819)},369216,e=>{"use strict";let t=(0,e.i(527537).create)(e=>({previewToken:0,elements:[],edges:[],templateUid:null,isUserTemplate:!1,emptyBoardSelectedToken:0,setPreview:(t,r,n,i=!1)=>e(e=>({previewToken:e.previewToken+1,elements:t,edges:r,templateUid:n,isUserTemplate:i})),clearPreview:()=>e(e=>({previewToken:e.previewToken+1,elements:[],edges:[],templateUid:null,isUserTemplate:!1})),markEmptyBoardSelected:()=>e(e=>({emptyBoardSelectedToken:e.emptyBoardSelectedToken+1}))}));e.s(["useWhiteboardTemplatePreviewStore",0,t])},168439,881171,160284,634544,777062,802741,381704,613183,620458,250587,738246,829271,761740,858247,514789,587418,903328,654112,857017,810869,526188,197092,667273,e=>{"use strict";e.s(["default",()=>de],168439);var t=e.i(785929),r=e.i(624909),n=e.i(942264),i=e.i(966078),o=e.i(209376),a=e.i(639331);e.s(["WhiteboardReactFlowProvider",()=>s9,"useWhiteboardReactFlowContext",()=>s7],526188);var l=e.i(763371),s=e.i(203306),d=e.i(308472),u=e.i(941332),c=e.i(306148),h=e.i(763798),p=e.i(565307),m=e.i(669424),g=e.i(608300),f=e.i(438974),b=e.i(647547),x=e.i(155258),y=e.i(769847);e.i(700930);var w=e.i(644705),E=e.i(38462),C=e.i(961773),T=e.i(940190),S=e.i(977021),A=e.i(816790),_=e.i(95416),v=e.i(785036),k=e.i(819234),F=e.i(164848),D=e.i(631088),M=e.i(830947),I=e.i(165832),U=e.i(6
459043),L=e.i(558544),B=e.i(144633),W=e.i(79481),P=e.i(804525),j=e.i(385050);e.s(["RIGHT_RAIL_PANEL_BORDER_COLOR",()=>nL,"WHITEBOARD_SIDEBAR_CONTAINER_STYLE",()=>nB,"default",()=>nj],829271);var R=e.i(78246),N=e.i(855152),O=e.i(565782),H=e.i(406964),z=e.i(415938),G=e.i(11155),V=e.i(151993),$=e.i(260228),J=e.i(657930),K=e.i(394323),Y=e.i(866267),q=e.i(959219),X=e.i(520181),Q=e.i(24519),Z=e.i(109797),ee=e.i(881835),et=e.i(614579),er=e.i(805019),en=e.i(624555),ei=e.i(926249),eo=e.i(840399),ea=e.i(874186),el=e.i(606559),es=e.i(732148),ed=e.i(910778),eu=e.i(214184),ec=e.i(761819),eh=e.i(369216),ep=e.i(217912),em=e.i(350618),eg=e.i(254878),ef=e.i(517455);let eb=()=>{let e=(0,eh.useWhiteboardTemplatePreviewStore)(e=>e.templateUid),r=(0,eh.useWhiteboardTemplatePreviewStore)(e=>e.isUserTemplate),n=(0,eh.useWhiteboardTemplatePreviewStore)(e=>e.elements.length>0),o=(0,eh.useWhiteboardTemplatePreviewStore)(e=>e.clearPreview),a=(0,j.useWhiteboardSelectionStore)(e=>e.setIsTemplateGalleryOpen),l=(0,j.useWhiteboardSelectionStore)(e=>e.setIsWhiteboardSidebarOpen),{project:s,whiteboardId:d,refetchWhiteboard:c}=(0,ef.default)(),{isBetaTester:h}=(0,eg.useCurrentUser)(),p=(0,K.useToast)(),{colorMode:m}=(0,f.useColorMode)(),[g,x]=(0,i.useState)(!1),[y,w]=(0,i.useState)(!1),E=(0,f.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),C=(0,f.useColorModeValue)("#FFFFFF","#1C1C1C"),T=(0,f.useColorModeValue)("#5B5B5B","#A8A8A8"),[S]=(0,ei.useMutation)(ea.CreateFromWhiteboardTemplateDocument),A=(0,i.useCallback)(async()=>{if(!g&&e&&s?.id&&s?.uid&&d){x(!0);try{let{data:t}=await S({variables:{projectId:s.id,projectUid:s.uid,whiteboardId:d,templateUid:e,isUserTemplate:r,excludeExampleContent:h&&!y}});if(!t?.createFromWhiteboardTemplate?.status)throw Error("Template creation failed");await c(),o(),a(!1),l(!1)}catch(e){console.error("WhiteboardTemplateUseFooter - failed to use template",e),p({render:({onClose:e})=>(0,t.jsx)(em.PillToast,{title:"Couldn't add the template. Please try again.",onClose:e})})}finally{x(!1)}}},[g,e,r,y,h,s?.id,s?.uid,d,S,c,o,p,a,l]),_=(0,i.useCallback)(()=>{eh.useWhiteboardTemplatePreviewStore.getState().clearPreview(),a(!1),l(!1)},[a,l]),v=!!e&&n;return(0,t.jsxs)(b.Box,{pt:"10px",mt:"2px",borderTop:"1px solid",borderColor:E,bg:C,children:[(0,t.jsx)(u.Button,{"data-tour":"use-template",w:"100%",h:"40px",borderRadius:"10px",fontSize:"13px",fontWeight:"600",color:"white",backgroundColor:"var(--chakra-colors-brand-500)",border:"none",position:"relative",overflow:"hidden",transition:"all 0.2s ease",_hover:{backgroundColor:"var(--chakra-colors-brand-600)"},_active:{backgroundColor:"var(--chakra-colors-brand-600)"},isLoading:g,loadingText:"Addingâ¦",onClick:v?A:_,sx:{"&::after":{content:'""',position:"absolute",inset:0,borderRadius:"10px",padding:"1px",background:"dark"===m?"linear-gradient(135deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.01) 45%, rgba(255,255,255,0.22) 100%)":"linear-gradient(135deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.0) 50%, rgba(255,255,255,0.12) 100%)",WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",pointerEvents:"none"}},children:v?"Use Template":"Continue with empty board"}),v&&h&&(0,t.jsx)(ep.Checkbox,{w:"100%",minH:"40px",display:"flex",alignItems:"center",justifyContent:"center",size:"sm",isChecked:y,onChange:e=>w(e.target.checked),sx:{".chakra-checkbox__label":{fontSize:"13px",color:T}},children:"Keep example content"})]})};var ex=e.i(73710),ey=e.i(246068),ew=e.i(738549),eE=e.i(91560),eC=e.i(81072),eT=e.i(721985),eS=e.i(520465),eA=e.i(529386),e_=e.i(745344);let ev=(0,i.memo)(({id:e,name:r,count:n,coverThumbnail:i,coverDarkThumbnail:o,onSelect:a})=>{let{colorMode:l}=(0,f.useColorMode)(),s=(0,f.useColorModeValue)("#F0F0F0","#252525"),d=(0,f.useColorModeValue)("lightModeBg.canvasBody","darkModeBg.canvasBody"),u=(0,f.useColorModeValue)("rgba(0,0,0,0.4)","rgba(255,255,255,0.45)"),h=(0,f.useColorModeValue)("rgba(0,0,0,0.45)","rgba(255,255,255,0.45)"),p="dark"===l?o:i,m="number"==typeof n&&n>0;return(0,t.jsxs)(b.Box,{position:"relative",sx:{cursor:"pointer"},onClick:()=>a(e),padding:"3px",role:"button","aria-label":m?`${r}, ${n} templates`:r,children:[(0,t.jsx)(eC.AspectRatio,{maxW:"100%",ratio:1.71,children:(0,t.jsx)(eT.Card,{border:"1px",padding:0,borderColor:s,backgroundColor:d,borderRadius:"16px",overflow:"hidden",children:p?(0,t.jsx)(eS.Image,{src:(0,e_.getMainCdnImageUrl)(p,"600"),alt:r,objectFit:"cover",w:"100%",h:"100%"}):(0,t.jsx)(c.Flex,{align:"center",justify:"center",w:"100%",h:"100%",children:(0,t.jsx)(ex.Icon,{as:eA.FaFolder,boxSize:"18px",color:u})})})}),(0,t.jsxs)(c.Flex,{mt:"14px",align:"center",justify:"space-between",gap:"8px",children:[(0,t.jsx)(g.Text,{fontSize:"14px",fontWeight:500,noOfLines:1,children:r}),m&&(0,t.jsxs)(c.Flex,{align:"center",gap:"1px",flexShrink:0,color:h,children:[(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:400,children:n}),(0,t.jsx)(ex.Icon,{as:G.FiChevronRight,boxSize:"12px"})]})]})]})}),ek=(0,i.memo)(({title:e,onClick:r,selected:n=!1,children:i})=>{let o=(0,f.useColorModeValue)("#F0F0F0","#252525"),a=(0,f.useColorModeValue)("lightModeBg.canvasBody","darkModeBg.canvasBody"),l=(0,f.useColorModeValue)("rgba(0,0,0,0.3)","rgba(255,255,255,0.32)");return(0,t.jsxs)(b.Box,{position:"relative",sx:{cursor:"pointer"},onClick:r,padding:"3px",role:"button","aria-label":e,"aria-pressed":n,children:[(0,t.jsx)(eC.AspectRatio,{maxW:"100%",ratio:1.71,children:(0,t.jsx)(eT.Card,{border:"1px",padding:0,borderColor:o,backgroundColor:a,borderRadius:"16px",overflow:"hidden",boxShadow:n?`0 0 0 0.5px ${l}`:void 0,children:(0,t.jsx)(c.Flex,{align:"center",justify:"center",w:"100%",h:"100%",children:i})})}),(0,t.jsx)(g.Text,{mt:"14px",fontSize:"14px",fontWeight:500,children:e})]})}),eF=(0,i.memo)(({tiles:e,isLoading:r,isEmptySelected:n,onGenerateAI:o,onEmptyBoard:a,onSelectTile:l})=>{let s=(0,f.useColorModeValue)("rgba(0,0,0,0.5)","rgba(255,255,255,0.5)"),d=(0,f.useColorModeValue)("rgba(0,0,0,0.5)","rgba(255,255,255,0.5)"),u=(0,f.useColorModeValue)("rgba(0,0,0,0.55)","rgba(255,255,255,0.6)"),h=(0,f.useColorModeValue)("rgba(0,0,0,0.02)","rgba(255,255,255,0.04)"),p=(0,f.useColorModeValue)("linear-gradient(135deg, rgba(0,0,0,0.14) 0%, rgba(0,0,0,0.02) 45%, rgba(0,0,0,0.14) 100%)","linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.01) 45%, rgba(255,255,255,0.18) 100%)"),m=(0,i.useMemo)(()=>({position:"relative","&::after":{content:'""',position:"absolute",inset:0,borderRadius:"10px",padding:"0.5px",background:p,WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",pointerEvents:"none"}}),[p]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(ey.SimpleGrid,{columns:2,spacing:3,pb:"14px",children:[(0,t.jsx)(ek,{title:"Generate with AI",onClick:o,children:(0,t.jsx)(b.Box,{position:"relative",w:"36px",h:"36px",borderRadius:"10px",display:"flex",alignItems:"center",justifyContent:"center",bg:h,sx:m,children:(0,t.jsx)(ex.Icon,{as:eE.default,boxSize:"16px",color:u})})}),(0,t.jsx)(ek,{title:"Empty board",onClick:a,selected:n})]}),(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:500,color:s,mb:"8px",px:"3px",children:"Browse by category"}),r?(0,t.jsx)(c.Flex,{h:"80px",align:"center",justify:"center",children:(0,t.jsx)(ew.Spinner,{size:"sm",color:d})}):(0,t.jsx)(ey.SimpleGrid,{columns:2,spacing:3,pb:"12px",children:e.map(e=>(0,t.jsx)(ev,{...e,onSelect:l},e.id))})]})});var eD=e.i(720918);let eM=(0,i.memo)(({title:e,thumbnail:r,templateDarkModeThumbnail:n,thumbnailTitle:o,templateDescription:a,templateUid:l,onSelect:s,actionLabel:d="Use template",selected:h=!1})=>{let p=(0,f.useColorMode)(),[m,x]=(0,i.useState)(!1),y=(0,f.useColorModeValue)("#F0F0F0","#252525"),w=(0,f.useColorModeValue)("rgba(0,0,0,0.3)","rgba(255,255,255,0.32)"),E=(0,f.useColorModeValue)("primaryLight.50","#212121");return(0,f.useColorModeValue)("hoverLight.primary","hoverDark.primary"),(0,f.useColorModeValue)("#CBD5E0","#4A5568"),eD.keyframes` 5 0% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0.7)); } 6 50% { transform: scale(1.2); filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.9)); } 7 100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0.7)); } 8 `,(0,t.jsxs)(b.Box,{position:"relative",opacity:1,bg:"initial",sx:{cursor:"pointer"},onClick:()=>s(l),padding:"3px",children:[(0,t.jsx)(eC.AspectRatio,{maxW:"100%",ratio:1.71,children:(0,t.jsxs)(eT.Card,{onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),border:"1px",padding:0,borderColor:y,backgroundColor:E,borderRadius:"16px",overflow:"hidden",boxShadow:h?`0 0 0 0.5px ${w}`:void 0,children:["light"==p.colorMode&&r?(0,t.jsx)(eS.Image,{src:(0,e_.getMainCdnImageUrl)(r,"600"),alt:e,objectFit:"cover",w:"100%",h:"100%"}):"dark"==p.colorMode&&n?(0,t.jsx)(eS.Image,{src:(0,e_.getMainCdnImageUrl)(n,"600"),alt:e,objectFit:"cover",w:"100%",h:"100%"}):(0,t.jsx)(t.Fragment,{}),m&&(0,t.jsxs)(c.Flex,{position:"absolute",top:"0",left:"0",right:"0",bottom:"0",alignItems:"center",justifyContent:"center",flexDirection:"column",p:"20px",bg:"rgba(0, 0, 0, 0.7)",backdropFilter:"blur(8px)",borderRadius:"16px",transition:"all 0.3s ease-in-out",children:[a&&(0,t.jsx)(g.Text,{color:"white",fontSize:"12px",fontWeight:"400",textAlign:"center",mb:"20px",noOfLines:4,lineHeight:"1.5",opacity:0,transform:"translateY(10px)",animation:"fadeInUp 0.4s ease-out 0.1s forwards",sx:{"@keyframes fadeInUp":{"0%":{opacity:0,transform:"translateY(10px)"},"100%":{opacity:1,transform:"translateY(0)"}}},children:a.replace(/<[^>]*>/g,"")}),(0,t.jsx)(u.Button,{bg:"#2D6BE8",color:"white",size:"sm",fontSize:"12px",fontWeight:"600",px:"20px",py:"6px",borderRadius:"6px",opacity:0,transform:"translateY(10px)",animation:"fadeInUp 0.4s ease-out 0.2s forwards",onClick:e=>{e.stopPropagation(),s(l)},_hover:{bg:"#1E5AD1",transform:"translateY(-1px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.3)"},transition:"all 0.2s ease-in-out",sx:{"@keyframes fadeInUp":{"0%":{opacity:0,transform:"translateY(10px)"},"100%":{opacity:1,transform:"translateY(0)"}}},children:d})]})]})}),(0,t.jsx)(g.Text,{mt:"14px",fontSize:"14px",fontWeight:500,children:e})]})});e.s(["default",0,eM],881171);var eI=e.i(949318),eU=e.i(182036),eL=e.i(901619),eB=e.i(365060),eW=e.i(942814),eP=e.i(937456);let ej=(0,i.memo)(({title:e,thumbnail:r,templateDarkModeThumbnail:n,templateUid:o,onSelect:a,onRename:l,onDelete:s,selected:d=!1})=>{let h=(0,f.useColorMode)(),[p,m]=(0,i.useState)(!1),{isOpen:x,onOpen:y,onClose:w}=(0,Y.useDisclosure)(),E=(0,f.useColorModeValue)("#F0F0F0","#252525"),C=(0,f.useColorModeValue)("rgba(0,0,0,0.3)","rgba(255,255,255,0.32)"),T=(0,f.useColorModeValue)("primaryLight.50","#212121"),S=(0,f.useColorModeValue)("rgba(255, 255, 255, 0.88)","rgba(36, 36, 38, 0.93)"),A=(0,f.useColorModeValue)("rgba(0, 0, 0, 0.08)","rgba(255, 255, 255, 0.11)"),_=(0,f.useColorModeValue)("#37352F","rgba(255, 255, 255, 0.9)"),v=(0,f.useColorModeValue)("rgba(0, 0, 0, 0.04)","rgba(255, 255, 255, 0.08)"),k=(0,f.useColorModeValue)("#6B6B6B","rgba(255, 255, 255, 0.65)"),F=(0,f.useColorModeValue)("#E53E3E","#FC8181"),D=(0,f.useColorModeValue)("rgba(229, 62, 62, 0.08)","rgba(252, 129, 129, 0.12)"),M="dark"===h.colorMode?n||r:r||n;return(0,t.jsxs)(b.Box,{position:"relative",opacity:1,bg:"initial",sx:{cursor:"pointer"},onClick:()=>a(o),padding:"3px",children:[(0,t.jsx)(eC.AspectRatio,{maxW:"100%",ratio:1.71,children:(0,t.jsxs)(eT.Card,{onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),border:"1px",padding:0,borderColor:E,backgroundColor:T,borderRadius:"16px",overflow:"hidden",boxShadow:d?`0 0 0 0.5px ${C}`:void 0,children:[M?(0,t.jsx)(eS.Image,{src:(0,e_.getMainCdnImageUrl)(M,"600"),alt:e,objectFit:"cover",w:"100%",h:"100%"}):(0,t.jsx)(t.Fragment,{}),(p||x)&&(0,t.jsxs)(c.Flex,{position:"absolute",top:"0",left:"0",right:"0",bottom:"0",alignItems:"center",justifyContent:"center",flexDirection:"column",p:"20px",bg:"rgba(0, 0, 0, 0.7)",backdropFilter:"blur(8px)",borderRadius:"16px",transition:"all 0.3s ease-in-out",children:[(0,t.jsx)(b.Box,{position:"absolute",top:"10px",right:"10px",onClick:e=>e.stopPropagation(),children:(0,t.jsxs)(eI.Menu,{placement:"bottom-end",isLazy:!0,isOpen:x,onOpen:y,onClose:w,children:[(0,t.jsx)(eU.MenuButton,{as:H.IconButton,"aria-label":"Template options",icon:(0,t.jsx)(G.FiMoreHorizontal,{size:16}),size:"sm",variant:"ghost",color:"white",_hover:{bg:"rgba(255,255,255,0.18)"},_active:{bg:"rgba(255,255,255,0.24)"}}),(0,t.jsx)(eW.Portal,{children:(0,t.jsxs)(eL.MenuList,{minW:"160px",py:"6px",px:"6px",borderRadius:"20px",border:"0.5px solid",borderColor:A,bg:S,boxShadow:eP.CONTEXT_MENU_DROP_SHADOW,onClick:e=>e.stopPropagation(),sx:{backdropFilter:"saturate(180%) blur(20px)",WebkitBackdropFilter:"saturate(180%) blur(20px)"},children:[(0,t.jsx)(eB.MenuItem,{icon:(0,t.jsx)(G.FiEdit2,{size:14,color:k}),fontSize:"13px",fontWeight:"400",color:_,bg:"transparent",borderRadius:"10px",overflow:"hidden",h:"32px",_hover:{bg:v},onClick:l,children:"Edit"}),(0,t.jsx)(eB.MenuItem,{icon:(0,t.jsx)(G.FiTrash2,{size:14,color:F}),fontSize:"13px",fontWeight:"400",color:F,bg:"transparent",borderRadius:"10px",overflow:"hidden",h:"32px",_hover:{bg:D},onClick:s,children:"Delete"})]})})]})}),(0,t.jsx)(u.Button,{bg:"#2D6BE8",color:"white",size:"sm",fontSize:"12px",fontWeight:"600",px:"20px",py:"6px",borderRadius:"6px",onClick:e=>{e.stopPropagation(),a(o)},_hover:{bg:"#1E5AD1",transform:"translateY(-1px)",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.3)"},transition:"all 0.2s ease-in-out",children:"Preview Template"})]})]})}),(0,t.jsx)(g.Text,{mt:"14px",fontSize:"14px",fontWeight:500,children:e})]})}),eR=(0,i.memo)(({isLoading:e,isMineView:r,templates:n,userTemplates:i,previewTemplateUid:o,onSelectTemplate:a,onSelectUserTemplate:l,onRenameUserTemplate:s,onDeleteUserTemplate:d,emptyMessage:u})=>{let h=(0,f.useColorModeValue)("rgba(0,0,0,0.5)","rgba(255,255,255,0.5)");return e?(0,t.jsx)(c.Flex,{h:"80px",align:"center",justify:"center",children:(0,t.jsx)(ew.Spinner,{size:"sm",color:h})}):(r?0===i.length:0===n.length)?(0,t.jsx)(c.Flex,{h:"48px",align:"center",justify:"center",px:"8px",children:(0,t.jsx)(g.Text,{fontSize:"13px",color:h,textAlign:"center",children:u})}):(0,t.jsx)(ey.SimpleGrid,{columns:2,spacing:3,pb:"12px",children:r?i.map(e=>(0,t.jsx)(ej,{title:e.templateName??"Untitled",thumbnail:e.templateThumbnail,templateDarkModeThumbnail:e.templateDarkModeThumbnail,templateUid:e.uid,onSelect:l,selected:e.uid===o,onRename:()=>s(e),onDelete:()=>d(e)}
8,e.uid)):n.map(e=>(0,t.jsx)(eM,{title:e.templateName??"",thumbnail:e.templateThumbnail??void 0,templateDarkModeThumbnail:e.templateDarkModeThumbnail??void 0,thumbnailTitle:e.templateName??"",templateDescription:e.templateDescription??void 0,templateUid:e.uid,onSelect:a,actionLabel:"Preview Template",selected:e.uid===o},e.uid))})}),eN=[{category:"Lifestyle & Personal",templateName:"Inspiration Board"},{category:"Writing",templateName:"Novel Moodboard"},{category:"Product Management",templateName:"Market Research"},{category:"Startups",templateName:"Website Project Plan"},{category:"Productivity",templateName:"Second Brain"},{category:"Software Development",templateName:"Product Launch Task Maganament"},{category:"YouTube",templateName:"YouTube Channel Plan"},{category:"Illustration",templateName:"Website Design Planning"},{category:"Graphic Design",templateName:"Design Exploration"}],eO=e=>(e??"").toLowerCase().replace(/&/g,"and").replace(/[^a-z0-9]+/g," ").trim(),eH=new Map(["Filmmaking","Film & TV","Documentaries","Production Companies","Writing","Content Creation","Graphic Design","Photography","Moodboarding","Creative Direction","Startups","Agencies","Management & Strategy","Brand Strategy","Marketing Strategy","Marketing Campaign","UX & UI Design","Illustration","Fashion Design","Software Development","Product Management","Productivity","Architecture","Interior Design","Makers","School","Students","Lifestyle & Personal"].map((e,t)=>[eO(e),t])),ez=e=>eH.get(eO(e))??Number.MAX_SAFE_INTEGER,eG=(e,t)=>{let r=eO(t);return e.find(e=>eO(e.templateName)===r)??e.find(e=>eO(e.templateName).includes(r))},eV="browse",e$="mine",eJ=()=>{let[e,r]=(0,i.useState)([]),[n,o]=(0,i.useState)([]),[a,l]=(0,i.useState)(eV),[s,d]=(0,i.useState)(""),[x,y]=(0,i.useState)(!0),w=(0,i.useRef)(!0),E=(0,K.useToast)(),[C,T]=(0,i.useState)([]),[S,_]=(0,i.useState)(!1),[v,k]=(0,i.useState)(null),[F,D]=(0,i.useState)(""),[M,I]=(0,i.useState)(null),U=(0,i.useRef)(null),{isOpen:L,onOpen:B,onClose:W}=(0,Y.useDisclosure)(),[P]=(0,ei.useMutation)(ea.UpdateWhiteboardUserTemplateDocument),[R]=(0,ei.useMutation)(ea.DeleteWhiteboardUserTemplateDocument),N=(0,f.useColorModeValue)("rgba(0,0,0,0.5)","rgba(255,255,255,0.5)"),O=(0,f.useColorModeValue)("rgba(0,0,0,0.6)","rgba(255,255,255,0.7)"),H=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),z=(0,f.useColorModeValue)("rgba(0,0,0,0.85)","rgba(255,255,255,0.9)"),ep=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.05)"),em=(0,f.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.08)"),eg=(0,f.useColorModeValue)("rgba(0,0,0,0.28)","rgba(255,255,255,0.28)"),ef=(0,f.useColorModeValue)("white","#1C1C1C"),ex=(0,f.useColorModeValue)("#DFDFDF","#2D2D2D"),ey=(0,f.useColorModeValue)("black","white"),ew=(0,f.useColorModeValue)("#666666","#A0A0A0"),eE=(0,f.useColorModeValue)("#F5F5F5","#2D2D2D"),eC=(0,f.useColorModeValue)("#E5E5E5","#3D3D3D"),eT=(0,i.useRef)(null),eS=(0,i.useRef)(null),eA=(0,i.useCallback)(()=>{let e=eT.current;e&&(e.classList.add("is-scrolling"),eS.current&&clearTimeout(eS.current),eS.current=setTimeout(()=>{eT.current?.classList.remove("is-scrolling")},800))},[]);(0,i.useEffect)(()=>(w.current=!0,(async()=>{let[e,t]=await Promise.all([(0,el.getWhiteboardTemplates)(),(0,es.getWhiteboardTemplateCategoriesWithTemplates)("browse")]);w.current&&(r(e),o(t),y(!1))})(),()=>{w.current=!1}),[]),(0,i.useEffect)(()=>{let e=!0;return(async()=>{_(!0);let t=await (0,ed.getWhiteboardUserTemplates)();e&&(T(t),_(!1))})(),()=>{e=!1}},[]),(0,i.useEffect)(()=>()=>{eS.current&&clearTimeout(eS.current)},[]);let e_=s.trim(),ev=a===e$,ek=!ev&&e_.length>0,eD=!ev&&!ek&&a===eV,eM=!ev&&!ek&&a!==eV,eI=(0,i.useMemo)(()=>{let e,t,r,i=C.find(e=>e.templateThumbnail||e.templateDarkModeThumbnail);return[{id:e$,name:"My Templates",count:C.length,coverThumbnail:i?.templateThumbnail??void 0,coverDarkThumbnail:i?.templateDarkModeThumbnail??void 0},...(e=new Set,t=n.flatMap(e=>
8e.templates??[]),r=new Map,n.forEach(n=>{let i=eN.find(e=>eO(e.category)===eO(n.name));if(!i)return;let o=eG(n.templates??[],i.templateName)??eG(t,i.templateName);o&&(r.set(String(n.categoryId),o),e.add(o.uid))}),[...n].sort((e,t)=>ez(e.name)-ez(t.name)).map(t=>{let n=t.templates??[],i=r.get(String(t.categoryId)),o=i??n.find(t=>!!t.templateThumbnail&&!e.has(t.uid))??n.find(t=>!!t.templateDarkModeThumbnail&&!e.has(t.uid));return o&&!i&&e.add(o.uid),{id:String(t.categoryId),name:t.name??"",count:n.length,coverThumbnail:o?.templateThumbnail??void 0,coverDarkThumbnail:o?.templateDarkModeThumbnail??void 0}}))]},[n,C]),eU=(0,i.useMemo)(()=>n.find(e=>String(e.categoryId)===a)?.name??"",[n,a]),{data:eL,loading:eB}=(0,eo.useQuery)(ea.WhiteboardTemplatesDocument,{variables:{templateCategoryId:Number(a),keyWord:"",limit:0,offset:0,excludeFromExplorer:!0},skip:!eM}),eW=(0,i.useMemo)(()=>{if(ev||eD)return[];if(ek){let t=e_.toLowerCase();return e.filter(e=>(e.templateName??"").toLowerCase().includes(t))}return eL?.whiteboardTemplates??[]},[ev,eD,ek,e_,e,eL]),eP=(0,i.useMemo)(()=>{if(!ev)return[];let e=e_.toLowerCase();return e?C.filter(t=>(t.templateName??"").toLowerCase().includes(e)):C},[ev,e_,C]),ej=ev?S:eM?eB:x,eH=(0,eh.useWhiteboardTemplatePreviewStore)(e=>e.templateUid),eJ=(0,j.useWhiteboardSelectionStore)(e=>e.setIsTemplateGalleryOpen),eK=(0,i.useCallback)(e=>{let t=eW.find(t=>t.uid===e),{elements:r,edges:n}=(0,ec.whiteboardTemplateJsonToStagedElementPreview)(t?.templateJsonString);eh.useWhiteboardTemplatePreviewStore.getState().setPreview(r,n,e,!1)},[eW]),eY=(0,i.useCallback)(e=>{let t=C.find(t=>t.uid===e),{elements:r,edges:n}=(0,ec.whiteboardTemplateJsonToStagedElementPreview)(t?.templateJsonString);eh.useWhiteboardTemplatePreviewStore.getState().setPreview(r,n,e,!0)},[C]),eq=(0,i.useCallback)(e=>{d(""),l(e)},[]),eX=(0,i.useCallback)(()=>{d(""),l(eV)},[]),eQ=(0,i.useCallback)(e=>{k(e),D(e.templateName??"")},[]),eZ=(0,i.useCallback)(e=>{I(e),B()},[B]),e0=(0,i.useCallback)(async()=>{if(!v)return;let e=F.trim()||"Untitled";try{await P({variables:{uid:v.uid,templateName:e}}),await (0,ed.clearWhiteboardUserTemplatesCache)(),T(t=>t.map(t=>t.uid===v.uid?{...t,templateName:e}:t)),k(null)}catch(e){(0,eu.handleGraphQLError)({error:e,toast:E,customMessage:A.SERVER_ERROR_MESSAGE})}},[v,F,P,E]),e1=(0,i.useCallback)(async()=>{if(M)try{await R({variables:{uid:M.uid}}),await (0,ed.clearWhiteboardUserTemplatesCache)(),T(e=>e.filter(e=>e.uid!==M.uid)),eh.useWhiteboardTemplatePreviewStore.getState().templateUid===M.uid&&eh.useWhiteboardTemplatePreviewStore.getState().clearPreview(),W(),I(null)}catch(e){(0,eu.handleGraphQLError)({error:e,toast:E,customMessage:A.SERVER_ERROR_MESSAGE})}},[M,R,E,W]),e5=(0,i.useCallback)(()=>{let e=eh.useWhiteboardTemplatePreviewStore.getState();e.clearPreview(),e.markEmptyBoardSelected()},[]),e2=(0,i.useCallback)(()=>{eh.useWhiteboardTemplatePreviewStore.getState().clearPreview(),eJ(!1)},[eJ]);(0,i.useEffect)(()=>()=>{eh.useWhiteboardTemplatePreviewStore.getState().clearPreview()},[]);let e4=ev?"My Templates":ek?"Results":eU;return(0,t.jsxs)(c.Flex,{direction:"column",h:"100%",w:"100%",children:[(0,t.jsxs)($.InputGroup,{size:"sm",mb:"10px",children:[(0,t.jsx)(J.InputLeftElement,{pointerEvents:"none",h:"34px",children:(0,t.jsx)(G.FiSearch,{size:"14px",color:"currentColor",opacity:.5})}),(0,t.jsx)(V.Input,{value:s,onChange:e=>d(e.target.value),placeholder:"Search templates",h:"34px",fontSize:"13px",borderRadius:"10px",bg:ep,borderColor:em,_focusVisible:{borderColor:em,boxShadow:"none"}})]}),!eD&&(0,t.jsxs)(c.Flex,{align:"center",gap:"6px",mb:"8px",minH:"32px",children:[(0,t.jsxs)(c.Flex,{as:"button",align:"center",gap:"4px",h:"28px",pl:"4px",pr:"8px",borderRadius:"8px",color:O,_hover:{bg:H},onClick:eX,"aria-label":"Back to all templates",children:[(0,t.jsx)(G.FiArrowLeft,{size:"15px"}),(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:500,children:"All templates"})]}),e4&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.Text,{fontSize:"12px",color:N,children:"/"}),(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:600,color:z,noOfLines:1,children:e4})]})]}),(0,t.jsx)(b.Box,{ref:eT,flex:"1",overflowY:"auto",mt:"2px","data-tour":"template-gallery",onScroll:eA,sx:{scrollbarWidth:"thin",scrollbarColor:"transparent transparent","&.is-scrolling":{scrollbarColor:`${eg} transparent`},"&::-webkit-scrollbar":{width:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:"transparent",borderRadius:"3px"},"&.is-scrolling::-webkit-scrollbar-thumb":{background:eg}},children:eD?(0,t.jsx)(eF,{tiles:eI,isLoading:x||S,isEmptySelected:!eH,onGenerateAI:e2,onEmptyBoard:e5,onSelectTile:eq}):(0,t.jsx)(eR,{isLoading:ej,isMineView:ev,templates:eW,userTemplates:eP,previewTemplateUid:eH,onSelectTemplate:eK,onSelectUserTemplate:eY,onRenameUserTemplate:eQ,onDeleteUserTemplate:eZ,emptyMessage:ev?"No saved templates yet. Right-click a board or a folder to save it as a template.":"No templates found."})}),(0,t.jsxs)(h.Modal,{isOpen:!!v,onClose:()=>k(null),isCentered:!0,size:"sm",children:[(0,t.jsx)(q.ModalOverlay,{bg:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)"}),(0,t.jsxs)(m.ModalContent,{bg:ef,borderColor:ex,borderWidth:"1px",borderRadius:"12px",boxShadow:"0px 8px 24px rgba(0, 0, 0, 0.25)",mx:4,children:[(0,t.jsx)(X.ModalHeader,{fontSize:"18px",fontWeight:"600",color:ey,pb:2,children:"Rename template"}),(0,t.jsx)(p.ModalBody,{children:(0,t.jsx)(V.Input,{value:F,onChange:e=>D(e.target.value),placeholder:"Template name",maxLength:50,autoFocus:!0,h:"40px",fontSize:"14px",borderRadius:"8px",color:ey,borderColor:ex,_focusVisible:{borderColor:ex,boxShadow:"none"},onKeyDown:e=>{"Enter"===e.key&&e0()}})}),(0,t.jsxs)(Q.ModalFooter,{gap:3,children:[(0,t.jsx)(u.Button,{onClick:()=>k(null),bg:eE,color:ey,borderRadius:"6px",fontSize:"14px",fontWeight:"500",height:"36px",_hover:{bg:eC},children:"Cancel"}),(0,t.jsx)(u.Button,{onClick:e0,bg:"var(--chakra-colors-brand-500)",color:"white",borderRadius:"6px",fontSize:"14px",fontWeight:"500",height:"36px",_hover:{bg:"var(--chakra-colors-brand-600)"},children:"Save"})]})]})]}),(0,t.jsx)(Z.AlertDialog,{isOpen:L,leastDestructiveRef:U,onClose:()=>{W(),I(null)},isCentered:!0,children:(0,t.jsx)(en.AlertDialogOverlay,{bg:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",children:(0,t.jsxs)(Z.AlertDialogContent,{bg:ef,borderColor:ex,borderWidth:"1px",borderRadius:"12px",boxShadow:"0px 8px 24px rgba(0, 0, 0, 0.25)",mx:4,children:[(0,t.jsx)(er.AlertDialogHeader,{fontSize:"18px",fontWeight:"600",color:ey,pb:2,children:"Delete template"}),(0,t.jsxs)(ee.AlertDialogBody,{fontSize:"14px",color:ew,children:["Are you sure you want to delete â",M?.templateName??"Untitled","â? This action cannot be undone."]}),(0,t.jsxs)(et.AlertDialogFooter,{gap:3,children:[(0,t.jsx)(u.Button,{ref:U,onClick:()=>{W(),I(null)},bg:eE,color:ey,borderRadius:"6px",fontSize:"14px",fontWeight:"500",height:"36px",_hover:{bg:eC},children:"Cancel"}),(0,t.jsx)(u.Button,{onClick:e1,bg:"#E53E3E",color:"white",borderRadius:"6px",fontSize:"14px",fontWeight:"500",height:"36px",_hover:{bg:"#C53030"},children:"Delete"})]})]})})}),(0,t.jsx)(eb,{})]})},eK=({onMinimize:e})=>{let r=(0,f.useColorModeValue)("radial-gradient(ellipse 120% 80% at 50% 20%, #FFFFFF 0%, #FEFEFE 35%, #FCFCFC 60%, #F9F9F9 80%, #F6F6F6 100%)","#1C1C1C"),n=(0,f.useColorModeValue)("rgba(0,0,0,0.9)","rgba(255,255,255,0.95)"),i=(0,f.useColorModeValue)("gray.500","rgba(255,255,255,0.5)"),o=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),a=(0,f.useColorModeValue)("gray.800","rgba(255,255,255,0.9)");return(0,t.jsx)(y.motion.div,{initial:{opacity:0,y:8}
8,animate:{opacity:1,y:0},exit:{opacity:0,y:8},transition:{duration:.18,ease:"easeOut"},style:{position:"absolute",inset:0,zIndex:5,borderRadius:"20px",overflow:"hidden"},children:(0,t.jsxs)(b.Box,{position:"relative",h:"100%",w:"100%",background:r,borderRadius:"20px",children:[(0,t.jsx)(b.Box,{position:"absolute",top:"14px",left:"16px",zIndex:2,children:(0,t.jsx)(g.Text,{fontSize:"14px",fontWeight:600,color:n,children:"Templates"})}),(0,t.jsx)(b.Box,{position:"absolute",top:"14px",right:"14px",zIndex:2,children:(0,t.jsx)(z.Tooltip,{label:"Minimize",placement:"bottom",hasArrow:!0,children:(0,t.jsx)(H.IconButton,{"aria-label":"Minimize sidebar",icon:(0,t.jsx)(G.FiMinus,{size:"16px"}),size:"sm",variant:"ghost",color:i,borderRadius:"8px",minW:"28px",h:"28px",_hover:{bg:o,color:a},onClick:e})})}),(0,t.jsx)(b.Box,{h:"100%",w:"100%",p:"14px",pt:"50px",children:(0,t.jsx)(eJ,{})})]})},"whiteboard-sidebar-template-gallery")};var eY=e.i(929046),eq=e.i(533245),eX=e.i(647842),eQ=e.i(183403),eZ=e.i(571229),e0=e.i(385002),e1=e.i(688779),e5=e.i(881710),e2=e.i(681517),e4=e.i(742566);let e8=/^(-?\d*\.?\d+)px$/,e3=e=>Math.round(100*e)/100,e6=/^calc\((.+) ([+-]) (\d*\.?\d+)px\)$/,e9=(e,t)=>{if(0===t)return e;let r=e.match(e8);if(r)return`${e3(Number.parseFloat(r[1])+t)}px`;if("0"===e)return`${e3(t)}px`;let n=e.match(e6),i=n?n[1]:e,o=e3((n?("-"===n[2]?-1:1)*Number.parseFloat(n[3]):0)+t);return 0===o?i:`calc(${i} ${o<0?"-":"+"} ${Math.abs(o)}px)`};function e7(e,t,r){let[n="0px",i="0px",o]=e&&"none"!==e?(0,e4.topLevelTokens)(e):[],a=e9(n,t),l=e9(i,r);return o?`${a} ${l} ${o}`:`${a} ${l}`}function te(e,t){let r=Math.min(...e.map(e=>e.left)),n=Math.max(...e.map(e=>e.left+e.width)),i=Math.min(...e.map(e=>e.top)),o=Math.max(...e.map(e=>e.top+e.height));return e.map(e=>"left"===t?{dx:r-e.left,dy:0}:"center"===t?{dx:(r+n)/2-(e.left+e.width/2),dy:0}:"right"===t?{dx:n-(e.left+e.width),dy:0}:"top"===t?{dx:0,dy:i-e.top}:"middle"===t?{dx:0,dy:(i+o)/2-(e.top+e.height/2)}:{dx:0,dy:o-(e.top+e.height)})}function tt(e,t){let r=e.map(()=>({dx:0,dy:0}));if(e.length<3)return r;let n=e=>"horizontal"===t?e.left:e.top,i=e=>"horizontal"===t?e.width:e.height,o=e.map((e,t)=>t).sort((t,r)=>n(e[t])-n(e[r])),a=e[o[0]],l=e[o[o.length-1]],s=(n(l)+i(l)-n(a)-o.reduce((t,r)=>t+i(e[r]),0))/(o.length-1),d=n(a);return o.forEach(o=>{let a=d-n(e[o]);r[o]="horizontal"===t?{dx:a,dy:0}:{dx:0,dy:a},d+=i(e[o])+s}),r}e.s(["alignOffsets",0,te,"distributeOffsets",0,tt,"nudgedTranslate",0,e7],160284);var tr=e.i(223094);function tn(e){let t=e.ownerDocument.defaultView?.CSSTransition;t&&e.getAnimations().forEach(e=>{e instanceof t&&e.finish()})}function ti(e,t,r){let n=e.style.cssText;t.forEach(([t,n,i])=>{if("display"===t&&(0,e5.keepDisplayWhileHidden)(e,n))return;let o=e.style.getPropertyValue(t);e.style.setProperty(t,n,i??"");let a=e.style.getPropertyValue(t);(a!==o||a===n)&&(r&&(0,e1.markTypeOverride)(e,t,""!==a),""!==a&&(0,e0.releaseFittedType)(e,t))}),tl(e,n),tn(e)}function to(e,t,r,n){e.forEach(e=>{let i=e.style.getPropertyValue("translate")||e.ownerDocument.defaultView?.getComputedStyle(e).translate;ti(e,[["translate",e7(i??"none",t,r)]],n)})}let ta=/(?:^|;)\s*([a-z][a-z-]*)\s*:\s*(?:!important\s*)?(?=;|$)/g;function tl(e,t){let r=Array.from(e.style.cssText.matchAll(ta),e=>e[1]),n=r.length>0?e.ownerDocument.defaultView?.getComputedStyle(e):void 0;return n?(r.map(r=>({name:r,value:(0,e2.relinkThemeColors)(n.getPropertyValue(r),t,e.ownerDocument),priority:e.style.getPropertyPriority(r)})).forEach(({name:t,value:r,priority:n})=>e.style.setProperty(t,r,n)),r):[]}let ts=e=>Math.round(100*e)/100;function td(e,t){e.getAttribute("style"),null===t?e.removeAttribute("style"):e.setAttribute("style",t)}function tu(e){let t=e.getAttribute("style");return()=>td(e,t)}function tc(e,t){let r=(0,tr.sizeContextOf)(e,t);return{...r,...function(e,t,r){let n=e.ownerDocument.defaultView?.getComputedStyle(e),i=!!n&&"none"!==n.getPropertyValue(`max-${t}`),o=!!n&&!/^(auto|0px)$/.test(n.getPropertyValue(`min-${t}`));if(!i&&!o)return{maxPx:null,minPx:null};let a=Array.from(e.ownerDocument.querySelectorAll("*"),e=>[e,e.scrollTop,e.scrollLeft]).filter(([,e,t])=>e||t),l=tu(e);r&&e.style.setProperty("flex","none","important");let s=r=>
8(e.style.setProperty(t,r,"important"),tn(e),(0,tr.drawnPx)(e,t)),d=i?s("100000px"):null,u=o?s("0px"):null;return l(),tn(e),a.forEach(([e,t,r])=>{e.scrollTop=t,e.scrollLeft=r}),{maxPx:d,minPx:u}}(e,t,"main"===r.flow)}}function th(e,t,r,n){if("percent"!==r&&"fill"!==r||"positioned"===n.flow)return null;let i=e.parentElement;return i&&(0,tr.contentSize)(i,t)>0?null:"content-sized"}function tp(e,t,r,n){if(!(0,eZ.takesSize)(e))return"no-box";if(0===e.getClientRects().length)return"hidden";let i=(0,tr.drawnPx)(e,t),o=tc(e,t),a=th(e,t,r,o);if(a)return a;let l=e.parentElement,s=l?(0,tr.contentSize)(l,t):0,d=tu(e),u=i=>ti(e,(0,tr.sizeModeStyles)(t,r,i,o),n),c=()=>Math.abs((0,tr.drawnPx)(e,t)-i)>1;if("percent"===r){let r="positioned"===o.flow?e.offsetParent??e.ownerDocument.documentElement:null,n=ts(i/((r?"width"===t?r.clientWidth:r.clientHeight:s)||1)*100);u(String(n));let a=(0,tr.drawnPx)(e,t);c()&&a>0&&u(String(n=ts(n*i/a)));let l=!c();u(String(ts(n/2)));let h=c();return(u(String(n)),l&&h)?null:(d(),"content-sized")}return"fill"===r&&"block"===o.flow&&"height"===t&&l?(u(String(Math.round(i))),1>=Math.abs((0,tr.drawnPx)(e,t)-s)&&1>=Math.abs((0,tr.contentSize)(l,t)-s))?null:(d(),"content-sized"):(u(String(Math.round(i))),"fill"===r&&l&&Math.abs((0,tr.contentSize)(l,t)-s)>1)?(d(),"content-sized"):null}function tm(e){let t=tu(e),r=e.style.getPropertyPriority("translate"),n=e.style.getPropertyValue("translate")||e.ownerDocument.defaultView?.getComputedStyle(e).translate,i=e.getBoundingClientRect(),o=(t,o)=>{e.style.setProperty("translate",e7(n??"none",t,o),r),tn(e);let a=e.getBoundingClientRect();return[(a.left-i.left)/100,(a.top-i.top)/100]},[a,l]=o(100,0),[s,d]=o(0,100);return t(),tn(e),{a,b:l,c:s,d}}function tg(e,t,r){let{a:n,b:i,c:o,d:a}=e,l=n*a-o*i;return 1e-6>Math.abs(l)?[t,r]:[(a*t-o*r)/l,(n*r-i*t)/l]}function tf(e,t,r){let{a:n,b:i,c:o,d:a}=e,l=Math.sqrt(Math.abs(n*a-o*i));return n>0&&a>0&&Math.abs(i)<.001*l&&Math.abs(o)<.001*l?[t,r]:tg(e,t*l,r*l)}e.s(["finishTransitions",0,tn,"moveMatrixOf",0,tm,"nudgeElements",0,to,"nudgeFor",0,tf,"restoreStyle",0,td,"roomRefusal",0,th,"settlePendingLonghands",0,tl,"sizeContextForWrite",0,tc,"translateFor",0,tg,"writeElementStyles",0,ti,"writeSizeMode",0,tp],634544);let tb=new Set(["p","h1","h2","h3","h4","h5","h6","pre","button","label","summary"]),tx=new Set([...Array.from(tb),"a"]),ty=new Set(["table","thead","tbody","tfoot","tr","colgroup","ul","ol","dl","menu","optgroup","datalist","details"]),tw={tr:"tr",td:"td,th",th:"td,th",thead:"thead,tbody,tfoot",tbody:"thead,tbody,tfoot",tfoot:"thead,tbody,tfoot",caption:"caption",col:"col",colgroup:"colgroup",li:"li",dt:"dt,dd",dd:"dt,dd",option:"option",source:"source"},tE=["a","button","form"],tC="data-image-slot";function tT(e){let t=e;for(;t.namespaceURI!==eZ.XHTML_NAMESPACE&&t.parentElement&&t.parentElement.namespaceURI!==eZ.XHTML_NAMESPACE;)t=t.parentElement;return t}let tS=e=>e.ownerDocument.defaultView?.getComputedStyle(e),tA=/^(inline|ruby|contents)/,t_=/^(block|flex|grid|table|list-item|flow-root)/;function tv(e){if(e.namespaceURI!==eZ.XHTML_NAMESPACE||tx.has(e.localName)||ty.has(e.localName)||!(0,eZ.holdsText)(e))return!1;let t=tS(e)?.display??"";return!tA.test(t)||"inline-block"===t&&Array.from(e.children).some(e=>(0,eZ.holdsText)(e)&&t_.test(tS(e)?.display??""))}function tk(e){let t=Array.from(e.children).filter(e=>{if((0,eZ.isUndrawnElement)(e))return!1;let t=tS(e);if(!t)return!0;if("none"===t.display||"absolute"===t.position||"fixed"===t.position)return!1;if(e.children.length>0||e.textContent?.trim())return!0;let r=e.getBoundingClientRect();return r.width>0&&r.height>0}),r=1===t.length?t[0]:null;if(!r||!tv(r)||(0,eZ.isEditableTextBlock)(r))return null;if(e===e.ownerDocument.body)return r;let n=tS(r);return n&&(!("none"!==n.backgroundImage||!eZ.TRANSPARENT_COLOUR.test(n.backgroundColor)||"none"!==n.boxShadow||["top","right","bottom","left"].some(e=>"none"!==n.getPropertyValue(`border-${e}-style`)))||r.offsetWidth>=.95*(0,tr.contentSize)(e,"width"))?r:null}function tF(e){for(let t=e.ownerDocument.body;t;t=tk(t))if(t===e)return!0;return!1}let tD=e=>tE.filter(t=>e.some(e=>e.localName===t||e.querySelector(t)));function tM(e,t,r){if(t.some(e=>e in tw)){let r=t.map(e=>tw[e]),n=r.every(e=>e&&e===r[0])?e.closest(r[0]):null;return n?{at:n,inside:!1}:null}let n=e.ownerDocument.body;var i=tF(e)?{at:e===n?function(e){let t=e;for(let e=tk(t);e;e=tk(t))t=e;return t}(e):e,inside:!0}:{at:function(e){let t=e.ownerDocument.body,r=tT(e);for(let e=r,n=r.parentElement;n&&n!==t;e=n,n=n.parentElement)(function(e,t){if(tb.has(e.localName))return!0;let r=tS(e);if(!r||"none"===r.display)return!0;
8if(!(0,eZ.holdsOwnWords)(e))return!1;let n=tS(t);return!(n&&t_.test(n.display)&&"none"===n.getPropertyValue("float")&&"absolute"!==n.position&&"fixed"!==n.position)||(/flex/.test(r.display)?r.flexDirection.startsWith("row"):!!/grid/.test(r.display)&&r.gridTemplateColumns.replace(/\[[^\]]*\]/g,"").trim().split(/\s+/).length>1)})(n,e)&&(r=n);for(;r.parentElement&&r.parentElement!==t&&!tv(r.parentElement);)r=r.parentElement;return r}(e),inside:!1};if(0===r.length)return i;let o=r.join(","),a=(i.inside?i.at:i.at.parentElement)?.closest(o);for(let e=a?.parentElement?.closest(o);e;e=e.parentElement?.closest(o))a=e;return a?{at:a,inside:!1}:i}function tI(e,t){let r=tM(e,t.map(e=>e.localName),tD(t));return!!r&&(r.inside?r.at.append(...t):r.at.after(...t),!0)}function tU(e){let t=`[${tC}]`,r=new Set(Array.from(e.ownerDocument.querySelectorAll(t)).filter(t=>!e.contains(t)).map(e=>e.getAttribute(tC)));[e,...Array.from(e.querySelectorAll(t))].filter(e=>e.hasAttribute(tC)).forEach(e=>{let t=e.getAttribute(tC)?.trim()||"image",n=t.replace(/-\d+$/,"");for(let e=2;r.has(t);e++)t=`${n}-${e}`;r.add(t),e.setAttribute(tC,t)})}function tL(e,t,r){if("text"===t){let t=e.createElement("p");return t.textContent="Text",t}let n=e.createElement("div");return"divider"===t?(n.setAttribute("data-layer-name","Divider"),n.style.cssText="width: 100%; height: 1px; margin: 12px 0; background-color: currentColor; opacity: 0.3;"):n.style.cssText=`width: 120px; height: 120px; background-color: ${r?"var(--deck-accent)":"#D9D9D9"};`,n}function tB(e){return e.filter(e=>!tF(e)).map(e=>{let t=e.cloneNode(!0);return e.after(t),tU(t),t})}e.s(["createLayer",0,tL,"duplicateLayers",0,tB,"freshSlotIds",0,tU,"isPageFrame",0,tF,"layerOf",0,tT,"nestingOf",0,tD,"placeLayers",0,tI,"placementAt",0,tM],777062);let tW=/var\(\s*(--[\w-]+)/g,tP=e=>Array.from(e.matchAll(tW),e=>e[1]),tj=(e,t)=>e.ownerDocument.defaultView?.getComputedStyle(e).getPropertyValue(t).trim()??"",tR=[];function tN(e){tR=e.map(e=>{let t=new Set([e,...Array.from(e.querySelectorAll("[style]"))].flatMap(e=>tP(e.getAttribute("style")??"")));return{html:e.outerHTML,tag:e.localName,nesting:tD([e]),variables:Array.from(t,t=>[t,tj(e,t)])}})}let tO=["color","-webkit-text-fill-color","font-family","font-size","font-weight","font-style","line-height","letter-spacing","text-transform","text-decoration-line","text-align"],tH=["background-color","background-image","background-size","background-position","background-repeat","background-clip","-webkit-background-clip",...["top","right","bottom","left"].flatMap(e=>[`border-${e}-width`,`border-${e}-style`,`border-${e}-color`]),"border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","box-shadow","opacity"],tz=/^-webkit-[a-z-]+$/,tG=/^(border-(?:top|right|bottom|left))-(?:width|color)$/,tV=/^(none|0px|rgba\(0, 0, 0, 0\)|transparent|1|auto|repeat|0% 0%|border-box)$/,t$=e=>[e.getPropertyValue("background-clip"),e.getPropertyValue("-webkit-background-clip")].some(e=>e.includes("text")),tJ=[],tK=(e,t)=>e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1,tY=e=>(0,e5.outermostLayers)(e.selectedEls.filter(e=>tT(e)===e)).sort(tK);function tq(e,t){e.selectEl(t[0]??null),t.slice(1).forEach(e.toggleSelectEl)}function tX(e){e.markDirty(),e.bump(),e.markLayersChanged()}let tQ=e=>e.selectedEls.length>0?[...e.selectedEls].sort(tK)[e.selectedEls.length-1]:null;function tZ(e){let t=eq.useCanvasToolHtmlEmbedDesignStore.getState(),r=tQ(t);if(!r)return;let n=tL(r.ownerDocument,e,!!t.readOwningDeck);tI(r,[n])&&(t.selectEl(n),tX(t),"text"===e&&t.editText?.(n))}function t0(){let e=eq.useCanvasToolHtmlEmbedDesignStore.getState(),t=tB(tY(e));0!==t.length&&(tq(e,t),tX(e))}function t1(){let e=tY(eq.useCanvasToolHtmlEmbedDesignStore.getState());e.length>0&&tN(e)}function t5(){let e=eq.useCanvasToolHtmlEmbedDesignStore.getState(),t=tY(e);0!==t.length&&(tN(t),t.forEach(e=>e.remove()),e.selectEl(null),tX(e))}function t2(){let e,t,r,n=eq.useCanvasToolHtmlEmbedDesignStore.getState(),i=tQ(n),o=i?(e=i.ownerDocument.createElement("template"),tI(i,r=(t=tR.map(({html:t,variables:r})=>(e.innerHTML=t,{layers:Array.from(e.content.children),variables:r}))).flatMap(e=>
8e.layers))?(t.forEach(e=>e.layers.forEach(t=>{tU(t),e.variables.forEach(([e,r])=>{r&&!tj(t,e)&&t.style.setProperty(e,r)})})),r):null):null;o&&0!==o.length&&(tq(n,o),tX(n))}function t4(){let e=eq.useCanvasToolHtmlEmbedDesignStore.getState().selectedEl;e&&function(e){let t=e.ownerDocument.defaultView?.getComputedStyle(e);if(!t)return;let r=(0,eZ.isEditableTextBlock)(e),n=t$(t);tJ=[...r||n?tO:[],...tH].flatMap(i=>{let o=e.style.getPropertyValue(i),a=t.getPropertyValue(i);if(!o&&"font-family"===i&&tz.test(a)||"-webkit-text-fill-color"===i&&a===t.color)return[];let l=tG.exec(i);if(l&&"none"===t.getPropertyValue(`${l[1]}-style`)||r&&tH.includes(i)&&tV.test(a))return[];let s=o.includes("var(")?o:(0,e2.relinkThemeColors)(a,e.style.cssText,e.ownerDocument),d=n&&(i.includes("background-")||("color"===i||"-webkit-text-fill-color"===i)&&eZ.TRANSPARENT_COLOUR.test(a));return!r&&tO.includes(i)&&!d?[]:[{prop:i,value:s,computed:a,type:tO.includes(i),gradient:d}]})}(e)}function t8(){let e=eq.useCanvasToolHtmlEmbedDesignStore.getState();0!==e.selectedEls.filter(t=>{let r,n,i,o,a,l,s,d,u=(r=t.ownerDocument.defaultView?.getComputedStyle(t),n=(0,eZ.isEditableTextBlock)(t),i=t.hasAttribute("data-image-slot"),o=!!r&&t$(r),a=!!r&&("none"!==r.backgroundImage||!eZ.TRANSPARENT_COLOUR.test(r.backgroundColor)),l=n&&!i&&(o||!a),s=e=>e.computed===r?.getPropertyValue(e.prop),d=tJ.filter(e=>e.gradient).every(s),tJ.filter(e=>(({prop:e,type:t,gradient:r})=>r?l:(!t||!!n)&&(!e.includes("background-")||!i&&!o))(e)&&(e.gradient?!d:!s(e))).map(({prop:e,value:r,computed:n})=>[e,tP(r).every(e=>""!==tj(t,e))?r:n]));return u.length>0&&ti(t,u,!!e.readOwningDeck),u.length>0}).length&&(e.markDirty(),e.bump(),e.markRestyled())}let t3={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},t6=new WeakMap,t9=e=>{let t=t6.get(e);if(t)return t;let r=tm(e);return t6.set(e,r),r},t7={c:t1,x:t5,v:t2,d:t0},re={c:t4,v:t8};function rt(e,t=!0){let r=function(e){let t,r,n=(0,e5.layerMoveForKey)(e);if(n)return()=>{let e,t,r,i,o,a;return t=(e=eq.useCanvasToolHtmlEmbedDesignStore.getState()).selectedEls.filter(eZ.isRemovableLayer).sort(tK),r=e=>[e.previousElementSibling,e.nextElementSibling],i=t.map(r),o="forward"===n||"back"===n?[...t].reverse():t,a=new Set(t),void(o.forEach(e=>{let t="forward"===n?e.nextElementSibling:"backward"===n?e.previousElementSibling:null;null!==t&&a.has(t)||(0,e5.moveLayer)(e,n)}),t.some((e,t)=>r(e).some((e,r)=>e!==i[t][r]))&&(e.markDirty(),e.bump(),e.markLayersChanged()))};if(!(e.metaKey||e.ctrlKey)||e.shiftKey||e.getModifierState?.("AltGraph"))return null;let i=e.altKey&&e.code.startsWith("Key")?e.code.slice(3).toLowerCase():e.key.toLowerCase(),o=(e.altKey?re:t7)[i];if(!o||e.altKey||"c"!==i&&"x"!==i)return o??null;if(t=e.target,r=t?.ownerDocument??t,(r?.getSelection?.()?.toString().trim()??"")!=="")return null;let a=function(){let{textRange:e,selectedEl:t}=eq.useCanvasToolHtmlEmbedDesignStore.getState();return e&&!e.collapsed&&t?.contains(e.commonAncestorContainer)?e.toString():""}();return a.trim()?"x"===i?()=>{}:()=>{navigator.clipboard.writeText(a).catch(e=>console.error("Couldn't copy the selected words",e))}:o}(e);return!!r&&(e.preventDefault(),e.stopPropagation(),t&&r(),!0)}function rr(e){let t=t3[e.key];return!t||e.metaKey||e.ctrlKey||e.altKey?rt(e):(!function(e,[t,r]){e.preventDefault(),e.stopPropagation();let n=eq.useCanvasToolHtmlEmbedDesignStore.getState(),i=(0,e5.movableLayers)(n.selectedEls);if(0===i.length)return;let o=e.shiftKey?10:1;e.repeat||(t6=new WeakMap);let a=i.map(t9);i.forEach((e,i)=>{let[l,s]=tf(a[i],t*o,r*o);to([e],l,s,!!n.readOwningDeck)}),n.markDirty(),n.bump()}(e,t),!0)}e.s(["handleDesignEditorChord",0,rt,"handleDesignEditorKey",0,rr],802741);var rn=e.i(349060),ri=e.i(682281),ro=e.i(236532);function ra(e){return e.hasAttribute("data-image-slot")}function rl(e){return ra(e)?e.getAttribute("data-image-label")||"Picture":null}function rs(e){let t=e.replace(/["()\\]/g,encodeURIComponent);return`url("${t}")`}e.s(["cssUrl",0,rs,"fillImageSlot",0,function(e,t){e.style.setProperty("background-image",rs(t)),e.style.setProperty("background-size","cover"),e.style.setProperty("background-position","center"),e.style.setProperty("background-repeat","no-repeat")},"imageSlotAt",0,function(e){let t=e;for(let e=0;t&&e<6;e++){if(ra(t))return t;t=t.parentElement}return null},"imageSlotLabel",0,rl,"isImageSlot",0,ra,"isImageSlotFilled",0,function(e){let t=e.style.backgroundImage;return""!==t&&"none"!==t}],381704);let rd=(e,t,r)=>
8Math.min(r,Math.max(t,e)),ru=(e,t=2)=>Math.round(e*10**t)/10**t,rc=e=>Math.abs(e)>=.5,rh=/url\(\s*(["']?)(.*?)\1\s*\)/,rp=e=>e.match(rh)?.[2]||null;function rm(e,t,r=1){let n=Math.max(t.width/e.width,t.height/e.height)*r;return{width:e.width*n,height:e.height*n}}let rg=/^(\d*\.?\d+)%(?:\s+(auto|\d*\.?\d+%))?$/,rf=e=>{let t=e.match(rg);return t&&(!t[2]||"auto"===t[2])?Number.parseFloat(t[1]):null};function rb(e,t,r){return r<=1?"cover":`${ru(rm(e,t,r).width/t.width*100)}% auto`}function rx(e,t,r){let n=rf(e);if(null===n)return e;if(!t)return"cover";let i=rm(t,r).width-r.width*n/100;return i>0&&rc(i)?e:"cover"}function ry(e,t,r){if("cover"===r)return rm(e,t);if("contain"===r){let r=Math.min(t.width/e.width,t.height/e.height);return{width:e.width*r,height:e.height*r}}if("auto"===r||"auto auto"===r)return e;let n=r.match(rg);if(n){let r=t.width*Number.parseFloat(n[1])/100,i=n[2]&&"auto"!==n[2]?t.height*Number.parseFloat(n[2])/100:r*e.height/e.width;return{width:r,height:i}}return null}function rw(e,t,r){let n=rf(e);return null===n?1:rd(ru(r.width*n/100/rm(t,r).width),1,4)}let rE=/^calc\((-?\d*\.?\d+)%\s*([+-])\s*(\d*\.?\d+)px\)$/;function rC(e,t,r){let[n="50%",i="50%"]=e.match(/calc\([^)]*\)|\S+/g)??[],o=(e,t)=>{if(!rc(t))return 50;let r=e.match(rE);if(r)return rd(ru((Number.parseFloat(r[1])/100*t+("-"===r[2]?-1:1)*Number.parseFloat(r[3]))/t*100,1),0,100);let n=Number.parseFloat(e);return Number.isFinite(n)?rd(e.endsWith("%")?n:n/t*100,0,100):50};return{x:o(n,r.width-t.width),y:o(i,r.height-t.height)}}function rT(e,t,r,n){let i=(e,t,r)=>rc(r)?rd(e+t/r*100,0,100):e;return{x:ru(i(e.x,t.dx,n.width-r.width),1),y:ru(i(e.y,t.dy,n.height-r.height),1)}}function rS(e,t,r,n,i){let o=(e,t,r,n)=>rd((e-t/100*n)/r,0,1);return{u:o(e,r.x,n.width,i.width-n.width),v:o(t,r.y,n.height,i.height-n.height)}}function rA(e,t,r,n){let i=(e,t,r)=>{let n=r-t;return rc(n)?ru(rd((r/2-e*t)/n*100,0,100),1):50};return{x:i(e,r.width,n.width),y:i(t,r.height,n.height)}}let r_=null,rv=(e,t)=>{r_={url:e,size:t}},rk=e=>({width:e.clientWidth,height:e.clientHeight}),rF=e=>{let t=e.ownerDocument.defaultView?.getComputedStyle(e);return t?rp(t.backgroundImage):null};function rD(e){let t=e.ownerDocument.defaultView?.getComputedStyle(e),r=rF(e),n=r&&r_?.url===r?r_.size:null;if(!t||!r||!n||t.backgroundOrigin.split(",").some(e=>"padding-box"!==e.trim()))return null;let i=rw((0,e4.pictureLayerOf)(t).backgroundSize,n,rk(e));return i>1?{url:r,natural:n,zoom:i}:null}let rM=(e,t)=>rF(e)===t.url;function rI(e,t){let r=e.ownerDocument.defaultView?.getComputedStyle(e),n=rk(e);if(!r||!rM(e,t)||n.width<=0||n.height<=0)return null;let i=rb(t.natural,n,t.zoom);return["background-size",(0,e4.atPictureLayer)(r.backgroundImage,r.backgroundSize,i)]}e.s(["MAX_ZOOM",0,4,"backgroundImageUrl",0,rp,"centredOn",0,rA,"fitOf",0,rx,"focalPointOf",0,rC,"hasRoom",0,rc,"keptZoomSize",0,rI,"paintedSize",0,ry,"panFocalPoint",0,rT,"picturePointAt",0,rS,"rememberNaturalSize",0,rv,"stillPictured",0,rM,"zoomOf",0,rw,"zoomToKeep",0,rD,"zoomedBackgroundSize",0,rb],613183);let rU=/^\s*\n\s*$/,rL=e=>{let t=e.parentElement;return t&&"span"===t.localName&&1===t.childNodes.length?t:null},rB=/^(inline-)?(flex|grid)$/,rW=(e,t)=>(t!==e.startContainer||!(e.startOffset>=t.length))&&(t!==e.endContainer||0!==e.endOffset)&&e.comparePoint(t,t.length)>=0&&0>=e.comparePoint(t,0),rP=new Set(["background-image","background-size","background-position","background-repeat"]);var rj=e.i(453548),rR=e.i(20740),rN=e.i(689389),rO=e.i(509563),rH=e.i(785520);let rz=()=>{let{iframe:e,readOwningDeck:t}=eq.useCanvasToolHtmlEmbedDesignStore.getState(),r=e?.contentDocument,n=!!t;if(!r)return{onSlide:n,theme:[],page:[]};let i=n?(0,e2.deckSwatches)(r):[],o=(0,e2.pageColors)([r],e=>!i.some(t=>t.hex===e)).map(e=>e.toLowerCase());return{onSlide:n,theme:i,page:o}},rG=({hex:e,onPick:r})=>{let{labelColor:n,textColor:o}=(0,rH.useFieldTheme)(),a=(0,f.useColorModeValue)("rgba(0,0,0,0.10)","rgba(255,255,255,0.12)"),l=(0,f.useColorModeValue)("rgba(0,0,0,0.12)","rgba(255,255,255,0.16)"),[{onSlide:s,theme:d,page:u}]=(0,i.useState)(rz);return(0,t.jsx)(rO.default,{title:"Color",initialColor:e.toLowerCase(),customColors:u,onColorChange:r,commitDelayMs:0,showReset:!1,containerMarginX:"0",beforeSwatches:(0,t.jsxs)(b.Box,{w:"100%",children:[d.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.Text,{fontSize:"10.5px",fontWeight:500,color:n,mb:"5px",children:"Theme"}),(0,t.jsx)(ey.SimpleGrid,{columns:2,spacing:"6px",mb:"10px",children:d.map(n=>(0,t.jsxs)(c.Flex,{as:"button",type:"button",onClick:()=>r(n.value),"aria-pressed":n.hex===e,"aria-label":`Use the theme's ${n.label.toLowerCase()} color`,align:"center",gap:"7px",h:"28px",px:"8px",borderRadius:"7px",border:"1px solid",borderColor:n.hex===e?"var(--chakra-colors-brand-500)":a,children:[(0,t.jsx)(b.Box,{boxSize:"14px",borderRadius:"4px",bg:n.hex,boxShadow:`inset 0 0 0 1px ${l}`,flexShrink:0}),(0,t.jsx)(g.Text,{fontSize:"11px",fontWeight:500,color:o,noOfLines:1,children:n.label})]},n.value))})]}),u.length>0&&(0,t.jsx)(g.Text,{fontSize:"10.5px",fontWeight:500,color:n,mb:"5px",children:s?"On this
8slide":"On this page"})]})})},rV=({value:e,onCommit:r})=>{let{labelColor:n,textColor:i,fieldBorderSx:o}=(0,rH.useFieldTheme)(),a=(0,f.useColorModeValue)("rgba(0,0,0,0.12)","rgba(255,255,255,0.16)"),l=(0,f.useColorModeValue)("#FFFFFF","#1E1E1E"),s=(0,f.useColorModeValue)("#E5E5E5","#2E2E2E"),{hex:d,alpha:u}=(0,e4.parseColor)(e),h=""===d,{cursor:p,handlers:m}=(0,rH.useNumberScrub)({value:u,onScrub:e=>{d&&r((0,e4.buildColor)(d,e))},min:1,max:100});return(0,t.jsxs)(c.Flex,{align:"center",gap:"8px",borderRadius:"10px",px:"8px",h:"38px",sx:o,_focusWithin:{borderColor:"var(--chakra-colors-brand-500)"},children:[(0,t.jsxs)(rj.Popover,{placement:"bottom-start",isLazy:!0,children:[(0,t.jsx)(rN.PopoverTrigger,{children:(0,t.jsxs)(c.Flex,{as:"button",type:"button","aria-label":"Choose color",align:"center",gap:"10px",flex:"1",minW:0,cursor:"pointer",children:[(0,t.jsx)(b.Box,{boxSize:"24px",borderRadius:"7px",flexShrink:0,bg:h?"transparent":d,opacity:h?1:Math.max(u,8)/100,backgroundImage:h?"linear-gradient(45deg, rgba(127,127,127,0.28) 25%, transparent 25% 75%, rgba(127,127,127,0.28) 75%), linear-gradient(45deg, rgba(127,127,127,0.28) 25%, transparent 25% 75%, rgba(127,127,127,0.28) 75%)":void 0,backgroundSize:h?"8px 8px":void 0,backgroundPosition:h?"0 0, 4px 4px":void 0,boxShadow:`inset 0 0 0 1px ${a}`}),(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:500,letterSpacing:"0.02em",color:h?n:i,flex:"1",minW:0,textAlign:"left",children:h?"None":d.replace(/^#/,"")})]})}),(0,t.jsx)(eW.Portal,{children:(0,t.jsx)(rR.PopoverContent,{w:"290px",p:"12px",bg:l,borderColor:s,borderRadius:"12px",boxShadow:"0 8px 24px rgba(0,0,0,0.18)",children:(0,t.jsx)(rG,{hex:d,onPick:e=>r(e.startsWith("var(")?e:(0,e4.buildColor)(e,0===u?100:u))})})})]}),!h&&(0,t.jsxs)(c.Flex,{align:"center",gap:"2px",flexShrink:0,pl:"4px",cursor:p,sx:{touchAction:"pan-y"},...m,children:[(0,t.jsx)(V.Input,{type:"number",min:0,max:100,variant:"unstyled",cursor:p,value:String(u),onChange:e=>{""!==e.target.value&&r((0,e4.buildColor)(d,Math.max(0,Math.min(100,Number(e.target.value)||0))))},"aria-label":"Color opacity",w:"30px",textAlign:"right",fontSize:"12px",color:i,sx:{"&::-webkit-inner-spin-button":{appearance:"none"},appearance:"textfield"}}),(0,t.jsx)(g.Text,{fontSize:"12px",color:n,userSelect:"none",children:"%"})]})]})};var r$=e.i(924095);let rJ=[{alignment:"left",icon:r$.TbLayoutAlignLeft,label:"Align left edges"},{alignment:"center",icon:r$.TbLayoutAlignCenter,label:"Align centres"},{alignment:"right",icon:r$.TbLayoutAlignRight,label:"Align right edges"},{alignment:"top",icon:r$.TbLayoutAlignTop,label:"Align top edges"},{alignment:"middle",icon:r$.TbLayoutAlignMiddle,label:"Align middles"},{alignment:"bottom",icon:r$.TbLayoutAlignBottom,label:"Align bottom edges"}],rK=[{axis:"horizontal",icon:r$.TbLayoutDistributeHorizontal,label:"Space evenly across"},{axis:"vertical",icon:r$.TbLayoutDistributeVertical,label:"Space evenly down"}],rY=e=>{let{left:t,top:r,width:n,height:i}=e.getBoundingClientRect();return{left:t,top:r,width:n,height:i}};function rq(e){let t=eq.useCanvasToolHtmlEmbedDesignStore.getState(),r=(0,e5.movableLayers)(t.selectedEls),n=e(r.map(rY));0!==r.filter((e,r)=>{let{dx:i,dy:o}=n[r];if(0===i&&0===o)return!1;let[a,l]=tg(tm(e),i,o);return to([e],a,l,!!t.readOwningDeck),!0}).length&&(t.markDirty(),t.bump())}let rX=()=>{let{labelColor:e,textColor:r}=(0,rH.useFieldTheme)(),n=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>(0,e5.movableLayers)(e.selectedEls).length),i=(n,i,o,a,l)=>(0,t.jsx)(H.IconButton,{"aria-label":i,title:i,icon:(0,t.jsx)(o,{size:"15px"}),size:"sm",h:"30px",minW:"30px",variant:"ghost",borderRadius:"8px",color:e,_hover:{color:r},isDisabled:l,onClick:a},n);return(0,t.jsxs)(c.Flex,{align:"center",gap:"2px",wrap:"wrap",mb:"12px",children:[rJ.map(({alignment:e,icon:t,label:r})=>i(e,r,t,()=>rq(t=>te(t,e)),n<2)),(0,t.jsx)(b.Box,{w:"1px",h:"18px",mx:"4px",bg:e,opacity:.3}),rK.map(({axis:e,icon:t,label:r})=>i(e,r,t,()=>rq(t=>tt(t,e)),n<3))]})},rQ=({width:e,color:r,side:n,onSide:i,onWidth:o,onColor:a})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(rH.Row,{label:"Width",children:(0,t.jsxs)(c.Flex,{gap:"6px",children:[(0,t.jsx)(rH.NumberField,{value:e,onCommit:o}),(0,t.jsx)(rH.SelectField,{value:n,options:e4.BORDER_SIDE_OPTIONS,onCommit:e=>i(e)})]})}),(0,t.jsx)(rH.Row,{label:"Color",children:(0,t.jsx)(rV,{value:r,onCommit:a})})]});var rZ=e.i(935004),r0=e.i(282723),r1=e.i(182227);e.i(762593);var r5=e.i(33952),r2=e.i(297362),r4=e.i(334540);let r8=()=>new Promise(e=>{let t=document.createElement("input");t.type="file",t.accept=r0.IMAGE_UPLOAD_ACCEPT_ATTRIBUTE,t.style.display="none";let r=r=>{t.remove(),e(r)};t.addEventListener("change",()=>r(t.files?.[0]??null),{once:!0}),t.addEventListener("cancel",()=>r(null),{once:!0}),document.body.appendChild(t),t.click()});function r3(){let[e,t]=(0,i.useState)(!1),r=(0,K.useToast)(),{startUpload:n,updateUploadProgress:o,completeUpload:a,failUpload:s}=(0,l.default)(),{currentUser:d}=(0,eg.useCurrentUser)(),{showInsufficientSubscriptionDialog:u}=(0,r4.default)(),{confirmUserFileUploadAfterS3:c}=(0,r2.useUserFileUploadGalleryMutations)(),[h]=(0,ei.useMutation)(ea.GenerateMediaUploadUrlDocument),p=(0,i.useCallback)(async(e,l)=>{let p=(0,r5.maxSingleAttachmentFileBytes)(d?.subscriptionLevel,e);if(e.size>p)return!d||(d.subscriptionLevel??0)<=r1.FREE_PLAN?u({title:(0,r5.paidUploadSizePitch)(e),body:""}):r({render:({onClose:e})=>(0,i.createElement)(em.PillToast,{title:"That picture is too large",description:`The limit is ${(0,r5.formatAttachmentFileSizeLimit)(p)} per file.`,onClose:e})}),null;t(!0);let m=n({name:e.name,sizeBytes:e.size});try{let{data:t}=await h({variables:{resourceType:ea.MediaUploadResourceType.Project,mediaType:ea.MediaUploadMediaType.File,fileName:e.name,fileSizeBytes:e.size}}),r=t?.generateMediaUploadUrl?.url,n=t?.generateMediaUploadUrl?.fileName;if(!r||!n)throw Error("Missing signed upload URL");let{url:i,fields:s}=JSON.parse(r),d=new FormData;
8Object.entries(s).forEach(([e,t])=>d.append(e,t)),d.append("file",e);let u=await rZ.default.post(i,d,{headers:{"Content-Type":e.type},onUploadProgress:e=>{let t=e.total?Math.round(e.loaded/e.total*100):0;o(m,t),l?.(t)}});if(204!==u.status)throw Error(`Unexpected upload status ${u.status}`);return a(m),c({file:e,filePath:n,uploadType:ea.UserFileUploadGalleryType.WhiteboardProjectFile}),(0,e_.getMainCdnImageUrl)(n)}catch(e){return console.error("Failed to upload picture:",e),s(m),r({render:({onClose:e})=>(0,i.createElement)(em.PillToast,{title:"Couldn't upload that picture",description:"The slot was left as it was. Try again in a moment.",onClose:e})}),null}finally{t(!1)}},[h,r,n,o,a,s,d,u,c]),m=(0,i.useCallback)(async()=>{let e=await r8();return e?p(e):null},[p]);return{pickFile:r8,pickPicture:m,uploadPicture:p,isUploading:e}}e.s(["useHtmlEmbedPictureUpload",0,r3],620458);var r6=e.i(563026);let r9={x:50,y:50},r7={ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1}},ne=e=>eq.useCanvasToolHtmlEmbedDesignStore.getState().selectedEl===e.target,nt=({target:e,backgroundImage:r,backgroundSize:n,backgroundPosition:o,width:a=0,height:l=0,interactive:s,onPosition:d,onSize:h})=>{let{inputBg:p,labelColor:m,textColor:x}=(0,rH.useFieldTheme)(),y=(0,f.useColorModeValue)("rgba(0,0,0,0.12)","rgba(255,255,255,0.16)"),w=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),E=a&&l?`${a} / ${l}`:"16 / 9",C=a&&l?{base:`${200*a/l}px`,md:`${400*a/l}px`}:void 0,T=rp(r),S=!!T&&(0,r6.canHtmlEmbedPaint)(T),A=function(e){let[t,r]=(0,i.useState)(null);return(0,i.useEffect)(()=>{if(!e)return;let t=!1,n=new Image;return n.onload=()=>{if(!t&&n.naturalWidth>0&&n.naturalHeight>0){let t={width:n.naturalWidth,height:n.naturalHeight};rv(e,t),r({url:e,size:t})}},n.src=e,()=>{t=!0,n.onload=null,n.src=""}},[e]),t&&t.url===e?t.size:null}(S?T:null),_={width:a,height:l},v=A&&a>0&&l>0?A:null,k=v?ry(v,_,n):null,F=k?rC(o,k,_):r9,D=v?rw(n,v,_):1,M=!!k&&(rc(a-k.width)||rc(l-k.height)),I=s&&M,U=D>1||M&&(F.x!==r9.x||F.y!==r9.y),L=rx(n,v,_),B=e4.BACKGROUND_FIT_OPTIONS.includes(L)?e4.BACKGROUND_FIT_OPTIONS:[...e4.BACKGROUND_FIT_OPTIONS,{value:L,label:"Custom"}],W=(0,i.useRef)(null),P=(0,i.useRef)(null),j=(0,i.useRef)(null),R=(0,i.useRef)(null),N=(0,i.useRef)(null),[O,H]=(0,i.useState)(null),z=O??F,G=(0,i.useRef)(null),V=(0,i.useCallback)(()=>{null!==j.current&&clearTimeout(j.current),null!==R.current&&cancelAnimationFrame(R.current),j.current=null,R.current=null,N.current=null,P.current=null},[]);(0,i.useEffect)(()=>(H(null),G.current=null,V),[e,V]),(0,i.useEffect)(()=>{let e=W.current;if(!e)return;let t=e=>{P.current?.started&&e.preventDefault()};return e.addEventListener("touchmove",t,{passive:!1}),()=>e.removeEventListener("touchmove",t)},[]);let $=()=>{let e=P.current,t=N.current;V(),H(null),e?.started&&(G.current=null),e?.started&&t&&ne(e)&&d(t,!0)},J=e=>{P.current?.pointerId===e.pointerId&&$()};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(b.Box,{ref:W,sx:{aspectRatio:E,touchAction:I?"pan-y":"auto"},maxH:{base:"200px",md:"400px"},maxW:C,mx:"auto",mb:"10px",borderRadius:"8px",bg:p,style:{backgroundImage:S&&T?rs(T):void 0,backgroundSize:k?`${k.width/a*100}% ${k.height/l*100}%`:"auto"===n?"contain":n,backgroundPosition:`${z.x}% ${z.y}%`},backgroundRepeat:"no-repeat",boxShadow:`inset 0 0 0 1px ${y}`,cursor:I?O?"grabbing":"grab":void 0,tabIndex:I?0:void 0,onPointerDown:t=>{if(!I||0!==t.button||P.current)return;let r=t.currentTarget,n={target:e,pointerId:t.pointerId,x:t.clientX,y:t.clientY,point:F,pagePxPerPreviewPx:a/r.getBoundingClientRect().width,started:!1};(P.current=n,"touch"!==t.pointerType)?r.setPointerCapture(t.pointerId):j.current=setTimeout(()=>{j.current=null,P.current===n&&(n.started=!0,r.setPointerCapture(n.pointerId),H(n.point))},250)},onPointerMove:e=>{let t=P.current;if(!t||t.pointerId!==e.pointerId||!k)return;let r=e.clientX-t.x,n=e.clientY-t.y;if(!t.started){if("touch"===e.pointerType){Math.hypot(r,n)>5&&V();return}if(3>Math.hypot(r,n))return;t.started=!0}"mouse"===e.pointerType&&0===e.buttons?$():(N.current=rT(t.point,{dx:r*t.pagePxPerPreviewPx,dy:n*t.pagePxPerPreviewPx},k,_),null===R.current&&(R.current=requestAnimationFrame(()=>{R.current=null;let e=N.current;e&&ne(t)&&(H(e),d(e,!1))})))},onPointerUp:t=>{let r=P.current;if(r?.pointerId===t.pointerId){if(!r.started&&!t.ctrlKey&&k&&ne(r)){let r=t.currentTarget.getBoundingClientRect(),n=rS((t.clientX-r.left)*a/r.width,(t.clientY-r.top)*l/r.height,F,k,_),i=rA(n.u,n.v,k,_);G.current={target:e,url:T,framed:i,...n},(i.x!==F.x||i.y!==F.y)&&d(i,!0)}$()}},onPointerCancel:J,onLostPointerCapture:J,onKeyDown:e=>{let t=r7[e.key];if(!I||!k||!t)return;e.preventDefault(),e.stopPropagation();let r=(e.shiftKey?5:1)*5;G.current=null,d(rT(F,{dx:t.dx*r,dy:t.dy*r},k,_),!0)},role:"img","aria-label":I?"Current picture. Tap what it should be framed around, drag it, or use the arrow keys, to move it inside its frame":"Current picture"}),(0,t.jsx)(rH.Row,{label:"Fit",children:(0,t.jsx)(rH.SelectField,{value:L,options:B,onCommit:h})}),s&&A&&k&&"cover"===L&&(0,t.jsx)(rH.Row,{label:"Zoom",children:(0,t.jsxs)(c.Flex,{align:"center",gap:"12px",children:[(0,t.jsx)(ro.default,{value:Math.round(100*D),min:100,max:400,step:5,onChange:t=>{let r;if(!A||!k)return;let n=rb(A,_,t/100),i=ry(A,_,n),o=(r=G.current)&&r.target===e&&r.url===T&&r.framed.x===F.x&&r.framed.y===F.y?r:null,s=o??rS(a/2,l/2,F,k,_),d=i?rA(s.u,s.v,i,_):void 0;o&&d&&(G.current={...o,framed:d}),h(n,d)},flex:"1","aria-label":"Zoom"}),(0,t.jsxs)(g.Text,{fontSize:"11px",color:m,w:"34px",textAlign:"right",children:[Math.round(100*D),"%"]})]})}),s&&U&&(0,t.jsx)(c.Flex,{justify:"flex-end",mt:"-6px",mb:"8px",children:(0,t.jsx)(u.Button,{variant:"ghost",size:"xs",fontSize:"11px",fontWeight:500,color:m,_hover:{color:x,bg:w},onClick:()=>{G.current=null,D>1&&h("cover"),d(r9,!0)},children:"Reset framing"})})]})},nr=[{value:"solid",label:"Solid"},{value:"gradient",label:"Gradient"},{value:"image",label:"Image"}],nn=({backgroundColor:e,backgroundImage:r,backgroundSize:n,backgroundPosition:o,width:a,height:l,isImageSlot:s,target:d,isSingle:h,onApplyColor:p,onApplyGradient:m,onPickImage:g,onFit:x,onPosition:y,onClearImage:w})=>{let{labelColor:E,textColor:C}=(0,rH.useFieldTheme)(),T=(0,f.useColorModeValue)("rgba(0,0,0,0.12)","rgba(255,255,255,0.16)"),S=(0,f.useColorModeValue)("#FFFFFF","#E5E5E5"),A=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),{pickPicture:_,isUploading:v}=r3(),k=(0,e4.backgroundImageKind)(r),F="image"===k?"image":"gradient"===k?"gradient":"solid",D=(0,e4.parseGradient)(r)??e4.DEFAULT_GRADIENT,[M,I]=(0,i.useState)(null),U=M??D,L=(0,i.useRef)(null),B=(0,i.useRef)(null),W=(0,i.useCallback)(e=>m((0,e4.buildGradient)(e)),[m]),P=(0,i.useCallback)(async()=>{let e=await _();e&&g(e)},[_,g]),j=e=>{let t=B.current,r=L.current;if(null===t||!r)return;let n=r.getBoundingClientRect(),i=Math.max(0,Math.min(100,Math.round((e.clientX-n.left)/n.width*100))),o={...U,stops:U.stops.map((e,r)=>r===t?{...e,position:i}:e)};I(o),W(o)},R=()=>{B.current=null,I(null)};return s?(0,t.jsx)(b.Box,{mt:"2px",children:(0,t.jsx)(rV,{value:e,onCommit:p})}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(rH.SegmentedControl,{value:F,options:nr,onChange:e=>{e!==F&&("solid"===e?w():"gradient"===e?W(U):P())},ariaLabel:"Fill type"}),"solid"===F&&(0,t.jsx)(b.Box,{mt:"10px",children:(0,t.jsx)(rV,{value:e,onCommit:p})}),"gradient"===F&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(b.Box,{ref:L,position:"relative",h:"18px",borderRadius:"5px",mt:"10px",mb:"12px",backgroundImage:(0,e4.buildGradient)({...U,type:"linear",angle:90}
8),boxShadow:`inset 0 0 0 1px ${T}`,children:U.stops.map((e,r)=>(0,t.jsx)(b.Box,{position:"absolute",top:"-2px",bottom:"-2px",left:`${e.position}%`,w:"8px",ml:"-4px",borderRadius:"3px",bg:e.color,cursor:"ew-resize",sx:{touchAction:"none"},boxShadow:`0 0 0 1.5px ${S}, 0 1px 2px rgba(0,0,0,0.3)`,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),B.current=r,I(U)},onPointerMove:j,onPointerUp:R,"aria-label":`Gradient stop ${r+1}`},r))}),(0,t.jsxs)(c.Flex,{align:"center",gap:"8px",mb:"12px",children:[(0,t.jsx)(b.Box,{flex:"1",children:(0,t.jsx)(rH.SegmentedControl,{value:U.type,options:e4.GRADIENT_TYPE_OPTIONS,onChange:e=>W({...U,type:e}),ariaLabel:"Gradient type"})}),(0,t.jsx)(H.IconButton,{"aria-label":"Reverse gradient",icon:(0,t.jsx)(G.FiRepeat,{size:"13px"}),size:"xs",variant:"ghost",color:E,borderRadius:"6px",_hover:{color:C,bg:A},onClick:()=>W({...U,stops:U.stops.map(e=>({...e,position:100-e.position}))})}),(0,t.jsx)(H.IconButton,{"aria-label":"Add gradient stop",icon:(0,t.jsx)(G.FiPlus,{size:"14px"}),size:"xs",variant:"ghost",color:E,borderRadius:"6px",_hover:{color:C,bg:A},onClick:()=>W({...U,stops:[...U.stops,(0,e4.midStop)(U.stops)]})})]}),"radial"!==U.type&&(0,t.jsx)(rH.Row,{label:"Angle",children:(0,t.jsx)(rH.NumberField,{value:String(U.angle),min:-1/0,onCommit:e=>W({...U,angle:Math.round(Number(e)||0)})})}),U.stops.map((e,r)=>(0,t.jsxs)(c.Flex,{align:"center",gap:"6px",mb:"8px",children:[(0,t.jsx)(b.Box,{flex:"1",children:(0,t.jsx)(rV,{value:e.color,onCommit:e=>W({...U,stops:U.stops.map((t,n)=>n===r?{...t,color:e}:t)})})}),(0,t.jsx)(H.IconButton,{"aria-label":"Remove gradient stop",icon:(0,t.jsx)(G.FiMinus,{size:"14px"}),size:"xs",variant:"ghost",color:E,borderRadius:"6px",isDisabled:U.stops.length<=2,_hover:{color:C,bg:A},onClick:()=>W({...U,stops:U.stops.filter((e,t)=>t!==r)})})]},r))]}),"image"===F&&(0,t.jsxs)(b.Box,{mt:"10px",children:[(0,t.jsx)(nt,{target:d,interactive:h,backgroundImage:r,backgroundSize:n,backgroundPosition:o,width:a,height:l,onPosition:y,onSize:x}),(0,t.jsx)(u.Button,{size:"sm",w:"100%",h:"30px",fontSize:"12px",fontWeight:500,color:C,borderRadius:"8px",isLoading:v,loadingText:"Uploadingâ¦",onClick:P,_hover:{bg:A},children:"Replace image"}),(0,t.jsx)(c.Flex,{mt:"6px",children:(0,t.jsx)(u.Button,{onClick:w,variant:"link",size:"sm",fontSize:"11px",fontWeight:500,color:E,_hover:{color:"#E53E3E"},children:"Clear image"})})]})]})};var ni=e.i(656769);let no=({label:e,onPick:r})=>{let{textColor:n,fieldBorderSx:o}=(0,rH.useFieldTheme)(),a=(0,f.useColorModeValue)("#EFEFEF","#2A2A2A"),l=(0,L.useIsMobileViewport)(),s=(0,i.useCallback)(e=>r(/^https?:\/\//i.test(e)?e:(0,e_.getMainCdnImageUrl)(e)),[r]);return(0,t.jsx)(ni.default,{singleUploadOnly:!0,placement:l?"top":"left-start",height:l?"min(460px, 45dvh)":void 0,onFileSelect:s,children:(0,t.jsx)(u.Button,{size:"sm",w:"100%",h:"30px",fontSize:"12px",fontWeight:500,color:n,borderRadius:"8px",sx:o,_hover:{bg:a},children:e})})},na=[{corner:"topLeft",icon:r$.TbRadiusTopLeft,label:"Top left radius"},{corner:"topRight",icon:r$.TbRadiusTopRight,label:"Top right radius"},{corner:"bottomLeft",icon:r$.TbRadiusBottomLeft,label:"Bottom left radius"},{corner:"bottomRight",icon:r$.TbRadiusBottomRight,label:"Bottom right radius"}],nl=({selection:e,corners:r,onCommit:n})=>{let{labelColor:o,textColor:a}=(0,rH.useFieldTheme)(),[l,s]=(0,i.useState)(()=>!(0,e4.cornersMatch)((0,e4.cornersOf)(getComputedStyle(e)))),[d,u]=(0,i.useState)(e);d!==e&&(u(e),s(!(0,e4.cornersMatch)((0,e4.cornersOf)(getComputedStyle(e)))));let h=e=>"%"===r[e].unit?(0,t.jsx)(g.Text,{fontSize:"11px",color:o,flexShrink:0,children:"%"}):null;return(0,t.jsxs)(c.Flex,{align:"flex-start",gap:"6px",children:[(0,t.jsx)(b.Box,{flex:"1",minW:0,children:l?(0,t.jsx)(ey.SimpleGrid,{columns:2,spacing:"6px",children:na.map(({corner:e,icon:i,label:a})=>(0,t.jsxs)(c.Flex,{align:"center",gap:"4px",children:[(0,t.jsx)(b.Box,{as:i,boxSize:"13px",color:o,flexShrink:0}),(0,t.jsx)(rH.NumberField,{ariaLabel:a,value:r[e].value,onCommit:t=>n(e,t)}),h(e)]},e))}):(0,t.jsxs)(c.Flex,{align:"center",gap:"4px",children:[(0,t.jsx)(rH.NumberField,{ariaLabel:"Radius",value:r.topLeft.value,onCommit:e=>n("all",e)}),h("topLeft")]})}),(0,t.jsx)(H.IconButton,{"aria-label":"Radius per corner","aria-pressed":l,icon:(0,t.jsx)(r$.TbBorderCorners,{size:"15px"}),size:"sm",h:"30px",minW:"30px",variant:"ghost",borderRadius:"8px",color:l?a:o,_hover:{color:a},onClick:()=>s(e=>!e)})]})},ns=({title:e,isPresent:r=!0,onAdd:n,onRemove:o,children:a})=>{let{labelColor:l,textColor:s}=(0,rH.useFieldTheme)(),d=(0,f.useColorModeValue)("#EFEFF2","#262626"),u=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),[h,p]=(0,i.useState)(!1),m=r&&!h;return(0,t.jsxs)(b.Box,{borderTop:"1px solid",borderColor:d,mt:"14px",pt:"10px",children:[(0,t.jsxs)(c.Flex,{align:"center",justify:"space-between",gap:"6px",mb:m?"12px":"0px",children:[r?(0,t.jsxs)(c.Flex,{as:"button",type:"button",align:"center",gap:"4px",color:s,onClick:()=>p(e=>!e),children:[h?(0,t.jsx)(G.FiChevronRight,{size:"12px"}):(0,t.jsx)(G.FiChevronDown,{size:"12px"}),(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:600,children:e})]}):(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:600,color:l,children:e}),r?o&&(0,t.jsx)(H.IconButton,{"aria-label":`Remove ${e.toLowerCase()}`,icon:(0,t.jsx)(G.FiMinus,{size:"14px"}),size:"xs",variant:"ghost",color:l,borderRadius:"6px",_hover:{color:s,bg:u},onClick:o}):n&&(0,t.jsx)(H.IconButton,{"aria-label":`Add ${e.toLowerCase()}`,icon:(0,t.jsx)(G.FiPlus,{size:"14px"}),size:"xs",variant:"ghost",color:l,borderRadius:"6px",_hover:{color:s,bg:u},onClick:n})]}),m&&a]})},nd=[{key:"x",label:"X"},{key:"y",label:"Y"},{key:"blur",label:"Blur"},{key:"spread",label:"Spread"}],nu=({shadow:e,onChange:r})=>{let{labelColor:n}=(0,rH.useFieldTheme)();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.Flex,{gap:"6px",mb:"10px",children:nd.map(({key:i,label:o})=>(0,t.jsxs)(c.Flex,{direction:"column",gap:"4px",flex:"1",minW:0,children:[(0,t.jsx)(g.Text,{fontSize:"10px",color:n,children:o}),(0,t.jsx)(rH.NumberField,{value:String(e[i]),min:"blur"===i?0:-1/0,onCommit:t=>r({...e,[i]:Math.round(Number(t)||0)})})]},i))}),(0,t.jsx)(rV,{value:e.color,onCommit:t=>r({...e,color:t})})]})};var nc=e.i(725172),nh=e.i(835634);let np=[{style:"italic",icon:r$.TbItalic,label:"Italic"},{style:"underline",icon:nc.RxUnderline,label:"Underline"}
8,{style:"line-through",icon:nh.PiTextStrikethrough,label:"Strikethrough"}],nm=({active:e,inherited:r,onToggle:n})=>{let{labelColor:i,textColor:o}=(0,rH.useFieldTheme)(),a=(0,f.useColorModeValue)("rgba(0,0,0,0.07)","rgba(255,255,255,0.10)");return(0,t.jsx)(c.Flex,{gap:"4px",children:np.map(({style:l,icon:s,label:d})=>{let u=e.includes(l),c=r.includes(l);return(0,t.jsx)(H.IconButton,{"aria-label":c?`${d}, drawn by the text around it`:d,"aria-pressed":u,isDisabled:c,icon:(0,t.jsx)(s,{size:"15px"}),size:"sm",h:"30px",minW:"30px",variant:"ghost",borderRadius:"8px",color:u?o:i,bg:u?a:"transparent",_hover:{color:o,bg:a},onClick:()=>n(l,!u)},l)})})},ng={"no-box":"It draws no box of its own, so a size has nothing to change.",hidden:"A hidden layer has no size on the page. Show it first.","content-sized":"Its parent grows with what it holds. Give the parent a size first."},nf=({selectedEl:e,selectedEls:r})=>{let{labelColor:n,textColor:o,fieldBorderSx:a}=(0,rH.useFieldTheme)(),l=(0,f.useColorModeValue)("#EFEFEF","#2A2A2A"),s=(0,K.useToast)(),{form:d,typeForm:h,words:p,canEditText:m,text:x,contentRef:y,autoGrowContent:w,isLeaf:E,imageAction:C,slotLabel:T,borderSide:S,setBorderSide:A,applyStyle:_,applyText:v,applyType:k,applyTextStyle:F,clearWords:D,beginTextEdit:M,applyLayoutMode:I,applyGridColumns:U,applySize:L,applyRadius:B,applyGradient:W,applyBackgroundImageUrl:P,applyBackgroundFit:j,applyBackgroundPosition:R,clearBackgroundImage:N,removeFill:O,applyShadow:H,addShadow:z,removeShadow:G,applyBorder:V,addBorder:$,removeBorder:J,insertOrReplaceImage:Y}=function(e,t){let r=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.markDirty),n=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.bump),o=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.selectEl),a=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.restyled),l=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.textRange),s=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.setTextRange),d=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.editText),[u,c]=(0,i.useState)(()=>(0,e4.defaultBorderSide)(e)),[h,p]=(0,i.useState)(()=>(0,e4.readForm)(e,u)),[m,g]=(0,i.useState)(()=>(0,eZ.readLayerText)(e)),f=(0,i.useRef)(e),b=(0,i.useMemo)(()=>(0,eZ.isLineBrokenText)(e),[e]),x=1===t.length&&(0,eZ.holdsText)(e)&&(0===e.children.length||b&&Array.from(e.children).every(eZ.isLineBreak)),y=1===t.length,w=e.children.length>0&&!b,E=y?rl(e):null,C=y?E?"slot":(0,e4.isImageElement)(e)?"replace":w&&(0,eZ.holdsText)(e)?"insert":null:null,T=e.namespaceURI!==eZ.SVG_NAMESPACE,S=y&&T&&null!==d&&(0,eZ.holdsText)(e)&&(0,eZ.isEditableTextBlock)(e),A=S&&null!==l&&!l.collapsed&&e.contains(l.commonAncestorContainer)&&l.toString().trim()!==(e.textContent??"").trim()&&function(e){let t=e.commonAncestorContainer.ownerDocument,r=t?.defaultView;if(!t||!r||e.collapsed)return!1;let n=t.createTreeWalker(e.commonAncestorContainer,4);for(let t=n.currentNode;t;t=n.nextNode()){if(3!==t.nodeType||!rW(e,t))continue;let n=t.parentElement;if(!n||n.namespaceURI===eZ.SVG_NAMESPACE||rB.test(r.getComputedStyle(n).display))return!1}return!0}(l)?l:null,_=(0,i.useMemo)(()=>{let e,t=A?function(e){let t=e.commonAncestorContainer.ownerDocument;if(!t||e.collapsed)return null;let r=t.createTreeWalker(e.commonAncestorContainer,4);for(let t=r.currentNode;t;t=r.nextNode()){if(3!==t.nodeType)continue;let r=t;if(""!==r.data.trim()&&rW(e,r))return r.parentElement}return null}(A):null;if(!A||!t)return null;let r=(0,e4.readForm)(t);return null!==(e=t.firstChild)&&3===e.nodeType&&rL(e)===t&&0===A.comparePoint(e,0)&&0===A.comparePoint(e,e.length)?r:{...r,textDecorationLine:"none",inheritedDecorationLine:`${r.inheritedDecorationLine} ${r.textDecorationLine}`}},[A,a]),[v,k]=(0,i.useState)(null);(0,i.useEffect)(()=>{k(e=>e&&e.words!==A?null:e)},[A]);let F=(0,i.useRef)(null),D=(0,i.useCallback)(e=>{e&&(e.style.height="auto",e.style.height=`${Math.min(Math.max(e.scrollHeight,e4.CONTENT_MIN_H),e4.CONTENT_MAX_H)}px`)},[]);(0,i.useEffect)(()=>{let t=u;f.current!==e&&(f.current=e,c(t=(0,e4.defaultBorderSide)(e))),p((0,e4.readForm)(e,t)),g((0,eZ.readLayerText)(e))},[e,u,a]),(0,i.useEffect)(()=>{D(F.current)},[m,x,D]);let M=(0,i.useCallback)((e,t=!1)=>{let{selectedEls:i,readOwningDeck:o}=eq.useCanvasToolHtmlEmbedDesignStore.getState();0!==i.length&&(i.forEach(r=>{let n=t&&ra(r);ti(r,n?e.filter(([e])=>!rP.has(e)):e,!!o)}),r(),n())},[r,n]),I=(0,i.useCallback)((t,r)=>p(t.includes("var(")?(0,e4.readForm)(e,u):r),[e,u]),U=(0,i.useCallback)((e,t,r,n)=>{M([[e,t]]),I(t,e=>({...e,[r]:n}))},[M,I]),L=(0,i.useCallback)(t=>{(0,eZ.writeLayerText)(e,t,b),g(t),s(null),r(),n()},[e,b,s,r,n]),B=(0,i.useCallback)((t,i,o,a)=>
8{if(!A)return void U(t,i,o,a);if(""===a)return void k({words:A,field:o,value:""});let l=function(e){if(e.collapsed)return null;let t=(function(e){let{startContainer:t,startOffset:r,endContainer:n,endOffset:i}=e;3===n.nodeType&&i>0&&i<n.length&&n.splitText(i),3===t.nodeType&&r>0&&r<t.length&&t.splitText(r);let o=e.commonAncestorContainer;if(3===o.nodeType)return e.collapsed?[]:[o];let a=o.ownerDocument;if(!a)return[];let l=[],s=a.createTreeWalker(o,4);for(let t=s.nextNode();t;t=s.nextNode()){let r=t;0===r.length||rU.test(r.data)||0===e.comparePoint(r,0)&&0===e.comparePoint(r,r.length)&&l.push(r)}return l})(e).map(e=>{let t=rL(e);if(t)return t;let r=e.ownerDocument.createElement("span");return e.parentNode?.insertBefore(r,e),r.appendChild(e),r});if(0===t.length)return null;let r=e.cloneRange();return r.setStartBefore(t[0]),r.setEndAfter(t[t.length-1]),{runs:t,range:r}}(A);if(!l)return;let d=!!eq.useCanvasToolHtmlEmbedDesignStore.getState().readOwningDeck;l.runs.forEach(e=>ti(e,[[t,i]],d));let u=e.ownerDocument.getSelection();u?.removeAllRanges(),u?.addRange(l.range),s(l.range);let c=String(a);k(c.includes("var(")?null:{words:l.range,field:o,value:c}),r(),n()},[A,U,e,s,r,n]),W=_&&v?.words===A?{..._,[v.field]:v.value}:_??h,P=(0,i.useCallback)((e,t)=>{let[r,n]=(0,e4.textStyleDeclaration)(e,t,W.textDecorationLine);B(r,n,"font-style"===r?"fontStyle":"textDecorationLine",n)},[B,W.textDecorationLine]),j=(0,i.useCallback)(()=>{e.ownerDocument.getSelection()?.removeAllRanges(),s(null)},[e,s]),R=(0,i.useCallback)(()=>d?.(e),[d,e]),N=(0,i.useCallback)(t=>{let{display:i,flexDirection:o}=(0,e4.layoutModeToStyles)(t),{selectedEls:a,readOwningDeck:l}=eq.useCanvasToolHtmlEmbedDesignStore.getState();a.forEach(e=>{let r;return ti(e,[["display",i],["flex-direction",o],...(r=e.ownerDocument.defaultView?.getComputedStyle(e),"grid"===t&&r&&!/grid/.test((0,e5.shownDisplay)(e)??r.display)&&"none"===r.gridTemplateColumns)?[["grid-template-columns",(0,e4.gridColumnsTemplate)(2)]]:[]],!!l)}),r(),n(),p((0,e4.readForm)(e,u))},[r,n,e,u]),O=(0,i.useCallback)(e=>{let t=Math.round(Number(e));if(""===e||!Number.isFinite(t)||t<1)return void p(t=>({...t,gridColumns:e}));let r=Math.min(t,e4.MAX_GRID_COLUMNS);M([["grid-template-columns",(0,e4.gridColumnsTemplate)(r)]]),p(e=>({...e,gridColumns:String(r)}))},[M]),H=(0,i.useCallback)((t,i,o)=>{if(""===o)return p(e=>({...e,[t]:""})),null;let{selectedEls:a,readOwningDeck:l}=eq.useCanvasToolHtmlEmbedDesignStore.getState();if(0===a.length)return null;let s=!!l,d=!1,c=a.flatMap(e=>{let r=rD(e),n=()=>{let t=r&&rI(e,r);t&&(ti(e,[t],s),d=!0)};if(void 0===o){let r=tp(e,t,i,s);return r||n(),r?[r]:[]}if(!(0,eZ.takesSize)(e))return["no-box"];let a=tc(e,t),l=th(e,t,i,a);return l?[l]:(ti(e,(0,tr.sizeModeStyles)(t,i,o,a),s),n(),[])}),h=c.length<a.length;if(void 0!==o&&h){let r=d?{backgroundSize:(0,e4.pictureLayerOf)(getComputedStyle(e)).backgroundSize}:{};p(e=>({...e,[t]:o,["width"===t?"widthMode":"heightMode"]:i,...r}))}else p((0,e4.readForm)(e,u));return h&&(r(),n()),c.length>0?{refusal:c[0],someTook:h}:null},[r,n,e,u]),z=(0,i.useCallback)((e,t)=>{let{unit:r}=h.radius["all"===e?"topLeft":e],n={value:t,unit:r};""!==t&&M([["all"===e?"border-radius":e4.RADIUS_CORNER_PROP[e],`${t}${r}`]]),p(t=>({...t,radius:"all"===e?{topLeft:n,topRight:n,bottomRight:n,bottomLeft:n}:{...t.radius,[e]:n}}))},[M,h.radius]),G=(0,i.useCallback)(()=>e.style.backgroundImage||e.style.background,[e]),V=(0,i.useCallback)(t=>{let r=(0,e2.relinkThemeColors)(t,G(),e.ownerDocument);M([["background-image",r]],!0),I(r,e=>({...e,backgroundImage:r}))},[M,I,e,G]),$=(0,i.useCallback)(t=>{let r=getComputedStyle(e),n=(e,t)=>y?(0,e4.atPictureLayer)(r.backgroundImage,e,t):t,i=G(),o=y?(0,e2.relinkThemeColors)((0,e4.withPicture)(e.style.backgroundImage||r.backgroundImage,rs(t)),i,e.ownerDocument):rs(t);M([["background-image",o],["background-size",n(r.backgroundSize,"cover")],["background-position",n(r.backgroundPosition,"center")],["background-repeat",n(r.backgroundRepeat,"no-repeat")]]),I(o,e=>({...e,backgroundImage:o,backgroundSize:"cover",backgroundPosition:"50% 50%"}))},[M,I,y,e,G]),J=(0,i.useCallback)((t,r)=>{let n=getComputedStyle(e),i=r?`${r.x}% ${r.y}%`:null;M([["background-size",y?(0,e4.atPictureLayer)(n.backgroundImage,n.backgroundSize,t):t],...i?[["background-position",y?(0,e4.atPictureLayer)(n.backgroundImage,n.backgroundPosition,i):i]]:[]]),p(e=>({...e,backgroundSize:t,...i?{backgroundPosition:i}:{}}))},[M,y,e]),K=(0,i.useCallback)((t,r)=>{let n=getComputedStyle(e),i=`${t.x}% ${t.y}%`;M([["background-position",(0,e4.atPictureLayer)(n.backgroundImage,n.backgroundPosition,i)]]),r&&p(e=>({...e,backgroundPosition:i}))},[M,e]),Y=(0,i.useCallback)(()=>{M([["background-image","none"],["background-size",""],["background-position",""],["background-repeat",""]],!0),p(e=>({...e,backgroundImage:"none",backgroundSize:"auto"}))},[M]),q=(0,i.useCallback)(()=>
8{if("slot"===C){M([["background-color","transparent"]]),p(e=>({...e,backgroundColor:""}));return}M([["background-color","transparent"],["background-image","none"]],!0),p(e=>({...e,backgroundColor:"",backgroundImage:"none"}))},[M,C]),X=(0,i.useCallback)(t=>{let r=(0,e2.relinkThemeColors)((0,e4.buildShadow)(t),e.style.boxShadow,e.ownerDocument);M([["box-shadow",r]]),I(r,e=>({...e,boxShadow:t}))},[M,I,e]),Q=(0,i.useCallback)(()=>X(e4.DEFAULT_SHADOW),[X]),Z=(0,i.useCallback)(()=>{M([["box-shadow","none"]]),p(e=>({...e,boxShadow:null}))},[M]),ee=(0,i.useCallback)(e=>{let t=e.width??h.borderWidth;M((0,e4.borderProps)(u,t,e.color??"")),I(e.color??"",r=>({...r,borderWidth:t,borderColor:e.color??r.borderColor,hasBorder:r.hasBorder||Number(t)>0}))},[M,I,u,h.borderWidth]),et=(0,i.useCallback)(()=>ee(h.borderColor?{width:"1"}:{width:"1",color:"#000000"}),[ee,h.borderColor]),er=(0,i.useCallback)(()=>{M((0,e4.clearBorderProps)(u)),p((0,e4.readForm)(e,u))},[M,u,e]),en=(0,i.useCallback)(e=>{let{selectedEl:t,selectedEls:i,iframe:a}=eq.useCanvasToolHtmlEmbedDesignStore.getState();if(t&&1===i.length){if((0,e4.isImageElement)(t))(0,e4.replaceImageSource)(t,e);else{let r=a?.contentDocument;if(!r)return;o((0,e4.insertImageInto)(r,t,e))}r(),n()}},[o,r,n]);return{form:h,typeForm:W,words:A?.toString().trim()??null,canEditText:S,text:m,contentRef:F,autoGrowContent:D,isLeaf:x,imageAction:C,slotLabel:E,borderSide:u,setBorderSide:c,applyStyle:U,applyText:L,applyType:B,applyTextStyle:P,clearWords:j,beginTextEdit:R,applyLayoutMode:N,applyGridColumns:O,applySize:H,applyRadius:z,applyGradient:V,applyBackgroundImageUrl:$,applyBackgroundFit:J,applyBackgroundPosition:K,clearBackgroundImage:Y,removeFill:q,applyShadow:X,addShadow:Q,removeShadow:Z,applyBorder:ee,addBorder:et,removeBorder:er,insertOrReplaceImage:en}}(e,r),q="stack"===d.layoutMode||"row"===d.layoutMode,X="grid"===d.layoutMode,Q="slot"===C,Z=(0,e4.backgroundImageKind)(d.backgroundImage),ee="image"===Z,et=""!==d.backgroundColor||!Q&&"none"!==Z,er=e=>{e&&s({title:e.someTook?"Not every layer took that size":"Size kept as it was",description:ng[e.refusal],status:"info",duration:4e3,isClosable:!0})},en=(e,r,n)=>(0,t.jsxs)(c.Flex,{gap:"6px",children:[(0,t.jsx)(b.Box,{flex:"1",minW:0,children:(0,t.jsx)(rH.NumberField,{value:r,ariaLabel:"width"===e?"Width":"Height",onCommit:t=>er(L(e,"percent"===n?"percent":"fixed",t))})}),(0,t.jsx)(b.Box,{w:"76px",flexShrink:0,children:(0,t.jsx)(rH.SelectField,{value:n,options:tr.SIZE_MODE_OPTIONS,onCommit:t=>er(L(e,t))})})]});return(0,t.jsxs)(t.Fragment,{children:[r.length>1&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(rH.SectionLabel,{children:"ALIGN"}),(0,t.jsx)(rX,{})]}),(E||m)&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(rH.SectionLabel,{children:"CONTENT"}),E&&(0,t.jsx)(ri.Textarea,{ref:y,value:x,onChange:e=>{v(e.target.value),w(e.currentTarget)},size:"sm",color:o,borderRadius:"8px",fontSize:"12px",minH:`${e4.CONTENT_MIN_H}px`,maxH:`${e4.CONTENT_MAX_H}px`,resize:"vertical",lineHeight:"1.5",sx:a,_focusVisible:{borderColor:"var(--chakra-colors-brand-500)"}}),m&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{size:"sm",w:"100%",h:"30px",mt:E?"8px":0,fontSize:"12px",fontWeight:500,color:o,borderRadius:"8px",sx:a,_hover:{bg:l},onClick:M,children:"Edit text on the page"}),(0,t.jsx)(g.Text,{fontSize:"11px",color:n,mt:"6px",children:"Select words there to style them on their own."})]})]}),(0,t.jsx)(rH.SectionLabel,{children:"TYPOGRAPHY"}),p&&(0,t.jsxs)(c.Flex,{align:"center",justify:"space-between",gap:"8px",mb:"12px",pl:"10px",pr:"4px",h:"32px",borderRadius:"8px",sx:a,children:[(0,t.jsxs)(g.Text,{fontSize:"12px",color:o,noOfLines:1,minW:0,children:[(0,t.jsxs)(g.Text,{as:"span",color:n,children:["Selected"," "]}),"â",p,"â"]}),(0,t.jsx)(u.Button,{variant:"ghost",size:"xs",flexShrink:0,fontSize:"11px",fontWeight:500,color:n,_hover:{color:o,bg:l},onClick:D,children:"Whole text"})]}),(0,t.jsx)(rH.Row,{label:"Size",children:(0,t.jsx)(rH.NumberField,{value:h.fontSize,onCommit:e=>k("font-size",`${e}px`,"fontSize",e)})}),(0,t.jsx)(rH.Row,{label:"Weight",children:(0,t.jsx)(rH.SelectField,{value:h.fontWeight,options:e4.FONT_WEIGHT_OPTIONS,onCommit:e=>k("font-weight",e,"fontWeight",e)})}),(0,t.jsx)(rH.Row,{label:"Line height",children:(0,t.jsx)(rH.NumberField,{value:d.lineHeight,onCommit:e=>_("line-height",`${e}px`,"lineHeight",e)})}),(0,t.jsx)(rH.Row,{label:"Letter spacing",children:(0,t.jsx)(rH.NumberField,{value:h.letterSpacing,min:-1/0,onCommit:e=>k("letter-spacing",`${e}px`,"letterSpacing",e)})}),(0,t.jsx)(rH.Row,{label:"Color",children:(0,t.jsx)(rV,{value:h.color,onCommit:e=>k("color",e,"color",e)})}),(0,t.jsx)(rH.Row,{label:"Align",children:(0,t.jsx)(rH.SelectField,{value:d.textAlign,options:e4.TEXT_ALIGN_OPTIONS,onCommit:e=>_("text-align",e,"textAlign",e)})}),(0,t.jsx)(rH.Row,{label:"Style",children:(0,t.jsx)(nm,{active:(0,e4.textStylesOf)(h),inherited:(0,e4.inheritedTextStyles)(h),onToggle:F})}),(0,t.jsx)(rH.Row,{label:"Case",children:(0,t.jsx)(rH.SelectField,{value:h.textTransform,options:e4.TEXT_CASE_OPTIONS,onCommit:e=>k("text-transform",e,"textTransform",e)})}),(0,t.jsx)(rH.SectionLabel,{children:"LAYOUT"}),(0,t.jsx)(rH.Row,{label:"Mode",children:(0,t.jsx)(rH.SelectField,{value:d.layoutMode,options:e4.LAYOUT_MODE_OPTIONS,onCommit:e=>I(e)})}),q&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(rH.Row,{label:"Gap",children:(0,t.jsx)(rH.NumberField,{value:d.gap,onCommit:e=>_("gap",`${e}px`,"gap",e)})}),(0,t.jsx)(rH.Row,{label:"Justify",children:(0,t.jsx)(rH.SelectField,{value:d.justifyContent,options:e4.JUSTIFY_OPTIONS,onCommit:e=>_("justify-content",e,"justifyContent",e)})}),(0,t.jsx)(rH.Row,{label:"Align items",children:(0,t.jsx)(rH.SelectField,{value:d.al
8ignItems,options:e4.ALIGN_OPTIONS,onCommit:e=>_("align-items",e,"alignItems",e)})})]}),X&&(0,t.jsxs)(t.Fragment,{children:[!d.subgridColumns&&(0,t.jsx)(rH.Row,{label:"Columns",children:(0,t.jsx)(rH.NumberField,{value:d.gridColumns,min:1,ariaLabel:"Columns",onCommit:U})}),(0,t.jsx)(rH.Row,{label:"Column gap",children:(0,t.jsx)(rH.NumberField,{value:d.gap,onCommit:e=>_("column-gap",`${e}px`,"gap",e)})}),(0,t.jsx)(rH.Row,{label:"Row gap",children:(0,t.jsx)(rH.NumberField,{value:d.rowGap,onCommit:e=>_("row-gap",`${e}px`,"rowGap",e)})}),(0,t.jsx)(rH.Row,{label:"Align items",children:(0,t.jsx)(rH.SelectField,{value:d.alignItems,options:e4.ALIGN_OPTIONS,onCommit:e=>_("align-items",e,"alignItems",e)})})]}),(0,t.jsx)(rH.Row,{label:"Width",children:en("width",d.width,d.widthMode)}),(0,t.jsx)(rH.Row,{label:"Height",children:en("height",d.height,d.heightMode)}),(0,t.jsx)(rH.Row,{label:"Radius",children:(0,t.jsx)(nl,{selection:e,corners:d.radius,onCommit:B})}),(0,t.jsx)(rH.Row,{label:"Opacity",children:(0,t.jsxs)(c.Flex,{align:"center",gap:"12px",children:[(0,t.jsx)(ro.default,{value:d.opacity,min:0,max:100,step:1,onChange:e=>_("opacity",String(e/100),"opacity",e),flex:"1","aria-label":"Opacity"}),(0,t.jsxs)(g.Text,{fontSize:"11px",color:n,w:"34px",textAlign:"right",children:[d.opacity,"%"]})]})}),(0,t.jsx)(rH.SectionLabel,{children:"SPACING"}),(0,t.jsx)(rH.Row,{label:"Padding",children:(0,t.jsx)(c.Flex,{gap:"6px",children:["paddingTop","paddingRight","paddingBottom","paddingLeft"].map(e=>(0,t.jsx)(rH.NumberField,{value:d[e],onCommit:t=>_((0,e4.kebab)(e),`${t}px`,e,t)},e))})}),(0,t.jsx)(rH.Row,{label:"Margin",children:(0,t.jsx)(c.Flex,{gap:"6px",children:["marginTop","marginRight","marginBottom","marginLeft"].map(e=>(0,t.jsx)(rH.NumberField,{value:d[e],min:-1/0,onCommit:t=>_((0,e4.kebab)(e),`${t}px`,e,t)},e))})}),(0,t.jsx)(ns,{title:"Fill",isPresent:et,onAdd:()=>_("background-color","#FFFFFF","backgroundColor","#FFFFFF"),onRemove:O,children:(0,t.jsx)(nn,{backgroundColor:d.backgroundColor,backgroundImage:d.backgroundImage,backgroundSize:d.backgroundSize,backgroundPosition:d.backgroundPosition,width:e.clientWidth,height:e.clientHeight,isImageSlot:Q,target:e,isSingle:1===r.length,onApplyColor:e=>_("background-color",e,"backgroundColor",e),onApplyGradient:W,onPickImage:P,onFit:j,onPosition:R,onClearImage:N})}),(0,t.jsx)(ns,{title:"Border",isPresent:d.hasBorder,onAdd:$,onRemove:J,children:(0,t.jsx)(rQ,{width:d.borderWidth,color:d.borderColor,side:S,onSide:A,onWidth:e=>V({width:e}),onColor:e=>V({color:e})})}),(0,t.jsx)(ns,{title:"Shadow",isPresent:null!==d.boxShadow,onAdd:z,onRemove:G,children:d.boxShadow&&(0,t.jsx)(nu,{shadow:d.boxShadow,onChange:H})}),Q&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(rH.SectionLabel,{children:"PICTURE"}),(0,t.jsx)(g.Text,{fontSize:"12px",color:n,mb:"10px",children:T}),ee&&(0,t.jsx)(nt,{target:e,interactive:!0,backgroundImage:d.backgroundImage,backgroundSize:d.backgroundSize,backgroundPosition:d.backgroundPosition,width:e.clientWidth,height:e.clientHeight,onPosition:R,onSize:j}),(0,t.jsx)(no,{label:ee?"Replace picture":"Add picture",onPick:P})]}),("replace"===C||"insert"===C)&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(rH.SectionLabel,{children:"IMAGE"}),(0,t.jsx)(no,{label:"replace"===C?"Replace image":"Insert image",onPick:Y})]})]})},nb=[{value:"1",label:"1x"},{value:"2",label:"2x"},{value:"3",label:"3x"}],nx=[{value:"png",label:"PNG"},{value:"jpg",label:"JPG"},{value:"pdf",label:"PDF"}],ny=({onExport:e})=>{let{textColor:r,fieldBorderSx:n}=(0,rH.useFieldTheme)(),o=(0,f.useColorModeValue)("#EFEFEF","#2A2A2A"),[a,l]=(0,i.useState)("2"),[s,d]=(0,i.useState)("png"),[h,p]=(0,i.useState)(!1),m=(0,i.useCallback)(async()=>{p(!0);try{await e({format:s,scale:Number(a)})}finally{p(!1)}},[e,s,a]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(c.Flex,{gap:"6px",mb:"10px",children:[(0,t.jsx)(rH.SelectField,{value:a,options:nb,onCommit:l}),(0,t.jsx)(rH.SelectField,{value:s,options:nx,onCommit:e=>d(e)})]}),(0,t.jsx)(u.Button,{size:"sm",w:"100%",h:"32px",fontSize:"12px",fontWeight:600,color:r,borderRadius:"8px",isLoading:h,loadingText:"Exportingâ¦",onClick:m,sx:n,_hover:{bg:o},children:"Export"})]})};var nw=e.i(694674),nE=e.i(486491);let nC=({children:e,onClick:r,ref:n,isMenu:i=!0,shortcut:o})=>{let a=(0,f.useColorModeValue)("#37352F","rgba(255, 255, 255, 0.8)"),l=(0,f.useColorModeValue)("rgba(0, 0, 0, 0.03)","rgba(255, 255, 255, 0.08)"),s=o?.length?(0,t.jsxs)(c.Flex,{justify:"space-between",align:"center",w:"100%",gap:"12px",children:[(0,t.jsx)(c.Flex,{align:"center",minW:0,children:e}),(0,t.jsx)(c.Flex,{align:"center",flexShrink:0,children:o.map((e,r)=>(0,t.jsx)(nE.default,{surface:"auto",children:e},r))})]}):e;return i?(0,t.jsx)(eB.MenuItem,{ref:n,background:"transparent",color:a,mx:"4px",w:"calc(100% - 8px)",borderRadius:"6px",_hover:{backgroundColor:l},fontSize:"12.5px",fontWeight:"400",onClick:r,px:"8px",py:"4px",minH:"26px",children:s}):(0,t.jsx)(u.Button,{ref:n,background:"transparent",color:a,mx:"4px",w:"calc(100% - 8px)",variant:"ghost",borderRadius:"6px",_hover:{backgroundColor:l},fontSize:"12.5px",fontWeight:"400",onClick:r,px:"8px",justifyContent:"flex-start",h:"30px",children:s})};e.s(["default",0,nC],250587);let nT=e=>()=>{e();let{iframe:t}=eq.useCanvasToolHtmlEmbedDesignStore.getState();t&&document.activeElement!==t&&t.focus({preventScroll:!0})},nS=({mod:e,alt:r,dividerColor:n})=>{let i;return(0,t.jsxs)(t.Fragment,{children:[tY(eq.useCanvasToolHtmlEmbedDesignStore.getState()).length>0&&(0,t.jsxs)(t.Fragment,{children:[tY(eq.useCanvasToolHtmlEmbedDesignStore.getState()).some(e=>!tF(e))&&(0,t.jsx)(nC,{onClick:nT(t0),shortcut:[e,"D"],children:"Duplicate"}),(0,t.jsx)(nC,{onClick:nT(t1),shortcut:[e,"C"],children:"Copy"}),(0,t.jsx)(nC,{onClick:nT(t5),shortcut:[e,"X"],children:"Cut"})]}),!!(i=tQ(eq.useCanvasToolHtmlEmbedDesignStore.getState()))&&tR.length>0&&null!==tM(i,tR.map(e=>e.tag),Array.from(new Set(tR.flatMap(e=>e.nesting))))&&(0,t.jsx)(nC,{onClick:nT(t2),shortcut:[e,"V"],children:"Paste"}),(0,t.jsx)(nw.MenuDivider,{my:"4px",borderColor:n}),(0,t.jsx)(nC,{onClick:nT(t4),shortcut:[r,e,"C"],children:"Copy style"}),tJ.length>0&&eq.useCanvasToolHtmlEmbedDesignStore.getState().selectedEls.length>0&&(0,t.jsx)(nC,{onClick:nT(t8),shortcut:[r,e,"V"],children:"Paste style"})]})},nA=({hasSelection:e,labelColor:r,hoverColor:n,hoverBg:i})=>{let{isMacPlatform:o}=(0,l.default)(),a=(0,f.useColorModeValue)("#FFFFFF","#1C1C1C"),s=(0,f.useColorModeValue)("#E4E4E7","#2A2B30"),d=(0,f.useColorModeValue)("#EFEFF2","#262626"),u=(o,a)=>(0,t.jsx)(z.Tooltip,{label:o,placement:"bottom",hasArrow:!0,children:(0,t.jsx)(eU.MenuButton,{as:H.IconButton,"aria-label":o,icon:a,size:"sm",variant:"ghost",color:r,_hover:{color:n,bg:i},borderRadius:"8px",isDisabled:!e})}),c=e=>(0,t.jsx)(eW.Portal,{children:(0,t.jsx)(eL.MenuList,{bg:a,borderColor:s,borderRadius:"12px",p:"4px",minW:"200px",zIndex:9999,boxShadow:"0px 8px 24px rgba(0, 0, 0, 0.16)",children:e})});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(eI.Menu,{isLazy:!0,placement:"bottom-end",children:[u("Add",(0,t.jsx)(G.FiPlus,{size:"16px"})),c((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(nC,{onClick:nT(()=>tZ("text")),children:"Text"}),(0,t.jsx)(nC,{onClick:nT(()=>tZ("shape")),children:"Shape"}),(0,t.jsx)(nC,{onClick:nT(()=>tZ("divider")),children:"Divider"})]}))]}),(0,t.jsxs)(eI.Menu,{isLazy:!0,placement:"bottom-end",children:[u("More",(0,t.jsx)(G.FiMoreHorizontal,{size:"16px"})),c((0,t.jsx)(nS,{mod:o?"â":"Ctrl",alt:o?"â¥":"Alt",dividerColor:d}))]})]})};var n_=e.i(575465),nv=e.i(454637);let nk=(0,e.i(527537).create)(e=>({activeByDeck:{},presentingDeckUid:null,setActive:(t,r)=>e(e=>({activeByDeck:{...e.activeByDeck,[t]:r}})),present:t=>e({presentingDeckUid:t}),stop:()=>e({presentingDeckUid:null})}));e.s(["useDeckViewStore",0,nk],738246);var nF=e.i(84132),nD=e.i(142007);let nM=e=>
8"INPUT"===e.tagName||"TEXTAREA"===e.tagName||e.isContentEditable,nI=()=>{let e=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.selectedEl),r=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.selectedEls),n=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.selectEl),o=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.toggleSelectEl),a=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.bump),l=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.markDirty),s=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.iframe),d=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.activeUid),u=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.readOwningDeck),h=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.themePages),p=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.setThemePages),m=(0,j.useWhiteboardSelectionStore)(e=>!!h&&e.activeNodes.length===h.length&&e.activeNodes.every(e=>h.includes(e.id))),x=(0,E.useWhiteboardViewStore)(e=>e.viewOnly),w=(0,L.useIsMobileViewport)(),C=(0,K.useToast)(),T=(0,j.useWhiteboardSelectionStore)(e=>e.activeElement?e.activeElement.whiteboardElementUid??null:null),S=(0,f.useColorModeValue)("#FFFFFF","#1C1C1C"),A=(0,f.useColorModeValue)("#9CA3AF","#71717A"),v=(0,f.useColorModeValue)("#1D1D1F","#E5E5E5"),k=(0,f.useColorModeValue)("#EFEFF2","#262626"),F=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.08)"),D=(0,f.useColorModeValue)("#cccccc","#444444"),M=(0,i.useRef)(null);(0,eY.useAutoHideScrollbar)(M);let I=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.railTab),U=(0,eq.useCanvasToolHtmlEmbedDesignStore)(e=>e.setRailTab),B=(0,i.useRef)(null),W=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!w||"theme"!==I)return;U("layers");let e=M.current;if(!e)return;W.current?.();let t=performance.now()+1e3,r=0,n=()=>{cancelAnimationFrame(r),e.removeEventListener("pointerdown",n),e.removeEventListener("wheel",n),W.current=null},i=()=>{let o=B.current,a=o?Math.round(o.getBoundingClientRect().top-e.getBoundingClientRect().top):0;a&&(e.scrollTop+=a),performance.now()<t?r=requestAnimationFrame(i):n()};e.addEventListener("pointerdown",n),e.addEventListener("wheel",n,{passive:!0}),r=requestAnimationFrame(i),W.current=n},[w,I,U]),(0,i.useEffect)(()=>()=>W.current?.(),[]);let P={placement:"bottom",hasArrow:!0},R=r.length,N=r.some(eZ.isRemovableLayer),O=(0,i.useCallback)(()=>{let e=eq.useCanvasToolHtmlEmbedDesignStore.getState().selectedEls.filter(eZ.isRemovableLayer);0!==e.length&&(e.forEach(e=>e.remove()),n(null),l(),a())},[n,l,a]);(0,i.useEffect)(()=>{let e=e=>{if(nk.getState().presentingDeckUid){(0,e5.layerMoveForKey)(e)&&e.preventDefault();return}let t=document.activeElement;t&&t!==document.body&&(nM(t)||!(0,nF.closestCanvasRoot)(t))?nM(t)?(0,e5.layerMoveForKey)(e)&&e.preventDefault():rt(e,!t.closest('[aria-modal="true"], [role="dialog"], [role="menu"], [data-ai-agent-panel]')):rr(e)||"Backspace"!==e.key&&"Delete"!==e.key||eq.useCanvasToolHtmlEmbedDesignStore.getState().selectedEl&&(e.preventDefault(),e.stopPropagation(),O())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[O]),(0,i.useEffect)(()=>{let e=e=>{let t=document.activeElement;t&&nM(t)||(e.preventDefault(),e.stopPropagation())};return window.addEventListener("paste",e,!0),()=>window.removeEventListener("paste",e,!0)},[]);let V=(0,i.useCallback)(async({format:e,scale:t})=>{let{iframe:r,element:n}=eq.useCanvasToolHtmlEmbedDesignStore.getState(),i=r?.contentDocument,o=i?.documentElement?"<!DOCTYPE html>"+i.documentElement.outerHTML:n?.htmlString??"";if(!o)return;let a=r?.clientWidth||void 0;if("pdf"===e)return void(0,eQ.exportHtmlEmbedToPdf)(o,{width:a});try{await (0,eX.exportHtmlEmbedToImage)(o,{width:a,scale:t,format:e})}catch(e){C({title:"Export failed",description:e instanceof Error?e.message:"The design could not be exported.",status:"error",duration:4e3,isClosable:!0})}},[C]);(0,i.useEffect)(()=>()=>{let e=eq.useCanvasToolHtmlEmbedDesignStore.getState();e.persist(),e.close()},[]);let $=(0,i.useRef)(!1);return(0,i.useEffect)(()=>{if(!d){$.current=!1;return}let e=u?.(),t=!!e&&(T===e.whiteboardElementUid||(e.elements??[]).some(e=>e?.uid===T));if(h&&!m&&T===d&&p(null),T===d||t||m){$.current=!0;return}$.current&&(0,nD.closeHtmlEmbedDesignEditor)()},[d,T,u,h,m,p]),(0,t.jsx)(y.motion.div,{initial:{opacity:0,y:8}
8,animate:{opacity:1,y:0},exit:{opacity:0,y:8},transition:{duration:.18,ease:"easeOut"},style:{position:"absolute",inset:0,zIndex:5,borderRadius:"20px",overflow:"hidden",background:S},children:(0,t.jsxs)(c.Flex,{direction:"column",h:"100%",w:"100%",children:[(0,t.jsxs)(c.Flex,{align:"center",justify:"space-between",px:"14px",py:"12px",borderBottom:"1px solid",borderColor:k,children:[(0,t.jsxs)(c.Flex,{align:"center",gap:"7px",children:[(0,t.jsx)(_.IoColorPalette,{size:"15px",color:A}),(0,t.jsx)(g.Text,{fontSize:"13px",fontWeight:600,color:v,children:"Design"}),R>1&&(0,t.jsxs)(g.Text,{fontSize:"11px",fontWeight:500,color:A,children:["· ",R," selected"]})]}),(0,t.jsxs)(c.Flex,{align:"center",gap:"2px",children:[(0,t.jsx)(nA,{hasSelection:!!e,labelColor:A,hoverColor:v,hoverBg:F}),N&&(0,t.jsx)(z.Tooltip,{label:R>1?"Delete elements":"Delete element",...P,children:(0,t.jsx)(H.IconButton,{"aria-label":"Delete element",icon:(0,t.jsx)(G.FiTrash2,{size:"15px"}),size:"sm",variant:"ghost",color:A,_hover:{color:"#E53E3E",bg:"rgba(229,62,62,0.08)"},borderRadius:"8px",onClick:O})}),(0,t.jsx)(z.Tooltip,{label:"Done",...P,children:(0,t.jsx)(H.IconButton,{"aria-label":"Close design editor",icon:(0,t.jsx)(G.FiMinus,{size:"16px"}),size:"sm",variant:"ghost",color:A,_hover:{color:v,bg:F},borderRadius:"8px",onClick:nD.closeHtmlEmbedDesignEditor})})]})]}),(0,t.jsxs)(b.Box,{ref:M,flex:"1",overflowY:"auto",px:"14px",pb:"20px",sx:(0,eY.autoHideScrollbarSx)(D,{showOnHover:!1}),children:[w&&(0,t.jsx)(rn.default,{iframe:s,selectionVersion:e,selectedEls:r,onSelect:(e,t)=>t?o(e):n(e)}),e?(0,t.jsx)(nf,{selectedEl:e,selectedEls:r}):(0,t.jsxs)(c.Flex,{direction:"column",align:"center",justify:"center",textAlign:"center",px:"20px",gap:"6px",mt:"24px",children:[(0,t.jsx)(g.Text,{fontSize:"13px",fontWeight:600,color:v,children:"Select an element"}),(0,t.jsxs)(g.Text,{fontSize:"12px",color:A,children:["Click a layer ",w?"above":"on the left",", or any part of the design on the canvas, to edit its text, color, spacing, and more."]})]}),w&&u&&(0,t.jsx)(b.Box,{ref:B,children:(0,t.jsx)(ns,{title:"Deck theme",children:(0,t.jsx)(nv.default,{readDeck:u,viewOnly:x})})}),w&&!u&&(0,t.jsx)(b.Box,{ref:B,children:(0,t.jsx)(ns,{title:"Page theme",children:(0,t.jsx)(n_.default,{viewOnly:x})})}),(0,t.jsx)(ns,{title:"Export",children:(0,t.jsx)(ny,{onExport:V})})]})]})},"whiteboard-sidebar-design-editor")};var nU=e.i(785192);let nL={light:"rgba(0, 0, 0, 0.1)",dark:"rgba(255, 255, 255, 0.08)"},nB={zIndex:20,top:`calc(${A.NAVBAR_HEIGHT} + ${A.RIGHT_RAIL_PANEL_GUTTER})`,right:A.RIGHT_RAIL_PANEL_GUTTER,bottom:A.RIGHT_RAIL_PANEL_GUTTER,width:`calc(${A.AI_CHAT_SIDEBAR_WIDTH} - 2 * ${A.RIGHT_RAIL_PANEL_GUTTER})`,position:"fixed"},nW={zIndex:60,right:"0px",bottom:"0px",left:"0px",width:"100vw",height:"70dvh",position:"fixed"},nP={zIndex:59,top:"0px",right:"0px",bottom:"0px",left:"0px",position:"fixed",backgroundColor:"rgba(0, 0, 0, 0.45)"},nj=(0,i.memo)(({onClose:e,onChatClicked:r,resourceId:n,resourceType:o,whiteboardId:a,whiteboardThumbnail:l,onDefaultImageGalleryFileSelect:s})=>{let u=(0,j.useWhiteboardSelectionStore)(e=>e.isImageGalleryOpen),c=(0,j.useWhiteboardSelectionStore)(e=>e.isTemplateGalleryOpen),h=(0,j.useWhiteboardSelectionStore)(e=>e.isDesignEditorOpen),p=(0,j.useWhiteboardSelectionStore)(e=>e.setIsWhiteboardSidebarOpen),m=(0,j.useWhiteboardSelectionStore)(e=>e.setIsImageGalleryOpen),g=(0,j.useWhiteboardSelectionStore)(e=>e.setIsTemplateGalleryOpen),x=(0,j.useWhiteboardSelectionStore)(e=>e.setIsDesignEditorOpen),w=(0,L.useIsMobileViewport)(),E=(0,f.useColorModeValue)("radial-gradient(ellipse 120% 80% at 50% 20%, #FFFFFF 0%, #FEFEFE 35%, #FCFCFC 60%, #F9F9F9 80%, #F6F6F6 100%)","#1C1C1C"),C=(0,f.useColorModeValue)(nL.light,nL.dark),T=(0,f.useColorModeValue)("0 10px 30px rgba(0, 0, 0, 0.08), 0 6px 12px rgba(0, 0, 0, 0.05)","0 10px 30px rgba(0, 0, 0, 0.25), 0 6px 12px rgba(0, 0, 0, 0.15)");return(0,i.useEffect)(()=>(j.useWhiteboardSelectionStore.getState().releaseCanvasRail(),p(!0),()=>{p(!1),m(!1),g(!1),x(!1)}),[p,m,g,x]),(0,R.createPortal)((0,t.jsxs)(t.Fragment,{children:[w&&(0,t.jsx)(y.motion.div,{initial:{opacity:0}
8,animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},style:nP,onClick:e}),(0,t.jsxs)(y.motion.div,{[A.WHITEBOARD_SIDE_PANEL_ATTRIBUTE]:"",initial:w?{y:"100%"}:{x:"100%"},animate:w?{y:0}:{x:0},exit:w?{y:"100%"}:{x:"100%"},transition:{duration:.25,ease:[.22,1,.36,1]},style:w?nW:nB,onClick:()=>{r?.()},children:[(0,t.jsxs)(b.Box,{"data-tour":"template-panel",position:"relative",h:"100%",w:"100%",background:E,border:w?"none":"1px solid",borderColor:C,borderRadius:w?"20px 20px 0 0":A.RIGHT_RAIL_PANEL_RADIUS,boxShadow:T,p:"14px",pb:w?"calc(env(safe-area-inset-bottom) + 14px)":"14px",overflow:"hidden",children:[!u&&!c&&!h&&(0,t.jsx)(b.Box,{h:"100%",w:"100%",children:(0,t.jsx)(N.default,{projectId:n,whiteboardId:a,onChatClicked:r,onMinimize:e})}),(0,t.jsx)(d.AnimatePresence,{children:h&&(0,t.jsx)(nI,{})}),(0,t.jsx)(d.AnimatePresence,{children:u&&(0,t.jsx)(O.WhiteboardSidebarImageGalleryPanel,{onMinimize:e,onDefaultFileSelect:s})}),(0,t.jsx)(d.AnimatePresence,{children:c&&(0,t.jsx)(eK,{onMinimize:e})})]}),!w&&(0,t.jsx)(nU.default,{rail:"right"})]})]}),document.body)});var nR=e.i(391495),nN=e.i(574986);let nO="[data-selection-toolbar-row]",nH={position:"fixed",left:"50%",transform:"translateX(-50%)",bottom:"130px",zIndex:20};function nz(e,t={}){let{offsetPx:r=8,estimatedMenuHeightPx:n=320,estimatedMenuWidthPx:i=280,viewportPaddingPx:o=12,zIndex:a=20,placement:l="below"}=t;if(window.matchMedia(`(max-width: ${L.MOBILE_VIEWPORT_MAX_WIDTH_PX}px)`).matches)return a>nN.MOBILE_SHEET_STYLE.zIndex?{...nN.MOBILE_SHEET_STYLE,zIndex:a}:nN.MOBILE_SHEET_STYLE;let s=e?.current,d=s?.getBoundingClientRect();if(!s||!d)return nH;let u=window.innerWidth,c=window.innerHeight;if(null!==s.closest("[data-toolbar-fallback='true']")){let e=s.closest(nO),t=e?.getBoundingClientRect()??d,n=Math.max(o,Math.min(u-o,t.left+t.width/2));return{position:"fixed",left:`${n}px`,bottom:`${c-t.top+r}px`,transform:"translateX(-50%)",zIndex:a}}if("side"===l){let e=s.closest(nO),t=e?.getBoundingClientRect()??d,l=i+r+o,h=u-t.right,p=t.left,m=Math.max(o,Math.min(t.top,c-n-o));if(h>=l)return{position:"fixed",left:`${t.right+r}px`,top:`${m}px`,zIndex:a};if(p>=l)return{position:"fixed",left:`${t.left-r-i}px`,top:`${m}px`,zIndex:a}}let h="below-toolbar"===l||"side"===l?s.closest("[data-selection-toolbar]")?.getBoundingClientRect()??d:d,p=Math.max(o,Math.min(u-o,h.left+h.width/2)),m=c-h.bottom,g=h.top;return m>=n+r||m>=g?{position:"fixed",left:`${p}px`,top:`${h.bottom+r}px`,transform:"translateX(-50%)",zIndex:a}:{position:"fixed",left:`${p}px`,bottom:`${c-h.top+r}px`,transform:"translateX(-50%)",zIndex:a}}function nG(e,t,r={}){let{offsetPx:n,estimatedMenuHeightPx:o,estimatedMenuWidthPx:a,viewportPaddingPx:l,zIndex:s,placement:d}=r,u=(0,w.useCanvasStore)(e=>t?e.transform:null),[c,h]=(0,i.useState)(nH);return(0,i.useLayoutEffect)(()=>{t&&h(nz(e,{offsetPx:n,estimatedMenuHeightPx:o,estimatedMenuWidthPx:a,viewportPaddingPx:l,zIndex:s,placement:d}))},[t,u,e,n,o,a,l,s,d]),(0,i.useEffect)(()=>{if(!t)return;let r=()=>h(nz(e,{offsetPx:n,estimatedMenuHeightPx:o,estimatedMenuWidthPx:a,viewportPaddingPx:l,zIndex:s,placement:d}));return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[t,e,n,o,a,l,s,d]),c}e.s(["useButtonAnchoredOverlayStyle",0,nG],761740);var nV=e.i(191435),n$=e.i(266512),nJ=e.i(824967),nK=e.i(309767),nY=e.i(261940);let nq="Label category";var nX=e.i(464364);let nQ=(e,t)=>t.find(t=>t.uid===e||t.presetUids.includes(e))?.uid??null;var nZ=e.i(594949),n0=e.i(488826),n1=e.i(129381),n5=e.i(962078),n2=e.i(480336),n4=e.i(899834),n8=e.i(215202);let n3="project-label-palette:v1";async function n6(){let e=await n8.db.projectLabelPalette.get(n3);if(e)return{colors:e.colors,cachedAt:e.cachedAt}}async function n9(e){return n8.db.projectLabelPalette.put({id:n3,colors:e,cachedAt:Date.now()})}async function n7(){if(!n4.apolloClient)return null;try{let{data:e}=await n4.apolloClient.query({query:ea.GetProjectLabelColorPaletteDocument,fetchPolicy:"network-only"}),t=e?.projectLabelColorPalette;if(!t)return null;return await n9(t),t}catch{return null}}async function ie(e){let t,r=await n6(),n=null!=r,i=n&&(t=r.cachedAt,Date.now()-t>36e5);return n&&!i?r.colors:n&&i?(n7().then(t=>{t&&e?.(t)}),r.colors):n7()}let it=nZ.LABEL_COLORS.map((e,t)=>({uid:e.lightBg,name:e.name,lightBg:e.lightBg,lightText:e.lightText,darkBg:e.darkBg,darkText:e.darkText,orderIndex:t})),ir=({activeColorHex:e,onChangeColor:r,title:n="Colors"})=>{let o=(0,i.useRef)(null),a=(0,f.useColorModeValue)("#E4E4E4","#2A2A2A"),l=(0,f.useColorModeValue)("#1A202C","#EEEEEE"),s=(0,f.useColorModeValue)("#888888","#999999"),d=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.05)"),{colorMode:u}=(0,f.useColorMode)(),[h,p]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=!1;return ie(t=>{e||p(t)}).then(t=>{!e&&t&&p(t)}),()=>{e=!0}},[]);let m=h??it,x=e.toUpperCase(),y=(0,i.useMemo)(()=>!m.some(e=>
8e.lightBg.toUpperCase()===x||e.darkBg.toUpperCase()===x),[m,x]);return(0,t.jsxs)(b.Box,{borderTop:"1px solid",borderColor:a,px:"6px",py:"4px",children:[(0,t.jsx)(g.Text,{fontSize:"10px",fontWeight:600,color:s,px:"8px",py:"4px",textTransform:"uppercase",letterSpacing:"0.05em",children:n}),m.map(e=>{let n="dark"===u?e.darkBg:e.lightBg,i=e.lightBg.toUpperCase()===x||e.darkBg.toUpperCase()===x;return(0,t.jsxs)(c.Flex,{align:"center",px:"8px",py:"5px",borderRadius:"6px",cursor:"pointer",_hover:{bg:d},onClick:()=>r(n),children:[(0,t.jsx)(b.Box,{w:"14px",h:"14px",borderRadius:"3px",bg:n,mr:"10px",flexShrink:0}),(0,t.jsx)(g.Text,{fontSize:"12px",color:l,flex:"1",children:e.name}),i&&(0,t.jsx)(g.Text,{fontSize:"11px",color:s,children:"â"})]},e.uid)}),(0,t.jsxs)(b.Box,{position:"relative",children:[(0,t.jsx)("input",{ref:o,type:"color",value:y?e:"#969696",onChange:e=>r(e.target.value),style:{position:"absolute",top:0,left:0,width:"1px",height:"1px",opacity:0,pointerEvents:"none"}}),(0,t.jsxs)(c.Flex,{align:"center",px:"8px",py:"5px",borderRadius:"6px",cursor:"pointer",_hover:{bg:d},onClick:()=>o.current?.click(),children:[(0,t.jsx)(c.Flex,{w:"14px",h:"14px",borderRadius:"3px",bg:y?e:"transparent",border:"1.5px solid",borderColor:s,mr:"10px",flexShrink:0,alignItems:"center",justifyContent:"center",children:!y&&(0,t.jsx)(_.IoColorPaletteOutline,{size:8,color:s})}),(0,t.jsx)(g.Text,{fontSize:"12px",color:l,flex:"1",children:"Custom"}),y&&(0,t.jsx)(g.Text,{fontSize:"11px",color:s,children:"â"})]})]})]})};function ii(e,t,r){let[n,o]=(0,i.useState)(null);return(0,i.useLayoutEffect)(()=>{let n=()=>{let n=e.current?.getBoundingClientRect();if(!n)return;let i=t.current?.offsetHeight??340,a=window.innerWidth-n.right>=r+8?n.right+8:n.left-r-8;a=Math.max(8,Math.min(a,window.innerWidth-r-8));let l=n.top;o({top:l=Math.max(8,Math.min(l,window.innerHeight-i-8)),left:a})};return n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[e,t,r]),n}let io=({anchorRef:e,preset:r,onClose:n,onRename:o,onChangeColor:a,onDelete:l})=>{let s=(0,i.useRef)(null),[d,u]=(0,i.useState)(r.label),h=ii(e,s,240),p=(0,f.useColorModeValue)("#FFFFFF","#1C1C1C"),m=(0,f.useColorModeValue)("#E4E4E4","#2A2A2A"),x=(0,f.useColorModeValue)("#888888","#999999"),y=()=>{let e=d.trim();e&&e!==r.label&&o(e,r.labelColorHex||nZ.DEFAULT_LABEL_COLOR_HEX)};(0,n5.useOutsideClick)({ref:s,handler:()=>{y(),n()}}),(0,i.useEffect)(()=>{u(r.label)},[r.label]);let w=r.labelColorHex||nZ.DEFAULT_LABEL_COLOR_HEX,E=(0,t.jsxs)(b.Box,{ref:s,"data-canvas-overlay-child":!0,position:"fixed",top:`${h?.top??-9999}px`,left:`${h?.left??-9999}px`,width:"240px",maxH:"calc(100vh - 16px)",overflowY:"auto",bg:p,border:"1px solid",borderColor:m,borderRadius:"10px",boxShadow:"0 10px 30px rgba(0,0,0,0.25)",zIndex:1e4,visibility:h?"visible":"hidden",onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:[(0,t.jsx)(b.Box,{p:"6px",children:(0,t.jsx)(V.Input,{autoFocus:!0,value:d,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(y(),n())},size:"sm",fontSize:"13px",fontWeight:500,height:"32px",maxLength:20,bg:"transparent",borderColor:m,_focus:{borderColor:x,boxShadow:"none"}})}),(0,t.jsx)(ir,{activeColorHex:w,onChangeColor:a}),(0,t.jsx)(b.Box,{borderTop:"1px solid",borderColor:m,px:"6px",py:"4px",children:(0,t.jsxs)(c.Flex,{align:"center",px:"8px",py:"5px",borderRadius:"6px",cursor:"pointer",color:"#E53E3E",opacity:.7,_hover:{opacity:1,bg:"rgba(229,62,62,0.08)"},onClick:()=>{l(),n()},children:[(0,t.jsx)(n2.default,{width:"13px",height:"13px"}),(0,t.jsx)(g.Text,{fontSize:"12px",ml:"8px",children:"Delete label"})]})})]});return(0,R.createPortal)(E,document.body)},ia=({checked:e,disabled:r,onToggle:n})=>{let i=e=>{e.stopPropagation(),r||n()};return(0,t.jsx)(b.Box,{role:"checkbox","aria-checked":e,"aria-disabled":r||void 0,"aria-label":e?"Remove label":"Apply label",tabIndex:r?void 0:0,onClick:i,onKeyDown:e=>{(" "===e.key||"Enter"===e.key)&&(e.preventDefault(),i(e))},flexShrink:0,w:"16px",h:"16px",borderRadius:"5px",border:"2px s
8olid",borderColor:e?"#688FE2":"#d1d5db",bg:e?"#688FE2":"transparent",display:"flex",alignItems:"center",justifyContent:"center",cursor:r?"default":"pointer",transition:"background-color 0.12s ease, border-color 0.12s ease",children:e&&(0,t.jsx)(v.MdCheck,{size:12,color:"white"})})},il=({preset:e,isApplied:r})=>{let n=(0,f.useColorModeValue)("#FFFFFF","#1C1C1C"),i=(0,f.useColorModeValue)("#E4E4E4","#2A2A2A");return(0,t.jsxs)(c.Flex,{align:"center",gap:"10px",mx:"8px",px:"10px",py:"7px",borderRadius:"6px",bg:n,border:"1px solid",borderColor:i,boxShadow:"0 6px 18px rgba(0,0,0,0.25)",pointerEvents:"none",children:[(0,t.jsx)(ia,{checked:r,disabled:!0,onToggle:()=>void 0}),(0,t.jsx)(U.CanvasToolLabel,{label:e.label,labelColorHex:e.labelColorHex})]})},is=({preset:e,isApplied:r,isEditing:n,viewOnly:o,panelRef:a,onApplyPreset:l,onEditPreset:s,onCloseEdit:d,onRenamePreset:u,onChangePresetColor:h,onDeletePreset:p})=>{let{isSupported:m,isOpen:g,pickColor:x}=(0,n0.useEyeDropper)(),y=(0,f.useColorModeValue)("#888888","#999999"),w=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.05)"),E=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.07)"),C=(0,f.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.10)"),T=async()=>{let t=await x();t&&h(e,t)},[S,A]=(0,i.useState)(null),_=S??r;(0,i.useEffect)(()=>{null!==S&&r===S&&A(null)},[r,S]),(0,i.useEffect)(()=>{if(null===S)return;let e=setTimeout(()=>A(null),1500);return()=>clearTimeout(e)},[S]);let k=()=>{o||(A(!_),setTimeout(()=>{!1===l(e)&&A(null)},0))},{setNodeRef:F,listeners:D,transform:M,transition:I,isDragging:L}=(0,nX.useSortable)({id:e.uid,disabled:o}),B=(0,i.useRef)(!1);(0,i.useEffect)(()=>{if(L){B.current=!0;return}if(!B.current)return;let e=setTimeout(()=>{B.current=!1},0);return()=>clearTimeout(e)},[L]);let W=(0,i.useRef)(!1);return(0,t.jsxs)(b.Box,{ref:F,mb:"6px",style:{transform:n1.CSS.Translate.toString(M),transition:I},position:L?"relative":void 0,zIndex:L?1:void 0,children:[(0,t.jsxs)(c.Flex,{...D,role:"group",align:"center",gap:"10px",mx:"8px",px:"10px",py:"7px",borderRadius:"6px",cursor:"pointer",bg:_?E:void 0,opacity:L?.35:void 0,sx:{touchAction:"manipulation"},_hover:{bg:_?C:w},onClick:()=>{if(B.current){B.current=!1;return}k()},children:[(0,t.jsx)(ia,{checked:_,disabled:o,onToggle:k}),(0,t.jsx)(b.Box,{minW:0,children:(0,t.jsx)(U.CanvasToolLabel,{label:e.label,labelColorHex:e.labelColorHex})}),(0,t.jsx)(b.Box,{flex:"1",minW:0}),!o&&m&&(0,t.jsx)(b.Box,{as:"button","aria-label":"Pick label color from screen",onClick:e=>{e.stopPropagation(),T()},w:"24px",h:"24px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"6px",color:y,opacity:+!!g,_groupHover:{opacity:.7},_hover:{opacity:1,bg:w},_focusVisible:{opacity:1},flexShrink:0,children:(0,t.jsx)(v.MdColorize,{size:16})}),!o&&(0,t.jsx)(b.Box,{as:"button","aria-label":"Label options",onPointerDown:()=>{W.current=n},onClick:t=>{t.stopPropagation(),(()=>{if(W.current){W.current=!1;return}s(e.uid)})()},w:"24px",h:"24px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"6px",color:y,opacity:.7,_hover:{opacity:1,bg:w},flexShrink:0,children:(0,t.jsx)(v.MdMoreHoriz,{size:18})})]}),n&&(0,t.jsx)(io,{anchorRef:a,preset:e,onClose:d,onRename:(t,r)=>u(e,t,r),onChangeColor:t=>h(e,t),onDelete:()=>p(e)})]})},id=({anchorRef:e,name:r,activeColorHex:n,onClose:o,onRename:a,onChangeColor:l,onDelete:s})=>{let d=(0,i.useRef)(null),[u,h]=(0,i.useState)(r),p=ii(e,d,240),m=(0,f.useColorModeValue)("#FFFFFF","#1C1C1C"),x=(0,f.useColorModeValue)("#E4E4E4","#2A2A2A"),y=(0,f.useColorModeValue)("#888888","#999999"),w=()=>{let e=u.trim();e!==r&&a(e)};(0,n5.useOutsideClick)({ref:d,handler:()=>{w(),o()}}),(0,i.useEffect)(()=>{h(r)},[r]);let E=(0,t.jsxs)(b.Box,{ref:d,"data-canvas-overlay-child":!0,position:"fixed",top:`${p?.top??-9999}px`,left:`${p?.left??-9999}px`,width:"240px",maxH:"calc(100vh - 16px)",overflowY:"auto",bg:m,border:"1px solid",borderColor:x,borderRadius:"10px",boxShadow:"0 10px 30px rgba(0,0,0,0.25)",zIndex:1e4,visibility:p?"visible":"hidden",onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:[(0,t.jsx)(b.Box,{p:"6px",children:(0,t.jsx)(V.Input,{autoFocus:!0,value:u,onChange:e=>h(e.target.value),onKeyDown:e=>{"Enter"===e.key&&w()},placeholder:nq,"aria-label":"Category name",size:"sm",fontSize:"13px",fontWeight:500,height:"32px",maxLength:30,bg:"transparent",borderColor:x,_focus:{borderColor:y,boxShadow:"none"}})}),(0,t.jsx)(ir,{activeColorHex:n,onChangeColor:l,title:"Category color"}),s&&(0,t.jsx)(b.Box,{borderTop:"1px solid",borderColor:x,px:"6px",py:"4px",children:(0,t.jsxs)(c.Flex,{align:"center",px:"8px",py:"5px",borderRadius:"6px",cursor:"pointer",color:"#E53E3E",opacity:.7,_hover:{opacity:1,bg:"rgba(229,62,62,0.08)"},onClick:()=>{s(),o()},children:[(0,t.jsx)(n2.default,{width:"13px",height:"13px"}),(0,t.jsx)(g.Text,{fontSize:"12px",ml:"8px",children:"Delete category"})]})})]});return(0,R.createPortal)(E,document.body)},iu=({children:e,onClick:r,...n})=>{let i=(0,f.useColorModeValue)("rgba(0,0,0,0.06)","rgba(255,255,255,0.08)"),o=(0,f.useColorModeValue)("#666666","#AAAAAA");return(0,t.jsx)(b.Box,{as:"button",...n,onClick:e=>{e.stopPropagation(),r()},w:"20px",h:"20px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px",color:o,cursor:"pointer",_hover:{bg:i},children:e})}
8,ic=({group:e,presetsByUid:r,viewOnly:n,editingPresetUid:o,canRemove:a,panelRef:l,isPresetApplied:s,onApplyPreset:d,onEditPreset:u,onCloseEdit:h,onRenameGroup:p,onRemoveGroup:m,onCreateNamedPreset:x,onChangeGroupColor:y,onRenamePreset:w,onChangePresetColor:E,onDeletePreset:C})=>{let[T,S]=(0,i.useState)(!1),[A,k]=(0,i.useState)(""),[F,D]=(0,i.useState)(!1),[M,I]=(0,i.useState)(""),U=(0,i.useRef)(!1),L=()=>{if(D(!1),U.current){U.current=!1;return}let t=M.trim();t&&t!==e.name&&p(e.uid,t)},B=(0,i.useRef)(!1),{setNodeRef:W,isOver:P}=(0,nJ.useDroppable)({id:e.uid,disabled:n}),j=(0,f.useColorModeValue)("#888888","#888888"),R=(0,f.useColorModeValue)("rgba(0,0,0,0.035)","rgba(255,255,255,0.05)"),N=(0,f.useColorModeValue)("#444444","#DADADA"),O=(0,f.useColorModeValue)("rgba(0,0,0,0.02)","rgba(255,255,255,0.02)"),H=(0,f.useColorModeValue)("rgba(0,0,0,0.07)","rgba(255,255,255,0.07)"),z=(0,f.useColorModeValue)("rgba(0,0,0,0.12)","rgba(255,255,255,0.12)"),G=(0,f.useColorModeValue)("rgba(0,0,0,0.20)","rgba(255,255,255,0.18)"),$=(0,i.useMemo)(()=>{for(let t of e.presetUids){let e=r.get(t);if(e?.labelColorHex)return e.labelColorHex}return"#969696"},[e.presetUids,r]),J=(0,i.useMemo)(()=>e.presetUids.filter(e=>r.has(e)),[e.presetUids,r]),{isSupported:K,pickColor:Y}=(0,n0.useEyeDropper)(),q=async()=>{let t=await Y();t&&y(e.uid,t)};return(0,t.jsxs)(b.Box,{ref:W,mb:"16px",borderRadius:"10px",bg:P?R:void 0,transition:"background 0.12s ease",children:[(0,t.jsxs)(c.Flex,{align:"center",justify:"space-between",mx:"10px",px:"12px",py:"9px",children:[F&&!n?(0,t.jsx)(V.Input,{autoFocus:!0,variant:"unstyled",value:M,onChange:e=>I(e.target.value),onFocus:e=>e.currentTarget.select(),onKeyDown:e=>{e.stopPropagation(),"Enter"===e.key&&L(),"Escape"===e.key&&(U.current=!0,D(!1))},onBlur:L,"aria-label":"Rename category",maxLength:30,fontSize:"11px",fontWeight:600,color:j,textTransform:"uppercase",letterSpacing:"0.06em",height:"auto",borderRadius:"0",flex:"1",minW:0}):(0,t.jsx)(g.Text,{as:"span",fontSize:"11px",fontWeight:600,color:j,textTransform:"uppercase",letterSpacing:"0.06em",cursor:n?"default":"text",onClick:()=>{n||(U.current=!1,I(e.name||nq),D(!0))},title:n?void 0:"Rename category",flex:"1",minW:0,noOfLines:1,children:e.name||nq}),!n&&(0,t.jsxs)(c.Flex,{align:"center",gap:"2px",ml:"4px",flexShrink:0,children:[(0,t.jsx)(iu,{onPointerDown:()=>{B.current=T},onClick:()=>{if(B.current){B.current=!1;return}S(!0)},"aria-label":"Edit category",children:(0,t.jsx)(_.IoColorPalette,{size:14})}),K&&(0,t.jsx)(iu,{onClick:q,"aria-label":"Pick category color from screen",children:(0,t.jsx)(v.MdColorize,{size:14})})]})]}),T&&(0,t.jsx)(id,{anchorRef:l,name:e.name,activeColorHex:$,onClose:()=>S(!1),onRename:t=>p(e.uid,t),onChangeColor:t=>y(e.uid,t),onDelete:a?()=>m(e.uid):void 0}),!n&&(0,t.jsx)(b.Box,{mx:"12px",mt:"2px",mb:"8px",children:(0,t.jsx)(V.Input,{value:A,onChange:e=>k(e.target.value),onKeyDown:t=>{if("Enter"===t.key){let r;t.stopPropagation(),(r=A.trim())&&(x(e.uid,r),k(""))}},placeholder:"Enter label name","aria-label":`Add label to ${e.name||nq}`,maxLength:20,fontSize:"12px",height:"38px",borderRadius:"10px",bg:O,borderColor:H,color:N,_hover:{borderColor:z},_focusVisible:{borderColor:G,boxShadow:"none"},_placeholder:{color:j}})}),(0,t.jsx)(nX.SortableContext,{items:J,strategy:nX.verticalListSortingStrategy,children:J.map(e=>{let i=r.get(e);return i?(0,t.jsx)(is,{preset:i,isApplied:s(i),isEditing:o===e,viewOnly:n,panelRef:l,onApplyPreset:d,onEditPreset:u,onCloseEdit:h,onRenamePreset:w,onChangePresetColor:E,onDeletePreset:C},e):null})})]})},ih=({tabs:e,selectedPackId:r,onSelect:n,onAddPack:o,onRemovePack:a})=>{let l=(0,f.useColorModeValue)("#F7F7F7","#252525"),s=(0,f.useColorModeValue)("#E4E4E4","#2A2A2A"),d=(0,f.useColorModeValue)("#EEEEEE","#2F2F2F"),u=(0,f.useColorModeValue)("#444444","#CCCCCC"),h=(0,f.useColorModeValue)("#888888","#666666"),p=(0,f.useColorModeValue)("#CCCCCC","#3A3A3A"),m=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.09)"),x=(0,f.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.13)"),y=(0,f.useColorModeValue)("rgba(0,0,0,0.10)","rgba(255,255,255,0.16)"),w=(0,i.useRef)(null);return(0,t.jsxs)(b.Box,{children:[(0,t.jsx)(b.Box,{px:"20px",pt:"14px",pb:"10px",children:(0,t.jsx)(g.Text,{fontSize:"10px",fontWeight:600,color:h,textTransform:"uppercase",letterSpacing:"0.06em",children:"Switch to"})}),(0,t.jsx)(b.Box,{ref:w,onWheel:e=>{if(0===e.deltaY||0!==e.deltaX)return;let t=w.current;t&&(t.scrollLeft+=e.deltaY)},overflowX:"auto",px:"16px",pb:"16px",sx:{"&::-webkit-scrollbar":{display:"none"},scrollbarWidth:"none"},children:(0,t.jsxs)(c.Flex,{gap:"8px",w:"max-content",children:[e.map(e=>{let i=null===e.id,o=r===e.id;return(0,t.jsxs)(c.Flex,{align:"center",gap:"4px",bg:o?m:i?"transparent":l,border:"1px solid",borderColor:o?y:i?p:s,_hover:{bg:o?x:d},borderRadius:"8px",px:"12px",py:"5px",flexShrink:0,transition:"background 0.12s",children:[(0,t.jsx)(g.Text,{as:"button",onClick:()=>n(e.id),fontSize:"11px",fontWeight:o?600:500,color:u,noOfLines:1,cursor:"pointer",children:e.name}),!i&&(0,t.jsx)(b.Box,{as:"button",onClick:()=>a(e.id),"aria-label":`Remove ${e.name} pack`,color:o?u:h,opacity:.7,_hover:{opacity:1},cursor:"pointer",display:"inline-flex",children:(0,t.jsx)(v.MdClose,{size:12})})]},e.id??"__custom__")}),(0,t.jsxs)(c.Flex,{as:"button",onClick:o,align:"center",gap:"4px",border:"1.5px dashed",borderColor:p,borderRadius:"8px",px:"12px",py:"5px",flexShrink:0,color:u,_hover:{bg:d},transition:"background 0.12s","aria-label":"Add label pack",children:[(0,t.jsx)(v.MdAdd,{size:13}),(0,t.jsx)(g.Text,{fontSize:"11px",fontWeight:500,noOfLines:1,children:"Add pack"})]})]})})]})};var ip=e.i(692312);let im=({isOpen:e,onClose:r,packs:n,onSelect:i})=>{let o=(0,f.useColorModeValue)("#FFFFFF","#212121"),a=(0,f.useColorModeValue)("lightModeBg.canvasToolbarBorder","darkModeBg.canvasToolbarBorder"),l=(0,f.useColorModeValue)("#1A202C","#EEEEEE"),s=(0,f.useColorModeValue)("#888888","#888888"),d=(0,f.useColorModeValue)("#E4E4E4","#2A2A2A"),u=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.05)"),x=e=>e.stopPropagation();return(0,t.jsxs)(h.Modal,{isOpen:e,onClose:r,isCentered:!0,size:"sm",children:[(0,t.jsx)(q.ModalOverlay,{"data-canvas-overlay-child":!0,onMouseDown:x,zIndex:10050}),(0,t.jsxs)(m.ModalContent,{"data-canvas-overlay-child":!0,onMouseDown:x,containerProps:{zIndex:10050},bg:o,border:"1px solid",borderColor:a,borderRadius:"14px",boxShadow:"none",overflow:"hidden",children:[(0,t.jsxs)(c.Flex,{align:"center",justify:"space-between",px:"16px",py:"12px",children:[(0,t.jsx)(g.Text,{fontSize:"13px",fontWeight:600,color:l,children:"Add a label pack"}),(0,t.jsx)(H.IconButton,{"aria-label":"Close",icon:(0,t.jsx)(v.MdClose,{size:14}),size:"xs",variant:"ghost",color:s,onClick:r})]}),(0,t.jsx)(p.ModalBody,{pt:"0",pb:"12px",px:"12px",maxH:"46vh",overflowY:"auto",children:0===n.length?(0,t.jsx)(g.Text,{fontSize:"12px",color:s,px:"4px",pb:"6px",children:"You've added every available pack."}):(0,t.jsx)(ip.VStack,{align:"stretch",spacing:"4px",children:n.map(e=>(0,t.jsx)(b.Box,{as:"button",onClick:()=>{i(e.id),r()},textAlign:"left",px:"10px",py:"9px",borderRadius:"6px",border:"1px solid",borderColor:d,_hover:{bg:u},cursor:"pointer",children:(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:500,color:l,children:e.name})},e.id))})})]})]})},ig=({isOpen:e,packName:r,onConfirm:n,onCancel:i})=>{let o=(0,f.useColorModeValue)("#FFFFFF","#212121"),a=(0,f.useColorModeValue)("lightModeBg.canvasToolbarBorder","darkModeBg.canvasToolbarBorder"),l=(0,f.useColorModeValue)("#1A202C","#EEEEEE"),s=(0,f.useColorModeValue)("#666666","#AAAAAA"),d=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.06)"),b=(0,f.useColorModeValue)("rgba(0,0,0,0.08)","rgba(255,255,255,0.10)"),x=(0,f.useColorModeValue)("#CC4444","#CC4444"),y=(0,f.useColorModeValue)("#B83A3A","#B83A3A"),w=e=>e.stopPropagation();return(0,t.jsxs)(h.Modal,{isOpen:e,onClose:i,isCentered:!0,size:"sm",children:[(0,t.jsx)(q.ModalOverlay,{"data-canvas-overlay-child":!0,onMouseDown:w}),(0,t.jsx)(m.ModalContent,{"data-canvas-overlay-child":!0,onMouseDown:w,bg:o,border:"1px solid",borderColor:a,borderRadius:"14px",boxShadow:"none",overflow:"hidden",children:(0,t.jsxs)(p.ModalBody,{p:"20px",children:[(0,t.jsxs)(g.Text,{fontSize:"14px",fontWeight:600,color:l,mb:"6px",children:['Delete the "',r,'" pack?']}),(0,t.jsx)(g.Text,{fontSize:"12px",color:s,mb:"16px",children:"All of its groups and labels will be removed. This cannot be undone."}),(0,t.jsxs)(c.Flex,{justify:"flex-end",gap:"8px",children:[(0,t.jsx)(u.Button,{size:"sm",fontSize:"12px",fontWeight:500,bg:
8d,color:l,_hover:{bg:b},onClick:i,children:"Cancel"}),(0,t.jsx)(u.Button,{size:"sm",fontSize:"12px",fontWeight:600,bg:x,color:"#FFFFFF",_hover:{bg:y},onClick:n,children:"Delete"})]})]})})]})};var ib=e.i(646228),ix=e.i(170758);let iy={id:null,name:"Custom"},iw=({viewOnly:e,buttonRef:r,customContainerStyle:n,placement:o,modifiers:a,onCloseClicked:l,isPresetApplied:s,onApplyPreset:d,appliedSection:u})=>{let h=(0,E.useWhiteboardViewStore)(e=>e.userLabelPresets),{currentUser:p,setUserLabelPresets:m,setUserLabelPresetGroups:x}=(0,eg.useCurrentUser)(),{data:y}=(0,eo.useQuery)(ea.AvailableUserLabelPresetPacksDocument),[w]=(0,ei.useMutation)(ea.AddUserLabelPresetPackDocument),[T]=(0,ei.useMutation)(ea.RemoveUserLabelPresetPackDocument),S=(0,i.useMemo)(()=>h.map(e=>e.uid),[h]),{groups:A,addGroup:_,renameGroup:k,removeGroup:F,assignPresetToGroup:D,commitGroups:M}=function({allPresetUids:e}){let[t,r]=(0,i.useState)([]),[n,o]=(0,i.useState)(!1),{userLabelPresetGroups:a,refreshUserLabelPresetData:l}=(0,eg.useCurrentUser)(),[s]=(0,ei.useMutation)(ea.SetUserLabelPresetGroupsDocument);(0,i.useEffect)(()=>{null==a||n||r(a.map(e=>({uid:e.uid,name:e.name,presetUids:[...e.presetUids],packId:e.packId||null})))},[a,n]);let d=(0,i.useRef)(null),u=(0,i.useRef)(null),c=e=>({groups:e.map(e=>({uid:e.uid,name:e.name,presetUids:e.presetUids,packId:e.packId??""}))}),h=(0,i.useCallback)(e=>{u.current=e,d.current&&clearTimeout(d.current),d.current=setTimeout(async()=>{let e=u.current;if(u.current=null,d.current=null,e){try{await s({variables:c(e)}),await l()}catch{}o(!1)}},400)},[s,l]);(0,i.useEffect)(()=>()=>{d.current&&(clearTimeout(d.current),d.current=null);let e=u.current;u.current=null,e&&s({variables:c(e)})},[s]);let p=(0,i.useCallback)(e=>{r(e),o(!0),h(e)},[h]),m=(0,i.useMemo)(()=>{let r=new Set,n=t.map(t=>({...t,presetUids:t.presetUids.filter(t=>!(!e.includes(t)||r.has(t))&&(r.add(t),!0))})),i=e.filter(e=>!r.has(e));return 0===n.length?n.push({uid:(0,nY.v4)(),name:nq,presetUids:i,packId:null}):n[0]={...n[0],presetUids:[...i,...n[0].presetUids]},n},[t,e]),g=(0,i.useCallback)((e=null)=>{let t={uid:(0,nY.v4)(),name:nq,presetUids:[],packId:e};return p([...m,t]),t.uid},[m,p]),f=(0,i.useCallback)((e,t)=>{let r=t.trim()||nq;p(m.map(t=>t.uid===e?{...t,name:r}:t))},[m,p]),b=(0,i.useCallback)(e=>{if(m.length<=1)return;let t=m.find(t=>t.uid===e);if(!t)return;let r=m.filter(t=>t.uid!==e);r[0]={...r[0],presetUids:[...r[0].presetUids,...t.presetUids]},p(r)},[m,p]),x=(0,i.useCallback)((e,t)=>{p(m.map(r=>({...r,presetUids:r.uid===t?r.presetUids.includes(e)?r.presetUids:[e,...r.presetUids]:r.presetUids.filter(t=>t!==e)})))},[m,p]);return{groups:m,addGroup:g,renameGroup:f,removeGroup:b,assignPresetToGroup:x,commitGroups:p}}({allPresetUids:S}),{sensors:I,collisionDetection:U,displayGroups:L,activeDragPresetUid:B,handleDragStart:W,handleDragOver:P,handleDragEnd:j,handleDragCancel:N}=function({groups:e,commitGroups:t}){let[r,n]=(0,i.useState)(null),o=(0,i.useRef)(null),[a,l]=(0,i.useState)(null),s=(0,i.useCallback)(e=>{o.current=e,n(e)},[]),d=(0,nJ.useSensors)((0,nJ.useSensor)(nJ.MouseSensor,{activationConstraint:{distance:5}}),(0,nJ.useSensor)(nJ.TouchSensor,{activationConstraint:{delay:250,tolerance:5}})),u=(0,i.useCallback)(t=>{s(e),l(String(t.active.id))},[e,s]),c=(0,i.useCallback)(e=>{let{active:t,over:r}=e,n=o.current;if(!r||!n)return;let i=String(t.id),a=String(r.id),l=nQ(i,n),d=nQ(a,n);if(!l||!d||l===d)return;let u=n.find(e=>e.uid===d);if(!u)return;let c=u.presetUids.indexOf(a),h=c>=0?c:u.presetUids.length;s(n.map(e=>{if(e.uid===l)return{...e,presetUids:e.presetUids.filter(e=>e!==i)};if(e.uid===d){let t=[...e.presetUids];return t.splice(h,0,i),{...e,presetUids:t}}return e}))},[s]),h=(0,i.useCallback)(r=>{let n,i=o.current;s(null),l(null);let{active:a,over:d}=r;if(!i||!d)return;let u=String(a.id),c=String(d.id),h=nQ(u,i),p=i.find(e=>e.uid===h),m=i;if(p&&c!==u){let e=p.presetUids.indexOf(u),t=p.presetUids.indexOf(c);e>=0&&t>=0&&e!==t&&(m=i.map(r=>r.uid===p.uid?{...r,presetUids:(0,nX.arrayMove)(r.presetUids,e,t)}:r))}(n=m).length===e.length&&n.every((t,r)=>t.uid===e[r].uid&&t.presetUids.length===e[r].presetUids.length&&t.presetUids.every((t,n)=>t===e[r].presetUids[n]))||t(m)},[e,t,s]),p=(0,i.useCallback)(()=>{s(null),l(null)},[s]);return{sensors:d,collisionDetection:nJ.closestCenter,displayGroups:r??e,activeDragPresetUid:a,handleDragStart:u,handleDragOver:c,handleDragEnd:h,handleDragCancel:p}}({groups:A,commitGroups:M}),[O,H]=(0,i.useState)(null),z=(0,i.useMemo)(()=>{let e=new Set;return A.forEach(t=>{t.packId&&e.add(t.packId)}),e},[A]),G=y?.availableUserLabelPresetPacks??[],V=(0,i.useMemo)(()=>[iy,...G.filter(e=>z.has(e.id)).map(e=>({id:e.id,name:e.name}))],[G,z]),$=(0,i.useMemo)(()=>G.filter(e=>!z.has(e.id)),[G,z]),J=(0,i.useMemo)(()=>L.filter(e=>(e.packId??null)===O),[L,O]),K=(0,i.useMemo)(()=>{let e=new Map;return h.forEach(t=>e.set(t.uid,t)),e},[h]),q=B?K.get(B)??null:null;(0,i.useEffect)(()=>
8{if(e)return;let t=`storyflow.autoColoredLabelPacks.${p?.id??"anon"}`,r=(e=>{try{let t=window.localStorage.getItem(e);return new Set(t?JSON.parse(t):[])}catch{return new Set}})(t),n=new Map;if(A.forEach(e=>{if(!e.packId||r.has(e.packId))return;let t=n.get(e.packId)??[];t.push(e),n.set(e.packId,t)}),0===n.size)return;let i=!1;n.forEach((e,t)=>{e.flatMap(e=>e.presetUids).every(e=>h.some(t=>t.uid===e))&&(e.forEach((e,t)=>{let r=nZ.PACK_CATEGORY_COLORS[t%nZ.PACK_CATEGORY_COLORS.length];e.presetUids.forEach(e=>{let t=h.find(t=>t.uid===e);t&&!(0,nZ.isPaletteLabelColor)(t.labelColorHex)&&C.whiteboardActions.renameUserLabelPreset(t,t.label,r)})}),r.add(t),i=!0)}),i&&((e,t)=>{try{window.localStorage.setItem(e,JSON.stringify(Array.from(t)))}catch{}})(t,r)},[A,h,p?.id,e]);let X=(0,f.useColorModeValue)("#E4E4E4","#2A2A2A"),Q=(0,f.useColorModeValue)("#1A202C","#EEEEEE"),Z=(0,f.useColorModeValue)("#888888","#888888"),ee=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.05)"),et=(0,f.useColorModeValue)("rgba(0,0,0,0.03)","rgba(255,255,255,0.035)"),[er,en]=(0,i.useState)(null),el=(0,i.useRef)([]),es=(0,i.useRef)(S),ed=S.filter(e=>!es.current.includes(e));if(ed.length>0&&el.current.length>0){let e=Math.min(ed.length,el.current.length),t=el.current.splice(0,e);t.forEach(({groupUid:e},t)=>D(ed[t],e)),t.some(e=>e.openEdit)&&en(ed[0])}es.current=S;let eu=(0,i.useCallback)(async(e,t)=>{el.current.push({groupUid:e,openEdit:!1}),await C.whiteboardActions.createUserLabelPreset(t,nZ.DEFAULT_LABEL_COLOR_HEX)},[]),{getNodes:ec}=(0,ix.useCanvasEngine)(),eh=(0,i.useCallback)((e,t,r)=>{C.whiteboardActions.updateElementLabels(e,r)},[]),ep=(0,i.useCallback)(e=>{for(let t of ec()){let r=t.data?.element??{},n=r.labels;if(n?.length){let i=e(n);i!==n&&eh(t.id,r,i)}let i=r.elements;if(i)for(let t of i){let r=t.content?.labels;if(!r?.length)continue;let n=e(r);n!==r&&eh(t.uid,t.content,n)}}},[ec,eh]),em=(0,i.useCallback)((e,t,r,n)=>{C.whiteboardActions.renameUserLabelPreset(e,r,n),ep(t=>t.some(t=>t.presetUid===e.uid)?t.map(t=>t.presetUid===e.uid?{...t,label:r,labelColorHex:n}:t):t)},[ep]),ef=(0,i.useCallback)((e,t,r)=>{C.whiteboardActions.renameUserLabelPreset(e,e.label,r),ep(t=>t.some(t=>t.presetUid===e.uid)?t.map(t=>t.presetUid===e.uid?{...t,labelColorHex:r}:t):t)},[ep]),eb=(0,i.useCallback)((e,t)=>{let r=A.find(t=>t.uid===e);if(!r)return;let n=new Set(r.presetUids);r.presetUids.map(e=>K.get(e)).filter(e=>!!e).forEach(e=>C.whiteboardActions.renameUserLabelPreset(e,e.label,t)),ep(e=>e.some(e=>e.presetUid&&n.has(e.presetUid))?e.map(e=>e.presetUid&&n.has(e.presetUid)?{...e,labelColorHex:t}:e):e)},[A,K,ep]),ex=(0,i.useCallback)(()=>{_(O)},[_,O]),ey=(0,Y.useDisclosure)(),ew=(0,i.useCallback)(async e=>{let t=await w({variables:{packId:e}}),r=t.data?.addUserLabelPresetPack;r&&(m(r.presets),x(r.groups),H(e),p?.id&&await (0,ib.setUserLabelPresetDataCache)(p.id,{presets:r.presets,groups:r.groups}))},[w,p?.id,m,x]),[eE,eC]=(0,i.useState)(null),eT=(0,i.useCallback)(e=>{let t=G.find(t=>t.id===e);eC({id:e,name:t?.name??"this pack"})},[G]),eS=(0,i.useCallback)(async e=>{let t=await T({variables:{packId:e}});if(!t.data?.removeUserLabelPresetPack?.status)return;let r=new Set(A.filter(t=>t.packId===e).map(e=>e.uid)),n=new Set;A.forEach(t=>{t.packId===e&&t.presetUids.forEach(e=>n.add(e))});let i=h.filter(e=>!n.has(e.uid)),o=A.filter(e=>!r.has(e.uid)).map(e=>({id:0,uid:e.uid,name:e.name,presetUids:e.presetUids,packId:e.packId}));ep(e=>e.some(e=>e.presetUid&&n.has(e.presetUid))?e.filter(e=>!e.presetUid||!n.has(e.presetUid)):e),m(i),x(o),O===e&&H(null),p?.id&&await (0,ib.setUserLabelPresetDataCache)(p.id,{presets:i,groups:o})},[p?.id,A,T,O,x,m,h,ep]),eA=(0,i.useRef)(null);return(0,t.jsxs)(nK.default,{onCloseClicked:l,buttonRef:r,customContainerStyle:n,padding:"0px",placement:o,modifiers:a,width:"360px",children:[(0,t.jsxs)(c.Flex,{ref:eA,direction:"column",h:"min(400px, calc(100vh - 180px))",children:[u,(0,t.jsxs)(b.Box,{py:"14px",flex:"1",overflowY:"auto",overflowX:"hidden",minH:0,children:[(0,t.jsxs)(nJ.DndContext,{sensors:I,collisionDetection:U,onDragStart:W,onDragOver:P,onDragEnd:j,onDragCancel:N,children:[J.map(r=>(0,t.jsx)(ic,{group:r,presetsByUid:K,viewOnly:e,editingPresetUid:er,canRemove:J.length>1,panelRef:eA,isPresetApplied:s,onApplyPreset:d,onEditPreset:en,onCloseEdit:()=>en(null),onRenameGroup:k,onRemoveGroup:F,onCreateNamedPreset:eu,onChangeGroupColor:eb,onRenamePreset:(e,t,n)=>em(e,r.uid,t,n),onChangePresetColor:(e,t)=>
8ef(e,r.uid,t),onDeletePreset:e=>{C.whiteboardActions.deleteUserLabelPreset(e.uid),ep(t=>t.some(t=>t.presetUid===e.uid)?t.filter(t=>t.presetUid!==e.uid):t)}},r.uid)),"u">typeof document&&(0,R.createPortal)((0,t.jsx)(nJ.DragOverlay,{zIndex:1e5,children:q?(0,t.jsx)(il,{preset:q,isApplied:s(q)}):null}),document.body)]}),!e&&(0,t.jsx)(b.Box,{px:"10px",pt:"6px",children:(0,t.jsxs)(c.Flex,{align:"center",px:"12px",py:"10px",borderRadius:"6px",cursor:"pointer",color:Z,bg:et,_hover:{bg:ee,color:Q},onClick:ex,children:[(0,t.jsx)(v.MdAdd,{size:15}),(0,t.jsx)(g.Text,{fontSize:"12px",ml:"10px",children:"Add new label category"})]})})]}),!e&&(0,t.jsxs)(b.Box,{flexShrink:0,children:[(0,t.jsx)(n$.Divider,{color:X,mx:"18px",width:"auto"}),(0,t.jsx)(ih,{tabs:V,selectedPackId:O,onSelect:H,onAddPack:ey.onOpen,onRemovePack:eT})]})]}),(0,t.jsx)(im,{isOpen:ey.isOpen,onClose:ey.onClose,packs:$,onSelect:ew}),(0,t.jsx)(ig,{isOpen:null!==eE,packName:eE?.name??"",onCancel:()=>eC(null),onConfirm:()=>{eC(null),eE&&eS(eE.id)}})]})};e.s(["default",0,iw],858247);let iE=({element:e,elements:r,onCloseClicked:n,buttonRef:o,customContainerStyle:a,elementAttributes:l,placement:s,modifiers:d,viewOnly:u,onUpdate:c})=>{let h=(0,j.useWhiteboardSelectionStore)(e=>e.setCurrentActiveElement);(0,E.useWhiteboardViewStore)(e=>e.whiteboarableId);let p=!!r&&r.length>0,m=p?r:e?[e]:[],g=(0,i.useCallback)((e,t)=>{c?c(e,t):C.whiteboardActions.updateProjectTicket({...e,...t})},[c]),f=(0,i.useCallback)(t=>{if(!u){for(let e of m)g(e,t);if(!p&&e){let r={...e,...t};l&&h({activeElement:r,elementAttributes:l})}}},[u,m,p,e,g,l,h]),b=(0,i.useCallback)(e=>0!==m.length&&m.every(t=>t?.label===e.label&&(t?.labelColorHex??"")===(e.labelColorHex??"")),[m]),x=(0,i.useCallback)(e=>{b(e)?f({label:"",labelColorHex:""}):f({label:e.label,labelColorHex:e.labelColorHex})},[b,f]);return(0,t.jsx)(iw,{viewOnly:u,buttonRef:o,customContainerStyle:a,placement:s,modifiers:d,onCloseClicked:n,isPresetApplied:b,onApplyPreset:x})};function iC({ticket:e,viewOnly:r,zIndex:n}){let o=(0,i.useRef)(null),[a,l]=(0,i.useState)(!1),s=nG(o,a,{estimatedMenuWidthPx:360,estimatedMenuHeightPx:400,zIndex:n}),d=(0,i.useCallback)(()=>l(!0),[]);return{labelAnchorRef:o,openLabelMenu:r?void 0:d,labelMenu:a?(0,t.jsx)(nV.CanvasMenuEventFence,{children:(0,t.jsx)(iE,{buttonRef:o,customContainerStyle:s,onCloseClicked:()=>l(!1),element:e,viewOnly:r})}):null}}e.s(["default",0,iE],514789),e.s(["useTicketLabelChipMenu",0,iC],587418);var iT=e.i(642076);function iS({ticket:e,viewOnly:r,zIndex:n}){let o=(0,E.useWhiteboardViewStore)(e=>e.projectParticipants),a=(0,i.useRef)(null),[l,s]=(0,i.useState)(!1),d=nG(a,l,{estimatedMenuWidthPx:265,estimatedMenuHeightPx:320,zIndex:n}),u=(0,i.useCallback)(e=>{a.current=e.currentTarget,s(!0)},[]),c=(0,i.useCallback)(t=>{s(!1);let r={...e,assignedToUserId:t};C.whiteboardActions.updateProjectTicket(r)},[e]);return{openAssigneeMenu:r?void 0:u,assigneeMenu:l?(0,t.jsx)(nV.CanvasMenuEventFence,{children:(0,t.jsx)(iT.default,{buttonRef:a,customContainerStyle:d,onUserSelected:c,currentAssignedUserId:e.assignedToUserId??void 0,onCloseClicked:()=>s(!1),projectParticipants:o})}):null}}e.s(["useTicketAssigneeMenu",0,iS],903328);var iA=e.i(851179);let i_=(0,F.chakra)(k.default);function iv({isOpen:e,onClose:r,initialToolTicket:n,initialModalType:o}){let a,l=(a=n.whiteboardElementUid,(0,w.useCanvasStore)((0,i.useCallback)(e=>{let t=e.nodeLookup.get(a);if(t)return t.data?.element;for(let t of e.nodes){let e=t.data?.element?.elements?.find(e=>e.uid===a);if(e)return e.content}},[a]))??n),s=(0,L.useIsMobileViewport)(),d=(0,E.useWhiteboardViewStore)(e=>e.viewOnly),k=(0,E.useWhiteboardViewStore)(e=>e.projectParticipantsMap),F=l.assignedToUserId&&l.assignedToUserId>0?k[l.assignedToUserId]??null:null,{changeUserSettingsTicketEditingModalType:R}=(0,nR.useCurrentUserSettings)(),[N,O]=(0,i.useState)(o),H=(0,i.useCallback)(e=>{O(e),R(e)},[R]),z="side-panel"===N&&!s,G=l.elementUid??l.whiteboardElementUid,V=(0,j.useWhiteboardSelectionStore)(e=>e.claimCanvasRail),$=(0,j.useWhiteboardSelectionStore)(e=>e.setDocumentSidePanelUid),J=(0,j.useWhiteboardSelectionStore)(e=>e.documentSidePanelUid);(0,i.useEffect)(()=>
8{if(z&&e)return V(G),()=>{j.useWhiteboardSelectionStore.getState().documentSidePanelUid===G&&$(null)}},[z,e,G,V,$]),(0,i.useEffect)(()=>{if(!z||!e)return;let t=j.useWhiteboardSelectionStore.getState(),n=t.documentSidePanelUid;if(null===n||n===G)return;let i=t.isCanvasTicketDetailsModalOpenDetails.toolTicket;i?.whiteboardElementUid===l.whiteboardElementUid&&r()},[J,z,e,G,r,l.whiteboardElementUid]);let{labelAnchorRef:K,openLabelMenu:Y,labelMenu:q}=iC({ticket:l,viewOnly:d,zIndex:1500}),{openAssigneeMenu:X,assigneeMenu:Q}=iS({ticket:l,viewOnly:d,zIndex:1500}),Z=(0,f.useColorModeValue)("#1A202C","white"),ee=(0,f.useColorModeValue)(`linear-gradient(0deg, rgba(250, 250, 250, 0.95), rgba(250, 250, 250, 0.95)), 9 linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0) 100%)`,"#202020"),et=(0,f.useColorModeValue)("#F1F2F4","#212121"),er=(0,f.useColorModeValue)(nL.light,nL.dark),en=(0,f.useColorModeValue)("blur(50px)","blur(15px)"),ei=(0,f.useColorModeValue)("#EEEEEE","#2A2A2A"),eo=(0,f.useColorModeValue)("#DFDFDF","rgba(255, 255, 255, 0.08)"),ea=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.06)"),el=()=>{r()},{isAgentPanelBeside:es,containerProps:ed}=(0,B.useCanvasModalGeometry)();(0,B.useCanvasModalClickAway)(es&&e&&!z,el);let eu=(0,i.useRef)(null),[ec,eh]=(0,i.useState)(l.title??"");(0,i.useEffect)(()=>{document.activeElement!==eu.current&&eh(l.title??"")},[l.title]);let ep=e=>{C.whiteboardActions.updateProjectTicket({...l,title:e})},em=z||s?"20px":"85px",eg=(0,i.useMemo)(()=>(0,t.jsx)(b.Box,{id:l.whiteboardElementUid,w:"100%",h:"100%",px:em,onKeyDown:e=>{"Backspace"===e.key&&e.stopPropagation()},overflowY:"auto",children:(0,t.jsx)(c.Flex,{w:"100%",justifyContent:"center",children:(0,t.jsx)(b.Box,{w:"100%",maxW:"650px",children:(0,t.jsx)(D.default,{content:l.description,isEditable:!d,onUpdate:async e=>{C.whiteboardActions.updateProjectTicket({...l,description:e})},useSmallFont:!0,bubbleMenuContainer:"parent",isModal:!0})})})}),[l,em]),ef=(0,t.jsx)(c.Flex,{direction:"column",pl:"15px",pt:"15px",pr:"15px",children:(0,t.jsxs)(c.Flex,{w:"100%",justifyContent:"space-between",children:[(0,t.jsxs)(c.Flex,{justifyContent:"center",alignItems:"center",gap:"4px",children:[!s&&(0,t.jsx)(P.default,{modalType:N,onChangeModalType:H}),(0,t.jsx)(b.Box,{h:"22px",w:"22px",mr:"5px",display:"flex",alignItems:"center",justifyContent:"center",cursor:X?"pointer":"default",onClick:X,children:F?(0,t.jsx)(x.Avatar,{height:"22px",width:"22px",src:F.profileImageUrl?A.S3_IMAGE_URL_PREFIX+F.profileImageUrl:""}):(0,t.jsx)(S.default,{width:20,height:20})}),(0,t.jsx)(_.IoChevronForwardSharp,{}),(0,t.jsx)(g.Text,{textAlign:"start",fontSize:"13px",fontWeight:"400",ml:"5px",children:"Ticket Details"})]}),(0,t.jsx)(c.Flex,{alignItems:"center",gap:"4px",children:z?(0,t.jsx)(b.Box,{as:"button","aria-label":"Collapse side panel",h:"28px",minW:"28px",px:"6px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"9999px",_hover:{bg:ea},onClick:el,children:(0,t.jsx)(v.MdKeyboardDoubleArrowRight,{size:"23px",color:"#838383"})}):(0,t.jsx)(I.default,{onCloseClicked:el})})]})}),eb=(0,t.jsxs)(c.Flex,{pt:"25px",direction:"column",h:"calc(100% - 45px)",overflow:"auto",pr:"5px",sx:{"&::-webkit-scrollbar":{width:"6px",borderRadius:"8px",backgroundColor:"rgba(0, 0, 0, 0.05)"},"&::-webkit-scrollbar-thumb":{borderRadius:"8px",backgroundColor:"rgba(0, 0, 0, 0.15)"},scrollbarWidth:"thin",scrollbarColor:"rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.05)"},children:[(0,t.jsxs)(b.Box,{px:em,display:"flex",flexDirection:"column",children:[(0,t.jsx)(b.Box,{mb:"20px",children:(0,t.jsx)(c.Flex,{w:"100%",justifyContent:"center",children:(0,t.jsx)(b.Box,{w:"100%",maxW:"650px",children:(0,t.jsx)(i_,{ref:eu,disabled:d,placeholder:"Enter your title for your ticket...",_placeholder:{color:"#6E6E6E"},value:ec,textAlign:"start",onChange:e=>eh(e.target.value),onBlur:()=>{ec.trim()&&ep(ec.trim())},onKeyDown:e=>{"Backspace"===e.key&&e.stopPropagation(),"Enter"===e.key&&(e.preventDefault(),ep(ec.trim()),eu.current?.blur())},fontSize:z?"26px":"38px",fontWeight:"700",padding:"0px",lineHeight:"1.2",minH:"initial",resize:"none",w:"100%",cursor:"text",bg:"transparent",outline:"none",_focus:{outline:"none",boxShadow:"none"},_active:{outline:"none",boxShadow:"none"},sx:{"&::-webkit-scrollbar":{display:"none"},minHeight:"unset",height:"auto",overflowY:"visible"}})})})}),(0,t.jsx)(c.Flex,{alignItems:"center",w:"100%",mb:"25px",justifyContent:"flex-start",children:(0,t.jsx)(c.Flex,{w:"100%",justifyContent:"center",children:(0,t.jsxs)(c.Flex,{w:"100%",maxW:"650px",gap:"10px",flexWrap:"wrap",alignItems:"center",children:[(0,t.jsx)(b.Box,{ref:K,display:"inline-flex",minW:0,cursor:Y?"pointer":void 0,onClick:Y,children:(0,t.jsx)(U.CanvasToolLabel,{labelColorHex:l.labelColorHex,label:l.label})}),(0,t.jsx)(u.Button,{"data-square":"true",cursor:X?"pointer":"default",as:"button",w:"auto",minW:"90px",maxW:"200px",h:"27px",border:"1px",borderRadius:"7px",bg:ei,px:0,_hover:{bg:ei,transform:"none"},_active:{bg:ei,transform:"none"},sx:{backdropFilter:"blur(30px)"},borderColor:eo,onClick:X,children:(0,t.jsxs)(c.Flex,{alignItems:"center",h:"100%",w:"100%",px:3,justifyContent:"center",children:[F?(0,t.jsx)(x.Avatar,{height:"20px",width:"20px",src:F.profileImageUrl?A.S3_IMAGE_URL_PREFIX+F.profileImageUrl:""}):(0,t.jsx)(S.default,{width:20,height:20}),(0,t.jsx)(g.Text,{color:Z,fontSize:"12px",fontWeight:"400",ml:"8px",mr:"2px",noOfLines:1,children:F?`${F.firstName} ${F.lastName}`:"Assignee"})]})}),(0,t.jsx)(b.Box,{w:"62px",children:(0,t.jsx)(M.default,{onDateChange:e=>{C.whiteboardActions.updateProjectTicket({...l,date:e})},usePortal:!1,enableShadow:!1,disableHover:!0,isOverdue:(0,iA.isTicketOverdue)(l),dateValue:l.date?new Date(l.date):void 0})})]})})})]}),(0,t.jsx)(b.Box,{w:"100%",flex:"1",children:eg})]});return z?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.motion.div,{[B.CANVAS_MODAL_SURFACE_ATTRIBUTE]:"true",initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{duration:.25,ease:[.22,1,.36,1]},style:nB,children:(0,t.jsxs)(T.default,{p:0,h:"100%",bg:et,border:"1px solid",borderColor:er,borderRadius:A.RIGHT_RAIL_PANEL_RADIUS,boxShadow:"none",overflow:"hidden",children:[ef,eb]})}),q,Q]}):(0,t.jsxs)(h.Modal,{closeOnOverlayClick:!es,isCentered:!s,size:s?"full":"5xl",isOpen:e,onClose:el,trapFocus:!es,blockScrollOnMount:!es,motionPreset:s?"slideInBottom":"scale",children:[(0,t.jsx)(W.default,{}),(0,t.jsx)(m.ModalContent,{[B.CANVAS_MODAL_SURFACE_ATTRIBUTE]:"true",containerProps:ed,pointerEvents:"auto",mx:s?"0px":"8px",my:s?"0px":void 0,maxW:s?"100vw":void 0,zIndex:1200,bg:"transparent",boxShadow:"unset",children:(0,t.jsxs)(p.ModalBody,{p:"0px",bg:"transparent",children:[(0,t.jsxs)(T.default,{p:0,h:s?"100dvh":"85vh",borderRadius:s?"0px":"16px",pt:s?"env(safe-area-inset-top)":0,pb:s?"env(safe-area-inset-bottom)":0,overflow:"hidden",sx:{backdropFilter:en,borderTop:"0.5px solid #FFFFFF33",background:ee},children:[ef,eb]}),q,Q]})})]})}var ik=e.i(438752),iF=e.i(191008),iD=e.i(545791);e.i(634155),e.i(744423),e.i(979399),e.i(49038),e.i(612018),e.i(135492);var iM=e.i(738974),iI=e.i(43276),iU=e.i(175079),iL=e.i(269279),iB=e.i(425861),iW=e.i(619257);e.i(991577);var iP=e.i(692423),ij="comm",iR="rule",iN="decl",iO="@keyframes",iH="@layer",iz=Math.abs,iG=String.fromCharCode;function iV(e,t,r){return e.replace(t,r)}function i$(e,t){return 0|e.charCodeAt(t)}function iJ(e,t,r){return e.slice(t,r)}function iK(e){return e.length}function iY(e,t){return t.push(e),e}var iq=1,iX=1,iQ=0,iZ=0,i0=0,i1="";function i5(e,t,r,n,i,o,a,l){return{value:e,root:t,parent:r,type:n,props:i,children:o,line:iq,column:iX,length:a,return:"",siblings:l}}function i2(){return i0=iZ<iQ?i$(i1,iZ++):0,iX++,10===i0&&(iX=1,iq++),i0}function i4(){return i$(i1,iZ)}function i8(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function i3(e){var t,r;return(t=iZ-1,r=function e(t){for(;i2();)switch(i0){case t:return iZ;case 34:case 39:34!==t&&39!==t&&e(i0);break;case 40:41===t&&e(t);break;case 92:i2()}return iZ}(91===e?e+2:40===e?e+1:e),iJ(i1,t,r)).trim()}function i6(e,t,r,n,i,o,a,l,s,d,u,c){for(var h=i-1,p=0===i?o:[""],m=p.length,g=0,f=0,b=0;g<n;++g)for(var x=0,y=iJ(e,h+1,h=iz(f=a[g])),w=e;x<m;++x)(w=(f>0?p[x]+" "+y:iV(y,/&\f/g,p[x])).trim())&&(s[b++]=w);return i5(e,t,r,0===i?iR:l,s,d,u,c)}function i9(e,t,r,n,i){return i5(e,t,r,iN,iJ(e,0,n),iJ(e,n+1,-1),n,i)}function i7(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function oe(e,t,r,n){switch(e.type){case iH:if(e.children.length)break;case"@import":case"@namespace":case iN:return e.return=e.return||e.value;case ij:return"";case iO:return e.return=e.value+"{"+i7(e.children,n)+"}";case iR:if(!iK(e.value=e.props.join(",")))return""}return iK(r=i7(e.children,n))?e.return=e.value+"{"+r+"}":""}var ot=e.i(525518),or=e.i(618430),on=e.i(908062),oi=e.i(626928),oo=e.i(571815);function oa(e){if(null==e)return!0;
9if((0,on.isArrayLike)(e))return("function"==typeof e.splice||"string"==typeof e||!!(0,or.isBuffer)(e)||!!(0,oo.isTypedArray)(e)||!!(0,oi.isArguments)(e))&&0===e.length;if("object"==typeof e||"function"==typeof e){let t;if(e instanceof Map||e instanceof Set)return 0===e.size;let r=Object.keys(e);return(t=e?.constructor,e===("function"==typeof t?t.prototype:Object.prototype))?0===r.filter(e=>"constructor"!==e).length:0===r.length}return!0}var ol={id:"c4",detector:(0,iB.__name)(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),loader:(0,iB.__name)(async()=>{let{diagram:t}=await e.A(834001);return{id:"c4",diagram:t}},"loader")},os="flowchart",od=(0,iB.__name)((e,t)=>t?.flowchart?.defaultRenderer!=="dagre-wrapper"&&t?.flowchart?.defaultRenderer!=="elk"&&/^\s*graph/.test(e),"detector"),ou=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(487031);return{id:os,diagram:t}},"loader"),oc={id:os,detector:od,loader:ou},oh="flowchart-v2",op=(0,iB.__name)((e,t)=>t?.flowchart?.defaultRenderer!=="dagre-d3"&&(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),!!/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"||/^\s*flowchart/.test(e)),"detector"),om=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(487031);return{id:oh,diagram:t}},"loader"),og={id:oh,detector:op,loader:om},of="swimlane",ob=(0,iB.__name)(e=>/^\s*swimlane-beta\b/.test(e),"detector"),ox=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(607729);return{id:of,diagram:t}},"loader"),oy={id:of,detector:ob,loader:ox},ow={id:"er",detector:(0,iB.__name)(e=>/^\s*erDiagram/.test(e),"detector"),loader:(0,iB.__name)(async()=>{let{diagram:t}=await e.A(597809);return{id:"er",diagram:t}},"loader")},oE="gitGraph",oC=(0,iB.__name)(e=>/^\s*gitGraph/.test(e),"detector"),oT=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(753211);return{id:oE,diagram:t}},"loader"),oS={id:oE,detector:oC,loader:oT},oA="gantt",o_=(0,iB.__name)(e=>/^\s*gantt/.test(e),"detector"),ov=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(614072);return{id:oA,diagram:t}},"loader"),ok={id:oA,detector:o_,loader:ov},oF="info",oD=(0,iB.__name)(e=>/^\s*info/.test(e),"detector"),oM=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(116603);return{id:oF,diagram:t}},"loader"),oI={id:oF,detector:oD,loader:oM},oU={id:"pie",detector:(0,iB.__name)(e=>/^\s*pie/.test(e),"detector"),loader:(0,iB.__name)(async()=>{let{diagram:t}=await e.A(921917);return{id:"pie",diagram:t}},"loader")},oL="quadrantChart",oB=(0,iB.__name)(e=>/^\s*quadrantChart/.test(e),"detector"),oW=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(741336);return{id:oL,diagram:t}},"loader"),oP={id:oL,detector:oB,loader:oW},oj="xychart",oR=(0,iB.__name)(e=>/^\s*xychart(-beta)?/.test(e),"detector"),oN=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(207453);return{id:oj,diagram:t}},"loader"),oO={id:oj,detector:oR,loader:oN},oH="requirement",oz=(0,iB.__name)(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),oG=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(731022);return{id:oH,diagram:t}},"loader"),oV={id:oH,detector:oz,loader:oG},o$="sequence",oJ=(0,iB.__name)(e=>/^\s*sequenceDiagram/.test(e),"detector"),oK=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(877037);return{id:o$,diagram:t}},"loader"),oY={id:o$,detector:oJ,loader:oK},oq="class",oX=(0,iB.__name)((e,t)=>t?.class?.defaultRenderer!=="dagre-wrapper"&&/^\s*classDiagram/.test(e),"detector"),oQ=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(391205);return{id:oq,diagram:t}},"loader"),oZ={id:oq,detector:oX,loader:oQ},o0="classDiagram",o1=(0,iB.__name)((e,t)=>!!/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"||/^\s*classDiagram-v2/.test(e),"detector"),o5=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(90798);return{id:o0,diagram:t}},"loader"),o2={id:o0,detector:o1,loader:o5},o4="state",o8=(0,iB.__name)((e,t)=>t?.state?.defaultRenderer!=="dagre-wrapper"&&/^\s*stateDiagram/.test(e),"detector"),o3=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(124799);return{id:o4,diagram:t}},"loader"),o6={id:o4,detector:o8,loader:o3},o9="stateDiagram",o7=(0,iB.__name)((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),ae=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(726363);return{id:o9,diagram:t}},"loader"),at={id:o9,detector:o7,loader:ae},ar="journey",an=(0,iB.__name)(e=>/^\s*journey/.test(e),"detector"),ai=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(599285);return{id:ar,diagram:t}},"loader"),ao={id:ar,detector:an,loader:ai},aa={draw:(0,iB.__name)((e,t,r)=>{iL.log.debug("rendering svg for syntax error\n");let n=(0,ik.selectSvgElement)(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),(0,iU.configureSvgSize)(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.
9164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw")},al={db:{},renderer:aa,parser:{parse:(0,iB.__name)(()=>{},"parse")}},as="flowchart-elk",ad=(0,iB.__name)((e,t={})=>!!(/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk")&&(t.layout="elk",!0),"detector"),au=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(487031);return{id:as,diagram:t}},"loader"),ac={id:as,detector:ad,loader:au},ah="timeline",ap=(0,iB.__name)(e=>/^\s*timeline/.test(e),"detector"),am=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(441500);return{id:ah,diagram:t}},"loader"),ag={id:ah,detector:ap,loader:am},af="mindmap",ab=(0,iB.__name)(e=>/^\s*mindmap/.test(e),"detector"),ax=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(545230);return{id:af,diagram:t}},"loader"),ay={id:af,detector:ab,loader:ax},aw="kanban",aE=(0,iB.__name)(e=>/^\s*kanban/.test(e),"detector"),aC=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(16372);return{id:aw,diagram:t}},"loader"),aT={id:aw,detector:aE,loader:aC},aS="sankey",aA=(0,iB.__name)(e=>/^\s*sankey(-beta)?/.test(e),"detector"),a_=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(503206);return{id:aS,diagram:t}},"loader"),av={id:aS,detector:aA,loader:a_},ak="packet",aF=(0,iB.__name)(e=>/^\s*packet(-beta)?/.test(e),"detector"),aD=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(371782);return{id:ak,diagram:t}},"loader"),aM={id:ak,detector:aF,loader:aD},aI="radar",aU=(0,iB.__name)(e=>/^\s*radar-beta/.test(e),"detector"),aL=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(658642);return{id:aI,diagram:t}},"loader"),aB={id:aI,detector:aU,loader:aL},aW="block",aP=(0,iB.__name)(e=>/^\s*block(-beta)?/.test(e),"detector"),aj=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(744303);return{id:aW,diagram:t}},"loader"),aR={id:aW,detector:aP,loader:aj},aN="treeView",aO=(0,iB.__name)(e=>/^\s*treeView-beta/.test(e),"detector"),aH=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(492217);return{id:aN,diagram:t}},"loader"),az={id:aN,detector:aO,loader:aH},aG="architecture",aV=(0,iB.__name)(e=>/^\s*architecture/.test(e),"detector"),a$=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(69572);return{id:aG,diagram:t}},"loader"),aJ={id:aG,detector:aV,loader:a$},aK="eventmodeling",aY=(0,iB.__name)(e=>/^\s*eventmodeling/.test(e),"detector"),aq=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(677200);return{id:aK,diagram:t}},"loader"),aX={id:aK,detector:aY,loader:aq},aQ="ishikawa",aZ=(0,iB.__name)(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),a0=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(516871);return{id:aQ,diagram:t}},"loader"),a1={id:aQ,detector:aZ,loader:a0},a5="venn",a2=(0,iB.__name)(e=>/^\s*venn-beta/.test(e),"detector"),a4=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(205474);return{id:a5,diagram:t}},"loader"),a8={id:a5,detector:a2,loader:a4},a3="treemap",a6=(0,iB.__name)(e=>/^\s*treemap/.test(e),"detector"),a9=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(324184);return{id:a3,diagram:t}},"loader"),a7={id:a3,detector:a6,loader:a9},le="wardley",lt=(0,iB.__name)(e=>/^\s*wardley-beta/i.test(e),"detector"),lr=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(565552);return{id:le,diagram:t}},"loader"),ln={id:le,detector:lt,loader:lr},li="cynefin",lo=(0,iB.__name)(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),"detector"),la=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(794659);return{id:li,diagram:t}},"loader"),ll={id:li,detector:lo,loader:la},ls="railroad",ld=(0,iB.__name)(e=>/^\s*railroad-beta/i.test(e),"detector"),lu=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(71174);return{id:ls,diagram:t}},"loader"),lc={id:ls,detector:ld,loader:lu},lh="railroadEbnf",lp=(0,iB.__name)(e=>/^\s*railroad-ebnf-beta/i.test(e),"detector"),lm=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(948049);return{id:lh,diagram:t}},"loader"),lg={id:lh,detector:lp,loader:lm},lf="railroadAbnf",lb=(0,iB.__name)(e=>/^\s*railroad-abnf-beta/i.test(e),"detector"),lx=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(52378);return{id:lf,diagram:t}},"loader"),ly={id:lf,detector:lb,loader:lx},lw="railroadPeg",lE=(0,iB.__name)(e=>/^\s*railroad-peg-beta/i.test(e),"detector"),lC=(0,iB.__name)(async()=>{let{diagram:t}=await e.A(880124);return{id:lw,diagram:t}},"loader"),lT={id:lw,detector:lE,loader:lC},lS=!1,lA=(0,iB.__name)(()=>{lS||(lS=!0,(0,iU.registerDiagram)("error",al,e=>"error"===e.toLowerCase().trim()),(0,iU.registerDiagram)("---",{db:{clear:(0,iB.__name)(()=>{},"clear")},styles:{},renderer:{draw:(0,iB.__name)(()=>{},"draw")},parser:{parse:(0,iB.__name)(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:(0,iB.__name)(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),(0,iU.registerLazyLoadedDiagrams)(ac,ay,aJ),(0,iU.registerLazyLoadedDiagrams)(ol,aT,o2,oZ,ow,ok,oI,oU,oV,oY,oy,og,oc,ag,oS,at,o6,ao,oP,av,aM,oO,aR,aX,az,aB,a1,a7,lc,lg,ly,lT,a8,ln,ll))},"addDiagrams"),l_=(0,iB.__name)(async()=>{iL.log.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(iU.detectors).map(async([e,{detector:t,loader:r}])=>{if(r)try{(0,iU.getDiagram)(e)}catch{try{let{diagram:e,id:n}=await r();(0,iU.registerDiagram)(n,e,t)}catch(t){throw iL.log.error(`Failed to load external diagram with key ${e}. Removing from detectors.`),delete iU.detectors[e],t}}}))).filter(e=>"rejected"===e.status);if(e.length>0){for(let t of(iL.log.error(`Failed to load ${e.length} external diagrams`),e))iL.log.error(t);throw Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");function lv(e,t){e.attr("role","graphics-document document"),""!==t&&e.attr("aria-roledescription",t)}function lk(e,t,r,n){if(void 0!==e.insert){if(r){let t=`chart-desc-${n}`;e.attr("aria-describedby",t),e.insert("desc",":first-child").attr("id",t).text(r)}if(t){let r=`chart-title-${n}`;e.attr("aria-labelledby",r),e.insert("title",":first-child").attr("id",r).text(t)}}}(0,iB.__name)(lv,"setA11yDiagramInfo"),(0,iB.__name)(lk,"addSVGa11yTitleDescription");var lF=class e{constructor(e,t,r,n,i){this.type=e,this.text=t,this.db=r,this.parser=n,this.renderer=i}static{(0,iB.__name)(this,"Diagram")}static async fromText(t,r={}){let n=(0,iU.getConfig)(),i=(0,iU.detectType)(t,n);
9t=(0,iI.encodeEntities)(t)+"\n";try{(0,iU.getDiagram)(i)}catch{let e=(0,iU.getDiagramLoader)(i);if(!e)throw new iU.UnknownDiagramError(`Diagram ${i} not found.`);let{id:t,diagram:r}=await e();(0,iU.registerDiagram)(t,r)}let{db:o,parser:a,renderer:l,init:s}=(0,iU.getDiagram)(i);return a.parser&&(a.parser.yy=o),o.clear?.(),s?.(n),r.title&&o.setDiagramTitle?.(r.title),await a.parse(t),new e(i,t,o,a,l)}async render(e,t){await this.renderer.draw(this.text,e,t,this)}getParser(){return this.parser}getType(){return this.type}},lD=[],lM=(0,iB.__name)(()=>{lD.forEach(e=>{e()}),lD=[]},"attachFunctions"),lI=(0,iB.__name)(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function lU(e){let t=e.match(iU.frontMatterRegex);if(!t)return{text:e,metadata:{}};let r=t[1],n=r?t[2].split("\n").map(e=>e.startsWith(r)?e.slice(r.length):e).join("\n"):t[2],i=(0,iF.load)(n,{schema:iF.JSON_SCHEMA})??{};i="object"!=typeof i||Array.isArray(i)?{}:i;let o={};return i.displayMode&&(o.displayMode=i.displayMode.toString()),i.title&&(o.title=i.title.toString()),i.config&&(o.config=i.config),{text:e.slice(t[0].length),metadata:o}}(0,iB.__name)(lU,"extractFrontMatter");var lL=(0,iB.__name)(e=>e.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,(e,t,r)=>"<"+t+r.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),lB=(0,iB.__name)(e=>{let{text:t,metadata:r}=lU(e),{displayMode:n,title:i,config:o={}}=r;return n&&(o.gantt||(o.gantt={}),o.gantt.displayMode=n),{title:i,config:o,text:t}},"processFrontmatter"),lW=(0,iB.__name)(e=>{let t=iI.utils_default.detectInit(e)??{},r=iI.utils_default.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:e})=>"wrap"===e):r?.type==="wrap"&&(t.wrap=!0),{text:(0,iI.removeDirectives)(e),directive:t}},"processDirectives");function lP(e){let t=lB(lL(e)),r=lW(t.text),n=(0,iI.cleanAndMerge)(t.config,r.directive);return{code:e=lI(r.text),title:t.title,config:n}}function lj(e){return btoa(Array.from(new TextEncoder().encode(e),e=>String.fromCodePoint(e)).join(""))}(0,iB.__name)(lP,"preprocessDiagram"),(0,iB.__name)(lj,"toBase64");var lR=["foreignobject"],lN=["dominant-baseline"];function lO(e){let t=lP(e);return(0,iU.reset)(),(0,iU.addDirective)(t.config??{}),t}async function lH(e,t){lA();try{let{code:t,config:r}=lO(e);return{diagramType:(await l0(t)).type,config:r}}catch(e){if(t?.suppressErrors)return!1;throw e}}(0,iB.__name)(lO,"processAndSetConfigs"),(0,iB.__name)(lH,"parse");var lz=(0,iB.__name)((e,t,r=[])=>{let n=(0,iU.sanitizeCss)(`{ ${r.join(" !important; ")} !important; }`);return`.${e} ${t} ${n}`},"cssImportantStyles"),lG=(0,iB.__name)((e,t=new Map)=>{let r=new CSSStyleSheet;if(void 0!==e.fontFamily&&r.insertRule(`:root { --mermaid-font-family: ${e.fontFamily}}`,r.cssRules.length),void 0!==e.altFontFamily&&r.insertRule(`:root { --mermaid-alt-font-family: ${e.altFontFamily}}`,r.cssRules.length),t instanceof Map){let n=(0,iU.getEffectiveHtmlLabels)(e)?["> *","span"]:["rect","polygon","ellipse","circle","path"];t.forEach(e=>{oa(e.styles)||n.forEach(t=>{r.insertRule(lz(e.id,t,e.styles),r.cssRules.length)}),oa(e.textStyles)||r.insertRule(lz(e.id,"tspan",(e?.textStyles||[]).map(e=>e.replace("color","fill"))),r.cssRules.length)})}let n="";if(void 0!==e.themeCSS)if("function"==typeof r.replaceSync){let t=new CSSStyleSheet;t.replaceSync(e.themeCSS),n=(0,iU.cssStyleSheetToString)(t)+"\n"}else n+=`${e.themeCSS} 10`;return n+(0,iU.cssStyleSheetToString)(r)},"createCssStyles"),lV=(0,iB.__name)((e,t)=>{var r,n,i,o,a;return i7((i=function e(t,r,n,i,o,a,l,s,d){for(var u,c,h,p,m=0,g=0,f=l,b=0,x=0,y=0,w=1,E=1,C=1,T=0,S=0,A="",_=o,v=a,k=i,F=A;E;)switch(y=S,S=i2()){case 40:108!=y&&58==i$(F,f-1)?(T++,F+="("):F+=i3(S);break;case 41:T--,F+=")";break;case 34:case 39:case 91:F+=i3(S);break;case 9:case 10:case 13:case 32:if(T>0){F+=iG(S);break}F+=function(e){for(;i0=i4();)if(i0<33)i2();else break;return i8(e)>2||i8(i0)>3?"":" "}(y);break;case 92:F+=function(e,t){for(var r;--t&&i2()&&!(i0<48)&&!(i0>102)&&(!(i0>57)||!(i0<65))&&(!(i0>70)||!(i0<97)););return r=iZ+(t<6&&32==i4()&&32==i2()),iJ(i1,e,r)}(iZ-1,7);continue;case 47:switch(i4()){case 42:case 47:iY((u=function(e,t){for(;i2();)if(e+i0===57)break;else if(e+i0===84&&47===i4())break;return"/*"+iJ(i1,t,iZ-1)+"*"+iG(47===e?e:i2())}(i2(),iZ),c=r,h=n,p=d,i5(u,c,h,ij,iG(i0),iJ(u,2,-2),0,p)),d),(5==i8(y||1)||5==i8(i4()||1))&&iK(F)&&" "!==iJ(F,-1,void 0)&&(F+=" ");break;default:F+="/"}break;case 123*w:s[m++]=iK(F)*C;case 125*w:case 59:case 0:if(T>0&&S){F+=iG(S);break}switch(S){case 0:case 125:E=0;case 59+g:-1==C&&(F=iV(F,/\f/g,"")),x>0&&(iK(F)-f||0===w)&&iY(x>32?i9(F+";",i,n,f-1,d):i9(iV(F," ","")+";",i,n,f-2,d),d);break;case 59:F+=";";default:if(iY(k=i6(F,r,n,m,g,o,s,A,_=[],v=[],f,a),a),123===S)if(0===g)e(F,r,k,k,_,a,f,s,v);else{switch(b){case 99:if(110===i$(F,3))break;case 108:if(97===i$(F,2))break;default:g=0;case 100:case 109:case 115:}g?e(t,k,k,i&&iY(i6(t,k,k,0,0,o,s,A,o,_=[],f,v),v),o,v,f,s,i?_:v):e(F,k,k,k,[""],v,0,s,v)}}m=g=x=0,w=C=1,A=F="",f=l;break;case 58:f=1+iK(F),x=y;default:if(w<1){if(123==S)--w;else if(125==S&&0==w++&&125==(i0=iZ>0?i$(i1,--iZ):0,iX--,10===i0&&(iX=1,iq--),i0))continue}switch(F+=iG(S),S*w){case 38:C=g>0?1:(F+="\f",-1);break;case 44:if(T>0)break;
10s[m++]=(iK(F)-1)*C,C=1;break;case 64:45===i4()&&(F+=i3(i2())),b=i4(),g=f=iK(A=F+=function(e){for(;!i8(i4());)i2();return iJ(i1,e,iZ)}(iZ)),S++;break;case 45:45===y&&2==iK(F)&&(w=0)}}return a}("",null,null,null,[""],(n=r=`${e}{${t}}`,iq=iX=1,iQ=iK(i1=n),iZ=0,r=[]),0,[0],r),i1="",i),(a=(o=[(0,iB.__name)(function(t,r,n,i){"rule"===t.type&&Array.isArray(t.props)?t.parent&&t.parent.type===iO||(t.props=t.props.map(t=>t.startsWith(e)?t:`${e} ${t}`)):t.type.startsWith("@")&&(["@media","@supports",iH,"@scope","@container","@starting-style",iO].includes(t.type)||(iL.log.warn(`Removing unsupported at-rule ${t.type} from CSS`),t.type=ij))},"addNamespace"),oe]).length,function(e,t,r,n){for(var i="",l=0;l<a;l++)i+=o[l](e,t,r,n)||"";return i}))},"compileCSS"),l$=(0,iB.__name)((e,t,r,n)=>{let i=lG(e,r),o=(0,iU.styles_default)(t,i,{...e.themeVariables,theme:e.theme,look:e.look},n);return lV(n,o)},"createUserStyles"),lJ=(0,iB.__name)((e="",t,r)=>{let n=e;return r||t||(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=(n=(0,iI.decodeEntities)(n)).replace(/<br>/g,"<br/>")},"cleanUpSvgCode"),lK=(0,iB.__name)((e="",t)=>{let r=t?.viewBox?.baseVal?.height?t.viewBox.baseVal.height+"px":"100%",
10n=lj(`<body style="margin:0">${e}</body>`);return`<iframe style="width:100%;height:${r};border:0;margin:0;" src="data:text/html;charset=UTF-8;base64,${n}" sandbox="allow-top-navigation-by-user-activation allow-popups"> 11 The "iframe" tag is not supported by your browser. 12</iframe>`},"putIntoIFrame"),lY=(0,iB.__name)((e,t,r,n,i)=>{let o=e.append("div");o.attr("id",r),n&&o.attr("style",n);let a=o.append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return i&&a.attr("xmlns:xlink",i),a.append("g"),e},"appendDivSvgG");function lq(e,t){return e.append("iframe").attr("id",t).attr("style","width: 100%; height: 100%;").attr("sandbox","")}(0,iB.__name)(lq,"sandboxedIframe");var lX=(0,iB.__name)((e,t,r,n)=>{e.getElementById(t)?.remove(),e.getElementById(r)?.remove(),e.getElementById(n)?.remove()},"removeExistingElements"),lQ=(0,iB.__name)(async function(e,t,r){let n,i;lA();let o=lO(t);t=o.code;let a=(0,iU.getConfig)();iL.log.debug(a),t.length>(a?.maxTextSize??5e4)&&(t="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");let l=`#${e}`,s="i"+e,d="#"+s,u="d"+e,c="#"+u,h=(0,iB.__name)(()=>{let e=m?d:c,t=(0,iP.select)(e).node();t&&"remove"in t&&t.remove()},"removeTempElements"),p=(0,iP.select)(document.body),m="sandbox"===a.securityLevel,g="loose"===a.securityLevel,f=a.fontFamily;if(void 0!==r){if(r&&(r.innerHTML=""),m){let e=lq((0,iP.select)(r),s);(p=(0,iP.select)(e.nodes()[0].contentDocument.body)).node().style.margin="0"}else p=(0,iP.select)(r);lY(p,e,u,`font-family: ${f}`,"http://www.w3.org/1999/xlink")}else{if(lX(document,e,u,s),m){let e=lq((0,iP.select)(document.body),s);(p=(0,iP.select)(e.nodes()[0].contentDocument.body)).node().style.margin="0"}else p=(0,iP.select)("body");lY(p,e,u)}try{n=await lF.fromText(t,{title:o.title})}catch(e){if(a.suppressErrorRendering)throw h(),e;n=await lF.fromText("error"),i=e}let b=p.select(c).node(),x=n.type,y=b.firstChild,w=y.firstChild,E=l$(a,x,n.renderer.getClasses?.(t,n),l),C=document.createElement("style");C.innerHTML=E,y.insertBefore(C,w);try{await n.renderer.draw(t,e,"11.16.0",n)}catch(r){throw a.suppressErrorRendering?h():aa.draw(t,e,"11.16.0"),r}l1(x,p.select(`${c} svg`),n.db.getAccTitle?.(),n.db.getAccDescription?.()),p.select(`[id="${e}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let T=p.select(c).node().innerHTML;if(iL.log.debug("config.arrowMarkerAbsolute",a.arrowMarkerAbsolute),T=lJ(T,m,(0,iU.evaluate)(a.arrowMarkerAbsolute)),m?T=lK(T,p.select(c+" svg").node()):g||(T=ot.default.sanitize(T,{ADD_TAGS:lR,ADD_ATTR:lN,HTML_INTEGRATION_POINTS:{foreignobject:!0}})),lM(),i)throw i;return h(),{diagramType:x,svg:T,bindFunctions:n.db.bindFunctions}},"render");function lZ(e={}){let t=(0,iU.assignWithDepth_default)({},e);t?.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),(0,iU.saveConfigFromInitialize)(t),t?.theme&&t.theme in iU.themes_default?t.themeVariables=iU.themes_default[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=iU.themes_default.default.getThemeVariables(t.themeVariables));let r="object"==typeof t?(0,iU.setSiteConfig)(t):(0,iU.getSiteConfig)();(0,iL.setLogLevel)(r.logLevel),lA()}(0,iB.__name)(lZ,"initialize");var l0=(0,iB.__name)((e,t={})=>{let{code:r}=lP(e);return lF.fromText(r,t)},"getDiagramFromText");function l1(e,t,r,n){lv(t,e),lk(t,r,n,t.attr("id"))}(0,iB.__name)(l1,"addA11yInfo");var l5=Object.freeze({render:lQ,parse:lH,getDiagramFromText:l0,initialize:lZ,getConfig:iU.getConfig,setConfig:iU.setConfig,getSiteConfig:iU.getSiteConfig,updateSiteConfig:iU.updateSiteConfig,reset:(0,iB.__name)(()=>{(0,iU.reset)()},"reset"),globalReset:(0,iB.__name)(()=>{(0,iU.reset)(iU.defaultConfig)},"globalReset"),defaultConfig:iU.defaultConfig});(0,iL.setLogLevel)((0,iU.getConfig)().logLevel),(0,iU.reset)((0,iU.getConfig)());var l2=(0,iB.__name)((e,t,r)=>{iL.log.warn(e),(0,iI.isDetailedError)(e)?(r&&r(e.str,e.hash),t.push({...e,message:e.str,error:e})):(r&&r(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},"handleError"),l4=(0,iB.__name)(async function(e={querySelector:".mermaid"}){try{await l8(e)}catch(t){if((0,iI.isDetailedError)(t)&&iL.log.error(t.str),sl.parseError&&sl.parseError(t),!e.suppressErrors)throw iL.log.error("Use the suppressErrors option to suppress these errors"),t}},"run"),l8=(0,iB.__name)(async function({postRenderCallback:e,querySelector:t,nodes:r}={querySelector:".mermaid"}){let n,i,o=l5.getConfig();if(iL.log.debug(`${!e?"No ":""}Callback function found`),r)n=r;else if(t)n=document.querySelectorAll(t);else throw Error("Nodes and querySelector are both undefined");iL.log.debug(`Found ${n.length} diagrams`),o?.startOnLoad!==void 0&&(iL.log.debug("Start On Load: "+o?.startOnLoad),l5.updateSiteConfig({startOnLoad:o?.startOnLoad}
12));let a=new iI.utils_default.InitIDGenerator(o.deterministicIds,o.deterministicIDSeed),l=[];for(let t of Array.from(n)){if(iL.log.info("Rendering diagram: "+t.id),t.getAttribute("data-processed"))continue;t.setAttribute("data-processed","true");let r=`mermaid-${a.next()}`;i=t.innerHTML,i=(0,iW.dedent)(iI.utils_default.entityDecode(i)).trim().replace(/<br\s*\/?>/gi,"<br/>");let n=iI.utils_default.detectInit(i);n&&iL.log.debug("Detected early reinit: ",n);try{let{svg:n,bindFunctions:o}=await so(r,i,t);t.innerHTML=n,e&&await e(r),o&&o(t)}catch(e){l2(e,l,sl.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),l3=(0,iB.__name)(function(e){l5.initialize(e)},"initialize"),l6=(0,iB.__name)(async function(e,t,r){iL.log.warn("mermaid.init is deprecated. Please use run instead."),e&&l3(e);let n={postRenderCallback:r,querySelector:".mermaid"};"string"==typeof t?n.querySelector=t:t&&(t instanceof HTMLElement?n.nodes=[t]:n.nodes=t),await l4(n)},"init"),l9=(0,iB.__name)(async(e,{lazyLoad:t=!0}={})=>{lA(),(0,iU.registerLazyLoadedDiagrams)(...e),!1===t&&await l_()},"registerExternalDiagrams"),l7=(0,iB.__name)(function(){if(sl.startOnLoad){let{startOnLoad:e}=l5.getConfig();e&&sl.run().catch(e=>iL.log.error("Mermaid failed to initialize",e))}},"contentLoaded");"u">typeof document&&window.addEventListener("load",l7,!1);var se=(0,iB.__name)(function(e){sl.parseError=e},"setParseErrorHandler"),st=[],sr=!1,sn=(0,iB.__name)(async()=>{if(!sr){for(sr=!0;st.length>0;){let e=st.shift();if(e)try{await e()}catch(e){iL.log.error("Error executing queue",e)}}sr=!1}},"executeQueue"),si=(0,iB.__name)(async(e,t)=>new Promise((r,n)=>{let i=(0,iB.__name)(()=>new Promise((i,o)=>{l5.parse(e,t).then(e=>{i(e),r(e)},e=>{iL.log.error("Error parsing",e),sl.parseError?.(e),o(e),n(e)})}),"performCall");st.push(i),sn().catch(n)}),"parse"),so=(0,iB.__name)((e,t,r)=>new Promise((n,i)=>{let o=(0,iB.__name)(()=>new Promise((o,a)=>{l5.render(e,t,r).then(e=>{o(e),n(e)},e=>{iL.log.error("Error parsing",e),sl.parseError?.(e),a(e),i(e)})}),"performCall");st.push(o),sn().catch(i)}),"render"),sa=(0,iB.__name)(()=>Object.keys(iU.detectors).map(e=>({id:e})),"getRegisteredDiagramsMetadata"),sl={startOnLoad:!0,mermaidAPI:l5,parse:si,render:so,init:l6,run:l4,registerExternalDiagrams:l9,registerLayoutLoaders:iD.registerLayoutLoaders,initialize:l3,parseError:void 0,contentLoaded:l7,setParseErrorHandler:se,detectType:iU.detectType,registerIconPacks:iM.registerIconPacks,getRegisteredDiagramsMetadata:sa};let ss=!1;function sd(){ss||(sl.initialize({startOnLoad:!1,securityLevel:"strict",theme:"default"}),ss=!0)}let su=({code:e,onNaturalSize:r})=>{let{colorMode:n}=(0,f.useColorMode)(),o="dark"===n?"dark":"default",a=(0,i.useId)(),l=(0,i.useRef)(`mmd-${a.replace(/[^a-zA-Z0-9]/g,"")}`).current,[s,d]=(0,i.useState)(null),[u,h]=(0,i.useState)(!1);return((0,i.useEffect)(()=>{let t=!1,n=e?.trim();if(!n){d(null),h(!1);return}return sd(),sl.render(l,/%%\{\s*init/.test(n)?n:`%%{init: {'theme':'${o}'}}%% 13${n}`).then(({svg:e})=>{if(t)return;d(e),h(!1);let n=function(e){let t=e.match(/viewBox=["']\s*[\d.-]+\s+[\d.-]+\s+([\d.]+)\s+([\d.]+)/);if(!t)return null;let r=parseFloat(t[1]),n=parseFloat(t[2]);return r&&n?{width:r,height:n}:null}(e);n&&r&&r(n)}).catch(()=>{t||(d(null),h(!0))}),()=>{t=!0}},[e,o,l]),u)?(0,t.jsx)(c.Flex,{align:"center",justify:"center",w:"100%",h:"100%",px:"16px",color:"#71717A",children:(0,t.jsx)(g.Text,{fontSize:"13px",textAlign:"center",children:"Couldn't render this diagram."})}):s?(0,t.jsx)(b.Box,{w:"100%",h:"100%",display:"flex",alignItems:"center",justifyContent:"center",sx:{"& svg":{maxWidth:"100%",maxHeight:"100%",width:"auto",height:"auto"}},dangerouslySetInnerHTML:{__html:s}}):(0,t.jsx)(b.Box,{w:"100%",h:"100%"})};e.s(["default",0,su,"ensureMermaidInit",0,sd],654112);let sc=({isOpen:e,onClose:r,toolMermaid:n})=>{let{updateWhiteboardElementContent:o}=(0,ef.default)(),a=n.mermaidCode||"",[l,s]=(0,i.useState)(a),[d,x]=(0,i.useState)(null),[y,w]=(0,i.useState)(!1);(0,i.useEffect)(()=>{s(a),x(null)},[a,e]),(0,i.useEffect)(()=>{let e=l.trim();if(!e)return void x("Diagram code is empty.");let t=!1,r=setTimeout(()=>{sd(),sl.parse(e).then(()=>{t||x(null)}
13).catch(e=>{t||x(e instanceof Error?e.message:"Invalid Mermaid syntax.")})},250);return()=>{t=!0,clearTimeout(r)}},[l]);let E=l===a,C=!d&&!E&&!y&&!!l.trim(),S=async()=>{if(C){w(!0);try{await o(n.whiteboardElementUid,{...n,mermaidCode:l}),r()}finally{w(!1)}}},A=(0,f.useColorModeValue)("rgba(255, 255, 255, 0.8)","#181818"),_=(0,f.useColorModeValue)("primaryLight.100","#242424"),v=(0,f.useColorModeValue)("rgba(208, 208, 208, 0.2)","#111111"),k=(0,f.useColorModeValue)("0px 10px 15px rgba(0, 0, 0, 0.1)","none"),F=(0,f.useColorModeValue)("primaryLight.100","#242424"),D=(0,f.useColorModeValue)("rgba(208, 208, 208, 0.2)","#111111"),M="#999999",U=(0,i.useMemo)(()=>(0,t.jsx)(su,{code:l}),[l]);return(0,t.jsxs)(h.Modal,{closeOnOverlayClick:!0,isCentered:!0,size:"4xl",isOpen:e,onClose:r,children:[(0,t.jsx)(q.ModalOverlay,{}),(0,t.jsx)(m.ModalContent,{mx:"8px",bg:"transparent",boxShadow:"unset",children:(0,t.jsx)(p.ModalBody,{p:"0px",bg:"transparent",children:(0,t.jsx)(T.default,{borderRadius:"20px",p:0,children:(0,t.jsxs)(c.Flex,{direction:"column",bg:A,borderRadius:"20px",border:"1px",borderColor:_,px:"23px",pt:"20px",pb:"23px",backdropFilter:"blur(15px)",style:{backdropFilter:"blur(15px)"},children:[(0,t.jsxs)(c.Flex,{w:"100%",align:"center",justify:"space-between",mb:"20px",children:[(0,t.jsx)(g.Text,{fontSize:"14px",fontWeight:"500",children:"Edit diagram source"}),(0,t.jsx)(I.default,{onCloseClicked:r})]}),(0,t.jsxs)(c.Flex,{direction:{base:"column",md:"row"},gap:"16px",h:"min(70vh, 520px)",minH:0,children:[(0,t.jsxs)(c.Flex,{direction:"column",flex:"1",minW:0,minH:0,children:[(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:"600",color:M,mb:"8px",children:"Mermaid code"}),(0,t.jsx)(ri.Textarea,{value:l,onChange:e=>s(e.target.value),fontFamily:"mono",fontSize:"13px",bg:v,border:"none",borderRadius:"12px",flex:"1",minH:0,overflow:"auto",resize:"none",spellCheck:!1,placeholder:"flowchart TD A[Start] --> B[End]",_focusVisible:{boxShadow:"none"}}),d?(0,t.jsx)(g.Text,{fontSize:"12px",color:"red.400",mt:"8px",noOfLines:2,flexShrink:0,children:d}):null]}),(0,t.jsxs)(c.Flex,{direction:"column",flex:"1",minW:0,minH:0,children:[(0,t.jsx)(g.Text,{fontSize:"12px",fontWeight:"600",color:M,mb:"8px",children:"Preview"}),(0,t.jsx)(b.Box,{flex:"1",minH:0,border:"1px",borderColor:F,borderRadius:"12px",bg:D,overflow:"auto",p:"10px",children:U})]})]}),(0,t.jsxs)(c.Flex,{mt:"20px",align:"center",justify:"flex-end",gap:"12px",children:[(0,t.jsx)(u.Button,{variant:"ghost",h:"35px",fontSize:"sm",fontWeight:"500",color:M,_hover:{bg:"transparent"},onClick:r,children:"Cancel"}),(0,t.jsx)(u.Button,{minW:"120px",h:"35px",variant:"brand",color:"white",fontSize:"sm",fontWeight:"500",bg:"brand.600",borderRadius:"8px",boxShadow:k,_hover:{bg:"brand.500"},_active:{bg:"brand.500"},_focus:{bg:"brand.500"},isDisabled:!C,isLoading:y,onClick:S,children:"Save"})]})]})})})})]})};var sh=e.i(578936),sp=e.i(619424),sm=e.i(779610),sg=e.i(100820),sf=e.i(870679),sb=e.i(56030),sx=e.i(904623);function sy({documentUid:e,projectUid:r}){let n=(0,K.useToast)(),{pageResourcePermission:o}=(0,l.default)(),a=o===sb.RESOURCE_PERMISSION_ADMIN||o===sb.RESOURCE_PERMISSION_EDIT,[s,d]=(0,i.useState)(!1),[h,p]=(0,i.useState)(!1),m=(0,f.useColorModeValue)("#5A5A5A","#B4B4B4"),g=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.06)"),[b,{loading:x}]=(0,sh.useLazyQuery)(ea.SharedResourceInfoByResourceUidDocument,{fetchPolicy:"network-only"}),y=async()=>{try{let{data:t}=await b({variables:{projectUid:r,blueprintUid:void 0,documentUid:e,whiteboardUid:void 0,sharedResourceUid:e,resourceType:l.APP_PAGE_TYPE_DOCUMENT}}),i=t?.sharedResourceInfoByResourceUid,o=i?.readonlyLinkKey;if(!o||i?.isReadonlyLinkDisabled){n({title:"Turn on the view-only link in Share first",status:"info",duration:2500}),d(!0);return}await navigator.clipboard.writeText(`${A.APP_DOMAIN_NAME}document/${e}/view?r=${o}`),p(!0),setTimeout(()=>p(!1),1500),n({title:"View-only link copied",status:"success",duration:2e3})}catch(e){console.error(e),n({title:"Couldn't copy the link",status:"error",duration:2e3})}};return e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(c.Flex,{alignItems:"center",gap:"6px",children:[(0,t.jsx)(z.Tooltip,{label:"You don't have permission to share this document",isDisabled:a,shouldWrapChildren:!0,openDelay:200,children:(0,t.jsx)(sf.default,{h:"32px",px:"3px",children:(0,t.jsx)(u.Button,{onClick:()=>a&&d(!0),isDisabled:!a,variant:"ghost",h:"26px",px:"10px",borderRadius:"9999px",color:m,fontSize:"13px",fontWeight:500,_hover:{bg:g},leftIcon:(0,t.jsx)(ex.Icon,{as:_.IoGlobeOutline,boxSize:"14px"}),rightIcon:(0,t.jsx)(sg.ChevronDownIcon,{boxSize:"16px"}),iconSpacing:"6px",children:"Share"})})}),a&&(0,t.jsx)(z.Tooltip,{label:"Copy view-only link",openDelay:300,children:(0,t.jsx)(H.IconButton,{"aria-label":"Copy view-only document link",onClick:y,isLoading:x,variant:"ghost",h:"28px",minW:"28px",borderRadius:"9999px",color:m,_hover:{bg:g},icon:(0,t.jsx)(ex.Icon,{as:h?_.IoCheckmark:_.IoLinkOutline,boxSize:"17px"})})})]}),a&&s&&(0,t.jsx)(sx.default,{isOpen:s,onOpen:()=>d(!0),onClose:()=>d(!1),resourceTypeOverride:l.APP_PAGE_TYPE_DOCUMENT,resourceUidOverride:e,projectUidOverride:r})]}):null}var sw=e.i(472278),sE=e.i(553310),sC=e.i(252472),sT=e.i(9515);let sS=[{format:"pdf",label:"PDF",extension:"pdf",isServerRendered:!0,buildBlob:sT.buildDocumentPdfBlob},{format:"docx",label:"Word document",extension:"docx",isServerRendered:!1,buildBlob:sT.buildDocumentDocxBlob},{format:"txt",label:"Plain text",extension:"txt",isServerRendered:!1,buildBlob:sT.buildDocumentPlainTextBlob}],sA="Document",s_=e=>e?.trim()||sA;e.s(["DOCUMENT_EXPORT_FORMATS",0,sS,"DOCUMENT_NAME_FALLBACK",0,sA,"documentExportBaseName",0,s_,"getDocumentExportFormat",0,e=>sS.find(t=>t.format===e)??sS[0]],857017);let sv=({onSelect:e,busyFormat:r})=>{let{colorMode:n}=(0,f.useColorMode)(),i=(0,f.useColorModeValue)("#D7D6D7","hoverDark.500"),o=(0,f.useColorModeValue)("#5A5A5A","#B4B4B4");return(0,t.jsx)(t.Fragment,{children:sS.map(({format:a,label:l})=>(0,t.jsxs)(c.Flex,{_hover:{bg:i},borderRadius:"6px",h:"30px",alignItems:"center",px:"10px",cursor:r?"default":"pointer",opacity:r&&r!==a?.5:1,onClick:()=>e(a),children:[r===a?(0,t.jsx)(ew.Spinner,{size:"xs",color:o}):"pdf"===a?(0,t.jsx)(sw.default,{width:16,height:20}):"docx"===a?(0,t.jsx)(sE.default,{width:16,height:20}):(0,t.jsx)(sC.default,{width:16,height:17,fill:"dark"===n?"#9A9A9A":"#5A5A5A"}),(0,t.jsx)(g.Text,{ml:"10px",fontSize:"13.56px",fontWeight:400,children:l})]},a))})};function sk({tiptapEditor:e,title:r,font:n}){let o=(0,K.useToast)(),[a,l]=(0,i.useState)(null),s=(0,f.useColorModeValue)("#FAFAFA","#252525"),d=(0,f.useColorModeValue)("#5A5A5A","#B4B4B4"),u=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.06)"),c={pdf:{run:sT.exportDocumentAsPdf,success:"PDF exp
13orted successfully",failure:"Could not generate the PDF. Please try again."},docx:{run:sT.exportDocumentAsDocx,success:"Export successful",failure:"Could not generate the Word document. Please try again."},txt:{run:sT.exportDocumentAsPlainText,success:"Export successful",failure:"Could not generate the text file. Please try again."}},h=async t=>{if(a)return;let{run:i,success:s,failure:d}=c[t];l(t);try{await i({title:s_(r),content:e?.getHTML()??"",font:n}),o({title:s,status:"success"})}catch(e){console.error(`Document export (${t}) failed:`,e),o({title:"Export failed",description:d,status:"error"})}finally{l(null)}};return(0,t.jsxs)(eI.Menu,{placement:"bottom-end",autoSelect:!1,children:[(0,t.jsx)(z.Tooltip,{label:"Export document",openDelay:300,children:(0,t.jsx)(sf.default,{h:"32px",w:"32px",justifyContent:"center",children:(0,t.jsx)(eU.MenuButton,{as:H.IconButton,"aria-label":"Export document",variant:"ghost",h:"26px",minW:"26px",borderRadius:"9999px",color:d,_hover:{bg:u},_active:{bg:u},icon:a?(0,t.jsx)(ew.Spinner,{size:"xs",color:d}):(0,t.jsx)(ex.Icon,{as:_.IoDownloadOutline,boxSize:"16px"})})})}),(0,t.jsx)(eL.MenuList,{borderRadius:"6px",border:0,p:0,zIndex:9999,minW:"0px",bg:"transparent",children:(0,t.jsx)(eT.Card,{p:0,bgColor:s,borderRadius:"10px",w:"200px",py:"5px",px:"5px",children:(0,t.jsx)(sv,{onSelect:h,busyFormat:a})})})]})}e.s(["default",0,sv],810869);var sF=e.i(528996),sD=e.i(920019),sM=e.i(826507);let sI=({onExpandClick:e,tiptapEditor:r,modalType:n,onChangeModalType:i,onCloseClick:o,documentUid:a,projectUid:l,documentTitle:s,documentOptions:d,onChangeOptions:u,viewOnly:h})=>{let p=(0,f.useColorModeValue)("rgba(0,0,0,0.04)","rgba(255,255,255,0.06)"),m=(0,f.useColorModeValue)("rgba(0,0,0,0.10)","rgba(255,255,255,0.12)"),g=(0,f.useColorModeValue)("#5A5A5A","#B4B4B4"),x=(0,f.useColorModeValue)("#FAFAFA","#252525"),y="modal"===n,w=(0,L.useIsMobileViewport)(),E={as:"button",cursor:"pointer",bg:"transparent",border:"none",h:"28px",minW:"28px",px:"6px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"9999px",_hover:{bg:p}},C=(0,t.jsx)(sf.default,{display:{base:"none",md:"flex"},h:"32px",px:"14px",children:(0,t.jsx)(sD.default,{tiptapEditor:r})});return(0,t.jsxs)(c.Flex,{bgColor:y?"transparent":x,h:sM.DOC_EDITOR_HEADER_HEIGHT,px:"12px",borderTopRadius:"side-panel"===n?"0px":"16px",flex:"0 0 auto",alignItems:"center",justifyContent:"space-between",children:[(0,t.jsxs)(c.Flex,{flex:"1",alignItems:"center",gap:"4px",children:[(0,t.jsx)(b.Box,{...E,"data-tour":"document-maximize","aria-label":"Open as full page",onClick:e,children:(0,t.jsx)(sp.RiExpandDiagonal2Line,{color:"#838383"})}),(0,t.jsx)(b.Box,{w:"1px",h:"16px",bg:m,borderRadius:"full"}),(0,t.jsx)(P.default,{modalType:n,onChangeModalType:i})]}),C,(0,t.jsxs)(c.Flex,{flex:"1",justifyContent:"flex-end",alignItems:"center",gap:"10px",children:[y&&(0,t.jsx)(sk,{tiptapEditor:r,title:s,font:d.font}),y&&a&&(0,t.jsx)(sy,{documentUid:a,projectUid:l}),y&&a&&!h&&(0,t.jsx)(sF.default,{options:d,onChange:u,children:(0,t.jsx)(z.Tooltip,{label:"Document options",openDelay:300,children:(0,t.jsx)(sf.default,{h:"32px",w:"32px",justifyContent:"center",children:(0,t.jsx)(eU.MenuButton,{as:H.IconButton,"aria-label":"Document options",variant:"ghost",h:"26px",minW:"26px",borderRadius:"9999px",color:g,_hover:{bg:p},_active:{bg:p},icon:(0,t.jsx)(ex.Icon,{as:_.IoEllipsisHorizontal,boxSize:"16px"})})})})}),"modal"===n&&w&&(0,t.jsx)(sf.default,{as:"button","aria-label":"Close document",onClick:o,h:"32px",w:"32px",justifyContent:"center",cursor:"pointer",_hover:{bg:p},children:(0,t.jsx)(sm.IoIosClose,{size:"22px",color:"#838383"})}),"side-panel"===n&&(0,t.jsx)(b.Box,{...E,"aria-label":"Collapse side panel",onClick:()=>o(),children:(0,t.jsx)(v.MdKeyboardDoubleArrowRight,{size:"23px",color:"#838383"})})]})]})};var sU=e.i(739474),sL=e.i(785758);let sB=(0,F.chakra)(k.default);function sW({value:e,disabled:r,marginBottom:n,inputRef:i,fontSize:o="40px",onChange:a,onBlur:l,onKeyPress:s}){return(0,t.jsx)(sB,{ref:i,mb:n,disabled:r,placeholder:sL.DOCUMENT_TITLE_PLACEHOLDER,_placeholder:{color:sL.DOCUMENT_TITLE_PLACEHOLDER_COLOR},value:e,textAlign:"start",onChange:a,onBlur:l,onKeyPress:s,onKeyDown:e=>{"Backspace"===e.key&&e.stopPropagation()},fontSize:o,fontWeight:"700",fontFamily:sU.DOCUMENT_TITLE_FONT_FAMILY,padding:"0px",lineHeight:"inherit",maxLength:80,minH:"initial",resize:"none",w:"100%",cursor:"text",bg:"transparent",outline:"none",_focus:{outline:"none",boxShadow:"none"},_active:{outline:"none",boxShadow:"none"},sx:{cursor:"text","&::-webkit-scrollbar":{display:"none"}}})}
13var sP=e.i(416947),sj=e.i(297750),sR=e.i(120021),sN=e.i(744957),sO=e.i(735218),sH=e.i(832581),sz=e.i(187183),sG=e.i(121895);let sV=[{...sH.TOUR_TIP_STEP_VISUALS,target:'[data-tour="document-maximize"]',title:"Open the full editor",content:"Maximize your document for more room and a built-in AI assistant that can write, edit, and answer from your doc.",placement:"bottom",skipBeacon:!0,disableFocusTrap:!0,hideOverlay:!0,buttons:["primary"],locale:{last:"Got it"},zIndex:1e5,targetWaitTimeout:3e3}],s$=()=>{let{mounted:e,run:r,handleEvent:n}=(0,sz.useSimpleTour)(sG.TUTORIAL_KEYS.documentMaximizeHint);return e?(0,t.jsx)(sO.Joyride,{steps:sV,run:r,continuous:!0,onEvent:n,styles:sH.TOUR_TIP_STYLES}):null};var sJ=e.i(67125),sK=e.i(630920),sY=e.i(28791),sq=e.i(962355),sX=e.i(86911),sQ=e.i(484301),sZ=e.i(680377),s0=e.i(303984),s1=e.i(538209),s5=e.i(565301),s2=e.i(766421),s4=e.i(250531),s8=e.i(796911);function s3({isOpen:e,onClose:r,initialToolDocument:n,initialModalType:o="modal",autoTriggerInlineChat:a=!1}){let[d,u]=(0,i.useState)(n),[g,x]=(0,i.useState)(o),w=(0,L.useIsMobileViewport)(),{isAgentPanelBeside:S,containerProps:_}=(0,B.useCanvasModalGeometry)(),v=(0,K.useToast)(),k=(0,s.useRouter)(),{changeUserSettingsDocumentEditingModalType:F}=(0,nR.useCurrentUserSettings)(),{updateProjectDocument:D}=(0,sJ.default)(),M=(0,E.useWhiteboardViewStore)(e=>e.viewOnly),I=(0,E.useWhiteboardViewStore)(e=>e.project),U=(0,E.useWhiteboardViewStore)(e=>e.projectParticipants),P=(0,E.useWhiteboardViewStore)(e=>e.viewOnlyLinkKey);(0,i.useEffect)(()=>{u(n)},[n,d.whiteboardElementUid]);let[N,O]=(0,i.useState)(null),[H,z]=(0,i.useState)(null),[G,V]=(0,i.useState)(void 0),[$,J]=(0,i.useState)(null),[Y,q]=(0,i.useState)(null),X=(0,i.useRef)(null),Q=(0,i.useRef)(null),Z=(0,i.useRef)(null),ee=(0,i.useRef)(null),et=(0,i.useRef)(d.elementUid);(0,i.useEffect)(()=>{et.current=d.elementUid},[d.elementUid]);let er=(0,i.useRef)(null),en=(0,i.useRef)(null),[ei]=(0,sh.useLazyQuery)(ea.ProjectDocumentByUidDocument),eo=(0,i.useRef)(ei);(0,i.useEffect)(()=>{eo.current=ei},[ei]),(0,i.useEffect)(()=>{d.elementUid&&!M&&ei({variables:{documentUid:d.elementUid,logViewed:!1},fetchPolicy:"network-only"}).then(e=>{let t=e.data?.projectDocumentByUid;
13t?.id!=null&&(z(t.id),ee.current=t.id),t&&V({coverBannerImageUrl:t.coverBannerImageUrl,coverIconType:t.coverIconType,coverIconValue:t.coverIconValue,coverIconColorHex:t.coverIconColorHex})})},[d.elementUid,ei,M]);let el=(0,s1.useAgentDocumentReload)(d.elementUid,(0,i.useCallback)(e=>{V(e),u(t=>({...t,content:e.content}))},[])),{currentSession:es,createSession:ed,isLoading:eu,hasQueriedServer:ec,refreshSessions:eh}=(0,sq.useAIChatSessions)({resourceId:H??0,resourceType:ea.AiAssistanceResourceType.ProjectDocument}),ep=(0,i.useRef)(ed);(0,i.useEffect)(()=>{ep.current=ed},[ed]),(0,i.useEffect)(()=>{H&&eh()},[H]),(0,i.useEffect)(()=>{Z.current=es&&ec?Number(es.id):null},[es,ec]);let em=(0,f.useColorModeValue)("#F1F2F4","#212121"),eg=(0,f.useColorModeValue)("rgba(0,0,0,0.05)","rgba(255,255,255,0.05)"),ef=(0,f.useColorModeValue)(nL.light,nL.dark),eb=(0,f.useColorModeValue)("rgba(0,0,0,0.28)","rgba(255,255,255,0.28)"),ex=(0,i.useMemo)(()=>(0,eY.autoHideScrollbarSx)(eb),[eb]);(0,eY.useAutoHideScrollbar)(er,`${e}:${g}`);let ey=()=>{r()},ew=G?.coverBannerImageUrl??"",eE=G?.coverIconType??"",eC=G?.coverIconValue??"",eT=G?.coverIconColorHex??"",{options:eS,changeOptions:eA}=(0,sR.useDocumentPreferences)(),e_=(0,sN.documentContentMaxWidth)(eS.fullWidth),ev=(0,i.useCallback)(e=>{d.elementUid&&(V(t=>({...t,coverBannerImageUrl:e,coverIconType:t?.coverIconType??"",coverIconValue:t?.coverIconValue??"",coverIconColorHex:t?.coverIconColorHex??""})),D(d.elementUid,void 0,I?.uid,void 0,e))},[d.elementUid,I?.uid,D]),ek=(0,i.useCallback)((e,t,r)=>{d.elementUid&&(V(n=>({...n,coverBannerImageUrl:n?.coverBannerImageUrl??"",coverIconType:e,coverIconValue:t,coverIconColorHex:r})),D(d.elementUid,void 0,I?.uid,void 0,void 0,e,t,r))},[d.elementUid,I?.uid,D]),eF=(0,i.useRef)(null),[eD,eM]=(0,i.useState)((0,sL.documentTitleForDisplay)(d.title)),eI=(0,i.useRef)(d.title??""),eU=e=>{eM(e.target.value)},eL=async e=>{if(!M){eI.current=e,eM((0,sL.documentTitleForDisplay)(e));try{await D(d.elementUid,e,I?.uid??void 0),u(t=>({...t,title:e})),C.whiteboardActions.refetchWhiteboard()}catch(e){console.error(e)}}},eB=()=>{eD.trim()&&eL(eD.trim())},eW=e=>{"Enter"===e.key&&eL(eD.trim())},eP=(0,i.useCallback)(e=>{x(e),F(e)},[x,F]),ej=(0,i.useRef)(null),{setAiPanelOpen:eR}=(0,l.default)(),eN=(0,j.useWhiteboardSelectionStore)(e=>e.setIsWhiteboardSidebarOpen),eO=(0,j.useWhiteboardSelectionStore)(e=>e.setDocumentSidePanelUid),eH=(0,j.useWhiteboardSelectionStore)(e=>e.releaseCanvasRail),ez="side-panel"===g&&!w,eG=(0,i.useCallback)(()=>{eH(),eR(!0)},[eH,eR]),eV=(0,i.useCallback)(()=>{ez?eR(!0):eG()},[ez,eR,eG]),e$=(0,s4.useDocumentEditsStore)(e=>e.isDiffOpen),eJ=d.elementUid??d.whiteboardElementUid??"document";(0,i.useEffect)(()=>{if(ez&&e)return eN(!1),eO(eJ),()=>{j.useWhiteboardSelectionStore.getState().documentSidePanelUid===eJ&&eO(null)}},[ez,e,eJ,eN,eO]);let eK=(0,i.useCallback)(e=>{O(e),ej.current=e},[]),eq=(0,i.useRef)(null),eX=(0,i.useRef)({save:()=>{},setTitle:e=>{},reload:()=>{}});eX.current={save:()=>{let e=ej.current;if(!e)return;let t=e.getHTML();t!==eq.current&&(eq.current=t,e2(t))},setTitle:e=>{eL(e)},reload:()=>el()},(0,i.useEffect)(()=>{if(!(0,s8.isUnifiedAiAgentEnabled)()||!e||M||!N)return;sQ.useDocumentEditorBridge.getState().register(N,d.elementUid??"",d.title??"",()=>eX.current.save(),e=>eX.current.setTitle(e),()=>eX.current.reload());let t=(0,s0.attachUserEditWatcher)(N);return sZ.useInlineChatStore.getState().registerOpenPanel(eG),()=>{t(),sZ.useInlineChatStore.getState().registerOpenPanel(null),sQ.useDocumentEditorBridge.getState().unregister(N)}},[e,M,N,d.elementUid,eG]),(0,B.useCanvasModalClickAway)(S&&e&&!ez,ey),(0,i.useEffect)(()=>{(0,s8.isUnifiedAiAgentEnabled)()&&e&&sQ.useDocumentEditorBridge.getState().setDocumentTitle(d.title??"")},[e,d.title]),(0,i.useEffect)(()=>{eq.current=null},[d.elementUid,e]);let eQ=(0,i.useCallback)(e=>{X.current=e},[]),eZ=(0,i.useCallback)(async e=>{if(M)return;if((0,s8.isUnifiedAiAgentEnabled)()){Q.current=X.current,eV(),sZ.useInlineChatStore.getState().open(e);return}let t=ee.current;if(!t){let e=et.current;if(!e)return;try{let r=await eo.current({variables:{documentUid:e,logViewed:!1},fetchPolicy:"cache-first"});
13t=r.data?.projectDocumentByUid?.id??null,null!=t&&(ee.current=t,z(t))}catch{return}}if(!t)return;let r=Z.current;if(!r)try{let e=await ep.current();Z.current=r=Number(e.id)}catch{return}Q.current=X.current,J({position:e,sessionId:r,resourceId:t})},[M,eV]);(0,i.useEffect)(()=>{if(M||!e)return;let t=async e=>{let t;if(!((e.metaKey||e.ctrlKey)&&"j"===e.key))return;let r=ej.current;if(r){e.preventDefault(),e.stopPropagation();try{let{from:e}=r.state.selection,n=r.view.coordsAtPos(e);t={top:n.bottom+8,left:n.left}}catch{let e=r.view.dom.getBoundingClientRect();t={top:e.top+40,left:e.left+20}}await eZ(t)}};return document.addEventListener("keydown",t,!0),()=>document.removeEventListener("keydown",t,!0)},[M,e,eZ]);let e0=(0,i.useRef)(!1);(0,i.useEffect)(()=>{if(!a||!e||M||e0.current)return;let t=setTimeout(async()=>{let e=ej.current;if(!e)return;e0.current=!0;let t=e.view.dom.getBoundingClientRect(),r={top:t.top+40,left:t.left+20};await eZ(r)},400);return()=>clearTimeout(t)},[a,e,M,eZ]);let e1=(0,i.useCallback)((e,t)=>{if(!N||M)return;let r=(()=>{let t=document.createElement("div");t.innerHTML=e,t.querySelectorAll("[style]").forEach(e=>e.removeAttribute("style")),t.querySelectorAll("table, col, colgroup, td, th").forEach(e=>{e.removeAttribute("width"),e.removeAttribute("height")}),t.querySelectorAll("p").forEach(e=>{e.textContent?.trim()||e.querySelector("img, video, iframe")||e.remove()});let r=(d.title??"").trim().toLowerCase(),n=t.querySelector("h1");if(n&&r){let e=n.textContent?.trim().toLowerCase()??"";(e===r||r.includes(e)||e.includes(r))&&n.remove()}return t.innerHTML.replace(/>\s+</g,"><")})();if(!r)return;let{doc:n}=N.state,i=!1;if(t?.replaceFromHeading&&/<h[1-6][\s>]/i.test(r.trimStart().substring(0,10))){let e=t.replaceFromHeading.toLowerCase(),o=-1,a=1;if(n.forEach((t,r)=>{"heading"===t.type.name&&t.textContent.toLowerCase().trim()===e&&(o=r,a=t.attrs?.level??1)}),-1!==o){let e=n.content.size,t=!1;n.forEach((r,i)=>{if(i===o){t=!0;return}t&&e===n.content.size&&"heading"===r.type.name&&(r.attrs?.level??1)<=a&&(e=i)}),e!==n.content.size||/<table[\s>]/i.test(r)||n.forEach((t,r)=>{r>o&&"table"===t.type.name&&e===n.content.size&&(e=r)}),N.chain().focus().deleteRange({from:o,to:e}).insertContentAt(o,r).run(),i=!0}}if(!i&&t?.replaceEntireDocument){let e=n.textContent.length,t=r.replace(/<[^>]+>/g,"").length;(0===e||t>=.4*e)&&(N.chain().focus().clearContent().insertContentAt(0,r).run(),i=!0)}if(!i&&t?.targetParagraph!=null){let e=0;n.forEach((n,o)=>{i||"paragraph"===n.type.name&&++e===t.targetParagraph&&(N.chain().focus().deleteRange({from:o,to:o+n.nodeSize}).insertContentAt(o,r).run(),i=!0)})}if(!i){let e=document.createElement("div");if(e.innerHTML=r,e.querySelector("table")){let e=Q.current;if(null!==e){let t=null;n.descendants((r,n)=>{"table"===r.type.name&&n<=e&&(t={from:n,to:n+r.nodeSize})});let{from:o,to:a}=t??{};if(t&&e<=a+2){let e=document.createElement("div");e.innerHTML=r;let t=e.querySelector("h1,h2,h3,h4,h5,h6");t&&t===e.firstElementChild&&t.remove();let n=e.innerHTML.replace(/>\s+</g,"><")||r;N.chain().focus().deleteRange({from:o,to:a}).insertContentAt(o,n).run(),i=!0}}}}if(!i){let e=Q.current;if(null!==e)try{let t=n.resolve(Math.min(e,n.content.size)).after(1);N.chain().focus().insertContentAt(t,r).run()}catch{let e=N.state.doc.content.size;N.chain().focus().setTextSelection(e).insertContent(r).run()}else{let e=N.state.doc.content.size;N.chain().focus().setTextSelection(e).insertContent(r).run()}}J(null),q(null)},[N,M,d.title]),e5=(0,i.useCallback)((e,t)=>{J(null),q(null),(0,sK.pushToDocumentPage)({router:k,documentUid:d.elementUid,projectUid:I?.uid,project:I,viewOnlyLinkKey:P})},[k,d.elementUid,I,P]),e2=(0,i.useCallback)(async e=>{if(!M)try{await D(d.elementUid,eI.current,I?.uid??void 0,e),u(t=>({...t,content:e})),C.whiteboardActions.refetchWhiteboard()}catch(e){console.error(e)}},[M,d.elementUid,I?.uid,D,v]);(0,i.useEffect)(()=>{eI.current=d.title??""},[d.title]);let e4=(0,i.useMemo)(()=>(0,t.jsx)(b.Box,{id:d.whiteboardElementUid,w:"100%",px:sM.DOC_EDITOR_CONTENT_PX,onKeyDown:e=>{"Backspace"===e.key&&e.stopPropagation()},children:(0,t.jsx)(c.Flex,{w:"100%",justifyContent:"center",children:(0,t.jsxs)(b.Box,{ref:en,w:"100%",maxW:e_,children:[(0,t.jsx)(b.Box,{display:e$?"none":"block",children:(0,t.jsx)(sY.default,{content:d.content,isEditable:!M,onEditorSet:eK,onUpdate:e2,collaboratorMentionParticipants:U,enableTaskMetadata:!0,bubbleMenuContainer:"parent",onCursorPositionChange:eQ,onTabTabTrigger:M?void 0:eZ,onAskAISend:M||!(0,s8.isUnifiedAiAgentEnabled)()?void 0:(e,t)=>{let r=ej.current;if(r){let{from:t,to:n}=r.state.selection,i=e||r.state.doc.textBetween(t,n,"\n").trim();i&&n>t&&sQ.useDocumentEditorBridge.getState().setSelection({from:t,to:n,html:i})}eV(),sZ.useInlineChatStore.getState().sendWhenReady(t)}})}),(0,s8.isUnifiedAiAgentEnabled)()&&(0,t.jsx)(s2.default,{editor:N})]})})}),[d.content,d.whiteboardElementUid,M,eK,e2,U,eQ,e$,N,eZ,eV]);return(0,t.jsxs)(t.Fragment,{children:[(0,s8.isUnifiedAiAgentEnabled)()&&(0,t.jsx)(s5.default,{}),ez?(0,t.jsxs)(y.motion.div,{[B.CANVAS_MODAL_SURFACE_ATTRIBUTE]:"true",initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:{duration:.25,ease:[.22,1,.36,1]},style:nB,children:[(0,t.jsxs)(T.default,{p:0,h:"100%",bg:em,border:"1px solid",borderColor:ef,borderRadius:A.RIGHT_RAIL_PANEL_RADIUS,boxShadow:"none",overflow:"hidden",children:[(0,t.jsx)(sI,{modalType:g,t
13iptapEditor:N,documentUid:d.elementUid??void 0,projectUid:I?.uid,documentTitle:eD,documentOptions:eS,onChangeOptions:eA,viewOnly:M,onChangeModalType:eP,onCloseClick:()=>{r()},onExpandClick:()=>{(0,sK.pushToDocumentPage)({router:k,documentUid:d.elementUid,projectUid:I?.uid,project:I,viewOnlyLinkKey:P})}}),(0,t.jsx)(c.Flex,{direction:"column",h:`calc(100% - ${sM.DOC_EDITOR_HEADER_HEIGHT})`,overflow:"hidden",children:(0,t.jsxs)(b.Box,{ref:er,className:[(0,sU.documentFontClassName)(eS.font),(0,sN.documentTextSizeClassName)(!0)].filter(Boolean).join(" "),flex:"1",minH:"0",pb:sM.DOC_EDITOR_SCROLL_PADDING_BOTTOM,overflowX:"hidden",overflowY:"auto",sx:ex,children:[d.elementUid&&ew&&(0,t.jsx)(sP.default,{coverImageUrl:ew,editable:!M,height:sM.DOC_RAIL_COVER_HEIGHT,rounded:!0,onChangeCoverImageUrl:ev}),(0,t.jsx)(b.Box,{px:sM.DOC_EDITOR_CONTENT_PX,pt:ew?sM.DOC_COVER_CONTENT_PT:sM.DOC_EDITOR_SCROLL_PADDING_TOP,children:(0,t.jsx)(c.Flex,{w:"100%",justifyContent:"center",children:(0,t.jsxs)(b.Box,{w:"100%",maxW:e_,children:[d.elementUid&&(0,t.jsx)(sj.default,{coverImageUrl:ew,iconType:eE,iconValue:eC,iconColorHex:eT,editable:!M,iconSize:sM.DOC_RAIL_ICON_SIZE,onChangeCoverImageUrl:ev,onChangeIcon:ek}),(0,t.jsx)(sW,{inputRef:eF,value:eD,disabled:M,fontSize:sM.DOC_RAIL_TITLE_FONT_SIZE,marginBottom:sM.DOC_EDITOR_TITLE_MARGIN_BOTTOM,onChange:eU,onBlur:eB,onKeyPress:eW})]})})}),e4]})})]}),(0,t.jsx)(nU.default,{rail:"right"})]}):(0,t.jsxs)(h.Modal,{closeOnOverlayClick:!$&&!S,isCentered:!w,size:w?"full":"5xl",isOpen:e,onClose:ey,trapFocus:!$&&!S,blockScrollOnMount:!S,motionPreset:w?"slideInBottom":"scale",children:[(0,t.jsx)(W.default,{}),(0,t.jsx)(m.ModalContent,{[B.CANVAS_MODAL_SURFACE_ATTRIBUTE]:"true",containerProps:_,pointerEvents:"auto",zIndex:1200,bg:"transparent",boxShadow:"unset",my:w?"0":void 0,maxW:w?"100vw":void 0,children:(0,t.jsx)(p.ModalBody,{h:"100%",p:"0px",bg:"transparent",children:(0,t.jsxs)(T.default,{p:0,h:w?"100dvh":"85vh",borderRadius:w?"0px":"16px",pt:w?"env(safe-area-inset-top)":0,bg:em,border:"1px solid",borderColor:eg,children:[(0,t.jsx)(sI,{modalType:g,tiptapEditor:N,documentUid:d.elementUid??void 0,projectUid:I?.uid,documentTitle:eD,documentOptions:eS,onChangeOptions:eA,viewOnly:M,onChangeModalType:eP,onCloseClick:()=>{r()},onExpandClick:()=>{(0,sK.pushToDocumentPage)({router:k,documentUid:d.elementUid,projectUid:I?.uid,project:I,viewOnlyLinkKey:P})}}),(0,t.jsx)(c.Flex,{direction:"column",h:`calc(100% - ${sM.DOC_EDITOR_HEADER_HEIGHT})`,overflow:"hidden",borderBottomRadius:w?"0px":"16px",children:(0,t.jsxs)(b.Box,{ref:er,className:[(0,sU.documentFontClassName)(eS.font),(0,sN.documentTextSizeClassName)(eS.smallText)].filter(Boolean).join(" "),flex:"1",minH:"0",pb:w?`calc(env(safe-area-inset-bottom) + ${sM.DOC_EDITOR_SCROLL_PADDING_BOTTOM})`:sM.DOC_EDITOR_SCROLL_PADDING_BOTTOM,overflowX:"hidden",overflowY:"auto",borderBottomRadius:w?"0px":"16px",sx:ex,children:[d.elementUid&&ew&&(0,t.jsx)(sP.default,{coverImageUrl:ew,editable:!M,height:sM.DOC_COVER_HEIGHT,rounded:!w,onChangeCoverImageUrl:ev}),(0,t.jsx)(b.Box,{px:sM.DOC_EDITOR_CONTENT_PX,pt:ew?sM.DOC_COVER_CONTENT_PT:w?"30px":sM.DOC_EDITOR_SCROLL_PADDING_TOP,children:(0,t.jsx)(c.Flex,{w:"100%",justifyContent:"center",children:(0,t.jsxs)(b.Box,{w:"100%",maxW:e_,children:[d.elementUid&&(0,t.jsx)(sj.default,{coverImageUrl:ew,iconType:eE,iconValue:eC,iconColorHex:eT,editable:!M,onChangeCoverImageUrl:ev,onChangeIcon:ek}),(0,t.jsx)(sW,{inputRef:eF,value:eD,disabled:M,marginBottom:sM.DOC_EDITOR_TITLE_MARGIN_BOTTOM,onChange:eU,onBlur:eB,onKeyPress:eW})]})})}),e4]})})]})})})]}),$&&"u">typeof document&&(0,R.createPortal)((0,t.jsx)(sX.default,{position:$.position,resourceId:$.resourceId,resourceType:ea.AiAssistanceResourceType.ProjectDocument,sessionId:$.sessionId,scrollRef:er,contentBoxRef:en,onDismiss:()=>{J(null),q(null)},onAccept:e1,onMoveToChat:e5,externalFinalContent:Y,zIndex:1400}),document.body),e&&!M&&!w&&(0,t.jsx)(s$,{})]})}let s6=(0,i.createContext)({}),s9=({children:e})=>{let{isMacPlatform:r,projectUid:n}=(0,l.default)(),{projectDocumentEditingModalType:o,projectTicketEditingModalType:a}=(0,nR.useCurrentUserSettings)(),u=(0,s.useRouter)(),c=(0,L.useIsMobileViewport)(),h=(0,j.useWhiteboardSelectionStore)(e=>e.resetActiveElements),p=(0,j.useWhiteboardSelectionStore)(e=>e.isCanvasTicketDetailsModalOpenDetails),m=(0,j.useWhiteboardSelectionStore)(e=>e.setIsCanvasTicketDetailsModalOpenDetails),g=(0,j.useWhiteboardSelectionStore)(e=>e.isDocumentEditingModalOpenDetails),f=(0,j.useWhiteboardSelectionStore)(e=>e.setIsDocumentEditingModalOpenDetails),b=(0,j.useWhiteboardSelectionStore)(e=>e.mermaidSourceEditDetails),x=(0,j.useWhiteboardSelectionStore)(e=>e.setMermaidSourceEditDetails),y=(0,i.useCallback)(e=>r?e.metaKey:e.ctrlKey,[r]),{setNodes:w}=(0,ix.useCanvasEngine)(),E=(0,i.useCallback)(()=>{h(),w(e=>e.some(e=>e.selected)?e.map(e=>e.selected?{...e,selected:!1}:e):e)},[h,w]);return(0,i.useEffect)(()=>{p.open&&E()},[p,E]),(0,i.useEffect)(()=>{g.open&&E()},[g,E]),(0,i.useEffect)(()=>{!c||g.open&&g.toolDocument?.elementUid&&(f({open:!1,toolDocument:void 0}),(0,sK.pushToDocumentPage)({router:u,documentUid:g.toolDocument.elementUid,projectUid:n??void 0}))},[c,g,f,u,n]),(0,t.jsxs)(s6.Provider,{value:{isInMultiSelectMode:y},children:[e,b&&b.open&&b.toolMermaid&&(0,t.jsx)(sc,{isOpen:b.open,onClose:()=>x({open:!1,toolMermaid:void 0}),toolMermaid:b.toolMermaid},b.toolMermaid.whiteboardElementUid),(0,t.jsxs)(d.AnimatePresence,{children:[p&&p.open&&p.toolTicket&&(0,t.jsx)(iv,{isOpen:p.open,onClose:()=>m({open:!1,toolTicket:void 0}),initialToolTicket:p.toolTicket,initialModalType:a},p.toolTicket.elementUid),!c&&g&&g.open&&g.toolDocument&&(0,t.jsx)(s3,{isOpen:g.open,onClose:()=>f({open:!1,toolDocument:void 0}),initialToolDocument:g.toolDocument,initialModalType:o,autoTriggerInlineChat:g.autoTriggerInlineChat},g.toolDocument.elementUid)]})]})},s7=()=>(0,i.useContext)(s6),de=e=>i.default.memo(({data:l,selected:s,dragging:d,...u})=>{let{element:c,type:h}=l,p=(0,i.useRef)(null),[m,g]=(0,o.useBoolean)(!1),f=(0,r.useWhiteboardInteractionStore)(e=>e.setWasItemClicked),b=(0,n.useWhiteboardCursorStore)(e=>e.currentCursor),{isInMultiSelectMode:x}=s7(),y=(0,i.useMemo)(()=>
13({cursor:b}),[b]),w=(0,i.useCallback)(e=>{d||x(e)&&c?.whiteboardElementUid||f(!0)},[d,x,c]);return(0,t.jsxs)("div",{style:y,ref:p,onPointerUpCapture:w,onMouseEnter:g.on,onMouseLeave:g.off,children:[(0,t.jsx)(e,{...u,data:l,selected:s}),(0,t.jsx)(a.default,{whiteboardElementUid:c.whiteboardElementUid,selected:s,isHovered:m,hideBottomHandle:!0,nodeType:h})]})});var dt=e.i(633796),dr=e.i(942492);let dn=!0,di=[["#D1AA98","#802E00"],["#98B4D1","#264873"],["#D19898","#441408"],["#9E98D1","#264873"],["#849FC3","#264873"],["#D1AA98","#441408"],["#D19898","#882811"],["#98B4D1","#802E00"],["#9E98D1","#441408"],["#849FC3","#882811"],["#EA785E","#441408"],["#D1AA98","#882811"]];function da(e,t){return e.right>=t.x&&e.left<=t.x+t.width&&e.bottom>=t.y&&e.top<=t.y+t.height}e.s(["isFolderAutoAppearanceEnabled",0,()=>dn,"selectIconForBoardName",0,function(e,t=!1){let r=function(){let e=Math.floor(Math.random()*di.length),[t,r]=di[e];return(0,dr.createDuotoneColorString)(t,r)}();if(!e)return{iconName:"HugeFolderOpen",iconType:ea.ToolWhiteboardIconType.Custom,iconColorHex:r};for(let t of e.split(/\s+/).filter(e=>e.length>2&&!["the","and","for","with"].includes(e.toLowerCase()))){let e=function(e){let t=e.toLowerCase(),r=Object.entries(dt).filter(([e,t])=>"object"==typeof t&&null!==t).filter(([e])=>e.toLowerCase().includes(t));if(r.length>0){let e=Math.floor(Math.random()*r.length),[t]=r[e];return`Huge${t}`}return null}(t);if(e)return{iconName:e,iconType:ea.ToolWhiteboardIconType.Custom,iconColorHex:r}}return{iconName:"HugeFolderOpen",iconType:ea.ToolWhiteboardIconType.Custom,iconColorHex:r}},"setFolderAutoAppearanceEnabled",0,e=>{dn=e}],197092),e.s(["getFrameCenterHelperLines",0,function(e,t,r=5){let n={};if(t.width<=0||t.height<=0)return n;let i=t.x+t.width/2,o=t.y+t.height/2;return Math.abs(e.left+e.width/2-i)<r&&(n.vertical=i,n.snapX=i-e.width/2),Math.abs(e.top+e.height/2-o)<r&&(n.horizontal=o,n.snapY=o-e.height/2),n},"getHelperLines",0,function(e,t,r,n=5){let i={horizontal:void 0,vertical:void 0,snapPosition:{x:void 0,y:void 0}},o=t.find(t=>t.id===e.id);if(!o||!e.position)return i;let a={left:e.position.x,right:e.position.x+(o.measured?.width??0),top:e.position.y,bottom:e.position.y+(o.measured?.height??0),width:o.measured?.width??0,height:o.measured?.height??0},l=n,s=n;return t.filter(e=>e.id!==o.id).reduce((e,t)=>{let n={left:t.position.x,right:t.position.x+(t.measured?.width??0),top:t.position.y,bottom:t.position.y+(t.measured?.height??0),width:t.measured?.width??0,height:t.measured?.height??0};if(r&&!da(n,r))return e;let i=Math.abs(a.left-n.left);i<s&&(e.snapPosition.x=n.left,e.vertical=n.left,s=i);let o=Math.abs(a.right-n.right);o<s&&(e.snapPosition.x=n.right-a.width,e.vertical=n.right,s=o);let d=Math.abs(a.left-n.right);d<s&&(e.snapPosition.x=n.right,e.vertical=n.right,s=d);let u=Math.abs(a.right-n.left);u<s&&(e.snapPosition.x=n.left-a.width,e.vertical=n.left,s=u);let c=Math.abs(a.top-n.top);c<l&&(e.snapPosition.y=n.top,e.horizontal=n.top,l=c);let h=Math.abs(a.bottom-n.top);h<l&&(e.snapPosition.y=n.top-a.height,e.horizontal=n.top,l=h);let p=Math.abs(a.bottom-n.bottom);p<l&&(e.snapPosition.y=n.bottom-a.height,e.horizontal=n.bottom,l=p);let m=Math.abs(a.top-n.bottom);return m<l&&(e.snapPosition.y=n.bottom,e.horizontal=n.bottom,l=m),e},i)},"getHelperLinesForMultipleNodes",0,function(e,t,r,n=5){let i={helperLines:{horizontal:void 0,vertical:void 0,snapPosition:{x:void 0,y:void 0}},snapDelta:{x:0,y:0}};if(0===e.length)return i;let o=new Set(e.map(e=>e.id)),a=1/0,l=1/0,s=-1/0,d=-1/0;if(e.forEach(e=>{if(!e.position)return;let r=t.find(t=>t.id===e.id);if(!r)return;let n=e.position.x,i=e.position.y,o=n+(r.measured?.width??0),u=i+(r.measured?.height??0);a=Math.min(a,n),l=Math.min(l,i),s=Math.max(s,o),d=Math.max(d,u)}),a===1/0)return i;let u={left:a,right:s,top:l,bottom:d,width:s-a,height:d-l},c=n,h=n,p={horizontal:void 0,vertical:void 0,snapPosition:{x:void 0,y:void 0}};t.filter(e=>!o.has(e.id)).forEach(e=>{let t={left:e.position.x,right:e.position.x+(e.measured?.width??0),top:e.position.y,bottom:e.position.y+(e.measured?.height??0),width:e.measured?.width??0,height:e.measured?.height??0};if(r&&!da(t,r))return;let n=Math.abs(u.left-t.left);n<h&&(p.snapPosition.x=t.left,p.vertical=t.left,h=n);let i=Math.abs(u.right-t.right);i<h&&(p.snapPosition.x=t.right-u.width,p.vertical=t.right,h=i);let o=Math.abs(u.left-t.right);o<h&&(p.snapPosition.x=t.right,p.vertical=t.right,h=o);let a=Math.abs(u.right-t.left);a<h&&(p.snapPosition.x=t.left-u.width,p.vertical=t.left,h=a);let l=Math.abs(u.top-t.top);l<c&&(p.snapPosition.y=t.top,p.horizontal=t.top,c=l);let s=Math.abs(u.bottom-t.top);s<c&&(p.snapPosition.y=t.top-u.height,p.horizontal=t.top,c=s);let d=Math.abs(u.bottom-t.bottom);d<c&&(p.snapPosition.y=t.bottom-u.height,p.horizontal=t.bottom,c=d);let m=Math.abs(u.top-t.bottom);m<c&&(p.snapPosition.y=t.bottom,p.horizontal=t.bottom,c=m)});let m={x:void 0!==p.snapPosition.x?p.snapPosition.x-u.left:0,y:void 0!==p.snapPosition.y?p.snapPosition.y-u.top:0};return{helperLines:p,snapDelta:m}},"getHelperLinesForResize",0,function(e,t,r,n,i,o=5,a={}){let l={horizontal:void 0,vertical:void 0,snapWidth:void 0,snapHeight:void 0},s={left:t.x,right:t.x+r,top:t.y,bottom:t.y+n},d=o,u=o;return i.filter(t=>
13t.id!==e).forEach(e=>{let t={left:e.position.x,right:e.position.x+(e.measured?.width??0),top:e.position.y,bottom:e.position.y+(e.measured?.height??0)};if(a.viewport&&!da(t,a.viewport))return;let r=Math.abs(s.right-t.right);r<u&&(l.vertical=t.right,l.snapWidth=t.right-s.left,u=r);let n=Math.abs(s.right-t.left);n<u&&(l.vertical=t.left,l.snapWidth=t.left-s.left,u=n);let i=Math.abs(s.bottom-t.bottom);i<d&&(l.horizontal=t.bottom,l.snapHeight=t.bottom-s.top,d=i);let o=Math.abs(s.bottom-t.top);o<d&&(l.horizontal=t.top,l.snapHeight=t.top-s.top,d=o)}),a.skipHeightSnap&&(l.snapHeight=void 0),l},"isInViewport",0,da,"viewportRectFromStore",0,function(e){let[t,r,n]=e.transform;return{x:-t/n,y:-r/n,width:e.width/n,height:e.height/n}}],667273)},374783,e=>{"use strict";var t=e.i(102805);let r=t.WHITEBOARD_GRID_DOT_SIZE_PX/2,n=!0,i=e=>n?Math.round((e-r)/t.WHITEBOARD_BASE_GRID_PX)*t.WHITEBOARD_BASE_GRID_PX+r:e,o=e=>n?Math.round((e+t.WHITEBOARD_GRID_DOT_SIZE_PX)/t.WHITEBOARD_BASE_GRID_PX)*t.WHITEBOARD_BASE_GRID_PX-t.WHITEBOARD_GRID_DOT_SIZE_PX:e,a=new Set(["ToolDocument","ToolWhiteboard","ToolFlow"]),l=t.WHITEBOARD_BASE_GRID_PX/2;e.s(["CENTER_SNAP_NODE_TYPES",0,a,"setAlignToGridEnabled",0,e=>{n=e},"settleDropPosition",0,(e,t,r)=>({x:t.x&&r?r.x:i(e.x),y:t.y&&r?r.y:i(e.y)}),"snapCoordinateToDotEdge",0,i,"snapDimensionToGutterSpan",0,o,"snapLeftEdgeForCenteredIcon",0,(e,t)=>n?Math.round((e+t/2)/l)*l-t/2:e,"snapPointToGrid",0,e=>({x:i(e.x),y:i(e.y)}),"snapReleasedSizeToGrid",0,({width:e,height:t,minWidth:r,minHeight:n,maxWidth:i,maxHeight:a,lockAspectRatio:l,widthOnly:s})=>{let d=o(e);if(void 0!==i&&(d=Math.min(i,d)),d=Math.max(r,d),s)return{width:d,height:t};if(l){let r=d/(e/t);return r<n||void 0!==a&&r>a?{width:e,height:t}:{width:d,height:r}}let u=o(t);return void 0!==a&&(u=Math.min(a,u)),{width:d,height:u=Math.max(n,u)}}])},804265,552555,142321,874290,560725,162625,e=>{"use strict";e.s(["DEFAULT_TOOL_WHITEBOARD_NAME",()=>R,"default",()=>G],804265);var t=e.i(785929),r=e.i(966078),n=e.i(203306),i=e.i(567109),o=e.i(814484),a=e.i(326170),l=e.i(38462),s=e.i(961773),d=e.i(942264),u=e.i(306148),c=e.i(647547),h=e.i(438974),p=e.i(630920),m=e.i(168439);e.i(700930);var g=e.i(170758),f=e.i(197240),b=e.i(942492),x=e.i(197092),y=e.i(763371),w=e.i(385050),E=e.i(533639),C=e.i(937304),T=e.i(874186),S=e.i(667273),A=e.i(374783);function _({size:e=22,ratio:r=1,bold:n=!1}){let i=Math.min(Math.max(r,0),1);if(n){let r=90*i,n=Math.max(0,20-r);return(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"none",overflow:"visible",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:`M 0 20 L ${n} 20 A ${r} ${r} 0 0 0 20 ${n} L 20 0`,stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})}let o=18*i;return(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 22 22",fill:"none",overflow:"visible",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:`M 4 22 L ${22-o} 22 A ${o} ${o} 0 0 0 22 ${22-o} L 22 4`,stroke:"currentColor",strokeWidth:"3.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})}e.s(["default",0,_],552555);var v=e.i(309943);let k=({width:e,height:r,onSizeChange:n,onSizeChangeEnd:i,enabled:o=!1,minWidth:a=297.5,minHeight:l=297.5,maxWidth:d,maxHeight:u,position:h="absolute",nodeId:p,maintainsAspectRatio:m=!1,widthOnly:f=!1,onResizeStart:b,onGetCurrentWidth:x,onGetCurrentHeight:y,onGetMinHeight:E,cursor:k,handleSize:F=32,handleOffset:D=8,iconNode:M,cornerRadius:I})=>{let{getNodes:U,getNode:L,getZoom:B}=(0,g.useCanvasEngine)(),W=(0,C.useCanvasStoreApi)(),P=(0,w.useWhiteboardSelectionStore)(e=>e.setHelperLines),j=(0,w.useWhiteboardSelectionStore)(e=>e.clearHelperLines);if(!o)return(0,t.jsx)(t.Fragment,{});let R=void 0!==I?`${(0,v.getCornerHandleInset)(I)}px`:"0px",N=void 0!==I?(0,v.getCornerCurvatureRatio)(I,e,r):1,O=void 0!==I;return(0,t.jsx)(c.Box,{"data-presentation-remove":!0,position:h,bottom:`calc(${D}px + ${R})`,right:`calc(${D}px + ${R})`,width:`${F}px`,height:`${F}px`,bg:"transparent",pointerEvents:"all",cursor:k??(f?"ew-resize":"nwse-resize"),onPointerDown:t=>{t.preventDefault(),t.stopPropagation(),b?.(),w.useWhiteboardSelectionStore.getState().setIsResizingElement(!0);let o=x?.()??e,c=y?.()??r,h=t.clientX,g=t.clientY,C=o,_=c,v=!1,k=!1,F=B(),D=o/c,M=m&&!f,I=p?L(p):null,R=I?.position,N=!!(I?.parentId&&L(I.parentId)?.type===T.ToolElementType.ToolFrame),O=!1,H=e=>{O=!0;let t=(e.clientX-h)/F,r=(e.clientY-g)/F,i=Math.max(l,E?.()??l);if(M?(C=Math.max(a,(D*D*(o+t)+D*(c+r))/(D*D+1)),void 0!==d&&(C=Math.min(d,C)),(_=C/D)<i&&(C=(_=i)*D),void 0!==u&&_>u&&(C=(_=u)*D)):(C=Math.max(a,o+t),void 0!==d&&(C=Math.min(d,C)),_=f?c:Math.max(i,c+r),void 0===u||f||(_=Math.min(u,_))),p&&R){let e=U(),t=new Map;
13e.forEach(e=>{e.parentId||t.set(e.id,e.position)});let r=e.map(e=>{if(e.parentId){let r=t.get(e.parentId);if(r)return{...e,position:{x:e.position.x+r.x,y:e.position.y+r.y}}}return e}),n=(0,S.getHelperLinesForResize)(p,R,C,_,r,5,{skipHeightSnap:m||f,viewport:(0,S.viewportRectFromStore)(W.getState())});P(n.horizontal,n.vertical);let o=void 0!==n.snapWidth&&n.snapWidth>=a&&(void 0===d||n.snapWidth<=d);o&&(C=n.snapWidth,M&&(_=C/D)),v=o;let l=!M&&void 0!==n.snapHeight&&n.snapHeight>=i&&(void 0===u||n.snapHeight<=u);l&&(_=n.snapHeight),k=l}n(C,_),p&&s.whiteboardActions.tickGrowthReflow(p,{width:C,height:_,animate:!1})},z=()=>{if(document.removeEventListener("pointermove",H),document.removeEventListener("pointerup",z),document.removeEventListener("pointercancel",z),w.useWhiteboardSelectionStore.getState().setIsResizingElement(!1),j(),!O)return;let e=Math.max(l,E?.()??l),t=f?_:Math.max(e,_),r=C,n=t;if(!N){let i=(0,A.snapReleasedSizeToGrid)({width:C,height:t,minWidth:a,minHeight:e,maxWidth:d,maxHeight:u,lockAspectRatio:M,widthOnly:f}),o=k||M&&v;r=v?C:i.width,n=o?t:i.height}p&&(r!==C||n!==t)&&s.whiteboardActions.tickGrowthReflow(p,{width:r,height:n,animate:!1}),p&&s.whiteboardActions.endGrowthReflow(p),i(r,n)};document.addEventListener("pointermove",H),document.addEventListener("pointerup",z),document.addEventListener("pointercancel",z)},display:"flex",alignItems:"flex-end",justifyContent:"flex-end",zIndex:5,opacity:.25,transition:"opacity 0.15s ease",_hover:{opacity:.7},children:M??(0,t.jsx)(_,{ratio:N,bold:O,size:O?26:22})})};e.s(["default",0,k],142321);var F=e.i(164848),D=e.i(608300),M=e.i(819234);let I=(0,F.chakra)(M.default),U=({fontSize:e,width:r,marginTop:n,fallback:i})=>{let o=(0,w.useWhiteboardSelectionStore)(e=>e.activeElementEditedTitle);return(0,t.jsx)(D.Text,{variant:"h6",fontSize:`${e}px`,mt:`${n}px`,fontWeight:"700",textAlign:"center",w:`${r}px`,whiteSpace:"normal",wordBreak:"break-word",children:o&&""!==o?o:i})},L=(0,r.forwardRef)(({value:e,onChange:r,onBlur:n,onKeyDown:i,readOnly:o,autoFocus:a,placeholder:l,fontSize:s,marginTop:d,width:u,cursor:c,lineHeight:p=1.3},m)=>{let g=(0,h.useColorModeValue)("blackAlpha.100","whiteAlpha.100");return(0,t.jsx)(I,{ref:m,className:"nodrag nopan",onPointerDown:e=>e.stopPropagation(),placeholder:l,value:e,onChange:r,onBlur:n,onKeyDown:i,readOnly:o,autoFocus:a,tabIndex:0,fontSize:`${s}px`,fontWeight:600,textAlign:"center",mt:`${d}px`,w:`${u}px`,px:"6px",py:"2px",minH:"initial",lineHeight:p,resize:"none",overflow:"hidden",bg:"transparent",border:"none",outline:"none",borderRadius:"6px",wordBreak:"break-word",cursor:c,transition:"background-color 0.15s ease",_focus:{outline:"none",boxShadow:"none",bg:g},_active:{outline:"none",boxShadow:"none"}})});function B(e,t,n,i,o){let a=o?.syncHeight!==!1,[l,s]=(0,r.useState)(e>0?e:n),[d,u]=(0,r.useState)(t>0?t:i);return(0,r.useEffect)(()=>{s(e>0?e:n)},[e,n]),(0,r.useEffect)(()=>{a&&u(t>0?t:i)},[t,i,a]),{width:l,setWidth:s,height:d,setHeight:u}}function W({nodeId:e,attributes:t,defaultWidth:n,defaultHeight:i,minWidth:o,maxWidth:a,aspectRatio:l}){let{width:d,setWidth:u,height:c,setHeight:h}=B(t?.width??0,t?.height??0,n,i),{minHeight:p,maxHeight:m}=(0,r.useMemo)(()=>({minHeight:o*l,maxHeight:a*l}),[o,a,l]),g=(0,r.useRef)(t);g.current=t;let f=(0,r.useRef)(null),b=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{null!==b.current&&cancelAnimationFrame(b.current)},[]);let x=(0,r.useCallback)(()=>{b.current=null;let e=f.current;e&&(f.current=null,u(e.w),h(e.h))},[u,h]),y=(0,r.useCallback)(e=>Math.max(o,Math.min(a,e)),[o,a]),w=(0,r.useCallback)(e=>Math.max(p,Math.min(m,Math.round(e*l))),[p,m,l]),[E,C]=(0,r.useState)(!1),T=(0,r.useCallback)(()=>C(!1),[]),S=(0,r.useCallback)(e=>{let t=y(e),r=w(t);f.current={w:t,h:r},null===b.current&&(b.current=requestAnimationFrame(x)),C(!0)},[y,w,x]),A=(0,r.useCallback)(t=>{let r=y(t),n=w(r);null!==b.current&&(cancelAnimationFrame(b.current),b.current=null),f.current=null,u(r),h(n),s.whiteboardActions.updateElementAttributes(e,{...g.current,width:r,height:n})},[y,w,u,h,e]);return{width:d,height:c,setWidth:u,setHeight:h,minHeight:p,maxHeight:m,handleResize:S,handleResizeEnd:A,didResize:E,resetDidResize:T}}
13L.displayName="CanvasElementTitleInput",e.s(["CanvasElementEditingTitle",0,U,"default",0,L],874290),e.s(["useSyncedDimensions",0,B],560725),e.s(["useResizableCanvasElement",0,W],162625);var P=e.i(938629);let j=(0,r.memo)(({size:e,cornerRadius:r,innerPadding:n,strokeWidth:i=2.5})=>{let o=Math.max(1,r-n),a=e-n,l=e-r,s=e-r,d=e-n;return(0,t.jsx)("svg",{width:e,height:e,viewBox:`0 0 ${e} ${e}`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{overflow:"visible",display:"block"},children:(0,t.jsx)("path",{d:`M ${a} ${l} A ${o} ${o} 0 0 1 ${s} ${d}`,stroke:"currentColor",strokeWidth:i,strokeLinecap:"round",fill:"none",vectorEffect:"non-scaling-stroke"})})}),R="New Folder",N=f.DEFAULT_TOOL_WHITEBOARD_TOOL_CREATE_WIDTH,O=5*f.DEFAULT_TOOL_WHITEBOARD_TOOL_WIDTH,H=f.DEFAULT_TOOL_WHITEBOARD_TOOL_HEIGHT/f.DEFAULT_TOOL_WHITEBOARD_TOOL_WIDTH,z=(0,r.memo)(({data:e,selected:m})=>{let{element:C,attributes:T,whiteboardElementUid:S,isOver:A}=e,{elementUid:_,elementId:v,boardName:F,iconName:D,iconType:M,iconColorHex:I,linkedWhiteboardUid:B,linkedProjectUid:z}=C,G=!!B,[V,$]=(0,r.useState)(F||""),{setNodes:J}=(0,g.useCanvasEngine)(),K=(0,n.useRouter)(),Y=(0,i.useApolloClient)(),{colorMode:q}=(0,h.useColorMode)(),X="light"===q,Q=(0,h.useColorModeValue)(f.DEFAULT_TOOL_WHITEBOARD_TOOL_LIGHT_FOLDER_COLOR,f.DEFAULT_TOOL_WHITEBOARD_TOOL_DARK_FOLDER_COLOR),Z=(0,r.useMemo)(()=>(0,b.getEffectiveBackgroundColor)(I,Q),[I,Q]),ee=(0,r.useMemo)(()=>(0,b.getEffectiveOutlineColor)(I,Z),[I,Z]);(0,r.useEffect)(()=>{$(F||"")},[F]);let et=(0,d.useWhiteboardCursorStore)(e=>e.currentCursor),er=(0,l.useWhiteboardViewStore)(e=>e.viewOnly),en=(0,l.useWhiteboardViewStore)(e=>e.viewOnlyLinkKey),ei=(0,l.useWhiteboardViewStore)(e=>e.project),eo=(0,w.useWhiteboardSelectionStore)(e=>!!e.isActiveElementEditing&&!!e.activeElement&&e.activeElement.whiteboardElementUid===C.whiteboardElementUid),ea=(0,w.useWhiteboardSelectionStore)(e=>e.itemHasCreationFocus),el=(0,w.useWhiteboardSelectionStore)(e=>e.resetActiveElements),es=(0,w.useWhiteboardSelectionStore)(e=>e.updateRightClickMenuState),{breadCrumbs:ed,setBreadCrumbs:eu}=(0,y.default)(),ec=(0,r.useRef)(null),eh=(0,r.useRef)(null),[ep,em]=(0,r.useState)(!1),[eg,ef]=(0,r.useState)(!1),{width:eb,height:ex,minHeight:ey,maxHeight:ew,handleResize:eE,handleResizeEnd:eC,didResize:eT,resetDidResize:eS}=W({nodeId:S,attributes:T,defaultWidth:f.DEFAULT_TOOL_WHITEBOARD_TOOL_WIDTH,defaultHeight:f.DEFAULT_TOOL_WHITEBOARD_TOOL_HEIGHT,minWidth:N,maxWidth:O,aspectRatio:H}),eA=Math.min(eb/940,ex/790),e_=940*eA,ev=790*eA,ek=e_/f.DEFAULT_TOOL_WHITEBOARD_TOOL_WIDTH,eF=Math.max(10,Math.min(28,Math.round(12*ek))),eD=Math.max(180,Math.round(2.3*e_)),eM=Math.max(8,Math.min(22,Math.round(12*ek))),eI=Math.max(24,Math.round(36*ek)),eU=.12255319148936171*e_,eL=Math.max(3,Math.min(10,Math.round(.025*e_))),eB=Math.max(22,Math.min(72,Math.round(1.6*eU+eL))),eW=(0,r.useMemo)(()=>(0,t.jsx)(j,{size:eB,cornerRadius:eU,innerPadding:eL}),[eB,eU,eL]);(0,r.useEffect)(()=>{ea&&m&&ec.current&&(ec.current.focus(),setTimeout(()=>{ec.current?.focus()},0))},[ea,m]),(0,r.useEffect)(()=>{if(!m||er)return;let e=e=>{if(e.metaKey||e.ctrlKey||e.altKey)return;let t=1===e.key.length,r="Enter"===e.key;if(!t&&!r)return;let n=document.activeElement;if(n?.tagName==="INPUT"||n?.tagName==="TEXTAREA"||n?.getAttribute("contenteditable")==="true")return;let i=w.useWhiteboardSelectionStore.getState();i.activeElement&&i.activeElement.whiteboardElementUid===S&&(e.preventDefault(),r?(ec.current?.focus(),ec.current?.select()):(0,E.focusInputAndReplace)(ec.current,e.key))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[m,er,S]);let eP=(0,r.useCallback)(()=>{if(G){z&&B&&K.prefetch(`/${z}/${B}`);return}ei&&ei.uid&&_&&(0,p.prefetchToWhiteboardPage)({router:K,whiteboardUid:_,projectUid:ei.uid,project:ei,viewOnlyLinkKey:en})},[G,z,B,ei,_,K,en]),ej=e=>{if(er)return;let t=e.trim();if(t){if((!C.iconName||!C.iconType)&&(0,x.isFolderAutoAppearanceEnabled)()){let e=(0,x.selectIconForBoardName)(t,X),r={...C,boardName:t,iconName:e.iconName,iconType:e.iconType,iconColorHex:e.iconColorHex,whiteboardElementUid:C.whiteboardElementUid};s.whiteboardActions.updateWhiteboardElementContent(C.whiteboardElementUid,r)}else s.whiteboardActions.updateWhiteboardElementContent(C.whiteboardElementUid,{...C,boardName:t});(0,o.syncFolderDetails)(Y.cache,C.whiteboardElementUid,{boardName:t})}},eR=(0,r.useMemo)(()=>(0,t.jsx)(P.default,{width:e_,height:ev,color:Z,iconName:D,iconType:M,customOutlineColor:ee,selected:m||A,hovered:eg,overlayIconSize:eI,isLink:G}),[A,m,e_,ev,Z,D,M,ee,eg,eI,G]),eN=ep?"scale(0.9)":A?"scale(1.15)":"scale(1)";return(0,t.jsx)(c.Box,{className:er?"nopan":void 0,onDoubleClickCapture:e=>{if(eh.current&&eh.current.contains(e.target)){e.preventDefault(),e.stopPropagation(),!er&&ec.current&&(ec.current.focus(),ec.current.select());return}if(eT){e.preventDefault(),e.stopPropagation(),eS();return}e.preventDefault(),e.stopPropagation(),J(e=>e.map(e=>e.id===S?{...e,selected:!1}:e)),(()=>{if(em(!0),G)return er?em(!1):z&&B&&(em(!1),w.useWhiteboardSelectionStore.getState().resetActiveElements(),(0,a.resolveLinkedBoardHref)(Y,z,B).then(e=>K.push(e)));
13ei&&ei.uid&&_&&(em(!1),w.useWhiteboardSelectionStore.getState().resetActiveElements(),sessionStorage.setItem(w.OPEN_TEMPLATES_ON_FOLDER_OPEN_KEY,"1"),(0,p.pushToWhiteboardPage)({router:K,whiteboardUid:_,projectUid:ei?.uid,project:ei,viewOnlyLinkKey:en}))})()},w:`${eb}px`,position:"relative",onPointerDown:eP,onMouseEnter:()=>{ef(!0),eP()},onMouseLeave:()=>ef(!1),onContextMenu:e=>{(0,E.handleWhiteboardElementContextMenu)(e,()=>{es({visible:!0,x:e.clientX,y:e.clientY,boardClicked:!1,element:C,attributes:T})})},children:(0,t.jsxs)(u.Flex,{direction:"column",alignItems:"center",bgColor:"transparent",position:"relative",children:[(0,t.jsx)(c.Box,{"data-tour":"folder-card",position:"absolute",top:"0",left:"50%",transform:"translateX(-50%)",w:`${e_}px`,h:`${ev+32}px`,pointerEvents:"none","aria-hidden":!0}),(0,t.jsxs)(c.Box,{"data-collab-outline":!0,"data-collab-outline-shape":"folder","data-new-item-anchor":S,"data-board-uid":_,"data-board-id":v??void 0,position:"relative",w:`${e_}px`,h:`${ev}px`,transform:eN,transition:"transform 0.1s",children:[eR,!er&&(0,t.jsx)(k,{enabled:eg,width:eb,height:ex,minWidth:N,minHeight:ey,maxWidth:O,maxHeight:ew,nodeId:S,maintainsAspectRatio:!0,handleSize:eB,handleOffset:0,iconNode:eW,onSizeChange:eE,onSizeChangeEnd:eC})]}),(0,t.jsx)(c.Box,{ref:eh,position:"absolute",top:"100%",left:"50%",transform:"translateX(-50%)",onDoubleClick:e=>{e.preventDefault(),e.stopPropagation()},onClick:()=>{!er&&ec.current&&setTimeout(()=>{ec.current?.focus()},50)},children:eo?(0,t.jsx)(U,{fontSize:eF,width:eD,marginTop:eM,fallback:R}):(0,t.jsx)(L,{ref:ec,placeholder:"New Folder",value:V,onChange:e=>{er||$(e.target.value)},onBlur:()=>{V.trim()&&ej(V.trim())},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),e.stopPropagation(),V.trim()&&ej(V.trim()),ec.current?.blur(),el(),J(e=>e.map(e=>({...e,selected:!1}))))},readOnly:!m&&!ea||er,autoFocus:ea&&m,fontSize:eF,marginTop:eM,width:eD,cursor:m?"text":et,lineHeight:1.3})})]})})}),G=(0,m.default)(z)},276194,425977,699854,e=>{"use strict";var t=e.i(966078);e.i(700930);var r=e.i(170758);let n=()=>{let{getNodes:e,getViewport:n,setViewport:i,getZoom:o}=(0,r.useCanvasEngine)(),[a,l]=(0,t.useState)(.05),s=(0,t.useCallback)(()=>{let t=e();if(0===t.length)return l(.05),{minZoom:.05,maxZoom:4,optimalMinZoom:.05};let r=1/0,n=1/0,i=-1/0,o=-1/0;t.forEach(e=>{let t=e.measured?.width||e.width||200,a=e.measured?.height||e.height||100;r=Math.min(r,e.position.x),n=Math.min(n,e.position.y),i=Math.max(i,e.position.x+t),o=Math.max(o,e.position.y+a)});let a=window.innerWidth,s=window.innerHeight,d=Math.min(a/(i-r+800),s/(o-n+800)),u=Math.max(.02,Math.min(.6*d,.5));return l(u),{minZoom:u,maxZoom:4,optimalMinZoom:u,zoomToFitAll:d}},[e]),d=(0,t.useCallback)(()=>{if(0===e().length)return;let{zoomToFitAll:t,optimalMinZoom:r}=s(),i=n();t&&i.zoom>2*t||i.zoom<r&&console.debug("Consider zooming in to see content better. Optimal zoom:",r)},[e,n,s]),u=(0,t.useCallback)(()=>{let t=e();if(0===t.length)return;let r=1/0,n=1/0,o=-1/0,a=-1/0;t.forEach(e=>{let t=e.measured?.width||e.width||200,i=e.measured?.height||e.height||100;r=Math.min(r,e.position.x),n=Math.min(n,e.position.y),o=Math.max(o,e.position.x+t),a=Math.max(a,e.position.y+i)});let l=(r+o)/2,s=(n+a)/2,d=o-r+800,u=a-n+800,c=window.innerWidth,h=window.innerHeight,p=Math.min(c/d,h/u,1);i({x:-l*p+c/2,y:-s*p+h/2,zoom:p},{duration:500})},[e,i]);(0,t.useEffect)(()=>{s()},[s]);let c=(0,t.useCallback)(()=>{let e=o(),{minZoom:t,maxZoom:r}=s();e<t?i({...n(),zoom:t}):e>r&&i({...n(),zoom:r})},[o,n,i,s]);return{calculateOptimalZoomLimits:s,ensureContentVisible:d,fitViewToAllContent:u,enforceZoomLimits:c,dynamicMinZoom:a}};e.s(["default",0,n,"useDynamicZoom",0,n],276194);var i=e.i(527537);let o=(e,t)=>"function"==typeof e?e(t):e,a=(0,i.create)(e=>({overlayOpen:!1,setOverlayOpen:t=>e(e=>({overlayOpen:o(t,e.overlayOpen)})),isProductDocumentOverlayOpen:!1,setIsProductDocumentOverlayOpen:t=>e(e=>({isProductDocumentOverlayOpen:o(t,e.isProductDocumentOverlayOpen)})),newBlueprintDialog:!1,setNewBlueprintDialog:t=>e(e=>({newBlueprintDialog:o(t,e.newBlueprintDialog)})),openNewBlueprintModal:!1,setOpenNewBlueprintModal:t=>e(e=>({openNewBlueprintModal:o(t,e.openNewBlueprintModal)})),showCanvasAllToolsSelectionOverlay:!1,setShowCanvasAllToolsSelectionOverlay:t=>e(e=>({showCanvasAllToolsSelectionOverlay:o(t,e.showCanvasAllToolsSelectionOverlay)}))}));e.s(["useWhiteboardOverlayStore",0,a],425977);var l=e.i(926249),s=e.i(591583),d=e.i(874186);let u=s.gql` 14 mutation AnswerWhiteboardAIQuestion( 15 $projectUid: String! 16 $questionId: String! 17 $answer: String! 18 ) { 19 answerWhiteboardAIQuestion( 20 projectUid: $projectUid 21 questionId: $questionId 22 answer: $answer 23 ) { 24 status 25 } 26 } 27`;e.s(["useWhiteboardMutations",0,function(){let[e]=(0,l.useMutation)(d.UpdateWhiteboardAttributesDocument),[t]=(0,l.useMutation)(d.UpdateMultipleWhiteboardElementAttributesDocument),[r]=(0,l.useMutation)(d.CreateBlueprintFromTemplateDocument),[n]=(0,l.useMutation)(d.DuplicateWhiteboardElementsDocument),[i]=(0,l.useMutation)(d.CutPasteWhiteboardElementsDocument),[o]=(0,l.useMutation)(d.AddWhiteboardElementDocument),[a]=(0,l.useMutation)(d.AddWhiteboardLinkToWhiteboardDocument),[s]=(0,l.useMutation)(d.SaveSharedBoardLinkToWhiteboardDocument),[c]=(0,l.useMutation)(d.AddDefaultKanbanGroupDocument),[h]=(0,l.useMutation)(d.AddWallAdjacentInGroupDocument),[p]=(0,l.useMutation)(d.UpdateWhiteboardElementLocationDocument,{fetchPolicy:"no-cache",ignoreResults:!0}),[m]=(0,l.useMutation)(d.UpdateWhiteboardElementAttributesDocument),[g]=(0,l.useMutation)(d.BulkUpdateWhiteboardElementAttributesDocument),[f]=(0,l.useMutation)(d.UpdateMultipleWhiteboardElementLocationsDocument),[b]=(0,l.useMutation)(d.DeleteWhiteboardElementsDocument),[x]=(0,l.useMutation)(d.ToggleFavoriteBlueprintDocument),[y]=(0,l.useMutation)(d.UpdateProjectDocumentDocument),[w]=(0,l.useMutation)(d.UpdateBlueprintBasicInfoDocument),[E]=(0,l.useMutation)(d.UpdateProjectNoteDocument),[C]=(0,l.useMutation)(d.UpdateProjectNoteLabelsDocument),[T]=(0,l.useMutation)(d.UpdateWhiteboardElementLabelsDocument),[S]=(0,l.useMutation)(d.UpdateProjectTicketDocument),[A]=(0,l.useMutation)(d.UpdateProjectHtmlPageDocument),[_]=(0,l.useMutation)(d.UpdateProjectSlideDeckDocument),[v]=(0,l.useMutation)(d.ReorderProjectSlideDeckSlidesDocument),[k]=(0,l.useMutation)(d.UpdateWhiteboardElementContentDocument),[F]=(0,l.useMutation)(d.UpdateMultipleWhiteboardElementContentDocument),[D]=(0,l.useMutation)(d.MakeAiAlignWhiteboardElementsDocument),[M]=(0,l.useMutation)(d.EditWhiteboardWithAiDocument),[I]=(0,l.useMutation)(d.UpdateWhiteboardElementParentDataDocument),[U]=(0,l.useMutation)(d.UpdateMultipleWhiteboardElementParentDataDocument),[L]=(0,l.useMutation)(d.RemoveMultipleWhiteboardElementsFromParentDocument),[B]=(0,l.useMutation)(d.ConvertUrlToMetadataJsonStringDocument),[W]=(0,l.useMutation)(d.CreateWhiteboardEdgeDocument),[P]=(0,l.useMutation)(d.UpdateWhiteboardEdgeAttributeDocument),[j]=(0,l.useMutation)(d.UpdateWhiteboardEdgeConnectionDocument),[R]=(0,l.useMutation)(d.GenerateWhiteboardAiImageDocument),[N]=(0,l.useMutation)(d.CancelWhiteboardAiGenerationDocument),[O]=(0,l.useMutation)(u),[H]=(0,l.useMutation)(d.AcceptWhiteboardStagedElementsDocument),[z]=(0,l.useMutation)(d.RejectWhiteboardStagedElementsDocument),[G]=(0,l.useMutation)(d.AcceptWhiteboardStagedElementDocument),[V]=(0,l.useMutation)(d.RejectWhiteboardStagedElementDocument),[$]=(0,l.useMutation)(d.CreateUserLabelPresetDocument),[J]=(0,l.useMutation)(d.UpdateUserLabelPresetsDocument),[K]=(0,l.useMutation)(d.DeleteUserLabelPresetDocument),[Y]=(0,l.useMutation)(d.SetUserLabelPresetGroupsDocument),[q]=(0,l.useMutation)(d.GenerateMediaUploadUrlDocument),[X]=(0,l.useMutation)(d.GenerateThumbnailUploadUrlDocument),[Q]=(0,l.useMutation)(d.MoveMultipleElementsToNewWhiteboardDocument),[Z]=(0,l.useMutation)(d.GroupWhiteboardElementsDocument),[ee]=(0,l.useMutation)(d.UnGroupWhiteboardElementsDocument),[et]=(0,l.useMutation)(d.CreateNativeWhiteboardGroupDocument),[er]=(0,l.useMutation)(d.DeleteNativeWhiteboardGroupDocument),[en]=(0,l.useMutation)(d.AddElementsToNativeWhiteboardGroupDocument),[ei]=(0,l.useMutation)(d.RemoveElementsFromNativeWhiteboardGroupDocument),[eo]=(0,l.useMutation)(d.CreateNativeWhiteboardFrameDocument),[ea]=(0,l.useMutation)(d.DeleteNativeWhiteboardFrameDocument),[el]=(0,l.useMutation)(d.AddElementsToNativeWhiteboardFrameDocument),[es]=(0,l.useMutation)(d.RemoveElementsFromNativeWhiteboardFrameDocument),[ed]=(0,l.useMutation)(d.UpdateNativeWhiteboardFrameAttributesDocument);return{addWhiteboardLinkToWhiteboardMutation:a,saveSharedBoardLinkToWhiteboardMutation:s,updateWhiteboardAttributesMutation:e,updateMultipleWhiteboardElementAttributesMutation:t,createBlueprintFromTemplateMutation:r,duplicateWhiteboardElementsMutation:n,cutPasteWhiteboardElementsMutation:i,addWhiteboardElementMutation:o,addDefaultKanbanGroupMutation:c,addWallAdjacentInGroupMutation:h,updateWhiteboardElementLocationMutation:p,updateWhiteboardElementAttributesMutation:m,bulkUpdateWhiteboardElementAttributesMutation:g,updateMultipleWhiteboardElementLocationsMutation:f,deleteWhiteboardElementsMutation:b,toggleFavoriteBlueprintMutation:x,updateProjectDocumentMutation:y,updateBlueprintBasicInfoMutation:w,updateProjectNoteMutation:E,updateProjectNoteLabelsMutation:C,updateWhiteboardElementLabelsMutation:T,updateProjectTicketMutation:S,updateProjectHtmlPageMutation:A,updateProjectSlideDeckMutation:_,reorderProjectSlideDeckSlidesMutation:v,updateWhiteboardElementContentMutation:k,updateMultipleWhiteboardElementContentMutation:F,makeAiAlignWhiteboardElementsMutation:D,editWhiteboardWithAIMutation:M,updateWhiteboardElementParentDataMutation:I,updateMultipleWhiteboardElementParentDataMutation:U,removeMultipleWhiteboardElementsFromParentMutation:L,convertUrlToMetadataJsonStringMutation:B,createWhiteboardEdgeMutation:W,updateWhiteboardEdgeAttributeMutation:P,updateWhiteboardEdgeConnectionMutation:j,generateWhiteboardAiImageMutation:R,cancelWhiteboardAiGenerationMutation:N,answerWhiteboardAIQuestionMutation:O,createUserLabelPresetMutation:$,updateUserLabelPresetsMutation:J,deleteUserLabelPresetMutation:K,setUserLabelPresetGroupsMutation:Y,generateMediaUploadUrlMutation:q,generateThumbnailUploadUrlMutation:X,moveMultipleElementsToNewWhiteboardMutation:Q,groupWhiteboardElementsMutation:Z,unGroupWhiteboardElementsMutation:ee,createNativeGroupMutation:et,deleteNativeGroupMutation:er,addElementsToNativeGroupMutation:en,removeElementsFromNativeGroupMutation:ei,createNativeFrameMutation:eo,deleteNativeFrameMutation:ea,addElementsToNativeFrameMutation:el,removeElementsFromNativeFrameMutation:es,updateNativeFrameAttributesMutation:ed,acceptWhiteboardStagedElementsMutation:H,rejectWhiteboardStagedElementsMutation:z,acceptWhiteboardStagedElementMutation:G,rejectWhiteboardStagedElementMutation:V}}],699854)},855922,e=>{"use strict";var t=e.i(966078),r=e.i(578936);e.i(700930);var n=e.i(732934),i=e.i(170758),o=e.i(874186),a=e.i(175814),l=e.i(385050),s=e.i(533639),d=e.i(15049
270);let u="whiteboard-staging-frame",c="whiteboardStagingFrame";e.s(["STAGING_FRAME_NODE_TYPE",0,c,"useWhiteboardStaging",0,function({projectId:e,projectUid:h,whiteboardId:p,acceptWhiteboardStagedElementsMutation:m,rejectWhiteboardStagedElementsMutation:g,acceptWhiteboardStagedElementMutation:f,rejectWhiteboardStagedElementMutation:b,refetchWhiteboard:x,viewOnly:y}){let{setNodes:w,getNodes:E,setEdges:C,screenToFlowPosition:T,fitView:S}=(0,i.useCanvasEngine)(),A=(0,n.useNodesInitialized)(),_=(0,t.useRef)(new Map),[v]=(0,r.useLazyQuery)(o.WhiteboardStagedElementsDocument,{fetchPolicy:"no-cache"}),k=(0,t.useCallback)(()=>{a.useWhiteboardStagingStore.getState().setFrameless(!1),C(e=>e.filter(e=>!e.data?.isStaged)),w(e=>e.filter(e=>!e.data?.isStaged).map(e=>e.hidden?{...e,hidden:!1}:e))},[w,C]),F=(0,t.useCallback)((e,t=[])=>{let r;if(0===e.length)return void k();let n=e.map(e=>{try{let t=JSON.parse(e.element.elementLocation),r=JSON.parse(e.element.elementAttributes);return{staged:e,x:t?.x??0,y:t?.y??0,width:r?.width??0,height:r?.height??0}}catch(t){return console.warn("useWhiteboardStaging: skipping staged element with malformed location/attributes:",e.element?.uid,t),null}}).filter(e=>null!==e);if(0===n.length)return void k();let i=new Map,o=new Map;for(let e of n){if(!e.staged.isPatch)continue;let t=(e.staged.replacesElementUids||[])[0];if(!t){console.warn("useWhiteboardStaging: patch row missing target uid",e.staged.element?.uid);continue}let r={};try{r=JSON.parse(e.staged.element.contentJsonString||"{}")}catch(e){console.warn("useWhiteboardStaging: malformed patch content for",t,e),r={}}r&&"object"==typeof r&&Object.keys(r).length&&i.set(t,{...i.get(t)||{},...r});let n={};try{n=JSON.parse(e.staged.element.elementAttributes||"{}")}catch(e){console.warn("useWhiteboardStaging: malformed patch attributes for",t,e),n={}}n&&"object"==typeof n&&Object.keys(n).length&&o.set(t,{...o.get(t)||{},...n})}let h=i.size>0||o.size>0,p=n.filter(e=>!e.staged.isPatch),m=new Set(E().filter(e=>!e.data?.isStaged).map(e=>e.id)),g=new Set(p.map(e=>e.staged.element.uid)),f=new Map,b=new Map,x=[];for(let e of p){let t=e.staged.element.parentUid,r=(e.staged.replacesElementUids||[])[0];if(t&&!g.has(t)&&m.has(t)){let n=r?b:f,i=n.get(t);i?i.push(e.staged):n.set(t,[e.staged])}else x.push(e)}let y=f.size>0,S=b.size>0,A=h||y||S;if(A){let e=E(),t=t=>{let r=`children:${t}`;if(_.current.has(r))return;let n=e.find(e=>e.id===t),i=n?.data?.element?.elements;_.current.set(r,{kind:"wall-children",content:Array.isArray(i)?i.slice():[]})};for(let r of Array.from(new Set([...Array.from(i.keys()),...Array.from(o.keys())]))){let n=e.find(e=>e.id===r&&!e.data?.isStaged);if(n){_.current.has(r)||_.current.set(r,{kind:"top",content:{...n.data?.element||{}},attributes:{...n.data?.attributes||{}}});continue}let i=e.find(e=>{let t=e.data?.element?.elements;return Array.isArray(t)&&t.some(e=>e?.uid===r)});i&&t(i.id)}for(let e of Array.from(f.keys()))t(e);for(let e of Array.from(b.keys()))t(e)}let v=e=>{if(!A)return e;let t=e,r=i.get(t.id),n=o.get(t.id);if(r||n){let e={...t.data};r&&(e.element={...e.element||{},...r}),n&&(e.attributes={...e.attributes||{},...n}),t={...t,data:e}}let a=f.get(t.id),l=b.get(t.id),s=new Map;if(l)for(let e of l){let t=(e.replacesElementUids||[])[0];t&&s.set(t,e)}let d=_.current.get(`children:${t.id}`),u=d&&"wall-children"===d.kind&&Array.isArray(d.content)?d.content:t.data?.element?.elements;if(Array.isArray(u)&&u.some(e=>e?.uid&&(i.has(e.uid)||o.has(e.uid)))||a&&a.length||s.size){let e=Array.isArray(u)?u.map(e=>{if(!e?.uid)return e;let t=s.get(e.uid);if(t)return{...t.element,contentJsonString:JSON.stringify(t.element.content??{})};let r=i.get(e.uid),n=o.get(e.uid);if(!r&&!n)return e;let a=e;if(r&&(a={...a,content:{...a.content||{},...r}}),n){let e={};try{e=JSON.parse(a.elementAttributes||"{}")}catch{e={}}a={...a,elementAttributes:JSON.stringify({...e,...n})}}return a}):[];a&&a.length&&(e=[...e,...a.slice().sort((e,t)=>(e.element.parentOrderIndex??0)-(t.element.parentOrderIndex??0)).map(e=>({...e.element,contentJsonString:JSON.stringify(e.element.content??{})}))]),t={...t,data:{...t.data,element:{...t.data?.element||{},elements:e}}}}return t},F=new Set(x.map(e=>e.staged.element.uid)),D=new Map,M=[];for(let e of x){let t=e.staged.element.parentUid;if(t&&F.has(t)){let r=D.get(t);r?r.push(e):D.set(t,[e])}else M.push(e)}let I=new Set(x.flatMap(e=>e.staged.replacesElementUids||[]));if(0===x.length){a.useWhiteboardStagingStore.getState().setFrameless(!0),w(e=>e.filter(e=>!e.data?.isStaged).map(e=>v(e.hidden?{...e,hidden:!1}:e)));return}a.useWhiteboardStagingStore.getState().setFrameless(!1);let U=Math.min(...M.map(e=>e.x)),L=Math.min(...M.map(e=>e.y)),B=Math.max(...M.map(e=>e.x+e.width)),W=Math.max(...M.map(e=>e.y+e.height)),P=Math.max(B-U,1)+60,j=Math.max(W-L,1)+60,R=I.size>0,N=E().find(e=>e.id===u),O=l.useWhiteboardSelectionStore.getState().agentSkillPlacementPendingPosition;if(N)r=N.position;else if(R)r={x:U,y:L};else if(O)r={x:O.x,y:O.y};else if(0===U&&0===L){let e=T({x:window.innerWidth/2,y:window.innerHeight/2});r={x:e.x-P/2,y:e.y-j/2}}else r={x:U,y:L};let H={id:u,type:c,position:r,data:{isStaged:!0},draggable:!0,selectable:!1,style:{width:P,height:j,zIndex:5001}},z=M.map(e=>{let t=(0,s.convertWhiteboardElementToWhiteboardNodeData)(e.staged.element),r=D.get(e.staged.element.uid);if(r&&r.length>0&&t.element){let e=r.slice().sort((e,t)=>
27(e.staged.element.parentOrderIndex??0)-(t.staged.element.parentOrderIndex??0)).map(e=>({...e.staged.element,contentJsonString:JSON.stringify(e.staged.element.content??{})}));t.element={...t.element,elements:e}}return{id:e.staged.element.uid,type:e.staged.element.elementType,parentId:u,position:{x:e.x-U+30,y:e.y-L+30},data:{...t,isStaged:!0},draggable:!1,selectable:!1,style:{zIndex:5e3}}});w(e=>[...e.filter(e=>!e.data?.isStaged).map(e=>{let t=I.has(e.id);return v(!!e.hidden===t?e:{...e,hidden:t})}),H,...z]);let G=new Set(z.map(e=>e.id)),V=t.filter(e=>G.has(e.source)&&G.has(e.target)).map(e=>{let t={};try{t=JSON.parse(e.styleJsonString||"{}")}catch{t={}}return(0,d.getUpdatedEdgeWithStyles)({id:e.uid,type:e.edgeType,source:e.source,sourceHandle:e.sourceHandle,target:e.target,targetHandle:e.targetHandle,data:{points:[],isStaged:!0},style:t},{strokeWidth:e.strokeWidth&&e.strokeWidth>0?e.strokeWidth:void 0,strokeColor:e.strokeColor||void 0,isDashed:!!e.isDashed,hasEndArrowHead:!!e.hasEndArrowHead,hasStartArrowHead:!!e.hasStartArrowHead,edgeType:e.edgeType})});C(e=>[...e.filter(e=>!e.data?.isStaged),...V])},[w,C,k,T,E]),D=(0,t.useCallback)(()=>{let e=_.current;0!==e.size&&(w(t=>t.map(t=>{let r=e.get(t.id);if(r&&"top"===r.kind)return{...t,data:{...t.data,element:r.content,attributes:r.attributes}};let n=e.get(`children:${t.id}`);return n&&"wall-children"===n.kind?{...t,data:{...t.data,element:{...t.data?.element,elements:n.content}}}:t})),_.current=new Map)},[w]);(0,t.useEffect)(()=>{if(!A)return;let e=E(),t=e.find(e=>e.id===u);if(!t)return;let r=e.filter(e=>e.parentId===u);if(0===r.length)return;let n=0,i=0;for(let e of r){let t=e.measured?.width??0,r=e.measured?.height??0;n=Math.max(n,e.position.x+t),i=Math.max(i,e.position.y+r)}if(0===n||0===i)return;let o=n+30,a=i+30,l=Number(t.style?.width)||0,s=Number(t.style?.height)||0;1>Math.abs(l-o)&&1>Math.abs(s-a)||w(e=>e.map(e=>e.id===u?{...e,style:{...e.style,width:o,height:a}}:e))},[A,E,w]);let M=(0,t.useCallback)(async()=>{if(!e||!p||y)return;let{data:t}=await v({variables:{projectId:e,whiteboardId:p}}),r=t?.whiteboardStagedElements,n=a.useWhiteboardStagingStore.getState();if(r?.batchId&&r.stagedElements.length>0){if(n.batchId===r.batchId&&n.isReady&&!r.isComplete)return;let e=(r.stagedEdges??[]).filter(e=>e&&e.source&&e.target);n.setStagedBatch(r.batchId,r.stagedElements,r.isComplete,e),F(r.stagedElements,e)}else n.clearStagedBatch(),k(),D()},[e,p,y,v,F,k,D]),I=(0,t.useCallback)(async()=>{let t=a.useWhiteboardStagingStore.getState(),{batchId:r,stagedElements:n}=t;if(!r||!e||!h||!t.isReady||t.isResolving||t.resolvingElementUids.length>0)return;let i=E(),o=i.find(e=>e.id===u),l=o?.position??{x:0,y:0},s=n.filter(e=>!e.isPatch).map(e=>{let t=i.find(t=>t.id===e.element.uid),r=t?.position??{x:0,y:0};return{uid:e.element.uid,elementLocation:JSON.stringify({x:l.x+r.x,y:l.y+r.y})}});t.setIsResolving(!0);try{await m({variables:{projectId:e,projectUid:h,batchId:r,finalLocations:s}}),k(),_.current=new Map,t.clearStagedBatch(),await x()}catch(e){throw t.setIsResolving(!1),e}},[e,h,E,m,k,x]),U=(0,t.useCallback)(async()=>{let t=a.useWhiteboardStagingStore.getState(),{batchId:r}=t;if(r&&e&&h&&t.isReady&&!t.isResolving&&!(t.resolvingElementUids.length>0)){t.setIsResolving(!0);try{await g({variables:{projectId:e,projectUid:h,batchId:r}}),k(),D(),t.clearStagedBatch(),await x()}catch(e){throw t.setIsResolving(!1),e}}},[e,h,g,k,D,x]),L=(0,t.useCallback)(e=>{let t=E();if(t.find(t=>t.id===e))return void S({nodes:[{id:e}],padding:.3,maxZoom:1,duration:600});let r=t.find(t=>{let r=t.data?.element?.elements;return Array.isArray(r)&&r.some(t=>t?.uid===e)});r&&S({nodes:[{id:r.id}],padding:.3,maxZoom:1,duration:600})},[E,S]),B=(0,t.useCallback)(e=>{if(a.useWhiteboardStagingStore.getState().setFocusedEditUid(e),!e)return;let t=a.useWhiteboardStagingStore.getState().stagedElements.find(t=>t.element.uid===e);if(!t)return;let r=t.isPatch?(t.replacesElementUids||[])[0]:t.element.uid;r&&L(r)},[L]),W=e=>{let t=a.useWhiteboardStagingStore.getState().stagedElements,r=t.findIndex(t=>t.element.uid===e),n=t.filter(t=>t.element.uid!==e);return 0===n.length?null:n[Math.min(r<0?0:r,n.length-1)].element.uid},P=(0,t.useCallback)(async t=>{let r=a.useWhiteboardStagingStore.getState(),{batchId:n}=r;if(!n||!e||!h||!r.isReady||r.isResolving||r.resolvingElementUids.includes(t))return;let i=W(t);r.setElementResolving(t,!0);try{await f({variables:{projectId:e,projectUid:h,batchId:n,stagedElementUid:t}}),D(),a.useWhiteboardStagingStore.getState().removeStagedElement(t),await x(),a.useWhiteboardStagingStore.getState().batchId?(await M(),B(i)):B(null)}catch(e){a.useWhiteboardStagingStore.getState().setElementResolving(t,!1),console.error("useWhiteboardStaging: per-element accept failed",e)}},[e,h,f,D,x,M,B]),j=(0,t.useCallback)(async t=>{let r=a.useWhiteboardStagingStore.getState(),{batchId:n}=r;if(!n||!e||!h||!r.isReady||r.isResolving||r.resolvingElementUids.includes(t))return;let i=W(t);r.setElementResolving(t,!0);try{await b({variables:{projectId:e,projectUid:h,batchId:n,stagedElementUid:t}}),D(),a.useWhiteboardStagingStore.getState().removeStagedElement(t),a.useWhiteboardStagingStore.getState().batchId?(await M(),B(i)):B(null)}catch(e){a.useWhiteboardStagingStore.getState().setElementResolving(t,!1),console.error("useWhiteboardStaging: per-element reject failed",e)}},[e,h,b,D,M,B]),R=(0,t.useCallback)(()=>{let e=E();if(e.some(e=>e.id===u))return void S({nodes:[{id:u}],padding:.2,maxZoom:1,duration:600});let t=a.useWhiteboardStagingStore.getState().stagedElements,r=[...t.filter(e=>e.isPatch).map(e=>(e.replacesElementUids||[])[0]),...t.filter(e=>!e.isPatch).map(e=>
27e.element.parentUid)].filter(Boolean),n=new Set;for(let t of r){if(e.find(e=>e.id===t)){n.add(t);continue}let r=e.find(e=>{let r=e.data?.element?.elements;return Array.isArray(r)&&r.some(e=>e?.uid===t)});r&&n.add(r.id)}n.size&&S({nodes:Array.from(n).map(e=>({id:e})),padding:.3,maxZoom:1,duration:600})},[E,S]),N=(0,t.useRef)({lastRun:0,timer:null});(0,t.useEffect)(()=>()=>{N.current.timer&&clearTimeout(N.current.timer)},[]);let O=(0,t.useCallback)(()=>{let e=N.current,t=Date.now(),r=t-e.lastRun;if(r>=1e3){e.lastRun=t,M();return}e.timer&&clearTimeout(e.timer),e.timer=setTimeout(()=>{e.lastRun=Date.now(),e.timer=null,M()},1e3-r)},[M]),H=(0,t.useCallback)((e,t)=>{k(),D(),a.useWhiteboardStagingStore.getState().clearStagedBatch(),l.useWhiteboardSelectionStore.getState().setAgentSkillPlacementPendingPosition(null),x()},[k,D,x]);return(0,t.useEffect)(()=>(a.useWhiteboardStagingStore.getState().setHandlers({onReady:O,onResolved:H,acceptBatch:()=>void I(),rejectBatch:()=>void U(),focusBatch:R,acceptElement:e=>void P(e),rejectElement:e=>void j(e),focusElement:e=>B(e)}),()=>a.useWhiteboardStagingStore.getState().setHandlers(null)),[O,H,I,U,R,P,j,B]),(0,t.useEffect)(()=>{p&&!y&&M()},[p,y]),{fetchAndShowStagedBatch:M,acceptBatch:I,rejectBatch:U}}])},581605,699791,29432,678452,839642,881117,733480,355427,801696,310950,661087,911881,796465,661270,818047,219464,579834,548694,e=>{"use strict";var t=e.i(966078);e.i(700930);var r=e.i(170758),n=e.i(369216),i=e.i(533639),o=e.i(150490),a=e.i(121356);let l=e=>!!e.data?.isTemplatePreview,s=e=>{let t=e.filter(e=>!l(e)),r=new Set(t.map(e=>e.id));return t.filter(e=>e.type!==a.REACT_FLOW_DROP_WALL_GAP_TYPE&&e.type!==a.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||!!e.parentId&&r.has(e.parentId))};e.s(["useWhiteboardTemplatePreview",0,function(){let{setNodes:e,setEdges:a,fitView:d,fitBounds:u,getNodes:c}=(0,r.useCanvasEngine)(),h=(0,n.useWhiteboardTemplatePreviewStore)(e=>e.previewToken),p=(0,t.useRef)(null),m=(0,t.useCallback)(()=>{null!==p.current&&(cancelAnimationFrame(p.current),p.current=null),e(e=>s(e)),a(e=>e.filter(e=>!l(e)))},[e,a]),g=(0,t.useCallback)((t,r)=>{let n=t.map(e=>{let t={x:0,y:0},r={};try{t=JSON.parse(e.element.elementLocation)}catch{t={x:0,y:0}}try{r=JSON.parse(e.element.elementAttributes)}catch{r={}}return{staged:e,x:t.x??0,y:t.y??0,width:r.width??0,height:r.height??0}}),h=new Set(n.map(e=>e.staged.element.uid)),g=new Map,f=[];for(let e of n){let t=e.staged.element.parentUid;if(t&&h.has(t)){let r=g.get(t);r?r.push(e):g.set(t,[e])}else f.push(e)}if(0===f.length)return void m();let b=f.map(e=>{let t=(0,i.convertWhiteboardElementToWhiteboardNodeData)(e.staged.element),r=g.get(e.staged.element.uid);if(r&&r.length>0&&t.element){let e=r.slice().sort((e,t)=>(e.staged.element.parentOrderIndex??0)-(t.staged.element.parentOrderIndex??0)).map(e=>({...e.staged.element,contentJsonString:JSON.stringify(e.staged.element.content??{})}));t.element={...t.element,elements:e}}return{id:e.staged.element.uid,type:e.staged.element.elementType,position:{x:e.x,y:e.y},data:{...t,isTemplatePreview:!0},draggable:!1,selectable:!1,style:{zIndex:5e3}}});e(e=>[...s(e),...b]);let x=new Set(b.map(e=>e.id)),y=r.filter(e=>x.has(e.source)&&x.has(e.target)).map(e=>{let t={};try{t=JSON.parse(e.styleJsonString||"{}")}catch{t={}}return(0,o.getUpdatedEdgeWithStyles)({id:e.uid,type:e.edgeType,source:e.source,sourceHandle:e.sourceHandle,target:e.target,targetHandle:e.targetHandle,data:{points:[],isTemplatePreview:!0},style:t},{strokeWidth:e.strokeWidth&&e.strokeWidth>0?e.strokeWidth:void 0,strokeColor:e.strokeColor||void 0,isDashed:!!e.isDashed,hasEndArrowHead:!!e.hasEndArrowHead,hasStartArrowHead:!!e.hasStartArrowHead,edgeType:e.edgeType})});a(e=>[...e.filter(e=>!l(e)),...y]),null!==p.current&&cancelAnimationFrame(p.current);let w=b.map(e=>e.id),E=new Set(w),C=0,T=0,S="",A=e=>{0===C&&(C=e);let t=e-C,r=0,n=1/0,i=1/0,o=-1/0,a=-1/0;for(let e of c()){if(!E.has(e.id))continue;let t=e.measured?.width??e.width,l=e.measured?.height??e.height;if(!t||!l)continue;r+=1;let s=e.position?.x??0,d=e.position?.y??0;s<n&&(n=s),d<i&&(i=d),s+t>o&&(o=s+t),d+l>a&&(a=d+l)}let l=r>=w.length,s=l?`${Math.round(n)}:${Math.round(i)}:${Math.round(o)}:${Math.round(a)}`:"";if(l&&""!==s&&s===S?T+=1:(T=0,S=s),l&&t>=400&&T>=3||t>=2500){p.current=null,n!==1/0&&o>n&&a>i?u({x:n,y:i,width:o-n,height:a-i},{padding:.18,duration:500,interpolate:"linear"}):d({nodes:w.map(e=>({id:e})),padding:.18,duration:500});return}p.current=requestAnimationFrame(A)};p.current=requestAnimationFrame(A)},[e,a,d,u,c,m]);(0,t.useEffect)(()=>{let{elements:e,edges:t}=n.useWhiteboardTemplatePreviewStore.getState();e.length>0?g(e,t):m()},[h]),(0,t.useEffect)(()=>()=>{null!==p.current&&cancelAnimationFrame(p.current)},[])}],581605);var d=e.i(368769),u=e.i(385050),c=e.i(394323),h=e.i(794095);e.i(971829);var p=e.i(845514),m=e.i(259704);
27async function g(){let e=(0,p.getAuth)(m.default).currentUser;if(!e)return null;try{return await e.getIdToken()}catch{return null}}async function f(e){try{let t=await g();if(!t)return{ok:!1,errorMessage:"Not signed in to Firebase (please refresh the page)"};let r=await fetch("/api/whiteboard-export/enqueue",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({projectSlug:e.projectSlug,whiteboardUid:e.whiteboardUid,format:e.format,width:e.width,height:e.height,theme:e.theme,quality:e.quality,predictedScale:e.predictedScale,filename:e.filename,...e.region?{region:e.region}:{},firebaseIdToken:t,originPath:window.location.pathname+window.location.search})});if(!r.ok){let e=await r.json().catch(()=>null);return{ok:!1,status:r.status,errorCode:e?.error?.code,errorMessage:`Server export failed to start (${r.status})`}}let{jobId:n}=await r.json();if(!n)return{ok:!1,errorMessage:"Server returned no job id"};let i=Date.now(),o=0;for(;Date.now()-i<27e5;){let t,r=Date.now()-i>6e4?5e3:2e3;await function(e){return new Promise(t=>setTimeout(t,e))}(r);let a=await g();if(!a)return{ok:!1,errorMessage:"Signed out during export"};try{t=await fetch(`/api/whiteboard-export/status?jobId=${n}`,{credentials:"include",headers:{Authorization:`Bearer ${a}`}})}catch{if(++o>5)return{ok:!1,errorMessage:"Lost connection during export"};continue}if(404===t.status){if(Date.now()-i>3e4)return{ok:!1,status:404,errorMessage:"Export job disappeared"};continue}if(!t.ok){if(++o>5)return{ok:!1,status:t.status,errorMessage:`Export status failed (${t.status})`};continue}o=0;let l=await t.json().catch(()=>null);if(l){if("failed"===l.status)return{ok:!1,errorCode:l.error,errorMessage:`Export failed (${l.error??"unknown"})`};if("done"===l.status){if(!l.downloadUrl)return{ok:!1,errorMessage:"Export finished without a file"};return e.onProgress?.("done"),!function(e){let t=document.createElement("a");t.href=e,t.rel="noopener",document.body.appendChild(t),t.click(),document.body.removeChild(t)}(l.downloadUrl),{ok:!0,status:200,jobId:n,...l.bytes?{bytes:l.bytes}:{}}}e.onProgress?.(l.stage??l.status,l.queuePosition)}}return{ok:!1,errorCode:"timeout",errorMessage:"Export timed out"}}catch(e){return{ok:!1,errorMessage:e instanceof Error?e.message:String(e)}}}var b=e.i(319152),x=e.i(874186),y=e.i(143089);let w=e=>Math.max(80,Math.min(600,Math.round(e))),E=(e,t)=>{let r=e[t];return void 0===r?168:w(r)};function C(e){return"string"==typeof e&&/^[A-Za-z]{3}$/.test(e)?e.toUpperCase():"USD"}function T(e,t){let r=C(t);try{return e.toLocaleString(void 0,{style:"currency",currency:r})}catch{return e.toLocaleString(void 0,{style:"currency",currency:"USD"})}}e.s(["TABLE_BODY_ROW_HEIGHT_PX",0,36,"TABLE_COLUMN_WIDTH_PX",0,168,"TABLE_CORNER_RADIUS_PX",0,16,"TABLE_FOOTER_ROW_HEIGHT_PX",0,36,"TABLE_HEADER_ROW_HEIGHT_PX",0,36,"TABLE_LABEL_BORDER_RADIUS_PX",0,12,"TABLE_LABEL_GAP_PX",0,12,"TABLE_MIN_BODY_ROWS",0,1,"TABLE_MIN_COLUMNS",0,1,"TABLE_ROW_LABEL_WIDTH_PX",0,40,"clampColumnWidth",0,w,"getColumnLeftOffset",0,(e,t)=>{let r=0;for(let n=0;n<t;n++)r+=E(e,n);return r},"getColumnWidth",0,E,"getColumnsTotalWidth",0,(e,t)=>{let r=Math.max(1,t),n=0;for(let t=0;t<r;t++)n+=E(e,t);return n},"getTableElementHeight",0,(e,t)=>36*Math.max(1,e)+36+36+88*("string"==typeof t?.title)+68*("string"==typeof t?.description),"getTableElementWidth",0,e=>168*Math.max(1,e),"resizeTableRows",0,function(e,t,r){let n=Math.max(1,t),i=Math.max(1,r)+1,o=e.length>0?e:[[]],a=Math.max(1,...o.map(e=>e.length)),l=o.map(e=>{let t=[...e];for(;t.length<a;)t.push("");return t}),s=l[0]?.length||1;if(n>s?l=l.map((e,t)=>[...e,...Array.from({length:n-s},(e,r)=>0===t?`Column ${s+r+1}`:"")]):n<s&&(l=l.map(e=>e.slice(0,n))),l.length<i){let e=l[0]?.length||1;l=[...l,...Array.from({length:i-l.length},()=>Array.from({length:e},()=>""))]}else l.length>i&&(l=l.slice(0,i));return l}],699791),e.s(["DEFAULT_TABLE_CURRENCY",0,"USD","TABLE_CURRENCY_OPTIONS",0,[{code:"USD",label:"US dollar"},{code:"EUR",label:"Euro"},{code:"GBP",label:"British pound"},{code:"CAD",label:"Canadian dollar"},{code:"AUD",label:"Australian dollar"},{code:"CHF",label:"Swiss franc"},{code:"SEK",label:"Swedish krona"},{code:"NOK",label:"Norwegian krone"},{code:"DKK",label:"Danish krone"},{code:"JPY",label:"Japanese yen"},{code:"INR",label:"Indian rupee"},{code:"BRL",label:"Brazilian real"},{code:"ZAR",label:"South African rand"}],"currencySymbol",0,function(e){let t=C(e);try{return new Intl.NumberFormat(void 0,{style:"currency",currency:t,currencyDisplay:"narrowSymbol",minimumFractionDigits:0,maximumFractionDigits:0}).formatToParts(0).find(e=>"currency"===e.type)?.value??t}catch{return t}}
27,"formatCurrency",0,T,"resolveCurrencyCode",0,C],29432);var S=e.i(374282);let A=/^(?:(\d+):)?(\d{1,2}):(\d{1,2})$/,_=/^(?:(\d+)\s*h)?\s*(?:(\d+)\s*m)?\s*(?:(\d+)\s*s)?$/i,v=/^\d+(?:\.\d+)?$/;function k(e){let t=(e??"").trim();if(""===t)return null;let r=A.exec(t);if(r){let[,e,t,n]=r;return 3600*Number(e??0)+60*Number(t)+Number(n)}if(v.test(t))return Math.round(Number(t));let n=_.exec(t);if(n&&(n[1]||n[2]||n[3])){let[,e,t,r]=n;return 3600*Number(e??0)+60*Number(t??0)+Number(r??0)}return null}let F=e=>String(e).padStart(2,"0");function D(e){let t,r,n,i,o=k(e);return null===o?e:(r=Math.floor((t=Math.max(0,Math.round(o)))/3600),n=Math.floor(t%3600/60),i=t%60,r>0?`${r}:${F(n)}:${F(i)}`:`${n}:${F(i)}`)}e.s(["formatDuration",0,D,"parseDurationSeconds",0,k],678452);var M=e.i(38462);let I=[];function U(e){return`${e.firstName??""} ${e.lastName??""}`.trim()||e.email?.trim()||"Member"}function L(e){return{userId:e.id,name:U(e),profileImageUrl:e.profileImageUrl??""}}function B(e){return"object"==typeof e&&null!==e&&"number"==typeof e.userId&&"string"==typeof e.name}function W(e){if(!e)return[];try{let t=JSON.parse(e);if(!Array.isArray(t))return[];return t.filter(B).map(e=>({userId:e.userId,name:e.name,profileImageUrl:e.profileImageUrl??""}))}catch{return[]}}function P(e){return 0===e.length?"":JSON.stringify(e)}function j(e){let t=e.split(",").map(e=>e.trim()).filter(Boolean);if(0===t.length)return[];let r=M.useWhiteboardViewStore.getState().projectParticipants??I;if(0===r.length)return[];let n=new Map;for(let e of r){n.set(U(e).toLowerCase(),e);let t=e.email?.trim().toLowerCase();t&&n.set(t,e)}let i=[];for(let e of t){let t=n.get(e.toLowerCase());t&&(i.some(e=>e.userId===t.id)||i.push(L(t)))}return i}e.s(["NO_PARTICIPANTS",0,I,"matchPeopleFromText",0,j,"parseCellPeople",0,W,"participantDisplayName",0,U,"participantToTablePerson",0,L,"serializeCellPeople",0,P,"toggleCellPerson",0,function(e,t){return e.some(e=>e.userId===t.userId)?e.filter(e=>e.userId!==t.userId):[...e,t]}],839642);var R=e.i(594949);let N={todo:"To-do",inProgress:"In progress",complete:"Complete"},O=[{id:"not_started",label:"Not started",group:"todo",colorName:"Chicago"},{id:"blocked",label:"Blocked",group:"todo",colorName:"Copper Rust"},{id:"in_progress",label:"In progress",group:"inProgress",colorName:"Chambray"},{id:"in_review",label:"In review",group:"inProgress",colorName:"Pesto"},{id:"done",label:"Done",group:"complete",colorName:"Killarney"},{id:"archived",label:"Archived",group:"complete",colorName:"Tobacco Brown"}].map(({id:e,label:t,group:r,colorName:n})=>({id:e,label:t,group:r,colorHex:(0,R.getLabelPaletteHex)(n)??"#D9DEE1"})),H=["todo","inProgress","complete"].map(e=>({group:e,label:N[e],options:O.filter(t=>t.group===e)})),z=new Map(O.map(e=>[e.id,e]));function G(e){return e?z.get(e)??null:null}let V=new Map(O.map(e=>[e.label.toLowerCase(),e]));function $(e){let t=e.trim().toLowerCase();return""===t?null:V.get(t)??z.get(t.replace(/[\s-]+/g,"_"))??null}e.s(["TABLE_STATUS_GROUPS",0,H,"matchStatusFromText",0,$,"parseCellStatus",0,G,"serializeCellStatus",0,function(e){return e?.id??""}],881117);let J=[["Column 1","Column 2","Column 3"],["","",""],["","",""],["","",""],["","",""]],K=()=>`col_${(globalThis.crypto?.randomUUID?.()??Math.random().toString(36).slice(2)).slice(0,8)}`,Y="text",q={text:"Text",number:"Number",currency:"Currency",percent:"Percent",datetime:"Date & time",checkbox:"Checkbox",labels:"Labels",status:"Status",person:"Person",url:"URL",email:"Email",phone:"Phone",duration:"Duration",rating:"Rating",document:"Document"},X=e=>"labels"===e||"status"===e||"person"===e||"document"===e,Q=e=>{let t=e.trim();return""===t||/^Column \d+$/.test(t)},Z="Table";function ee(e,t,r){return e.cellTypes[`${t}-${r}`]??e.columnCellTypes[r]??Y}function et(e){if(!e.length)return J;let t=Math.max(1,...e.map(e=>e.length||0));return e.map(e=>{let r=[...e];for(;r.length<t;)r.push("");return r})}function er(e,t){return t<=e.length?e.slice(0,t):[...e,...Array.from({length:t-e.length},()=>K())]}function en(e){var t;let r,n,i=new Map(e.data.columns.map(e=>[e.id,e])),o=e.data.columnOrder.length?e.data.columnOrder:e.data.columns.map(e=>e.id),a=new Set,l=o.map((e,t)=>{let r=e||`col_${t+1}`,n=a.has(r)?`${r}__${t}`:r;return a.add(n),n}),s=o.map((e,t)=>{let r=i.get(e);return r?.name||`Column ${t+1}`}),d=new Map(e.data.rows.map(e=>[e.id,e])),u=e.data.rowOrder.length?e.data.rowOrder:e.data.rows.map(e=>e.id),c={},h={},p=u.map((e,t)=>{let r=d.get(e);return r?.styles&&o.forEach((e,n)=>{let i=r.styles?.[e]?.bg;i&&(c[`${t}-${n}`]=i)}),r?.cellTypes&&o.forEach((e,n)=>{let i=r.cellTypes?.[e];
27i&&(h[`${t}-${n}`]=i)}),o.map(e=>String(r?.values?.[e]??""))}),m={},g={},f={},b={},x={};o.forEach((e,t)=>{let r=i.get(e),n=r?.calculation;n&&(m[t]=n);let o=r?.cellType;o&&(g[t]=o);let a=r?.width;"number"==typeof a&&Number.isFinite(a)&&a>0&&(f[t]=w(a));let l=r?.icon;"string"==typeof l&&(b[t]=l);let s=r?.currency;"string"==typeof s&&""!==s&&(x[t]=s)});let y=(n=""===(r=((t=e.data).name??"").trim())||r===Z||"New Table"===r?null:t.name.trim(),void 0===t.title||null===t.title?n:""===t.title.trim()?n??t.title:t.title),E=void 0===e.data.description?null:e.data.description,C="string"==typeof e.data.icon?e.data.icon:void 0;return{rows:et([s,...p]),columnIds:l,cellColors:c,cellTypes:h,columnCellTypes:g,columnWidths:f,columnIcons:b,columnCurrencies:x,columnCalculations:m,title:y,description:E,titleIcon:C}}function ei(e,t){let r=et(e);return{rows:r,columnIds:Array.from({length:Math.max(1,r[0]?.length??1)},(e,t)=>`col_${t+1}`),cellColors:{},cellTypes:{},columnCellTypes:{},columnWidths:{},columnIcons:{},columnCurrencies:{},columnCalculations:{},title:t?.title??null,description:t?.description??null}}function eo(e){try{let t=JSON.parse(e);if(t&&"object"==typeof t&&"table"===t.type&&t.data&&"object"==typeof t.data)return t}catch{}return null}function ea(e){if(!e||""===e.trim())return ei(J,{title:"",description:""});let t=eo(e);if(t)return en(t);try{let t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>Array.isArray(e)))return ei(t.map(e=>e.map(e=>String(e??""))));if(t&&"object"==typeof t&&"rows"in t&&Array.isArray(t.rows)){let e=t.rows;return ei(e.map(e=>e.map(e=>String(e??""))))}}catch{}let r=e.split("\n").map(e=>e.trim()).filter(Boolean);if(0===r.length)return ei(J);let n=r.some(e=>e.includes("|"))?"|":",";return ei(r.map(e=>e.split(n).map(e=>e.trim()).filter(e=>""!==e)).filter(e=>e.length>0))}function el(e){return{columnCount:Math.max(1,e[0]?.length||1),bodyRowCount:Math.max(0,e.length-1)}}function es(e,t){return e&&t?e===t?e:void 0:e??t}function ed(e,t){let r={};for(let[n,i]of Object.entries(e)){let e=Number(n);Number.isFinite(e)&&e!==t&&(r[e>t?e-1:e]=i)}return r}function eu(e,t,r){let n=Array.from({length:e},(e,t)=>t),[i]=n.splice(t,1);return n.splice(r,0,i),n}function ec(e){let t=Array(e.length);return e.forEach((e,r)=>{t[e]=r}),t}function eh(e,t){let r={};for(let[n,i]of Object.entries(e)){let e=t[Number(n)];void 0!==e&&(r[e]=i)}return r}function ep(e,t,r){let n={};for(let[i,o]of Object.entries(e)){let[e,a]=i.split("-"),l=Number(e),s=Number(a);if(!Number.isFinite(l)||!Number.isFinite(s))continue;let d=t["row"===r?l:s];void 0!==d&&(n["row"===r?`${d}-${s}`:`${l}-${d}`]=o)}return n}function em(e,t,r){if("document"===r)return"";if("text"===t)return e;if("labels"===t||"document"===t)return"";let n=(e??"").trim();if(""===n)return"";if("status"===t)return $(n)?.id??"";if("person"===t)return P(j(n));if("number"===t||"currency"===t||"percent"===t){let e=n.replace(/[, ]+/g,"").replace(/[$â¬Â£Â¥]/g,"").replace(/%/g,"");if(""===e||"-"===e||"+"===e)return"";let t=Number(e);return Number.isFinite(t)?String(t):""}if("datetime"===t){let e=(0,S.parseStoredDate)(n);return e?(0,S.toISODate)(e):""}if("checkbox"===t){let e=n.toLowerCase();return["true","1","yes","y","on","checked"].includes(e)?"true":(["false","0","no","n","off","unchecked"].includes(e),"false")}if("duration"===t)return null===k(n)?"":n;if("rating"===t){let e=Number(n.replace(/[^0-9.]/g,""));return Number.isFinite(e)?String(Math.max(0,Math.min(5,Math.round(e)))):""}return e}function eg(e){return Number.isFinite(e)?Number.isInteger(e)?String(e):String(Math.round(100*e)/100):""}e.s(["CALCULATION_LABELS",0,{count:"Count",unique:"Unique",empty:"Empty",sum:"Sum",average:"Average",median:"Median",min:"Min",max:"Max",range:"Range"},"CALCULATION_OPTIONS",0,["count","unique","empty","sum","average","median","min","max","range"],"DEFAULT_TABLE_CELL_TYPE",0,Y,"FALLBACK_TABLE",0,J,"TABLE_CELL_TYPE_LABELS",0,q,"TABLE_CELL_TYPE_MENU_COLUMNS",0,2,"TABLE_CELL_TYPE_OPTION_GROUPS",0,[["text","number","currency","percent","datetime","duration","checkbox","rating"],["labels","status","person","document","url","email","phone"]],"TABLE_RATING_MAX",0,5,"applyCellTypeWithConversion",0,function(e,t,r,n){let i=`${t}-${r}`,o={...e.cellTypes,[i]:n},a=e.rows.map(e=>[...e]),l=t+1;if(a[l]){let i=a[l][r]??"";a[l][r]=em(i,n,ee(e,t,r))}return{...e,rows:a,cellTypes:o}},"applyRangeTypeWithConversion",0,function(e,t,r,n,i,o){let{columnCount:a,bodyRowCount:l}=el(e.rows),s=Math.max(0,Math.min(t,n)),d=Math.min(l-1,Math.max(t,n)),u=Math.max(0,Math.min(r,i)),c=Math.min(a-1,Math.max(r,
27i));if(s>d||u>c)return e;let h={...e.cellTypes},p=e.rows.map(e=>[...e]);for(let t=s;t<=d;t++){let r=t+1;for(let n=u;n<=c;n++)if(h[`${t}-${n}`]=o,p[r]){let i=p[r][n]??"";p[r][n]=em(i,o,ee(e,t,n))}}return{...e,rows:p,cellTypes:h}},"calculateColumn",0,function(e,t,r){let n=(e.length>1?e.slice(1):[]).map(e=>(e[t]??"").trim()),i=n.filter(e=>""!==e),o=[];for(let e of i){let t=function(e){let t=e.trimStart()[0];if("["===t||"{"===t)return NaN;let r=e.includes(":")?k(e):null;if(null!==r)return r;let n=e.replace(/[^0-9.\-]/g,"");return""===n||"-"===n||"."===n?NaN:parseFloat(n)}(e);Number.isFinite(t)&&o.push(t)}let a=0===o.length;switch(r){case"count":return String(i.length);case"unique":return String(new Set(i).size);case"empty":return String(n.length-i.length);case"sum":return a?"â":eg(o.reduce((e,t)=>e+t,0));case"average":return a?"â":eg(o.reduce((e,t)=>e+t,0)/o.length);case"median":{if(a)return"â";let e=[...o].sort((e,t)=>e-t),t=Math.floor(e.length/2);return eg(e.length%2?e[t]:(e[t-1]+e[t])/2)}case"min":return a?"â":eg(Math.min(...o));case"max":return a?"â":eg(Math.max(...o));case"range":return a?"â":eg(Math.max(...o)-Math.min(...o))}},"cellTypeOpensPicker",0,X,"cellTypeRendersFixedHeightWidget",0,e=>"checkbox"===e||"labels"===e||"status"===e||"person"===e||"datetime"===e||"rating"===e||"url"===e||"email"===e||"phone"===e||"document"===e,"expandCellColorsToTarget",0,function(e,t,r,n,i){if(n<=t&&i<=r)return e;let o={...e};if(n>t&&t>0)for(let e=0;e<r;e++){let r=o[`${e}-${t-1}`];if(r)for(let i=t;i<n;i++)o[`${e}-${i}`]=r}if(i>r&&r>0)for(let e=0;e<n;e++){let t=o[`${r-1}-${e}`];if(t)for(let n=r;n<i;n++)o[`${n}-${e}`]=t}return o},"getCellCount",0,el,"insertColumnAtToParsed",0,function(e,t){let{columnCount:r,bodyRowCount:n}=el(e.rows),i=Math.max(0,Math.min(t,r)),o=et(e.rows).map((e,t)=>{let n=[...e];return n.splice(i,0,0===t?`Column ${r+1}`:""),n}),a={};for(let[t,r]of Object.entries(e.cellColors)){let[e,n]=t.split("-"),o=Number(e),l=Number(n);if(!Number.isFinite(o)||!Number.isFinite(l))continue;let s=l>=i?l+1:l;a[`${o}-${s}`]=r}let l={};for(let[t,r]of Object.entries(e.cellTypes)){let[e,n]=t.split("-"),o=Number(e),a=Number(n);if(!Number.isFinite(o)||!Number.isFinite(a))continue;let s=a>=i?a+1:a;l[`${o}-${s}`]=r}for(let e=0;e<n;e++){let t=es(i>0?a[`${e}-${i-1}`]:void 0,i<r?a[`${e}-${i+1}`]:void 0);t&&(a[`${e}-${i}`]=t)}let s={};for(let[t,r]of Object.entries(e.columnCalculations)){let e=Number(t);Number.isFinite(e)&&(s[e>=i?e+1:e]=r)}let d={};for(let[t,r]of Object.entries(e.columnCellTypes)){let e=Number(t);Number.isFinite(e)&&(d[e>=i?e+1:e]=r)}let u={};for(let[t,r]of Object.entries(e.columnWidths)){let e=Number(t);Number.isFinite(e)&&(u[e>=i?e+1:e]=r)}let c={};for(let[t,r]of Object.entries(e.columnIcons)){let e=Number(t);Number.isFinite(e)&&(c[e>=i?e+1:e]=r)}let h={};for(let[t,r]of Object.entries(e.columnCurrencies)){let e=Number(t);Number.isFinite(e)&&(h[e>=i?e+1:e]=r)}let p=[...e.columnIds];return p.splice(i,0,K()),{...e,rows:o,columnIds:p,cellColors:a,cellTypes:l,columnCellTypes:d,columnWidths:u,columnIcons:c,columnCurrencies:h,columnCalculations:s}},"insertRowAtToParsed",0,function(e,t){let{columnCount:r,bodyRowCount:n}=el(e.rows),i=Math.max(0,Math.min(t,n)),[o,...a]=et(e.rows),l=Array.from({length:r},()=>""),s=[o,...a.slice(0,i),l,...a.slice(i)],d={};for(let[t,r]of Object.entries(e.cellColors)){let[e,n]=t.split("-"),o=Number(e),a=Number(n);if(!Number.isFinite(o)||!Number.isFinite(a))continue;let l=o>=i?o+1:o;d[`${l}-${a}`]=r}for(let e=0;e<r;e++){let t=es(i>0?d[`${i-1}-${e}`]:void 0,i<n?d[`${i+1}-${e}`]:void 0);t&&(d[`${i}-${e}`]=t)}let u={};for(let[t,r]of Object.entries(e.cellTypes)){let[e,n]=t.split("-"),o=Number(e),a=Number(n);if(!Number.isFinite(o)||!Number.isFinite(a))continue;let l=o>=i?o+1:o;u[`${l}-${a}`]=r}return{...e,rows:s,cellColors:d,cellTypes:u}},"isDiscreteCellType",0,e=>"checkbox"===e||"datetime"===e||"rating"===e||X(e),"isGenericColumnName",0,Q,"moveColumnInParsed",0,function(e,t,r){let{columnCount:n}=el(e.rows);if(t===r||t<0||t>=n||r<0||r>=n)return e;let i=er(e.columnIds,n),o=eu(n,t,r),a=ec(o);return{...e,rows:et(e.rows).map(e=>o.map(t=>e[t])),columnIds:o.map(e=>i[e]),cellColors:ep(e.cellColors,a,"column"),cellTypes:ep(e.cellTypes,a,"column"),columnCellTypes:eh(e.columnCellTypes,a),columnWidths:eh(e.columnWidths,a),columnIcons:eh(e.columnIcons,a),columnCurrencies:eh(e.columnCurrencies,a),columnCalculations:eh(e.columnCalculations,a)}},"moveRowInParsed",0,function(e,t,r){let{bodyRowCount:n}=el(e.rows);if(t===r||t<0||t>=n||r<0||r>=n)return e;let[i,...o]=et(e.rows),a=eu(n,t,r),l=ec(a);return{...e,rows:[i,...a.map(e=>o[e])],cellColors:ep(e.cellColors,l,"row"),cellTypes:ep(e.cellTypes,l,"row")}},"normalizeTable",0,et,"parseNormalizedTableData",0,function(e){if(!e||""===e.trim())return null;let t=eo(e);return t?en(t):null},"parseTableData",0,ea,"reconcileColumnIds",0,er,"removeColumnAtFromParsed",0,function(e,t){let{c
27olumnCount:r}=el(e.rows);if(r<=1||t<0||t>=r)return e;let n=et(e.rows).map(e=>{let r=[...e];return r.splice(t,1),r}),i={};for(let[r,n]of Object.entries(e.cellColors)){let[e,o]=r.split("-"),a=Number(e),l=Number(o);Number.isFinite(a)&&Number.isFinite(l)&&l!==t&&(i[`${a}-${l>t?l-1:l}`]=n)}let o={};for(let[r,n]of Object.entries(e.cellTypes)){let[e,i]=r.split("-"),a=Number(e),l=Number(i);Number.isFinite(a)&&Number.isFinite(l)&&l!==t&&(o[`${a}-${l>t?l-1:l}`]=n)}let a=[...e.columnIds];return a.splice(t,1),{...e,rows:n,columnIds:a,cellColors:i,cellTypes:o,columnCellTypes:ed(e.columnCellTypes,t),columnWidths:ed(e.columnWidths,t),columnIcons:ed(e.columnIcons,t),columnCurrencies:ed(e.columnCurrencies,t),columnCalculations:ed(e.columnCalculations,t)}},"removeRowAtFromParsed",0,function(e,t){let{bodyRowCount:r}=el(e.rows);if(t<0||t>=r)return e;let[n,...i]=et(e.rows);i.splice(t,1);let o={};for(let[r,n]of Object.entries(e.cellColors)){let[e,i]=r.split("-"),a=Number(e),l=Number(i);Number.isFinite(a)&&Number.isFinite(l)&&a!==t&&(o[`${a>t?a-1:a}-${l}`]=n)}let a={};for(let[r,n]of Object.entries(e.cellTypes)){let[e,i]=r.split("-"),o=Number(e),l=Number(i);Number.isFinite(o)&&Number.isFinite(l)&&o!==t&&(a[`${o>t?o-1:o}-${l}`]=n)}return{...e,rows:[n,...i],cellColors:o,cellTypes:a}},"resolveCellType",0,ee,"serializeTableData",0,function(e){return JSON.stringify(function(e){let{cellColors:t,cellTypes:r,columnCellTypes:n,columnWidths:i,columnIcons:o,columnCurrencies:a,columnCalculations:l,title:s,description:d,titleIcon:u}=e,[c,...h]=et(e.rows),p=c.map((t,r)=>{let s=String(t||"").trim(),d={id:e.columnIds[r]??`col_${r+1}`,name:s||`Column ${r+1}`,type:"string"},u=l[r];u&&(d.calculation=u);let c=n[r];c&&c!==Y&&(d.cellType=c);let h=i[r];if("number"==typeof h&&Number.isFinite(h)){let e=w(h);168!==e&&(d.width=e)}let p=o[r];"string"==typeof p&&(d.icon=p);let m=a[r];return m&&(d.currency=m),d}),m=p.map(e=>e.id),g=h.map((e,t)=>`row_${t+1}`),f=h.map((e,n)=>{let i={},o={},a={};p.forEach((l,s)=>{let d=e[s];""!==d&&(i[l.id]=d);let u=t[`${n}-${s}`];u&&(o[l.id]={bg:u});let c=r[`${n}-${s}`];c&&(a[l.id]=c)});let l={id:`row_${n+1}`,values:i};return Object.keys(o).length>0&&(l.styles=o),Object.keys(a).length>0&&(l.cellTypes=a),l}),b={name:s?.trim()||Z,columns:p,columnOrder:m,rows:f,rowOrder:g,title:s,description:d};return"string"==typeof u&&(b.icon=u),{id:"table_default",type:"table",data:b}}(e))},"setCellColor",0,function(e,t,r,n){let i=`${t}-${r}`,o={...e.cellColors};return n&&"transparent"!==n?o[i]=n:delete o[i],{...e,cellColors:o}},"setColumnCellType",0,function(e,t,r){let{bodyRowCount:n}=el(e.rows),i=e.columnCellTypes[t]??Y,o={...e.columnCellTypes};r===Y?delete o[t]:o[t]=r;let a={...e.cellTypes},l=e.rows.map(e=>[...e]);for(let i=0;i<n;i++){let n=`${i}-${t}`;r===Y?delete a[n]:a[n]=r;let o=i+1;if(l[o]){let n=l[o][t]??"";l[o][t]=em(n,r,ee(e,i,t))}}let s={...e.columnIcons},d=String(l[0]?.[t]??""),u=Q(d)||d.trim()===q[i];return i!==r&&u&&(l[0]&&(l[0][t]=`Column ${t+1}`),delete s[t]),{...e,rows:l,cellTypes:a,columnCellTypes:o,columnIcons:s}},"setColumnColor",0,function(e,t,r){let{bodyRowCount:n}=el(e.rows),i={...e.cellColors},o=!r||"transparent"===r;for(let e=0;e<n;e++){let n=`${e}-${t}`;o?delete i[n]:i[n]=r}return{...e,cellColors:i}},"setColumnCurrency",0,function(e,t,r){let n={...e.columnCurrencies};return r&&"USD"!==r?n[t]=r:delete n[t],{...e,columnCurrencies:n}},"setColumnIcon",0,function(e,t,r){let n={...e.columnIcons};return null===r?delete n[t]:n[t]=r,{...e,columnIcons:n}},"setRangeColor",0,function(e,t,r){let{columnCount:n,bodyRowCount:i}=el(e.rows),o=Math.max(0,Math.min(t.startRow,t.endRow)),a=Math.min(i-1,Math.max(t.startRow,t.endRow)),l=Math.max(0,Math.min(t.startCol,t.endCol)),s=Math.min(n-1,Math.max(t.startCol,t.endCol)),d={...e.cellColors},u=!r||"transparent"===r;for(let e=o;e<=a;e++)for(let t=l;t<=s;t++){let n=`${e}-${t}`;u?delete d[n]:d[n]=r}return{...e,cellColors:d}},"setRowColor",0,function(e,t,r){let{columnCount:n}=el(e.rows),i={...e.cellColors},o=!r||"transparent"===r;for(let e=0;e<n;e++){let n=`${t}-${e}`;o?delete i[n]:i[n]=r}return{...e,cellColors:i}},"setTitleIcon",0,function(e,t){if(null===t){let{titleIcon:t,...r}=e;return r}return{...e,titleIcon:t}},"trimCellColors",0,function(e,t,r){let n={};for(let[i,o]of Object.entries(e)){let[e,a]=i.split("-"),l=Number(e),s=Number(a);Number.isFinite(l)&&Number.isFinite(s)&&l<r&&s<t&&(n[i]=o)}return n},"trimCellTypes",0,function(e,t,r){let n={};for(let[i,o]of Object.entries(e)){let[e,a]=i.split("-"),l=Number(e),s=Number(a);Number.isFinite(l)&&Number.isFinite(s)&&l<r&&s<t&&(n[i]=o)}return n},"trimColumnKeyedRecord",0,function(e,t){let r={};for(let[n,i]of Object.entries(e)){let e=Number(n);Number.isFinite(e)&&e<t&&(r[e]=i)}return r}],733480);let ef=/^[\w-]+(?:\.[\w-]+)+(?:[/?#].*)?$/,eb=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ex=/^\+?\d{5,}$/;function ey(e,t){let r=(t??"").trim();if(""===r||function(e){for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<32||127===r)return!0}return!1}(r))return null;if("url"===e)return/^https?:\/\/\S+$/i.test(r)?r:ef.test(r)?`https://${r}`:null;if("email"===e)return eb.test(r)?`mailto:${r}`:null;if("phone"===e){let e=r.replace(/[\s().-]/g,"");return ex.test(e)?`tel:${e}`:null}return null}e.s(["buildCellHref",0,ey,"isLinkCellType",0,e=>"url"===e||"email"===e||"phone"===e],355427);let ew=/\[([^\]\n]+)\]\(((?:[^()\s]|\([^()\s]*\))+)\)|(?:https?:\/\/|www\.)[^\s<>"'`\]]+/gi;function eE(e){let t;if(!e)return[];let r=[],n=0,i=e=>{e&&r.push({kind:"text",text:e})},o=new RegExp(ew.source,ew.flags);for(;null!==(t=o.exec(e));){let o=t[0],a=t[1],l=t.index,s=void 0===a?function(e){let t=e.length;for(;t>0;){let r=e[t-1];if(".,;:!?".includes(r)){t-=1;continue}if(")"===r){let r=e.slice(0,t);if((r.match(/\(/g)?.length??0)<(r.match(/\)/g)?.length??0)){t-=1;continue}}break}return e.slice(0,t)}(o):t[2],d=ey("url",s);d&&(i(e.slice(n,l)),r.push(void 0===a?{kind:"link",href:d,text:function(e){let t=e.replace(/^https?:\/\//i,"").replace(/^www\./i,"").replace(/\/$/,"");if(t.length<=42)return t;let r=t.indexOf("/");return -1===r?t:`${t.slice(0,r)}/â¦`}(d),labelled:!1}:{kind:"link",href:d,text:a,labelled:!0}),n=l+(void 0===a?s.length:o.length))}return i(e.slice(n)),r}function eC(e){return"object"==typeof e&&null!==e&&"string"==typeof e.presetUid&&"string"==typeof e.label&&"string"==typeof e.labelColorHex}function eT(e){if(!e)return[];try{let t=JSON.parse(e);if(!Array.isArray(t))return[];return t.filter(eC)}catch{return[]}}function eS(e){if(!e?.trim())return[];let t=ea(e),[r,...n]=t.rows;if(!r)return[];let i=[];t.title?.trim()&&i.push(`Title: ${t.title.trim()}`);let o=r.length,a=r.map((e,t)=>e?.trim()?e.trim():`Column ${t+1}`).join(" | ");
27return i.push(a),n.forEach((e,r)=>{let n=[];for(let i=0;i<o;i++){let o=t.cellTypes[`${r}-${i}`]??t.columnCellTypes[i]??"text";n.push(function(e,t,r){if(!e)return"";if("currency"===t){let t=Number(e.replace(/[^0-9.\-]/g,""));return Number.isFinite(t)?T(t,r):e}if("checkbox"===t)return"true"===e?"[x]":"[ ]";if("datetime"===t)return(0,S.formatStoredDate)(e);if("labels"===t)return eT(e).map(e=>e.label).join(", ");if("status"===t)return G(e)?.label??"";if("person"===t)return W(e).map(e=>e.name).join(", ");if("duration"===t)return D(e);if("rating"===t){let t=Number(e);return Number.isFinite(t)&&t>0?`${t}/5`:""}return"text"===t?eE(e).map(e=>"text"===e.kind?e.text:e.labelled?`${e.text} (${e.href})`:e.href).join(""):e}(e[i]??"",o,t.columnCurrencies[i]))}n.some(e=>""!==e)&&i.push(n.join(" | "))}),t.description?.trim()&&i.push(`Caption: ${t.description.trim()}`),i}e.s(["splitCellTextLinks",0,eE],801696),e.s(["parseCellLabels",0,eT,"serializeCellLabels",0,function(e){return 0===e.length?"":JSON.stringify(e)},"toggleCellLabel",0,function(e,t){return e.some(e=>e.presetUid===t.presetUid)?e.filter(e=>e.presetUid!==t.presetUid):[...e,t]}],310950);let eA=new Set(["reactFlowDroppableInnerWall","reactFlowDroppableWallGap"]),e_={[x.ToolElementType.ToolNote]:"Note",[x.ToolElementType.ToolAiNote]:"AI Note",[x.ToolElementType.ToolHeading]:"Heading",[x.ToolElementType.ToolToDo]:"To-do",[x.ToolElementType.ToolDocument]:"Document",[x.ToolElementType.ToolChecklist]:"Checklist",[x.ToolElementType.ToolTable]:"Table",[x.ToolElementType.ToolTicket]:"Ticket",[x.ToolElementType.ToolLink]:"Link",[x.ToolElementType.ToolImage]:"Image",[x.ToolElementType.ToolAiGeneratedImage]:"AI Image",[x.ToolElementType.ToolVideo]:"Video",[x.ToolElementType.ToolAudio]:"Audio",[x.ToolElementType.ToolFile]:"File",[x.ToolElementType.ToolFlow]:"Blueprint",[x.ToolElementType.ToolColor]:"Color",[x.ToolElementType.ToolComments]:"Comments",[x.ToolElementType.ToolConnectionArrow]:"Connection",[x.ToolElementType.ToolGroup]:"Group",[x.ToolElementType.ToolLine]:"Line",[x.ToolElementType.ToolWhiteboard]:"Whiteboard link",[x.ToolElementType.ToolWhiteboardWall]:"Frame",[x.ToolElementType.ToolImageStack]:"Image stack",[x.ToolElementType.ToolSlideDeck]:"Deck"};function ev(e,t){if(null==t||"string"!=typeof t)return;let r=t.trim();r&&e.push({kind:"html",value:r})}function ek(e,t,r){if(null==t||"string"!=typeof t)return;let n=t.trim();n&&e.push({kind:"plain",value:r?`${r}${n}`:n})}function eF(e,t){if(t?.trim())try{let r=JSON.parse(t);if(!Array.isArray(r))return;for(let t of r)if(t&&"object"==typeof t&&"content"in t){let r=t.content;"string"==typeof r&&r.trim()&&ev(e,r)}}catch{ek(e,t,"Comments: ")}}function eD(e){let t=e.filter(e=>{let t=e.type;return!!(t&&!eA.has(t))}).slice().sort((e,t)=>{let r=e.position?.y??0,n=t.position?.y??0;return r!==n?r-n:(e.position?.x??0)-(t.position?.x??0)}),r=[];for(let e of t){let t=e.data?.element,n=e.type;t&&n&&(r.push({kind:"banner",label:e_[n]??n}),function e(t,r,n,i){switch(r){case x.ToolElementType.ToolNote:case x.ToolElementType.ToolAiNote:case x.ToolElementType.ToolHeading:case x.ToolElementType.ToolToDo:r===x.ToolElementType.ToolAiNote&&ek(t,n.prompt,"AI prompt: "),ev(t,n.content);break;case x.ToolElementType.ToolDocument:ek(t,n.title,"Title: "),ev(t,n.content);break;case x.ToolElementType.ToolChecklist:ek(t,n.title,"Title: "),ev(t,n.checklist);break;case x.ToolElementType.ToolTable:for(let e of eS(n.tableData))ek(t,e);break;case x.ToolElementType.ToolTicket:ek(t,n.title,"Title: "),ek(t,n.label,"Label: "),ek(t,n.date,"Date: "),ev(t,n.description);break;case x.ToolElementType.ToolLink:ek(t,n.title,"Title: "),ek(t,n.url,"URL: "),ev(t,n.description);break;case x.ToolElementType.ToolImage:(0,y.isImageCaptionVisible)(n)&&ek(t,n.caption,"Caption: "),ek(t,n.imageUrl,"Image: ");break;case x.ToolElementType.ToolAiGeneratedImage:ek(t,n.prompt,"Prompt: "),ek(t,n.imageUrl,"Image: ");break;case x.ToolElementType.ToolVideo:(0,y.isElementCaptionShown)(n)&&ek(t,n.caption,"Caption: "),ek(t,n.videoUrl,"Video: ");break;case x.ToolElementType.ToolAudio:ek(t,n.audioUrl,"Audio: ");break;case x.ToolElementType.ToolFile:(0,y.isElementCaptionShown)(n)&&ek(t,n.caption,"Caption: "),ek(t,n.fileName,"File: "),ek(t,n.fileUrl,"URL: "),ek(t,n.fileType,"Type: ");break;case x.ToolElementType.ToolFlow:ek(t,n.title,"Title: "),ek(t,n.type,"Type: ");break;case x.ToolElementType.ToolColor:ek(t,n.caption,"Caption: "),ek(t,n.colorHex,"Color: ");break;case x.ToolElementType.ToolComments:eF(t,n.commentsJsonString);break;case x.ToolElementType.ToolWhiteboard:ek(t,n.boardName,"Board: ");break;case x.ToolElementType.ToolConnectionArrow:ek(t,n.sourceId,"From: "),ek(t,n.targetId,"To: ");break;case x.ToolElementType.ToolGroup:ek(t,n.layoutType,"Layout: ");break;case x.ToolElementType.ToolLine:ek(t,`(${String(n.startX??"")},${String(n.startY??"")}) â (${String(n.endX??"")},${String(n.endY??"")})`,"Line: ");break;case x.ToolElementType.ToolWhiteboardWall:case x.ToolElementType.ToolImageStack:case x.ToolElementType.ToolSlideDeck:ek(t,n.title,"Title: "),function(t,r,n){if(!r?.length)return;let i=" ".repeat(Math.min(n,6));for(let o of r){if(!o?.content)continue;let r=o.elementType;t.push({kind:"banner",label:`${i}\xb7 ${e_[r]??r}`}),e(t,r,o.content,n+1)}}(t,n.elements,i);break;default:var o=t,a=n;let l=new Set;for(let e of["title","boardName","fileName","caption","prompt","url","videoUrl","audioUrl","imageUrl","content","description","checklist","tableData","commentsJsonString"]){if(!(e in a))continue;let t=a[e];if("string"==typeof t&&t.trim())if(l.add(e),"commentsJsonString"===e)eF(o,t);else if("tableData"===e)for(let e of eS(t))ek(o,e);else["content","description"].includes(e)?ev(o,t):ek(o,t,`${e}: `)}for(let[e,t]of Object.entries(a))!l.has(e)&&"string"==typeof t&&t.trim()&&"__typename"!==e&&"elementUid"!==e&&"whiteboardElementUid"!==e&&ek(o,t,`${e}: `)}}(r,n,t,0),r.push({kind:"spacer"}))}return r}function eM(e){switch(e){case"busy":return{title:"Export service is busy",description:"Another export is running. Please try again in a moment."};case"rate_limited":return{title:"Too many exports",description:"You're exporting very quickly. Please wait a moment and try again."};case"timeout":return{title:"Export took too long",description:"This board is very large. Try the small-file-size option, or export a selected area."};case"stalled":case"shutdown":return{title:"Export was interrupted",description:"Please try again."};default:return{title:"Export failed",description:"Please try again in a moment."}}}function eI(e,t){let r=(e??"untitled").replace(/[\\/:*?"<>|]+/g,"").trim()||"untitled";return`storyflow-${r}-${Date.now()}.${t}`}function eU(e){return Math.max(1,Math.min(e,b.MAX_EXPORT_DIM))}e.s(["useWhiteboardExport",0,function({projectTitle:e,projectSlug:n,whiteboardUid:i}){let{getNodes:o}=(0,r.useCanvasEngine)(),a=(0,c.useToast)(),l=(0,t.useCallback)((e,t)=>{let r,n,i=o();if(0===i.length)return null;
27let a=(0,d.getNodesBounds)(i);e&&t?(r=eU(e),n=eU(t)):(r=eU(Math.ceil(a.width+200)),n=eU(Math.ceil(a.height+200)));let l=(0,d.getViewportForBounds)(a,r,n,.1,4,100/r);return{finalWidth:r,finalHeight:n,viewport:l}},[o]),s=(0,t.useCallback)(async t=>{let{fileType:r,imageWidth:s,imageHeight:d,colorMode:u,quality:c,region:h,onExportComplete:p,onProgress:m}=t,g={ok:!1};try{let t,p,b=o();if(0===b.length)return void a({title:"Nothing to export",description:"Add some elements to the canvas first",status:"warning"});if(h)t=eU(Math.ceil(h.w)),p=eU(Math.ceil(h.h));else{let e=l(s,d);if(!e)return;t=e.finalWidth,p=e.finalHeight}let x=function(e,t,r,n){let i="pdf"===n?125e7:2e9;for(let n=r;n>1;n--){let r=e*n*t*n,o=4*r,a=.26*r,l=3*r;if(o<=i&&a<=0x6400000&&l<=0x100000000)return n}return 1}(t,p,"high"===c?2:1,r);if(!n||!i){console.error("[whiteboard-export] Missing projectSlug/whiteboardUid; cannot export."),a({title:"Export failed",description:"Please try again in a moment.",status:"error"});return}let y=eI(e,"pdf"===r?"pdf":r),w=await f({projectSlug:n,whiteboardUid:i,format:r,width:t,height:p,theme:"light"===u?"light":"dark",quality:c,filename:y,predictedScale:x,region:h,onProgress:m});if(!w.ok){console.warn("[whiteboard-export] Server export failed:",w.errorMessage),g={ok:!1,errorCode:w.errorCode},a({...eM(w.errorCode),status:"error"});return}g={ok:!0,fileName:y,...w.jobId?{jobId:w.jobId}:{},...w.bytes?{bytes:w.bytes}:{}}}catch(e){console.error("Export error:",e),a({...eM(),status:"error"})}finally{p(g)}},[l,o,n,i,e,a]),p=(0,t.useCallback)(async e=>{await s({fileType:e.fileType,imageWidth:e.imageWidth,imageHeight:e.imageHeight,colorMode:e.colorMode,quality:e.quality,onExportComplete:e.onExportComplete,onProgress:e.onProgress})},[s]),m=(0,t.useCallback)(async e=>{await s({fileType:"pdf",imageWidth:e.imageWidth,imageHeight:e.imageHeight,colorMode:e.colorMode,quality:e.quality,onExportComplete:e.onExportComplete,onProgress:e.onProgress})},[s]),g=(0,t.useCallback)(async e=>{await s({fileType:e.fileType,region:e.region,colorMode:e.colorMode,quality:e.quality,onExportComplete:e.onExportComplete,onProgress:e.onProgress})},[s]);return{onExportWhiteboard:p,onExportWhiteboardArea:g,onExportPdf:m,onExportWhiteboardPlainText:(0,t.useCallback)(async({onExportComplete:t,scope:r})=>{try{let t=new Map(o().map(e=>[e.id,e])),n="selection"===r?u.useWhiteboardSelectionStore.getState().combinedActiveNodes().map(e=>t.get(e.id)??e):Array.from(t.values());if(0===n.length)return void a({title:"Nothing to export",description:"Add some elements to the canvas first",status:"warning"});let i=eD(n),l=function(e){let t=[];for(let r of e)switch(r.kind){case"banner":t.push(r.label),t.push("");break;case"html":t.push(function(e){let t="u">typeof document?document.createElement("div"):null;return t?(t.innerHTML=e,t.querySelectorAll("ul, ol").forEach(e=>{e.querySelectorAll("li").forEach(e=>{e.textContent=`⢠${e.textContent} 28`})}),t.querySelectorAll("br").forEach(e=>e.replaceWith("\n")),t.textContent||t.innerText||""):e.replace(/<[^>]*>/g,"\n").replace(/\n+/g,"\n").trim()}(r.value)),t.push("");break;case"plain":t.push(r.value),t.push("");break;case"spacer":t.push("")}return t.join("\n").replace(/\n{3,}/g,"\n\n").trimEnd()+"\n"}(i);if(!l.trim())return void a({title:"Nothing to export",description:"No text content found on the canvas",status:"warning"});let s=new Blob([l],{type:"text/plain"}),d=URL.createObjectURL(s),c=document.createElement("a");c.href=d,c.download=eI(e,"txt"),document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(d)}catch(e){console.error("Export error:",e),a({title:"Export failed",description:"Please try again in a moment.",status:"error"})}finally{t()}},[o,e,a]),onExportWhiteboardDocx:(0,t.useCallback)(async({onExportComplete:t})=>{try{let t=o();if(0===t.length)return void a({title:"Nothing to export",description:"Add some elements to the canvas first",status:"warning"});let r=e=>{let t=document.createElement("div");t.innerHTML=e;let r=t.children,n=[];return Array.from(r).forEach(e=>{switch(e.tagName.toLowerCase()){case"h1":n.push(new h.Paragraph({text:e.textContent||"",heading:h.HeadingLevel.HEADING_1}));break;case"h2":n.push(new h.Paragraph({text:e.textContent||"",heading:h.HeadingLevel.HEADING_2}));break;
28case"ul":case"ol":Array.from(e.querySelectorAll("li")).forEach(e=>{n.push(new h.Paragraph({text:`⢠${e.textContent||""}`,bullet:{level:0}}))});break;case"p":{let t=window.getComputedStyle(e);n.push(new h.Paragraph({children:[new h.TextRun({text:e.textContent||"",bold:"bold"===t.fontWeight,italics:"italic"===t.fontStyle,underline:t.textDecoration?.includes("underline")?{type:"single"}:void 0})]}));break}default:e.textContent?.trim()&&n.push(new h.Paragraph({text:e.textContent}))}}),n},n=eD(t),i=[];for(let e of n)"banner"===e.kind?i.push(new h.Paragraph({text:e.label,heading:h.HeadingLevel.HEADING_2})):"html"===e.kind?i.push(...r(e.value)):"plain"===e.kind?i.push(new h.Paragraph({text:e.value})):"spacer"===e.kind&&i.push(new h.Paragraph({}));if(0===i.length)return void a({title:"Nothing to export",description:"No text content found on the canvas",status:"warning"});let l=new h.Document({sections:[{children:i}]}),s=await h.Packer.toBlob(l),d=URL.createObjectURL(s),u=document.createElement("a");u.href=d,u.download=eI(e,"docx"),document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(d)}catch(e){console.error("Export error:",e),a({title:"Export failed",description:"Please try again in a moment.",status:"error"})}finally{t()}},[o,e,a])}}],661087);var eL=e.i(785929),eB=e.i(647547),eW=e.i(941332),eP=e.i(306148),ej=e.i(699364),eR=e.i(608300),eN=e.i(438974),eO=e.i(732934),eH=e.i(95128),ez=e.i(582403),eG=e.i(629049);let eV=[{key:"nw",ax:-1,ay:-1,cursor:"nwse-resize"},{key:"n",ax:0,ay:-1,cursor:"ns-resize"},{key:"ne",ax:1,ay:-1,cursor:"nesw-resize"},{key:"e",ax:1,ay:0,cursor:"ew-resize"},{key:"se",ax:1,ay:1,cursor:"nwse-resize"},{key:"s",ax:0,ay:1,cursor:"ns-resize"},{key:"sw",ax:-1,ay:1,cursor:"nesw-resize"},{key:"w",ax:-1,ay:0,cursor:"ew-resize"}];e.s(["default",0,function({onExport:e}){let n=(0,eH.useWhiteboardExportAreaStore)(e=>e.active),i=(0,eH.useWhiteboardExportAreaStore)(e=>e.close),{colorMode:o}=(0,eN.useColorMode)(),{flowToScreenPosition:a,getNodesBounds:l,getNodes:s,fitBounds:d}=(0,r.useCanvasEngine)(),u=(0,eO.useViewport)(),[c,h]=(0,t.useState)(null),[p,m]=(0,t.useState)(null),g=(0,ez.useExportProgressRamp)(),f=(0,t.useRef)(null);f.current=c,(0,t.useEffect)(()=>{if(!n)return void h(null);let e=l(s());e&&Number.isFinite(e.width)&&!(e.width<=0)?(h({x:e.x,y:e.y,w:e.width,h:e.height}),d(e,{padding:.15,duration:200})):h(null)},[n,l,s,d]),(0,t.useEffect)(()=>{if(!n)return;let e=e=>{"Escape"===e.key&&(e.preventDefault(),i())};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[n,i]);let b=(0,t.useCallback)((e,t,r,n)=>{e.preventDefault(),e.stopPropagation();let i=f.current;if(!i)return;let o=u.zoom||1,a=e.clientX,l=e.clientY,s=e=>{let s=(e.clientX-a)/o,d=(e.clientY-l)/o;if(n)return void h({x:i.x+s,y:i.y+d,w:i.w,h:i.h});let u=i.x,c=i.y,p=i.w,m=i.h;-1===t?(u=i.x+s,p=i.w-s):1===t&&(p=i.w+s),-1===r?(c=i.y+d,m=i.h-d):1===r&&(m=i.h+d),p<50&&(-1===t&&(u-=50-p),p=50),m<50&&(-1===r&&(c-=50-m),m=50),h({x:u,y:c,w:p,h:m})},d=()=>{window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",d)};window.addEventListener("pointermove",s),window.addEventListener("pointerup",d)},[u.zoom]),x=(0,t.useCallback)(t=>{let r=f.current;if(!r||p)return;m(t);let n=(0,ez.estimateExportDurationMs)(t,"high",0,0,Math.max(r.w,r.h));g.start(n),e({fileType:t,region:{x:r.x,y:r.y,w:r.w,h:r.h},colorMode:o,quality:"high",onExportComplete:()=>{g.finish(),m(null),i()}})},[p,e,o,i,g]);if(!n||!c)return null;let y=a({x:c.x,y:c.y}),w=a({x:c.x+c.w,y:c.y+c.h}),E=y.x,C=y.y,T=Math.max(0,w.x-y.x),S=Math.max(0,w.y-y.y),A=Math.round(c.w),_=Math.round(c.h),v=Math.max(A,_)>16e3,k="dark"===o?"var(--chakra-colors-brand-400)":"var(--chakra-colors-brand-500)",F="dark"===o,D={h:"29px",px:"12px",minW:"30px",fontSize:"12px",fontWeight:500,color:F?"#E0E0E0":"black",bg:F?"rgba(40,40,40,0.6)":"rgba(255,255,255,0.7)",borderRadius:"9px",border:F?"none":"1px solid",borderColor:F?"transparent":"rgba(0,0,0,0.08)",transition:"all 0.2s ease",position:"relative",_hover:{transform:"translateY(-1px)",bg:F?"rgba(50,50,50,0.6)":"rgba(242,242,242,0.95)"},_after:F?(0,eG.gradientHairline)({colorMode:o,variant:"active",borderRadius:"9px"}):void 0};return(0,eL.jsxs)(eB.Box,{position:"fixed",left:`${E}px`,top:`${C}px`,width:`${T}px`,height:`${S}
28px`,className:"nopan nodrag nowheel",border:"2px solid",borderColor:k,boxShadow:"0 0 0 100000px rgba(0,0,0,0.45)",cursor:"move",zIndex:2147483e3,onPointerDown:e=>b(e,0,0,!0),children:[(0,eL.jsxs)(eP.Flex,{position:"absolute",bottom:"calc(100% + 8px)",left:"0",direction:"column",gap:"6px",minW:"240px",bg:"dark"===o?"#1F1F1F":"#FFFFFF",border:"1px solid",borderColor:"dark"===o?"#333":"#E2E8F0",borderRadius:"8px",px:"8px",py:"6px",boxShadow:"0 4px 16px rgba(0,0,0,0.25)",onPointerDown:e=>e.stopPropagation(),children:[(0,eL.jsxs)(eP.Flex,{gap:"8px",align:"center",children:[(0,eL.jsxs)(eR.Text,{fontSize:"11px",fontWeight:"600",whiteSpace:"nowrap",children:[A," à ",_," px",v?" · PNG will downscale, PDF stays crisp":""]}),(0,eL.jsx)(eW.Button,{...D,onClick:()=>i(),isDisabled:null!==p,children:"Cancel"}),(0,eL.jsx)(eW.Button,{...D,onClick:()=>x("pdf"),isLoading:"pdf"===p,isDisabled:"png"===p,loadingText:"Exporting",children:"Export PDF"}),(0,eL.jsx)(eW.Button,{h:"29px",px:"12px",minW:"56px",fontSize:"11px",fontWeight:"semibold",color:"white",backgroundColor:"var(--chakra-colors-brand-500)",border:"none",boxShadow:"none",borderRadius:"9px",position:"relative",overflow:"hidden",transition:"all 0.2s ease",onClick:()=>x("png"),isLoading:"png"===p,isDisabled:"pdf"===p,loadingText:"Exporting",_hover:{backgroundColor:"var(--chakra-colors-brand-600)",transform:"translateY(-1px)"},_after:(0,eG.gradientHairline)({colorMode:o,variant:"card",borderRadius:"9px"}),children:"Export PNG"})]}),g.active&&(0,eL.jsxs)(eP.Flex,{direction:"column",gap:"3px",children:[(0,eL.jsxs)(eP.Flex,{justify:"space-between",align:"center",children:[(0,eL.jsxs)(eR.Text,{fontSize:"10px",fontWeight:"600",opacity:.7,children:["Exporting ",p?.toUpperCase(),"â¦"]}),(0,eL.jsxs)(eR.Text,{fontSize:"10px",fontWeight:"600",opacity:.7,children:[Math.round(g.percent),"%"]})]}),(0,eL.jsx)(ej.Progress,{value:g.percent,size:"xs",w:"100%",borderRadius:"full",colorScheme:"brand",bg:"dark"===o?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.06)"})]})]}),eV.map(e=>{let t=-1===e.ax?"-5px":1===e.ax?"auto":"calc(50% - 5px)",r=1===e.ax?"-5px":"auto",n=-1===e.ay?"-5px":1===e.ay?"auto":"calc(50% - 5px)",i=1===e.ay?"-5px":"auto";return(0,eL.jsx)(eB.Box,{position:"absolute",left:t,right:r,top:n,bottom:i,width:"10px",height:"10px",bg:"#FFFFFF",border:"1.5px solid",borderColor:k,borderRadius:"2px",cursor:e.cursor,onPointerDown:t=>b(t,e.ax,e.ay,!1)},e.key)})]})}],911881);var e$=e.i(84132);let eJ=e=>Math.round(100*e)/100,eK=()=>{let e=(0,e$.queryCanvasViewport)();if(!e)return null;let t=1;try{let r=new DOMMatrixReadOnly(getComputedStyle(e).transform);r.a&&(t=r.a)}catch{t=1}let r=e.getBoundingClientRect(),n=[],i=new Set,o=(e,o)=>{!e||i.has(e)||(i.add(e),n.push({uid:e,x:eJ((o.left-r.left)/t),y:eJ((o.top-r.top)/t),width:eJ(o.width/t),height:eJ(o.height/t)}))};return document.querySelectorAll(`${e$.CANVAS_NODE_SELECTOR}[data-id]`).forEach(e=>o(e.getAttribute("data-id"),e.getBoundingClientRect())),document.querySelectorAll("[data-wall-item-uid]").forEach(e=>o(e.getAttribute("data-wall-item-uid"),e.getBoundingClientRect())),n},eY=(e,t,r)=>{let n=(0,e$.queryCanvasRoot)();n&&(n.style.transformOrigin="0 0",n.style.removeProperty("zoom"),n.style.transform=`translate(${-e}px, ${-t}px) scale(${r})`)};var eq=e.i(173742);async function eX(e,t,r){let n=Array(e.length),i=0;async function o(){for(;i<e.length;){let t=i++;n[t]=await r(e[t],t)}}let a=Array.from({length:Math.min(t,e.length)},o);return await Promise.all(a),n}async function eQ(e,t,r=1,n=!1,i,o=0){let a=window.location.origin;e.classList.add("whiteboard-exporting");let l=[],s=[],d=Array.from(t.querySelectorAll("img")),u=new Map;for(let e of d){let t=e.getAttribute("src")||"",s=e.getAttribute("srcset"),d=e.getAttribute("crossorigin"),c=e.style.backgroundImage||null,h={},p=!1;if(t&&(0,eq.shouldProxyImageUrl)(t,a)){let l=e.getBoundingClientRect(),s=l.width*r,d=l.height*r;h.proxiedSrc=o>0?(0,eq.buildImageProxyUrl)(t,a,{width:o,height:o}):!n&&s>0&&d>0?(0,eq.buildImageProxyUrl)(t,a,{width:s,height:d}):n&&i?(0,eq.buildImageProxyUrl)(t,a,{width:i,height:i}):(0,eq.buildImageProxyUrl)(t,a),p=!0}if(s){let e=(0,eq.rewriteSrcset)(s,a);e!==s&&(h.newSrcset=e,p=!0)}p&&(u.set(e,h),l.push({el:e,originalSrc:t,originalSrcset:s,originalCrossOrigin:d,originalStyleBg:c}))}
28t.querySelectorAll('[style*="background-image"]').forEach(e=>{let t=e.style.backgroundImage;if(!t)return;let r=(0,eq.rewriteBackgroundImageStyle)(t,a);r!==t&&(e.style.backgroundImage=r,s.push({el:e,originalStyleBg:t}))});let c=0,h=0;return await eX(d,6,async e=>{let t=u.get(e);t&&(void 0!==t.proxiedSrc&&(e.setAttribute("crossorigin","anonymous"),e.setAttribute("src",t.proxiedSrc)),void 0!==t.newSrcset&&e.setAttribute("srcset",t.newSrcset));let r=await (e.complete&&e.naturalWidth>0?Promise.resolve("ok"):new Promise(t=>{let r=()=>{e.removeEventListener("load",n),e.removeEventListener("error",i),clearTimeout(o)},n=()=>{r(),t("ok")},i=()=>{r(),t("error")};e.addEventListener("load",n,{once:!0}),e.addEventListener("error",i,{once:!0});let o=setTimeout(()=>{r(),t("error")},b.PER_IMAGE_LOAD_TIMEOUT_MS)})),n=t?.proxiedSrc!==void 0&&1===e.naturalWidth&&1===e.naturalHeight;if("ok"!==r||n){h+=1;try{e.removeAttribute("crossorigin"),e.setAttribute("src",b.TRANSPARENT_PNG_DATA_URL),e.removeAttribute("srcset")}catch{}}else c+=1}),{restore:()=>{for(let t of(e.classList.remove("whiteboard-exporting"),l))try{t.originalSrc?t.el.setAttribute("src",t.originalSrc):t.el.removeAttribute("src"),null!==t.originalSrcset?t.el.setAttribute("srcset",t.originalSrcset):t.el.removeAttribute("srcset"),null!==t.originalCrossOrigin?t.el.setAttribute("crossorigin",t.originalCrossOrigin):t.el.removeAttribute("crossorigin"),null!==t.originalStyleBg&&(t.el.style.backgroundImage=t.originalStyleBg)}catch{}for(let e of s)try{e.el.style.backgroundImage=e.originalStyleBg}catch{}},loadedImageCount:c,failedImageCount:h}}let eZ=!1;function e0(){if(eZ||"u"<typeof document)return;let e=document.createElement("style");e.setAttribute("data-storyflow-export","1"),e.textContent=` 29 .whiteboard-exporting ${b.EXPORT_CLIENT_SNAPSHOT_FILTER_SELECTORS.filter(e=>e!==b.EXPORT_HANDLE_SELECTOR).join(",\n .whiteboard-exporting ")} { 30 display: none !important; 31 } 32 .whiteboard-exporting ${b.EXPORT_HANDLE_SELECTOR} { 33 visibility: hidden !important; 34 } 35 /* An html embed skips its own paint while off-screen (ReactFlowDraggableHtmlEmbed); 36 the server export screenshots tiles far outside the window, where a skipped embed 37 is a blank card. */ 38 .whiteboard-exporting [data-html-embed-content] { 39 content-visibility: visible !important; 40 } 41 /* A frame / visual-page name counter-scales to a constant on-SCREEN size 42 from the LIVE viewport zoom (canvasToolNameLabelMetrics), but a capture 43 applies its own scale outside React â left alone, the name comes out at 44 a size that depends on where the user happened to be zoomed, and is 45 missing entirely from a capture taken at overview zoom. Pinned to the 46 canvas scale so an export is deterministic and the name stays 47 proportional to the board. */ 48 .whiteboard-exporting [data-canvas-name-label] { 49 --canvas-name-label-scale: 1 !important; 50 /* inherit, not visible: React Flow hides a node it has not measured by 51 setting visibility on the node wrapper, and a name forced visible over 52 one of those paints a title with no node under it. */ 53 visibility: inherit !important; 54 } 55 `,document.head.appendChild(e),eZ=!0}e.s(["ensureExportStyleInjected",0,e0,"prepareViewportForCapture",0,eQ,"shouldIncludeNodeInSnapshot",0,function(e){if(!(e instanceof Element))return!0;for(let t of b.EXPORT_CLIENT_SNAPSHOT_FILTER_SELECTORS)if(e.matches?.(t))return!1;return!0}],796465);let e1="storyflow-server-export-style";async function e5(e){let t,r,{reactFlowRoot:n,viewportElement:i,finalWidth:o,finalHeight:a,viewport:l,backgroundColor:s,setReactFlowViewport:d,boxPosition:u="fixed"}=e;e0();try{d({x:l.x,y:l.y,zoom:l.zoom})}catch(e){console.warn("[server-prepare] setViewport failed",e)}let c=null;try{c=await eQ(n,i,e.captureScale??1,e.nativeResImages??!1,e.nativeResMaxDim,e.fixedImageMaxDim??0)}catch(e){console.warn("[server-prepare] image preparation failed",e)}let h=(t=b.EXPORT_HIDDEN_SELECTORS.filter(e=>e!==b.EXPORT_HANDLE_SELECTOR).map(e=>`html.storyflow-server-exporting ${e}`).join(",\n "),r="absolute"===u?` 56 html.storyflow-server-exporting ${e$.CANVAS_ROOT_SELECTOR}, 57 html.storyflow-server-exporting ${e$.CANVAS_ROOT_SELECTOR} *, 58 html.storyflow-server-exporting ${e$.CANVAS_ROOT_SELECTOR} *::before, 59 html.storyflow-server-exporting ${e$.CANVAS_ROOT_SELECTOR} *::after { 60 box-shadow: none !important; 61 filter: none !important; 62 -webkit-filter: none !important; 63 backdrop-filter: none !important; 64 -webkit-backdrop-filter: none !important; 65 }`:"",`${r} 66 html.storyflow-server-exporting, 67 html.storyflow-server-exporting body { 68 margin: 0 !important; 69 padding: 0 !important; 70 overflow: hidden !important; 71 background: ${s} !important; 72 width: ${o}px !important; 73 height: ${a}px !important; 74 } 75 html.storyflow-server-exporting body > * { 76 visibility: hidden !important; 77 } 78 html.storyflow-server-exporting ${e$.CANVAS_ROOT_SELECTOR} { 79 visibility: visible !important; 80 position: ${u} !important; 81 top: 0 !important; 82 left: 0 !important; 83 width: ${o}px !important; 84 height: ${a}px !important; 85 max-width: none !important; 86 max-height: none !important; 87 min-width: 0 !important; 88 min-height: 0 !important; 89 margin: 0 !important; 90 padding: 0 !important; 91 background: ${s} !important; 92 z-index: 2147483647 !important; 93 } 94 ${t} { 95 display: none !important; 96 } 97 html.storyflow-server-exporting ${b.EXPORT_HANDLE_SELECTOR} { 98 visibility: hidden !important; 99 } 100 html.storyflow-server-exporting ::-webkit-scrollbar { display: none !important; } 101 html.storyflow-server-exporting * { 102 scrollbar-width: none !important; 103 -ms-overflow-style: none !important; 104 } 105 `),p=null;try{(p=document.getElementById(e1))||((p=document.createElement("style")).id=e1,document.head.appendChild(p)),p.textContent=h,document.documentElement.classList.add("storyflow-server-exporting")}catch(e){console.warn("[server-prepare] style injection failed",e)}return{restore:()=>{try{document.documentElement.classList.remove("storyflow-server-exporting")}catch{}try{p?.remove()}catch{}
105try{c?.restore()}catch{}},loadedImageCount:c?.loadedImageCount??0,failedImageCount:c?.failedImageCount??0}}var e2=e.i(102805);function e4(e,t,r,n){if(0===e.length||t<=0)return{compactedLength:t,keptRanges:[{realStart:0,realEnd:t,compactedStart:0}]};let i=function(e,t){if(0===e.length)return[];let r=[...e].sort((e,t)=>e.start-t.start),n=[],i={start:r[0].start,end:r[0].end};for(let e=1;e<r.length;e++){let o=r[e];o.start<=i.end+t?i.end=Math.max(i.end,o.end):(n.push(i),i={start:o.start,end:o.end})}return n.push(i),n}(e,r),o=[];i[0].start>r&&o.push({start:0,end:i[0].start});for(let e=0;e<i.length-1;e++)i[e+1].start-i[e].end>r&&o.push({start:i[e].end,end:i[e+1].start});let a=i[i.length-1].end;t-a>r&&o.push({start:a,end:t});let l=function(e,t,r){if(0===t.length)return[{start:0,end:e}];let n=[],i=0,o=Math.floor(r/2);for(let e of t){let t=e.start+o,r=e.end-o;r<=t||(t>i&&n.push({start:i,end:t}),i=Math.max(i,r))}return i<e&&n.push({start:i,end:e}),n}(t,o,n),s=[],d=0;for(let e of l){let t=e.end-e.start;s.push({realStart:e.start,realEnd:e.end,compactedStart:d}),d+=t}return{compactedLength:Math.ceil(d),keptRanges:s}}function e8(e,t){let r=t.keptRanges;if(0===r.length)return e;for(let t of r)if(e>=t.realStart&&e<t.realEnd)return t.compactedStart+(e-t.realStart);if(e<r[0].realStart)return r[0].compactedStart;let n=r[r.length-1];if(e>=n.realEnd)return n.compactedStart+(n.realEnd-n.realStart);for(let t=0;t<r.length-1;t++){let n=r[t],i=r[t+1];if(e>=n.realEnd&&e<i.realStart){if(e-n.realEnd<=i.realStart-e)return n.compactedStart+(n.realEnd-n.realStart);return i.compactedStart}}return e}function e3(e,t){let r=t.keptRanges;if(0===r.length)return e;let n=r[0];if(e<n.realStart)return n.compactedStart+(e-n.realStart);let i=r[r.length-1],o=i.compactedStart+(i.realEnd-i.realStart);return e>=i.realEnd?o+(e-i.realEnd):e8(e,t)}function e6(e,t){window.__sf_export_progress=t?{stage:e,detail:t}:{stage:e}}function e9(e){return!!e&&"number"==typeof e.x&&"number"==typeof e.y}
105function e7(e){console.warn("[export-runner]",e),window.__sf_export_error=e,window.__sf_export_ready=!0}e.s(["useWhiteboardExportModeRunner",0,function(){let{getNodes:e,setNodes:n,getEdges:i,setEdges:o,setViewport:a,getNodesBounds:l,getInternalNode:s}=(0,r.useCanvasEngine)(),u=(0,eO.useUpdateNodeInternals)(),c=(0,t.useRef)(!1);(0,t.useEffect)(()=>{let t;if(c.current)return;let r=function(){let e=new URLSearchParams(window.location.search);if("1"!==e.get("__export"))return null;let t=e.get("__nonce"),r=e.get("__userId"),n=e.get("__exp"),i=e.get("__sig"),o=e.get("__format"),a=e.get("__w"),l=e.get("__h"),s=e.get("__theme"),d=e.get("__quality");if(!t||!r||!n||!i||!o||!a||!l||!s)return null;let u=e.get("__slug"),c=e.get("__wb"),h=window.location.pathname.split("/").filter(Boolean),p=u&&u.length>0?u:h[0]?decodeURIComponent(h[0]):"",m=c&&c.length>0?c:h[1]?decodeURIComponent(h[1]):"";if(!p||!m)return null;let g=Number(e.get("__rx")),f=Number(e.get("__ry")),b=Number(e.get("__rw")),x=Number(e.get("__rh")),y=Number.isFinite(g)&&Number.isFinite(f)&&b>0&&x>0?{x:g,y:f,w:b,h:x}:void 0,w=Number(n),E=Number(a),C=Number(l);return Number.isFinite(w)&&Number.isFinite(E)&&Number.isFinite(C)&&["png","jpeg","pdf"].includes(o)&&["light","dark"].includes(s)?{nonce:t,projectSlug:p,whiteboardUid:m,userId:r,exp:w,sig:i,format:o,width:E,height:C,quality:"fast"===d?"fast":"high",region:y,theme:s}:null}();if(!r)return;c.current=!0,window.addEventListener("pagehide",()=>{console.warn(`[export-runner] page_unloading path=${window.location.pathname}`)});let h=!1;return(async()=>{try{var t,c;let g,f,x,y,w,E;try{let e=sessionStorage.getItem("__sf_export_signed_in_uid"),t=(0,p.getAuth)(m.default).
105currentUser;console.debug("[export-runner] mounted stashedUid="+(e??"null")+" fbUser="+(t?.uid??"null")+" path="+window.location.pathname)}catch(e){console.warn("[export-runner] mounted_diag_failed="+(e?.message??String(e)))}e6("rendering","validating");try{g=await fetch("/export-bridge/validate",{method:"POST",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(15e3),body:JSON.stringify({nonce:r.nonce,projectSlug:r.projectSlug,whiteboardUid:r.whiteboardUid,userId:r.userId,exp:r.exp,sig:r.sig})})}catch{e7("validate_fetch_failed");return}if(!g.ok)return void e7("validate_http_error");if(!(await g.json()).ok)return void e7("invalid_runner_sig");e6("rendering","loading board");let C=Date.now(),T=e(),S=0;for(;0===T.length;){if(h)return;let t=Date.now()-C;if(t>9e4){let e=(0,e$.queryCanvasRoot)(),r=(0,e$.queryCanvasViewport)(),n=document.querySelectorAll(e$.CANVAS_NODE_SELECTOR).length;console.warn(`[export-runner] nodes_not_loaded after ${t}ms rfRoot=${!!e} viewport=${!!r} domNodes=${n} path=${window.location.pathname}`),e7("nodes_not_loaded");return}if(t-S>=5e3){S=t;let e=document.querySelectorAll(e$.CANVAS_NODE_SELECTOR).length,r=(document.body?.innerText||"").replace(/\s+/g," ").trim().slice(0,200);e6("rendering",`loading board ${Math.round(t/1e3)}s`),console.debug(`[export-runner] waiting_for_nodes elapsed=${t}ms storeNodes=0 domNodes=${e} path=${window.location.pathname} body="${r}"`)}await new Promise(e=>setTimeout(e,50)),T=e()}console.debug(`[export-runner] nodes_ready count=${T.length} elapsed=${Date.now()-C}ms`),e6("rendering",`${T.length} items`);try{document.fonts&&"function"==typeof document.fonts.ready?.then&&await document.fonts.ready}catch{}try{let e=Array.from(document.querySelectorAll(`${e$.CANVAS_VIEWPORT_SELECTOR} img`));await Promise.all(e.map(e=>{if(!e.complete||!(e.naturalWidth>0))return new Promise(t=>{let r=()=>t();e.addEventListener("load",r,{once:!0}),e.addEventListener("error",r,{once:!0}),setTimeout(r,2e3)})}))}catch{}if(await new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(()=>e()))),h)return;let A=e(),_=()=>A.filter(e=>!e.hidden);if(r.region)f={x:r.region.x,y:r.region.y,width:r.region.w,height:r.region.h},x=Math.max(1,Math.ceil(r.region.w)),y=Math.max(1,Math.ceil(r.region.h)),w=0,console.debug(`[export-runner] region rect=${x}x${y} at=${Math.round(f.x)},${Math.round(f.y)}`);else{let r=l(_()),a=r.x,s=r.y,d=r.width,u=r.height,c=_().filter(e=>!e.parentId),p=[],m=[];for(let e of c){let t="number"==typeof e.style?.width?e.style.width:0,r="number"==typeof e.style?.height?e.style.height:0,n=e.measured?.width||e.width||t||200,i=e.measured?.height||e.height||r||100,o=e.position.x-a,l=e.position.y-s;p.push({start:o,end:o+n}),m.push({start:l,end:l+i})}let g=e4(p,d,400,80),b=e4(m,u,400,80),E=d-g.compactedLength>.2*d||u-b.compactedLength>.2*u;if(E){let r=A.map(e=>e.parentId?e:{...e,position:{x:e8(e.position.x-a,g),y:e8(e.position.y-s,b)}});if(n(r),o((t=i(),t.map(e=>{let t=e.data?.points;return Array.isArray(t)&&0!==t.length?{...e,data:{...e.data,points:t.map(e=>e9(e)?{...e,x:e3(e.x-a,g),y:e3(e.y-s,b)}:e)}}:e}))),await new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(()=>e()))),h)return;A=e()}f=function(e,t){let r=e.x,n=e.y,i=e.x+e.width,o=e.y+e.height;for(let e of t)if(!e.hidden)for(let t of function(e){let t=e.data?.points;return Array.isArray(t)?t.filter(e9):[]}(e))t.x<r&&(r=t.x),t.y<n&&(n=t.y),t.x>i&&(i=t.x),t.y>o&&(o=t.y);return{x:r,y:n,width:i-r,height:o-n}}(l(_()),i()),x=Math.max(1,Math.ceil(f.width+200)),y=Math.max(1,Math.ceil(f.height+200)),w=100/x,console.debug(`[export-runner] bounds span=${Math.ceil(d)}x${Math.ceil(u)} final=${x}x${y} compacted=${E}`)}let v=(0,d.getViewportForBounds)(f,x,y,.1,4,w),k=(0,e$.queryCanvasRoot)(),F=(0,e$.queryCanvasViewport)();if(!k||!F)return void e7("missing_canvas_elements");let D="pdf"!==r.format&&"high"===r.quality?2:1,M="high"===r.quality,I="pdf"===r.format&&"fast"===r.quality?b.LOW_PDF_IMAGE_MAX_DIM:0;e6("loading_images");try{E=await e5({reactFlowRoot:k,viewportElement:F,finalWidth:x,finalHeight:y,viewport:v,backgroundColor:(c=r.theme,"light"===c?e2.WHITEBOARD_CANVAS_BG_LIGHT:e2.WHITEBOARD_CANVAS_BG_DARK),setReactFlowViewport:a,boxPosition:"pdf"===r.format?"absolute":"fixed",captureScale:D,nativeResImages:M,nativeResMaxDim:"pdf"===r.format?void 0:b.EXPORT_RASTER_NATIVE_IMAGE_MAX_DIM,fixedImageMaxDim:I})}catch(e){e7(`server_prepare_failed:${e?.message??"unknown"}`);return}if(console.debug(`[export-runner] ready board=${x}x${y} format=${r.format} images=ok${E.loadedImageCount}/fail${E.failedImageCount}`),await new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(()=>e()))),h)return;e6("rendering","verifying layout");let U=new Map(_().filter(e=>!e.parentId).map(e=>[e.id,e.position])),L=()=>{let e=0,t=0;for(let[r,n]of Array.from(U)){let i=(0,e$.queryNodeElement)(r);if(!i){e+=1;continue}let o=/translate\(([-\d.]+)px,\s*([-\d.]+)px\)/.exec(i.style.transform||"");(!o||Math.abs(Number(o[1])-n.x)>1.5||Math.abs(Number(o[2])-n.y)>1.5)&&(t+=1)}return{total:U.size,missing:e,moved:t}},B=Date.now(),W=L();for(;(W.missing>0||W.moved>0)&&Date.now()-B<8e3;){if(h)return;await new Promise(e=>setTimeout(e,500)),W=L()}if(W.missing>0||W.moved>0)return void e7(`layout_mismatch:missing=${W.missing},moved=${W.moved},total=${W.total}`);let P=()=>{let e=new Map;document.querySelectorAll(`${e$.CANVAS_EDGE_SELECTOR} ${e$.CANVAS_EDGE_PATH_SELECTOR}`).forEach(t=>{let r=t.closest(e$.CANVAS_EDGE_SELECTOR),n=r?.getAttribute("data-id"),i=t.getAttribute("d");n&&i&&e.set(n,i)});let t=new Set;for(let r of i()){if(r.hidden)continue;let n=e.get(r.id),i=n?.match(/-?\d*\.?\d+(?:e[+-]?\d+)?/gi);if(i&&!(i.length<4))for(let[e,n,o]of[[Number(i[0]),Number(i[1]),r.s
105ource],[Number(i[i.length-2]),Number(i[i.length-1]),r.target]]){let r=s(o);if(!r)continue;let{x:i,y:a}=r.internals.positionAbsolute,l=r.measured?.width??r.width??0,d=r.measured?.height??r.height??0;(e<i-80||e>i+l+80||n<a-80||n>a+d+80)&&t.add(o)}}return Array.from(t)},j=Date.now(),R=P();for(;R.length>0&&Date.now()-j<8e3;){if(h)return;u(R),await new Promise(e=>setTimeout(e,500)),R=P()}if(R.length>0)return void e7(`edge_anchor_mismatch:nodes=${R.length}`);e6("rendering","finalizing"),window.__sf_export={setCanvasTransform:eY,nodeRects:eK},window.__sf_export_failed_images=E.failedImageCount,window.__sf_export_geometry={width:x,height:y,format:r.format},window.__sf_export_ready=!0}catch(e){e7(`unexpected:${e?.message??String(e)}`)}})(),()=>{h=!0,void 0!==t&&clearInterval(t)}},[e,n,i,o,a,l,s,u])}],661270);var te=e.i(937304);e.s(["useNodeInternalsRecovery",0,function(){let e=(0,te.useCanvasStoreApi)(),r=(0,eO.useUpdateNodeInternals)();(0,t.useEffect)(()=>{let t=null,n=()=>{t=null;let n=[];e.getState().nodeLookup.forEach(e=>{e.hidden||e.internals.handleBounds||n.push(e.id)}),n.length>0&&r(n)},i=e.subscribe((e,r)=>{e.nodes!==r.nodes&&null===t&&(t=setTimeout(n,150))});return()=>{i(),null!==t&&clearTimeout(t)}},[e,r])}],818047);var tt=e.i(567153),tr=e.i(214184);e.s(["useWhiteboardEdges",0,function({mutations:e,project:r,whiteboardId:n,toast:i,setEdges:o,getEdges:a,takeWhiteboardSnapshot:l,saveReactFlowStateToCache:s,viewOnly:d,getNodes:u,setNodes:c,revertLastWhiteboardSnapshot:h}){let{createWhiteboardEdgeMutation:p,updateWhiteboardEdgeAttributeMutation:m,updateWhiteboardEdgeConnectionMutation:g}=e,f=(0,t.useCallback)(async({uid:e,source:t,target:m,sourceHandle:g,targetHandle:f,edgeType:b,style:y,hasEndArrowHead:w,historyBatchId:E})=>{if(d)return;let C=await a(),T=await u(),S=T.find(e=>e.id===t),A=T.find(e=>e.id===m);if(!S||!A)return void console.error("Error creating whiteboard edge. Please try again.");if(A.type===x.ToolElementType.ToolAiGeneratedImage){let t=A.data.element,r=[];if("sourceImageUrls"in t&&t.sourceImageUrls&&(r=t.sourceImageUrls),r.length>=3){o(t=>t.filter(t=>t.id!==e)),console.error("Maximum source images of 3 reached.");return}}if(E||await l("createWhiteboardEdge"),(S.type===x.ToolElementType.ToolAiGeneratedImage||S.type===x.ToolElementType.ToolImage)&&A.type===x.ToolElementType.ToolAiGeneratedImage){let e=S.data.element,t="";"imageUrl"in e&&e.imageUrl&&(t=e.imageUrl),await c(e=>e.map(e=>e.id===A.id?{...e,data:{...e.data,element:{...e.data.element,sourceImageUrls:[...e.data.element.sourceImageUrls||[],t],sourceImageNodeUids:[...e.data.element.sourceImageNodeUids||[],S.id]}}}:e))}try{let i={uid:e,projectId:r.current?.id,whiteboardId:n.current,source:t,target:m,sourceNodeType:S?.type,targetNodeType:A?.type,sourceHandle:g,targetHandle:f,edgeType:b,styleJsonString:JSON.stringify(y),...void 0!==w?{hasEndArrowHead:w}:{},...E?{historyBatchId:E}:{}};await p({variables:i}),s()}catch(e){C&&await o(C),T&&await c(T),E||h(),console.error(e),(0,tr.handleGraphQLError)({error:e,toast:i})}},[p,r.current?.id,n.current,i,l,h,s,o,c]),b=(0,t.useCallback)(async(e,t,u,c)=>{if(d)return;let p=a();await l("updateWhiteboardEdgeAttribute");try{c(),await m({variables:{uids:e,projectId:r.current?.id,whiteboardId:n.current,attributeUpdateJsonString:JSON.stringify({attribute_name:t,attribute_value:u})}}),s()}catch(e){p&&await o(p),h(),console.error(e),(0,tr.handleGraphQLError)({error:e,toast:i})}},[m,r.current?.id,i,s,a,o,n.current]);return{createWhiteboardEdge:f,updateWhiteboardEdgeAttribute:b,updateWhiteboardEdgeConnection:(0,t.useCallback)(async({uid:e,source:t,target:p,sourceHandle:m,targetHandle:f,preExecuteFunction:b})=>{if(d)return;let y=await a(),w=await u(),E=w.find(e=>e.id===t),C=w.find(e=>e.id===p);if(!E||!C)return void console.error("Error updating whiteboard edge connection. Please try again.");if(C.type===x.ToolElementType.ToolAiGeneratedImage){let t=C.data.element,r=[];if("sourceImageUrls"in t&&t.sourceImageUrls&&(r=t.sourceImageUrls),r.length>=3){o(t=>t.filter(t=>t.id!==e)),console.error("Maximum source images of 3 reached.");return}}if(await l("updateWhiteboardEdgeConnection"),(E.type===x.ToolElementType.ToolAiGeneratedImage||E.type===x.ToolElementType.ToolImage)&&C.type===x.ToolElementType.ToolAiGeneratedImage){let e=E.data.element,t="";
105"imageUrl"in e&&e.imageUrl&&(t=e.imageUrl),await c(e=>e.map(e=>e.id===C.id?{...e,data:{...e.data,element:{...e.data.element,sourceImageUrls:[...e.data.element.sourceImageUrls||[],t],sourceImageNodeUids:[...e.data.element.sourceImageNodeUids||[],E.id]}}}:e))}try{b();let i={uid:e,projectId:r.current?.id,whiteboardId:n.current,source:t,sourceHandle:m,sourceNodeType:E?.type,targetNodeType:C?.type,target:p,targetHandle:f};await g({variables:i}),s()}catch(e){y&&await o(y),h(),console.error(e),(0,tr.handleGraphQLError)({error:e,toast:i})}},[g,s,r.current?.id,i,n.current,h,o]),onEdgeControlPointsChange:(0,t.useCallback)(async({uid:e,points:t})=>{if(d)return;let l=a();try{await m({variables:{uids:[e],projectId:r.current?.id,whiteboardId:n.current,attributeUpdateJsonString:JSON.stringify({attribute_name:tt.WHITEBOARD_EDGE_ATTRIBUTE_KEYS.CONTROL_POINTS_JSON_STRING,attribute_value:JSON.stringify(t)})}}),s()}catch(e){l&&await o(l),console.error(e),(0,tr.handleGraphQLError)({error:e,toast:i})}},[m,r.current?.id,i,s,a,o,n.current])}}],219464),e.s(["useWhiteboardAI",0,function({mutations:e,project:n,whiteboardId:i,toast:o,takeWhiteboardSnapshot:a,refetchWhiteboard:l,viewOnly:s,revertLastWhiteboardSnapshot:d,openUpgradePlanModal:c}){let{generateWhiteboardAiImageMutation:h,cancelWhiteboardAiGenerationMutation:p,answerWhiteboardAIQuestionMutation:m,makeAiAlignWhiteboardElementsMutation:g,editWhiteboardWithAIMutation:f}=e,b=(0,u.useWhiteboardSelectionStore)(e=>e.setIsAIWhiteboardEditLimitReached),x=(0,u.useWhiteboardSelectionStore)(e=>e.agenticQuestionId),y=(0,u.useWhiteboardSelectionStore)(e=>e.setAgenticQuestionText),w=(0,u.useWhiteboardSelectionStore)(e=>e.setAgenticQuestionId),E=(0,u.useWhiteboardSelectionStore)(e=>e.setWhiteboardGenerationStatusMessage),C=(0,r.useCanvasEngine)(),{getNodes:T}=C,S=(0,t.useCallback)(async({uid:e,prompt:t,sourceImageUrls:r,aspectRatio:i,quality:a,onFailed:d})=>{if(!s){if(""===t&&(!r||r?.length===0)){o({title:"Error",description:"Description or image is required",status:"error"}),d();return}""===t&&r?.length&&r?.length>0&&(t="Generate a new image based on the following images.");try{let o=await h({variables:{uid:e,projectId:n.current?.id,projectUid:n.current?.uid,prompt:t,sourceImageUrls:r,aspectRatio:i,quality:a?a.toUpperCase():void 0}});if(!o.data?.generateWhiteboardAiImage||!o.data.generateWhiteboardAiImage.status)throw Error("Failed to generate image");l()}catch(t){console.error(t),u.useWhiteboardSelectionStore.getState().setAiImageGenerationProgress(e,null),(0,tr.handleGraphQLError)({error:t,toast:o,onResourceExhaustedErrorHandler:()=>c("ai")}),d()}}},[h,n,o,l,c]),A=(0,t.useCallback)(async()=>{try{let e=await p({variables:{projectUid:n.current?.uid}});e.data?.cancelWhiteboardAiGeneration&&e.data.cancelWhiteboardAiGeneration.status||console.error("Failed to cancel whiteboard AI generation. Please try again.")}catch(e){(0,tr.handleGraphQLError)({error:e,toast:o})}},[p,n]),_=(0,t.useCallback)(async e=>{try{if(!x)return;y(null),w(null),E("Continuing generation..."),await m({variables:{projectUid:n.current?.uid,questionId:x,answer:e}})}catch(e){console.error("Failed to answer agentic question:",e)}},[m,n,x]);return{generateWhiteboardAiImage:S,cancelWhiteboardAiGeneration:A,answerAgenticQuestion:_,makeAiAlignWhiteboardElements:(0,t.useCallback)(async e=>{try{let t=await g({variables:{projectId:n.current?.id,whiteboardId:i.current,elements:e}});t.data?.makeAiAlignWhiteboardElements&&t.data.makeAiAlignWhiteboardElements.status&&l()}catch(e){(0,tr.handleGraphQLError)({error:e,toast:o})}},[g,n,i]),editWhiteboardWithAI:(0,t.useCallback)(async({prompt:e,elements:t,whiteboardElementUids:r,generateToolTypeId:a,generateToolTypeStartPositionX:l,generateToolTypeStartPositionY:s,fileAttachments:d,blueprintAdminTemplateIds:u,projectDocumentUids:c,useThinkingModel:h,sessionId:p,onResourceExhausted:m})=>{try{let o=l,m=s;if(a&&(void 0===o||void 0===m||0===o&&0===m)){let e=300===a||800===a?1e3:100,t=T();if(0===t.length)if(C){let e=C.getViewport(),t=e.zoom,r=window.innerWidth/t,n=window.innerHeight/t;o=-e.x/t+r/2,m=-e.y/t+n/2,console.debug(`ð Empty board: Centering at (${Math.round(o)}, ${Math.round(m)})`)}else o=0,m=0;else{console.debug(`ð Finding furthest position among ${t.length} elements...`);let r=-1/0,n=-1/0;
105t.forEach(e=>{let t=e.data?.attributes?.width||e.width||200,i=e.data?.attributes?.height||e.height||200,o=e.position.x+t,a=e.position.y+i;o>r&&(r=o),a>n&&(n=a)}),o=r+e,m=n+e,console.debug(`â
Placing at furthest position: (${Math.round(o)}, ${Math.round(m)})`)}}let g=await f({variables:{projectId:n.current?.id,projectUid:n.current?.uid,whiteboardId:i.current,prompt:e,elements:t,whiteboardElementUids:r,generateToolTypeId:a,generateToolTypeStartPositionX:void 0!==o?Math.round(o):void 0,generateToolTypeStartPositionY:void 0!==m?Math.round(m):void 0,...d&&d.length>0?{fileAttachments:d}:{},...u&&u.length>0?{blueprintAdminTemplateIds:u}:{},...c&&c.length>0?{projectDocumentUids:c}:{},...h?{useThinkingModel:h}:{},...p&&p>0?{sessionId:p}:{}}});if(!g.data?.editWhiteboardWithAI||!g.data.editWhiteboardWithAI.status)return void console.error("Failed to send prompt to AI. Please try again.")}catch(e){(0,tr.handleGraphQLError)({error:e,toast:o,onResourceExhaustedErrorHandler:()=>b(!0)})}},[f,n,i,b])}}],579834),e.s(["computeAlignedPositions",0,function(e,t){if(t.length<2)return new Map;let r=new Map;switch(e){case"align-left":{let e=Math.min(...t.map(e=>e.x));t.forEach(t=>r.set(t.id,{x:e,y:t.y}));break}case"align-center":{let e=(Math.min(...t.map(e=>e.x))+Math.max(...t.map(e=>e.x+e.width)))/2;t.forEach(t=>r.set(t.id,{x:e-t.width/2,y:t.y}));break}case"align-right":{let e=Math.max(...t.map(e=>e.x+e.width));t.forEach(t=>r.set(t.id,{x:e-t.width,y:t.y}));break}case"align-top":{let e=Math.min(...t.map(e=>e.y));t.forEach(t=>r.set(t.id,{x:t.x,y:e}));break}case"align-middle":{let e=(Math.min(...t.map(e=>e.y))+Math.max(...t.map(e=>e.y+e.height)))/2;t.forEach(t=>r.set(t.id,{x:t.x,y:e-t.height/2}));break}case"align-bottom":{let e=Math.max(...t.map(e=>e.y+e.height));t.forEach(t=>r.set(t.id,{x:t.x,y:e-t.height}));break}case"distribute-h":{let e=[...t].sort((e,t)=>e.x-t.x),n=e.reduce((e,t)=>e+t.width,0),i=e[0].x,o=Math.max(0,(e[e.length-1].x+e[e.length-1].width-i-n)/(e.length-1)),a=i;e.forEach(e=>{r.set(e.id,{x:a,y:e.y}),a+=e.width+o});break}case"distribute-v":{let e=[...t].sort((e,t)=>e.y-t.y),n=e.reduce((e,t)=>e+t.height,0),i=e[0].y,o=Math.max(0,(e[e.length-1].y+e[e.length-1].height-i-n)/(e.length-1)),a=i;e.forEach(e=>{r.set(e.id,{x:e.x,y:a}),a+=e.height+o})}}return r}],548694)},483423,(e,t,r)=>{var n={init:function(){for(var e,t,r,i=0;i<n.names.length;i++)e="#"+n.names[i][0],t=n.rgb(e),r=n.hsl(e),n.names[i].push(t[0],t[1],t[2],r[0],r[1],r[2])},name:function(e){if((e=e.toUpperCase()).length<3||e.length>7)return["#000000","Invalid Color: "+e,!1];e.length%3==0&&(e="#"+e),4==e.length&&(e="#"+e.substr(1,1)+e.substr(1,1)+e.substr(2,1)+e.substr(2,1)+e.substr(3,1)+e.substr(3,1));var t=n.rgb(e),r=t[0],i=t[1],o=t[2],a=n.hsl(e),l=a[0],s=a[1],d=a[2],u=0;ndf2=0,ndf=0;for(var c=-1,h=-1,p=0;p<n.names.length;p++){if(e=="#"+n.names[p][0])return["#"+n.names[p][0],n.names[p][1],!0];ndf=(u=Math.pow(r-n.names[p][2],2)+Math.pow(i-n.names[p][3],2)+Math.pow(o-n.names[p][4],2))+2*(ndf2=Math.pow(l-n.names[p][5],2)+Math.pow(s-n.names[p][6],2)+Math.pow(d-n.names[p][7],2)),(h<0||h>ndf)&&(h=ndf,c=p)}return c<0?["#000000","Invalid Color: "+e,!1]:["#"+n.names[c][0],n.names[c][1],!1]},hsl:function(e){var t,r,n,i,o,a,l=[parseInt("0x"+e.substring(1,3))/255,parseInt("0x"+e.substring(3,5))/255,parseInt("0x"+e.substring(5,7))/255],s=l[0],d=l[1],u=l[2];return t=Math.min(s,Math.min(d,u)),n=(r=Math.max(s,Math.max(d,u)))-t,o=0,(a=(t+r)/2)>0&&a<1&&(o=n/(a<.5?2*a:2-2*a)),i=0,n>0&&(r==s&&r!=d&&(i+=(d-u)/n),r==d&&r!=u&&(i+=2+(u-s)/n),r==u&&r!=s&&(i+=4+(s-d)/n),i/=6),[parseInt(255*i),parseInt(255*o),parseInt(255*a)]},rgb:function(e){return[parseInt("0x"+e.substring(1,3)),parseInt("0x"+e.substring(3,5)),parseInt("0x"+e.substring(5,7))]},names:[["000000","Black"],["000080","Navy Blue"],["0000C8","Dark Blue"],["0000FF","Blue"],["000741","Stratos"],["001B1C","Swamp"],["002387","Resolution Blue"],["002900","Deep Fir"],["002E20","Burnham"],["002FA7","International Klein Blue"],["003153","Prussian Blue"],["003366","Midnight Blue"],["003399","Smalt"],["003532","Deep Teal"],["003E40","Cyprus"],["004620","Kaitoke Green"],["0047AB","Cobalt"],["004816","Crusoe"],["004950","Sherpa Blue"],["0056A7","Endeavour"],["00581A","Camarone"],["0066CC","Science Blue"],["0066FF","Blue Ribbon"],["00755E","Tropical Rain Forest"],["0076A3","Allports"],["007BA7","Deep Cerulean"],["007EC7","Lochmara"],["007FFF","Azure Radiance"],["008080","Teal"],["0095B6","Bondi Blue"],["009DC4","Pacific Blue"],["00A693","Persian Green"],["00A86B","Jade"],["00CC99","Caribbean Green"],["00CCCC","Robin's Egg Blue"],["00FF00","Green"],["00FF7F","Spring Green"],["00FFFF","Cyan / Aqua"],["010D1A","Blue Charcoal"],["011635","Midnight"],["011D13","Holly"],["012731","Daintree"],["01361C","Cardin Green"],["01371A","County Green"],["013E62","Astronaut Blue"],["013F6A","Regal Blue"],["014B43","Aqua Deep"],["015E85","Orient"],["016162","Blue Stone"],["016D39","Fun Green"],["01796F","Pine Green"],["017987","Blue Lagoon"],["01826B","Deep Sea"],["01A368","Green Haze"],["022D15","English Holly"],["02402C","Sherwood Green"],["02478E","Congress Blue"],["024E46","Evening Sea"],["026395","Bahama Blue"],["02866F","Observatory"],["02A4D3","Cerulean"],["03163C","Tangaroa"],["032B52","Green Vogue"],["036A6E","Mosque"],["041004","Midnight Moss"],["041322","Black Pearl"],["042E4C","Blue Whale"],["044022","Zuccini"],["044259","Teal Blue"],["051040","Deep Cove"],["051657","Gulf Blue"],["055989","Venice Blue"],["056F57","Watercourse"],["062A78","Catalina Blue"],["063537","Tiber"],["069B81","Gossamer"],["06A189","Niagara"],["073A50","Tarawera"],["080110","Jaguar"],["081910","Black Bean"],["082567","Deep Sapphire"],["088370","Elf Green"],["08E8DE","Bright Turquoise"],["092256","Downriver"],["09230F","Palm Green"],["09255D","Madison"],["093624","Bottle Green"],["095859","Deep Sea Green"],["097F4B","Salem"],["0A001C","Black Russian"],["0A480D","Dark Fern"],["0A6906","Japanese Laurel"],["0A6F75","Atoll"],["0B0B0B","Cod Gray"],["0B0F08","Marshland"],["0B1107","Gordons Green"],["0B1304","Black Forest"],["0B6207","San Felix"],["0BDA51","Malachite"],["0C0B1D","Ebony"],["0C0D0F","Woodsmoke"],["0C1911","Racing Green"],["0C7A79","Surfie Green"],["0C8990","Blue Chill"],["0D0332","Black Rock"],["0D1117","Bunker"],["0D1C19","Aztec"],["0D2E1C","Bush"],["0E0E18","Cinder"],["0E2A30","Firefly"],["0F2D9E","Torea Bay"],["10121D","Vulcan"],["101405","Green Waterloo"],["105852","Eden"],["110C6C","Arapawa"],["120A8F","Ultramarine"],["123447","Elephant"],["126B40","Jewel"],["130000","Diesel"],["130A06","Asphalt"],["13264D","Blue Zodiac"],["134F19","Parsley"],["140600","Nero"],["1450AA","Tory Blue"],["151F4C","Bunting"],["1560BD","Denim"],["15736B","Genoa"],["161928","Mirage"],["161D10","Hunter Green"],["162A40","Big Stone"],["163222","Celtic"],["16322C","Timber Green"],["163531","Gable Green"],["171F04","Pine Tree"],["175579","Chathams Blue"],["182D09","Deep Forest Green"],["18587A","Blumine"],["19330E","Palm Leaf"],["193751","Nile Blue"],["1959A8","Fun Blue"],["1A1A68","Lucky Point"],["1AB385","Mountain Meadow"],["1B0245","Tolopea"],["1B1035","Haiti"],["1B127B","Deep Koamaru"],["1B1404","Acadia"],["1B2F11","Seaweed"],["1B3162","Biscay"],["1B659D","Matisse"],["1C1208","Crowshead"],["1C1E13","Rangoon Green"],["1C39BB","Persian Blue"],["1C402E","Everglade"],["1C7C7D","Elm"],["1D6142","Green Pea"],["1E0
105F04","Creole"],["1E1609","Karaka"],["1E1708","El Paso"],["1E385B","Cello"],["1E433C","Te Papa Green"],["1E90FF","Dodger Blue"],["1E9AB0","Eastern Blue"],["1F120F","Night Rider"],["1FC2C2","Java"],["20208D","Jacksons Purple"],["202E54","Cloud Burst"],["204852","Blue Dianne"],["211A0E","Eternity"],["220878","Deep Blue"],["228B22","Forest Green"],["233418","Mallard"],["240A40","Violet"],["240C02","Kilamanjaro"],["242A1D","Log Cabin"],["242E16","Black Olive"],["24500F","Green House"],["251607","Graphite"],["251706","Cannon Black"],["251F4F","Port Gore"],["25272C","Shark"],["25311C","Green Kelp"],["2596D1","Curious Blue"],["260368","Paua"],["26056A","Paris M"],["261105","Wood Bark"],["261414","Gondola"],["262335","Steel Gray"],["26283B","Ebony Clay"],["273A81","Bay of Many"],["27504B","Plantation"],["278A5B","Eucalyptus"],["281E15","Oil"],["283A77","Astronaut"],["286ACD","Mariner"],["290C5E","Violent Violet"],["292130","Bastille"],["292319","Zeus"],["292937","Charade"],["297B9A","Jelly Bean"],["29AB87","Jungle Green"],["2A0359","Cherry Pie"],["2A140E","Coffee Bean"],["2A2630","Baltic Sea"],["2A380B","Turtle Green"],["2A52BE","Cerulean Blue"],["2B0202","Sepia Black"],["2B194F","Valhalla"],["2B3228","Heavy Metal"],["2C0E8C","Blue Gem"],["2C1632","Revolver"],["2C2133","Bleached Cedar"],["2C8C84","Lochinvar"],["2D2510","Mikado"],["2D383A","Outer Space"],["2D569B","St Tropaz"],["2E0329","Jacaranda"],["2E1905","Jacko Bean"],["2E3222","Rangitoto"],["2E3F62","Rhino"],["2E8B57","Sea Green"],["2EBFD4","Scooter"],["2F270E","Onion"],["2F3CB3","Governor Bay"],["2F519E","Sapphire"],["2F5A57","Spectra"],["2F6168","Casal"],["300529","Melanzane"],["301F1E","Cocoa Brown"],["302A0F","Woodrush"],["304B6A","San Juan"],["30D5C8","Turquoise"],["311C17","Eclipse"],["314459","Pickled Bluewood"],["315BA1","Azure"],["31728D","Calypso"],["317D82","Paradiso"],["32127A","Persian Indigo"],["32293A","Blackcurrant"],["323232","Mine Shaft"],["325D52","Stromboli"],["327C14","Bilbao"],["327DA0","Astral"],["33036B","Christalle"],["33292F","Thunder"],["33CC99","Shamrock"],["341515","Tamarind"],["350036","Mardi Gras"],["350E42","Valentino"],["350E57","Jagger"],["353542","Tuna"],["354E8C","Chambray"],["363050","Martinique"],["363534","Tuatara"],["363C0D","Waiouru"],["36747D","Ming"],["368716","La Palma"],["370202","Chocolate"],["371D09","Clinker"],["37290E","Brown Tumbleweed"],["373021","Birch"],["377475","Oracle"],["380474","Blue Diamond"],["381A51","Grape"],["383533","Dune"],["384555","Oxford Blue"],["384910","Clover"],["394851","Limed Spruce"],["396413","Dell"],["3A0020","Toledo"],["3A2010","Sambuca"],["3A2A6A","Jacarta"],["3A686C","William"],["3A6A47","Killarney"],["3AB09E","Keppel"],["3B000B","Temptress"],["3B0910","Aubergine"],["3B1F1F","Jon"],["3B2820","Treehouse"],["3B7A57","Amazon"],["3B91B4","Boston Blue"],["3C0878","Windsor"],["3C1206","Rebel"],["3C1F76","Meteorite"],["3C2005","Dark Ebony"],["3C3910","Camouflage"],["3C4151","Bright Gray"],["3C4443","Cape Cod"],["3C493A","Lunar Green"],["3D0C02","Bean "],["3D2B1F","Bistre"],["3D7D52","Goblin"],["3E0480","Kingfisher Daisy"],["3E1C14","Cedar"],["3E2B23","English Walnut"],["3E2C1C","Black Marlin"],["3E3A44","Ship Gray"],["3EABBF","Pelorous"],["3F2109","Bronze"],["3F2500","Cola"],["3F3002","Madras"],["3F307F","Minsk"],["3F4C3A","Cabbage Pont"],["3F583B","Tom Thumb"],["3F5D53","Mineral Green"],["3FC1AA","Puerto Rico"],["3FFF00","Harlequin"],["401801","Brown Pod"],["40291D","Cork"],["403B38","Masala"],["403D19","Thatch Green"],["405169","Fiord"],["40826D","Viridian"],["40A860","Chateau Green"],["410056","Ripe Plum"],["411F10","Paco"],["412010","Deep Oak"],["413C37","Merlin"],["414257","Gun Powder"],["414C7D","East Bay"],["4169E1","Royal Blue"],["41AA78","Ocean Green"],["420303","Burnt Maroon"],["423921","Lisbon Brown"],["427977","Faded Jade"],["431560","Scarlet Gum"],["433120","Iroko"],["433E37","Armadillo"],["434C59","River Bed"],["436A0D","Green Leaf"],["44012D","Barossa"],["441D00","Morocco Brown"],["444954","Mako"],["454936","Kelp"],["456CAC","San Marino"],["45B1E8","Picton Blue"],["460B41","Loulou"],["462425","Crater Brown"],["465945","Gray Asparagus"],["4682B4","Steel Blue"],["480404","Rustic Red"],["480607","Bulgarian Rose"],["480656","Clairvoyant"],["481C1C","Cocoa Bean"],["483131","Woody Brown"],["483C32","Taupe"],["49170C","Van Cleef"],["492615","Brown Derby"],["49371B","Metallic Bronze"],["495400","Verdun Green"],["496679","Blue Bayoux"],["497183","Bismark"],["4A2A04","Bracken"],["4A3004","Deep Bronze"],["4A3C30","Mondo"],["4A4244","Tundora"],["4A444B","Gravel"],["4A4E5A","Trout"],["4B0082","Pigment Indigo"],["4B5D52","Nandor"],["4C3024","Saddle"],["4C4F56","Abbey"],["4D0135","Blackberry"],["4D0A18","Cab Sav"],["4D1E01","Indian Tan"],["4D282D","Cowboy"],["4D282E","Livid Brown"],["4D3833","Rock"],["4D3D14","Punga"],["4D400F","Bronzetone"],["4D5328","Woodland"],["4E0606","Mahogany"],["4E2A5A","Bossanova"],["4E3B41","Matterhorn"],["4E420C","Bronze Olive"],["4E4562","Mulled Wine"],["4E6649","Axolotl"],["4E7F9E","Wedgewood"],["4EABD1","Shakespeare"],["4F1C70","Honey Flower"],["4F2398","Daisy Bush"],["4F69C6","Indigo"],["4F7942","Fern Green"],["4F9D5D","Fruit Salad"],["4FA83D","Apple"],["504351","Mortar"],["507096","Kashmir Blue"],["507672","Cutty Sark"],["50C878","Emerald"],["514649","Emperor"],["516E3D","Chalet Green"],["517C66","Como"],["51808F","Smalt Blue"],["52001F","Castro"],["520C17","Maroon Oak"],["523C94","Gigas"],["533455","Voodoo"],["534491","Victoria"],["53824B","Hippie Green"],["541012","Heath"],["544333","Judge Gray"],["54534D","Fuscous Gray"],["549019","Vida Loca"],["55280C","Cioccolato"],["555B10","Saratoga"],["556D56","Finlandia"],["5590D9","Havelock Blue"],["56B4BE","Fountain Blue"],["578363","Spring Leaves"],["583401","Saddle Brown"],["585562","Scarpa Flow"],["587156","Cactus"],["589AAF","Hippie Blue"],["591D35","Wine Berry"],["592804","Brown Bramble"],["593737","Congo Brown"],["594433","Millbrook"],["5A6E9C","Waikawa Gray"],["5A87A0","Horizon"],["5B3013","Jambalaya"],["5C0120","Bordeaux"],["5C0536","Mulberry Wood"],["5C2E01","Carnaby Tan"],["5C5D75","Comet"],["5D1E0F","Redwood"],["5D4C51","Don Juan"],["5D5C58","Chicago"],["5D5E37","Verdigris"],["5D7747","Dingley"],["5DA19F","Breaker Bay"],["5E483E","Kabul"],["5E5D3B","Hemlock"],["5F3D26","Irish Coffee"],["5F5F6E","Mid Gray"],["5F6672","Shuttle Gray"],["5FA777","Aqua Forest"],["5FB3AC","Tradewind"],["604913","Horses Neck"],["605B73","Smoky"],["606E68","Corduroy"],["6093D1","Danube"],["612718","Espresso"],["614051","Eggplant"],["615D30","Costa Del Sol"],["61845F","Glade Green"],["622F30","Buccaneer"],["623F2D","Quincy"],["624E9A","Butterfly Bush"],["625119","West Coast"],["626649","Finch"],["639A8F","Patina"],["63B76C","Fern"],["6456B7","Blue Violet"],["646077","Dolphin"],["646463","Storm Dust"],["646A54","Siam"],["646E75","Nevada"],["6495ED","Cornflower Blue"],["64CCDB","Viking"],["65000B","Rosewood"],["651A14","Cherrywood"],["652DC1","Purple Heart"],["657220","Fern Frond"],["65745D","Willow Grove"],["65869F","Hoki"],["660045","Pompadour"],["660099","Purple"],["66023C","Tyrian Purple"],["661010","Dark Tan"],["66B58F","Silver Tree"],["66FF00","Bright Green"],["66FF66","Screamin' Green"],["67032D","Black Rose"],["675FA6","Scampi"],["676662","Ironside Gray"],["678975","Viridian Green"],["67A712","Christi"],["683600","Nutmeg Wood Finish"],["685558","Zambezi"],["685E6E","Salt Box"],["692545","Tawny Port"],["692D54","Finn"],["695F62","Scorpion"],["697E9A","Lynch"],["6A442E","Spice"],["6A5D1B","Himalaya"],["6A6051","Soya Bean"],["6B2A14","Hairy Heath"],["6B3FA0","Royal Purple"],["6B4E31","Shingle Fawn"],["6B5755","Dorado"],["6B8BA2","Bermuda Gray"],["6B8E23","Olive Drab"],["6C3082","Eminence"],["6CDAE7","Turquoise Blue"],["6D0101","
105Lonestar"],["6D5E54","Pine Cone"],["6D6C6C","Dove Gray"],["6D9292","Juniper"],["6D92A1","Gothic"],["6E0902","Red Oxide"],["6E1D14","Moccaccino"],["6E4826","Pickled Bean"],["6E4B26","Dallas"],["6E6D57","Kokoda"],["6E7783","Pale Sky"],["6F440C","Cafe Royale"],["6F6A61","Flint"],["6F8E63","Highland"],["6F9D02","Limeade"],["6FD0C5","Downy"],["701C1C","Persian Plum"],["704214","Sepia"],["704A07","Antique Bronze"],["704F50","Ferra"],["706555","Coffee"],["708090","Slate Gray"],["711A00","Cedar Wood Finish"],["71291D","Metallic Copper"],["714693","Affair"],["714AB2","Studio"],["715D47","Tobacco Brown"],["716338","Yellow Metal"],["716B56","Peat"],["716E10","Olivetone"],["717486","Storm Gray"],["718080","Sirocco"],["71D9E2","Aquamarine Blue"],["72010F","Venetian Red"],["724A2F","Old Copper"],["726D4E","Go Ben"],["727B89","Raven"],["731E8F","Seance"],["734A12","Raw Umber"],["736C9F","Kimberly"],["736D58","Crocodile"],["737829","Crete"],["738678","Xanadu"],["74640D","Spicy Mustard"],["747D63","Limed Ash"],["747D83","Rolling Stone"],["748881","Blue Smoke"],["749378","Laurel"],["74C365","Mantis"],["755A57","Russett"],["7563A8","Deluge"],["76395D","Cosmic"],["7666C6","Blue Marguerite"],["76BD17","Lima"],["76D7EA","Sky Blue"],["770F05","Dark Burgundy"],["771F1F","Crown of Thorns"],["773F1A","Walnut"],["776F61","Pablo"],["778120","Pacifika"],["779E86","Oxley"],["77DD77","Pastel Green"],["780109","Japanese Maple"],["782D19","Mocha"],["782F16","Peanut"],["78866B","Camouflage Green"],["788A25","Wasabi"],["788BBA","Ship Cove"],["78A39C","Sea Nymph"],["795D4C","Roman Coffee"],["796878","Old Lavender"],["796989","Rum"],["796A78","Fedora"],["796D62","Sandstone"],["79DEEC","Spray"],["7A013A","Siren"],["7A58C1","Fuchsia Blue"],["7A7A7A","Boulder"],["7A89B8","Wild Blue Yonder"],["7AC488","De York"],["7B3801","Red Beech"],["7B3F00","Cinnamon"],["7B6608","Yukon Gold"],["7B7874","Tapa"],["7B7C94","Waterloo "],["7B8265","Flax Smoke"],["7B9F80","Amulet"],["7BA05B","Asparagus"],["7C1C05","Kenyan Copper"],["7C7631","Pesto"],["7C778A","Topaz"],["7C7B7A","Concord"],["7C7B82","Jumbo"],["7C881A","Trendy Green"],["7CA1A6","Gumbo"],["7CB0A1","Acapulco"],["7CB7BB","Neptune"],["7D2C14","Pueblo"],["7DA98D","Bay Leaf"],["7DC8F7","Malibu"],["7DD8C6","Bermuda"],["7E3A15","Copper Canyon"],["7F1734","Claret"],["7F3A02","Peru Tan"],["7F626D","Falcon"],["7F7589","Mobster"],["7F76D3","Moody Blue"],["7FFF00","Chartreuse"],["7FFFD4","Aquamarine"],["800000","Maroon"],["800B47","Rose Bud Cherry"],["801818","Falu Red"],["80341F","Red Robin"],["803790","Vivid Violet"],["80461B","Russet"],["807E79","Friar Gray"],["808000","Olive"],["808080","Gray"],["80B3AE","Gulf Stream"],["80B3C4","Glacier"],["80CCEA","Seagull"],["81422C","Nutmeg"],["816E71","Spicy Pink"],["817377","Empress"],["819885","Spanish Green"],["826F65","Sand Dune"],["828685","Gunsmoke"],["828F72","Battleship Gray"],["831923","Merlot"],["837050","Shadow"],["83AA5D","Chelsea Cucumber"],["83D0C6","Monte Carlo"],["843179","Plum"],["84A0A0","Granny Smith"],["8581D9","Chetwode Blue"],["858470","Bandicoot"],["859FAF","Bali Hai"],["85C4CC","Half Baked"],["860111","Red Devil"],["863C3C","Lotus"],["86483C","Ironstone"],["864D1E","Bull Shot"],["86560A","Rusty Nail"],["868974","Bitter"],["86949F","Regent Gray"],["871550","Disco"],["87756E","Americano"],["877C7B","Hurricane"],["878D91","Oslo Gray"],["87AB39","Sushi"],["885342","Spicy Mix"],["886221","Kumera"],["888387","Suva Gray"],["888D65","Avocado"],["893456","Camelot"],["893843","Solid Pink"],["894367","Cannon Pink"],["897D6D","Makara"],["8A3324","Burnt Umber"],["8A73D6","True V"],["8A8360","Clay Creek"],["8A8389","Monsoon"],["8A8F8A","Stack"],["8AB9F1","Jordy Blue"],["8B00FF","Electric Violet"],["8B0723","Monarch"],["8B6B0B","Corn Harvest"],["8B8470","Olive Haze"],["8B847E","Schooner"],["8B8680","Natural Gray"],["8B9C90","Mantle"],["8B9FEE","Portage"],["8BA690","Envy"],["8BA9A5","Cascade"],["8BE6D8","Riptide"],["8C055E","Cardinal Pink"],["8C472F","Mule Fawn"],["8C5738","Potters Clay"],["8C6495","Trendy Pink"],["8D0226","Paprika"],["8D3D38","Sanguine Brown"],["8D3F3F","Tosca"],["8D7662","Cement"],["8D8974","Granite Green"],["8D90A1","Manatee"],["8DA8CC","Polo Blue"],["8E0000","Red Berry"],["8E4D1E","Rope"],["8E6F70","Opium"],["8E775E","Domino"],["8E8190","Mamba"],["8EABC1","Nepal"],["8F021C","Pohutukawa"],["8F3E33","El Salva"],["8F4B0E","Korma"],["8F8176","Squirrel"],["8FD6B4","Vista Blue"],["900020","Burgundy"],["901E1E","Old Brick"],["907874","Hemp"],["907B71","Almond Frost"],["908D39","Sycamore"],["92000A","Sangria"],["924321","Cumin"],["926F5B","Beaver"],["928573","Stonewall"],["928590","Venus"],["9370D
105B","Medium Purple"],["93CCEA","Cornflower"],["93DFB8","Algae Green"],["944747","Copper Rust"],["948771","Arrowtown"],["950015","Scarlett"],["956387","Strikemaster"],["959396","Mountain Mist"],["960018","Carmine"],["964B00","Brown"],["967059","Leather"],["9678B6","Purple Mountain's Majesty"],["967BB6","Lavender Purple"],["96A8A1","Pewter"],["96BBAB","Summer Green"],["97605D","Au Chico"],["9771B5","Wisteria"],["97CD2D","Atlantis"],["983D61","Vin Rouge"],["9874D3","Lilac Bush"],["98777B","Bazaar"],["98811B","Hacienda"],["988D77","Pale Oyster"],["98FF98","Mint Green"],["990066","Fresh Eggplant"],["991199","Violet Eggplant"],["991613","Tamarillo"],["991B07","Totem Pole"],["996666","Copper Rose"],["9966CC","Amethyst"],["997A8D","Mountbatten Pink"],["9999CC","Blue Bell"],["9A3820","Prairie Sand"],["9A6E61","Toast"],["9A9577","Gurkha"],["9AB973","Olivine"],["9AC2B8","Shadow Green"],["9B4703","Oregon"],["9B9E8F","Lemon Grass"],["9C3336","Stiletto"],["9D5616","Hawaiian Tan"],["9DACB7","Gull Gray"],["9DC209","Pistachio"],["9DE093","Granny Smith Apple"],["9DE5FF","Anakiwa"],["9E5302","Chelsea Gem"],["9E5B40","Sepia Skin"],["9EA587","Sage"],["9EA91F","Citron"],["9EB1CD","Rock Blue"],["9EDEE0","Morning Glory"],["9F381D","Cognac"],["9F821C","Reef Gold"],["9F9F9C","Star Dust"],["9FA0B1","Santas Gray"],["9FD7D3","Sinbad"],["9FDD8C","Feijoa"],["A02712","Tabasco"],["A1750D","Buttered Rum"],["A1ADB5","Hit Gray"],["A1C50A","Citrus"],["A1DAD7","Aqua Island"],["A1E9DE","Water Leaf"],["A2006D","Flirt"],["A23B6C","Rouge"],["A26645","Cape Palliser"],["A2AAB3","Gray Chateau"],["A2AEAB","Edward"],["A3807B","Pharlap"],["A397B4","Amethyst Smoke"],["A3E3ED","Blizzard Blue"],["A4A49D","Delta"],["A4A6D3","Wistful"],["A4AF6E","Green Smoke"],["A50B5E","Jazzberry Jam"],["A59B91","Zorba"],["A5CB0C","Bahia"],["A62F20","Roof Terracotta"],["A65529","Paarl"],["A68B5B","Barley Corn"],["A69279","Donkey Brown"],["A6A29A","Dawn"],["A72525","Mexican Red"],["A7882C","Luxor Gold"],["A85307","Rich Gold"],["A86515","Reno Sand"],["A86B6B","Coral Tree"],["A8989B","Dusty Gray"],["A899E6","Dull Lavender"],["A8A589","Tallow"],["A8AE9C","Bud"],["A8AF8E","Locust"],["A8BD9F","Norway"],["A8E3BD","Chinook"],["A9A491","Gray Olive"],["A9ACB6","Aluminium"],["A9B2C3","Cadet Blue"],["A9B497","Schist"],["A9BDBF","Tower Gray"],["A9BEF2","Perano"],["A9C6C2","Opal"],["AA375A","Night Shadz"],["AA4203","Fire"],["AA8B5B","Muesli"],["AA8D6F","Sandal"],["AAA5A9","Shady Lady"],["AAA9CD","Logan"],["AAABB7","Spun Pearl"],["AAD6E6","Regent St Blue"],["AAF0D1","Magic Mint"],["AB0563","Lipstick"],["AB3472","Royal Heath"],["AB917A","Sandrift"],["ABA0D9","Cold Purple"],["ABA196","Bronco"],["AC8A56","Limed Oak"],["AC91CE","East Side"],["AC9E22","Lemon Ginger"],["ACA494","Napa"],["ACA586","Hillary"],["ACA59F","Cloudy"],["ACACAC","Silver Chalice"],["ACB78E","Swamp Green"],["ACCBB1","Spring Rain"],["ACDD4D","Conifer"],["ACE1AF","Celadon"],["AD781B","Mandalay"],["ADBED1","Casper"],["ADDFAD","Moss Green"],["ADE6C4","Padua"],["ADFF2F","Green Yellow"],["AE4560","Hippie Pink"],["AE6020","Desert"],["AE809E","Bouquet"],["AF4035","Medium Carmine"],["AF4D43","Apple Blossom"],["AF593E","Brown Rust"],["AF8751","Driftwood"],["AF8F2C","Alpine"],["AF9F1C","Lucky"],["AFA09E","Martini"],["AFB1B8","Bombay"],["AFBDD9","Pigeon Post"],["B04C6A","Cadillac"],["B05D54","Matrix"],["B05E81","Tapestry"],["B06608","Mai Tai"],["B09A95","Del Rio"],["B0E0E6","Powder Blue"],["B0E313","Inch Worm"],["B10000","Bright Red"],["B14A0B","Vesuvius"],["B1610B","Pumpkin Skin"],["B16D52","Santa Fe"],["B19461","Teak"],["B1E2C1","Fringy Flower"],["B1F4E7","Ice Cold"],["B20931","Shiraz"],["B2A1EA","Biloba Flower"],["B32D29","Tall Poppy"],["B35213","Fiery Orange"],["B38007","Hot Toddy"],["B3AF95","Taupe Gray"],["B3C110","La Rioja"],["B43332","Well Read"],["B44668","Blush"],["B4CFD3","Jungle Mist"],["B57281","Turkish Rose"],["B57EDC","Lavender"],["B5A27F","Mongoose"],["B5B35C","Olive Green"],["B5D2CE","Jet Stream"],["B5ECDF","Cruise"],["B6316C","Hibiscus"],["B69D98","Thatch"],["B6B095","Heathered Gray"],["B6BAA4","Eagle"],["B6D1EA","Spindle"],["B6D3BF","Gum Leaf"],["B7410E","Rust"],["B78E5C","Muddy Waters"],["B7A214","Sahara"],["B7A458","Husk"],["B7B1B1","Nobel"],["B7C3D0","Heather"],["B7F0BE","Madang"],["B81104","Milano Red"],["B87333","Copper"],["B8B56A","Gimblet"],["B8C1B1","Green Spring"],["B8C25D","Celery"],["B8E0F9","Sail"],["B94E48","Chestnut"],["B95140","Crail"],["B98D28","Marigold"],["B9C46A","Wild Willow"],["B9C8AC","Rainee"],["BA0101","Guardsman Red"],["BA450C","Rock Spray"],["BA6F1E","Bourbon"],["BA7F03","Pirate Gold"],["BAB1A2","Nomad"],["BAC7C9","Submarine"],["BAEEF9","Charlotte"],["BB3385","Medium Red Violet"],["BB8983","Brandy Rose"],["BBD009","Rio Grande"],["BBD7C1","Surf"],["BCC9C2","Powder Ash"],["BD5E2E","Tuscany"],["BD978E","Quicksand"],["BDB1A8","Silk"],["BDB2A1","Malta"],["BDB3C7","Chatelle"],["BDBBD7","Lavender Gray"],["BDBDC6","French Gray"],["BDC8B3","Clay Ash"],["BDC9CE","Loblolly"],["BDEDFD","French Pass"],["BEA6C3","London Hue"],["BEB5B7","Pink Swan"],["BEDE0D","Fuego"],["BF5500","Rose of Sharon"],["BFB8B0","Tide"],["BFBED8","Blue Haze"],["BFC1C2","Silver Sand"],["BFC921","Key Lime Pie"],["BFDBE2","Ziggurat"],["BFFF00","Lime"],["C02B18","Thunderbird"],["C04737","Mojo"],["C08081","Old Rose"],["C0C0C0","Silver"],["C0D3B9","Pale Leaf"],["C0D8B6","Pixie Green"],["C1440E","Tia Maria"],["C154C1","Fuchsia Pink"],["C1A004","Buddha Gold"],["C1B7A4","Bison Hide"],["C1BAB0","Tea"],["C1BECD","Gray Suit"],["C1D7B0","Sprout"],["C1F07C","Sulu"],["C26B03","Indochine"],["C2955D","Twine"],["C2BDB6","Cotton Seed"],["C2CAC4","Pumice"],["C2E8E5","Jagged Ice"],["C32148","Maroon Flush"],["C3B091","Indian Khaki"],["C3BFC1","Pale Slate"],["C3C3BD","Gray Nickel"],["C3CDE6","Periwinkle Gray"],["C3D1D1","Tiara"],["C3DDF9","Tropical Blue"],["C41E3A","Cardinal"],["C45655","Fuzzy Wuzzy Brown"],["C45719","Orange Roughy"],["C4C4BC","Mist Gray"],["C4D0B0","Coriander"],["C4F4EB","Mint Tulip"],["C54B8C","Mulberry"],["C59922","Nugget"],["C5994B","Tussock"],["C5DBCA","Sea Mist"],["C5E17A","Yellow Green"],["C62D42","Brick Red"],["C6726B","Contessa"],["C69191","Oriental Pink"],["C6A84B","Roti"],["C6C3B5","Ash"],["C6C8BD","Kangaroo"],["C6E610","Las Palmas"],["C7031E","Monza"],["C71585","Red Violet"],["C7BCA2","Coral Reef"],["C7C1FF","Melrose"],["C7C4BF","Cloud"],["C7C9D5","Ghost"],["C7CD90","Pine Glade"],["C7DDE5","Botticelli"],["C88A65","Antique Brass"],["C8A2C8","Lilac"],["C8A528","Hokey Pokey"],["C8AABF","Lily"],["C8B568","Laser"],["C8E3D7","Edgewater"],["C96323","Piper"],["C99415","Pizza"],["C9A0DC","Light Wisteria"],["C9B29B","Rodeo Dust"],["C9B35B","Sundance"],["C9B93B","Earls Green"],["C9C0BB","Silver Rust"],["C9D9D2","Conch"],["C9FFA2","Reef"],["C9FFE5","Aero Blue"],["CA3435","Flush Mahogany"],["CABB48","Turmeric"],["CADCD4","Paris White"],["CAE00D","Bitter Lemon"],["CAE6DA","Skeptic"],["CB8FA9","Viola"],["CBCAB6","Foggy Gray"],["CBD3B0","Green Mist"],["CBDBD6","Nebula"],["CC3333","Persian Red"],["CC5500","Burnt Orange"],["CC7722","Ochre"],["CC8899","Puce"],["CCCAA8","Thistle Green"],["CCCCFF","Periwinkle"],["CCFF00","Electric
105Lime"],["CD5700","Tenn"],["CD5C5C","Chestnut Rose"],["CD8429","Brandy Punch"],["CDF4FF","Onahau"],["CEB98F","Sorrell Brown"],["CEBABA","Cold Turkey"],["CEC291","Yuma"],["CEC7A7","Chino"],["CFA39D","Eunry"],["CFB53B","Old Gold"],["CFDCCF","Tasman"],["CFE5D2","Surf Crest"],["CFF9F3","Humming Bird"],["CFFAF4","Scandal"],["D05F04","Red Stage"],["D06DA1","Hopbush"],["D07D12","Meteor"],["D0BEF8","Perfume"],["D0C0E5","Prelude"],["D0F0C0","Tea Green"],["D18F1B","Geebung"],["D1BEA8","Vanilla"],["D1C6B4","Soft Amber"],["D1D2CA","Celeste"],["D1D2DD","Mischka"],["D1E231","Pear"],["D2691E","Hot Cinnamon"],["D27D46","Raw Sienna"],["D29EAA","Careys Pink"],["D2B48C","Tan"],["D2DA97","Deco"],["D2F6DE","Blue Romance"],["D2F8B0","Gossip"],["D3CBBA","Sisal"],["D3CDC5","Swirl"],["D47494","Charm"],["D4B6AF","Clam Shell"],["D4BF8D","Straw"],["D4C4A8","Akaroa"],["D4CD16","Bird Flower"],["D4D7D9","Iron"],["D4DFE2","Geyser"],["D4E2FC","Hawkes Blue"],["D54600","Grenadier"],["D591A4","Can Can"],["D59A6F","Whiskey"],["D5D195","Winter Hazel"],["D5F6E3","Granny Apple"],["D69188","My Pink"],["D6C562","Tacha"],["D6CEF6","Moon Raker"],["D6D6D1","Quill Gray"],["D6FFDB","Snowy Mint"],["D7837F","New York Pink"],["D7C498","Pavlova"],["D7D0FF","Fog"],["D84437","Valencia"],["D87C63","Japonica"],["D8BFD8","Thistle"],["D8C2D5","Maverick"],["D8FCFA","Foam"],["D94972","Cabaret"],["D99376","Burning Sand"],["D9B99B","Cameo"],["D9D6CF","Timberwolf"],["D9DCC1","Tana"],["D9E4F5","Link Water"],["D9F7FF","Mabel"],["DA3287","Cerise"],["DA5B38","Flame Pea"],["DA6304","Bamboo"],["DA6A41","Red Damask"],["DA70D6","Orchid"],["DA8A67","Copperfield"],["DAA520","Golden Grass"],["DAECD6","Zanah"],["DAF4F0","Iceberg"],["DAFAFF","Oyster Bay"],["DB5079","Cranberry"],["DB9690","Petite Orchid"],["DB995E","Di Serria"],["DBDBDB","Alto"],["DBFFF8","Frosted Mint"],["DC143C","Crimson"],["DC4333","Punch"],["DCB20C","Galliano"],["DCB4BC","Blossom"],["DCD747","Wattle"],["DCD9D2","Westar"],["DCDDCC","Moon Mist"],["DCEDB4","Caper"],["DCF0EA","Swans Down"],["DDD6D5","Swiss Coffee"],["DDF9F1","White Ice"],["DE3163","Cerise Red"],["DE6360","Roman"],["DEA681","Tumbleweed"],["DEBA13","Gold Tips"],["DEC196","Brandy"],["DECBC6","Wafer"],["DED4A4","Sapling"],["DED717","Barberry"],["DEE5C0","Beryl Green"],["DEF5FF","Pattens Blue"],["DF73FF","Heliotrope"],["DFBE6F","Apache"],["DFCD6F","Chenin"],["DFCFDB","Lola"],["DFECDA","Willow Brook"],["DFFF00","Chartreuse Yellow"],["E0B0FF","Mauve"],["E0B646","Anzac"],["E0B974","Harvest Gold"],["E0C095","Calico"],["E0FFFF","Baby Blue"],["E16865","Sunglo"],["E1BC64","Equator"],["E1C0C8","Pink Flare"],["E1E6D6","Periglacial Blue"],["E1EAD4","Kidnapper"],["E1F6E8","Tara"],["E25465","Mandy"],["E2725B","Terracotta"],["E28913","Golden Bell"],["E292C0","Shocking"],["E29418","Dixie"],["E29CD2","Light Orchid"],["E2D8ED","Snuff"],["E2EBED","Mystic"],["E2F3EC","Apple Green"],["E30B5C","Razzmatazz"],["E32636","Alizarin Crimson"],["E34234","Cinnabar"],["E3BEBE","Cavern Pink"],["E3F5E1","Peppermint"],["E3F988","Mindaro"],["E47698","Deep Blush"],["E49B0F","Gamboge"],["E4C2D5","Melanie"],["E4CFDE","Twilight"],["E4D1C0","Bone"],["E4D422","Sunflower"],["E4D5B7","Grain Brown"],["E4D69B","Zombie"],["E4F6E7","Frostee"],["E4FFD1","Snow Flurry"],["E52B50","Amaranth"],["E5841B","Zest"],["E5CCC9","Dust Storm"],["E5D7BD","Stark White"],["E5D8AF","Hampton"],["E5E0E1","Bon Jour"],["E5E5E5","Mercury"],["E5F9F6","Polar"],["E64E03","Trinidad"],["E6BE8A","Gold Sand"],["E6BEA5","Cashmere"],["E6D7B9","Double Spanish White"],["E6E4D4","Satin Linen"],["E6F2EA","Harp"],["E6F8F3","Off Green"],["E6FFE9","Hint of Green"],["E6FFFF","Tranquil"],["E77200","Mango Tango"],["E7730A","Christine"],["E79F8C","Tonys Pink"],["E79FC4","Kobi"],["E7BCB4","Rose Fog"],["E7BF05","Corn"],["E7CD8C","Putty"],["E7ECE6","Gray Nurse"],["E7F8FF","Lily White"],["E7FEFF","Bubbles"],["E89928","Fire Bush"],["E8B9B3","Shilo"],["E8E0D5","Pearl Bush"],["E8EBE0","Green White"],["E8F1D4","Chrome White"],["E8F2EB","Gin"],["E8F5F2","Aqua Squeeze"],["E96E00","Clementine"],["E97451","Burnt Sienna"],["E97C07","Tahiti Gold"],["E9CECD","Oyster Pink"],["E9D75A","Confetti"],["E9E3E3","Ebb"],["E9F8ED","Ottoman"],["E9FFFD","Clear Day"],["EA88A8","Carissma"],["EAAE69","Porsche"],["EAB33B","Tulip Tree"],["EAC674","Rob Roy"],["EADAB8","Raffia"],["EAE8D4","White Rock"],["EAF6EE","Panache"],["EAF6FF","Solitude"],["EAF9F5","Aqua Spring"],["EAFFFE","Dew"],["EB9373","Apricot"],["EBC2AF","Zinnwaldite"],["ECA927","Fuel Yellow"],["ECC54E","Ronchi"],["ECC7EE","French Lilac"],["ECCDB9","Just Right"],["ECE090","Wild Rice"],["ECEBBD","Fall Green"],["ECEBCE","Aths Special"],["ECF245","Starship"],["ED0A3F","Red Ribbon"],["ED7A1C","Tango"],["ED9121","Carrot Orange"],["ED989E","Sea Pink"],["EDB381","Tacao"],["EDC9AF","Desert Sand"],["EDCDAB","Pancho"],["EDDCB1","Chamois"],["EDEA99","Primrose"],["EDF5DD","Frost"],["EDF5F5","Aqua Haze"],["EDF6FF","Zumthor"],["EDF9F1","Narvik"],["EDFC84","Honeysuckle"],["EE82EE","
105Lavender Magenta"],["EEC1BE","Beauty Bush"],["EED794","Chalky"],["EED9C4","Almond"],["EEDC82","Flax"],["EEDEDA","Bizarre"],["EEE3AD","Double Colonial White"],["EEEEE8","Cararra"],["EEEF78","Manz"],["EEF0C8","Tahuna Sands"],["EEF0F3","Athens Gray"],["EEF3C3","Tusk"],["EEF4DE","Loafer"],["EEF6F7","Catskill White"],["EEFDFF","Twilight Blue"],["EEFF9A","Jonquil"],["EEFFE2","Rice Flower"],["EF863F","Jaffa"],["EFEFEF","Gallery"],["EFF2F3","Porcelain"],["F091A9","Mauvelous"],["F0D52D","Golden Dream"],["F0DB7D","Golden Sand"],["F0DC82","Buff"],["F0E2EC","Prim"],["F0E68C","Khaki"],["F0EEFD","Selago"],["F0EEFF","Titan White"],["F0F8FF","Alice Blue"],["F0FCEA","Feta"],["F18200","Gold Drop"],["F19BAB","Wewak"],["F1E788","Sahara Sand"],["F1E9D2","Parchment"],["F1E9FF","Blue Chalk"],["F1EEC1","Mint Julep"],["F1F1F1","Seashell"],["F1F7F2","Saltpan"],["F1FFAD","Tidal"],["F1FFC8","Chiffon"],["F2552A","Flamingo"],["F28500","Tangerine"],["F2C3B2","Mandys Pink"],["F2F2F2","Concrete"],["F2FAFA","Black Squeeze"],["F34723","Pomegranate"],["F3AD16","Buttercup"],["F3D69D","New Orleans"],["F3D9DF","Vanilla Ice"],["F3E7BB","Sidecar"],["F3E9E5","Dawn Pink"],["F3EDCF","Wheatfield"],["F3FB62","Canary"],["F3FBD4","Orinoco"],["F3FFD8","Carla"],["F400A1","Hollywood Cerise"],["F4A460","Sandy brown"],["F4C430","Saffron"],["F4D81C","Ripe Lemon"],["F4EBD3","Janna"],["F4F2EE","Pampas"],["F4F4F4","Wild Sand"],["F4F8FF","Zircon"],["F57584","Froly"],["F5C85C","Cream Can"],["F5C999","Manhattan"],["F5D5A0","Maize"],["F5DEB3","Wheat"],["F5E7A2","Sandwisp"],["F5E7E2","Pot Pourri"],["F5E9D3","Albescent White"],["F5EDEF","Soft Peach"],["F5F3E5","Ecru White"],["F5F5DC","Beige"],["F5FB3D","Golden Fizz"],["F5FFBE","Australian Mint"],["F64A8A","French Rose"],["F653A6","Brilliant Rose"],["F6A4C9","Illusion"],["F6F0E6","Merino"],["F6F7F7","Black Haze"],["F6FFDC","Spring Sun"],["F7468A","Violet Red"],["F77703","Chilean Fire"],["F77FBE","Persian Pink"],["F7B668","Rajah"],["F7C8DA","Azalea"],["F7DBE6","We Peep"],["F7F2E1","Quarter Spanish White"],["F7F5FA","Whisper"],["F7FAF7","Snow Drift"],["F8B853","Casablanca"],["F8C3DF","Chantilly"],["F8D9E9","Cherub"],["F8DB9D","Marzipan"],["F8DD5C","Energy Yellow"],["F8E4BF","Givry"],["F8F0E8","White Linen"],["F8F4FF","Magnolia"],["F8F6F1","Spring Wood"],["F8F7DC","Coconut Cream"],["F8F7FC","White Lilac"],["F8F8F7","Desert Storm"],["F8F99C","Texas"],["F8FACD","Corn Field"],["F8FDD3","Mimosa"],["F95A61","Carnation"],["F9BF58","Saffron Mango"],["F9E0ED","Carousel Pink"],["F9E4BC","Dairy Cream"],["F9E663","Portica"],["F9EAF3","Amour"],["F9F8E4","Rum Swizzle"],["F9FF8B","Dolly"],["F9FFF6","Sugar Cane"],["FA7814","Ecstasy"],["FA9D5A","Tan Hide"],["FAD3A2","Corvette"],["FADFAD","Peach Yellow"],["FAE600","Turbo"],["FAEAB9","Astra"],["FAECCC","Champagne"],["FAF0E6","Linen"],["FAF3F0","Fantasy"],["FAF7D6","Citrine White"],["FAFAFA","Alabaster"],["FAFDE4","Hint of Yellow"],["FAFFA4","Milan"],["FB607F","Brink Pink"],["FB8989","Geraldine"],["FBA0E3","Lavender Rose"],["FBA129","Sea Buckthorn"],["FBAC13","Sun"],["FBAED2","Lavender Pink"],["FBB2A3","Rose Bud"],["FBBEDA","Cupid"],["FBCCE7","Classic Rose"],["FBCEB1","Apricot Peach"],["FBE7B2","Banana Mania"],["FBE870","Marigold Yellow"],["FBE96C","Festival"],["FBEA8C","Sweet Corn"],["FBEC5D","Candy Corn"],["FBF9F9","Hint of Red"],["FBFFBA","Shalimar"],["FC0FC0","Shocking Pink"],["FC80A5","Tickle Me Pink"],["FC9C1D","Tree Poppy"],["FCC01E","Lightning Yellow"],["FCD667","Goldenrod"],["FCD917","Candlelight"],["FCDA98","Cherokee"],["FCF4D0","Double Pearl Lusta"],["FCF4DC","Pearl Lusta"],["FCF8F7","Vista White"],["FCFBF3","Bianca"],["FCFEDA","Moon Glow"],["FCFFE7","China Ivory"],["FCFFF9","Ceramic"],["FD0E35","Torch Red"],["FD5B78","Wild Watermelon"],["FD7B33","Crusta"],["FD7C07","Sorbus"],["FD9FA2","Sweet Pink"],["FDD5B1","Light Apricot"],["FDD7E4","Pig Pink"],["FDE1DC","Cinderella"],["FDE295","Golden Glow"],["FDE910","Lemon"],["FDF5E6","Old Lace"],["FDF6D3","Half Colonial White"],["FDF7AD","Drover"],["FDFEB8","Pale Prim"],["FDFFD5","Cumulus"],["FE28A2","Persian Rose"],["FE4C40","Sunset Orange"],["FE6F5E","Bittersweet"],["FE9D04","California"],["FEA904","Yellow Sea"],["FEBAAD","Melon"],["FED33C","Bright Sun"],["FED85D","Dandelion"],["FEDB8D","Salomie"],["FEE5AC","Cape Honey"],["FEEBF3","Remy"],["FEEFCE","Oasis"],["FEF0EC","Bridesmaid"],["FEF2C7","Beeswax"],["FEF3D8","Bleach White"],["FEF4CC","Pipi"],["FEF4DB","Half Spanish White"],["FEF4F8","Wisp Pink"],["FEF5F1","Provincial Pink"],["FEF7DE","Half Dutch White"],["FEF8E2","Solitaire"],["FEF8FF","White Pointer"],["FEF9E3","Off Yellow"],["FEFCED","Orange White"],["FF0000","Red"],["FF007F","Rose"],["FF00CC","Purple Pizzazz"],["FF00FF","Magenta / Fuchsia"],["FF2400","Scarlet"],["FF3399","Wild Strawberry"],["FF33CC","Razzle Dazzle Rose"],["FF355E","Radical Red"],["FF3F34","Red Orange"],["FF4040","Coral Red"],["FF4D00","Vermilion"],["FF4F00","International Orange"],["FF6037","Outrageous Orange"],["FF6600","Blaze Orange"],["FF66FF","P
105ink Flamingo"],["FF681F","Orange"],["FF69B4","Hot Pink"],["FF6B53","Persimmon"],["FF6FFF","Blush Pink"],["FF7034","Burning Orange"],["FF7518","Pumpkin"],["FF7D07","Flamenco"],["FF7F00","Flush Orange"],["FF7F50","Coral"],["FF8C69","Salmon"],["FF9000","Pizazz"],["FF910F","West Side"],["FF91A4","Pink Salmon"],["FF9933","Neon Carrot"],["FF9966","Atomic Tangerine"],["FF9980","Vivid Tangerine"],["FF9E2C","Sunshade"],["FFA000","Orange Peel"],["FFA194","Mona Lisa"],["FFA500","Web Orange"],["FFA6C9","Carnation Pink"],["FFAB81","Hit Pink"],["FFAE42","Yellow Orange"],["FFB0AC","Cornflower Lilac"],["FFB1B3","Sundown"],["FFB31F","My Sin"],["FFB555","Texas Rose"],["FFB7D5","Cotton Candy"],["FFB97B","Macaroni and Cheese"],["FFBA00","Selective Yellow"],["FFBD5F","Koromiko"],["FFBF00","Amber"],["FFC0A8","Wax Flower"],["FFC0CB","Pink"],["FFC3C0","Your Pink"],["FFC901","Supernova"],["FFCBA4","Flesh"],["FFCC33","Sunglow"],["FFCC5C","Golden Tainoi"],["FFCC99","Peach Orange"],["FFCD8C","Chardonnay"],["FFD1DC","Pastel Pink"],["FFD2B7","Romantic"],["FFD38C","Grandis"],["FFD700","Gold"],["FFD800","School bus Yellow"],["FFD8D9","Cosmos"],["FFDB58","Mustard"],["FFDCD6","Peach Schnapps"],["FFDDAF","Caramel"],["FFDDCD","Tuft Bush"],["FFDDCF","Watusi"],["FFDDF4","Pink Lace"],["FFDEAD","Navajo White"],["FFDEB3","Frangipani"],["FFE1DF","Pippin"],["FFE1F2","Pale Rose"],["FFE2C5","Negroni"],["FFE5A0","Cream Brulee"],["FFE5B4","Peach"],["FFE6C7","Tequila"],["FFE772","Kournikova"],["FFEAC8","Sandy Beach"],["FFEAD4","Karry"],["FFEC13","Broom"],["FFEDBC","Colonial White"],["FFEED8","Derby"],["FFEFA1","Vis Vis"],["FFEFC1","Egg White"],["FFEFD5","Papaya Whip"],["FFEFEC","Fair Pink"],["FFF0DB","Peach Cream"],["FFF0F5","Lavender blush"],["FFF14F","Gorse"],["FFF1B5","Buttermilk"],["FFF1D8","Pink Lady"],["FFF1EE","Forget Me Not"],["FFF1F9","Tutu"],["FFF39D","Picasso"],["FFF3F1","Chardon"],["FFF46E","Paris Daisy"],["FFF4CE","Barley White"],["FFF4DD","Egg Sour"],["FFF4E0","Sazerac"],["FFF4E8","Serenade"],["FFF4F3","Chablis"],["FFF5EE","Seashell Peach"],["FFF5F3","Sauvignon"],["FFF6D4","Milk Punch"],["FFF6DF","Varden"],["FFF6F5","Rose White"],["FFF8D1","Baja White"],["FFF9E2","Gin Fizz"],["FFF9E6","Early Dawn"],["FFFACD","Lemon Chiffon"],["FFFAF4","Bridal Heath"],["FFFBDC","Scotch Mist"],["FFFBF9","Soapstone"],["FFFC99","Witch Haze"],["FFFCEA","Buttery White"],["FFFCEE","Island Spice"],["FFFDD0","Cream"],["FFFDE6","Chilean Heath"],["FFFDE8","Travertine"],["FFFDF3","Orchid White"],["FFFDF4","Quarter Pearl Lusta"],["FFFEE1","Half and Half"],["FFFEEC","Apricot White"],["FFFEF0","Rice Cake"],["FFFEF6","Black White"],["FFFEFD","Romance"],["FFFF00","Yellow"],["FFFF66","Laser Lemon"],["FFFF99","Pale Canary"],["FFFFB4","Portafino"],["FFFFF0","Ivory"],["FFFFFF","White"]]};n.init(),t.exports=n},699093,(e,t,r)=>{t.exports=e.r(483423)},307004,859146,46265,420452,954563,740984,635655,357632,936109,611213,275483,786110,701105,100239,504754,29465,176536,324543,e=>{"use strict";var t=e.i(966078),r=e.i(874186),n=e.i(121356),i=e.i(214184),o=e.i(548694),a=e.i(169331),l=e.i(292822),s=e.i(374783);let d=(e,t)=>{if(e.length<2)return null;let r=e.reduce((e,t)=>e+t.x+t.width/2,0)/e.length,n=e.reduce((e,t)=>e+t.y+t.height/2,0)/e.length,i=e.map(e=>({...e,angle:Math.atan2(e.y+e.height/2-n,e.x+e.width/2-r)})).sort((e,t)=>e.angle-t.angle),o=i.length,a=i.reduce((e,t)=>e+Math.sqrt(t.width**2+t.height**2)+90,0)/(2*Math.PI),l=1.2*a,s=.92*a;if(t){let e=Math.max(...i.map(e=>e.width)),r=Math.max(...i.map(e=>e.height));l=Math.max(l,t.width/2+230+e/2),s=Math.max(s,t.height/2+230+r/2)}let d=2*Math.PI/o,u=-Math.PI/2,c=new Map(i.map((e,t)=>{let i=u+t*d;return[e.id,{x:Math.round(r+l*Math.cos(i)-e.width/2),y:Math.round(n+s*Math.sin(i)-e.height/2)}]}));return{centerX:r,centerY:n,positions:c}},u=(e,t)=>{let r=new Set(t);return e.filter(e=>r.has(e.id)&&e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e);return{id:e.id,width:Math.round(t.width),height:Math.round(t.height),x:Math.round(e.position.x),y:Math.round(e.position.y)}})};e.s(["computeOrbitLayout",0,d,"toOrbitItems",0,u],859146);let c=l.ELEMENT_GAP_PX,h=(e,t,r,n,i)=>Math.min(e+t+i-r,r+n+i-e),p=(e,t)=>{let r=Math.abs(t.x+t.width/2-(e.x+e.width/2)),n=Math.abs(t.y+t.height/2-(e.y+e.height/2));return r*(e.height+t.height)>n*(e.width+t.width)},m=(e,t,r,n)=>{let i=((e,t)=>{let r=e.map(e=>Math.max(e.width,e.height)+t);r.sort((e,t)=>
105e-t);let n=r[r.length>>1]??0;if(n<=0)return new Map;let i=new Map;for(let r of e){let e=Math.floor((r.x-t)/n),o=Math.floor((r.x+r.width+t)/n),a=Math.floor((r.y-t)/n),l=Math.floor((r.y+r.height+t)/n);for(let t=e;t<=o;t++)for(let e=a;e<=l;e++){let n=`${t}:${e}`,o=i.get(n);o?o.push(r.index):i.set(n,[r.index])}}return i})(e,t),o=new Set,a=0;return i.forEach(i=>{for(let l=0;l<i.length;l++)for(let s=l+1;s<i.length;s++){let d=e[Math.min(i[l],i[s])],u=e[Math.max(i[l],i[s])];if(d.pinned&&u.pinned)continue;let c=d.index*e.length+u.index;if(o.has(c))continue;let m=h(d.x,d.width,u.x,u.width,t),g=h(d.y,d.height,u.y,u.height,t);if(m<=.5||g<=.5||(o.add(c),a++,r.has(c)))continue;let f=n?.(d.id,u.id)??p(d,u),b=f?d.x!==u.x?d.x<u.x:d.index<u.index:d.y!==u.y?d.y<u.y:d.index<u.index;r.set(c,{first:b?d.index:u.index,second:b?u.index:d.index,horizontal:f})}}),a},g=(e,t,r,n)=>{let i=new Map,o=new Map,a=(e,t,r)=>{let n=e.get(t);n?n.push(r):e.set(t,[r])},l=new Set;for(let e of t)e.horizontal===r&&(a(i,e.second,e.first),a(o,e.first,e.second),l.add(e.first),l.add(e.second));if(0===l.size)return;let s=e=>r?e.x:e.y,d=e=>r?e.width:e.height,u=(e,t)=>{r?e.x=t:e.y=t},c=(e,t)=>(r?h(e.y,e.height,t.y,t.height,n):h(e.x,e.width,t.x,t.width,n))>.5,p=Array.from(l).sort((t,r)=>s(e[t])-s(e[r])||t-r);for(let t of p){let r=e[t];if(r.pinned)continue;let o=s(r);for(let a of i.get(t)??[]){let t=e[a];c(r,t)&&(o=Math.max(o,s(t)+d(t)+n))}u(r,o)}for(let t=p.length-1;t>=0;t--){let r=p[t],i=e[r];if(i.pinned)continue;let a=s(i);for(let t of o.get(r)??[]){let r=e[t];c(i,r)&&(a=Math.min(a,s(r)-n-d(i)))}u(i,a)}},f=(e,t={})=>{let r=t.margin??c,n=t.maxIterations??12,i=[];for(let t of e)t.width<=0||t.height<=0||i.push({index:i.length,id:t.id,x:t.x,y:t.y,originX:t.x,originY:t.y,width:t.width,height:t.height,pinned:!0===t.pinned});let o=new Map,a=!1,l=1/0,s=null;for(let e=0;;e++){let d=m(i,r,o,t.axisForPair);if(0===d)break;if(d<l&&(l=d,s=i.map(e=>({x:e.x,y:e.y}))),e>=n){a=!0,s&&i.forEach((e,t)=>{e.x=s[t].x,e.y=s[t].y});break}let u=Array.from(o.values()).sort((e,t)=>e.first-t.first||e.second-t.second);g(i,u,!1,r),g(i,u,!0,r)}let d=new Map;for(let e of i)(e.x!==e.originX||e.y!==e.originY)&&d.set(e.id,{x:e.x,y:e.y});return{positions:d,exhausted:a}};var b=e.i(820052);let x=new Set([r.ToolElementType.ToolImage,r.ToolElementType.ToolAiGeneratedImage]),y=new Set([r.ToolElementType.ToolNote,r.ToolElementType.ToolAiNote]);e.s(["useWhiteboardLayout",0,function({mutations:e,project:r,whiteboardId:c,toast:h,setNodes:p,getNodes:m,takeWhiteboardSnapshot:g,saveReactFlowStateToCache:w,emitToProject:E,applyFrameMembership:C}){let{updateMultipleWhiteboardElementLocationsMutation:T,bulkUpdateWhiteboardElementAttributesMutation:S}=e,A=(0,t.useCallback)(async(e,t)=>{if(e&&0!=e.length){for(let t of e){let e=JSON.parse(t.elementLocation);(0,b.claimLocalMove)(t.uid,e.x,e.y)}try{await T({variables:{projectId:r.current?.id,elements:e,historyBatchId:t}}),w(),E("elements_moved",{elements:e.map(e=>({elementUid:e.uid,position:JSON.parse(e.elementLocation)}))})}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:h})}}},[c,T,w,E,h,r]),_=()=>(0,a.absolutizeChildPositions)(m()),v=(e,t)=>
105{let r=new Set(t),n=new Set(m().filter(e=>e.dragging).map(e=>e.id));C(e.filter(e=>r.has(e.id)&&!n.has(e.id)).map(e=>({id:e.id,position:e.position}))).catch(e=>console.error("Frame membership settle after layout failed:",e))};return{arrangeSelectedAsGrid:async e=>{let t=_();if(!t.length||!e.length)return;console.debug(`ð Arranging ${e.length} selected nodes in a grid`);let r=l.ELEMENT_GAP_PX,i=t.filter(t=>e.includes(t.id)).filter(e=>e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e);return{id:e.id,type:e.type,width:Math.round(t.width),height:Math.round(t.height),x:Math.round(e.position.x),y:Math.round(e.position.y)}});if(0===i.length)return void console.debug("â ï¸ No selected nodes to layout");let o=i.length,d=Math.ceil(Math.sqrt(o)),u=Math.ceil(o/d);console.debug(`ð Creating ${u}x${d} grid for ${o} items`);let c=(0,s.snapPointToGrid)({x:Math.min(...i.map(e=>e.x)),y:Math.min(...i.map(e=>e.y))}),h=[],m=[];for(let e=0;e<d;e++){let t=0;for(let r=0;r<u;r++){let n=r*d+e;n<i.length&&(t=Math.max(t,i[n].width))}h.push(t)}for(let e=0;e<u;e++){let t=0;for(let r=0;r<d;r++){let n=e*d+r;n<i.length&&(t=Math.max(t,i[n].height))}m.push(t)}let f=c.y;for(let e=0;e<u;e++){let t=c.x;for(let n=0;n<d;n++){let o=e*d+n;if(o<i.length){let e=i[o];e.x=t+(h[n]-e.width)/2,e.y=f,console.debug(`ð Placed item ${e.id.substring(0,8)} at (${Math.round(e.x)}, ${Math.round(e.y)})`)}t+=h[n]+r}f+=m[e]+r}let b=t.map(e=>{let t=i.find(t=>t.id===e.id);return t?{...e,position:{x:t.x,y:t.y},style:{...e.style,transition:"transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)"}}:e});await g("arrangeSelectedAsGrid");let x=(0,a.relativizeChildPositions)(b);await p(x);let y=new Set(e);setTimeout(()=>{p(e=>e.map(e=>y.has(e.id)?{...e,style:{...e.style,transition:void 0}}:e))},600);let w=x.filter(t=>t.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type)&&e.includes(t.id)).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}));w.length>0&&await A(w),v(x,e),console.debug("â
Grid layout complete!")},arrangeSelectedHorizontally:async e=>{let t=_();if(!t.length||!e.length)return;console.debug(`ð Arranging ${e.length} selected nodes horizontally`);let r=t.filter(t=>e.includes(t.id)).filter(e=>e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e);return{id:e.id,type:e.type,width:Math.round(t.width),height:Math.round(t.height),x:Math.round(e.position.x),y:Math.round(e.position.y)}});if(0===r.length)return void console.debug("â ï¸ No selected nodes to layout");r.sort((e,t)=>50>=Math.abs(e.x-t.x)?e.y-t.y:e.x-t.x);let i=(0,s.snapPointToGrid)({x:Math.min(...r.map(e=>e.x)),y:r.reduce((e,t)=>e+t.y,0)/r.length}),o=i.x;r.forEach((e,t)=>{e.x=o,e.y=i.y,r[t+1],o+=e.width+l.ELEMENT_GAP_PX,console.debug(`ð Placed item ${e.id.substring(0,8)} at (${Math.round(e.x)}, ${Math.round(e.y)})`)});let d=t.map(e=>{let t=r.find(t=>t.id===e.id);return t?{...e,position:{x:t.x,y:t.y},style:{...e.style,transition:"transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)"}}:e});await g("arrangeSelectedHorizontally");let u=(0,a.relativizeChildPositions)(d);await p(u);let c=new Set(e);setTimeout(()=>{p(e=>e.map(e=>c.has(e.id)?{...e,style:{...e.style,transition:void 0}}:e))},600);let h=u.filter(t=>t.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type)&&e.includes(t.id)).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}));h.length>0&&await A(h),v(u,e),console.debug("â
Horizontal layout complete!")},arrangeSelectedVertically:async e=>{let t=_();if(!t.length||!e.length)return;let r=t.filter(t=>e.includes(t.id)).filter(e=>e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e);return{id:e.id,width:Math.round(t.width),height:Math.round(t.height),x:Math.round(e.position.x),y:Math.round(e.position.y)}});if(0===r.length)return;r.sort((e,t)=>50>=Math.abs(e.y-t.y)?e.x-t.x:e.y-t.y);let i=(0,s.snapPointToGrid)({x:r.reduce((e,t)=>e+t.x,0)/r.length,y:Math.min(...r.map(e=>e.y))}),o=i.y;r.forEach((e,t)=>{e.x=i.x,e.y=o,r[t+1],o+=e.height+l.ELEMENT_GAP_PX});let d=new Map(r.map(e=>[e.id,{x:e.x,y:e.y}])),u=t.map(e=>{let t=d.get(e.id);return t?{...e,position:t,style:{...e.style,transition:"transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)"}}:e});await g("arrangeSelectedVertically");let c=(0,a.relativizeChildPositions)(u);await p(c);let h=new Set(e);setTimeout(()=>{p(e=>e.map(e=>h.has(e.id)?{...e,style:{...e.style,transition:void 0}}:e))},600);let m=c.filter(t=>t.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type)&&e.includes(t.id)).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}));m.length>0&&await A(m),v(c,e)},arrangeSelectedAsMasonry:async e=>{let t,i=_();if(!i.length||!e.length)return;let o=l.ELEMENT_GAP_PX,d=i.filter(t=>e.includes(t.id)).filter(e=>e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>{let t=x.has(e.type),r=(0,a.getLayoutDimensionsForNode)(e);return{id:e.id,type:e.type,width:Math.round(r.width),height:Math.round(r.height),originalWidth:Math.round(r.width),originalHeight:Math.round(r.height),isImage:t,x:Math.round(e.position.x),y:Math.round(e.position.y)}});if(0===d.length)return;d.sort((e,t)=>
105{let r=Math.max(40,...d.map(e=>.4*e.height));return Math.abs(e.y-t.y)<r?e.x-t.x:e.y-t.y});let u=Math.min(d.length,5),c=(0,s.snapPointToGrid)({x:Math.min(...d.map(e=>e.x)),y:Math.min(...d.map(e=>e.y))}),h=d.filter(e=>e.isImage),m=(0,s.snapDimensionToGutterSpan)(h.length>0?[...h.map(e=>e.originalWidth)].sort((e,t)=>e-t)[Math.floor(h.length/2)]:Math.min(Math.max(...t=d.map(e=>e.width).sort((e,t)=>e-t)),1.5*t[Math.floor(t.length/2)]));d.forEach(e=>{e.isImage&&e.originalWidth>0&&e.originalHeight>0&&(e.width=m,e.height=Math.round(m*e.originalHeight/e.originalWidth))});let f=Array(u).fill(0);d.forEach(e=>{let t=f.indexOf(Math.min(...f));e.x=c.x+t*(m+o)+(m-e.width)/2,e.y=c.y+f[t],f[t]+=e.height+o});let b=new Map(d.map(e=>[e.id,e])),y=i.map(e=>{let t=b.get(e.id);if(!t)return e;let r={...e,position:{x:t.x,y:t.y},style:{...e.style,transition:"transform 500ms cubic-bezier(0.4, 0.0, 0.2, 1)"}};return t.isImage&&(r.data={...e.data,_layoutTransitioning:!0,attributes:{...e.data?.attributes,width:t.width,height:t.height}}),r});await g("arrangeSelectedAsMasonry");let w=(0,a.relativizeChildPositions)(y);await p(w),setTimeout(()=>{p(e=>e.map(e=>{let t=b.get(e.id);if(!t)return e;let r=t.isImage?{...e.data,_layoutTransitioning:void 0}:e.data;return{...e,data:r,style:{...e.style,transition:void 0}}}))},800);let E=w.filter(t=>t.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type)&&e.includes(t.id)).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}));E.length>0&&await A(E),v(w,e);let C=y.filter(t=>x.has(t.type)&&e.includes(t.id)).map(e=>({uid:e.id,elementAttributes:JSON.stringify(e.data?.attributes??{})}));C.length>0&&r.current?.id&&S({variables:{projectId:r.current.id,elements:C}})},normalizeSelectedSizes:async e=>{let t=m();if(!t.length||!e.length)return;let n=new Set([...Array.from(x),...Array.from(y)]),i=t.filter(t=>e.includes(t.id)).filter(e=>n.has(e.type));if(0===i.length)return;let o=i.map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e);return{id:e.id,isImage:x.has(e.type),originalWidth:Math.round(t.width),originalHeight:Math.round(t.height)}}),l=[...o.map(e=>e.originalWidth)].sort((e,t)=>e-t),d=(0,s.snapDimensionToGutterSpan)(l[Math.floor(l.length/2)]);if(d<=0)return;let u=new Map(o.map(e=>[e.id,e])),c=t.map(e=>{let t=u.get(e.id);if(!t||t.originalWidth<=0)return e;let r=t.isImage?{...e.data?.attributes,width:d,height:Math.round(d*t.originalHeight/t.originalWidth)}:{...e.data?.attributes,width:d};return{...e,data:{...e.data,_layoutTransitioning:!0,attributes:r}}});await g("normalizeSelectedSizes"),await p(c),setTimeout(()=>{p(e=>e.map(e=>u.get(e.id)?{...e,data:{...e.data,_layoutTransitioning:void 0}}:e))},800);let h=c.filter(t=>n.has(t.type)&&e.includes(t.id)).map(e=>({uid:e.id,elementAttributes:JSON.stringify(e.data?.attributes??{})}));h.length>0&&r.current?.id&&S({variables:{projectId:r.current.id,elements:h}})},arrangeSelectedAsOrbit:async(e,t)=>{let r=_();if(!r.length||!e.length)return null;let i=d(u(r,e),t?.hubSize);if(!i)return null;let o=r.map(e=>{let t=i.positions.get(e.id);return t?{...e,position:t,style:{...e.style,transition:"transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)"}}:e});t?.historyBatchId||await g("arrangeSelectedAsOrbit");let l=(0,a.relativizeChildPositions)(o);await p(l);let s=new Set(i.positions.keys());setTimeout(()=>{p(e=>e.map(e=>s.has(e.id)?{...e,style:{...e.style,transition:void 0}}:e))},600);let c=l.filter(t=>t.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type)&&e.includes(t.id)).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}));return c.length>0&&await A(c,t?.historyBatchId),t?.historyBatchId||v(l,s),{centerX:i.centerX,centerY:i.centerY}},applyAlignment:async(e,t)=>{let r=_();if(!r.length||t.length<2)return;let i=r.filter(e=>t.includes(e.id)&&e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e);return{id:e.id,x:Math.round(e.position.x),y:Math.round(e.position.y),width:Math.round(t.width),height:Math.round(t.height)}});if(i.length<2)return;let l=(0,o.computeAlignedPositions)(e,i);if(0===l.size)return;let s=r.map(e=>{let t=l.get(e.id);return t?{...e,position:t,style:{...e.style,transition:"transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)"}}:e});await g(`applyAlignment:${e}`);let d=(0,a.relativizeChildPositions)(s);await p(d);let u=new Set(t);setTimeout(()=>{p(e=>e.map(e=>u.has(e.id)?{...e,style:{...e.style,transition:void 0}}:e))},600);let c=d.filter(e=>e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)&&t.includes(e.id)).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}));c.length>0&&await A(c),v(d,t)},repairSelectedOverlaps:async(e,t)=>{let r=m();if(!r.length)return{incomplete:!1};let i=r.filter(e=>e.type&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)&&!e.parentId);if(i.length<2)return{incomplete:!1};let o=0===e.length,{positions:l,exhausted:s}=f(i.map(t=>{let r=(0,a.getLayoutDimensionsForNode)(t);return{id:t.id,x:Math.round(t.position.x),y:Math.round(t.position.y),width:Math.round(r.width),height:Math.round(r.height),pinned:o?(0,a.isTitleNode)(t):!e.includes(t.id)}}));if(0===l.size)return{incomplete:s};let d=r.map(e=>{let t=l.get(e.id);return t?{...e,position:t,style:{...e.style,transition:"transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1)"}}:e});t?.historyBatchId||await g("repairSelectedOverlaps"),await p(d);let u=new Set(l.keys());setTimeout(()=>{p(e=>e.map(e=>u.has(e.id)?{...e,style:{...e.style,transition:void 0}}:e))},600);let c=d.filter(e=>l.has(e.id)).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}));return c.length>0&&await A(c,t?.historyBatchId),t?.historyBatchId||v(d,u),{incomplete:s}},onHandleSpaceOutElementsToRight:async()=>{let e=_();console.debug("ð [SpaceOutRight] All nodes:",e);let t=e=>({width:e.measured?.width||e.width||150,height:e.measured?.height||e.height||50}),r=(e,t,r,n)=>!(e.x+t.width<r.x||r.x+n.width<e.x||e.y+t.height<r.y||r.y+n.height<e.y),i=l.ELEMENT_GAP_PX,o=new Set,d=new Map,u=e.map(e=>({...e,position:d.get(e.id)||{...e.position}})),c=!0,h=0;for(;c&&h<100;){c=!1,h++;for(let a=0;a<u.length;a++){let l=u[a];if(!l.type||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(l.type))continue;let p=t(l),m=d.get(l.id)||l.position;for(let g=0;g<u.length;g++){if(a===g)continue;let f=u[g];if(!f.type||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(f.type))continue;let b=t(f),x=d.get(f.id)||f.position;if(r(m,p,x,b)){if(c=!0,e.findIndex(e=>e.id===l.id)>e.findIndex(e=>e.id===f.id)){let e={x:(0,s.snapCoordinateToDotEdge)(x.x+b.width+i),y:m.y};d.set(l.id,e),o.add(l.id),u[a].position=e,console.debug(`ð [SpaceOutRight Iteration ${h}] Moving node ${l.id.substring(0,8)} (newer) to the right of node ${f.id.substring(0,8)} (older)`)}else{let e={x:(0,s.snapCoordinateToDotEdge)(m.x+p.width+i),y:x.y};d.set(f.id,e),o.add(f.id),u[g].position=e,console.debug(`ð [SpaceOutRight Iteration ${h}] Moving node ${f.id.substring(0,8)} (newer) to the right of node ${l.id.substring(0,8)} (older)`)}break}}}}if(console.debug(`ð [SpaceOutRight] Completed in ${h} iterations. Total nodes moved:`,o.size),o.size>0){let t=e.map(e=>{let t=d.get(e.id);return t?{...e,position:t}:e}),r=(0,a.relativizeChildPositions)(t);p(r);let n=new Map(r.map(e=>[e.id,e])),i=Array.from(o).map(e=>{let t=n.get(e).position;return{uid:e,elementLocation:JSON.stringify({x:t.x,y:t.y})}});await A(i),v(r,o)}},updateMultipleElementPositions:A}}],307004);var w=e.i(38462);let E=(e,t,r,n)=>.5>=Math.min(e+t+c-r,r+n+c-e),C=(e,t)=>!E(e.x,e.width,t.x,t.width)&&!E(e.y,e.height,t.y,t.height),T=!1,S=null;e.s(["setGrowthReflowEnabled",0,e=>{T=e},"useWhiteboardGrowthReflow",0,function({boardKey:e,getNodes:i,setNodes:o,takeWhiteboardSnapshot:l,updateMultipleElementPositions:s}){let d=(0,t.useRef)(new Map),u=(0,t.useRef)(new Set);(0,t.useEffect)(()=>()=>
105{d.current.forEach(e=>{null!=e.raf&&cancelAnimationFrame(e.raf)}),d.current.clear(),u.current.forEach(e=>clearTimeout(e)),u.current.clear()},[e]);let h=(0,t.useCallback)(e=>{let t=i(),n=t.find(t=>t.id===e);if(!n)return null;let o=n.parentId?t.find(e=>e.id===n.parentId)??null:n;return o?.type===r.ToolElementType.ToolFrame?null:o},[i]),m=(0,t.useCallback)(e=>{let t=e.measured;return t?.width&&t?.height?{width:t.width,height:t.height}:null},[]),g=(0,t.useCallback)(e=>{let t=i(),s=t.find(t=>t.id===e.sourceUid);if(!s)return;let d=m(s)??(0,a.getLayoutDimensionsForNode)(s),u={uid:s.id,x:s.position.x,y:s.position.y,width:e.latestRendered?.width??d.width,height:e.latestRendered?.height??d.height};e.sourceBaseline||(e.sourceBaseline={x:u.x,y:u.y,width:u.width,height:u.height});let h=[];for(let i of t){if(i.id===e.sourceUid||i.parentId||!i.type||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(i.type)||i.type===r.ToolElementType.ToolFrame||i.data?.isStaged)continue;let t=m(i);if(!t)continue;let o=e.lastApplied.get(i.id)??i.position;h.push({uid:i.id,x:o.x,y:o.y,width:t.width,height:t.height,pinned:!0===i.dragging})}let g=(e=>{let{source:t,others:r,baselines:n,sourceBaseline:i}=e,o={id:t.uid,x:t.x,y:t.y,width:t.width,height:t.height,pinned:!0},a=[],l=new Map;for(let e of r){let t=n.get(e.uid),r={id:e.uid,x:t?t.x:e.x,y:t?t.y:e.y,width:e.width,height:e.height,pinned:!0===e.pinned};a.push(r),l.set(e.uid,r)}let s=[o,...((e,t,r)=>{let n=[],i=new Set,o=e.x,a=e.y,l=e.x+e.width,s=e.y+e.height;for(let e of t)r.has(e.id)&&(i.add(e.id),n.push(e),o=Math.min(o,e.x),a=Math.min(a,e.y),l=Math.max(l,e.x+e.width),s=Math.max(s,e.y+e.height));for(;;){let e=!1;for(let r of t)!i.has(r.id)&&(r.x>l+c||r.x+r.width<o-c||r.y>s+c||r.y+r.height<a-c||(i.add(r.id),n.push(r),o=Math.min(o,r.x),a=Math.min(a,r.y),l=Math.max(l,r.x+r.width),s=Math.max(s,r.y+r.height),e=!0));if(!e)return n}})(o,a,n)],d=new Set(s.map(e=>e.id)),u=i?(e,r)=>{if(e!==t.uid&&r!==t.uid)return;let n=l.get(e===t.uid?r:e);if(n){let e;return e=E(i.x,i.width,n.x,n.width),!E(i.y,i.height,n.y,n.height)&&(!!e||p(i,n))}}:void 0,h=f(s,{axisForPair:u}).positions;for(let e=0;e<a.length;e++){let e=!1;for(let t of a)!d.has(t.id)&&s.some(e=>{let r=h.get(e.id);return C(r?{...e,...r}:e,t)})&&(s.push(t),d.add(t.id),e=!0);if(!e)break;h=f(s,{axisForPair:u}).positions}let m=new Map;for(let e of r){if(e.pinned)continue;let t=h.get(e.uid)??n.get(e.uid);t&&(.5>=Math.abs(t.x-e.x)&&.5>=Math.abs(t.y-e.y)||m.set(e.uid,{x:t.x,y:t.y}))}return m})({source:u,others:h,baselines:e.baselines,sourceBaseline:e.sourceBaseline});if(0===g.size)return;e.snapshotTaken||e.historyBatchId||(l("growthReflow"),e.snapshotTaken=!0),g.forEach((r,n)=>{if(!e.baselines.has(n)){let r=t.find(e=>e.id===n);r&&e.baselines.set(n,{...r.position})}});let x=e.animate&&g.size<=40&&(S||(S=window.matchMedia("(prefers-reduced-motion: reduce)")),!S.matches)?"transform 0.18s ease-out":void 0;x&&(e.stampedTransition=!0),o(e=>e.map(e=>{let t=g.get(e.id);return t?{...e,position:t,style:{...e.style,transition:x}}:e})),g.forEach((t,r)=>{e.lastApplied.set(r,t),(0,b.claimLocalMove)(r,t.x,t.y)})},[i,o,m,l]),x=(0,t.useCallback)(e=>{if(0===e.length)return;let t=new Set(e),r=setTimeout(()=>{u.current.delete(r),o(e=>e.map(e=>t.has(e.id)?{...e,style:{...e.style,transition:void 0}}:e))},250);u.current.add(r)},[o]),y=(0,t.useCallback)(e=>{d.current.delete(e.sourceUid),null!==e.raf&&cancelAnimationFrame(e.raf);let t=[];e.baselines.forEach((r,n)=>{let i=e.lastApplied.get(n)??r;(Math.abs(i.x-r.x)>.5||Math.abs(i.y-r.y)>.5)&&t.push({uid:n,elementLocation:JSON.stringify(i)})}),0===t.length&&e.snapshotTaken&&e.baselines.forEach((e,r)=>{t.push({uid:r,elementLocation:JSON.stringify(e)})}),t.length>0&&s(t,e.historyBatchId),e.stampedTransition&&x(Array.from(e.baselines.keys()))},[s,x]),A=(0,t.useCallback)((e,t)=>{if(!T||w.useWhiteboardViewStore.getState().viewOnly)return;let r=h(e);if(!r)return;let n=r.id!==e,i=d.current.get(r.id);if(i||(i={sourceUid:r.id,baselines:new Map,lastApplied:new Map,sourceBaseline:null,latestRendered:null,animate:t?.animate!==!1,stampedTransition:!1,historyBatchId:t?.historyBatchId,snapshotTaken:!1,raf:null},d.current.set(r.id,i)),t?.animate===!1&&(i.animate=!1),!n&&t&&(void 0!==t.width||void 0!==t.height)&&(i.latestRendered={width:t.width,height:t.height}),null===i.raf){let e=i;e.raf=requestAnimationFrame(()=>{e.raf=null,d.current.get(e.sourceUid)===e&&g(e)})}},[h,g]),_=(0,t.useCallback)(e=>{let t=h(e),r=(t?d.current.get(t.id):void 0)??d.current.get(e);r&&(null!==r.raf&&(cancelAnimationFrame(r.raf),r.raf=null),g(r),y(r))},[h,g,y]),v=(0,t.useCallback)((e,t)=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{A(e,{historyBatchId:t?.historyBatchId}),_(e)}
105)})},[A,_]);return{tickGrowthReflow:A,endGrowthReflow:_,kickGrowthReflow:v}}],46265);var A=e.i(261940),_=e.i(197240),v=e.i(533639),k=e.i(816790);let F=e=>e.sort((e,t)=>Math.abs(e.position.y-t.position.y)>50?e.position.y-t.position.y:e.position.x-t.position.x);e.s(["getCanvasToolImageStackImageUrl",0,e=>e?.startsWith("blob:")||e?.startsWith("http")||e?.startsWith("data:")||e?.includes("cloudfront.ne")?e:e?.startsWith(k.INTERNAL_APP_IMAGE_URL_PREFIX)?e.replace(k.INTERNAL_APP_IMAGE_URL_PREFIX,k.S3_APP_IMAGE_URL_PREFIX):k.S3_IMAGE_URL_PREFIX+e,"getThumbnailImage",0,e=>{if(!e||0===e.length)return null;let t=e[e.length-1];return t.elementType===r.ToolElementType.ToolImage||t.elementType===r.ToolElementType.ToolAiGeneratedImage?t.content:null},"sortImageStackNodesByPosition",0,F],420452),e.s(["useWhiteboardGroups",0,function({mutations:e,project:o,whiteboardId:l,toast:s,setNodes:d,getNodes:u,takeWhiteboardSnapshot:c,saveReactFlowStateToCache:h,refetchWhiteboard:p,revertLastWhiteboardSnapshot:m,viewOnly:g}){let{createNativeGroupMutation:f,deleteNativeGroupMutation:b,addElementsToNativeGroupMutation:x,removeElementsFromNativeGroupMutation:y,addWallAdjacentInGroupMutation:w,groupWhiteboardElementsMutation:E,unGroupWhiteboardElementsMutation:C}=e,T=async e=>{let t=u();if(!t||e.length<2)return;let i=new Set(t.filter(e=>e.type===r.ToolElementType.ToolGroup).map(e=>e.id)),p=t.filter(t=>e.includes(t.id)&&t.type!==r.ToolElementType.ToolGroup&&t.type!==r.ToolElementType.ToolFrame&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type)&&!(t.parentId&&i.has(t.parentId)));if(p.length<2)return;let g=p.map(e=>e.id),b=new Map(t.map(e=>[e.id,e])),x=e=>(0,a.getNodeAbsolutePosition)(e,b),y=1/0,w=1/0,E=-1/0,C=-1/0;for(let e of p){let t=(0,a.getLayoutDimensionsForNode)(e),{x:r,y:n}=x(e);r<y&&(y=r),n<w&&(w=n),r+t.width>E&&(E=r+t.width),n+t.height>C&&(C=n+t.height)}let T=y-20,S=w-20,_=E-y+40,v=C-w+40,k=(0,A.v4)(),F=JSON.stringify({x:T,y:S}),D=JSON.stringify({width:_,height:v}),M=p.map(e=>{let t=x(e);return{uid:e.id,elementLocation:JSON.stringify({x:t.x-T,y:t.y-S})}}),I={id:k,type:r.ToolElementType.ToolGroup,position:{x:T,y:S},data:{attributes:{width:_,height:v}},style:{width:_,height:v,pointerEvents:"none"},selectable:!1,zIndex:-999},U=p.map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e),n=x(e),i={...e,position:{x:n.x-T,y:n.y-S},parentId:k};if(e.type===r.ToolElementType.ToolWhiteboardWall){let r=e.data;return{...i,width:t.width,height:t.height,measured:{width:t.width,height:t.height},style:{...e.style,width:t.width,height:t.height},data:{...r,attributes:{...r?.attributes,width:t.width,height:t.height}}}}return i}),L=new Set(g),B=t.filter(e=>(e.type===n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.type===n.REACT_FLOW_DROP_WALL_GAP_TYPE)&&e.parentId&&L.has(e.parentId)),W=t.filter(e=>!L.has(e.id)&&!B.some(t=>t.id===e.id)),P=new Map;for(let e of B){let t=e.parentId;P.has(t)||P.set(t,[]),P.get(t).push(e)}let j=[I];for(let e of U){j.push(e);let t=P.get(e.id);t?.length&&j.push(...t)}await c("createNativeGroup"),await d([...W,...j]),h();let R={projectId:o.current?.id??0,projectUid:o.current?.uid??"",whiteboardId:l.current??0,groupElementUid:k,groupElementLocation:F,groupElementAttributes:D,childElementUids:g,childLocationUpdates:M};try{await f({variables:R}),s({title:"Elements Grouped",status:"success"})}catch(e){console.error("createNativeGroupMutation error:",e),m(),h()}},S=async e=>{let t=u(),n=t.find(t=>t.id===e&&t.type===r.ToolElementType.ToolGroup);if(!n)return;let i=t.filter(t=>t.parentId===e),a=i.map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x+n.position.x,y:e.position.y+n.position.y})})),s=i.map(e=>({...e,position:{x:e.position.x+n.position.x,y:e.position.y+n.position.y},parentId:void 0,extent:void 0,draggable:void 0,data:{...e.data??{},groupUid:""}})),p=t.filter(t=>t.id!==e&&t.parentId!==e);await c("deleteNativeGroup"),await d([...p,...s]),h();try{let t={projectId:o.current?.id??0,projectUid:o.current?.uid??"",whiteboardId:l.current??0,groupElementUid:e,childLocationUpdates:a};await b({variables:t})}catch(e){console.error("deleteNativeGroup backend error:",e)}},k=async(e,t)=>{let i,s,p,m,g,f,b,y=u(),w=y.find(t=>
105t.id===e&&t.type===r.ToolElementType.ToolGroup);if(!w||!t.length)return;let E=y.filter(t=>t.parentId===e),C=y.filter(e=>t.includes(e.id));if(!C.length)return;if(w.data?.element?.layoutType==="Horizontal"){let t=_.DEFAULT_KANBAN_GROUP_GAP,n=_.DEFAULT_KANBAN_GROUP_PADDING,o=n,l=0;for(let e of[...E].sort((e,t)=>e.position.x-t.position.x)){let r=(0,a.getLayoutDimensionsForNode)(e);o=Math.max(o,e.position.x+r.width+t),r.height>l&&(l=r.height)}f=C.map(i=>{let s=(0,a.getLayoutDimensionsForNode)(i),d={x:o,y:n};o+=s.width+t,s.height>l&&(l=s.height);let u={...i,position:d,parentId:e};if(i.type===r.ToolElementType.ToolWhiteboardWall){let e=i.data;return{...u,width:s.width,height:s.height,measured:{width:s.width,height:s.height},style:{...i.style,width:s.width,height:s.height},data:{...e,attributes:{...e?.attributes,width:s.width,height:s.height}}}}return u}),p=o-t+n,m=2*n+l,i=w.position.x,s=w.position.y,g=E.map(e=>({...e})),b=f.map(e=>({uid:e.id,elementLocation:JSON.stringify(e.position)}))}else{let t=w.position.x,n=w.position.y,o=w.position.x+(w.measured?.width||w.width||200),l=w.position.y+(w.measured?.height||w.height||200);for(let e of C){let r=(0,a.getLayoutDimensionsForNode)(e);e.position.x<t&&(t=e.position.x),e.position.y<n&&(n=e.position.y),e.position.x+r.width>o&&(o=e.position.x+r.width),e.position.y+r.height>l&&(l=e.position.y+r.height)}i=t-20,s=n-20,p=o-t+40,m=l-n+40;let d=w.position.x-i,u=w.position.y-s;g=E.map(e=>({...e,position:{x:e.position.x+d,y:e.position.y+u}})),b=(f=C.map(t=>{let n={...t,position:{x:t.position.x-i,y:t.position.y-s},parentId:e};if(t.type===r.ToolElementType.ToolWhiteboardWall){let e=(0,a.getLayoutDimensionsForNode)(t),r=t.data;return{...n,width:e.width,height:e.height,measured:{width:e.width,height:e.height},style:{...t.style,width:e.width,height:e.height},data:{...r,attributes:{...r?.attributes,width:e.width,height:e.height}}}}return n})).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x,y:e.position.y})}))}let T=JSON.stringify({width:p,height:m}),S={...w,position:{x:i,y:s},data:{...w.data,attributes:{width:p,height:m}},selectable:!1,style:{...w.style,width:p,height:m,pointerEvents:"none"}},A=new Set([...g,...f].filter(e=>e.type===r.ToolElementType.ToolWhiteboardWall).map(e=>e.id)),v=y.filter(e=>(e.type===n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.type===n.REACT_FLOW_DROP_WALL_GAP_TYPE)&&e.parentId&&A.has(e.parentId)),k=y.filter(r=>r.id!==e&&!t.includes(r.id)&&r.parentId!==e&&!v.some(e=>e.id===r.id)),F=new Map;for(let e of v){let t=e.parentId;F.has(t)||F.set(t,[]),F.get(t).push(e)}let D=[];for(let e of g){D.push(e);let t=F.get(e.id);t?.length&&D.push(...t)}let M=[];for(let e of f){M.push(e);let t=F.get(e.id);t?.length&&M.push(...t)}await c("addElementsToNativeGroup"),await d([...k,S,...D,...M]),h();try{let r={projectId:o.current?.id??0,projectUid:o.current?.uid??"",whiteboardId:l.current??0,groupElementUid:e,groupElementAttributes:T,childElementUids:t,childLocationUpdates:b};await x({variables:r})}catch(e){console.error("addElementsToNativeGroup backend error:",e)}},D=async(e,t)=>{let i,s=u(),p=s.find(t=>t.id===e&&t.type===r.ToolElementType.ToolGroup);if(!p||!t.length)return;let m=s.filter(t=>t.parentId===e),g=m.filter(e=>!t.includes(e.id)),f=m.filter(e=>t.includes(e.id)),b=p.data?.element?.layoutType==="Horizontal",x=g.length>=2,w=b&&x?50:0,E=b&&x?-80:0,C=f.map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x+p.position.x+w,y:e.position.y+p.position.y+E})}));if(1===g.length){let e=g[0];C.push({uid:e.id,elementLocation:JSON.stringify({x:e.position.x+p.position.x,y:e.position.y+p.position.y})})}let T=f.map(e=>({...e,position:{x:e.position.x+p.position.x+w,y:e.position.y+p.position.y+E},parentId:void 0,extent:void 0,draggable:void 0,data:{...e.data??{},groupUid:""}})),S=new Set([...g,...f].filter(e=>e.type===r.ToolElementType.ToolWhiteboardWall).map(e=>e.id)),A=s.filter(e=>(e.type===n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.type===n.REACT_FLOW_DROP_WALL_GAP_TYPE)&&e.parentId&&S.has(e.parentId)),v=new Map;for(let e of A){let t=e.parentId;v.has(t)||v.set(t,[]),v.get(t).push(e)}let k=s.filter(r=>r.id!==e&&r.parentId!==e&&!t.includes(r.id)&&!A.some(e=>e.id===r.id));if(await c("removeElementsFromNativeGroup"),0===g.length){let e=[];for(let t of T)e.push(t),e.push(...v.get(t.id)??[]);await d([...k,...e])}else if(1===g.length){let e=g[0],t={...e,position:{x:e.position.x+p.position.x,y:e.position.y+p.position.y},parentId:void 0,extent:void 0,draggable:void 0,data:{...e.data??{},groupUid:""}},r=[];for(let e of T)r.push(e),r.push(...v.get(e.id)??[]);
105r.push(t),r.push(...v.get(e.id)??[]),await d([...k,...r])}else{let e,t,r,n,o;if(b){let i=[...g].sort((e,t)=>e.position.x-t.position.x),l=_.DEFAULT_KANBAN_GROUP_GAP,s=_.DEFAULT_KANBAN_GROUP_PADDING,d=0,u=s,c=i.map(e=>{let t=(0,a.getLayoutDimensionsForNode)(e),r={...e,position:{x:u,y:s}};return u+=t.width+l,t.height>d&&(d=t.height),r});for(let i of(n=u-l+s,o=2*s+d,t=p.position.x,r=p.position.y,e=c,c))C.push({uid:i.id,elementLocation:JSON.stringify(i.position)})}else{let i=1/0,l=1/0,s=-1/0,d=-1/0;for(let e of g){let t=(0,a.getLayoutDimensionsForNode)(e),r=e.position.x+p.position.x,n=e.position.y+p.position.y;r<i&&(i=r),n<l&&(l=n),r+t.width>s&&(s=r+t.width),n+t.height>d&&(d=n+t.height)}t=i-20,r=l-20,n=s-i+40,o=d-l+40,e=g.map(e=>({...e,position:{x:e.position.x+p.position.x-t,y:e.position.y+p.position.y-r}}))}i=JSON.stringify({width:n,height:o});let l={...p,position:{x:t,y:r},data:{...p.data,attributes:{width:n,height:o}},selectable:!1,style:{...p.style,width:n,height:o,pointerEvents:"none"}},s=[];for(let t of e)s.push(t),s.push(...v.get(t.id)??[]);let u=[];for(let e of T)u.push(e),u.push(...v.get(e.id)??[]);await d([...k,l,...s,...u])}h();try{let r={projectId:o.current?.id??0,projectUid:o.current?.uid??"",whiteboardId:l.current??0,groupElementUid:e,groupElementAttributes:i??"",childElementUids:t,childLocationUpdates:C};await y({variables:r})}catch(e){console.error("removeElementsFromNativeGroup backend error:",e)}},M=(0,t.useCallback)(async({existingWallUid:e,insertDirection:t,groupUid:n})=>{if(g)return;let i=u(),s=i.find(t=>t.id===e);if(!s)return;let f=_.DEFAULT_WALL_WIDTH,b=_.DEFAULT_WALL_HEIGHT,x=_.DEFAULT_KANBAN_GROUP_GAP,y=_.DEFAULT_KANBAN_GROUP_PADDING,E=JSON.stringify({wallWidth:f,wallHeight:b,gap:x,padding:y}),C=(0,A.v4)();if(await c("addWallAdjacentInGroup"),n){if(!i.find(e=>e.id===n))return;let s=i.filter(e=>e.parentId===n&&e.type===r.ToolElementType.ToolWhiteboardWall).sort((e,t)=>e.position.x-t.position.x),u=s.findIndex(t=>t.id===e),c="left"===t?u:u+1,g=[...s.slice(0,c),null,...s.slice(c)],T=y,S=0,A=new Map;for(let e of g)if(null===e)A.set(C,{x:T,y:y}),T+=f+x,b>S&&(S=b);else{let t=(0,a.getLayoutDimensionsForNode)(e);A.set(e.id,{x:T,y:y}),T+=t.width+x,t.height>S&&(S=t.height)}let _=T-x+y,v=2*y+S,k={id:C,type:r.ToolElementType.ToolWhiteboardWall,position:A.get(C),parentId:n,data:{whiteboardElementUid:C,type:r.ToolElementType.ToolWhiteboardWall,element:{title:"New Wall",elementUid:"",whiteboardElementUid:C,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:f,height:b}},width:f,height:b,measured:{width:f,height:b},style:{width:f,height:b}};d(e=>e.map(e=>{if(e.id===n)return{...e,data:{...e.data,attributes:{width:_,height:v}},style:{...e.style,width:_,height:v}};let t=A.get(e.id);return t?{...e,position:t}:e}).concat([k]));try{let r={projectId:o.current?.id??0,projectUid:o.current?.uid??"",whiteboardId:l.current??0,existingWallUid:e,insertDirection:t,newWallUid:C,newGroupUid:"",layoutConfig:E};await w({variables:r}),await p(),await h()}catch(e){console.error("addWallAdjacentInGroup backend error:",e),m()}}else{let n=(0,A.v4)(),i=s.position.x,a=s.position.y,u=s.data?.attributes,c=s.measured,g=(u?.width>0?u.width:c?.width??0)||f,T=(u?.height>0?u.height:c?.height??0)||b,S="left"===t?y+f+x:y,_="left"===t?y:y+g+x,v=2*y+g+f+x,k=2*y+Math.max(T,b),F=a-y,D={id:n,type:r.ToolElementType.ToolGroup,position:{x:i-S,y:F},data:{whiteboardElementUid:n,type:r.ToolElementType.ToolGroup,element:{uid:n,layoutType:"Horizontal",whiteboardElementUid:n,__typename:"ToolGroup"},attributes:{width:v,height:k}},style:{width:v,height:k,pointerEvents:"none"},selectable:!1,zIndex:-999},M={id:C,type:r.ToolElementType.ToolWhiteboardWall,position:{x:_,y:y},parentId:n,data:{whiteboardElementUid:C,type:r.ToolElementType.ToolWhiteboardWall,element:{title:"New Wall",elementUid:"",whiteboardElementUid:C,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:f,height:b}},width:f,height:b,measured:{width:f,height:b},style:{width:f,height:b}};d(t=>[D,...t.map(t=>{if(t.id===e){let e=t.data,r=!e?.attributes?.width||e.attributes.width<=0;return{...t,position:{x:S,y:y},parentId:n,...r&&{width:g,height:T,measured:{width:g,height:T},style:{...t.style,width:g,height:T},data:{...e,attributes:{...e?.attributes,width:g,height:T}}}}}return t}),M]);try{let r={projectId:o.current?.id??0,projectUid:o.current?.uid??"",whiteboardId:l.current??0,existingWallUid:e,insertDirection:t,newWallUid:C,newGroupUid:n,layoutConfig:E};await w({variables:r}),await p(),await h()}catch(e){console.error("addWallAdjacentInGroup backend error:",e),m()}}},[w,c,h,g,u,d,p,m]);return{createNativeGroup:T,deleteNativeGroup:S,addElementsToNativeGroup:k,removeElementsFromNativeGroup:D,addWallAdjacentInGroup:M,groupWhiteboardElements:(0,t.useCallback)(async({whiteboardElementNodes:e,groupElementUid:t})=>{if(g)return;let n=await u();try{let n;await c("groupWhiteboardElements"),t&&""!==t||(n=(0,A.v4)());let i=F([...e]),a=[],s=[];
105if(i.forEach(e=>{a.push(e.id);let t=e.data,r=(0,v.convertWhiteboardNodeDataToWhiteboardElement)(t);s.push(r)}),!n)return;{let e=i[0],t=e.data?.attributes,o=e.measured,l=(e.width&&e.width>0?e.width:null)||(o?.width&&o.width>0?o.width:null)||(t?.width&&t.width>0?t.width:null)||200,u=(e.height&&e.height>0?e.height:null)||(o?.height&&o.height>0?o.height:null)||(t?.height&&t.height>0?t.height:null)||200,c={elementUid:"",title:"",elements:s,whiteboardElementUid:n,__typename:r.ToolElementType.ToolImageStack},h={x:e.position.x,y:e.position.y},p={id:n,type:r.ToolElementType.ToolImageStack,position:{x:h.x,y:h.y},data:{whiteboardElementUid:n,type:r.ToolElementType.ToolImageStack,element:c,attributes:{width:l,height:u},top:h.y,left:h.x}};await d(e=>[...e,p]),await d(e=>e.filter(e=>!a.includes(e.id)))}let u={whiteboardElementUids:a,projectId:o.current?.id,projectUid:o.current?.uid,whiteboardId:l.current,groupElementUid:t,newGroupElementUid:n},{data:m}=await E({variables:u});if(!m?.groupWhiteboardElements)throw Error("groupWhiteboardElements returned no group");await p(),await h()}catch(e){console.error("Error groupin elements:",e),await d(n),m(),(0,i.handleGraphQLError)({error:e,toast:s})}},[E,c,h,o.current?.id,l.current,d,u]),ungroupWhiteboardElements:(0,t.useCallback)(async({onlyWhiteboardElementUids:e,groupElementUid:t})=>{if(g)return;let r=await u();try{let r=(await u()).find(e=>e.id===t);if(!r)return void console.error("Stack node not found:",t);let n=r.data.element,i=n?.elements||[];if(0===i.length)return void console.error("No elements found in stack");let a=i.map(e=>{let t=(0,v.convertWhiteboardElementToWhiteboardNodeData)(e),r=JSON.parse(e.elementLocation);return{id:e.uid,type:e.elementType,position:{x:r.x,y:r.y},data:t}});await c("ungroupWhiteboardElements"),await d(e=>[...e.filter(e=>e.id!==t),...a]);let s={onlyWhiteboardElementUids:e||[],projectId:o.current?.id,projectUid:o.current?.uid,whiteboardId:l.current,groupElementUid:t},{data:m}=await C({variables:s});if(!m?.unGroupWhiteboardElements)throw Error("unGroupWhiteboardElements returned no result");await p(),await h()}catch(e){console.error("Error ungrouping elements:",e),await d(r),m(),(0,i.handleGraphQLError)({error:e,toast:s})}},[C,c,h,o.current?.id,l.current,d,u])}}],954563);var D=e.i(606846);let M={backgroundColor:"",borderColor:"",cornerRadiusRatio:0};e.s(["useWhiteboardFrames",0,function({mutations:e,project:t,whiteboardId:o,toast:l,setNodes:d,getNodes:u,takeWhiteboardSnapshot:c,saveReactFlowStateToCache:h,revertLastWhiteboardSnapshot:p,refetchWhiteboard:m,viewOnly:g}){let{createNativeFrameMutation:f,deleteNativeFrameMutation:x,addElementsToNativeFrameMutation:y,removeElementsFromNativeFrameMutation:w,updateNativeFrameAttributesMutation:E}=e,C=async(e,s,c)=>{if(g||!s||0===s.length)return;let f=await u(),x=f.find(t=>t.id===e&&t.type===r.ToolElementType.ToolFrame);if(!x)return;let w=s.filter(t=>{let i=f.find(e=>e.id===t);return!(!i||t===e||i.type===r.ToolElementType.ToolFrame||i.type===r.ToolElementType.ToolGroup||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(i.type))&&(!i.parentId||i.parentId===e)});if(0===w.length)return;let E=[],C=new Map;for(let e of f){if(!w.includes(e.id))continue;let t=c?.get(e.id)??e.position,r=t.x-x.position.x,n=t.y-x.position.y;C.set(e.id,{x:r,y:n}),E.push({uid:e.id,elementLocation:JSON.stringify({x:r,y:n})}),(0,b.claimLocalMove)(e.id,r,n)}let T=[];await d(t=>{let r=t.map(t=>{let r=C.get(t.id);return r?{...t,position:r,parentId:e,dragging:!1}:t});return T=(0,a.putFrameNodeFirst)(r,e)});try{let r={projectId:t.current?.id??0,projectUid:t.current?.uid??"",whiteboardId:o.current??0,frameElementUid:e,frameElementAttributes:void 0,childElementUids:w,childLocationUpdates:E};await y({variables:r}),h()}catch(e){console.error("addElementsToFrame backend error:",e),await m(),p(),(0,i.handleGraphQLError)({error:e,toast:l})}return T},T=async(e,n,a)=>{if(g||!n||0===n.length)return;let c=await u(),f=c.find(t=>t.id===e&&t.type===r.ToolElementType.ToolFrame);if(!f)return;let x=[],y=new Map;for(let t of c){if(!n.includes(t.id)||t.parentId!==e)continue;let r=a?.get(t.id),{x:i,y:o}=r?(0,s.snapPointToGrid)(r):{x:t.position.x+f.position.x,y:t.position.y+f.position.y};y.set(t.id,{x:i,y:o}),x.push({uid:t.id,elementLocation:JSON.stringify({x:i,y:o})}
105),(0,b.claimLocalMove)(t.id,i,o)}await d(t=>t.map(t=>{let r=y.get(t.id);return r&&t.parentId===e?{...t,position:r,parentId:void 0,extent:void 0,draggable:void 0,dragging:!1}:t}));try{let r={projectId:t.current?.id??0,projectUid:t.current?.uid??"",whiteboardId:o.current??0,frameElementUid:e,frameElementAttributes:void 0,childElementUids:n,childLocationUpdates:x};await w({variables:r}),h()}catch(e){console.error("removeElementsFromFrame backend error:",e),await m(),(0,i.handleGraphQLError)({error:e,toast:l}),p()}},S=async(e,t)=>{let i=new Set;if(g||0===e.length)return i;let{toAttach:o,toDetach:l,absolutePositions:s}=(e=>{let t=u(),i=t.filter(D.isAdoptableFrameNode),o=new Map,l=new Map,s=new Map;if(0===i.length)return{toAttach:o,toDetach:l,absolutePositions:s};let d=i.map(e=>({id:e.id,rect:(0,D.getFrameRect)(e)}));for(let u of e){let e=t.find(e=>e.id===u.id);if(!e||e.type===r.ToolElementType.ToolFrame||e.type===r.ToolElementType.ToolGroup||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type))continue;let c=(0,a.getLayoutDimensionsForNode)(e),h=i.find(t=>t.id===e.parentId),p=u.position??e.position,m=h?p.x+h.position.x:p.x,g=h?p.y+h.position.y:p.y,f={x:m,y:g,width:c.width,height:c.height},b=h?.id??null,x=(0,D.pickAdoptingFrame)(f,d,b,_.FRAME_MEMBERSHIP_OVERLAP_THRESHOLD);if(b!==x){if(b){let e=l.get(b)??[];e.push(u.id),l.set(b,e),s.set(u.id,{x:m,y:g})}if(x){if(e.parentId&&e.parentId!==b)continue;let t=o.get(x)??[];t.push(u.id),o.set(x,t),s.set(u.id,{x:m,y:g})}}}return{toAttach:o,toDetach:l,absolutePositions:s}})(e),d=!t?.gestureSnapshotAlreadyTaken;for(let[e,t]of Array.from(l.entries()))d&&await c("frameMembershipSettle"),d=!0,await T(e,t,s),t.forEach(e=>i.add(e));for(let[e,t]of Array.from(o.entries()))d&&await c("frameMembershipSettle"),d=!0,await C(e,t,s),t.forEach(e=>i.add(e));return i},v=async(e,t)=>{if(g)return;let i=u(),o=i.find(t=>t.id===e&&t.type===r.ToolElementType.ToolFrame);if(!o)return;let l={...(0,D.getFrameRect)(o),...t},s=[];for(let t of i){if(t.parentId!==e||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type))continue;let r=(0,a.getLayoutDimensionsForNode)(t),i={x:t.position.x+o.position.x,y:t.position.y+o.position.y,width:r.width,height:r.height};(0,D.computeFrameOverlapRatio)(i,l)<_.FRAME_MEMBERSHIP_OVERLAP_THRESHOLD&&s.push(t.id)}s.length>0&&(await c("detachShrunkFrameMembers"),await T(e,s))};return{createFrame:async e=>{if(g)return;let s=(0,A.v4)(),b={width:e.width,height:e.height,...M},x=JSON.stringify({x:e.x,y:e.y}),y=JSON.stringify({...b,name:_.DEFAULT_TOOL_FRAME_NAME}),w={__typename:"ToolFrame",whiteboardElementUid:s,elementUid:s,name:_.DEFAULT_TOOL_FRAME_NAME},E={id:s,type:r.ToolElementType.ToolFrame,position:{x:e.x,y:e.y},data:{whiteboardElementUid:s,id:s,type:r.ToolElementType.ToolFrame,top:e.y,left:e.x,attributes:b,element:w},style:{width:e.width,height:e.height,pointerEvents:"none"},selectable:!1,zIndex:_.TOOL_FRAME_NODE_Z_INDEX},C=await u(),T=new Set,S=[],v=[];for(let t of C){if(t.type===r.ToolElementType.ToolFrame||t.type===r.ToolElementType.ToolGroup||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t.type)||t.parentId)continue;let i=(0,a.getLayoutDimensionsForNode)(t);if((0,D.computeFrameOverlapRatio)({x:t.position.x,y:t.position.y,width:i.width,height:i.height},e)<_.FRAME_MEMBERSHIP_OVERLAP_THRESHOLD)continue;T.add(t.id);let o=t.position.x-e.x,l=t.position.y-e.y;S.push(t.id),v.push({uid:t.id,elementLocation:JSON.stringify({x:o,y:l})})}await c("createFrame"),await d(t=>[E,...t.map(t=>T.has(t.id)?{...t,position:{x:t.position.x-e.x,y:t.position.y-e.y},parentId:s}:t)]);let k={projectId:t.current?.id??0,projectUid:t.current?.uid??"",whiteboardId:o.current??0,frameElementUid:s,frameElementLocation:x,frameElementAttributes:y,childElementUids:S,childLocationUpdates:v};try{await f({variables:k}),h()}catch(e){console.error("createNativeFrameMutation error:",e),p(),await m(),(0,i.handleGraphQLError)({error:e,toast:l})}return s},addElementsToFrame:C,removeElementsFromFrame:T,updateFrameAttributes:async(e,n,a)=>{if(g)return!1;let s=a?.location,f=await u(),b=f.find(t=>t.id===e&&t.type===r.ToolElementType.ToolFrame);if(!b)return!1;let x={...b.data?.attributes??{},...n},y=f.map(t=>{if(t.id!==e)return t;let r={...t,data:{...t.data,attributes:x}};return("number"==typeof n.width||"number"==typeof n.height)&&(r.style={...t.style,width:x.width,height:x.height}),s&&(r.position={x:s.x,y:s.y}),r});a?.gestureSnapshotAlreadyTaken||await c("updateFrameAttributes"),await d(y);try{let r={projectId:t.current?.id??0,projectUid:t.current?.uid??"",whiteboardId:o.current??0,frameElementUid:e,frameElementAttributes:JSON.stringify(x),frameElementLocation:s?JSON.stringify(s):void 0};return await E({variables:r}),h(),!0}catch(e){return console.error("updateFrameAttributes backend error:",e),await m(),p(),(0,i.handleGraphQLError)({error:e,toast:l}),!1}},deleteFrame:async e=>{if(g)return;let n=await u(),a=n.find(t=>
105t.id===e&&t.type===r.ToolElementType.ToolFrame);if(!a)return;let s=n.filter(t=>t.parentId===e).map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.position.x+a.position.x,y:e.position.y+a.position.y})})),f=n.filter(t=>t.id!==e).map(t=>t.parentId!==e?t:{...t,position:{x:t.position.x+a.position.x,y:t.position.y+a.position.y},parentId:void 0,extent:void 0,draggable:void 0});await c("deleteFrame"),await d(f);try{let r={projectId:t.current?.id??0,projectUid:t.current?.uid??"",whiteboardId:o.current??0,frameElementUid:e,childLocationUpdates:s};await x({variables:r}),h()}catch(e){console.error("deleteFrame backend error:",e),await m(),(0,i.handleGraphQLError)({error:e,toast:l}),p()}},applyFrameMembership:S,detachShrunkFrameMembers:v,resolveFrameForNewElement:(e,t)=>{if(g||t===r.ToolElementType.ToolFrame||n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(t))return null;let i=u().filter(D.isAdoptableFrameNode),o=e.width>0&&e.height>0?e:{...e,width:1,height:1},a=(0,D.pickAdoptingFrame)(o,i.map(e=>({id:e.id,rect:(0,D.getFrameRect)(e)})),null,_.FRAME_MEMBERSHIP_OVERLAP_THRESHOLD);return i.find(e=>e.id===a)??null}}}],740984);var I=e.i(785929),U=e.i(200285),L=e.i(334540),B=e.i(624929),W=e.i(243829);let P=["spotify.com","soundcloud.com"],j=/^[a-z][a-z0-9+.-]*:/i,R=/^[^\s]+\.[a-z]{2,}([/?#].*)?$/i,N=e=>{let t=e?.trim();if(!t)return null;if(j.test(t)){try{let e=new URL(t);if("http:"===e.protocol||"https:"===e.protocol)return e.href}catch{}return null}if(!R.test(t))return null;try{let e=new URL(`https://${t}`);if(e.hostname.includes("."))return e.href}catch{}return null};function O(e,t){let r=e?.trim();if(!r)return null;let n={elementUid:(0,A.v4)(),projectId:t},i=N(r);if(i){if((0,W.convertToEmbedUrl)(i))return{type:U.WhiteboardDroppableType.DroppableVideo,input:{...n,videoUrl:i}};let e=(0,W.normalizeDirectVideoUrl)(i);return e?{type:U.WhiteboardDroppableType.DroppableVideo,input:{...n,videoUrl:e}}:((e,t)=>{try{let r=new URL(e).hostname.toLowerCase();return t.some(e=>r.includes(e))}catch{return!1}})(i,P)?{type:U.WhiteboardDroppableType.DroppableAudio,input:{...n,audioUrl:i}}:{type:U.WhiteboardDroppableType.DroppableLink,input:{...n,url:i}}}let o=(0,B.looksLikeMarkdown)(r)?(0,B.convertMarkdownToHtml)(r):r;return{type:U.WhiteboardDroppableType.DroppableNote,input:{...n,content:o}}}let H=/\.(png|jpe?g|gif|webp|avif|bmp|ico)(\?|#|$)/i,z=e=>{let t=e?.trim();if(!t)return!1;if(/^data:image\//i.test(t))return!0;let r=N(t);return!!r&&H.test(r)};function G(e){let t=e.dataTransfer.getData("text/uri-list");return t?t.split("\n").find(e=>e&&!e.startsWith("#"))||"":e.dataTransfer.getData("text/plain")||""}e.s(["classifyTextForWhiteboard",0,O,"dragMayCarryImage",0,function(e){let t=Array.from(e.types??[]);return t.includes("Files")||t.includes("text/html")||t.includes("text/uri-list")},"extractDraggedImageUrl",0,function(e){let t=e.getData("text/html");if(t){let e=t.match(/<img[^>]*>/i)?.[0]??"",r=e.match(/\ssrc\s*=\s*["']([^"']+)["']/i)?.[1],n=(e.match(/\ssrcset\s*=\s*["']([^"']+)["']/i)?.[1]??"").split(",").map(e=>e.trim().split(/\s+/)[0]).filter(Boolean),i=e=>e.replace(/&/g,"&");for(let e of[r,...n]){if(!e)continue;let t=N(i(e));if(t)return t}if(r&&/^data:image\//i.test(r))return r}let r=e.getData("text/uri-list").split("\n").find(e=>e&&!e.startsWith("#"))||e.getData("text/plain");return r&&z(r)?/^data:image\//i.test(r.trim())?r.trim():N(r):null},"getDroppedText",0,G,"looksLikeImageUrl",0,z,"tryNormalizeUrl",0,N],635655);var V=e.i(399505),$=e.i(140430);let J=4/3;async function K(e){try{let t=await createImageBitmap(e),r={width:t.width,height:t.height};return t.close(),r}catch{return new Promise(t=>{let r=URL.createObjectURL(e),n=new Image;n.onload=()=>{URL.revokeObjectURL(r),t({width:n.naturalWidth,height:n.naturalHeight})},n.onerror=()=>{URL.revokeObjectURL(r),t(null)},n.src=r})}}var Y=e.i(384901),q=e.i(830940);let X=[r.ToolElementType.ToolNote,r.ToolElementType.ToolAiNote,r.ToolElementType.ToolToDo,r.ToolElementType.ToolTicket,r.ToolElementType.ToolLink,r.ToolElementType.ToolVideo,r.ToolElementType.ToolImage,r.ToolElementType.ToolAiGeneratedImage,r.ToolElementType.ToolDocument,r.ToolElementType.ToolFile,r.ToolElementType.ToolFlow,r.ToolElementType.ToolWhiteboard,r.ToolElementType.ToolTable],Q=(e,t,r)=>
105Math.max(t,Math.min(r,e));function Z(e){let{h:t,s:r,l:n}=(0,q.hexToHsl)(e);return{wallBg:e,wallHighlight:(0,q.hslToHex)(t,r,Q(n+50,0,100)),noteBg:(0,q.hslToHex)(t,r,Q(n+10,0,100))}}let ee=/^#[0-9A-Fa-f]{6}$/;function et(e){if(!e)return;let t=e.toUpperCase(),r=Y.lightModeWallThemeBackgroundColors.findIndex(e=>e.toUpperCase()===t);if(-1!==r)return Y.lightModeWallThemeNoteColors[r];let n=Y.darkModeWallThemeBackgroundColors.findIndex(e=>e.toUpperCase()===t);return -1!==n?Y.darkModeWallThemeNoteColors[n]:ee.test(e)?Z(e).noteBg:void 0}function er(e,t){for(let r of e){if(r.id===t||r.data?.element?.whiteboardElementUid===t)return et(r.data?.attributes?.backgroundColor);let e=r.data?.element?.elements;if(e){for(let r of e)if(r.uid===t||r.content?.whiteboardElementUid===t)try{let e=r.elementAttributes?JSON.parse(r.elementAttributes):void 0;return et(e?.backgroundColor)}catch{return}}}}function en(e,t){let r={};try{r=e?JSON.parse(e):{}}catch{r={}}return JSON.stringify({...r,backgroundColor:t})}e.s(["CHILD_NOTE_TYPES",0,X,"generateThemeFromColor",0,Z,"getNoteUidsFromWallNodes",0,function(e){let t=[];for(let r of e){let e=r.data?.element?.elements;if(e)for(let r of e)X.includes(r.elementType)&&t.push(r.uid)}return t},"getWallEntryChildBackgroundColor",0,er,"getWallThemeNoteBg",0,et,"getWhiteboardToolWallThemes",0,function(e){let t="dark"===e,r=t?Y.darkModeWallThemeBackgroun
105dColors:Y.lightModeWallThemeBackgroundColors,n=t?Y.darkModeWallThemeNoteColors:Y.lightModeWallThemeNoteColors,i=t?Y.darkModeWallThemeHighlightColors:Y.lightModeWallThemeHighlightColors;return Array.from({length:12},(e,t)=>({wallBg:r[t],wallHighlight:i[t],noteBg:n[t]}))},"withWallChildBackgroundColor",0,en],357632);var ei=e.i(309943),eo=e.i(961773),ea=e.i(150507),el=e.i(282723),es=e.i(645454);let ed=e=>e.type.startsWith("image/");e.i(762593);var eu=e.i(33952),ec=e.i(182227),eh=e.i(254878),ep=e.i(350618),em=e.i(143089),eg=e.i(563026);let ef=(e,t)=>`${e}#${t}`,eb=e=>{if(!e)return null;let t=e.indexOf("#");return t<=0||t===e.length-1?null:{elementUid:e.slice(0,t),slotId:e.slice(t+1)}},ex=new Map,ey=new Set,ew=(e,t)=>{let r=eb(e);if(!r)return!1;let n=ex.get(r.elementUid);return!!(!n||!e||ey.has(e))||(ey.add(e),n.fillFile(r.slotId,t).catch(e=>console.error("Failed to fill picture slot:",e)).finally(()=>ey.delete(e)),!0)};e.s(["fillHtmlEmbedSlotTarget",0,(e,t)=>{let r=eb(e);if(!r||!t)return!1;let n=ex.get(r.elementUid);if(!n)return!1;let i=(0,em.getImageUrl)({url:t});return!!i&&!!(0,eg.canHtmlEmbedPaint)(i)&&n.fill(r.slotId,i)},"fillHtmlEmbedSlotTargetFromFile",0,ew,"htmlEmbedPasteTarget",0,e=>{let t=ex.get(e)?.pasteSlot();return t?ef(e,t):null},"htmlEmbedSlotTarget",0,ef,"parseHtmlEmbedSlotTarget",0,eb,"registerHtmlEmbedSlotFiller",0,(e,t)=>{t?ex.set(e,t):ex.delete(e)}],936109);var eE=e.i(536579),eC=e.i(203306),eT=e.i(935004),eS=e.i(297362),eA=e.i(385050),e_=e.i(644510),ev=e.i(44272);e.s(["useWhiteboardElements",0,function({mutations:e,project:o,whiteboardId:d,networkBoardLoadedRef:u,toast:c,setNodes:h,getNodes:p,takeWhiteboardSnapshot:m,saveReactFlowStateToCache:g,refetchWhiteboard:f,revertLastWhiteboardSnapshot:b,viewOnly:x,setDraggableLoadingState:y,startUpload:w,updateUploadProgress:E,completeUpload:C,failUpload:T,uploadSingleImage:S,canvasEngine:F,resolveFrameForNewElement:D}){let{currentUser:M}=(0,eh.useCurrentUser)(),{showInsufficientSubscriptionDialog:B}=(0,L.default)(),{confirmUserFileUploadAfterS3:W}=(0,eS.useUserFileUploadGalleryMutations)(),{addWhiteboardElementMutation:P,addWhiteboardLinkToWhiteboardMutation:j,saveSharedBoardLinkToWhiteboardMutation:R,addDefaultKanbanGroupMutation:N,generateMediaUploadUrlMutation:H,updateWhiteboardElementContentMutation:z,deleteWhiteboardElementsMutation:Y}=e,q=(0,eC.useParams)(),{addViewOnlyMutation:Q}=(0,eE.useViewOnlyCommentMutations)(),Z=(0,t.useCallback)(async({delta:e,item:t,createElement:a,setCurrentActiveElement:l,setItemHasCreationFocus:s,elementId:y,elementUid:w,attributes:E,onSuccess:C,onFailure:T,parentUid:S,parentOrderIndex:k,cell:F,shouldReorderParentElements:I=!1,replaceExistingNodeUid:L,forcedElementUid:W,historyBatchId:j})=>{let R,N=(0,eE.getViewOnlyCommentContext)(),O=N.active&&(0,eE.isViewOnlyCommentElementType)((0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type));if((!x||O)&&u.current)try{let i;j||await m("addWhiteboardElement"),E&&void 0!=E||(E=(S?null:(0,_.getDefaultCreateDimensions)(t.type))??{width:0,height:0});let u=!a&&null!=y,c=L||W||(u?void 0:t.input?.elementUid)||(0,A.v4)();R=L?void 0:c,w||(w=t.input.elementUid??"");let x={...t.input,whiteboardElementUid:c,__typename:(0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type)};t.type==U.WhiteboardDroppableType.DroppableWall&&(x.elements=[]);let B=S&&""!=S&&X.includes((0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type))?er(p(),S):void 0,H={width:E?.width??0,height:E?.height??0,...B?{backgroundColor:B}:{},...t.type==U.WhiteboardDroppableType.DroppableHeading?{backgroundColor:"transparent",width:E?.width&&E.width>0?E.width:_.DEFAULT_TOOL_HEADING_WIDTH,textAlign:"center"}:{},...(!S||""===S)&&(0,ei.supportsCornerRadius)(x.__typename)&&x.__typename!==r.ToolElementType.ToolImage?{cornerRadiusRatio:0}:{},...F&&S&&""!==S?{cell:F}:{}},z={x:e.x,y:e.y},G=S&&""!==S||L?null:D({x:z.x,y:z.y,width:H.width??0,height:H.height??0},(0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type)),V=G?{x:z.x-G.position.x,y:z.y-G.position.y}:null;if(S&&""!=S){let e={uid:c,parentUid:S,parentOrderIndex:k,elementType:(0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type),content:x,top:z.y,left:z.x,elementAttributes:JSON.stringify(H),elementLocation:JSON.stringify(z),contentJsonString:JSON.stringify(x)};await h(t=>t.filter(e=>e.type!=n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.data.whiteboardElementUid!==S).map(t=>{if(t.id===S)return{...t,selected:!0,data:{...t.data,element:{...t.data.element,elements:(()=>
105{if(!I||void 0===k)return[...t.data.element.elements||[],e];{let r=[...t.data.element.elements||[]];return r.splice(k,0,e),r}})()}}};if(t.data?.element?.elements){let r=t.data.element.elements.map(t=>t.content?.whiteboardElementUid===S?{...t,content:{...t.content,elements:(()=>{if(!I||void 0===k)return[...t.content.elements||[],e];{let r=[...t.content.elements||[]];return r.splice(k,0,e),r}})()}}:t);return{...t,data:{...t.data,element:{...t.data.element,elements:r}}}}return{...t,selected:!1}})),eo.whiteboardActions.kickGrowthReflow(S)}else{let e={id:c,type:(0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type),position:V??{x:z.x,y:z.y},...G?{parentId:G.id}:{},data:{whiteboardElementUid:c,creatorUserId:M?.id,type:(0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type),element:x,attributes:H}};O&&(e.draggable=!0),t.type==U.WhiteboardDroppableType.DroppableWhiteboard?e.zIndex=-1:t.type==U.WhiteboardDroppableType.DroppableWall?e.zIndex=-2:t.type==U.WhiteboardDroppableType.DroppableKanban&&(e.zIndex=-999),L?h(t=>t.map(t=>t.id===L?{...t,...e,id:L,selected:t.selected}:t)):(h(t=>[...t.map(e=>({...e,selected:!1})),{...e,selected:!0}]),l({activeElement:x,elementAttributes:H}),s(!0))}console.debug("addWhiteboardElementMutation, parentUid",S);let $=()=>!!o.current?.id&&!!o.current?.uid&&null!=d.current;if(!$()){let e=performance.now();for(;!$()&&performance.now()-e<1e4;)await new Promise(e=>setTimeout(e,100));if(!$()){T?.(),f(),b();return}}x.projectId=o.current?.id;let J=(0,v.mapWhiteboardDroppableTypeToToolElementType)(t.type);if(O){let e=await Q({variables:{uid:c,whiteboardUid:N.whiteboardUid,readonlyLinkKey:N.readonlyLinkKey,accessToken:N.accessToken,elementUid:w,elementType:J,elementLocation:JSON.stringify(V??z),elementAttributes:JSON.stringify(H),elementDataJsonString:JSON.stringify(x)}});i={addWhiteboardElement:e.data?.addViewOnlyWhiteboardElement}}else i=(await P({variables:{uid:c,projectId:o.current?.id,projectUid:o.current?.uid,whiteboardId:d.current,elementId:y,elementUid:w,parentUid:S,parentOrderIndex:k,elementType:J,elementLocation:JSON.stringify(V??z),elementAttributes:JSON.stringify(H),elementDataJsonString:JSON.stringify(x),createElement:a,shouldReorderParentElements:I,frameUid:G?.id,historyBatchId:j}})).data??void 0;i?.addWhiteboardElement?(C?.(),await g(),(J===r.ToolElementType.ToolWhiteboard||J===r.ToolElementType.ToolDocument)&&(0,ea.requestSidebarDashboardRefetch)()):(T?.(),f(),j||b())}catch(e){console.error(e),T?.(),(0,i.handleGraphQLError)({error:e,toast:c,onResourceExhaustedErrorHandler:()=>B({title:e?.graphQLErrors?.[0]?.message??e?.message??"",body:""})}),j||await b(),R&&await h(e=>e.filter(e=>e.id!==R)),await g(),f()}},[B,P,m,g,q.slug,q.whiteboardUid,c,x]),ee=(0,t.useCallback)(async({linkedWhiteboardUid:e,linkedProjectUid:t,boardName:n,iconType:i,iconName:a,iconColorHex:l,location:s})=>{if(x||!e||!o.current?.id||!d.current||!u.current)return;let c=(0,A.v4)(),p={whiteboardElementUid:c,linkedWhiteboardUid:e,linkedProjectUid:t,boardName:n??"",...i?{iconType:i}:{},...a?{iconName:a}:{},...l?{iconColorHex:l}:{},__typename:r.ToolElementType.ToolWhiteboard},y=(0,_.getDefaultCreateDimensions)(U.WhiteboardDroppableType.DroppableWhiteboard)??{width:0,height:0};try{await m("saveSharedBoardLinkToBoard");let u={id:c,type:r.ToolElementType.ToolWhiteboard,position:{x:s.x,y:s.y},zIndex:-1,data:{whiteboardElementUid:c,type:r.ToolElementType.ToolWhiteboard,element:p,attributes:y}};h(e=>[...e.map(e=>({...e,selected:!1})),{...u,selected:!0}]);let{data:x}=await R({variables:{linkedWhiteboardUid:e,linkedProjectUid:t,boardName:n??"",iconType:i??void 0,iconName:a??void 0,iconColorHex:l??void 0,projectId:o.current.id,projectUid:o.current.uid,whiteboardId:d.current,elementUid:c,elementLocation:JSON.stringify(s),elementAttributes:JSON.stringify(y)}});if(!x?.saveSharedBoardLinkToWhiteboard){f(),b();return}await g()}catch(e){console.error(e),f(),b()}},[x,o,d,u,h,m,R,f,b,g]),et=(0,t.useCallback)(async({sourceWhiteboardElementUid:e,linkedWhiteboardUid:t,linkedProjectUid:n,boardName:i,iconType:a,iconName:l,iconColorHex:s,location:c})=>
105{if(x||!e||!o.current?.id||!d.current||!u.current)return;let p=(0,A.v4)(),y={whiteboardElementUid:p,linkedWhiteboardUid:t,linkedProjectUid:n,boardName:i??"",iconType:a??r.ToolWhiteboardIconType.None,iconName:l??"",iconColorHex:s??"",__typename:r.ToolElementType.ToolWhiteboard},w=(0,_.getDefaultCreateDimensions)(U.WhiteboardDroppableType.DroppableWhiteboard)??{width:0,height:0};try{await m("addWhiteboardLinkToBoard");let t={id:p,type:r.ToolElementType.ToolWhiteboard,position:{x:c.x,y:c.y},zIndex:-1,data:{whiteboardElementUid:p,type:r.ToolElementType.ToolWhiteboard,element:y,attributes:w}};h(e=>[...e.map(e=>({...e,selected:!1})),{...t,selected:!0}]);let{data:i}=await j({variables:{sourceWhiteboardElementUid:e,sourceProjectUid:n,projectId:o.current.id,projectUid:o.current.uid,whiteboardId:d.current,elementUid:p,elementLocation:JSON.stringify(c),elementAttributes:JSON.stringify(w)}});if(!i?.addWhiteboardLinkToWhiteboard){f(),b();return}await g()}catch{f(),b()}},[x,o,d,u,h,m,j,f,b,g]),en=(0,t.useCallback)(e=>{if(x)return;let t=e.data?.element,r=t?.elementUid||t?.linkedWhiteboardUid||"";if(!t?.whiteboardElementUid||!r||!o.current?.uid)return;let n=new Map(p().map(e=>[e.id,e])),{x:i,y:l}=(0,a.getNodeAbsolutePosition)(e,n);et({sourceWhiteboardElementUid:t.whiteboardElementUid,linkedWhiteboardUid:r,linkedProjectUid:t.linkedProjectUid||o.current.uid,boardName:t.boardName,iconType:t.iconType,iconName:t.iconName,iconColorHex:t.iconColorHex,location:{x:i+30,y:l+30}})},[x,o,p,et]),eg=(0,t.useCallback)(async({delta:e,setItemHasCreationFocus:t})=>{if(x)return void y(void 0);await m("addDefaultKanbanGroup");let n=(0,A.v4)(),a=_.DEFAULT_WALL_WIDTH,l=_.DEFAULT_WALL_HEIGHT,s=_.DEFAULT_KANBAN_GROUP_GAP,u=[{uid:(0,A.v4)(),title:"Backlog",topBarHighlightColor:"#959595"}
105,{uid:(0,A.v4)(),title:"Todo",topBarHighlightColor:"#6553BA"},{uid:(0,A.v4)(),title:"In Progress",topBarHighlightColor:"#C7973F"},{uid:(0,A.v4)(),title:"Done",topBarHighlightColor:"#8BC48A"}],p=u.map((t,n)=>({id:t.uid,type:r.ToolElementType.ToolWhiteboardWall,position:{x:e.x+n*(a+s),y:e.y},data:{whiteboardElementUid:t.uid,type:r.ToolElementType.ToolWhiteboardWall,element:{title:t.title,elementUid:"",whiteboardElementUid:t.uid,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:a,height:l,topBarHighlightColor:t.topBarHighlightColor}},width:a,height:l,measured:{width:a,height:l},style:{width:a,height:l},zIndex:-2}));h(e=>[...e.map(e=>({...e,selected:!1})),...p]),t(!0),y(void 0),g();try{let{data:t}=await N({variables:{uid:n,projectId:o.current?.id,projectUid:o.current?.uid,whiteboardId:d.current,elementLocation:JSON.stringify({x:e.x,y:e.y}),layoutConfig:JSON.stringify({wallWidth:a,wallHeight:l,gap:s}),wallUids:u.map(e=>e.uid)}});t?.addDefaultKanbanGroup?(await f(),await g()):(b(),await f())}catch(e){console.error(e),b(),(0,i.handleGraphQLError)({error:e,toast:c}),await f()}},[N,m,g,q.slug,q.whiteboardUid,c,x]),ef=(0,t.useCallback)((e,t,r,n)=>{if(eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(e),!p().find(t=>t.id===e))return;let i=()=>{let i=p().find(t=>t.id===e);if(!i)return;let a=i.data?.element?.imageUrl,l=i.data;Z({delta:{x:i.position.x,y:i.position.y},item:{type:U.WhiteboardDroppableType.DroppableImage,input:{elementUid:"",imageUrl:t,projectId:o.current?.id}},createElement:!0,setCurrentActiveElement:r,setItemHasCreationFocus:n,attributes:{width:l?.attributes?.width??_.DEFAULT_TOOL_IMAGE_WIDTH,height:l?.attributes?.height??110},replaceExistingNodeUid:e,onSuccess:()=>{a?.startsWith("blob:")&&URL.revokeObjectURL(a)}})},a=(0,em.getImageUrl)({url:t});if(!a)return void i();let l=new window.Image;l.onload=i,l.onerror=i,l.src=a},[p,Z]),eb=(0,t.useCallback)(async(e,t)=>{eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(e);let n=async()=>{let n=p(),i={...(0,ev.findWhiteboardImageElementContentInNodes)(n,e)??{elementUid:"",projectId:o.current?.id,whiteboardElementUid:e,__typename:r.ToolElementType.ToolImage},imageUrl:t,whiteboardElementUid:e};await h(t=>(0,ev.patchWhiteboardImageElementContentInNodes)(t,e,i)),await z({variables:{uid:e,projectId:o.current?.id,contentJsonString:JSON.stringify(i)}}),await g(),(0,em.clearWhiteboardPendingUploadObjectUrl)(e),await (0,e_.removeWhiteboardPendingUploadBlob)(e)},i=(0,em.getImageUrl)({url:t,optimzeToWidth:_.DEFAULT_TOOL_IMAGE_WIDTH});if(!i)return void await n();let a=new window.Image,l=!1,s=()=>{l||(l=!0,window.clearTimeout(d),n())},d=window.setTimeout(s,1e4);a.onload=s,a.onerror=s,a.src=i,a.complete&&s()},[p,h,z,g,o]),ex=(0,t.useCallback)(async e=>{eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(e),(0,em.clearWhiteboardPendingUploadObjectUrl)(e),await (0,e_.removeWhiteboardPendingUploadBlob)(e),h(t=>(0,ev.removeWhiteboardElementFromGraph)(t,e));try{await Y({variables:{uids:[e],edgeUids:[],projectId:o.current?.id,whiteboardId:d.current}}),await g()}catch(e){console.error(e),await f()}},[h,Y,g,f,o,d]),ey=(0,t.useCallback)(async e=>{eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(e),(0,em.clearWhiteboardPendingUploadObjectUrl)(e);let t=(0,ev.findWhiteboardImageElementContentInNodes)(p(),e);if(!t||t.imageUrl!==(0,ev.buildPendingWhiteboardUploadImageUrl)(e))return;let r={...t,imageUrl:""};await h(t=>(0,ev.patchWhiteboardImageElementContentInNodes)(t,e,r)),await g()},[p,h,g]),ek=(0,t.useCallback)(async(e,t,n,i)=>{eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(e);let a=p(),l={...(0,ev.findWhiteboardFileElementContentInNodes)(a,e)??{elementUid:"",projectId:o.current?.id,whiteboardElementUid:e,__typename:r.ToolElementType.ToolFile},...i??{},fileUrl:t,fileName:n,whiteboardElementUid:e};await h(t=>(0,ev.patchWhiteboardFileElementContentInNodes)(t,e,l)),await z({variables:{uid:e,projectId:o.current?.id,contentJsonString:JSON.stringify(l)}}),await g(),(0,em.clearWhiteboardPendingUploadObjectUrl)(e),await (0,e_.removeWhiteboardPendingUploadBlob)(e)},[p,h,z,g,o]),eF=(0,t.useCallback)(async e=>{eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(e),(0,em.clearWhiteboardPendingUploadObjectUrl)(e),await (0,e_.removeWhiteboardPendingUploadBlob)(e),h(t=>(0,ev.removeWhiteboardElementFromGraph)(t,e));try{await Y({variables:{uids:[e],edgeUids:[],projectId:o.current?.id,whiteboardId:d.current}}),await g()}catch(e){console.error(e),await f()}},[h,Y,g,f,o,d]),eD=(0,t.useCallback)((e,t,n=ex)=>{if(eA.useWhiteboardSelectionStore.getState().uploadingWhiteboardElementUids.has(e))return;let i=(0,ev.claimPendingWhiteboardImageUpload)(e);if(!i)return;eA.useWhiteboardSelectionStore.getState().registerUploadingWhiteboardElement(e);let o=w({id:e,name:t.name,sizeBytes:t.size});S(t,r.ImageUploadTemplateType.Gallery,()=>{},t=>{i.finish()&&(C(o),eb(e,t))},e=>E(o,e),()=>{i.finish()&&(T(o),n(e))},i.signal)},[S,w,T,C,E,eb,ex]),eM=(0,t.useCallback)(async(e,t)=>{if(x||!e||!t.type.startsWith("image/"))return;let r=(0,eu.maxSingleAttachmentFileBytes)(M?.subscriptionLevel,t);if(t.size>r)return void(!M||M.subscriptionLevel<=ec.FREE_PLAN?B({title:(0,eu.paidUploadSizePitch)(t),body:""}):c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"Image too large",description:`Images must be under ${(0,eu.formatAttachmentFileSizeLimit)(r)}`,onClose:e})}));if(ew(e,t))return;let n=(0,ev.findWhiteboardImageElementContentInNodes)(p(),e);if(!n||!(0,em.shouldRenderImagePlaceholder)(n.imageUrl,e)||eA.useWhiteboardSelectionStore.getState().uploadingWhiteboardElementUids.has(e))return;(0,em.registerWhiteboardPendingUploadObjectUrl)(e,URL.createObjectURL(t));let i={...n,imageUrl:(0,ev.buildPendingWhiteboardUploadImageUrl)(e)};await h(t=>(0,ev.patchWhiteboardImageElementContentInNodes)(t,e,i)),eD(e,t,ey)},[x,M,c,p,h,eD,ey]),eI=(0,t.useCallback)(async(e,t)=>{if(x||!e||!t)return;let r=await (0,es.fetchRemoteImageFile)(t);r?await eM(e,r):c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"Couldn't fetch that image",description:"The site it came from didn't allow it. Try saving the image and dropping the file instead.",onClose:e})})},[x,c,eM]),eU=(0,t.useRef)(eD),eL=(0,t.useRef)(()=>{}),eB=(0,t.useRef)(p),eW=(0,t.useRef)(ex);eU.current=eD,eW.current=ex,eB.current=p,(0,t.useEffect)(()=>{let e,t;if(x)return;let r=!1,n=0,i=()=>{r||n>=12||(e=window.setTimeout(a,500))},a=()=>
105{if(r)return;n+=1;let e=d.current??o.current?.whiteboard?.id;"number"!=typeof e?i():(t=e,(0,ev.resumePendingWhiteboardUploads)({whiteboardId:e,getNodes:()=>eB.current(),runImageUpload:(e,t)=>eU.current(e,t),runFileUpload:(e,t)=>eL.current(e,t),cleanupAbandonedUpload:e=>void eW.current(e)}).then(e=>{!r&&e&&i()}))};return a(),()=>{r=!0,void 0!==e&&window.clearTimeout(e),void 0!==t&&(0,ev.cancelAbandonedWhiteboardUploadCleanup)(t)}},[x,q.slug,q.whiteboardUid,o,d]);let eP=(0,t.useCallback)(async(e,t,n,i,o,a)=>{if(!e)return void n();let l=(0,eu.maxSingleAttachmentFileBytes)(M?.subscriptionLevel,e);if(e.size>l){!M||M.subscriptionLevel<=ec.FREE_PLAN?B({title:(0,eu.paidUploadSizePitch)(e),body:""}):c({title:`Failed to upload file. Max upload size of ${(0,eu.formatAttachmentFileSizeLimit)(l)}. Please try again.`,status:"error",isClosable:!0}),n();return}t(!0),await H({variables:{resourceType:r.MediaUploadResourceType.Project,mediaType:r.MediaUploadMediaType.File,fileName:e.name,fileSizeBytes:e.size}}).then(async l=>{if(!l.data?.generateMediaUploadUrl?.url||!l.data.generateMediaUploadUrl.fileName){t(!1),n(),console.error("Failed to upload file. Please try again.");return}let s=JSON.parse(l.data.generateMediaUploadUrl.url),d=new FormData;console.debug("urlData",s),console.debug("url",s.url),console.debug("file",e),console.debug("file.type",e.type),Object.keys(s.fields).forEach(e=>{d.append(e,s.fields[e])}),d.append("file",e),eT.default.post(s.url,d,{headers:{"Content-Type":e.type},onUploadProgress:t=>{if(!o)return;let r=t.total??e?.size;r&&o(Math.round(t.loaded/r*100))},signal:a}).then(async function(o){if(console.debug("axios response",o),204!=o.status){console.error("Failed to upload file. Please try again."),t(!1),n();return}let a=l.data?.generateMediaUploadUrl?.fileName;t(!1),i(a,e.name),W({file:e,filePath:a,uploadType:r.UserFileUploadGalleryType.WhiteboardProjectFile})}).catch(e=>{t(!1),a?.aborted||(console.error("MYERRORRR2:"+e),n())})}).catch(e=>{t(!1),console.error("MYERRORRR2:"+e),n(),console.error("Failed to upload file. Please try again.")})},[H,c,W,M]),ej=(0,t.useCallback)((e,t)=>{if(eA.useWhiteboardSelectionStore.getState().uploadingWhiteboardElementUids.has(e))return;let r=(0,ev.claimPendingWhiteboardImageUpload)(e);if(!r)return;eA.useWhiteboardSelectionStore.getState().registerUploadingWhiteboardElement(e);let n=w({id:e,name:t.name,sizeBytes:t.size});eP(t,()=>{},()=>{r.finish()&&(T(n),eF(e))},(i,o)=>{r.finish()&&(C(n),ek(e,i,o,{fileType:t.type,fileSize:t.size,fileExtension:t.name.split(".").pop()||""}))},e=>E(n,e),r.signal)},[eP,w,T,C,E,ek,eF]);eL.current=ej;let eR=(0,t.useCallback)(async(e,t)=>{if(x||!e||!d.current)return;let r=(0,ev.findWhiteboardFileElementContentInNodes)(p(),e);if(!r||r.fileUrl)return;let n=(0,eu.maxSingleAttachmentFileBytes)(M?.subscriptionLevel,t);if(t.size>n)return void(!M||M.subscriptionLevel<=ec.FREE_PLAN?B({title:(0,eu.paidUploadSizePitch)(t),body:""}):c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"File too large",description:`Files must be under ${(0,eu.formatAttachmentFileSizeLimit)(n)}`,onClose:e})}));await (0,e_.saveWhiteboardPendingUploadBlob)({id:e,whiteboardId:d.current,file:t}),(0,em.registerWhiteboardPendingUploadObjectUrl)(e,URL.createObjectURL(t));let i=t.type.startsWith("video/")||t.type.startsWith("audio/");await h(n=>(0,ev.patchWhiteboardFileElementContentInNodes)(n,e,{...r,fileUrl:(0,ev.buildPendingWhiteboardUploadFileUrl)(e),fileName:t.name,fileType:t.type,fileSize:t.size,fileExtension:t.name.split(".").pop()||"",isPreviewDisabled:!i,isFileInfoHidden:t.type.startsWith("video/")})),ej(e,t)},[x,M,p,h,d,c,ej]),eN=(0,t.useCallback)(async({files:e,setCurrentActiveElement:t,setItemHasCreationFocus:r,startX:n,startY:i,layouts:a})=>{if(x||!o.current?.id||!d.current)return;e.filter(e=>!(0,el.isSupportedImageMimeType)(e.type)).length>0&&c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"Some images aren't a supported format",description:`Use ${el.SUPPORTED_IMAGE_FORMATS_LABEL}`,onClose:e})});let l=e.filter(e=>(0,el.isSupportedImageMimeType)(e.type));if(0!==l.length){if(void 0===n||void 0===i)if(F?.getViewport()){let e=window.innerWidth,t=window.innerHeight,r=F?.screenToFlowPosition({x:e/2,y:t/2});({x:n,y:i}=(0,s.snapPointToGrid)({x:r?.x??0,y:r?.y??0}))}else n=0,i=0;for(let e=0;e<l.length;e++){let s=l[e],u=(0,A.v4)(),c=(0,ev.buildPendingWhiteboardUploadImageUrl)(u),h=a?.[e],p=h?h.position.x:n?n+e*(_.DEFAULT_TOOL_IMAGE_WIDTH+10):0+e*(_.DEFAULT_TOOL_IMAGE_WIDTH+10),m=h?h.position.y:i?i-55:-55,g=h?.attributes.width??_.DEFAULT_TOOL_IMAGE_WIDTH,f=h?.attributes.height??110;await (0,e_.saveWhiteboardPendingUploadBlob)({id:u,whiteboardId:d.current,file:s}),(0,em.registerWhiteboardPendingUploadObjectUrl)(u,URL.createObjectURL(s)),await Z({delta:{x:p,y:m},item:{type:U.WhiteboardDroppableType.DroppableImage,input:{elementUid:"",imageUrl:c,projectId:o.current.id}},createElement:!0,forcedElementUid:u,attributes:{width:g,height:f},setCurrentActiveElement:t,setItemHasCreationFocus:r,onSuccess:()=>eD(u,s),onFailure:()=>{eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(u),(0,em.clearWhiteboardPendingUploadObjectUrl)(u),(0,e_.removeWhiteboardPendingUploadBlob)(u)}})}}},[x,Z,eD,ex,F,o,d,c]),eO=(0,t.useCallback)(async({files:e,setCurrentActiveElement:t,setItemHasCreationFocus:r,startX:n,startY:i})=>{if(x||!o.current?.id||!d.current)return;if(void 0===n||void 0===i)if(F?.getViewport()){let e=window.innerWidth,t=window.innerHeight,r=F?.screenToFlowPosition({x:e/2,y:t/2});({x:n,y:i}=(0,s.snapPointToGrid)({x:r?.x??0,y:r?.y??0}))}else n=0,i=0;let a=e.map(e=>e.type.startsWith("video/")?_.DEFAULT_TOOL_VIDEO_FILE_CREATE_WIDTH:e.type.startsWith("audio/")?_.DEFAULT_TOOL_FILE_BOX_WIDTH:_.DEFAULT_TOOL_FILE_WIDTH),l=a.reduce((e,t,r)=>(e.push(0===r?0:e[r-1]+a[r-1]+10),e),[]);for(let s=0;s<e.length;s++){let u=e[s],c=(0,A.v4)(),h=(0,ev.buildPendingWhiteboardUploadFileUrl)(c),p=u.type.startsWith("video/")||u.type.startsWith("audio/"),m=u.type.startsWith("video/"),g=(n??0)+l[s],f=(i??0)-55,b=a[s],x=m?_.DEFAULT_TOOL_VIDEO_FILE_CREATE_HEIGHT:110;await (0,e_.saveWhiteboardPendingUploadBlob)({id:c,whiteboardId:d.current,file:u}),(0,em.registerWhiteboardPendingUploadObjectUrl)(c,URL.createObjectURL(u)),await Z({delta:{x:g,y:f},item:{type:U.WhiteboardDroppableType.DroppableFile,input:{elementUid:"",fileUrl:h,projectId:o.current.id,fileName:u.name,fileType:u.type,fileSize:u.size,fileExtension:u.name.split(".").pop()||"",isPreviewDisabled:!p,isFileInfoHidden:m}},createElement:!0,forcedElementUid:c,attributes:{width:b,height:x},setCurrentActiveElement:t,setItemHasCreationFocus:r,onSuccess:()=>ej(c,u),onFailure:()=>{eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(c),(0,em.clearWhiteboardPendingUploadObjectUrl)(c),(0,e_.removeWhiteboardPendingUploadBlob)(c)}})}},[x,Z,ej,F,o,d]),eH=(0,t.useCallback)(async({imageFile:e,pasteX:t,pasteY:n,setCurrentActiveElement:i,setItemHasCreationFocus:o})=>{if(x)return;let a=e.type;if("image/png"===a||"image/jpeg"===a){let l=(0,A.v4)(),s=(0,ev.claimPendingWhiteboardImageUpload)(l);if(!s)return;let d=URL.createObjectURL(e),u=new File([e],`clipboard-image-${l}.${a.split("/")[1]}`,{type:a}),c=w({id:l,name:u.name,sizeBytes:u.size});S(u,r.ImageUploadTemplateType.Gallery,()=>{},e=>{s.finish()&&(C(c),ef(l,e,i,o))},e=>E(c,e),()=>{s.finish()&&(T(c),eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElement(l),h(e=>e.filter(e=>e.id!==l)))},s.signal);let p={id:l,type:r.ToolElementType.ToolImage,position:{x:t,y:n},selected:!0,data:{isUploading:!0,element:{imageUrl:d,whiteboardElementUid:`image-${Date.now()}
105`,file:u},attributes:{width:_.DEFAULT_TOOL_IMAGE_WIDTH,height:110}}};h(e=>[...e.map(e=>({...e,selected:!1})),p]),eA.useWhiteboardSelectionStore.getState().registerUploadingWhiteboardElement(l)}},[h,x,ef,w,E,C,T]),ez=(0,t.useCallback)(async({event:e,position:t,setCurrentActiveElement:r,setItemHasCreationFocus:n})=>{if(x)return;let i=(0,$.readWhiteboardImageDragData)(e.dataTransfer),a=o.current?.id;if(i&&a){let e=(0,V.buildDroppedImageElement)(i.imageUrl,a,i.aspectRatio),{width:o=0,height:l=0}=e.attributes??{};Z({delta:{x:t.x-o/2,y:t.y-l/2},item:e.item,createElement:!0,setCurrentActiveElement:r,setItemHasCreationFocus:n,...e.attributes?{attributes:e.attributes}:{}});return}let d=(0,eu.maxSingleAttachmentFileBytes)(M?.subscriptionLevel,"image/"),u=(0,eu.maxSingleAttachmentFileBytes)(M?.subscriptionLevel),h=Array.from(e.dataTransfer.files);if(0===h.length){let i=O(G(e),o.current?.id);i&&Z({delta:{x:t.x,y:t.y},item:i,createElement:!0,setCurrentActiveElement:r,setItemHasCreationFocus:n});return}let{images:m,otherFiles:g,unsupportedImages:f,tooLargeImages:b,tooLargeOther:y,skippedOverBatchLimitCount:w}=function({files:e,maxImageBytes:t,maxOtherBytes:r}){let n=[],i=[],o=[],a=[],l=[];for(let s of e){if(!ed(s)){s.size>r?l.push(s):i.push(s);continue}if(!(0,el.isSupportedImageMimeType)(s.type)){o.push(s);continue}s.size>t?a.push(s):n.push(s)}let s=Math.max(0,n.length-k.MAX_FILES_TO_UPLOAD_AT_ONCE);return{images:n.slice(0,k.MAX_FILES_TO_UPLOAD_AT_ONCE),otherFiles:i,unsupportedImages:o,tooLargeImages:a,tooLargeOther:l,skippedOverBatchLimitCount:s}}({files:h,maxImageBytes:d,maxOtherBytes:u});f.length>0&&c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:1===f.length?`${Array.from(new Set(f.map(e=>{let t=e.name.split(".").pop();return t&&t!==e.name?t.toUpperCase():e.type.replace("image/","").toUpperCase()}))).join(", ")} images aren't supported`:"Some images aren't a supported format",description:`Use ${el.SUPPORTED_IMAGE_FORMATS_LABEL}`,onClose:e})}),w>0&&c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:`Only the first ${k.MAX_FILES_TO_UPLOAD_AT_ONCE} images were added`,description:`${w} more ${1===w?"was":"were"} skipped â drop them in a second batch`,onClose:e})});let E=(0,eu.formatAttachmentFileSizeLimit)(d),C=(0,eu.formatAttachmentFileSizeLimit)(u),T=!M||M.subscriptionLevel<=ec.FREE_PLAN;if((b.length||y.length)&&T){let e=(0,eu.formatAttachmentFileSizeLimit)(k.PAID_PLAN_MAX_IMAGE_UPLOAD_BYTES),t=(0,eu.formatAttachmentFileSizeLimit)(k.PAID_PLAN_MAX_UPLOAD_BYTES);B({title:b.length&&!y.length?`Upgrade to upload images up to ${e}.`:y.length&&!b.length?`Upgrade to upload files up to ${t}.`:`Upgrade to upload images up to ${e} and files up to ${t}.`,body:""})}else b.length>1?c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"Multiple images are too large",description:`Images must be under ${E}`,onClose:e})}):1===b.length&&c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"Image too large",description:`Images must be under ${E}`,onClose:e})}),y.length>1?c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"Multiple files are too large",description:`Files must be under ${C}`,onClose:e})}):1===y.length&&c({render:({onClose:e})=>(0,I.jsx)(ep.PillToast,{title:"File too large",description:`Files must be under ${C}`,onClose:e})});if(0===m.length&&0===g.length)return;if(m.length>1){let e=0===p().length?F?.screenToFlowPosition({x:window.innerWidth/2,y:window.innerHeight/2})??t:t,i=function({imageSizes:e,columnWidth:t,anchor:r,gap:n=l.ELEMENT_GAP_PX,maxColumns:i=5}){if(0===e.length)return[];let o=Math.min(e.length,i),a=Array(o).fill(0),d=e.map((e,r)=>{let i=Math.round(t/(e&&e.width>0&&e.height>0?e.width/e.height:J)),l=r%o,s=a[l];return a[l]+=i+n,{x:l*(t+n),y:s,height:i}}),u=o*t+(o-1)*n,c=Math.max(...a)-n,{x:h,y:p}=(0,s.snapPointToGrid)({x:r.x-u/2,y:r.y-c/2});return d.map(({x:e,y:r,height:n})=>({position:{x:e+h,y:r+p},attributes:{width:t,height:n}}))}({imageSizes:await Promise.all(m.map(K)),columnWidth:_.DEFAULT_TOOL_IMAGE_WIDTH,anchor:e});if(eN({files:m,setCurrentActiveElement:r,setItemHasCreationFocus:n,layouts:i}),g.length>0){let t=_.DEFAULT_TOOL_FILE_WIDTH*g.length+5*(g.length-1),o=(0,s.snapPointToGrid)({x:e.x-t/2,y:Math.max(...i.map(e=>e.position.y+e.attributes.height))+l.ELEMENT_GAP_PX+55});eO({files:g,setCurrentActiveElement:r,setItemHasCreationFocus:n,startX:o.x,startY:o.y})}return}let S=_.DEFAULT_TOOL_IMAGE_WIDTH*m.length+(m.length>1?5*(m.length-1):0)+_.DEFAULT_TOOL_FILE_WIDTH*g.length+(g.length>1?5*(g.length-1):0),A=(0,s.snapPointToGrid)({x:t.x-S/2,y:t.y-55});eN({files:m,setCurrentActiveElement:r,setItemHasCreationFocus:n,startX:A.x,startY:A.y}),eO({files:g,setCurrentActiveElement:r,setItemHasCreationFocus:n,startX:A.x,startY:A.y})},[x,h,p,Z,c,M,F,eN,eO]);return{addWhiteboardElement:Z,addWhiteboardLinkToBoard:et,saveSharedBoardLinkToBoard:ee,createWhiteboardFolderShortcut:en,addDefaultKanbanGroup:eg,onPasteClipboardItem:eH,onHandleExternalImageDrop:ez,onHandeUploadFiles:(0,t.useCallback)(async({files:e,setCurrentActiveElement:t,setItemHasCreationFocus:r,startX:n,startY:i})=>{if(x)return;let o=e.filter(e=>e.type.startsWith("image/"));eO({files:e.filter(e=>!e.type.startsWith("image/")),setCurrentActiveElement:t,setItemHasCreationFocus:r,startX:n,startY:i}),eN({files:o,setCurrentActiveElement:t,setItemHasCreationFocus:r,startX:n,startY:i})},[x,eO,eN]),onHandleUploadToolImages:eN,fillWhiteboardImagePlaceholder:eM,fillWhiteboardImagePlaceholderFromUrl:eI,fillWhiteboardFilePlaceholder:eR}}],611213);var ek=e.i(567109),eF=e.i(814484),eD=e.i(867256);e.s(["DECK_RAIL_OUTSET",0,184,"DECK_RAIL_WIDTH",0,168],275483);let eM=(e,t)=>e.x<t.x+t.width&&t.x<e.x+e.width&&e.y<t.y+t.height&&t.y<e.y+e.height,eI=(e,t)=>{let{x:n,y:i}=(0,a.getNodeAbsolutePosition)(e,t),o=(0,a.getNodeFlowDimensions)(e),l=o.w&&o.h?{width:o.w,height:o.h}:(0,a.getLayoutDimensionsForNode)(e),s=184*(e.type===r.ToolElementType.ToolSlideDeck);return{x:n-s,y:i,width:l.width+s,height:l.height}};var eU=e.i(584797),eL=e.i(175814),eB=e.i(369216),eW=e.i(43445);let eP=e=>{let t=structuredClone(e),r=t?.content;return"string"==typeof r&&r.includes("data-task-id")?{...t,content:(0,eU.pastedTaskItemsHtml)(r)}:t},ej=e=>e?.__typename===r.ToolElementType.ToolSlideDeck?JSON.stringify({...e,elements:void 0}):e?.__typename===r.ToolElementType.ToolHtmlEmbed&&e.elementUid?JSON.stringify({...e,htmlString:void 0,imageSlotsJson:void 0,deckUid:void 0,orderIndex:void 0}):JSON.stringify(e);function eR(e){return e.map(e=>({label:e.label,labelColorHex:e.labelColorHex}))}e.s(["useWhiteboardUpdates",0,function({mutations:e,project:o,whiteboardId:s,toast:d,setNodes:u,getNodes:c,setEdges:h,getEdges:p,takeWhiteboardSnapshot:m,saveReactFlowStateToCache:g,refetchWhiteboard:f,revertLastWhiteboardSnapshot:x,viewOnly:y,emitToProject:E,setIsDragging:C,cancelUpload:T,applyFrameMembership:S,addElementsToFrame:v}){let{updateWhiteboardAttributesMutation:F,duplicateWhiteboardElementsMutation:M,cutPasteWhiteboardElementsMutation:I,updateWhiteboardElementLocationMutation:U,updateMultipleWhiteboardElementLocationsMutation:B,updateWhiteboardElementAttributesMutation:W,bulkUpdateWhiteboardElementAttributesMutation:P,updateWhiteboardElementContentMutation:j,updateMultipleWhiteboardElementContentMutation:R,updateWhiteboardElementParentDataMutation:N,updateMultipleWhiteboardElementParentDataMutation:O,removeMultipleWhiteboardElementsFromParentMutation:H,deleteWhiteboardElementsMutation:z}=e,{updateViewOnlyContentMutation:G,updateViewOnlyLocationMutation:V,updateViewOnlyAttributesMutation:$,updateViewOnlyParentDataMutation:J,deleteViewOnlyMutation:K}=(0,eE.useViewOnlyCommentMutations)(),{showInsufficientSubscriptionDialog:Y}=(0,L.default)(),q=(0,ek.useApolloClient)(),Q=(0,t.useCallback)(async e=>{if(!y){if(!o.current)return void console.error("Project not found. Please try again.");try{o.current={...o.current,whiteboard:{...o.current?.whiteboard,attributes:e}},await F({variables:{id:o.current.whiteboard?.id,whiteboardUid:o.current.whiteboard?.uid,projectId:o.current?.id,attributesJsonString:JSON.stringify(o.current.whiteboard?.attributes)}}),await g()}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:d}),await f()}}},[F,g,d,y]),Z=(0,t.useCallback)(async(e,t,b,w,E,C,T)=>{let _,k,F;
105if(y||!e||0===e.length)return;let I=await c(),U=await p(),L=[...I],B=new Map(I.map(e=>[e.id,e]));for(let t of e)B.has(t.id)||(L.push(t),B.set(t.id,t));let W=[],P={},j={},R=new Set(e.filter(e=>e.type===r.ToolElementType.ToolFrame).map(e=>e.id)),N=e=>{let t=e.data,r=e.parentId||t?.frameUid||t?.element?.frameUid||t?.whiteboardElement?.frameUid;return!!r&&R.has(r)},O=e.filter(e=>e.type!==n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE&&e.type!==n.REACT_FLOW_DROP_WALL_GAP_TYPE&&!N(e));if(t&&O.length>0){let e=O.map(e=>(0,a.getNodeAbsolutePosition)(e,B));b={x:Math.min(...e.map(e=>e.x)),y:Math.min(...e.map(e=>e.y))}}let H=!t&&!C&&O.some(e=>e.type===r.ToolElementType.ToolSlideDeck||e.type===r.ToolElementType.ToolHtmlEmbed)?function(e,t,r){let n=e.map(e=>eI(e,r)),i=((e,t)=>{let r=new Set;for(let n of e){let e=n.data,i=e?.frameUid||e?.element?.frameUid||e?.whiteboardElement?.frameUid;i&&r.add(i);for(let e=n.parentId;e&&!r.has(e);e=t.get(e)?.parentId)r.add(e)}return r})(e,r),o=t.filter(e=>!i.has(e.id)).map(e=>eI(e,r)),a=Math.min(...n.map(e=>e.x)),s=Math.min(...n.map(e=>e.y)),d={x:a,y:s,width:Math.max(...n.map(e=>e.x+e.width))-a,height:Math.max(...n.map(e=>e.y+e.height))-s},u=d.width+l.ELEMENT_GAP_PX;for(let e=0;e<=o.length;e++){let e={...d,x:d.x+u},t=o.filter(t=>eM(e,t));if(0===t.length)break;u=Math.max(...t.map(e=>e.x+e.width))+l.ELEMENT_GAP_PX-d.x}return u}(O,I.filter(e=>!e.hidden&&e.type!==n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE&&e.type!==n.REACT_FLOW_DROP_WALL_GAP_TYPE),B):null;e.forEach(e=>{if(e.type===n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.type===n.REACT_FLOW_DROP_WALL_GAP_TYPE||N(e))return;let i=e.id,o=(0,A.v4)();P[i]=o;let l=e.data,s=(0,a.getNodeAbsolutePosition)(e,B);if(W.push({duplicatingWhiteboardElementUid:i,newWhiteboardElementUid:o,newElementLocation:JSON.stringify({x:t?t.x+(s.x-(b?.x??0)):s.x+(H??30),y:t?t.y+(s.y-(b?.y??0)):s.y+30*(null===H)}),elementType:e.data.type,duplicatingElementUid:l.element.elementUid,newElementUid:l.element.elementUid&&""!=l.element.elementUid?(0,A.v4)():""}),e.type===r.ToolElementType.ToolWhiteboardWall||e.type===r.ToolElementType.ToolImageStack||e.type===r.ToolElementType.ToolSlideDeck){let t=e.data.element;"elements"in t&&Array.isArray(t.elements)&&t.elements.forEach(e=>{if(e.content){let t=JSON.parse(e.elementLocation),r=e.uid,n=(0,A.v4)();P[r]=n,W.push({duplicatingWhiteboardElementUid:r,newWhiteboardElementUid:n,newElementLocation:JSON.stringify({x:t?.x??30,y:t?.y??30}),elementType:e.elementType,duplicatingElementUid:e.content.elementUid,newElementUid:e.content.elementUid&&""!=e.content.elementUid?(0,A.v4)():"",parentUid:o,parentOrderIndex:e.parentOrderIndex})}})}if(e.type===r.ToolElementType.ToolFrame){let t=(B.get(i)??e).position;L.forEach(e=>{if(e.type===n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.type===n.REACT_FLOW_DROP_WALL_GAP_TYPE)return;let a=e.data;if(e.parentId!==i&&a?.frameUid!==i&&a?.whiteboardElement?.frameUid!==i&&a?.element?.frameUid!==i||P[e.id])return;let l=(0,A.v4)();P[e.id]=l;let s=a.element?.elementUid,d=e.parentId===i?{x:e.position.x,y:e.position.y}:{x:e.position.x-t.x,y:e.position.y-t.y};if(W.push({duplicatingWhiteboardElementUid:e.id,newWhiteboardElementUid:l,newElementLocation:JSON.stringify(d),elementType:e.data.type,duplicatingElementUid:s,newElementUid:s&&""!=s?(0,A.v4)():""}),e.type===r.ToolElementType.ToolWhiteboardWall||e.type===r.ToolElementType.ToolImageStack||e.type===r.ToolElementType.ToolSlideDeck){let e=a.element;e&&"elements"in e&&Array.isArray(e.elements)&&e.elements.forEach(e=>{if(!e?.content)return;let t=JSON.parse(e.elementLocation||'{"x":0,"y":0}'),r=e.uid,n=(0,A.v4)();P[r]=n,W.push({duplicatingWhiteboardElementUid:r,newWhiteboardElementUid:n,newElementLocation:JSON.stringify({x:t?.x??0,y:t?.y??0}),elementType:e.elementType,duplicatingElementUid:e.content.elementUid,newElementUid:e.content.elementUid&&""!=e.content.elementUid?(0,A.v4)():"",parentUid:l,parentOrderIndex:e.parentOrderIndex})})}j[l]=o})}});let z=W.filter(t=>!j[t.newWhiteboardElementUid]&&(!t.parentUid||e.some(e=>e.id===t.duplicatingWhiteboardElementUid))),G=!!T?.selectDuplicatedNodes,V=z.map(t=>{let n=JSON.parse(t.newElementLocation),i=e.find(e=>e.id===t.duplicatingWhiteboardElementUid);if(!i)return null;let o={whiteboardElementUid:t.newWhiteboardElementUid,type:t.elementType,element:null,attributes:structuredClone(i.data.attributes)};if(t.elementType===r.ToolElementType.ToolWhiteboardWall||t.elementType===r.ToolElementType.ToolSlideDeck){let e=W.filter(e=>e.parentUid===t.newWhiteboardElementUid).map(e=>{let r=i.data.element.elements?.find(t=>t.uid===e.duplicatingWhiteboardElementUid),n=W.filter(t=>t.parentUid===e.newWhiteboardElementUid).map(t=>{let n=r?.content,i=n?.elements?.find(e=>e.uid===t.duplicatingWhiteboardElementUid);return{uid:t.newWhiteboardElementUid,elementType:t.elementType,elementLocation:t.newElementLocation,elementAttributes:JSON.stringify(structuredClone(JSON.parse(i?.elementAttributes||"{}"))),parentUid:e.newWhiteboardElementUid,parentOrderIndex:t.parentOrderIndex,content:{...eP(i?.content),whiteboardElementUid:t.newWhiteboardElementUid,elementUid:t.newElementUid}}});return{uid:e.newWhiteboardElementUid,elementType:e.elementType,elementLocation:e.newElementLocation,elementAttributes:JSON.stringify(structuredClone(JSON.parse(r?.elementAttributes||"{}"))),parentUid:t.newWhiteboardElementUid,parentOrderIndex:e.parentOrderIndex,content:{...eP(r?.content),whiteboardElementUid:e.newWhiteboardElementUid,elementUid:e.newElementUid,uid:e.newWhiteboardElementUid,elements:n}}});o.element={...structuredClone(i.data.element),whiteboardElementUid:t.newWhiteboardElementUid,elementUid:t.newElementUid,uid:t.newWhiteboardElementUid,parentUid:t.parentUid,parentOrderIndex:t.parentOrderIndex,elements:e,frameUid:void 0}}else o.element={...eP(i.data.element),whiteboardElementUid:t.newWhiteboardElementUid,elementUid:t.newElementUid,uid:t.newWhiteboardElementUid,parentUid:t.parentUid,parentOrderIndex:t.parentOrderIndex,frameUid:void 0};return{id:t.newWhiteboardElementUid,type:t.elementType,position:n,data:o,selected:G,...t.elementType===r.ToolElementType.ToolFrame?{...i.style?{style:{...i.style}}:{},selectable:!1}:{},zIndex:i.zIndex}}).filter(e=>null!==e),$=W.filter(e=>j[e.newWhiteboardElementUid]).map(e=>{let t=L.find(t=>
105t.id===e.duplicatingWhiteboardElementUid);if(!t)return null;let n=j[e.newWhiteboardElementUid],i=t.data,o=JSON.parse(e.newElementLocation),a=null;if(i.element)if(e.elementType===r.ToolElementType.ToolWhiteboardWall||e.elementType===r.ToolElementType.ToolImageStack||e.elementType===r.ToolElementType.ToolSlideDeck){let t=i.element,r=W.filter(t=>t.parentUid===e.newWhiteboardElementUid).map(e=>{let r=t.elements?.find(t=>t?.uid===e.duplicatingWhiteboardElementUid),n=W.filter(t=>t.parentUid===e.newWhiteboardElementUid).map(t=>{let n=r?.content,i=n?.elements?.find(e=>e?.uid===t.duplicatingWhiteboardElementUid);return{uid:t.newWhiteboardElementUid,elementType:t.elementType,elementLocation:t.newElementLocation,elementAttributes:JSON.stringify(structuredClone(JSON.parse(i?.elementAttributes||"{}"))),parentUid:e.newWhiteboardElementUid,parentOrderIndex:t.parentOrderIndex,content:{...eP(i?.content),whiteboardElementUid:t.newWhiteboardElementUid,elementUid:t.newElementUid}}});return{uid:e.newWhiteboardElementUid,elementType:e.elementType,elementLocation:e.newElementLocation,elementAttributes:JSON.stringify(structuredClone(JSON.parse(r?.elementAttributes||"{}"))),parentOrderIndex:e.parentOrderIndex,content:{...eP(r?.content),whiteboardElementUid:e.newWhiteboardElementUid,elementUid:e.newElementUid,uid:e.newWhiteboardElementUid,elements:n}}});a={...structuredClone(t),whiteboardElementUid:e.newWhiteboardElementUid,elementUid:e.newElementUid,uid:e.newWhiteboardElementUid,frameUid:n,elements:r}}else a={...eP(i.element),whiteboardElementUid:e.newWhiteboardElementUid,elementUid:e.newElementUid,uid:e.newWhiteboardElementUid,frameUid:n};let l={...structuredClone(i),whiteboardElementUid:e.newWhiteboardElementUid,id:e.newWhiteboardElementUid,frameUid:n,parentUid:void 0,groupUid:void 0,left:o.x,top:o.y,element:a};return{id:e.newWhiteboardElementUid,type:e.elementType,position:o,parentId:n,data:l,selected:G}}).filter(e=>null!==e);if(C){let t=c();for(let e of t){if(e.id===C.wallNodeId){_=e.data?.element?.whiteboardElementUid??C.wallNodeId;break}let t=e.data?.element?.elements;if(t){let e=t.find(e=>e.uid===C.wallNodeId);if(e){_=e.content?.whiteboardElementUid??C.wallNodeId;break}}}_=_??C.wallNodeId;let r=er(t,C.wallNodeId);k=z.map((t,n)=>{let i=e.find(e=>e.id===t.duplicatingWhiteboardElementUid),o=i?.data,a=o?.whiteboardElement,l=a?.content??o?.element,s=a?.elementAttributes??(o?.attributes?JSON.stringify(o.attributes):"{}"),d=r&&X.includes(t.elementType)?en(s,r):s;return{uid:t.newWhiteboardElementUid,elementType:t.elementType,elementLocation:t.newElementLocation,elementAttributes:d,parentUid:_,parentOrderIndex:C.orderIndex+n,content:l?{...eP(l),whiteboardElementUid:t.newWhiteboardElementUid,elementUid:t.newElementUid}:void 0}})}let J=C&&_?W.map((e,t)=>e.parentUid?e:{...e,parentUid:_,parentOrderIndex:C.orderIndex+t}):W,K=[],q=(e,t)=>e.startsWith(`${t}-`)?e.slice(t.length+1):e.split("-").pop()||e,Q=w?.map(e=>{if(!e.sourceHandle||!e.targetHandle)return e;let t=(0,A.v4)(),r=P[e.source],n=P[e.target],i=`${r}-${q(e.sourceHandle,e.source)}`,o=`${n}-${q(e.targetHandle,e.target)}`;return K.push({duplicatingWhiteboardEdgeUid:e.id,newSource:r,newSourceHandle:i,newTarget:n,newTargetHandle:o,newWhiteboardEdgeUid:t}),{...e,id:t,selected:!1,source:r,target:n,sourceHandle:i,targetHandle:o}});await m("duplicateWhiteboardElements"),C&&k&&k.length>0?await u(e=>e.map(e=>{let t=e.data,r={...e,selected:!1};if(e.id===C.wallNodeId&&t.element&&"elements"in t.element){let r=[...t.element.elements||[]];return r.splice(C.orderIndex,0,...k),{...e,selected:!0,data:{...e.data,element:{...t.element,elements:r}}}}if(t.element&&"elements"in t.element&&t.element.elements){let e=t.element.elements.findIndex(e=>e.uid===C.wallNodeId);if(-1!==e){let n=t.element.elements[e];if(n.content&&"elements"in n.content){let i=[...n.content.elements||[]];i.splice(C.orderIndex,0,...k);let o=[...t.element.elements];return o[e]={...n,content:{...n.content,elements:i}},{...r,data:{...r.data,element:{...t.element,elements:o}}}}}}return r})):await u(e=>[...e.map(e=>({...e,selected:!1})),...V,...$]),Q&&Q.length>0&&await h(e=>[...e.map(e=>({...e,selected:!1})),...Q]);try{if(await M({variables:{projectId:o.current?.id,projectUid:o.current?.uid,elements:J,edges:K,targetWhiteboardId:E||s.current,actionType:T?.actionType??"duplicate",includeDeletedSource:T?.includeDeletedSource??!1}}),await g(),C&&k&&k.length>0&&(F=z.map(e=>({uid:e.newWhiteboardElementUid,elementType:e.elementType}))),!C&&(!E||E===s.current))try{let e=z.filter(e=>!e.parentUid).map(e=>({id:e.newWhiteboardElementUid,elementType:e.elementType,position:JSON.parse(e.newElementLocation)})),i=T?.actionType==="paste"&&t?(0,D.findFrameContainingPoint)((0,D.toAdoptableFrames)(c()),t):null,o=e.filter(e=>e.elementType!==r.ToolElementType.ToolFrame&&e.elementType!==r.ToolElementType.ToolGroup&&!n.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.elementType));i&&o.length>0?(await m("pasteIntoFrame"),await v(i,o.map(e=>e.id),new Map(o.map(e=>[e.id,e.position])))):i||await S(e)}catch(e){console.error("Frame adoption after duplicate failed:",e)}let e=new Set([o.current?.whiteboard?.uid,...(o.current?.whiteboardParentData??[]).map(e=>
105e?.elementUid)].filter(Boolean));W.some(t=>t.elementType===r.ToolElementType.ToolWhiteboard&&!!t.duplicatingElementUid&&e.has(t.duplicatingElementUid))&&await f()}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:d,onResourceExhaustedErrorHandler:()=>Y({title:e?.graphQLErrors?.[0]?.message??e?.message??"",body:""})}),x(),await u(I),await h(U),await f()}return F},[M,m,g,o,d,y,s,s.current,Y,S,v]),ee=(0,t.useCallback)(async(e,t,r,n,l,b)=>{let w;if(y||!e||0===e.length)return;let E=await c(),C=await p(),T=new Set(e.map(e=>e.id)),A=e.filter(e=>!e.parentId||!T.has(e.parentId)),_=e.filter(e=>e.parentId&&T.has(e.parentId)),v=[];for(let t of e){let e=t.data?.element?.elements;if(Array.isArray(e))for(let t of e)t?.uid&&v.push(t.uid)}let k=Array.from(new Set([..._.map(e=>e.id),...v])),F=new Map(E.map(e=>[e.id,e]));for(let t of e)F.has(t.id)||F.set(t.id,t);let{x:D,y:M}=r;if(A.length>0){let e=A.map(e=>(0,a.getNodeAbsolutePosition)(e,F));n={x:Math.min(...e.map(e=>e.x)),y:Math.min(...e.map(e=>e.y))}}if(b){for(let e of c()){if(e.id===b.wallNodeId){w=e.data?.element?.whiteboardElementUid??b.wallNodeId;break}let t=e.data?.element?.elements;if(t){let e=t.find(e=>e.uid===b.wallNodeId);if(e){w=e.content?.whiteboardElementUid??b.wallNodeId;break}}}w=w??b.wallNodeId}let U=A.map((e,t)=>{let r=(0,a.getNodeAbsolutePosition)(e,F),i=JSON.stringify({x:D+(r.x-n.x),y:M+(r.y-n.y)});return b&&w?{uid:e.id,elementLocation:i,hasParentUid:!0,parentUid:w,parentOrderIndex:b.orderIndex+t,hasFrameUid:!0,frameUid:"",hasGroupUid:!1,groupUid:""}:{uid:e.id,elementLocation:i,hasParentUid:!0,parentUid:"",parentOrderIndex:0,hasFrameUid:!0,frameUid:"",hasGroupUid:!1,groupUid:""}}),L=(t??[]).map(e=>e.id);if(await m("cutPasteWhiteboardElements"),b&&w){let e=er(c(),b.wallNodeId),t=A.map((t,r)=>{let n=t.data,i=n?.whiteboardElement,o=i?.content??n?.element,a=i?.elementAttributes??(n?.attributes?JSON.stringify(n.attributes):"{}"),l=e&&X.includes(t.data.type)?en(a,e):a;return{uid:t.id,elementType:t.data.type,elementLocation:U[r].elementLocation,elementAttributes:l,parentUid:w,parentOrderIndex:b.orderIndex+r,content:o?structuredClone(o):void 0}});await u(e=>e.map(e=>{let r=e.data,n={...e,selected:!1};if(e.id===b.wallNodeId&&r.element&&"elements"in r.element){let n=[...r.element.elements||[]];return n.splice(b.orderIndex,0,...t),{...e,selected:!0,data:{...e.data,element:{...r.element,elements:n}}}}if(r.element&&"elements"in r.element&&r.element.elements){let e=r.element.elements.findIndex(e=>e.uid===b.wallNodeId);if(-1!==e){let i=r.element.elements[e];if(i.content&&"elements"in i.content){let o=[...i.content.elements||[]];o.splice(b.orderIndex,0,...t);let a=[...r.element.elements];return a[e]={...i,content:{...i.content,elements:o}},{...n,data:{...n.data,element:{...r.element,elements:a}}}}}}return n}))}else{let t=new Set(A.map(e=>e.id)),r=e.map(e=>{if(t.has(e.id)){let t=(0,a.getNodeAbsolutePosition)(e,F);return{...e,parentId:void 0,position:{x:D+(t.x-n.x),y:M+(t.y-n.y)},selected:!0}}return{...e,selected:!1}});await u(e=>[...e.filter(e=>!T.has(e.id)).map(e=>({...e,selected:!1})),...r])}t&&t.length>0&&await h(e=>[...e.filter(e=>!T.has(e.id)).map(e=>({...e,selected:!1})),...t.map(e=>({...e,selected:!1}))]);try{if(await I({variables:{projectId:o.current?.id,projectUid:o.current?.uid,targetWhiteboardId:l||s.current,elements:U,descendantUids:k,edgeUids:L}}),await g(),!b&&(!l||l===s.current))try{await S(U.map(e=>({id:e.uid,position:JSON.parse(e.elementLocation)})))}catch(e){console.error("Frame adoption after cut-paste failed:",e)}}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:d}),x(),await u(E),await h(C),await f()}},[I,m,g,o,d,y,s,s.current,S]),et=(0,t.useCallback)(async(e,t,r)=>{let n=(0,eE.getViewOnlyCommentContext)();if(!y||n.active){(0,b.claimLocalMove)(e,t,r);try{if(n.active){await V({variables:{uid:e,whiteboardUid:n.whiteboardUid,readonlyLinkKey:n.readonlyLinkKey,accessToken:n.accessToken,elementLocation:JSON.stringify({x:t,y:r})}}),g();return}await U({variables:{uid:e,projectId:o.current?.id,elementLocation:JSON.stringify({x:t,y:r})}}),g()}catch(t){console.error(t),(0,b.releaseLocalMove)(e),x(),await f()}}},[U,V,g,c,d,y,m,x,f]),ei=(0,t.useCallback)(async(e,t)=>{let r=(0,eE.getViewOnlyCommentContext)();if((!y||r.active)&&e&&0!=e.length){for(let t of e)try{let e=JSON.parse(t.elementLocation);(0,b.claimLocalMove)(t.uid,e.x,e.y)}catch{}try{if(r.active){await Promise.all(e.map(e=>V({variables:{uid:e.uid,whiteboardUid:r.whiteboardUid,readonlyLinkKey:r.readonlyLinkKey,accessToken:r.accessToken,elementLocation:e.elementLocation}}))),await g();return}await B({variables:{projectId:o.current?.id,elements:e,historyBatchId:t}}),await g()}catch(t){for(let r of(console.error(t),e))(0,b.releaseLocalMove)(r.uid);(0,i.handleGraphQLError)({error:t,toast:d}),await f()}}},[B,V,g,f,d,y]),el=(0,t.useCallback)(async(e,t)=>{let r=(0,eE.getViewOnlyCommentContext)();if(!y||r.active)try{if(await m("updateElementAttributes"),await u(r=>r.map(r=>{if(r.id===e)return{...r,data:{...r.data,attributes:t}};if(r.data?.element?.elements){let n=r.data.element.elements.map(r=>r.uid===e?{...r,elementAttributes:JSON.stringify(t)}:r);return{...r,data:{...r.data,element:{...r.data.element,elements:n}}}}return r})),r.active){await $({variables:{uid:e,whiteboardUid:r.whiteboardUid,readonlyLinkKey:r.readonlyLinkKey,accessToken:r.accessToken,elementAttributes:JSON.stringify(t)}}),g();return}await W({variables:{uid:e,projectId:o.current?.id,elementAttributes:JSON.stringify(t)}}),g()}catch(e){console.error(e),x(),(0,i.handleGraphQLError)({error:e,toast:d})}},[U,$,m,g,d,o,f,x,y]),es=(0,t.useCallback)(async({elementUids:e,attributes:t,skipSnapsh
105ot:r=!1})=>{let n=(0,eE.getViewOnlyCommentContext)();if(!y||n.active)try{r||await m("updateMultipleElementAttributes");let i={};c().forEach(r=>{e.includes(r.id)&&(i[r.id]={...r.data.attributes,...t}),r.data?.element?.elements&&r.data.element.elements.forEach(r=>{if(e.includes(r.uid)){let e=r.elementAttributes?JSON.parse(r.elementAttributes):{};i[r.uid]={...e,...t}}r.content?.elements&&r.content.elements.forEach(r=>{if(e.includes(r.uid)){let e=r.elementAttributes?JSON.parse(r.elementAttributes):{};i[r.uid]={...e,...t}}})})});let a=e.filter(e=>i[e]).map(e=>({uid:e,elementAttributes:JSON.stringify(i[e])}));if(0===a.length)return;if(u(t=>t.map(t=>{if(e.includes(t.id))return{...t,data:{...t.data,attributes:i[t.id]}};if(t.data?.element?.elements){let r=t.data.element.elements.map(t=>e.includes(t.uid)?{...t,elementAttributes:JSON.stringify(i[t.uid])}:t);return{...t,data:{...t.data,element:{...t.data.element,elements:r}}}}return t})),n.active){await Promise.all(a.map(e=>$({variables:{uid:e.uid,whiteboardUid:n.whiteboardUid,readonlyLinkKey:n.readonlyLinkKey,accessToken:n.accessToken,elementAttributes:e.elementAttributes}}))),g();return}await P({variables:{projectId:o.current?.id,elements:a}}),g()}catch(e){console.error(e),f(),x(),(0,i.handleGraphQLError)({error:e,toast:d})}},[P,$,c,d,y,o,f,x,g,m]),ed=(0,t.useCallback)(({wallUid:e,elements:t})=>{let r=er(c(),e);if(!r)return;let n=t.filter(e=>e.elementType&&X.includes(e.elementType)).map(e=>e.uid);0!==n.length&&es({elementUids:n,attributes:{backgroundColor:r},skipSnapshot:!0})},[c,es]),eu=(0,t.useCallback)(async(e,t)=>{let n=(0,eE.getViewOnlyCommentContext)();if(y&&!n.active||eB.useWhiteboardTemplatePreviewStore.getState().elements.some(t=>t.element.uid===e)||eL.useWhiteboardStagingStore.getState().stagedElements.some(t=>t.element.uid===e))return;let a=ej(t);try{if(await m("updateElementContent"),await u(r=>r.map(r=>{if(r.id===e)return{...r,data:{...r.data,element:t}};if(r.data?.element?.elements){let n=r.data.element.elements.map(r=>r.uid===e?{...r,content:t}:r);return{...r,data:{...r.data,element:{...r.data.element,elements:n}}}}return r})),(0,ev.isWhiteboardPendingUploadContent)(t??{})){x(),g();return}if(n.active?await G({variables:{uid:e,whiteboardUid:n.whiteboardUid,readonlyLinkKey:n.readonlyLinkKey,accessToken:n.accessToken,contentJsonString:a}}):await j({variables:{uid:e,projectId:o.current?.id,contentJsonString:a}}),t?.__typename===r.ToolElementType.ToolWhiteboard&&t.elementUid){let e={boardName:t.boardName,iconType:t.iconType,iconName:t.iconName,iconColorHex:t.iconColorHex};(0,eF.syncFolderDetails)(q.cache,t.elementUid,e),(0,eD.updateProjectWhiteboardCache)(t.elementUid,e),(0,ea.requestSidebarDashboardRefetch)()}g()}catch(e){console.error(e),x(),(0,i.handleGraphQLError)({error:e}),await f()}},[j,m,x,g,d,y]),ec=(0,t.useCallback)(async e=>{if(y||!e||0===e.length)return;let t=new Map(e.map(e=>[e.uid,e.element]));try{await m("updateMultipleElementContent"),await u(e=>e.map(e=>{let r=t.get(e.id);return r?{...e,data:{...e.data,element:r}}:e}));let n=e.filter(e=>!(0,ev.isWhiteboardPendingUploadContent)(e.element??{}));n.length>0?await R({variables:{projectId:o.current?.id,elements:n.map(e=>({uid:e.uid,contentJsonString:ej(e.element)}))}}):x();let i=e.filter(({element:e})=>e?.__typename===r.ToolElementType.ToolWhiteboard&&e.elementUid).map(({element:e})=>({whiteboardUid:e.elementUid,patch:{boardName:e.boardName,iconType:e.iconType,iconName:e.iconName,iconColorHex:e.iconColorHex}}));if(i.length>0){for(let{whiteboardUid:e,patch:t}of i)(0,eF.syncFolderDetails)(q.cache,e,t);(0,eD.updateMultipleProjectWhiteboardsCache)(i),(0,ea.requestSidebarDashboardRefetch)()}g()}catch(e){console.error(e),x(),(0,i.handleGraphQLError)({error:e,toast:d}),await f()}},[R,u,o,m,g,x,f,d,y]),eh=(0,t.useCallback)(async({uid:e,newParentUid:t,newParentOrderIndex:r,newDelta:n,shouldRefetchWhiteboard:a=!1})=>{let l=(0,eE.getViewOnlyCommentContext)();if(!y||l.active)try{let i;if(n&&(i=JSON.stringify({x:n.x,y:n.y})),l.active){await J({variables:{uid:e,whiteboardUid:l.whiteboardUid,readonlyLinkKey:l.readonlyLinkKey,accessToken:l.accessToken,newParentUid:t??"",newParentOrderIndex:r??0,newElementLocation:i}}),a&&await f(),g();return}await N({variables:{projectId:o.current?.id,uid:e,newParentUid:t,newParentOrderIndex:r,newElementLocation:i}}),a&&await f(),g(),t&&eo.whiteboardActions.kickGrowthReflow(t)}catch(e){console.error(e),console.log("refetchWhiteboard being called"),(0,i.handleGraphQLError)({error:e,toast:d}),await f()}},[N,J,f,g,d,y]),ep=(0,t.useCallback)(async({newParentUid:e,startingOrderIndex:t,elements:r})=>{let n=(0,eE.getViewOnlyCommentContext)();if(!y||n.active)try{if(n.active){for(let e of r)await J({variables:{uid:e.uid,whiteboardUid:n.whiteboardUid,readonlyLinkKey:n.readonlyLinkKey,accessToken:n.accessToken,newParentUid:e.newParentUid??"",newParentOrderIndex:e.newParentOrderIndex??0}});g();return}await O({variables:{projectId:o.current?.id,newParentUid:e,startingOrderIndex:t,elements:r}}),g(),eo.whiteboardActions.kickGrowthReflow(e)}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:d}),await f()}},[O,J,f,g,d,y]),eg=(0,t.useCallback)(async({parentUid:e,elements:t})=>{let r=(0,eE.getViewOnlyCommentContext)();if(!y||r.active)try{if(r.active){for(let e of t)await J({variables:{uid:e.uid,whiteboardUid:r.whiteboardUid,readonlyLinkKey:r.readonlyLinkKey,accessToken:r.accessToken,newParentUid:"",newParentOrderIndex:0,newElementLocation:e.newElementLocation}});g();return}await H({variables:{projectId:o.current?.id,parentUid:e,elements:t}}),g()}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:d}),await f()}},[H,J,f,g,d,y]),ef=(0,t.useCallback)(async e=>{let t=(0,eE.getViewOnlyCommentContext)();if(y&&!t.active)return;let{edgeUids:n,skipTrashSessionCount:l,historyBatchId:f}=e,b=e.whiteboardElementUids;if(b.length>0){let e=eL.useWhiteboardStagingStore.getState(),t=e.handlers?.rejectElement;if(e.frameless&&e.isReady&&e.batchId&&e.stagedElements.length>0&&t){let r=new Map,i=new Map;for(let t of e.stagedElements){let e=t.element.uid;if(e)if(t.isPatch){let n=(t.replacesElementUids||[])[0];n&&r.set(n,e)}else{r.set(e,e);let n=t.element.parentUid;if(n){let t=i.get(n)??[];t.push(e),i.set(n,t)}}}let o=new Map((await c()).map(e=>[e.id,e])),a=new Set,l=[];for(let e of b){if(r.has(e)){a.add(r.get(e));continue}
105(i.get(e)??[]).forEach(e=>a.add(e));let t=o.get(e)?.data?.element?.elements;if(Array.isArray(t))for(let e of t){let t=e?.uid;t&&r.has(t)&&a.add(r.get(t))}l.push(e)}if(a.size>0){if(a.forEach(e=>t(e)),0===l.length&&(!n||0===n.length))return;b=l}}}if(b.length>0){let e=await c(),t=new Set(b),n=new Set(e.filter(e=>t.has(e.id)&&e.type===r.ToolElementType.ToolFrame).map(e=>e.id));if(n.size>0){let r=[];for(let i of e)!t.has(i.id)&&i.parentId&&n.has(i.parentId)&&(r.push(i.id),t.add(i.id));b=[...b,...r]}}f||await m("deleteWhiteboardElements");let E=await c(),S=await p(),A=[],v=new Set,k=new Map;if(b.length>0){let e=new Set(b),t=new Set;for(let r of E)e.has(r.id)&&r.parentId&&t.add(r.parentId);for(let n of Array.from(t)){let t=E.find(e=>e.id===n&&e.type===r.ToolElementType.ToolGroup);if(!t)continue;let i=E.filter(t=>t.parentId===n&&!e.has(t.id)).sort((e,t)=>e.position.x-t.position.x);if(0===i.length){v.add(n);continue}if(1===i.length){v.add(n);let e=i[0];k.set(e.id,{x:e.position.x+t.position.x,y:e.position.y+t.position.y});continue}if(t.data?.element?.layoutType!=="Horizontal")continue;let o=_.DEFAULT_KANBAN_GROUP_GAP,l=_.DEFAULT_KANBAN_GROUP_PADDING,s=0,d=l,u=[];for(let e of i){let t=(0,a.getLayoutDimensionsForNode)(e);u.push({id:e.id,x:d,y:l,width:t.width}),d+=t.width+o,t.height>s&&(s=t.height)}let c=d-o+l,h=2*l+s;A.push({groupId:n,childPositions:u.map(e=>({uid:e.id,elementLocation:JSON.stringify({x:e.x,y:e.y})})),newAttributes:JSON.stringify({width:c,height:h})})}}try{if(b.length>0){let e=new Map,t=new Map;for(let r of A){let n=new Map;for(let e of r.childPositions)n.set(e.uid,JSON.parse(e.elementLocation));e.set(r.groupId,n),t.set(r.groupId,JSON.parse(r.newAttributes))}await u(r=>r.filter(e=>{let t=b.includes(e.id),r=b.some(t=>e.id.startsWith(`${t}-gap-`)),n=b.some(t=>e.id===`${t}-blank`);return!(t||r||n||v.has(e.id))}).map(r=>{let n=k.get(r.id);if(n&&r.parentId&&v.has(r.parentId))return{...r,position:n,parentId:void 0,extent:void 0,draggable:void 0,data:{...r.data??{},groupUid:""}};let i=r.parentId?e.get(r.parentId):void 0;if(i){let e=i.get(r.id);if(e)return{...r,position:e}}let o=t.get(r.id);if(o)return{...r,data:{...r.data,attributes:o},style:{...r.style,width:o.width,height:o.height}};if(r.data?.element?.elements){let e=r.data.element.elements.filter(e=>!b.includes(e.uid)&&(e.content?.elements&&(e.content.elements=e.content.elements.filter(e=>!b.includes(e.uid))),!0));return{...r,data:{...r.data,element:{...r.data.element,elements:e}}}}return r}))}if(t.active?await K({variables:{uids:b,whiteboardUid:t.whiteboardUid,readonlyLinkKey:t.readonlyLinkKey,accessToken:t.accessToken}}):await z({variables:{uids:b,edgeUids:n,projectId:o.current?.id,whiteboardId:s.current,...f?{historyBatchId:f}:{}}}),!l){let e=(0,eW.countDeletedElementsForTrashSession)(b),t=s.current;e>0&&t&&eW.useWhiteboardTrashBinSessionStore.getState().addSessionDeletedCount(t,e)}if(C(!1),await g(),b.length>
1050){for(let e of b)(0,ev.isPendingWhiteboardImageUploadInFlight)(e)&&((0,ev.abortPendingWhiteboardUpload)(e),T(e),(0,em.clearWhiteboardPendingUploadObjectUrl)(e),(0,e_.removeWhiteboardPendingUploadBlob)(e));eA.useWhiteboardSelectionStore.getState().unregisterUploadingWhiteboardElements(b)}}catch(e){console.error(e),E&&await u(E),S&&await h(S),f||x(),(0,i.handleGraphQLError)({error:e,toast:d})}finally{w.useWhiteboardViewStore.getState().markBoardContentChanged()}},[z,m,g,d,y,o,s]),eb=(0,t.useCallback)((e,t)=>!(0,ev.isPendingWhiteboardUploadImageUrl)(e)&&!!e?.startsWith(k.INTERNAL_APP_IMAGE_URL_PREFIX)&&(ef({whiteboardElementUids:[t],skipTrashSessionCount:!0}),!0),[ef]);return{updateWhiteboardAttributes:Q,duplicateWhiteboardElements:Z,cutPasteWhiteboardElements:ee,updateElementPosition:et,updateMultipleElementPositions:ei,updateElementAttributes:el,updateMultipleElementAttributes:es,applyWallEntryTheme:ed,updateWhiteboardElementContent:eu,updateMultipleWhiteboardElementContents:ec,updateWhiteboardElementParentData:eh,updateMultipleWhiteboardElementParentData:ep,removeMultipleWhiteboardElementsFromParent:eg,deleteWhiteboardElements:ef,handleImageLoadError:eb}}],786110),e.s(["useWhiteboardContentUpdates",0,function({mutations:e,project:r,whiteboardId:n,toast:o,setNodes:a,getNodes:l,setEdges:s,getEdges:d,takeWhiteboardSnapshot:u,saveReactFlowStateToCache:c,refetchWhiteboard:h,revertLastWhiteboardSnapshot:p,viewOnly:m}){let g=(0,ek.useApolloClient)(),{updateProjectDocumentMutation:f,updateBlueprintBasicInfoMutation:b,updateProjectNoteMutation:x,updateProjectNoteLabelsMutation:y,updateProjectTicketMutation:w,updateProjectHtmlPageMutation:E,updateProjectSlideDeckMutation:C,reorderProjectSlideDeckSlidesMutation:T,moveMultipleElementsToNewWhiteboardMutation:S}=e,A=(0,t.useCallback)((e,t)=>a(r=>r.map(r=>r.id===e?{...r,data:{...r.data,element:t}}:r.data?.element?.elements?{...r,data:{...r.data,element:{...r.data.element,elements:r.data.element.elements.map(r=>r?.uid===e?{...r,content:t}:r)}}}:r)),[a]),_=(0,t.useCallback)(async(e,t,r,n)=>{if(m)return!1;let s=l();
105t.skipSnapshot||await u(e);try{return await r(),await n(),c(),!0}catch(e){return console.error(e),(0,i.handleGraphQLError)({error:e,toast:o}),await a(s),t.skipSnapshot||p(),!1}},[m,l,a,u,c,p,o]),v=(0,t.useCallback)((e,t,i,o={})=>_("updateProjectHtmlPage",o,()=>A(e,{...t,...i}),()=>E({variables:{uid:t.elementUid,projectId:r.current?.id,...i,whiteboardId:n.current,historyBatchId:o.historyBatchId}})),[_,A,E,r,n]),k=(0,t.useCallback)((e,t,r,i={})=>_("updateProjectSlideDeck",i,()=>A(e,{...t,...r}),()=>C({variables:{deckUid:t.elementUid,...r,whiteboardId:n.current,historyBatchId:i.historyBatchId}})),[_,A,C,n]),F=(0,t.useCallback)((e,t,r,i={})=>{let o=(t.elements??[]).flatMap(e=>e?[e]:[]),a=new Map(o.map(e=>[e.uid,e])),l=r.flatMap(e=>a.get(e)??[]),s=[...l,...o.filter(e=>!r.includes(e.uid))].map((e,t)=>({...e,parentOrderIndex:t})),d=l.flatMap(e=>{let t=e.content?.elementUid;return t?[t]:[]});return _("reorderProjectSlideDeckSlides",i,()=>A(e,{...t,elements:s}),()=>T({variables:{deckUid:t.elementUid,slideUids:d,whiteboardId:n.current,historyBatchId:i.historyBatchId}}))},[_,A,T,n]),D=(0,t.useCallback)(async({whiteboardElementUid:e,documentUid:t,title:r,projectUid:s})=>{if(m)return;await u("updateProjectDocument");let d=await l();await a(t=>t.map(t=>{if(t.id===e)return{...t,data:{...t.data,element:{...t.data.element,title:r}}};if(t.data?.element?.elements){let n=t.data.element.elements.map(t=>t.uid===e?{...t,content:{...t.content,title:r}}:t);return{...t,data:{...t.data,element:{...t.data.element,elements:n}}}}return t}));try{let e={documentUid:t,projectUid:s,title:r,whiteboardId:n.current};await f({variables:e}),(0,eF.syncDocumentRename)(g.cache,t,r),c(),eA.useWhiteboardSelectionStore.getState().triggerDocumentUpdate()}catch(e){(0,i.handleGraphQLError)({error:e,toast:o}),d&&await a(d),p()}},[n,f,g,u,c,m,a,p,o]),M=(0,t.useCallback)(async({whiteboardElementUid:e,blueprintUid:t,title:s,thumbnail:d})=>{if(m)return;await u("updateBlueprintBasicInfo");let h=await l();await a(t=>t.map(t=>{if(t.id===e)return{...t,data:{...t.data,element:{...t.data.element,title:s,thumbnail:d}}};if(t.data?.element?.elements){let r=t.data.element.elements.map(t=>t.uid===e?{...t,content:{...t.content,title:s,thumbnail:d}}:t);return{...t,data:{...t.data,element:{...t.data.element,elements:r}}}}return t}));try{let e={blueprintUid:t,projectUid:r.current?.uid,title:s,thumbnail:d,whiteboardId:n.current};await b({variables:e}),c()}catch(e){(0,i.handleGraphQLError)({error:e,toast:o}),h&&await a(h),p()}},[b,u,c,o,m,n.current,r,a,p]),I=(0,t.useCallback)(async(e,t,r,s,d,h)=>{if(m)return;let g=void 0!==h,f=void 0!==s;if(!f&&!g||f&&!g&&/^<p style="[^"]*"><\/p>$/.test(s)&&(void 0===d||""===d)||f&&!g&&s===d)return;let b=await l();await u("updateProjectNote");try{f&&s.endsWith("<p>/</p>")&&(s=s.slice(0,-9));let i=e=>({...e,...f?{content:s}:{},...g?{labels:h}:{}});if(await a(t=>t.map(t=>{if(t.id===e)return{...t,data:{...t.data,element:i(t.data.element)}};if(t.data?.element?.elements){let r=t.data.element.elements.map(t=>t.uid===e?{...t,content:i(t.content)}:t);return{...t,data:{...t.data,element:{...t.data.element,elements:r}}}}return t})),f){let e={uid:t,projectId:r,content:s,oldContent:d,whiteboardId:n.current,...g?{labels:eR(h)}:{}};await x({variables:e}),c()}else{let e={uid:t,projectId:r,whiteboardId:n.current,labels:eR(h)};await y({variables:e}),c()}}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:o}),b&&await a(b),p()}},[x,y,a,l,c,o,m,n.current]);return{updateProjectDocument:D,updateBlueprintBasicInfo:M,updateProjectNote:I,updateProjectTicket:(0,t.useCallback)(async(e,t)=>{if(m)return;let s=await l();await u("updateProjectTicket");try{let{whiteboardElementUid:i}=e;await a(t=>t.map(t=>{if(t.id===i)return{...t,data:{...t.data,element:e}};if(t.data?.element?.elements){let r=t.data.element.elements.map(t=>t.uid===i?{...t,content:e}:t);return{...t,data:{...t.data,element:{...t.data.element,elements:r}}}}return t})),t?.();let o={projectId:r.current?.id,...e,uid:e.elementUid,whiteboardId:n.current};await w({variables:o}),c()}catch(e){console.error(e),(0,i.handleGraphQLError)({error:e,toast:o}),s&&await a(s),p()}},[w,a,l,c,o,m,n.current,r,p]),updateProjectHtmlPage:v,updateProjectSlideDeck:k,reorderProjectSlideDeckSlides:F,moveMultipleElementsToNewWhiteboard:(0,t.useCallback)(async({whiteboardElementUids:e,newWhiteboardUid:t})=>{if(m)return;let n=e.filter(e=>!e.includes("-gap-")&&!e.endsWith("-blank"));if(0===n.length)return;let h=await l(),g=await d();try{await u("moveMultipleElementsToNewWhiteboard"),await a(e=>e.map(e=>e?.data?.element?.elementUid===t?{...e,data:{...e.data,isOver:!1}}:e)),await a(e=>e.filter(e=>!n.includes(e.id)&&(!e.parentId||!n.includes(e.parentId))));let e=new Set(n);await s(t=>t.filter(t=>!e.has(t.source)&&!e.has(t.target)));let{data:i}=await S({variables:{whiteboardElementUids:n,projectId:r.current?.id,newWhiteboardUid:t}});if(!i?.moveMultipleElementsToNewWhiteboard){await a(h),await s(g),p();return}await c()}catch(e){console.error("Error moving elements:",e),await a(h),await s(g),(0,i.handleGraphQLError)({error:e,toast:o}),p()}},[S,u,c,r.current?.id,a,l,s,d])}}],701105);var eN=e.i(838458);e.i(991577);var eO=e.i(8164),eH=e.i(11905);function ez(e){return e.x}function eG(e){return e.y}var eV=Math.PI*(3-Math.sqrt(5));function e$(e){return function(){return e}}function eJ(e){return(e()-.5)*1e-6}function eK(e){return e.index}function eY(e,t){var r=e.get(t);if(!r)throw Error("node not found: "+t);return r}function eq(e,t,r,n){if(isNaN(t)||isNaN(r))return e;var i,o,a,l,s,d,u,c,h,p=e._root,m={data:n},g=e._x0,f=e._y0,b=e._x1,x=e._y1;if(!p)return e._root=m,e;for(;p.length;)if((d=t>=(o=(g+b)/2))?g=o:b=o,(u=r>=(a=(f+x)/2))?f=a:x=a,i=p,!(p=p[c=u<<1|d]))return i[c]=m,e;if(l=+e._x.call(null,p.data),s=+e._y.call(null,p.data),t===l&&r===s)return m.next=p,i?i[c]=m:e._root=m,e;do i=i?i[c]=[,,,,]:e._root=[,,,,],(d=t>=(o=(g+b)/2))?g=o:b=o,(u=r>=(a=(f+x)/2))?f=a:x=a;while((c=u<<1|d)==(h=(s>=a)<<1|l>=o))return i[h]=p,i[c]=m,e}function eX(e,t,r,n,i){this.node=e,this.x0=t,this.y0=r,this.x1=n,this.y1=i}function eQ(e){return e[0]}function eZ(e){return e[1]}function e0(e,t,r){var n=new e1(null==t?eQ:t,null==r?eZ:r,NaN,NaN,NaN,NaN);return null==e?n:n.addAll(e)}function e1(e,t,r,n,i,o){this._x=e,this._y=t,this._x0=r,this._y0=n,this._x1=i,this._y1=o,this._root=void 0}function e5(e){for(var t={data:e.data},r=t;e=e.next;)r=r.next={data:e.data};return t}var e2=e0.prototype=e1.prototype;function e4(e){return e.x+e.vx}function e8(e){return e.y+e.vy}function e3(e){var t,r,n,i=1,o=1;function a(){for(var e,a,s,d,u,c,h,p=t.length,m=0;m<o;++m)for(e=0,a=e0(t,e4,e8).visitAfter(l);e<p;++e)h=(c=r[(s=t[e]).index])*c,d=s.x+s.vx,u=s.y+s.vy,a.visit(g);function g(e,t,r,o,a){var l=e.data,p=e.r,m=c+p;if(l){if(l.index>s.index){var g=d-l.x-l.vx,f=u-l.y-l.vy,b=g*g+f*f;b<m*m&&(0===g&&(b+=(g=eJ(n))*g),0===f&&(b+=(f=eJ(n))*f),b=(m-(b=Math.sqrt(b)))/b*i,s.vx+=(g*=b)*(m=(p*=p)/(h+p)),s.vy+=(f*=b)*m,l.vx-=g*(m=1-m),l.vy-=f*m)}return}return t>d+m||o<d-m||r>u+m||a<u-m}}function l(e){if(e.data)return e.r=r[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function s(){if(t){var n,i,o=t.length;for(n=0,r=Array(o);n<o;++n)r[(i=t[n]).index]=+e(i,n,t)}}return"function"!=typeof e&&(e=e$(null==e?1:+e)),a.initialize=function(e,r){t=e,n=r,s()},a.iterations=function(e){return arguments.length?(o=+e,a):o},a.strength=function(e){return arguments.length?(i=+e,a):i},a.radius=function(t){return arguments.length?(e="function"==typeof t?t:e$(+t),s(),a):e},a}e2.copy=function(){var e,t,r=new e1(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=e5(n),r;for(e=[{source:n,target:r._root=[,,,,]}];n=e.pop();)for(var i=0;i<4;++i)(t=n.source[i])&&(t.length?e.push({source:t,target:n.target[i]=[,,,,]}):n.target[i]=e5(t));return r},e2.add=function(e){let t=+this._x.call(null,e),r=+this._y.call(null,e);return eq(this.cover(t,r),t,r,e)},e2.addAll=function(e){var t,r,n,i,o=e.length,a=Array(o),l=Array(o),s=1/0,d=1/0,u=-1/0,c=-1/0;for(r=0;r<o;++r)!(isNaN(n=+this._x.call(null,t=e[r]))||isNaN(i=+this._y.call(null,t)))&&(a[r]=n,l[r]=i,n<s&&(s=n),n>u&&(u=n),i<d&&(d=i),i>c&&(c=i));if(s>u||d>c)return this;for(this.cover(s,d).cover(u,c),r=0;r<o;++r)eq(this,a[r],l[r],e[r]);return this},e2.cover=function(e,t){if(isNaN(e*=1)||isNaN(t*=1))return this;var r=this._x0,n=this._y0,i=this._x1,o=this._y1;if(isNaN(r))i=(r=Math.floor(e))+1,o=(n=Math.floor(t))+1;else{for(var a,l,s=i-r||1,d=this._root;r>e||e>=i||n>t||t>=o;)switch(l=(t<n)<<1|e<r,(a=[,,,,])[l]=d,d=a,s*=2,l){case 0:i=r+s,o=n+s;break;case 1:r=i-s,o=n+s;break;case 2:i=r+s,n=o-s;break;case 3:r=i-s,n=o-s}
105this._root&&this._root.length&&(this._root=d)}return this._x0=r,this._y0=n,this._x1=i,this._y1=o,this},e2.data=function(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e},e2.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},e2.find=function(e,t,r){var n,i,o,a,l,s,d,u=this._x0,c=this._y0,h=this._x1,p=this._y1,m=[],g=this._root;for(g&&m.push(new eX(g,u,c,h,p)),null==r?r=1/0:(u=e-r,c=t-r,h=e+r,p=t+r,r*=r);s=m.pop();)if((g=s.node)&&!((i=s.x0)>h)&&!((o=s.y0)>p)&&!((a=s.x1)<u)&&!((l=s.y1)<c))if(g.length){var f=(i+a)/2,b=(o+l)/2;m.push(new eX(g[3],f,b,a,l),new eX(g[2],i,b,f,l),new eX(g[1],f,o,a,b),new eX(g[0],i,o,f,b)),(d=(t>=b)<<1|e>=f)&&(s=m[m.length-1],m[m.length-1]=m[m.length-1-d],m[m.length-1-d]=s)}else{var x=e-this._x.call(null,g.data),y=t-this._y.call(null,g.data),w=x*x+y*y;if(w<r){var E=Math.sqrt(r=w);u=e-E,c=t-E,h=e+E,p=t+E,n=g.data}}return n},e2.remove=function(e){if(isNaN(o=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,r,n,i,o,a,l,s,d,u,c,h,p=this._root,m=this._x0,g=this._y0,f=this._x1,b=this._y1;if(!p)return this;if(p.length)for(;;){if((d=o>=(l=(m+f)/2))?m=l:f=l,(u=a>=(s=(g+b)/2))?g=s:b=s,t=p,!(p=p[c=u<<1|d]))return this;if(!p.length)break;(t[c+1&3]||t[c+2&3]||t[c+3&3])&&(r=t,h=c)}for(;p.data!==e;)if(n=p,!(p=p.next))return this;return((i=p.next)&&delete p.next,n)?i?n.next=i:delete n.next:t?(i?t[c]=i:delete t[c],(p=t[0]||t[1]||t[2]||t[3])&&p===(t[3]||t[2]||t[1]||t[0])&&!p.length&&(r?r[h]=p:this._root=p)):this._root=i,this},e2.removeAll=function(e){for(var t=0,r=e.length;t<r;++t)this.remove(e[t]);return this},e2.root=function(){return this._root},e2.size=function(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e},e2.visit=function(e){var t,r,n,i,o,a,l=[],s=this._root;for(s&&l.push(new eX(s,this._x0,this._y0,this._x1,this._y1));t=l.pop();)if(!e(s=t.node,n=t.x0,i=t.y0,o=t.x1,a=t.y1)&&s.length){var d=(n+o)/2,u=(i+a)/2;(r=s[3])&&l.push(new eX(r,d,u,o,a)),(r=s[2])&&l.push(new eX(r,n,u,d,a)),(r=s[1])&&l.push(new eX(r,d,i,o,u)),(r=s[0])&&l.push(new eX(r,n,i,d,u))}return this},e2.visitAfter=function(e){var t,r=[],n=[];for(this._root&&r.push(new eX(this._root,this._x0,this._y0,this._x1,this._y1));t=r.pop();){var i=t.node;if(i.length){var o,a=t.x0,l=t.y0,s=t.x1,d=t.y1,u=(a+s)/2,c=(l+d)/2;(o=i[0])&&r.push(new eX(o,a,l,u,c)),(o=i[1])&&r.push(new eX(o,u,l,s,c)),(o=i[2])&&r.push(new eX(o,a,c,u,d)),(o=i[3])&&r.push(new eX(o,u,c,s,d))}n.push(t)}for(;t=n.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},e2.x=function(e){return arguments.length?(this._x=e,this):this._x},e2.y=function(e){return arguments.length?(this._y=e,this):this._y};class e6{simulation;simNodes=[];simLinks=[];collisionRadius;constructor(e=_.DEFAULT_TOOL_NOTE_WIDTH,t=600){this.collisionRadius=Math.sqrt(e/2*(e/2)+t/2*(t/2))+120,this.simulation=(function(e){let t;var r,n=1,i=.001,o=1-Math.pow(.001,1/300),a=0,l=.6,s=new Map,d=(0,eH.timer)(h),u=(0,eO.dispatch)("tick","end"),c=(t=1,()=>(t=(1664525*t+0x3c6ef35f)%0x100000000)/0x100000000);function h(){p(),u.call("tick",r),n<i&&(d.stop(),u.call("end",r))}function p(t){var i,d,u=e.length;void 0===t&&(t=1);for(var c=0;c<t;++c)for(n+=(a-n)*o,s.forEach(function(e){e(n)}),i=0;i<u;++i)null==(d=e[i]).fx?d.x+=d.vx*=l:(d.x=d.fx,d.vx=0),null==d.fy?d.y+=d.vy*=l:(d.y=d.fy,d.vy=0);return r}function m(){for(var t,r=0,n=e.length;r<n;++r){if((t=e[r]).index=r,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var i=10*Math.sqrt(.5+r),o=r*eV;t.x=i*Math.cos(o),t.y=i*Math.sin(o)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function g(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),m(),r={tick:p,restart:function(){return d.restart(h),r},stop:function(){return d.stop(),r},nodes:function(t){return arguments.length?(e=t,m(),s.forEach(g),r):e},alpha:function(e){return arguments.length?(n=+e,r):n},alphaMin:function(e){return arguments.length?(i=+e,r):i},alphaDecay:function(e){return arguments.length?(o=+e,r):+o},alphaTarget:function(e){return arguments.length?(a=+e,r):a},velocityDecay:function(e){return arguments.length?(l=1-e,r):1-l}
105,randomSource:function(e){return arguments.length?(c=e,s.forEach(g),r):c},force:function(e,t){return arguments.length>1?(null==t?s.delete(e):s.set(e,g(t)),r):s.get(e)},find:function(t,r,n){var i,o,a,l,s,d=0,u=e.length;for(null==n?n=1/0:n*=n,d=0;d<u;++d)(a=(i=t-(l=e[d]).x)*i+(o=r-l.y)*o)<n&&(s=l,n=a);return s},on:function(e,t){return arguments.length>1?(u.on(e,t),r):u.on(e)}}})([]).stop().force("link",(function(e){var t,r,n,i,o,a,l=eK,s=function(e){return 1/Math.min(i[e.source.index],i[e.target.index])},d=e$(30),u=1;function c(n){for(var i=0,l=e.length;i<u;++i)for(var s,d,c,h,p,m,g,f=0;f<l;++f)d=(s=e[f]).source,m=((m=Math.sqrt((h=(c=s.target).x+c.vx-d.x-d.vx||eJ(a))*h+(p=c.y+c.vy-d.y-d.vy||eJ(a))*p))-r[f])/m*n*t[f],h*=m,p*=m,c.vx-=h*(g=o[f]),c.vy-=p*g,d.vx+=h*(g=1-g),d.vy+=p*g}function h(){if(n){var a,s,d=n.length,u=e.length,c=new Map(n.map((e,t)=>[l(e,t,n),e]));for(a=0,i=Array(d);a<u;++a)(s=e[a]).index=a,"object"!=typeof s.source&&(s.source=eY(c,s.source)),"object"!=typeof s.target&&(s.target=eY(c,s.target)),i[s.source.index]=(i[s.source.index]||0)+1,i[s.target.index]=(i[s.target.index]||0)+1;for(a=0,o=Array(u);a<u;++a)s=e[a],o[a]=i[s.source.index]/(i[s.source.index]+i[s.target.index]);t=Array(u),p(),r=Array(u),m()}}function p(){if(n)for(var r=0,i=e.length;r<i;++r)t[r]=+s(e[r],r,e)}function m(){if(n)for(var t=0,i=e.length;t<i;++t)r[t]=+d(e[t],t,e)}return null==e&&(e=[]),c.initialize=function(e,t){n=e,a=t,h()},c.links=function(t){return arguments.length?(e=t,h(),c):e},c.id=function(e){return arguments.length?(l=e,c):l},c.iterations=function(e){return arguments.length?(u=+e,c):u},c.strength=function(e){return arguments.length?(s="function"==typeof e?e:e$(+e),p(),c):s},c.distance=function(e){return arguments.length?(d="function"==typeof e?e:e$(+e),m(),c):d},c})([]).id(e=>e.id).distance(e=>{let t=e.source;return 0===t.level?1600:1===t.level?1200:800}).strength(.2)).force("charge",(function(){var e,t,r,n,i,o=e$(-30),a=1,l=1/0,s=.81;function d(r){var i,o=e.length,a=e0(e,ez,eG).visitAfter(c);for(n=r,i=0;i<o;++i)t=e[i],a.visit(h)}function u(){if(e){var t,r,n=e.length;for(t=0,i=Array(n);t<n;++t)i[(r=e[t]).index]=+o(r,t,e)}}function c(e){var t,r,n,o,a,l=0,s=0;if(e.length){for(n=o=a=0;a<4;++a)(t=e[a])&&(r=Math.abs(t.value))&&(l+=t.value,s+=r,n+=r*t.x,o+=r*t.y);e.x=n/s,e.y=o/s}else{(t=e).x=t.data.x,t.y=t.data.y;do l+=i[t.data.index];while(t=t.next)}e.value=l}function h(e,o,d,u){if(!e.value)return!0;var c=e.x-t.x,h=e.y-t.y,p=u-o,m=c*c+h*h;if(p*p/s<m)return m<l&&(0===c&&(m+=(c=eJ(r))*c),0===h&&(m+=(h=eJ(r))*h),m<a&&(m=Math.sqrt(a*m)),t.vx+=c*e.value*n/m,t.vy+=h*e.value*n/m),!0;if(!e.length&&!(m>=l)){(e.data!==t||e.next)&&(0===c&&(m+=(c=eJ(r))*c),0===h&&(m+=(h=eJ(r))*h),m<a&&(m=Math.sqrt(a*m)));do e.data!==t&&(p=i[e.data.index]*n/m,t.vx+=c*p,t.vy+=h*p);while(e=e.next)}}return d.initialize=function(t,n){e=t,r=n,u()},d.strength=function(e){return arguments.length?(o="function"==typeof e?e:e$(+e),u(),d):o},d.distanceMin=function(e){return arguments.length?(a=e*e,d):Math.sqrt(a)},d.distanceMax=function(e){return arguments.length?(l=e*e,d):Math.sqrt(l)},d.theta=function(e){return arguments.length?(s=e*e,d):Math.sqrt(s)},d})().strength(e=>0===e.level?-14e3:1===e.level?-1e4:-4e3).distanceMax(8e3)).force("collide",e3().radius(this.collisionRadius).strength(1).iterations(5)).force("center",(function(e,t){var r,n=1;function i(){var i,o,a=r.length,l=0,s=0;for(i=0;i<a;++i)l+=(o=r[i]).x,s+=o.y;for(l=(l/a-e)*n,s=(s/a-t)*n,i=0;i<a;++i)o=r[i],o.x-=l,o.y-=s}return null==e&&(e=0),null==t&&(t=0),i.initialize=function(e){r=e},i.x=function(t){return arguments.length?(e=+t,i):e},i.y=function(e){return arguments.length?(t=+e,i):t},i.strength=function(e){return arguments.length?(n=+e,i):n},i})(0,0).strength(.02))}addNode(e,t,r,n=0){this.simNodes.push({id:e,x:t,y:r,level:n}),this.simulation.nodes(this.simNodes),this.simulation.alpha(1);for(let e=0;e<150;e++)this.simulation.tick();return this.getPositions()}addLink(e,t){this.simLinks.push({source:e,target:t});let r=this.simulation.force("link");r&&r.links(this.simLinks),this.simulation.alpha(.6);for(let e=0;e<100;e++)this.simulation.tick();return this.getPositions()}getPositions(){let e=new Map;
105for(let t of this.simNodes)e.set(t.id,{x:Math.round(t.x??0),y:Math.round(t.y??0)});return e}gentleCollisionPass(e){for(let t of this.simNodes){let r=e.get(t.id);r&&(t.x=r.x,t.y=r.y,t.vx=0,t.vy=0)}this.simulation.force("link",null).force("charge",null).force("center",null).force("collide",e3().radius(this.collisionRadius).strength(1).iterations(10)),this.simulation.alpha(.3);for(let e=0;e<50;e++)this.simulation.tick();return this.getPositions()}destroy(){this.simulation.stop(),this.simNodes=[],this.simLinks=[]}}var e9=e.i(733480),e7=e.i(699791);e.s(["useWhiteboardRealtimeEvents",0,function({setNodes:e,getNodes:n,setEdges:i,refetchWhiteboard:o,saveReactFlowStateToCache:a,takeWhiteboardSnapshot:l,revertLastWhiteboardSnapshot:s,viewOnly:d,project:u,whiteboardId:c,setWhiteboardGenerationStatusMessage:h,setAiEditWhiteboardStatusMessage:p,setAgenticGenerationThinkingText:m,setIsAIChatGenerationInProgress:g,startStreaming:f,stopStreaming:b,fitViewToAllContent:x,conditionalFitViewToAllContent:y,onHandleSpaceOutElementsToRight:E,deleteWhiteboardElements:C,updateElementPosition:T,updateMultipleElementPositions:S,updateWhiteboardEdgeConnectionMutation:v,handleElementCreatedRealtime:k,handleElementUpdatedRealtime:F,handleWhiteboardGenerationStatus:D,streamingStartedKeysRef:M,toast:I}){let U=(0,eA.useWhiteboardSelectionStore)(e=>e.setAgenticQuestionText),L=(0,eA.useWhiteboardSelectionStore)(e=>e.setAgenticQuestionId);return{handleRealtimeEvent:(0,t.useCallback)(async(t,x)=>{switch(t){case"element_created":console.debug("ð Element created via Socket.IO:",x),k(x);break;case"element_updated":console.debug("ð Element updated via Socket.IO:",x),F(x);break;case"whiteboard_history_batch_undone":{console.debug("â©ï¸ History batch undone/redone via Socket.IO:",x);let e=w.useWhiteboardViewStore.getState(),t=Number(e.whiteboardId);Array.isArray(x?.whiteboardIds)&&t>0&&x.whiteboardIds.some(e=>Number(e)===t)&&x?.userId!==e.currentUserId&&Promise.resolve(o()).then(()=>a()).catch(e=>{console.error("â Failed to refresh whiteboard after remote undo/redo:",e)});break}case"whiteboard_staged_elements_ready":console.debug("ð¬ Staged elements ready via Socket.IO:",x),eL.useWhiteboardStagingStore.getState().handlers?.onReady(x.batchId);break;case"whiteboard_staged_batch_resolved":console.debug("â
Staged batch resolved via Socket.IO:",x),eL.useWhiteboardStagingStore.getState().handlers?.onResolved(x.batchId,x.status);break;case"whiteboard_generation_progress":console.debug("ð¤ Whiteboard generation progress:",x),h(x.progressMessage);break;case"whiteboard_edit_status":switch(console.debug("ð¤ Whiteboard AI edit status update:",x),x.status){case"started":console.debug("ð¬ AI edit started with prompt:",x.prompt),p("Storyflow AI is thinking ...");break;case"progress":console.debug("ð AI edit progress:",x.progressMessage,"%, Elements:",x.elementCount),x.progressMessage?p(x.progressMessage):p("Storyflow AI is thinking ...");break;case"completed":console.debug("â
AI edit completed! Total elements:",x.elementCount),g(!1),p(null);break;case"error":console.error("â AI edit error:",x.errorMessage),g(!1),p(null);break;case"element_creation_started":console.debug("ð¨ Starting to create new element:",x.prompt),p("Creating new element.");break;case"element_creation_completed":p("Finished creating new element."),console.debug("⨠Element creation completed:",x.prompt);break;case"element_update_started":console.debug("ð Element update completed:",x.prompt),p("Finished updating an element.")}break;case"ai_edit_whiteboard_work_flow_status":switch(console.debug("ð AI Edit Whiteboard Workflow status update:",x),x.status){case"started":console.debug("ð¬ AI Edit Whiteboard Workflow started"),f(),g(!0),m(x.progressMessage||"Starting deep thinking...");break;case"thinking":if(x.thinkingToken){m(e=>(e||"")+x.thinkingToken);let e=x.thinkingToken.length>80?"..."+x.thinkingToken.slice(-80):x.thinkingToken;p(`Deep thinking: ${e}`)}break;case"web_searching":p(x.progressMessage||"Searching the web..."),m(e=>(e||"")+(x.progressMessage||"Searching the web..."));break;case"tool_using":p(x.progressMessage||`Using tool: ${x.toolName||"..."}`),m(e=>(e||"")+(x.progressMessage||`Using tool: ${x.toolName||"..."}`));break;case"progress":console.debug("ð AI Edit Whiteboard Workflow progress:",x.progressMessage),x.progressMessage?(p(x.progressMessage),m(e=>(e||"")+x.progressMessage)):p("Starting deep thinking...");break;case"thinking_progress":if(x.progressMessage){let e=x.progressMessage.length>120?"..."+x.progressMessage.slice(-120):x.progressMessage;p(`Thinking: ${e}`),m(e=>(e||"")+x.progressMessage)}break;case"take_snapshot":console.debug("ð AI Edit Whiteboard Workflow taking snapshot"),l("AI Edit Whiteboard Workflow");break;case"revert_snapshot":console.debug("ð AI Edit Whiteboard Workflow reverting snapshot"),s();break;case"completed":console.debug("â
AI Edit Whiteboard Workflow completed!"),b(),g(!1),p(null),m(null),o().then(()=>{a()}).catch(e=>{console.error("â Failed to refresh whiteboard after AI Workflow completion:",e)});break;case"error":console.error("â AI Edit Whiteboard Workflow error:",x.errorMessage),b(),g(!1),p(null),m(null);break;case"cancelled":console.debug("ð AI Edit Whiteboard Workflow cancelled"),b(),g(!1),p(null),m(null);break;case"element_created":console.debug("ð AI Workflow created new element"),p("New element is being created..."),o().then(()=>{a(),y(),E()}).catch(e=>{console.error("â Failed to refresh whiteboard after AI Workflow element creation:",e)});break;case"data_change_token":let I=x.elementUid,B=x.dataKey,W=x.dataChangeToken;if(!I||!B||!W){console.error("â AI workflow data_change_token: elementUid, dataKey, dataChangeToken are required");break}let P=`${I}:${B}`,j=!M.current.has(P);
105j&&(p("Updating element content..."),M.current.add(P)),await e(e=>e.map(e=>{if(e.id===I){let t=j?"":e.data.element[B]||"";return{...e,data:{...e.data,element:{...e.data.element,[B]:t+W}}}}if(e.data?.element?.elements){let t=e.data.element.elements.map(e=>{if(e.uid===I){let t=j?"":e.content?.[B]||"";return{...e,content:{...e.content,[B]:t+W}}}return e.content?.elements?{...e,content:{...e.content,elements:e.content.elements.map(e=>{if(e.uid===I){let t=j?"":e.content?.[B]||"";return{...e,content:{...e.content,[B]:t+W}}}return e})}}:e});return{...e,data:{...e.data,element:{...e.data.element,elements:t}}}}return e}));break;case"data_change_ended":console.debug("ð¾ AI Workflow data change completed for element:",x.elementUid),x.elementUid&&x.dataKey&&M.current.delete(`${x.elementUid}:${x.dataKey}`),p("Element content updated..."),x.forceRefresh?o().then(()=>{a(),y()}).catch(e=>{console.error("â Failed to refresh whiteboard after AI Workflow data change ended:",e)}):(a(),y())}break;case"ai_generate_whiteboard_work_flow_status":switch(x.status){case"started":f(),g(!0),U(null),L(null),p(x.progressMessage||"Starting deep thinking..."),m(x.progressMessage||"Starting deep thinking...");break;case"thinking":if(x.thinkingToken){m(e=>(e||"")+x.thinkingToken);let e=x.thinkingToken.length>80?"..."+x.thinkingToken.slice(-80):x.thinkingToken;p(`Deep thinking: ${e}`)}break;case"web_searching":p(x.progressMessage||"Searching the web..."),m(e=>(e||"")+x.progressMessage||"Searching the web...");break;case"tool_using":p(x.progressMessage||`Using tool: ${x.toolName||"..."}`),m(e=>(e||"")+x.progressMessage||`Using tool: ${x.toolName||"..."}`);break;case"question_asked":U(x.questionText||""),L(x.questionId||""),p("Waiting for your answer..."),m(e=>(e||"")+"Waiting for your answer...");break;case"progress":x.progressMessage&&(p(x.progressMessage),m(e=>(e||"")+x.progressMessage));break;case"take_snapshot":l("AI Generate Whiteboard Workflow");break;case"revert_snapshot":s();break;case"element_created":p("New element is being created..."),o().then(()=>{a(),y(),E()}).catch(e=>{console.error("Failed to refresh whiteboard after agentic element creation:",e)});break;case"data_change_token":{let t=x.elementUid,r=x.dataKey,n=x.dataChangeToken;if(!t||!r||!n)break;let i=`${t}:${r}`,o=!M.current.has(i);o&&(p("Updating element content..."),M.current.add(i)),await e(e=>e.map(e=>{if(e.id===t){let t=o?"":e.data.element[r]||"";return{...e,data:{...e.data,element:{...e.data.element,[r]:t+n}}}}if(e.data?.element?.elements){let i=e.data.element.elements.map(e=>{if(e.uid===t){let t=o?"":e.content?.[r]||"";return{...e,content:{...e.content,[r]:t+n}}}return e.content?.elements?{...e,content:{...e.content,elements:e.content.elements.map(e=>{if(e.uid===t){let t=o?"":e.content?.[r]||"";return{...e,content:{...e.content,[r]:t+n}}}return e})}}:e});return{...e,data:{...e.data,element:{...e.data.element,elements:i}}}}return e}));break}case"data_change_ended":x.elementUid&&x.dataKey&&M.current.delete(`${x.elementUid}:${x.dataKey}`),p("Element content updated..."),x.forceRefresh?o().then(()=>{a(),y()}).catch(()=>{}):(a(),y());break;case"completed":b(),g(!1),p(null),m(null),U(null),L(null),o().then(()=>{a()}).catch(()=>{});break;case"error":g(!1),p(null),m(null),U(null),L(null)}break;case"ai_note_generation_status":console.debug("ð¼ï¸ AI note generation status update:",x);let R=x.elementUid,N=(0,eN.formatAiMessage)(x.token);if(!R){console.error("â AI note generation status update: elementUid is required");break}if(x.isDone){console.debug("ð¨ AI note generation completed for element:",x.elementUid),await o(),a();break}await e(e=>e.map(e=>{if(e.id===R)return{...e,data:{...e.data,element:{...e.data.element,content:e.data.element.content+N}}};if(e.data?.element?.elements){let t=e.data.element.elements.map(e=>e.uid===R?{...e,content:{...e.content,content:e.content.content+N}}:e.content?.elements?{...e,content:{...e.content,elements:e.content.elements.map(e=>e.uid===R?{...e,content:{...e.content,content:e.content.content+N}}:e)}}:e);return{...e,data:{...e.data,element:{...e.data.element,elements:t}}}}return e}));break;case"ai_image_generation_status":switch(console.debug("ð¼ï¸ AI image generation status update:",x),x.status){case"started":console.debug("ð¨ AI image generation started for element:",x.elementUid),eA.useWhiteboardSelectionStore.getState().setAiImageGenerationProgress(x.elementUid,"Startingâ¦");break;case"progress":x.elementUid&&eA.useWhiteboardSelectionStore.getState().setAiImageGenerationProgress(x.elementUid,x.progressMessage||"Workingâ¦");break;case"completed":eA.useWhiteboardSelectionStore.getState().setAiImageGenerationProgress(x.elementUid,null),console.debug("â
AI image generation completed! Image URL:",x.imageUrl),o();break;case"error":eA.useWhiteboardSelectionStore.getState().setAiImageGenerationProgress(x.elementUid,null),console.error("â AI image generation error:",x.errorMessage),o()}break;case"element_moved":if(console.debug("ð¦ Element moved via Socket.IO:",x),!d){let{elementUid:t,position:r}=x;e(e=>e.map(e=>e.id===t?{...e,position:{x:r.x,y:r.y}}:e))}break;case"elements_moved":if(console.debug("ð¦ Multiple elements moved via Socket.IO:",x),!d){let{elements:t}=x;e(e=>e.map(e=>{let r=t.find(t=>t.elementUid===e.id);return r?{...e,position:r.position}:e}))}break;case"whiteboard_generation_status":console.debug("ð¨ Whiteboard generation status:",x),D(x);break;case"ai_moodboard_generation_status":switch(console.debug("ð¼ï¸ Moodboard generation status:",x),x.status){case"started":case"initializing":console.debug("ð AI moodboard generation started"),f(),x.progressMessage&&p(x.progressMessage),window._moodboardTracking={columnHeights:[0,0,0],columnWidth:340,imageSpacing:20,numColumns:3};break;case"progress":console.debug("ð AI moodboard generation progress:",x.progressMessage),x.progressMessage&&p(x.progressMessage);break;case"image_created":if(console.debug("ð¼ï¸ Moodboard image created:",x.streamedImageData),x.streamedImageData){let t=x.streamedImageData,n=window._moodboardTracking;if(!n){console.warn("â ï¸ Moodboard tracking not initialized");break}let i=t.grid_col,o=t.x,a=n.columnHeights[i]||0;console.debug(`ð Masonry layout - Col ${i} at height ${a}px`),console.debug(`ð Image URL: ${t.image_url}`);let l={id:t.element_uid,type:r.ToolElementType.ToolImage,position:{x:o,y:a},data:{id:t.element_uid,element:{__typename:r.ToolElementType.ToolImage,whiteboardElementUid:t.element_uid,imageUrl:t.image_url},attributes:{width:t.width,height:0},type:r.ToolElementType.ToolImage,isUploading:!1,_moodboardMeta:{grid_col:i}}},s=new Image;s.onload=()=>{let r=s.height/s.width*t.width;
105console.debug(`ð Image loaded - Natural: ${s.width}x${s.height}, Rendered: ${r}px`),n.columnHeights[i]=a+r+n.imageSpacing,console.debug(`ð Updated column ${i} height: ${a}px â ${n.columnHeights[i]}px`),e(e=>e.map(e=>e.id===t.element_uid?{...e,data:{...e.data,attributes:{...e.data.attributes,height:r}}}:e))},s.onerror=()=>{console.error(`â Failed to load image: ${t.image_url}`),console.debug(`ðï¸ Deleting broken image element: ${t.element_uid}`),e(e=>e.filter(e=>e.id!==t.element_uid)),C({whiteboardElementUids:[t.element_uid],skipTrashSessionCount:!0}).catch(e=>{console.error("â Failed to delete broken image from database:",e)}),console.debug(`â
Removed broken image from column ${i}`)},s.src=t.image_url,e(e=>(console.debug(`ð Adding image to column ${i} at y=${a}px`),[...e,l])),a!==t.y&&(console.debug(`ð¾ Updating position in database: backend y=${t.y} â masonry y=${a}`),T(t.element_uid,o,a).catch(e=>{console.error("â Failed to update moodboard image position:",e)})),console.debug(`â
Added moodboard image at (${o}, ${a}) - Column ${i}`)}else console.warn("â ï¸ No streamedImageData found in event");y();break;case"completed":console.debug("â
AI moodboard generation completed"),b(),p(null),g(!1),o().then(()=>{console.debug("â
Whiteboard refreshed after moodboard completion")}).catch(e=>{console.error("â Failed to refresh whiteboard after moodboard generation:",e)});break;case"cancelled":console.debug("ð AI moodboard generation cancelled"),b(),p(null),g(!1);break;case"error":console.error("â AI moodboard generation error:",x.errorMessage),b(),p(null),g(!1)}break;case"ai_planner_generation_status":switch(console.debug("ð
Planner generation status:",x),x.status){case"started":case"initializing":console.debug("ð AI planner generation started"),f(),x.progressMessage&&p(x.progressMessage),window._plannerTracking={kanbanUid:null,wallUidMap:{}};break;case"progress":console.debug("ð AI planner generation progress:",x.progressMessage),x.progressMessage&&p(x.progressMessage);break;case"kanban_created":if(console.debug("ð Planner Kanban Group created:",x.streamedKanbanData),x.streamedKanbanData){let t=x.streamedKanbanData,n=window._plannerTracking;if(!n){console.warn("â ï¸ Planner tracking not initialized");break}n.kanbanUid=t.element_uid;let i=2*_.DEFAULT_KANBAN_GROUP_PADDING,o=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,a={id:t.element_uid,type:r.ToolElementType.ToolGroup,position:{x:t.x,y:t.y},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolGroup,element:{uid:t.element_uid,layoutType:"Horizontal",whiteboardElementUid:t.element_uid,__typename:"ToolGroup"},attributes:{width:i,height:o}},style:{width:i,height:o,pointerEvents:"none"},selectable:!1,zIndex:-999};e(e=>(console.debug(`ð Adding Group: ${t.title}`),[...e,a]))}y();break;case"wall_created":if(console.debug("ð Planner Wall created:",x.streamedWallData),x.streamedWallData){let t=x.streamedWallData,n=window._plannerTracking;if(!n||!n.kanbanUid){console.warn("â ï¸ Planner tracking not initialized or Group not created");break}n.wallUidMap[t.order_index]=t.element_uid;let i=_.DEFAULT_KANBAN_GROUP_PADDING+t.order_index*(_.DEFAULT_WALL_WIDTH+_.DEFAULT_KANBAN_GROUP_GAP),o=t.order_index+1,a=2*_.DEFAULT_KANBAN_GROUP_PADDING+o*_.DEFAULT_WALL_WIDTH+Math.max(0,o-1)*_.DEFAULT_KANBAN_GROUP_GAP,l=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,s={id:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,position:{x:i,y:_.DEFAULT_KANBAN_GROUP_PADDING},parentId:n.kanbanUid,data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,element:{title:t.title,elementUid:"",whiteboardElementUid:t.element_uid,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT}},width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT,measured:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},style:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},zIndex:-2};e(e=>(console.debug(`ð Adding Wall: ${t.title} (index ${t.order_index})`),[...e.map(e=>e.id===n.kanbanUid?{...e,data:{...e.data,attributes:{width:a,height:l}},style:{...e.style,width:a,height:l}}:e),s]))}y();break;case"ticket_created":if(console.debug("ð« Planner Ticket created:",x.streamedTicketData),x.streamedTicketData){let t=x.streamedTicketData,n=window._plannerTracking;if(!n){console.warn("â ï¸ Planner tracking not initialized");break}let i=n.wallUidMap[t.wall_order_index];if(!i){console.warn(`â ï¸ Wall not found for order index ${t.wall_order_index}`);break}let o={__typename:r.ToolElementType.ToolTicket,whiteboardElementUid:t.element_uid,title:t.title,de
105scription:t.description||"",date:t.date||null,label:t.label||"",labelColorHex:t.labelColorHex||"",assignedToUserId:null},a={uid:t.element_uid,elementType:r.ToolElementType.ToolTicket,elementLocation:JSON.stringify({x:0,y:0}),elementAttributes:JSON.stringify({width:0,height:0}),content:o,parentUid:i,parentOrderIndex:t.ticket_order_index};e(e=>(console.debug(`ð« Adding Ticket: ${t.title} to Wall ${t.wall_order_index}`),e.map(e=>e.id===i?{...e,data:{...e.data,element:{...e.data.element,elements:[...e.data.element.elements||[],a]}}}:e))),console.debug(`â
Added Ticket '${t.title}' to Wall ${t.wall_order_index}`)}y();break;case"completed":console.debug("â
AI planner generation completed"),b(),p(null),g(!1),o().then(()=>{console.debug("â
Whiteboard refreshed after planner completion")}).catch(e=>{console.error("â Failed to refresh whiteboard after planner generation:",e)});break;case"cancelled":console.debug("ð AI planner generation cancelled"),b(),p(null),g(!1);break;case"error":console.error("â AI planner generation error:",x.errorMessage),b(),p(null),g(!1)}break;case"ai_tasks_planner_generation_status":switch(console.debug("ð Tasks planner generation status:",x),x.status){case"started":console.debug("ð AI tasks planner generation started"),f(),p("Generating tasks planner..."),g(!0),window._tasksPlannerTracking={kanbanUid:null,wallUidMap:{}};break;case"initializing":console.debug("âï¸ Initializing tasks planner agent..."),p(x.progressMessage||"Initializing tasks planner...");break;case"progress":x.progressMessage&&p(x.progressMessage);break;case"kanban_created":if(console.debug("ð Tasks Planner Kanban Group created:",x.streamedKanbanData),x.streamedKanbanData){let t=x.streamedKanbanData,n=window._tasksPlannerTracking;n&&(n.kanbanUid=t.element_uid);let i=2*_.DEFAULT_KANBAN_GROUP_PADDING,o=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,a={id:t.element_uid,type:r.ToolElementType.ToolGroup,position:{x:t.x,y:t.y},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolGroup,element:{uid:t.element_uid,layoutType:"Horizontal",whiteboardElementUid:t.element_uid,__typename:"ToolGroup"},attributes:{width:i,height:o}},style:{width:i,height:o,pointerEvents:"none"},selectable:!1,zIndex:-999};e(e=>(console.debug(`ð Adding Group: ${t.title}`),[...e,a]))}y();break;case"wall_created":if(console.debug("ð Tasks Planner Wall created:",x.streamedWallData),x.streamedWallData){let t=x.streamedWallData,n=window._tasksPlannerTracking;if(!n||!n.kanbanUid){console.warn("â ï¸ Tasks planner tracking not initialized or Group not created");break}n.wallUidMap[t.order_index]=t.element_uid;let i=_.DEFAULT_KANBAN_GROUP_PADDING+t.order_index*(_.DEFAULT_WALL_WIDTH+_.DEFAULT_KANBAN_GROUP_GAP),o=t.order_index+1,a=2*_.DEFAULT_KANBAN_GROUP_PADDING+o*_.DEFAULT_WALL_WIDTH+Math.max(0,o-1)*_.DEFAULT_KANBAN_GROUP_GAP,l=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,s={id:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,position:{x:i,y:_.DEFAULT_KANBAN_GROUP_PADDING},parentId:n.kanbanUid,data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,element:{title:t.title,elementUid:"",whiteboardElementUid:t.element_uid,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT}},width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT,measured:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},style:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},zIndex:-2};e(e=>(console.debug(`ð Adding Wall: ${t.title} (index ${t.order_index})`),[...e.map(e=>e.id===n.kanbanUid?{...e,data:{...e.data,attributes:{width:a,height:l}},style:{...e.style,width:a,height:l}}:e),s]))}y();break;case"note_created":if(console.debug("ð Tasks Planner Note created:",x.streamedNoteData),x.streamedNoteData){let t=x.streamedNoteData,n=window._tasksPlannerTracking;if(!n){console.warn("â ï¸ Tasks planner tracking not initialized");break}let i=n.wallUidMap[t.wall_order_index];if(!i){console.warn(`â ï¸ Wall not found for order index ${t.wall_order_index}`);break}let o={__typename:r.ToolElementType.ToolNote,whiteboardElementUid:t.element_uid,content:t.content,elementUid:t.element_uid},a={uid:t.element_uid,elementType:r.ToolElementType.ToolNote,elementLocation:JSON.stringify({x:0,y:0}),elementAttributes:JSON.stringify({width:350,height:110}),content:o,parentUid:i,parentOrderIndex:t.note_order_index};e(e=>(console.debug(`ð Adding Note with tasks to Wall ${t.wall_order_index}`),e.map(e=>e.id===i?{...e,data:{...e.data,element:{...e.data.element,elements:[...e.data.element.elements||[],a]}}}:e))),console.debug(`â
Added Note with tasks to Wall ${t.wall_order_index}`)}y();break;case"completed":console.debug("â
AI tasks planner generation completed"),b(),p(null),g(!1),delete window._tasksPlannerTracking,o().then(()=>{console.debug("â
Whiteboard refreshed after tasks planner completion")}
105).catch(e=>{console.error("â Failed to refresh whiteboard after tasks planner generation:",e)});break;case"cancelled":console.debug("ð AI tasks planner generation cancelled"),b(),p(null),g(!1),delete window._tasksPlannerTracking;break;case"error":console.error("â AI tasks planner generation error:",x.errorMessage),b(),p(null),g(!1),delete window._tasksPlannerTracking,console.error("Failed to generate tasks planner. Please try again.")}break;case"ai_kanban_planner_generation_status":switch(console.debug("ð Kanban planner generation status:",x),x.status){case"started":case"initializing":console.debug("ð AI kanban planner generation started"),f(),x.progressMessage&&p(x.progressMessage),window._kanbanPlannerTracking={kanbanUid:null,wallUidMap:{}};break;case"progress":console.debug("ð AI kanban planner generation progress:",x.progressMessage),x.progressMessage&&p(x.progressMessage);break;case"kanban_created":if(console.debug("ð Kanban Planner Group created:",x.streamedKanbanData),x.streamedKanbanData){let t=x.streamedKanbanData,n=window._kanbanPlannerTracking;if(!n){console.warn("â ï¸ Kanban Planner tracking not initialized");break}n.kanbanUid=t.element_uid;let i=2*_.DEFAULT_KANBAN_GROUP_PADDING,o=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,a={id:t.element_uid,type:r.ToolElementType.ToolGroup,position:{x:t.x,y:t.y},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolGroup,element:{uid:t.element_uid,layoutType:"Horizontal",whiteboardElementUid:t.element_uid,__typename:"ToolGroup"},attributes:{width:i,height:o}},style:{width:i,height:o,pointerEvents:"none"},selectable:!1,zIndex:-999};e(e=>(console.debug(`ð Adding Group: ${t.title}`),[...e,a]))}y();break;case"wall_created":if(console.debug("ð Kanban Planner Wall created:",x.streamedWallData),x.streamedWallData){let t=x.streamedWallData,n=window._kanbanPlannerTracking;if(!n||!n.kanbanUid){console.warn("â ï¸ Kanban Planner tracking not initialized or Group not created");break}n.wallUidMap[t.order_index]=t.element_uid;let i=_.DEFAULT_KANBAN_GROUP_PADDING+t.order_index*(_.DEFAULT_WALL_WIDTH+_.DEFAULT_KANBAN_GROUP_GAP),o=t.order_index+1,a=2*_.DEFAULT_KANBAN_GROUP_PADDING+o*_.DEFAULT_WALL_WIDTH+Math.max(0,o-1)*_.DEFAULT_KANBAN_GROUP_GAP,l=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,s={id:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,position:{x:i,y:_.DEFAULT_KANBAN_GROUP_PADDING},parentId:n.kanbanUid,data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,element:{title:t.title,elementUid:"",whiteboardElementUid:t.element_uid,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT,...t.top_bar_highlight_color?{topBarHighlightColor:t.top_bar_highlight_color}:{}}},width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT,measured:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},style:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},zIndex:-2};e(e=>(console.debug(`ð Adding Wall: ${t.title} (index ${t.order_index})`),[...e.map(e=>e.id===n.kanbanUid?{...e,data:{...e.data,attributes:{width:a,height:l}},style:{...e.style,width:a,height:l}}:e),s]))}y();break;case"element_created":if(console.debug("Kanban Planner Element created:",x.streamedElementData),x.streamedElementData){let t,n,i=x.streamedElementData,o=window._kanbanPlannerTracking;if(!o){console.warn("Kanban Planner tracking not initialized");break}let a=o.wallUidMap[i.wall_order_index];if(!a){console.warn(`Wall not found for order index ${i.wall_order_index}`);break}i.element_type===r.ToolElementType.ToolNote?(n=r.ToolElementType.ToolNote,t={__typename:r.ToolElementType.ToolNote,whiteboardElementUid:i.element_uid,content:i.content||"",elementUid:i.element_inner_uid}):i.element_type===r.ToolElementType.ToolToDo?(n=r.ToolElementType.ToolToDo,t={__typename:r.ToolElementType.ToolToDo,whiteboardElementUid:i.element_uid,content:i.content||"",elementUid:i.element_inner_uid}):(n=r.ToolElementType.ToolTicket,t={__typename:r.ToolElementType.ToolTicket,whiteboardElementUid:i.element_uid,elementUid:i.element_inner_uid,title:i.title||"",description:i.description||"",date:i.date||null,label:i.label||"",labelColorHex:i.labelColorHex||"",assignedToUserId:null});let l=i.element_type===r.ToolElementType.ToolNote||i.element_type===r.ToolElementType.ToolToDo,s={width:l?_.DEFAULT_TOOL_NOTE_WIDTH:_.DEFAULT_TOOL_TICKET_WIDTH,height:l?_.DEFAULT_TOOL_NOTE_HEIGHT:_.DEFAULT_TOOL_TICKET_HEIGHT};l&&i.background_color&&(s.backgroundColor=i.background_color);let d={uid:i.element_uid,elementType:n,elementLocation:JSON.stringify({x:0,y:0}),elementAttributes:JSON.stringify(s),content:t,parentUid:a,parentOrderIndex:i.element_order_index};e(e=>e.map(e=>e.id===a?{...e,data:{...e.data,element:{...e.data.element,elements:[...e.data.element.elements||[],d]}}}:e))}y();break;case"heading_created":if(console.debug("ð·ï¸ Kanban Planner Heading created:",x.streamedHeadingData),x.streamedHeadingData){let t=x.streamedHeadingData,n=t.height??_.DEFAULT_TOOL_HEADING_HEIGHT,i={id:t.element_uid,type:r.ToolElementType.ToolHeading,position:{x:t.x,y:t.y},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolHeading,element:{__typename:r.ToolElementType.ToolHeading,whiteboardElementUid:t.element_uid,elementUid:t.element_inner_uid,content:t.content},attributes:{width:t.width,height:n}},style:{width:t.width,height:n}};e(e=>[...e,i])}y();break;case"completed":console.debug("â
AI kanban planner generation completed"),b(),p(null),g(!1),delete window._kanbanPlannerTracking,o().then(()=>{console.debug("â
Whiteboard refreshed after kanban planner completion")}
105).catch(e=>{console.error("â Failed to refresh whiteboard after kanban planner generation:",e)});break;case"cancelled":console.debug("ð AI kanban planner generation cancelled"),b(),p(null),g(!1),delete window._kanbanPlannerTracking;break;case"error":console.error("â AI kanban planner generation error:",x.errorMessage),b(),p(null),g(!1),delete window._kanbanPlannerTracking,console.error("Failed to generate kanban planner. Please try again.")}break;case"ai_storyboard_generation_status":switch(console.debug("ð¬ Storyboard generation status:",x),x.status){case"started":case"initializing":console.debug("ð AI storyboard generation started"),f(),x.progressMessage&&p(x.progressMessage),window._storyboardTracking={wallUidMap:{}};break;case"progress":console.debug("ð¬ AI storyboard generation progress:",x.progressMessage),x.progressMessage&&p(x.progressMessage);break;case"wall_created":if(console.debug("ðï¸ Storyboard Wall created:",x.streamedWallData),x.streamedWallData){let t=x.streamedWallData,n=window._storyboardTracking;if(!n){console.warn("â ï¸ Storyboard tracking not initialized");break}n.wallUidMap[t.order_index]=t.element_uid;let i=t.x,o=t.y,a=t.width??_.DEFAULT_WALL_WIDTH,l=t.height??_.DEFAULT_WALL_HEIGHT,s={id:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,position:{x:i,y:o},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,element:{title:t.title,elementUid:"",whiteboardElementUid:t.element_uid,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:a,height:l,...t.top_bar_highlight_color?{topBarHighlightColor:t.top_bar_highlight_color}:{}}},width:a,height:l,measured:{width:a,height:l},style:{width:a,height:l},zIndex:-2};e(e=>(console.debug(`ðï¸ Adding Storyboard Wall: ${t.title} (index ${t.order_index}) at (${i}, ${o})`),[...e,s]))}y();break;case"images_attached":{let t=x.streamedImageData?.images;if(console.debug(`ð¼ï¸ Storyboard Images attached (batch of ${t?.length??0})`,t),t&&t.length>0){let n={};for(let e of t)e?.wall_uid&&(n[e.wall_uid]={uid:e.element_uid,elementType:r.ToolElementType.ToolImage,elementLocation:JSON.stringify({x:0,y:0}),elementAttributes:JSON.stringify({width:e.width,height:e.height}),content:{__typename:r.ToolElementType.ToolImage,whiteboardElementUid:e.element_uid,elementUid:e.element_inner_uid,imageUrl:e.image_url},parentUid:e.wall_uid,parentOrderIndex:e.parent_order_index??-1});e(e=>e.map(e=>{let t=n[e.id];if(!t)return e;let r=e.data?.element?.elements||[];return r.some(e=>e?.uid===t.uid)?e:{...e,data:{...e.data,element:{...e.data.element,elements:[...r,t]}}}}))}y();break}case"element_created":if(console.debug("ð¬ Storyboard Element created:",x.streamedElementData),x.streamedElementData){let t,n,i=x.streamedElementData,o=window._storyboardTracking;if(!o){console.warn("Storyboard tracking not initialized");break}let a=o.wallUidMap[i.wall_order_index];if(!a){console.warn(`Wall not found for order index ${i.wall_order_index}`);break}i.element_type===r.ToolElementType.ToolNote?(n=r.ToolElementType.ToolNote,t={__typename:r.ToolElementType.ToolNote,whiteboardElementUid:i.element_uid,content:i.content||"",elementUid:i.element_inner_uid}):i.element_type===r.ToolElementType.ToolToDo?(n=r.ToolElementType.ToolToDo,t={__typename:r.ToolElementType.ToolToDo,whiteboardElementUid:i.element_uid,content:i.content||"",elementUid:i.element_inner_uid}):(n=r.ToolElementType.ToolTicket,t={__typename:r.ToolElementType.ToolTicket,whiteboardElementUid:i.element_uid,elementUid:i.element_inner_uid,title:i.title||"",description:i.description||"",date:i.date||null,label:i.label||"",labelColorHex:i.labelColorHex||"",assignedToUserId:null});let l=i.element_type===r.ToolElementType.ToolNote||i.element_type===r.ToolElementType.ToolToDo,s={width:l?_.DEFAULT_TOOL_NOTE_WIDTH:_.DEFAULT_TOOL_TICKET_WIDTH,height:l?_.DEFAULT_TOOL_NOTE_HEIGHT:_.DEFAULT_TOOL_TICKET_HEIGHT};l&&i.background_color&&(s.backgroundColor=i.background_color);let d={uid:i.element_uid,elementType:n,elementLocation:JSON.stringify({x:0,y:0}),elementAttributes:JSON.stringify(s),content:t,parentUid:a,parentOrderIndex:i.element_order_index};e(e=>e.map(e=>e.id===a?{...e,data:{...e.data,element:{...e.data.element,elements:[...e.data.element.elements||[],d]}}}:e))}y();break;case"heading_created":if(console.debug("ð·ï¸ Storyboard Heading created:",x.streamedHeadingData),x.streamedHeadingData){let t=x.streamedHeadingData,n=t.height??_.DEFAULT_TOOL_HEADING_HEIGHT,i={id:t.element_uid,type:r.ToolElementType.ToolHeading,position:{x:t.x,y:t.y},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolHeading,element:{__typename:r.ToolElementType.ToolHeading,whiteboardElementUid:t.element_uid,elementUid:t.element_inner_uid,content:t.content},attributes:{width:t.width,height:n}},style:{width:t.width,height:n}};e(e=>[...e,i])}y();break;case"completed":console.debug("â
AI storyboard generation completed"),b(),p(null),g(!1),delete window._storyboardTracking,o().then(()=>{console.debug("â
Whiteboard refreshed after storyboard completion")}
105).catch(e=>{console.error("â Failed to refresh whiteboard after storyboard generation:",e)});break;case"cancelled":console.debug("ð AI storyboard generation cancelled"),b(),p(null),g(!1),delete window._storyboardTracking;break;case"error":console.error("â AI storyboard generation error:",x.errorMessage),b(),p(null),g(!1),delete window._storyboardTracking,console.error("Failed to generate storyboard. Please try again.")}break;case"ai_table_generation_status":switch(console.debug("ð¦ Table generation status:",x),x.status){case"started":case"initializing":console.debug("ð AI table generation started"),f(),x.progressMessage?p(x.progressMessage):p("Generating table..."),window._tableGenerationTracking={tableUid:null};break;case"progress":x.progressMessage&&p(x.progressMessage);break;case"table_created":{if(console.debug("ð¦ Table created:",x.streamedTableData),!x.streamedTableData)break;let t=x.streamedTableData,n=window._tableGenerationTracking;n&&(n.tableUid=t.element_uid);let i=t.width,o=t.height,a=(0,e9.parseNormalizedTableData)(t.table_data);if(a){let e=Math.max(1,a.rows[0]?.length??1),t=Math.max(1,a.rows.length-1);i=(0,e7.getColumnsTotalWidth)(a.columnWidths,e),o=(0,e7.getTableElementHeight)(t,a)}let l={id:t.element_uid,type:r.ToolElementType.ToolTable,position:{x:t.x,y:t.y},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolTable,element:{__typename:r.ToolElementType.ToolTable,whiteboardElementUid:t.element_uid,elementUid:t.element_inner_uid,tableData:t.table_data},attributes:{width:i,height:o}},width:i,height:o,measured:{width:i,height:o},style:{width:i,height:o}};e(e=>e.some(e=>e.id===t.element_uid)?e:[...e,l]),y();break}case"column_added":case"row_added":{let t,r,n=x.streamedColumnData??x.streamedRowData;if(!n?.element_uid||!n?.table_data)break;let i=n.element_uid,o=n.table_data,a=(0,e9.parseNormalizedTableData)(o);if(a){let e=Math.max(1,a.rows[0]?.length??1),n=Math.max(1,a.rows.length-1);t=(0,e7.getColumnsTotalWidth)(a.columnWidths,e),r=(0,e7.getTableElementHeight)(n,a)}e(e=>e.map(e=>{if(e.id!==i)return e;let n=t&&r?{width:t,height:r,measured:{width:t,height:r},style:{...e.style,width:t,height:r}}:{};return{...e,...n,data:{...e.data,element:{...e.data.element,tableData:o},...t&&r?{attributes:{...e.data.attributes||{},width:t,height:r}}:{}}}})),y();break}case"completed":console.debug("â
AI table generation completed"),b(),p(null),g(!1),delete window._tableGenerationTracking,o().then(()=>{console.debug("â
Whiteboard refreshed after table completion")}).catch(e=>{console.error("â Failed to refresh whiteboard after table generation:",e)});break;case"cancelled":console.debug("ð AI table generation cancelled"),b(),p(null),g(!1),delete window._tableGenerationTracking;break;case"error":console.error("â AI table generation error:",x.errorMessage),b(),p(null),g(!1),delete window._tableGenerationTracking,console.error("Failed to generate table. Please try again.")}break;case"ai_tracker_planner_generation_status":switch(console.debug("ð Tracker planner generation status:",x),x.status){case"started":case"initializing":console.debug("ð AI tracker planner generation started"),f(),x.progressMessage&&p(x.progressMessage),window._trackerPlannerTracking={trackerUid:null,wallUidMap:{}};break;case"progress":console.debug("ð AI tracker planner generation progress:",x.progressMessage),x.progressMessage&&p(x.progressMessage);break;case"tracker_created":if(console.debug("ð Tracker Planner Group created:",x.streamedTrackerData),x.streamedTrackerData){let t=x.streamedTrackerData,n=window._trackerPlannerTracking;if(!n){console.warn("â ï¸ Tracker Planner tracking not initialized");break}n.trackerUid=t.element_uid;let i=2*_.DEFAULT_KANBAN_GROUP_PADDING,o=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,a={id:t.element_uid,type:r.ToolElementType.ToolGroup,position:{x:t.x,y:t.y},data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolGroup,element:{uid:t.element_uid,layoutType:"Horizontal",whiteboardElementUid:t.element_uid,__typename:"ToolGroup"},attributes:{width:i,height:o}},style:{width:i,height:o,pointerEvents:"none"},selectable:!1,zIndex:-999};e(e=>(console.debug(`ð Adding Group: ${t.title}`),[...e,a]))}y();break;case"wall_created":if(console.debug("ð Tracker Planner Wall created:",x.streamedWallData),x.streamedWallData){let t=x.streamedWallData,n=window._trackerPlannerTracking;if(!n||!n.trackerUid){console.warn("â ï¸ Tracker Planner tracking not initialized or Group not created");break}n.wallUidMap[t.order_index]=t.element_uid;let i=_.DEFAULT_KANBAN_GROUP_PADDING+t.order_index*(_.DEFAULT_WALL_WIDTH+_.DEFAULT_KANBAN_GROUP_GAP),o=t.order_index+1,a=2*_.DEFAULT_KANBAN_GROUP_PADDING+o*_.DEFAULT_WALL_WIDTH+Math.max(0,o-1)*_.DEFAULT_KANBAN_GROUP_GAP,l=2*_.DEFAULT_KANBAN_GROUP_PADDING+_.DEFAULT_WALL_HEIGHT,s={id:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,position:{x:i,y:_.DEFAULT_KANBAN_GROUP_PADDING},parentId:n.trackerUid,data:{whiteboardElementUid:t.element_uid,type:r.ToolElementType.ToolWhiteboardWall,element:{title:t.title,elementUid:"",whiteboardElementUid:t.element_uid,elements:[],__typename:"ToolWhiteboardWall"},attributes:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT}},width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT,measured:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},style:{width:_.DEFAULT_WALL_WIDTH,height:_.DEFAULT_WALL_HEIGHT},zIndex:-2};e(e=>(console.debug(`ð Adding Wall: ${t.title} (index ${t.order_index})`),[...e.map(e=>e.id===n.trackerUid?{...e,data:{...e.data,attributes:{width:a,height:l}},style:{...e.style,width:a,height:l}}:e),s]))}y();break;case"ticket_created":if(console.debug("ð« Tracker Planner Ticket created:",x.streamedTicketData),x.streamedTicketData){let t=x.streamedTicketData,n=window._trackerPlannerTracking;if(!n){console.warn("â ï¸ Tracker Planner tracking not initialized");break}let i=n.wallUidMap[t.wall_order_index];if(!i){console.warn(`â ï¸ Wall not found for order index ${t.wall_order_index}`);break}let o={__typename:r.ToolElementType.ToolTicket,whiteboardElementUid:t.element_uid,elementUid:(0,A.v4)(),title:t.title,de
105scription:t.description||"",date:t.date||null,label:t.label||"",labelColorHex:t.labelColorHex||"",assignedToUserId:null},a={uid:t.element_uid,elementType:r.ToolElementType.ToolTicket,elementLocation:JSON.stringify({x:0,y:0}),elementAttributes:JSON.stringify({width:0,height:0}),content:o,parentUid:i,parentOrderIndex:t.ticket_order_index};e(e=>(console.debug(`ð« Adding Ticket: ${t.title} to Wall ${t.wall_order_index}`),e.map(e=>e.id===i?{...e,data:{...e.data,element:{...e.data.element,elements:[...e.data.element.elements||[],a]}}}:e))),console.debug(`â
Added Ticket '${t.title}' to Wall ${t.wall_order_index}`)}y();break;case"completed":console.debug("â
AI tracker planner generation completed"),b(),p(null),g(!1),delete window._trackerPlannerTracking,o().then(()=>{console.debug("â
Whiteboard refreshed after tracker planner completion")}).catch(e=>{console.error("â Failed to refresh whiteboard after tracker planner generation:",e)});break;case"cancelled":console.debug("ð AI tracker planner generation cancelled"),b(),p(null),g(!1),delete window._trackerPlannerTracking;break;case"error":console.error("â AI tracker planner generation error:",x.errorMessage),b(),p(null),g(!1),delete window._trackerPlannerTracking,console.error("Failed to generate tracker planner. Please try again.")}break;case"ai_mindmap_generation_status":switch(console.debug("ð§ Mind map generation status:",x),x.status){case"started":case"initializing":console.debug("ð AI mind map generation started"),f(),x.progressMessage&&p(x.progressMessage),window._mindmapTracking={noteUidMap:{}};break;case"progress":console.debug("ð AI mind map generation progress:",x.progressMessage),x.progressMessage&&p(x.progressMessage);break;case"note_created":if(console.debug("ð Mind map note created:",x.streamedNoteData),x.streamedNoteData){let t=x.streamedNoteData,n=window._mindmapTracking;if(!n){console.warn("â ï¸ Mind map tracking not initialized");break}n.noteUidMap[t.uid]=t.whiteboard_element_uid;let i={id:t.whiteboard_element_uid,type:r.ToolElementType.ToolNote,position:{x:t.x,y:t.y},data:{id:t.whiteboard_element_uid,element:{__typename:r.ToolElementType.ToolNote,whiteboardElementUid:t.whiteboard_element_uid,elementUid:t.element_uid,content:`<p>${t.content}</p>`},attributes:{width:0,height:0},type:r.ToolElementType.ToolNote}};e(e=>(console.debug(`ð Adding Note: ${t.content} at (${t.x}, ${t.y})`),[...e,i])),console.debug(`â
Added Note '${t.content}' at (${t.x}, ${t.y})`)}y();break;case"edge_created":if(console.debug("ð Mind map edge created:",x.streamedEdgeData),x.streamedEdgeData){let e=x.streamedEdgeData,t={};try{e.style_json_string&&(t=JSON.parse(e.style_json_string))}catch(e){console.warn("Failed to parse edge style JSON:",e)}let r={id:e.uid,type:e.edge_type||"default",source:e.source,target:e.target,sourceHandle:e.source_handle,targetHandle:e.target_handle,data:{uid:e.uid,strokeColor:e.stroke_color,strokeWidth:e.stroke_width,isDashed:e.is_dashed,isCurved:e.is_curved,hasStartArrowHead:e.has_start_arrow_head,hasEndArrowHead:e.has_end_arrow_head,label:e.label||void 0},style:{stroke:t.stroke||e.stroke_color||"#94A3B8",strokeWidth:t.strokeWidth||e.stroke_width||3}};i(t=>(console.debug(`ð Adding Edge: ${e.source} -> ${e.target}`),[...t,r])),console.debug(`â
Added Edge from ${e.source} to ${e.target}`)}break;case"completed":console.debug("â
AI mind map generation completed"),b(),p(null),g(!1),o().then(()=>{console.debug("â
Whiteboard refreshed after mind map completion")}).catch(e=>{console.error("â Failed to refresh whiteboard after mind map generation:",e)});break;case"cancelled":console.debug("ð AI mind map generation cancelled"),b(),p(null),g(!1);break;case"error":console.error("â AI mind map generation error:",x.errorMessage),b(),p(null),g(!1),console.error("Failed to generate mind map. Please try again.")}break;case"ai_constellation_generation_status":switch(console.debug("Constellation generation status:",x),x.status){case"started":case"initializing":console.debug("AI constellation generation started"),f(),x.progressMessage&&p(x.progressMessage);{window._constellationSim&&window._constellationSim.destroy();let e=new e6;window._constellationSim=e,window._constellationTracking={noteUidMap:{},nodeIds:new Set,edgeMap:{}}}break;case"progress":x.progressMessage&&p(x.progressMessage);break;case"note_created":if(console.debug("Constellation note created:",x.streamedNoteData),x.streamedNoteData){let t=x.streamedNoteData,n=window._constellationTracking,i=window._constellationSim;if(!n){console.warn("Constellation tracking not initialized");break}n.noteUidMap[t.uid]=t.whiteboard_element_uid,n.nodeIds.add(t.whiteboard_element_uid);let o=t.x??0,a=t.y??0,l={id:t.whiteboard_element_uid,type:r.ToolElementType.ToolNote,position:{x:o,y:a},data:{id:t.whiteboard_element_uid,element:{__typename:r.ToolElementType.ToolNote,whiteboardElementUid:t.whiteboard_element_uid,elementUid:t.element_uid,content:t.content},attributes:{width:0,height:0,backgroundColor:t.backgroundColor||void 0},type:r.ToolElementType.ToolNote}};if(i){let r=i.addNode(t.whiteboard_element_uid,o,a,t.level??0);e(e=>[...e,l].map(e=>{let t=r.get(e.id);return t?{...e,position:{x:t.x,y:t.y}}:e}))}else e(e=>[...e,l])}y();break;case"edge_created":if(console.debug("Constellation edge created:",x.streamedEdgeData),x.streamedEdgeData){p("Connecting element in constellation...");let t=x.streamedEdgeData,r=window._constellationSim,o=window._constellationTracking,a={};try{t.style_json_string&&(a=JSON.parse(t.style_json_string))}catch(e){console.warn("Failed to parse edge style JSON:",e)}let l=n(),s=l.find(e=>e.id===t.source),d=l.find(e=>e.id===t.target),u=(e,t)=>
105{let r=(180/Math.PI*Math.atan2(t,e)%360+360)%360;return r<45||r>=315?"right":r<135?"bottom":r<225?"left":"top"},c=t.source_handle,h=t.target_handle;if(s&&d){let e=d.position.x-s.position.x,r=d.position.y-s.position.y;c=`${t.source}-${u(e,r)}`,h=`${t.target}-${u(-e,-r)}`}o&&(o.edgeMap||(o.edgeMap={}),o.edgeMap[t.uid]={source:t.source,target:t.target});let m={id:t.uid,type:t.edge_type||"default",source:t.source,target:t.target,sourceHandle:c,targetHandle:h,data:{uid:t.uid,strokeColor:t.stroke_color,strokeWidth:t.stroke_width,isDashed:t.is_dashed,isCurved:t.is_curved,hasStartArrowHead:t.has_start_arrow_head,hasEndArrowHead:t.has_end_arrow_head},style:{stroke:a.stroke||t.stroke_color||"#94A3B8",strokeWidth:a.strokeWidth||t.stroke_width||3}};if(i(e=>[...e,m]),r){let n=r.addLink(t.source,t.target),a=n.get(t.source),l=n.get(t.target);if(a&&l){let e=l.x-a.x,r=l.y-a.y,n=`${t.source}-${u(e,r)}`,s=`${t.target}-${u(-e,-r)}`;o&&o.edgeMap&&o.edgeMap[t.uid]&&(o.edgeMap[t.uid].sourceHandle=n,o.edgeMap[t.uid].targetHandle=s),i(e=>e.map(e=>e.id===t.uid?{...e,sourceHandle:n,targetHandle:s}:e))}e(e=>e.map(e=>{let t=n.get(e.id);return t?{...e,position:{x:t.x,y:t.y}}:e}))}}break;case"completed":console.debug("AI constellation generation completed");{let e=window._constellationTracking,t=window._constellationSim;if(t&&(t.destroy(),window._constellationSim=null),e&&e.nodeIds.size>0){let t=n(),o=[];for(let r of t)e.nodeIds.has(r.id)&&o.push({uid:r.id,elementLocation:JSON.stringify({x:r.position.x,y:r.position.y})});if(console.debug(`Persisting ${o.length} constellation node positions to backend`),o.length>0&&S(o).then(()=>{console.debug("Constellation positions persisted to backend")}),e.edgeMap&&Object.keys(e.edgeMap).length>0){let n=new Map;for(let e of t)n.set(e.id,e.position);let o=(e,t)=>{let r=(180/Math.PI*Math.atan2(t,e)%360+360)%360;return r<45||r>=315?"right":r<135?"bottom":r<225?"left":"top"},a=[];for(let[t,r]of Object.entries(e.edgeMap)){let e=n.get(r.source),i=n.get(r.target);if(e&&i){let n=i.x-e.x,l=i.y-e.y;a.push({id:t,source:r.source,target:r.target,sourceHandle:`${r.source}-${o(n,l)}`,targetHandle:`${r.target}-${o(-n,-l)}`})}}if(a.length>0)for(let e of(i(e=>e.map(e=>{let t=a.find(t=>t.id===e.id);return t?{...e,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}:e})),a))v({variables:{uid:e.id,projectId:u.current?.id,whiteboardId:c.current,source:e.source,sourceHandle:e.sourceHandle,sourceNodeType:r.ToolElementType.ToolNote,target:e.target,targetHandle:e.targetHandle,targetNodeType:r.ToolElementType.ToolNote}}).catch(e=>console.error("Failed to persist constellation edge handle:",e))}}}b(),p(null),g(!1);break;case"cancelled":console.debug("AI constellation generation cancelled"),window._constellationSim&&(window._constellationSim.destroy(),window._constellationSim=null),b(),p(null),g(!1);break;case"error":console.error("AI constellation generation error:",x.errorMessage),window._constellationSim&&(window._constellationSim.destroy(),window._constellationSim=null),b(),p(null),g(!1)}break;default:console.debug("Other real-time event:",t,x)}},[g,x,y,f,b])}}],100239);var te=e.i(699093);let tt=e=>{if(!e)return"";let t=e.startsWith("#")?e:`#${e}`;return te.default.name(t)[1]||""};e.s(["getColorName",0,tt,"stripHtmlTags",0,e=>e?e.replace(/<[^>]*>/g,"").trim():""],504754);let tr="draggable-admin-blueprint",tn="draggable-user-template-blueprint",ti="draggable-user-blueprint",to="draggable-new-ai-generated-image",ta="draggable-new-color",tl="draggable-new-comments",ts="draggable-new-whiteboard",td="new-draggable-document",tu="draggable-new-table",tc="draggable-new-image-stack",th="draggable-new-new-line",tp=[U.WhiteboardDroppableType.DroppableWall,U.WhiteboardDroppableType.DroppableKanban,U.WhiteboardDroppableType.DroppableNewLine],tm=[{id:ts,label:"New Whiteboard",type:U.WhiteboardDroppableType.DroppableWhiteboard,getInput:e=>({elementUid:(0,A.v4)(),boardName:"",iconType:r.ToolWhiteboardIconType.None,iconName:""})},{id:td,label:"New Document",type:U.WhiteboardDroppableType.DroppableDocument,getInput:e=>({elementUid:(0,A.v4)(),title:"Untitled"})},{id:tu,label:"New Table",type:U.WhiteboardDroppableType.DroppableTable,getIn
105put:e=>({elementUid:(0,A.v4)(),tableData:JSON.stringify({id:"table_default",type:"table",data:{name:"Table",columns:[{id:"column_1",name:"",type:"string",cellType:"document",width:240},{id:"column_2",name:"",type:"string",cellType:"datetime"},{id:"column_3",name:"",type:"string",cellType:"checkbox",width:120},{id:"column_4",name:"",type:"string",cellType:"labels",width:240}],columnOrder:["column_1","column_2","column_3","column_4"],rows:[{id:"row_1",values:{}},{id:"row_2",values:{}},{id:"row_3",values:{}},{id:"row_4",values:{}}],rowOrder:["row_1","row_2","row_3","row_4"],title:"",description:""}})})},{id:"draggable-new-note",label:"New Note",type:U.WhiteboardDroppableType.DroppableNote,getInput:e=>({elementUid:(0,A.v4)(),content:"",projectId:e})},{id:"draggable-new-heading",label:"New Heading",type:U.WhiteboardDroppableType.DroppableHeading,getInput:e=>({elementUid:(0,A.v4)(),content:'<h1 style="text-align: center"></h1>',projectId:e})},{id:"draggable-new-to-do",label:"New To-Do",type:U.WhiteboardDroppableType.DroppableToDo,getInput:e=>({elementUid:(0,A.v4)(),content:'<ul data-type="taskList"><li class="task-item" data-checked="false" data-type="taskItem"><label><input type="checkbox"><span></span></label></li></ul>',projectId:e})},{id:"draggable-new-ticket",label:"New Ticket",type:U.WhiteboardDroppableType.DroppableTicket,getInput:e=>({elementUid:(0,A.v4)(),title:"",projectId:e,description:""})},{id:"draggable-new-wall",label:"New Wall",type:U.WhiteboardDroppableType.DroppableWall,getInput:e=>({elementUid:"",title:"New Wall",projectId:e})},{id:tc,label:"New Image Stack",type:U.WhiteboardDroppableType.DroppableImageStack,getInput:e=>({elementUid:"",projectId:e,title:""})},{id:to,label:"New AI Image",type:U.WhiteboardDroppableType.DroppableAiGeneratedImage,getInput:e=>({elementUid:"",prompt:"",imageUrl:"",sourceImageNodeUids:[]})},{id:"draggable-new-video",label:"New Video",type:U.WhiteboardDroppableType.DroppableVideo,getInput:e=>({elementUid:"",projectId:e})},{id:"draggable-new-audio",label:"New Audio",type:U.WhiteboardDroppableType.DroppableAudio,getInput:e=>({elementUid:"",projectId:e})},{id:"draggable-new-link",label:"New Link",type:U.WhiteboardDroppableType.DroppableLink,getInput:e=>({elementUid:(0,A.v4)(),projectId:e})},{id:ta,label:"New Color",type:U.WhiteboardDroppableType.DroppableColor,getInput:e=>({elementUid:(0,A.v4)(),projectId:e,caption:tt(_.DEFAULT_TOOL_COLOR_HEX),colorHex:_.DEFAULT_TOOL_COLOR_HEX,colorType:r.ToolColorTypeEnum.Hex})},{id:tl,label:"New Comments",type:U.WhiteboardDroppableType.DroppableComments,getInput:e=>({elementUid:(0,A.v4)(),projectId:e,isCollapsed:!1,commentsJsonString:"[]"})},{id:th,label:"New Line",type:U.WhiteboardDroppableType.DroppableNewLine,getInput:e=>({elementUid:(0,A.v4)(),frontX:0,frontY:0,middleX:250,middleY:0,endX:500,endY:0,strokeColor:"",strokeWidth:3,hasStartArrow:!1,hasEndArrow:!1,isDashed:!1,newLineType:r.ToolNewLineType.Straight})}];e.s(["DISALLOWED_DROP_TYPES",0,tp,"DRAGGABLE_ID_ADMIN_BLUEPRINT",0,tr,"DRAGGABLE_ID_NEW_AI_GENERATED_IMAGE",0,to,"DRAGGABLE_ID_NEW_COLOR",0,ta,"DRAGGABLE_ID_NEW_COMMENTS",0,tl,"DRAGGABLE_ID_NEW_DOCUMENT",0,td,"DRAGGABLE_ID_NEW_IMAGE_STACK",0,tc,"DRAGGABLE_ID_NEW_NEW_LINE",0,th,"DRAGGABLE_ID_NEW_TABLE",0,tu,"DRAGGABLE_ID_NEW_WHITEBOARD",0,ts,"DRAGGABLE_ID_USER_BLUEPRINT",0,ti,"DRAGGABLE_ID_USER_TEMPLATE_BLUEPRINT",0,tn,"NEW_WHITEBOARD_DRAGGABLE_MAP",0,tm],29465),e.s(["useWhiteboardElementCreation",0,function({mutations:e,project:o,whiteboardId:a,toast:l,setNodes:s,getNodes:d,setEdges:u,getEdges:c,takeWhiteboardSnapshot:h,saveReactFlowStateToCache:p,refetchWhiteboard:m,revertLastWhiteboardSnapshot:g,viewOnly:f,addWhiteboardElement:b,draggableLoadingState:x,setDraggableLoadingState:y,convertUrlToMetadataJsonString:w,params:E,openUpgradePlanModal:C,setNewBlueprintDialog:T,setOpenNewBlueprintModal:S,setIsProductDocumentOverlayOpen:F,setUserLabelPresets:D,refreshUserLabelPresetData:M,currentUserId:I,addDefaultKanbanGroup:L}){let{createBlueprintFromTemplateMutation:B,createUserLabelPresetMutation:W,updateUserLabelPresetsMutation:P,deleteUserLabelPresetMutation:j}=e,R=(0,t.useCallback)(async({templateId:e,templateType:t,templateTitle:r,templateThumbnail:u,deltaXyCoord:c,parentUid:b,parentOrderIndex:x,shouldReorderParentElements:y=!1,setCurrentActiveElement:w,setItemHasCreationFocus:E})=>{if(f)return;let T=await d();try{await h("createBlueprintFromTemplate");let i=(0,A.v4)(),l=(0,A.v4)(),d=b?null:(0,_.getDefaultCreateDimensions)(U.WhiteboardDroppableType.DroppableFlow),g=b?er(T,b):void 0,f={width:d?.width??0,height:d?.height??0,...g?{backgroundColor:g}:{}},C={x:c.x,y:c.y},S={elementUid:i,href:i,type:U.WhiteboardDroppableType.DroppableFlow,thumbnail:u,title:r},k=(0,v.mapWhiteboardDroppableTypeToToolElementType)(U.WhiteboardDroppableType.DroppableFlow),F={...S,whiteboardElementUid:l,__typename:k};if(b&&""!=b){let e={uid:l,parentUid:b,parentOrderIndex:x,elementType:k,content:F,top:C.y,left:C.x,elementAttributes:JSON.stringify(f),elementLocation:JSON.stringify(C),contentJsonString:JSON.stringify(F)};await s(t=>t.filter(e=>e.type!=n.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.data.whiteboardElementUid!==b).map(t=>{if(t.id===b)return{...t,selected:!0,data:{...t.data,element:{...t.data.element,elements:(()=>
105{if(!y||void 0===x)return[...t.data.element.elements||[],e];{let r=[...t.data.element.elements||[]];return x>=0?r.splice(x,0,e):r.push(e),r}})()}}};if(t.data?.element?.elements){let r=t.data.element.elements.map(t=>t.content?.whiteboardElementUid===b?{...t,content:{...t.content,elements:(()=>{if(!y||void 0===x)return[...t.content.elements||[],e];{let r=[...t.content.elements||[]];return x>=0?r.splice(x,0,e):r.push(e),r}})()}}:t);return{...t,data:{...t.data,element:{...t.data.element,elements:r}}}}return{...t,selected:!1}}))}else{let e={id:l,type:k,position:{x:C.x,y:C.y},data:{whiteboardElementUid:l,type:k,element:F,attributes:f}};await s(t=>[...t.map(e=>({...e,selected:!1})),{...e,selected:!0}]),w({activeElement:F,elementAttributes:f}),E(!0)}let{data:D}=await B({variables:{templateId:e,templateType:t,newBlueprintUid:i,newWhiteboardElementUid:l,projectId:o.current?.id,projectUid:o.current?.uid,whiteboardId:a.current,elementType:k,elementLocation:JSON.stringify(C),elementAttributes:JSON.stringify(f),elementDataJsonString:JSON.stringify(F),parentUid:b,parentOrderIndex:x,shouldReorderParentElements:y}});if(!D?.createBlueprintFromTemplate||!D?.createBlueprintFromTemplate.id)return void m();p()}catch(e){m(),g(),console.error(e),(0,i.handleGraphQLError)({error:e,toast:l,customMessage:k.SERVER_ERROR_MESSAGE,onResourceExhaustedErrorHandler:()=>{C("tactics"),s(T)}})}},[B,h,p,E.slug,E.whiteboardUid,m,l,f,d]),N=(0,t.useCallback)(async(e,t,r,n,i,o,a,l=!1)=>{let s=tm.find(t=>t.id===e);if(s){let d=o&&""!==o?null:(0,_.getDefaultCreateDimensions)(s.type);b({delta:t,item:{type:s.type,input:s.getInput(r)},createElement:!0,setCurrentActiveElement:n,setItemHasCreationFocus:i,parentUid:o,parentOrderIndex:a,shouldReorderParentElements:l,...d?{attributes:d}:{},onSuccess:()=>{e==td&&eA.useWhiteboardSelectionStore.getState().triggerDocumentUpdate()}})}},[b,tm]),O=(0,t.useCallback)(async({active:e,deltaXyCoord:t,whiteboarableId:n,setCurrentActiveElement:i,setItemHasCreationFocus:o,newParentuid:a,newParentOrderIndex:l,shouldReorderParentElements:s=!1})=>{let d=(0,eE.getViewOnlyCommentContext)().active&&e.id==tl;if(!f||d){if("draggable-new-blueprint"==e.id||"draggable-new-blank-blueprint"==e.id)T({delta:t}),S(!0);else if(e.data.current&&(e.id.toString().startsWith(`${tr}-`)||e.id.toString().startsWith(`${tn}-`))){let r=e.data.current;R({templateId:Number(r.templateID),templateType:r.templateType,templateTitle:r.title,templateThumbnail:r.thumbnail,deltaXyCoord:t,parentUid:a,parentOrderIndex:l,shouldReorderParentElements:s,setCurrentActiveElement:i,setItemHasCreationFocus:o})}else if(e.data.current&&e.id.toString().startsWith(`${ti}-`)){let r=e.data.current,n=a?null:(0,_.getDefaultCreateDimensions)(U.WhiteboardDroppableType.DroppableFlow);b({delta:t,item:{type:U.WhiteboardDroppableType.DroppableFlow,input:{type:"blueprint",title:r?.blueprint.title,href:`${r?.blueprint.uid}`,thumbnail:r?.blueprint.thumbnail}},createElement:!1,setCurrentActiveElement:i,setItemHasCreationFocus:o,elementId:r.blueprint.id,elementUid:r.blueprint.uid,parentUid:a,parentOrderIndex:l,shouldReorderParentElements:s,...n?{attributes:n}:{}})}else if(e.id==ts)N(ts,t,n,i,o,a,l,s);else if(e.id==td)N(td,t,n,i,o,a,l,s),F(!1);else if(e.data.current&&e.id.toString().startsWith("draggable-user-project-document-")){let r=e.data.current;b({delta:t,item:{type:U.WhiteboardDroppableType.DroppableDocument,input:{elementUid:r.document.uid,title:r.document.title,content:r.document.content}},createElement:!1,setCurrentActiveElement:i,setItemHasCreationFocus:o,elementId:r.document.id,elementUid:r.document.uid,parentUid:a,parentOrderIndex:l,shouldReorderParentElements:s}),F(!1)}else if("draggable-new-note"==e.id)N("draggable-new-note",t,n,i,o,a,l,s);else if(e.id==tu)N(tu,t,n,i,o,a,l,s);else if("draggable-new-heading"==e.id)N("draggable-new-heading",t,n,i,o,a,l,s);else if("draggable-new-to-do"==e.id)N("draggable-new-to-do",t,n,i,o,a,l,s);else if("draggable-new-ticket"==e.id)N("draggable-new-ticket",t,n,i,o,a,l,s);else if("draggable-new-KanbanGroup"==e.id)L({delta:t,setItemHasCreationFocus:o});else if("draggable-new-wall"==e.id)N("draggable-new-wall",t,n,i,o,a,l,s);else if("draggable-new-video"==e.id)N("draggable-new-video",t,n,i,o,a,l,s);else if("draggable-new-audio"==e.id)N("draggable-new-audio",t,n,i,o,a,l,s);else if("draggable-new-link"==e.id)N("draggable-new-link",t,n,i,o,a,l,s);else if(e.id==ta)N(ta,t,n,i,o,a,l,s);else if(e.id==tl)N(tl,t,n,i,o,a,l,s);else if(e.id==to)N(to,t,n,i,o,a,l,s);else if("draggable-new-line"==e.id){let e={elementUid:"",startX:t.x,startY:t.y,endX:t.x+300,endY:t.y,c
105ontrolX:t.x+150,controlY:t.y,strokeColor:"",hasStartArrow:!0,hasEndArrow:!1,isDashedArrow:!1,lineType:r.ToolLineType.Curved};b({delta:t,item:{type:U.WhiteboardDroppableType.DroppableLine,input:e},createElement:!0,setCurrentActiveElement:i,setItemHasCreationFocus:o,parentUid:a,parentOrderIndex:l,shouldReorderParentElements:s})}else if(e.id==th){let e={elementUid:(0,A.v4)(),frontX:0,frontY:0,middleX:250,middleY:0,endX:500,endY:0,strokeColor:"",strokeWidth:3,hasStartArrow:!1,hasEndArrow:!1,isDashed:!1,newLineType:r.ToolNewLineType.Straight};b({delta:t,item:{type:U.WhiteboardDroppableType.DroppableNewLine,input:e},createElement:!0,setCurrentActiveElement:i,setItemHasCreationFocus:o,parentUid:a,parentOrderIndex:l,shouldReorderParentElements:s})}else if(e.data.current&&e.id.toString().startsWith("draggable-gallery-image-")){let r=e.data.current,d=(0,V.buildDroppedImageElement)(r.imageUrl,n);b({delta:t,item:d.item,createElement:!0,setCurrentActiveElement:i,setItemHasCreationFocus:o,parentUid:a,parentOrderIndex:l,shouldReorderParentElements:s,...d.attributes?{attributes:d.attributes}:{}})}else if(e.data.current&&e.id.toString().startsWith("draggable-external-gallery-image-")){let r=e.data.current,d=k.INTERNAL_APP_IMAGE_URL_PREFIX+r.imagePath,u=(0,V.buildDroppedImageElement)(d,n);b({delta:t,item:u.item,createElement:!0,setCurrentActiveElement:i,setItemHasCreationFocus:o,parentUid:a,parentOrderIndex:l,shouldReorderParentElements:s,...u.attributes?{attributes:u.attributes}:{}})}}},[b,f,N,T,S,R,L,F,y]),H=(0,t.useCallback)(async(e,t)=>{if(!f)try{let r=(0,A.v4)(),n=parseInt(Math.random().toString().substring(2,15));D(i=>[...i,{uid:r,label:e,labelColorHex:t,id:n}]),await W({variables:{label:e,labelColorHex:t,uid:r}}),I&&M()}catch(e){(0,i.handleGraphQLError)({error:e,toast:l})}},[W,m,l,f,I,M]),z=(0,t.useCallback)(async e=>{if(!f)try{D(t=>t.filter(t=>t.uid!==e)),await j({variables:{uid:e}}),I&&M()}catch(e){(0,i.handleGraphQLError)({error:e,toast:l})}},[j,m,l,f,I,M]),G=(0,t.useRef)(new Map),$=(0,t.useRef)(null),J=(0,t.useRef)(null),K=(0,t.useRef)(new Map),Y=(0,t.useCallback)(()=>{$.current=null;let e=G.current;if(0===e.size)return;let t=new Map(e);D(e=>e.map(e=>{let r=t.get(e.uid);return r?{...e,label:r.label,labelColorHex:r.labelColorHex}:e}))},[D]);return{createBlueprintFromTemplate:R,handleCreateElement:N,addNewElementToWhiteboard:O,createUserLabelPreset:H,deleteUserLabelPreset:z,renameUserLabelPreset:(0,t.useCallback)((e,t,r)=>{f||(G.current.set(e.uid,{label:t,labelColorHex:r}),null===$.current&&($.current=requestAnimationFrame(Y)),K.current.has(e.uid)||K.current.set(e.uid,e),J.current&&clearTimeout(J.current),J.current=setTimeout(()=>{J.current=null;let e=G.current;if(0===e.size)return;let t=Array.from(e.entries()).map(([e,t])=>({uid:e,label:t.label,labelColorHex:t.labelColorHex})),r=new Map(K.current);e.clear(),K.current.clear(),P({variables:{entries:t}}).then(()=>{I&&M()}).catch(e=>{D(e=>e.map(e=>r.get(e.uid)??e)),(0,i.handleGraphQLError)({error:e,toast:l}),I&&M()})},300))},[Y,P,D,l,f,I,M])}}],176536),e.i(700930);var tg=e.i(732934),tf=e.i(150490),tb=e.i(525996);let tx=tm.find(e=>e.type===U.WhiteboardDroppableType.DroppableWall);e.s(["useWhiteboardAdjacentWall",0,function({project:e,viewOnly:n,getNodes:i,setEdges:o,addWhiteboardElement:s,createWhiteboardEdge:d}){let u=(0,t.useCallback)(async({sourceWallUid:t,direction:u="right",connectWithArrow:c=!1})=>{if(n)return;let h=i(),p=h.find(e=>e.id===t);if(!p||p.type!==r.ToolElementType.ToolWhiteboardWall)return;let{y:m}=(0,a.getAbsoluteNodePosition)(p,h),g=(0,a.findAdjacentFreeX)({nodes:h,sourceNode:p,direction:u,gapPx:c?l.WALL_CONNECT_GAP_PX:l.ELEMENT_GAP_PX,width:a.WALL_LAYOUT_DEFAULT_WIDTH,height:a.WALL_LAYOUT_DEFAULT_HEIGHT}),f=(0,A.v4)(),{setCurrentActiveElement:b}=eA.useWhiteboardSelectionStore.getState(),x=!1;if(await s({delta:{x:g,y:m},item:{type:U.WhiteboardDroppableType.DroppableWall,input:tx.getInput(e.current?.id??0)},createElement:!0,setCurrentActiveElement:b,setItemHasCreationFocus:()=>{},forcedElementUid:f,onSuccess:()=>{x=!0}}),!x||!c)return;let y=`${t}-title-${u}`,w=`${f}
105-title-${"right"===u?"left":"right"}`,E=(0,tf.buildStyledConnectEdge)({source:t,target:f,sourceHandle:y,targetHandle:w,algorithm:tb.Algorithm.Linear});o(e=>(0,tg.addEdge)(E,e)),await d({uid:E.id,source:t,target:f,sourceHandle:y,targetHandle:w,edgeType:(0,tf.algorithmToPersistEdgeType)(tb.Algorithm.Linear),style:E.style,hasEndArrowHead:!0})},[n,i,o,s,d,e]);return(0,t.useEffect)(()=>{let e=e=>{if("Enter"!==e.key||e.repeat)return;let t=e.metaKey||e.ctrlKey;if(!t&&!e.shiftKey)return;let i=e.target;if(i&&("TEXTAREA"===i.tagName||"INPUT"===i.tagName||i.isContentEditable||i.closest?.("[contenteditable='true'], [contenteditable='']")!==null)||n)return;let{activeElement:o,isCanvasFunctionsDisabled:a}=eA.useWhiteboardSelectionStore.getState();if(a||o?.__typename!==r.ToolElementType.ToolWhiteboardWall)return;let l=o.whiteboardElementUid;l&&(e.preventDefault(),e.stopPropagation(),u({sourceWallUid:l,direction:"right",connectWithArrow:t}))};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[n,u]),{addWallBesideWall:u}}],324543)},732822,e=>{"use strict";var t=e.i(874186);let r=new Set([t.ToolElementType.ToolWhiteboard,t.ToolElementType.ToolDocument,t.ToolElementType.ToolFlow]);function n(e){return r.has(e.type)}function i(e){return e.type===t.ToolElementType.ToolWhiteboardWall}function o(e,r){let n=r.position.x-e.position.x,i=r.position.y-e.position.y,o=e.type===t.ToolElementType.ToolWhiteboard,a=r.type===t.ToolElementType.ToolWhiteboard;return Math.abs(n)>Math.abs(i)?n>0?{sourceHandle:`${e.id}-right`,targetHandle:`${r.id}-left`}:{sourceHandle:`${e.id}-left`,targetHandle:`${r.id}-right`}:i>0?{sourceHandle:o?n>=0?`${e.id}-right`:`${e.id}-left`:`${e.id}-bottom`,targetHandle:`${r.id}-top`}:{sourceHandle:`${e.id}-top`,targetHandle:a?n<=0?`${r.id}-right`:`${r.id}-left`:`${r.id}-bottom`}}e.s(["WALL_TITLE_HANDLE_TOP_OFFSET_PX",0,50,"findHubNode",0,function(e){let t=e.reduce((e,t)=>e+t.position.x,0)/e.length,r=e.reduce((e,t)=>e+t.position.y,0)/e.length;return e.reduce((e,n)=>(n.position.x-t)**2+(n.position.y-r)**2<(e.position.x-t)**2+(e.position.y-r)**2?n:e)},"getChainHandlesForPair",0,function(e,t){let r=i(e),n=i(t);if(!r&&!n)return o(e,t);let a=t.position.x-e.position.x;return{sourceHandle:`${e.id}-${r?"title-":""}${a>=0?"right":"left"}`,targetHandle:`${t.id}-${n?"title-":""}${a>=0?"left":"right"}`}},"getHandlesForDirection",0,function(e,t,r,i){if(Math.abs(r)>Math.abs(i))return{sourceHandle:`${e.id}-${r>0?"right":"left"}`,targetHandle:`${t.id}-${r>0?"left":"right"}`};let o=n(e),a=n(t);return{sourceHandle:i>0&&o?`${e.id}-${r>=0?"right":"left"}`:`${e.id}-${i>0?"bottom":"top"}`,targetHandle:i<=0&&a?`${t.id}-${r<=0?"right":"left"}`:`${t.id}-${i>0?"top":"bottom"}`}},"getHandlesForPair",0,o,"isWallNode",0,i])},517455,e=>{"use strict";e.s(["WhiteboardProvider",()=>eq,"default",()=>eX],517455);var t=e.i(565562),r=e.i(785929),n=e.i(874186),i=e.i(261940),o=e.i(578936),a=e.i(567109),l=e.i(666324),s=e.i(163354),d=e.i(372596),u=e.i(875453),c=e.i(695147),h=e.i(41174),p=e.i(891486),m=e.i(479870),g=e.i(766032),f=e.i(51
105758),b=e.i(582403),x=e.i(203306),y=e.i(966078),w=e.i(533639),E=e.i(990848),C=e.i(763371),T=e.i(102413),S=e.i(235531),A=e.i(200285),_=e.i(598919),v=e.i(461100),k=e.i(738549),F=e.i(394323),D=e.i(214184),M=e.i(21929),I=e.i(132342),U=e.i(200789),L=e.i(536579),B=e.i(644510);e.i(700930);var W=e.i(368769),P=e.i(170758),j=e.i(937304),R=e.i(84132),N=e.i(121356),O=e.i(197240),H=e.i(567153),z=e.i(150490),G=e.i(169331),V=e.i(820052),$=e.i(893869),J=e.i(332472),K=e.i(233596),Y=e.i(51642),q=e.i(306846),X=e.i(867256),Q=e.i(150507),Z=e.i(814484),ee=e.i(570665),et=e.i(276941),er=e.i(254878),en=e.i(630920),ei=e.i(804265),eo=e.i(276194),ea=e.i(385050),el=e.i(624909),es=e.i(425977),ed=e.i(961773),eu=e.i(38462),ec=e.i(699854),eh=e.i(628886),ep=e.i(855922),em=e.i(175814),eg=e.i(581605),ef=e.i(661087),eb=e.i(911881),ex=e.i(661270),ey=e.i(818047),ew=e.i(219464),eE=e.i(579834),eC=e.i(307004),eT=e.i(46265),eS=e.i(954563),eA=e.i(740984),e_=e.i(611213),ev=e.i(786110),ek=e.i(701105),eF=e.i(100239),eD=e.i(176536),eM=e.i(324543),eI=e.i(732934),eU=e.i(29465),eL=e.i(859146),eB=e.i(732822),eW=e.i(525996);let eP=eU.NEW_WHITEBOARD_DRAGGABLE_MAP.find(e=>e.type===A.WhiteboardDroppableType.DroppableNote);var ej=e.i(420452),eR=e.i(824366),eN=e.i(143089),eO=e.i(886e3);e.i(308472),e.i(769847),e.i(647547),e.i(438974),e.i(306148),e.i(608300),e.i(78272),e.i(73710),e.i(828043),e.i(941332),e.i(25429),e.i(100820),e.i(429639);let eH={align_left:"align-left",align_center:"align-center",align_right:"align-right",align_top:"align-top",align_middle:"align-middle",align_bottom:"align-bottom",distribute_horizontally:"distribute-h",distribute_vertically:"distribute-v"};var ez=e.i(796911),eG=e.i(420954),eV=e.i(565254),e$=e.i(142007),eJ=e.i(533245);let eK="true"===t.default.env.NEXT_PUBLIC_ENABLE_EXPORT_AREA,eY=(0,y.createContext)({}),eq=({children:e,page:t,viewOnly:eU=!1,isExportMode:eq=!1})=>{let{setNodes:eX,getNodes:eQ,getNode:eZ,setEdges:e0,getEdges:e1,getNodesBounds:e5}=(0,P.useCanvasEngine)(),e2=(0,j.useCanvasStoreApi)(),{getUserWallHighlightStyle:e4,userLabelPresets:e8,setUserLabelPresets:e3,refreshUserLabelPresetData:e6,currentUser:e9}=(0,er.useCurrentUser)(),e7=(0,F.useToast)(),te=(0,x.useRouter)(),tt=(0,x.useSearchParams)(),{fitViewToAllContent:tr}=(0,eo.default)(),{openUpgradePlanModal:tn}=(0,eO.default)(),ti=(0,y.useRef)(null),to=(0,y.useRef)(null),ta=(0,y.useRef)(!1),tl=(0,y.useRef)(null),ts=(0,y.useRef)(null),[td,tu]=(0,y.useState)("idle"),tc=(0,x.useParams)(),{setPageData:th,setRightSideMenuComponent:tp,startUpload:tm,updateUploadProgress:tg,completeUpload:tf,failUpload:tb,cancelUpload:tx}=(0,C.default)(),ty=tc.slug;(0,y.useEffect)(()=>V.clearLocalMoveClaims,[tc.whiteboardUid]);let{connected:tw,connecting:tE,error:tC,emitToProject:tT,socket:tS}=(0,l.useSocketIO)({projectUid:ty||null,boardUid:tc.whiteboardUid||null,enabled:!eU&&!eq&&!!ty,onConnect:()=>{console.debug("ð Socket.IO connected for project:",ty)},onDisconnect:()=>{console.debug("ð Socket.IO disconnected for project:",ty)},onError:e=>{console.error("â Socket.IO error for project:",ty,e)},onProjectEvent:(e,t)=>{console.debug("ð¨ Real-time project event:",e,t),oa(e,t)}}),tA=(0,ea.useWhiteboardSelectionStore)(e=>e.setWhiteboardGenerationStatusMessage),t_=(0,ea.useWhiteboardSelectionStore)(e=>e.setAiEditWhiteboardStatusMessage),tv=(0,ea.useWhiteboardSelectionStore)(e=>e.setAgenticGenerationThinkingText),tk=(0,ea.useWhiteboardSelectionStore)(e=>e.setIsAIChatGenerationInProgress),tF=(0,el.useWhiteboardInteractionStore)(e=>e.setIsDragging),tD=(0,el.useWhiteboardInteractionStore)(e=>e.setDraggableLoadingState),tM=(0,es.useWhiteboardOverlayStore)(e=>e.newBlueprintDialog),tI=(0,es.useWhiteboardOverlayStore)(e=>e.setNewBlueprintDialog),tU=(0,es.useWhiteboardOverlayStore)(e=>e.openNewBlueprintModal),tL=(0,es.useWhiteboardOverlayStore)(e=>e.setOpenNewBlueprintModal),tB=(0,es.useWhiteboardOverlayStore)(e=>e.setIsProductDocumentOverlayOpen),tW=(0,ea.useWhiteboardSelectionStore)(e=>e.projectWhiteboardCreationStatus),tP=(0,ea.useWhiteboardSelectionStore)(e=>e.setProjectWhiteboardCreationStatus),tj=(0,ea.useWhiteboardSelectionStore)(e=>e.isAIChatGenerationInProgress),tR=(0,ea.useWhiteboardSelectionStore)(e=>e.setIsAIChatOverlayExpanded),tN=(0,y.useRef)(!1),tO=(0,y.useRef)(!1),tH=(0,ea.useWhiteboardSelectionStore)(e=>e.isStreamingActive),tz=(0,ea.useWhiteboardSelectionStore)(e=>e.setIsStreamingActive),tG=(0,ea.useWhiteboardSelectionStore)(e=>e.hasUserMovedDuringStream),tV=(0,ea.useWhiteboardSelectionStore)(e=>e.setHasUserMovedDuringStream),t$=(0,y.useRef)(0),tJ=(0,y.useRef)(0),tK=(0,y.useRef)(new Set);(0,y.useEffect)(()=>{tN.current=tH},[tH]),(0,y.useEffect)(()=>{tO.current=tG},[tG]),(0,y.useEffect)(()=>{1!==tW||tj||(tY(),tk(!0),t_("Starting my deep thinking..."),tv(e=>(e||"")+"Starting my deep thinking..."))},[tW]);let tY=(0,y.useCallback)(()=>{tR(!0),tN.current=!0,tO.current=!1,tz(!0),tV(!1),console.debug("ð Started streaming")},[]),tq=(0,y.useCallback)(()=>{tN.current=!1,tO.current=!1,tz(!1),tV(!1),console.debug("ð Stopped streaming")},[]),tX=(0,y.useCallback)(()=>{let e=tN.current,t=tO.current;console.debug("ð conditionalFitViewToAllContent called",{isActive:e,hasMoved:t}),e&&!t?(t$.current=Date.now(),console.debug("â
Calling fitViewToAllContent"),tr()):console.debug("â Skipping fitViewToAllContent",{isActive:e,hasMoved:t})},[tr]),tQ=(0,y.useCallback)((e=!1)=>{let t=Date.now()-t$.current,r=e||t>500;r&&(tJ.current=Date.now()),tN.current&&(r?(tO.current=!0,tV(!0)):console.debug("ð Ignoring viewport change (programmatic)",{timeSinceLastFitView:t}))},[]),[tZ,t0]=(0,y.useState)(!1),[t1,t5]=(0,y.useState)({}),[t2,t4]=(0,y.useState)([]),[t8,t3]=(0,y.useState)(),[t6,t9]=(0,y.useState)(!1),[t7,re]=(0,y.useState)(null),rt=(0,y.useRef)(!1),rr=(0,y.useCallback)((e,t=0)=>{if(!e||!t7||!rt.current)return;if(tO.current){rt.current=!1;return}let r=t7.getNodes().find(t=>
105t.id===e);if(!r){t<10&&setTimeout(()=>rr(e,t+1),200);return}let n=t7.getInternalNode?.(e),i=n?.internals?.positionAbsolute??r.position,o=r.measured?.width??("number"==typeof r.width?r.width:0),a=r.measured?.height??("number"==typeof r.height?r.height:0);t$.current=Date.now(),rt.current=!1,t7.setCenter(i.x+o/2,i.y+a/2,{zoom:t7.getViewport().zoom,duration:400})},[t7]),[rn,ri]=(0,y.useState)(!1),[ro,ra]=(0,y.useState)(null),[rl,rs]=(0,y.useState)(!0),[rd,ru]=(0,y.useState)(null),[rc,rh]=(0,y.useState)(!1),rp=(tc.whiteboardUid&&""!==tc.whiteboardUid?ro?.project?.whiteboard?.participants:ro?.project?.participants)?.length??0,rm=(0,s.useIsCollaborativeBoard)({boardLoaded:!!ro?.project?.whiteboard,participantCount:rp,viewOnly:eU,isExportMode:eq,editLinkDisabled:rc}),rg=ro?.project?.whiteboard?.uid||tc.whiteboardUid||null,{handlePointerMove:rf}=(0,d.useCollabPresence)({socket:tS,projectUid:ty||null,boardUid:rg,enabled:rm});(0,u.useAgentPresence)({socket:tS,boardUid:rg,enabled:!eU&&!eq});let{doc:rb,isSynced:rx,isDenied:ry}=(0,c.useCollabDocument)({socket:tS,projectUid:ty||null,boardUid:rg,enabled:rm}),rw=(0,p.useCollabStatus)({enabled:rm,isDenied:ry,isSynced:rx}),rE=(0,g.useCollabCacheWriter)({enabled:rm,viewOnly:eU,slug:tc.slug,whiteboardUid:tc.whiteboardUid});(0,h.useCollabSync)({doc:rb,isSynced:rx,enabled:rm,onRemoteApplied:rE});let[rC,{data:rT,loading:rS,error:rA,refetch:r_}]=(0,o.useLazyQuery)(n.ViewOnlyProjectWhiteboardDocument),rv=(0,eh.useViewOnlyPasswordGate)(),rk=(0,y.useCallback)(e=>{let t=tt.get("r");t&&rC({variables:{viewOnlyProjectUid:tc.slug,linkKey:t,whiteboardUid:tc.whiteboardUid??"",readonlyLinkPassword:e},fetchPolicy:"no-cache"})},[rC,tc.slug,tc.whiteboardUid,tt]),[rF,{data:rD,loading:rM,error:rI,refetch:rU}]=(0,o.useLazyQuery)(n.ProjectWhiteboardDocument);(0,y.useEffect)(()=>{eX([]),e0([]),ri(!1)},[eU,tc.slug,tc.whiteboardUid,eX,e0]),(0,y.useEffect)(()=>{ta.current=!1,(async()=>{let e=(0,B.getWhiteboardCacheKey)(eU,tc.slug,tc.whiteboardUid??""),t=(0,B.getWhiteboardFlowStateCacheKey)(eU,tc.slug,tc.whiteboardUid??"");if(eU){let e=tt.get("r");
105if(!e)return(0,f.isExportRenderSession)()?console.warn("[export-runner] viewonly_link_key_missing"):te.push(et.HOME_ROUTE);rC({variables:{viewOnlyProjectUid:tc.slug,linkKey:e,whiteboardUid:tc.whiteboardUid??"",accessToken:(0,U.getReadonlyAccessToken)(e)??void 0},fetchPolicy:"no-cache"})}else{let e=!!(tc.whiteboardUid&&""!==tc.whiteboardUid);rF({variables:{projectUid:tc.slug,logViewed:!e,whiteboardUid:tc.whiteboardUid??"",whiteboardLogViewed:e},fetchPolicy:"no-cache"})}try{let[r,n]=await Promise.all([(0,B.getWhiteboardCache)(e),(0,B.getWhiteboardFlowStateCache)(t)]),i=tc.whiteboardUid||r?.data?.project?.whiteboard?.uid,o=!!r&&await (0,m.isBoardStale)(i);if(ta.current||o){let e=n?.data?.viewport;e&&(0!==e.x||0!==e.y||1!==e.zoom)?(tl.current=e,tu("restore")):tu("fit"),r&&rh(r.isLinkDisabled)}else if(r){if(n){let e=n.data.viewport;e&&(0!==e.x||0!==e.y||1!==e.zoom)?(tl.current=e,tu("restore")):tu("fit"),await n5({projectWhiteboardData:r.data,cachedNodes:n.data.nodes,cachedEdges:n.data.edges})}else tu("fit"),n5({projectWhiteboardData:r.data});rh(r.isLinkDisabled)}else tu("fit")}catch(e){console.error("Error fetching cache:",e),tu("fit")}rs(!1)})()},[eU,tc.slug,tc.whiteboardUid,tt]),(0,y.useEffect)(()=>{t7&&"idle"!==td&&"done"!==td&&(t$.current=Date.now(),"restore"===td&&tl.current?(t7.setViewport(tl.current),tl.current=null):t7.fitView({padding:.5,maxZoom:1,includeHiddenNodes:!1}),tu("done"))},[t7,td]);let rL=async e=>rT?r_():rU();(0,y.useEffect)(()=>{if(rT){if(rv.handleResponse(rT.viewOnlyProject,tt.get("r")))return void rs(!1);let e={project:rT.viewOnlyProject?.project,projectCreatedByUser:rT.viewOnlyProject?.projectCreatedByUser};ra(e),rh(rT.viewOnlyProject?.isLinkDisabled??!1),t9(rT.viewOnlyProject?.isCommentingEnabled??!1),ru(rA),e&&!rA&&(ta.current=!0)}},[rT,rS,rA,r_]),(0,y.useEffect)(()=>{if(rD){if(ra(rD),ru(rI),!rD||rI)return;ta.current=!0;let e=(0,B.getWhiteboardCacheKey)(eU,tc.slug,tc.whiteboardUid??"");(0,B.setWhiteboardCache)(e,rD,!1).catch(e=>{console.error("Error caching whiteboard data:",e)})}},[rD,rI,rU]);let rB=(0,ec.useWhiteboardMutations)();(0,ep.useWhiteboardStaging)({projectId:ro?.project?.id,projectUid:ro?.project?.uid,whiteboardId:ro?.project?.whiteboard?.id,acceptWhiteboardStagedElementsMutation:rB.acceptWhiteboardStagedElementsMutation,rejectWhiteboardStagedElementsMutation:rB.rejectWhiteboardStagedElementsMutation,acceptWhiteboardStagedElementMutation:rB.acceptWhiteboardStagedElementMutation,rejectWhiteboardStagedElementMutation:rB.rejectWhiteboardStagedElementMutation,refetchWhiteboard:rL,viewOnly:eU}),(0,eg.useWhiteboardTemplatePreview)();let{updateWhiteboardAttributesMutation:rW,updateMultipleWhiteboardElementAttributesMutation:rP,createBlueprintFromTemplateMutation:rj,duplicateWhiteboardElementsMutation:rR,cutPasteWhiteboardElementsMutation:rN,addWhiteboardElementMutation:rO,addWhiteboardLinkToWhiteboardMutation:rH,saveSharedBoardLinkToWhiteboardMutation:rz,addDefaultKanbanGroupMutation:rG,addWallAdjacentInGroupMutation:rV,updateWhiteboardElementLocationMutation:r$,updateWhiteboardElementAttributesMutation:rJ,bulkUpdateWhiteboardElementAttributesMutation:rK,updateMultipleWhiteboardElementLocationsMutation:rY,deleteWhiteboardElementsMutation:rq,toggleFavoriteBlueprintMutation:rX,updateProjectDocumentMutation:rQ,updateBlueprintBasicInfoMutation:rZ,updateProjectNoteMutation:r0,updateProjectNoteLabelsMutation:r1,updateWhiteboardElementLabelsMutation:r5,updateProjectTicketMutation:r2,updateProjectHtmlPageMutation:r4,updateProjectSlideDeckMutation:r8,reorderProjectSlideDeckSlidesMutation:r3,updateWhiteboardElementContentMutation:r6,updateMultipleWhiteboardElementContentMutation:r9,makeAiAlignWhiteboardElementsMutation:r7,editWhiteboardWithAIMutation:ne,updateWhiteboardElementParentDataMutation:nt,updateMultipleWhiteboardElementParentDataMutation:nr,removeMultipleWhiteboardElementsFromParentMutation:nn,convertUrlToMetadataJsonStringMutation:ni,createWhiteboardEdgeMutation:no,updateWhiteboardEdgeAttributeMutation:na,updateWhiteboardEdgeConnectionMutation:nl,generateWhiteboardAiImageMutation:ns,cancelWhiteboardAiGenerationMutation:nd,answerWhiteboardAIQuestionMutation:nu,createUserLabelPresetMutation:nc,updateUserLabelPresetsMutation:nh,deleteUserLabelPresetMutation:np,generateMediaUploadUrlMutation:nm,generateThumbnailUploadUrlMutation:ng,moveMultipleElementsToNewWhiteboardMutation:nf,groupWhiteboardElementsMutation:nb,unGroupWhiteboardElementsMutation:nx,createNativeGroupMutation:ny,deleteNativeGroupMutation:nw,addElementsToNativeGroupMutation:nE,removeElementsFromNativeGroupMutation:nC,createNativeFrameMutation:nT,deleteNativeFrameMutation:nS,addElementsToNativeFrameMutation:nA,removeElementsFromNativeFrameMutation:n_,updateNativeFrameAttributesMutation:nv}=rB;(0,y.useEffect)(()=>{ro&&ro.project&&(async()=>{await n5({projectWhiteboardData:ro,isDataLoaded:!0}),(0,m.markBoardVerified)(ro?.project?.whiteboard?.uid??"",{slug:tc.slug,whiteboardUid:tc.whiteboardUid??"",viewOnly:eU})})()},[ro?.project?.whiteboard?.elements,ro?.project?.whiteboard?.id,ro?.project?.title,ro?.project?.thumbnail,ro?.project?.uid,th,t7]);let nk=(0,y.useCallback)(e=>{let t=(0,B.getWhiteboardFlowStateCacheKey)(eU,tc.slug,tc.whiteboardUid??"");(0,B.setWhiteboardFlowStateViewportCache)(t,e).catch(e=>{console.error("Error caching viewport:",e)})},[eU,tc.slug,tc.whiteboardUid]),nF=(0,y.useCallback)(async()=>{try{let e=t7?.toObject();if(!e)return;let t={...e,nodes:e.nodes.filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>({...e,hidden:!1,selected:!1,dragging:!1})),edges:e.edges.filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>e.selected?{...e,selected:!1}:e)},r=(0,B.getWhiteboardFlowStateCacheKey)(eU,tc.slug,tc.whiteboardUid??"");await (0,B.setWhiteboardFlowStateCache)(r,t)}catch(e){console.error("Error caching whiteboard flow state:",e),(0,D.handleGraphQLError)({error:e,toast:e7})}},[t7,eU,tc.slug,tc.whiteboardUid]),nD=(0,y.useCallback)(async e=>{await eX(e);let t=(0,B.getWhiteboardFlowStateCacheKey)(eU,tc.slug,tc.whiteboardUid??""),r=e.filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>({...e,hidden:!1,selected:!1,dragging:!1}));(0,B.setWhiteboardFlowStateNodesCache)(t,r).catch(e=>{console.error("Error caching whiteboard nodes:",e),(0,D.handleGraphQLError)({error:e,toast:e7})})},[eX,eU,tc.slug,tc.whiteboardUid]),nM=(0,y.useCallback)(e=>{e0(e);let t=(0,B.getWhiteboardFlowStateCacheKey)(eU,tc.slug,tc.whiteboardUid??""),r=e.filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>e.selected?{...e,selected:!1}:e);(0,B.setWhiteboardFlowStateEdgesCache)(t,r).catch(e=>{console.error("Error caching whiteboard edges:",e),(0,D.handleGraphQLError)({error:e,toast:e7})})},[e0,eU,tc.slug,tc.whiteboardUid]),nI=(0,y.useCallback)(async(e,t)=>{await eX(e),e0(t);let r=(0,B.getWhiteboardFlowStateCacheKey)(eU,tc.slug,tc.whiteboardUid??""),n=e.filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>({...e,hidden:!1,selected:!1,dragging:!1})),i=t.filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>e.selected?{...e,selected:!1}:e);(0,B.setWhiteboardFlowStateNodesAndEdgesCache)(r,n,i).catch(e=>{console.error("Error caching whiteboard nodes and edges:",e),(0,D.handleGraphQLError)({error:e,toast:e7})})},[eX,e0,eU,tc.slug,tc.whiteboardUid]),{takeWhiteboardSnapshot:nU,revertLastWhiteboardSnapshot:nL,undoWhiteboardAction:nB,redoWhiteboardAction:nW,canUndo:nP,canRedo:nj}=(0,Y.useWhiteboardHistory)({viewOnly:eU,project:ti,refetchWhiteboard:rL,saveReactFlowStateToCache:nF});(0,y.useEffect)(()=>{eV.useAiAgentUndoMirror.getState().reset()},[]);let nR=(0,y.useCallback)(()=>{let e=ea.useWhiteboardSelectionStore.getState();return eU||e.isCanvasTicketDetailsModalOpenDetails.open||e.isDocumentEditingModalOpenDetails.open||!ti?.current?.whiteboard?.id||!ti?.current?.id},[eU]),nN=(0,y.useCallback)(e=>{nU(e),eU||eV.useAiAgentUndoMirror.getState().recordSnapshot(e)},[nU,eU]),nO=(0,y.useCallback)(()=>{nL(),eU||eV.useAiAgentUndoMirror.getState().recordRevert()},[nL,eU]),nH=(0,y.useCallback)(()=>nP()||eJ.useCanvasToolHtmlEmbedDesignStore.getState().dirty,[nP]),nz=(0,y.useCallback)(()=>nj()&&!eJ.useCanvasToolHtmlEmbedDesignStore.getState().dirty,[nj]),nG=(0,y.useCallback)(async()=>{eJ.useCanvasToolHtmlEmbedDesignStore.getState().activeUid&&(await (0,e$.closeHtmlEmbedDesignEditor)(),await new Promise(e=>setTimeout(e,0)))},[]),nV=(0,y.useCallback)(async()=>{await nG();let e=nR(),t=await nB();return!e&&t&&eV.useAiAgentUndoMirror.getState().recordUndo(),t},[nB,nR,nG]),n$=(0,y.useCallback)(async()=>
105{if(eJ.useCanvasToolHtmlEmbedDesignStore.getState().dirty)return!1;await nG();let e=nR(),t=await nW();return!e&&t&&eV.useAiAgentUndoMirror.getState().recordRedo(),t},[nW,nR,nG]),nJ=(0,el.useWhiteboardInteractionStore)(e=>e.draggableLoadingState);(0,y.useEffect)(()=>{if(nJ&&nJ.show){let e={id:"loading",data:{},type:"reactFlowDraggableLoading",position:{x:nJ.delta.x,y:nJ.delta.y},style:{width:"150px",height:"40px"}};eX(t=>t.concat(e))}else eX(e=>e.filter(e=>"loading"!==e.id))},[nJ,nJ?.show]);let nK=e=>e.type===n.ToolElementType.ToolImage||e.type===n.ToolElementType.ToolAiGeneratedImage||e.type===n.ToolElementType.ToolImageStack,nY=()=>{let e=eQ(),t=e.length,r=e.filter(nK).length,n=e5(e);return{nodeCount:t,imageCount:r,maxBoardDim:n&&Number.isFinite(n.width)&&Number.isFinite(n.height)?Math.max(n.width,n.height):0}},nq=()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();if(0===e.length)return null;let t=new Map;for(let r of e){let e=eZ(r.id)??eZ(r.data?.parentUid??"");e&&t.set(e.id,e)}let r=e5(Array.from(t.values()));return r&&r.width>0&&r.height>0?{region:{x:r.x-40,y:r.y-40,w:r.width+80,h:r.height+80},nodeCount:e.length,imageCount:e.filter(nK).length,maxDim:Math.max(r.width,r.height)+80}:null},{onExportWhiteboard:nX,onExportWhiteboardArea:nQ,onExportPdf:nZ,onExportWhiteboardPlainText:n0,onExportWhiteboardDocx:n1}=(0,ef.useWhiteboardExport)({projectTitle:ro?.project?.title,projectSlug:tc.slug,whiteboardUid:tc.whiteboardUid||ro?.project?.whiteboard?.uid||void 0});(0,y.useEffect)(()=>{let{registerWhiteboardCommandBridge:e,clearWhiteboardCommandBridge:t}=ea.useWhiteboardSelectionStore.getState(),r=e=>{let t=t7?.getInternalNode?.(e.id),r=t?.internals?.positionAbsolute??e.position,n=e.measured?.width??("number"==typeof e.width?e.width:0),i=e.measured?.height??("number"==typeof e.height?e.height:0);return n&&i?{x:r.x,y:r.y,width:n,height:i}:null},i=(e,t)=>{let n=t.find(t=>t.id===e);if(n)return r(n);let i=t.find(t=>{let r=t.data?.element?.elements;return Array.isArray(r)&&r.some(t=>t?.uid===e)});return i?((e,t)=>{if(!t7||"u"<typeof document)return null;let r=document.querySelector(`${(0,R.nodeElementSelector)(e)} [data-wall-item-uid="${CSS.escape(t)}"]`);if(!r)return null;let n=r.getBoundingClientRect();if(!n.width||!n.height)return null;let i=t7.getViewport().zoom||1,o=t7.screenToFlowPosition({x:n.left,y:n.top});return{x:o.x,y:o.y,width:n.width/i,height:n.height/i}})(i.id,e)??r(i):null},o=e=>{if(!t7)return;let{width:t,height:r,minZoom:n}=e2.getState();if(!t||!r)return;let o=eQ(),a=[];for(let t of Array.isArray(e)?e:[e]){let e=i(t,o);e&&a.push(e)}if(!a.length)return;let l=a.reduce((e,t)=>{let r=Math.min(e.x,t.x),n=Math.min(e.y,t.y);return{x:r,y:n,width:Math.max(e.x+e.width,t.x+t.width)-r,height:Math.max(e.y+e.height,t.y+t.height)-n}});t7.setViewport((0,W.getViewportForBounds)(l,t,r,n,1,.3),{duration:600})},a=null,l=e=>{let{width:t,height:r}=e2.getState(),{x:n,y:i,zoom:o}=t7.getViewport();return e.x>=-n/o&&e.y>=-i/o&&e.x+e.width<=(t-n)/o&&e.y+e.height<=(r-i)/o},s=(e,t=0)=>{if(a&&clearTimeout(a),a=null,ea.useWhiteboardSelectionStore.getState().isPresentationMode||tJ.current>eG.useAiAgentRunStore.getState().lastTurnStartedAt)return;let r=eQ(),n=e.flatMap(e=>i(e,r)??[]);if(n.length<e.length&&t<20){a=setTimeout(()=>s(e,t+1),250);return}!n.length||!t7||n.every(l)||(t$.current=Date.now(),o(e))};return e({undo:nV,redo:n$,canUndo:nH,canRedo:nz,fitView:tr,arrangeHorizontally:()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();ii(e.length>=2?e.map(e=>e.id):eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id))},arrangeGrid:()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();ir(e.length>=2?e.map(e=>e.id):eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id))},arrangeMasonry:()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();ia(e.length>=2?e.map(e=>e.id):eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id))},arrangeOrbit:()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();is(e.length>=2?e.map(e=>e.id):eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id))},arrangeHubOrbit:()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();oC(e.length>=2?e.map(e=>e.id):eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id))},arrangeVertically:()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();io(e.length>=2?e.map(e=>e.id):eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id))},normalizeSize:()=>{let e=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes();il(e.length>=2?e.map(e=>e.id):eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id))},repairOverlaps:()=>{iu(ea.useWhiteboardSelectionStore.getState().combinedActiveNodes().map(e=>e.id))},applyAlignment:e=>{let t=ea.useWhiteboardSelectionStore.getState().combinedActiveNodes().map(e=>e.id);t.length>=2&&id(e,t)},arrangeByIds:async(e,t)=>{let r=t.length?t:eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).map(e=>e.id),n=eH[e];if(n)return r.length>=2&&id(n,r),{incomplete:!1};switch(e){case"grid":ir(r);break;case"masonry":ia(r);break;case"orbit":is(r);break;case"row":ii(r);break;case"column":io(r);break;case"normalize_size":il(r);break;case"repair_overlaps":return iu(t)}return{incomplete:!1}},repairTurnOverlaps:async(e,t)=>{let r=new Set(e);
105if(0===r.size)return{incomplete:!1};let n=(await (0,G.waitForSettledNodes)(eQ,r)).filter(e=>!(0,G.isTitleNode)(e)).map(e=>e.id);return 0===n.length?{incomplete:!1}:iu(n,{historyBatchId:t})},addDocumentToBoard:e=>{let t=ea.useWhiteboardSelectionStore.getState(),r=0,n=0;if(t7){let e=t7.getViewport(),t=e.zoom;r=-e.x/t+window.innerWidth/t/2,n=-e.y/t+window.innerHeight/t/2}ik({delta:{x:r,y:n},item:{type:A.WhiteboardDroppableType.DroppableDocument,input:{elementUid:e.uid,title:e.title}},createElement:!1,setCurrentActiveElement:t.setCurrentActiveElement,setItemHasCreationFocus:t.setItemHasCreationFocus,elementId:e.id,elementUid:e.uid,attributes:(0,O.getDefaultCreateDimensions)(A.WhiteboardDroppableType.DroppableDocument)??void 0})},addWhiteboardLinkToBoard:e=>{let t=0,r=0;if(t7){let e=t7.getViewport(),n=e.zoom;t=-e.x/n+window.innerWidth/n/2,r=-e.y/n+window.innerHeight/n/2}iF({...e,location:{x:t,y:r}})},saveSharedBoardLinkToBoard:e=>{let t=0,r=0;if(t7){let e=t7.getViewport(),n=e.zoom;t=-e.x/n+window.innerWidth/n/2,r=-e.y/n+window.innerHeight/n/2}iD({...e,location:{x:t,y:r}})},deselectElement:e=>{let t=ea.useWhiteboardSelectionStore.getState();t.activeElement?.whiteboardElementUid===e&&t.setActiveElement(!1),t.activeNodes.some(t=>t.id===e)?(eX(t=>t.map(t=>t.id===e?{...t,selected:!1}:t)),t.setActiveNodes(t.activeNodes.filter(t=>t.id!==e))):t.setActiveChildNodes(t.activeChildNodes.filter(t=>t.id!==e))},focusElement:o,hasElement:e=>{let t=eQ();return!!t.some(t=>t.id===e)||t.some(t=>{let r=t.data?.element?.elements;return Array.isArray(r)&&r.some(t=>t?.uid===e)})},landOnElements:s,boardElementCount:()=>eQ().filter(e=>e.type&&!N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(e.type)).length,documentElement:e=>{for(let t of eQ()){let r=t.data?.element;if(t.id===e&&r?.__typename===n.ToolElementType.ToolDocument)return r;let i=r?.elements;if(!Array.isArray(i))continue;let o=i.find(t=>t?.uid===e);if(o?.__typename===n.ToolElementType.ToolDocument)return o}return null},htmlEmbedPage:e=>{let t=eQ().find(t=>t.id===e),r=t?.data;if(!t||r?.element?.__typename!==n.ToolElementType.ToolHtmlEmbed)return null;let i=r.element.htmlString,o=t.measured?.width||r.attributes?.width||0,a=t.measured?.height||r.attributes?.height||0;return i&&o&&a?{html:i,width:o,height:a}:null},htmlEmbedElement:e=>{let t=eQ().find(t=>t.id===e)?.data?.element;return t?.__typename===n.ToolElementType.ToolHtmlEmbed?t:null},focusAgentPlacementSpot:()=>t7?(0,q.computeAndFocusAgentPlacement)(t7):{x:0,y:0},openElement:e=>{let t=eQ().find(t=>t.id===e),r=t?.data?.element;if(r?.__typename===n.ToolElementType.ToolFile)return void(0,eR.openWhiteboardFileFully)(r);if(r?.__typename===n.ToolElementType.ToolImage||r?.__typename===n.ToolElementType.ToolAiGeneratedImage){let e=(0,eN.resolveImageSrc)({imageUrl:(0,eN.normalizeImageUrlKey)(r.imageUrl),placeholderImageSrc:"",showRawUrl:!0});e&&ea.useWhiteboardSelectionStore.getState().openImageZoomModal(e);return}o(e)},exportBoard:({format:e,quality:t,colorMode:r,onProgress:n})=>new Promise(i=>{let{nodeCount:o,imageCount:a,maxBoardDim:l}=nY();n?.({estimatedMs:(0,b.estimateExportDurationMs)("pdf"===e?"pdf":"png",t,o,a,l)});let s={..."high"===t?{imageWidth:3840,imageHeight:2160}:{imageWidth:1920,imageHeight:1080},colorMode:r,quality:t,onProgress:(e,t)=>n?.({serverStage:e,queuePosition:t}),onExportComplete:e=>i(e??{ok:!1})};("pdf"===e?nZ(s):nX({...s,fileType:e})).catch(()=>i({ok:!1}))})}),()=>{a&&clearTimeout(a),t()}},[nV,n$,nH,nz,tr,t7,nZ,nX]),(0,ex.useWhiteboardExportModeRunner)(),(0,ey.useNodeInternalsRecovery)();let n5=async({projectWhiteboardData:e,cachedNodes:t,cachedEdges:i,isDataLoaded:o=!1})=>{if(!e||!e.project)return;eU||tP(e?.project?.whiteboard?.whiteboardCreationStatus),e?.project?.participants&&e?.project?.participants.length>0&&(t5(e?.project?.participants?.reduce((e,t)=>(e[t.id]=t,e),{})),t4(e?.project?.participants));let a=null;if(t){let e=new Set((await eQ()).filter(e=>e.selected).map(e=>e.id));eX(t.map(t=>(t.selected??!1)!==e.has(t.id)?{...t,selected:e.has(t.id)}:t))}else{let t=await eQ(),r=e?.project?.whiteboard?.elements??[],i=new Set,o=new Set,l=new Map;for(let e of r)if(e.elementType===n.ToolElementType.ToolGroup){i.add(e.uid);try{l.set(e.uid,JSON.parse(e.elementLocation))}catch{l.set(e.uid,{x:0,y:0})}}else e.elementType===n.ToolElementType.ToolFrame&&o.add(e.uid);let s=new Map;for(let e of t)e.measured&&s.set(e.id,e.measured);let d=[],u=[];for(let e of r){let t=JSON.parse(e.elementLocation),r=JSON.parse(e.elementAttributes),a={whiteboardElementUid:e.uid,creatorUserId:e.creatorUserId??void 0,parentUid:e.parentUid,groupUid:e.groupUid,frameUid:e.frameUid,type:e.elementType,element:e.content,parentOrderIndex:e.parentOrderIndex,top:t.y,left:t.x,attributes:{...r,width:r.width??0,height:r.height??0,backgroundColor:r.backgroundColor??void 0,topBarHighlightColor:r.topB
105arHighlightColor??void 0,titleHighlightStyle:r.titleHighlightStyle??void 0,imageAspectRatio:r.imageAspectRatio??void 0}},c={x:t.x,y:t.y};if(e.elementType===n.ToolElementType.ToolFrame&&e.groupUid&&i.has(e.groupUid)){let t=l.get(e.groupUid);t&&(c.x+=t.x,c.y+=t.y)}else if(e.groupUid&&i.has(e.groupUid)){u.push({id:e.uid,data:a,type:e.elementType,position:c,parentId:e.groupUid,measured:s.get(e.uid)});continue}let h=e.frameUid&&o.has(e.frameUid)?e.frameUid:null;if(e.frameUid&&!h&&console.error(`Whiteboard element ${e.uid} references missing frame ${e.frameUid}; it will render at raw relative coordinates.`),!h&&e.parentUid)continue;let p={id:e.uid,data:a,type:e.elementType,position:c,measured:s.get(e.uid)};h&&(p.parentId=h),(0,L.isViewOnlyCommentDraggable)(e.elementType,e.creatorUserId,e9?.id)&&(p.draggable=!0),e.elementType===n.ToolElementType.ToolGroup?(p.style={width:r.width??200,height:r.height??200,pointerEvents:"none"},p.selectable=!1,p.zIndex=-999):e.elementType===n.ToolElementType.ToolFrame?(p.style={width:r.width??O.DEFAULT_TOOL_FRAME_WIDTH,height:r.height??O.DEFAULT_TOOL_FRAME_HEIGHT,pointerEvents:"none"},p.selectable=!1,p.zIndex=O.TOOL_FRAME_NODE_Z_INDEX):e.elementType===n.ToolElementType.ToolWhiteboard?p.zIndex=-1:e.elementType===n.ToolElementType.ToolWhiteboardWall&&(p.zIndex=-2),h?u.push(p):d.push(p)}let c=[...d,...u],h=new Set(c.map(e=>e.id)),p=t.filter(e=>(e.type===N.REACT_FLOW_DROPPABLE_INNER_WALL_TYPE||e.type===N.REACT_FLOW_DROP_WALL_GAP_TYPE)&&e.parentId&&h.has(e.parentId)),m=(0,V.preserveLocalMoves)(c,t);a=(0,G.putAllFrameNodesFirst)([...m,...p])}let l=null;if(i)e0(i);else{let t=e?.project?.whiteboard?.edges,r=[];t&&t.length>0&&t.forEach(e=>{let t=(0,z.getUpdatedEdgeWithStyles)({id:e.uid,type:e.edgeType,source:e.source,sourceHandle:e.sourceHandle,target:e.target,targetHandle:e.targetHandle,data:{points:e.controlPointsJsonString&&""!=e.controlPointsJsonString?JSON.parse(e.controlPointsJsonString):[],label:e.label||void 0},style:JSON.parse(e.styleJsonString||"{}")},{strokeWidth:e.strokeWidth>0?e.strokeWidth:H.DEFAULT_EDGE_STROKE_WIDTH,strokeColor:e.strokeColor||void 0,isDashed:e.isDashed,hasEndArrowHead:e.hasEndArrowHead,hasStartArrowHead:e.hasStartArrowHead,edgeType:e.edgeType});r.push(t)}),l=r}let s=eQ().filter(e=>e.data?.isStaged||e.data?.isTemplatePreview),d=new Set((em.useWhiteboardStagingStore.getState().stagedElements||[]).flatMap(e=>e.replacesElementUids||[])),u=e=>0===s.length?e:[...0===d.size?e:e.map(e=>d.has(e.id)&&!e.hidden?{...e,hidden:!0}:e),...s.filter(e=>!e.parentId),...s.filter(e=>e.parentId)];null!==a&&null!==l?await nI(u(a),l):null!==a?await nD(u(a)):null!==l&&await nM(l),(t||null!==a)&&eu.useWhiteboardViewStore.getState().markBoardContentChanged(),to.current=e?.project?.whiteboard?.id,ti.current=e?.project;let c=e?.project?.whiteboard?.uid||tc.whiteboardUid||"";tp((0,r.jsxs)(r.Fragment,{children:[!eU&&(0,r.jsx)($.default,{onExportWhiteboard:nX,onExportPdf:nZ,onExportWhiteboardArea:nQ,onExportPlainText:n0,onExportDocx:n1,getExportNodeCounts:nY,getSelectionExport:nq}),!eU&&(0,ez.isUnifiedAiAgentEnabled)()&&c&&(0,r.jsx)(J.default,{resourceUid:c}),(0,r.jsx)(K.default,{})]}));let h=tc.whiteboardUid&&""!=tc.whiteboardUid?e?.project?.whiteboard?.participants:e?.project?.participants,p=h?.map(e=>({id:e.id,firstName:e.firstName,lastName:e.lastName,profileImageUrl:e.profileImageUrl,isFounder:e.isFounder})),m=e?.project?.uid,g=[],f=e?.project?.whiteboardParentData;if(f&&Array.isArray(f)&&f.length>0?(g.push({title:e?.project?.title,thumbnail:e?.project?.thumbnail,link:`/${m}`}),[...f].sort((e,t)=>t.level-e.level).forEach(e=>{g.push({title:e.boardName&&""!=e.boardName?e.boardName:ei.DEFAULT_TOOL_WHITEBOARD_NAME,isBoard:!0,elementUid:e.elementUid,level:e.level,iconType:e.iconType,iconName:e.iconName,iconColorHex:e.iconColorHex,svgPath:e.iconName})})):g.push({title:e?.project?.title,thumbnail:e?.project?.thumbnail}),tc.whiteboardUid&&""!=tc.whiteboardUid?th({appPageType:C.APP_PAGE_TYPE_WHITEBOARD,pageResourceUid:tc.whiteboardUid,projectUid:e?.project?.uid,pageResourcePermission:e?.project?.permission,pageParticipantsData:p,breadCrumbs:g,inCanvasMode:!0}):th({appPageType:C.APP_PAGE_TYPE_PROJECT,pageResourceUid:e?.project?.uid,projectUid:e?.project?.uid,pageResourcePermission:e?.project?.permission,pageParticipantsData:p,breadCrumbs:g,inCanvasMode:!0}),ri(o),e?.project){let t=tc.whiteboardUid;if(t&&""!==t){let r=(0,X.buildRecentWhiteboardFromParentData)({whiteboardUid:t,whiteboardId:e.project.whiteboard?.id,projectUid:e.project.uid,whiteboardParentData:e.project.whiteboardParentData});r&&(0,X.updateRecentlyViewedWhiteboards)(r)}
105else n2(e?.project);if(o){let e=`${tc.slug??""}:${tc.whiteboardUid??""}`;ts.current!==e&&(ts.current=e,(0,Q.requestSidebarDashboardRefetch)())}}},n2=(0,y.useCallback)(async e=>{(0,X.updateRecentlyViewedProjects)(e)},[]),{createFrame:n4,addElementsToFrame:n8,removeElementsFromFrame:n3,updateFrameAttributes:n6,deleteFrame:n9,applyFrameMembership:n7,detachShrunkFrameMembers:ie,resolveFrameForNewElement:it}=(0,eA.useWhiteboardFrames)({mutations:{createNativeFrameMutation:nT,deleteNativeFrameMutation:nS,addElementsToNativeFrameMutation:nA,removeElementsFromNativeFrameMutation:n_,updateNativeFrameAttributesMutation:nv},refetchWhiteboard:rL,project:ti,whiteboardId:to,toast:e7,setNodes:eX,getNodes:eQ,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,revertLastWhiteboardSnapshot:nO,viewOnly:eU}),{arrangeSelectedAsGrid:ir,arrangeSelectedHorizontally:ii,arrangeSelectedVertically:io,arrangeSelectedAsMasonry:ia,normalizeSelectedSizes:il,arrangeSelectedAsOrbit:is,applyAlignment:id,repairSelectedOverlaps:iu,onHandleSpaceOutElementsToRight:ic}=(0,eC.useWhiteboardLayout)({mutations:{updateMultipleWhiteboardElementLocationsMutation:rY,updateWhiteboardElementLocationMutation:r$,updateMultipleWhiteboardElementAttributesMutation:rP,bulkUpdateWhiteboardElementAttributesMutation:rK,updateWhiteboardElementAttributesMutation:rJ},project:ti,whiteboardId:to,toast:e7,setNodes:eX,getNodes:eQ,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,emitToProject:tT,applyFrameMembership:n7}),{createNativeGroup:ih,deleteNativeGroup:ip,addElementsToNativeGroup:im,removeElementsFromNativeGroup:ig,addWallAdjacentInGroup:ib}=(0,eS.useWhiteboardGroups)({mutations:{createNativeGroupMutation:ny,deleteNativeGroupMutation:nw,addElementsToNativeGroupMutation:nE,removeElementsFromNativeGroupMutation:nC,addWallAdjacentInGroupMutation:rV,groupWhiteboardElementsMutation:nb,unGroupWhiteboardElementsMutation:nx},project:ti,whiteboardId:to,toast:e7,setNodes:eX,getNodes:eQ,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,refetchWhiteboard:rL,revertLastWhiteboardSnapshot:nO,viewOnly:eU}),ix=()=>{let e=eQ(),t=e=>({width:e.measured?.width||e.width||150,height:e.measured?.height||e.height||50}),r=(e,t,r,n)=>!(e.x+t.width<r.x||r.x+n.width<e.x||e.y+t.height<r.y||r.y+n.height<e.y),n=new Set,i=new Map,o=e.filter(e=>!e.data?.isStaged&&!e.data?.isTemplatePreview).map(e=>({...e,position:i.get(e.id)||{...e.position}})),a=!0,l=0;for(;a&&l<100;){a=!1,l++;for(let l=0;l<o.length;l++){let s=o[l];if(!s.type||N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(s.type))continue;let d=t(s),u=i.get(s.id)||s.position;for(let c=0;c<o.length;c++){if(l===c)continue;let h=o[c];if(!h.type||N.NON_CANVAS_TOOL_ELEMENT_TYPES.includes(h.type))continue;let p=t(h),m=i.get(h.id)||h.position;if(r(u,d,m,p)){if(a=!0,e.findIndex(e=>e.id===s.id)>e.findIndex(e=>e.id===h.id)){let e={x:u.x,y:m.y+p.height+10};i.set(s.id,e),n.add(s.id),o[l].position=e}else{let e={x:m.x,y:u.y+d.height+10};i.set(h.id,e),n.add(h.id),o[c].position=e}break}}}}n.size>0&&(eX(e.map(e=>{let t=i.get(e.id);return t?{...e,position:t}:e})),setTimeout(()=>{tr()},50),iq(Array.from(n).map(e=>{let t=i.get(e);return{uid:e,elementLocation:JSON.stringify({x:t.x,y:t.y})}})))},iy=(0,y.useRef)(null),iw=(0,y.useRef)(!1),iE=(0,y.useRef)(0),iC=(0,y.useRef)(null),iT=(0,a.useApolloClient)(),iS=(0,y.useCallback)(e=>{if(console.debug("ð¤ Processing AI-generated element:",e),(e?.elementType===n.ToolElementType.ToolWhiteboard||e?.elementType===n.ToolElementType.ToolDocument)&&(0,Q.requestSidebarDashboardRefetch)(),!(0,ez.isUnifiedAiAgentEnabled)()){tr(),rL().then(()=>{console.debug("â
Whiteboard refreshed after AI element creation"),ix()}).catch(e=>{console.error("â Failed to refresh whiteboard after AI element creation:",e)});return}(eG.useAiAgentRunStore.getState().lastTurnStartedAt>iE.current||Date.now()-iE.current>3e4)&&(tN.current=!0,tO.current=!1,tz(!0),tV(!1),rt.current=!0),iC.current=e?.elementUid||iC.current;let t=()=>{iE.current=Date.now(),iw.current=!1,rL().then(()=>{nF(),rr(iC.current)}).catch(e=>{console.error("â Failed to refresh whiteboard after AI element creation:",e)})};iw.current=!0,Date.now()-iE.current>=700&&t(),iy.current&&clearTimeout(iy.current),iy.current=setTimeout(()=>{iy.current=null,iw.current&&t(),tq()},700)},[rL,tr,rr,nF,tq,ix]),iA=(0,y.useCallback)(e=>{if(e?.elementType===n.ToolElementType.ToolWhiteboard&&"string"==typeof e?.changes?.board_name&&(0,Z.syncFolderDetails)(iT.cache,e.elementUid,{boardName:e.changes.board_name}),(0,ez.isUnifiedAiAgentEnabled)())return void rL().then(()=>{nF()}).catch(e=>{console.error("â Failed to refresh whiteboard after element update:",e)});console.debug("ð¤ Processing AI-generated element:",e);let t=(0,E.isDeliberateReposition)(e);
105tr(),rL().then(()=>{console.debug("â
Whiteboard refreshed after AI element updated"),t||ix()}).catch(e=>{console.error("â Failed to refresh whiteboard after AI element creation:",e)})},[iT,rL,tr,nF]),i_=(0,y.useCallback)(e=>{switch(console.debug("ð¨ Whiteboard generation status update:",e),e.status){case"started":console.debug("ð AI whiteboard generation started");break;case"progress":console.debug(`ð AI whiteboard generation progress: ${e.progress}% (${e.elementCount} elements)`);break;case"completed":console.debug("â
AI whiteboard generation completed"),rL().then(()=>{ix()}).catch(e=>{console.error("â Failed to refresh whiteboard after AI generation completion:",e)});break;case"error":console.error("â AI whiteboard generation failed:",e.errorMessage);break;default:console.debug("ð Unknown generation status:",e.status)}},[rL]),{uploadSingleImage:iv}=(0,ee.default)(),{addWhiteboardElement:ik,addWhiteboardLinkToBoard:iF,saveSharedBoardLinkToBoard:iD,createWhiteboardFolderShortcut:iM,addDefaultKanbanGroup:iI,onPasteClipboardItem:iU,onHandleExternalImageDrop:iL,onHandeUploadFiles:iB,onHandleUploadToolImages:iW,fillWhiteboardImagePlaceholder:iP,fillWhiteboardImagePlaceholderFromUrl:ij,fillWhiteboardFilePlaceholder:iR}=(0,e_.useWhiteboardElements)({mutations:{addWhiteboardElementMutation:rO,addWhiteboardLinkToWhiteboardMutation:rH,saveSharedBoardLinkToWhiteboardMutation:rz,addDefaultKanbanGroupMutation:rG,generateMediaUploadUrlMutation:nm,updateWhiteboardElementContentMutation:r6,deleteWhiteboardElementsMutation:rq,convertUrlToMetadataJsonStringMutation:ni},project:ti,whiteboardId:to,networkBoardLoadedRef:ta,toast:e7,setNodes:eX,getNodes:eQ,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,refetchWhiteboard:rL,revertLastWhiteboardSnapshot:nO,viewOnly:eU,setDraggableLoadingState:tD,startUpload:tm,updateUploadProgress:tg,completeUpload:tf,failUpload:tb,uploadSingleImage:iv,canvasEngine:t7,resolveFrameForNewElement:it}),{createBlueprintFromTemplate:iN,handleCreateElement:iO,addNewElementToWhiteboard:iH,createUserLabelPreset:iz,deleteUserLabelPreset:iG,renameUserLabelPreset:iV}=(0,eD.useWhiteboardElementCreation)({mutations:{createBlueprintFromTemplateMutation:rj,createUserLabelPresetMutation:nc,updateUserLabelPresetsMutation:nh,deleteUserLabelPresetMutation:np},project:ti,whiteboardId:to,toast:e7,setNodes:eX,getNodes:eQ,setEdges:e0,getEdges:e1,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,refetchWhiteboard:rL,revertLastWhiteboardSnapshot:nO,viewOnly:eU,addWhiteboardElement:ik,draggableLoadingState:nJ,setDraggableLoadingState:tD,convertUrlToMetadataJsonString:ni,params:tc,openUpgradePlanModal:tn,setNewBlueprintDialog:tI,setOpenNewBlueprintModal:tL,setIsProductDocumentOverlayOpen:tB,setUserLabelPresets:e3,refreshUserLabelPresetData:e6,currentUserId:e9?.id,addDefaultKanbanGroup:iI}),{updateWhiteboardAttributes:i$,duplicateWhiteboardElements:iJ,cutPasteWhiteboardElements:iK,updateElementPosition:iY,updateMultipleElementPositions:iq,updateElementAttributes:iX,updateMultipleElementAttributes:iQ,applyWallEntryTheme:iZ,updateWhiteboardElementContent:i0,updateMultipleWhiteboardElementContents:i1,updateWhiteboardElementParentData:i5,updateMultipleWhiteboardElementParentData:i2,removeMultipleWhiteboardElementsFromParent:i4,deleteWhiteboardElements:i8,handleImageLoadError:i3}=(0,ev.useWhiteboardUpdates)({mutations:{updateWhiteboardAttributesMutation:rW,duplicateWhiteboardElementsMutation:rR,cutPasteWhiteboardElementsMutation:rN,updateWhiteboardElementLocationMutation:r$,updateMultipleWhiteboardElementLocationsMutation:rY,updateWhiteboardElementAttributesMutation:rJ,bulkUpdateWhiteboardElementAttributesMutation:rK,updateWhiteboardElementContentMutation:r6,updateMultipleWhiteboardElementContentMutation:r9,updateWhiteboardElementParentDataMutation:nt,updateMultipleWhiteboardElementParentDataMutation:nr,removeMultipleWhiteboardElementsFromParentMutation:nn,deleteWhiteboardElementsMutation:rq},project:ti,whiteboardId:to,toast:e7,setNodes:eX,getNodes:eQ,setEdges:e0,getEdges:e1,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,refetchWhiteboard:rL,revertLastWhiteboardSnapshot:nO,viewOnly:eU,emitToProject:tT,setIsDragging:tF,cancelUpload:tx,applyFrameMembership:n7,addElementsToFrame:n8}),{tickGrowthReflow:i6,endGrowthReflow:i9,kickGrowthReflow:i7}=(0,eT.useWhiteboardGrowthReflow)({boardKey:tc.whiteboardUid,getNodes:eQ,setNodes:eX,takeWhiteboardSnapshot:nN,updateMultipleElementPositions:iq}),{generateWhiteboardAiImage:oe,cancelWhiteboardAiGeneration:ot,answerAgenticQuestion:or,makeAiAlignWhiteboardElements:on,editWhiteboardWithAI:oi}=(0,eE.useWhiteboardAI)({mutations:{generateWhiteboardAiImageMutation:ns,cancelWhiteboardAiGenerationMutation:nd,answerWhiteboardAIQuestionMutation:nu,makeAiAlignWhiteboardElementsMutation:r7,editWhiteboardWithAIMutation:ne},project:ti,whiteboardId:to,toast:e7,takeWhiteboardSnapshot:nN,refetchWhiteboard:rL,revertLastWhiteboardSnapshot:nO,viewOnly:eU,openUpgradePlanModal:tn}),oo=(0,y.useCallback)(async()=>
105{await ot(),tq(),tK.current.clear(),tk(!1),t_(null),tv(null)},[ot,tq,tk]),{handleRealtimeEvent:oa}=(0,eF.useWhiteboardRealtimeEvents)({setNodes:eX,getNodes:eQ,setEdges:e0,refetchWhiteboard:rL,saveReactFlowStateToCache:nF,takeWhiteboardSnapshot:nN,revertLastWhiteboardSnapshot:nO,viewOnly:eU,project:ti,whiteboardId:to,setWhiteboardGenerationStatusMessage:tA,setAiEditWhiteboardStatusMessage:t_,setAgenticGenerationThinkingText:tv,setIsAIChatGenerationInProgress:tk,startStreaming:tY,stopStreaming:tq,fitViewToAllContent:tr,conditionalFitViewToAllContent:tX,onHandleSpaceOutElementsToRight:ic,deleteWhiteboardElements:i8,updateElementPosition:iY,updateMultipleElementPositions:iq,updateWhiteboardEdgeConnectionMutation:nl,handleElementCreatedRealtime:iS,handleElementUpdatedRealtime:iA,handleWhiteboardGenerationStatus:i_,streamingStartedKeysRef:tK,toast:e7}),ol=(0,y.useCallback)(async(e,t,r)=>{if(!eU){t0(!0);try{await rX({variables:{blueprintTemplateId:e,templateType:t,isFavourite:r}}).then(e=>{rL()}),nF()}catch(e){console.error(e),(0,D.handleGraphQLError)({error:e,toast:e7})}t0(!1)}},[rX,nF,eU]),{updateProjectDocument:os,updateBlueprintBasicInfo:od,updateProjectNote:ou,updateProjectTicket:oc,updateProjectHtmlPage:oh,updateProjectSlideDeck:op,reorderProjectSlideDeckSlides:om,moveMultipleElementsToNewWhiteboard:og}=(0,ek.useWhiteboardContentUpdates)({mutations:{updateProjectDocumentMutation:rQ,updateBlueprintBasicInfoMutation:rZ,updateProjectNoteMutation:r0,updateProjectNoteLabelsMutation:r1,updateProjectTicketMutation:r2,updateProjectHtmlPageMutation:r4,updateProjectSlideDeckMutation:r8,reorderProjectSlideDeckSlidesMutation:r3,moveMultipleElementsToNewWhiteboardMutation:nf},project:ti,whiteboardId:to,toast:e7,setNodes:eX,getNodes:eQ,setEdges:e0,getEdges:e1,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,refetchWhiteboard:rL,revertLastWhiteboardSnapshot:nO,viewOnly:eU}),of=(0,y.useCallback)((e,t)=>{eU||(nN("updateElementLabels"),eX(r=>r.map(r=>{if(r.id===e){let e=r.data,n=e.element;return{...r,data:{...e,element:{...n,labels:t}}}}let n=r.data?.element,i=n?.elements;if(!i)return r;let o=i.findIndex(t=>t.uid===e);if(-1===o)return r;let a=[...i];return a[o]={...a[o],content:{...a[o].content,labels:t}},{...r,data:{...r.data,element:{...n,elements:a}}}})),r5({variables:{elementUid:e,projectId:ti.current?.id??0,whiteboardId:to.current??void 0,labels:t.map(e=>({label:e.label,labelColorHex:e.labelColorHex,presetUid:e.presetUid}))}}))},[eU,eX,r5]),{createWhiteboardEdge:ob,updateWhiteboardEdgeAttribute:ox,updateWhiteboardEdgeConnection:oy,onEdgeControlPointsChange:ow}=(0,ew.useWhiteboardEdges)({mutations:{createWhiteboardEdgeMutation:no,updateWhiteboardEdgeAttributeMutation:na,updateWhiteboardEdgeConnectionMutation:nl},project:ti,whiteboardId:to,toast:e7,setEdges:e0,getEdges:e1,takeWhiteboardSnapshot:nN,saveReactFlowStateToCache:nF,viewOnly:eU,getNodes:eQ,setNodes:eX,revertLastWhiteboardSnapshot:nO}),{addWallBesideWall:oE}=(0,eM.useWhiteboardAdjacentWall)({project:ti,viewOnly:eU,getNodes:eQ,setEdges:e0,addWhiteboardElement:ik,createWhiteboardEdge:ob}),{arrangeSelectedAsHubOrbit:oC}=function({project:e,viewOnly:t,getNodes:r,getEdges:n,setEdges:o,addWhiteboardElement:a,createWhiteboardEdge:l,arrangeSelectedAsOrbit:s,deleteWhiteboardElements:d,takeWhiteboardSnapshot:u,revertLastWhiteboardSnapshot:c,applyFrameMembership:h}){let p=(0,F.useToast)(),m=(0,y.useCallback)(e=>p({title:"Orbit finished part way",description:`${e} Undo reverses the whole thing in one step.`,status:"warning",duration:6e3,isClosable:!0}),[p]);return{arrangeSelectedAsHubOrbit:(0,y.useCallback)(async p=>{if(t)return;let g=e.current?.id;if(!g)return;let f=(0,G.absolutizeChildPositions)(r()),b=(0,eL.toOrbitItems)(f,p),x={width:200,height:72},y=(0,eL.computeOrbitLayout)(b,x);if(!y)return;let w=(0,i.v4)(),E=(0,i.v4)(),{setCurrentActiveElement:C}=ea.useWhiteboardSelectionStore.getState();u("arrangeSelectedAsHubOrbit");let T=!1;if(await a({delta:{x:Math.round(y.centerX-100),y:Math.round(y.centerY-36)},item:{type:A.WhiteboardDroppableType.DroppableNote,input:{...eP.getInput(g),content:'<p style="text-align: center">Group</p>'}},createElement:!0,attributes:{width:200,height:72},setCurrentActiveElement:C,setItemHasCreationFocus:()=>{},forcedElementUid:w,historyBatchId:E,onSuccess:()=>{T=!0}}),!T)return void c();await s(p,{hubSize:x,historyBatchId:E});try{let e=r(),t=e.find(e=>e.id===w);
105if(!t)return void m("The group was arranged, but its centre could not be connected up.");let i=new Set(b.map(e=>e.id)),a=n().filter(e=>i.has(e.source)&&i.has(e.target)).map(e=>e.id);if(a.length>0){let e=new Set(a);o(t=>t.filter(t=>!e.has(t.id))),await d({whiteboardElementUids:[],edgeUids:a,historyBatchId:E})}for(let r of b){let n=e.find(e=>e.id===r.id),i=y.positions.get(r.id);if(!n||!i)continue;let{sourceHandle:a,targetHandle:s}=(0,eB.getHandlesForDirection)(t,n,i.x+r.width/2-y.centerX,i.y+r.height/2-y.centerY),d=(0,z.buildStyledConnectEdge)({source:w,target:r.id,sourceHandle:a,targetHandle:s,algorithm:eW.Algorithm.BezierCatmullRom});try{await l({uid:d.id,source:w,target:r.id,sourceHandle:a,targetHandle:s,edgeType:(0,z.algorithmToPersistEdgeType)(eW.Algorithm.BezierCatmullRom),style:d.style,hasEndArrowHead:!0,historyBatchId:E})}catch(e){console.error("[whiteboard] hub orbit could not draw a spoke",e),m("The group was arranged, but some of its connections could not be drawn.");return}o(e=>(0,eI.addEdge)(d,e))}}finally{let e;e=new Set([w,...b.map(e=>e.id)]),h(r().filter(t=>e.has(t.id)).map(e=>({id:e.id,position:e.position}))).catch(e=>console.error("Frame membership settle after hub orbit failed:",e))}},[t,e,r,n,o,a,l,s,d,u,c,h,m])}}({project:ti,viewOnly:eU,getNodes:eQ,getEdges:e1,setEdges:e0,addWhiteboardElement:ik,createWhiteboardEdge:ob,arrangeSelectedAsOrbit:is,deleteWhiteboardElements:i8,takeWhiteboardSnapshot:nN,revertLastWhiteboardSnapshot:nO,applyFrameMembership:n7}),oT=(0,y.useCallback)(async({whiteboardElementNodes:e,groupElementUid:t})=>{if(eU)return;let r=await eQ();try{let o;await nN("groupWhiteboardElements"),t&&""!==t||(o=(0,i.v4)());let a=(0,ej.sortImageStackNodesByPosition)([...e]),l=[],s=[];if(a.forEach(e=>{l.push(e.id);let t=e.data,r=(0,w.convertWhiteboardNodeDataToWhiteboardElement)(t);s.push(r)}),o){let e=a[0],t=e.data?.attributes,r=e.measured,i=(e.width&&e.width>0?e.width:null)||(r?.width&&r.width>0?r.width:null)||(t?.width&&t.width>0?t.width:null)||200,d=(e.height&&e.height>0?e.height:null)||(r?.height&&r.height>0?r.height:null)||(t?.height&&t.height>0?t.height:null)||200,u={elementUid:"",title:"",elements:s,whiteboardElementUid:o,__typename:n.ToolElementType.ToolImageStack},c={x:e.position.x,y:e.position.y},h={id:o,type:n.ToolElementType.ToolImageStack,position:{x:c.x,y:c.y},data:{whiteboardElementUid:o,type:n.ToolElementType.ToolImageStack,element:u,attributes:{width:i,height:d},top:c.y,left:c.x}};await eX(e=>[...e,h]),await eX(e=>e.filter(e=>!l.includes(e.id)))}else{let e=r.find(e=>e.id===t);if(!e)return;let n=e.data.element,i=n?.elements??[],o={...e,data:{...e.data,element:{...n,elements:[...s,...i]}}};await eX(e=>e.filter(e=>!l.includes(e.id)).map(e=>e.id===t?o:e))}let{data:d}=await nb({variables:{whiteboardElementUids:l,projectId:ti.current?.id,projectUid:ti.current?.uid,whiteboardId:to.current,groupElementUid:t,newGroupElementUid:o}});if(!d?.groupWhiteboardElements){await eX(r),nO();return}await rL(),await nF()}catch(e){console.error("Error groupin elements:",e),await eX(r),nO(),(0,D.handleGraphQLError)({error:e,toast:e7})}},[nb,nN,nF,ti.current?.id,to.current,eX,eQ]),oS=(0,y.useCallback)(async({onlyWhiteboardElementUids:e,groupElementUid:t})=>{if(eU)return;let r=await eQ();try{let n=eQ().find(e=>e.id===t);if(!n)return void console.error("Stack node not found:",t);let i=n.data.element,o=i?.elements||[];if(0===o.length)return void console.error("No elements found in stack");let a=o.map(e=>{let t=(0,w.convertWhiteboardElementToWhiteboardNodeData)(e),r=JSON.parse(e.elementLocation);return{id:e.uid,type:e.elementType,position:{x:r.x,y:r.y},data:t}});await nN("ungroupWhiteboardElements"),await eX(e=>[...e.filter(e=>e.id!==t),...a]);let{data:l}=await nx({variables:{onlyWhiteboardElementUids:e||[],projectId:ti.current?.id,projectUid:ti.current?.uid,whiteboardId:to.current,groupElementUid:t}});if(!l?.unGroupWhiteboardElements){await eX(r),nO();return}await rL(),await nF()}catch(e){console.error("Error ungrouping elements:",e),await eX(r),nO(),(0,D.handleGraphQLError)({error:e,toast:e7})}},[nx,nN,nF,ti.current?.id,to.current,eX,eQ]),oA=(0,y.useCallback)(async(e,t)=>{if(eU)return;let r=await eQ();try{let n=(await eQ()).find(t=>
105t.id===e);if(!n)return;let i=n.data,o=i.element,a=o?.elements??[],l=a.find(e=>e.uid===t);if(!l)return;let s=a.filter(e=>e.uid!==t),d=n.width||n.measured?.width||(i.attributes?.width??0)||200,u={x:n.position.x+d+40,y:n.position.y};if(await nN("removeImageFromStack"),s.length<2){let i=a.map((e,r)=>{let i,o=(0,w.convertWhiteboardElementToWhiteboardNodeData)(e);if(o.parentUid=null,o.parentOrderIndex=0,e.uid===t)i=u;else try{let t=JSON.parse(e.elementLocation);i="number"==typeof t?.x&&"number"==typeof t?.y?t:{x:n.position.x+24*r,y:n.position.y+24*r}}catch{i={x:n.position.x+24*r,y:n.position.y+24*r}}return o.top=i.y,o.left=i.x,{id:e.uid,type:e.elementType,position:i,data:o}});await eX(t=>t.filter(t=>t.id!==e).concat(i));let{data:o}=await nx({variables:{onlyWhiteboardElementUids:[],projectId:ti.current?.id,projectUid:ti.current?.uid,whiteboardId:to.current,groupElementUid:e}});if(!o?.unGroupWhiteboardElements){await eX(r),nO();return}}else{let i=(0,w.convertWhiteboardElementToWhiteboardNodeData)(l);i.parentUid=null,i.parentOrderIndex=0,i.top=u.y,i.left=u.x;let a={id:l.uid,type:l.elementType,position:u,data:i},d={...n,data:{...n.data,element:{...o,elements:s}}};await eX(t=>t.map(t=>t.id===e?d:t).concat([a]));let{data:c}=await nt({variables:{projectId:ti.current?.id,uid:t,newParentUid:void 0,newParentOrderIndex:void 0,newElementLocation:JSON.stringify(u)}});if(!c?.updateWhiteboardElementParentData){await eX(r),nO();return}}await rL(),await nF()}catch(e){await eX(r),nO(),(0,D.handleGraphQLError)({error:e,toast:e7})}},[nt,nx,nN,nF,ti.current?.id,to.current,eX,eQ,eU,rL]),o_=(e,t)=>{t.preventDefault(),t.stopPropagation(),ti.current?.uid&&(0,en.pushToWhiteboardPage)({router:te,whiteboardUid:e,projectUid:ti.current.uid,project:ti.current,viewOnlyLinkKey:t8})},ov=e4(),ok=to.current,oF=ti.current,oD=ti.current?.id,oM=ro?.projectCreatedByUser,oI=(0,y.useMemo)(()=>({updateProjectDocument:os,createBlueprintFromTemplate:iN,addWhiteboardElement:ik,handleCreateElement:iO,updateWhiteboardAttributes:i$,updateElementAttributes:iX,updateMultipleElementAttributes:iQ,applyWallEntryTheme:iZ,toggleFavoriteBlueprint:ol,updateElementPosition:iY,updateMultipleElementPositions:iq,updateWhiteboardElementContent:i0,updateMultipleWhiteboardElementContents:i1,updateWhiteboardElementParentData:i5,updateMultipleWhiteboardElementParentData:i2,removeMultipleWhiteboardElementsFromParent:i4,updateBlueprintBasicInfo:od,deleteWhiteboardElements:i8,handleImageLoadError:i3,groupWhiteboardElements:oT,ungroupWhiteboardElements:oS,removeImageFromStack:oA,projectParticipantsMap:t1,projectParticipants:t2,viewOnlyProjectCreatedByUser:oM,whiteboardId:ok,refetchWhiteboard:rL,cancelWhiteboardAiGeneration:oo,markUserBoardMovement:tQ,answerAgenticQuestion:or,saveViewportToCache:nk,project:oF,whiteboardUid:rg,whiteboarableId:oD,isNetworkBoardLoadedRef:ta,loading:tZ,setIsLoading:t0,queryLoading:rl,makeAiAlignWhiteboardElements:on,editWhiteboardWithAI:oi,updateProjectNote:ou,updateElementLabels:of,viewOnly:eU,viewOnlyLinkKey:t8,convertUrlToMetadataJsonStringMutation:ni,addDefaultKanbanGroup:iI,updateProjectTicket:oc,updateProjectHtmlPage:oh,updateProjectSlideDeck:op,reorderProjectSlideDeckSlides:om,defaultWallHighlightStyle:ov,createWhiteboardEdge:ob,generateWhiteboardAiImage:oe,onPasteClipboardItem:iU,onHandleExternalImageDrop:iL,createUserLabelPreset:iz,deleteUserLabelPreset:iG,renameUserLabelPreset:iV,userLabelPresets:e8,onHandeUploadFiles:iB,onHandleUploadToolImages:iW,fillWhiteboardImagePlaceholder:iP,fillWhiteboardImagePlaceholderFromUrl:ij,fillWhiteboardFilePlaceholder:iR,updateWhiteboardEdgeAttribute:ox,updateWhiteboardEdgeConnection:oy,onEdgeControlPointsChange:ow,undoWhiteboardAction:nV,redoWhiteboardAction:n$,canUndo:nH,canRedo:nz,takeWhiteboardSnapshot:nN,revertLastWhiteboardSnapshot:nO,duplicateWhiteboardElements:iJ,createWhiteboardFolderShortcut:iM,cutPasteWhiteboardElements:iK,canvasEngine:t7,setCanvasEngine:re,addNewElementToWhiteboard:iH,moveMultipleElementsToNewWhiteboard:og,handleBoardClick:o_,arrangeSelectedAsGrid:ir,arrangeSelectedHorizontally:ii,arrangeSelectedVertically:io,arrangeSelectedAsMasonry:ia,normalizeSelectedSizes:il,arrangeSelectedAsOrbit:is,arrangeSelectedAsHubOrbit:oC,applyAlignment:id,repairSelectedOverlaps:iu,tickGrowthReflow:i6,endGrowthReflow:i9,kickGrowthReflow:i7,createNativeGroup:ih,deleteNativeGroup:ip,addElementsToNativeGroup:im,removeElementsFromNativeGroup:ig,addWallAdjacentInGroup:ib,addWallBesideWall:oE,createFrame:n4,addElementsToFrame:n8,removeElementsFromFrame:n3,updateFrameAttributes:n6,deleteFrame:n9,applyFrameMembership:n7,detachShrunkFrameMembers:ie,socketConnected:tw,socketConnecting:tE,socketError:tC,isCollaborativeBoard:rm,collabStatus:rw,handleCollabPointerMove:rf}),[os,iN,ik,iO,i$,iX,iQ,iZ,ol,iY,iq,i0,i1,i5,i2,i4,od,i8,i3,oT,oS,oA,t1,t2,oM,ok,rL,oo,tQ,or,nk,oF,oD,tZ,t0,rl,on,oi,ou,eU,t8,ni,iI,oc,oh,op,om,ov,ob,oe,iU,iL,iz,iG,iV,e8,iB,iW,iP,ij,iR,ox,oy,ow,nV,n$,nH,nz,nN,nO,iJ,iM,iK,t7,re,iH,og,o_,ir,ii,io,ia,il,is,oC,id,iu,i6,i9,i7,ih,ip,im,ig,ib,oE,n4,n8,n3,n6,n9,n7,ie,tw,tE,tC,rm,rw,rf,rg]);(0,ed.setWhiteboardActions)(oI);let oU=!!e9&&e9.id>0,oL=eU&&t6&&oU,oB=eU?t8??tt.get("r")??void 0:t8,oW=eU?(0,U.getReadonlyAccessToken)(oB??"")??void 0:void 0,oP=rT?.viewOnlyProject?.project?.whiteboard?.uid??void 0;return((0,y.useEffect)(()=>
105{eu.useWhiteboardViewStore.getState().setViewState({viewOnly:eU,canComment:oL,canDraw:oL,viewOnlyCommentingEnabled:eU&&t6,currentUserId:e9?.id,viewOnlyLinkKey:oB,viewOnlyAccessToken:oW,viewOnlyWhiteboardUid:oP,whiteboardId:ok,whiteboarableId:oD,project:oF,viewOnlyProjectCreatedByUser:oM,projectParticipants:t2,projectParticipantsMap:t1,userLabelPresets:e8,defaultWallHighlightStyle:ov,canvasEngine:t7,loading:tZ,queryLoading:rl,socketConnected:tw,socketConnecting:tE,socketError:tC})},[eU,oL,oL,t6,e9?.id,oB,oW,oP,ok,oD,oF,oM,t2,t1,e8,ov,t7,tZ,rl,tw,tE,tC]),rd&&rd.graphQLErrors.some(e=>e?.extensions?.code==="INVALID_ARGUMENT")&&!(0,f.isExportRenderSession)()&&te.push(et.HOME_ROUTE),rd&&(0,f.isExportRenderSession)()&&console.warn("[export-runner] project_query_error "+(rd.message??"unknown")),rI&&(rI.graphQLErrors.some(e=>e?.extensions?.code==="PERMISSION_DENIED")||rI.graphQLErrors.some(e=>e?.extensions?.code==="INVALID_ARGUMENT"))||rA&&(rA.graphQLErrors.some(e=>e?.extensions?.code==="PERMISSION_DENIED")||rA.graphQLErrors.some(e=>e?.extensions?.code==="INVALID_ARGUMENT")))?(0,r.jsx)(T.default,{resource:"project"}):rl&&eU?(0,r.jsx)(v.Center,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",children:(0,r.jsx)(k.Spinner,{size:"sm",color:"brand.600"})}):(0,r.jsxs)(eY.Provider,{value:oI,children:[!rn&&!rd&&(0,r.jsx)(S.default,{}),eU&&rv.passwordRequired&&(0,r.jsx)(I.default,{resource:"board",isSubmitting:rv.isSubmitting,errorMessage:rv.passwordError,onSubmit:e=>rv.submitPassword(e,rk)}),!rl&&!rd&&!rv.passwordRequired&&!ro?.project?.whiteboard&&rn&&!rc&&(0,r.jsx)(T.default,{resource:"projects"}),!rl&&!rd&&rc&&(0,r.jsx)(M.default,{resource:"project"}),!rd&&(0,r.jsx)(r.Fragment,{children:e}),eK&&!eU&&(0,r.jsx)(eb.default,{onExport:nQ}),rd&&rd.graphQLErrors.some(e=>e?.extensions?.code==="PERMISSION_DENIED")&&(0,r.jsx)(T.default,{resource:"project"}),tM&&(0,r.jsx)(_.default,{project:ti.current,projectId:ti.current?.id,projectUid:ti.current?.uid,newBlueprintDialog:tM,addWhiteboardElement:ik,isOpen:tU,onClose:()=>tL(!1)})]})};function eX(){return(0,y.useContext)(eY)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.