bit-office 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[823],{1204:(e,t,r)=>{"use strict";r.d(t,{FH:()=>a,Ii:()=>f,PT:()=>c,WC:()=>u,iH:()=>h,iZ:()=>d,qZ:()=>s,si:()=>p,vk:()=>g});var n=r(5195),o=r(2243),l=r(9892),i=r(9631);function a(e,t,r,l,i){let a=r*e.cols+t;if(a<0||a>=e.tiles.length)return e;let s=e.tileColors||Array(e.tiles.length).fill(null),c=null!=i?i:l===n.nb.WALL||l===n.nb.VOID?null:{...o.ql};if(e.tiles[a]===l){let t=s[a];if(null===c&&null===t||c&&t&&c.h===t.h&&c.s===t.s&&c.b===t.b&&c.c===t.c&&!!c.colorize==!!t.colorize)return e}let d=[...e.tiles];d[a]=l;let u=[...s];return u[a]=c,{...e,tiles:d,tileColors:u}}function s(e,t){return f(e,t.type,t.col,t.row)?{...e,furniture:[...e.furniture,t]}:e}function c(e,t){let r=e.furniture.filter(e=>e.uid!==t);return r.length===e.furniture.length?e:{...e,furniture:r}}function d(e,t,r,n){let o=e.furniture.find(e=>e.uid===t);return o&&f(e,o.type,r,n,t)?{...e,furniture:e.furniture.map(e=>e.uid===t?{...e,col:r,row:n}:e)}:e}function u(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"cw",n=e.furniture.find(e=>e.uid===t);if(!n)return e;let o=(0,l.UV)(n.type,r);return o?{...e,furniture:e.furniture.map(e=>e.uid===t?{...e,type:o}:e)}:e}function p(e,t){let r=(0,l.Um)(e);return(null==r?void 0:r.canPlaceOnWalls)?t-(r.footprintH-1):t}function f(e,t,r,o,a){let s=(0,l.Um)(t);if(!s)return!1;if(s.canPlaceOnWalls){let t=o+s.footprintH-1;if(r<0||r+s.footprintW>e.cols||t<0||t>=e.rows)return!1}else if(r<0||o<0||r+s.footprintW>e.cols||o+s.footprintH>e.rows)return!1;let c=s.backgroundTiles||0;for(let t=0;t<s.footprintH;t++)if(!(t<c)&&!(o+t<0)&&(!s.canPlaceOnWalls||!(t<s.footprintH-1)))for(let l=0;l<s.footprintW;l++){let i=(o+t)*e.cols+(r+l),a=e.tiles[i];if(s.canPlaceOnWalls){if(a!==n.nb.WALL)return!1}else if(a===n.nb.VOID||a===n.nb.WALL)return!1}let d=(0,i.Pg)(e.furniture,a),u=null;if(s.canPlaceOnSurfaces)for(let t of(u=new Set,e.furniture)){if(t.uid===a)continue;let e=(0,l.Um)(t.type);if(e&&e.isDesk)for(let r=0;r<e.footprintH;r++)for(let n=0;n<e.footprintW;n++)u.add("".concat(t.col+n,",").concat(t.row+r))}let p=s.backgroundTiles||0;for(let e=0;e<s.footprintH;e++)if(!(e<p)&&!(o+e<0))for(let t=0;t<s.footprintW;t++){let n="".concat(r+t,",").concat(o+e);if(d.has(n)&&!(null==u?void 0:u.has(n)))return!1}return!0}function g(e,t){let{cols:r,rows:o,tiles:l,furniture:i,tileColors:a}=e,s=a||Array(l.length).fill(null),c=r,d=o,u=0,p=0;if("right"===t?c=r+1:"left"===t?(c=r+1,u=1):"down"===t?d=o+1:"up"===t&&(d=o+1,p=1),c>n.Tj||d>n.pX)return null;let f=Array(c*d).fill(n.nb.VOID),g=Array(c*d).fill(null);for(let e=0;e<o;e++)for(let t=0;t<r;t++){let n=e*r+t,o=(e+p)*c+(t+u);f[o]=l[n],g[o]=s[n]}let h=i.map(e=>({...e,col:e.col+u,row:e.row+p}));return{layout:{...e,cols:c,rows:d,tiles:f,tileColors:g,furniture:h},shift:{col:u,row:p}}}function h(e,t,r){for(let n of e.furniture){let e=(0,l.Um)(n.type);if(e){for(let o=0;o<e.footprintH;o++)for(let l=0;l<e.footprintW;l++)if(n.col+l===t&&n.row+o===r)return n}}return null}},1661:(e,t,r)=>{"use strict";r.d(t,{LN:()=>o,Zg:()=>l,fu:()=>s});let n=new Map;function o(e,t,r){let o=n.get(e);if(o)return o;let l=r.colorize?function(e,t){let{h:r,s:n,b:o,c:l}=t,a=[];for(let t of e){let e=[];for(let a of t){if(""===a){e.push("");continue}let t=parseInt(a.slice(1,3),16),s=(.299*t+.587*parseInt(a.slice(3,5),16)+.114*parseInt(a.slice(5,7),16))/255;0!==l&&(s=.5+(100+l)/100*(s-.5)),0!==o&&(s+=o/200);let c=i(r,n/100,s=Math.max(0,Math.min(1,s)));e.push(c)}a.push(e)}return a}(t,r):s(t,r);return n.set(e,l),l}function l(){n.clear()}function i(e,t,r){let n=(1-Math.abs(2*r-1))*t,o=e/60,l=n*(1-Math.abs(o%2-1)),i=0,s=0,c=0;o<1?(i=n,s=l,c=0):o<2?(i=l,s=n,c=0):o<3?(i=0,s=n,c=l):o<4?(i=0,s=l,c=n):o<5?(i=l,s=0,c=n):(i=n,s=0,c=l);let d=r-n/2,u=Math.round((i+d)*255),p=Math.round((s+d)*255),f=Math.round((c+d)*255);return"#".concat(a(u).toString(16).padStart(2,"0")).concat(a(p).toString(16).padStart(2,"0")).concat(a(f).toString(16).padStart(2,"0")).toUpperCase()}function a(e){return Math.max(0,Math.min(255,e))}function s(e,t){let{h:r,s:n,b:o,c:l}=t,a=[];for(let t of e){let e=[];for(let a of t){if(""===a){e.push("");continue}let t=parseInt(a.slice(1,3),16),[s,c,d]=function(e,t,r){let n=e/255,o=t/255,l=r/255,i=Math.max(n,o,l),a=Math.min(n,o,l),s=(i+a)/2;if(i===a)return[0,0,s];let c=i-a;return[i===n?((o-l)/c+6*(o<l))*60:i===o?((l-n)/c+2)*60:((n-o)/c+4)*60,s>.5?c/(2-i-a):c/(i+a),s]}(t,parseInt(a.slice(3,5),16),parseInt(a.slice(5,7),16)),u=((s+r)%360+360)%360,p=Math.max(0,Math.min(1,c+n/100)),f=d;0!==l&&(f=.5+(100+l)/100*(f-.5)),0!==o&&(f+=o/200);let g=i(u,p,f=Math.max(0,Math.min(1,f)));e.push(g)}a.push(e)}return a}},2243:(e,t,r)=>{"use strict";r.d(t,{$L:()=>X,AL:()=>G,BD:()=>er,BZ:()=>b,DH:()=>en,F2:()=>D,Ii:()=>ee,M1:()=>k,M_:()=>ea,Mo:()=>J,Nd:()=>W,Ns:()=>ef,O1:()=>H,O9:()=>el,Ot:()=>h,PA:()=>B,Pk:()=>eb,R_:()=>Y,Rb:()=>f,S3:()=>d,SS:()=>N,Sg:()=>I,TE:()=>Q,Tj:()=>i,W3:()=>S,W7:()=>R,WJ:()=>w,WK:()=>ei,Wn:()=>v,Ww:()=>y,XE:()=>s,Xo:()=>eu,YK:()=>l,YX:()=>L,ZV:()=>eo,Zz:()=>et,dn:()=>n,e7:()=>ey,fJ:()=>V,fS:()=>ek,gB:()=>T,gD:()=>q,gi:()=>E,hI:()=>A,he:()=>g,i:()=>K,iE:()=>O,ic:()=>es,k2:()=>eh,k8:()=>p,l0:()=>F,lY:()=>c,n6:()=>j,o3:()=>eg,oj:()=>$,ou:()=>ep,p7:()=>ed,pX:()=>a,pr:()=>Z,q3:()=>z,qD:()=>P,ql:()=>eS,qt:()=>ec,v3:()=>M,vU:()=>x,wN:()=>m,wh:()=>o,wj:()=>u,y9:()=>_,zY:()=>U,zw:()=>C});let n=16,o=21,l=21,i=64,a=64,s=48,c=.15,d=.3,u=2,p=20,f=3,g=6,h=120,y=240,b=.3,k=6,S=16,m=24,x=30,T=180,A=.3,C="#ccffcc",W=.6,E=.5,v=.33,w=.66,O=6,I=.5,D=.001,H=1,_=.5,P=.5,R=.25,j=[4,3],F=6,L=3,Y=.45,N=1.5,U=.5,M=.5,B=10,X=24,z="#808080",G="rgba(255,255,255,0.12)",V="rgba(255,255,255,0.08)",K=[2,2],J="rgba(60, 130, 220, 0.25)",Z="rgba(60, 130, 220, 0.5)",q="rgba(255, 255, 255, 0.06)",Q="#00ff00",$="#ff0000",ee="#007fd4",et="rgba(200, 50, 50, 0.85)",er="rgba(50, 120, 200, 0.85)",en=1,eo=10,el=.1,ei=2,ea=.3,es=6,ec=45,ed=271,eu=3,ep=2,ef=8,eg=24,eh=50,ey=500,eb={h:35,s:30,b:15,c:0},ek={h:240,s:25,b:0,c:0},eS={h:0,s:0,b:0,c:0}},2988:(e,t,r)=>{"use strict";r.d(t,{$D:()=>f,Cr:()=>K,Ih:()=>J,L$:()=>s,SJ:()=>c,US:()=>l,VQ:()=>g,WN:()=>i,Zc:()=>p,bn:()=>z,iK:()=>a,mY:()=>u,mr:()=>d});var n=r(5195),o=r(1661);let l=(()=>{let e="#8B6914",t="#A07828",r="#B8922E",n="#6B4E0A",o=[];o.push(Array(32).fill("")),o.push(["",...Array(30).fill(e),""]);for(let n=0;n<4;n++)o.push(["",e,...Array(28).fill(n<1?t:r),e,""]);o.push(["",n,...Array(28).fill(e),n,""]);for(let t=0;t<6;t++)o.push(["",e,...Array(28).fill(r),e,""]);o.push(["",e,...Array(28).fill(t),e,""]);for(let t=0;t<6;t++)o.push(["",e,...Array(28).fill(r),e,""]);o.push(["",n,...Array(28).fill(e),n,""]);for(let n=0;n<4;n++)o.push(["",e,...Array(28).fill(n>2?t:r),e,""]);o.push(["",...Array(30).fill(e),""]);for(let e=0;e<4;e++){let e=Array(32).fill("");e[1]=n,e[2]=n,e[29]=n,e[30]=n,o.push(e)}return o.push(Array(32).fill("")),o.push(Array(32).fill("")),o})(),i=(()=>{let e="#3D8B37",t="#2D6B27",r="#6B4E0A",n="#B85C3A",o="#8B4422";return[["","","","","","",e,e,"","","","","","","",""],["","","","","",e,e,e,e,"","","","","","",""],["","","","",e,e,t,e,e,e,"","","","","",""],["","","",e,e,t,e,e,t,e,e,"","","","",""],["","",e,e,e,e,e,e,e,e,e,e,"","","",""],["",e,e,t,e,e,e,e,e,e,t,e,e,"","",""],["",e,e,e,e,t,e,e,t,e,e,e,e,"","",""],["","",e,e,e,e,e,e,e,e,e,e,"","","",""],["","","",e,e,e,t,e,e,e,e,"","","","",""],["","","","",e,e,e,e,e,e,"","","","","",""],["","","","","",e,e,e,e,"","","","","","",""],["","","","","","",r,r,"","","","","","","",""],["","","","","","",r,r,"","","","","","","",""],["","","","","","",r,r,"","","","","","","",""],["","","","","",o,o,o,o,o,"","","","","",""],["","","","",o,n,n,n,n,n,o,"","","","",""],["","","","",o,n,n,n,n,n,o,"","","","",""],["","","","",o,n,n,n,n,n,o,"","","","",""],["","","","",o,n,n,n,n,n,o,"","","","",""],["","","","",o,n,n,n,n,n,o,"","","","",""],["","","","",o,n,n,n,n,n,o,"","","","",""],["","","","","",o,n,n,n,o,"","","","","",""],["","","","","","",o,o,o,"","","","","","",""],["","","","","","","","","","","","","","","",""]]})(),a=(()=>{let e="#8B6914",t="#6B4E0A",r="#CC4444",n="#4477AA",o="#44AA66",l="#CCAA33",i="#9955AA";return[["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,""],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,r,r,n,n,o,o,l,l,r,r,n,n,t,e],[e,t,r,r,n,n,o,o,l,l,r,r,n,n,t,e],[e,t,r,r,n,n,o,o,l,l,r,r,n,n,t,e],[e,t,r,r,n,n,o,o,l,l,r,r,n,n,t,e],[e,t,r,r,n,n,o,o,l,l,r,r,n,n,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,i,i,l,l,n,n,o,o,i,i,r,r,t,e],[e,t,i,i,l,l,n,n,o,o,i,i,r,r,t,e],[e,t,i,i,l,l,n,n,o,o,i,i,r,r,t,e],[e,t,i,i,l,l,n,n,o,o,i,i,r,r,t,e],[e,t,i,i,l,l,n,n,o,o,i,i,r,r,t,e],[e,t,i,i,l,l,n,n,o,o,i,i,r,r,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,o,o,r,r,i,i,n,n,l,l,o,o,t,e],[e,t,o,o,r,r,i,i,n,n,l,l,o,o,t,e],[e,t,o,o,r,r,i,i,n,n,l,l,o,o,t,e],[e,t,o,o,r,r,i,i,n,n,l,l,o,o,t,e],[e,t,o,o,r,r,i,i,n,n,l,l,o,o,t,e],[e,t,o,o,r,r,i,i,n,n,l,l,o,o,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,""]]})(),s=(()=>{let e="#CCDDEE",t="#88BBDD",r="#999999",n="#666666";return[["","","","","","","","","","","","","","","",""],["","","","","",r,r,r,r,r,r,"","","","",""],["","","","",r,t,t,t,t,t,t,r,"","","",""],["","","","",r,t,t,t,t,t,t,r,"","","",""],["","","","",r,t,t,t,t,t,t,r,"","","",""],["","","","",r,t,t,t,t,t,t,r,"","","",""],["","","","",r,t,t,t,t,t,t,r,"","","",""],["","","","","",r,r,r,r,r,r,"","","","",""],["","","","","",r,e,e,e,e,r,"","","","",""],["","","","","",r,e,e,e,e,r,"","","","",""],["","","","","",r,e,e,e,e,r,"","","","",""],["","","","","",r,e,e,e,e,r,"","","","",""],["","","","","",r,e,e,e,e,r,"","","","",""],["","","","",r,r,e,e,e,e,r,r,"","","",""],["","","","",r,e,e,e,e,e,e,r,"","","",""],["","","","",r,e,e,e,e,e,e,r,"","","",""],["","","","",r,r,r,r,r,r,r,r,"","","",""],["","","","","",r,n,n,n,n,r,"","","","",""],["","","","","",r,n,n,n,n,r,"","","","",""],["","","","","",r,n,n,n,n,r,"","","","",""],["","","","",r,r,n,n,n,n,r,r,"","","",""],["","","","",r,n,n,n,n,n,n,r,"","","",""],["","","","",r,r,r,r,r,r,r,r,"","","",""],["","","","","","","","","","","","","","","",""]]})(),c=(()=>{let e="#AAAAAA",t="#EEEEFF",r="#CC4444",n="#4477AA";return[["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,r,r,r,t,t,t,t,t,n,n,n,n,t,t,t,t,t,t,t,r,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,n,n,t,t,r,t,t,t,t,t,t,e,""],["",e,t,t,t,t,r,r,r,r,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,n,n,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,n,n,n,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,r,r,r,t,t,t,t,t,t,t,e,""],["",e,t,r,r,t,t,t,t,t,t,t,t,t,t,t,n,n,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,n,n,n,t,t,t,t,t,t,t,t,t,t,t,t,t,r,r,r,r,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,""],["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]]})(),d=(()=>{let e="#8B6914",t="#6B4E0A",r="#5C3D0A",n="#A07828";return[["","","","","",t,t,t,t,t,t,"","","","",""],["","","","",t,r,r,r,r,r,r,t,"","","",""],["","","","",t,r,n,n,n,n,r,t,"","","",""],["","","","",t,r,n,n,n,n,r,t,"","","",""],["","","","",t,r,n,n,n,n,r,t,"","","",""],["","","","",t,r,n,n,n,n,r,t,"","","",""],["","","","",t,r,n,n,n,n,r,t,"","","",""],["","","","",t,r,n,n,n,n,r,t,"","","",""],["","","","",t,r,n,n,n,n,r,t,"","","",""],["","","","",t,r,r,r,r,r,r,t,"","","",""],["","","","","",t,t,t,t,t,t,"","","","",""],["","","","","","",t,e,e,t,"","","","","",""],["","","","","","",t,e,e,t,"","","","","",""],["","","","","",t,t,t,t,t,t,"","","","",""],["","","","","",t,"","","","",t,"","","","",""],["","","","","",t,"","","","",t,"","","","",""]]})(),u=(()=>{let e="#555555",t="#3A3A5C",r="#6688CC",n="#444444";return[["","","",e,e,e,e,e,e,e,e,e,e,"","",""],["","","",e,t,t,t,t,t,t,t,t,e,"","",""],["","","",e,t,r,r,r,r,r,r,t,e,"","",""],["","","",e,t,r,r,r,r,r,r,t,e,"","",""],["","","",e,t,r,r,r,r,r,r,t,e,"","",""],["","","",e,t,r,r,r,r,r,r,t,e,"","",""],["","","",e,t,r,r,r,r,r,r,t,e,"","",""],["","","",e,t,r,r,r,r,r,r,t,e,"","",""],["","","",e,t,t,t,t,t,t,t,t,e,"","",""],["","","",e,e,e,e,e,e,e,e,e,e,"","",""],["","","","","","","",n,n,"","","","","","",""],["","","","","","","",n,n,"","","","","","",""],["","","","","","",n,n,n,n,"","","","","",""],["","","","","",n,n,n,n,n,n,"","","","",""],["","","","","",n,n,n,n,n,n,"","","","",""],["","","","","","","","","","","","","","","",""]]})(),p=(()=>{let e="#FFDD55",t="#FFEE88",r="#888888",n="#555555",o="#FFFFCC";return[["","","","","","","","","","","","","","","",""],["","","","","","",o,o,o,o,"","","","","",""],["","","","","",o,e,e,e,e,o,"","","","",""],["","","","",o,e,e,t,t,e,e,o,"","","",""],["","","","",e,e,t,t,t,t,e,e,"","","",""],["","","","",e,e,t,t,t,t,e,e,"","","",""],["","","","","",e,e,e,e,e,e,"","","","",""],["","","","","","",r,r,r,r,"","","","","",""],["","","","","","","",r,r,"","","","","","",""],["","","","","","","",r,r,"","","","","","",""],["","","","","","","",r,r,"","","","","","",""],["","","","","","","",r,r,"","","","","","",""],["","","","","","",r,r,r,r,"","","","","",""],["","","","","",n,n,n,n,n,n,"","","","",""],["","","","","",n,n,n,n,n,n,"","","","",""],["","","","","","","","","","","","","","","",""]]})(),f=(()=>{let e="#555566",t="#EEEEFF",r="#CCA700";return[[e,e,e,e,e,e,e,e,e,e,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,r,t,r,t,r,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,e,e,e,e,e,e,e,e,e,e],["","","","",e,e,e,"","","",""],["","","","","",e,"","","","",""],["","","","","","","","","","",""]]})(),g=(()=>{let e="#555566",t="#EEEEFF",r="#44BB66";return[["",e,e,e,e,e,e,e,e,e,""],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,r,t,e],[e,t,t,t,t,t,t,r,t,t,e],[e,t,t,r,t,t,r,t,t,t,e],[e,t,t,t,r,r,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],["",e,e,e,e,e,e,e,e,e,""],["","","","",e,e,e,"","","",""],["","","","","",e,"","","","",""],["","","","","","","","","","",""]]})(),h=[{skin:"#FFCC99",shirt:"#4488CC",pants:"#334466",hair:"#553322",shoes:"#222222"},{skin:"#FFCC99",shirt:"#CC4444",pants:"#333333",hair:"#FFD700",shoes:"#222222"},{skin:"#DEB887",shirt:"#44AA66",pants:"#334444",hair:"#222222",shoes:"#333333"},{skin:"#FFCC99",shirt:"#AA55CC",pants:"#443355",hair:"#AA4422",shoes:"#222222"},{skin:"#DEB887",shirt:"#CCAA33",pants:"#444433",hair:"#553322",shoes:"#333333"},{skin:"#FFCC99",shirt:"#FF8844",pants:"#443322",hair:"#111111",shoes:"#222222"}],y="hair",b="skin",k="shirt",S="pants",m="shoes",x="#FFFFFF";function T(e,t){return e.map(e=>e.map(e=>""===e?"":e===x?x:e===y?t.hair:e===b?t.skin:e===k?t.shirt:e===S?t.pants:e===m?t.shoes:e))}let A=[["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,x,b,b,x,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","",S,S,"","","","",S,S,"","","",""],["","","","",S,S,"","","","",S,S,"","","",""],["","","","",m,m,"","","","","",m,m,"","",""],["","","","",m,m,"","","","","",m,m,"","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],C=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,x,b,b,x,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],W=[["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,x,b,b,x,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","",m,m,"","","","","","",S,S,"","",""],["","","",m,m,"","","","","","",S,S,"","",""],["","","","","","","","","","",m,m,"","","",""],["","","","","","","","","","",m,m,"","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],E=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,x,b,b,x,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","",b,b,k,k,k,k,k,k,b,b,"","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],v=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,x,b,b,x,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,b,"","",""],["","","","",b,k,k,k,k,k,k,"",b,"","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],w=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,x,b,b,x,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],O=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,x,b,b,x,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],I=[["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","",S,S,"","","","",S,S,"","","",""],["","","","",S,S,"","","","",S,S,"","","",""],["","","",m,m,"","","","","","",m,m,"","",""],["","","",m,m,"","","","","","",m,m,"","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],D=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],H=[["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","",m,m,"","","","","","",S,S,"","",""],["","","",m,m,"","","","","","",S,S,"","",""],["","","","","","","","","","",m,m,"","","",""],["","","","","","","","","","",m,m,"","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],_=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","",b,b,k,k,k,k,k,k,b,b,"","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],P=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,b,"","",""],["","","","",b,k,k,k,k,k,k,"",b,"","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],R=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],j=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",k,k,k,k,k,k,k,k,"","","",""],["","","","",b,k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,S,S,S,S,"","","","",""],["","","","","",S,S,"","",S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],F=[["","","","","","","","","","","","","","","",""],["","","","","","","",y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,x,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","","","",k,k,k,"","","","","",""],["","","","","","",k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",b,k,k,k,k,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","",S,S,"","","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","",S,S,"","","",S,S,"","","",""],["","","","","",S,S,"","","",S,S,"","","",""],["","","","","",m,m,"","","","",m,m,"","",""],["","","","","",m,m,"","","","",m,m,"","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],L=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,x,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","","","",k,k,k,"","","","","",""],["","","","","","",k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",b,k,k,k,k,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","",S,S,"","","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,"",S,S,"","","","",""],["","","","","","",S,S,"",S,S,"","","","",""],["","","","","","",S,S,"",S,S,"","","","",""],["","","","","","",m,m,"",m,m,"","","","",""],["","","","","","",m,m,"",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],Y=[["","","","","","","","","","","","","","","",""],["","","","","","","",y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,x,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","","","",k,k,k,"","","","","",""],["","","","","","",k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",b,k,k,k,k,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","",S,S,"","","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","","","",S,S,S,"","","","",""],["","","","","","","","",S,S,S,"","","","",""],["","","","","",m,m,"","",m,m,"","","","",""],["","","","","",m,m,"","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],N=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,x,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","","","",k,k,k,"","","","","",""],["","","","","","",k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,b,"","","",""],["","","","","",k,k,k,k,k,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","",S,S,"","","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,"",S,S,"","","","",""],["","","","","","",m,m,"",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],U=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,x,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","","","",k,k,k,"","","","","",""],["","","","","","",k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"",b,"","",""],["","","","","",k,k,k,k,k,"","",b,"","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","",S,S,"","","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,"",S,S,"","","","",""],["","","","","","",m,m,"",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],M=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,x,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","","","",k,k,k,"","","","","",""],["","","","","","",k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",b,k,k,k,k,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","",S,S,"","","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,"",S,S,"","","","",""],["","","","","","",m,m,"",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],B=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,x,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","","","",k,k,k,"","","","","",""],["","","","","","",k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",b,k,k,k,k,b,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","",S,S,"","","","","","",""],["","","","","","",S,S,S,S,"","","","","",""],["","","","","","",S,S,"",S,S,"","","","",""],["","","","","","",m,m,"",m,m,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],X=null;function z(e){X=e,V.clear()}function G(e){return e.map(e=>[...e].reverse())}let V=new Map;function K(e){return X?X[e%X.length].down[1]:null}function J(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,l="".concat(e,":").concat(r),i=V.get(l);if(i)return i;if(X){let r=X[e%X.length],o=r.down,l=r.up,i=r.right;t={walk:{[n.OP.DOWN]:[o[0],o[1],o[2],o[1]],[n.OP.UP]:[l[0],l[1],l[2],l[1]],[n.OP.RIGHT]:[i[0],i[1],i[2],i[1]],[n.OP.LEFT]:[G(i[0]),G(i[1]),G(i[2]),G(i[1])]},typing:{[n.OP.DOWN]:[o[3],o[4]],[n.OP.UP]:[l[3],l[4]],[n.OP.RIGHT]:[i[3],i[4]],[n.OP.LEFT]:[G(i[3]),G(i[4])]},reading:{[n.OP.DOWN]:[o[5],o[6]],[n.OP.UP]:[l[5],l[6]],[n.OP.RIGHT]:[i[5],i[6]],[n.OP.LEFT]:[G(i[5]),G(i[6])]}}}else{let r=h[e%h.length],o=e=>T(e,r),l=e=>T(e.map(e=>[...e].reverse()),r);t={walk:{[n.OP.DOWN]:[o(A),o(C),o(W),o(C)],[n.OP.UP]:[o(I),o(D),o(H),o(D)],[n.OP.RIGHT]:[o(F),o(L),o(Y),o(L)],[n.OP.LEFT]:[l(F),l(L),l(Y),l(L)]},typing:{[n.OP.DOWN]:[o(E),o(v)],[n.OP.UP]:[o(_),o(P)],[n.OP.RIGHT]:[o(N),o(U)],[n.OP.LEFT]:[l(N),l(U)]},reading:{[n.OP.DOWN]:[o(w),o(O)],[n.OP.UP]:[o(R),o(j)],[n.OP.RIGHT]:[o(M),o(B)],[n.OP.LEFT]:[l(M),l(B)]}}}return 0!==r&&(t=function(e,t){let r={h:t,s:0,b:0,c:0},l=e=>(0,o.fu)(e,r),i=e=>[l(e[0]),l(e[1]),l(e[2]),l(e[3])],a=e=>[l(e[0]),l(e[1])];return{walk:{[n.OP.DOWN]:i(e.walk[n.OP.DOWN]),[n.OP.UP]:i(e.walk[n.OP.UP]),[n.OP.RIGHT]:i(e.walk[n.OP.RIGHT]),[n.OP.LEFT]:i(e.walk[n.OP.LEFT])},typing:{[n.OP.DOWN]:a(e.typing[n.OP.DOWN]),[n.OP.UP]:a(e.typing[n.OP.UP]),[n.OP.RIGHT]:a(e.typing[n.OP.RIGHT]),[n.OP.LEFT]:a(e.typing[n.OP.LEFT])},reading:{[n.OP.DOWN]:a(e.reading[n.OP.DOWN]),[n.OP.UP]:a(e.reading[n.OP.UP]),[n.OP.RIGHT]:a(e.reading[n.OP.RIGHT]),[n.OP.LEFT]:a(e.reading[n.OP.LEFT])}}}(t,r)),V.set(l,t),t}},4296:(e,t,r)=>{"use strict";r.d(t,{F:()=>h,Q:()=>u});var n=r(2988),o=r(4777),l=r(5055);let i=["down","up","right"];function a(e){return new Promise((t,r)=>{let n=new Image;n.crossOrigin="anonymous",n.onload=()=>t(n),n.onerror=t=>r(Error("Failed to load image: ".concat(e," — ").concat(t))),n.src=e})}function s(e,t,r,n,o){let l=document.createElement("canvas");l.width=n,l.height=o;let i=l.getContext("2d"),a=e.naturalWidth,s=e.naturalHeight,c=Math.max(0,t),d=Math.max(0,r),u=Math.min(t+n,a)-c,p=Math.min(r+o,s)-d;u>0&&p>0&&i.drawImage(e,c,d,u,p,c-t,d-r,u,p);let{data:f}=i.getImageData(0,0,n,o),g=[];for(let e=0;e<o;e++){let t=[];for(let r=0;r<n;r++){let o=(e*n+r)*4,l=f[o],i=f[o+1],a=f[o+2];f[o+3]<128?t.push(""):t.push("#".concat(l.toString(16).padStart(2,"0")).concat(i.toString(16).padStart(2,"0")).concat(a.toString(16).padStart(2,"0")).toUpperCase())}g.push(t)}return g}async function c(){let e=[];for(let t=0;t<6;t++){let r=await a("/assets/characters/char_".concat(t,".png")),n={down:[],up:[],right:[]};for(let e=0;e<i.length;e++){let t=i[e],o=32*e,l=[];for(let e=0;e<7;e++){let t=16*e;l.push(s(r,t,o,16,32))}n[t]=l}e.push(n)}return e}async function d(){let e=await a("/assets/walls.png"),t=[];for(let r=0;r<16;r++){let n=r%4*16,o=32*Math.floor(r/4);t.push(s(e,n,o,16,32))}return t}let u=[{id:"ASSET_4",label:"Wooden Counter",srcX:128,srcY:0,srcW:48,srcH:32,footprintW:3,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_7",label:"White Counter",srcX:80,srcY:23,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_15",label:"Plastic Counter",srcX:128,srcY:64,srcW:48,srcH:32,footprintW:3,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_NEW_106",label:"Wooden Table",srcX:16,srcY:-9,srcW:48,srcH:32,footprintW:3,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_27_A",label:"Large Table",srcX:16,srcY:528,srcW:32,srcH:64,footprintW:2,footprintH:4,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_46",label:"Vertical Table",srcX:16,srcY:288,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!0,category:"desks"},{id:"ASSET_NEW_112",label:"Coffee Table",srcX:48,srcY:624,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_50_0_0",label:"Wood Coffee Table",srcX:64,srcY:299,srcW:32,srcH:16,footprintW:2,footprintH:1,isDesk:!0,category:"desks"},{id:"ASSET_17",label:"Wooden Bookshelf",srcX:112,srcY:512,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_18",label:"Full Bookshelf",srcX:144,srcY:512,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_27_B_A_A",label:"Bookshelf Tall",srcX:128,srcY:183,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_27_B_A_B_A",label:"Full Bookshelf Tall",srcX:144,srcY:183,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_27_B_A_B_B_A",label:"Cabinet Tall",srcX:160,srcY:183,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_28",label:"White Bookshelf",srcX:192,srcY:184,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_41_0_1",label:"Fridge",srcX:208,srcY:264,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_139",label:"Crates",srcX:224,srcY:447,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_32",label:"Chair Front",srcX:0,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_38",label:"Chair Back",srcX:16,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_33",label:"Chair Right",srcX:32,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_34",label:"Chair Left",srcX:48,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_35",label:"Office Chair Front",srcX:64,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_39",label:"Office Chair Back",srcX:80,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_36",label:"Office Chair Right",srcX:96,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_37",label:"Office Chair Left",srcX:112,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_49",label:"Stool",srcX:0,srcY:290,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_NEW_110",label:"Large Chair Right",srcX:16,srcY:624,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"chairs"},{id:"ASSET_NEW_111",label:"Large Chair Left",srcX:32,srcY:624,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"chairs"},{id:"ASSET_90",label:"Computer + Coffee",srcX:192,srcY:358,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_74",label:"CRT Monitor Off",srcX:128,srcY:360,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_76",label:"CRT Monitor On",srcX:160,srcY:360,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_78",label:"Monitor Off",srcX:192,srcY:359,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_79",label:"Monitor On",srcX:224,srcY:359,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_107",label:"Laptop Off",srcX:128,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_108",label:"Laptop On",srcX:144,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_99",label:"Laptop Left",srcX:177,srcY:386,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_109",label:"Laptop Back",srcX:192,srcY:386,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_61",label:"Telephone",srcX:192,srcY:304,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_123",label:"Server",srcX:131,srcY:417,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_126",label:"Printer",srcX:216,srcY:423,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_63",label:"Wood Window",srcX:32,srcY:319,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_64",label:"White Window",srcX:64,srcY:319,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_80",label:"Small Window Wood",srcX:80,srcY:351,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_81",label:"Small Window White",srcX:96,srcY:351,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_83",label:"Clock White",srcX:0,srcY:360,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_84",label:"Clock Color",srcX:15,srcY:352,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_101",label:"Painting",srcX:0,srcY:384,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_102",label:"Painting 2",srcX:32,srcY:384,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_103",label:"Small Painting",srcX:64,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_118",label:"Chart 1",srcX:32,srcY:415,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_122",label:"Chalkboard",srcX:0,srcY:415,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_134",label:"Chart 2",srcX:0,srcY:448,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_140",label:"White Plant",srcX:96,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_141",label:"White Plant 2",srcX:112,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_142",label:"Plant",srcX:64,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_143",label:"Plant 2",srcX:80,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_72",label:"Red Book",srcX:163,srcY:336,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"decor",canPlaceOnSurfaces:!0},{id:"ASSET_100",label:"Paper",srcX:240,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_40",label:"Vending Machine",srcX:224,srcY:264,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"misc",backgroundTiles:1},{id:"ASSET_42",label:"Water Cooler",srcX:142,srcY:264,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"misc",backgroundTiles:1},{id:"ASSET_44",label:"Bin",srcX:130,srcY:278,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"misc"},{id:"ASSET_51",label:"Coffee Mug",srcX:225,srcY:299,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"misc",canPlaceOnSurfaces:!0},{id:"ASSET_55",label:"Coffee Machine",srcX:161,srcY:309,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"misc",canPlaceOnSurfaces:!0,backgroundTiles:1}],p={ASSET_17:{fill:"#8B6914",edge:"#5B4910"},ASSET_18:{fill:"#7B5910",edge:"#4B3908"},ASSET_27_A:{fill:"#D4C090",edge:"#B8A070"},ASSET_NEW_106:{fill:"#C8B480",edge:"#A89460"},ASSET_NEW_110:{fill:"#9B5050",edge:"#6B3030"},ASSET_NEW_111:{fill:"#9B5050",edge:"#6B3030"},ASSET_NEW_112:{fill:"#D4C090",edge:"#B8A070"}};async function f(){let e=await a("/Office%20Tileset/Office%20Tileset%20All%2016x16.png"),t=new Map;for(let r of u){let n=s(e,r.srcX,r.srcY,r.srcW,r.srcH);if(function(e){for(let t of e)for(let e of t)if(""!==e)return!1;return!0}(n)){let e=p[r.id];e&&t.set(r.id,function(e,t,r,n){let o=[];for(let l=0;l<t;l++){let i=[];for(let o=0;o<e;o++)0===o||o===e-1||0===l||l===t-1?i.push(n):i.push(r);o.push(i)}return o}(r.srcW,r.srcH,e.fill,e.edge))}else t.set(r.id,n)}return{sprites:t}}async function g(){try{let e=await fetch("/pixel-agents-layout.json");if(!e.ok)return null;let t=await e.json();if(t&&1===t.version&&Array.isArray(t.tiles))return t;return null}catch(e){return null}}async function h(){let[e,t,r,i]=await Promise.all([c(),d(),f(),g()]),a=function(){let e=[],t=[{base:"#C8B896",accent:"#B8A886"},{base:"#D4C4A0",accent:"#C4B490"},{base:"#B0A888",accent:"#A09878"},{base:"#A89078",accent:"#988068"},{base:"#C0B898",accent:"#B0A888"},{base:"#B8A890",accent:"#A89880"},{base:"#D0C0A0",accent:"#C0B090"}];for(let r=0;r<7;r++){let{base:n,accent:o}=t[r],l=[];for(let e=0;e<16;e++){let t=[];for(let r=0;r<16;r++){let l=(r+e)%4==0||(3*r+7*e)%11==0;t.push(l?o:n)}l.push(t)}e.push(l)}return e}();return(0,n.bn)(e),(0,l.ZZ)(t),(0,o.Di)(a),{characters:e,walls:t,floors:a,tilesetSprites:r.sprites,layout:i}}},4777:(e,t,r)=>{"use strict";r.d(t,{$0:()=>c,Di:()=>s,QQ:()=>d,To:()=>u,ty:()=>a});var n=r(1661),o=r(2243);let l=Array.from({length:o.dn},()=>Array(o.dn).fill(o.q3)),i=[],a="#3A3A5C";function s(e){i=e,(0,n.Zg)()}function c(){return!0}function d(){return i.length>0?i.length:1}function u(e,t){let r="floor-".concat(e,"-").concat(t.h,"-").concat(t.s,"-").concat(t.b,"-").concat(t.c),o=function(e){let t=e-1;return t<0?null:t<i.length?i[t]:0===i.length&&e>=1?l:null}(e);return o?(0,n.LN)(r,o,{...t,colorize:!0}):Array.from({length:16},()=>Array(16).fill("#FF00FF"))}},5055:(e,t,r)=>{"use strict";r.d(t,{BN:()=>a,ZZ:()=>i,og:()=>c,vb:()=>s});var n=r(5195),o=r(1661);let l=null;function i(e){l=e}function a(){return null!==l}function s(e,t,r){if(!l)return[];let i=e.length,a=i>0?e[0].length:0,s=null!=r?r:a,c=[];for(let r=0;r<i;r++)for(let i=0;i<a;i++){if(e[r][i]!==n.nb.WALL)continue;let a=r*s+i,d=null==t?void 0:t[a],u=d?function(e,t,r,i){if(!l)return null;let a=r.length,s=a>0?r[0].length:0,c=0;t>0&&r[t-1][e]===n.nb.WALL&&(c|=1),e<s-1&&r[t][e+1]===n.nb.WALL&&(c|=2),t<a-1&&r[t+1][e]===n.nb.WALL&&(c|=4),e>0&&r[t][e-1]===n.nb.WALL&&(c|=8);let d=l[c];if(!d)return null;let u="wall-".concat(c,"-").concat(i.h,"-").concat(i.s,"-").concat(i.b,"-").concat(i.c);return{sprite:(0,o.LN)(u,d,{...i,colorize:!0}),offsetY:n.dn-d.length}}(i,r,e,d):function(e,t,r){if(!l)return null;let o=r.length,i=o>0?r[0].length:0,a=0;t>0&&r[t-1][e]===n.nb.WALL&&(a|=1),e<i-1&&r[t][e+1]===n.nb.WALL&&(a|=2),t<o-1&&r[t+1][e]===n.nb.WALL&&(a|=4),e>0&&r[t][e-1]===n.nb.WALL&&(a|=8);let s=l[a];return s?{sprite:s,offsetY:n.dn-s.length}:null}(i,r,e);u&&c.push({sprite:u.sprite,x:i*n.dn,y:r*n.dn+u.offsetY,zY:(r+1)*n.dn})}return c}function c(e){let{h:t,s:r,b:n,c:o}=e,l=.5;0!==o&&(l=.5+(100+o)/100*(l-.5)),0!==n&&(l+=n/200);let i=r/100*(1-Math.abs(2*(l=Math.max(0,Math.min(1,l)))-1)),a=t/60,s=i*(1-Math.abs(a%2-1)),c=0,d=0,u=0;a<1?(c=i,d=s,u=0):a<2?(c=s,d=i,u=0):a<3?(c=0,d=i,u=s):a<4?(c=0,d=s,u=i):a<5?(c=s,d=0,u=i):(c=i,d=0,u=s);let p=l-i/2,f=e=>Math.max(0,Math.min(255,Math.round((e+p)*255)));return"#".concat(f(c).toString(16).padStart(2,"0")).concat(f(d).toString(16).padStart(2,"0")).concat(f(u).toString(16).padStart(2,"0"))}},5149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{clearConnection:()=>i,getConnection:()=>l,getGatewayHttpUrl:()=>a,saveConnection:()=>o});let n="arcade_connection";function o(e){localStorage.setItem(n,JSON.stringify(e))}function l(){let e=localStorage.getItem(n);if(!e)return null;try{return JSON.parse(e)}catch(e){return null}}function i(){localStorage.removeItem(n)}function a(){let e=l();return(null==e?void 0:e.wsUrl)?e.wsUrl.replace(/^ws(s?):\/\//,"http$1://"):window.location.origin}},5195:(e,t,r)=>{"use strict";r.d(t,{JM:()=>a,Lp:()=>l,OP:()=>i,Pz:()=>n.BZ,Tj:()=>n.Tj,VF:()=>s,YK:()=>n.YK,dn:()=>n.dn,nb:()=>o,pX:()=>n.pX,wh:()=>n.wh});var n=r(2243);let o={WALL:0,FLOOR_1:1,FLOOR_2:2,FLOOR_3:3,FLOOR_4:4,FLOOR_5:5,FLOOR_6:6,FLOOR_7:7,VOID:8},l={IDLE:"idle",WALK:"walk",TYPE:"type"},i={DOWN:0,LEFT:1,RIGHT:2,UP:3},a={DESK:"desk",BOOKSHELF:"bookshelf",PLANT:"plant",COOLER:"cooler",WHITEBOARD:"whiteboard",CHAIR:"chair",PC:"pc",LAMP:"lamp",TS_DESK_WOOD:"ts-desk-wood",TS_DESK_GRAY:"ts-desk-gray",TS_TABLE_LONG:"ts-table-long",TS_BOOKSHELF:"ts-bookshelf",TS_CABINET:"ts-cabinet",TS_BOOKSHELF_COLOR:"ts-bookshelf-color",TS_COUCH_RED:"ts-couch-red",TS_COUCH_BLUE:"ts-couch-blue",TS_CHAIR_GREEN:"ts-chair-green",TS_CHAIR_OFFICE:"ts-chair-office",TS_COMPUTER:"ts-computer",TS_LAPTOP:"ts-laptop",TS_MONITOR:"ts-monitor",TS_PHONE:"ts-phone",TS_PLANT:"ts-plant",TS_PLANT_TALL:"ts-plant-tall",TS_PAINTING:"ts-painting",TS_FRAME_SMALL:"ts-frame-small",TS_CLOCK:"ts-clock",TS_COOLER:"ts-cooler",TS_BOXES:"ts-boxes",TS_WHITEBOARD:"ts-whiteboard"},s={SELECT:"select",TILE_PAINT:"tile_paint",WALL_PAINT:"wall_paint",ERASE:"erase",FURNITURE_PLACE:"furniture_place",FURNITURE_PICK:"furniture_pick",EYEDROPPER:"eyedropper"}},8012:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>ec});var n=r(206),o=r(1406),l=r(4717),i=r(8474),a=r(9984),s=r(6353);let c=s.k5(["idle","working","waiting_approval","done","error"]),d=s.k5(["low","med","high"]),u=s.k5(["yes","no"]),p=s.Ik({type:s.eu("RUN_TASK"),agentId:s.Yj(),taskId:s.Yj(),prompt:s.Yj(),repoPath:s.Yj().optional(),name:s.Yj().optional(),role:s.Yj().optional(),personality:s.Yj().optional(),backend:s.Yj().optional()}),f=s.Ik({type:s.eu("APPROVAL_DECISION"),approvalId:s.Yj(),decision:u}),g=s.Ik({type:s.eu("CANCEL_TASK"),agentId:s.Yj(),taskId:s.Yj()}),h=s.Ik({type:s.eu("PING")}),y=s.Ik({type:s.eu("CREATE_AGENT"),agentId:s.Yj(),name:s.Yj(),role:s.Yj(),palette:s.ai().optional(),personality:s.Yj().optional(),backend:s.Yj().optional()}),b=s.Ik({type:s.eu("FIRE_AGENT"),agentId:s.Yj()}),k=s.Ik({type:s.eu("OPEN_FILE"),path:s.Yj()});s.gM("type",[p,f,g,h,y,b,k]);let S=s.Ik({type:s.eu("AGENT_STATUS"),agentId:s.Yj(),status:c,details:s.Yj().optional()}),m=s.Ik({type:s.eu("TASK_STARTED"),agentId:s.Yj(),taskId:s.Yj(),prompt:s.Yj()}),x=s.Ik({type:s.eu("LOG_APPEND"),agentId:s.Yj(),taskId:s.Yj(),stream:s.k5(["stdout","stderr"]),chunk:s.Yj()}),T=s.Ik({type:s.eu("APPROVAL_NEEDED"),approvalId:s.Yj(),agentId:s.Yj(),taskId:s.Yj(),title:s.Yj(),summary:s.Yj(),riskLevel:d}),A=s.Ik({summary:s.Yj(),changedFiles:s.YO(s.Yj()),diffStat:s.Yj(),testResult:s.k5(["passed","failed","unknown"]),nextSuggestion:s.Yj().optional()}),C=s.Ik({type:s.eu("TASK_DONE"),agentId:s.Yj(),taskId:s.Yj(),result:A}),W=s.Ik({type:s.eu("TASK_FAILED"),agentId:s.Yj(),taskId:s.Yj(),error:s.Yj()}),E=s.Ik({type:s.eu("TASK_DELEGATED"),fromAgentId:s.Yj(),toAgentId:s.Yj(),taskId:s.Yj(),prompt:s.Yj()}),v=s.Ik({type:s.eu("AGENT_CREATED"),agentId:s.Yj(),name:s.Yj(),role:s.Yj(),palette:s.ai().optional(),personality:s.Yj().optional(),backend:s.Yj().optional()}),w=s.Ik({type:s.eu("AGENT_FIRED"),agentId:s.Yj()}),O=s.gM("type",[S,m,x,T,C,W,E,v,w]);var I=r(5149);let D=null,H=null,_=null,P=null,R=null;function j(){P&&(clearTimeout(P),P=null),_&&(_.onopen=null,_.onmessage=null,_.onclose=null,_.onerror=null,_.close(),_=null)}let F=null;function L(e){if("ws"===F)!function(e){if(!_||_.readyState!==WebSocket.OPEN)return console.warn("[WS] Not connected, dropping command:",e.type);console.log("[WS] Sending command:",e.type,e),_.send(JSON.stringify(e))}(e);else if("ably"===F){if(!H)throw Error("Not connected");console.log("[Web] Sending command:",e.type,e),H.publish(e.type,e).then(()=>console.log("[Web] Command published OK"),e=>console.error("[Web] Command publish failed:",e))}else console.error("[Connection] No active transport")}function Y(){"ws"===F?(R=null,j()):"ably"===F&&function(){if(!D)return;let e=D.connection.state;"connected"===e||"disconnected"===e||"suspended"===e?D.close():("connecting"===e||"initialized"===e)&&(D.connection.once("connected",()=>null==D?void 0:D.close()),D.connection.once("failed",()=>{})),D=null,H=null}(),F=null}var N=r(2001),U=r(7441);let M=[{palette:0,name:"Alex",role:"Frontend Dev",description:"UI components, React/Next.js/CSS",personality:"You speak in a friendly, casual, encouraging, and natural tone."},{palette:1,name:"Mia",role:"Backend Dev",description:"APIs, database, server logic",personality:"You speak formally, professionally, in an organized and concise manner."},{palette:2,name:"Leo",role:"Fullstack Dev",description:"End-to-end, frontend + backend",personality:"You are aggressive, action-first, always pursuing speed and efficiency."},{palette:3,name:"Sophie",role:"Code Reviewer",description:"Review PRs, find bugs, quality",personality:"You teach patiently, explain the reasoning, and guide like a mentor."},{palette:4,name:"Yuki",role:"QA / Tester",description:"Write tests, edge cases",personality:"You are extremely concise, no fluff, straight to the result."},{palette:5,name:"Marcus",role:"Architect",description:"System design, refactoring",personality:"You speak formally, professionally, in an organized and concise manner."}];var B=r(2988),X=r(5195),z=r(2243);class G{pushUndo(e){this.undoStack.push(e),this.undoStack.length>z.k2&&this.undoStack.shift()}popUndo(){return this.undoStack.pop()||null}pushRedo(e){this.redoStack.push(e),this.redoStack.length>z.k2&&this.redoStack.shift()}popRedo(){return this.redoStack.pop()||null}clearRedo(){this.redoStack=[]}clearSelection(){this.selectedFurnitureUid=null}clearGhost(){this.ghostCol=-1,this.ghostRow=-1,this.ghostValid=!1}startDrag(e,t,r,n,o){this.dragUid=e,this.dragStartCol=t,this.dragStartRow=r,this.dragOffsetCol=n,this.dragOffsetRow=o,this.isDragMoving=!1}clearDrag(){this.dragUid=null,this.isDragMoving=!1}reset(){this.activeTool=X.VF.SELECT,this.selectedFurnitureUid=null,this.ghostCol=-1,this.ghostRow=-1,this.ghostValid=!1,this.isDragging=!1,this.wallDragAdding=null,this.undoStack=[],this.redoStack=[],this.isDirty=!1,this.dragUid=null,this.isDragMoving=!1}constructor(){this.isEditMode=!1,this.activeTool=X.VF.SELECT,this.selectedTileType=X.nb.FLOOR_1,this.selectedFurnitureType="desk",this.floorColor={...z.Pk},this.wallColor={...z.fS},this.wallDragAdding=null,this.pickedFurnitureColor=null,this.ghostCol=-1,this.ghostRow=-1,this.ghostValid=!1,this.selectedFurnitureUid=null,this.isDragging=!1,this.undoStack=[],this.redoStack=[],this.isDirty=!1,this.dragUid=null,this.dragStartCol=0,this.dragStartRow=0,this.dragOffsetCol=0,this.dragOffsetRow=0,this.isDragMoving=!1}}var V=r(1204),K=r(9892);let J="arcade-office-layout";var Z=r(9631),q=r(5282);let Q=(0,q.default)(()=>r.e(904).then(r.bind(r,6904)),{loadableGenerated:{webpack:()=>[6904]},ssr:!1}),$=(0,q.default)(()=>r.e(810).then(r.bind(r,9810)),{loadableGenerated:{webpack:()=>[9810]},ssr:!1});(0,q.default)(()=>r.e(290).then(r.bind(r,9290)),{loadableGenerated:{webpack:()=>[9290]},ssr:!1});let ee=(0,q.default)(()=>r.e(29).then(r.bind(r,6029)),{loadableGenerated:{webpack:()=>[6029]},ssr:!1}),et=(0,q.default)(()=>r.e(757).then(r.bind(r,3757)),{loadableGenerated:{webpack:()=>[3757]},ssr:!1}),er={idle:{color:"#6b7280",label:"Idle"},working:{color:"#3b82f6",label:"Working..."},waiting_approval:{color:"#f97316",label:"Needs Approval"},done:{color:"#22c55e",label:"Done"},error:{color:"#ef4444",label:"Error"}},en=/((?:open\s+)?\/[\w./-]+\.\w+)/g;function eo(e){let{logLine:t}=e;return(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-start",marginBottom:8},children:(0,n.jsxs)("div",{style:{padding:"10px 14px",borderRadius:"16px 16px 16px 4px",backgroundColor:"#1e1e3a",color:"#6ee7b7",fontSize:13,fontFamily:"monospace",maxWidth:"100%",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:[(0,n.jsx)("span",{style:{opacity:.5,marginRight:6},children:">"}),t||"Thinking..."]})})}function el(e){let{msg:t}=e;return"user"===t.role?(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:8},children:(0,n.jsx)("div",{style:{maxWidth:"80%",padding:"10px 14px",borderRadius:"16px 16px 4px 16px",backgroundColor:"#4f46e5",color:"#fff",fontSize:14,wordBreak:"break-word"},children:t.text})}):"system"===t.role?(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-start",marginBottom:8},children:(0,n.jsx)("div",{style:{maxWidth:"80%",padding:"10px 14px",borderRadius:"16px 16px 16px 4px",backgroundColor:"#3b1111",border:"1px solid #ef444444",color:"#f87171",fontSize:14,wordBreak:"break-word"},children:t.text})}):(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-start",marginBottom:8},children:(0,n.jsxs)("div",{style:{maxWidth:"85%",padding:"10px 14px",borderRadius:"16px 16px 16px 4px",backgroundColor:"#1e1e3a",color:"#ddd",fontSize:14,wordBreak:"break-word",overflow:"hidden",minWidth:0},className:"chat-markdown",children:[(0,n.jsx)(U.oz,{components:{pre(e){let{children:t}=e;return(0,n.jsx)("div",{style:{overflowX:"auto",margin:"6px 0",WebkitOverflowScrolling:"touch"},children:t})},code(e){var t;let{className:r,children:o,...l}=e,i=String(o).replace(/\n$/,""),a=(null==r?void 0:r.includes("language-"))||i.includes("\n"),s=i.match(/^open\s+(\/\S+)/),c=s?null:i.match(/^(\/[\w./-]+\.\w+)$/),d=null!=(t=null==s?void 0:s[1])?t:null==c?void 0:c[1];return d?(0,n.jsxs)("pre",{onClick:()=>L({type:"OPEN_FILE",path:d}),style:{backgroundColor:"#0d0d1f",padding:"8px 10px",borderRadius:6,fontSize:12,cursor:"pointer",border:"1px solid #2a2a4a",display:"flex",alignItems:"center",gap:8,whiteSpace:"pre"},title:"Click to open",children:[(0,n.jsx)("span",{style:{fontSize:14},children:"\uD83D\uDD17"}),(0,n.jsx)("code",{style:{fontFamily:"monospace",color:"#818cf8"},...l,children:i})]}):a?(0,n.jsx)("pre",{style:{backgroundColor:"#0d0d1f",padding:"8px 10px",borderRadius:6,fontSize:12,whiteSpace:"pre"},children:(0,n.jsx)("code",{style:{fontFamily:"monospace",color:"#a5b4fc"},...l,children:o})}):(0,n.jsx)("code",{style:{backgroundColor:"#0d0d1f",padding:"1px 5px",borderRadius:4,fontFamily:"monospace",color:"#a5b4fc",fontSize:13},...l,children:o})},table(e){let{children:t}=e;return(0,n.jsx)("div",{style:{overflowX:"auto",margin:"6px 0",WebkitOverflowScrolling:"touch"},children:(0,n.jsx)("table",{style:{borderCollapse:"collapse",fontSize:13,whiteSpace:"nowrap"},children:t})})},th(e){let{children:t}=e;return(0,n.jsx)("th",{style:{padding:"4px 10px",borderBottom:"1px solid #444",textAlign:"left",color:"#e2e8f0"},children:t})},td(e){let{children:t}=e;return(0,n.jsx)("td",{style:{padding:"4px 10px",borderBottom:"1px solid #222"},children:t})},p(e){let{children:t}=e;return(0,n.jsx)("p",{style:{margin:"4px 0"},children:function e(t){if("string"==typeof t){let e=t.split(en);return 1===e.length?t:e.map((e,t)=>{if(en.test(e)){en.lastIndex=0;let r=e.replace(/^open\s+/,"");return(0,n.jsx)("span",{onClick:()=>{L({type:"OPEN_FILE",path:r})},style:{color:"#818cf8",textDecoration:"underline",cursor:"pointer",fontFamily:"monospace",fontSize:13},title:"Click to open",children:e},t)}return e})}return Array.isArray(t)?t.map((t,r)=>"string"==typeof t?e(t):t):t}(t)})},ul(e){let{children:t}=e;return(0,n.jsx)("ul",{style:{margin:"4px 0",paddingLeft:18},children:t})},ol(e){let{children:t}=e;return(0,n.jsx)("ol",{style:{margin:"4px 0",paddingLeft:18},children:t})},a(e){let{href:t,children:r}=e;return(0,n.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",style:{color:"#818cf8",textDecoration:"underline"},children:r})},strong(e){let{children:t}=e;return(0,n.jsx)("strong",{style:{color:"#f0f0f0"},children:t})}},children:t.text}),t.result&&t.result.changedFiles.length>0&&(0,n.jsxs)("div",{style:{marginTop:8,padding:"8px 10px",borderRadius:8,backgroundColor:"#0f1a2f",fontSize:12},children:[(0,n.jsxs)("div",{style:{color:"#888",marginBottom:4},children:["Changed ",t.result.changedFiles.length," files"]}),t.result.changedFiles.slice(0,5).map((e,t)=>(0,n.jsx)("div",{style:{fontFamily:"monospace",color:"#a5b4fc"},children:e},t)),t.result.changedFiles.length>5&&(0,n.jsxs)("div",{style:{color:"#888"},children:["...and ",t.result.changedFiles.length-5," more"]})]})]})})}function ei(e){let{palette:t,zoom:r=3,ready:l}=e,i=(0,o.useRef)(null);return(0,o.useEffect)(()=>{var e,n;let o=i.current;if(!o)return;let l=(0,B.Cr)(t);if(!l)return;let a=l.length,s=null!=(n=null==(e=l[0])?void 0:e.length)?n:0;o.width=s*r,o.height=a*r;let c=o.getContext("2d");if(c){c.clearRect(0,0,o.width,o.height);for(let e=0;e<a;e++)for(let t=0;t<s;t++){let n=l[e][t];n&&(c.fillStyle=n,c.fillRect(t*r,e*r,r,r))}}},[t,r,l]),(0,n.jsx)("canvas",{ref:i,style:{width:16*r,height:32*r,imageRendering:"pixelated"}})}let ea=[{id:"claude",name:"Claude",color:"#d97706"},{id:"codex",name:"Codex",color:"#a855f7"},{id:"gemini",name:"Gemini",color:"#3b82f6"},{id:"aider",name:"Aider",color:"#22c55e"},{id:"opencode",name:"OpenCode",color:"#06b6d4"}];function es(e){let{onHire:t,onClose:r,assetsReady:l}=e,[i,a]=(0,o.useState)("claude");return(0,n.jsx)("div",{onClick:r,style:{position:"fixed",inset:0,backgroundColor:"rgba(0,0,0,0.6)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},children:(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{backgroundColor:"#16162a",borderRadius:14,padding:"16px 16px 12px",width:"90%",maxWidth:320,border:"1px solid #333"},children:[(0,n.jsx)("h2",{style:{fontSize:16,margin:"0 0 10px",textAlign:"center"},children:"Hire Agent"}),(0,n.jsxs)("div",{style:{marginBottom:10},children:[(0,n.jsx)("div",{style:{fontSize:11,color:"#888",marginBottom:4},children:"AI Backend"}),(0,n.jsx)("div",{style:{display:"flex",gap:4},children:ea.map(e=>(0,n.jsx)("button",{onClick:()=>a(e.id),style:{flex:1,padding:"5px 4px",borderRadius:6,fontSize:11,fontWeight:600,border:i===e.id?"1px solid ".concat(e.color):"1px solid #333",backgroundColor:i===e.id?e.color+"22":"#0a0a1a",color:i===e.id?e.color:"#666",cursor:"pointer",transition:"all 0.15s"},children:e.name},e.id))})]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:M.map(e=>(0,n.jsxs)("button",{onClick:()=>t(e.name,e.description,e.palette,e.personality,i),style:{display:"flex",alignItems:"center",gap:10,padding:"5px 10px",borderRadius:8,border:"1px solid #333",backgroundColor:"#0a0a1a",cursor:"pointer",textAlign:"left",transition:"background-color 0.15s"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#1a1a3a"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#0a0a1a"},children:[(0,n.jsx)(ei,{palette:e.palette,zoom:2,ready:l}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"#e2e8f0"},children:e.name}),(0,n.jsxs)("div",{style:{fontSize:11,color:"#888"},children:[e.role," \xb7 ",e.description]})]})]},e.palette))}),(0,n.jsx)("button",{onClick:r,style:{width:"100%",marginTop:8,padding:"8px",borderRadius:8,border:"1px solid #333",backgroundColor:"transparent",color:"#666",fontSize:12,cursor:"pointer"},children:"Cancel"})]})})}function ec(){var e;let t=(0,l.useRouter)(),{agents:r,connected:s,addUserMessage:c}=(0,i.f)(),[d,u]=(0,o.useState)(null),[p,f]=(0,o.useState)(!1),[g,h]=(0,o.useState)(!1),[y,b]=(0,o.useState)(""),k=(0,o.useRef)(null),[S,m]=(0,o.useState)(!1),[x,T]=(0,o.useState)(!1),[A,C]=(0,o.useState)(!0),[,W]=(0,o.useState)(0),E=(0,o.useRef)(new G),v=(0,o.useRef)(null),w=(0,o.useRef)(1),U=(0,o.useRef)({x:0,y:0}),[M,B]=(0,o.useState)(!1);(0,o.useEffect)(()=>{try{let e=localStorage.getItem("arcade-sound-enabled");null!==e&&C(JSON.parse(e))}catch(e){}},[]);let{handleTileClick:q,handleRightClick:en,handleDeleteSelected:ec,handleRotateSelected:ed,handleDragStart:eu,handleDragMove:ep,handleDragEnd:ef,updateGhost:eg,handleUndo:eh,handleRedo:ey,handleImportLayout:eb,handleSelectedFurnitureColorChange:ek}=function(e,t,r){let n=(0,o.useRef)(null),l=(0,o.useCallback)(()=>{var e,r;return null!=(r=null==(e=t.current)?void 0:e.layout)?r:null},[t]),i=(0,o.useCallback)(o=>{let l=t.current;l&&(l.setLayout(o),e.current.isDirty=!0,r(),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{try{localStorage.setItem(J,JSON.stringify(o))}catch(e){}},z.e7))},[t,e,r]),a=(0,o.useCallback)((t,n)=>{var o,a,s,c;let d=e.current,u=l();if(!u)return;let p=d.activeTool;if(t<0||t>=u.cols||n<0||n>=u.rows){let e=null;if(n<0?e="up":n>=u.rows?e="down":t<0?e="left":t>=u.cols&&(e="right"),e){d.pushUndo(u),d.clearRedo();let t=(0,V.vk)(u,e);t&&i(t.layout)}return}switch(p){case X.VF.TILE_PAINT:d.pushUndo(u),d.clearRedo(),i((0,V.FH)(u,t,n,d.selectedTileType,d.floorColor));break;case X.VF.WALL_PAINT:{d.pushUndo(u),d.clearRedo();let e=n*u.cols+t;u.tiles[e]===X.nb.WALL?i((0,V.FH)(u,t,n,X.nb.FLOOR_1,d.floorColor)):i((0,V.FH)(u,t,n,X.nb.WALL,d.wallColor));break}case X.VF.ERASE:{d.pushUndo(u),d.clearRedo();let e=(0,V.iH)(u,t,n),r=u;e&&(r=(0,V.PT)(r,e.uid)),i(r=(0,V.FH)(r,t,n,X.nb.VOID));break}case X.VF.FURNITURE_PLACE:if(d.selectedFurnitureType){let e=(0,K.Um)(d.selectedFurnitureType);if(e){let r=e.canPlaceOnWalls?(0,V.si)(d.selectedFurnitureType,n):n;if((0,V.Ii)(u,d.selectedFurnitureType,t,r)){d.pushUndo(u),d.clearRedo();let e={uid:"f-".concat((0,N.Ak)(6)),type:d.selectedFurnitureType,col:t,row:r,...d.pickedFurnitureColor?{color:d.pickedFurnitureColor}:{}};i((0,V.qZ)(u,e))}}}break;case X.VF.SELECT:{let e=(0,V.iH)(u,t,n);d.selectedFurnitureUid=null!=(o=null==e?void 0:e.uid)?o:null,r();break}case X.VF.EYEDROPPER:{let e=n*u.cols+t,o=u.tiles[e];if(void 0!==o&&o!==X.nb.WALL&&o!==X.nb.VOID){d.selectedTileType=o;let t=null==(a=u.tileColors)?void 0:a[e];t&&(d.floorColor={...t}),d.activeTool=X.VF.TILE_PAINT}else if(o===X.nb.WALL){let t=null==(s=u.tileColors)?void 0:s[e];t&&(d.wallColor={...t}),d.activeTool=X.VF.WALL_PAINT}r();break}case X.VF.FURNITURE_PICK:{let e=(0,V.iH)(u,t,n);e&&(d.selectedFurnitureType=e.type,d.pickedFurnitureColor=null!=(c=e.color)?c:null,d.activeTool=X.VF.FURNITURE_PLACE,r())}}},[e,l,i,r]),s=(0,o.useCallback)((t,r)=>{let n=l();if(!n||t<0||t>=n.cols||r<0||r>=n.rows)return;let o=e.current;o.pushUndo(n),o.clearRedo();let a=(0,V.iH)(n,t,r),s=n;a&&(s=(0,V.PT)(s,a.uid)),i(s=(0,V.FH)(s,t,r,X.nb.VOID))},[e,l,i]),c=(0,o.useCallback)(()=>{let t=e.current,n=l();n&&t.selectedFurnitureUid&&(t.pushUndo(n),t.clearRedo(),i((0,V.PT)(n,t.selectedFurnitureUid)),t.selectedFurnitureUid=null,r())},[e,l,i,r]),d=(0,o.useCallback)(()=>{let t=e.current,r=l();if(!r||!t.selectedFurnitureUid)return;let n=r.furniture.find(e=>e.uid===t.selectedFurnitureUid);n&&(0,K.ZZ)(n.type)&&(t.pushUndo(r),t.clearRedo(),i((0,V.WC)(r,t.selectedFurnitureUid)))},[e,l,i]),u=(0,o.useCallback)((t,r)=>{let n=e.current,o=l();if(!o)return;let i=(0,V.iH)(o,t,r);i&&(n.selectedFurnitureUid=i.uid,n.startDrag(i.uid,t,r,t-i.col,r-i.row),n.pushUndo(o),n.clearRedo())},[e,l]),p=(0,o.useCallback)((t,r)=>{let n=e.current;if(!n.dragUid)return;n.isDragMoving=!0;let o=l();if(!o)return;let i=t-n.dragOffsetCol,a=r-n.dragOffsetRow,s=o.furniture.find(e=>e.uid===n.dragUid);s&&((0,K.Um)(s.type),n.ghostCol=i,n.ghostRow=a,n.ghostValid=(0,V.Ii)(o,s.type,i,a,n.dragUid))},[e,l]),f=(0,o.useCallback)((t,r)=>{let n=e.current;if(!n.dragUid)return;let o=n.dragUid,a=n.isDragMoving;if(n.clearDrag(),n.clearGhost(),!a)return;let s=l();if(!s)return;let c=t-n.dragOffsetCol,d=r-n.dragOffsetRow;i((0,V.iZ)(s,o,c,d))},[e,l,i]),g=(0,o.useCallback)((t,r)=>{let n=e.current;if(!n.dragUid)if(n.activeTool===X.VF.FURNITURE_PLACE&&n.selectedFurnitureType){let e=l();if(!e)return;let o=(0,K.Um)(n.selectedFurnitureType);if(!o)return;let i=o.canPlaceOnWalls?(0,V.si)(n.selectedFurnitureType,r):r;n.ghostCol=t,n.ghostRow=i,n.ghostValid=(0,V.Ii)(e,n.selectedFurnitureType,t,i)}else n.ghostCol=t,n.ghostRow=r,n.ghostValid=!1},[e,l]),h=(0,o.useCallback)(()=>{let t=e.current,r=l();if(!r)return;let n=t.popUndo();n&&(t.pushRedo(r),i(n))},[e,l,i]),y=(0,o.useCallback)(()=>{let t=e.current,r=l();if(!r)return;let n=t.popRedo();n&&(t.pushUndo(r),i(n))},[e,l,i]);return{handleTileClick:a,handleRightClick:s,handleDeleteSelected:c,handleRotateSelected:d,handleDragStart:u,handleDragMove:p,handleDragEnd:f,updateGhost:g,handleUndo:h,handleRedo:y,handleImportLayout:(0,o.useCallback)(t=>{let r=e.current,n=l();n&&(r.pushUndo(n),r.clearRedo()),i(t)},[e,l,i]),handleSelectedFurnitureColorChange:(0,o.useCallback)(t=>{let r=e.current,n=l();if(!n||!r.selectedFurnitureUid)return;r.pushUndo(n),r.clearRedo();let o=n.furniture.map(e=>e.uid===r.selectedFurnitureUid?{...e,color:null!=t?t:void 0}:e);i({...n,furniture:o})},[e,l,i])}}(E,v,(0,o.useCallback)(()=>{W(e=>e+1)},[])),eS=(0,o.useCallback)(()=>{m(e=>{let t=!e;return t||E.current.reset(),t})},[]);!function(e){let{editMode:t,editorRef:r,onUndo:n,onRedo:l,onDeleteSelected:i,onRotateSelected:a,onExitEditMode:s}=e;(0,o.useEffect)(()=>{if(!t)return;let e=e=>{let t=e.ctrlKey||e.metaKey;if(t&&"z"===e.key&&!e.shiftKey){e.preventDefault(),n();return}if(t&&"y"===e.key||t&&"z"===e.key&&e.shiftKey){e.preventDefault(),l();return}if("Delete"===e.key||"Backspace"===e.key){r.current.selectedFurnitureUid&&(e.preventDefault(),i());return}if("r"===e.key||"R"===e.key){r.current.selectedFurnitureUid&&(e.preventDefault(),a());return}if("Escape"===e.key)return void(r.current.selectedFurnitureUid?r.current.selectedFurnitureUid=null:s());let o={1:X.VF.SELECT,2:X.VF.TILE_PAINT,3:X.VF.WALL_PAINT,4:X.VF.ERASE,5:X.VF.FURNITURE_PLACE,6:X.VF.EYEDROPPER};if(o[e.key]){r.current.activeTool=o[e.key],r.current.selectedFurnitureUid=null;return}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t,r,n,l,i,a,s])}({editMode:S,editorRef:E,onUndo:eh,onRedo:ey,onDeleteSelected:ec,onRotateSelected:ed,onExitEditMode:eS});let em=(0,o.useCallback)(()=>{let e=function(){try{let e=localStorage.getItem(J);if(!e)return null;let t=JSON.parse(e);if(t&&1===t.version)return t}catch(e){}return null}();if(e&&v.current){let t=(0,Z._m)(e);v.current.setLayout(t),W(e=>e+1)}B(!0)},[]);(0,o.useEffect)(()=>{var e,r;let n=(0,I.getConnection)();if(!n)return void t.push("/pair");return i.f.getState().hydrate(),(Y(),"ws"===n.mode&&n.wsUrl)?(F="ws",e=n.wsUrl,j(),R=e,function e(){if(!R)return;let t=new WebSocket(R);t.onopen=()=>{console.log("[WS] Connected"),i.f.getState().setConnected(!0),t.readyState===WebSocket.OPEN&&t.send(JSON.stringify({type:"PING"}))},t.onmessage=e=>{try{let t=O.parse(JSON.parse(e.data));i.f.getState().handleEvent(t)}catch(e){console.error("[WS] Invalid event:",e)}},t.onclose=()=>{console.log("[WS] Disconnected"),i.f.getState().setConnected(!1),_===t&&R&&(_=null,P=setTimeout(e,2e3))},t.onerror=()=>{},_=t}()):"ably"===n.mode&&(F="ably",r=n.machineId,(D=new a.Realtime({authCallback:async(e,t)=>{try{let e=(0,I.getGatewayHttpUrl)(),n=await fetch("".concat(e,"/ably/token"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machineId:r})});if(!n.ok)throw Error("Token request failed");let o=await n.json();t(null,o)}catch(e){t(e instanceof Error?e.message:String(e),null)}}})).connection.on("connected",()=>{i.f.getState().setConnected(!0),D.channels.get("machine:".concat(r,":commands")).publish("PING",{type:"PING"})}),D.connection.on("disconnected",()=>{i.f.getState().setConnected(!1)}),D.channels.get("machine:".concat(r,":events")).subscribe(e=>{try{let t=O.parse(e.data);i.f.getState().handleEvent(t)}catch(e){console.error("[Web] Invalid event:",e)}}),H=D.channels.get("machine:".concat(r,":commands"))),()=>{Y()}},[t]);let ex=d?r.get(d):null;(null==ex?void 0:ex.status)==="working"||null==ex||ex.status,(0,o.useEffect)(()=>{var e;null==(e=k.current)||e.scrollIntoView({behavior:"smooth"})},[null==ex||null==(e=ex.messages)?void 0:e.length,null==ex?void 0:ex.status]);let eT=(0,o.useCallback)(e=>{u(e),h(!0)},[]),eA=(0,o.useCallback)((e,t,n,o,l)=>{let i=Array.from(r.values()).filter(t=>t.name===e||t.name.match(new RegExp("^".concat(e," \\d+$")))),a=0===i.length?e:"".concat(e," ").concat(i.length+1),s="agent-".concat((0,N.Ak)(6));L({type:"CREATE_AGENT",agentId:s,name:a,role:t,palette:n,personality:o,backend:l}),u(s),h(!0),f(!1)},[r]),eC=(0,o.useCallback)(e=>{var t,n;confirm("Fire ".concat(null!=(n=null==(t=r.get(e))?void 0:t.name)?n:e,"?"))&&(L({type:"FIRE_AGENT",agentId:e}),d===e&&(u(null),h(!1)))},[d,r]),eW=(0,o.useCallback)(()=>{if(!d||!y.trim())return;let e=r.get(d),t=(0,N.Ak)();c(d,t,y.trim()),L({type:"RUN_TASK",agentId:d,taskId:t,prompt:y.trim(),name:null==e?void 0:e.name,role:null==e?void 0:e.role,personality:null==e?void 0:e.personality}),b("")},[d,y,c,r]);(0,o.useCallback)(()=>{d&&L({type:"CANCEL_TASK",agentId:d,taskId:""})},[d]);let eE=(0,o.useCallback)((e,t)=>{L({type:"APPROVAL_DECISION",approvalId:e,decision:t})},[]);(0,o.useCallback)(e=>{w.current=Math.max(z.DH,Math.min(z.ZV,e)),W(e=>e+1)},[]);let ev=Array.from(r.values()),ew=E.current,[eO,eI]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=window.matchMedia("(max-width: 768px)");eI(e.matches);let t=e=>eI(e.matches);return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let eD=g&&null!==d;return(0,n.jsxs)("div",{style:{height:"100vh",width:"100vw",position:"relative",overflow:"hidden",display:"flex"},children:[(0,n.jsxs)("div",{style:{flex:1,position:"relative",minWidth:0},children:[(0,n.jsx)(Q,{onAgentClick:eT,selectedAgent:d,editMode:S,editorRef:E,stateRef:v,zoomRef:w,panRef:U,onTileClick:q,onTileRightClick:en,onGhostMove:eg,onDragStart:eu,onDragMove:ep,onDragEnd:ef,onDeleteBtnClick:ec,onRotateBtnClick:ed,onAssetsLoaded:em}),(0,n.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,zIndex:10,padding:"10px 16px",display:"flex",alignItems:"center",gap:12,background:"linear-gradient(to bottom, rgba(10,10,26,0.85) 0%, rgba(10,10,26,0) 100%)",pointerEvents:"none"},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,pointerEvents:"auto"},children:[(0,n.jsx)("h1",{style:{fontSize:16,margin:0,fontWeight:600},children:"Bit Office"}),(0,n.jsx)("span",{style:{fontSize:10,padding:"2px 8px",borderRadius:10,backgroundColor:s?"#052e16":"#450a0a",color:s?"#22c55e":"#ef4444"},children:s?"Online":"Offline"}),S&&(0,n.jsx)("span",{style:{fontSize:10,padding:"2px 8px",borderRadius:10,backgroundColor:"#1a1a4a",color:"#a5b4fc"},children:"Edit Mode"})]})}),S&&(0,n.jsx)($,{activeTool:ew.activeTool,selectedTileType:ew.selectedTileType,selectedFurnitureType:ew.selectedFurnitureType,selectedFurnitureUid:ew.selectedFurnitureUid,selectedFurnitureColor:(()=>{var e;if(!ew.selectedFurnitureUid||!v.current)return null;let t=v.current.layout.furniture.find(e=>e.uid===ew.selectedFurnitureUid);return null!=(e=null==t?void 0:t.color)?e:null})(),floorColor:ew.floorColor,wallColor:ew.wallColor,onToolChange:e=>{ew.activeTool=e,ew.clearSelection(),W(e=>e+1)},onTileTypeChange:e=>{ew.selectedTileType=e,W(e=>e+1)},onFloorColorChange:e=>{ew.floorColor=e,W(e=>e+1)},onWallColorChange:e=>{ew.wallColor=e,W(e=>e+1)},onSelectedFurnitureColorChange:ek,onFurnitureTypeChange:e=>{ew.selectedFurnitureType=e,ew.activeTool=X.VF.FURNITURE_PLACE,W(e=>e+1)}}),!eO&&(0,n.jsx)(et,{editMode:S,onToggleEditMode:eS,onOpenSettings:()=>T(!0)})]}),!eO&&(0,n.jsxs)("div",{style:{width:"33vw",minWidth:300,maxWidth:500,flexShrink:0,height:"100vh",backgroundColor:"#0c0c1a",borderLeft:"1px solid #222",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsx)("button",{onClick:()=>f(!0),style:{margin:"12px 12px 4px",padding:"10px",borderRadius:10,border:"1px dashed #4f46e5",backgroundColor:"transparent",color:"#a5b4fc",fontSize:13,fontWeight:600,cursor:"pointer",flexShrink:0,transition:"background-color 0.15s"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="rgba(79,70,229,0.1)"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="transparent"},children:"+ Hire Agent"}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"4px 0"},children:ev.map(e=>{var t,o,l,i,a,s,c,p;let f=null!=(i=er[e.status])?i:er.idle,S=g&&d===e.agentId,m=r.get(e.agentId),x=(null==m?void 0:m.status)==="working"||(null==m?void 0:m.status)==="waiting_approval";return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",borderBottom:"1px solid #1a1a2e"},children:[(0,n.jsxs)("button",{onClick:()=>{S?h(!1):(u(e.agentId),h(!0))},style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",background:S?"#16162e":"transparent",border:"none",cursor:"pointer",textAlign:"left",width:"100%",transition:"background-color 0.15s",...S?{position:"sticky",top:0,zIndex:2,backgroundColor:"#16162e"}:{}},onMouseEnter:e=>{S||(e.currentTarget.style.backgroundColor="#111125")},onMouseLeave:e=>{S||(e.currentTarget.style.backgroundColor="transparent")},children:[(0,n.jsx)(ei,{palette:null!=(a=e.palette)?a:0,zoom:2,ready:M}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"#e2e8f0",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.name}),(0,n.jsxs)("div",{style:{fontSize:11,color:"#666",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",display:"flex",alignItems:"center",gap:4},children:[e.role,e.backend&&(0,n.jsx)("span",{style:{fontSize:9,padding:"1px 4px",borderRadius:4,backgroundColor:(null!=(s=null==(t=ea.find(t=>t.id===e.backend))?void 0:t.color)?s:"#666")+"22",color:null!=(c=null==(o=ea.find(t=>t.id===e.backend))?void 0:o.color)?c:"#666"},children:null!=(p=null==(l=ea.find(t=>t.id===e.backend))?void 0:l.name)?p:e.backend})]})]}),(0,n.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",backgroundColor:f.color,flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),eC(e.agentId)},style:{fontSize:11,color:"#555",cursor:"pointer",lineHeight:1,padding:"4px",flexShrink:0},children:"✕"})]}),S&&m&&(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",backgroundColor:"#0a0a18",minHeight:0,height:"calc(100vh - 200px)",maxHeight:"calc(100vh - 160px)"},children:[(0,n.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"12px 14px",display:"flex",flexDirection:"column"},children:[0===m.messages.length&&(0,n.jsx)("div",{style:{textAlign:"center",color:"#555",padding:20,fontSize:13},children:"Send a message to get started"}),m.messages.map(e=>(0,n.jsx)(el,{msg:e},e.id)),x&&!m.pendingApproval&&(0,n.jsx)(eo,{logLine:m.lastLogLine}),m.pendingApproval&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:14,borderRadius:12,backgroundColor:"#2d1b00",border:"1px solid #f97316"},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:"bold",color:"#f97316",marginBottom:4},children:m.pendingApproval.title}),(0,n.jsx)("div",{style:{fontSize:13,color:"#ccc",marginBottom:10},children:m.pendingApproval.summary}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsx)("button",{onClick:()=>eE(m.pendingApproval.approvalId,"yes"),style:{flex:1,padding:"10px",borderRadius:8,border:"none",backgroundColor:"#22c55e",color:"#fff",cursor:"pointer",fontWeight:"bold",fontSize:14},children:"Approve"}),(0,n.jsx)("button",{onClick:()=>eE(m.pendingApproval.approvalId,"no"),style:{flex:1,padding:"10px",borderRadius:8,border:"none",backgroundColor:"#ef4444",color:"#fff",cursor:"pointer",fontWeight:"bold",fontSize:14},children:"Reject"})]})]}),(0,n.jsx)("div",{ref:k})]}),(0,n.jsx)("div",{style:{padding:"10px 12px",borderTop:"1px solid #1a1a2e",backgroundColor:"#0a0a18",flexShrink:0},children:(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsx)("input",{value:y,onChange:e=>b(e.target.value),onKeyDown:e=>"Enter"===e.key&&!e.nativeEvent.isComposing&&eW(),placeholder:"Send a message...",style:{flex:1,padding:"10px 12px",borderRadius:8,border:"1px solid #222",backgroundColor:"#12122a",color:"#fff",fontSize:14,outline:"none"},autoFocus:!0}),(0,n.jsx)("button",{onClick:eW,disabled:!y.trim(),style:{padding:"10px 16px",borderRadius:8,border:"none",backgroundColor:y.trim()?"#4f46e5":"#222",color:"#fff",fontSize:14,cursor:y.trim()?"pointer":"default"},children:"Send"})]})})]})]},e.agentId)})})]}),eO&&ev.length>0&&!eD&&(0,n.jsxs)("div",{style:{position:"absolute",bottom:0,left:0,right:0,zIndex:20,padding:"8px 12px",display:"flex",alignItems:"center",gap:8,background:"linear-gradient(to top, rgba(10,10,26,0.95) 0%, rgba(10,10,26,0.7) 80%, transparent 100%)",overflowX:"auto"},children:[(0,n.jsx)("button",{onClick:()=>f(!0),style:{width:44,height:44,borderRadius:"50%",flexShrink:0,border:"2px dashed #4f46e5",backgroundColor:"rgba(79,70,229,0.15)",color:"#a5b4fc",fontSize:20,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:"+"}),ev.map(e=>{var t,r;let o=null!=(t=er[e.status])?t:er.idle;return(0,n.jsxs)("button",{onClick:()=>{u(e.agentId),h(!0)},style:{position:"relative",flexShrink:0,width:44,height:44,borderRadius:"50%",border:d===e.agentId?"2px solid #4f46e5":"2px solid #333",backgroundColor:"#0c0c1a",cursor:"pointer",padding:0,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:[(0,n.jsx)(ei,{palette:null!=(r=e.palette)?r:0,zoom:1,ready:M}),(0,n.jsx)("span",{style:{position:"absolute",bottom:2,right:2,width:8,height:8,borderRadius:"50%",backgroundColor:o.color,border:"1px solid #0c0c1a"}})]},e.agentId)})]}),eO&&eD&&(()=>{var e,t;let o=d?r.get(d):null;if(!o)return null;let l=null!=(e=er[o.status])?e:er.idle,i="working"===o.status||"waiting_approval"===o.status;return(0,n.jsxs)("div",{style:{position:"absolute",inset:0,zIndex:30,backgroundColor:"#0a0a18",display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("div",{onClick:()=>h(!1),style:{padding:"12px 14px",borderBottom:"1px solid #1a1a2e",display:"flex",alignItems:"center",gap:10,flexShrink:0,backgroundColor:"#0e0e20",cursor:"pointer"},children:[(0,n.jsx)("span",{style:{fontSize:16,color:"#888",marginRight:4},children:"←"}),(0,n.jsx)(ei,{palette:null!=(t=o.palette)?t:0,zoom:2,ready:M}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"#e2e8f0"},children:o.name}),(0,n.jsx)("div",{style:{fontSize:11,color:"#888"},children:o.role})]}),(0,n.jsx)("span",{style:{fontSize:11,padding:"2px 8px",borderRadius:10,backgroundColor:l.color+"22",color:l.color,flexShrink:0},children:l.label})]}),(0,n.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"12px 14px",display:"flex",flexDirection:"column"},children:[0===o.messages.length&&(0,n.jsx)("div",{style:{textAlign:"center",color:"#555",padding:20,fontSize:13},children:"Send a message to get started"}),o.messages.map(e=>(0,n.jsx)(el,{msg:e},e.id)),i&&!o.pendingApproval&&(0,n.jsx)(eo,{logLine:o.lastLogLine}),o.pendingApproval&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:14,borderRadius:12,backgroundColor:"#2d1b00",border:"1px solid #f97316"},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:"bold",color:"#f97316",marginBottom:4},children:o.pendingApproval.title}),(0,n.jsx)("div",{style:{fontSize:13,color:"#ccc",marginBottom:10},children:o.pendingApproval.summary}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsx)("button",{onClick:()=>eE(o.pendingApproval.approvalId,"yes"),style:{flex:1,padding:"10px",borderRadius:8,border:"none",backgroundColor:"#22c55e",color:"#fff",cursor:"pointer",fontWeight:"bold",fontSize:14},children:"Approve"}),(0,n.jsx)("button",{onClick:()=>eE(o.pendingApproval.approvalId,"no"),style:{flex:1,padding:"10px",borderRadius:8,border:"none",backgroundColor:"#ef4444",color:"#fff",cursor:"pointer",fontWeight:"bold",fontSize:14},children:"Reject"})]})]}),(0,n.jsx)("div",{ref:k})]}),(0,n.jsx)("div",{style:{padding:"10px 12px",borderTop:"1px solid #1a1a2e",backgroundColor:"#0a0a18",flexShrink:0},children:(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsx)("input",{value:y,onChange:e=>b(e.target.value),onKeyDown:e=>"Enter"===e.key&&!e.nativeEvent.isComposing&&eW(),placeholder:"Send a message...",style:{flex:1,padding:"10px 12px",borderRadius:8,border:"1px solid #222",backgroundColor:"#12122a",color:"#fff",fontSize:14,outline:"none"},autoFocus:!0}),(0,n.jsx)("button",{onClick:eW,disabled:!y.trim(),style:{padding:"10px 16px",borderRadius:8,border:"none",backgroundColor:y.trim()?"#4f46e5":"#222",color:"#fff",fontSize:14,cursor:y.trim()?"pointer":"default"},children:"Send"})]})})]})})(),p&&(0,n.jsx)(es,{onHire:eA,onClose:()=>f(!1),assetsReady:M}),v.current&&(0,n.jsx)(ee,{isOpen:x,onClose:()=>T(!1),layout:v.current.layout,onImportLayout:eb,soundEnabled:A,onSoundEnabledChange:C})]})}},8208:(e,t,r)=>{Promise.resolve().then(r.bind(r,8012))},8474:(e,t,r)=>{"use strict";r.d(t,{f:()=>c});var n=r(9576);let o="arcade-chat-history";function l(e){try{let t=[];for(let[,r]of e)(r.messages.length>0||r.name!==r.agentId)&&t.push({agentId:r.agentId,name:r.name,role:r.role,palette:r.palette,personality:r.personality,backend:r.backend,messages:r.messages});localStorage.setItem(o,JSON.stringify(t))}catch(e){}}function i(){try{let e=localStorage.getItem(o);if(!e)return new Map;let t=JSON.parse(e),r=new Map;for(let e of t)r.set(e.agentId,e);return r}catch(e){return new Map}}function a(e){try{let t=localStorage.getItem(o);if(!t)return;let r=JSON.parse(t);localStorage.setItem(o,JSON.stringify(r.filter(t=>t.agentId!==e)))}catch(e){}}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return{agentId:e,name:t,role:r,status:"idle",currentTaskId:null,currentPrompt:null,pendingApproval:null,messages:[],lastLogLine:null}}let c=(0,n.v)((e,t)=>({agents:new Map,connected:!1,hydrated:!1,setConnected:t=>e({connected:t}),hydrate:()=>{if(t().hydrated)return;let r=i();if(0===r.size)return void e({hydrated:!0});e(e=>{let t=new Map(e.agents);for(let[e,n]of r)t.has(e)||t.set(e,{...s(e,n.name,n.role),palette:n.palette,personality:n.personality,backend:n.backend,messages:n.messages});return{agents:t,hydrated:!0}})},getAgent:e=>{var r;return null!=(r=t().agents.get(e))?r:s(e)},removeAgent:t=>{e(e=>{let r=new Map(e.agents);return r.delete(t),a(t),{agents:r}})},addUserMessage:(t,r,n)=>{e(e=>{var o;let i=new Map(e.agents),a=null!=(o=i.get(t))?o:s(t);return i.set(t,{...a,messages:[...a.messages,{id:r,role:"user",text:n,timestamp:Date.now()}]}),l(i),{agents:i}})},handleEvent:t=>{e(e=>{var r,n,o,c,d,u,p,f,g,h,y,b;let k=new Map(e.agents);switch(t.type){case"AGENT_CREATED":{let e=k.get(t.agentId);if(e)k.set(t.agentId,{...e,name:t.name,role:t.role,palette:null!=(r=t.palette)?r:e.palette,personality:null!=(n=t.personality)?n:e.personality,backend:null!=(o=t.backend)?o:e.backend});else{let e=i().get(t.agentId),r=s(t.agentId,t.name,t.role);r.palette=null!=(c=t.palette)?c:null==e?void 0:e.palette,r.personality=null!=(d=t.personality)?d:null==e?void 0:e.personality,r.backend=null!=(u=t.backend)?u:null==e?void 0:e.backend,e&&(r.messages=e.messages),k.set(t.agentId,r)}l(k);break}case"AGENT_FIRED":k.delete(t.agentId),a(t.agentId);break;case"AGENT_STATUS":{let e=null!=(p=k.get(t.agentId))?p:s(t.agentId);k.set(t.agentId,{...e,status:t.status});break}case"TASK_STARTED":{let e=null!=(f=k.get(t.agentId))?f:s(t.agentId);k.set(t.agentId,{...e,status:"working",currentTaskId:t.taskId,currentPrompt:t.prompt,pendingApproval:null,lastLogLine:null});break}case"APPROVAL_NEEDED":{let e=null!=(g=k.get(t.agentId))?g:s(t.agentId);k.set(t.agentId,{...e,status:"waiting_approval",pendingApproval:{approvalId:t.approvalId,title:t.title,summary:t.summary,riskLevel:t.riskLevel}});break}case"TASK_DONE":{let e=null!=(h=k.get(t.agentId))?h:s(t.agentId),r=t.taskId+"-reply";if(e.messages.some(e=>e.id===r))break;k.set(t.agentId,{...e,status:"done",currentTaskId:null,pendingApproval:null,lastLogLine:null,messages:[...e.messages,{id:r,role:"agent",text:t.result.summary,timestamp:Date.now(),result:t.result}]}),l(k);break}case"TASK_FAILED":{let e=null!=(y=k.get(t.agentId))?y:s(t.agentId),r=t.taskId+"-error";if(e.messages.some(e=>e.id===r))break;k.set(t.agentId,{...e,status:"error",currentTaskId:null,pendingApproval:null,lastLogLine:null,messages:[...e.messages,{id:r,role:"system",text:t.error,timestamp:Date.now()}]}),l(k);break}case"TASK_DELEGATED":{let e=k.get(t.fromAgentId);if(e){let r=k.get(t.toAgentId),n=t.taskId+"-delegate";e.messages.some(e=>e.id===n)||k.set(t.fromAgentId,{...e,messages:[...e.messages,{id:n,role:"system",text:"Delegated to ".concat(null!=(b=null==r?void 0:r.name)?b:t.toAgentId,": ").concat(t.prompt),timestamp:Date.now()}]})}break}case"LOG_APPEND":{let e=k.get(t.agentId);e&&k.set(t.agentId,{...e,lastLogLine:t.chunk})}}return{agents:k}})}}))},9631:(e,t,r)=>{"use strict";r.d(t,{AI:()=>g,CW:()=>y,Co:()=>f,Kf:()=>S,MB:()=>p,Pg:()=>h,_m:()=>m,hF:()=>k,kr:()=>b});var n=r(5195),o=r(9892),l=r(1661);let i={h:210,s:20,b:22,c:0},a={h:35,s:30,b:15,c:0},s={h:150,s:15,b:20,c:0},c={h:30,s:40,b:25,c:0},d={h:195,s:10,b:18,c:0},u={h:270,s:15,b:20,c:0};function p(e){let t=[];for(let r=0;r<e.rows;r++){let n=[];for(let t=0;t<e.cols;t++)n.push(e.tiles[r*e.cols+t]);t.push(n)}return t}function f(e){let t=new Map;for(let r of e){let e=(0,o.Um)(r.type);if(!e||!e.isDesk)continue;let l=r.row*n.dn+e.sprite.length;for(let n=0;n<e.footprintH;n++)for(let o=0;o<e.footprintW;o++){let e="".concat(r.col+o,",").concat(r.row+n),i=t.get(e);(void 0===i||l>i)&&t.set(e,l)}}let r=[];for(let i of e){let e=(0,o.Um)(i.type);if(!e)continue;let a=i.col*n.dn,s=i.row*n.dn,c=s+e.sprite.length;if("chairs"===e.category&&(c="back"===e.orientation?(i.row+1)*n.dn+1:(i.row+1)*n.dn),e.canPlaceOnSurfaces)for(let r=0;r<e.footprintH;r++)for(let n=0;n<e.footprintW;n++){let e=t.get("".concat(i.col+n,",").concat(i.row+r));void 0!==e&&e+.5>c&&(c=e+.5)}let d=e.sprite;if(i.color){let{h:t,s:r,b:n,c:o}=i.color;d=(0,l.LN)("furn-".concat(i.type,"-").concat(t,"-").concat(r,"-").concat(n,"-").concat(o,"-").concat(+!!i.color.colorize),e.sprite,i.color)}r.push({sprite:d,x:a,y:s,zY:c})}return r}function g(e,t){let r=new Set;for(let n of e){let e=(0,o.Um)(n.type);if(!e)continue;let l=e.backgroundTiles||0;for(let o=0;o<e.footprintH;o++)if(!(o<l))for(let l=0;l<e.footprintW;l++){let e="".concat(n.col+l,",").concat(n.row+o);t&&t.has(e)||r.add(e)}}return r}function h(e,t){return g(t?e.filter(e=>e.uid!==t):e)}function y(e){let t=new Map,r=new Set;for(let t of e){let e=(0,o.Um)(t.type);if(e&&e.isDesk)for(let n=0;n<e.footprintH;n++)for(let o=0;o<e.footprintW;o++)r.add("".concat(t.col+o,",").concat(t.row+n))}let l=[{dc:0,dr:-1,facing:n.OP.UP},{dc:0,dr:1,facing:n.OP.DOWN},{dc:-1,dr:0,facing:n.OP.LEFT},{dc:1,dr:0,facing:n.OP.RIGHT}];for(let i of e){let e=(0,o.Um)(i.type);if(!e||"chairs"!==e.category)continue;let a=0;for(let o=0;o<e.footprintH;o++)for(let s=0;s<e.footprintW;s++){let c=i.col+s,d=i.row+o,u=n.OP.DOWN;if(e.orientation)u=function(e){switch(e){case"front":default:return n.OP.DOWN;case"back":return n.OP.UP;case"left":return n.OP.LEFT;case"right":return n.OP.RIGHT}}(e.orientation);else for(let e of l)if(r.has("".concat(c+e.dc,",").concat(d+e.dr))){u=e.facing;break}let p=0===a?i.uid:"".concat(i.uid,":").concat(a);t.set(p,{uid:p,seatCol:c,seatRow:d,facingDir:u,assigned:!1}),a++}}return t}function b(){let e=n.wh,t=n.YK,r=n.nb.WALL,o=n.nb.FLOOR_1;n.nb.VOID;let l=[],i=[],a={h:195,s:10,b:18,c:0};for(let n=0;n<t;n++)for(let s=0;s<e;s++){let c=0===n||n===t-1||0===s||s===e-1?r:o;l.push(c),i.push(c===o?a:null)}return{version:1,cols:e,rows:t,tiles:l,tileColors:i,furniture:[{uid:"desk-1",type:n.JM.DESK,col:3,row:3},{uid:"desk-2",type:n.JM.DESK,col:7,row:3},{uid:"desk-3",type:n.JM.DESK,col:3,row:7},{uid:"desk-4",type:n.JM.DESK,col:7,row:7},{uid:"ch-1",type:n.JM.CHAIR,col:3,row:5},{uid:"ch-2",type:n.JM.CHAIR,col:7,row:5},{uid:"ch-3",type:n.JM.CHAIR,col:3,row:9},{uid:"ch-4",type:n.JM.CHAIR,col:7,row:9},{uid:"plant-1",type:n.JM.PLANT,col:1,row:1},{uid:"shelf-1",type:n.JM.BOOKSHELF,col:12,row:1}]}}function k(e){return JSON.stringify(e)}function S(e){try{let t=JSON.parse(e);if(t&&1===t.version&&Array.isArray(t.tiles)&&Array.isArray(t.furniture))return x(t)}catch(e){}return null}function m(e){return x(e)}function x(e){if(e.tileColors&&e.tileColors.length===e.tiles.length)return e;let t=[];for(let r of e.tiles)switch(r){case 0:t.push(null);break;case 1:t.push(i);break;case 2:t.push(a);break;case 3:t.push(s);break;case 4:t.push(c);break;case 5:t.push(d);break;case 6:t.push(u);break;default:t.push(r>0?{h:0,s:0,b:0,c:0}:null)}return{...e,tileColors:t}}},9892:(e,t,r)=>{"use strict";r.d(t,{UV:()=>h,Um:()=>f,ZZ:()=>y,Ze:()=>k,Zl:()=>b,ar:()=>p,xr:()=>g});var n=r(5195),o=r(2988),l=r(4296);let i=[{type:n.JM.DESK,label:"Desk",footprintW:2,footprintH:2,sprite:o.US,isDesk:!0,category:"desks"},{type:n.JM.BOOKSHELF,label:"Bookshelf",footprintW:1,footprintH:2,sprite:o.iK,isDesk:!1,category:"storage"},{type:n.JM.PLANT,label:"Plant",footprintW:1,footprintH:1,sprite:o.WN,isDesk:!1,category:"decor"},{type:n.JM.COOLER,label:"Cooler",footprintW:1,footprintH:1,sprite:o.L$,isDesk:!1,category:"misc"},{type:n.JM.WHITEBOARD,label:"Whiteboard",footprintW:2,footprintH:1,sprite:o.SJ,isDesk:!1,category:"decor"},{type:n.JM.CHAIR,label:"Chair",footprintW:1,footprintH:1,sprite:o.mr,isDesk:!1,category:"chairs"},{type:n.JM.PC,label:"PC",footprintW:1,footprintH:1,sprite:o.mY,isDesk:!1,category:"electronics"},{type:n.JM.LAMP,label:"Lamp",footprintW:1,footprintH:1,sprite:o.Zc,isDesk:!1,category:"decor"}],a=[{id:"desks",label:"Desks"},{id:"chairs",label:"Chairs"},{id:"storage",label:"Storage"},{id:"electronics",label:"Tech"},{id:"decor",label:"Decor"},{id:"wall",label:"Wall"},{id:"misc",label:"Misc"}],s=new Map,c=new Map,d=new Map,u=new Map;function p(e){for(let n of l.Q){var t,r;let o=e.get(n.id);if(!o)continue;let l=i.findIndex(e=>e.type===n.id),a=(t=n,r=o,{type:t.id,label:t.label,footprintW:t.footprintW,footprintH:t.footprintH,sprite:r,isDesk:t.isDesk,category:t.category,canPlaceOnSurfaces:t.canPlaceOnSurfaces,backgroundTiles:t.backgroundTiles,canPlaceOnWalls:t.canPlaceOnWalls,...t.orientation?{orientation:t.orientation}:{}});l>=0?i[l]=a:i.push(a)}let n=new Map;for(let e of l.Q)if(e.groupId&&e.orientation){if(e.state&&"off"!==e.state)continue;let t=n.get(e.groupId);t||(t=new Map,n.set(e.groupId,t)),t.set(e.orientation,e.id)}let o=["front","right","back","left"];for(let e of n.values()){if(e.size<2)continue;let t=o.filter(t=>e.has(t));if(t.length<2)continue;let r={};for(let n of t)r[n]=e.get(n);let n={orientations:t,members:r};for(let e of Object.values(r))s.set(e,n)}let a=new Map;for(let e of l.Q)if(e.groupId&&e.state){let t="".concat(e.groupId,"|").concat(e.orientation||""),r=a.get(t);r||(r=new Map,a.set(t,r)),r.set(e.state,e.id)}for(let e of a.values()){let t=e.get("on"),r=e.get("off");t&&r&&(c.set(t,r),c.set(r,t),d.set(r,t),u.set(t,r))}for(let e of l.Q)if(e.groupId&&e.orientation&&"on"===e.state){let t=c.get(e.id);if(t){let e=s.get(t);if(e){let t={};for(let r of e.orientations){let n=e.members[r],o=c.get(n);t[r]=null!=o?o:n}let r={orientations:e.orientations,members:t};for(let e of Object.values(t))s.has(e)||s.set(e,r)}}}}function f(e){return i.find(t=>t.type===e)}function g(e){var t;return null!=(t=d.get(e))?t:e}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"cw",r=s.get(e);if(!r)return null;let n=r.orientations.map(e=>r.members[e]),o=n.indexOf(e);if(-1===o)return null;let l=(o+("cw"===t?1:-1)+n.length)%n.length;return n[l]}function y(e){return s.has(e)}function b(e){return i.filter(t=>t.category===e)}function k(){let e=new Set;for(let t of i)t.category&&e.add(t.category);return a.filter(t=>e.has(t.id))}}},e=>{e.O(0,[284,989,235,977,358],()=>e(e.s=8208)),_N_E=e.O()}]);