blecsd 0.1.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.
Files changed (109) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +220 -0
  3. package/dist/3d/index.d.ts +5 -0
  4. package/dist/3d/index.js +1 -0
  5. package/dist/audio/index.d.ts +177 -0
  6. package/dist/audio/index.js +1 -0
  7. package/dist/border-D_Jb4ZJV.d.ts +257 -0
  8. package/dist/cell-DwIu2ryP.d.ts +505 -0
  9. package/dist/chunk-2UBBZFE4.js +1 -0
  10. package/dist/chunk-35LCBY6P.js +1 -0
  11. package/dist/chunk-3B7MIVW6.js +1 -0
  12. package/dist/chunk-3EGGGI5J.js +3 -0
  13. package/dist/chunk-4LWWONFK.js +1 -0
  14. package/dist/chunk-4X4N4HNQ.js +2 -0
  15. package/dist/chunk-5PELJRUQ.js +1 -0
  16. package/dist/chunk-AEJIX2MW.js +1 -0
  17. package/dist/chunk-AQ7LW75B.js +1 -0
  18. package/dist/chunk-AXZQAH4X.js +1 -0
  19. package/dist/chunk-B6Z2JFRY.js +1 -0
  20. package/dist/chunk-BCADUCOZ.js +1 -0
  21. package/dist/chunk-C5PCEQ6G.js +1 -0
  22. package/dist/chunk-CIK4AMUA.js +1 -0
  23. package/dist/chunk-DNRXW56C.js +1 -0
  24. package/dist/chunk-FC5FFAAC.js +12 -0
  25. package/dist/chunk-FGHEFXLK.js +1 -0
  26. package/dist/chunk-FYEBZAWN.js +1 -0
  27. package/dist/chunk-G7GIWWLE.js +1 -0
  28. package/dist/chunk-GYHI26UE.js +1 -0
  29. package/dist/chunk-H2YAOJDW.js +1 -0
  30. package/dist/chunk-J4JZ2NU2.js +1 -0
  31. package/dist/chunk-JKVHO4LH.js +1 -0
  32. package/dist/chunk-K2B2OXQ5.js +5 -0
  33. package/dist/chunk-K37L3G4Z.js +4 -0
  34. package/dist/chunk-KD55INV7.js +1 -0
  35. package/dist/chunk-KFAK4A3G.js +1 -0
  36. package/dist/chunk-LCN2ZITE.js +1 -0
  37. package/dist/chunk-LYSK5S63.js +1 -0
  38. package/dist/chunk-NZ55KBM6.js +1 -0
  39. package/dist/chunk-OMMJ7B5P.js +1 -0
  40. package/dist/chunk-OUXUPF3V.js +33 -0
  41. package/dist/chunk-OVT2PPGW.js +19 -0
  42. package/dist/chunk-P6CJO3BC.js +1 -0
  43. package/dist/chunk-PSXXMBVJ.js +1 -0
  44. package/dist/chunk-PXXGH3BV.js +1 -0
  45. package/dist/chunk-QIKIOVP2.js +1 -0
  46. package/dist/chunk-SHUC6JWA.js +1 -0
  47. package/dist/chunk-TDXJDLY6.js +6 -0
  48. package/dist/chunk-TWSWTBYL.js +1 -0
  49. package/dist/chunk-TYMY2TBR.js +3 -0
  50. package/dist/chunk-VNZ6CWJA.js +2 -0
  51. package/dist/chunk-VOCM5T2G.js +5 -0
  52. package/dist/chunk-W5OU7Z6J.js +1 -0
  53. package/dist/chunk-WNG4A3K7.js +4 -0
  54. package/dist/chunk-XQIGERNI.js +1 -0
  55. package/dist/chunk-XZA63ZPO.js +1 -0
  56. package/dist/chunk-YAMOSPWB.js +4 -0
  57. package/dist/chunk-YD6ULIUR.js +1 -0
  58. package/dist/chunk-Z4EZERNE.js +1 -0
  59. package/dist/cli/init.d.ts +86 -0
  60. package/dist/cli/init.js +179 -0
  61. package/dist/color-B78w3zH-.d.ts +79 -0
  62. package/dist/components/index.d.ts +10298 -0
  63. package/dist/components/index.js +1 -0
  64. package/dist/core/index.d.ts +6700 -0
  65. package/dist/core/index.js +1 -0
  66. package/dist/debug/index.d.ts +711 -0
  67. package/dist/debug/index.js +1 -0
  68. package/dist/doubleBuffer-CKQFmlPN.d.ts +95 -0
  69. package/dist/errors/index.d.ts +1110 -0
  70. package/dist/errors/index.js +1 -0
  71. package/dist/events-BbbxkgvX.d.ts +125 -0
  72. package/dist/game/index.d.ts +486 -0
  73. package/dist/game/index.js +1 -0
  74. package/dist/gameLoop-BIPW7-OY.d.ts +219 -0
  75. package/dist/index-zSGJ2eUk.d.ts +3156 -0
  76. package/dist/index.d.ts +246 -0
  77. package/dist/index.js +1 -0
  78. package/dist/input/index.d.ts +158 -0
  79. package/dist/input/index.js +1 -0
  80. package/dist/inputActions-CefRUBuT.d.ts +2637 -0
  81. package/dist/keyParser-Bwm8-l7v.d.ts +229 -0
  82. package/dist/mouseParser-Cfrbn3AX.d.ts +177 -0
  83. package/dist/parser-iMHmQuUh.d.ts +265 -0
  84. package/dist/program-BZaKqDKH.d.ts +141 -0
  85. package/dist/renderable-jTMOA-GK.d.ts +302 -0
  86. package/dist/scheduler-DcfoFuum.d.ts +86 -0
  87. package/dist/schemas/index.d.ts +936 -0
  88. package/dist/schemas/index.js +1 -0
  89. package/dist/systems/index.d.ts +4036 -0
  90. package/dist/systems/index.js +1 -0
  91. package/dist/terminal/index.d.ts +7357 -0
  92. package/dist/terminal/index.js +1 -0
  93. package/dist/terminus-14-bold-HWSPRLJD.js +1 -0
  94. package/dist/terminus-14-normal-T3SWMH4D.js +1 -0
  95. package/dist/tilemap-D1HJvKy3.d.ts +1211 -0
  96. package/dist/types-BcsvoKzf.d.ts +68 -0
  97. package/dist/utils/index.d.ts +6104 -0
  98. package/dist/utils/index.js +1 -0
  99. package/dist/viewport3d-xI33-_wq.d.ts +182 -0
  100. package/dist/virtualScrollback-DvZTRU8a.d.ts +274 -0
  101. package/dist/virtualViewport-Dx2iJliO.d.ts +2334 -0
  102. package/dist/virtualizedLineStore-DwPEvPkk.d.ts +297 -0
  103. package/dist/widgets/bigText.d.ts +230 -0
  104. package/dist/widgets/bigText.js +1 -0
  105. package/dist/widgets/fonts/index.d.ts +211 -0
  106. package/dist/widgets/fonts/index.js +1 -0
  107. package/dist/widgets/index.d.ts +8591 -0
  108. package/dist/widgets/index.js +1 -0
  109. package/package.json +213 -0
@@ -0,0 +1,5 @@
1
+ import {z as z$1}from'zod';var d=z$1.number().int().nonnegative(),z=z$1.object({startLine:d,endLine:d}),V=z$1.object({firstVisible:d,visibleCount:z$1.number().int().nonnegative(),overscanBefore:z$1.number().int().nonnegative().default(5),overscanAfter:z$1.number().int().nonnegative().default(5)}),A=z$1.object({maxLines:z$1.number().int().positive()}),S=1e4,g=2,w=1e6,c=10;function y(e=S){return {buffer:"",offsets:new Uint32Array(e),lineCount:0,indexed:false,offsetCapacity:e}}function m(e,n){if(n<=e.offsetCapacity)return;let t=Math.max(n,e.offsetCapacity*g),r=new Uint32Array(t);r.set(e.offsets),e.offsets=r,e.offsetCapacity=t;}function p(e){let{buffer:n}=e,t=n.length;if(t===0){e.lineCount=0,e.indexed=true;return}m(e,1),e.offsets[0]=0;let r=1;for(let i=0;i<t;i++)n.charCodeAt(i)===c&&(m(e,r+1),e.offsets[r]=i+1,r++);e.lineCount=r,e.indexed=true;}function b(e,n){if(n>=e.lineCount-1)return e.buffer.length;let t=e.offsets[n+1];return t!==void 0?t-1:e.buffer.length}function C(e=""){let n=y();return n.buffer=e,p(n),{buffer:n.buffer,offsets:n.offsets.slice(0,n.lineCount),lineCount:n.lineCount,byteSize:n.buffer.length,indexed:n.indexed}}function O(e){if(e.length===0)return C("");let n=0;for(let o of e)n+=o.length+1;n--;let t=new Uint32Array(e.length),r="",i=0;for(let o=0;o<e.length;o++){t[o]=i;let f=e[o];f!==void 0&&(r+=f,i+=f.length),o<e.length-1&&(r+=`
2
+ `,i++);}return {buffer:r,offsets:t,lineCount:e.length,byteSize:r.length,indexed:true}}function v(){return {buffer:"",offsets:new Uint32Array(0),lineCount:0,byteSize:0,indexed:true}}function T(e,n){if(n<0||n>=e.lineCount)return;let t=e.offsets[n];if(t===void 0)return;let r=b(e,n);return e.buffer.slice(t,r)}function M(e,n){if(n<0||n>=e.lineCount)return;let t=e.offsets[n];if(t===void 0)return;let r=b(e,n);return {text:e.buffer.slice(t,r),offset:t,length:r-t,lineNumber:n}}function L(e,n,t){let r=performance.now(),i=Math.max(0,n),o=Math.min(e.lineCount,t);if(i>=o)return {lines:[],startLine:i,endLine:i,extractTimeMs:performance.now()-r};let f=[];for(let u=i;u<o;u++){let s=e.offsets[u];if(s===void 0)continue;let a=b(e,u);f.push(e.buffer.slice(s,a));}return {lines:f,startLine:i,endLine:o,extractTimeMs:performance.now()-r}}function E(e,n,t,r=5,i=5){let o=Math.max(0,n-r),f=Math.min(e.lineCount,n+t+i);return L(e,o,f)}function x(e,n){if(n.length===0)return e;let t=e.buffer+n,r=e.buffer.length,i=0;for(let a=0;a<n.length;a++)n.charCodeAt(a)===c&&i++;let o=e.lineCount===0;o&&i++;let f=e.lineCount+i,u=new Uint32Array(f);u.set(e.offsets);let s=e.lineCount;o&&(u[s]=0,s++);for(let a=0;a<n.length;a++)n.charCodeAt(a)===c&&(u[s]=r+a+1,s++);return {buffer:t,offsets:u,lineCount:f,byteSize:t.length,indexed:true}}function B(e,n){if(n.length===0)return e;let r=(e.byteSize>0?`
3
+ `:"")+n.join(`
4
+ `);return x(e,r)}function I(e){return e.lineCount}function R(e){return e.byteSize}function U(e){return e.lineCount===0}function N(e){let n=e.offsets.byteLength,t=e.byteSize*2,r=n+t,i=e.lineCount>0?e.byteSize/e.lineCount:0;return {lineCount:e.lineCount,byteSize:e.byteSize,offsetArrayBytes:n,totalMemoryBytes:r,avgLineLength:i,indexed:e.indexed}}function _(e,n){if(e.lineCount===0||n<=0)return 0;if(n>=e.byteSize)return e.lineCount-1;let t=0,r=e.lineCount-1;for(;t<r;){let i=Math.floor((t+r+1)/2),o=e.offsets[i];o===void 0||o>n?r=i-1:t=i;}return t}function j(e,n){return n<0||n>=e.lineCount?-1:e.offsets[n]??-1}function F(e){return e.buffer}function H(e,n,t){return L(e,n,t).lines.join(`
5
+ `)}function P(e,n){if(e.lineCount<=n)return e;let t=e.lineCount-n,r=e.offsets[t];if(r===void 0)return e;let i=e.buffer.slice(r),o=new Uint32Array(n);for(let f=0;f<n;f++){let u=e.offsets[t+f];o[f]=u!==void 0?u-r:0;}return {buffer:i,offsets:o,lineCount:n,byteSize:i.length,indexed:true}}export{d as a,z as b,V as c,A as d,w as e,C as f,O as g,v as h,T as i,M as j,L as k,E as l,x as m,B as n,I as o,R as p,U as q,N as r,_ as s,j as t,F as u,H as v,P as w};
@@ -0,0 +1 @@
1
+ import {i as i$1,a as a$1,b,c,e}from'./chunk-Z4EZERNE.js';import {f as f$1,a,e as e$1}from'./chunk-SHUC6JWA.js';import {k as k$1,g as g$1,l}from'./chunk-G7GIWWLE.js';import {n,i as i$2,h as h$1}from'./chunk-PXXGH3BV.js';n();f$1();f$1();var m=1e4,Y=a(255,255,255),L=a(0,0,0,0),r={visible:new Uint8Array(m),dirty:new Uint8Array(m),fg:new Uint32Array(m),bg:new Uint32Array(m),bold:new Uint8Array(m),underline:new Uint8Array(m),blink:new Uint8Array(m),inverse:new Uint8Array(m),transparent:new Uint8Array(m),opacity:new Uint8Array(m)};function M(t){r.visible[t]=1,r.dirty[t]=1,r.fg[t]=Y,r.bg[t]=L,r.bold[t]=0,r.underline[t]=0,r.blink[t]=0,r.inverse[t]=0,r.transparent[t]=0,r.opacity[t]=255;}function O(t,n){i$2(t,n,r)||(h$1(t,n,r),M(n));}function fn(t,n,e){return i$1.parse(e),O(t,n),j(n,e),r.dirty[n]=1,n}function G(t,n){n.fg!==void 0&&(r.fg[t]=e$1(n.fg)),n.bg!==void 0&&(r.bg[t]=e$1(n.bg));}function g(t,n,e){e!==void 0&&(n[t]=e?1:0);}function $(t,n){if(g(t,r.bold,n.bold),g(t,r.underline,n.underline),g(t,r.blink,n.blink),g(t,r.inverse,n.inverse),g(t,r.transparent,n.transparent),n.opacity!==void 0){let e=Math.max(0,Math.min(1,n.opacity));r.opacity[t]=Math.round(e*255);}}function j(t,n){G(t,n),$(t,n);}function sn(t,n){if(i$2(t,n,r))return {fg:r.fg[n],bg:r.bg[n],bold:r.bold[n]===1,underline:r.underline[n]===1,blink:r.blink[n]===1,inverse:r.inverse[n]===1,transparent:r.transparent[n]===1,opacity:r.opacity[n]/255}}function ln(t,n){if(i$2(t,n,r))return {visible:r.visible[n]===1,dirty:r.dirty[n]===1,fg:r.fg[n],bg:r.bg[n],bold:r.bold[n]===1,underline:r.underline[n]===1,blink:r.blink[n]===1,inverse:r.inverse[n]===1,transparent:r.transparent[n]===1,opacity:r.opacity[n]/255}}function cn(t,n){return O(t,n),r.dirty[n]=1,n}function bn(t,n){return i$2(t,n,r)&&(r.dirty[n]=0),n}function yn(t,n){return i$2(t,n,r)?r.dirty[n]===1:false}function H(t,n,e){O(t,n);let o=r.visible[n]===1;return r.visible[n]=e?1:0,o!==e&&(r.dirty[n]=1),n}function k(t,n){return i$2(t,n,r)?r.visible[n]===1:false}function mn(t,n){return i$2(t,n,r)}function pn(t,n){return H(t,n,true)}function xn(t,n){return H(t,n,false)}function En(t,n){let e=k(t,n);return H(t,n,!e)}function hn(t,n){if(!k(t,n))return false;if(!k$1(t,n))return true;let e=g$1(t,n);for(let o of e)if(!k(t,o))return false;return true}function gn(t,n){if(!k$1(t,n)||l(t,n))return false;let e=g$1(t,n);if(e.length===0)return true;let o=e[e.length-1];return o===void 0?true:!l(t,o)}n();var F=1e4,i={x:new Float32Array(F),y:new Float32Array(F),z:new Uint16Array(F),absolute:new Uint8Array(F)};function An(t,n,e,o,s=0){return a$1.parse({x:e,y:o,z:s}),i$2(t,n,i)||(h$1(t,n,i),i.absolute[n]=0),i.x[n]=e,i.y[n]=o,i.z[n]=s,n}function Dn(t,n){if(i$2(t,n,i))return {x:i.x[n],y:i.y[n],z:i.z[n],absolute:i.absolute[n]===1}}function vn(t,n,e){return i$2(t,n,i)||(h$1(t,n,i),i.x[n]=0,i.y[n]=0,i.z[n]=0),i.absolute[n]=e?1:0,n}function Tn(t,n){return i$2(t,n,i)?i.absolute[n]===1:false}function Sn(t,n){return i$2(t,n,i)}function Cn(t,n,e,o){return i$2(t,n,i)||(h$1(t,n,i),i.x[n]=0,i.y[n]=0,i.z[n]=0,i.absolute[n]=0),i.x[n]=i.x[n]+e,i.y[n]=i.y[n]+o,n}function h(t,n,e){return b.parse(e),i$2(t,n,i)||(h$1(t,n,i),i.x[n]=0,i.y[n]=0,i.absolute[n]=0),i.z[n]=e,n}function A(t,n){return i$2(t,n,i)?i.z[n]:0}function Un(t,n,e){let o=0;for(let l of e)if(l!==n&&i$2(t,l,i)){let c=i.z[l];c>o&&(o=c);}let s=Math.min(o+1,65535);return h(t,n,s)}function kn(t,n,e){let o=65535;for(let l of e)if(l!==n&&i$2(t,l,i)){let c=i.z[l];c<o&&(o=c);}let s=Math.max(o-1,0);return h(t,n,s)}function On(t,n,e){let o=A(t,n),s=65535,l=false;for(let c of e)if(c!==n&&i$2(t,c,i)){let x=i.z[c];x>o&&x<s&&(s=x,l=true);}return l?h(t,n,Math.min(s+1,65535)):n}function Hn(t,n,e){let o=A(t,n),s=0,l=false;for(let c of e)if(c!==n&&i$2(t,c,i)){let x=i.z[c];x<o&&x>s&&(s=x,l=true);}return l?h(t,n,Math.max(s-1,0)):n}function zn(t,n){let e=[];for(let o of n)i$2(t,o,i)&&e.push({entity:o,z:i.z[o]});e.sort((o,s)=>o.z-s.z);for(let o=0;o<e.length;o++){let s=e[o];s&&(i.z[s.entity]=o);}}function Nn(t,n,e){let o=A(t,n),s=A(t,e);h(t,n,s),h(t,e,o);}n();var E=1e4,p=-1;function q(t){return -(t+2)}function w(t){if(t>=p)return null;let n=-(t+2);return n===0?0:n}function Bn(t){return t<p}var u={width:new Float32Array(E),height:new Float32Array(E),minWidth:new Float32Array(E),minHeight:new Float32Array(E),maxWidth:new Float32Array(E),maxHeight:new Float32Array(E),shrink:new Uint8Array(E)};function B(t){if(t==="auto")return p;if(typeof t=="string"){let n=Number.parseFloat(t);return q(n)}return t}function wn(t,n,e,o){return c.parse(e),c.parse(o),i$2(t,n,u)||(h$1(t,n,u),u.minWidth[n]=0,u.minHeight[n]=0,u.maxWidth[n]=Number.POSITIVE_INFINITY,u.maxHeight[n]=Number.POSITIVE_INFINITY,u.shrink[n]=0),u.width[n]=B(e),u.height[n]=B(o),n}function Zn(t,n){if(i$2(t,n,u))return {width:u.width[n],height:u.height[n],minWidth:u.minWidth[n],minHeight:u.minHeight[n],maxWidth:u.maxWidth[n],maxHeight:u.maxHeight[n],shrink:u.shrink[n]===1}}function Rn(t,n,e$1){return e.parse(e$1),i$2(t,n,u)||(h$1(t,n,u),u.width[n]=p,u.height[n]=p,u.minWidth[n]=0,u.minHeight[n]=0,u.maxWidth[n]=Number.POSITIVE_INFINITY,u.maxHeight[n]=Number.POSITIVE_INFINITY,u.shrink[n]=0),e$1.minWidth!==void 0&&(u.minWidth[n]=e$1.minWidth),e$1.minHeight!==void 0&&(u.minHeight[n]=e$1.minHeight),e$1.maxWidth!==void 0&&(u.maxWidth[n]=e$1.maxWidth),e$1.maxHeight!==void 0&&(u.maxHeight[n]=e$1.maxHeight),n}function Yn(t,n,e){return i$2(t,n,u)||(h$1(t,n,u),u.width[n]=p,u.height[n]=p,u.minWidth[n]=0,u.minHeight[n]=0,u.maxWidth[n]=Number.POSITIVE_INFINITY,u.maxHeight[n]=Number.POSITIVE_INFINITY),u.shrink[n]=e?1:0,n}function Ln(t,n){return i$2(t,n,u)?u.shrink[n]===1:false}function Mn(t,n){return i$2(t,n,u)}function Gn(t,n,e){if(!i$2(t,n,u))return;let o=u.width[n];if(o===p)return;let s=w(o);return s!==null?s/100*e:o}function $n(t,n,e){if(!i$2(t,n,u))return;let o=u.height[n];if(o===p)return;let s=w(o);return s!==null?s/100*e:o}n();var d=1e4,J=4294967295,K=0,f={focusable:new Uint8Array(d),focused:new Uint8Array(d),tabIndex:new Int16Array(d),focusEffectFg:new Uint32Array(d),focusEffectBg:new Uint32Array(d)},y=null;function Q(t){f.focusable[t]=1,f.focused[t]=0,f.tabIndex[t]=0,f.focusEffectFg[t]=J,f.focusEffectBg[t]=K;}function D(t,n){i$2(t,n,f)||(h$1(t,n,f),Q(n));}function Jn(t,n,e){return D(t,n),e.focusable!==void 0&&(f.focusable[n]=e.focusable?1:0),e.tabIndex!==void 0&&(f.tabIndex[n]=e.tabIndex),e.focusEffectFg!==void 0&&(f.focusEffectFg[n]=e.focusEffectFg),e.focusEffectBg!==void 0&&(f.focusEffectBg[n]=e.focusEffectBg),n}function Kn(t,n,e){return D(t,n),f.focusable[n]=e?1:0,n}function Qn(t,n){return i$2(t,n,f)?f.focused[n]===1:false}function Xn(t,n){return i$2(t,n,f)?f.focusable[n]===1:false}function Z(t,n){return D(t,n),f.focusable[n]!==1||(y!==null&&y!==n&&i$2(t,y,f)&&(f.focused[y]=0),f.focused[n]=1,y=n),n}function nt(t,n){return i$2(t,n,f)&&(f.focused[n]=0,y===n&&(y=null)),n}function tt(t,n){if(i$2(t,n,f))return {focusable:f.focusable[n]===1,focused:f.focused[n]===1,tabIndex:f.tabIndex[n],focusEffectFg:f.focusEffectFg[n],focusEffectBg:f.focusEffectBg[n]}}function et(t,n){return i$2(t,n,f)}function rt(){return y}function ot(t,n,e){return D(t,n),f.tabIndex[n]=e,n}function it(t,n){return i$2(t,n,f)?f.tabIndex[n]:-1}function X(t,n){return i$2(t,n,f)?f.tabIndex[n]>=0&&f.focusable[n]===1:false}function R(t,n){return n.filter(e=>X(t,e)).sort((e,o)=>f.tabIndex[e]-f.tabIndex[o])}function ut(t,n){let e=R(t,n);if(e.length===0)return null;let s=((y!==null?e.indexOf(y):-1)+1)%e.length,l=e[s];return l!==void 0?(Z(t,l),l):null}function at(t,n){let e=R(t,n);if(e.length===0)return null;let s=((y!==null?e.indexOf(y):0)-1+e.length)%e.length,l=e[s];return l!==void 0?(Z(t,l),l):null}function ft(){y=null;}export{nt as $,Un as A,kn as B,On as C,Hn as D,zn as E,Nn as F,p as G,q as H,w as I,Bn as J,u as K,wn as L,Zn as M,Rn as N,Yn as O,Ln as P,Mn as Q,Gn as R,$n as S,J as T,K as U,f as V,Jn as W,Kn as X,Qn as Y,Xn as Z,Z as _,Y as a,tt as aa,L as b,et as ba,r as c,rt as ca,fn as d,ot as da,sn as e,it as ea,ln as f,X as fa,cn as g,R as ga,bn as h,ut as ha,yn as i,at as ia,H as j,ft as ja,k,mn as l,pn as m,xn as n,En as o,hn as p,gn as q,i as r,An as s,Dn as t,vn as u,Tn as v,Sn as w,Cn as x,h as y,A as z};
@@ -0,0 +1,4 @@
1
+ var W=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\].*?\x1b\\|\x1b\][^\x07]*\x07/g,m=/^\x1b\[[0-9;]*[a-zA-Z]/;function h(n){return n.replace(W,"")}function c(n){return h(n).length}function d(n,r){let i=n.slice(r).match(m);return i?{code:i[0],length:i[0].length}:null}function x(n,r,t="\u2026"){if(r<=0)return "";if(h(n).length<=r)return n;let e=c(t),s=r-e;if(s<=0)return t.slice(0,r);let o="",u=0,a=0;for(;u<s&&a<n.length;){let f=n[a];if(f==="\x1B"){let l=d(n,a);if(l){o+=l.code,a+=l.length;continue}}o+=f,u++,a++;}return o.includes("\x1B[")&&(o+="\x1B[0m"),o+t}function g(n,r,t){let i=c(n);if(i>=r)return n;let e=r-i;switch(t){case "left":return n+" ".repeat(e);case "right":return " ".repeat(e)+n;case "center":{let s=Math.floor(e/2),o=e-s;return " ".repeat(s)+n+" ".repeat(o)}}}function A(n){let r={result:[],current:"",inAnsi:false};for(let t=0;t<n.length;t++){let i=n[t];i!==void 0&&w(r,i);}return b(r),r.result}function P(n,r){let t=[],i=n;for(;c(i)>r;){let e=y(i,r);t.push(i.slice(0,e)),i=i.slice(e);}return i.length>0&&t.push(i),t}function S(n,r){if(r<=0)return [""];let t=[],i=n.split(`
2
+ `);for(let e of i){if(e.length===0){t.push("");continue}let s=k(e,r);t.push(...s);}return t}function k(n,r){let t={lines:[],currentLine:"",currentWidth:0},i=A(n);for(let e of i){if(T(e)){z(t,r);continue}let s=c(e);if(E(t,s,r)){M(t,e,s);continue}if(s<=r){p(t),C(t,e,s);continue}p(t);let o=I(e,r);t.lines.push(...o.lines),t.currentLine=o.tail.text,t.currentWidth=o.tail.width;}return p(t),t.lines}function L(n,r){let t=[],i=n.split(`
3
+ `);for(let e of i){if(e.length===0){t.push("");continue}let s=v(e,r);t.push(...s);}return t}function v(n,r){let t=[],i=n;for(;c(i)>r;){let e=Z(i,r);t.push(i.slice(0,e)),i=i.slice(e);}return i.length>0&&t.push(i),t}function w(n,r){if(r==="\x1B"){n.inAnsi=true,n.current+=r;return}if(n.inAnsi){n.current+=r,/[a-zA-Z\\]/.test(r)&&(n.inAnsi=false);return}if(r===" "||r===" "){b(n),n.result.push(r);return}n.current+=r;}function b(n){n.current.length>0&&(n.result.push(n.current),n.current="");}function y(n,r){let t=0,i=0;for(let e=0;e<n.length;e++){let s=n[e];if(s!==void 0){if(s==="\x1B"){let o=d(n,e);if(o){t=e+o.length;continue}}if(i>=r)break;t=e+1,i++;}}return t===0?Math.min(n.length,1):t}function T(n){return n===" "||n===" "}function z(n,r){n.currentWidth+1<=r&&(n.currentLine+=" ",n.currentWidth+=1);}function E(n,r,t){return n.currentWidth+r<=t}function M(n,r,t){n.currentLine+=r,n.currentWidth+=t;}function p(n){n.currentLine.length>0&&(n.lines.push(n.currentLine.trimEnd()),n.currentLine="",n.currentWidth=0);}function C(n,r,t){n.currentLine=r,n.currentWidth=t;}function I(n,r){let t=P(n,r),i=t.slice(0,Math.max(0,t.length-1)),e=t[t.length-1]??"";return {lines:i,tail:{text:e,width:c(e)}}}function Z(n,r){let t=0,i=0,e=false;for(let s=0;s<n.length&&i<r;s++){let o=n[s];if(o!==void 0){if(o==="\x1B"){e=true;continue}if(e){/[a-zA-Z\\]/.test(o)&&(e=false);continue}i++,t=s+1;}}return t===0?Math.min(n.length,1):t}function B(n,r){let{width:t,wrap:i=true,align:e="left",breakWord:s=false}=r;return t<=0?[""]:i?(s?L(n,t):S(n,t)).map(u=>g(u,t,e)):n.split(`
4
+ `).map(u=>c(u)>t?x(u,t):g(u,t,e))}function O(n,r,t,i="top"){if(n.length>=r)return n.slice(0,r);let e=" ".repeat(t),s=r-n.length;switch(i){case "top":return [...n,...Array(s).fill(e)];case "bottom":return [...Array(s).fill(e),...n];case "middle":{let o=Math.floor(s/2),u=s-o;return [...Array(o).fill(e),...n,...Array(u).fill(e)]}}}export{h as a,c as b,x as c,g as d,S as e,B as f,O as g};
@@ -0,0 +1 @@
1
+ var e={grabbedKeys:new Set,allKeysLocked:false,ignoredKeys:new Set,customFilter:null};function n(){return {grabbedKeys:new Set,allKeysLocked:false,ignoredKeys:new Set,customFilter:null}}function K(){return e}function g(){e=n();}function s(r){let o=new Set(e.grabbedKeys);for(let t of r)o.add(t.toLowerCase());e={...e,grabbedKeys:o};}function i(r){let o=new Set(e.grabbedKeys);for(let t of r)o.delete(t.toLowerCase());e={...e,grabbedKeys:o};}function u(){e={...e,grabbedKeys:new Set};}function f(r){return e.grabbedKeys.has(r.toLowerCase())}function b(){return Array.from(e.grabbedKeys)}function l(){e={...e,allKeysLocked:true};}function a(){e={...e,allKeysLocked:false};}function k(){return e.allKeysLocked}function y(r){e={...e,ignoredKeys:new Set(r.map(o=>o.toLowerCase()))};}function L(r){let o=new Set(e.ignoredKeys);for(let t of r)o.add(t.toLowerCase());e={...e,ignoredKeys:o};}function p(r){let o=new Set(e.ignoredKeys);for(let t of r)o.delete(t.toLowerCase());e={...e,ignoredKeys:o};}function x(){e={...e,ignoredKeys:new Set};}function w(){return Array.from(e.ignoredKeys)}function S(r){return e.ignoredKeys.has(r.toLowerCase())}function d(r){e={...e,customFilter:r};}function v(){return e.customFilter}function m(r){let o=r.name.toLowerCase();return !!(e.grabbedKeys.has(o)||e.allKeysLocked&&!e.ignoredKeys.has(o)||e.customFilter&&e.customFilter(r))}function F(r){let o=r.toLowerCase();return !!(e.grabbedKeys.has(o)||e.allKeysLocked&&!e.ignoredKeys.has(o))}function c(r){r.release&&i(r.release),r.grab&&s(r.grab),r.lockAll!==void 0&&(r.lockAll?l():a()),r.ignore&&y(r.ignore),r.filter!==void 0&&d(r.filter);}function A(r){let o=e;return c(r),()=>{e=o;}}export{n as a,K as b,g as c,s as d,i as e,u as f,f as g,b as h,l as i,a as j,k,y as l,L as m,p as n,x as o,w as p,S as q,d as r,v as s,m as t,F as u,c as v,A as w};
@@ -0,0 +1 @@
1
+ import {d,f}from'./chunk-BCADUCOZ.js';import {r,w,K as K$1,Q as Q$1,v,G as G$1,J as J$1,I as I$1}from'./chunk-W5OU7Z6J.js';import {k as k$1,i as i$1,a,f as f$1}from'./chunk-G7GIWWLE.js';import {n,i,k,h}from'./chunk-PXXGH3BV.js';n();var p=1e4,o={x:new Float32Array(p),y:new Float32Array(p),width:new Float32Array(p),height:new Float32Array(p),valid:new Uint8Array(p)};function A(n,t){if(i(n,t,o)&&o.valid[t]===1)return {x:o.x[t],y:o.y[t],width:o.width[t],height:o.height[t]}}function et(n,t){return i(n,t,o)&&o.valid[t]===1}function ot(n,t){i(n,t,o)&&(o.valid[t]=0);}function G(n,t){i(n,t,o)||(h(n,t,o),o.x[t]=0,o.y[t]=0,o.width[t]=0,o.height[t]=0,o.valid[t]=0);}function x(n){if(!d(n))return {width:80,height:24};let t=f(n);return !t||!Q$1(n,t)?{width:80,height:24}:{width:K$1.width[t],height:K$1.height[t]}}function I(n,t,e,i,s){let r;if(n===G$1)r=e;else if(J$1(n)){let u=I$1(n);r=u!==null?u/100*t:0;}else r=n;return r=Math.max(i,r),Number.isFinite(s)&&(r=Math.min(s,r)),Math.floor(r)}function U(n,t,e,i,s,r$1){G(n,t);let u=w(n,t)?r.x[t]:0,m=w(n,t)?r.y[t]:0,a=v(n,t),f,y;a?(f=u,y=m):(f=e+u,y=i+m);let l=0,g=0;if(Q$1(n,t)){let _=K$1.width[t],k=K$1.height[t],O=K$1.minWidth[t],q=K$1.minHeight[t],B=K$1.maxWidth[t],R=K$1.maxHeight[t],S=K$1.shrink[t]===1,X=S?0:s,j=S?0:r$1;l=I(_,s,X,O,B),g=I(k,r$1,j,q,R);}a||(f+l>e+s&&(l=Math.max(0,e+s-f)),y+g>i+r$1&&(g=Math.max(0,i+r$1-y))),o.x[t]=f,o.y[t]=y,o.width[t]=l,o.height[t]=g,o.valid[t]=1;}function Y(n,t,e,i,s,r){U(n,t,e,i,s,r);let u=A(n,t);if(!u)return;let m=f$1(n,t);for(let a of m)Y(n,a,u.x,u.y,u.width,u.height);}function J(n){let t=k(n,[r]),e=[];for(let i of t)k$1(n,i)?i$1(n,i)===a&&e.push(i):e.push(i);return e}var K=n=>{let t=x(n),e=J(n);for(let i of e)Y(n,i,0,0,t.width,t.height);return n};function rt(){return K}function it(n){let t=k(n,[r]);for(let e of t)i(n,e,o)&&(o.valid[e]=0);}function Q(n,t){if(!w(n,t))return;let e=0,i=0,s,r;if(k$1(n,t)){let u=i$1(n,t);if(u!==a){let m=Q(n,u);if(m)e=m.x,i=m.y,s=m.width,r=m.height;else {let a=x(n);s=a.width,r=a.height;}}else {let m=x(n);s=m.width,r=m.height;}}else {let u=x(n);s=u.width,r=u.height;}return U(n,t,e,i,s,r),A(n,t)}function ut(n,t){let e=A(n,t);if(e)return {left:e.x,top:e.y,right:e.x+e.width-1,bottom:e.y+e.height-1}}export{o as a,A as b,et as c,ot as d,K as e,rt as f,it as g,Q as h,ut as i};
@@ -0,0 +1,4 @@
1
+ import {a as a$2}from'./chunk-AQ7LW75B.js';import {c as c$1,a as a$1}from'./chunk-XZA63ZPO.js';import {f as f$1,v as v$1}from'./chunk-BCADUCOZ.js';import {v as v$2,c as c$2,i as i$3}from'./chunk-KD55INV7.js';import {e,k as k$1,a as a$3,f as f$5,g as g$3,h as h$1}from'./chunk-PSXXMBVJ.js';import {s,m as m$1,i,n as n$1}from'./chunk-LCN2ZITE.js';import {d,l,f as f$3}from'./chunk-FYEBZAWN.js';import {w as w$1,t,Q as Q$1,M as M$1,r,ba as ba$1,V as V$1,g,Y,c as c$3,K,P,l as l$1,a as a$5}from'./chunk-W5OU7Z6J.js';import {b as b$2,f as f$4}from'./chunk-WNG4A3K7.js';import {a,i as i$2,b as b$1,f as f$2,e as e$1,k as k$2,g as g$2}from'./chunk-G7GIWWLE.js';import {n,c,i as i$1,e as e$2,k,g as g$1,a as a$4,d as d$1,h,j as j$1}from'./chunk-PXXGH3BV.js';import {z as z$1}from'zod';s();function jt(e){let t=f$1(e);return t?v$1(e,t):false}function ot(e,t){let n={left:0,top:0,right:0,bottom:0};return !jt(e)||!m$1(e,t)||i.type[t]===0?n:{left:i.left[t]===1?1:0,top:i.top[t]===1?1:0,right:i.right[t]===1?1:0,bottom:i.bottom[t]===1?1:0}}function Qt(e$1,t){let n=e(e$1,t),r=n?.left??0,o=n?.top??0,i=n?.right??0,a=n?.bottom??0,s=ot(e$1,t),l=r+s.left,c=o+s.top,p=i+s.right,T=a+s.bottom;return {left:l,top:c,right:p,bottom:T,horizontal:l+p,vertical:c+T}}function pr(e,t){let n=Qt(e,t);return n.left+n.top+n.right+n.bottom}function mr(e,t){let n=ot(e,t);return n.left>0||n.top>0||n.right>0||n.bottom>0}var it={teeRight:9500,teeLeft:9508,teeDown:9516,teeUp:9524,cross:9532,horizontal:9472,vertical:9474},en={teeRight:9568,teeLeft:9571,teeDown:9574,teeUp:9577,cross:9580,horizontal:9552,vertical:9553},tn={teeRight:9507,teeLeft:9515,teeDown:9523,teeUp:9531,cross:9547,horizontal:9473,vertical:9475},nn={teeRight:43,teeLeft:43,teeDown:43,teeUp:43,cross:43,horizontal:45,vertical:124};function gr(e,t,n={}){return {width:e,height:t,edges:new Map,enabled:n.enabled??true}}function br(e){e.edges.clear();}function hr(e,t,n){return {...e,width:t,height:n}}function q(e,t){return `${e},${t}`}function rn(e){let[t,n]=e.split(",");return {x:Number.parseInt(t??"0",10),y:Number.parseInt(n??"0",10)}}function at(e){return e===9472||e===9474||e===9484||e===9488||e===9492||e===9496||e===9500||e===9508||e===9516||e===9524||e===9532?"single":e===9552||e===9553||e===9556||e===9559||e===9562||e===9565||e===9568||e===9571||e===9574||e===9577||e===9580?"double":e===9473||e===9475||e===9487||e===9491||e===9495||e===9499||e===9507||e===9515||e===9523||e===9531||e===9547?"bold":e===45||e===124||e===43?"ascii":"unknown"}function st(e){switch(e){case "single":return it;case "double":return en;case "bold":return tn;case "ascii":return nn;default:return it}}function z(e,t,n,r,o,i,a){let s=q(t,n),l={x:t,y:n,type:r,char:o,fg:i,bg:a,style:at(o)},c=e.edges.get(s);c?c.push(l):e.edges.set(s,[l]);}function Er(e,t,n,r,o,i,a,s,l){for(let c=1;c<r-1;c++)z(e,t+c,n,"h",i,s,l);for(let c=1;c<r-1;c++)z(e,t+c,n+o-1,"h",i,s,l);for(let c=1;c<o-1;c++)z(e,t,n+c,"v",a,s,l);for(let c=1;c<o-1;c++)z(e,t+r-1,n+c,"v",a,s,l);z(e,t,n,"c",0,s,l),z(e,t+r-1,n,"c",0,s,l),z(e,t,n+o-1,"c",0,s,l),z(e,t+r-1,n+o-1,"c",0,s,l);}function lt(e,t,n){let r=e.edges.get(q(t-1,n)),o=e.edges.get(q(t+1,n)),i=e.edges.get(q(t,n-1)),a=e.edges.get(q(t,n+1));return {left:r?.some(s=>s.type==="h"||s.type==="c")??false,right:o?.some(s=>s.type==="h"||s.type==="c")??false,top:i?.some(s=>s.type==="v"||s.type==="c")??false,bottom:a?.some(s=>s.type==="v"||s.type==="c")??false}}function ct(e,t){let{left:n,top:r,right:o,bottom:i}=e;return (n?1:0)+(r?1:0)+(o?1:0)+(i?1:0)<3?null:n&&r&&o&&i?t.cross:n&&r&&i?t.teeLeft:o&&r&&i?t.teeRight:n&&o&&i?t.teeDown:n&&o&&r?t.teeUp:null}function xr(e){if(!e.enabled)return [];let t=[],n=new Set;for(let[r,o]of e.edges){if(n.has(r)||(n.add(r),o.length<2))continue;let{x:i,y:a}=rn(r),s=lt(e,i,a),l=o[0];if(!l)continue;let c=st(l.style),p=ct(s,c);p!==null&&t.push({x:i,y:a,char:p,fg:l.fg,bg:l.bg});}return t}function vr(e,t){let n=t.some(o=>o.type==="h"),r=t.some(o=>o.type==="v");return {left:e.left||n,right:e.right||n,top:e.top||r,bottom:e.bottom||r}}function Cr(e,t,n,r){if(!e.some(l=>l.type==="c")||e.length<=1)return null;let i=e[0];if(!i)return null;let a=st(i.style),s=ct(t,a);return s===null?null:{x:n,y:r,char:s,fg:i.fg,bg:i.bg}}function Sr(e){if(!e.enabled)return [];let t=[],n=new Set;for(let[r,o]of e.edges){if(n.has(r))continue;n.add(r);let{x:i,y:a}=rn(r),s=lt(e,i,a),l=vr(s,o),c=Cr(o,l,i,a);c&&t.push(c);}return t}function Pr(e,t){for(let n of t)n.x>=0&&n.x<e.width&&n.y>=0&&n.y<e.height&&e.setCell(n.x,n.y,{char:String.fromCodePoint(n.char),fg:n.fg,bg:n.bg});}function Dr(e){return e.map(t=>({x:t.x,y:t.y,char:String.fromCodePoint(t.char),fg:t.fg,bg:t.bg}))}function Ir(e){return at(e)!=="unknown"}function Ar(e){return e>=9500&&e<=9532||e>=9568&&e<=9580||e>=9507&&e<=9547||e===43}function Tr(e){return e.edges.size}function kr(e,t,n){return e.edges.get(q(t,n))??[]}s();n();var Ie=1e4,N={HIDDEN:0,VISIBLE:1,SCROLL:2},m={overflow:new Uint8Array(Ie),overflowX:new Uint8Array(Ie),overflowY:new Uint8Array(Ie),hasIndependentOverflow:new Uint8Array(Ie)};function Rr(e,t){i$1(e,t,m)||(h(e,t,m),m.overflow[t]=N.HIDDEN,m.overflowX[t]=N.HIDDEN,m.overflowY[t]=N.HIDDEN,m.hasIndependentOverflow[t]=0);}function Br(e,t){return i$1(e,t,m)}function Wr(e,t,n){return Rr(e,t),typeof n=="number"?(m.overflow[t]=n,m.overflowX[t]=n,m.overflowY[t]=n,m.hasIndependentOverflow[t]=0):(n.overflow!==void 0&&(m.overflow[t]=n.overflow,m.overflowX[t]=n.overflow,m.overflowY[t]=n.overflow),n.overflowX!==void 0&&(m.overflowX[t]=n.overflowX,m.hasIndependentOverflow[t]=1),n.overflowY!==void 0&&(m.overflowY[t]=n.overflowY,m.hasIndependentOverflow[t]=1)),t}function Ae(e,t){return i$1(e,t,m)?m.overflow[t]:N.HIDDEN}function Lr(e,t){if(i$1(e,t,m))return {overflow:m.overflow[t],overflowX:m.overflowX[t],overflowY:m.overflowY[t]}}function zr(e,t,n,r){return {x1:e,y1:t,x2:e+n,y2:t+r}}function ye(){return {x1:-1/0,y1:-1/0,x2:1/0,y2:1/0}}function wr(e){return e.x1>=e.x2||e.y1>=e.y2}function Mr(e,t,n){return t>=e.x1&&t<e.x2&&n>=e.y1&&n<e.y2}function Or(e,t,n,r,o){return t<e.x2&&t+r>e.x1&&n<e.y2&&n+o>e.y1}function Te(e,t){return {x1:Math.max(e.x1,t.x1),y1:Math.max(e.y1,t.y1),x2:Math.min(e.x2,t.x2),y2:Math.min(e.y2,t.y2)}}function Nr(e,t,n){return {x:Math.max(e.x1,Math.min(e.x2-1,t)),y:Math.max(e.y1,Math.min(e.y2-1,n))}}function Fr(e){return e.x2-e.x1}function _r(e){return e.y2-e.y1}function Kr(e,t){return n$1(e,t)?{top:i.top[t]===1?1:0,right:i.right[t]===1?1:0,bottom:i.bottom[t]===1?1:0,left:i.left[t]===1?1:0}:{top:0,right:0,bottom:0,left:0}}function on(e,t){if(!c$1(e,t))return null;let n=a$1.x[t],r=a$1.y[t],o=a$1.width[t],i=a$1.height[t],a=Kr(e,t);return {x1:n+a.left,y1:r+a.top,x2:n+o-a.right,y2:r+i-a.bottom}}function Hr(e,t){let n=ye(),r=t;for(;r!==a;){if(Ae(e,r)!==N.VISIBLE){let a=on(e,r);a&&(n=Te(n,a));}r=i$2(e,r)??a;}return n}function Ur(e,t,n){let r=ye(),o=t;for(;o!==a&&o!==n;){if(Ae(e,o)!==N.VISIBLE){let s=on(e,o);s&&(r=Te(r,s));}o=i$2(e,o)??a;}return r}function Vr(e,t){return Ae(e,t)!==N.VISIBLE}function Zr(){return {stack:[],current:ye()}}function Jr(e,t){let n=[...e.stack,e.current],r=Te(e.current,t);return {stack:n,current:r}}function Yr(e){if(e.stack.length===0)return e;let t=e.stack.slice(0,-1),n=e.stack[e.stack.length-1];return {stack:t,current:n??ye()}}function Xr(e){return e.current}s();n();function ut(e,t){return m$1(e,t)?i.type[t]===0?0:1:0}function ft(e,t){if(!Q$1(e,t))return {width:0,height:0};let n=M$1(e,t);return {width:n?.width??0,height:n?.height??0}}function Gr(e$1,t){let n=ut(e$1,t),r=n,o=e(e$1,t);return o&&(n+=o.left,r+=o.top),{x:n,y:r}}function an(e,t$1){let n=0,r=0;if(!i$1(e,t$1,b$1))return {x:n,y:r};let o=i$2(e,t$1);for(;o!==a;){if(!w$1(e,o)){o=i$2(e,o);continue}let i=t(e,o);if(!i){o=i$2(e,o);continue}n+=i.x,r+=i.y;let a=Gr(e,o);if(n+=a.x,r+=a.y,i.absolute)break;o=i$2(e,o);}return {x:n,y:r}}function ke(e,t$1){if(!w$1(e,t$1))return;let n=t(e,t$1);if(!n)return;let r=ft(e,t$1);if(n.absolute)return {left:n.x,top:n.y,right:n.x+r.width-1,bottom:n.y+r.height-1};let o=an(e,t$1),i=n.x+o.x,a=n.y+o.y;return {left:i,top:a,right:i+r.width-1,bottom:a+r.height-1}}function sn(e,t$1){if(!w$1(e,t$1))return;let n=t(e,t$1);if(!n)return;let r=ft(e,t$1),o=0,i=0;if(i$1(e,t$1,b$1)){let a$1=i$2(e,t$1);if(a$1!==a){let s=Re(e,a$1);s&&(o=s.width,i=s.height);}}return {left:n.x,top:n.y,right:Math.max(0,o-n.x-r.width),bottom:Math.max(0,i-n.y-r.height)}}function dt(e$1,t){let n=ke(e$1,t);if(!n)return;let r=ut(e$1,t),o=e(e$1,t),i=o?.left??0,a=o?.top??0,s=o?.right??0,l=o?.bottom??0;return {left:n.left+r+i,top:n.top+r+a,right:n.right-r-s,bottom:n.bottom-r-l}}function Re(e$1,t){if(!Q$1(e$1,t))return;let n=M$1(e$1,t);if(!n)return;let r=ut(e$1,t),o=e(e$1,t),i=(o?.left??0)+(o?.right??0),a=(o?.top??0)+(o?.bottom??0);return {width:Math.max(0,n.width-r*2-i),height:Math.max(0,n.height-r*2-a)}}function ln(e$1,t){let n=e(e$1,t),r=n?.left??0,o=n?.right??0,i=n?.top??0,a=n?.bottom??0;return {horizontal:r+o,vertical:i+a,total:r+o+i+a}}function qr(e,t,n,r$1){let o=an(e,t),i=n-o.x,a=r$1-o.y;return r.x[t]=i,r.y[t]=a,t}function $r(e,t,n){let r$1=ft(e,t),o=0,i=0;if(i$1(e,t,b$1)){let l=i$2(e,t);if(l!==a){let c=Re(e,l);c&&(o=c.width,i=c.height);}}let a$1;n.left!==void 0?a$1=n.left:n.right!==void 0?a$1=o-r$1.width-n.right:a$1=r.x[t];let s;return n.top!==void 0?s=n.top:n.bottom!==void 0?s=i-r$1.height-n.bottom:s=r.y[t],r.x[t]=a$1,r.y[t]=s,t}function jr(e,t){let n=ke(e,t);if(!n)return;let r=sn(e,t);if(!r)return;let o=dt(e,t);if(!o)return;let i=Re(e,t)??{width:0,height:0},a=ln(e,t);return {absolute:n,relative:r,inner:o,innerDimensions:i,totalPadding:a}}function yt(e,t,n,r){let o=ke(e,t);return o?n>=o.left&&n<=o.right&&r>=o.top&&r<=o.bottom:false}function Qr(e,t,n,r){let o=dt(e,t);return o?n>=o.left&&n<=o.right&&r>=o.top&&r<=o.bottom:false}function un(e,t){let n=e*t,r=Math.ceil(n/8);return {width:e,height:t,dirtyCells:new Uint8Array(r),dirtyEntities:new Set,entityBounds:new Map,dirtyRegions:[],regionsStale:true,forceFullRedraw:true,frameCount:0}}function eo(e,t,n){let r=un(t,n);for(let[o,i]of e.entityBounds)i.prevX<t&&i.prevY<n&&r.entityBounds.set(o,{...i});return r.forceFullRedraw=true,r}function to(e,t,n){if(t<0||t>=e.width||n<0||n>=e.height)return;let r=n*e.width+t,o=r>>3,i=r&7,a=e.dirtyCells[o];a!==void 0&&(e.dirtyCells[o]=a|1<<i),e.regionsStale=true;}function no(e,t,n){if(t<0||t>=e.width||n<0||n>=e.height)return false;let r=n*e.width+t,o=r>>3,i=r&7,a=e.dirtyCells[o];return a===void 0?false:(a&1<<i)!==0}function Be(e,t,n,r,o){let i=Math.max(0,Math.floor(t)),a=Math.max(0,Math.floor(n)),s=Math.min(e.width,Math.floor(t+r)),l=Math.min(e.height,Math.floor(n+o));if(!(s<=i||l<=a)){for(let c=a;c<l;c++)for(let p=i;p<s;p++){let T=c*e.width+p,xe=T>>3,dr=T&7,Mt=e.dirtyCells[xe];Mt!==void 0&&(e.dirtyCells[xe]=Mt|1<<dr);}e.regionsStale=true;}}function fn(e,t,n){if(e.dirtyEntities.add(n),!c$1(t,n))return;let r=a$1.x[n],o=a$1.y[n],i=a$1.width[n],a=a$1.height[n],s=e.entityBounds.get(n);s&&(s.prevX!==r||s.prevY!==o||s.prevWidth!==i||s.prevHeight!==a)&&Be(e,s.prevX,s.prevY,s.prevWidth,s.prevHeight),Be(e,r,o,i,a),e.regionsStale=true;}function ro(e,t,n,r){if(!c$1(t,n)){e.entityBounds.delete(n);return}let o={prevX:a$1.x[n],prevY:a$1.y[n],prevWidth:a$1.width[n],prevHeight:a$1.height[n],wasVisible:r};e.entityBounds.set(n,o);}function oo(e,t){let n=e.entityBounds.get(t);n?.wasVisible&&Be(e,n.prevX,n.prevY,n.prevWidth,n.prevHeight),e.dirtyEntities.delete(t),e.entityBounds.delete(t);}function io(e,t){return e.dirtyEntities.has(t)}function We(e,t,n){let r=t*n+e;return {byteIndex:r>>3,bitIndex:r&7}}function cn(e,t,n){let r=e[t];if(r!==void 0)return (r&1<<n)!==0}function ao(e,t,n){let r=e[t];r!==void 0&&(e[t]=r|1<<n);}function pt(e,t,n,r){let o=cn(e,n,r),i=cn(t,n,r);return o===void 0||i===void 0?false:o&&!i}function so(e){if(e.forceFullRedraw)return [{x:0,y:0,width:e.width,height:e.height}];let t=[],n=new Uint8Array(e.dirtyCells.length);for(let r=0;r<e.height;r++)for(let o=0;o<e.width;o++){let{byteIndex:i,bitIndex:a}=We(o,r,e.width);if(pt(e.dirtyCells,n,i,a)){let s=fo(e,n,o,r);s.width>0&&s.height>0&&t.push(s);}}return po(t)}function lo(e,t,n,r,o,i){let a=n;for(;a<i;){let{byteIndex:s,bitIndex:l}=We(a,r,o);if(!pt(e,t,s,l))break;a++;}return a}function co(e,t,n,r,o,i){for(let a=n;a<r;a++){let{byteIndex:s,bitIndex:l}=We(a,o,i);if(!pt(e,t,s,l))return false}return true}function uo(e,t,n,r,o,i){for(let a=n;a<o;a++)for(let s=t;s<r;s++){let{byteIndex:l,bitIndex:c}=We(s,a,i);ao(e,l,c);}}function fo(e,t,n,r){let o=lo(e.dirtyCells,t,n,r,e.width,e.width),i=o-n;if(i===0)return {x:n,y:r,width:0,height:0};let a=r;for(;a<e.height&&co(e.dirtyCells,t,n,o,a,e.width);)a++;return uo(t,n,r,o,a,e.width),{x:n,y:r,width:i,height:a-r}}function yo(e,t,n,r){let o=e,i=false;for(let a=r;a<t.length;a++){if(n.has(a))continue;let s=t[a];s&&mo(o,s)&&(o=go(o,s),n.add(a),i=true);}return {merged:o,didMerge:i}}function po(e){if(e.length<2)return e;let t=[...e].sort((o,i)=>i.width*i.height-o.width*o.height),n=[],r=new Set;for(let o=0;o<t.length;o++){if(r.has(o))continue;let i=t[o];if(!i)continue;r.add(o);let a=true;for(;a;){let s=yo(i,t,r,o+1);i=s.merged,a=s.didMerge;}n.push(i);}return n}function mo(e,t){let n=e.x+e.width,r=e.y+e.height,o=t.x+t.width,i=t.y+t.height;return !(t.x>n+1||o<e.x-1||t.y>r+1||i<e.y-1)}function go(e,t){let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y),o=Math.max(e.x+e.width,t.x+t.width),i=Math.max(e.y+e.height,t.y+t.height);return {x:n,y:r,width:o-n,height:i-r}}function Le(e){return e.regionsStale&&(e.dirtyRegions.length=0,e.dirtyRegions.push(...so(e)),e.regionsStale=false),e.dirtyRegions}function bo(e){return e.forceFullRedraw?true:e.dirtyEntities.size>0}function ho(e){return e.forceFullRedraw}function Eo(e){return e.dirtyEntities}function xo(e){let t=Le(e),n=e.width*e.height,r=0;for(let o of t)r+=o.width*o.height;return {dirtyEntityCount:e.dirtyEntities.size,dirtyRegionCount:t.length,dirtyArea:r,dirtyPercent:n>0?r/n*100:0,fullRedraw:e.forceFullRedraw,trackedEntityCount:e.entityBounds.size}}function vo(e){e.dirtyCells.fill(0),e.dirtyEntities.clear(),e.dirtyRegions.length=0,e.regionsStale=true,e.forceFullRedraw=false,e.frameCount++;}function Co(e){e.forceFullRedraw=true,e.regionsStale=true;}function So(e,t){for(let n of e.entityBounds.keys())fn(e,t,n);}function Po(e,t,n,r,o){if(e.forceFullRedraw)return true;let i=Le(e);for(let a of i)if(t<a.x+a.width&&t+r>a.x&&n<a.y+a.height&&n+o>a.y)return true;return false}function Do(e,t,n,r,o){let i=Le(e),a=[];for(let s of i){let l=Math.max(s.x,t),c=Math.max(s.y,n),p=Math.min(s.x+s.width,t+r),T=Math.min(s.y+s.height,n+o);p>l&&T>c&&a.push({x:l,y:c,width:p-l,height:T-c});}return a}n();var ze=new Map;function w(e,t){let n=ze.get(e);return n||(n=t(),ze.set(e,n)),n}function mt(e){ze.delete(e);}function Io(){ze.clear();}function Ao(e,t,n,r){e.emit("reparent",{entity:t,oldParent:n,newParent:r});}function To(e,t,n){e.emit("adopt",{parent:t,child:n});}function ko(e,t,n){e.emit("attach",{entity:t,screen:n});}function Ro(e,t,n){e.emit("detach",{entity:t,screen:n});}function Bo(e,t,n){e.emit("remove",{parent:t,child:n});}function gt(e,t){e.emit("destroy",{entity:t});}function Wo(e,t,n){return w(e,n).on("reparent",t)}function Lo(e,t,n){return w(e,n).on("adopt",t)}function zo(e,t,n){return w(e,n).on("attach",t)}function wo(e,t,n){return w(e,n).on("detach",t)}function Mo(e,t,n){return w(e,n).on("remove",t)}function Oo(e,t,n){return w(e,n).on("destroy",t)}var M=new Set,bt=new WeakMap,$=[];function we(e){let t=bt.get(e);return t||(t=new Set,bt.set(e,t)),t}function No(e){return $.push(e),()=>{let t=$.indexOf(e);t!==-1&&$.splice(t,1);}}function dn(){$.length=0;}function yn(e,t,n={}){let{immediate:r=false,destroyChildren:o=true,emitEvent:i=true}=n;if(r)ht(e,t,o,i);else {let a=we(e);if(a.add(t),M.add(t),o&&i$1(e,t,b$1)){let s=f$2(e,t);for(let l of s)a.add(l),M.add(l);}}}function Fo(e,t,n={}){if(!i$1(e,t,b$1))return;let r=f$2(e,t);for(let o of r)yn(e,o,n);}function _o(e){return M.has(e)}function Ko(e){let t=we(e),n=t.size;if(n===0)return 0;let r=Array.from(t);r.sort((o,i)=>{let a=i$1(e,o,b$1)?b$1.depth[o]??0:0;return (i$1(e,i,b$1)?b$1.depth[i]??0:0)-a});for(let o of r)M.has(o)&&ht(e,o,false,true);return t.clear(),n}function ht(e,t,n,r){if(M.delete(t),r)try{let o=w(t,()=>a$2());gt(o,t);}catch{}if(n&&i$1(e,t,b$1)){let o=f$2(e,t);for(let i of o)ht(e,i,true,r);}if(i$1(e,t,b$1)){let o=i$2(e,t);o!==a&&e$1(e,o,t);}for(let o of $)try{o(e,t);}catch{}mt(t);try{e$2(e,t);}catch{}}function Ho(e){we(e).clear(),M.clear(),dn();}function Uo(e){return e?bt.get(e)?.size??0:M.size}function Vo(e){let t=we(e);for(let n of t)M.delete(n);t.clear();}function Zo(){M.clear(),$.length=0;}n();var v=new Map;function j(e,t,n){return typeof n=="function"?n(e,t):n}function Q(e,t,n){let r={};return n.fg!==void 0&&(r.fg=j(e,t,n.fg)),n.bg!==void 0&&(r.bg=j(e,t,n.bg)),n.bold!==void 0&&(r.bold=j(e,t,n.bold)),n.underline!==void 0&&(r.underline=j(e,t,n.underline)),n.blink!==void 0&&(r.blink=j(e,t,n.blink)),n.inverse!==void 0&&(r.inverse=j(e,t,n.inverse)),r}function Jo(e,t){return l$1(e,t)?{fg:c$3.fg[t],bg:c$3.bg[t],bold:c$3.bold[t]===1,underline:c$3.underline[t]===1,blink:c$3.blink[t]===1,inverse:c$3.inverse[t]===1,transparent:c$3.transparent[t]===1,opacity:c$3.opacity[t]??1}:{fg:c$3.fg[t],bg:c$3.bg[t],bold:false,underline:false,blink:false,inverse:false,transparent:false,opacity:1}}function pe(e,t){let n=v.get(t);return n||(n={original:Jo(e,t),focusApplied:false,hoverApplied:false},v.set(t,n)),n}function Yo(e){return v.get(e)}function Xo(e){return v.has(e)}function Go(e){v.delete(e);}function qo(){v.clear();}function U(e,t){t.fg!==void 0&&(c$3.fg[e]=t.fg),t.bg!==void 0&&(c$3.bg[e]=t.bg),t.bold!==void 0&&(c$3.bold[e]=t.bold?1:0),t.underline!==void 0&&(c$3.underline[e]=t.underline?1:0),t.blink!==void 0&&(c$3.blink[e]=t.blink?1:0),t.inverse!==void 0&&(c$3.inverse[e]=t.inverse?1:0);}function me(e,t){c$3.fg[e]=t.fg,c$3.bg[e]=t.bg,c$3.bold[e]=t.bold?1:0,c$3.underline[e]=t.underline?1:0,c$3.blink[e]=t.blink?1:0,c$3.inverse[e]=t.inverse?1:0,c$3.transparent[e]=t.transparent?1:0;}function pn(e,t){if(!ba$1(e,t))return;let n=pe(e,t);if(n.focusApplied)return;let r={},o=V$1.focusEffectFg[t],i=V$1.focusEffectBg[t];(o&4278190080)!==0&&(r.fg=o),(i&4278190080)!==0&&(r.bg=i),U(t,r),n.focusApplied=true,g(e,t);}function mn(e,t){let n=v.get(t);!n||!n.focusApplied||(n.focusApplied=false,n.hoverApplied?$o(e,t,n):(me(t,n.original),v.delete(t)),g(e,t));}function Me(e){return v.get(e)?.focusApplied??false}function $o(e,t,n){if(!v$2(e,t))return;me(t,n.original);let r={},o=c$2.hoverEffectFg[t],i=c$2.hoverEffectBg[t];(o&4278190080)!==0&&(r.fg=o),(i&4278190080)!==0&&(r.bg=i),U(t,r);}function gn(e,t){if(!v$2(e,t))return;let n=pe(e,t);if(n.hoverApplied)return;let r={},o=c$2.hoverEffectFg[t],i=c$2.hoverEffectBg[t];(o&4278190080)!==0&&(r.fg=o),(i&4278190080)!==0&&(r.bg=i),U(t,r),n.hoverApplied=true,g(e,t);}function bn(e,t){let n=v.get(t);!n||!n.hoverApplied||(n.hoverApplied=false,n.focusApplied?jo(e,t,n):(me(t,n.original),v.delete(t)),g(e,t));}function jo(e,t,n){if(!ba$1(e,t))return;me(t,n.original);let r={},o=V$1.focusEffectFg[t],i=V$1.focusEffectBg[t];(o&4278190080)!==0&&(r.fg=o),(i&4278190080)!==0&&(r.bg=i),U(t,r);}function Oe(e){return v.get(e)?.hoverApplied??false}function Qo(e,t,n){pe(e,t);let r=Q(e,t,n);U(t,r),g(e,t);}function hn(e,t){let n=v.get(t);n&&(me(t,n.original),v.delete(t),g(e,t));}function Ne(e,t){let n=ba$1(e,t)&&Y(e,t),r=v$2(e,t)&&i$3(e,t),o=Me(t),i=Oe(t);n&&!o?pn(e,t):!n&&o&&mn(e,t),r&&!i?gn(e,t):!r&&i&&bn(e,t);}function En(e,t){return {fg:c$3.fg[t],bg:c$3.bg[t],bold:c$3.bold[t]===1,underline:c$3.underline[t]===1,blink:c$3.blink[t]===1,inverse:c$3.inverse[t]===1,transparent:c$3.transparent[t]===1,opacity:c$3.opacity[t]??1}}function ei(e,t){let n=v.get(t);return n?n.original:En(e,t)}var V=new Map,O=new Map;function ti(e,t,n){if(V.set(t,n),n.focus&&ba$1(e,t)){let r=Q(e,t,n.focus);r.fg!==void 0&&(V$1.focusEffectFg[t]=r.fg),r.bg!==void 0&&(V$1.focusEffectBg[t]=r.bg);}if(n.hover&&v$2(e,t)){let r=Q(e,t,n.hover);r.fg!==void 0&&(c$2.hoverEffectFg[t]=r.fg),r.bg!==void 0&&(c$2.hoverEffectBg[t]=r.bg);}Ne(e,t);}function ni(e){return V.get(e)}function ri(e,t){V.delete(t),O.delete(t),hn(e,t);}function xn(e){let t=O.get(e);return t||(t={pressApplied:false,disabledApplied:false},O.set(e,t)),t}function oi(e,t){let n=V.get(t);if(!n?.press)return;let r=xn(t);if(r.pressApplied)return;pe(e,t);let o=Q(e,t,n.press);U(t,o),r.pressApplied=true,g(e,t);}function ii(e,t){let n=O.get(t);n?.pressApplied&&(n.pressApplied=false,Ne(e,t));}function ai(e,t){let n=V.get(t);if(!n?.disabled)return;let r=xn(t);if(r.disabledApplied)return;pe(e,t);let o=Q(e,t,n.disabled);U(t,o),r.disabledApplied=true,g(e,t);}function si(e,t){let n=O.get(t);n?.disabledApplied&&(n.disabledApplied=false,Ne(e,t));}function Et(e){return O.get(e)?.pressApplied??false}function xt(e){return O.get(e)?.disabledApplied??false}function li(e){return Me(e)||Oe(e)||Et(e)||xt(e)}function ci(e){return {focus:Me(e),hover:Oe(e),press:Et(e),disabled:xt(e)}}function ui(e){v.delete(e),V.delete(e),O.delete(e);}function fi(){V.clear(),O.clear();}n();function di(e){let{type:t,target:n,payload:r,bubbles:o=true}=e;return {type:t,target:n,currentTarget:n,bubbles:o,defaultPrevented:false,propagationStopped:false,immediatePropagationStopped:false,payload:r,stopPropagation(){this.propagationStopped=true;},stopImmediatePropagation(){this.propagationStopped=true,this.immediatePropagationStopped=true;},preventDefault(){this.defaultPrevented=true;}}}function yi(e,t,n){let r=0,o=t.target;for(;o!==a;){t.currentTarget=o;let i=n(e,o);if(i&&(i.emit(t.type,t),r++,t.immediatePropagationStopped)||t.propagationStopped||!t.bubbles||!i$1(e,o,b$1))break;o=i$2(e,o);}return {defaultPrevented:t.defaultPrevented,propagationStopped:t.propagationStopped,dispatchCount:r}}function pi(){let e=new Map;return {get:(t,n)=>e.get(n),getOrCreate:(t,n)=>{let r=e.get(t);return r||(r=n(),e.set(t,r)),r},set:(t,n)=>{e.set(t,n);},delete:t=>e.delete(t),has:t=>e.has(t),clear:()=>e.clear()}}n();var y={xi:new Float32Array(1e4),xl:new Float32Array(1e4),yi:new Float32Array(1e4),yl:new Float32Array(1e4),base:new Float32Array(1e4),valid:new Uint8Array(1e4)};function mi(e,t,n){y.xi[t]=n.xi,y.xl[t]=n.xl,y.yi[t]=n.yi,y.yl[t]=n.yl,y.base[t]=n.base,y.valid[t]=1;}function gi(e,t){if(y.valid[t]===1)return {xi:y.xi[t],xl:y.xl[t],yi:y.yi[t],yl:y.yl[t],base:y.base[t]}}function bi(e,t){return y.valid[t]===1}function hi(e,t){y.valid[t]=0;}function Ei(e,t,n){y.valid[t]=0;let r=n(e,t);for(let o of r)y.valid[o]=0;}function xi(e){y.valid.fill(0);}function vi(e,t){return y.valid[t]!==1?0:y.xl[t]-y.xi[t]}function Ci(e,t){return y.valid[t]!==1?0:y.yl[t]-y.yi[t]}function Si(e,t,n){y.valid[t]===1&&(y.base[t]=n);}function vt(e,t,n,r){if(y.valid[t]!==1)return false;let o=y.xi[t],i=y.xl[t],a=y.yi[t],s=y.yl[t];return n>=o&&n<i&&r>=a&&r<s}s();n();function Pi(e){return k(e,[r,K,c$3])}function Di(e){return k(e,[V$1])}function ee(e){return k(e,[c$2])}function Ii(e){return k(e,[k$1])}function Ai(e){return k(e,[r,K,c$3,d])}function Ti(e){return k(e,[r,K,c$3,i])}function ki(e){return k(e,[r,K,c$3,a$3])}function vn(e){return k(e,[b$1])}function Ri(e,t){return t.filter(n=>c$3.visible[n]===1)}function Bi(e,t){return t.filter(n=>c$3.dirty[n]===1)}function Wi(e,t){return t.filter(n=>c$3.visible[n]===1&&c$3.dirty[n]===1)}function Cn(e,t){let n=[],r=b$1.firstChild[t];for(;r!==0;)n.push(r),r=b$1.nextSibling[r];return n}function Li(e,t){let n=[],r=[t];for(;r.length>0;){let o=r.pop(),i=Cn(e,o);for(let a of i)n.push(a),r.push(a);}return n}function zi(e){return vn(e).filter(n=>b$1.parent[n]===0)}function wi(e,t){return t.filter(n=>V$1.focusable[n]===1)}function Mi(e,t){return t.filter(n=>c$2.clickable[n]===1)}function Oi(e,t){return [...t].sort((n,r)=>{let o=V$1.tabIndex[n]??0,i=V$1.tabIndex[r]??0;return o===0&&i!==0?1:i===0&&o!==0?-1:o-i})}function Ni(e,t){return [...t].sort((n,r)=>(b$1.depth[n]??0)-(b$1.depth[r]??0))}n();var b=0,Fe=2147483647,_e=-2147483648,Sn=1e4,f={zIndex:new Int32Array(Sn),localZ:new Int32Array(Sn)};function Fi(e){f.zIndex[e]=b,f.localZ[e]=b;}function Z(e,t){i$1(e,t,f)||(h(e,t,f),Fi(t));}function te(e,t){return i$1(e,t,f)?f.zIndex[t]??b:b}function _i(e,t){return i$1(e,t,f)?f.localZ[t]??b:b}function Ke(e,t){return i$1(e,t,f)}function Ki(e,t,n){Z(e,t),f.zIndex[t]=Math.max(_e,Math.min(Fe,Math.floor(n)));}function Hi(e,t,n){Z(e,t),f.localZ[t]=Math.max(_e,Math.min(Fe,Math.floor(n)));}function Ui(e,t){Z(e,t);let n=He(e,t);if(n.length===0)return;let r=f.zIndex[t]??b;for(let o of n)if(i$1(e,o,f)){let i=f.zIndex[o]??b;i>=r&&(r=i+1);}f.zIndex[t]=r;}function Vi(e,t){Z(e,t);let n=He(e,t);if(n.length===0)return;let r=f.zIndex[t]??b;for(let o of n)if(i$1(e,o,f)){let i=f.zIndex[o]??b;i<=r&&(r=i-1);}f.zIndex[t]=r;}function Zi(e,t){Z(e,t);let n=He(e,t),r=f.zIndex[t]??b,o=null,i=Fe;for(let a of n)if(i$1(e,a,f)){let s=f.zIndex[a]??b;s>r&&s<i&&(o=a,i=s);}return o!==null?(f.zIndex[t]=i,f.zIndex[o]=r,true):false}function Ji(e,t){Z(e,t);let n=He(e,t),r=f.zIndex[t]??b,o=null,i=_e;for(let a of n)if(i$1(e,a,f)){let s=f.zIndex[a]??b;s<r&&s>i&&(o=a,i=s);}return o!==null?(f.zIndex[t]=i,f.zIndex[o]=r,true):false}function Pn(e,t){return [...t].sort((n,r)=>{let o=i$1(e,n,f)?f.zIndex[n]??b:b,i=i$1(e,r,f)?f.zIndex[r]??b:b;return o-i})}function Dn(e,t){let n=f$2(e,t);return Pn(e,n)}function He(e,t){if(!i$1(e,t,b$1))return [];let n=i$2(e,t);return n===a?[]:f$2(e,n).filter(o=>o!==t)}function Yi(e,t){let n=Dn(e,t);for(let r=0;r<n.length;r++){let o=n[r];o!==void 0&&(Z(e,o),f.zIndex[o]=r);}}function Xi(e){f.zIndex[e]=b,f.localZ[e]=b;}function Gi(){return {entities:[],dirty:true,lastCount:0}}function qi(e){e.dirty=true;}function $i(e){return e.dirty}function oe(e,t){if(!t.dirty)return;let r=ee(e).filter(o=>c$2.clickable[o]===1||c$2.hoverable[o]===1);r.sort((o,i)=>{let a=Ke(e,o)?f.zIndex[o]??0:0;return (Ke(e,i)?f.zIndex[i]??0:0)-a}),t.entities=r,t.lastCount=r.length,t.dirty=false;}function ji(e,t){return oe(e,t),t.entities}function Qi(e,t){return oe(e,t),t.entities.length}var Ct={useCachedPositions:true,clickableOnly:true,hoverableOnly:false,interactiveOnly:false};function ne(e,t,n){return i$1(e,t,c$2)?n.interactiveOnly?c$2.clickable[t]===1||c$2.hoverable[t]===1:n.clickableOnly&&n.hoverableOnly?c$2.clickable[t]===1&&c$2.hoverable[t]===1:n.clickableOnly?c$2.clickable[t]===1:n.hoverableOnly?c$2.hoverable[t]===1:true:false}function re(e,t,n,r,o){return o?vt(e,t,n,r):yt(e,t,n,r)}function ea(e,t,n,r,o){let i=o.useCachedPositions??true;oe(e,t);for(let a of t.entities)if(ne(e,a,o)&&re(e,a,n,r,i))return a;return null}function ta(e,t,n,r){let o=r.useCachedPositions??true,i=ee(e),a=[];for(let s of i)ne(e,s,r)&&re(e,s,t,n,o)&&a.push({eid:s,z:te(e,s)});return a.length===0?null:(a.sort((s,l)=>l.z-s.z),a[0]?.eid??null)}function ge(e,t,n,r,o=Ct){return r?ea(e,r,t,n,o):ta(e,t,n,o)}function St(e,t,n,r,o=Ct){let i=o.useCachedPositions??true,a=[];if(r){oe(e,r);for(let c of r.entities)ne(e,c,o)&&re(e,c,t,n,i)&&a.push(c);return a}let s=ee(e),l=[];for(let c of s)ne(e,c,o)&&re(e,c,t,n,i)&&l.push({eid:c,z:te(e,c)});return l.sort((c,p)=>p.z-c.z),l.map(c=>c.eid)}function na(e,t,n,r,o=Ct){let i=o.useCachedPositions??true,a=[];if(r){oe(e,r);for(let l of r.entities)ne(e,l,o)&&re(e,l,t,n,i)&&a.push({entity:l,zIndex:te(e,l)});return a}let s=ee(e);for(let l of s)ne(e,l,o)&&re(e,l,t,n,i)&&a.push({entity:l,zIndex:te(e,l)});return a.sort((l,c)=>c.zIndex-l.zIndex),a}function ra(e,t,n,r){return ge(e,t,n,r,{clickableOnly:true,useCachedPositions:true})!==null}function oa(e,t,n,r){return ge(e,t,n,r,{hoverableOnly:true,clickableOnly:false,useCachedPositions:true})!==null}function ia(e,t,n,r){return ge(e,t,n,r,{clickableOnly:true,useCachedPositions:true})}function aa(e,t,n,r){return ge(e,t,n,r,{hoverableOnly:true,clickableOnly:false,useCachedPositions:true})}function sa(e,t,n,r){return St(e,t,n,r,{clickableOnly:true,useCachedPositions:true})}function la(e,t,n,r){return St(e,t,n,r,{hoverableOnly:true,clickableOnly:false,useCachedPositions:true})}var In=z$1.object({keys:z$1.union([z$1.string(),z$1.array(z$1.string()).readonly()]),action:z$1.string().min(1),when:z$1.string().optional(),preventDefault:z$1.boolean().optional(),description:z$1.string().optional()}),ca=z$1.array(In),ua={esc:"escape",ret:"return",cr:"return",lf:"enter",bs:"backspace",del:"delete",ins:"insert",pgup:"pageup",pgdn:"pagedown",pgdown:"pagedown",arrow_up:"up",arrow_down:"down",arrow_left:"left",arrow_right:"right"},fa={control:"ctrl",cmd:"meta",command:"meta",option:"meta",alt:"meta",win:"meta",super:"meta"};function da(e,t){t==="ctrl"?e.ctrl=true:t==="meta"?e.meta=true:t==="shift"&&(e.shift=true);}function ya(e,t,n){if(t){let r=pa(e);if(!r)return false;n.name=r;}else {let r=ma(e);if(!r)return false;da(n,r);}return true}function Dt(e){if(!e)return null;let t=e.toLowerCase().split("+").map(r=>r.trim());if(t.length===0)return null;let n={name:"undefined",ctrl:false,meta:false,shift:false};for(let r=0;r<t.length;r++){let o=t[r];if(o&&!ya(o,r===t.length-1,n))return null}return n.name==="undefined"?null:n}function pa(e){let t=e.toLowerCase(),n=ua[t];return n||(t.length===1||/^f(1[0-2]|[1-9])$/.test(t)||new Set(["up","down","left","right","home","end","pageup","pagedown","insert","delete","clear","return","enter","tab","backspace","escape","space"]).has(t)?t:null)}function ma(e){let t=e.toLowerCase();return t==="ctrl"||t==="meta"||t==="shift"?t:fa[t]??null}function It(e){let t=[];return e.ctrl&&t.push("ctrl"),e.meta&&t.push("meta"),e.shift&&t.push("shift"),t.push(e.name),t.join("+")}function An(e){let t=[];return e.ctrl&&t.push("ctrl"),e.meta&&t.push("meta"),e.shift&&t.push("shift"),t.push(e.name),t.join("+")}function ga(){return {bindings:new Map,keyIndex:new Map}}function Tn(e,t){let n=new Map(e.bindings),r=new Map;for(let[i,a]of e.keyIndex)r.set(i,[...a]);n.set(t.action,t);let o=Array.isArray(t.keys)?t.keys:[t.keys];for(let i of o){let a=Dt(i);if(!a)continue;let s=It(a),l=r.get(s)??[];r.set(s,[...l,t]);}return {bindings:n,keyIndex:r}}function ba(e,t){return t.reduce((n,r)=>Tn(n,r),e)}function ha(e,t){if(!e.bindings.get(t))return e;let r=new Map(e.bindings),o=new Map;for(let[i,a]of e.keyIndex){let s=a.filter(l=>l.action!==t);s.length>0&&o.set(i,s);}return r.delete(t),{bindings:r,keyIndex:o}}function Ea(e,t){return e.bindings.get(t)}function xa(e,t){let n=It(t);return e.keyIndex.get(n)??[]}function va(e,t){let n=Array.isArray(e.keys)?e.keys:[e.keys];for(let r of n){let o=Dt(r);if(o&&o.name===t.name&&o.ctrl===t.ctrl&&o.meta===t.meta&&o.shift===t.shift)return true}return false}function kn(e,t){if(!e)return true;let n=e.split("&&").map(r=>r.trim());for(let r of n)if(!Rn(r,t))return false;return true}function Rn(e,t){let n=e.trim();if(n.startsWith("!"))return !Rn(n.slice(1),t);if(n.includes("==")){let o=n.split("==").map(c=>c.trim()),i=o[0],a=o[1];if(!i||!a)return false;let s=Pt(i,t),l=a.replace(/^['"]|['"]$/g,"");return String(s)===l}if(n.includes("!=")){let o=n.split("!=").map(c=>c.trim()),i=o[0],a=o[1];if(!i||!a)return false;let s=Pt(i,t),l=a.replace(/^['"]|['"]$/g,"");return String(s)!==l}return !!Pt(n,t)}function Pt(e,t){let n=e.trim();return t[n]}function Ca(e,t,n={}){let r=An(t),o=e.keyIndex.get(r)??[],i=[];for(let a of o)a.when&&!kn(a.when,n)||i.push({binding:a,action:a.action,preventDefault:a.preventDefault??true});return i}function Sa(e){return It(e)}function Pa(e){return An(e)}function Da(e){return [...e.bindings.values()]}var Ia=[{keys:["ctrl+c"],action:"copy",description:"Copy selection"},{keys:["ctrl+v"],action:"paste",description:"Paste clipboard"},{keys:["ctrl+x"],action:"cut",description:"Cut selection"},{keys:["ctrl+z"],action:"undo",description:"Undo"},{keys:["ctrl+shift+z","ctrl+y"],action:"redo",description:"Redo"},{keys:["ctrl+a"],action:"selectAll",description:"Select all"},{keys:["backspace"],action:"deleteBack",description:"Delete backwards"},{keys:["delete"],action:"deleteForward",description:"Delete forwards"},{keys:["home"],action:"moveToLineStart",description:"Move to line start"},{keys:["end"],action:"moveToLineEnd",description:"Move to line end"},{keys:["ctrl+home"],action:"moveToStart",description:"Move to document start"},{keys:["ctrl+end"],action:"moveToEnd",description:"Move to document end"}],Aa=[{keys:["tab"],action:"focusNext",description:"Focus next element"},{keys:["shift+tab"],action:"focusPrev",description:"Focus previous element"},{keys:["escape"],action:"cancel",description:"Cancel/close"},{keys:["enter","return"],action:"confirm",description:"Confirm/submit"},{keys:["up"],action:"moveUp",description:"Move up"},{keys:["down"],action:"moveDown",description:"Move down"},{keys:["left"],action:"moveLeft",description:"Move left"},{keys:["right"],action:"moveRight",description:"Move right"},{keys:["pageup"],action:"pageUp",description:"Page up"},{keys:["pagedown"],action:"pageDown",description:"Page down"}];var Bn={CRITICAL:0,HIGH:1,NORMAL:2,LOW:3};function Ta(e){let t,n=false;return {get(){return n||(t=e(),n=true),t},isInitialized(){return n},reset(){t=void 0,n=false;}}}var J=[],ie=null,Ue=null;function ka(e,t,n){J.find(o=>o.name===e)||J.push({name:e,priority:t,initFn:n,initialized:false,initTimeMs:null});}function Wn(e){let t=J.find(o=>o.name===e);if(!t||t.initialized)return null;ie===null&&(ie=performance.now());let n=performance.now();t.initFn();let r=performance.now()-n;return t.initialized=true,t.initTimeMs=r,Ue===null&&(Ue=performance.now()-ie),r}function Ra(e=Bn.LOW){ie===null&&(ie=performance.now());let t=0,n=[...J].filter(r=>!r.initialized&&r.priority<=e).sort((r,o)=>r.priority-o.priority);for(let r of n){let o=Wn(r.name);o!==null&&(t+=o);}return t}function Ba(){return {totalMs:J.filter(n=>n.initialized).reduce((n,r)=>n+(r.initTimeMs??0),0),subsystems:J.map(n=>({name:n.name,priority:n.priority,initTimeMs:n.initTimeMs??0,lazy:!n.initialized})),timeToFirstInit:Ue??0}}function Wa(e){let t=[],n=["CRITICAL","HIGH","NORMAL","LOW"];t.push("Startup Report"),t.push("\u2550".repeat(40)),t.push(`Total init time: ${e.totalMs.toFixed(1)}ms`),t.push(`Time to first init: ${e.timeToFirstInit.toFixed(1)}ms`),t.push("");for(let r of e.subsystems){let o=r.lazy?"(lazy)":`${r.initTimeMs.toFixed(1)}ms`,i=n[r.priority]??"UNKNOWN";t.push(` [${i}] ${r.name}: ${o}`);}return t.join(`
2
+ `)}function La(){J.length=0,ie=null,Ue=null;}function za(e=6e4){let t=At.get();if(t&&Date.now()-t.cachedAt<e)return t;let n=process.env,r=n.TERM??"",o=n.COLORTERM??"",i=o==="truecolor"||o==="24bit"||r.includes("24bit")||r.includes("truecolor"),a=i||r.includes("256color")||o==="256color",s=(n.LANG??"").includes("UTF-8")||(n.LC_ALL??"").includes("UTF-8"),l={term:r,trueColor:i,color256:a,unicode:s,width:process.stdout.columns??80,height:process.stdout.rows??24,cachedAt:Date.now()};return At.set(l),l}var At={_value:null,get(){return this._value},set(e){this._value=e;},clear(){this._value=null;}};function wa(){At.clear();}var zn={0:"INPUT",1:"EARLY_UPDATE",2:"UPDATE",3:"LATE_UPDATE",4:"PHYSICS",5:"LAYOUT",6:"RENDER",7:"POST_RENDER"};function Ma(e){return typeof e=="number"&&e>=0&&e<=7}function Ln(e){for(let t=0;t<=7;t++)e.set(t,{id:t,name:zn[t]??`PHASE_${t}`,order:t*1e3,isBuiltin:true});}function wn(){let e=new Map,t=0,n=true,r=[];Ln(e);function o(a){let s=Number.MAX_SAFE_INTEGER;for(let l of e.values())l.order>a&&l.order<s&&(s=l.order);return s===Number.MAX_SAFE_INTEGER&&(s=a+1e3),s}function i(){let a=Array.from(e.values());a.sort((s,l)=>s.order-l.order),r=a.map(s=>s.id),n=false;}return {registerPhase(a,s){let l=e.get(s);if(!l)throw new Error(`Cannot register phase after unknown phase: ${String(s)}`);let c=`custom_${a}_${++t}`,p=l.order,T=o(p),xe=p+(T-p)/2;return e.set(c,{id:c,name:a,order:xe,isBuiltin:false}),n=true,c},unregisterPhase(a){let s=e.get(a);if(!s)return false;if(s.isBuiltin)throw new Error(`Cannot remove built-in phase: ${s.name}`);return e.delete(a),n=true,true},getPhaseOrder(){return n&&i(),r},getPhaseName(a){return e.get(a)?.name},hasPhase(a){return e.has(a)},isBuiltin(a){return e.get(a)?.isBuiltin??false},getPhaseCount(){return e.size},getCustomPhaseCount(){let a=0;for(let s of e.values())s.isBuiltin||a++;return a},getCustomPhases(){let a=[];for(let s of e.values())!s.isBuiltin&&typeof s.id=="string"&&a.push(s.id);return a},clearCustomPhases(){for(let[a,s]of e)s.isBuiltin||e.delete(a);t=0,n=true;},reset(){e.clear(),t=0,Ln(e),n=true;}}}var Oa=wn();var Na=z$1.union([z$1.number(),z$1.string().refine(e=>!!(["center","half","left","right","top","bottom"].includes(e)||/^\d+(\.\d+)?%$/.test(e)||/^(\d+(\.\d+)?%?)([-+]\d+(\.\d+)?)?$/.test(e)),{message:'Position must be a number, percentage (e.g. "50%"), expression (e.g. "50%-5"), or keyword (center, half)'})]),Mn={center:"center",half:"half",left:"start",right:"end",top:"start",bottom:"end"};function Fa(e){let t=e.match(/^(\d+(?:\.\d+)?)(%?)(([+-])(\d+(?:\.\d+)?))?$/);if(!t)return null;let n=Number.parseFloat(t[1]),r=t[2]==="%",o=0;if(t[3]){let i=t[4],a=Number.parseFloat(t[5]);o=i==="-"?-a:a;}return {base:n,isPercent:r,offset:o}}function Ve(e,t,n=0){if(typeof e=="number")return Math.floor(e)||0;let r=Mn[e];if(r)switch(r){case "center":return Math.floor((t-n)/2);case "half":return Math.floor(t/2);case "start":return 0;case "end":return t-n}let o=Fa(e);if(!o)return 0;let i;return o.isPercent?i=o.base/100*t:i=o.base,i+=o.offset,Math.floor(i)}function _a(e,t,n=0){if(typeof e=="number"&&e<0)return t+e-n;if(typeof e=="string"&&e.startsWith("-")){let r=e.match(/^-(\d+(?:\.\d+)?)$/);if(r){let o=Number.parseFloat(r[1]);return t-o-n}}return Ve(e,t,n)}function kt(e,t,n=0){let r=t-n;return e<0?0:e>r?Math.max(0,r):e}function Ka(e){return typeof e=="number"?false:e.includes("%")}function Ha(e){return typeof e=="number"?false:e in Mn}function Ua(){return "center"}function Va(e){return `${e}%`}function Za(e,t){return t>=0?`${e}%+${t}`:`${e}%${t}`}function On(e,t,n,r,o=0,i=0){return {x:Ve(e,n,o),y:Ve(t,r,i)}}function Ja(e,t,n,r,o=0,i=0){let a=On(e,t,n,r,o,i);return {x:kt(a.x,n,o),y:kt(a.y,r,i)}}function Rt(e,t,n,r,o){e.transition={transition:o,elapsed:0,fromScene:n,toScene:r},o.onStart?.(t);}function Ya(e,t){e.transition&&(e.transition.transition.onComplete?.(t),e.transition=null);}function Bt(e,t){e.created||(e.scene.onCreate?.(t),e.created=true);}function Ze(e,t){Bt(e,t),e.scene.onEnter?.(t);}function F(e,t){e.onExit?.(t);}function Xa(e,t,n){for(let r=e.stack.length-1;r>=0;r--){let o=e.stack[r];o&&F(o,t);}e.stack=[n.scene],Ze(n,t);}function Ga(e,t,n){let r=e.stack[e.stack.length-1];r&&F(r,t),e.stack.push(n.scene),Ze(n,t);}function qa(e,t){if(e.stack.length<=0)return false;let n=e.stack[e.stack.length-1];n&&F(n,t),e.stack.pop();let r=e.stack[e.stack.length-1];if(r){let o=e.registry.get(r.name);o&&Ze(o,t);}return true}function $a(){let e={registry:new Map,stack:[],transition:null};return {registerScene(t){return e.registry.has(t.name)?false:(e.registry.set(t.name,{scene:t,created:false}),true)},unregisterScene(t,n){let r=e.registry.get(n);if(!r)return false;let o=e.stack.indexOf(r.scene);return o!==-1&&(F(r.scene,t),e.stack.splice(o,1)),r.created&&r.scene.onDestroy?.(t),e.registry.delete(n),true},switchTo(t,n,r){let o=e.registry.get(n);if(!o)return false;if(r){let i=e.stack[e.stack.length-1]??null;for(let a=e.stack.length-1;a>=0;a--){let s=e.stack[a];s&&F(s,t);}e.stack=[o.scene],Bt(o,t),Rt(e,t,i,o.scene,r);}else Xa(e,t,o);return true},push(t,n,r){let o=e.registry.get(n);if(!o)return false;if(r){let i=e.stack[e.stack.length-1]??null;i&&F(i,t),e.stack.push(o.scene),Bt(o,t),Rt(e,t,i,o.scene,r);}else Ga(e,t,o);return true},pop(t,n){if(e.stack.length<=0)return false;if(n){let r=e.stack[e.stack.length-1]??null;r&&F(r,t),e.stack.pop();let o=e.stack[e.stack.length-1]??null;return o?Rt(e,t,r,o,n):e.transition=null,true}return qa(e,t)},getCurrentScene(){return e.stack[e.stack.length-1]??null},getSceneStack(){return [...e.stack]},getRegisteredScenes(){return Array.from(e.registry.keys())},isTransitioning(){return e.transition!==null},getTransitionState(){return e.transition},updateTransition(t,n){if(!e.transition)return;e.transition.elapsed+=n;let r=Math.min(1,e.transition.elapsed/e.transition.transition.duration);if(e.transition.transition.onUpdate?.(t,r),r>=1){let o=e.transition.toScene;Ya(e,t);let i=e.registry.get(o.name);i&&Ze(i,t);}},reset(t){e.transition=null;for(let n=e.stack.length-1;n>=0;n--){let r=e.stack[n];r&&F(r,t);}for(let n of e.registry.values())n.created&&n.scene.onDestroy?.(t);e.registry.clear(),e.stack=[];}}}function ja(e,t){return {duration:e,onUpdate:t}}function Qa(e,t,n){return {duration:e,onUpdate(r,o){n?.(r,o,t);}}}function es(e,t){return n=>{let r=t();return e.isTransitioning()&&e.updateTransition(n,r),e.isTransitioning()||e.getCurrentScene()?.onUpdate?.(n,r),n}}n();c();var _=new Map;function ts(e){_.set(e.name,e);}function ns(e){return _.delete(e)}function rs(e){return _.get(e)}function os(){return Array.from(_.keys())}function is(){_.clear();}function Nn(e){return e instanceof Float32Array||e instanceof Float64Array||e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Uint32Array}function as(e,t){let n={};for(let[o,i]of Object.entries(e.store))Nn(i)&&(n[o]=i[t]);let r={fields:n};return e.serialize&&(r.custom=e.serialize(t)),r}function Fn(e,t){let n=g$1(e),r=t?.entityFilter?n.filter(a=>t.entityFilter.includes(a)):n,o=us(t?.componentFilter),i=[];for(let a of r){let s={},l=false;for(let c of o)i$1(e,a,c.store)&&(s[c.name]=as(c,a),l=true);l&&i.push({id:a,components:s});}return {version:1,timestamp:Date.now(),entities:i,metadata:t?.metadata}}function ss(e,t){return JSON.stringify(Fn(e,t))}function ls(e,t,n){for(let[r,o]of Object.entries(n.fields)){let i=e.store[r];Nn(i)&&(i[t]=o);}e.deserialize&&n.custom!==void 0&&e.deserialize(t,n.custom);}function _n(e,t,n){let r=t;if(n?.createNew)r=a$4();else if(n?.clearWorld){let a=g$1(r);for(let s of a)e$2(r,s);}let o=new Map,i=0;for(let a of e.entities){let s=d$1(r);o.set(a.id,s);for(let[l,c]of Object.entries(a.components)){let p=_.get(l);p&&(h(r,s,p.store),ls(p,s,c),i++);}}return {world:r,entityMap:o,entityCount:o.size,componentCount:i}}function cs(e,t,n){let r=JSON.parse(e);return _n(r,t,n)}function us(e){if(!e)return Array.from(_.values());let t=[];for(let n of e){let r=_.get(n);r&&t.push(r);}return t}function fs(e){return JSON.parse(JSON.stringify(e))}var ds=1;s();function Hn(e,t){return m$1(e,t)?{h:2,v:2}:{h:0,v:0}}function Je(e,t){let n=Hn(e,t),r=f$5(e,t)?g$3(e,t):0;return n.h+r}function Kn(e,t){let n=Hn(e,t),r=f$5(e,t)?h$1(e,t):0;return n.v+r}function Un(e,t){if(!l(e,t))return Je(e,t);let n=f$3(e,t);if(!n)return Je(e,t);let r=n.split(`
3
+ `),o=0;for(let i of r){let a=b$2(i);a>o&&(o=a);}return o+Je(e,t)}function Vn(e,t,n){if(!l(e,t))return Kn(e,t);let r=f$3(e,t),o=Je(e,t),i=n?n-o:void 0,a;return i&&i>0?a=f$4(r,{width:i,wrap:true}).length:a=r.split(`
4
+ `).length,a+Kn(e,t)}function Wt(e,t){let n=Un(e,t),r=Vn(e,t,n);return {width:n,height:r}}function ys(e,t){if(!P(e,t)||!Q$1(e,t))return false;let n=Wt(e,t),r=K.minWidth[t],o=K.minHeight[t],i=K.maxWidth[t],a=K.maxHeight[t],s=Math.min(Math.max(n.width,r),i),l=Math.min(Math.max(n.height,o),a);return K.width[t]=s,K.height[t]=l,true}function ps(e,t){if(!Q$1(e,t))return;let n=Wt(e,t),r=K.minWidth[t],o=K.minHeight[t],i=K.maxWidth[t],a=K.maxHeight[t];return {width:Math.min(Math.max(n.width,r),i),height:Math.min(Math.max(n.height,o),a)}}function Zn(e=1024){let t=Math.max(1,e),n=new Uint32Array(t),r=new Int32Array(t);for(let o=0;o<t-1;o++)r[o]=o+1;return r[t-1]=-1,{generations:n,freeList:r,freeHead:0,capacity:t,size:0}}function ms(e){let t=e.capacity,n=t*2,r=new Uint32Array(n);r.set(e.generations);let o=new Int32Array(n);o.set(e.freeList);for(let i=t;i<n-1;i++)o[i]=i+1;o[n-1]=e.freeHead,e.freeHead=t,e.generations=r,e.freeList=o,e.capacity=n;}function Jn(e){e.freeHead===-1&&ms(e);let t=e.freeHead,n=e.freeList[t];e.freeHead=n!==void 0?n:-1,e.freeList[t]=-2,e.size++;let r=e.generations[t];return {index:t,gen:r!==void 0?r:0}}function Ye(e,t){return t.index<0||t.index>=e.capacity?false:e.generations[t.index]===t.gen&&e.freeList[t.index]===-2}function Yn(e,t){if(!Ye(e,t))return false;let{index:n}=t,r=e.generations[n];return r!==void 0&&(e.generations[n]=r+1),e.freeList[n]=e.freeHead,e.freeHead=n,e.size--,true}function Xn(e){let{capacity:t}=e;for(let n=0;n<t;n++){let r=e.generations[n];r!==void 0&&(e.generations[n]=r+1);}for(let n=0;n<t-1;n++)e.freeList[n]=n+1;e.freeList[t-1]=-1,e.freeHead=0,e.size=0;}function Gn(e){return e.size}function qn(e){return e.capacity}function $n(e,t){if(!Ye(e,t))throw new Error(`Invalid entity handle: index=${t.index}, gen=${t.gen}, current_gen=${e.generations[t.index]??"out of bounds"}`)}function Xe(e,t,n){let r=e[t];return r!==void 0?r:n}function jn(e=64){let t=Math.max(1,e);return {data:[],dataIndex:new Int32Array(t).fill(-1),id:new Int32Array(t).fill(-1),generations:new Uint32Array(t),size:0,capacity:t}}function gs(e,t){let n=Math.max(t,e.capacity*2),r=new Int32Array(n);r.set(e.dataIndex),r.fill(-1,e.capacity);let o=new Int32Array(n);o.set(e.id),o.fill(-1,e.capacity);let i=new Uint32Array(n);i.set(e.generations),e.dataIndex=r,e.id=o,e.generations=i,e.capacity=n;}function Qn(e,t){let{data:n,dataIndex:r,id:o,generations:i}=e,a=Xe(o,e.size,-1);if(e.size<e.capacity&&a!==-1){let c=a,p=e.size;return n[p]=t,r[c]=p,o[p]=c,e.size++,{index:c,gen:Xe(i,c,0)}}e.size>=e.capacity&&gs(e,e.size+1);let s=e.size,l=e.size;return n.push(t),e.dataIndex[s]=l,e.id[l]=s,e.size++,e.capacity=Math.max(e.capacity,e.size),{index:s,gen:0}}function be(e,t){if(t.index<0||t.index>=e.capacity)return false;let n=e.generations[t.index];if(n===void 0||t.gen!==n)return false;let r=e.dataIndex[t.index];return r===void 0||r<0||r>=e.size?false:e.id[r]===t.index}function er(e,t){if(!be(e,t))return;let n=e.dataIndex[t.index];if(n!==void 0)return e.data[n]}function tr(e,t,n){if(!be(e,t))return false;let r=e.dataIndex[t.index];return r===void 0?false:(e.data[r]=n,true)}function nr(e,t){if(!be(e,t))return false;let{data:n,dataIndex:r,id:o,generations:i}=e,a=r[t.index];if(a===void 0)return false;let s=e.size-1;if(a!==s){let c=o[s],p=n[s];if(c===void 0||p===void 0)return false;n[a]=p,o[a]=c,r[c]=a,o[s]=t.index;}r[t.index]=-1;let l=i[t.index];return l!==void 0&&(i[t.index]=l+1),e.size--,true}function rr(e){e.data.length=0,e.dataIndex.fill(-1),e.id.fill(-1),e.size=0;}function or(e,t){let{data:n,id:r,generations:o}=e;for(let i=0;i<e.size;i++){let a=r[i],s=n[i];a===void 0||s===void 0||t(s,{index:a,gen:Xe(o,a,0)});}}function ir(e,t){let{data:n,id:r,generations:o}=e,i=[];for(let a=0;a<e.size;a++){let s=r[a],l=n[a];s===void 0||l===void 0||i.push(t(l,{index:s,gen:Xe(o,s,0)}));}return i}function ar(e){return e.data}function sr(e){return e.size}function lr(e){return e.capacity}n();var A=new Map,bs={maxSize:0,preallocate:0};function hs(e,t){A.has(e.name)||A.set(e.name,{definition:e,config:{...bs,...t},freeEntities:[],activeEntities:new Set,totalAllocations:0,totalRecycles:0,maxPoolSize:0});}function Es(e,t,n){let r=A.get(t);if(!r)return;let o=n??r.config.preallocate;for(let i=0;i<o;i++){let a=d$1(e);for(let s of r.definition.components)h(e,a,s);r.freeEntities.push(a);}r.maxPoolSize=Math.max(r.maxPoolSize,r.freeEntities.length);}function xs(e,t){let n=A.get(t);if(!n)return null;n.totalAllocations++;let r=n.freeEntities.pop();if(r!==void 0){if(n.totalRecycles++,n.definition.resetFns)for(let i of n.definition.resetFns)i(e,r);return n.activeEntities.add(r),r}let o=d$1(e);for(let i of n.definition.components)h(e,o,i);return n.activeEntities.add(o),o}function vs(e,t,n){let r=A.get(t);if(!r||!r.activeEntities.has(n))return false;if(r.activeEntities.delete(n),r.config.maxSize>0&&r.freeEntities.length>=r.config.maxSize){for(let o of r.definition.components)i$1(e,n,o)&&j$1(e,n,o);return false}if(r.definition.resetFns)for(let o of r.definition.resetFns)o(e,n);return r.freeEntities.push(n),r.maxPoolSize=Math.max(r.maxPoolSize,r.freeEntities.length),true}function cr(e){let t=A.get(e);return t?{name:e,pooled:t.freeEntities.length,active:t.activeEntities.size,totalAllocations:t.totalAllocations,totalRecycles:t.totalRecycles,hitRate:t.totalAllocations>0?t.totalRecycles/t.totalAllocations:0,maxPoolSize:t.maxPoolSize}:null}function Cs(){let e=[],t=0,n=0,r=0,o=0;for(let[i]of A){let a=cr(i);a&&(e.push(a),t+=a.active,n+=a.pooled,r+=a.totalAllocations,o+=a.totalRecycles);}return {archetypes:e,totalActive:t,totalPooled:n,overallHitRate:r>0?o/r:0}}function Ss(e){let t=A.get(e);t&&(t.freeEntities.length=0,t.activeEntities.clear());}function Ps(e){let t=A.get(e);t&&(t.freeEntities.length=0,t.activeEntities.clear(),A.delete(e));}function Ds(){for(let e of A.values())e.freeEntities.length=0,e.activeEntities.clear();A.clear();}var fr=["fg","bold","underline","blink","inverse"],Is=["bg","transparent"],se=new Map,he=0;function As(){return he}function Ts(e){se.delete(e);}function ks(){he++,se.clear();}function Rs(){se.clear();}function Bs(e){let t=se.get(e);return t!==void 0&&t.timestamp===he}function ae(e,t){return l$1(e,t)?{fg:c$3.fg[t],bg:c$3.bg[t],bold:c$3.bold[t]===1,underline:c$3.underline[t]===1,blink:c$3.blink[t]===1,inverse:c$3.inverse[t]===1,transparent:c$3.transparent[t]===1,opacity:c$3.opacity[t]??1}:wt()}function wt(){return {fg:a$5,bg:0,bold:false,underline:false,blink:false,inverse:false,transparent:false,opacity:1}}function zt(e,t){return {fg:t.fg!==a$5?t.fg:e.fg,bold:t.bold||e.bold,underline:t.underline||e.underline,blink:t.blink||e.blink,inverse:t.inverse||e.inverse,bg:t.bg,transparent:t.transparent,opacity:t.opacity}}function Ws(e){return e===a$5||e===0}function Ee(e,t){let n=se.get(t);if(n!==void 0&&n.timestamp===he)return n.style;let r=ae(e,t);if(!k$2(e,t))return Lt(t,r),r;let o=g$2(e,t);if(o.length===0)return Lt(t,r),r;let i=Ls(e,o,r);return Lt(t,i),i}function Ls(e,t,n){let r=ae(e,t[t.length-1]);for(let o=t.length-2;o>=0;o--){let i=ae(e,t[o]);r=zt(r,i);}return zt(r,n)}function Lt(e,t){se.set(e,{style:t,timestamp:he});}function zs(e,t){return Ee(e,t)}function ws(e){return fr.includes(e)}function Ms(e,t,n){return Ee(e,t)[n]}function Os(e,t,n){let r=ae(e,t);if(ur(r,n))return t;if(!k$2(e,t))return 0;let o=g$2(e,t);for(let i of o){let a=ae(e,i);if(ur(a,n))return i}return 0}function ur(e,t){let n=wt();switch(t){case "fg":return e.fg!==n.fg;case "bg":return e.bg!==n.bg;case "bold":return e.bold!==n.bold;case "underline":return e.underline!==n.underline;case "blink":return e.blink!==n.blink;case "inverse":return e.inverse!==n.inverse;case "transparent":return e.transparent!==n.transparent;default:return false}}function Ns(e,t){for(let n of t)Ee(e,n);}function Fs(e,t){let n=new Map;for(let r of t)n.set(r,Ee(e,r));return n}c();export{qr as $,pn as $a,Oi as $b,Wn as $c,tr as $d,N as A,Ao as Aa,y as Ab,na as Ac,ns as Ad,Ws as Ae,m as B,To as Ba,mi as Bb,ra as Bc,rs as Bd,Ee as Be,Br as C,ko as Ca,gi as Cb,oa as Cc,os as Cd,zs as Ce,Wr as D,Ro as Da,bi as Db,ia as Dc,is as Dd,ws as De,Ae as E,Bo as Ea,hi as Eb,aa as Ec,Fn as Ed,Ms as Ee,Lr as F,gt as Fa,Ei as Fb,sa as Fc,ss as Fd,Os as Fe,zr as G,Wo as Ga,xi as Gb,la as Gc,_n as Gd,Ns as Ge,ye as H,Lo as Ha,vi as Hb,In as Hc,cs as Hd,Fs as He,wr as I,zo as Ia,Ci as Ib,ca as Ic,fs as Id,Mr as J,wo as Ja,Si as Jb,Dt as Jc,ds as Jd,Or as K,Mo as Ka,vt as Kb,ga as Kc,Un as Kd,Te as L,Oo as La,Pi as Lb,Tn as Lc,Vn as Ld,Nr as M,No as Ma,Di as Mb,ba as Mc,Wt as Md,Fr as N,dn as Na,ee as Nb,ha as Nc,ys as Nd,_r as O,yn as Oa,Ii as Ob,Ea as Oc,ps as Od,Hr as P,Fo as Pa,Ai as Pb,xa as Pc,Zn as Pd,Ur as Q,_o as Qa,Ti as Qb,va as Qc,Jn as Qd,Vr as R,Ko as Ra,ki as Rb,kn as Rc,Ye as Rd,Zr as S,Ho as Sa,vn as Sb,Ca as Sc,Yn as Sd,Jr as T,Uo as Ta,Ri as Tb,Sa as Tc,Xn as Td,Yr as U,Vo as Ua,Bi as Ub,Pa as Uc,Gn as Ud,Xr as V,Zo as Va,Wi as Vb,Da as Vc,qn as Vd,ke as W,Q as Wa,Cn as Wb,Ia as Wc,$n as Wd,sn as X,Yo as Xa,Li as Xb,Aa as Xc,jn as Xd,dt as Y,Xo as Ya,zi as Yb,Bn as Yc,Qn as Yd,Re as Z,Go as Za,wi as Zb,Ta as Zc,be as Zd,ln as _,qo as _a,Mi as _b,ka as _c,er as _d,jt as a,$r as aa,mn as ab,Ni as ac,Ra as ad,nr as ae,ot as b,jr as ba,Me as bb,b as bc,Ba as bd,rr as be,Qt as c,yt as ca,gn as cb,Fe as cc,Wa as cd,or as ce,pr as d,Qr as da,bn as db,_e as dc,La as dd,ir as de,mr as e,un as ea,Oe as eb,f as ec,za as ed,ar as ee,it as f,eo as fa,Qo as fb,te as fc,wa as fd,sr as fe,en as g,to as ga,hn as gb,_i as gc,zn as gd,lr as ge,tn as h,no as ha,Ne as hb,Ke as hc,Ma as hd,hs as he,nn as i,Be as ia,En as ib,Ki as ic,wn as id,Es as ie,gr as j,fn as ja,ei as jb,Hi as jc,Oa as jd,xs as je,br as k,ro as ka,ti as kb,Ui as kc,Na as kd,vs as ke,hr as l,oo as la,ni as lb,Vi as lc,Ve as ld,cr as le,at as m,io as ma,ri as mb,Zi as mc,_a as md,Cs as me,st as n,Le as na,oi as nb,Ji as nc,kt as nd,Ss as ne,z as o,bo as oa,ii as ob,Pn as oc,Ka as od,Ps as oe,Er as p,ho as pa,ai as pb,Dn as pc,Ha as pd,Ds as pe,lt as q,Eo as qa,si as qb,Yi as qc,Ua as qd,fr as qe,ct as r,xo as ra,Et as rb,Xi as rc,Va as rd,Is as re,xr as s,vo as sa,xt as sb,Gi as sc,Za as sd,As as se,Sr as t,Co as ta,li as tb,qi as tc,On as td,Ts as te,Pr as u,So as ua,ci as ub,$i as uc,Ja as ud,ks as ue,Dr as v,Po as va,ui as vb,oe as vc,$a as vd,Rs as ve,Ir as w,Do as wa,fi as wb,ji as wc,ja as wd,Bs as we,Ar as x,w as xa,di as xb,Qi as xc,Qa as xd,ae as xe,Tr as y,mt as ya,yi as yb,ge as yc,es as yd,wt as ye,kr as z,Io as za,pi as zb,St as zc,ts as zd,zt as ze};
@@ -0,0 +1 @@
1
+ import {w,r as r$1}from'./chunk-W5OU7Z6J.js';import {n,i,h as h$1,j}from'./chunk-PXXGH3BV.js';n();var I=1e4,a={behaviorType:new Uint8Array(I),state:new Uint8Array(I),targetEntity:new Uint32Array(I),waitTimer:new Float32Array(I),patrolIndex:new Uint16Array(I),patrolCount:new Uint16Array(I),speed:new Float32Array(I),detectionRange:new Float32Array(I),fleeRange:new Float32Array(I)},F={Idle:0,Patrol:1,Chase:2,Flee:3,Custom:4},h={Inactive:0,Active:1,Waiting:2,Completed:3},Y=new Map,R=new Map;function ee(t){a.behaviorType[t]=F.Idle,a.state[t]=h.Inactive,a.targetEntity[t]=0,a.waitTimer[t]=0,a.patrolIndex[t]=0,a.patrolCount[t]=0,a.speed[t]=1,a.detectionRange[t]=10,a.fleeRange[t]=15;}function ce(t,e,n={}){return i(t,e,a)||(h$1(t,e,a),ee(e)),a.behaviorType[e]=n.type??F.Idle,a.speed[e]=n.speed??1,a.targetEntity[e]=n.targetEntity??0,a.detectionRange[e]=n.detectionRange??10,a.fleeRange[e]=n.fleeRange??15,a.state[e]=h.Active,e}function ye(t,e){if(i(t,e,a))return {type:a.behaviorType[e],state:a.state[e],targetEntity:a.targetEntity[e],waitTimer:a.waitTimer[e],patrolIndex:a.patrolIndex[e],patrolCount:a.patrolCount[e],speed:a.speed[e],detectionRange:a.detectionRange[e],fleeRange:a.fleeRange[e]}}function de(t,e){return i(t,e,a)}function pe(t,e){return i(t,e,a)&&j(t,e,a),Y.delete(e),R.delete(e),e}function he(t,e){i(t,e,a)&&(a.behaviorType[e]=F.Idle,a.state[e]=h.Active,a.targetEntity[e]=0);}function ge(t,e,n,o={}){i(t,e,a)&&n.length!==0&&(a.behaviorType[e]=F.Patrol,a.state[e]=h.Active,a.patrolIndex[e]=0,a.patrolCount[e]=n.length,a.waitTimer[e]=0,Y.set(e,{points:[...n],loop:o.loop??true,waitTime:o.waitTime??0}));}function xe(t,e,n){i(t,e,a)&&(a.behaviorType[e]=F.Chase,a.state[e]=h.Active,a.targetEntity[e]=n);}function Ee(t,e,n){i(t,e,a)&&(a.behaviorType[e]=F.Flee,a.state[e]=h.Active,a.targetEntity[e]=n);}function ve(t,e,n){i(t,e,a)&&(a.behaviorType[e]=F.Custom,a.state[e]=h.Active,R.set(e,n));}function Te(t,e){if(i(t,e,a))return a.behaviorType[e]}function we(t,e){if(i(t,e,a))return a.state[e]}function Ce(t,e){return i(t,e,a)?a.targetEntity[e]:0}function We(t,e,n){i(t,e,a)&&(a.targetEntity[e]=n);}function Ae(t,e,n){i(t,e,a)&&(a.speed[e]=n);}function Ie(t,e,n){i(t,e,a)&&(a.detectionRange[e]=n);}function Be(t,e){return i(t,e,a)?a.state[e]===h.Active:false}function Fe(t,e){return i(t,e,a)?a.state[e]===h.Waiting:false}function Me(t,e){return i(t,e,a)?a.state[e]===h.Completed:false}function Ye(t,e){if(i(t,e,a))return Y.get(e)}function Pe(t,e){if(!i(t,e,a))return;let n=Y.get(e);if(!n)return;let o=a.patrolIndex[e];return n.points[o]}function De(t,e,n,o,u){if(!i(t,e,a))return;let l=Y.get(e);if(!l||l.points.length===0)return;if(a.state[e]===h.Waiting){let w=a.waitTimer[e]-u;if(w>0){a.waitTimer[e]=w;return}a.waitTimer[e]=0,a.state[e]=h.Active;}let b=a.patrolIndex[e],s=l.points[b];if(!s)return;let c=s.x-n,d=s.y-o,p=Math.sqrt(c*c+d*d),x=a.speed[e],B=x*u*.5;return p<=B?te(e,l):{dx:c/p*x,dy:d/p*x}}function te(t,e){let n=a.patrolIndex[t]+1;if(n>=e.points.length)if(e.loop)a.patrolIndex[t]=0;else {a.state[t]=h.Completed;return}else a.patrolIndex[t]=n;if(e.waitTime>0){a.state[t]=h.Waiting,a.waitTimer[t]=e.waitTime;return}return {dx:0,dy:0}}function Xe(t,e,n,o,u,l){if(!i(t,e,a))return;let b=u-n,s=l-o,c=Math.sqrt(b*b+s*s);if(c===0)return {dx:0,dy:0};let d=a.detectionRange[e];if(d>0&&c>d)return;let p=a.speed[e];return {dx:b/c*p,dy:s/c*p}}function Re(t,e,n,o,u,l){if(!i(t,e,a))return;let b=n-u,s=o-l,c=Math.sqrt(b*b+s*s),d=a.fleeRange[e];if(d>0&&c>=d)return;if(c===0)return {dx:1,dy:0};let p=a.speed[e];return {dx:b/c*p,dy:s/c*p}}function Ue(t,e,n){if(!i(t,e,a))return;let o=R.get(e);o&&o(t,e,n);}function Ze(t,e,n){if(!i(t,e,a)||a.state[e]!==h.Waiting)return;let o=a.waitTimer[e]-n;o<=0?(a.waitTimer[e]=0,a.state[e]=h.Active):a.waitTimer[e]=o;}function Oe(){Y.clear(),R.clear();}n();var T=1e4,U=0,r={x:new Float32Array(T),y:new Float32Array(T),width:new Uint16Array(T),height:new Uint16Array(T),followTarget:new Uint32Array(T),smoothing:new Float32Array(T),deadZoneX:new Float32Array(T),deadZoneY:new Float32Array(T),bounded:new Uint8Array(T),minX:new Float32Array(T),maxX:new Float32Array(T),minY:new Float32Array(T),maxY:new Float32Array(T)},ne=80,re=24;function D(t){r.x[t]=0,r.y[t]=0,r.width[t]=ne,r.height[t]=re,r.followTarget[t]=U,r.smoothing[t]=0,r.deadZoneX[t]=0,r.deadZoneY[t]=0,r.bounded[t]=0,r.minX[t]=0,r.maxX[t]=0,r.minY[t]=0,r.maxY[t]=0;}function He(t,e,n={}){return i(t,e,r)||(h$1(t,e,r),D(e)),n.x!==void 0&&(r.x[e]=n.x),n.y!==void 0&&(r.y[e]=n.y),n.width!==void 0&&(r.width[e]=n.width),n.height!==void 0&&(r.height[e]=n.height),n.followTarget!==void 0&&(r.followTarget[e]=n.followTarget),n.smoothing!==void 0&&(r.smoothing[e]=Math.max(0,Math.min(1,n.smoothing))),n.deadZoneX!==void 0&&(r.deadZoneX[e]=n.deadZoneX),n.deadZoneY!==void 0&&(r.deadZoneY[e]=n.deadZoneY),e}function _e(t,e){if(i(t,e,r))return {x:r.x[e],y:r.y[e],width:r.width[e],height:r.height[e],followTarget:r.followTarget[e],smoothing:r.smoothing[e],deadZoneX:r.deadZoneX[e],deadZoneY:r.deadZoneY[e],bounded:r.bounded[e]===1,minX:r.minX[e],maxX:r.maxX[e],minY:r.minY[e],maxY:r.maxY[e]}}function ke(t,e){return i(t,e,r)}function qe(t,e){return i(t,e,r)&&j(t,e,r),e}function Ne(t,e,n,o){return i(t,e,r)||(h$1(t,e,r),D(e)),r.followTarget[e]=n,o!==void 0&&(r.smoothing[e]=Math.max(0,Math.min(1,o))),e}function Ge(t,e){return i(t,e,r)?r.followTarget[e]:U}function je(t,e){return i(t,e,r)?r.followTarget[e]!==U:false}function ze(t,e,n,o){return i(t,e,r)||(h$1(t,e,r),D(e)),r.deadZoneX[e]=n,r.deadZoneY[e]=o,e}function Je(t,e,n){return i(t,e,r)||(h$1(t,e,r),D(e)),r.bounded[e]=1,r.minX[e]=n.minX,r.maxX[e]=n.maxX,r.minY[e]=n.minY,r.maxY[e]=n.maxY,e}function Ke(t,e){return i(t,e,r)&&(r.bounded[e]=0),e}function Qe(t,e){return i(t,e,r)?r.bounded[e]===1:false}function $e(t,e,n,o){return i(t,e,r)||(h$1(t,e,r),D(e)),r.x[e]=n,r.y[e]=o,r.bounded[e]===1&&Z(e),e}function et(t,e){if(i(t,e,r))return {x:r.x[e],y:r.y[e]}}function tt(t,e,n,o){return i(t,e,r)&&(r.x[e]=r.x[e]+n,r.y[e]=r.y[e]+o,r.bounded[e]===1&&Z(e)),e}function Z(t){let e=r.width[t],n=r.height[t],o=r.minX[t],u=r.maxX[t],l=r.minY[t],b=r.maxY[t],s=u-e,c=b-n;r.x[t]=Math.max(o,Math.min(s,r.x[t])),r.y[t]=Math.max(l,Math.min(c,r.y[t]));}function nt(t,e,n,o){if(!i(t,e,r))return;let u=r.x[e],l=r.y[e];return {x:n-u,y:o-l}}function rt(t,e,n,o){if(!i(t,e,r))return;let u=r.x[e],l=r.y[e];return {x:n+u,y:o+l}}function at(t,e,n,o){if(!i(t,e,r))return false;let u=r.x[e],l=r.y[e],b=r.width[e],s=r.height[e];return n>=u&&n<u+b&&o>=l&&o<l+s}function ot(t,e,n,o,u,l){if(!i(t,e,r))return false;let b=r.x[e],s=r.y[e],c=r.width[e],d=r.height[e];return n<b+c&&n+u>b&&o<s+d&&o+l>s}function it(t,e,n){if(!i(t,e,r))return;let o=r.followTarget[e];if(o===U||!w(t,o))return;let u=r$1.x[o],l=r$1.y[o],b=r.width[e],s=r.height[e],c=r.smoothing[e],d=r.deadZoneX[e],p=r.deadZoneY[e],x=u-b/2,B=l-s/2,w$1=r.x[e],W=r.y[e],V=w$1,q=W,Q=w$1+b/2,$=W+s/2,N=u-Q,G=l-$;if(Math.abs(N)>d){let H=N>0?x+d:x-d;V=z(w$1,H,c,n);}if(Math.abs(G)>p){let H=G>0?B+p:B-p;q=z(W,H,c,n);}r.x[e]=V,r.y[e]=q,r.bounded[e]===1&&Z(e);}function z(t,e,n,o){if(n<=0)return e;let u=1-n**(o*10);return t+(e-t)*u}function ut(t,e,n,o){if(!i(t,e,r))return e;let u=r.width[e],l=r.height[e];return r.x[e]=n-u/2,r.y[e]=o-l/2,r.bounded[e]===1&&Z(e),e}n();var g=1e4,f={lifetime:new Float32Array(g),age:new Float32Array(g),fadeOut:new Uint8Array(g),char:new Uint32Array(g),startFg:new Uint32Array(g),endFg:new Uint32Array(g),emitter:new Uint32Array(g)},m={rate:new Float32Array(g),burstCount:new Uint16Array(g),lifetime:new Float32Array(g),spread:new Float32Array(g),speed:new Float32Array(g),gravity:new Float32Array(g),angle:new Float32Array(g),active:new Uint8Array(g),accumulator:new Float32Array(g)},S=new Map,M=new Map;function ae(t){f.lifetime[t]=0,f.age[t]=0,f.fadeOut[t]=0,f.char[t]=0,f.startFg[t]=0,f.endFg[t]=0,f.emitter[t]=0;}function st(t,e,n){return i(t,e,f)||(h$1(t,e,f),ae(e)),f.lifetime[e]=n.lifetime,f.age[e]=0,f.fadeOut[e]=n.fadeOut?1:0,f.char[e]=n.char,f.startFg[e]=n.startFg,f.endFg[e]=n.endFg??n.startFg,f.emitter[e]=n.emitter??0,e}function ft(t,e){if(i(t,e,f))return {lifetime:f.lifetime[e],age:f.age[e],fadeOut:f.fadeOut[e]===1,char:f.char[e],startFg:f.startFg[e],endFg:f.endFg[e],emitter:f.emitter[e]}}function bt(t,e){return i(t,e,f)}function ct(t,e){if(i(t,e,f)){let n=f.emitter[e];if(n>0){let o=M.get(n);o&&o.delete(e);}j(t,e,f);}return e}function yt(t,e){return i(t,e,f)?f.age[e]>=f.lifetime[e]:true}function oe(t,e){if(!i(t,e,f))return 1;let n=f.lifetime[e];return n<=0?1:Math.min(1,f.age[e]/n)}function O(t,e,n){return Math.round(t+(e-t)*n)}function ie(t,e,n){let o=Math.max(0,Math.min(1,n)),u=t>>16&255,l=t>>8&255,b=t&255,s=t>>24&255,c=e>>16&255,d=e>>8&255,p=e&255,x=e>>24&255,B=O(u,c,o),w=O(l,d,o),W=O(b,p,o);return ((O(s,x,o)&255)<<24|(B&255)<<16|(w&255)<<8|W&255)>>>0}function dt(t,e){if(!i(t,e,f))return 0;let n=oe(t,e);return ie(f.startFg[e],f.endFg[e],n)}function ue(t){m.rate[t]=0,m.burstCount[t]=0,m.lifetime[t]=1,m.spread[t]=Math.PI*2,m.speed[t]=3,m.gravity[t]=0,m.angle[t]=0,m.active[t]=1,m.accumulator[t]=0;}function pt(t,e,n){return i(t,e,m)||(h$1(t,e,m),ue(e)),m.lifetime[e]=n.lifetime,n.rate!==void 0&&(m.rate[e]=n.rate),n.burstCount!==void 0&&(m.burstCount[e]=n.burstCount),n.spread!==void 0&&(m.spread[e]=n.spread),n.speed!==void 0&&(m.speed[e]=n.speed),n.gravity!==void 0&&(m.gravity[e]=n.gravity),n.angle!==void 0&&(m.angle[e]=n.angle),n.active!==void 0&&(m.active[e]=n.active?1:0),e}function ht(t,e){if(i(t,e,m))return {rate:m.rate[e],burstCount:m.burstCount[e],lifetime:m.lifetime[e],spread:m.spread[e],speed:m.speed[e],gravity:m.gravity[e],angle:m.angle[e],active:m.active[e]===1}}function gt(t,e){return i(t,e,m)}function xt(t,e){return i(t,e,m)&&(j(t,e,m),S.delete(e),M.delete(e)),e}function Et(t,e){S.set(t,e);}function vt(t){return S.get(t)}function Tt(t){return M.get(t)??new Set}function wt(t,e){let n=M.get(t);n||(n=new Set,M.set(t,n)),n.add(e);}function Ct(t,e){let n=M.get(t);n&&n.delete(e);}function Wt(t,e){i(t,e,m)&&(m.active[e]=1);}function At(t,e){i(t,e,m)&&(m.active[e]=0);}function It(t,e){return i(t,e,m)?m.active[e]===1:false}function Bt(t,e,n){i(t,e,m)&&(m.rate[e]=n);}function Ft(t,e,n){i(t,e,m)&&(m.speed[e]=n);}function Mt(t,e,n){i(t,e,m)&&(m.gravity[e]=n);}function Yt(){S.clear(),M.clear();}n();var P=1e4,L=0,J=1,C={tilesets:new Map,nameToId:new Map};function Xt(){C.tilesets.clear(),C.nameToId.clear(),J=1;}function Rt(t){let e=J++,n={id:e,name:t.name,tiles:t.tiles};return C.tilesets.set(e,n),C.nameToId.set(t.name,e),e}function Ut(t){return C.tilesets.get(t)}function Zt(t){let e=C.nameToId.get(t);if(e!==void 0)return C.tilesets.get(e)}function Ot(t){let e=C.tilesets.get(t);return e?(C.nameToId.delete(e.name),C.tilesets.delete(t),true):false}var K=1,E={data:new Map};function St(){E.data.clear(),K=1;}function le(t,e,n=1){let o=K++,u=[];for(let l=0;l<n;l++)u.push({tiles:new Uint16Array(t*e),visible:true});return E.data.set(o,{width:t,height:e,layers:u}),o}function Lt(t){return E.data.get(t)}function Vt(t){return E.data.delete(t)}function Ht(t,e,n,o,u){let l=E.data.get(t);if(!l)return false;let b=l.layers[e];return !b||n<0||n>=l.width||o<0||o>=l.height?false:(b.tiles[o*l.width+n]=u,true)}function _t(t,e,n,o){let u=E.data.get(t);if(!u)return L;let l=u.layers[e];return !l||n<0||n>=u.width||o<0||o>=u.height?L:l.tiles[o*u.width+n]}function kt(t,e,n){let o=E.data.get(t);if(!o)return false;let u=o.layers[e];return u?(u.tiles.fill(n),true):false}function qt(t,e,n,o,u,l,b){let s=E.data.get(t);if(!s)return false;let c=s.layers[e];if(!c)return false;let d=Math.max(0,n),p=Math.max(0,o),x=Math.min(s.width,n+u),B=Math.min(s.height,o+l);for(let w=p;w<B;w++)for(let W=d;W<x;W++)c.tiles[w*s.width+W]=b;return true}function Nt(t){let e=E.data.get(t);return e?e.layers.length:0}function Gt(t){let e=E.data.get(t);if(!e)return -1;let n={tiles:new Uint16Array(e.width*e.height),visible:true};return e.layers.push(n),e.layers.length-1}function jt(t,e,n){let o=E.data.get(t);if(!o)return false;let u=o.layers[e];return u?(u.visible=n,true):false}function zt(t,e){let n=E.data.get(t);if(!n)return false;let o=n.layers[e];return o?o.visible:false}var y={width:new Uint16Array(P),height:new Uint16Array(P),tileWidth:new Uint8Array(P),tileHeight:new Uint8Array(P),dataId:new Uint32Array(P),tilesetId:new Uint32Array(P)};function me(t){y.width[t]=0,y.height[t]=0,y.tileWidth[t]=1,y.tileHeight[t]=1,y.dataId[t]=0,y.tilesetId[t]=0;}function Jt(t,e,n){if(i(t,e,y)||(h$1(t,e,y),me(e)),y.width[e]=n.width,y.height[e]=n.height,y.tileWidth[e]=n.tileWidth??1,y.tileHeight[e]=n.tileHeight??1,y.tilesetId[e]=n.tilesetId,n.dataId!==void 0)y.dataId[e]=n.dataId;else {let o=le(n.width,n.height,n.layerCount??1);y.dataId[e]=o;}return e}function Kt(t,e){if(i(t,e,y))return {width:y.width[e],height:y.height[e],tileWidth:y.tileWidth[e],tileHeight:y.tileHeight[e],dataId:y.dataId[e],tilesetId:y.tilesetId[e]}}function Qt(t,e){return i(t,e,y)}function $t(t,e,n=false){if(!i(t,e,y))return e;if(!n){let o=y.dataId[e];o>0&&E.data.delete(o);}return j(t,e,y),e}function en(t,e){return i(t,e,y)?y.dataId[e]:0}var k={char:" ",fg:0,bg:0};function se(t){let e=[];for(let n=0;n<t;n++)e.push({...k});return e}function fe(t,e,n,o){if(n<0||n>=t.width||o<0||o>=t.height)return k;let u=k;for(let l of t.layers){if(!l.visible)continue;let b=l.tiles[o*t.width+n];if(b===L)continue;let s=e.tiles[b];s&&(u={char:s.char,fg:s.fg,bg:s.bg});}return u}function tn(t,e,n,o,u,l){let b=E.data.get(t),s=C.tilesets.get(e),c=[];if(!b||!s){for(let d=0;d<l;d++)c.push(se(u));return c}for(let d=0;d<l;d++){let p=[];for(let x=0;x<u;x++)p.push(fe(b,s,n+x,o+d));c.push(p);}return c}export{m as $,Ue as A,Xt as Aa,Ze as B,Rt as Ba,Oe as C,Ut as Ca,r as D,Zt as Da,ne as E,Ot as Ea,re as F,E as Fa,He as G,St as Ga,_e as H,le as Ha,ke as I,Lt as Ia,qe as J,Vt as Ja,Ne as K,Ht as Ka,Ge as L,_t as La,je as M,kt as Ma,ze as N,qt as Na,Je as O,Nt as Oa,Ke as P,Gt as Pa,Qe as Q,jt as Qa,$e as R,zt as Ra,et as S,y as Sa,tt as T,Jt as Ta,nt as U,Kt as Ua,rt as V,Qt as Va,at as W,$t as Wa,ot as X,en as Xa,it as Y,tn as Ya,ut as Z,f as _,a,st as aa,F as b,ft as ba,h as c,bt as ca,ce as d,ct as da,ye as e,yt as ea,de as f,oe as fa,pe as g,ie as ga,he as h,dt as ha,ge as i,pt as ia,xe as j,ht as ja,Ee as k,gt as ka,ve as l,xt as la,Te as m,Et as ma,we as n,vt as na,Ce as o,Tt as oa,We as p,wt as pa,Ae as q,Ct as qa,Ie as r,Wt as ra,Be as s,At as sa,Fe as t,It as ta,Me as u,Bt as ua,Ye as v,Ft as va,Pe as w,Mt as wa,De as x,Yt as xa,Xe as y,L as ya,Re as z,C as za};
@@ -0,0 +1 @@
1
+ import {z}from'zod';var r=z.object({x:z.number().finite(),y:z.number().finite(),z:z.number().int().min(0).max(65535).optional()}),l=z.number().int().min(0).max(65535),o=z.union([z.number().finite(),z.string().regex(/^\d+(\.\d+)?%$/,'Percentage must be in format "50%"'),z.literal("auto")]),p=z.object({width:o,height:o}),s=z.object({minWidth:z.number().finite().nonnegative().optional(),minHeight:z.number().finite().nonnegative().optional(),maxWidth:z.number().finite().positive().optional(),maxHeight:z.number().finite().positive().optional()}).refine(e=>e.minWidth!==void 0&&e.maxWidth!==void 0?e.minWidth<=e.maxWidth:true,{message:"minWidth must be <= maxWidth"}).refine(e=>e.minHeight!==void 0&&e.maxHeight!==void 0?e.minHeight<=e.maxHeight:true,{message:"minHeight must be <= maxHeight"}),i=z.number().int().min(0).max(255),b=z.object({left:i.optional(),top:i.optional(),right:i.optional(),bottom:i.optional()}),t=z.union([z.string().regex(/^#[0-9a-fA-F]{3,8}$/,"Invalid hex color format"),z.number().int().nonnegative()]),c=z.object({fg:t.optional(),bg:t.optional(),bold:z.boolean().optional(),underline:z.boolean().optional(),blink:z.boolean().optional(),inverse:z.boolean().optional(),transparent:z.boolean().optional(),opacity:z.number().min(0).max(1).optional()}),u=z.object({scrollX:z.number().finite().optional(),scrollY:z.number().finite().optional(),scrollWidth:z.number().finite().nonnegative().optional(),scrollHeight:z.number().finite().nonnegative().optional(),viewportWidth:z.number().finite().nonnegative().optional(),viewportHeight:z.number().finite().nonnegative().optional(),scrollbarVisible:z.number().int().min(0).max(2).optional(),trackVisible:z.boolean().optional(),alwaysScroll:z.boolean().optional(),clampEnabled:z.boolean().optional()}),a=z.object({frameIndex:z.number().int().nonnegative(),duration:z.number().positive()}),h=z.object({name:z.string().min(1),frames:z.array(a).min(1)}),x=z.object({min:z.number().finite(),max:z.number().finite()}).refine(e=>e.min<e.max,{message:"min must be less than max"}),g=z.number().finite().positive(),f=z.number().min(0).max(1),d=z.object({interactive:z.boolean().optional(),mouse:z.boolean().optional(),keys:z.boolean().optional(),search:z.boolean().optional(),selectedIndex:z.number().int().min(-1).optional(),visibleCount:z.number().int().positive().optional()}),S=z.object({text:z.string(),value:z.string().optional(),disabled:z.boolean().optional()});export{r as a,l as b,o as c,p as d,s as e,i as f,b as g,t as h,c as i,u as j,a as k,h as l,x as m,g as n,f as o,d as p,S as q};
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * blECSd CLI scaffolding tool.
4
+ *
5
+ * Usage:
6
+ * npx blecsd init # Interactive: prompts for template selection
7
+ * npx blecsd init --template form # Direct: scaffold specific template
8
+ * npx blecsd init --list # List available templates
9
+ * npx blecsd init --dir ./my-app # Scaffold into a specific directory
10
+ *
11
+ * @module cli/init
12
+ */
13
+ /**
14
+ * A template available for scaffolding.
15
+ */
16
+ interface Template {
17
+ /** Template identifier (e.g., 'basic', 'form', 'game') */
18
+ readonly name: string;
19
+ /** Human-readable description */
20
+ readonly description: string;
21
+ /** Category grouping */
22
+ readonly category: string;
23
+ /** Files included in the template */
24
+ readonly files: readonly TemplateFile[];
25
+ }
26
+ /**
27
+ * A file within a template.
28
+ */
29
+ interface TemplateFile {
30
+ /** Relative path from project root */
31
+ readonly path: string;
32
+ /** File contents */
33
+ readonly content: string;
34
+ }
35
+ /**
36
+ * CLI configuration.
37
+ */
38
+ interface CliConfig {
39
+ /** Template to scaffold (undefined = interactive) */
40
+ readonly template?: string;
41
+ /** Target directory */
42
+ readonly dir: string;
43
+ /** List available templates */
44
+ readonly list: boolean;
45
+ /** Skip npm install */
46
+ readonly skipInstall: boolean;
47
+ }
48
+ /**
49
+ * Fetches the remote template manifest from GitHub.
50
+ * Falls back to built-in templates on failure.
51
+ */
52
+ declare function fetchManifest(): Promise<readonly Template[]>;
53
+ /**
54
+ * Parses CLI arguments into a config object.
55
+ */
56
+ declare function parseArgs(argv: readonly string[]): CliConfig;
57
+ /**
58
+ * Detects which package manager is available.
59
+ */
60
+ declare function detectPackageManager(): 'pnpm' | 'yarn' | 'npm';
61
+ /**
62
+ * Prompts user to select a template interactively.
63
+ */
64
+ declare function pickTemplate(templates: readonly Template[]): Promise<Template | null>;
65
+ /**
66
+ * Writes template files to the target directory.
67
+ */
68
+ declare function scaffoldTemplate(template: Template, targetDir: string): void;
69
+ /**
70
+ * Runs package manager install in the target directory.
71
+ */
72
+ declare function runInstall(targetDir: string, pm: 'pnpm' | 'yarn' | 'npm'): boolean;
73
+ /**
74
+ * Prints getting-started instructions.
75
+ */
76
+ declare function printInstructions(template: Template, targetDir: string, pm: string): void;
77
+ /**
78
+ * Lists all available templates to stdout.
79
+ */
80
+ declare function listTemplates(templates: readonly Template[]): void;
81
+ /**
82
+ * Main CLI entry point.
83
+ */
84
+ declare function main(argv?: readonly string[]): Promise<void>;
85
+
86
+ export { type CliConfig, type Template, type TemplateFile, detectPackageManager, fetchManifest, listTemplates, main, parseArgs, pickTemplate, printInstructions, runInstall, scaffoldTemplate };
@@ -0,0 +1,179 @@
1
+ #!/usr/bin/env node
2
+ import'../chunk-5PELJRUQ.js';import {execSync}from'child_process';import {existsSync,mkdirSync,writeFileSync}from'fs';import {get}from'https';import {resolve,join,basename}from'path';import {createInterface}from'readline';var c=`{
3
+ "compilerOptions": {
4
+ "target": "ES2022",
5
+ "module": "NodeNext",
6
+ "moduleResolution": "NodeNext",
7
+ "strict": true,
8
+ "noUncheckedIndexedAccess": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "outDir": "dist",
12
+ "rootDir": "src"
13
+ },
14
+ "include": ["src"]
15
+ }
16
+ `;function P(o,e){return JSON.stringify({name:o,version:"1.0.0",description:e,type:"module",main:"./dist/index.js",scripts:{dev:"tsx watch src/index.ts",build:"tsc",start:"node dist/index.js"},dependencies:{blecsd:"latest"},devDependencies:{tsx:"^4.21.0",typescript:"^5.9.0"}},null,2)}function S(){return [{name:"basic",description:"Minimal blECSd app with a single box",category:"Getting Started",files:[{path:"src/index.ts",content:`import { createWorld, addEntity } from 'blecsd';
17
+ import { setPosition } from 'blecsd';
18
+ import { setDimensions } from 'blecsd';
19
+
20
+ const world = createWorld();
21
+ const eid = addEntity(world);
22
+
23
+ setPosition(world, eid, 0, 0);
24
+ setDimensions(world, eid, 40, 10);
25
+
26
+ console.log('blECSd app initialized!');
27
+ console.log('Entity:', eid);
28
+ console.log('World created with ECS architecture.');
29
+ `},{path:"tsconfig.json",content:c}]},{name:"form",description:"Interactive form with text inputs and buttons",category:"Widgets",files:[{path:"src/index.ts",content:`import { createWorld, addEntity } from 'blecsd';
30
+ import { setPosition } from 'blecsd';
31
+ import { setDimensions } from 'blecsd';
32
+
33
+ // Create world and form entities
34
+ const world = createWorld();
35
+
36
+ // Create a form container
37
+ const formEid = addEntity(world);
38
+ setPosition(world, formEid, 2, 2);
39
+ setDimensions(world, formEid, 60, 20);
40
+
41
+ // Create input fields
42
+ const nameInput = addEntity(world);
43
+ setPosition(world, nameInput, 4, 4);
44
+ setDimensions(world, nameInput, 40, 1);
45
+
46
+ const emailInput = addEntity(world);
47
+ setPosition(world, emailInput, 4, 7);
48
+ setDimensions(world, emailInput, 40, 1);
49
+
50
+ // Create submit button
51
+ const submitBtn = addEntity(world);
52
+ setPosition(world, submitBtn, 4, 10);
53
+ setDimensions(world, submitBtn, 12, 3);
54
+
55
+ console.log('Form app initialized!');
56
+ console.log('Form entity:', formEid);
57
+ console.log('Inputs:', nameInput, emailInput);
58
+ console.log('Submit button:', submitBtn);
59
+ `},{path:"tsconfig.json",content:c}]},{name:"dashboard",description:"Multi-panel dashboard with layout system",category:"Widgets",files:[{path:"src/index.ts",content:`import { createWorld, addEntity } from 'blecsd';
60
+ import { setPosition } from 'blecsd';
61
+ import { setDimensions } from 'blecsd';
62
+
63
+ const world = createWorld();
64
+
65
+ // Header panel
66
+ const header = addEntity(world);
67
+ setPosition(world, header, 0, 0);
68
+ setDimensions(world, header, 80, 3);
69
+
70
+ // Left sidebar
71
+ const sidebar = addEntity(world);
72
+ setPosition(world, sidebar, 0, 3);
73
+ setDimensions(world, sidebar, 20, 21);
74
+
75
+ // Main content area
76
+ const main = addEntity(world);
77
+ setPosition(world, main, 20, 3);
78
+ setDimensions(world, main, 60, 21);
79
+
80
+ // Status bar
81
+ const statusBar = addEntity(world);
82
+ setPosition(world, statusBar, 0, 24);
83
+ setDimensions(world, statusBar, 80, 1);
84
+
85
+ console.log('Dashboard initialized!');
86
+ console.log('Panels: header, sidebar, main, statusBar');
87
+ `},{path:"tsconfig.json",content:c}]},{name:"game",description:"Game template with game loop, input handling, and ECS",category:"Games",files:[{path:"src/index.ts",content:`import { createWorld, addEntity } from 'blecsd';
88
+ import { createGameLoop, LoopPhase } from 'blecsd';
89
+ import { setPosition } from 'blecsd';
90
+
91
+ const world = createWorld();
92
+
93
+ // Create player entity
94
+ const player = addEntity(world);
95
+ setPosition(world, player, 40, 12);
96
+
97
+ // Create game loop
98
+ const loop = createGameLoop(world, { targetFPS: 60 });
99
+
100
+ // Input system
101
+ loop.registerSystem(LoopPhase.INPUT, (w) => {
102
+ // Process input here
103
+ return w;
104
+ });
105
+
106
+ // Update system
107
+ loop.registerSystem(LoopPhase.UPDATE, (w) => {
108
+ // Game logic here
109
+ return w;
110
+ });
111
+
112
+ // Render system
113
+ loop.registerSystem(LoopPhase.RENDER, (w) => {
114
+ // Render here
115
+ return w;
116
+ });
117
+
118
+ console.log('Game initialized!');
119
+ console.log('Player entity:', player);
120
+ console.log('Game loop created at 60 FPS');
121
+ console.log('Press Ctrl+C to exit');
122
+
123
+ loop.start();
124
+
125
+ process.on('SIGINT', () => {
126
+ loop.stop();
127
+ process.exit(0);
128
+ });
129
+ `},{path:"tsconfig.json",content:c}]},{name:"list",description:"Selectable list with keyboard navigation",category:"Widgets",files:[{path:"src/index.ts",content:`import { createWorld, addEntity } from 'blecsd';
130
+ import { createList } from 'blecsd';
131
+
132
+ const world = createWorld();
133
+ const eid = addEntity(world);
134
+
135
+ const list = createList(world, eid, {
136
+ x: 5,
137
+ y: 5,
138
+ width: 30,
139
+ height: 10,
140
+ items: [
141
+ 'Option 1: Hello World',
142
+ 'Option 2: Dashboard',
143
+ 'Option 3: Settings',
144
+ 'Option 4: Help',
145
+ 'Option 5: Quit',
146
+ ],
147
+ });
148
+
149
+ list.focus();
150
+
151
+ list.onSelect((index, item) => {
152
+ console.log(\`Selected: \${item.text} at index \${index}\`);
153
+ });
154
+
155
+ list.onActivate((index, item) => {
156
+ console.log(\`Activated: \${item.text}\`);
157
+ });
158
+
159
+ console.log('List widget initialized!');
160
+ console.log('Use arrow keys to navigate, Enter to select.');
161
+ `},{path:"tsconfig.json",content:c}]}]}var T="https://raw.githubusercontent.com/Kadajett/blECSd-Examples/main/manifest.json";function C(){return new Promise(o=>{let e=S(),t=get(T,{timeout:5e3},n=>{if(n.statusCode!==200){o(e);return}let i="";n.on("data",r=>{i+=r.toString();}),n.on("end",()=>{try{let r=JSON.parse(i),s=new Map;for(let l of e)s.set(l.name,l);for(let l of r)s.set(l.name,l);o([...s.values()]);}catch{o(e);}});});t.on("error",()=>{o(e);}),t.on("timeout",()=>{t.destroy(),o(e);});})}function I(o){let e,t=".",n=false,i=false;for(let r=0;r<o.length;r++){let s=o[r];s==="--template"||s==="-t"?(e=o[r+1],r++):s==="--dir"||s==="-d"?(t=o[r+1]??".",r++):s==="--list"||s==="-l"?n=true:s==="--skip-install"&&(i=true);}return {template:e,dir:t,list:n,skipInstall:i}}function b(){try{return execSync("pnpm --version",{stdio:"ignore"}),"pnpm"}catch{}try{return execSync("yarn --version",{stdio:"ignore"}),"yarn"}catch{}return "npm"}function D(o){return new Promise(e=>{let t=createInterface({input:process.stdin,output:process.stdout});console.log(`
162
+ blECSd - Terminal UI Library
163
+ `),console.log(` Available templates:
164
+ `);let n=new Map;for(let s of o){let l=n.get(s.category)??[];l.push(s),n.set(s.category,l);}let i=1,r=new Map;for(let[s,l]of n){console.log(` ${s}:`);for(let a of l)console.log(` ${i}. ${a.name} - ${a.description}`),r.set(i,a),i++;console.log("");}t.question(" Select a template (number or name): ",s=>{t.close();let l=Number.parseInt(s,10);if(!Number.isNaN(l)&&r.has(l)){e(r.get(l)??null);return}let a=o.find(h=>h.name===s.trim());e(a??null);});})}function $(o,e){let t=resolve(e);existsSync(t)||mkdirSync(t,{recursive:true});for(let r of o.files){let s=join(t,r.path),l=join(s,"..");existsSync(l)||mkdirSync(l,{recursive:true}),writeFileSync(s,r.content,"utf-8");}let n=basename(t)==="."?"my-blecsd-app":basename(t),i=join(t,"package.json");existsSync(i)||writeFileSync(i,P(n,o.description),"utf-8");}function v(o,e){let t=resolve(o);try{return console.log(`
165
+ Running ${e} install...`),execSync(`${e} install`,{cwd:t,stdio:"inherit"}),!0}catch{return console.error(`
166
+ Failed to run ${e} install. Run it manually.`),false}}function w(o,e,t){let n=e==="."?"":` cd ${e}
167
+ `;console.log(`
168
+ Done! Your blECSd project is ready.
169
+ `),n&&console.log(n),console.log(` ${t} run dev # Start development`),console.log(` ${t} run build # Build for production`),console.log(` ${t} run start # Run the built app
170
+ `),console.log(` Template: ${o.name} - ${o.description}`),console.log(` Docs: https://github.com/Kadajett/blECSd
171
+ `);}function N(o){console.log(`
172
+ Available blECSd templates:
173
+ `);let e=new Map;for(let t of o){let n=e.get(t.category)??[];n.push(t),e.set(t.category,n);}for(let[t,n]of e){console.log(` ${t}:`);for(let i of n)console.log(` ${i.name.padEnd(15)} ${i.description}`);console.log("");}console.log(` Usage: npx blecsd init --template <name>
174
+ `);}async function W(o=process.argv.slice(2)){let e=I(o),t=await C();if(e.list){N(t);return}let n=null;if(e.template){if(n=t.find(i=>i.name===e.template)??null,!n){console.error(`
175
+ Error: Template "${e.template}" not found.`),console.error(` Use --list to see available templates.
176
+ `),process.exitCode=1;return}}else if(n=await D(t),!n){console.error(`
177
+ No template selected.
178
+ `),process.exitCode=1;return}if(console.log(`
179
+ Scaffolding "${n.name}" into ${resolve(e.dir)}...`),$(n,e.dir),e.skipInstall){let i=b();w(n,e.dir,i);}else {let i=b();v(e.dir,i),w(n,e.dir,i);}}var j=process.argv[1]?.endsWith("init.js")||process.argv[1]?.endsWith("init.ts")||process.argv[1]?.endsWith("cli.js");j&&W().catch(o=>{console.error("CLI error:",o),process.exitCode=1;});export{b as detectPackageManager,C as fetchManifest,N as listTemplates,W as main,I as parseArgs,D as pickTemplate,w as printInstructions,v as runInstall,$ as scaffoldTemplate};
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Shared color utilities for packing, unpacking, and parsing colors.
3
+ * @module utils/color
4
+ */
5
+ /**
6
+ * Packs RGBA color components into a single 32-bit integer.
7
+ *
8
+ * @param r - Red component (0-255)
9
+ * @param g - Green component (0-255)
10
+ * @param b - Blue component (0-255)
11
+ * @param a - Alpha component (0-255, default: 255)
12
+ * @returns Packed 32-bit color value
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const red = packColor(255, 0, 0);
17
+ * const semiTransparentBlue = packColor(0, 0, 255, 128);
18
+ * ```
19
+ */
20
+ declare function packColor(r: number, g: number, b: number, a?: number): number;
21
+ /**
22
+ * Unpacks a 32-bit color value into RGBA components.
23
+ *
24
+ * @param color - Packed 32-bit color value
25
+ * @returns Object with r, g, b, a components (0-255 each)
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const { r, g, b, a } = unpackColor(0xff0000ff); // Red with full alpha
30
+ * ```
31
+ */
32
+ declare function unpackColor(color: number): {
33
+ r: number;
34
+ g: number;
35
+ b: number;
36
+ a: number;
37
+ };
38
+ /**
39
+ * Converts a hex color string to a packed 32-bit color.
40
+ *
41
+ * @param hex - Hex color string (#RGB, #RGBA, #RRGGBB, or #RRGGBBAA)
42
+ * @returns Packed 32-bit color value
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const red = hexToColor('#ff0000');
47
+ * const semiTransparent = hexToColor('#ff000080');
48
+ * ```
49
+ */
50
+ declare function hexToColor(hex: string): number;
51
+ /**
52
+ * Converts a packed 32-bit color to a hex string.
53
+ *
54
+ * @param color - Packed 32-bit color value
55
+ * @param includeAlpha - Whether to include alpha in output (default: false)
56
+ * @returns Hex color string
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const hex = colorToHex(0xffff0000); // '#ff0000'
61
+ * const hexWithAlpha = colorToHex(0x80ff0000, true); // '#ff000080'
62
+ * ```
63
+ */
64
+ declare function colorToHex(color: number, includeAlpha?: boolean): string;
65
+ /**
66
+ * Parses a color value (hex string or packed number) to a packed color.
67
+ *
68
+ * @param color - Hex string (#RGB, #RRGGBB, etc.) or packed 32-bit number
69
+ * @returns Packed 32-bit color value
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const red = parseColor('#ff0000');
74
+ * const blue = parseColor(0xff0000ff);
75
+ * ```
76
+ */
77
+ declare function parseColor(color: string | number): number;
78
+
79
+ export { parseColor as a, colorToHex as c, hexToColor as h, packColor as p, unpackColor as u };