blecsd 0.3.0 → 0.6.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.
- package/README.md +146 -147
- package/dist/{border-Jb7TrMob.d.ts → border-Br-Jc027.d.ts} +2 -2
- package/dist/{cell-DwIu2ryP.d.ts → cell-5Ty_3yMs.d.ts} +1 -1
- package/dist/cellRenderer-D0-DJXWl.d.ts +374 -0
- package/dist/chunk-4N7IFBRQ.js +4 -0
- package/dist/{chunk-DNRXW56C.js → chunk-4XCFTNGN.js} +1 -1
- package/dist/chunk-5YWRP2KG.js +3 -0
- package/dist/chunk-6PX5R326.js +1 -0
- package/dist/chunk-73Y45MLV.js +12 -0
- package/dist/chunk-7ZFQO3OQ.js +1 -0
- package/dist/chunk-A3GSH6MV.js +1 -0
- package/dist/chunk-A5B2BGUM.js +1 -0
- package/dist/chunk-AM6IDSXI.js +1 -0
- package/dist/chunk-EHYOVHRL.js +2 -0
- package/dist/chunk-EMZA6G2M.js +4 -0
- package/dist/chunk-EOFT3PNU.js +1 -0
- package/dist/chunk-ETFDYZVJ.js +1 -0
- package/dist/chunk-FUW7OD3H.js +1 -0
- package/dist/chunk-GRMSEMU7.js +1 -0
- package/dist/chunk-I7AUKTXE.js +1 -0
- package/dist/chunk-IANAVH2A.js +1 -0
- package/dist/chunk-JN2OGNK3.js +1 -0
- package/dist/chunk-JVMNMAHX.js +1 -0
- package/dist/chunk-K2QWNDXV.js +1 -0
- package/dist/chunk-KYNS3GBJ.js +2 -0
- package/dist/chunk-LI3ZYXUT.js +1 -0
- package/dist/chunk-LNEISTXM.js +1 -0
- package/dist/chunk-QABNK7IA.js +1 -0
- package/dist/chunk-QS5QXZNJ.js +1 -0
- package/dist/chunk-QTDRFJG2.js +1 -0
- package/dist/chunk-RJULLVTH.js +1 -0
- package/dist/chunk-SVHITP3F.js +2 -0
- package/dist/chunk-UKVY43V3.js +1 -0
- package/dist/chunk-VIT4KE6Q.js +1 -0
- package/dist/chunk-XG5PVDOP.js +1 -0
- package/dist/chunk-XH5GTWCV.js +1 -0
- package/dist/chunk-XYMPBCYW.js +1 -0
- package/dist/chunk-YRSSCEAS.js +1 -0
- package/dist/chunk-ZL46COQF.js +1 -0
- package/dist/cli/init.js +1 -1
- package/dist/{componentStorage-CJTh-TPO.d.ts → componentStorage-CXJvx4Lt.d.ts} +2 -2
- package/dist/components/index.d.ts +7209 -6691
- package/dist/components/index.js +5 -1
- package/dist/core/index.d.ts +2501 -1262
- package/dist/core/index.js +1 -1
- package/dist/debug/index.d.ts +310 -84
- package/dist/debug/index.js +8 -1
- package/dist/{dirtyTracking-C4v8MmM9.d.ts → dirtyTracking-kCS9-NVF.d.ts} +2 -2
- package/dist/{doubleBuffer-CKQFmlPN.d.ts → doubleBuffer-CWASihKh.d.ts} +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/{inputActions-CRsUtTHM.d.ts → factories-vW7bn_He.d.ts} +21 -786
- package/dist/{gameLoop-C-Ez_i54.d.ts → gameLoop-C1AyRWyP.d.ts} +3 -3
- package/dist/index.d.ts +25 -500
- package/dist/index.js +1 -3
- package/dist/input/index.d.ts +1 -1
- package/dist/input/index.js +1 -1
- package/dist/inputStream-COARA4CP.d.ts +1182 -0
- package/dist/interactiveSystem-h92W9W4n.d.ts +1977 -0
- package/dist/{keyParser-BnHbg2iD.d.ts → keyParser-DReXe2j-.d.ts} +41 -41
- package/dist/{events-9ForpTfM.d.ts → mouseParser-CCqSEUVN.d.ts} +177 -2
- package/dist/{packedStore-BgvnEdE7.d.ts → packedStore-480t2X74.d.ts} +1 -1
- package/dist/panelMovement-DGzIQ8Ll.d.ts +1908 -0
- package/dist/{parser-iMHmQuUh.d.ts → parser-Q1YLXYpF.d.ts} +1 -1
- package/dist/positioning-DiUivJXa.d.ts +917 -0
- package/dist/{renderable-CwqGwrEV.d.ts → renderable-IbSJao5y.d.ts} +2 -2
- package/dist/{scheduler-CMcYew9Z.d.ts → scheduler-NbHT3-D2.d.ts} +3 -1
- package/dist/schemas/index.d.ts +6 -6
- package/dist/schemas/index.js +1 -1
- package/dist/systems/index.d.ts +1057 -1807
- package/dist/systems/index.js +1 -1
- package/dist/terminal/index.d.ts +7207 -2709
- package/dist/terminal/index.js +1 -1
- package/dist/terminalBuffer-BbUz27qM.d.ts +691 -0
- package/dist/{terminus-14-bold-HWSPRLJD.js → terminus-14-bold-ZS4IH465.js} +1 -1
- package/dist/{terminus-14-normal-T3SWMH4D.js → terminus-14-normal-HD5N7F5W.js} +1 -1
- package/dist/text/index.d.ts +263 -0
- package/dist/text/index.js +3 -0
- package/dist/textWrap-Ct2J8gO6.d.ts +761 -0
- package/dist/{tilemap-BirMJdbu.d.ts → tilemap-ByvTsepD.d.ts} +5 -5
- package/dist/{types-CPB4CpbH.d.ts → types-B8LmNkzG.d.ts} +1 -1
- package/dist/utils/index.d.ts +827 -780
- package/dist/utils/index.js +32 -1
- package/dist/{virtualScrollback-D9uLFe8l.d.ts → virtualScrollback-CiooIebp.d.ts} +4 -4
- package/dist/virtualViewport-fIlbIGPt.d.ts +657 -0
- package/dist/{virtualizedLineStore-DwPEvPkk.d.ts → virtualizedLineStore-DfyhojPZ.d.ts} +1 -1
- package/dist/widgets/bigText.d.ts +13 -13
- package/dist/widgets/bigText.js +1 -1
- package/dist/widgets/fonts/index.d.ts +1 -1
- package/dist/widgets/fonts/index.js +1 -1
- package/dist/widgets/index.d.ts +2933 -1102
- package/dist/widgets/index.js +24 -1
- package/package.json +9 -22
- package/dist/3d/index.d.ts +0 -5
- package/dist/3d/index.js +0 -1
- package/dist/audio/index.d.ts +0 -177
- package/dist/audio/index.js +0 -1
- package/dist/chunk-2IEMMRUO.js +0 -1
- package/dist/chunk-35LCBY6P.js +0 -1
- package/dist/chunk-3AV52GY5.js +0 -1
- package/dist/chunk-3LHLSY3Y.js +0 -1
- package/dist/chunk-3O4TQHGK.js +0 -4
- package/dist/chunk-3UJWZ5ZN.js +0 -1
- package/dist/chunk-5PELJRUQ.js +0 -1
- package/dist/chunk-6M2J5QUA.js +0 -1
- package/dist/chunk-7IQEUVGF.js +0 -1
- package/dist/chunk-A6M6TFBL.js +0 -1
- package/dist/chunk-CIK4AMUA.js +0 -1
- package/dist/chunk-CUEUJAHK.js +0 -3
- package/dist/chunk-D42Q2KKR.js +0 -1
- package/dist/chunk-DYEXOFUU.js +0 -2
- package/dist/chunk-DYU72XLL.js +0 -1
- package/dist/chunk-E4CJRSND.js +0 -1
- package/dist/chunk-EAY7B5GL.js +0 -1
- package/dist/chunk-FCMTWFSE.js +0 -1
- package/dist/chunk-FGHEFXLK.js +0 -1
- package/dist/chunk-FL56THSI.js +0 -25
- package/dist/chunk-G437VE43.js +0 -1
- package/dist/chunk-G7GIWWLE.js +0 -1
- package/dist/chunk-GGXNWT36.js +0 -8
- package/dist/chunk-HLFORKXS.js +0 -1
- package/dist/chunk-J7MBKEBY.js +0 -1
- package/dist/chunk-K3SX2LY5.js +0 -1
- package/dist/chunk-LDAFEXN5.js +0 -1
- package/dist/chunk-LYSK5S63.js +0 -1
- package/dist/chunk-MKMFUXLB.js +0 -33
- package/dist/chunk-MQWPHPUM.js +0 -1
- package/dist/chunk-MTI376CU.js +0 -5
- package/dist/chunk-MTV2RJZD.js +0 -1
- package/dist/chunk-NZ55KBM6.js +0 -1
- package/dist/chunk-OB66FB4F.js +0 -1
- package/dist/chunk-OMMJ7B5P.js +0 -1
- package/dist/chunk-OR3BZY7C.js +0 -1
- package/dist/chunk-PXXGH3BV.js +0 -1
- package/dist/chunk-R7AICVRN.js +0 -2
- package/dist/chunk-RZ7FGVI6.js +0 -1
- package/dist/chunk-SHUC6JWA.js +0 -1
- package/dist/chunk-TWSWTBYL.js +0 -1
- package/dist/chunk-UMGTXSQB.js +0 -11
- package/dist/chunk-X3Q3T2SS.js +0 -4
- package/dist/chunk-XZJRWFOS.js +0 -1
- package/dist/chunk-ZAHG7Y3X.js +0 -1
- package/dist/game/index.d.ts +0 -486
- package/dist/game/index.js +0 -1
- package/dist/index-DBS5Uefn.d.ts +0 -3156
- package/dist/mouseParser-Cfrbn3AX.d.ts +0 -177
- package/dist/viewport3d-xI33-_wq.d.ts +0 -182
- package/dist/virtualViewport-Bpv6jlKt.d.ts +0 -1856
package/dist/systems/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Xa as DEFAULT_CELL_SIZE,Ha as ageParticle,c as animationSystem,Oa as applyScrollImpulse,B as areColliding,va as beginMove,wa as beginResize,O as blurAll,Ga as burstParticles,i as cameraSystem,Wb as cancelAllOfType,Aa as cancelMoveOrResize,Vb as cancelTask,Na as clearAllScrollStates,E as clearDragConstraints,_ as clearFocusStack,Nb as clearPositionCache,eb as clearSpatialHash,Db as clearTileMapRenderBuffer,u as collisionSystem,d as createAnimationSystem,g as createBehaviorSystem,j as createCameraSystem,v as createCollisionSystem,H as createDragSystem,Fb as createEmptyBuffer,ba as createFocusSystem,ca as createFrameBudgetManager,Qb as createIncrementalSpatialSystem,pa as createMovementSystem,ua as createPanelConstraints,ta as createPanelMoveConfig,sa as createPanelMoveState,Ka as createParticleSystem,Kb as createPositionCache,Wa as createSmoothScrollSystem,Ya as createSpatialHash,rb as createSpatialHashSystem,hb as createSpatialHashSystemState,vb as createStateMachineSystem,Jb as createTilemapRenderSystem,Rb as createVisibilityCullingSystem,Sb as createWorkerPool,ka as destroyFrameBudgetManager,Yb as destroyWorkerPool,t as detectCollisions,Da as detectResizeHandle,za as endMoveOrResize,Sa as endUserScroll,la as exportFrameBudgetMetrics,N as focusEntity,R as focusFirst,S as focusLast,P as focusNext,Y as focusOffset,U as focusPop,Q as focusPrev,T as focusPush,aa as focusSystem,n as getActiveCollisionCount,o as getActiveCollisions,p as getActiveTriggerCount,q as getActiveTriggers,z as getCollidingEntities,m as getCollisionEventBus,D as getDragConstraints,G as getDragVerifyCallback,db as getEntitiesAtPoint,cb as getEntitiesInCell,J as getFocusEventBus,Z as getFocusStackDepth,L as getFocusableEntities,M as getFocused,ha as getFrameBudgetStats,bb as getNearbyEntities,Va as getScrollPosition,La as getScrollState,mb as getSpatialDirtyCount,jb as getSpatialHashGrid,fb as getSpatialHashStats,kb as getSpatialHashSystemState,tb as getStateAgeStore,zb as getSystemStateAge,Cb as getTileMapRenderBuffer,Bb as getTileMapRendererConfig,A as getTriggerZones,Xb as getWorkerPoolState,b as hasAnimationSystem,na as hasMovementSystem,pb as incrementalSpatialUpdate,_a as insertEntity,x as isColliding,y as isInTrigger,Ua as isScrolling,Ba as keyboardMove,Ca as keyboardResize,Ja as killParticle,lb as markSpatialDirty,Ea as mergeDirtyRects,Ia as moveParticle,oa as movementSystem,ia as onBudgetAlert,$ as peekFocusStack,Pb as performCulling,ga as profiledSystem,a as queryAnimation,ab as queryArea,h as queryCameras,s as queryColliders,ma as queryMovement,sb as queryStateMachine,Ob as queryVisibleEntities,gb as rebuildSpatialHash,da as recordFrameBudgetSystemTime,fa as recordFrameTime,ea as recordPhaseTime,e as registerAnimationSystem,k as registerCameraSystem,w as registerCollisionSystem,qa as registerMovementSystem,wb as registerStateMachineSystem,Tb as registerTaskHandler,$a as removeEntityFromGrid,Mb as removeFromCache,Ma as removeScrollState,Hb as renderAllTileMaps,Gb as renderTileMapToBuffer,r as resetCollisionState,I as resetDragStores,K as resetFocusEventBus,ja as resetFrameBudget,nb as resetSpatialHashState,yb as resetStateAge,Eb as resetTileMapRenderer,W as restoreFocus,X as rewindFocus,V as saveFocus,C as setDragConstraints,F as setDragVerifyCallback,Qa as setScrollImmediate,ob as setSpatialDirtyThreshold,ib as setSpatialHashGrid,Ab as setTileMapRendererConfig,Pa as smoothScrollTo,qb as spatialHashSystem,Fa as spawnParticle,Ra as startUserScroll,ub as stateMachineSystem,Ub as submitTask,Ib as tilemapRenderSystem,f as updateAnimations,l as updateCameras,Lb as updateEntityIfMoved,xa as updateMove,ra as updateMovements,ya as updateResize,Ta as updateScrollPhysics,xb as updateStateAges,Za as worldToCell}from'../chunk-MQWPHPUM.js';export{h as captureMouseTo,N as cleanup,r as clearEntityInput,f as clearEventQueue,A as clearOutputBuffer,x as clearOutputStream,W as clearRenderBuffer,K as clearScreen,p as createInputSystem,t as createOutputState,E as createOutputSystem,_ as createRenderSystem,L as cursorHome,I as enterAlternateScreen,u as generateOutput,e as getEventQueue,g as getInputEventBus,n as getInteractiveEntityAt,k as getMouseCaptureEntity,z as getOutputBuffer,B as getOutputState,w as getOutputStream,V as getRenderBuffer,T as getViewportBounds,G as hideCursor,m as hitTest,a as inputState,o as inputSystem,j as isMouseCaptured,Y as isOcclusionCullingEnabled,J as leaveAlternateScreen,ba as markAllDirty,D as outputSystem,l as pointInEntity,s as queryInputReceivers,c as queueKeyEvent,d as queueMouseEvent,q as registerInputSystem,i as releaseMouse,O as renderBackground,P as renderBorder,Q as renderContent,aa as renderRect,R as renderScrollbar,Z as renderSystem,$ as renderText,M as resetAttributes,b as resetInputState,C as resetOutputState,X as setOcclusionCulling,y as setOutputBuffer,v as setOutputStream,U as setRenderBuffer,S as setViewportBounds,H as showCursor,F as writeRaw}from'../chunk-J7MBKEBY.js';export{a as LineRenderConfigSchema,o as cleanupEntityResources,n as cleanupVirtualizedRenderSystem,k as clearLineRenderConfig,d as clearVirtualizedRenderBuffer,m as createVirtualizedRenderSystem,j as getLineRenderConfig,f as getLineStore,c as getVirtualizedRenderBuffer,e as registerLineStore,i as setLineRenderConfig,b as setVirtualizedRenderBuffer,g as unregisterLineStore,h as updateLineStore,l as virtualizedRenderSystem}from'../chunk-3UJWZ5ZN.js';import'../chunk-4LWWONFK.js';import'../chunk-HLFORKXS.js';import'../chunk-FGHEFXLK.js';import'../chunk-TWSWTBYL.js';import'../chunk-C5PCEQ6G.js';import'../chunk-VOCM5T2G.js';import'../chunk-OB66FB4F.js';import'../chunk-MTV2RJZD.js';export{a as ComputedLayout,h as computeLayoutNow,f as createLayoutSystem,i as getComputedBounds,b as getComputedLayout,c as hasComputedLayout,g as invalidateAllLayouts,d as invalidateLayout,e as layoutSystem}from'../chunk-3AV52GY5.js';import'../chunk-D42Q2KKR.js';import'../chunk-5N3O25O7.js';import'../chunk-6M2J5QUA.js';import'../chunk-EAY7B5GL.js';import'../chunk-K3SX2LY5.js';import'../chunk-XZJRWFOS.js';import'../chunk-OR3BZY7C.js';import'../chunk-DYU72XLL.js';import'../chunk-ZAHG7Y3X.js';import'../chunk-Z4EZERNE.js';import'../chunk-SHUC6JWA.js';import'../chunk-G7GIWWLE.js';import'../chunk-PXXGH3BV.js';import'../chunk-5PELJRUQ.js';
|
|
1
|
+
import {a as a$8,n as n$3,o as o$3,d as d$3,b as b$6,c as c$3,k as k$3,i as i$4,j as j$4,f as f$5,h as h$4,g as g$5,e as e$3,l as l$6,m as m$5}from'../chunk-QTDRFJG2.js';export{a as LineRenderConfigSchema,o as cleanupEntityResources,n as cleanupVirtualizedRenderSystem,k as clearLineRenderConfig,d as clearVirtualizedRenderBuffer,m as createVirtualizedRenderSystem,j as getLineRenderConfig,f as getLineStore,c as getVirtualizedRenderBuffer,e as registerLineStore,i as setLineRenderConfig,b as setVirtualizedRenderBuffer,g as unregisterLineStore,h as updateLineStore,l as virtualizedRenderSystem}from'../chunk-QTDRFJG2.js';import {f as f$2,a as a$5,b as b$2,c,e,d,h,g as g$2,i,j as j$1,l as l$2,v,p,o as o$1,n,m as m$3,k as k$1,z as z$2,A as A$1,u,t,s,x as x$1,w,y as y$3,r,q}from'../chunk-A5B2BGUM.js';export{c as animationSystem,l as blurAll,x as clearFocusStack,d as createAnimationSystem,A as createFocusSystem,k as focusEntity,o as focusFirst,p as focusLast,m as focusNext,v as focusOffset,r as focusPop,n as focusPrev,q as focusPush,z as focusSystem,g as getFocusEventBus,w as getFocusStackDepth,i as getFocusableEntities,j as getFocused,b as hasAnimationSystem,y as peekFocusStack,a as queryAnimation,e as registerAnimationSystem,h as resetFocusEventBus,t as restoreFocus,u as rewindFocus,s as saveFocus,f as updateAnimations}from'../chunk-A5B2BGUM.js';import {b as b$3,g as g$3,r as r$1,f as f$3,e as e$1,d as d$1,c as c$1,n as n$1,l as l$3,m as m$4,s as s$1,a as a$6,o as o$2,q as q$1,p as p$1,k as k$2,j as j$2,i as i$1,h as h$1,F,C,B as B$1,v as v$1,w as w$1,y as y$4,z as z$3,u as u$1,x as x$2,A as A$2,K as K$1,$ as $$1,D as D$2,t as t$1,E,U,T,_,Z,Y as Y$1,X,Q as Q$1,P as P$1,N as N$1,M as M$1,S,J as J$1,I as I$1,R as R$1,W,V,O as O$1,L as L$1,H as H$1,G as G$1,oa,na as na$1,da,ba as ba$1,aa as aa$1,ca,pa as pa$1,ia,ga as ga$1,ha as ha$1,la,ma,ja as ja$1,ka as ka$2,ea,fa}from'../chunk-JVMNMAHX.js';export{T as beginSyncOutput,N as bell,h as captureMouseTo,$ as cleanup,r as clearEntityInput,f as clearEventQueue,A as clearOutputBuffer,x as clearOutputStream,ia as clearRenderBuffer,K as clearScreen,p as createInputSystem,t as createOutputState,E as createOutputSystem,ma as createRenderSystem,L as cursorHome,Y as disableBracketedPasteMode,_ as disableFocusReporting,Q as disableMouseTracking,X as enableBracketedPasteMode,Z as enableFocusReporting,P as enableMouseTracking,U as endSyncOutput,I as enterAlternateScreen,u as generateOutput,e as getEventQueue,g as getInputEventBus,n as getInteractiveEntityAt,k as getMouseCaptureEntity,z as getOutputBuffer,B as getOutputState,w as getOutputStream,ha as getRenderBuffer,fa as getViewportBounds,G as hideCursor,m as hitTest,a as inputState,o as inputSystem,j as isMouseCaptured,ka as isOcclusionCullingEnabled,J as leaveAlternateScreen,pa as markAllDirty,O as moveTo,D as outputSystem,l as pointInEntity,s as queryInputReceivers,c as queueKeyEvent,d as queueMouseEvent,q as registerInputSystem,i as releaseMouse,aa as renderBackground,ba as renderBorder,ca as renderContent,oa as renderRect,da as renderScrollbar,la as renderSystem,na as renderText,M as resetAttributes,b as resetInputState,C as resetOutputState,W as restoreCursorPosition,V as saveCursorPosition,ja as setOcclusionCulling,y as setOutputBuffer,v as setOutputStream,ga as setRenderBuffer,R as setTerminalCursorShape,ea as setViewportBounds,S as setWindowTitle,H as showCursor,F as writeRaw}from'../chunk-JVMNMAHX.js';import'../chunk-4LWWONFK.js';import {f as f$1,B,a as a$2,b,A,x,y as y$1,z as z$1,D as D$1,Y,$ as $$2,aa,pa,na,_ as _$1,ka as ka$1,qa as qa$1,xa as xa$1,Ta as Ta$1,Ga as Ga$2,Aa as Aa$1,ca as ca$1,ea as ea$1,za as za$1}from'../chunk-YRSSCEAS.js';import'../chunk-VOCM5T2G.js';import'../chunk-GRMSEMU7.js';import'../chunk-LNEISTXM.js';import'../chunk-C5PCEQ6G.js';import {b as b$1,l,I,L,M,N,O,y as y$2,v as v$2,u as u$2,m as m$6,r as r$2,s as s$2}from'../chunk-IANAVH2A.js';import'../chunk-A3GSH6MV.js';import {a as a$3,y as y$5,z as z$4,l as l$4}from'../chunk-XH5GTWCV.js';import {a as a$1}from'../chunk-VIT4KE6Q.js';import {a as a$4}from'../chunk-5N3O25O7.js';import {a as a$7,g as g$4,d as d$2,c as c$2,i as i$2,b as b$4,h as h$2,e as e$2,f as f$4}from'../chunk-ZL46COQF.js';export{a as ComputedLayout,h as computeLayoutNow,f as createLayoutSystem,i as getComputedBounds,b as getComputedLayout,c as hasComputedLayout,g as invalidateAllLayouts,d as invalidateLayout,e as layoutSystem}from'../chunk-ZL46COQF.js';import'../chunk-LI3ZYXUT.js';import {a,m as m$1,g as g$1,j as j$3,b as b$5,f as f$6}from'../chunk-RJULLVTH.js';import {l as l$1}from'../chunk-K2QWNDXV.js';import'../chunk-EOFT3PNU.js';import {Ba as Ba$1,Ca as Ca$1,Da as Da$1,Ia as Ia$1,Ga as Ga$1,$ as $$3,i as i$5,a as a$a,ba as ba$2}from'../chunk-ETFDYZVJ.js';import {o,m as m$2,h as h$3,n as n$2,i as i$3,l as l$5,a as a$9,p as p$2,q as q$2}from'../chunk-7ZFQO3OQ.js';import'../chunk-Z4EZERNE.js';import'../chunk-I7AUKTXE.js';import {z}from'zod';var ns=z.object({getPosition:z.function().optional(),applyMovement:z.function().optional(),getDelta:z.function()});function os(e,t){if(Ga$1(e,t))return {x:Ba$1.x[t],y:Ba$1.y[t]}}function is(e,t,r,n,o){m$2(e,t,Ba$1)&&(Ba$1.x[t]=Ba$1.x[t]+r*o,Ba$1.y[t]=Ba$1.y[t]+n*o);}function kn(e,t){let r=ns.parse(e),n=r.getPosition??os,o=r.applyMovement??is;return i=>{let s=r.getDelta(),a=t(i);for(let l of a)f$1(i,l)&&(B(i,l,s),as(i,l,s,n,o));return i}}function as(e,t,r,n,o){let i=a$2.behaviorType[t];if(i===b.Idle)return;if(i===b.Custom){A(e,t,r);return}let s=n(e,t);if(!s)return;if(i===b.Patrol){ss(e,t,s.x,s.y,r,o);return}let a=a$2.targetEntity[t];if(a===0)return;let l=n(e,a);l&&(i===b.Chase?ls(e,t,s.x,s.y,l.x,l.y,r,o):i===b.Flee&&us(e,t,s.x,s.y,l.x,l.y,r,o));}function ss(e,t,r,n,o,i){let s=x(e,t,r,n,o);s&&(s.dx!==0||s.dy!==0)&&i(e,t,s.dx,s.dy,o);}function ls(e,t,r,n,o,i,s,a){let l=y$1(e,t,r,n,o,i);l&&(l.dx!==0||l.dy!==0)&&a(e,t,l.dx,l.dy,s);}function us(e,t,r,n,o,i,s,a){let l=z$1(e,t,r,n,o,i);l&&(l.dx!==0||l.dy!==0)&&a(e,t,l.dx,l.dy,s);}function $(e){return Array.from(o(e,[D$1]))}var Q=e=>{let t=a$3(),r=$(e);for(let n of r)Y(e,n,t);return e};function An(){return Q}function Wn(e,t=20){e.registerSystem(2,Q,t);}function Bn(e,t){let r=$(e);for(let n of r)Y(e,n,t);}var Me=67108864;function Hn(e,t){if(e>=Me||t>=Me)throw new RangeError(`Entity IDs must be below ${Me} for collision-free pair keys. Got: ${e}, ${t}`);return e*Me+t}var y={eventBus:a$1(),activePairs:a(),activeTriggers:a(),pairHandles:new Map,triggerHandles:new Map};function Fn(){return y.eventBus}function Dn(){return y.activePairs.size}function zn(){return {data:y.activePairs.data,size:y.activePairs.size}}function wn(){return y.activeTriggers.size}function Yn(){return {data:y.activeTriggers.data,size:y.activeTriggers.size}}function On(){g$1(y.activePairs),g$1(y.activeTriggers),y.pairHandles.clear(),y.triggerHandles.clear();}var Rn=[];function Ce(e){Rn.length=0;for(let t of o(e,[b$1]))Rn.push(t);return Rn}function cs(e,t,r,n,o,i,s,a){if(!m$2(e,a,Ba$1))return;let l$1=b$1.layer[a],u=b$1.mask[a];if(!m$6(o,i,l$1,u))return;let p=Ba$1.x[a],d=Ba$1.y[a];if(!r$2(e,t,r,n,a,p,d))return;let b=l(e,a);return s$2(t,a,s||b)}function Te(e){let t=Ce(e),r=[];for(let n=0;n<t.length;n++){let o=t[n];if(o===void 0||!m$2(e,o,Ba$1))continue;let i=Ba$1.x[o],s=Ba$1.y[o],a=b$1.layer[o],l$1=b$1.mask[o],u=l(e,o);for(let p=n+1;p<t.length;p++){let d=t[p];if(d===void 0)continue;let b=cs(e,o,i,s,a,l$1,u,d);b&&r.push(b);}}return r}function ga(e,t,r,n){let{data:o}=e;for(let i=e.size-1;i>=0;i--){let s=o[i];if(!s)continue;let a=Hn(s.entityA,s.entityB);if(r.has(a))continue;let l=t.get(a);l&&(t.delete(a),f$6(e,l),y.eventBus.emit(n,{entityA:s.entityA,entityB:s.entityB}));}}function ms(e,t,r){let n=Hn(e.entityA,e.entityB);if(e.isTrigger){if(r.add(n),!y.triggerHandles.has(n)){let o=b$5(y.activeTriggers,e);y.triggerHandles.set(n,o),y.eventBus.emit("triggerEnter",{entityA:e.entityA,entityB:e.entityB});}}else if(t.add(n),!y.pairHandles.has(n)){let o=b$5(y.activePairs,e);y.pairHandles.set(n,o),y.eventBus.emit("collisionStart",{entityA:e.entityA,entityB:e.entityB});}}function ps(e){let t=new Set,r=new Set;for(let n of e)ms(n,t,r);ga(y.activePairs,y.pairHandles,t,"collisionEnd"),ga(y.activeTriggers,y.triggerHandles,r,"triggerExit");}var K=e=>{let t=Te(e);return ps(t),e};function Xn(){return K}function In(e,t=10){e.registerSystem(2,K,t);}function Ln(e){let{data:t}=y.activePairs;for(let r=0;r<y.activePairs.size;r++){let n=t[r];if(n&&(n.entityA===e||n.entityB===e))return true}return false}function Vn(e){let{data:t}=y.activeTriggers;for(let r=0;r<y.activeTriggers.size;r++){let n=t[r];if(n&&(n.entityA===e||n.entityB===e))return true}return false}function qn(e){let t=[],{data:r}=y.activePairs;for(let n=0;n<y.activePairs.size;n++){let o=r[n];o&&(o.entityA===e?t.push(o.entityB):o.entityB===e&&t.push(o.entityA));}return t}function Gn(e){let t=[],{data:r}=y.activeTriggers;for(let n=0;n<y.activeTriggers.size;n++){let o=r[n];o&&(o.entityA===e?t.push(o.entityB):o.entityB===e&&t.push(o.entityA));}return t}function jn(e,t){let r=Math.min(e,t),n=Math.max(e,t),o=Hn(r,n);return y.pairHandles.has(o)||y.triggerHandles.has(o)}function Un(e){return {type:"fixed",value:e}}function _n(e){return {type:"percentage",value:e}}function Nn(e){return {type:"min",value:e}}function Zn(e){return {type:"max",value:e}}function $n(e,t){return {type:"ratio",numerator:e,denominator:t}}function ds(e,t){switch(e.type){case "fixed":return Math.min(e.value,t);case "percentage":return Math.floor(e.value/100*t);case "min":return Math.min(e.value,t);case "max":return Math.min(e.value,t);case "ratio":return e.denominator===0?0:Math.floor(e.numerator/e.denominator*t)}}function Sa(e,t){let r=[],n=0,o=[];for(let i=0;i<e.length;i++){let s=e[i];if(!s){r.push(0);continue}if(s.type==="fixed"){let a=Math.min(s.value,t-n);r.push(a),n+=a;}else r.push(0),o.push(i);}for(let i of o){let s=e[i];s&&(r[i]=ds(s,t));}return r}function fs(e){let t=[];for(let r=0;r<e.length;r++){let n=e[r];n&&(n.type==="min"||n.type==="max")&&t.push(r);}return t}function ys(e,t,r,n){let o=r;if(n&&(o+=1),e.type==="max"){let i=e.value-t;o=Math.min(o,i);}return Math.max(0,o)}function ba(e,t,r){if(r<=0)return;let n=fs(e);if(n.length===0)return;let o=Math.floor(r/n.length),i=r%n.length;for(let s of n){let a=e[s],l=t[s];if(!a||l===void 0)continue;let u=ys(a,l,o,i>0);i>0&&(i-=1),t[s]=l+u;}}function Qn(e,t,r){if(r.length===0)return [];let n=Sa(r,t.width),o=0;for(let l of n)o+=l;let i=t.width-o;i>0&&ba(r,n,i);let s=[],a=t.x;for(let l=0;l<n.length;l++){let u=n[l];u!==void 0&&(s.push({x:a,y:t.y,width:u,height:t.height}),a+=u);}return s}function Kn(e,t,r){if(r.length===0)return [];let n=Sa(r,t.height),o=0;for(let l of n)o+=l;let i=t.height-o;i>0&&ba(r,n,i);let s=[],a=t.y;for(let l=0;l<n.length;l++){let u=n[l];u!==void 0&&(s.push({x:t.x,y:a,width:t.width,height:u}),a+=u);}return s}function Pe(e){return a$9(e,"drag:constraints")}function Ee(e){return a$9(e,"drag:verify")}function gs(){return {dragging:null,startX:0,startY:0,offsetX:0,offsetY:0,lastX:0,lastY:0,constraints:{},verifyCallback:null}}function Jn(e,t,r){Pe(e).set(t,r);}function ke(e,t){return Pe(e).get(t)??{}}function eo(e,t){Pe(e).delete(t);}function to(e,t,r){r?Ee(e).set(t,r):Ee(e).delete(t);}function Ae(e,t){return Ee(e).get(t)??null}function Ss(e,t,r,n){return n==="x"?{x:t,y:Ba$1.y[e]??r}:n==="y"?{x:Ba$1.x[e]??t,y:r}:{x:t,y:r}}function bs(e,t,r){return r?{x:Math.round(e/r.x)*r.x,y:Math.round(t/r.y)*r.y}:{x:e,y:t}}function hs(e,t,r){let n=e,o=t;return r.minX!==void 0&&(n=Math.max(n,r.minX)),r.maxX!==void 0&&(n=Math.min(n,r.maxX)),r.minY!==void 0&&(o=Math.max(o,r.minY)),r.maxY!==void 0&&(o=Math.min(o,r.maxY)),{x:n,y:o}}function xs(e,t,r,n,o){if(!o)return {x:r,y:n};let i=i$5(e,t);if(i===a$a)return {x:r,y:n};let s=ba$2(e,i);if(!s)return {x:r,y:n};let a=ba$2(e,t),l=a?.width??1,u=a?.height??1;return {x:Math.max(0,Math.min(r,s.width-l)),y:Math.max(0,Math.min(n,s.height-u))}}function vs(e,t,r,n,o){let i=Ss(t,r,n,o.constrainAxis);return i=bs(i.x,i.y,o.snapToGrid),i=hs(i.x,i.y,o),i=xs(e,t,i.x,i.y,o.constrainToParent),i}function ro(e){let t=gs(),r=(n,o=null,i=false)=>{if(t.dragging===null)return;let s=t.dragging,a=Da$1(n,s),l=a?.x??t.lastX,u=a?.y??t.lastY;e.emit("dragend",{entity:s,x:l,y:u,totalDx:l-t.startX,totalDy:u-t.startY,cancelled:i}),i||e.emit("drop",{entity:s,x:l,y:u,dropTarget:o}),t.dragging=null,t.startX=0,t.startY=0,t.offsetX=0,t.offsetY=0,t.lastX=0,t.lastY=0,t.constraints={},t.verifyCallback=null;};return {getState(){return t},isDragging(){return t.dragging!==null},getDraggingEntity(){return t.dragging},canDrag(n,o){return l$1(n,o)},startDrag(n,o,i,s){if(!l$1(n,o)||t.dragging!==null)return false;let a=Da$1(n,o);if(!a)return false;if(t.dragging=o,t.startX=a.x,t.startY=a.y,t.offsetX=i-a.x,t.offsetY=s-a.y,t.lastX=a.x,t.lastY=a.y,t.constraints=ke(n,o),t.verifyCallback=Ae(n,o),t.constraints.bringToFront){let l=t.constraints.frontZIndex??9999;Ia$1(n,o,l);}return e.emit("dragstart",{entity:o,startX:a.x,startY:a.y,mouseX:i,mouseY:s}),true},updateDrag(n,o,i){if(t.dragging===null)return false;let s=t.dragging,a=o-t.offsetX,l=i-t.offsetY,u=vs(n,s,a,l,t.constraints);a=u.x,l=u.y;let p=a-t.lastX,d=l-t.lastY;return p===0&&d===0||t.verifyCallback&&!t.verifyCallback(s,p,d)?false:(Ca$1(n,s,a,l),t.lastX=a,t.lastY=l,e.emit("drag",{entity:s,x:a,y:l,dx:p,dy:d,mouseX:o,mouseY:i}),true)},endDrag:r,cancelDrag(n){if(t.dragging===null)return;let o=t.dragging;Ca$1(n,o,t.startX,t.startY),r(n,null,true);}}}function no(e){Pe(e).clear(),Ee(e).clear();}var Ms=z.object({targetFrameMs:z.number().positive(),phaseBudgets:z.record(z.string(),z.number().positive()),rollingWindowSize:z.number().int().positive(),warnOnOverrun:z.boolean(),emaSmoothingFactor:z.number().min(0).max(1),underBudgetThreshold:z.number().min(0).max(1),overBudgetThreshold:z.number().min(0).max(1)}),xa={targetFrameMs:16.67,phaseBudgets:{},rollingWindowSize:120,warnOnOverrun:true,emaSmoothingFactor:.1,underBudgetThreshold:.8,overBudgetThreshold:.95},f=null;function oo(e){return {samples:Array.from({length:e},()=>0),idx:0,count:0,total:0,min:Number.POSITIVE_INFINITY,max:0}}function va(e,t){let r=e.samples[e.idx%e.samples.length]??0;e.samples[e.idx%e.samples.length]=t,e.idx++,e.count<e.samples.length?(e.count++,e.total+=t):e.total+=t-r,t<e.min&&(e.min=t),t>e.max&&(e.max=t);}function G(e,t){if(e.count===0)return 0;let r=e.samples.slice(0,e.count).sort((o,i)=>o-i),n=Math.min(Math.floor(r.length*t),r.length-1);return r[n]??0}function ha(e){return e.count>0?e.total/e.count:0}function io(e){let t={...xa,...e};return f={config:Ms.parse(t),systemSamples:new Map,phaseTotals:new Map,frameSamples:oo(t.rollingWindowSize),totalFrames:0,budgetOverruns:0,alerts:[],onAlert:null,phaseEMA:new Map,adaptiveBudgets:new Map,deferredWork:[],nextWorkId:0,currentFrameStartMs:0},J()}function We(e,t){if(!f)return;let r=f.systemSamples.get(e);r||(r=oo(f.config.rollingWindowSize),f.systemSamples.set(e,r)),va(r,t);}function ao(e,t){if(!f)return;f.phaseTotals.set(e,t);let r=f.config.phaseBudgets[e];if(r!==void 0&&t>r){let n={phase:e,budgetMs:r,actualMs:t,frame:f.totalFrames};f.alerts.push(n),f.alerts.length>100&&f.alerts.shift(),f.budgetOverruns++,f.onAlert&&f.onAlert(n);}}function so(e){f&&(va(f.frameSamples,e),f.totalFrames++);}function lo(e,t){return r=>{let n=performance.now(),o=t(r);return We(e,performance.now()-n),o}}function J(){if(!f)return {config:xa,stats:{frameTimeMs:0,avgFrameMs:0,p50FrameMs:0,p95FrameMs:0,p99FrameMs:0,fps:0,avgFps:0,totalFrames:0,budgetOverruns:0,systemTimings:[],phaseTimings:{}},alerts:[]};let e=f,t=[];for(let[i,s]of e.systemSamples)t.push({name:i,lastMs:s.count>0?s.samples[(s.idx-1+s.samples.length)%s.samples.length]??0:0,avgMs:ha(s),minMs:s.min===Number.POSITIVE_INFINITY?0:s.min,maxMs:s.max,p50Ms:G(s,.5),p95Ms:G(s,.95),p99Ms:G(s,.99),count:s.count});let r={};for(let[i,s]of e.phaseTotals)r[a$4[i]??"unknown"]=s;let n=e.frameSamples.count>0?e.frameSamples.samples[(e.frameSamples.idx-1+e.frameSamples.samples.length)%e.frameSamples.samples.length]??0:0,o=ha(e.frameSamples);return {config:e.config,stats:{frameTimeMs:n,avgFrameMs:o,p50FrameMs:G(e.frameSamples,.5),p95FrameMs:G(e.frameSamples,.95),p99FrameMs:G(e.frameSamples,.99),fps:n>0?1e3/n:0,avgFps:o>0?1e3/o:0,totalFrames:e.totalFrames,budgetOverruns:e.budgetOverruns,systemTimings:t,phaseTimings:r},alerts:[...e.alerts]}}function uo(e){f&&(f.onAlert=e);}function co(){f&&(f.systemSamples.clear(),f.phaseTotals.clear(),f.frameSamples=oo(f.config.rollingWindowSize),f.totalFrames=0,f.budgetOverruns=0,f.alerts=[],f.phaseEMA.clear(),f.adaptiveBudgets.clear(),f.deferredWork=[],f.currentFrameStartMs=0);}function mo(){f=null;}function po(){let e=J();return {config:e.config,stats:e.stats,alerts:e.alerts,exportedAt:Date.now()}}var Cs=1e4;function Ts(e=Cs){return {x:new Float32Array(e),y:new Float32Array(e),maxSpeed:new Float32Array(e),friction:new Float32Array(e)}}var Es=Ts(),Ma=new WeakSet,Ca=null;function Ta(e){return Ma.has(e)||(Ca=p$2(e,q$2(()=>Es)),Ma.add(e)),Ca}function Be(e){let t=Ta(e);return o(e,[t])}function fo(e,t){let r=Ta(e);return m$2(e,t,r)}var ee=e=>{let t=a$3(),r=Be(e);for(let n of r)I(e,n)&&L(n,t),M(n,t),N(n),m$2(e,n,Ba$1)&&O(n,t);return e};function yo(){return ee}function go(e,t=0){e.registerSystem(4,ee,t);}function So(e,t,r){for(let n of t)y$2(e,n)&&(I(e,n)&&L(n,r),M(n,r),N(n),m$2(e,n,Ba$1)&&O(n,r));}var Ea=Object.freeze({create:d,register:e,system:c,has:b$2,query:a$5,update:f$2});var Pa=Object.freeze({create:kn});var ka=Object.freeze({create:An,register:Wn,system:Q,query:$,update:Bn});var Aa=Object.freeze({create:Xn,register:In,system:K,detect:Te,areColliding:jn,isColliding:Ln,isInTrigger:Vn,query:Ce,getActiveCollisions:zn,getActiveCollisionCount:Dn,getActiveTriggers:Yn,getActiveTriggerCount:wn,getCollidingEntities:qn,getTriggerZones:Gn,getEventBus:Fn,reset:On});var Wa=Object.freeze({fixed:Un,percentage:_n,ratio:$n,min:Nn,max:Zn,horizontal:Qn,vertical:Kn});var Ba=Object.freeze({create:ro,setConstraints:Jn,getConstraints:ke,clearConstraints:eo,setVerifyCallback:to,getVerifyCallback:Ae,reset:no});var Ra=Object.freeze({create:A$1,system:z$2,focus:k$1,next:m$3,prev:n,first:o$1,last:p,offset:v,blurAll:l$2,getFocused:j$1,getFocusable:i,getEventBus:g$2,resetEventBus:h,stack:Object.freeze({push:q,pop:r,peek:y$3,depth:w,clear:x$1}),history:Object.freeze({save:s,restore:t,rewind:u})});var Ha=Object.freeze({create:io,destroy:mo,profiledSystem:lo,recordFrame:so,recordSystemTime:We,recordPhase:ao,getStats:J,onAlert:uo,reset:co,export:po});var Fa=Object.freeze({create:p$1,register:q$1,system:o$2,state:a$6,query:s$1,hitTest:m$4,pointInEntity:l$3,getInteractiveAt:n$1,queueKey:c$1,queueMouse:d$1,getEventQueue:e$1,clearQueue:f$3,clearEntityInput:r$1,getEventBus:g$3,reset:b$3,mouse:Object.freeze({capture:h$1,release:i$1,isCaptured:j$2,getCaptureEntity:k$2})});var Da=Object.freeze({create:f$4,system:e$2,computeNow:h$2,getComputed:b$4,getBounds:i$2,has:c$2,invalidate:d$2,invalidateAll:g$4,ComputedLayout:a$7});var za=Object.freeze({create:yo,register:go,system:ee,has:fo,query:Be,update:So});var wa=Object.freeze({create:E,createState:t$1,system:D$2,cleanup:$$1,clearScreen:K$1,clearBuffer:A$2,clearStream:x$2,generate:u$1,getBuffer:z$3,setBuffer:y$4,getStream:w$1,setStream:v$1,getState:B$1,reset:C,writeRaw:F,cursor:Object.freeze({hide:G$1,show:H$1,home:L$1,moveTo:O$1,save:V,restore:W,setShape:R$1}),screen:Object.freeze({enterAlternate:I$1,leaveAlternate:J$1,setTitle:S,resetAttrs:M$1,bell:N$1}),mouse:Object.freeze({enable:P$1,disable:Q$1}),paste:Object.freeze({enable:X,disable:Y$1}),focus:Object.freeze({enable:Z,disable:_}),sync:Object.freeze({begin:T,end:U})});var Ps=z.object({deferLayout:z.boolean(),outlineResize:z.boolean(),keyboardStep:z.number(),keyboardResizeStep:z.number()}),re={minWidth:4,minHeight:2,maxWidth:0,maxHeight:0,constrainToScreen:true,screenWidth:80,screenHeight:24,snapGrid:0},bo={deferLayout:true,outlineResize:false,keyboardStep:1,keyboardResizeStep:1};function Re(){return {entity:void 0,isMoving:false,isResizing:false,resizeHandle:void 0,startX:0,startY:0,panelStartX:0,panelStartY:0,panelStartWidth:0,panelStartHeight:0,layoutDeferred:false}}function ho(e){let t={...bo,...e};return Ps.parse(t)}function xo(e){return {...re,...e}}function vo(e,t,r,n,o,i,s,a,l){let u={...bo,...l};return {...e,entity:t,isMoving:true,isResizing:false,resizeHandle:void 0,startX:r,startY:n,panelStartX:o,panelStartY:i,panelStartWidth:s,panelStartHeight:a,layoutDeferred:u.deferLayout}}function Mo(e,t,r,n,o,i,s,a,l,u){let p={...bo,...u};return {...e,entity:t,isMoving:false,isResizing:true,resizeHandle:r,startX:n,startY:o,panelStartX:i,panelStartY:s,panelStartWidth:a,panelStartHeight:l,layoutDeferred:p.deferLayout}}function Co(e,t,r,n){if(!e.isMoving)return {x:e.panelStartX,y:e.panelStartY,width:e.panelStartWidth,height:e.panelStartHeight,dirtyRects:[],clamped:false};let o={...re,...n},i=t-e.startX,s=r-e.startY,a=e.panelStartX+i,l=e.panelStartY+s,u=false;if(o.snapGrid>0&&(a=Math.round(a/o.snapGrid)*o.snapGrid,l=Math.round(l/o.snapGrid)*o.snapGrid),o.constrainToScreen){let d=Math.max(0,Math.min(a,o.screenWidth-e.panelStartWidth)),b=Math.max(0,Math.min(l,o.screenHeight-e.panelStartHeight));(d!==a||b!==l)&&(u=true),a=d,l=b;}let p=Rs(e.panelStartX+(t-e.startX-i+i),e.panelStartY+(r-e.startY-s+s),a,l,e.panelStartWidth,e.panelStartHeight);return {x:a,y:l,width:e.panelStartWidth,height:e.panelStartHeight,dirtyRects:p,clamped:u}}function ks(e,t,r,n,o,i,s){let a=t,l=r,u=n,p=o;return (e.includes("right")||e==="right")&&(u+=i),(e.includes("bottom")||e==="bottom")&&(p+=s),(e.includes("left")||e==="left")&&(a+=i,u-=i),(e.includes("top")||e==="top")&&(l+=s,p-=s),{x:a,y:l,w:u,h:p}}function As(e,t,r){let n=e,o=t,i=false;return n<r.minWidth&&(n=r.minWidth,i=true),o<r.minHeight&&(o=r.minHeight,i=true),r.maxWidth>0&&n>r.maxWidth&&(n=r.maxWidth,i=true),r.maxHeight>0&&o>r.maxHeight&&(o=r.maxHeight,i=true),{width:n,height:o,clamped:i}}function Ws(e,t,r,n,o){return o<=0?{x:e,y:t,w:r,h:n}:{x:Math.round(e/o)*o,y:Math.round(t/o)*o,w:Math.round(r/o)*o,h:Math.round(n/o)*o}}function Bs(e,t,r,n,o){if(!o.constrainToScreen)return {x:e,y:t,w:r,h:n};let i=Math.max(0,e),s=Math.max(0,t),a=r,l=n;return i+a>o.screenWidth&&(a=o.screenWidth-i),s+l>o.screenHeight&&(l=o.screenHeight-s),{x:i,y:s,w:a,h:l}}function To(e,t,r,n){if(!e.isResizing||!e.resizeHandle)return {x:e.panelStartX,y:e.panelStartY,width:e.panelStartWidth,height:e.panelStartHeight,dirtyRects:[],clamped:false};let o={...re,...n},i=t-e.startX,s=r-e.startY,a=ks(e.resizeHandle,e.panelStartX,e.panelStartY,e.panelStartWidth,e.panelStartHeight,i,s),l=As(a.w,a.h,o);a.w=l.width,a.h=l.height;let u=l.clamped;a=Ws(a.x,a.y,a.w,a.h,o.snapGrid),a=Bs(a.x,a.y,a.w,a.h,o);let p=[{x:e.panelStartX,y:e.panelStartY,width:e.panelStartWidth,height:e.panelStartHeight},{x:a.x,y:a.y,width:a.w,height:a.h}];return {x:a.x,y:a.y,width:a.w,height:a.h,dirtyRects:p,clamped:u}}function Eo(e){return {...e,isMoving:false,isResizing:false,resizeHandle:void 0,layoutDeferred:false}}function Po(e){return {state:Re(),restoreX:e.panelStartX,restoreY:e.panelStartY,restoreWidth:e.panelStartWidth,restoreHeight:e.panelStartHeight}}function ko(e,t,r,n,o,i,s){let a={...re,...s},l=e,u=t;return o==="up"&&(u-=i),o==="down"&&(u+=i),o==="left"&&(l-=i),o==="right"&&(l+=i),a.constrainToScreen&&(l=Math.max(0,Math.min(l,a.screenWidth-r)),u=Math.max(0,Math.min(u,a.screenHeight-n))),a.snapGrid>0&&(l=Math.round(l/a.snapGrid)*a.snapGrid,u=Math.round(u/a.snapGrid)*a.snapGrid),{x:l,y:u}}function Ao(e,t,r,n,o){let i={...re,...o},s=e,a=t;return r==="grow-horizontal"&&(s+=n),r==="shrink-horizontal"&&(s-=n),r==="grow-vertical"&&(a+=n),r==="shrink-vertical"&&(a-=n),s=Math.max(i.minWidth,s),a=Math.max(i.minHeight,a),i.maxWidth>0&&(s=Math.min(i.maxWidth,s)),i.maxHeight>0&&(a=Math.min(i.maxHeight,a)),{width:s,height:a}}function Wo(e,t,r,n,o=1){let i=e<o,s=e>=r-o,a=t<o,l=t>=n-o;if(a&&i)return "topLeft";if(a&&s)return "topRight";if(l&&i)return "bottomLeft";if(l&&s)return "bottomRight";if(a)return "top";if(l)return "bottom";if(i)return "left";if(s)return "right"}function Bo(e){if(e.length===0)return;let t=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,n=0,o=0;for(let i of e)t=Math.min(t,i.x),r=Math.min(r,i.y),n=Math.max(n,i.x+i.width),o=Math.max(o,i.y+i.height);return {x:t,y:r,width:n-t,height:o-r}}function Rs(e,t,r,n,o,i){return [{x:e,y:t,width:o,height:i},{x:r,y:n,width:o,height:i}]}var Ya=Object.freeze({createState:Re,createConfig:ho,createConstraints:xo,beginMove:vo,beginResize:Mo,updateMove:Co,updateResize:To,end:Eo,cancel:Po,detectHandle:Wo,mergeDirtyRects:Bo,keyboard:Object.freeze({move:ko,resize:Ao})});var Hs=z.object({emitters:z.function(),particles:z.function(),maxParticles:z.number().int().positive().optional(),archetypeName:z.string().optional()});function oe(e,t,r,n){if(!m$2(e,t,$$2))return -1;let o;if(n){let E=y$5(e,n);if(E===null)return -1;o=E;}else o=h$3(e);let i=Math.floor(Math.random()*r.chars.length),s=r.chars[i]??42;aa(e,o,{lifetime:$$2.lifetime[t],char:s,startFg:r.startFg,endFg:r.endFg??r.startFg,fadeOut:r.fadeOut??true,emitter:t});let a=Ga$1(e,t)?Ba$1.x[t]:0,l=Ga$1(e,t)?Ba$1.y[t]:0;Ca$1(e,o,a,l);let u=$$2.angle[t],p=$$2.spread[t],d=u+(Math.random()-.5)*p,b=$$2.speed[t],C=Math.cos(d)*b,T=Math.sin(d)*b;return v$2(e,o,C,T),pa(t,o),o}function Ro(e,t,r,n=1e3,o=0){if(!m$2(e,t,$$2))return [];let i=na(t);if(!i)return [];let s=r??$$2.burstCount[t],a=[];for(let l=0;l<s&&!(o+a.length>=n);l++){let u=oe(e,t,i);u!==-1&&a.push(u);}return a}function ie(e,t,r){if(!m$2(e,t,_$1))return;_$1.age[t]=_$1.age[t]+r;let n=_$1.emitter[t];if(n>0&&ka$1(e,n)){let o=$$2.gravity[n];o!==0&&y$2(e,t)&&(u$2.y[t]=u$2.y[t]+o*r);}}function ae(e,t,r){!Ga$1(e,t)||!y$2(e,t)||(Ba$1.x[t]=Ba$1.x[t]+u$2.x[t]*r,Ba$1.y[t]=Ba$1.y[t]+u$2.y[t]*r);}function se(e,t,r){let n=_$1.emitter[t];n>0&&qa$1(n,t),r?(n$2(e,t,_$1),z$4(e,r,t)):i$3(e,t);}function Fs(e,t){return !(!m$2(e,t,$$2)||$$2.active[t]!==1)}function Ds(e,t,r,n,o,i){let s=na(t);if(!s)return o;let a=$$2.rate[t];if(a<=0)return o;$$2.accumulator[t]=$$2.accumulator[t]+r;let l=1/a,u=o;for(;$$2.accumulator[t]>=l&&u<n;)$$2.accumulator[t]=$$2.accumulator[t]-l,oe(e,t,s,i)!==-1&&u++;return u}function zs(e,t,r,n,o,i){let s=o;for(let a of t)Fs(e,a)&&(s=Ds(e,a,r,n,s,i));return s}function ws(e,t,r,n){ca$1(e,t)&&(ie(e,t,r),ae(e,t,r),ea$1(e,t)&&se(e,t,n));}function Ys(e,t,r,n,o){for(let i=0;i<r;i++){let s=t[i];if(!s)continue;let a=s.particleId;ca$1(e,a)&&(o.add(a),ie(e,a,n),ae(e,a,n));}}function Os(e,t,r,n){for(let o=r-1;o>=0;o--){let i=t[o];if(!i)continue;let s=i.particleId;ca$1(e,s)?ea$1(e,s)&&se(e,s,n):qa$1(i.emitterId,s);}}function Ho(e){let t=Hs.parse(e),r=t.maxParticles??1e3,n=t.archetypeName,o=new Set;return i=>{let s=.016666666666666666,a=t.emitters(i),l=xa$1(),u=j$3(l),p=t.particles(i);zs(i,a,s,r,p.length,n),o.clear(),Ys(i,u,l.size,s,o),Os(i,u,l.size,n);for(let d of p)o.has(d)||ws(i,d,s,n);return i}}var Oa=Object.freeze({create:Ho,spawn:oe,burst:Ro,kill:se,age:ie,move:ae});function Fo(e=1){return t=>(l$4(e),t)}function Do(){let e=new Map;for(let t=1;t<=7;t++)e.set(t,r=>(l$4(t),r));return e}var Xa=Object.freeze({create:Fo,createForAllPhases:Do});var Ia=Object.freeze({create:ma,system:la,getBuffer:ha$1,setBuffer:ga$1,clearBuffer:ia,markAllDirty:pa$1,renderContent:ca,renderBackground:aa$1,renderBorder:ba$1,renderScrollbar:da,renderText:na$1,renderRect:oa,viewport:Object.freeze({getBounds:fa,setBounds:ea}),occlusion:Object.freeze({isEnabled:ka$2,set:ja$1})});var La=z.object({friction:z.number().min(0).max(1),minVelocity:z.number().nonnegative(),maxVelocity:z.number().positive(),sensitivity:z.number(),springStiffness:z.number().nonnegative(),springDamping:z.number().nonnegative(),maxOverscroll:z.number().nonnegative(),enableMomentum:z.boolean(),enableBounce:z.boolean()}),Va={friction:.92,minVelocity:.1,maxVelocity:200,sensitivity:1,springStiffness:.3,springDamping:.8,maxOverscroll:50,enableMomentum:true,enableBounce:true},P=m$1({iterable:true});function zo(e,t,r,n,o,i){let s=P.get(t);return s?(s.contentWidth=r,s.contentHeight=n,s.viewportWidth=o,s.viewportHeight=i):(s={scrollX:0,scrollY:0,velocityX:0,velocityY:0,contentWidth:r,contentHeight:n,viewportWidth:o,viewportHeight:i,isAnimating:false,isUserScrolling:false,targetX:null,targetY:null},P.set(t,s)),s}function wo(e,t){P.delete(t);}function Yo(){P.clear();}function Oo(e,t,r,n,o){let i={...Va,...o},s=La.parse(i),a=P.get(t);a&&(a.velocityX+=r*s.sensitivity,a.velocityY+=n*s.sensitivity,a.velocityX=Math.max(-s.maxVelocity,Math.min(s.maxVelocity,a.velocityX)),a.velocityY=Math.max(-s.maxVelocity,Math.min(s.maxVelocity,a.velocityY)),a.isAnimating=true,a.targetX=null,a.targetY=null);}function Xo(e,t,r,n){let o=P.get(t);o&&(o.targetX=r,o.targetY=n,o.isAnimating=true);}function Io(e,t,r,n){let o=P.get(t);o&&(o.scrollX=r,o.scrollY=n,o.velocityX=0,o.velocityY=0,o.targetX=null,o.targetY=null,o.isAnimating=false);}function Lo(e,t){let r=P.get(t);r&&(r.isUserScrolling=true,r.velocityX=0,r.velocityY=0);}function Vo(e,t,r,n){let o=P.get(t);o&&(o.isUserScrolling=false,o.velocityX=r,o.velocityY=n,o.isAnimating=Math.abs(r)>.1||Math.abs(n)>.1);}function Xs(e,t){let r=Math.max(0,e.contentWidth-e.viewportWidth),n=Math.max(0,e.contentHeight-e.viewportHeight);if(!t.enableBounce){e.scrollX=Math.max(0,Math.min(r,e.scrollX)),e.scrollY=Math.max(0,Math.min(n,e.scrollY));return}let o=e.scrollX<0?e.scrollX:e.scrollX>r?e.scrollX-r:0,i=e.scrollY<0?e.scrollY:e.scrollY>n?e.scrollY-n:0;Math.abs(o)>0&&!e.isUserScrolling&&(e.velocityX-=o*t.springStiffness,e.velocityX*=t.springDamping),Math.abs(i)>0&&!e.isUserScrolling&&(e.velocityY-=i*t.springStiffness,e.velocityY*=t.springDamping),e.scrollX=Math.max(-t.maxOverscroll,Math.min(r+t.maxOverscroll,e.scrollX)),e.scrollY=Math.max(-t.maxOverscroll,Math.min(n+t.maxOverscroll,e.scrollY));}function Is(e){if(!(e.targetX===null&&e.targetY===null)){if(e.targetX!==null){let t=e.targetX-e.scrollX;Math.abs(t)<.5?(e.scrollX=e.targetX,e.targetX=null,e.velocityX=0):e.velocityX=t*.15;}if(e.targetY!==null){let t=e.targetY-e.scrollY;Math.abs(t)<.5?(e.scrollY=e.targetY,e.targetY=null,e.velocityY=0):e.velocityY=t*.15;}}}function Ls(e,t){e.scrollX+=e.velocityX*t*60,e.scrollY+=e.velocityY*t*60;}function Vs(e,t){!t.enableMomentum||e.isUserScrolling||(e.velocityX*=t.friction,e.velocityY*=t.friction);}function qs(e,t){return Math.abs(e.velocityX)<t.minVelocity&&Math.abs(e.velocityY)<t.minVelocity&&e.targetX===null&&e.targetY===null}function Gs(e){e.velocityX=0,e.velocityY=0,e.isAnimating=false,e.scrollX=Math.round(e.scrollX),e.scrollY=Math.round(e.scrollY);let t=Math.max(0,e.contentWidth-e.viewportWidth),r=Math.max(0,e.contentHeight-e.viewportHeight);e.scrollX=Math.max(0,Math.min(t,e.scrollX)),e.scrollY=Math.max(0,Math.min(r,e.scrollY));}function He(e,t,r){let n={...Va,...r},o=La.parse(n);if(!e.isAnimating)return false;let i=e.scrollX,s=e.scrollY;return Is(e),Ls(e,t),Vs(e,o),Xs(e,o),qs(e,o)&&Gs(e),e.scrollX!==i||e.scrollY!==s}function qo(e,t){return P.get(t)?.isAnimating??false}function Go(e,t){let r=P.get(t);return r?{x:r.scrollX,y:r.scrollY}:null}function jo(e){let t=performance.now();return r=>{let n=performance.now(),o=Math.min((n-t)/1e3,1/15);return t=n,P.forEach(i=>{He(i,o,e);}),r}}var qa=Object.freeze({create:jo,scrollTo:Xo,scrollBy:Oo,setImmediate:Io,getPosition:Go,getState:zo,isScrolling:qo,removeState:wo,clearAll:Yo,updatePhysics:He,user:Object.freeze({start:Lo,end:Vo})});var js=z.object({cellSize:z.number().positive(),initialCapacity:z.number().int().positive()}),Fe=8,Us=.5;function _o(e){let t={cellSize:e?.cellSize??Fe,initialCapacity:e?.initialCapacity??256};return {cellSize:js.parse(t).cellSize,cells:new Map,entityCells:new Map}}function No(e,t){let r=e>=0?e*2:-e*2-1,n=t>=0?t*2:-t*2-1;return (r+n)*(r+n+1)/2+n}function Zo(e,t,r){return {cx:Math.floor(t/e.cellSize),cy:Math.floor(r/e.cellSize)}}function D(e,t,r,n,o=1,i=1){ue(e,t);let s=t,a=new Set,l=Math.floor(r/e.cellSize),u=Math.floor(n/e.cellSize),p=Math.floor((r+o-.001)/e.cellSize),d=Math.floor((n+i-.001)/e.cellSize);for(let b=l;b<=p;b++)for(let C=u;C<=d;C++){let T=No(b,C);a.add(T);let E=e.cells.get(T);E||(E=new Set,e.cells.set(T,E)),E.add(s);}e.entityCells.set(s,a);}function ue(e,t){let r=t,n=e.entityCells.get(r);if(n){for(let o of n){let i=e.cells.get(o);i&&(i.delete(r),i.size===0&&e.cells.delete(o));}e.entityCells.delete(r);}}function ce(e,t,r,n=1,o=1){let i=new Set,s=Math.floor(t/e.cellSize),a=Math.floor(r/e.cellSize),l=Math.floor((t+n-.001)/e.cellSize),u=Math.floor((r+o-.001)/e.cellSize);for(let p=s;p<=l;p++)for(let d=a;d<=u;d++){let b=No(p,d),C=e.cells.get(b);if(C)for(let T of C)i.add(T);}return i}function $o(e,t){let r=t,n=new Set,o=e.entityCells.get(r);if(!o)return n;for(let i of o){let s=e.cells.get(i);if(s)for(let a of s)a!==r&&n.add(a);}return n}function De(e,t,r){let n=No(t,r);return e.cells.get(n)??new Set}function Qo(e,t,r){let n=Math.floor(t/e.cellSize),o=Math.floor(r/e.cellSize);return De(e,n,o)}function ze(e){e.cells.clear(),e.entityCells.clear();}function Ko(e){let t=0,r=0;for(let o of e.cells.values())r+=o.size,o.size>t&&(t=o.size);let n=e.cells.size;return {cellCount:n,entityCount:e.entityCells.size,averageEntitiesPerCell:n>0?r/n:0,maxEntitiesInCell:t}}function me(e,t){ze(e);let r=o(t,[Ba$1,b$1]);for(let n of r){let o=Ba$1.x[n],i=Ba$1.y[n],s=b$1.width[n],a=b$1.height[n],l=b$1.offsetX[n],u=b$1.offsetY[n];D(e,n,o+l,i+u,s,a);}}function pe(e=Us){return {dirtyEntities:a(64),dirtyLookup:new Set,prevBounds:m$1({iterable:true}),initialized:false,dirtyThreshold:Math.max(0,Math.min(1,e))}}var le=null,k=pe();function Jo(e){e!==le&&(k.initialized=false,k.prevBounds.clear()),le=e;}function ei(){return le}function ti(){return k}function ri(e){let t=e;k.dirtyLookup.has(t)||(b$5(k.dirtyEntities,t),k.dirtyLookup.add(t));}function ni(){return k.dirtyEntities.size}function oi(){k=pe(k.dirtyThreshold);}function ii(e){k.dirtyThreshold=Math.max(0,Math.min(1,e));}function ai(e){let t=Ba$1.x[e]+b$1.offsetX[e],r=Ba$1.y[e]+b$1.offsetY[e],n=b$1.width[e],o=b$1.height[e];return {x:t,y:r,w:n,h:o}}function _s(e,t){for(let r of t){let{x:n,y:o,w:i,h:s}=ai(r),a=e.prevBounds.get(r);a?(a.x=n,a.y=o,a.w=i,a.h=s):e.prevBounds.set(r,{x:n,y:o,w:i,h:s});}}function Ns(e,t,r){let n=[];t.prevBounds.forEach((o,i)=>{r.has(i)||n.push(i);});for(let o of n)ue(e,o),t.prevBounds.delete(o);}function Zs(e,t){for(let r of t){let n=r,{x:o,y:i,w:s,h:a}=ai(r),l=e.prevBounds.get(r);(!l||o!==l.x||i!==l.y||s!==l.w||a!==l.h)&&(e.dirtyLookup.has(n)||(b$5(e.dirtyEntities,n),e.dirtyLookup.add(n))),l?(l.x=o,l.y=i,l.w=s,l.h=a):e.prevBounds.set(r,{x:o,y:i,w:s,h:a});}}function $s(e,t,r){let{data:n,size:o}=r;for(let i=0;i<o;i++){let s=n[i];if(s===void 0)continue;let a=s;if(!m$2(t,a,Ba$1)||!m$2(t,a,b$1))continue;let{x:l,y:u,w:p,h:d}=ai(a);D(e,a,l,u,p,d);}}function Qs(e,t,r,n){let o=t.dirtyEntities.size;o!==0&&(n>0&&o>t.dirtyThreshold*n?me(e,r):$s(e,r,t.dirtyEntities));}function we(e,t,r){let n=o(r,[Ba$1,b$1]);if(!t.initialized){me(e,r),_s(t,n),g$1(t.dirtyEntities),t.dirtyLookup.clear(),t.initialized=true;return}let o$1=new Set;for(let i of n)o$1.add(i);Ns(e,t,o$1),Zs(t,n),Qs(e,t,r,n.length),g$1(t.dirtyEntities),t.dirtyLookup.clear();}var Ye=e=>(le&&we(le,k,e),e);function si(){return Ye}var Ga=Object.freeze({create:si,createHash:_o,createState:pe,system:Ye,insert:D,remove:ue,getNearby:$o,getAtPoint:Qo,getInCell:De,queryArea:ce,clear:ze,rebuild:me,incrementalUpdate:we,markDirty:ri,getDirtyCount:ni,setDirtyThreshold:ii,getGrid:ei,setGrid:Jo,getState:ti,getStats:Ko,reset:oi,worldToCell:Zo,DEFAULT_CELL_SIZE:Fe});var j=1e4,g={targetX:new Float32Array(j),targetY:new Float32Array(j),stiffness:new Float32Array(j),damping:new Float32Array(j),precision:new Float32Array(j),active:new Uint8Array(j)},li={stiffness:180,damping:8,precision:.01},Oe={stiffness:100,damping:15,precision:.01},ui={stiffness:300,damping:20,precision:.01};function ci(e,t,r=Oe){let n=m$2(e,t,Ba$1),o=n?Ba$1.x[t]??0:0,i=n?Ba$1.y[t]??0:0;return n||(l$5(e,t,Ba$1),Ba$1.x[t]=0,Ba$1.y[t]=0,Ba$1.z[t]=0,Ba$1.absolute[t]=0),m$2(e,t,u$2)||(l$5(e,t,u$2),u$2.x[t]=0,u$2.y[t]=0,u$2.maxSpeed[t]=0,u$2.friction[t]=0),m$2(e,t,g)||l$5(e,t,g),g.targetX[t]=o,g.targetY[t]=i,g.stiffness[t]=r.stiffness,g.damping[t]=r.damping,g.precision[t]=r.precision,g.active[t]=0,t}function mi(e,t,r,n){m$2(e,t,g)&&(g.targetX[t]=r,g.targetY[t]=n,g.active[t]=1);}function pi(e,t){if(m$2(e,t,g))return {x:g.targetX[t]??0,y:g.targetY[t]??0}}function di(e,t){return m$2(e,t,g)&&g.active[t]===1}function Ks(e,t){if(g.active[e]===0)return;let r=Ba$1.x[e]??0,n=Ba$1.y[e]??0,o=g.targetX[e]??0,i=g.targetY[e]??0,s=g.stiffness[e]??100,a=g.damping[e]??15,l=g.precision[e]??.01,u=o-r,p=i-n,d=s*u,b=s*p,C=u$2.x[e]??0,T=u$2.y[e]??0,E=a*C,Ze=a*T,z=C+(d-E)*t,w=T+(b-Ze)*t;u$2.x[e]=z,u$2.y[e]=w,Ba$1.x[e]=r+z*t,Ba$1.y[e]=n+w*t;let $e=Math.sqrt(u*u+p*p),Y=Math.sqrt(z*z+w*w);$e<l&&Y<l&&(Ba$1.x[e]=o,Ba$1.y[e]=i,u$2.x[e]=0,u$2.y[e]=0,g.active[e]=0);}function fi(e,t){let r=Js(e);for(let n of r)Ks(n,t);return e}function Js(e){return o(e,[g,Ba$1,u$2])}var ja=Object.freeze({create:ci,system:fi,setTarget:mi,getTarget:pi,isActive:di,Spring:g,presets:Object.freeze({bouncy:li,smooth:Oe,snappy:ui})});var el=1e4;function tl(e=el){return {machineId:new Uint32Array(e),currentState:new Uint16Array(e),previousState:new Uint16Array(e),stateAge:new Float32Array(e)}}var R=tl(),Ua=new WeakSet,_a=null;function rl(e){return Ua.has(e)||(_a=p$2(e,q$2(()=>R)),Ua.add(e)),_a}function Xe(e){let t=rl(e);return Array.from(o(e,[t]))}function yi(){return R.stateAge}var de=e=>{let t=a$3(),r=Xe(e);for(let n of r){let o=R.stateAge[n]??0;R.stateAge[n]=o+t;}return e};function gi(){return de}function Si(e,t=0){e.registerSystem(2,de,t);}function bi(e,t){for(let r of e){let n=R.stateAge[r]??0;R.stateAge[r]=n+t;}}function hi(e){R.stateAge[e]=0;}function xi(e){return R.stateAge[e]??0}var Na=Object.freeze({create:gi,register:Si,system:de,query:Xe,updateAges:bi,getStateAge:xi,getAgeStore:yi,resetAge:hi});z.object({viewportWidth:z.number().int().positive(),viewportHeight:z.number().int().positive(),camera:z.object({x:z.number().finite(),y:z.number().finite()})});var H=null,Ie=null;function vi(e){H=e;}function Mi(){return H}function Ci(){return Ie}function Ti(){Ie=null;}function Ei(){H=null,Ie=null;}function Le(e,t){let r=[];for(let n=0;n<t;n++){let o=[];for(let i=0;i<e;i++)o.push({char:" ",fg:0,bg:0});r.push(o);}return {width:e,height:t,cells:r}}function nl(e,t,r,n){let o=" ",i=0,s=0;for(let a of e.layers){if(!a.visible)continue;let l=a.tiles[n*e.width+r];if(l===za$1)continue;let u=t.tiles[l];u&&(o=u.char,i=u.fg,s=u.bg);}return {char:o,fg:i,bg:s}}function ol(e,t,r,n,o,i){for(let s=0;s<i;s++){let a=n+s;if(a<0||a>=e.height)continue;let l=e.cells[a];if(l)for(let u=0;u<o;u++){let p=r+u;p<0||p>=e.width||(l[p]=t);}}}function il(e,t,r,n,o,i,s,a){let l=Math.max(0,Math.floor(-e/o)),u=Math.max(0,Math.floor(-t/i)),p=Math.min(r,Math.ceil((s-e)/o)),d=Math.min(n,Math.ceil((a-t)/i));return [l,u,p,d]}function Ve(e,t,r,n){let o=Ta$1.width[t],i=Ta$1.height[t],s=Ta$1.tileWidth[t],a=Ta$1.tileHeight[t],l=Ta$1.dataId[t],u=Ta$1.tilesetId[t],p=Ga$2.data.get(l),d=Aa$1.tilesets.get(u);if(!p||!d)return;let b=Ba$1.x[t],C=Ba$1.y[t],T=b-r,E=C-n,[Ze,z,w,$e]=il(T,E,o,i,s,a,e.width,e.height);for(let Y=z;Y<$e;Y++)for(let ye=Ze;ye<w;ye++){let es=nl(p,d,ye,Y),ts=Math.round(T+ye*s),rs=Math.round(E+Y*a);ol(e,es,ts,rs,s,a);}}function qe(e){if(!H)return null;let t=Le(H.viewportWidth,H.viewportHeight),r=o(e,[Ta$1,Ba$1]);for(let n of r)Ve(t,n,H.camera.x,H.camera.y);return Ie=t,t}var Ge=e=>(qe(e),e);function Pi(){return Ge}var Za=Object.freeze({create:Pi,system:Ge,renderAll:qe,renderToBuffer:Ve,getBuffer:Ci,clearBuffer:Ti,createEmptyBuffer:Le,getConfig:Mi,setConfig:vi,reset:Ei});var $a=Object.freeze({create:m$5,system:l$6,registerLineStore:e$3,unregisterLineStore:g$5,updateLineStore:h$4,getLineStore:f$5,getConfig:j$4,setConfig:i$4,clearConfig:k$3,getBuffer:c$3,setBuffer:b$6,clearBuffer:d$3,cleanupEntity:o$3,cleanup:n$3,LineRenderConfigSchema:a$8});function ki(){return {bounds:m$1({iterable:false})}}function Ue(e,t,r,n,o,i,s){let a=t.bounds.get(r);return a&&a.x===n&&a.y===o&&a.w===i&&a.h===s?false:(D(e,r,n,o,i,s),a?(a.x=n,a.y=o,a.w=i,a.h=s):t.bounds.set(r,{x:n,y:o,w:i,h:s}),true)}function Ai(e,t){e.bounds.delete(t);}function Wi(e){e.bounds.clear();}function fe(e,t){return ce(e,t.x,t.y,t.width,t.height)}var je=[];function Bi(e,t,r){let n=fe(e,t);je.length=0;for(let o of n)je.push(o);return {visible:je,total:r,culled:r-je.length}}function Ri(e,t){return r=>{let n=o(r,[Ba$1]);for(let o of n){let i=Ba$1.x[o],s=Ba$1.y[o],a=1,l=1;m$2(r,o,$$3)&&(a=$$3.width[o],l=$$3.height[o]),Ue(e,t,o,i,s,a,l);}return r}}function Hi(e,t){return r=>{let n=t();return fe(e,n),r}}var Qa=Object.freeze({create:Hi,createIncrementalSpatial:Ri,performCulling:Bi,queryVisible:fe,cache:Object.freeze({create:ki,clear:Wi,remove:Ai,updateIfMoved:Ue})});var al=z.object({maxWorkers:z.number().int().positive(),taskTimeout:z.number().positive(),enabled:z.boolean()});function sl(){try{let e=globalThis.require?.("os");if(e?.cpus)return Math.max(1,e.cpus().length-1)}catch{}return 2}var Ka={maxWorkers:sl(),taskTimeout:5e3,enabled:true},m=null,Fi=0;function Di(e){let t={...Ka,...e};return m={config:al.parse(t),queue:[],running:new Map,handlers:new Map,completedCount:0,cancelledCount:0,failedCount:0,totalDurationMs:0},Ne()}function zi(e,t){m&&m.handlers.set(e,t);}function wi(e,t,r="normal"){if(!m||!m.config.enabled)return ll(e,t);let n=`task-${Fi++}`,o={id:n,type:e,input:t,priority:r,queuedAt:Date.now()};return new Promise(i=>{if(!m){i({id:n,type:e,output:void 0,cancelled:false,error:"Worker pool not initialized",durationMs:0});return}let s=m.handlers.get(e);if(!s){i({id:n,type:e,output:void 0,cancelled:false,error:`No handler registered for task type: ${e}`,durationMs:0});return}let a={task:o,resolve:i,handler:s,timerHandle:null},l={high:0,normal:1,low:2},u=l[r],p=m.queue.length;for(let d=0;d<m.queue.length;d++){let b=m.queue[d];if(b&&l[b.task.priority]>u){p=d;break}}m.queue.splice(p,0,a),queueMicrotask(()=>dl());})}function Yi(e){if(!m)return false;let t=m.queue.findIndex(r=>r.task.id===e);if(t>=0){let[r]=m.queue.splice(t,1);return r?(r.resolve({id:e,type:r.task.type,output:void 0,cancelled:true,error:void 0,durationMs:0}),m.cancelledCount++,true):false}return false}function Oi(e){if(!m)return 0;let t=0,r=[];for(let n of m.queue)n.task.type===e?(n.resolve({id:n.task.id,type:e,output:void 0,cancelled:true,error:void 0,durationMs:0}),t++):r.push(n);return m.queue=r,m.cancelledCount+=t,t}function Ne(){if(!m)return {config:Ka,stats:{activeWorkers:0,idleWorkers:0,queuedTasks:0,runningTasks:0,completedTasks:0,cancelledTasks:0,failedTasks:0,avgDurationMs:0,enabled:false}};let e=m.completedCount+m.failedCount;return {config:m.config,stats:{activeWorkers:m.running.size,idleWorkers:Math.max(0,m.config.maxWorkers-m.running.size),queuedTasks:m.queue.length,runningTasks:m.running.size,completedTasks:m.completedCount,cancelledTasks:m.cancelledCount,failedTasks:m.failedCount,avgDurationMs:e>0?m.totalDurationMs/e:0,enabled:m.config.enabled}}}function Xi(){if(m){for(let e of m.queue)e.resolve({id:e.task.id,type:e.task.type,output:void 0,cancelled:true,error:void 0,durationMs:0});for(let e of m.running.values())e.timerHandle&&clearTimeout(e.timerHandle);m=null,Fi=0;}}function ll(e,t){let r=`sync-${Fi++}`,n=m?.handlers.get(e);if(!n)return Promise.resolve({id:r,type:e,output:void 0,cancelled:false,error:`No handler registered for task type: ${e}`,durationMs:0});let o=performance.now();try{let i=n(t);return Promise.resolve({id:r,type:e,output:i,cancelled:!1,error:void 0,durationMs:performance.now()-o})}catch(i){return Promise.resolve({id:r,type:e,output:void 0,cancelled:false,error:i instanceof Error?i.message:String(i),durationMs:performance.now()-o})}}function ul(e,t){t<=0||(e.timerHandle=setTimeout(()=>{m&&(m.running.delete(e.task.id),m.failedCount++,e.resolve({id:e.task.id,type:e.task.type,output:void 0,cancelled:false,error:`Task timed out after ${t}ms`,durationMs:t}));},t));}function cl(e,t,r){m&&m.running.has(e.task.id)&&(e.timerHandle&&clearTimeout(e.timerHandle),m.running.delete(e.task.id),m.completedCount++,m.totalDurationMs+=r,e.resolve({id:e.task.id,type:e.task.type,output:t,cancelled:false,error:void 0,durationMs:r}));}function ml(e,t,r){m&&m.running.has(e.task.id)&&(e.timerHandle&&clearTimeout(e.timerHandle),m.running.delete(e.task.id),m.failedCount++,m.totalDurationMs+=r,e.resolve({id:e.task.id,type:e.task.type,output:void 0,cancelled:false,error:t instanceof Error?t.message:String(t),durationMs:r}));}function pl(e){if(!m)return;ul(e,m.config.taskTimeout);let t=performance.now();try{let r=e.handler(e.task.input),n=performance.now()-t;cl(e,r,n);}catch(r){let n=performance.now()-t;ml(e,r,n);}}function dl(){if(m)for(;m.queue.length>0&&m.running.size<m.config.maxWorkers;){let e=m.queue.shift();if(!e)break;m.running.set(e.task.id,e),pl(e);}}var Ja=Object.freeze({create:Di,destroy:Xi,submit:wi,cancel:Yi,cancelAllOfType:Oi,registerHandler:zi,getState:Ne});export{Fe as DEFAULT_CELL_SIZE,g as Spring,ie as ageParticle,Ea as animation,Oo as applyScrollImpulse,jn as areColliding,vo as beginMove,Mo as beginResize,Pa as behavior,Ro as burstParticles,ka as camera,Q as cameraSystem,Oi as cancelAllOfType,Po as cancelMoveOrResize,Yi as cancelTask,Yo as clearAllScrollStates,eo as clearDragConstraints,Wi as clearPositionCache,ze as clearSpatialHash,Ti as clearTileMapRenderBuffer,Aa as collision,K as collisionSystem,Wa as constraintLayout,kn as createBehaviorSystem,An as createCameraSystem,Xn as createCollisionSystem,ro as createDragSystem,Le as createEmptyBuffer,io as createFrameBudgetManager,Ri as createIncrementalSpatialSystem,yo as createMovementSystem,xo as createPanelConstraints,ho as createPanelMoveConfig,Re as createPanelMoveState,Ho as createParticleSystem,ki as createPositionCache,Fo as createReactiveSystem,Do as createReactiveSystemsForAllPhases,jo as createSmoothScrollSystem,_o as createSpatialHash,si as createSpatialHashSystem,pe as createSpatialHashSystemState,ci as createSpring,gi as createStateMachineSystem,Pi as createTilemapRenderSystem,Hi as createVisibilityCullingSystem,Di as createWorkerPool,mo as destroyFrameBudgetManager,Xi as destroyWorkerPool,Te as detectCollisions,Wo as detectResizeHandle,Ba as drag,Eo as endMoveOrResize,Vo as endUserScroll,po as exportFrameBudgetMetrics,Un as fixed,Ra as focus,Ha as frameBudget,Dn as getActiveCollisionCount,zn as getActiveCollisions,wn as getActiveTriggerCount,Yn as getActiveTriggers,qn as getCollidingEntities,Fn as getCollisionEventBus,ke as getDragConstraints,Ae as getDragVerifyCallback,Qo as getEntitiesAtPoint,De as getEntitiesInCell,J as getFrameBudgetStats,$o as getNearbyEntities,Go as getScrollPosition,zo as getScrollState,ni as getSpatialDirtyCount,ei as getSpatialHashGrid,Ko as getSpatialHashStats,ti as getSpatialHashSystemState,pi as getSpringTarget,yi as getStateAgeStore,xi as getSystemStateAge,Ci as getTileMapRenderBuffer,Mi as getTileMapRendererConfig,Gn as getTriggerZones,Ne as getWorkerPoolState,fo as hasMovementSystem,we as incrementalSpatialUpdate,Fa as input,D as insertEntity,Ln as isColliding,Vn as isInTrigger,qo as isScrolling,di as isSpringActive,ko as keyboardMove,Ao as keyboardResize,se as killParticle,Da as layout,Qn as layoutHorizontal,Kn as layoutVertical,ri as markSpatialDirty,Zn as max,Bo as mergeDirtyRects,Nn as min,ae as moveParticle,za as movement,ee as movementSystem,uo as onBudgetAlert,wa as output,Ya as panelMove,Oa as particle,_n as percentage,Bi as performCulling,lo as profiledSystem,ce as queryArea,$ as queryCameras,Ce as queryColliders,Be as queryMovement,Xe as queryStateMachine,fe as queryVisibleEntities,$n as ratio,Xa as reactive,me as rebuildSpatialHash,We as recordFrameBudgetSystemTime,so as recordFrameTime,ao as recordPhaseTime,Wn as registerCameraSystem,In as registerCollisionSystem,go as registerMovementSystem,Si as registerStateMachineSystem,zi as registerTaskHandler,ue as removeEntityFromGrid,Ai as removeFromCache,wo as removeScrollState,Ia as render,qe as renderAllTileMaps,Ve as renderTileMapToBuffer,On as resetCollisionState,no as resetDragStores,co as resetFrameBudget,oi as resetSpatialHashState,hi as resetStateAge,Ei as resetTileMapRenderer,Jn as setDragConstraints,to as setDragVerifyCallback,Io as setScrollImmediate,ii as setSpatialDirtyThreshold,Jo as setSpatialHashGrid,mi as setSpringTarget,vi as setTileMapRendererConfig,qa as smoothScroll,Xo as smoothScrollTo,Ga as spatialHash,Ye as spatialHashSystem,oe as spawnParticle,ja as spring,li as springBouncy,Oe as springSmooth,ui as springSnappy,fi as springSystem,Lo as startUserScroll,Na as stateMachine,de as stateMachineSystem,wi as submitTask,Za as tilemap,Ge as tilemapRenderSystem,Bn as updateCameras,Ue as updateEntityIfMoved,Co as updateMove,So as updateMovements,To as updateResize,He as updateScrollPhysics,bi as updateStateAges,$a as virtualizedRender,Qa as visibility,Ja as workerPool,Zo as worldToCell};
|