blecsd 0.2.0 → 0.3.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 (107) hide show
  1. package/LICENSE +4 -2
  2. package/README.md +168 -65
  3. package/dist/3d/index.d.ts +2 -2
  4. package/dist/3d/index.js +1 -1
  5. package/dist/audio/index.d.ts +2 -2
  6. package/dist/{border-D_Jb4ZJV.d.ts → border-Jb7TrMob.d.ts} +20 -10
  7. package/dist/chunk-2IEMMRUO.js +1 -0
  8. package/dist/chunk-3AV52GY5.js +1 -0
  9. package/dist/chunk-3LHLSY3Y.js +1 -0
  10. package/dist/chunk-3O4TQHGK.js +4 -0
  11. package/dist/chunk-3UJWZ5ZN.js +1 -0
  12. package/dist/chunk-5N3O25O7.js +1 -0
  13. package/dist/chunk-6M2J5QUA.js +1 -0
  14. package/dist/chunk-7IQEUVGF.js +1 -0
  15. package/dist/chunk-A6M6TFBL.js +1 -0
  16. package/dist/chunk-CUEUJAHK.js +3 -0
  17. package/dist/chunk-D42Q2KKR.js +1 -0
  18. package/dist/chunk-DYEXOFUU.js +2 -0
  19. package/dist/chunk-DYU72XLL.js +1 -0
  20. package/dist/chunk-E4CJRSND.js +1 -0
  21. package/dist/chunk-FCMTWFSE.js +1 -0
  22. package/dist/chunk-FL56THSI.js +25 -0
  23. package/dist/{chunk-2UBBZFE4.js → chunk-G437VE43.js} +1 -1
  24. package/dist/chunk-GGXNWT36.js +8 -0
  25. package/dist/chunk-HLFORKXS.js +1 -0
  26. package/dist/chunk-J7MBKEBY.js +1 -0
  27. package/dist/{chunk-TYMY2TBR.js → chunk-JHCKPCUH.js} +3 -3
  28. package/dist/chunk-LDAFEXN5.js +1 -0
  29. package/dist/chunk-MKMFUXLB.js +33 -0
  30. package/dist/chunk-MQWPHPUM.js +1 -0
  31. package/dist/chunk-MTI376CU.js +5 -0
  32. package/dist/chunk-MTV2RJZD.js +1 -0
  33. package/dist/chunk-NPDPBAW6.js +4 -0
  34. package/dist/chunk-OR3BZY7C.js +1 -0
  35. package/dist/{chunk-VNZ6CWJA.js → chunk-R7AICVRN.js} +2 -2
  36. package/dist/{chunk-3B7MIVW6.js → chunk-RZ7FGVI6.js} +1 -1
  37. package/dist/chunk-UMGTXSQB.js +11 -0
  38. package/dist/chunk-X3Q3T2SS.js +4 -0
  39. package/dist/{chunk-JKVHO4LH.js → chunk-XZJRWFOS.js} +1 -1
  40. package/dist/chunk-ZAHG7Y3X.js +1 -0
  41. package/dist/cli/init.d.ts +1 -1
  42. package/dist/{componentStorage-DTkj1Qyj.d.ts → componentStorage-CJTh-TPO.d.ts} +1 -1
  43. package/dist/components/index.d.ts +1942 -515
  44. package/dist/components/index.js +1 -1
  45. package/dist/core/index.d.ts +634 -69
  46. package/dist/core/index.js +1 -1
  47. package/dist/debug/index.d.ts +491 -98
  48. package/dist/debug/index.js +1 -1
  49. package/dist/dirtyTracking-C4v8MmM9.d.ts +235 -0
  50. package/dist/errors/index.d.ts +12 -12
  51. package/dist/errors/index.js +1 -1
  52. package/dist/{events-BbbxkgvX.d.ts → events-9ForpTfM.d.ts} +75 -2
  53. package/dist/game/index.d.ts +7 -7
  54. package/dist/game/index.js +1 -1
  55. package/dist/{gameLoop-BIPW7-OY.d.ts → gameLoop-C-Ez_i54.d.ts} +2 -2
  56. package/dist/{index-zSGJ2eUk.d.ts → index-DBS5Uefn.d.ts} +2 -2
  57. package/dist/index.d.ts +282 -21
  58. package/dist/index.js +3 -1
  59. package/dist/input/index.d.ts +1 -1
  60. package/dist/input/index.js +1 -1
  61. package/dist/{inputActions-CefRUBuT.d.ts → inputActions-CRsUtTHM.d.ts} +10 -721
  62. package/dist/{packedStore-480t2X74.d.ts → packedStore-BgvnEdE7.d.ts} +1 -1
  63. package/dist/{renderable-jTMOA-GK.d.ts → renderable-CwqGwrEV.d.ts} +9 -9
  64. package/dist/{scheduler-DcfoFuum.d.ts → scheduler-CMcYew9Z.d.ts} +65 -3
  65. package/dist/systems/index.d.ts +125 -36
  66. package/dist/systems/index.js +1 -1
  67. package/dist/terminal/index.d.ts +2233 -2299
  68. package/dist/terminal/index.js +1 -1
  69. package/dist/{tilemap-j0twN9-y.d.ts → tilemap-BirMJdbu.d.ts} +2 -2
  70. package/dist/{types-BcsvoKzf.d.ts → types-CPB4CpbH.d.ts} +2 -2
  71. package/dist/utils/index.d.ts +26 -25
  72. package/dist/utils/index.js +1 -1
  73. package/dist/{virtualScrollback-DvZTRU8a.d.ts → virtualScrollback-D9uLFe8l.d.ts} +4 -4
  74. package/dist/{virtualViewport-Dx2iJliO.d.ts → virtualViewport-Bpv6jlKt.d.ts} +283 -761
  75. package/dist/widgets/bigText.d.ts +1 -1
  76. package/dist/widgets/bigText.js +1 -1
  77. package/dist/widgets/index.d.ts +10519 -5463
  78. package/dist/widgets/index.js +1 -1
  79. package/package.json +102 -6
  80. package/dist/chunk-35I22JJO.js +0 -1
  81. package/dist/chunk-3APDF6RW.js +0 -1
  82. package/dist/chunk-3EGGGI5J.js +0 -3
  83. package/dist/chunk-4GISPPOH.js +0 -33
  84. package/dist/chunk-4X4N4HNQ.js +0 -2
  85. package/dist/chunk-6N6BRCEM.js +0 -4
  86. package/dist/chunk-AXZQAH4X.js +0 -1
  87. package/dist/chunk-BCADUCOZ.js +0 -1
  88. package/dist/chunk-EJ5WVDDZ.js +0 -6
  89. package/dist/chunk-FMFEOAML.js +0 -1
  90. package/dist/chunk-FYEBZAWN.js +0 -1
  91. package/dist/chunk-GYHI26UE.js +0 -1
  92. package/dist/chunk-H2YAOJDW.js +0 -1
  93. package/dist/chunk-JUWDTH25.js +0 -1
  94. package/dist/chunk-K2B2OXQ5.js +0 -5
  95. package/dist/chunk-KD55INV7.js +0 -1
  96. package/dist/chunk-KFAK4A3G.js +0 -1
  97. package/dist/chunk-LB3JA744.js +0 -19
  98. package/dist/chunk-LCN2ZITE.js +0 -1
  99. package/dist/chunk-P6CJO3BC.js +0 -1
  100. package/dist/chunk-PSXXMBVJ.js +0 -1
  101. package/dist/chunk-VCW7EOZ4.js +0 -12
  102. package/dist/chunk-W5OU7Z6J.js +0 -1
  103. package/dist/chunk-WHF27JF3.js +0 -4
  104. package/dist/chunk-WNG4A3K7.js +0 -4
  105. package/dist/chunk-WY3KY2TR.js +0 -1
  106. package/dist/chunk-XZA63ZPO.js +0 -1
  107. package/dist/{keyParser-Bwm8-l7v.d.ts → keyParser-BnHbg2iD.d.ts} +1 -1
@@ -1 +1 @@
1
- export{Ud as BorderConfigSchema,b as Box,a as BoxConfigSchema,Bb as CLOSE_BUTTON_CHAR,Cb as COLLAPSE_CHAR,L as DEFAULT_CURSOR_OFFSET_X,M as DEFAULT_CURSOR_OFFSET_Y,K as DEFAULT_HIDE_DELAY,ma as DEFAULT_HORIZONTAL_CHAR,J as DEFAULT_HOVER_DELAY,oa as DEFAULT_LINE_LENGTH,Ia as DEFAULT_LOADING_BG,Ha as DEFAULT_LOADING_FG,ab as DEFAULT_MESSAGE_PADDING,bb as DEFAULT_MESSAGE_STYLES,$a as DEFAULT_MESSAGE_TIMEOUT,Ab as DEFAULT_PANEL_TITLE,Pb as DEFAULT_PROMPT_BG,Ob as DEFAULT_PROMPT_FG,Rb as DEFAULT_PROMPT_HEIGHT,Qb as DEFAULT_PROMPT_WIDTH,bc as DEFAULT_QUESTION_BG,ac as DEFAULT_QUESTION_FG,dc as DEFAULT_QUESTION_HEIGHT,cc as DEFAULT_QUESTION_WIDTH,yc as DEFAULT_TAB_POSITION,O as DEFAULT_TOOLTIP_BG,P as DEFAULT_TOOLTIP_BORDER,N as DEFAULT_TOOLTIP_FG,na as DEFAULT_VERTICAL_CHAR,Db as EXPAND_CHAR,C as FileManager,B as FileManagerConfigSchema,Z as Image,Y as ImageConfigSchema,ea as Layout,da as LayoutConfigSchema,qa as Line,pa as LineConfigSchema,Ea as ListTableWidgetConfigSchema,xa as ListWidgetConfigSchema,Aa as ListbarWidgetConfigSchema,Ka as LoadingConfigSchema,Ja as LoadingStyleConfigSchema,Ta as Log,Sa as LogConfigSchema,Hd as MPLAYER_SEARCH_PATHS,Gd as MPV_SEARCH_PATHS,cb as Message,_a as MessageConfigSchema,pb as Modal,ob as ModalConfigSchema,Fb as Panel,Eb as PanelConfigSchema,Vb as Prompt,Sb as PromptBorderConfigSchema,Ub as PromptConfigSchema,Tb as PromptPaddingConfigSchema,fc as Question,ec as QuestionConfigSchema,oc as ScrollableBox,nc as ScrollableBoxConfigSchema,dd as SplitPane,cd as SplitPaneConfigSchema,md as StreamingTextConfigSchema,Ac as TAB_CLOSE_CHAR,zc as TAB_SEPARATOR,vc as TableWidgetConfigSchema,Cc as Tabs,Bc as TabsConfigSchema,xd as Terminal,wd as TerminalConfigSchema,Lc as Text,Kc as TextConfigSchema,Rc as TreeWidgetConfigSchema,Fd as Video,Ed as VideoConfigSchema,Vc as Viewport3DTag,Vd as VirtualizedListConfigSchema,Td as VirtualizedListStyleSchema,qd as appendToState,ic as ask,Kd as buildMplayerArgs,Jd as buildMpvArgs,Ld as buildPlayerArgs,ha as calculateFlexLayout,ga as calculateGridLayout,fa as calculateInlineLayout,V as clearAllHoverText,S as clearHoverText,t as clearLines,rd as clearState,tb as closeAllModals,sb as closeModal,jc as confirm,c as createBox,E as createFileManager,Q as createHoverTextManager,_ as createImage,ia as createLayout,ra as createLine,ya as createList,Fa as createListTable,Ca as createListbar,La as createLoading,Ua as createLog,db as createMessage,qb as createModal,Gb as createPanel,Xb as createPrompt,hc as createQuestion,pc as createScrollableBox,uc as createScrollableText,hd as createSharedTextBuffer,ed as createSplitPane,pd as createStreamingState,vd as createStreamingText,wc as createTable,Dc as createTabs,yd as createTerminal,Mc as createText,Tc as createTree,Od as createVideo,Wc as createViewport3D,Wd as createVirtualizedList,Yc as createWidgetRegistry,_c as defaultRegistry,s as deleteBottom,q as deleteLine,r as deleteTop,Id as detectVideoPlayer,D as fileManagerStateMap,Fc as getActiveTabIndex,l as getBaseLine,e as getBoxContent,kd as getDividerRenderInfo,T as getHoverText,W as getHoverTextCount,aa as getImageBitmap,ba as getImageCellMap,ka as getLayoutMode,j as getLine,ta as getLineChar,i as getLineCount,va as getLineOrientation,h as getLines,vb as getModalStack,Ib as getPanelTitle,Lb as getPanelTitleAlign,Ya as getScrollback,id as getSharedTextBuffer,gd as getSplitDirection,sd as getStreamVisibleLines,Gc as getTabCount,Hc as getTabPosition,Oc as getTextContent,Qd as getVideoPlaybackState,Rd as getVideoPlayer,$c as getWidgetTypes,bd as getWidgetsByTag,F as handleFileManagerKey,lb as handleMessageClick,mb as handleMessageKey,yb as handleModalBackdropClick,zb as handleModalEscape,$b as handlePromptKey,lc as handleQuestionKey,zd as handleTerminalKey,Xd as handleVirtualizedListKey,Yd as handleVirtualizedListWheel,U as hasHoverText,Na as hideLoading,jd as hitTestDivider,p as insertBottom,n as insertLine,o as insertTop,f as isBox,jb as isDismissOnClick,kb as isDismissOnKey,G as isFileManager,$ as isImage,sc as isKeysScrollEnabled,ja as isLayout,sa as isLine,Ga as isListTableWidget,za as isListWidget,Da as isListbarWidget,Pa as isLoadingWidget,Va as isLog,Xa as isLogKeysScrollEnabled,Wa as isLogMouseScrollEnabled,ib as isMessage,wb as isModal,ub as isModalOpen,rc as isMouseScrollEnabled,Hb as isPanel,Kb as isPanelCollapsed,Zb as isPrompt,kc as isQuestion,qc as isScrollableBox,qc as isScrollableText,fd as isSplitPane,xc as isTableWidget,Ec as isTabs,Ad as isTerminal,Cd as isTerminalKeysEnabled,Bd as isTerminalMouseEnabled,Pc as isText,Uc as isTreeWidget,Pd as isVideo,Xc as isViewport3DWidget,Zd as isVirtualizedList,ad as isWidgetType,rb as openModal,w as popLine,Yb as prompt,Wb as promptStateMap,v as pushLine,gc as questionStateMap,Zc as registerBuiltinWidgets,Mb as renderPanelTitleBar,Ic as renderTabBar,z as replaceLines,g as resetBoxStore,H as resetFileManagerStore,X as resetHoverTextStore,ca as resetImageStore,la as resetLayoutStore,wa as resetLineStore,Ba as resetListbarStore,Ra as resetLoadingStore,Za as resetLogStore,nb as resetMessageStore,xb as resetModalStore,Nb as resetPanelStore,_b as resetPromptStore,mc as resetQuestionStore,tc as resetScrollableBoxStore,ld as resetSplitPaneStore,Jc as resetTabsStore,Dd as resetTerminalStore,Qc as resetTextStore,Sc as resetTreeStore,Sd as resetVideoStore,ud as scrollByLines,td as scrollToLine,Md as sendPauseCommand,Nd as sendSeekCommand,m as setBaseLine,d as setBoxContent,R as setHoverText,k as setLine,ua as setLineChar,u as setLines,Oa as setLoadingMessage,Jb as setPanelTitle,I as setReadDirFn,Nc as setTextContent,x as shiftLine,gb as showError,eb as showInfo,Ma as showLoading,hb as showSuccess,fb as showWarning,A as spliceLines,od as stripAnsiSequences,y as unshiftLine,Qa as updateLoadingAnimation,nd as wrapLine}from'../chunk-LB3JA744.js';import'../chunk-35I22JJO.js';import'../chunk-4LWWONFK.js';import'../chunk-AXZQAH4X.js';export{b as BigText,a as BigTextConfigSchema,e as createBigText,g as isBigText,h as resetBigTextStore,f as setText}from'../chunk-3EGGGI5J.js';export{b as BitmapFontSchema,a as CharBitmapSchema,c as createFontNotFoundError,f as getCharBitmap,d as loadFont,g as renderChar}from'../chunk-DNRXW56C.js';import'../chunk-LYSK5S63.js';import'../chunk-6N6BRCEM.js';import'../chunk-TWSWTBYL.js';import'../chunk-AEJIX2MW.js';import'../chunk-C5PCEQ6G.js';import'../chunk-TYMY2TBR.js';import'../chunk-VOCM5T2G.js';import'../chunk-XZA63ZPO.js';import'../chunk-KFAK4A3G.js';import'../chunk-BCADUCOZ.js';import'../chunk-EAY7B5GL.js';import'../chunk-K3SX2LY5.js';import'../chunk-PSXXMBVJ.js';import'../chunk-LCN2ZITE.js';import'../chunk-FYEBZAWN.js';import'../chunk-W5OU7Z6J.js';import'../chunk-Z4EZERNE.js';import'../chunk-WNG4A3K7.js';import'../chunk-SHUC6JWA.js';import'../chunk-G7GIWWLE.js';import'../chunk-PXXGH3BV.js';import'../chunk-5PELJRUQ.js';
1
+ export{x as Accordion,k as AccordionConfigSchema,y as Autocomplete,z as AutocompleteConfigSchema,D as BRAILLE_BASE,E as BRAILLE_DOTS,U as BarChart,T as BarChartConfigSchema,Rg as BorderConfigSchema,e as Box,d as BoxConfigSchema,Z as ButtonWidgetComponent,Y as ButtonWidgetConfigSchema,M as CHART_COLORS,Ud as CLOSE_BUTTON_CHAR,Vd as COLLAPSE_CHAR,ia as Canvas,ja as CanvasConfigSchema,va as CheckboxWidgetComponent,ua as CheckboxWidgetConfigSchema,l as CollapsibleConfigSchema,Ca as CommandPalette,Da as CommandPaletteConfigSchema,ac as DEFAULT_CURSOR_OFFSET_X,bc as DEFAULT_CURSOR_OFFSET_Y,$b as DEFAULT_HIDE_DELAY,Dc as DEFAULT_HORIZONTAL_CHAR,_b as DEFAULT_HOVER_DELAY,Fc as DEFAULT_LINE_LENGTH,$c as DEFAULT_LOADING_BG,_c as DEFAULT_LOADING_FG,td as DEFAULT_MESSAGE_PADDING,ud as DEFAULT_MESSAGE_STYLES,sd as DEFAULT_MESSAGE_TIMEOUT,Td as DEFAULT_PANEL_TITLE,le as DEFAULT_PROMPT_BG,ke as DEFAULT_PROMPT_FG,ne as DEFAULT_PROMPT_HEIGHT,me as DEFAULT_PROMPT_WIDTH,ze as DEFAULT_QUESTION_BG,ye as DEFAULT_QUESTION_FG,Be as DEFAULT_QUESTION_HEIGHT,Ae as DEFAULT_QUESTION_WIDTH,$a as DEFAULT_TAB_POSITION,qg as DEFAULT_TOAST_PADDING,sg as DEFAULT_TOAST_STYLES,pg as DEFAULT_TOAST_TIMEOUT,dc as DEFAULT_TOOLTIP_BG,ec as DEFAULT_TOOLTIP_BORDER,cc as DEFAULT_TOOLTIP_FG,Ec as DEFAULT_VERTICAL_CHAR,lb as DevTools,mb as DevToolsConfigSchema,Wd as EXPAND_CHAR,rb as FileManager,qb as FileManagerConfigSchema,yb as FlexContainer,zb as FlexContainerConfigSchema,Eb as Footer,Fb as FooterConfigSchema,Ib as FormComponent,Hb as FormWidgetConfigSchema,Nb as Gauge,Mb as GaugeConfigSchema,Rb as Grid,Sb as GridConfigSchema,R as HORIZONTAL_BLOCKS,Xb as Header,Yb as HeaderConfigSchema,oc as Image,nc as ImageConfigSchema,vc as Layout,uc as LayoutConfigSchema,Hc as Line,Pc as LineChart,Oc as LineChartConfigSchema,Gc as LineConfigSchema,Xc as ListTableWidgetConfigSchema,za as ListWidgetConfigSchema,Tc as ListbarWidgetConfigSchema,bd as LoadingConfigSchema,ad as LoadingStyleConfigSchema,kd as Log,jd as LogConfigSchema,Eg as MPLAYER_SEARCH_PATHS,Dg as MPV_SEARCH_PATHS,vd as Message,rd as MessageConfigSchema,Id as Modal,Hd as ModalConfigSchema,Yd as Panel,Xd as PanelConfigSchema,ge as ProgressBarComponent,fe as ProgressBarWidgetConfigSchema,re as Prompt,oe as PromptBorderConfigSchema,qe as PromptConfigSchema,pe as PromptPaddingConfigSchema,Wf as PtyOptionsSchema,De as Question,Ce as QuestionConfigSchema,Oe as RadioButtonWidgetComponent,Me as RadioButtonWidgetConfigSchema,Ne as RadioGroupWidgetComponent,Le as RadioGroupWidgetConfigSchema,Ve as ScrollableBox,Ue as ScrollableBoxConfigSchema,rf as Sparkline,qf as SparklineConfigSchema,wf as SplitPane,vf as SplitPaneConfigSchema,gg as StopwatchComponent,eg as StopwatchConfigSchema,Ff as StreamingTextConfigSchema,Qf as Switch,Pf as SwitchConfigSchema,bb as TAB_CLOSE_CHAR,ab as TAB_SEPARATOR,rg as TOAST_STACK_SPACING,af as TableWidgetConfigSchema,db as Tabs,cb as TabsConfigSchema,Yf as Terminal,Xf as TerminalConfigSchema,ca as Text,ba as TextConfigSchema,fg as TimerComponent,dg as TimerConfigSchema,tg as Toast,og as ToastConfigSchema,df as TreeWidgetConfigSchema,S as VERTICAL_BLOCKS,Cg as Video,Bg as VideoConfigSchema,hf as Viewport3DTag,Sg as VirtualizedListConfigSchema,Qg as VirtualizedListStyleSchema,Bb as addFlexChild,Ub as addToGrid,Jf as appendToState,Ge as ask,F as brailleChar,Hg as buildMplayerArgs,Gg as buildMpvArgs,Ig as buildPlayerArgs,yc as calculateFlexLayout,xc as calculateGridLayout,wc as calculateInlineLayout,H as calculateTickInterval,kc as clearAllHoverText,pa as clearCanvas,hc as clearHoverText,Ta as clearLines,Kf as clearState,Md as closeAllModals,Ld as closeModal,r as collapseAllSections,G as combineBrailleDots,He as confirm,n as createAccordion,A as createAutocomplete,V as createBarChart,f as createBox,_ as createButton,ra as createCanvas,wa as createCheckbox,t as createCollapsible,Fa as createCommandPalette,nb as createDevTools,tb as createFileManager,Ab as createFlexContainer,Gb as createFooter,Jb as createForm,Ob as createGauge,Tb as createGrid,Zb as createHeader,fc as createHoverTextManager,pc as createImage,zc as createLayout,Ic as createLine,Qc as createLineChart,Aa as createList,Yc as createListTable,Vc as createListbar,cd as createLoading,ld as createLog,wd as createMessage,Jd as createModal,Zd as createPanel,he as createProgressBar,te as createPrompt,Fe as createQuestion,Qe as createRadioButton,Pe as createRadioGroup,We as createScrollableBox,$e as createScrollableText,Af as createSharedTextBuffer,sf as createSparkline,xf as createSplitPane,ig as createStopwatch,If as createStreamingState,Of as createStreamingText,Rf as createSwitch,bf as createTable,eb as createTabs,Zf as createTerminal,da as createText,hg as createTimer,ug as createToast,ff as createTree,Lg as createVideo,if as createViewport3D,Tg as createVirtualizedList,kf as createWidgetRegistry,mf as defaultRegistry,Sa as deleteBottom,Qa as deleteLine,Ra as deleteTop,Fg as detectVideoPlayer,na as drawCircle,la as drawLine,ma as drawRect,oa as drawText,q as expandAllSections,p as expandSection,sb as fileManagerStateMap,K as formatNumber,L as formatPercentage,I as generateTicks,gb as getActiveTabIndex,La as getBaseLine,h as getBoxContent,qa as getCanvasContent,N as getChartColor,Df as getDividerRenderInfo,s as getExpandedSections,ic as getHoverText,lc as getHoverTextCount,rc as getImageBitmap,sc as getImageCellMap,Bc as getLayoutMode,Ja as getLine,Kc as getLineChar,Ia as getLineCount,Mc as getLineOrientation,Ha as getLines,Od as getModalStack,$d as getPanelTitle,ce as getPanelTitleAlign,pd as getScrollback,Bf as getSharedTextBuffer,zf as getSplitDirection,Lf as getStreamVisibleLines,hb as getTabCount,ib as getTabPosition,fa as getTextContent,Ng as getVideoPlaybackState,Og as getVideoPlayer,nf as getWidgetTypes,pf as getWidgetsByTag,ub as handleFileManagerKey,Ed as handleMessageClick,Fd as handleMessageKey,Rd as handleModalBackdropClick,Sd as handleModalEscape,xe as handlePromptKey,Je as handleQuestionKey,Uf as handleSwitchClick,Tf as handleSwitchKey,_f as handleTerminalKey,Ug as handleVirtualizedListKey,Vg as handleVirtualizedListWheel,jc as hasHoverText,ed as hideLoading,Cf as hitTestDivider,Pa as insertBottom,Na as insertLine,Oa as insertTop,O as interpolateChartColor,v as isAccordion,B as isAutocomplete,W as isBarChart,i as isBox,$ as isButtonWidget,sa as isCanvas,xa as isCheckboxWidget,w as isCollapsible,Ga as isCommandPalette,ob as isDevTools,Cd as isDismissOnClick,Dd as isDismissOnKey,vb as isFileManager,Cb as isFlexContainer,Kb as isFormWidget,Pb as isGauge,Vb as isGrid,qc as isImage,Ze as isKeysScrollEnabled,Ac as isLayout,Jc as isLine,Rc as isLineChart,Zc as isListTableWidget,Ba as isListWidget,Wc as isListbarWidget,gd as isLoadingWidget,md as isLog,od as isLogKeysScrollEnabled,nd as isLogMouseScrollEnabled,Bd as isMessage,Pd as isModal,Nd as isModalOpen,Ye as isMouseScrollEnabled,_d as isPanel,be as isPanelCollapsed,ie as isProgressBarWidget,ve as isPrompt,Ie as isQuestion,Se as isRadioButtonWidget,Re as isRadioGroupWidget,Xe as isScrollableBox,Xe as isScrollableText,tf as isSparkline,yf as isSplitPane,lg as isStopwatch,Sf as isSwitch,cf as isTableWidget,fb as isTabs,$f as isTerminal,bg as isTerminalKeysEnabled,ag as isTerminalMouseEnabled,ga as isText,kg as isTimer,zg as isToast,gf as isTreeWidget,Mg as isVideo,jf as isViewport3DWidget,Wg as isVirtualizedList,of as isWidgetType,Kd as openModal,Wa as popLine,ue as prompt,se as promptStateMap,Va as pushLine,Ee as questionStateMap,lf as registerBuiltinWidgets,de as renderPanelTitleBar,jb as renderTabBar,P as renderXAxisLabel,Q as renderYAxisLabel,Za as replaceLines,m as resetAccordionStore,C as resetAutocompleteStore,X as resetBarChartStore,j as resetBoxStore,aa as resetButtonWidgetStore,ta as resetCanvasStore,ya as resetCheckboxWidgetStore,Ea as resetCommandPaletteStore,pb as resetDevToolsStore,wb as resetFileManagerStore,Db as resetFlexContainerStore,Lb as resetFormWidgetStore,Qb as resetGaugeStore,Wb as resetGridStore,mc as resetHoverTextStore,tc as resetImageStore,Cc as resetLayoutStore,Sc as resetLineChartStore,Nc as resetLineStore,Uc as resetListbarStore,id as resetLoadingStore,qd as resetLogStore,Gd as resetMessageStore,Qd as resetModalStore,ee as resetPanelStore,je as resetProgressBarWidgetStore,we as resetPromptStore,Ke as resetQuestionStore,Te as resetRadioWidgetStore,_e as resetScrollableBoxStore,uf as resetSparklineStore,Ef as resetSplitPaneStore,ng as resetStopwatchWidgetStore,Vf as resetSwitchStore,kb as resetTabsStore,cg as resetTerminalStore,ha as resetTextStore,mg as resetTimerWidgetStore,Ag as resetToastStore,ef as resetTreeStore,Pg as resetVideoStore,J as scaleValue,Nf as scrollByLines,Mf as scrollToLine,Jg as sendPauseCommand,Kg as sendSeekCommand,Ma as setBaseLine,g as setBoxContent,gc as setHoverText,Ka as setLine,Lc as setLineChar,Ua as setLines,fd as setLoadingMessage,ae as setPanelTitle,ka as setPixel,xb as setReadDirFn,ea as setTextContent,Xa as shiftLine,zd as showError,yg as showErrorToast,xd as showInfo,vg as showInfoToast,dd as showLoading,Ad as showSuccess,wg as showSuccessToast,yd as showWarning,xg as showWarningToast,_a as spliceLines,Hf as stripAnsiSequences,u as toggleCollapsible,o as toggleSection,Ya as unshiftLine,hd as updateLoadingAnimation,jg as updateTimeWidgets,Gf as wrapLine}from'../chunk-FL56THSI.js';import'../chunk-3UJWZ5ZN.js';import'../chunk-4LWWONFK.js';import'../chunk-2IEMMRUO.js';export{b as BigText,a as BigTextConfigSchema,e as createBigText,g as isBigText,h as resetBigTextStore,f as setText}from'../chunk-CUEUJAHK.js';export{b as BitmapFontSchema,a as CharBitmapSchema,c as createFontNotFoundError,f as getCharBitmap,d as loadFont,g as renderChar}from'../chunk-DNRXW56C.js';import'../chunk-LYSK5S63.js';import'../chunk-3O4TQHGK.js';import'../chunk-TWSWTBYL.js';import'../chunk-AEJIX2MW.js';import'../chunk-C5PCEQ6G.js';import'../chunk-JHCKPCUH.js';import'../chunk-VOCM5T2G.js';import'../chunk-3AV52GY5.js';import'../chunk-5N3O25O7.js';import'../chunk-A6M6TFBL.js';import'../chunk-6M2J5QUA.js';import'../chunk-EAY7B5GL.js';import'../chunk-K3SX2LY5.js';import'../chunk-3LHLSY3Y.js';import'../chunk-OR3BZY7C.js';import'../chunk-DYU72XLL.js';import'../chunk-FCMTWFSE.js';import'../chunk-ZAHG7Y3X.js';import'../chunk-Z4EZERNE.js';import'../chunk-NPDPBAW6.js';import'../chunk-SHUC6JWA.js';import'../chunk-G7GIWWLE.js';import'../chunk-PXXGH3BV.js';import'../chunk-5PELJRUQ.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blecsd",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "A modern, high-performance terminal UI library built on TypeScript and ECS architecture",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -138,33 +138,128 @@
138
138
  "bench": "vitest bench",
139
139
  "bench:run": "vitest bench --run",
140
140
  "bench:json": "vitest bench --run --outputFile=benchmark-results.json",
141
+ "bench:scenarios": "vitest bench benchmarks/scenarios",
142
+ "bench:ci": "vitest bench benchmarks/ci.bench.ts",
143
+ "bench:startup": "vitest bench benchmarks/startup.bench.ts",
144
+ "bench:widgets": "vitest bench benchmarks/widgets.bench.ts",
145
+ "bench:memory": "node --expose-gc node_modules/.bin/vitest bench benchmarks/memory.bench.ts",
146
+ "bench:leak-check": "node --expose-gc node_modules/.bin/vitest bench benchmarks/memory-leak.bench.ts",
147
+ "bench:render-cycle": "vitest bench benchmarks/render-cycle.bench.ts",
148
+ "bench:animation": "vitest bench benchmarks/animation.bench.ts",
149
+ "bench:layout": "vitest bench benchmarks/layout.bench.ts",
150
+ "bench:text": "vitest bench benchmarks/text-rendering.bench.ts",
151
+ "bench:update-baseline": "tsx scripts/update-baseline.ts",
152
+ "bench:check-regression": "vitest bench benchmarks/ci.bench.ts --run --outputFile=benchmark-results.json && tsx scripts/check-perf-regression.ts benchmark-results.json",
141
153
  "lint": "biome check . && ./scripts/check-bitecs-imports.sh",
142
154
  "lint:fix": "biome check --write .",
143
155
  "format": "biome format --write .",
144
156
  "typecheck": "tsc --noEmit",
157
+ "check:circular": "madge --circular --extensions ts,tsx src/",
145
158
  "prepare": "husky",
146
159
  "prepublishOnly": "pnpm run build:publish",
147
160
  "build:publish": "tsup --no-sourcemap --minify",
148
161
  "size": "size-limit",
149
- "size:check": "size-limit --check",
162
+ "size:why": "size-limit --why",
150
163
  "verify-pack": "./scripts/verify-pack.sh",
151
- "doccheck": "tsx scripts/doccheck.ts"
164
+ "doccheck": "tsx scripts/doccheck.ts",
165
+ "playground": "tsx playground/index.ts"
152
166
  },
153
167
  "size-limit": [
154
168
  {
155
169
  "path": "dist/index.js",
156
170
  "limit": "500 KB",
157
- "ignore": ["fs", "path", "os", "util", "child_process", "net", "tty", "stream", "events", "readline", "module", "url", "https", "node:fs", "node:path", "node:os", "node:util", "node:child_process", "node:net", "node:tty", "node:stream", "node:events", "node:readline", "node:module", "node:url", "node:https"]
171
+ "ignore": [
172
+ "fs",
173
+ "path",
174
+ "os",
175
+ "util",
176
+ "child_process",
177
+ "net",
178
+ "tty",
179
+ "stream",
180
+ "events",
181
+ "readline",
182
+ "module",
183
+ "url",
184
+ "https",
185
+ "node:fs",
186
+ "node:path",
187
+ "node:os",
188
+ "node:util",
189
+ "node:child_process",
190
+ "node:net",
191
+ "node:tty",
192
+ "node:stream",
193
+ "node:events",
194
+ "node:readline",
195
+ "node:module",
196
+ "node:url",
197
+ "node:https"
198
+ ]
158
199
  },
159
200
  {
160
201
  "path": "dist/core/index.js",
161
202
  "limit": "100 KB",
162
- "ignore": ["fs", "path", "os", "util", "child_process", "net", "tty", "stream", "events", "readline", "module", "url", "https", "node:fs", "node:path", "node:os", "node:util", "node:child_process", "node:net", "node:tty", "node:stream", "node:events", "node:readline", "node:module", "node:url", "node:https"]
203
+ "ignore": [
204
+ "fs",
205
+ "path",
206
+ "os",
207
+ "util",
208
+ "child_process",
209
+ "net",
210
+ "tty",
211
+ "stream",
212
+ "events",
213
+ "readline",
214
+ "module",
215
+ "url",
216
+ "https",
217
+ "node:fs",
218
+ "node:path",
219
+ "node:os",
220
+ "node:util",
221
+ "node:child_process",
222
+ "node:net",
223
+ "node:tty",
224
+ "node:stream",
225
+ "node:events",
226
+ "node:readline",
227
+ "node:module",
228
+ "node:url",
229
+ "node:https"
230
+ ]
163
231
  },
164
232
  {
165
233
  "path": "dist/components/index.js",
166
234
  "limit": "200 KB",
167
- "ignore": ["fs", "path", "os", "util", "child_process", "net", "tty", "stream", "events", "readline", "module", "url", "https", "node:fs", "node:path", "node:os", "node:util", "node:child_process", "node:net", "node:tty", "node:stream", "node:events", "node:readline", "node:module", "node:url", "node:https"]
235
+ "ignore": [
236
+ "fs",
237
+ "path",
238
+ "os",
239
+ "util",
240
+ "child_process",
241
+ "net",
242
+ "tty",
243
+ "stream",
244
+ "events",
245
+ "readline",
246
+ "module",
247
+ "url",
248
+ "https",
249
+ "node:fs",
250
+ "node:path",
251
+ "node:os",
252
+ "node:util",
253
+ "node:child_process",
254
+ "node:net",
255
+ "node:tty",
256
+ "node:stream",
257
+ "node:events",
258
+ "node:readline",
259
+ "node:module",
260
+ "node:url",
261
+ "node:https"
262
+ ]
168
263
  }
169
264
  ],
170
265
  "keywords": [
@@ -201,6 +296,7 @@
201
296
  "@types/node": "^25.2.0",
202
297
  "@vitest/coverage-v8": "^4.0.18",
203
298
  "husky": "^9.0.0",
299
+ "madge": "^8.0.0",
204
300
  "size-limit": "^12.0.0",
205
301
  "tsup": "^8.5.1",
206
302
  "tsx": "^4.21.0",
@@ -1 +0,0 @@
1
- import {b,d as d$2}from'./chunk-4LWWONFK.js';import {d as d$1,A,i,B as B$1}from'./chunk-TWSWTBYL.js';import {a,e as e$1,r as r$1,o,t}from'./chunk-C5PCEQ6G.js';import {k as k$1}from'./chunk-VOCM5T2G.js';import {c as c$1,a as a$1}from'./chunk-XZA63ZPO.js';import {s,n as n$1,i as i$1}from'./chunk-LCN2ZITE.js';import {r,c,p as p$1,h,e}from'./chunk-W5OU7Z6J.js';import {n,k,i as i$2}from'./chunk-PXXGH3BV.js';import {z}from'zod';s();n();var d=z.number().int().min(0).max(4294967295),J=z.number().int().min(0).max(65535),ne=z.object({fg:d.optional(),bg:d.optional(),selectedFg:d.optional(),selectedBg:d.optional(),cursorFg:d.optional(),cursorBg:d.optional(),showLineNumbers:z.boolean().optional(),lineNumberWidth:z.number().int().nonnegative().max(20).optional(),attrs:J.optional()}),Re=z.object({fg:d.default(4294967295),bg:d.default(255),selectedFg:d.default(255),selectedBg:d.default(4294967295),cursorFg:d.default(255),cursorBg:d.default(16711935),showLineNumbers:z.boolean().default(false),lineNumberWidth:z.number().int().nonnegative().max(20).default(0),attrs:J.default(a.NONE)}),Q={fg:4294967295,bg:255,selectedFg:255,selectedBg:4294967295,cursorFg:255,cursorBg:16711935,showLineNumbers:false,lineNumberWidth:0,attrs:a.NONE},p=null,L=new Map,B=new Map;function Ne(t){p=t;}function Se(){return p}function Ve(){p=null;}function ve(t,e){L.set(t,e);}function we(t){return L.get(t)}function De(t){L.delete(t);}function ze(t,e){L.set(t,e);}function We(t,e){let r=ne.parse(e),f={};for(let[n,o]of Object.entries(r))o!==void 0&&(f[n]=o);let i=B.get(t)??Q;B.set(t,{...i,...f});}function re(t){return B.get(t)??Q}function Fe(t){B.delete(t);}function ie(t,e){if(!i$2(t,e,c))return a.NONE;let r=a.NONE;return c.bold[e]===1&&(r|=a.BOLD),c.underline[e]===1&&(r|=a.UNDERLINE),c.blink[e]===1&&(r|=a.BLINK),c.inverse[e]===1&&(r|=a.INVERSE),r}function oe(t,e){if(c$1(t,e))return {x:a$1.x[e],y:a$1.y[e],width:a$1.width[e],height:a$1.height[e]}}function fe(t,e){return n$1(t,e)?{top:i$1.top[e]===1?1:0,right:i$1.right[e]===1?1:0,bottom:i$1.bottom[e]===1?1:0,left:i$1.left[e]===1?1:0}:{top:0,right:0,bottom:0,left:0}}function ue(t,e){return {x:t.x+e.left,y:t.y+e.top,width:Math.max(0,t.width-e.left-e.right),height:Math.max(0,t.height-e.top-e.bottom)}}function M(t$1,e,r,f,i,n,o$1,u){let m=e$1(" ",n,o$1,u);for(let l=0;l<f;l++)o(t$1,e+l,r,m);let a=i.length>f?i.slice(0,f):i;a.length>0&&t(t$1,e,r,a,n,o$1,u);}function le(t$1,e,r,f,i,n,o){let u=`${String(i+1).padStart(f-1," ")} `;t(t$1,e,r,u.slice(0,f),n,o,a.DIM);}function ae(t,e,r,f,i,n){let{buffer:o}=t,{x:u,y:m,width:a$1,height:l}=r,x=k$1(i,f.start,f.end),S=n.showLineNumbers?u+n.lineNumberWidth:u,V=n.showLineNumbers?Math.max(0,a$1-n.lineNumberWidth):a$1,b=d$1.selectedLine[e],v=d$1.cursorLine[e];for(let c=0;c<x.lines.length;c++){let E=m+c;if(c>=l)break;let D=x.startLine+c,Z=x.lines[c]??"",z=n.fg,W=n.bg;D===v?(z=n.cursorFg,W=n.cursorBg):D===b&&(z=n.selectedFg,W=n.selectedBg),n.showLineNumbers&&le(o,u,E,n.lineNumberWidth,D,n.fg,n.bg),M(o,S,E,V,Z,z,W,n.attrs);}let T=Math.min(x.lines.length,l);for(let c=T;c<l;c++){let E=m+c;n.showLineNumbers&&M(o,u,E,n.lineNumberWidth,"",n.fg,n.bg,a.NONE),M(o,S,E,V,"",n.fg,n.bg,a.NONE);}}function se(t,e,r,f,i){if(r<=i)return;let{buffer:n}=t,o$1=e.height,u=e.x+e.width-1,m=e.y,a=i/r,l=Math.max(1,Math.floor(o$1*a)),x=Math.floor(f/r*o$1),S=e$1("\u2502",1717987071,255);for(let b=0;b<o$1;b++)o(n,u,m+b,S);let V=e$1("\u2588",2863311615,255);for(let b=0;b<l;b++){let v=m+x+b;v<m+o$1&&o(n,u,v,V);}}function de(t,e$2,r){let{world:f,buffer:i}=t,n=e(f,e$2);if(!n||n.transparent)return;let o=ie(f,e$2),u=e$1(" ",n.fg,n.bg,o);r$1(i,r.x,r.y,r.width,r.height,u);}function me(t,e){let{world:r,doubleBuffer:f}=t,i$1=oe(r,e);if(!i$1||i$1.width<=0||i$1.height<=0)return;let n=L.get(e);if(!n)return;let o=i(r,e);if(!o)return;let u=re(e);de(t,e,i$1);let m=fe(r,e),a=ue(i$1,m);a.width>0&&a.height>0&&ae(t,e,a,o,n,u);let l={firstVisibleLine:d$1.firstVisibleLine[e],visibleLineCount:d$1.visibleLineCount[e],totalLineCount:d$1.totalLineCount[e]};l.totalLineCount>l.visibleLineCount&&se(t,a,l.totalLineCount,l.firstVisibleLine,l.visibleLineCount),d$2(f,i$1.x,i$1.y,i$1.width,i$1.height),B$1(r,e),h(r,e);}var ce=t=>{if(!p)return t;let e=b(p),r$1={world:t,buffer:e,doubleBuffer:p},f=k(t,[d$1,r,c]);for(let i of f)p$1(t,i)&&(!A(t,i)&&c.dirty[i]!==1||me(r$1,i));return t};function Me(){return ce}function Oe(){p=null,L.clear(),B.clear();}function ke(t){L.delete(t),B.delete(t);}export{Re as a,Ne as b,Se as c,Ve as d,ve as e,we as f,De as g,ze as h,We as i,re as j,Fe as k,ce as l,Me as m,Oe as n,ke as o};
@@ -1 +0,0 @@
1
- import {f,B,a as a$3,b as b$1,A,x,y,z,D as D$1,Y,$,aa,pa,na,_ as _$1,ka,qa,xa,Ta,Ga,Aa as Aa$1,ca,ea as ea$1,za as za$1}from'./chunk-JUWDTH25.js';import {O,Q,_,va,ya,za,Aa,Ba,la,ia,ha,$ as $$1,ea,fa}from'./chunk-JKVHO4LH.js';import {k as k$1,l as l$1}from'./chunk-OB66FB4F.js';import {a as a$1}from'./chunk-WY3KY2TR.js';import {b,a as a$5}from'./chunk-H2YAOJDW.js';import {f as f$1,b as b$2,n as n$1}from'./chunk-BCADUCOZ.js';import {a as a$2}from'./chunk-EAY7B5GL.js';import {a,g,j as j$2,b as b$3,f as f$2}from'./chunk-K3SX2LY5.js';import {l,q as q$1,c as c$1,r as r$1}from'./chunk-KD55INV7.js';import {r,s,t,y as y$1,p as p$1,w,K as K$1,c as c$2,g as g$1,M as M$1}from'./chunk-W5OU7Z6J.js';import {a as a$4,i as i$1}from'./chunk-G7GIWWLE.js';import {n,k,i,d as d$1,j as j$1,e,l as l$2,m}from'./chunk-PXXGH3BV.js';n();var Tn=1e4;function Pn(e=Tn){return {animationId:new Uint32Array(e),playing:new Uint8Array(e),loop:new Uint8Array(e),speed:new Float32Array(e),elapsed:new Float32Array(e),currentFrameIndex:new Uint16Array(e),direction:new Int8Array(e)}}var kn=Pn(),Ht=new WeakSet,Dt=null;function Rt(e){return Ht.has(e)||(Dt=l$2(e,m(()=>kn)),Ht.add(e)),Dt}function Bt(e){let t=Rt(e);return Array.from(k(e,[t]))}function An(e,t){let n=Rt(e);return i(e,t,n)}var He=e=>{let t=b(),n=Bt(e);for(let r of n)O(e,r,t);return e};function Wn(){return He}function Fn(e,t=0){e.registerSystem(2,He,t);}function Hn(e,t,n){for(let r of t)O(e,r,n);}n();function Dn(e,t){if(w(e,t))return {x:r.x[t],y:r.y[t]}}function Rn(e,t,n,r$1,o){i(e,t,r)&&(r.x[t]=r.x[t]+n*o,r.y[t]=r.y[t]+r$1*o);}function Bn(e,t){let n=e.getPosition??Dn,r=e.applyMovement??Rn;return o=>{let i=e.getDelta(),s=t(o);for(let a of s)f(o,a)&&(B(o,a,i),Yn(o,a,i,n,r));return o}}function Yn(e,t,n,r,o){let i=a$3.behaviorType[t];if(i===b$1.Idle)return;if(i===b$1.Custom){A(e,t,n);return}let s=r(e,t);if(!s)return;if(i===b$1.Patrol){Xn(e,t,s.x,s.y,n,o);return}let a=a$3.targetEntity[t];if(a===0)return;let l=r(e,a);l&&(i===b$1.Chase?In(e,t,s.x,s.y,l.x,l.y,n,o):i===b$1.Flee&&zn(e,t,s.x,s.y,l.x,l.y,n,o));}function Xn(e,t,n,r,o,i){let s=x(e,t,n,r,o);s&&(s.dx!==0||s.dy!==0)&&i(e,t,s.dx,s.dy,o);}function In(e,t,n,r,o,i,s,a){let l=y(e,t,n,r,o,i);l&&(l.dx!==0||l.dy!==0)&&a(e,t,l.dx,l.dy,s);}function zn(e,t,n,r,o,i,s,a){let l=z(e,t,n,r,o,i);l&&(l.dx!==0||l.dy!==0)&&a(e,t,l.dx,l.dy,s);}n();function De(e){return Array.from(k(e,[D$1]))}var Re=e=>{let t=b(),n=De(e);for(let r of n)Y(e,r,t);return e};function Ln(){return Re}function On(e,t=20){e.registerSystem(2,Re,t);}function wn(e,t){let n=De(e);for(let r of n)Y(e,r,t);}n();var se=67108864;function Be(e,t){if(e>=se||t>=se)throw new RangeError(`Entity IDs must be below ${se} for collision-free pair keys. Got: ${e}, ${t}`);return e*se+t}var d={eventBus:a$1(),activePairs:a(),activeTriggers:a(),pairHandles:new Map,triggerHandles:new Map};function Vn(){return d.eventBus}function Gn(){return d.activePairs.size}function qn(){return {data:d.activePairs.data,size:d.activePairs.size}}function Un(){return d.activeTriggers.size}function Nn(){return {data:d.activeTriggers.data,size:d.activeTriggers.size}}function _n(){g(d.activePairs),g(d.activeTriggers),d.pairHandles.clear(),d.triggerHandles.clear();}function Xt(e){return Array.from(k(e,[Q]))}function Zn(e,t,n,r$1,o,i$1,s,a){if(!i(e,a,r))return;let l=Q.layer[a],u=Q.mask[a];if(!$$1(o,i$1,l,u))return;let m=r.x[a],y=r.y[a];if(!ea(t,n,r$1,a,m,y))return;let g=_(e,a);return fa(t,a,s||g)}function It(e){let t=Xt(e),n=[];for(let r$1=0;r$1<t.length;r$1++){let o=t[r$1];if(o===void 0||!i(e,o,r))continue;let i$1=r.x[o],s=r.y[o],a=Q.layer[o],l=Q.mask[o],u=_(e,o);for(let m=r$1+1;m<t.length;m++){let y=t[m];if(y===void 0)continue;let g=Zn(e,o,i$1,s,a,l,u,y);g&&n.push(g);}}return n}function Yt(e,t,n,r){let{data:o}=e;for(let i=e.size-1;i>=0;i--){let s=o[i];if(!s)continue;let a=Be(s.entityA,s.entityB);if(n.has(a))continue;let l=t.get(a);l&&(t.delete(a),f$2(e,l),d.eventBus.emit(r,{entityA:s.entityA,entityB:s.entityB}));}}function $n(e,t,n){let r=Be(e.entityA,e.entityB);if(e.isTrigger){if(n.add(r),!d.triggerHandles.has(r)){let o=b$3(d.activeTriggers,e);d.triggerHandles.set(r,o),d.eventBus.emit("triggerEnter",{entityA:e.entityA,entityB:e.entityB});}}else if(t.add(r),!d.pairHandles.has(r)){let o=b$3(d.activePairs,e);d.pairHandles.set(r,o),d.eventBus.emit("collisionStart",{entityA:e.entityA,entityB:e.entityB});}}function Qn(e){let t=new Set,n=new Set;for(let r of e)$n(r,t,n);Yt(d.activePairs,d.pairHandles,t,"collisionEnd"),Yt(d.activeTriggers,d.triggerHandles,n,"triggerExit");}var Ye=e=>{let t=It(e);return Qn(t),e};function Kn(){return Ye}function jn(e,t=10){e.registerSystem(2,Ye,t);}function Jn(e){let{data:t}=d.activePairs;for(let n=0;n<d.activePairs.size;n++){let r=t[n];if(r&&(r.entityA===e||r.entityB===e))return true}return false}function er(e){let{data:t}=d.activeTriggers;for(let n=0;n<d.activeTriggers.size;n++){let r=t[n];if(r&&(r.entityA===e||r.entityB===e))return true}return false}function tr(e){let t=[],{data:n}=d.activePairs;for(let r=0;r<d.activePairs.size;r++){let o=n[r];o&&(o.entityA===e?t.push(o.entityB):o.entityB===e&&t.push(o.entityA));}return t}function nr(e){let t=[],{data:n}=d.activeTriggers;for(let r=0;r<d.activeTriggers.size;r++){let o=n[r];o&&(o.entityA===e?t.push(o.entityB):o.entityB===e&&t.push(o.entityA));}return t}function rr(e,t){let n=Math.min(e,t),r=Math.max(e,t),o=Be(n,r);return d.pairHandles.has(o)||d.triggerHandles.has(o)}var ue=new Map,le=new Map;function or(){return {dragging:null,startX:0,startY:0,offsetX:0,offsetY:0,lastX:0,lastY:0,constraints:{},verifyCallback:null}}function ir(e,t){ue.set(e,t);}function zt(e){return ue.get(e)??{}}function ar(e){ue.delete(e);}function sr(e,t){t?le.set(e,t):le.delete(e);}function Lt(e){return le.get(e)??null}function lr(e,t,n,r$1){return r$1==="x"?{x:t,y:r.y[e]??n}:r$1==="y"?{x:r.x[e]??t,y:n}:{x:t,y:n}}function ur(e,t,n){return n?{x:Math.round(e/n.x)*n.x,y:Math.round(t/n.y)*n.y}:{x:e,y:t}}function cr(e,t,n){let r=e,o=t;return n.minX!==void 0&&(r=Math.max(r,n.minX)),n.maxX!==void 0&&(r=Math.min(r,n.maxX)),n.minY!==void 0&&(o=Math.max(o,n.minY)),n.maxY!==void 0&&(o=Math.min(o,n.maxY)),{x:r,y:o}}function mr(e,t,n,r,o){if(!o)return {x:n,y:r};let i=i$1(e,t);if(i===a$4)return {x:n,y:r};let s=M$1(e,i);if(!s)return {x:n,y:r};let a=M$1(e,t),l=a?.width??1,u=a?.height??1;return {x:Math.max(0,Math.min(n,s.width-l)),y:Math.max(0,Math.min(r,s.height-u))}}function fr(e,t,n,r,o){let i=lr(t,n,r,o.constrainAxis);return i=ur(i.x,i.y,o.snapToGrid),i=cr(i.x,i.y,o),i=mr(e,t,i.x,i.y,o.constrainToParent),i}function dr(e){let t$1=or();return {getState(){return t$1},isDragging(){return t$1.dragging!==null},getDraggingEntity(){return t$1.dragging},canDrag(n,r){return l(n,r)},startDrag(n,r,o,i){if(!l(n,r)||t$1.dragging!==null)return false;let s=t(n,r);if(!s)return false;if(t$1.dragging=r,t$1.startX=s.x,t$1.startY=s.y,t$1.offsetX=o-s.x,t$1.offsetY=i-s.y,t$1.lastX=s.x,t$1.lastY=s.y,t$1.constraints=zt(r),t$1.verifyCallback=Lt(r),t$1.constraints.bringToFront){let a=t$1.constraints.frontZIndex??9999;y$1(n,r,a);}return e.emit("dragstart",{entity:r,startX:s.x,startY:s.y,mouseX:o,mouseY:i}),true},updateDrag(n,r,o){if(t$1.dragging===null)return false;let i=t$1.dragging,s$1=r-t$1.offsetX,a=o-t$1.offsetY,l=fr(n,i,s$1,a,t$1.constraints);s$1=l.x,a=l.y;let u=s$1-t$1.lastX,m=a-t$1.lastY;return u===0&&m===0||t$1.verifyCallback&&!t$1.verifyCallback(i,u,m)?false:(s(n,i,s$1,a),t$1.lastX=s$1,t$1.lastY=a,e.emit("drag",{entity:i,x:s$1,y:a,dx:u,dy:m,mouseX:r,mouseY:o}),true)},endDrag(n,r=null,o=false){if(t$1.dragging===null)return;let i=t$1.dragging,s=t(n,i),a=s?.x??t$1.lastX,l=s?.y??t$1.lastY;e.emit("dragend",{entity:i,x:a,y:l,totalDx:a-t$1.startX,totalDy:l-t$1.startY,cancelled:o}),o||e.emit("drop",{entity:i,x:a,y:l,dropTarget:r}),t$1.dragging=null,t$1.startX=0,t$1.startY=0,t$1.offsetX=0,t$1.offsetY=0,t$1.lastX=0,t$1.lastY=0,t$1.constraints={},t$1.verifyCallback=null;},cancelDrag(n){if(t$1.dragging===null)return;let r=t$1.dragging;s(n,r,t$1.startX,t$1.startY),this.endDrag(n,null,true);}}}function pr(){ue.clear(),le.clear();}n();var ce=null,K=new WeakMap,Xe=new WeakMap;function Ie(e){let t=K.get(e);return t||(t=[],K.set(e,t)),t}function Ot(){return ce||(ce=a$1()),ce}function yr(){ce=null;}var gr=e=>k(e,[r,c$2,c$1]);function q(e){let t=gr(e),n=[];for(let r$1 of t){if(!q$1(e,r$1)||!p$1(e,r$1))continue;let o=c$1.tabIndex[r$1];o<0||n.push({eid:r$1,tabIndex:o,y:r.y[r$1],x:r.x[r$1]});}return n.sort((r,o)=>r.tabIndex!==0&&o.tabIndex!==0?r.tabIndex-o.tabIndex:r.tabIndex!==0?-1:o.tabIndex!==0?1:r.y!==o.y?r.y-o.y:r.x-o.x),n.map(r=>r.eid)}function me(e){let t=f$1(e);if(!t)return null;let n=b$2.focused[t];return n===a$4?null:n}function U(e,t,n,r){let o=Ot();r!==null&&(r$1(e,r,false),g$1(e,r),o.emit("blur",{entity:r,previousEntity:null,nextEntity:n})),n!==null&&(r$1(e,n,true),g$1(e,n),o.emit("focus",{entity:n,previousEntity:r,nextEntity:null})),n$1(e,t,n);}function X(e,t){let n=f$1(e);if(!n||!q$1(e,t)||!p$1(e,t))return false;let r=b$2.focused[n],o=r===0?null:r;return o===t||U(e,n,t,o),true}function wt(e){let t=f$1(e);if(!t)return;let n=b$2.focused[t],r=n===0?null:n;r!==null&&U(e,t,null,r);}function br(e){let t=f$1(e);if(!t)return null;let n=q(e);if(n.length===0)return null;let r=b$2.focused[t],o=r===0?null:r,i=0;if(o!==null){let a=n.indexOf(o);a>=0&&(i=(a+1)%n.length);}let s=n[i];return s===void 0?null:(U(e,t,s,o),s)}function Sr(e){let t=f$1(e);if(!t)return null;let n=q(e);if(n.length===0)return null;let r=b$2.focused[t],o=r===0?null:r,i=n.length-1;if(o!==null){let a=n.indexOf(o);a>=0&&(i=(a-1+n.length)%n.length);}let s=n[i];return s===void 0?null:(U(e,t,s,o),s)}function Vt(e){let t=q(e);if(t.length===0)return null;let n=t[0];return n===void 0?null:X(e,n)?n:null}function hr(e){let t=q(e);if(t.length===0)return null;let n=t[t.length-1];return n===void 0?null:X(e,n)?n:null}function xr(e,t){let n=Ie(e),r=me(e);return r!==null&&n.push(r),X(e,t)}function vr(e){let t=Ie(e);if(t.length===0)return wt(e),null;let n=t.pop();return q$1(e,n)&&p$1(e,n)?(X(e,n),n):Gt(e)}function Er(e){let t=me(e);Xe.set(e,t);}function Mr(e){let t=Xe.get(e);return Xe.delete(e),t==null?null:q$1(e,t)&&p$1(e,t)?(X(e,t),t):null}function Gt(e){let t=Ie(e);for(;t.length>0;){let n=t.pop();if(q$1(e,n)&&p$1(e,n))return X(e,n),n}return Vt(e)}function Cr(e,t){if(t===0)return me(e);let n=f$1(e);if(!n)return null;let r=q(e);if(r.length===0)return null;let o=b$2.focused[n],i=o===0?null:o,s=-1;i!==null&&(s=r.indexOf(i));let a;s<0?a=t>0?0:r.length-1:a=((s+t)%r.length+r.length)%r.length;let l=r[a];return l===void 0?null:(U(e,n,l,i),l)}function Tr(e){let t=K.get(e);return t?t.length:0}function Pr(e){let t=K.get(e);t&&(t.length=0);}function kr(e){let t=K.get(e);return !t||t.length===0?null:t[t.length-1]??null}var qt=e=>{let t=f$1(e);if(!t)return e;let n=b$2.focused[t];if(n!==0){let r=n;(!q$1(e,r)||!p$1(e,r))&&U(e,t,null,r);}return e};function Ar(){return qt}var Nt={targetFrameMs:16.67,phaseBudgets:{},rollingWindowSize:120,warnOnOverrun:true},p=null;function ze(e){return {samples:Array.from({length:e},()=>0),idx:0,count:0,total:0,min:Number.POSITIVE_INFINITY,max:0}}function _t(e,t){let n=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-n,t<e.min&&(e.min=t),t>e.max&&(e.max=t);}function N(e,t){if(e.count===0)return 0;let n=e.samples.slice(0,e.count).sort((o,i)=>o-i),r=Math.min(Math.floor(n.length*t),n.length-1);return n[r]??0}function Ut(e){return e.count>0?e.total/e.count:0}function Wr(e){let t={...Nt,...e};return p={config:t,systemSamples:new Map,phaseTotals:new Map,frameSamples:ze(t.rollingWindowSize),totalFrames:0,budgetOverruns:0,alerts:[],onAlert:null},Le()}function Zt(e,t){if(!p)return;let n=p.systemSamples.get(e);n||(n=ze(p.config.rollingWindowSize),p.systemSamples.set(e,n)),_t(n,t);}function Fr(e,t){if(!p)return;p.phaseTotals.set(e,t);let n=p.config.phaseBudgets[e];if(n!==void 0&&t>n){let r={phase:e,budgetMs:n,actualMs:t,frame:p.totalFrames};p.alerts.push(r),p.alerts.length>100&&p.alerts.shift(),p.budgetOverruns++,p.onAlert&&p.onAlert(r);}}function Hr(e){p&&(_t(p.frameSamples,e),p.totalFrames++);}function Dr(e,t){return n=>{let r=performance.now(),o=t(n);return Zt(e,performance.now()-r),o}}function Le(){if(!p)return {config:Nt,stats:{frameTimeMs:0,avgFrameMs:0,p50FrameMs:0,p95FrameMs:0,p99FrameMs:0,fps:0,avgFps:0,totalFrames:0,budgetOverruns:0,systemTimings:[],phaseTimings:{}},alerts:[]};let e=p,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:Ut(s),minMs:s.min===Number.POSITIVE_INFINITY?0:s.min,maxMs:s.max,p50Ms:N(s,.5),p95Ms:N(s,.95),p99Ms:N(s,.99),count:s.count});let n={};for(let[i,s]of e.phaseTotals)n[a$5[i]??"unknown"]=s;let r=e.frameSamples.count>0?e.frameSamples.samples[(e.frameSamples.idx-1+e.frameSamples.samples.length)%e.frameSamples.samples.length]??0:0,o=Ut(e.frameSamples);return {config:e.config,stats:{frameTimeMs:r,avgFrameMs:o,p50FrameMs:N(e.frameSamples,.5),p95FrameMs:N(e.frameSamples,.95),p99FrameMs:N(e.frameSamples,.99),fps:r>0?1e3/r:0,avgFps:o>0?1e3/o:0,totalFrames:e.totalFrames,budgetOverruns:e.budgetOverruns,systemTimings:t,phaseTimings:n},alerts:[...e.alerts]}}function Rr(e){p&&(p.onAlert=e);}function Br(){p&&(p.systemSamples.clear(),p.phaseTotals.clear(),p.frameSamples=ze(p.config.rollingWindowSize),p.totalFrames=0,p.budgetOverruns=0,p.alerts=[]);}function Yr(){p=null;}function Xr(){let e=Le();return {config:e.config,stats:e.stats,alerts:e.alerts,exportedAt:Date.now()}}n();var Ir=1e4;function zr(e=Ir){return {x:new Float32Array(e),y:new Float32Array(e),maxSpeed:new Float32Array(e),friction:new Float32Array(e)}}var Lr=zr(),$t=new WeakSet,Qt=null;function Kt(e){return $t.has(e)||(Qt=l$2(e,m(()=>Lr)),$t.add(e)),Qt}function jt(e){let t=Kt(e);return Array.from(k(e,[t]))}function Or(e,t){let n=Kt(e);return i(e,t,n)}var Oe=e=>{let t=b(),n=jt(e);for(let r$1 of n)va(e,r$1)&&ya(r$1,t),za(r$1,t),Aa(r$1),i(e,r$1,r)&&Ba(r$1,t);return e};function wr(){return Oe}function Vr(e,t=0){e.registerSystem(4,Oe,t);}function Gr(e,t,n){for(let r$1 of t)la(e,r$1)&&(va(e,r$1)&&ya(r$1,n),za(r$1,n),Aa(r$1),i(e,r$1,r)&&Ba(r$1,n));}var j={minWidth:4,minHeight:2,maxWidth:0,maxHeight:0,constrainToScreen:true,screenWidth:80,screenHeight:24,snapGrid:0},we={deferLayout:true,outlineResize:false,keyboardStep:1,keyboardResizeStep:1};function Jt(){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 qr(e){return {...we,...e}}function Ur(e){return {...j,...e}}function Nr(e,t,n,r,o,i,s,a,l){let u={...we,...l};return {...e,entity:t,isMoving:true,isResizing:false,resizeHandle:void 0,startX:n,startY:r,panelStartX:o,panelStartY:i,panelStartWidth:s,panelStartHeight:a,layoutDeferred:u.deferLayout}}function _r(e,t,n,r,o,i,s,a,l,u){let m={...we,...u};return {...e,entity:t,isMoving:false,isResizing:true,resizeHandle:n,startX:r,startY:o,panelStartX:i,panelStartY:s,panelStartWidth:a,panelStartHeight:l,layoutDeferred:m.deferLayout}}function Zr(e,t,n,r){if(!e.isMoving)return {x:e.panelStartX,y:e.panelStartY,width:e.panelStartWidth,height:e.panelStartHeight,dirtyRects:[],clamped:false};let o={...j,...r},i=t-e.startX,s=n-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 y=Math.max(0,Math.min(a,o.screenWidth-e.panelStartWidth)),g=Math.max(0,Math.min(l,o.screenHeight-e.panelStartHeight));(y!==a||g!==l)&&(u=true),a=y,l=g;}let m=ao(e.panelStartX+(t-e.startX-i+i),e.panelStartY+(n-e.startY-s+s),a,l,e.panelStartWidth,e.panelStartHeight);return {x:a,y:l,width:e.panelStartWidth,height:e.panelStartHeight,dirtyRects:m,clamped:u}}function $r(e,t,n,r,o,i,s){let a=t,l=n,u=r,m=o;return (e.includes("right")||e==="right")&&(u+=i),(e.includes("bottom")||e==="bottom")&&(m+=s),(e.includes("left")||e==="left")&&(a+=i,u-=i),(e.includes("top")||e==="top")&&(l+=s,m-=s),{x:a,y:l,w:u,h:m}}function Qr(e,t,n){let r=e,o=t,i=false;return r<n.minWidth&&(r=n.minWidth,i=true),o<n.minHeight&&(o=n.minHeight,i=true),n.maxWidth>0&&r>n.maxWidth&&(r=n.maxWidth,i=true),n.maxHeight>0&&o>n.maxHeight&&(o=n.maxHeight,i=true),{width:r,height:o,clamped:i}}function Kr(e,t,n,r,o){return o<=0?{x:e,y:t,w:n,h:r}:{x:Math.round(e/o)*o,y:Math.round(t/o)*o,w:Math.round(n/o)*o,h:Math.round(r/o)*o}}function jr(e,t,n,r,o){if(!o.constrainToScreen)return {x:e,y:t,w:n,h:r};let i=Math.max(0,e),s=Math.max(0,t),a=n,l=r;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 Jr(e,t,n,r){if(!e.isResizing||!e.resizeHandle)return {x:e.panelStartX,y:e.panelStartY,width:e.panelStartWidth,height:e.panelStartHeight,dirtyRects:[],clamped:false};let o={...j,...r},i=t-e.startX,s=n-e.startY,a=$r(e.resizeHandle,e.panelStartX,e.panelStartY,e.panelStartWidth,e.panelStartHeight,i,s),l=Qr(a.w,a.h,o);a.w=l.width,a.h=l.height;let u=l.clamped;a=Kr(a.x,a.y,a.w,a.h,o.snapGrid),a=jr(a.x,a.y,a.w,a.h,o);let m=[{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:m,clamped:u}}function eo(e){return {...e,isMoving:false,isResizing:false,resizeHandle:void 0,layoutDeferred:false}}function to(e){return {state:Jt(),restoreX:e.panelStartX,restoreY:e.panelStartY,restoreWidth:e.panelStartWidth,restoreHeight:e.panelStartHeight}}function no(e,t,n,r,o,i,s){let a={...j,...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-n)),u=Math.max(0,Math.min(u,a.screenHeight-r))),a.snapGrid>0&&(l=Math.round(l/a.snapGrid)*a.snapGrid,u=Math.round(u/a.snapGrid)*a.snapGrid),{x:l,y:u}}function ro(e,t,n,r,o){let i={...j,...o},s=e,a=t;return n==="grow-horizontal"&&(s+=r),n==="shrink-horizontal"&&(s-=r),n==="grow-vertical"&&(a+=r),n==="shrink-vertical"&&(a-=r),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 oo(e,t,n,r,o=1){let i=e<o,s=e>=n-o,a=t<o,l=t>=r-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 io(e){if(e.length===0)return;let t=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY,r=0,o=0;for(let i of e)t=Math.min(t,i.x),n=Math.min(n,i.y),r=Math.max(r,i.x+i.width),o=Math.max(o,i.y+i.height);return {x:t,y:n,width:r-t,height:o-n}}function ao(e,t,n,r,o,i){return [{x:e,y:t,width:o,height:i},{x:n,y:r,width:o,height:i}]}n();function Ve(e,t,n,r$1){if(!i(e,t,$))return -1;let o;if(r$1){let P=k$1(e,r$1);if(P===null)return -1;o=P;}else o=d$1(e);let i$1=Math.floor(Math.random()*n.chars.length),s$1=n.chars[i$1]??42;aa(e,o,{lifetime:$.lifetime[t],char:s$1,startFg:n.startFg,endFg:n.endFg??n.startFg,fadeOut:n.fadeOut??true,emitter:t});let a=w(e,t)?r.x[t]:0,l=w(e,t)?r.y[t]:0;s(e,o,a,l);let u=$.angle[t],m=$.spread[t],y=u+(Math.random()-.5)*m,g=$.speed[t],v=Math.cos(y)*g,E=Math.sin(y)*g;return ia(e,o,v,E),pa(t,o),o}function so(e,t,n,r=1e3,o=0){if(!i(e,t,$))return [];let i$1=na(t);if(!i$1)return [];let s=n??$.burstCount[t],a=[];for(let l=0;l<s&&!(o+a.length>=r);l++){let u=Ve(e,t,i$1);u!==-1&&a.push(u);}return a}function Ge(e,t,n){if(!i(e,t,_$1))return;_$1.age[t]=_$1.age[t]+n;let r=_$1.emitter[t];if(r>0&&ka(e,r)){let o=$.gravity[r];o!==0&&la(e,t)&&(ha.y[t]=ha.y[t]+o*n);}}function qe(e,t,n){!w(e,t)||!la(e,t)||(r.x[t]=r.x[t]+ha.x[t]*n,r.y[t]=r.y[t]+ha.y[t]*n);}function Ue(e$1,t,n){let r=_$1.emitter[t];r>0&&qa(r,t),n?(j$1(e$1,t,_$1),l$1(e$1,n,t)):e(e$1,t);}function lo(e,t){return !(!i(e,t,$)||$.active[t]!==1)}function uo(e,t,n,r,o,i){let s=na(t);if(!s)return o;let a=$.rate[t];if(a<=0)return o;$.accumulator[t]=$.accumulator[t]+n;let l=1/a,u=o;for(;$.accumulator[t]>=l&&u<r;)$.accumulator[t]=$.accumulator[t]-l,Ve(e,t,s,i)!==-1&&u++;return u}function co(e,t,n,r,o,i){let s=o;for(let a of t)lo(e,a)&&(s=uo(e,a,n,r,s,i));return s}function mo(e,t,n,r){ca(e,t)&&(Ge(e,t,n),qe(e,t,n),ea$1(e,t)&&Ue(e,t,r));}function fo(e,t,n,r,o){for(let i=0;i<n;i++){let s=t[i];if(!s)continue;let a=s.particleId;ca(e,a)&&(o.add(a),Ge(e,a,r),qe(e,a,r));}}function po(e,t,n,r){for(let o=n-1;o>=0;o--){let i=t[o];if(!i)continue;let s=i.particleId;ca(e,s)?ea$1(e,s)&&Ue(e,s,r):qa(i.emitterId,s);}}function yo(e){let t=e.maxParticles??1e3,n=e.archetypeName,r=new Set;return o=>{let i=.016666666666666666,s=e.emitters(o),a=xa(),l=j$2(a),u=e.particles(o);co(o,s,i,t,u.length,n),r.clear(),fo(o,l,a.size,i,r),po(o,l,a.size,n);for(let m of u)r.has(m)||mo(o,m,i,n);return o}}var en={friction:.92,minVelocity:.1,maxVelocity:200,sensitivity:1,springStiffness:.3,springDamping:.8,maxOverscroll:50,enableMomentum:true,enableBounce:true},M=a$2({iterable:true});function go(e,t,n,r,o){let i=M.get(e);return i?(i.contentWidth=t,i.contentHeight=n,i.viewportWidth=r,i.viewportHeight=o):(i={scrollX:0,scrollY:0,velocityX:0,velocityY:0,contentWidth:t,contentHeight:n,viewportWidth:r,viewportHeight:o,isAnimating:false,isUserScrolling:false,targetX:null,targetY:null},M.set(e,i)),i}function bo(e){M.delete(e);}function So(){M.clear();}function ho(e,t,n,r){let o={...en,...r},i=M.get(e);i&&(i.velocityX+=t*o.sensitivity,i.velocityY+=n*o.sensitivity,i.velocityX=Math.max(-o.maxVelocity,Math.min(o.maxVelocity,i.velocityX)),i.velocityY=Math.max(-o.maxVelocity,Math.min(o.maxVelocity,i.velocityY)),i.isAnimating=true,i.targetX=null,i.targetY=null);}function xo(e,t,n){let r=M.get(e);r&&(r.targetX=t,r.targetY=n,r.isAnimating=true);}function vo(e,t,n){let r=M.get(e);r&&(r.scrollX=t,r.scrollY=n,r.velocityX=0,r.velocityY=0,r.targetX=null,r.targetY=null,r.isAnimating=false);}function Eo(e){let t=M.get(e);t&&(t.isUserScrolling=true,t.velocityX=0,t.velocityY=0);}function Mo(e,t,n){let r=M.get(e);r&&(r.isUserScrolling=false,r.velocityX=t,r.velocityY=n,r.isAnimating=Math.abs(t)>.1||Math.abs(n)>.1);}function Co(e,t){let n=Math.max(0,e.contentWidth-e.viewportWidth),r=Math.max(0,e.contentHeight-e.viewportHeight);if(!t.enableBounce){e.scrollX=Math.max(0,Math.min(n,e.scrollX)),e.scrollY=Math.max(0,Math.min(r,e.scrollY));return}let o=e.scrollX<0?e.scrollX:e.scrollX>n?e.scrollX-n:0,i=e.scrollY<0?e.scrollY:e.scrollY>r?e.scrollY-r: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(n+t.maxOverscroll,e.scrollX)),e.scrollY=Math.max(-t.maxOverscroll,Math.min(r+t.maxOverscroll,e.scrollY));}function To(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 Po(e,t){e.scrollX+=e.velocityX*t*60,e.scrollY+=e.velocityY*t*60;}function ko(e,t){!t.enableMomentum||e.isUserScrolling||(e.velocityX*=t.friction,e.velocityY*=t.friction);}function Ao(e,t){return Math.abs(e.velocityX)<t.minVelocity&&Math.abs(e.velocityY)<t.minVelocity&&e.targetX===null&&e.targetY===null}function Wo(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),n=Math.max(0,e.contentHeight-e.viewportHeight);e.scrollX=Math.max(0,Math.min(t,e.scrollX)),e.scrollY=Math.max(0,Math.min(n,e.scrollY));}function tn(e,t,n){let r={...en,...n};if(!e.isAnimating)return false;let o=e.scrollX,i=e.scrollY;return To(e),Po(e,t),ko(e,r),Co(e,r),Ao(e,r)&&Wo(e),e.scrollX!==o||e.scrollY!==i}function Fo(e){return M.get(e)?.isAnimating??false}function Ho(e){let t=M.get(e);return t?{x:t.scrollX,y:t.scrollY}:null}function Do(e){let t=performance.now();return n=>{let r=performance.now(),o=Math.min((r-t)/1e3,1/15);return t=r,M.forEach(i=>{tn(i,o,e);}),n}}n();var nn=8,Ro=.5;function Bo(e){return {cellSize:e?.cellSize??nn,cells:new Map,entityCells:new Map}}function _e(e,t){let n=e>=0?e*2:-e*2-1,r=t>=0?t*2:-t*2-1;return (n+r)*(n+r+1)/2+r}function Yo(e,t,n){return {cx:Math.floor(t/e.cellSize),cy:Math.floor(n/e.cellSize)}}function ee(e,t,n,r,o=1,i=1){Ze(e,t);let s=t,a=new Set,l=Math.floor(n/e.cellSize),u=Math.floor(r/e.cellSize),m=Math.floor((n+o-.001)/e.cellSize),y=Math.floor((r+i-.001)/e.cellSize);for(let g=l;g<=m;g++)for(let v=u;v<=y;v++){let E=_e(g,v);a.add(E);let P=e.cells.get(E);P||(P=new Set,e.cells.set(E,P)),P.add(s);}e.entityCells.set(s,a);}function Ze(e,t){let n=t,r=e.entityCells.get(n);if(r){for(let o of r){let i=e.cells.get(o);i&&(i.delete(n),i.size===0&&e.cells.delete(o));}e.entityCells.delete(n);}}function $e(e,t,n,r=1,o=1){let i=new Set,s=Math.floor(t/e.cellSize),a=Math.floor(n/e.cellSize),l=Math.floor((t+r-.001)/e.cellSize),u=Math.floor((n+o-.001)/e.cellSize);for(let m=s;m<=l;m++)for(let y=a;y<=u;y++){let g=_e(m,y),v=e.cells.get(g);if(v)for(let E of v)i.add(E);}return i}function Xo(e,t){let n=t,r=new Set,o=e.entityCells.get(n);if(!o)return r;for(let i of o){let s=e.cells.get(i);if(s)for(let a of s)a!==n&&r.add(a);}return r}function rn(e,t,n){let r=_e(t,n);return e.cells.get(r)??new Set}function Io(e,t,n){let r=Math.floor(t/e.cellSize),o=Math.floor(n/e.cellSize);return rn(e,r,o)}function on(e){e.cells.clear(),e.entityCells.clear();}function zo(e){let t=0,n=0;for(let o of e.cells.values())n+=o.size,o.size>t&&(t=o.size);let r=e.cells.size;return {cellCount:r,entityCount:e.entityCells.size,averageEntitiesPerCell:r>0?n/r:0,maxEntitiesInCell:t}}function Ne(e,t){on(e);let n=k(t,[r,Q]);for(let r$1 of n){let o=r.x[r$1],i=r.y[r$1],s=Q.width[r$1],a=Q.height[r$1],l=Q.offsetX[r$1],u=Q.offsetY[r$1];ee(e,r$1,o+l,i+u,s,a);}}function Qe(e=Ro){return {dirtyEntities:a(64),dirtyLookup:new Set,prevBounds:a$2({iterable:true}),initialized:false,dirtyThreshold:Math.max(0,Math.min(1,e))}}var J=null,T=Qe();function Lo(e){e!==J&&(T.initialized=false,T.prevBounds.clear()),J=e;}function Oo(){return J}function wo(){return T}function Vo(e){let t=e;T.dirtyLookup.has(t)||(b$3(T.dirtyEntities,t),T.dirtyLookup.add(t));}function Go(){return T.dirtyEntities.size}function qo(){T=Qe(T.dirtyThreshold);}function Uo(e){T.dirtyThreshold=Math.max(0,Math.min(1,e));}function Ke(e){let t=r.x[e]+Q.offsetX[e],n=r.y[e]+Q.offsetY[e],r$1=Q.width[e],o=Q.height[e];return {x:t,y:n,w:r$1,h:o}}function No(e,t){for(let n of t){let{x:r,y:o,w:i,h:s}=Ke(n),a=e.prevBounds.get(n);a?(a.x=r,a.y=o,a.w=i,a.h=s):e.prevBounds.set(n,{x:r,y:o,w:i,h:s});}}function _o(e,t,n){let r=[];t.prevBounds.forEach((o,i)=>{n.has(i)||r.push(i);});for(let o of r)Ze(e,o),t.prevBounds.delete(o);}function Zo(e,t){for(let n of t){let r=n,{x:o,y:i,w:s,h:a}=Ke(n),l=e.prevBounds.get(n);(!l||o!==l.x||i!==l.y||s!==l.w||a!==l.h)&&(e.dirtyLookup.has(r)||(b$3(e.dirtyEntities,r),e.dirtyLookup.add(r))),l?(l.x=o,l.y=i,l.w=s,l.h=a):e.prevBounds.set(n,{x:o,y:i,w:s,h:a});}}function an(e,t,n){let r$1=k(n,[r,Q]);if(!t.initialized){Ne(e,n),No(t,r$1),g(t.dirtyEntities),t.dirtyLookup.clear(),t.initialized=true;return}let o=new Set;for(let s of r$1)o.add(s);_o(e,t,o),Zo(t,r$1);let i$1=t.dirtyEntities.size;if(i$1>0){let s=r$1.length;if(s>0&&i$1>t.dirtyThreshold*s)Ne(e,n);else {let{data:a}=t.dirtyEntities;for(let l=0;l<i$1;l++){let u=a[l];if(u===void 0)continue;let m=u;if(!i(n,m,r)||!i(n,m,Q))continue;let{x:y,y:g,w:v,h:E}=Ke(m);ee(e,m,y,g,v,E);}}}g(t.dirtyEntities),t.dirtyLookup.clear();}var sn=e=>(J&&an(J,T,e),e);function $o(){return sn}n();var Qo=1e4;function Ko(e=Qo){return {machineId:new Uint32Array(e),currentState:new Uint16Array(e),previousState:new Uint16Array(e),stateAge:new Float32Array(e)}}var H=Ko(),ln=new WeakSet,un=null;function jo(e){return ln.has(e)||(un=l$2(e,m(()=>H)),ln.add(e)),un}function cn(e){let t=jo(e);return Array.from(k(e,[t]))}function Jo(){return H.stateAge}var je=e=>{let t=b(),n=cn(e);for(let r of n){let o=H.stateAge[r]??0;H.stateAge[r]=o+t;}return e};function ei(){return je}function ti(e,t=0){e.registerSystem(2,je,t);}function ni(e,t){for(let n of e){let r=H.stateAge[n]??0;H.stateAge[n]=r+t;}}function ri(e){H.stateAge[e]=0;}function oi(e){return H.stateAge[e]??0}n();var D=null,fe=null;function ii(e){D=e;}function ai(){return D}function si(){return fe}function li(){fe=null;}function ui(){D=null,fe=null;}function mn(e,t){let n=[];for(let r=0;r<t;r++){let o=[];for(let i=0;i<e;i++)o.push({char:" ",fg:0,bg:0});n.push(o);}return {width:e,height:t,cells:n}}function ci(e,t,n,r){let o=" ",i=0,s=0;for(let a of e.layers){if(!a.visible)continue;let l=a.tiles[r*e.width+n];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 mi(e,t,n,r,o,i){for(let s=0;s<i;s++){let a=r+s;if(a<0||a>=e.height)continue;let l=e.cells[a];if(l)for(let u=0;u<o;u++){let m=n+u;m<0||m>=e.width||(l[m]=t);}}}function fi(e,t,n,r,o,i,s,a){let l=Math.max(0,Math.floor(-e/o)),u=Math.max(0,Math.floor(-t/i)),m=Math.min(n,Math.ceil((s-e)/o)),y=Math.min(r,Math.ceil((a-t)/i));return [l,u,m,y]}function fn(e,t,n,r$1){let o=Ta.width[t],i=Ta.height[t],s=Ta.tileWidth[t],a=Ta.tileHeight[t],l=Ta.dataId[t],u=Ta.tilesetId[t],m=Ga.data.get(l),y=Aa$1.tilesets.get(u);if(!m||!y)return;let g=r.x[t],v=r.y[t],E=g-n,P=v-r$1,[Sn,hn,xn,vn]=fi(E,P,o,i,s,a,e.width,e.height);for(let te=hn;te<vn;te++)for(let ne=Sn;ne<xn;ne++){let En=ci(m,y,ne,te),Mn=Math.round(E+ne*s),Cn=Math.round(P+te*a);mi(e,En,Mn,Cn,s,a);}}function dn(e){if(!D)return null;let t=mn(D.viewportWidth,D.viewportHeight),n=k(e,[Ta,r]);for(let r of n)fn(t,r,D.camera.x,D.camera.y);return fe=t,t}var pn=e=>(dn(e),e);function di(){return pn}n();function pi(){return {bounds:a$2({iterable:false})}}function yn(e,t,n,r,o,i,s){let a=t.bounds.get(n);return a&&a.x===r&&a.y===o&&a.w===i&&a.h===s?false:(ee(e,n,r,o,i,s),a?(a.x=r,a.y=o,a.w=i,a.h=s):t.bounds.set(n,{x:r,y:o,w:i,h:s}),true)}function yi(e,t){e.bounds.delete(t);}function gi(e){e.bounds.clear();}function Je(e,t){return $e(e,t.x,t.y,t.width,t.height)}function bi(e,t,n){let r=Je(e,t),o=Array.from(r);return {visible:o,total:n,culled:n-o.length}}function Si(e,t){return n=>{let r$1=k(n,[r]);for(let o of r$1){let i$1=r.x[o],s=r.y[o],a=1,l=1;i(n,o,K$1)&&(a=K$1.width[o],l=K$1.height[o]),yn(e,t,o,i$1,s,a,l);}return n}}function hi(e,t){return n=>{let r=t();return Je(e,r),n}}function xi(){try{let e=globalThis.require?.("os");if(e?.cpus)return Math.max(1,e.cpus().length-1)}catch{}return 2}var gn={maxWorkers:xi(),taskTimeout:5e3,enabled:true},c=null,et=0;function vi(e){return c={config:{...gn,...e},queue:[],running:new Map,handlers:new Map,completedCount:0,cancelledCount:0,failedCount:0,totalDurationMs:0},bn()}function Ei(e,t){c&&c.handlers.set(e,t);}function Mi(e,t,n="normal"){if(!c||!c.config.enabled)return ki(e,t);let r=`task-${et++}`,o={id:r,type:e,input:t,priority:n,queuedAt:Date.now()};return new Promise(i=>{if(!c){i({id:r,type:e,output:void 0,cancelled:false,error:"Worker pool not initialized",durationMs:0});return}let s=c.handlers.get(e);if(!s){i({id:r,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[n],m=c.queue.length;for(let y=0;y<c.queue.length;y++){let g=c.queue[y];if(g&&l[g.task.priority]>u){m=y;break}}c.queue.splice(m,0,a),queueMicrotask(()=>Di());})}function Ci(e){if(!c)return false;let t=c.queue.findIndex(n=>n.task.id===e);if(t>=0){let[n]=c.queue.splice(t,1);return n?(n.resolve({id:e,type:n.task.type,output:void 0,cancelled:true,error:void 0,durationMs:0}),c.cancelledCount++,true):false}return false}function Ti(e){if(!c)return 0;let t=0,n=[];for(let r of c.queue)r.task.type===e?(r.resolve({id:r.task.id,type:e,output:void 0,cancelled:true,error:void 0,durationMs:0}),t++):n.push(r);return c.queue=n,c.cancelledCount+=t,t}function bn(){if(!c)return {config:gn,stats:{activeWorkers:0,idleWorkers:0,queuedTasks:0,runningTasks:0,completedTasks:0,cancelledTasks:0,failedTasks:0,avgDurationMs:0,enabled:false}};let e=c.completedCount+c.failedCount;return {config:c.config,stats:{activeWorkers:c.running.size,idleWorkers:Math.max(0,c.config.maxWorkers-c.running.size),queuedTasks:c.queue.length,runningTasks:c.running.size,completedTasks:c.completedCount,cancelledTasks:c.cancelledCount,failedTasks:c.failedCount,avgDurationMs:e>0?c.totalDurationMs/e:0,enabled:c.config.enabled}}}function Pi(){if(c){for(let e of c.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 c.running.values())e.timerHandle&&clearTimeout(e.timerHandle);c=null,et=0;}}function ki(e,t){let n=`sync-${et++}`,r=c?.handlers.get(e);if(!r)return Promise.resolve({id:n,type:e,output:void 0,cancelled:false,error:`No handler registered for task type: ${e}`,durationMs:0});let o=performance.now();try{let i=r(t);return Promise.resolve({id:n,type:e,output:i,cancelled:!1,error:void 0,durationMs:performance.now()-o})}catch(i){return Promise.resolve({id:n,type:e,output:void 0,cancelled:false,error:i instanceof Error?i.message:String(i),durationMs:performance.now()-o})}}function Ai(e,t){t<=0||(e.timerHandle=setTimeout(()=>{c&&(c.running.delete(e.task.id),c.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 Wi(e,t,n){c&&c.running.has(e.task.id)&&(e.timerHandle&&clearTimeout(e.timerHandle),c.running.delete(e.task.id),c.completedCount++,c.totalDurationMs+=n,e.resolve({id:e.task.id,type:e.task.type,output:t,cancelled:false,error:void 0,durationMs:n}));}function Fi(e,t,n){c&&c.running.has(e.task.id)&&(e.timerHandle&&clearTimeout(e.timerHandle),c.running.delete(e.task.id),c.failedCount++,c.totalDurationMs+=n,e.resolve({id:e.task.id,type:e.task.type,output:void 0,cancelled:false,error:t instanceof Error?t.message:String(t),durationMs:n}));}function Hi(e){if(!c)return;Ai(e,c.config.taskTimeout);let t=performance.now();try{let n=e.handler(e.task.input),r=performance.now()-t;Wi(e,n,r);}catch(n){let r=performance.now()-t;Fi(e,n,r);}}function Di(){if(c)for(;c.queue.length>0&&c.running.size<c.config.maxWorkers;){let e=c.queue.shift();if(!e)break;c.running.set(e.task.id,e),Hi(e);}}export{kr as $,Ze as $a,nr as A,to as Aa,ii as Ab,rr as B,no as Ba,ai as Bb,ir as C,ro as Ca,si as Cb,zt as D,oo as Da,li as Db,ar as E,io as Ea,ui as Eb,sr as F,Ve as Fa,mn as Fb,Lt as G,so as Ga,fn as Gb,dr as H,Ge as Ha,dn as Hb,pr as I,qe as Ia,pn as Ib,Ot as J,Ue as Ja,di as Jb,yr as K,yo as Ka,pi as Kb,q as L,go as La,yn as Lb,me as M,bo as Ma,yi as Mb,X as N,So as Na,gi as Nb,wt as O,ho as Oa,Je as Ob,br as P,xo as Pa,bi as Pb,Sr as Q,vo as Qa,Si as Qb,Vt as R,Eo as Ra,hi as Rb,hr as S,Mo as Sa,vi as Sb,xr as T,tn as Ta,Ei as Tb,vr as U,Fo as Ua,Mi as Ub,Er as V,Ho as Va,Ci as Vb,Mr as W,Do as Wa,Ti as Wb,Gt as X,nn as Xa,bn as Xb,Cr as Y,Bo as Ya,Pi as Yb,Tr as Z,Yo as Za,Pr as _,ee as _a,Bt as a,qt as aa,$e as ab,An as b,Ar as ba,Xo as bb,He as c,Wr as ca,rn as cb,Wn as d,Zt as da,Io as db,Fn as e,Fr as ea,on as eb,Hn as f,Hr as fa,zo as fb,Bn as g,Dr as ga,Ne as gb,De as h,Le as ha,Qe as hb,Re as i,Rr as ia,Lo as ib,Ln as j,Br as ja,Oo as jb,On as k,Yr as ka,wo as kb,wn as l,Xr as la,Vo as lb,Vn as m,jt as ma,Go as mb,Gn as n,Or as na,qo as nb,qn as o,Oe as oa,Uo as ob,Un as p,wr as pa,an as pb,Nn as q,Vr as qa,sn as qb,_n as r,Gr as ra,$o as rb,Xt as s,Jt as sa,cn as sb,It as t,qr as ta,Jo as tb,Ye as u,Ur as ua,je as ub,Kn as v,Nr as va,ei as vb,jn as w,_r as wa,ti as wb,Jn as x,Zr as xa,ni as xb,er as y,Jr as ya,ri as yb,tr as z,eo as za,oi as zb};
@@ -1,3 +0,0 @@
1
- import {b,e as e$3,d as d$2,f as f$3,g as g$1}from'./chunk-DNRXW56C.js';import {e}from'./chunk-FYEBZAWN.js';import {W,g,Y as Y$1,$,_ as _$1,s,x,j as j$1,L,O,d as d$1}from'./chunk-W5OU7Z6J.js';import {f as f$1,e as e$2}from'./chunk-SHUC6JWA.js';import {f as f$2,d}from'./chunk-G7GIWWLE.js';import {n,e as e$1}from'./chunk-PXXGH3BV.js';import {readFileSync}from'fs';import {z}from'zod';n();f$1();var N=z.union([z.number(),z.string().regex(/^\d+(\.\d+)?%$/,'Percentage must be in format "50%"'),z.literal("auto")]),f=z.union([z.number(),z.string().regex(/^\d+(\.\d+)?%$/,'Percentage must be in format "50%"'),z.enum(["center","left","right","top","bottom"])]),J=z.object({left:f.optional(),top:f.optional(),right:f.optional(),bottom:f.optional(),width:N.optional(),height:N.optional(),fg:z.union([z.string(),z.number()]).optional(),bg:z.union([z.string(),z.number()]).optional(),text:z.string(),font:z.union([z.string(),b]).optional(),shrink:z.boolean().optional()}),Y=1e4,c={isBigText:new Uint8Array(Y)},U="terminus-14-bold",T=new Map,a=new Map;function _(t){if(t===void 0)return 0;if(typeof t=="number")return t;switch(t){case "left":case "top":return 0;case "center":return 0;case "right":case "bottom":return 0}return 0}function M(t){return t===void 0||typeof t=="string"&&t==="auto"?"auto":t}async function j(t){return t?typeof t!="string"?t:t==="terminus-14-bold"||t==="terminus-14-normal"?d$2(t):H(t):d$2(U)}function q(t){return t?typeof t!="string"?t:t==="terminus-14-bold"||t==="terminus-14-normal"?e$3(t):T.get(t):e$3(U)}function K(t,i){let n=" ".repeat(t);return Array.from({length:i},()=>n)}function Q(t,i){let n=t.charHeight,r=Array.from({length:n},()=>"");for(let e of Array.from(i)){let u=f$3(t,e)?g$1(t,e):K(t.charWidth,t.charHeight);for(let g=0;g<n;g+=1){let O=u[g]??"";r[g]=`${r[g]}${O}`;}}return r}function B(t,i){let n=i.split(`
2
- `),r=[];for(let e of n)r.push(...Q(t,e));return r.join(`
3
- `)}function H(t){let i=T.get(t);if(i)return i;let n=readFileSync(t,"utf8"),r=JSON.parse(n),e=b.parse(r);return T.set(t,e),e}var ft=H;function R(t,i,n){let r=_(n.left),e=_(n.top);s(t,i,r,e);let s$1=M(n.width),u=M(n.height);L(t,i,s$1,u);let g=n.shrink!==false;O(t,i,g);}function X(t,i,n){n.fg===void 0&&n.bg===void 0||d$1(t,i,{fg:n.fg!==void 0?e$2(n.fg):void 0,bg:n.bg!==void 0?e$2(n.bg):void 0});}async function Z(t,i,n){let r=await j(n.font),e$1=B(r,n.text);a.set(i,n.text),e(t,i,e$1);}async function ct(t,i,n){let r=J.parse(n),e=i;c.isBigText[e]=1,R(t,e,r),X(t,e,r),await Z(t,e,r),W(t,e,{focusable:true});let s$1={eid:e,show(){return j$1(t,e,true),s$1},hide(){return j$1(t,e,false),s$1},move(u,g$1){return x(t,e,u,g$1),g(t,e),s$1},setPosition(u,g$1){return s(t,e,u,g$1),g(t,e),s$1},setText(u){return tt(t,e,u,r.font),s$1},getText(){return a.get(e)??""},focus(){return _$1(t,e),s$1},blur(){return $(t,e),s$1},isFocused(){return Y$1(t,e)},append(u){return d(t,e,u),s$1},getChildren(){return f$2(t,e)},destroy(){c.isBigText[e]=0,a.delete(e),e$1(t,e);}};return s$1}function w(t,i,n,r){let e$1=q(r);if(e$1){let s=B(e$1,n);a.set(i,n),e(t,i,s),g(t,i);return}j(r).then(s=>{let u=B(s,n);a.set(i,n),e(t,i,u),g(t,i);});}function tt(t,i,n,r){return w(t,i,n,r),i}function pt(t,i){return c.isBigText[i]===1}function lt(){c.isBigText.fill(0),a.clear();}export{J as a,c as b,H as c,ft as d,ct as e,w as f,pt as g,lt as h};