This commit is contained in:
ThinLiquid 2024-03-30 12:00:38 +00:00
parent 92ee768bd6
commit 51337d6cfe
21 changed files with 19 additions and 19 deletions

View file

@ -1,4 +1,4 @@
import{H as o,d as w}from"./index-55c1b714.js";import{n as f}from"./application-default-icon-a19c8ba0.js";const T={config:{name:"Desktop",type:"process",targetVer:"1.0.0-indev.0"},run:async e=>{const c=(await e.loadLibrary("lib/SplashScreen")).getElement();c.appendTo(document.body);const{fs:s}=e,y=await e.loadLibrary("lib/WindowManager"),t=await e.loadLibrary("lib/Launcher"),{Input:b}=await e.loadLibrary("lib/Components"),p=b.new().attr({type:"text",placeholder:"Search"}).style({width:"100%","border-radius":"10px",padding:"5px","margin-bottom":"10px",position:"sticky",top:"0"}).on("keyup",()=>{n.elm.innerHTML="",i().catch(a=>console.error(a))}).appendTo(t.element),n=new o("div").style({overflow:"scroll",height:"max-content",position:"relative"});new o("div").style({height:"100%",overflow:"scroll","padding-bottom":"30px"}).append(n).appendTo(t.element).class("gradient-blur");const i=async()=>{n.html(""),(await s.readdir("/home/Applications/")).filter(l=>l.endsWith(".app")&&(p.elm!==null?l.toLowerCase().includes(p.elm.value.toLowerCase()):!0)).forEach(l=>{s.readFile(`/home/Applications/${l}`).then(async r=>{const u=w.Buffer.from(r).toString(),d=await e.kernel.getExecutable(u),g=new o("div").style({display:"flex","align-items":"center",padding:"5px",cursor:"pointer",gap:"10px","border-bottom":"1px solid var(--surface-0)"}).on("click",()=>{e.launch(u).catch(h=>console.error(h)),t.toggle()}).appendTo(n);new o("img").attr({src:d.config.icon??f,alt:`${d.config.name} icon`,height:"40px"}).appendTo(g),new o("div").text(d.config.name).appendTo(g)}).catch(r=>console.error(r))})};await i(),document.addEventListener("fs_update",()=>{i().catch(a=>console.error(a))}),t.element.on("click",a=>{a.target===a.currentTarget&&t.toggle()});const m=await e.loadLibrary("lib/StatusBar");m.element.qs('div[data-toolbar-id="start"]')?.on("click",()=>{t.toggle()}),document.body.style.flexDirection="column-reverse",await m.element.appendTo(document.body),await t.element.appendTo(document.body),await y.windowArea.appendTo(document.body),c.cleanup(),t.element.prepend(new o("div").html(` import{H as o,d as w}from"./index-4bca499f.js";import{n as f}from"./application-default-icon-a19c8ba0.js";const T={config:{name:"Desktop",type:"process",targetVer:"1.0.0-indev.0"},run:async e=>{const c=(await e.loadLibrary("lib/SplashScreen")).getElement();c.appendTo(document.body);const{fs:s}=e,y=await e.loadLibrary("lib/WindowManager"),t=await e.loadLibrary("lib/Launcher"),{Input:b}=await e.loadLibrary("lib/Components"),p=b.new().attr({type:"text",placeholder:"Search"}).style({width:"100%","border-radius":"10px",padding:"5px","margin-bottom":"10px",position:"sticky",top:"0"}).on("keyup",()=>{n.elm.innerHTML="",i().catch(a=>console.error(a))}).appendTo(t.element),n=new o("div").style({overflow:"scroll",height:"max-content",position:"relative"});new o("div").style({height:"100%",overflow:"scroll","padding-bottom":"30px"}).append(n).appendTo(t.element).class("gradient-blur");const i=async()=>{n.html(""),(await s.readdir("/home/Applications/")).filter(l=>l.endsWith(".app")&&(p.elm!==null?l.toLowerCase().includes(p.elm.value.toLowerCase()):!0)).forEach(l=>{s.readFile(`/home/Applications/${l}`).then(async r=>{const u=w.Buffer.from(r).toString(),d=await e.kernel.getExecutable(u),g=new o("div").style({display:"flex","align-items":"center",padding:"5px",cursor:"pointer",gap:"10px","border-bottom":"1px solid var(--surface-0)"}).on("click",()=>{e.launch(u).catch(h=>console.error(h)),t.toggle()}).appendTo(n);new o("img").attr({src:d.config.icon??f,alt:`${d.config.name} icon`,height:"40px"}).appendTo(g),new o("div").text(d.config.name).appendTo(g)}).catch(r=>console.error(r))})};await i(),document.addEventListener("fs_update",()=>{i().catch(a=>console.error(a))}),t.element.on("click",a=>{a.target===a.currentTarget&&t.toggle()});const m=await e.loadLibrary("lib/StatusBar");m.element.qs('div[data-toolbar-id="start"]')?.on("click",()=>{t.toggle()}),document.body.style.flexDirection="column-reverse",await m.element.appendTo(document.body),await t.element.appendTo(document.body),await y.windowArea.appendTo(document.body),c.cleanup(),t.element.prepend(new o("div").html(`
<ins class="adsbygoogle" <ins class="adsbygoogle"
style="display:block" style="display:block"
data-ad-format="fluid" data-ad-format="fluid"

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -1,4 +1,4 @@
import{d as u}from"./index-55c1b714.js";const w="/FlowOS/assets/file-manager-0e3c2c9d.svg",h={config:{name:"Files",type:"process",icon:w,targetVer:"1.0.0-indev.0"},run:async i=>{const s=await i.loadLibrary("lib/WindowManager").then(e=>e.createWindow({title:"Files",icon:w,width:500,height:400},i)),n=i.fs,r=await i.loadLibrary("lib/MIMETypes");s.content.style.display="flex",s.content.style.flexDirection="column";let d="/home";async function c(e){d=e;const b=await n.readdir(e),y=e==="/"?'<span class="material-symbols-rounded">first_page</span>':'<span class="back material-symbols-rounded">chevron_left</span>';s.content.innerHTML=` import{d as u}from"./index-4bca499f.js";const w="/FlowOS/assets/file-manager-0e3c2c9d.svg",h={config:{name:"Files",type:"process",icon:w,targetVer:"1.0.0-indev.0"},run:async i=>{const s=await i.loadLibrary("lib/WindowManager").then(e=>e.createWindow({title:"Files",icon:w,width:500,height:400},i)),n=i.fs,r=await i.loadLibrary("lib/MIMETypes");s.content.style.display="flex",s.content.style.flexDirection="column";let d="/home";async function c(e){d=e;const b=await n.readdir(e),y=e==="/"?'<span class="material-symbols-rounded">first_page</span>':'<span class="back material-symbols-rounded">chevron_left</span>';s.content.innerHTML=`
<div style="padding: 5px;display: flex;align-items: center;gap: 5px;"> <div style="padding: 5px;display: flex;align-items: center;gap: 5px;">
${y}${e} ${y}${e}
<div style="flex:1;"></div> <div style="flex:1;"></div>

View file

@ -1 +1 @@
import{H as t}from"./index-55c1b714.js";const n={config:{name:"HTML",type:"library",targetVer:"1.0.0-indev.0"},init:(a,e,r)=>{},data:t};export{n as default}; import{H as t}from"./index-4bca499f.js";const n={config:{name:"HTML",type:"library",targetVer:"1.0.0-indev.0"},init:(a,e,r)=>{},data:t};export{n as default};

View file

@ -1 +1 @@
import{d as l}from"./index-55c1b714.js";const i="/FlowOS/assets/org.gnome.Loupe-1c680d25.svg",g={config:{name:"Image Viewer",type:"process",icon:i,targetVer:"1.0.0-indev.0"},run:async t=>{if(Object.keys(t.data).length>0){const e=await t.loadLibrary("lib/WindowManager").then(a=>a.createWindow({title:"Image Viewer",icon:i,width:500,height:500},t)),o=t.fs,r=await t.loadLibrary("lib/MIMETypes"),d=await t.loadLibrary("lib/HTML"),n=async()=>{e.content.innerHTML="";const a=await o.readFile(t.data.path),c=`data:${r[t.data.path.split(".").at(-1)].type};base64,${encodeURIComponent(l.Buffer.from(a).toString("base64"))}`;new d("div").style({width:"100%",height:"100%",background:`url(${c})`,"background-size":"contain","background-position":"center","background-repeat":"no-repeat","aspect-ratio":"1 / 1"}).appendTo(e.content)};await n(),document.addEventListener("fs_update",()=>{n().catch(a=>console.error(a))});return}await t.kill(),await t.launch("apps/Files")}};export{g as default}; import{d as l}from"./index-4bca499f.js";const i="/FlowOS/assets/org.gnome.Loupe-1c680d25.svg",g={config:{name:"Image Viewer",type:"process",icon:i,targetVer:"1.0.0-indev.0"},run:async t=>{if(Object.keys(t.data).length>0){const e=await t.loadLibrary("lib/WindowManager").then(a=>a.createWindow({title:"Image Viewer",icon:i,width:500,height:500},t)),o=t.fs,r=await t.loadLibrary("lib/MIMETypes"),d=await t.loadLibrary("lib/HTML"),n=async()=>{e.content.innerHTML="";const a=await o.readFile(t.data.path),c=`data:${r[t.data.path.split(".").at(-1)].type};base64,${encodeURIComponent(l.Buffer.from(a).toString("base64"))}`;new d("div").style({width:"100%",height:"100%",background:`url(${c})`,"background-size":"contain","background-position":"center","background-repeat":"no-repeat","aspect-ratio":"1 / 1"}).appendTo(e.content)};await n(),document.addEventListener("fs_update",()=>{n().catch(a=>console.error(a))});return}await t.kill(),await t.launch("apps/Files")}};export{g as default};

View file

@ -1 +1 @@
import{H as t}from"./index-55c1b714.js";const s="/FlowOS/assets/userinfo-2a654358.svg",o="/FlowOS/assets/badge-629f981b.png",r={config:{name:"Info",type:"process",icon:s,targetVer:"1.0.0-indev.0"},run:async n=>{const e=await n.loadLibrary("lib/WindowManager").then(a=>a.createWindow({title:"Info",icon:s,width:300,height:400,canResize:!1},n));e.content.style.padding="10px",e.content.style.textAlign="center",e.content.style.display="flex",e.content.style.flexDirection="column",e.content.style.justifyContent="center",e.content.style.alignItems="center",e.content.style.background="var(--base)",new t("div").appendTo(e.content).appendMany(new t("h1").style({margin:"0"}).text("FlowOS").append(new t("sup").text(`${n.sysInfo.codename}`).style({"font-size":"0.5em"})),new t("p").style({margin:"0"}).text(`v${String(n.sysInfo.version)}`),new t("br"),new t("a").attr({href:"https://discord.gg/nj93ywpyRy"}).append(new t("img").attr({src:o,height:"50"})),new t("br"),new t("a").text("Discord").attr({href:"https://discord.gg/86F8dK9vfn",class:"discord"}),new t("span").text(" - "),new t("a").text("Github").attr({href:"https://github.com/Flow-Works/FlowOS",class:"github"}))}};export{r as default}; import{H as t}from"./index-4bca499f.js";const s="/FlowOS/assets/userinfo-2a654358.svg",o="/FlowOS/assets/badge-629f981b.png",r={config:{name:"Info",type:"process",icon:s,targetVer:"1.0.0-indev.0"},run:async n=>{const e=await n.loadLibrary("lib/WindowManager").then(a=>a.createWindow({title:"Info",icon:s,width:300,height:400,canResize:!1},n));e.content.style.padding="10px",e.content.style.textAlign="center",e.content.style.display="flex",e.content.style.flexDirection="column",e.content.style.justifyContent="center",e.content.style.alignItems="center",e.content.style.background="var(--base)",new t("div").appendTo(e.content).appendMany(new t("h1").style({margin:"0"}).text("FlowOS").append(new t("sup").text(`${n.sysInfo.codename}`).style({"font-size":"0.5em"})),new t("p").style({margin:"0"}).text(`v${String(n.sysInfo.version)}`),new t("br"),new t("a").attr({href:"https://discord.gg/nj93ywpyRy"}).append(new t("img").attr({src:o,height:"50"})),new t("br"),new t("a").text("Discord").attr({href:"https://discord.gg/86F8dK9vfn",class:"discord"}),new t("span").text(" - "),new t("a").text("Github").attr({href:"https://github.com/Flow-Works/FlowOS",class:"github"}))}};export{r as default};

View file

@ -1 +1 @@
import{d as m,l as u}from"./index-55c1b714.js";const d="/FlowOS/assets/preferences-system-c8f3e310.svg",f={config:{name:"Settings",type:"process",icon:d,targetVer:"2.0.0"},run:async a=>{const l=await a.loadLibrary("lib/WindowManager").then(t=>t.createWindow({title:"Settings",icon:d,width:500,height:500},a)),{fs:r}=a,o=await a.loadLibrary("lib/HTML"),{Input:w,Button:p,Dropdown:s}=await a.loadLibrary("lib/Components"),c=async t=>{l.content.innerHTML="";for(const e in t){let n=w.new();if(e==="THEME_PRIMARY"){const{extras:i}=JSON.parse(m.Buffer.from(await r.readFile(`/etc/themes/${t.THEME}.theme`)).toString());n=s.new(Object.keys(i))}else e==="THEME"&&(n=s.new((await r.readdir("/etc/themes")).map(i=>i.replace(".theme",""))));e==="THEME_PRIMARY"||e==="THEME"?n.elm.value=t[e]:n.attr({value:t[e]}),console.log(n.getValue()),new o("div").appendMany(new o("label").style({"text-transform":"capitalize"}).text(`${e.toLowerCase().replaceAll("_"," ")}:`),new o("br"),new o("div").style({display:"flex",gap:"5px"}).appendMany(n,p.new().text("Save").on("click",()=>{t[e]=n.getValue(),r.writeFile("/etc/flow",u.stringify(t)).then(()=>{document.dispatchEvent(new CustomEvent("config_update",{detail:{config:t}})),(e==="THEME"||e==="THEME_PRIMARY")&&document.dispatchEvent(new CustomEvent("theme_update",{}))}).catch(i=>console.error(i))}))).appendTo(l.content)}};await c(a.kernel.config),document.addEventListener("config_update",t=>{c(t.detail.config).catch(e=>console.error(e))})}};export{f as default}; import{d as m,l as u}from"./index-4bca499f.js";const d="/FlowOS/assets/preferences-system-c8f3e310.svg",f={config:{name:"Settings",type:"process",icon:d,targetVer:"2.0.0"},run:async a=>{const l=await a.loadLibrary("lib/WindowManager").then(t=>t.createWindow({title:"Settings",icon:d,width:500,height:500},a)),{fs:r}=a,o=await a.loadLibrary("lib/HTML"),{Input:w,Button:p,Dropdown:s}=await a.loadLibrary("lib/Components"),c=async t=>{l.content.innerHTML="";for(const e in t){let n=w.new();if(e==="THEME_PRIMARY"){const{extras:i}=JSON.parse(m.Buffer.from(await r.readFile(`/etc/themes/${t.THEME}.theme`)).toString());n=s.new(Object.keys(i))}else e==="THEME"&&(n=s.new((await r.readdir("/etc/themes")).map(i=>i.replace(".theme",""))));e==="THEME_PRIMARY"||e==="THEME"?n.elm.value=t[e]:n.attr({value:t[e]}),console.log(n.getValue()),new o("div").appendMany(new o("label").style({"text-transform":"capitalize"}).text(`${e.toLowerCase().replaceAll("_"," ")}:`),new o("br"),new o("div").style({display:"flex",gap:"5px"}).appendMany(n,p.new().text("Save").on("click",()=>{t[e]=n.getValue(),r.writeFile("/etc/flow",u.stringify(t)).then(()=>{document.dispatchEvent(new CustomEvent("config_update",{detail:{config:t}})),(e==="THEME"||e==="THEME_PRIMARY")&&document.dispatchEvent(new CustomEvent("theme_update",{}))}).catch(i=>console.error(i))}))).appendTo(l.content)}};await c(a.kernel.config),document.addEventListener("config_update",t=>{c(t.detail.config).catch(e=>console.error(e))})}};export{f as default};

View file

@ -1 +1 @@
import{F as a}from"./index-55c1b714.js";let i,o;const r={config:{name:"SplashScreen",type:"library",targetVer:"1.0.0-indev.0"},init:(e,t,n)=>{i=e,o=t},data:{getElement:()=>{const{HTML:e}=i,t=new e("div").style({position:"absolute",top:"0",left:"0",width:"100vw",height:"100vh",display:"flex","flex-direction":"column","align-items":"center","justify-content":"center","z-index":"1000000"});new e("img").attr({src:a,width:128}).appendTo(t);const n=new e("h1").style({margin:"0"}).text("FlowOS").appendTo(t);return new e("sup").style({"font-size":"0.5em"}).text(o.codename).appendTo(n),new e("p").style({margin:"0"}).text("loading...").appendTo(t),t}}};export{r as default}; import{F as a}from"./index-4bca499f.js";let i,o;const r={config:{name:"SplashScreen",type:"library",targetVer:"1.0.0-indev.0"},init:(e,t,n)=>{i=e,o=t},data:{getElement:()=>{const{HTML:e}=i,t=new e("div").style({position:"absolute",top:"0",left:"0",width:"100vw",height:"100vh",display:"flex","flex-direction":"column","align-items":"center","justify-content":"center","z-index":"1000000"});new e("img").attr({src:a,width:128}).appendTo(t);const n=new e("h1").style({margin:"0"}).text("FlowOS").appendTo(t);return new e("sup").style({"font-size":"0.5em"}).text(o.codename).appendTo(n),new e("p").style({margin:"0"}).text("loading...").appendTo(t),t}}};export{r as default};

View file

@ -1 +1 @@
import{d as $}from"./index-55c1b714.js";import{n as k}from"./application-default-icon-a19c8ba0.js";const v="/FlowOS/assets/softwarecenter-ac603202.svg",j={config:{name:"Store",type:"process",icon:v,targetVer:"1.0.0-indev.0"},run:async o=>{const u=await o.loadLibrary("lib/WindowManager").then(e=>e.createWindow({title:"Store",icon:v,width:500,height:700},o)),{fs:c}=o,n=await o.loadLibrary("lib/HTML"),{Button:g,Icon:s}=await o.loadLibrary("lib/Components");fetch(`${o.kernel.config.SERVER}/apps/list/`).then(async e=>await e.json()).then(E).catch(e=>console.error(e));async function m(){const a=await(await fetch(`${o.kernel.config.SERVER}/apps/list/`)).json(),y=new n(u.content).qs("div");a.forEach(async(r,x)=>{const p=y?.qsa("div")?.[x];p?.html(""),fetch(`${o.kernel.config.SERVER}/cors/?url=${r}`).then(async t=>await t.json()).then(t=>{t.apps.forEach(i=>{c.exists(`/home/Applications/${i.url.split("/").at(-1)?.replace(".js",".app")}`).then(d=>{const l=g.new().style({display:"flex",gap:"5px","align-items":"center"}).text("Uninstall").prepend(s.new("delete")).on("click",()=>f(i.url));d?fetch(`${o.kernel.config.SERVER}/cors?url=${i.url}`).then(async h=>await h.text()).then(async h=>{$.Buffer.from(await c.readFile(`/opt/apps/${i.url.split("/").at(-1)}`)).toString()!==h&&l.text("Update").prepend(s.new("update")).on("click",()=>w(i.url))}).catch(h=>console.error(h)):l.text("Install").prepend(s.new("download")).on("click",()=>w(i.url)),new n("div").style({display:"flex","flex-direction":"row",gap:"10px",padding:"10px",background:"var(--base)","border-radius":"10px"}).appendMany(new n("img").attr({src:i.icon??k}).style({"aspect-ratio":"1 / 1",width:"60px",height:"60px"}),new n("div").appendMany(new n("h3").style({margin:"0"}).text(i.name),l)).appendTo(p)}).catch(d=>console.error(d))})}).catch(t=>console.error(t))})}function E(e){u.content.innerHTML="";const a=new n("div").appendTo(u.content);e.forEach(y=>{fetch(`${o.kernel.config.SERVER}/cors/?url=${y}`).then(async r=>await r.json()).then(r=>{const x=s.new("arrow_drop_up");new n("h2").text(r.name).style({margin:"0",padding:"10px",display:"flex",gap:"5px","align-items":"center"}).prepend(x).appendTo(a).on("click",()=>{p.style({height:p.elm.style.height==="0px"?"max-content":"0"}),x.text(`arrow_drop_${p.elm.style.height==="0px"?"up":"down"}`)});const p=new n("div").appendTo(a).style({height:"0",display:"flex","flex-direction":"column",gap:"10px",overflow:"hidden",padding:"0 10px"});r.apps.forEach(t=>{c.exists(`/home/Applications/${t.url.split("/").at(-1)?.replace(".js",".app")}`).then(i=>{const d=g.new().style({display:"flex",gap:"5px","align-items":"center"}).text("Uninstall").prepend(s.new("delete")).on("click",()=>f(t.url));i?fetch(`${o.kernel.config.SERVER}/cors?url=${t.url}`).then(async l=>await l.text()).then(async l=>{$.Buffer.from(await c.readFile(`/opt/apps/${t.url.split("/").at(-1)}`)).toString()!==l&&d.text("Update").prepend(s.new("update")).un("click",()=>f(t.url)).on("click",()=>w(t.url))}).catch(l=>console.error(l)):d.text("Install").prepend(s.new("download")).un("click",()=>f(t.url)).on("click",()=>w(t.url)),new n("div").style({display:"flex","flex-direction":"row",gap:"10px",padding:"10px",background:"var(--base)","border-radius":"10px"}).appendMany(new n("img").attr({src:t.icon??k}).style({"aspect-ratio":"1 / 1",width:"60px",height:"60px"}),new n("div").appendMany(new n("h3").style({margin:"0"}).text(t.name),d)).appendTo(p)}).catch(i=>console.error(i))})}).catch(r=>console.error(r))})}function w(e){fetch(e).then(async a=>await a.text()).then(async a=>{await c.writeFile(`/home/Applications/${e.split("/").at(-1)?.replace(".js",".app")}`,`apps/${e.split("/").at(-1)?.split(".")[0]}`),await c.writeFile(`/opt/apps/${e.split("/").at(-1)}`,a),await m()}).catch(a=>console.error(a))}function f(e){c.unlink(`/home/Applications/${e.split("/").at(-1)?.replace(".js",".app")}`).then(async()=>{await c.unlink(`/opt/apps/${e.split("/").at(-1)}`),await m()}).catch(a=>console.error(a))}}};export{j as default}; import{d as $}from"./index-4bca499f.js";import{n as k}from"./application-default-icon-a19c8ba0.js";const v="/FlowOS/assets/softwarecenter-ac603202.svg",j={config:{name:"Store",type:"process",icon:v,targetVer:"1.0.0-indev.0"},run:async o=>{const u=await o.loadLibrary("lib/WindowManager").then(e=>e.createWindow({title:"Store",icon:v,width:500,height:700},o)),{fs:c}=o,n=await o.loadLibrary("lib/HTML"),{Button:g,Icon:s}=await o.loadLibrary("lib/Components");fetch(`${o.kernel.config.SERVER}/apps/list/`).then(async e=>await e.json()).then(E).catch(e=>console.error(e));async function m(){const a=await(await fetch(`${o.kernel.config.SERVER}/apps/list/`)).json(),y=new n(u.content).qs("div");a.forEach(async(r,x)=>{const p=y?.qsa("div")?.[x];p?.html(""),fetch(`${o.kernel.config.SERVER}/cors/?url=${r}`).then(async t=>await t.json()).then(t=>{t.apps.forEach(i=>{c.exists(`/home/Applications/${i.url.split("/").at(-1)?.replace(".js",".app")}`).then(d=>{const l=g.new().style({display:"flex",gap:"5px","align-items":"center"}).text("Uninstall").prepend(s.new("delete")).on("click",()=>f(i.url));d?fetch(`${o.kernel.config.SERVER}/cors?url=${i.url}`).then(async h=>await h.text()).then(async h=>{$.Buffer.from(await c.readFile(`/opt/apps/${i.url.split("/").at(-1)}`)).toString()!==h&&l.text("Update").prepend(s.new("update")).on("click",()=>w(i.url))}).catch(h=>console.error(h)):l.text("Install").prepend(s.new("download")).on("click",()=>w(i.url)),new n("div").style({display:"flex","flex-direction":"row",gap:"10px",padding:"10px",background:"var(--base)","border-radius":"10px"}).appendMany(new n("img").attr({src:i.icon??k}).style({"aspect-ratio":"1 / 1",width:"60px",height:"60px"}),new n("div").appendMany(new n("h3").style({margin:"0"}).text(i.name),l)).appendTo(p)}).catch(d=>console.error(d))})}).catch(t=>console.error(t))})}function E(e){u.content.innerHTML="";const a=new n("div").appendTo(u.content);e.forEach(y=>{fetch(`${o.kernel.config.SERVER}/cors/?url=${y}`).then(async r=>await r.json()).then(r=>{const x=s.new("arrow_drop_up");new n("h2").text(r.name).style({margin:"0",padding:"10px",display:"flex",gap:"5px","align-items":"center"}).prepend(x).appendTo(a).on("click",()=>{p.style({height:p.elm.style.height==="0px"?"max-content":"0"}),x.text(`arrow_drop_${p.elm.style.height==="0px"?"up":"down"}`)});const p=new n("div").appendTo(a).style({height:"0",display:"flex","flex-direction":"column",gap:"10px",overflow:"hidden",padding:"0 10px"});r.apps.forEach(t=>{c.exists(`/home/Applications/${t.url.split("/").at(-1)?.replace(".js",".app")}`).then(i=>{const d=g.new().style({display:"flex",gap:"5px","align-items":"center"}).text("Uninstall").prepend(s.new("delete")).on("click",()=>f(t.url));i?fetch(`${o.kernel.config.SERVER}/cors?url=${t.url}`).then(async l=>await l.text()).then(async l=>{$.Buffer.from(await c.readFile(`/opt/apps/${t.url.split("/").at(-1)}`)).toString()!==l&&d.text("Update").prepend(s.new("update")).un("click",()=>f(t.url)).on("click",()=>w(t.url))}).catch(l=>console.error(l)):d.text("Install").prepend(s.new("download")).un("click",()=>f(t.url)).on("click",()=>w(t.url)),new n("div").style({display:"flex","flex-direction":"row",gap:"10px",padding:"10px",background:"var(--base)","border-radius":"10px"}).appendMany(new n("img").attr({src:t.icon??k}).style({"aspect-ratio":"1 / 1",width:"60px",height:"60px"}),new n("div").appendMany(new n("h3").style({margin:"0"}).text(t.name),d)).appendTo(p)}).catch(i=>console.error(i))})}).catch(r=>console.error(r))})}function w(e){fetch(e).then(async a=>await a.text()).then(async a=>{await c.writeFile(`/home/Applications/${e.split("/").at(-1)?.replace(".js",".app")}`,`apps/${e.split("/").at(-1)?.split(".")[0]}`),await c.writeFile(`/opt/apps/${e.split("/").at(-1)}`,a),await m()}).catch(a=>console.error(a))}function f(e){c.unlink(`/home/Applications/${e.split("/").at(-1)?.replace(".js",".app")}`).then(async()=>{await c.unlink(`/opt/apps/${e.split("/").at(-1)}`),await m()}).catch(a=>console.error(a))}}};export{j as default};

View file

@ -1,4 +1,4 @@
import{H as r}from"./index-55c1b714.js";import{s as m}from"./utils-2c87b698.js";import{n as w}from"./application-default-icon-a19c8ba0.js";function v(n,t){let s=0,e=0;n.querySelector("window-header")?.addEventListener("mousedown",i);function i(o){o.preventDefault(),d(),s=o.clientX,e=o.clientY,document.onmouseup=l,document.onmousemove=h}function h(o){o.preventDefault();const c=o.clientX-s,p=o.clientY-e,y=n.offsetTop+p,u=n.offsetLeft+c,x=t.offsetWidth,g=t.offsetHeight;y>=0&&y+n.offsetHeight<=g&&(n.style.top=`${y}px`),u>=0&&u+n.offsetWidth<=x&&(n.style.left=`${u}px`),s=o.clientX,e=o.clientY}function l(){document.onmouseup=null,document.onmousemove=null,t.onmouseleave=null}function d(){l(),t.onmouseenter=null}}class f{element;header;realContent;content;maximized;minimized;width;height;isMinimized=!1;isMaximized=!1;wm;process;onClose;config;constructor(t,s,e,i=()=>{}){this.process=t,this.wm=s,this.config=e,this.onClose=i,this.element=document.createElement("window"),this.element.style.zIndex=(s.getHighestZIndex()+1).toString(),this.element.style.position="absolute",this.focus(),this.element.onmousedown=()=>{this.focus()},(e.canResize===void 0||e.canResize===null)&&(e.canResize=!0),e.canResize||(this.element.style.resize="none"),this.element.style.width=`${e.width??300}px`,this.element.style.height=`${e.height??200}px`,this.header=document.createElement("window-header"),this.header.innerHTML=`<img alt="${m(e.title)} icon" src="${m(e.icon===""?w:e.icon)}"></img> <div class="title">${m(e.title)}</div><div style="flex:1;"></div><i id="min" class='material-symbols-rounded' style="margin-bottom: 5px;">minimize</i><i id="close" class='material-symbols-rounded'>close</i>`,e.canResize&&(this.header.innerHTML=`<img alt="${m(e.title)} icon" src="${m(e.icon===""?w:e.icon)}"></img> <div class="title">${m(e.title)}</div><div style="flex:1;"></div><i id="min" class='material-symbols-rounded' style="margin-bottom: 5px;">minimize</i><i id="max" class='material-symbols-rounded' style="font-size: 20px;">square</i><i id="close" class='material-symbols-rounded'>close</i>`),this.header.querySelector("#close").onclick=()=>{this.process.kill().catch(d=>console.error(d))},this.header.querySelector("#min").onclick=()=>this.toggleMin(),e.canResize&&(this.header.querySelector("#max").onclick=()=>this.toggleMax()),this.realContent=document.createElement("window-content");const h=this.realContent.attachShadow({mode:"open"});h.innerHTML=` import{H as r}from"./index-4bca499f.js";import{s as m}from"./utils-2c87b698.js";import{n as w}from"./application-default-icon-a19c8ba0.js";function v(n,t){let s=0,e=0;n.querySelector("window-header")?.addEventListener("mousedown",i);function i(o){o.preventDefault(),d(),s=o.clientX,e=o.clientY,document.onmouseup=l,document.onmousemove=h}function h(o){o.preventDefault();const c=o.clientX-s,p=o.clientY-e,y=n.offsetTop+p,u=n.offsetLeft+c,x=t.offsetWidth,g=t.offsetHeight;y>=0&&y+n.offsetHeight<=g&&(n.style.top=`${y}px`),u>=0&&u+n.offsetWidth<=x&&(n.style.left=`${u}px`),s=o.clientX,e=o.clientY}function l(){document.onmouseup=null,document.onmousemove=null,t.onmouseleave=null}function d(){l(),t.onmouseenter=null}}class f{element;header;realContent;content;maximized;minimized;width;height;isMinimized=!1;isMaximized=!1;wm;process;onClose;config;constructor(t,s,e,i=()=>{}){this.process=t,this.wm=s,this.config=e,this.onClose=i,this.element=document.createElement("window"),this.element.style.zIndex=(s.getHighestZIndex()+1).toString(),this.element.style.position="absolute",this.focus(),this.element.onmousedown=()=>{this.focus()},(e.canResize===void 0||e.canResize===null)&&(e.canResize=!0),e.canResize||(this.element.style.resize="none"),this.element.style.width=`${e.width??300}px`,this.element.style.height=`${e.height??200}px`,this.header=document.createElement("window-header"),this.header.innerHTML=`<img alt="${m(e.title)} icon" src="${m(e.icon===""?w:e.icon)}"></img> <div class="title">${m(e.title)}</div><div style="flex:1;"></div><i id="min" class='material-symbols-rounded' style="margin-bottom: 5px;">minimize</i><i id="close" class='material-symbols-rounded'>close</i>`,e.canResize&&(this.header.innerHTML=`<img alt="${m(e.title)} icon" src="${m(e.icon===""?w:e.icon)}"></img> <div class="title">${m(e.title)}</div><div style="flex:1;"></div><i id="min" class='material-symbols-rounded' style="margin-bottom: 5px;">minimize</i><i id="max" class='material-symbols-rounded' style="font-size: 20px;">square</i><i id="close" class='material-symbols-rounded'>close</i>`),this.header.querySelector("#close").onclick=()=>{this.process.kill().catch(d=>console.error(d))},this.header.querySelector("#min").onclick=()=>this.toggleMin(),e.canResize&&(this.header.querySelector("#max").onclick=()=>this.toggleMax()),this.realContent=document.createElement("window-content");const h=this.realContent.attachShadow({mode:"open"});h.innerHTML=`
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" /> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
<style> <style>
.material-symbols-rounded { .material-symbols-rounded {

View file

@ -1,4 +1,4 @@
import{p as m,a as K,I as U,u as lt,l as et,g as dt}from"./Editor-079b8504.js";import{y as it,$ as J,b as pt,v as _,B as j,C as q,S as A,E as V}from"./utils-wvIv1qJ9-974d263a.js";import"./index-55c1b714.js";const ct=/[([{][^\n)\]}]*$|(?:(?:^|[^.])\b(?:if\s*\(.+?\)|else|case.+?:))[ \t]*$/,P=/\[]|\(\)|{}/,W=/<(?![!\d])([^\s>\/=$<%]+)(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*>[ \t]*$/,rt=/^<\/(?!\d)[^\s>\/=$<%]+\s*>/,Y=/[([{][^\n)\]}]*$/;m.clike=m.js=m.javascript=m.ts=m.typescript=m.java=m.cs=m.csharp=m.c=m.cpp={comments:{line:"//",block:["/*","*/"]},autoIndent:[([n],l)=>ct.test(l.slice(0,n)),([n,l],t)=>P.test(t[n-1]+t[l])]};m.css=m.sass=m.scss={comments:{block:["/*","*/"]},autoIndent:[([n],l)=>Y.test(l.slice(0,n)),([n,l],t)=>P.test(t[n-1]+t[l])]};const ot=/^(?:area|base|w?br|col|embed|hr|img|input|link|meta|source|track)$/,st=n=>!ot.test(n.match(W)?.[1]||"br");m.markup=m.html=m.markdown=m.md={comments:{block:["<!--","-->"]},autoIndent:[([n],l)=>st(l=l.slice(0,n))||Y.test(l),([n,l],t)=>P.test(t[n-1]+t[l])||st(t.slice(0,n))&&rt.test(t.slice(l))],autoCloseTags([n,l],t){const d=n==l&&(t.slice(0,n)+">").match(W)?.[1];if(d&&!ot.test(d))return`</${d}>`}};const F=/(?:^|[^\w$])<(?:(?!\d)([^\s>\/=<%]+)(?:(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)+(?:[^\s{*<>\/=]+(?:(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)*=\s*(?:"[^"]*"|'[^']*'|[^\s{'"\/>=]+|(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})))?|(?:\{(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\.{3}(?:[^{}]|(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\}))*\})))*(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)*)?>[ \t]*$/,ut=/^<\/(?!\d)[^\s>\/=<%]*\s*>/,gt=({tags:n,pairs:l},{brackets:t,pairs:d},x)=>{for(let w=n.length,$,v=0;$=n[--w];)if($[3]>x&&$[1]<x)v=$[1];else if($[2]<2&&!$[5]&&$[1]>=v&&$[3]<=x&&!(n[l[w]]?.[1]<x)){for(let k=t.length,f;f=t[--k];)if(f[1]>=$[3]&&f[1]<x&&f[3]=="{"&&!(t[d[k]]?.[1]<x))return;return!0}},nt={line:"//",block:["/*","*/"]},ft={block:["{/*","*/}"]};m.jsx=m.tsx={comments:nt,getComments(n,l){const{matchBrackets:t,matchTags:d}=n.extensions;return(t&&d?gt(d,t,l):it(n,".plain-text",0,0,l))?ft:nt},autoIndent:[([n],l)=>F.test(l=l.slice(0,n))||ct.test(l),([n,l],t)=>P.test(t[n-1]+t[l])||F.test(t.slice(0,n))&&ut.test(t.slice(l))],autoCloseTags([n,l],t){const d=n==l&&(t.slice(0,n)+">").match(F);return d?`</${d[1]||""}>`:""}};const mt=/[([{][^\n)\]}]*$|:[ \t]*$/;m.py=m.python={comments:{line:"#"},autoIndent:[([n],l)=>mt.test(l.slice(0,n)),([n,l],t)=>P.test(t[n-1]+t[l])]};m.xml=m.ssml=m.atom=m.rss=m.mathml=m.svg={comments:{block:["<!--","-->"]},autoIndent:[([n],l)=>W.test(l=l.slice(0,n))||Y.test(l),([n,l],t)=>P.test(t[n-1]+t[l])||W.test(t.slice(0,n))&&rt.test(t.slice(l))],autoCloseTags([n,l],t){const d=n==l&&(t.slice(0,n)+">").match(W);return d?`</${d[1]}>`:""}};const Q=[],X=[],xt=(n=!0)=>{let l,t;const d=[],x=[],w=v=>{if(l=[],x.length=d.length=t=0,$(v.tokens,0),n)for(let k=0,f;f=d[k];){let o=f[0].alias;f[0].alias=(o?(o.join?.(" ")||o)+" ":"")+`bracket-${x[k++]==null?"error":"level-"+f[2]%12}`}},$=(v,k)=>{for(let f=0,o;o=v[f++];){if(typeof o!="string"){const y=o.type,E=o.content;if(y!="regex"){if(Array.isArray(E))$(E,k);else if((o.alias||y)=="punctuation"){let M=E.charCodeAt(E.length-1),b=!!Q[M];if(b||X[M]){if(d[t]=[o,k,0,E,b],b)l.push([t,M]);else for(let a=l.length;a;){let[e,s]=l[--a];if(M-s<3&&M-s>0){x[x[t]=e]=t,d[t][2]=d[e][2]=l.length=a;break}}t++}}}}k+=o.length}};return{update(v){this.update=()=>{},v.extensions.matchBrackets=this,v.addListener("tokenize",w),n&&v.tokens[0]?v.update():w(v)},brackets:d,pairs:x}};Q[40]=Q[91]=Q[123]=!0;X[41]=X[93]=X[125]=!0;const bt=()=>({update(n){this.update=()=>{};let l,t=-1,d=[],x=([k,f]=n.getSelection())=>{let o=k==f&&(l=n.extensions.matchBrackets)&&n.focused&&w(f)||-1;o!=t&&($(),o+1?(d=[l.pairs[o],o].map(y=>it(n,".punctuation",0,-1,l.brackets[y][1])),d[0].nextSibling==d[1]&&(d[0].textContent+=d[1].textContent,d[1].textContent="",d[1]=d[0]),$(!0)):d=[],t=o)},w=k=>{for(let f=0,{brackets:o,pairs:y}=l,E;E=o[++f];)if(!E[4]&&E[1]>k-2&&o[y[f]]?.[1]<=k)return f},$=k=>d.forEach(f=>f.classList.toggle("active-bracket",!!k)),v=addEventListener.bind(n.textarea);v("blur",()=>x()),v("focus",()=>x()),n.addListener("selectionChange",x),n.addListener("update",()=>{$(),t=-1})}}),$t=K('<div style="position:relative;display:inline-block"> </div>',"left:var(--padding-left)","guide-indents"),kt=K("","width:1px;position:absolute;background:var(--bg-guide-indent)"),vt=()=>{let n,l=0,t,d=-1,x;const w=[],$=[],v=$t.cloneNode(!0),k=v.lastChild,f=[],o=b=>{t=[];const a=E(b.split(` import{p as m,a as K,I as U,u as lt,l as et,g as dt}from"./Editor-58f9343f.js";import{y as it,$ as J,b as pt,v as _,B as j,C as q,S as A,E as V}from"./utils-wvIv1qJ9-967f341c.js";import"./index-4bca499f.js";const ct=/[([{][^\n)\]}]*$|(?:(?:^|[^.])\b(?:if\s*\(.+?\)|else|case.+?:))[ \t]*$/,P=/\[]|\(\)|{}/,W=/<(?![!\d])([^\s>\/=$<%]+)(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*>[ \t]*$/,rt=/^<\/(?!\d)[^\s>\/=$<%]+\s*>/,Y=/[([{][^\n)\]}]*$/;m.clike=m.js=m.javascript=m.ts=m.typescript=m.java=m.cs=m.csharp=m.c=m.cpp={comments:{line:"//",block:["/*","*/"]},autoIndent:[([n],l)=>ct.test(l.slice(0,n)),([n,l],t)=>P.test(t[n-1]+t[l])]};m.css=m.sass=m.scss={comments:{block:["/*","*/"]},autoIndent:[([n],l)=>Y.test(l.slice(0,n)),([n,l],t)=>P.test(t[n-1]+t[l])]};const ot=/^(?:area|base|w?br|col|embed|hr|img|input|link|meta|source|track)$/,st=n=>!ot.test(n.match(W)?.[1]||"br");m.markup=m.html=m.markdown=m.md={comments:{block:["<!--","-->"]},autoIndent:[([n],l)=>st(l=l.slice(0,n))||Y.test(l),([n,l],t)=>P.test(t[n-1]+t[l])||st(t.slice(0,n))&&rt.test(t.slice(l))],autoCloseTags([n,l],t){const d=n==l&&(t.slice(0,n)+">").match(W)?.[1];if(d&&!ot.test(d))return`</${d}>`}};const F=/(?:^|[^\w$])<(?:(?!\d)([^\s>\/=<%]+)(?:(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)+(?:[^\s{*<>\/=]+(?:(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)*=\s*(?:"[^"]*"|'[^']*'|[^\s{'"\/>=]+|(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})))?|(?:\{(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\.{3}(?:[^{}]|(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\}))*\})))*(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\/)*)?>[ \t]*$/,ut=/^<\/(?!\d)[^\s>\/=<%]*\s*>/,gt=({tags:n,pairs:l},{brackets:t,pairs:d},x)=>{for(let w=n.length,$,v=0;$=n[--w];)if($[3]>x&&$[1]<x)v=$[1];else if($[2]<2&&!$[5]&&$[1]>=v&&$[3]<=x&&!(n[l[w]]?.[1]<x)){for(let k=t.length,f;f=t[--k];)if(f[1]>=$[3]&&f[1]<x&&f[3]=="{"&&!(t[d[k]]?.[1]<x))return;return!0}},nt={line:"//",block:["/*","*/"]},ft={block:["{/*","*/}"]};m.jsx=m.tsx={comments:nt,getComments(n,l){const{matchBrackets:t,matchTags:d}=n.extensions;return(t&&d?gt(d,t,l):it(n,".plain-text",0,0,l))?ft:nt},autoIndent:[([n],l)=>F.test(l=l.slice(0,n))||ct.test(l),([n,l],t)=>P.test(t[n-1]+t[l])||F.test(t.slice(0,n))&&ut.test(t.slice(l))],autoCloseTags([n,l],t){const d=n==l&&(t.slice(0,n)+">").match(F);return d?`</${d[1]||""}>`:""}};const mt=/[([{][^\n)\]}]*$|:[ \t]*$/;m.py=m.python={comments:{line:"#"},autoIndent:[([n],l)=>mt.test(l.slice(0,n)),([n,l],t)=>P.test(t[n-1]+t[l])]};m.xml=m.ssml=m.atom=m.rss=m.mathml=m.svg={comments:{block:["<!--","-->"]},autoIndent:[([n],l)=>W.test(l=l.slice(0,n))||Y.test(l),([n,l],t)=>P.test(t[n-1]+t[l])||W.test(t.slice(0,n))&&rt.test(t.slice(l))],autoCloseTags([n,l],t){const d=n==l&&(t.slice(0,n)+">").match(W);return d?`</${d[1]}>`:""}};const Q=[],X=[],xt=(n=!0)=>{let l,t;const d=[],x=[],w=v=>{if(l=[],x.length=d.length=t=0,$(v.tokens,0),n)for(let k=0,f;f=d[k];){let o=f[0].alias;f[0].alias=(o?(o.join?.(" ")||o)+" ":"")+`bracket-${x[k++]==null?"error":"level-"+f[2]%12}`}},$=(v,k)=>{for(let f=0,o;o=v[f++];){if(typeof o!="string"){const y=o.type,E=o.content;if(y!="regex"){if(Array.isArray(E))$(E,k);else if((o.alias||y)=="punctuation"){let M=E.charCodeAt(E.length-1),b=!!Q[M];if(b||X[M]){if(d[t]=[o,k,0,E,b],b)l.push([t,M]);else for(let a=l.length;a;){let[e,s]=l[--a];if(M-s<3&&M-s>0){x[x[t]=e]=t,d[t][2]=d[e][2]=l.length=a;break}}t++}}}}k+=o.length}};return{update(v){this.update=()=>{},v.extensions.matchBrackets=this,v.addListener("tokenize",w),n&&v.tokens[0]?v.update():w(v)},brackets:d,pairs:x}};Q[40]=Q[91]=Q[123]=!0;X[41]=X[93]=X[125]=!0;const bt=()=>({update(n){this.update=()=>{};let l,t=-1,d=[],x=([k,f]=n.getSelection())=>{let o=k==f&&(l=n.extensions.matchBrackets)&&n.focused&&w(f)||-1;o!=t&&($(),o+1?(d=[l.pairs[o],o].map(y=>it(n,".punctuation",0,-1,l.brackets[y][1])),d[0].nextSibling==d[1]&&(d[0].textContent+=d[1].textContent,d[1].textContent="",d[1]=d[0]),$(!0)):d=[],t=o)},w=k=>{for(let f=0,{brackets:o,pairs:y}=l,E;E=o[++f];)if(!E[4]&&E[1]>k-2&&o[y[f]]?.[1]<=k)return f},$=k=>d.forEach(f=>f.classList.toggle("active-bracket",!!k)),v=addEventListener.bind(n.textarea);v("blur",()=>x()),v("focus",()=>x()),n.addListener("selectionChange",x),n.addListener("update",()=>{$(),t=-1})}}),$t=K('<div style="position:relative;display:inline-block"> </div>',"left:var(--padding-left)","guide-indents"),kt=K("","width:1px;position:absolute;background:var(--bg-guide-indent)"),vt=()=>{let n,l=0,t,d=-1,x;const w=[],$=[],v=$t.cloneNode(!0),k=v.lastChild,f=[],o=b=>{t=[];const a=E(b.split(`
`)),e=a.length;for(let s=0,i=[],r=a[0];r;s++){const{style:c}=w[s]||(w[s]=kt.cloneNode()),[h,u,p]=r,g=$[s];r=a[s+1],h!=g?.[0]&&(c.top=h+"00%"),u!=g?.[1]&&(c.height=u+"00%"),p!=g?.[2]&&(c.left=p+"00%");const C=i[0]!=h&&r?.[0]!=h,S=i[0]+i[1]!=h+u&&r?.[0]+r?.[1]!=h+u;for(let L=-C,z=u+S;L<z;L++)t[L+h]=s;i=$[s]=a[s]}for(let s=l;s>e;)w[--s].remove();k.append(...w.slice(l,l=e))},y=()=>{const b=t[x.activeLineNumber-1]??-1;b!=d&&(d>-1&&(w[d].className=""),b>-1&&(w[b].className="active")),d=b},E=b=>{const a=b.length,e=[],s=[];for(let i=0,r=-1,c=0,h=0;;c++){const u=c==a,p=u?0:f[c]=M(b[c]);if(p==-1)r==-1&&(r=c);else{for(let g=p;g<i;g++)e[g][1]=(r>-1&&(g>p||u)?r:c)-e[g][0];for(let g=i;g<p;)s[h++]=e[g]=[r==-1||g>i?c:r,0,g++*n];r=-1,i=p}if(u)break}return f.length=a,s},M=b=>{let a=b.search(/\S/),e=0;if(a==-1)return-1;for(let s=0;s<a;)e+=b[s++]==" "?n-e%n:1;return Math.ceil(e/n)};return{lines:k.children,indentLevels:f,update(b,a){x||(x=b,b.extensions.indentGuides=this,b.overlays.append(v),b.addListener("update",o),b.addListener("selectionChange",y)),v.style.display=a.wordWrap?"none":"",n!=(n=a.tabSize||2)&&(o(b.value),y())}}},yt=K(" <span></span> ","position:absolute;top:0;opacity:0;padding:inherit"),Ct=()=>{let n=!1,l,t=" ",d=" ",x=yt.cloneNode(!0),[w,$,v]=x.childNodes,k=([o,y,E])=>{let{value:M,activeLine:b}=l,a=E=="backward"?o:y,e=J(M,a),s=/.*/.exec(M.slice(a))[0];!e&&!s&&(s=" "),t!=e&&(w.data=t=e),d!=s&&(v.data=d=s),x.parentNode!=b&&b.prepend(x),n!=(n=!1)&&f()},f=()=>pt(l,$);return{update(o){l||(o.addListener("selectionChange",k),l=o,o.extensions.cursor=this,o.textarea.addEventListener("beforeinput",y=>{n=/history/.test(y.inputType)}),o.activeLine&&k(o.getSelection()))},getPosition(){const o=$.getBoundingClientRect(),y=l.overlays.getBoundingClientRect();return{top:o.y-y.y,bottom:y.bottom-o.bottom,left:o.x-y.x,right:y.right-o.x,height:o.height}},scrollIntoView:f,element:$}},at=navigator.clipboard,H=lt?4:2,St=(n=['""',"''","``","()","[]","{}"],l=/([^\w$'"`]["'`]|.[[({])[;:,.\])}>\s]|.[[({]`/s)=>({update(t,d){this.update=()=>{};let x;const{textarea:w,keyCommandMap:$,inputCommandMap:v,getSelection:k}=t,f=({insertSpaces:a=!0,tabSize:e})=>[a?" ":" ",a?e||2:1],o=()=>!t.extensions.cursor?.scrollIntoView(),y=([a,e],[s,i],r,c)=>(a<e||!c&&l.test((r[e-1]||" ")+s+(r[e]||" ")))&&!j(t,s+r.slice(a,e)+i,null,null,a+1,e+1),E=([a,e],s,i)=>a==e&&i[e]==s&&!t.setSelection(a+1),M=(a,e,s,i,r,c)=>{let h=e.join(` `)),e=a.length;for(let s=0,i=[],r=a[0];r;s++){const{style:c}=w[s]||(w[s]=kt.cloneNode()),[h,u,p]=r,g=$[s];r=a[s+1],h!=g?.[0]&&(c.top=h+"00%"),u!=g?.[1]&&(c.height=u+"00%"),p!=g?.[2]&&(c.left=p+"00%");const C=i[0]!=h&&r?.[0]!=h,S=i[0]+i[1]!=h+u&&r?.[0]+r?.[1]!=h+u;for(let L=-C,z=u+S;L<z;L++)t[L+h]=s;i=$[s]=a[s]}for(let s=l;s>e;)w[--s].remove();k.append(...w.slice(l,l=e))},y=()=>{const b=t[x.activeLineNumber-1]??-1;b!=d&&(d>-1&&(w[d].className=""),b>-1&&(w[b].className="active")),d=b},E=b=>{const a=b.length,e=[],s=[];for(let i=0,r=-1,c=0,h=0;;c++){const u=c==a,p=u?0:f[c]=M(b[c]);if(p==-1)r==-1&&(r=c);else{for(let g=p;g<i;g++)e[g][1]=(r>-1&&(g>p||u)?r:c)-e[g][0];for(let g=i;g<p;)s[h++]=e[g]=[r==-1||g>i?c:r,0,g++*n];r=-1,i=p}if(u)break}return f.length=a,s},M=b=>{let a=b.search(/\S/),e=0;if(a==-1)return-1;for(let s=0;s<a;)e+=b[s++]==" "?n-e%n:1;return Math.ceil(e/n)};return{lines:k.children,indentLevels:f,update(b,a){x||(x=b,b.extensions.indentGuides=this,b.overlays.append(v),b.addListener("update",o),b.addListener("selectionChange",y)),v.style.display=a.wordWrap?"none":"",n!=(n=a.tabSize||2)&&(o(b.value),y())}}},yt=K(" <span></span> ","position:absolute;top:0;opacity:0;padding:inherit"),Ct=()=>{let n=!1,l,t=" ",d=" ",x=yt.cloneNode(!0),[w,$,v]=x.childNodes,k=([o,y,E])=>{let{value:M,activeLine:b}=l,a=E=="backward"?o:y,e=J(M,a),s=/.*/.exec(M.slice(a))[0];!e&&!s&&(s=" "),t!=e&&(w.data=t=e),d!=s&&(v.data=d=s),x.parentNode!=b&&b.prepend(x),n!=(n=!1)&&f()},f=()=>pt(l,$);return{update(o){l||(o.addListener("selectionChange",k),l=o,o.extensions.cursor=this,o.textarea.addEventListener("beforeinput",y=>{n=/history/.test(y.inputType)}),o.activeLine&&k(o.getSelection()))},getPosition(){const o=$.getBoundingClientRect(),y=l.overlays.getBoundingClientRect();return{top:o.y-y.y,bottom:y.bottom-o.bottom,left:o.x-y.x,right:y.right-o.x,height:o.height}},scrollIntoView:f,element:$}},at=navigator.clipboard,H=lt?4:2,St=(n=['""',"''","``","()","[]","{}"],l=/([^\w$'"`]["'`]|.[[({])[;:,.\])}>\s]|.[[({]`/s)=>({update(t,d){this.update=()=>{};let x;const{textarea:w,keyCommandMap:$,inputCommandMap:v,getSelection:k}=t,f=({insertSpaces:a=!0,tabSize:e})=>[a?" ":" ",a?e||2:1],o=()=>!t.extensions.cursor?.scrollIntoView(),y=([a,e],[s,i],r,c)=>(a<e||!c&&l.test((r[e-1]||" ")+s+(r[e]||" ")))&&!j(t,s+r.slice(a,e)+i,null,null,a+1,e+1),E=([a,e],s,i)=>a==e&&i[e]==s&&!t.setSelection(a+1),M=(a,e,s,i,r,c)=>{let h=e.join(`
`);if(h!=a.join(` `);if(h!=a.join(`
`)){const u=a.length-1,p=e[u],g=a[u],C=g.length-p.length,S=e[0].length-a[0].length,L=s+(S<0?e:a)[0].search(/\S|$/),z=i-g.length+(C>0?p:g).search(/\S|$/),O=s-i+h.length+C,T=L>r?r:Math.max(L,r+S),B=c+s-i+h.length;j(t,h,s,i,T,c<z?B+C:Math.max(z+O,B))}},b=(a,e,s,i,r,c,h,u)=>{M(e,e.map(a?p=>p.slice(p.search(/\S|$/)?u-p.search(/\S|$/)%u:0):p=>p&&h.repeat(u-p.search(/\S|$/)%u)+p),s,i,r,c)};v["<"]=(a,e,s)=>y(e,"<>",s,!0),n.forEach(([a,e])=>{const s=a==e;v[a]=(i,r,c)=>(s&&E(r,e,c)||y(r,a+e,c))&&o(),s||(v[e]=(i,r,c)=>E(r,e,c)&&o())}),v[">"]=(a,e,s)=>{const i=m[_(t)]?.autoCloseTags?.call(t,e,s);i&&(j(t,">"+i,null,null,e[0]+1),U(a))},$.Tab=(a,[e,s],i)=>{if(et||d.readOnly||q(a)&6)return;const[r,c]=f(d),h=a.shiftKey,[u,p,g]=A(i,e,s);return e<s||h?b(h,u,p,g,e,s,r,c):j(t,r.repeat(c-(e-p)%c)),o()},$.Enter=(a,e,s)=>{const i=q(a)&7;if(!i||i==H){i&&(e=Array(2).fill(A(s,e[1],e[1])[2]));const[r,c]=f(d),h=m[_(t)]?.autoIndent,u=Math.floor(J(s,e[0]).search(/\S|$/)/c)*c,p=h?.[0]?.call(t,e,s)?c:0,g=h?.[1]?.call(t,e,s),C=` `)){const u=a.length-1,p=e[u],g=a[u],C=g.length-p.length,S=e[0].length-a[0].length,L=s+(S<0?e:a)[0].search(/\S|$/),z=i-g.length+(C>0?p:g).search(/\S|$/),O=s-i+h.length+C,T=L>r?r:Math.max(L,r+S),B=c+s-i+h.length;j(t,h,s,i,T,c<z?B+C:Math.max(z+O,B))}},b=(a,e,s,i,r,c,h,u)=>{M(e,e.map(a?p=>p.slice(p.search(/\S|$/)?u-p.search(/\S|$/)%u:0):p=>p&&h.repeat(u-p.search(/\S|$/)%u)+p),s,i,r,c)};v["<"]=(a,e,s)=>y(e,"<>",s,!0),n.forEach(([a,e])=>{const s=a==e;v[a]=(i,r,c)=>(s&&E(r,e,c)||y(r,a+e,c))&&o(),s||(v[e]=(i,r,c)=>E(r,e,c)&&o())}),v[">"]=(a,e,s)=>{const i=m[_(t)]?.autoCloseTags?.call(t,e,s);i&&(j(t,">"+i,null,null,e[0]+1),U(a))},$.Tab=(a,[e,s],i)=>{if(et||d.readOnly||q(a)&6)return;const[r,c]=f(d),h=a.shiftKey,[u,p,g]=A(i,e,s);return e<s||h?b(h,u,p,g,e,s,r,c):j(t,r.repeat(c-(e-p)%c)),o()},$.Enter=(a,e,s)=>{const i=q(a)&7;if(!i||i==H){i&&(e=Array(2).fill(A(s,e[1],e[1])[2]));const[r,c]=f(d),h=m[_(t)]?.autoIndent,u=Math.floor(J(s,e[0]).search(/\S|$/)/c)*c,p=h?.[0]?.call(t,e,s)?c:0,g=h?.[1]?.call(t,e,s),C=`

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
import{y as E}from"./utils-wvIv1qJ9-974d263a.js";import"./Editor-079b8504.js";import"./index-55c1b714.js";const S="xml,rss,atom,jsx,tsx".split(","),w="area,base,br,col,embed,hr,img,input,link,meta,source,track,wbr".split(","),v=a=>{let n=[],t=[],i,c,f=(l,o)=>{i=[],t.length=n.length=c=0,h(l,o,0)},h=(l,o,e)=>{for(let r=0,d=S.includes(o),u=l.length;r<u;){const s=l[r++],p=s.content,T=s.type,x=s.length;if(Array.isArray(p))if(T=="tag"){if(p[0].content){const g=a.value,m=p[0].length,y=g[e+1]=="/",b=g.slice(e+1+y,e+m),k=g[e+x-2]=="/"||!d&&w.includes(b);if(p[2]&&d&&h(p.slice(1,-1),o,e+m),!k)if(y)for(let L=i.length;L;)b==i[--L][1]&&(n[n[c]=i[L][0]]=c,i.length=L,L=0);else i.push([c,b]);t[c++]=[s,e,1+y,e+x,b,k]}}else{let g=s.alias||T;h(p,g.indexOf("language-")?o:g.slice(9),e)}e+=x}};return a.addListener("tokenize",l=>{f(l.tokens,l.language)}),f(a.tokens,a.options.language),a.extensions.matchTags={tags:t,pairs:n}},C=(a,n)=>{for(let t=0,i=n.length;t<i;t++)if(n[t][1]<=a&&n[t][3]>=a)return t},z=()=>({update(a){this.update=()=>{};let n,t;const{tags:i,pairs:c}=this.matcher=a.extensions.matchTags||v(a),f=l=>[n,t].forEach(o=>{o&&o.classList.toggle("active-tagname",!l)}),h=()=>{let[l,o]=a.getSelection(),e,r;if(l==o&&a.focused){let d=C(l,i),u=i[d];if(u&&u[4]){const s=E(a,".tag>.tag",-u[2],0),p=c[d];if(s&&p+1){const T=E(a,".tag>.tag",0,0,i[p][1]);[e,r]=[s,T].map(x=>{let g=x.childNodes,m=g[1];return(g[2]||m.data)&&(m=document.createElement("span"),m.append(...[].slice.call(g,1)),x.append(m)),m})}}}n!=e&&(f(!0),n=e,t=r,f())};a.addListener("selectionChange",h)}}),I=(a,n)=>({update(t){this.update=()=>{};let i,c;const{tags:f}=this.matcher=t.extensions.matchTags||v(t),h=e=>E(t,".tag>.punctuation",0,0,e),l=e=>[i,c].forEach(r=>{r&&r.classList.toggle(a,!e)}),o=()=>{let[e,r]=t.getSelection(),d,u;if(e==r&&t.focused){let s=f[C(e,f)];s&&(n||(r<s[1]+s[2]||r>s[1]+s[2]+s[4].length)&&h())&&(d=h(s[1]),u=h(s[3]-1))}(i!=d||c!=u)&&(l(!0),i=d,c=u,l())};t.addListener("selectionChange",o),t.textarea.addEventListener("focus",o),t.textarea.addEventListener("blur",o)}});export{v as createTagMatcher,I as highlightTagPunctuation,z as matchTags}; import{y as E}from"./utils-wvIv1qJ9-967f341c.js";import"./Editor-58f9343f.js";import"./index-4bca499f.js";const S="xml,rss,atom,jsx,tsx".split(","),w="area,base,br,col,embed,hr,img,input,link,meta,source,track,wbr".split(","),v=a=>{let n=[],t=[],i,c,f=(l,o)=>{i=[],t.length=n.length=c=0,h(l,o,0)},h=(l,o,e)=>{for(let r=0,d=S.includes(o),u=l.length;r<u;){const s=l[r++],p=s.content,T=s.type,x=s.length;if(Array.isArray(p))if(T=="tag"){if(p[0].content){const g=a.value,m=p[0].length,y=g[e+1]=="/",b=g.slice(e+1+y,e+m),k=g[e+x-2]=="/"||!d&&w.includes(b);if(p[2]&&d&&h(p.slice(1,-1),o,e+m),!k)if(y)for(let L=i.length;L;)b==i[--L][1]&&(n[n[c]=i[L][0]]=c,i.length=L,L=0);else i.push([c,b]);t[c++]=[s,e,1+y,e+x,b,k]}}else{let g=s.alias||T;h(p,g.indexOf("language-")?o:g.slice(9),e)}e+=x}};return a.addListener("tokenize",l=>{f(l.tokens,l.language)}),f(a.tokens,a.options.language),a.extensions.matchTags={tags:t,pairs:n}},C=(a,n)=>{for(let t=0,i=n.length;t<i;t++)if(n[t][1]<=a&&n[t][3]>=a)return t},z=()=>({update(a){this.update=()=>{};let n,t;const{tags:i,pairs:c}=this.matcher=a.extensions.matchTags||v(a),f=l=>[n,t].forEach(o=>{o&&o.classList.toggle("active-tagname",!l)}),h=()=>{let[l,o]=a.getSelection(),e,r;if(l==o&&a.focused){let d=C(l,i),u=i[d];if(u&&u[4]){const s=E(a,".tag>.tag",-u[2],0),p=c[d];if(s&&p+1){const T=E(a,".tag>.tag",0,0,i[p][1]);[e,r]=[s,T].map(x=>{let g=x.childNodes,m=g[1];return(g[2]||m.data)&&(m=document.createElement("span"),m.append(...[].slice.call(g,1)),x.append(m)),m})}}}n!=e&&(f(!0),n=e,t=r,f())};a.addListener("selectionChange",h)}}),I=(a,n)=>({update(t){this.update=()=>{};let i,c;const{tags:f}=this.matcher=t.extensions.matchTags||v(t),h=e=>E(t,".tag>.punctuation",0,0,e),l=e=>[i,c].forEach(r=>{r&&r.classList.toggle(a,!e)}),o=()=>{let[e,r]=t.getSelection(),d,u;if(e==r&&t.focused){let s=f[C(e,f)];s&&(n||(r<s[1]+s[2]||r>s[1]+s[2]+s[4].length)&&h())&&(d=h(s[1]),u=h(s[3]-1))}(i!=d||c!=u)&&(l(!0),i=d,c=u,l())};t.addListener("selectionChange",o),t.textarea.addEventListener("focus",o),t.textarea.addEventListener("blur",o)}});export{v as createTagMatcher,I as highlightTagPunctuation,z as matchTags};

View file

@ -1,4 +1,4 @@
import{o as x,f as m,r as u,s as p}from"./Editor-079b8504.js";const S=e=>e.replace(/[$+?|.^*(){}[\]\\]/g,"\\$&"),$=(e,t)=>e.slice(e.lastIndexOf(` import{o as x,f as m,r as u,s as p}from"./Editor-58f9343f.js";const S=e=>e.replace(/[$+?|.^*(){}[\]\\]/g,"\\$&"),$=(e,t)=>e.slice(e.lastIndexOf(`
`,t-1)+1,t),E=(e,t,l=t)=>[e.slice(t=e.lastIndexOf(` `,t-1)+1,t),E=(e,t,l=t)=>[e.slice(t=e.lastIndexOf(`
`,t-1)+1,l=(l=e.indexOf(` `,t-1)+1,l=(l=e.indexOf(`
`,l))+1?l:e.length).split(` `,l))+1?l:e.length).split(`

View file

@ -17,7 +17,7 @@
gtag('config', 'G-X4XVQRWEVM'); gtag('config', 'G-X4XVQRWEVM');
</script> </script>
<script type="module" crossorigin src="/FlowOS/assets/index-55c1b714.js"></script> <script type="module" crossorigin src="/FlowOS/assets/index-4bca499f.js"></script>
</head> </head>
<body> <body>