import{Tase,cast,easr,dasn}from"./core-CPpjJT4b.js";import{notifyaso}from"./error-BfnovtqK.js";consti=[],s=e=>{throwo(e),newError(e)},a=({attributes:{worker:e}})=>!e,d=newWeakSet;letl=!0;constc=({interpreter:e,io:t,run:r,type:n},{sync:o})=>{if(!o.is_pyterminal())return;r("from polyscript import currentScript as _; __terminal__ = _.terminal; del _");leti="";const{pyterminal_read:s,pyterminal_write:a}=o,d=newTextDecoder,l={isatty:!1,write:e=>(i=d.decode(e),a(i),e.length)};if(t.stderr=e=>{a(String(e.message||e))},"mpy"===n){e.registerJsModule("_pyscript_input",{input:s}),r("from _pyscript_input import input");constn=e=>{constt=[];letr=0;returnn=>{leto=0;for(constiofn)t.push(i),r?r--:194<=i&&i<=223?r=1:224<=i&&i<=239?r=2:240<=i&&i<=244&&(r=3),r||(o+=t.length,e(newUint8Array(t.splice(0))));returno}};t.stdout=n(l.write),e.registerJsModule("code",{interact(){letr="",o=1;consti=newTextEncoder,l=[],c=n((e=>{l.push(...e),a(d.decode(e))}));t.stdout=e=>o++>r.length?c(e):0,e.replInit(),functiont(){constn=d.decode(newUint8Array(l.splice(0))),a=`${s(n.split("\n").at(-1))}\r`;o=0,r=i.encode(a);for(consttofr)e.replProcessChar(t);t()}()}})}elsee.setStdout(l),e.setStderr(l),e.setStdin({isatty:!1,stdin:()=>s(i)})},m=asynce=>{const[{Terminal:t},{Readline:o},{FitAddon:i},{WebLinksAddon:s}]=awaitPromise.all([import("./xterm-DqawCVsv.js"),import("./xterm-readline-D247p8vq.js"),import("./xterm_addon-fit--gyF3PcZ.js"),import("./xterm_addon-web-links-Cnej-nJ6.js")]),a=newo,l=r=>{leto=e;constd=e.getAttribute("target");if(d){if(o=document.getElementById(d)||document.querySelector(d),!o)thrownewError(`Unknown target ${d}`)}elseo=document.createElement("py-terminal"),o.style.display="block",e.after(o);constl=newt({theme:{background:"#191A19",foreground:"#F5F2E7"},...r}),c=newi;returnl.loadAddon(c),l.loadAddon(a),l.loadAddon(news),l.open(o),c.fit(),l.focus(),n(e,{terminal:{value:l},process:{value:asynce=>{for(consttofe.split(/(?:\r|\n|\r\n)/)){l.paste(`${t}\n`);do{awaitnewPromise((e=>setTimeout(e,0)))}while(!a.activeRead?.resolve);a.activeRead.resolve(t)}}}}),l};e.hasAttribute("worker")?(r.main.onWorker.add((functione(t,n){d.has(n)||(d.add(n),r.main.onWorker.delete(e),l({disableStdin:!1,cursorBlink:!0,cursorStyle:"block"}),n.sync.is_pyterminal=()=>!0,n.sync.pyterminal_read=a.read.bind(a),n.sync.pyterminal_write=a.write.bind(a))})),r.worker.onReady.add(c)):r.main.onReady.add((functione({interpreter:t,io:n,run:o,type:i}){console.warn("py-terminal is read only on main thread"),r.main.onReady.delete(e),globalThis.__py_terminal__=l({disableStdin:!0,cursorBlink:!1,cursorStyle:"underline"}),o("from js import __py_terminal__ as __terminal__"),deleteglobalThis.__py_terminal__,n.stderr=e=>{a.write(String(e.message||e))},"mpy"===i&&(t.setStdin=Object,t.setStderr=Object,t.setStdout=({write:e})=>{n.stdout=e});lets="";constd=newTextDecoder,c={isatty:!1,write:e=>(s=d.decode(e),a.write(s),e.length)};t.setStdout(c),t.setStderr(c),t.setStdin({isatty:!1,stdin:()=>a.read(s)})}))};for(constrofe.keys()){conste=`script[type="${r}"][terminal],${r}-script[terminal]`;i.push(e),t.set(e,(asynce=>{constt=document.querySelectorAll(i.join(","));[].filter.call(t,a).length>1&&s("You can use at most 1 main terminal"),l&&(l=!1,document.head.append(Object.assign(document.createElement("link"),{rel:"stylesheet",href:newURL("./xterm.css",import.meta.url)}))),awaitm(e)}))}//# sourceMappingURL=py-terminal-CgcHH2nx.js.map