UNPKG

@zqui/react-terminal

Version:

A react component that renders a bash-like terminal.

137 lines (122 loc) 48.7 kB
var me=Object.defineProperty;var ie=Object.getOwnPropertySymbols;var Ge=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var se=(e,t,r)=>t in e?me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ee=(e,t)=>{for(var r in t||(t={}))Ge.call(t,r)&&se(e,r,t[r]);if(ie)for(var r of ie(t))Qe.call(t,r)&&se(e,r,t[r]);return e};var a=(e,t)=>me(e,"name",{value:t,configurable:!0});var y=(e,t,r)=>new Promise((n,o)=>{var i=m=>{try{c(r.next(m))}catch(p){o(p)}},s=m=>{try{c(r.throw(m))}catch(p){o(p)}},c=m=>m.done?n(m.value):Promise.resolve(m.value).then(i,s);c((r=r.apply(e,t)).next())});import Ze from"styled-components";var ce=Ze.header` display: flex; justify-content: left; align-items: center; height: ${e=>e.$topBarHeight}; /* background-color: #252a33; */ background-color: ${({$currTheme:e})=>e.topBarBg}; /* border-bottom: 1px solid #5d697e; */ text-align: center; position: relative; div { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } span { border-radius: 50%; height: 45%; aspect-ratio: 1; margin-left: 0.5rem; } #btn-red { background-color: #ff5a5b; } #btn-yellow { background-color: #ffbb38; } #btn-green { background-color: #00cd49; } `;import tt from"react";import et from"styled-components";var le=et.span` width: max-content; margin: 0; position: ${({$unsetPosition:e})=>e?"unset":"absolute"}; top: 0; left: 0; color: ${e=>e.$smallAndFaded?"#6a778a":`${e.$currTheme.promptColor}`}; font-size: ${e=>e.$smallAndFaded?"1rem":"inherit"}; visibility: ${({$isCommandActive:e})=>e?"hidden":"visible"}; .pwd { color: ${e=>e.$smallAndFaded?"#6a778a":`${e.$currTheme.pwdColor}`}; margin-inline: 0; /* color: #4d9edc; */ /* "#60ec8a" */ } `;import{jsxs as pe}from"react/jsx-runtime";var rt=tt.forwardRef(({prompt:e,unsetPosition:t,pwd:r,dontRenderDollar:n,smallAndFaded:o,terminalTheme:i,isCommandActive:s},c)=>pe(le,{$unsetPosition:t,$smallAndFaded:o,ref:c,$currTheme:i,$isCommandActive:s!=null?s:!1,children:[e,pe("span",{className:"pwd",children:["~",r!==""?"/":"",r,n?null:"$"]})]})),D=rt;import{Fragment as at,jsx as A,jsxs as ot}from"react/jsx-runtime";var nt=a(({prompt:e,pwd:t,topBarHeight:r,terminalTheme:n,showTopBarPrompt:o,btn1Callback:i,btn2Callback:s,btn3Callback:c})=>A(at,{children:ot(ce,{$topBarHeight:r,$currTheme:n,children:[A("span",{onClick:i,id:"btn-red"}),A("span",{onClick:s,id:"btn-yellow"}),A("span",{onClick:c,id:"btn-green"}),o&&A("div",{children:A(D,{prompt:e,pwd:t,unsetPosition:!0,dontRenderDollar:!0,smallAndFaded:!0,terminalTheme:n})})]})}),"TopBar"),de=nt;import it from"styled-components";var fe=it.div` width: ${({$width:e})=>e}; height: ${({$height:e})=>e}; border-radius: ${({$borderRadius:e})=>e}; overflow: hidden; .main-terminal { box-sizing: border-box; width: 100%; height: ${e=>e.$showTopBar?`calc(100% - ${e.$topBarHeight})`:"100%"}; padding: 0.5rem; font-size: 1rem; /* background-color: #252a33; */ background-color: ${({$currTheme:e})=>e.terminalBg}; overflow-y: auto; /* color: white; */ color: ${({$currTheme:e})=>e.textColor}; .input-prompt { position: relative; textarea { /* caret-color: transparent; */ resize: none; width: 100%; border: none; text-indent: calc( ${({$promptWidth:e})=>e+"px"} + 0.3rem ); background-color: inherit; color: inherit; font-family: inherit; font-size: inherit; &:focus { outline: none; } } } .scroll-div { visibility: hidden; } &:hover { cursor: text; } &::-webkit-scrollbar { width: 0.7rem; &:hover { cursor: pointer; } } &::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.2); } } `;import{useContext as Kt,useEffect as Ue,useRef as Vt,useState as We}from"react";import{createContext as st,useEffect as mt,useState as z}from"react";import{jsx as pt}from"react/jsx-runtime";var I=st(null),ct=a(e=>{let[t,r]=z([]),[n,o]=z([]),[i,s]=z(n.length),[c,m]=z(""),p=a(l=>{l&&r([l])},"welcomeMessageCallback");return mt(()=>{s(n.length)},[n]),pt(I.Provider,{value:{exchangeHistory:t,setExchangeHistory:r,commandHistory:n,setCommandHistory:o,historyPointer:i,setHistoryPointer:s,pwd:c,setPwd:m,welcomeMessageCallback:p},children:e.children})},"TerminalContextProvider"),lt=ct;import{useContext as ft}from"react";import dt from"styled-components";var ue=dt.div` width: 100%; word-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; -moz-hyphens: auto; span { margin-block: 0.5rem; } #command { margin-left: 0.3rem; } `;import{Fragment as te,jsx as S,jsxs as ht}from"react/jsx-runtime";var ut=a(({terminalTheme:e})=>{let{exchangeHistory:t}=ft(I);return S(te,{children:t.map((r,n)=>S(gt,{exchange:r,terminalTheme:e},n))})},"ExchangeHistory"),_t=a(e=>typeof e!="string","isExchangeObject"),gt=a(({exchange:e,terminalTheme:t})=>{if(_t(e)){let{prompt:r,pwd:n,command:o,output:i}=e;return S(te,{children:ht(ue,{children:[S(D,{prompt:r,pwd:n,unsetPosition:!0,terminalTheme:t}),S("span",{id:"command",children:o}),S("br",{}),S("span",{children:i})]})})}else return S(te,{children:S("span",{children:e})})},"Exchange"),_e=ut;import{useEffect as Ct,useState as bt}from"react";var E={light:{terminalBg:"#f5f5f7",topBarBg:"#e8e8ed",promptColor:"#4caf50",pwdColor:"#3498db",textColor:"#2c3e50",predictionColor:"#bdc3c7"},dark:{terminalBg:"#1e1e2e",topBarBg:"#181825",promptColor:"#89dceb",pwdColor:"#a6e3a1",textColor:"#cdd6f4",predictionColor:"#45475a"},hacker:{terminalBg:"black",topBarBg:"black",promptColor:"#196620",pwdColor:"green",textColor:"green",predictionColor:"#0f2f15"},sunset:{terminalBg:"#2c2137",topBarBg:"#2c2137",promptColor:"#ff9a8c",pwdColor:"#ffd700",textColor:"#f0e3ff",predictionColor:"#4a3b55"},nordica:{terminalBg:"#2e3440",topBarBg:"#2e3440",promptColor:"#88c0d0",pwdColor:"#ebcb8b",textColor:"#d8dee9",predictionColor:"#434c5e"},pastelDream:{terminalBg:"#f0e6ef",topBarBg:"#f0e6ef",promptColor:"#7c9885",pwdColor:"#aa6f73",textColor:"#5d576b",predictionColor:"#d6cbd3"},monokai:{terminalBg:"#272822",topBarBg:"#272822",promptColor:"#a6e22e",pwdColor:"#66d9ef",textColor:"#f8f8f2",predictionColor:"#49483e"},solarized:{terminalBg:"#002b36",topBarBg:"#002b36",promptColor:"#859900",pwdColor:"#2aa198",textColor:"#839496",predictionColor:"#073642"}};var vt=a(e=>{let[t,r]=bt(E.dark);return Ct(()=>{if(typeof e=="string")return r(E[e]);r(e)},[e]),[t,r]},"useTheme"),ge=vt;import Ot from"react-textarea-autosize";import{useContext as Lt,useEffect as Ft,useLayoutEffect as Mt,useMemo as Nt,useRef as Ut,useState as Fe}from"react";var H=["clear","echo","cd","ls","cat","pwd","mkdir","rm","date","setTheme"],he={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots14:{interval:80,frames:["\u2809\u2809","\u2808\u2819","\u2800\u2839","\u2800\u28B8","\u2800\u28F0","\u2880\u28E0","\u28C0\u28C0","\u28C4\u2840","\u28C6\u2800","\u2847\u2800","\u280F\u2800","\u280B\u2801"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[==== ]","[=====]","[ ====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[ ====]","[=====]","[==== ]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F3C3}","\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F3C3}\u{1F6B6}\u200D\u2642\uFE0F","\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F3C3}\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F","\u{1F6B6}\u200D\u2642\uFE0F\u{1F3C3}\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F","\u{1F3C3}\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F","\u{1F6B6}\u200D\u2642\uFE0F\u{1F3C3}\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F","\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F3C3}\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F","\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F6B6}\u200D\u2642\uFE0F\u{1F3C3}\u{1F6B6}\u200D\u2642\uFE0F"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},aesthetic2:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B1\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B1\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B1\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B1\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B1\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}};import Tt from"styled-components";import{Fragment as x,jsx as $,jsxs as v}from"react/jsx-runtime";var re=a(e=>v(x,{children:['"The ',e," command doesn't take any arguments. Did you mean"," ",$(k,{children:e}),'?"']}),"argsNotReqd"),Ce=a(e=>v(x,{children:["bash: ",$(k,{children:e}),": command not found"]}),"commandNotFound"),be=a(e=>v(x,{children:["bash: mkdir: cannot create directory '",$(k,{children:e}),"': File exists"]}),"redundantMkdir"),ve=a(e=>v(x,{children:["bash: cd: not a directory: ",$(k,{children:e})]}),"notADirectory"),U=a((e,t)=>v(x,{children:[t,": ",$(k,{children:e}),": No such file or directory"]}),"noSuchFileOrDirectory"),Te=a(e=>v(x,{children:["bash: cat: ",$(k,{children:e}),": Is a directory"]}),"isADirectory"),P=a(e=>v(x,{children:["bash: ",e,": too many arguments"]}),"tooManyArgs"),W=a((e,t)=>v(x,{children:['"The ',e," command requires one argument. Did you mean"," ",v(k,{children:[e," ",t]}),'?"']}),"argsReqd"),ye=a(e=>v(x,{children:["Invalid theme: ",$(k,{children:e})]}),"invalidTheme"),k=Tt.span` background-color: #373737; color: inherit; border-radius: 0.2rem; padding-inline: 0.5rem; `;var Se=/\/?\.?[\w-_]+\/\.\./,xe=a((e,t)=>(e[0]===t&&(e=e.substring(1)),e[e.length-1]===t&&(e=e.substring(0,e.length-0)),e),"trim"),d=a((e,t,r,n,o)=>e(i=>[...i,{command:r,output:t,prompt:o,pwd:n}]),"appendError"),_=a((e,t,r,n,o)=>e(i=>[...i,{command:r,output:t,prompt:o,pwd:n}]),"appendOutput"),O=a((e,t)=>{if(e==="")return t;e=xe(e,"/");let r=`${t?t+"/":""}${e}`;for(;r.match(Se);)r=r.replace(Se,"");return xe(r,"/")},"extractPath"),L=a((e,t,r)=>{let n=t.split("/");if(!n[0])return{dir:e};let o=e,i=0;for(;i<n.length;){let s=n[i],c=o[s];if(c&&typeof c=="object"){if(c.hasOwnProperty("content"))return{err:ve(t)};o=c}else return{err:U(t,r)};i++}return{dir:o}},"getDirectoryByPath");import{useEffect as yt,useRef as St,useState as xt}from"react";var Rt=a((e,t)=>{let[r,n]=xt(""),o=St(null),i=a(()=>{clearTimeout(o.current),o.current=setTimeout(()=>{let s=t.toLowerCase(),c="";s.length>0&&(c=e.find(m=>m.startsWith(t))),n(c||"")},50)},"handleInputChange");return yt(()=>(i(),()=>{clearTimeout(o.current)}),[e,t]),r},"usePrediction"),Re=Rt;import It from"styled-components";var Pt=It.span` color: ${({$predictionColor:e})=>e}; position: absolute; top: ${e=>e.$caretPosition.y+"px"}; left: calc(${e=>e.$caretPosition.x-15+"px"}); /* This fixed the issue of prediction span having a weird behavior where commands such as "foo bar" were predicted "bar" instead of " bar" when the caret was at the end of "foo" */ white-space: pre; `,Ie=Pt;import Wt from"use-caret-position";import{useEffect as kt,useState as wt}from"react";import{jsx as Bt}from"react/jsx-runtime";var $t=a(({loaderName:e="pipe",speedMultiplier:t=.5})=>{let[r,n]=wt(0),o=he[e];return kt(()=>{n(0);let i=o.interval/(.5+t/2),s=setInterval(()=>{n(c=>(c+1)%o.frames.length)},i);return()=>clearInterval(s)},[o,t]),Bt("div",{style:{width:"100%",whiteSpace:"pre"},children:o.frames[r]})},"CliLoader"),Pe=$t;var ke=a((e,t,r,n,o,i)=>{let c=O("",n),{err:m,dir:p}=L(r,c);if(m)return d(e,m,i,n,o);{let l={a:!1,l:!1};t.forEach(u=>{u.toLowerCase()==="-a"?l.a=!0:u.toLowerCase()==="-l"&&(l.l=!0)});let f=Object.keys(p);return l.a||(f=f.filter(u=>u[0]!==".")),_(e,f.join(" "),i,n,o)}},"ls"),we=a((e,t,r,n,o,i)=>{let s=o[0],c=s==null?void 0:s.split("/"),m=c==null?void 0:c.pop(),p=O(c.join("/"),t),{err:l,dir:f}=L(i,p);if(l)return d(e,l,n,t,r);if(f[m])if(f[m].hasOwnProperty("content")){let u=f[m].content;return _(e,u,n,t,r)}else return d(e,Te(m),n,t,r);else return d(e,U(m,n.split(" ")[0]),n,t,r)},"cat"),$e=a((e,t,r,n,o,i,s)=>{let m=n[0].split("/"),p=m.pop(),l=O(m.join("/"),t),f=ee({},o),{dir:u}=L(f,l);return u[p]?d(e,be(p),i,t,r):(u[p]={},_(e,"",i,t,r),s(f))},"mkdir"),Be=a((e,t,r,n,o,i,s)=>{let c=n[0];if(!c||c==="/")return r("");let m=O(c,e),{err:p}=L(o,m,s.split(" ")[0]);return p?d(i,p,s,e,t):(_(i,"",s,e,t),r(m))},"cd"),De=a((e,t,r)=>{let n=`/${e}`;_(r,n,"pwd",e,t)},"getPwd"),Ae=a((e,t,r,n,o,i,s)=>{let m=t[0].split("/"),p=m.pop(),l=O(m.join("/"),r),f=ee({},o),{dir:u}=L(f,l);return u[p]?(delete u[p],_(e,"",s,r,n),i(f)):d(e,U(p,s.split(" ")[0]),s,r,n)},"rm");var Dt=a((e,t,r,n,o,i)=>y(void 0,null,function*(){t(s=>[...s,{command:r,output:i,prompt:o,pwd:n}]);try{let s=yield e();t(c=>{let m=c.pop();return m.output=s,[...c,m]})}catch(s){let c="An error occurred while executing the command.";t(m=>{let p=m.pop();return p.output=c,[...m,p]})}}),"executeAsyncCommand"),At=a((e,t,r,n,o)=>{_(t,e(),r,n,o)},"executeSyncCommand"),ne=a((e,t,r,n,o,i)=>y(void 0,null,function*(){typeof e=="function"?e.constructor.name==="AsyncFunction"?yield Dt(e,t,r,n,o,i):At(e,t,r,n,o):_(t,e,r,n,o)}),"executeCommand"),Ee=a((e,t,r,n,o,i,s)=>y(void 0,null,function*(){let c=t.join(" "),m=`${e} ${c}`;if(r[`${m}`])yield ne(r[`${m}`],n,m,o,i,s);else if(r[e]){let p=r[e];typeof p=="function"?yield ne(()=>p(c),n,m,o,i,s):yield ne(p,n,m,o,i,s)}else _(n,Ce(e),m,o,i)}),"processUserCommand"),Oe=a((e,t,r,n,o,i,s,c,m)=>{let p=r.join(" "),l=`${e} ${p}`;switch(e){case"clear":p.length!==0?d(n,re(e),l,t,o):n([]);break;case"echo":_(n,p,l,t,o);break;case"cd":r.length>1?d(n,P(e),l,t,o):r.length<1?_(n,p,l,t,o):Be(t,o,i,r,s,n,l);break;case"ls":r.length>1?d(n,P(e),l,t,o):ke(n,r,s,t,o,l);break;case"cat":r.length>1?d(n,P(e),l,t,o):r.length<1?d(n,W(e,"YOUR-FILE-NAME"),l,t,o):we(n,t,o,l,r,s);break;case"pwd":r.length!==0?d(n,re(e),l,t,o):De(t,o,n);break;case"mkdir":r.length>1?d(n,P(e),l,t,o):r.length<1?d(n,W(e,"NEW-DIR-NAME"),l,t,o):$e(n,t,o,r,s,l,c);break;case"rm":r.length>1?d(n,P(e),l,t,o):r.length<1?d(n,W(e,"YOUR-FILE/DIR"),l,t,o):Ae(n,r,t,o,s,c,l);break;case"date":r.length!==0?d(n,P(e),l,t,o):_(n,new Date().toString(),l,t,o);break;case"setTheme":r.length>1?d(n,P(e),l,t,o):r[0]?Object.keys(E).includes(r[0])?m(E[r[0]]):d(n,ye(r[0]),l,t,o):d(n,W(e,"dark"),l,t,o)}},"processInBuiltCommand");var Et=a((e,t,r,n,o,i,s,c,m)=>({processCommand:a(l=>y(void 0,null,function*(){let[f,...u]=l.trim().split(" ");H.includes(f)?Oe(f,r,u,t,n,c,i,s,m):yield Ee(f,u,e,t,r,n,o)}),"processCommand")}),"useCommandProcessor"),Le=Et;import{jsx as oe,jsxs as Jt}from"react/jsx-runtime";var Xt=a(({commandPrediction:e,predictionColor:t,structure:r,setStructure:n,commands:o,pwd:i,prompt:s,autoCompleteAnimation:c,setTerminalTheme:m,asyncCommandLoader:p,asyncCommandLoaderSpeed:l,isCommandActive:f,setIsCommandActive:u})=>{let{setExchangeHistory:X,commandHistory:w,setCommandHistory:K,historyPointer:h,setHistoryPointer:J,setPwd:V}=Lt(I),B=[...Object.keys(o||{}),...H],Y=Nt(()=>oe(Pe,{loaderName:p,speedMultiplier:l}),[p,l]),[g,T]=Fe(""),[G,M]=Fe(""),R=Ut(null),{x:j,y:Q,getPosition:N}=Wt(R),C=Re(B,g),{processCommand:Z}=Le(o,X,i,s,Y,r,n,V,m),q=a(b=>{T(b.target.value),N(R)},"handleChange"),Je=a(()=>y(void 0,null,function*(){u(!0),g?(K(b=>[...b,g]),yield Z(g)):_(X,"","",i,s),u(!1),T(""),M("")}),"handleEnterKey"),je=a(()=>{h===w.length&&M(g),h>0&&(T(w[h-1]),J(h-1))},"handleArrowUpKey"),qe=a(()=>{h<w.length&&(T(w[h+1]),J(h+1))},"handleArrowDownKey"),ze=a(()=>{C&&(c?C.replace(g,"").split("").join(",").split(",").forEach((Ke,Ve)=>{setTimeout(()=>{T(Ye=>Ye+Ke),N(R)},Ve*30)}):T(C))},"handleTabKey"),He=a(b=>y(void 0,null,function*(){switch(b.key){case"Enter":b.preventDefault(),yield Je();break;case"ArrowUp":b.preventDefault(),je();break;case"ArrowDown":b.preventDefault(),qe();break;case"Tab":b.preventDefault(),ze();break}}),"handleKeyDown");return Ft(()=>{h===w.length&&T(G)},[h]),Mt(()=>{R.current&&N(R)},[]),f?null:Jt("div",{style:{position:"relative"},children:[oe(Ot,{style:{padding:0},id:"main-terminal-input",onKeyDown:He,onChange:q,value:g,autoComplete:"off",spellCheck:!1,ref:R,autoFocus:!0}),e&&oe(Ie,{$caretPosition:{x:j,y:Q},$predictionColor:t,children:g&&g.length>0&&C.slice(g.length)})]})},"InputField"),Me=Xt;import{useState as jt,useEffect as qt,useRef as zt}from"react";var Ht=a((e,t)=>{let[r,n]=jt(),o=zt(null);return qt(()=>{var i;n((i=o.current)==null?void 0:i.getBoundingClientRect().width)},[e,t]),{promptWidth:r,promptRef:o}},"usePromptWidth"),Ne=Ht;import{jsx as F,jsxs as ae}from"react/jsx-runtime";var Yt=a(({prompt:e="user@anon:",commands:t,directoryStructure:r,height:n="100%",width:o="100%",borderRadius:i="0.7rem",commandPrediction:s=!1,showTopBar:c=!0,topBarHeight:m="8%",theme:p="dark",welcomeMessage:l="",showTopBarPrompt:f=!0,autoCompleteAnimation:u=!1,btn1Callback:X,btn2Callback:w,btn3Callback:K,asyncCommandLoader:h="aesthetic2",asyncCommandLoaderSpeed:J=.5})=>{let{exchangeHistory:V,pwd:B,commandHistory:Y,welcomeMessageCallback:g}=Kt(I),[T,G]=We(r),[M,R]=We(!1),j=Vt(null),{promptWidth:Q,promptRef:N}=Ne(e,B),[C,Z]=ge(p);return Ue(()=>{var q;(q=j.current)==null||q.scrollIntoView({behavior:"smooth"})},[V]),Ue(()=>{Y.length==0&&g(l)},[]),ae(fe,{$topBarHeight:m,$promptWidth:Q,$showTopBar:c,$currTheme:C,$height:n,$width:o,$borderRadius:i,children:[c&&F(de,{btn1Callback:X,btn2Callback:w,btn3Callback:K,topBarHeight:m,prompt:e,pwd:B,terminalTheme:C,showTopBarPrompt:f}),F("label",{htmlFor:"main-terminal-input",children:ae("div",{className:"main-terminal",children:[F(_e,{terminalTheme:C}),ae("div",{className:"input-prompt",children:[F(D,{prompt:e,ref:N,pwd:B,terminalTheme:C,isCommandActive:M}),F(Me,{predictionColor:C.predictionColor,commandPrediction:s,prompt:e,pwd:B,structure:T,setStructure:G,commands:t,autoCompleteAnimation:u,setTerminalTheme:Z,asyncCommandLoader:h,asyncCommandLoaderSpeed:J,isCommandActive:M,setIsCommandActive:R})]}),F("div",{className:"scroll-div",ref:j})]})})]})},"Terminal"),Xe=Yt;var Yn=Xe;export{I as TerminalContext,lt as TerminalContextProvider,Yn as default};