This commit is contained in:
ThinLiquid 2024-02-14 18:14:39 +00:00
commit 043deb1798
81 changed files with 44662 additions and 0 deletions

0
.nojekyll Normal file
View file

View file

@ -0,0 +1,46 @@
const l="/assets/web-browser-8b47647b.svg",d={config:{name:"Browser",type:"process",icon:l,targetVer:"1.0.0-indev.0"},run:async i=>{const t=await i.loadLibrary("lib/WindowManager").then(o=>o.createWindow({title:"Browser",icon:l,width:500,height:700},i)),c=await i.loadLibrary("lib/XOR");t.content.style.height="100%",t.content.style.display="flex",t.content.style.flexDirection="column",t.content.innerHTML=`
<div style="display: flex;padding: 10px;gap: 10px;">
<div id="tabs-container" style="display: flex;gap: 10px;"></div>
<button class="add">+</button>
</div>
<div class="tools" style="display:flex;gap:10px;align-items:center;">
<i class='back material-symbols-rounded'>arrow_back</i>
<i class='forward material-symbols-rounded'>arrow_forward</i>
<i class='refresh material-symbols-rounded'>refresh</i>
<input class="inp" style="border-radius: 15px;flex: 1;background: var(--base);border:none;padding: 0px 16px;height: 30px;">
<i class='toggle material-symbols-rounded'>toggle_on</i>
<i class='fullscreen material-symbols-rounded'>fullscreen</i>
</div>
<div id="content-container"></div>
<style>
iframe {
width: 100%;
height: 100%;
border: none;
}
#content-container {
flex: 1;
background: white;
}
.add {
border: none;
background: transparent;
}
#tabs-container > div {
padding: 5px 10px;
}
.active {
background: var(--surface-0);
border-radius: 10px!important;
}
.tools {
background: var(--surface-0);
padding: 10px;
}
</style>
`;class a{active=!1;proxy=!0;header=document.createElement("div");iframe=document.createElement("iframe");constructor(e){this.iframe.src=`/service/${c.encode(e)}`,this.iframe.style.display="none",this.header.innerHTML=`
<span class="title">Tab</span>
<span class="close">&times;</sp>
`}toggle(){if(this.proxy=!this.proxy,!this.proxy){this===n.activeTab&&(t.content.querySelector(".toggle").innerHTML="toggle_off"),this.header.querySelector(".title").innerText="Tab",this.iframe.src=t.content.querySelector("input")?.value;return}this===n.activeTab&&(t.content.querySelector(".toggle").innerHTML="toggle_on"),this.iframe.src=`/service/${c.encode(t.content.querySelector("input")?.value??"")}`}}class s{tabs=[];tabHistory=[];activeTab;addTab(e){this.tabs.push(e),this.setActiveTab(e),e.header.querySelector(".title").onclick=()=>this.setActiveTab(e),e.header.querySelector(".close").onclick=()=>this.closeTab(e),t.content.querySelector("#content-container")?.appendChild(e.iframe),t.content.querySelector("#tabs-container")?.appendChild(e.header),e.iframe.onload=()=>{e.header.querySelector(".title").textContent=e.iframe.contentDocument?.title??"Tab",e.iframe.contentDocument?.title===""&&(e.header.querySelector(".title").textContent="Tab"),e===this.activeTab&&(t.content.querySelector(".inp").value=c.decode(e.iframe.contentWindow.location.href.split("/service/")[1]))}}closeTab(e){if(e.header.remove(),e.iframe.remove(),e.active){const r=t.content.querySelector("#tabs-container")?.lastElementChild;r!==void 0?(r?.querySelector(".title")).click():this.addTab(new a("https://google.com"))}}setActiveTab(e){if(this.tabs.forEach(r=>{r.active&&(r.active=!1,r.iframe.style.display="none",r.header.classList.remove("active"))}),e.proxy){try{t.content.querySelector(".inp").value=c.decode(e.iframe.contentWindow.location.href.split("/service/")[1])}catch{t.content.querySelector(".inp").value="about:blank"}t.content.querySelector(".toggle").innerHTML="toggle_on"}else{e.header.querySelector(".title").textContent="Tab";try{t.content.querySelector(".inp").value=e.iframe.contentWindow.location.href}catch{t.content.querySelector(".inp").value="about:blank"}t.content.querySelector(".toggle").innerHTML="toggle_off"}e.active=!0,e.iframe.style.display="block",e.header.classList.add("active"),this.activeTab=e,this.tabHistory.push(e)}}const n=new s;t.content.querySelector(".inp")?.addEventListener("keydown",o=>{o.key==="Enter"&&(n.activeTab.iframe.src=n.activeTab.proxy?`/service/${c.encode(t.content.querySelector(".inp").value)}`:t.content.querySelector(".inp").value)}),t.content.querySelector("button").onclick=()=>{n.addTab(new a("https://google.com"))},t.content.querySelector(".refresh").onclick=()=>{n.activeTab.iframe.contentWindow?.location.reload()},t.content.querySelector(".back").onclick=()=>{n.activeTab.iframe.contentWindow?.history.back()},t.content.querySelector(".forward").onclick=()=>{n.activeTab.iframe.contentWindow?.history.forward()},t.content.querySelector(".toggle").onclick=()=>{n.activeTab.toggle()},t.content.onfullscreenchange=()=>{t.content.querySelector(".fullscreen").innerHTML=document.fullscreenElement!==null?"fullscreen_exit":"fullscreen"},t.content.querySelector(".fullscreen").onclick=async()=>{document.fullscreenElement===null?await t.content.requestFullscreen().catch(o=>console.error):await document.exitFullscreen().catch(o=>console.error)},n.addTab(new a("https://google.com"))}};export{d as default};

View file

@ -0,0 +1 @@
let t;const u={config:{name:"Components",type:"library",targetVer:"0.0.1"},init:(r,n,e)=>{t=r},data:{Input:{new:()=>{const{HTML:r}=t,n=new r("input");return n.style({"border-radius":"5px",padding:"2.5px",outline:"none",background:"transparent",border:"1px solid var(--surface-0)"}),n}},Button:{new:(r="normal")=>{function n(d,a){const s=parseInt(d,16),p=(s>>16)+a,i=(s>>8&255)+a;return((s&255)+a|i<<8|p<<16).toString(16)}const{HTML:e}=t,o=new e("button");return o.style({"border-radius":"5px",padding:"2.5px 5px",background:"var(--base)",border:"1px solid var(--surface-0)"}),r==="normal"?o.style({background:"var(--base)"}):r==="primary"&&o.style({background:"var(--primary)",color:"var(--base)",border:`1px solid #${n(document.documentElement.style.getPropertyValue("--primary").replace("#",""),-40)}`}),o}},Icon:{new:(r,n="inherit")=>{const{HTML:e}=t;return new e("i").class("material-symbols-rounded").text(r).style({"font-size":n})}},Dropdown:{new:r=>{const{HTML:n}=t,e=new n("select");return e.style({"border-radius":"5px",padding:"2.5px",background:"var(--base)",border:"1px solid var(--surface-1)"}).appendMany(...r.map(o=>new n("option").text(o))),e}}}};export{u as default};

View file

@ -0,0 +1,11 @@
import{H as o,d as w}from"./index-10f4832e.js";import{n as f}from"./application-default-icon-38d880e7.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"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-if+5+1+2-3"
data-ad-client="ca-pub-9675905177363247"
data-ad-slot="2569234651"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
<\/script>
`))}};export{T as default};

99
assets/Editor-21b47d03.js Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

8
assets/Files-9e45a1b0.js Normal file
View file

@ -0,0 +1,8 @@
import{d as u}from"./index-10f4832e.js";const w="/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;">
${y}${e}
<div style="flex:1;"></div>
<i class='folder material-symbols-rounded' style="font-size: 17.5px;">create_new_folder</i><i class='file material-symbols-rounded' style="font-size: 17.5px;">note_add</i>
</div>
<div class="files" style="background: var(--base);flex: 1;border-radius: 10px;display: flex;flex-direction: column;"></div>
`,y!=='<span class="material-symbols-rounded">first_page</span>'&&(s.content.querySelector(".back").onclick=async()=>{await c(e.split("/").slice(0,-1).join("/"))}),s.content.querySelector(".file").onclick=async()=>{const t=prompt("Enter file name");t!=null&&await n.writeFile(`${e}/${t}`,"")},s.content.querySelector(".folder").onclick=async()=>{const t=prompt("Enter folder name");t!=null&&await n.mkdir(`${e}/${t}`)};for(const t of b){const l=e==="/"?"":"/",p=await n.stat(e+l+t),o=document.createElement("div");o.setAttribute("style","display: flex;gap: 5px;align-items:center;padding: 5px;border-bottom: 1px solid var(--text);display:flex;align-items:center;gap: 5px;");const g=()=>`<span class="material-symbols-rounded">${r[t.split(".")[1]]===void 0?"draft":r[t.split(".")[1]].icon}</span>`,x=p.isDirectory()?'<span class="material-symbols-rounded">folder</span>':g();o.innerHTML+=`${x} <span style="flex:1;">${t}</span><span class="material-symbols-rounded delete">delete_forever</span><span class="material-symbols-rounded rename">edit</span>`,o.querySelector(".rename").onclick=async()=>{const a=prompt("Rename");console.log(a),a!=null&&await n.rename(e+l+t,e+l+a)},o.querySelector(".delete").onclick=async()=>{p.isDirectory()?await n.rmdir(e+l+t):await n.unlink(e+l+t)};const m=async a=>{a.split(".").at(-1)==="lnk"?await n.readFile(a).then(async f=>{await m(u.Buffer.from(f).toString())}):a.split(".").at(-1)==="app"?await n.readFile(a).then(async f=>{await i.launch(u.Buffer.from(f).toString())}):await i.launch(r[a.split(".").at(-1)]===void 0?"apps/Editor":r[a.split(".")[1]].opensWith[0],{path:a})};o.ondblclick=async()=>{p.isDirectory()?await c(e+l+t):await m(e+l+t)},s.content.querySelector(".files")?.appendChild(o)}}await c(d),document.addEventListener("fs_update",()=>{c(d).catch(e=>console.error(e))})}};export{h as default};

1
assets/HTML-7606a1bb.js Normal file
View file

@ -0,0 +1 @@
import{H as t}from"./index-10f4832e.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

@ -0,0 +1 @@
import{d as l}from"./index-10f4832e.js";const i="/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};

1
assets/Info-93029680.js Normal file
View file

@ -0,0 +1 @@
import{H as t}from"./index-10f4832e.js";const s="/assets/userinfo-2a654358.svg",o="/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

@ -0,0 +1 @@
let e=!1;const t={config:{name:"Launcher",type:"library",targetVer:"1.0.0-indev.0"},init:(a,r)=>{t.data.element=new a.HTML("div").style({background:`${document.documentElement.style.getPropertyValue("--mantle")}E0`,width:"350px",height:"500px",margin:"20px",padding:"10px",overflow:"hidden","border-radius":"20px",border:"1px solid var(--surface-0)",position:"fixed",bottom:"-500px",left:"0",transition:"bottom 0.5s cubic-bezier(1,0,0,1)","z-index":"1000","box-shadow":"0 0 10px 0 rgba(0,0,0,0.5)","user-select":"none","backdrop-filter":"blur(10px)"})},data:{toggle:()=>(e?t.data.element.style({bottom:"-500px"}):t.data.element.style({bottom:"68px"}),e=!e,e)}};export{t as default};

View file

@ -0,0 +1 @@
const t={config:{name:"MIMETypes",type:"library",targetVer:"1.0.0-indev.0"},init:(i,e,p)=>{},data:{aac:{type:"audio/aac",description:"AAC Audio",opensWith:["apps/MusicPlayer"],icon:"audio_file"},abw:{type:"application/x-abiword",description:"AbiWord Document",opensWith:["apps/Editor"],icon:"description"},apng:{type:"image/apng",description:"Animated PNG File",opensWith:["apps/ImageViewer"],icon:"image"},app:{type:"application/x-flow-executable",description:"FlowOS Application",opensWith:[],icon:"deployed_code"},avif:{type:"image/avif",description:"AVIF Image",opensWith:["apps/ImageViewer"],icon:"image"},cjs:{type:"application/javascript",description:"CommonJS Module",opensWith:["apps/Editor"],icon:"code"},htm:{type:"text/html",description:"HTML Document",opensWith:["apps/Editor"],icon:"code"},html:{type:"text/html",description:"HTML Document",opensWith:["apps/Editor"],icon:"code"},js:{type:"text/javascript",description:"JavaScript File",opensWith:["apps/Editor"],icon:"code"},lnk:{type:"application/x-ms-shortcut",description:"Windows Shortcut",opensWith:[],icon:"file_present"},md:{type:"text/markdown",description:"Markdown Document",opensWith:["apps/Editor"],icon:"markdown"},mjs:{type:"text/javascript",description:"JavaScript Module",opensWith:["apps/Editor"],icon:"code"},mp4:{type:"video/mp4",description:"MP4 Video",opensWith:["apps/VideoPlayer"],icon:"video_file"},png:{type:"image/png",description:"PNG File",opensWith:["apps/ImageViewer"],icon:"image"},svg:{type:"image/svg+xml",description:"SVG File",opensWith:["apps/ImageViewer"],icon:"image"},theme:{type:"application/x-flow-theme",description:"FlowOS Theme",opensWith:["apps/Editor"],icon:"palette"},txt:{type:"text/plain",description:"Text Document",opensWith:["apps/Editor"],icon:"description"}}};export{t as default};

View file

@ -0,0 +1 @@
const o="/assets/software-properties-abb09ac9.svg",r="/assets/application-executable-b031e44a.svg",l="/assets/icon-library-63ab8699.svg",s={config:{name:"Manager",type:"process",icon:o,targetVer:"1.0.0-indev.0"},run:async e=>{const a=await e.loadLibrary("lib/WindowManager").then(n=>n.createWindow({title:"Manager",icon:o,width:350,height:500,canResize:!1},e)),t=await e.loadLibrary("lib/HTML");a.content.style.display="flex",a.content.style.flexDirection="column",a.content.style.gap="10px",a.content.style.padding="10px",a.content.style.background="var(--base)";for(const n in e.kernel.packageList){const i=new t("div").style({display:"flex",gap:"10px",padding:"10px",background:"var(--surface-0)",borderRadius:"10px"}).appendTo(a.content);new t("img").attr({src:e.kernel.packageList[n].executable.config.icon??(e.kernel.packageList[n].executable.config.type==="library"?l:r),style:"border-radius: 40%;aspect-ratio: 1 / 1;height: 50px;"}).appendTo(i);const c=new t("div").appendTo(i);new t("h3").style({margin:"0"}).text(e.kernel.packageList[n].executable.config.name).appendTo(c),new t("code").text(e.kernel.packageList[n].executable.config.type).appendTo(c)}}};export{s as default};

View file

@ -0,0 +1 @@
import{d as m,l as u}from"./index-10f4832e.js";const d="/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:o}=a,r=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 o.readFile(`/etc/themes/${t.THEME}.theme`)).toString());n=s.new(Object.keys(i))}else e==="THEME"&&(n=s.new((await o.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 r("div").appendMany(new r("label").style({"text-transform":"capitalize"}).text(`${e.toLowerCase().replaceAll("_"," ")}:`),new r("br"),new r("div").style({display:"flex",gap:"5px"}).appendMany(n,p.new().text("Save").on("click",()=>{t[e]=n.getValue(),o.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

@ -0,0 +1 @@
import{F as a}from"./index-10f4832e.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

@ -0,0 +1,13 @@
import{n as d}from"./application-default-icon-38d880e7.js";import{g as o}from"./utils-2c87b698.js";const t={config:{name:"StatusBar",type:"library",targetVer:"1.0.0-indev.0"},init:(e,a,n)=>{if(t.data.element=new e.HTML("toolbar"),t.data.element.html(`
<div class="outlined" data-toolbar-id="start"><span class="material-symbols-rounded">space_dashboard</span></div>
<div data-toolbar-id="apps"></div>
<div style="flex:1;"></div>
<div class="outlined" data-toolbar-id="plugins"><span class="material-symbols-rounded">expand_less</span></div>
<div class="outlined" data-toolbar-id="controls">
<span class="material-symbols-rounded battery">battery_2_bar</span>
<span class="material-symbols-rounded signal">signal_cellular_4_bar</span>
</div>
<div class="outlined" data-toolbar-id="calendar"></div>
`),setInterval(()=>{o().then(l=>{t.data.element.qs('div[data-toolbar-id="calendar"]')?.text(l)}).catch(l=>console.error)},1e3),"getBattery"in navigator)navigator.getBattery().then(l=>{t.data.updateBatteryIcon(l),l.addEventListener("levelchange",()=>{t.data.updateBatteryIcon(l)}),l.addEventListener("chargingchange",()=>{t.data.updateBatteryIcon(l)})});else{const l=document.querySelector('div[data-toolbar-id="controls"] > .battery');l!=null&&(l.innerHTML="battery_unknown")}async function i(l){fetch(`${a.config.SERVER}/bare/`).then(()=>{const r=performance.now()-l;t.data.updateIcon(r)}).catch(()=>{document.querySelector('div[data-toolbar-id="controls"] > .signal').innerHTML="signal_cellular_connected_no_internet_4_bar"})}setInterval(()=>i(performance.now()),1e4),document.addEventListener("app_opened",l=>{new e.HTML("app").appendMany(new e.HTML("img").attr({alt:`${l.detail.proc.config.name} icon`,"data-id":l.detail.token,src:l.detail.proc.config.icon??d}).on("click",()=>{l.detail.win.focus(),l.detail.win.toggleMin()})).appendTo(t.data.element.qs('div[data-toolbar-id="apps"]')?.elm)}),document.addEventListener("app_closed",l=>{t.data.element.qs('div[data-toolbar-id="apps"]')?.qs(`img[data-id="${l.detail.token}"]`)?.elm.parentElement?.remove()})},data:{updateBatteryIcon(e){let a="";e.charging===!0?e.level===1?a="battery_charging_full":e.level>=.9?a="battery_charging_90":e.level>=.8?a="battery_charging_80":e.level>=.6?a="battery_charging_60":e.level>=.5?a="battery_charging_50":e.level>=.3?a="battery_charging_30":e.level>=0&&(a="battery_charging_20"):e.level===1?a="battery_full":e.level>=.6?a="battery_6_bar":e.level>=.5?a="battery_5_bar":e.level>=.4?a="battery_4_bar":e.level>=.3?a="battery_3_bar":e.level>=.2?a="battery_2_bar":e.level>=.1?a="battery_1_bar":e.level>=0&&(a="battery_0_bar");const n=document.querySelector('div[data-toolbar-id="controls"] > .battery');n!=null&&(n.innerHTML=a)},updateIcon(e){let a="";e>=200&&e<400?a="signal_cellular_1_bar":e>=400&&e<600?a="signal_cellular_2_bar":e>=600&&e<800?a="signal_cellular_3_bar":e>=800?a="signal_cellular_4_bar":a="signal_cellular_0_bar",document.querySelector('div[data-toolbar-id="controls"] > .signal').innerHTML=a}}};export{t as default};

1
assets/Store-f86c6053.js Normal file
View file

@ -0,0 +1 @@
import{d as $}from"./index-10f4832e.js";import{n as k}from"./application-default-icon-38d880e7.js";const v="/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

@ -0,0 +1,15 @@
const l="/assets/utilities-system-monitor-125f7e39.svg",c={config:{name:"Task Manager",type:"process",icon:l,targetVer:"1.0.0-indev.0"},run:async n=>{const e=await n.loadLibrary("lib/WindowManager").then(d=>d.createWindow({title:"Task Manager",icon:l,width:600,height:200},n)),t=await n.loadLibrary("lib/HTML");e.content.style.display="flex",e.content.style.flexDirection="column",e.content.style.gap="10px",e.content.style.padding="10px",e.content.style.background="var(--base)",new t("style").html(`tbody tr:hover {
background: var(--surface-1);
border-radius: 10px;
}
tr:first-child td:first-child { border-top-left-radius: 10px; }
tr:first-child td:last-child { border-top-right-radius: 10px; }
tr:last-child td:first-child { border-bottom-left-radius: 10px; }
tr:last-child td:last-child { border-bottom-right-radius: 10px; }
table, table td, table th {
border: none!important;
border-collapse:collapse;
}`).appendTo(e.content);const r=new t("table").style({width:"100%"}).appendTo(e.content),o=()=>{const{processList:d}=n.kernel;r.html(""),new t("thead").appendTo(r).append(new t("tr").style({padding:"5px","border-radius":"10px"}).appendMany(new t("th").style({"text-align":"center",width:"10%"}).text("PID"),new t("th").style({"text-align":"left",width:"45%"}).text("Process Name"),new t("th").style({"text-align":"left",width:"45%"}).text("Session Token")));const i=new t("tbody").appendTo(r);for(const a of d)new t("tr").style({padding:"5px","border-radius":"10px"}).appendTo(i).appendMany(new t("td").style({"text-align":"center"}).text(a.pid.toString()),new t("td").style({"text-align":"left"}).text(a.name),new t("td").style({"text-align":"left"}).text(a.token)).on("click",()=>{n.killProcess(a.pid).catch(s=>console.error(s))})};o(),document.addEventListener("update_process",()=>o())}};export{c as default};

View file

@ -0,0 +1 @@
const i="/assets/theme-config-7bf94f6c.svg",w={config:{name:"Theme Maker",type:"process",icon:i,targetVer:"2.0.0"},run:async t=>{const o=await t.loadLibrary("lib/WindowManager"),n=await t.loadLibrary("lib/HTML"),{Input:c,Button:h}=await t.loadLibrary("lib/Components"),m=o.createWindow({title:"Theme Maker",icon:i,width:600,height:200},t),r=new n(m.content),l=["crust","mantle","base","surface-0","surface-1","surface-2","text"],s=c.new().attr({value:"My Theme"});r.appendMany(new n("div").appendMany(new n("label").text("Name: "),s),...l.map(e=>new n("div").appendMany(new n("label").text(`${e[0].toUpperCase()+e.slice(1)}: `),c.new().attr({type:"color",id:e,value:"#000000"}))),h.new().text("Create").on("click",()=>{const e={name:s.getValue(),colors:{}};l.forEach(a=>{e.colors[a]=r.qs(`#${a}`)?.getValue()}),t.fs.writeFile(`/etc/themes/${e.name.replace(/\s/g,"")}.theme`,JSON.stringify(e)).then(()=>{o.createModal("ok","Theme Manager","Theme created successfully.",t).catch(a=>console.error(a))}).catch(a=>console.error(a))}))}};export{w as default};

View file

@ -0,0 +1 @@
const i={config:{name:"User Access Control",type:"process",targetVer:"1.0.0-indev.0"},run:async a=>{if(Object.keys(a.data).length<=0)return;const t=a.data.process.process,r=a.data.executable;return await new Promise(o=>{a.loadLibrary("lib/WindowManager").then(async n=>{let e="Unknown action";switch(a.data.type){case"launch":{e=`${t.config.name} wants to launch ${r.config.name}`;break}case"kill":{e=`${t.config.name} wants to kill ${a.data.name}`;break}case"fs":{e=`${t.config.name} wants to modify/access ${a.data.path}`;break}}n.createModal("allow","User Account Control",e,a).then(async({value:c,win:s})=>{o(!!c)}).catch(c=>console.error(c))}).catch(n=>console.error(n))})}};export{i as default};

View file

@ -0,0 +1,23 @@
import{H as r}from"./index-10f4832e.js";import{s as m}from"./utils-2c87b698.js";import{n as w}from"./application-default-icon-38d880e7.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" />
<style>
.material-symbols-rounded {
font-variation-settings:
'FILL' 0,
'wght' 400,
'GRAD' 200,
'opsz' 48
}
</style>
<style>
* {
-ms-overflow-style: none;
scrollbar-width: none;
font-family: "Satoshi", sans-serif;
font-weight: 600;
color: var(--text);
}
</style>
`;const l=document.createElement("body");l.style.margin="0px",l.style.height="100%",h.appendChild(l),this.content=l,this.element.appendChild(this.header),this.element.appendChild(this.realContent),v(this.element,document.querySelector("window-area"))}toggleMin(){return this.isMinimized?(this.element.style.pointerEvents="all",this.element.style.opacity="1",this.element.style.transform="translateY(0)"):(this.element.style.pointerEvents="none",this.element.style.opacity="0",this.element.style.transform="translateY(10px)"),this.isMinimized=!this.isMinimized,this.isMinimized}prevTop;prevLeft;prevWidth;prevHeight;toggleMax(){return this.isMaximized?(this.element.style.width=this.prevWidth,this.element.style.height=this.prevHeight,this.element.style.top=this.prevTop,this.element.style.left=this.prevLeft):(this.prevTop=this.element.style.top,this.prevLeft=this.element.style.left,this.prevWidth=this.element.style.width,this.prevHeight=this.element.style.height,this.element.style.top="0",this.element.style.left="0",this.element.style.width="calc(100% - 2px)",this.element.style.height="calc(100% - 3px)"),this.isMaximized=!this.isMaximized,this.isMaximized}focus(){this.element.style.zIndex!==this.wm.getHighestZIndex().toString()&&(this.element.style.zIndex=(this.wm.getHighestZIndex()+1).toString())}close(){this.element.style.pointerEvents="none",this.element.style.opacity="0",this.element.style.transform="translateY(10px)",this.onClose(),setTimeout(()=>{this.element.remove()},200)}setTitle(t){this.header.querySelector(".title").innerText=t}}const a={config:{name:"WindowManager",type:"library",targetVer:"1.0.0-indev.0"},init:(n,t,s)=>{document.addEventListener("app_closed",e=>{a.data.windows.find(i=>i.process.token===e.detail.token?(i.close(),!0):!1)})},data:{windowArea:new r("window-area"),windows:[],getHighestZIndex:()=>{const n=a.data.windows.map(s=>parseInt(s.element.style.zIndex)),t=Math.max(...n);return t===-1/0?0:t},createWindow:(n,t)=>{const s=new f(t,a.data,n),e={detail:{token:t.token,proc:t.process,win:s}};return document.dispatchEvent(new CustomEvent("app_opened",e)),a.data.windows.push(s),a.data.windowArea.elm.appendChild(s.element),s},createModal:async(n,t,s,e)=>{const i=new f(e,a.data,{title:t,icon:"",width:350,height:150,canResize:!1}),h={detail:{token:e.token,proc:e.process,win:i}},{Button:l}=await e.loadLibrary("lib/Components");return{value:await new Promise(d=>{i.content.style.padding="10px",i.content.style.display="flex",i.content.style.flexDirection="column",i.content.style.gap="10px";const o=new r("div").style({display:"flex",gap:"10px",justifyContent:"center",height:"max-content"}).appendTo(i.content);new r("img").attr({src:e.process.config.icon??w}).style({height:"100%","aspect-ratio":"1 / 1",borderRadius:"50%",alignSelf:"center"}).appendTo(o);const c=new r("div").style({display:"flex",gap:"10px","flex-direction":"column","justify-content":"center",height:"max-content"}).appendTo(o);new r("h3").text(t).style({margin:"0"}).appendTo(c),new r("p").text(s).style({margin:"0"}).appendTo(c);const p=new r("div").style({display:"flex",gap:"10px",alignItems:"right"}).appendTo(c);n==="allow"&&document.dispatchEvent(new CustomEvent("app_opened",h)),n==="allow"?(l.new("primary").text("Allow").appendTo(p).on("click",()=>{d(!0),i.close()}),l.new().text("Deny").appendTo(p).on("click",()=>{d(!1),i.close()})):n==="ok"&&l.new("primary").text("OK").appendTo(p).on("click",()=>{i.close(),d(!0)}),a.data.windows.push(i),a.data.windowArea.elm.appendChild(i.element)}),win:i}}}};export{a as default};

1
assets/XOR-dd425f29.js Normal file
View file

@ -0,0 +1 @@
const d={config:{name:"XOR",type:"library",targetVer:"1.0.0-indev.0"},init:(r,t,n)=>{},data:{encode:r=>encodeURIComponent(r.toString().split("").map((t,n)=>{let e;return n%2===0?e=!1:e=!0,e?String.fromCharCode(t.charCodeAt(0)^2):t}).join("")),decode:r=>{const[t,...n]=r.split("?");return decodeURIComponent(t).split("").map((e,i)=>{let o;return i%2===0?o=!1:o=!0,o?String.fromCharCode(e.charCodeAt(0)^2):e}).join("")+(n.length>0?`?${n.join("?")}`:"")}}};export{d as default};

View file

@ -0,0 +1 @@
const a="/assets/application-default-icon-4eb948ca.svg";export{a as n};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#528bff;font-family:Fira Code,Fira Mono,Menlo,Consolas,DejaVu Sans Mono,monospace;--editor__bg: #292c33;--widget__border: #3a3f4b;--widget__bg: #21252b;--widget__color: #ccc;--widget__color-active: #fff;--widget__color-options: #b2b2b2;--widget__bg-input: #1b1d23;--widget__bg-hover: #5a5d5e4f;--widget__bg-active: #336699;--widget__focus-ring: #5299e0;--search__bg-find: #528bff3d;--widget__bg-error: #5a1d1d;--widget__error-ring: #be1100;--editor__bg-highlight: #99bbff0a;--editor__bg-selection-match: #4a566d66;--editor__line-number: #636d83;--editor__bg-scrollbar: 220, 13%, 41%;--editor__bg-fold: #c5c5c5;--bg-guide-indent: #abb2bf26;color-scheme:dark}.prism-code-editor textarea::selection{background:#3e4451;color:#0000}.pce-matches .match{--search__bg-find: #515c6a}.active-line{--editor__line-number: #abb2bf}.guide-indents .active{--bg-guide-indent: #abb2c280}.token.comment,.token.prolog,.token.cdata{color:#5c6370}[class*=language-],.token.punctuation,.token.entity{color:#abb2bf}.token.keyword,.selector .punctuation,.selector .combinator,.selector .operator,.token.token.arrow{color:#c678dd}.token.attr-name,.doctype .name,.selector .class,.selector .pseudo-element,.selector .pseudo-class,.token.boolean,.token.constant,.token.number,.token.unit,.token.atrule,.token.keyword-null,.token.keyword-undefined{color:#d19a66}.token.class-name,.token.maybe-class-name{color:#e5c07b}.token.property,.token.tag,.token.doctype,.token.symbol,.token.deleted,.token.important,.token.keyword-this,.token.this .token.variable,.token.selector,.language-css .variable,.token.property-access{color:#e06c75}.token.string,.token.char,.token.inserted,.token.regex,.token.attr-value,.token.string.url,.token.attr-value>.punctuation,.token.code-snippet.code{color:#98c379}.language-markdown .url>.variable,.language-markdown .url>.content,.token.function,.token.selector .id{color:#61afef}.token.url,.token.hexcode,.token.keyword-get,.token.builtin,.token.operator{color:#56b6c2}.token.attr-value>.attr-equals,.language-css .property{color:#abb2bf}.language-css .token.important,.token.atrule .token.rule,.language-markdown .italic{color:#c678dd}.token.token.interpolation-punctuation{color:#be5046}.language-json .token.keyword-null,.language-markdown .bold *{color:#d19a66}.language-markdown .code.keyword,.language-json .token.operator,.language-markdown .token.url,.language-markdown .url>.operator,.language-markdown .token.url-reference>.string{color:#abb2bf}.language-css .function,.language-markdown .token.blockquote.punctuation,.language-markdown .token.hr.punctuation,.language-markdown .token.url>.token.url,.language-markdown .token.url-reference.url{color:#56b6c2}.language-markdown .strike *,.language-markdown .token.list.punctuation,.language-markdown .token.title.important>.token.punctuation{color:#e06c75}.token.bold{font-weight:700}.token.comment,.token.italic{font-style:italic}.token.namespace{opacity:.8}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:gold}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:orchid}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#179fff}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #888,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#575757b8}";export{e as default};

BIN
assets/badge-629f981b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View file

@ -0,0 +1,14 @@
import{p as m,a as K,I as U,u as lt,l as et,g as dt}from"./Editor-21b47d03.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-bc32a4a8.js";import"./index-10f4832e.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(`
`);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=`
`+r.repeat(u+p)+(g?`
`+r.repeat(u):"");if(C[1]||e[1]<s.length)return j(t,C,e[0],e[1],e[0]+u+p+1),o()}},$.Backspace=(a,[e,s],i)=>{if(e==s){const r=J(i,e),[,c]=f(d),h=n.includes(i.slice(e-1,e+1)),u=r.length%c||c;if(h||u!=1&&!/\S|^$/.test(r))return j(t,"",e-(h?1:u),e+ +h),o()}};for(let a=0;a<2;a++)$[a?"ArrowDown":"ArrowUp"]=(e,[s,i],r)=>{const c=q(e);if((c&7)==1){if(c==1){const h=a?s:r.lastIndexOf(`
`,s-1),u=a?r.indexOf(`
`,i)+1:i;if(h>-1&&u>0){const[p,g,C]=A(r,h,u),S=p[a?"pop":"shift"](),L=S.length+1;p[a?"unshift":"push"](S),j(t,p.join(`
`),g,C,s+(a?L:-L),i+(a?L:-L))}}else{const[h,u,p]=A(r,s,i),g=h.join(`
`),C=a?g.length+1:0;j(t,g+`
`+g,u,p,s+C,i+C)}return o()}};w.addEventListener("keydown",a=>{const e=q(a),s=a.keyCode;if(e==H&&(s==221||s==219)){const[i,r]=k();b(s==219,...A(t.value,i,r),i,r,...f(d))}else if(e==(lt?10:2)&&s==77)dt(!et),U(a);else if(a.code=="Backslash"&&e==H||s==65&&e==9){const i=t.value,r=e==9,[c,h]=k(),u=r?c:i.lastIndexOf(`
`,c-1)+1,p=m[_(t,u)]||{},{line:g,block:C}=p.getComments?.(t,u,i)||p.comments||{},[S,L,z]=A(i,c,h),O=S.length-1;if(r){if(C){const[T,B]=C,D=i.slice(c,h),I=i.slice(0,c).search(V(T)+" ?$"),N=RegExp("^ ?"+V(B)).test(i.slice(h));I+1&&N?j(t,D,I,h+ +(i[h]==" ")+B.length,I,I+h-c):j(t,`${T} ${D} ${B}`,c,h,c+T.length+1,h+T.length+1),o()}}else if(g){const T=V(g),B=RegExp(`^\\s*(${T} ?|$)`),D=RegExp(T+" ?"),I=!/\S/.test(i.slice(L,z)),N=S.map(S.every(R=>B.test(R))&&!I?R=>R.replace(D,""):R=>I||/\S/.test(R)?R.replace(/^\s*/,`$&${g} `):R);M(S,N,L,z,c,h),o()}else if(C){const[T,B]=C,D=S[0].search(/\S|$/),I=S[0].startsWith(T,D)&&S[O].endsWith(B),N=S.slice();N[0]=S[0].replace(I?RegExp(V(T)+" ?"):/(?=\S)|$/,I?"":T+" ");let R=N[0].length-S[0].length;N[O]=I?N[O].replace(RegExp(`( ?${V(B)})?$`),""):N[O]+" "+B;let Z=N.join(`
`),G=D+L,tt=G>c?c:Math.max(c+R,G),ht=G>h-(c!=h)?h:Math.min(Math.max(G,h+R),L+Z.length);j(t,Z,L,z,tt,Math.max(tt,ht)),o()}}else if(e==8+H&&s==75){const i=t.value,[r,c,h]=k(),[u,p,g]=A(i,r,c),C=h=="forward"?c-g+u.pop().length:r-p,S=A(i,g+1)[0][0].length;j(t,"",p-!!p,g+!p,p+Math.min(C,S)),o()}}),["copy","cut","paste"].forEach(a=>w.addEventListener(a,e=>{const[s,i]=k();if(s==i&&at){const[[r],c,h]=A(t.value,s,i);a=="paste"?e.clipboardData.getData("text/plain")==x&&(j(t,x+`
`,c,c,s+x.length+1),o(),U(e)):(at.writeText(x=r),a=="cut"&&(j(t,"",c,h+1),o()),U(e))}}))}}),jt=n=>{n.addExtensions(St(),vt(),xt(),bt(),Ct())};export{jt as addExtensions};

Binary file not shown.

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#aeafad;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #282a36;--widget__border: #454545;--widget__bg: #21222c;--widget__color: #f8f8f2;--widget__color-active: #fff;--widget__color-options: #b2b2a8;--widget__bg-input: #282a36;--widget__bg-hover: #5a5d5e80;--widget__bg-active: #6272a466;--widget__focus-ring: #bd93f9;--search__bg-find: #ffffff40;--widget__bg-error: #5a1d1d;--widget__error-ring: #ff5555;--editor__border-highlight: 2px solid #44475a;--editor__bg-selection-match: #424450;--editor__line-number: #6272a4;--editor__bg-scrollbar: 0, 0%, 50%;--editor__bg-fold: #c5c5c5;--bg-guide-indent: #ffffff1a;color-scheme:dark}.match-highlight{--editor__bg-highlight: #44475a}.prism-code-editor textarea::selection{background:#44475a;color:#0000}.pce-matches .match{--search__bg-find: #ffb86c80}.active-line{--editor__line-number: #c6c6c6}.guide-indents .active{--bg-guide-indent: #ffffff45}.token.comment,.token.prolog,.token.cdata{color:#6272a4}[class*=language-],.token.punctuation,.language-markdown .code.keyword{color:#f8f8f2}.token.namespace{opacity:.7}.token.tag,.token.operator,.token.attr-equals,.token.doctype,.token.symbol,.token.unit,.token.selector,.token.deleted,.token.keyword,.token.regex-flags,.token.atrule .rule,.token.token.interpolation-punctuation,.language-markdown .url .content{color:#ff79c6}.token.boolean,.token.number,.token.color,.language-markdown .token.title,.token.nil{color:#bd93f9}.selector .class,.selector .id,.token.pseudo-element,.token.pseudo-class,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted,.token.function,.token.function .maybe-class-name,.doctype .name,.language-markdown .code-language,.language-markdown .code-snippet.code{color:#50fa7b}.token.class-name,.token.maybe-class-name,.language-css .token.function,.language-scss .token.function,.language-sass .token.function,.language-css .token.property,.language-scss .token.property,.language-sass .token.property,.language-markdown .url{color:#8be9fd}.token.entity,.token.url,.token.variable,.token.generic{color:#f8f8f2}.token.regex,.token.language-regex,.token.attr-value,.token.string,.token.string-property,.language-markdown .italic *{color:#f1fa8c}.token.regex-delimiter{color:#f55}.token.important,.token.parameter,.token.url,.token.atrule,.language-markdown .bold *,.token.constant{color:#ffb86c}.language-tsx .token.builtin,.language-typescript .token.builtin{color:#8be9fd}.token.important,.token.bold{font-weight:700}.token.italic,.token.parameter,.token.attr-name,.doctype .name,.selector .class,.token.pseudo-element,.token.pseudo-class,.tag>.class-name{font-style:italic}.parameter .punctuation{font-style:normal}.token.bracket-level-0,.token.bracket-level-6{color:#f8f8f2}.token.bracket-level-1,.token.bracket-level-7{color:#ff79c6}.token.bracket-level-2,.token.bracket-level-8{color:#8be9fd}.token.bracket-level-3,.token.bracket-level-9{color:#50fa7b}.token.bracket-level-4,.token.bracket-level-10{color:#bd93f9}.token.bracket-level-5,.token.bracket-level-11{color:#ffb86c}.token.bracket-error{color:#f55}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #b9b9b9,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#8be9fd4f}";export{e as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

BIN
assets/flow-9a6c45c5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#2f81f7;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #0d1117;--widget__border: #303741;--widget__bg: #161b22;--widget__color: #b8bfc7;--widget__color-active: #fff;--widget__color-options: #757e8a;--widget__bg-input: #0d1117;--widget__bg-hover: #5a5d5e4f;--widget__bg-active: #1f6feb66;--widget__focus-ring: #007acc;--search__bg-find: #f2cc6080;--widget__bg-error: #5a1d1d;--widget__error-ring: #be1100;--editor__bg-highlight: #6e76811a;--editor__bg-selection-match: #3fb95040;--editor__line-number: #6e7681;--editor__bg-scrollbar: 210, 10%, 32%;--editor__bg-fold: #7d8590;--bg-guide-indent: #e6edf31f;color-scheme:dark}.prism-code-editor textarea::selection{color:#0000;background:#264f78}.pce-matches .match{--search__bg-find: #8c8d6c}.active-line{--editor__line-number: #e6edf3}.guide-indents .active{--bg-guide-indent: #e6edf33d}[class*=language-],.language-markdown .url>.operator,.token.punctuation,.token.code.keyword{color:#e6edf3}.token.atrule,.token.variable,.language-css .token.url,.token.parameter,.token.list.punctuation,.token.class-name,.token.maybe-class-name{color:#ffa657}.token.atrule .rule,.token.unit,.token.selector .combinator,.token.operator,.token.regex-flags,.token.keyword{color:#ff7b72}.token.tag,.token.selector,.token.doctype{color:#7ee787}.token.token.interpolation-punctuation,.token.attr-value,.token.string,.token.regex,.language-regex,.token.string-property,.language-markdown .url .content,.language-markdown .url .variable{color:#a5d6ff}.token.builtin,.token.selector .class,.token.selector .id,.token.pseudo-class,.token.pseudo-element,.token.attr-name,.language-css .token.property,.language-scss .token.property,.language-sass .token.property,.token.number,.token.color,.token.boolean,.token.constant,.token.title.important,.title.important .punctuation,.language-css .token.function,.language-scss .token.function,.language-sass .token.function,.token.code-snippet.code,.token.doctype .name,.token.property-access,.token.keyword-null,.token.keyword-this,.language-jsx .tag>.punctuation,.language-tsx .tag>.punctuation{color:#79c0ff}.token.function{color:#d2a8ff}.token.comment,.token.cdata{color:#8b949e}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.bracket-level-0,.token.bracket-level-6{color:#79c0ff}.token.bracket-level-1,.token.bracket-level-7{color:#56d364}.token.bracket-level-2,.token.bracket-level-8{color:#e3b341}.token.bracket-level-3,.token.bracket-level-9{color:#ffa198}.token.bracket-level-4,.token.bracket-level-10{color:#ff9bce}.token.bracket-level-5,.token.bracket-level-11{color:#d2a8ff}.token.bracket-error{color:#7d8590}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #3fb95099,inset 0 0 0 9in #3fb95040}.active-tagname,.word-matches span{box-shadow:inset 0 0 0 1px #6e768199,inset 0 0 0 9in #6e768180}";export{e as default};

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#539bf5;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #22272e;--widget__border: #444;--widget__bg: #22272e;--widget__color: #adbac7;--widget__color-active: #fff;--widget__color-options: #8a99a8;--widget__bg-input: #2d333b;--widget__bg-hover: #5a5d5e4f;--widget__bg-active: #1f6feb66;--widget__focus-ring: #007acc;--search__bg-find: #eac55f80;--widget__bg-error: #5a1d1d;--widget__error-ring: #be1100;--editor__bg-highlight: #636e7b1a;--editor__bg-selection-match: #57ab5a40;--editor__line-number: #636e7b;--editor__line-number-active: #adbac7;--editor__bg-scrollbar: 210, 10%, 35%;--editor__bg-fold: #768390;--bg-guide-indent: #adbac71f;color-scheme:dark}.prism-code-editor textarea::selection{background:#264f78;color:#0000}.pce-matches .match{--search__bg-find: #888a6c}.active-line{--editor__line-number: #adbac7}.guide-indents .active{--bg-guide-indent: #adbac73d}[class*=language-],.language-markdown .url>.operator,.token.punctuation,.token.code.keyword{color:#adbac7}.token.class-name,.token.maybe-class-name,.token.atrule,.token.variable,.language-css .token.url,.token.parameter,.token.list.punctuation{color:#f69d50}.token.atrule .rule,.token.unit,.token.selector .combinator,.token.operator,.token.regex-flags,.token.keyword{color:#f47067}.token.tag,.token.selector,.token.doctype{color:#8ddb8c}.token.function{color:#dcbdfb}.token.token.interpolation-punctuation,.token.attr-value,.token.string,.token.regex,.language-regex,.token.string-property,.language-markdown .url .content,.language-markdown .url .variable{color:#96d0ff}.token.builtin,.token.selector .class,.token.selector .id,.token.pseudo-class,.token.pseudo-element,.token.attr-name,.language-css .token.property,.language-scss .token.property,.language-sass .token.property,.token.number,.token.constant,.token.color,.token.boolean,.token.title.important,.title.important .punctuation,.language-css .token.function,.language-scss .token.function,.language-sass .token.function,.token.code-snippet.code,.token.doctype .name,.token.property-access,.token.keyword-null,.token.keyword-this,.language-jsx .tag>.punctuation,.language-tsx .tag>.punctuation{color:#6cb6ff}.token.comment,.token.cdata{color:#768390}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.bracket-level-0,.token.bracket-level-6{color:#6cb6ff}.token.bracket-level-1,.token.bracket-level-7{color:#6bc46d}.token.bracket-level-2,.token.bracket-level-8{color:#daaa3f}.token.bracket-level-3,.token.bracket-level-9{color:#ff938a}.token.bracket-level-4,.token.bracket-level-10{color:#fc8dc7}.token.bracket-level-5,.token.bracket-level-11{color:#dcbdfb}.token.bracket-error{color:#768390}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #57ab5a99,inset 0 0 0 9in #57ab5a40}.active-tagname,.word-matches span{box-shadow:inset 0 0 0 1px #636e7b99,inset 0 0 0 9in #636e7b80}";export{e as default};

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#24292e;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #fff;--widget__border: #bfbfbf;--widget__bg: #f6f8fa;--widget__color: #434d56;--widget__color-active: #000;--widget__color-options: #5a6772;--widget__bg-input: #fafbfc;--widget__bg-hover: #b8b8b84f;--widget__bg-active: #2188ff33;--widget__focus-ring: #007acc;--search__bg-find: #ffdf5d66;--widget__bg-error: #f2dede;--widget__error-ring: #be1100;--editor__bg-highlight: #f6f8fa;--editor__bg-selection-match: #34d05840;--editor__line-number: #1b1f2380;--editor__bg-scrollbar: 210, 7%, 55%;--editor__bg-fold: #656d76;--bg-guide-indent: #1f23281f;color-scheme:light}.prism-code-editor textarea::selection{color:#0000;background:#add6ff}.pce-matches .match{--search__bg-find: #e9e5ba}.active-line{--editor__line-number: #1f2328}.guide-indents .active{--bg-guide-indent: #1f23284d}[class*=language-],.language-markdown .url>.operator,.token.punctuation{color:#24292e}.token.doctype,.token.builtin{color:#005cc5}.token.atrule,.token.variable,.language-css .token.url,.token.parameter,.token.list.punctuation,.token.maybe-class-name,.token.class-name{color:#e36209}.token.keyword,.token.doctype .name,.token.atrule .rule,.token.unit,.token.selector .combinator,.token.regex-flags,.token.operator{color:#d73a49}.token.tag,.token.selector{color:#22863a}.token.selector .class,.token.selector .id,.token.pseudo-class,.token.pseudo-element,.token.function{color:#6f42c1}.token.token.interpolation-punctuation,.token.attr-value,.token.string,.token.regex,.language-regex,.token.string-property,.language-markdown .url .content,.language-markdown .url .variable{color:#032f62}.token.code.keyword{color:#24292e}.token.attr-name,.language-css .token.property,.language-sass .token.property,.language-scss .token.property,.token.number,.token.constant,.token.color,.token.boolean,.token.title.important,.title.important .punctuation,.token.property-access,.token.nil,.token.keyword-this,.language-css .token.function,.language-sass .token.function,.language-scss .token.function,.token.code-snippet.code{color:#005cc5}.token.comment,.token.cdata{color:#6a737d}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.language-jsx .tag>.punctuation,.language-tsx .tag>.punctuation{color:#0550ae}.token.bracket-level-0,.token.bracket-level-6{color:#0366d6}.token.bracket-level-1,.token.bracket-level-7{color:#138934}.token.bracket-level-2,.token.bracket-level-8{color:#b37700}.token.bracket-level-3,.token.bracket-level-9{color:#cb2431}.token.bracket-level-4,.token.bracket-level-10{color:#a43276}.token.bracket-level-5,.token.bracket-level-11{color:#8a3ddb}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #34d05899,inset 0 0 0 9in #35d05940}.active-tagname,.word-matches span{box-shadow:inset 0 0 0 1px #afb8c199,inset 0 0 0 9in #eaeef280}";export{e as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.8 KiB

368
assets/index-10f4832e.js Normal file

File diff suppressed because one or more lines are too long

BIN
assets/index-10f4832e.js.gz Normal file

Binary file not shown.

1
assets/index-cf89d695.js Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(/assets/material-symbols-outlined-af655217.woff2) format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Symbols Rounded;font-style:normal;font-weight:100 700;font-display:block;src:url(/assets/material-symbols-rounded-dc1c3bdf.woff2) format("woff2")}.material-symbols-rounded{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Symbols Sharp;font-style:normal;font-weight:100 700;font-display:block;src:url(/assets/material-symbols-sharp-7488f367.woff2) format("woff2")}.material-symbols-sharp{font-family:Material Symbols Sharp;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}

View file

@ -0,0 +1 @@
import{y as E}from"./utils-wvIv1qJ9-bc32a4a8.js";import"./Editor-21b47d03.js";import"./index-10f4832e.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};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#80a4c2;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #011627;--widget__border: #122d42;--widget__bg: #021320;--widget__color: #d6deeb;--widget__color-active: #fff;--widget__color-options: #b3bccc;--widget__bg-input: #0b253a;--widget__bg-hover: #5a5d5e80;--widget__bg-active: #122d4266;--widget__focus-ring: #5f7e97;--search__bg-find: #5f7e9778;--widget__bg-error: #ab0300f2;--widget__error-ring: #ef5350;--editor__bg-highlight: #0003;--editor__bg-selection-match: #5f7e9778;--editor__line-number: #4b6479;--editor__bg-scrollbar: 206, 88%, 27%;--editor__bg-fold: #c5c5c5;--bg-guide-indent: #5e81ce52;color-scheme:dark}.match-highlight{--editor__bg-highlight: #7e57c259}.prism-code-editor textarea::selection{background:#1d3b53;color:#0000}.pce-matches .match{--search__bg-find: #545a8b}.active-line{--editor__line-number: #c5e4fd}.guide-indents .active{--bg-guide-indent: #b3cfe7b3}.token.comment,.token.prolog,.token.cdata{color:#637777;font-style:italic}.token.namespace{opacity:.7}.token.property{color:#80cbc4}.token.keyword,.token.punctuation,.tag .token.script-punctuation,.token.literal-property,.token.operator,.token.atrule .rule,.language-css .important,.language-markdown .italic *{color:#c792ea}[class*=language-],.language-css .punctuation,.language-markdown .code.keyword,.language-markdown .url .content{color:#d6deeb}.selector .punctuation{color:#c792ea}.token.tag,.token.doctype{color:#caece6}.token.number,.token.tag .class-name{color:#f78c6c}.token.boolean,.token.keyword-null{color:#ff5874}.token.selector{color:#ff6363}.language-markdown .token.url{color:#ff869a}.token.unit,.token.color{color:#ffeb95}.token.atrule,.token.parameter{color:#d7dbe0}.token.token.interpolation-punctuation{color:#d3423e}.tag .punctuation,.doctype .punctuation,.selector .combinator,.selector .operator,.token.attr-equals,.token.property-access,.language-markdown .url .markup-bracket{color:#7fdbca}.selector .id{color:#fad430}.token.attr-value>.punctuation{color:#d9f5dd}.token.attr-name,.doctype .name,.token.variable,.selector .class,.selector .pseudo-element,.selector .pseudo-class,.language-typescript .token.builtin,.language-tsx .token.builtin,.language-markdown .bold *,.language-markdown .code.code-snippet{color:#c5e478}.token.function,.token.keyword-undefined,.token.function .maybe-class-name,.token.title.important,.token.title>.punctuation,.language-markdown .url .variable{color:#82aaff}.token.attr-value,.token.string,.token.string-property{color:#ecc48d}.token.class-name,.token.maybe-class-name{color:#ffcb8b}.token.important,.token.bold{font-weight:700}.token.function,.token.keyword,.token.italic,.token.attr-name,.token.pseudo-class,.token.pseudo-element,.selector .class,.selector .id,.token.atrule .rule,.doctype .name{font-style:italic}.language-css .function{color:#c5e478;font-style:normal}.token.keyword-this,.token.keyword-null,.token.keyword-undefined{font-style:normal}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:gold}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:orchid}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#179fff}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #b3cfe7a1,inset 0 0 0 9in #5f7e974d}.active-tagname,.word-matches span{background:#f6bbe533}";export{e as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 40 KiB

1
assets/prism-de3d353c.js Normal file
View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #f5f2f0;--widget__border: #bfbfbf;--widget__bg: #edeae8;--widget__color: #444;--widget__color-active: #000;--widget__color-options: #666;--widget__bg-input: #f5f2f0;--widget__bg-hover: #b8b8b84f;--widget__bg-active: #c2dff2;--widget__focus-ring: #0077f0;--search__bg-find: #ea5c0054;--widget__bg-error: #f2dede;--widget__error-ring: #be1100;--editor__bg-highlight: #eae8e6;--editor__bg-selection-match: #b6d5fc80;--editor__line-number: #9d897b;--editor__bg-scrollbar: 24, 7%, 35%;--editor__bg-fold: #424242;--bg-guide-indent: #4b413a33;color-scheme:light}.prism-code-editor textarea::selection{background:#b6d5fc;color:#0000}.pce-matches .match{--search__bg-find: #c7ada9}.active-line{--editor__line-number: #4d3a2e}.guide-indents .active{--bg-guide-indent: #38322f66}[class*=language-]{color:#000}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#9a6e3a}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function,.token.class-name{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:#0431fa}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:#319331}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#7b3814}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #b9b9b9,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#57575740}";export{e as default};

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#f8f8f2;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #272822;--widget__border: #4f5148;--widget__bg: #242622;--widget__color: #cfd1c7;--widget__color-active: #fff;--widget__color-options: #9ea092;--widget__bg-input: #35372f;--widget__bg-hover: #5a5d5e4f;--widget__bg-active: #99947c66;--widget__focus-ring: #99947c;--search__bg-find: #ea5c0054;--widget__bg-error: #5a1d1d;--widget__error-ring: #be1100;--editor__bg-highlight: #36362b;--editor__bg-selection-match: #575b6180;--editor__line-number: #90908a;--editor__bg-scrollbar: 0, 0%, 45%;--editor__bg-fold: #c5c5c5;--bg-guide-indent: #9e9f9640;color-scheme:dark}.prism-code-editor textarea::selection{background:#575a5a;color:#0000}.pce-matches .match{--search__bg-find: #885a3c}.active-line{--editor__line-number: #c2c2bf}.guide-indents .active{--bg-guide-indent: #dbdbd973}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8292a2}[class*=language-],.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted,.token.keyword.control-flow,.token.keyword.module{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a6e22e}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#e6db74}.token.keyword{color:#66d9ef}.token.regex,.token.important{color:#fd971f}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:gold}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:orchid}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#179fff}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #888,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#4a4a7680}";export{e as default};

View file

@ -0,0 +1 @@
const e=".prism-code-editor{font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #fdf6e3;caret-color:#657b83;--widget__border: #c2c2c2;--widget__bg: #f9f0d7;--widget__color: #405359;--widget__color-active: #000;--widget__color-options: #657a81;--widget__bg-input: #fdf6e3;--widget__bg-hover: #b8b8b84f;--widget__bg-active: #6fa3b34d;--widget__focus-ring: #4bafce;--search__bg-find: #eb5e0054;--widget__bg-error: #f2dede;--widget__error-ring: #be1100;--editor__bg-highlight: #eee8d5;--editor__bg-selection-match: #f3f0e299;--editor__line-number: #53abc6;--editor__bg-scrollbar: 0, 0%, 25%;--editor__bg-fold: #424242;--bg-guide-indent: #586e7580;color-scheme:light}.prism-code-editor textarea::selection{background:#ede7d4;color:#0000}.pce-matches .match{--search__bg-find: #edba8f}.active-line{--editor__line-number: #0b216f}.guide-indents .active{--bg-guide-indent: #081e2580}[class*=language-]{color:#657b83}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#93a1a1}.token.punctuation{color:#586e75}.token.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#268bd2}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.url,.token.inserted{color:#2aa198}.token.entity{color:#657b83;background:#eee8d5}.token.atrule,.token.attr-value,.token.keyword{color:#859900}.token.function,.token.class-name{color:#b58900}.token.regex,.token.important,.token.variable{color:#cb4b16}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:#0431fa}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:#319331}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#7b3814}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #b9b9b9,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#57575740}";export{e as default};

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #141414;--widget__border: #383838;--widget__bg: #141414;--widget__color: #ccc;--widget__color-active: #fff;--widget__color-options: #aaa;--widget__bg-input: #222;--widget__bg-hover: #282828;--widget__bg-active: #336699;--widget__focus-ring: #5299e0;--search__bg-find: #43474cab;--widget__bg-error: #4d1919;--widget__error-ring: #cc0000;--editor__bg-highlight: #1f1f1f;--editor__bg-selection-match: #27292a80;--editor__line-number: #8292a2;--editor__bg-scrollbar: 0, 0%, 45%;--editor__bg-fold: #c5c5c5;--bg-guide-indent: #ededed1f;color-scheme:dark}.prism-code-editor textarea::selection{background:#27292a;color:#0000}.pce-matches .match{--search__bg-find: #3a3e41}.active-line{--editor__line-number: #d3d9de}.guide-indents .active{--bg-guide-indent: #ededed3d}[class*=language-]{color:#fff}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#787878}.token.punctuation,.token.namespace{opacity:.7}.token.tag,.token.boolean,.token.number,.token.deleted{color:#cf694a}.token.keyword,.token.property,.token.selector,.token.constant,.token.symbol,.token.builtin{color:#f9ee9a}.token.attr-name,.token.attr-value,.token.string,.token.char,.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable,.token.inserted{color:#919e6b}.token.atrule{color:#7386a5}.token.regex,.token.important{color:#e9c163}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.tag,.token.attr-name,.tag>.token.punctuation{color:#ad895c}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:gold;opacity:1}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:orchid;opacity:1}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#179fff;opacity:1}.token.bracket-error{color:#ff1212cc;opacity:1}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #888,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#575757b8}";export{e as default};

View file

@ -0,0 +1 @@
const e='.prism-search{display:grid;border:1px solid var(--widget__border);grid:auto / 1em auto;gap:.3em;padding:.3em;border-radius:.3em;margin:-99in 0 0;font:400 1em/1.5 Arial,Helvetica,sans-serif;color:var(--widget__color);background:var(--widget__bg);position:sticky;top:.5em;right:.5em;left:.5em;z-index:4;pointer-events:auto;box-sizing:border-box}.prism-search *{box-sizing:border-box}.prism-search button{all:unset;cursor:pointer}.pce-readonly>.prism-search-container>div{grid:auto / auto}.prism-search>div>div{display:flex}.prism-search input{padding:0 0 0 .3em;width:calc(var(--search-width, 20em) - 10ch - 4px);font:inherit;border:none;background:#0000;color:var(--widget__color)}.prism-search ::placeholder{color:inherit;opacity:.6}.pce-match-count{margin-right:auto}.pce-options{color:var(--widget__color-options);font-size:80%;gap:.25em;align-items:center}.pce-options button{padding:0 .2em;border-radius:.2em;width:1.2em;text-align:center;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.pce-options button span{pointer-events:none}.prism-search button:focus-visible{outline:1px solid var(--widget__focus-ring);z-index:1}.prism-search .pce-input,.pce-options button{box-shadow:0 0 0 1px var(--_border, var(--widget__border));margin:1px}.prism-search .pce-input{display:flex;position:relative;justify-content:flex-end;background:var(--widget__bg-input);border-radius:.15em;height:1.5em}.prism-search input:focus{outline:0}.pce-input:focus-within{--_border: var(--widget__focus-ring)}.pce-input.pce-find button{display:grid;align-items:center;padding:0 .4em}.pce-input.pce-replace button{width:7.3ch;text-align:center}.pce-input.pce-replace :last-child{width:2.7ch}.pce-input button{box-shadow:-1px 0 0 0 var(--widget__border);margin-left:1px}.prev-match:before{transform:rotate(-90deg)}.next-match:before,.pce-expand:before{transform:rotate(90deg)}@media (hover: hover){.prism-search button:hover{background:var(--widget__bg-hover)}}.pce-options button[aria-pressed=true]{background:var(--widget__bg-active);color:var(--widget__color-active);--_border: var(--widget__focus-ring)}.pce-input>:nth-child(3){border-radius:0 .15em .15em 0}.pce-input.pce-find.pce-error{--_border: var(--widget__error-ring);position:relative}.search-error{display:none;position:absolute;top:100%;box-shadow:inherit;width:100%;white-space:normal;word-break:break-word;left:0;background:var(--widget__bg-error);padding:.5em;z-index:1}.pce-error:focus-within .search-error{display:block}button.pce-close{display:grid;width:1.3em;height:1.3em;place-items:center;margin-left:auto;border-radius:.3em}.pce-input.pce-find button:before,.pce-expand:before,.pce-close:before{content:"";background:currentColor;height:1.2em;opacity:.75}.pce-close:before{clip-path:polygon(50% 44.34%,0% 74.34%,9.43% 80%,9.43% 20%,0% 25.66%,50% 55.66%,100% 25.66%,90.57% 20%,50% 44.34%,9.43% 20%,9.43% 80%,50% 55.66%,90.57% 80%,100% 74.34%);width:.72em}.prism-search>div{display:grid;gap:.25em;width:var(--search-width, 20em)}button.pce-expand{display:grid;place-items:center;border-radius:.25em;margin:-.15em}.pce-readonly>.prism-search-container .pce-expand,[aria-expanded=false]+div .pce-replace,.pce-readonly>.prism-search-container .pce-replace{display:none}.pce-expand[aria-expanded=true]:before{transform:rotate(180deg)}.pce-input.pce-find button:before,.pce-expand:before{width:.84em;clip-path:polygon(50% 28.96%,0% 63.96%,10.1% 71.04%,50% 43.11%,89.9% 71.04%,100% 63.96%)}button.pce-regex{display:flex;align-self:stretch}.pce-regex span{display:flex;align-self:stretch;align-items:flex-end}.pce-regex span:before{content:"";width:.3em;height:.3em;background:currentColor;margin:0 0 .2em .1em}.pce-regex span:after{content:"*";line-height:0;font-size:140%;margin-bottom:.5em}button.pce-in-selection{display:grid;place-items:center;align-self:stretch}button.pce-whole{position:relative}.pce-whole:after{content:"";position:absolute;bottom:.31em;right:.27em;left:.27em;height:.25em;clip-path:inset(1px -1px -1px);box-shadow:0 0 0 1px}.pce-in-selection:before{content:"";height:80%;width:90%;background:currentColor;clip-path:polygon(0 16%,80% 16%,80% 24%,0 24%,0 46%,100% 46%,100% 54%,0 54%,0 76%,60% 76%,60% 84%,0 84%)}.pce-matches span{background:var(--search__bg-find)}.pce-matches :empty{padding:0 2px;margin:0 -2px}';export{e as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1 @@
@font-face{font-family:Satoshi;src:url(//cdn.fontshare.com/wf/NWBQYJIM7GCZ5XWD7D26ARB3VDY55ZRT/K63EV2KZIGKLE7RANQ2U42S6SVHU5RJ7/X6XYTKIVDUW7GZTZPZNN4EUM5KH54KHF.woff2) format("woff2"),url(//cdn.fontshare.com/wf/NWBQYJIM7GCZ5XWD7D26ARB3VDY55ZRT/K63EV2KZIGKLE7RANQ2U42S6SVHU5RJ7/X6XYTKIVDUW7GZTZPZNN4EUM5KH54KHF.woff) format("woff"),url(//cdn.fontshare.com/wf/NWBQYJIM7GCZ5XWD7D26ARB3VDY55ZRT/K63EV2KZIGKLE7RANQ2U42S6SVHU5RJ7/X6XYTKIVDUW7GZTZPZNN4EUM5KH54KHF.ttf) format("truetype");font-weight:300 900;font-display:swap;font-style:normal}@font-face{font-family:Satoshi;src:url(//cdn.fontshare.com/wf/3JZIFUW7KLFSPLVCIUI2DLGNIER6IFCX/MMP4RUF5LYGUAZS3DCJC3GJ6F6SAGKSN/E3NEPGEAHYCHR37DSBXHV33XCYYRE2CY.woff2) format("woff2"),url(//cdn.fontshare.com/wf/3JZIFUW7KLFSPLVCIUI2DLGNIER6IFCX/MMP4RUF5LYGUAZS3DCJC3GJ6F6SAGKSN/E3NEPGEAHYCHR37DSBXHV33XCYYRE2CY.woff) format("woff"),url(//cdn.fontshare.com/wf/3JZIFUW7KLFSPLVCIUI2DLGNIER6IFCX/MMP4RUF5LYGUAZS3DCJC3GJ6F6SAGKSN/E3NEPGEAHYCHR37DSBXHV33XCYYRE2CY.ttf) format("truetype");font-weight:300 900;font-display:swap;font-style:italic}:root{--primary: #89b4fa;--text: #cdd6f4;--surface-2: #585b70;--surface-1: #45475a;--surface-0: #313244;--base: #1e1e2e;--mantle: #181825;--crust: #11111b;--app-radius: 25%}.material-symbols-rounded{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 200,"opsz" 24}body,html{background-color:var(--crust);width:100vw;height:100vh;display:flex;flex-direction:column;margin:0;overflow:hidden}*::-webkit-scrollbar{display:none}*{box-sizing:border-box;-ms-overflow-style:none;scrollbar-width:none;font-family:Satoshi,sans-serif;font-weight:600;color:var(--text)}toolbar{width:100%;display:flex;gap:10px;background:var(--mantle);margin:0;padding:10px;border-radius:20px 20px 0 0;border:1px solid var(--surface-0);box-shadow:1px 3px 10px #0003,0 0 10px #0003;user-select:none;position:relvative;z-index:1001}toolbar>div{display:flex;align-self:center}toolbar>div.outlined{padding:10px;background:var(--base);border-radius:10px;border:1px solid var(--surface-0);box-shadow:1px 3px 10px #0000001a,0 0 10px #0000001a;align-items:center;justify-content:center}toolbar>div[data-toolbar-id=start]{cursor:pointer}toolbar>div[data-toolbar-id=start] *{transition:color .1s ease-in-out}toolbar>div[data-toolbar-id=start] *:hover{color:var(--primary)}toolbar>div[data-toolbar-id=controls]{gap:5px}toolbar>div[data-toolbar-id=controls] *{font-size:24px}toolbar>div[data-toolbar-id=plugins]{width:24px;cursor:pointer;padding:10px 0}toolbar>div app{display:flex;align-items:center;cursor:pointer}toolbar>div app img{aspect-ratio:1 / 1;height:35px;border-radius:var(--app-radius)}window-area{position:relative;width:calc(100% - 20px);height:100%;overflow:hidden;margin:10px}window-area window{resize:both;max-width:100%;max-height:100%;min-height:35px;min-width:210px;background:var(--base);display:flex;flex-direction:column;border-radius:5px;box-shadow:0 10px 10px #0003,0 0 10px #0003;overflow:hidden;border:1px solid;border-color:color-mix(in srgb,var(--text) 20%,transparent);background:var(--crust);transition:.2s opacity,.2s transform}window-area window window-header{height:35px;padding:7.5px;display:flex;align-items:center;gap:7.5px;user-select:none}window-area window window-header img{aspect-ratio:1 / 1;height:1.2em;border-radius:var(--app-radius)}window-area window window-content{height:100%;border-radius:10px 10px 0 0;background:var(--mantle);overflow:scroll}window-area window window-content h1{margin-top:0}.gradient-blur{mask:linear-gradient(to bottom,transparent,black 5%),linear-gradient(to top,transparent,black 35%);mask-size:100% 50%;mask-repeat:no-repeat;mask-position:top,bottom}

View file

@ -0,0 +1 @@
const e='.prism-code-editor{overflow:auto;display:grid;background:var(--editor__bg);line-height:1.4;--_pse: var(--padding-inline, .75em);--_ns: var(--number-spacing, .75em);--padding-left: var(--_pse);scroll-padding-left:var(--padding-left);-webkit-user-select:none;user-select:none;isolation:isolate;white-space:pre}.show-line-numbers{--padding-left: calc(var(--_pse) + var(--number-width) + var(--_ns));grid:1fr / 0 1fr}.pce-wrapper{margin:.5em 0;position:relative;pointer-events:none;-webkit-text-size-adjust:none;text-size-adjust:none}.prism-code-editor textarea{all:unset;box-sizing:border-box;height:100%;width:100%;color:#0000;-webkit-user-select:auto;user-select:auto;overflow:hidden;pointer-events:auto;padding:0 var(--_pse) 0 var(--padding-left)}.pce-no-selection>:focus{z-index:1}.pce-line{padding:0 var(--_pse) 0 0;margin:0 0 0 var(--padding-left);position:relative}.show-line-numbers .pce-line:before{content:attr(data-line);display:inline-block;margin:0 0 0 calc(-1 * var(--padding-left));padding:0 var(--_ns) 0 0;box-sizing:border-box;color:var(--editor__line-number);text-align:end}.show-line-numbers:before{content:"";background:inherit;pointer-events:none}.show-line-numbers:before,.pce-line:before{position:sticky;height:100%;z-index:2;left:0;width:var(--padding-left)}.pce-wrap .pce-line:before{position:absolute}.pce-overlays,div.pce-overlays>*,.pce-no-selection~.active-line:after,.active-line.match-highlight:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.active-line:after{border:var(--editor__border-highlight);background:var(--editor__bg-highlight);z-index:-2}.pce-wrap{white-space:pre-wrap;word-break:break-word}.selection-matches span{background:var(--editor__bg-selection-match)}.pce-nowrap .active-bracket{display:inline-block}',r="div.pce-rtl{direction:rtl;scroll-padding:0 var(--padding-left) 0 0}div.pce-rtl:before,.pce-rtl .pce-line:before{left:auto;right:0;background:none}.pce-rtl textarea,.pce-rtl .selection-matches,.pce-rtl .pce-matches{padding:0 var(--padding-left) 0 var(--_pse)!important}.pce-rtl .guide-indents{left:auto!important;right:var(--padding-left);transform:scaleX(-1)}.pce-rtl .pce-copy:after{left:calc(100% + .5em);right:auto}.pce-rtl.show-line-numbers .pce-line:before{margin:0 calc(-1 * var(--padding-left)) 0 0;padding:0 0 0 var(--_ns);background:var(--editor__bg)}.pce-rtl .pce-line{padding:0 0 0 var(--_pse);margin:0 var(--padding-left) 0 0}.pce-rtl.pce-nowrap .pce-fold{right:calc(2px + var(--padding-left) - var(--_ns))}.pce-rtl .pce-fold{margin:0 calc(2px - var(--_ns)) 0 0}.pce-rtl .closed-fold>:after{transform:translateY(-50%) rotate(90deg)}div.pce-rtl .active-bracket{display:inline}",t="@media (hover: hover){.prism-code-editor::-webkit-scrollbar-corner,.prism-code-editor::-webkit-scrollbar-track{background:#0000}.prism-code-editor::-webkit-scrollbar{height:1em;width:1em}.prism-code-editor::-webkit-scrollbar-thumb{background:hsla(var(--editor__bg-scrollbar),.36);width:2em;height:2em}.prism-code-editor::-webkit-scrollbar-thumb:hover{background:hsla(var(--editor__bg-scrollbar),.5)}.prism-code-editor::-webkit-scrollbar-thumb:active{background:hsla(var(--editor__bg-scrollbar),.66)}}",i=e+r+t;export{i as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

1
assets/utils-2c87b698.js Normal file
View file

@ -0,0 +1 @@
const r=async()=>{const t=new Date;let e=t.getHours(),s=t.getMinutes(),o="AM";return o=e>=12?"PM":"AM",e===0?e=12:e>12&&(e%=12),e=e<10?`0${e}`:e,s=s<10?`0${s}`:s,`${e}:${s} ${o}`},u=n=>{const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"},e=/[&<>"'/]/ig;return n.replace(e,s=>t[s])};export{r as g,u as s};

View file

@ -0,0 +1,6 @@
import{o as x,f as m,r as u,s as p}from"./Editor-21b47d03.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,l=(l=e.indexOf(`
`,l))+1?l:e.length).split(`
`),t,l],h=(e,t,l=0,o=l,s=e.getSelection()[0])=>{const d=e.value,n=d.slice(s).search(/\n|$/)+1,g=e.wrapper.children[x(d,0,s)],a=g.querySelectorAll(t),r=new Range;r.setEndAfter(g);for(let i=a.length,c,f;i;)if(r.setStartAfter(c=a[--i]),f=r.toString().length,f<=n+o&&f+c.textContent.length>=n-l)return c;return null},C=(e,t)=>h(e,'[class*="language-"]',0,0,t)?.className.match(/language-(\w+)/)[1]||e.options.language,k=(e,t,l,o,s,d)=>{const{textarea:n,getSelection:g,value:a,focused:r}=e;if(e.options.readOnly)return;r||n.focus();const i=s!=null?m([s,d??s,g()[2]]):0;if(l!=null&&n.setSelectionRange(l,o??l),u||n.dispatchEvent(new InputEvent("beforeinput",{data:t})),p||u){const c=p&&!a[n.selectionEnd]&&/^$|\n$/.test(a)&&/\n$/.test(t);c&&(n.selectionEnd--,t=t.slice(0,-1)),u&&(t+=`
`),document.execCommand(t?"insertHTML":"delete",!1,t.replace(/&/g,"&amp;").replace(/</g,"&lt;")),c&&n.selectionStart++}else document.execCommand(t?"insertText":"delete",!1,t);i&&(n.setSelectionRange(...i),m())},v=e=>e.altKey+e.ctrlKey*2+e.metaKey*4+e.shiftKey*8,w=(e,t,l=0)=>{const o=e.scrollContainer.style,s=document.documentElement.style;o.scrollPaddingBlock=s.scrollPaddingBlock=`${l}px ${p&&!t.textContent?t.offsetHeight:0}px`,t.scrollIntoView({block:"nearest"}),o.scrollPaddingBlock=s.scrollPaddingBlock=""};export{$,k as B,v as C,S as E,E as S,w as b,C as v,h as y};

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#aeafad;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #1e1e1e;--widget__border: #444;--widget__bg: #1e1e1e;--widget__color: #ccc;--widget__color-active: #fff;--widget__color-options: #aaa;--widget__bg-input: #262626;--widget__bg-hover: #2e2e2e;--widget__bg-active: #336699;--widget__focus-ring: #5299e0;--search__bg-find: #eb5e0054;--widget__bg-error: #4d1919;--widget__error-ring: #cc0000;--editor__border-highlight: 2px solid #282828;--editor__bg-selection-match: #add6ff26;--editor__line-number: #888;--editor__bg-scrollbar: 0, 0%, 50%;--editor__bg-fold: #c5c5c5;--bg-guide-indent: #9994;color-scheme:dark}.match-highlight{--editor__bg-highlight: #282828}.prism-code-editor textarea::selection{background:#264f78;color:#0000}.pce-matches .match{--search__bg-find: #675451}.active-line{--editor__line-number: #ccc}.guide-indents .active{--bg-guide-indent: #eee6}.token.namespace{opacity:.7}.token.comment,.token.prolog,.token.blockquote.punctuation{color:#6a9955}.token.punctuation,.token.operator,.token.combinator,.token.plain-text{color:#d4d4d4}.token.number,.token.symbol,.token.inserted,.token.unit{color:#b5cea8}.token.string,.token.string-property.property,.token.char,.token.deleted{color:#ce9178}.url .token.string.url{text-decoration:underline}.token.doctype .doctype-tag,.token.operator.arrow,.token.keyword,.token.important,.token.token.interpolation-punctuation,.token.boolean,.token.tag,.token.entity,.token.regex-flags{color:#569cd6}.token.atrule .token.rule{color:#c586c0}.token.function,.token.function .maybe-class-name{color:#dcdcaa}.token.italic{font-style:italic}.token.strike{text-decoration:line-through}.token.class-name,[class*=language-t] .builtin,.token.maybe-class-name{color:#4ec9b0}.token.doctype .name,.token.atrule,.token.atrule .url,.token.property,.token.variable,.token.parameter,.token.interpolation,.token.attr-name{color:#9cdcfe}.token.selector,.token.escape{color:#d7ba7d}.tag>.token.punctuation,.doctype .token.punctuation,.token.cdata{color:gray}.token.attr-value,.token.attr-value .token.punctuation{color:#ce9178}.token.attr-value .token.punctuation.attr-equals{color:#d4d4d4}.token.namespace{color:#4ec9b0}.token.color{color:#ce9178}.token.constant{color:#4fc1ff}[class*=language-]{color:#9cdcfe}.token.regex,.language-regex,.token.char-set.class-name,.token.char-class .operator{color:#d16969}.language-markup,.language-markdown,.language-md,.language-html,.language-xml,.language-svg,.language-text,.language-css,.language-sass,.language-scss{color:#d4d4d4}.token.important.title .punctuation,.token.list.punctuation,.language-markdown .token.bold *{color:#569cd6}.language-markdown .token.code>.punctuation,.language-markdown .token.code.keyword{color:#d4d4d4}.language-markdown .token.url .content,.language-markdown .token.code-snippet.keyword,.token.url-reference .variable{color:#ce9178}.token.group.punctuation,.token.quantifier.number,.token.char-class .punctuation{color:#d7ba7d}.token.keyword.module,.token.keyword.control-flow,.token.keyword-if,.token.keyword-else,.token.keyword-return,.token.keyword-switch,.token.keyword-case,.token.keyword-default,.token.keyword-import,.token.keyword-from,.token.keyword-export,.token.keyword-as,.token.keyword-for,.token.keyword-while,.token.keyword-break,.token.keyword-continue,.token.keyword-try,.token.keyword-catch,.token.keyword-finally,.token.keyword-throw,.token.keyword-yield,.token.keyword-await{color:#c586c0}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:gold}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:orchid}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#179fff}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #888,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#575757b8}";export{e as default};

View file

@ -0,0 +1 @@
const e=".prism-code-editor{caret-color:#000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;--editor__bg: #fff;--widget__border: #bfbfbf;--widget__bg: #f2f2f2;--widget__color: #444;--widget__color-active: #000;--widget__color-options: #666;--widget__bg-input: #fff;--widget__bg-hover: #b8b8b84f;--widget__bg-active: #c2dff2;--widget__focus-ring: #0077f0;--search__bg-find: #ea5c0054;--widget__bg-error: #f2dede;--widget__error-ring: #be1100;--editor__border-highlight: 2px solid #eee;--editor__bg-selection-match: #add6ff80;--editor__line-number: #53abc6;--editor__bg-scrollbar: 0, 0%, 25%;--editor__bg-fold: #424242;--bg-guide-indent: #3333;color-scheme:light}.match-highlight{--editor__bg-highlight: #eee}.prism-code-editor textarea::selection{background:#add6ff;color:#0000}.pce-matches .match{--search__bg-find: #c1adab}.active-line{--editor__line-number: #0b216f}.guide-indents .active{--bg-guide-indent: #0006}.token.namespace{opacity:.7}.token.comment,.token.prolog{color:green}.token.number,.token.symbol,.token.inserted,.token.unit{color:#098658}.token.string,.token.string-property.property,.token.char,.token.deleted{color:#a31515}.url .token.string.url{text-decoration:underline;color:#001080}.token.operator,.token.combinator,.token.punctuation,.token.plain-text,.token.quantifier.number{color:#000}.token.operator.arrow,.token.keyword,.token.important,.token.token.interpolation-punctuation,.token.boolean,.token.entity,.token.attr-value,.token.attr-value .token.punctuation,.token.regex-flags{color:#00f}.token.atrule .token.rule{color:#af00db}.token.atrule .token.url{color:#9cdcfe}.token.atrule .token.url .token.function,.token.function,.token.function .token.maybe-class-name{color:#795e26}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.strike{text-decoration:line-through}.token.class-name,.token.builtin,.token.maybe-class-name{color:#267f99}.token.doctype .name,.token.property,.token.attr-name{color:#e50000}.token.variable,.token.parameter,.token.literal-property,.token.atrule{color:#001080}.token.doctype .token.doctype-tag,.token.selector,.token.escape,.token.tag,.tag>.token.punctuation,.doctype .token.punctuation,.token.cdata{color:maroon}.token.attr-value .token.punctuation.attr-equals{color:#000}.token.namespace{color:#4ec9b0}.token.constant{color:#0070c1}[class*=language-]{color:#001080}.token.regex,.language-regex,.token.char-set.class-name,.token.char-class .operator{color:#811f3f}.language-markup,.language-markdown,.language-md,.language-html,.language-xml,.language-svg,.language-text,.language-css,.language-scss,.language-sass{color:#000}.token.color,.token.blockquote.punctuation,.token.list.punctuation{color:#0451a5}.language-markdown .token.bold *{color:navy}.language-markdown .token.code>.punctuation,.language-markdown .token.code.keyword{color:#000}.token.important.title *,.token.important.title,.language-markdown .token.code-snippet.keyword{color:maroon}.language-markdown .token.url .content,.token.url-reference .variable,.token.group.punctuation,.token.char-class .punctuation{color:#a31515}.token.keyword.module,.token.keyword.control-flow,.token.keyword-if,.token.keyword-else,.token.keyword-return,.token.keyword-switch,.token.keyword-case,.token.keyword-default,.token.keyword-import,.token.keyword-from,.token.keyword-export,.token.keyword-as,.token.keyword-for,.token.keyword-while,.token.keyword-break,.token.keyword-continue,.token.keyword-try,.token.keyword-catch,.token.keyword-finally,.token.keyword-throw,.token.keyword-yield,.token.keyword-await{color:#af00db}.token.bracket-level-0,.token.bracket-level-3,.token.bracket-level-6,.token.bracket-level-9{color:#0431fa}.token.bracket-level-1,.token.bracket-level-4,.token.bracket-level-7,.token.bracket-level-10{color:#319331}.token.bracket-level-2,.token.bracket-level-5,.token.bracket-level-8,.token.bracket-level-11{color:#7b3814}.token.bracket-error{color:#ff1212cc}.token.markup-bracket{color:inherit}.active-bracket{box-shadow:inset 0 0 0 1px #b9b9b9,inset 0 0 0 9in #0064001a}.active-tagname,.word-matches span{background:#57575740}";export{e as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.7 KiB

25
index.html Normal file
View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FlowOS</title>
<link rel="shortcut icon" href="/assets/flow-9a6c45c5.png" type="image/png">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9675905177363247" crossorigin="anonymous"></script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-X4XVQRWEVM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-X4XVQRWEVM');
</script>
<script type="module" crossorigin src="/assets/index-10f4832e.js"></script>
</head>
<body>
</body>
</html>

56
privacy.html Normal file
View file

@ -0,0 +1,56 @@
<h1>Privacy Policy for Flow Works</h1>
<p>At FlowOS, accessible from https://flow-works.me, one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by FlowOS and how we use it.</p>
<p>If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us.</p>
<h2>Log Files</h2>
<p>FlowOS follows a standard procedure of using log files. These files log visitors when they visit websites. All hosting companies do this and a part of hosting services' analytics. The information collected by log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking users' movement on the website, and gathering demographic information.</p>
<h2>Cookies and Web Beacons</h2>
<p>Like any other website, FlowOS uses "cookies". These cookies are used to store information including visitors' preferences, and the pages on the website that the visitor accessed or visited. The information is used to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other information.</p>
<h2>Google DoubleClick DART Cookie</h2>
<p>Google is one of a third-party vendor on our site. It also uses cookies, known as DART cookies, to serve ads to our site visitors based upon their visit to www.website.com and other sites on the internet. However, visitors may choose to decline the use of DART cookies by visiting the Google ad and content network Privacy Policy at the following URL <a href="https://policies.google.com/technologies/ads">https://policies.google.com/technologies/ads</a></p>
<h2>Our Advertising Partners</h2>
<p>Some of advertisers on our site may use cookies and web beacons. Our advertising partners are listed below. Each of our advertising partners has their own Privacy Policy for their policies on user data. For easier access, we hyperlinked to their Privacy Policies below.</p>
<ul>
<li>
<p>Google</p>
<p><a href="https://policies.google.com/technologies/ads">https://policies.google.com/technologies/ads</a></p>
</li>
</ul>
<h2>Privacy Policies</h2>
<P>You may consult this list to find the Privacy Policy for each of the advertising partners of FlowOS.</p>
<p>Third-party ad servers or ad networks uses technologies like cookies, JavaScript, or Web Beacons that are used in their respective advertisements and links that appear on FlowOS, which are sent directly to users' browser. They automatically receive your IP address when this occurs. These technologies are used to measure the effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on websites that you visit.</p>
<p>Note that FlowOS has no access to or control over these cookies that are used by third-party advertisers.</p>
<h2>Third Party Privacy Policies</h2>
<p>FlowOS's Privacy Policy does not apply to other advertisers or websites. Thus, we are advising you to consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may include their practices and instructions about how to opt-out of certain options. </p>
<p>You can choose to disable cookies through your individual browser options. To know more detailed information about cookie management with specific web browsers, it can be found at the browsers' respective websites.</p>
<h2>Children's Information</h2>
<p>Another part of our priority is adding protection for children while using the internet. We encourage parents and guardians to observe, participate in, and/or monitor and guide their online activity.</p>
<p>FlowOS does not knowingly collect any Personal Identifiable Information from children under the age of 13. If you think that your child provided this kind of information on our website, we strongly encourage you to contact us immediately and we will do our best efforts to promptly remove such information from our records.</p>
<h2>Online Privacy Policy Only</h2>
<p>This Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to the information that they shared and/or collect in FlowOS. This policy is not applicable to any information collected offline or via channels other than this website.</p>
<h2>Consent</h2>
<p>By using our website, you hereby consent to our Privacy Policy and agree to its Terms and Conditions.</p>

21
uv-sw.js Normal file
View file

@ -0,0 +1,21 @@
/*global UVServiceWorker,__uv$config*/
/*
* Stock service worker script.
* Users can provide their own sw.js if they need to extend the functionality of the service worker.
* Ideally, this will be registered under the scope in uv.config.js so it will not need to be modified.
* However, if a user changes the location of uv.bundle.js/uv.config.js or sw.js is not relative to them, they will need to modify this script locally.
*/
importScripts(`uv.config.js`);
const params = new URL(self.location.href).searchParams
const serverURL = atob(params.get('url'));
self.__uv$config.bare = `${serverURL}/bare/`
importScripts('uv.bundle.js');
importScripts(__uv$config.sw || 'uv.sw.js');
const sw = new UVServiceWorker();
self.addEventListener('fetch', (event) => event.respondWith(sw.fetch(event)));

39014
uv.bundle.js Normal file

File diff suppressed because one or more lines are too long

BIN
uv.bundle.js.gz Normal file

Binary file not shown.

7
uv.bundle.js.map Normal file

File diff suppressed because one or more lines are too long

2939
uv.client.js Normal file

File diff suppressed because it is too large Load diff

BIN
uv.client.js.gz Normal file

Binary file not shown.

7
uv.client.js.map Normal file

File diff suppressed because one or more lines are too long

40
uv.config.js Normal file
View file

@ -0,0 +1,40 @@
/*global Ultraviolet*/
const xor = {
encode: (str) => encodeURIComponent(
str
.toString()
.split('')
.map((char, ind) => {
const indCheck = ind % 2 === 0 ? false : true
return indCheck ? String.fromCharCode(char.charCodeAt(0) ^ 2) : char
})
.join('')
),
decode: (str) => {
const [input, ...search] = str.split('?')
return (
decodeURIComponent(input)
.split('')
.map((char, ind) => {
const indCheck = ind % 2 === 0 ? false : true
return indCheck ? String.fromCharCode(char.charCodeAt(0) ^ 2) : char
})
.join('') + ((search.length > 0) ? `?${search.join('?')}` : '')
)
}
}
self.__uv$config = {
prefix: '/service/',
encodeUrl: xor.encode,
decodeUrl: xor.decode,
handler: '/uv.handler.js',
client: '/uv.client.js',
bundle: '/uv.bundle.js',
config: '/uv.config.js',
sw: '/uv.sw.js',
};

1218
uv.handler.js Normal file

File diff suppressed because it is too large Load diff

BIN
uv.handler.js.gz Normal file

Binary file not shown.

7
uv.handler.js.map Normal file

File diff suppressed because one or more lines are too long

368
uv.sw.js Normal file
View file

@ -0,0 +1,368 @@
(() => {
// src/uv.sw.js
var Ultraviolet = self.Ultraviolet;
var cspHeaders = [
"cross-origin-embedder-policy",
"cross-origin-opener-policy",
"cross-origin-resource-policy",
"content-security-policy",
"content-security-policy-report-only",
"expect-ct",
"feature-policy",
"origin-isolation",
"strict-transport-security",
"upgrade-insecure-requests",
"x-content-type-options",
"x-download-options",
"x-frame-options",
"x-permitted-cross-domain-policies",
"x-powered-by",
"x-xss-protection"
];
var emptyMethods = ["GET", "HEAD"];
var UVServiceWorker = class extends Ultraviolet.EventEmitter {
constructor(config = __uv$config) {
super();
if (!config.bare)
config.bare = "/bare/";
if (!config.prefix)
config.prefix = "/service/";
this.config = config;
const addresses = (Array.isArray(config.bare) ? config.bare : [config.bare]).map((str) => new URL(str, location).toString());
this.address = addresses[~~(Math.random() * addresses.length)];
this.bareClient = new Ultraviolet.BareClient(this.address);
}
/**
*
* @param {Event & {request: Request}} param0
* @returns
*/
async fetch({ request }) {
let fetchedURL;
try {
if (!request.url.startsWith(location.origin + this.config.prefix))
return await fetch(request);
const ultraviolet = new Ultraviolet(this.config, this.address);
if (typeof this.config.construct === "function") {
this.config.construct(ultraviolet, "service");
}
const db = await ultraviolet.cookie.db();
ultraviolet.meta.origin = location.origin;
ultraviolet.meta.base = ultraviolet.meta.url = new URL(
ultraviolet.sourceUrl(request.url)
);
const requestCtx = new RequestContext(
request,
this,
ultraviolet,
!emptyMethods.includes(request.method.toUpperCase()) ? await request.blob() : null
);
if (ultraviolet.meta.url.protocol === "blob:") {
requestCtx.blob = true;
requestCtx.base = requestCtx.url = new URL(
requestCtx.url.pathname
);
}
if (request.referrer && request.referrer.startsWith(location.origin)) {
const referer = new URL(
ultraviolet.sourceUrl(request.referrer)
);
if (requestCtx.headers.origin || ultraviolet.meta.url.origin !== referer.origin && request.mode === "cors") {
requestCtx.headers.origin = referer.origin;
}
requestCtx.headers.referer = referer.href;
}
const cookies = await ultraviolet.cookie.getCookies(db) || [];
const cookieStr = ultraviolet.cookie.serialize(
cookies,
ultraviolet.meta,
false
);
requestCtx.headers["user-agent"] = navigator.userAgent;
if (cookieStr)
requestCtx.headers.cookie = cookieStr;
const reqEvent = new HookEvent(requestCtx, null, null);
this.emit("request", reqEvent);
if (reqEvent.intercepted)
return reqEvent.returnValue;
fetchedURL = requestCtx.blob ? "blob:" + location.origin + requestCtx.url.pathname : requestCtx.url;
const response = await this.bareClient.fetch(fetchedURL, {
headers: requestCtx.headers,
method: requestCtx.method,
body: requestCtx.body,
credentials: requestCtx.credentials,
mode: location.origin !== requestCtx.address.origin ? "cors" : requestCtx.mode,
cache: requestCtx.cache,
redirect: requestCtx.redirect
});
const responseCtx = new ResponseContext(requestCtx, response);
const resEvent = new HookEvent(responseCtx, null, null);
this.emit("beforemod", resEvent);
if (resEvent.intercepted)
return resEvent.returnValue;
for (const name of cspHeaders) {
if (responseCtx.headers[name])
delete responseCtx.headers[name];
}
if (responseCtx.headers.location) {
responseCtx.headers.location = ultraviolet.rewriteUrl(
responseCtx.headers.location
);
}
if (request.destination === "document") {
const header = responseCtx.headers["content-disposition"];
if (!/\s*?((inline|attachment);\s*?)filename=/i.test(header)) {
const type = /^\s*?attachment/i.test(header) ? "attachment" : "inline";
const [filename] = new URL(response.finalURL).pathname.split("/").slice(-1);
responseCtx.headers["content-disposition"] = `${type}; filename=${JSON.stringify(filename)}`;
}
}
if (responseCtx.headers["set-cookie"]) {
Promise.resolve(
ultraviolet.cookie.setCookies(
responseCtx.headers["set-cookie"],
db,
ultraviolet.meta
)
).then(() => {
self.clients.matchAll().then(function(clients) {
clients.forEach(function(client) {
client.postMessage({
msg: "updateCookies",
url: ultraviolet.meta.url.href
});
});
});
});
delete responseCtx.headers["set-cookie"];
}
if (responseCtx.body) {
switch (request.destination) {
case "script":
case "worker":
{
const scripts = [
ultraviolet.bundleScript,
ultraviolet.clientScript,
ultraviolet.configScript,
ultraviolet.handlerScript
].map((script) => JSON.stringify(script)).join(",");
responseCtx.body = `if (!self.__uv && self.importScripts) { ${ultraviolet.createJsInject(
this.address,
this.bareClient.manifest,
ultraviolet.cookie.serialize(
cookies,
ultraviolet.meta,
true
),
request.referrer
)} importScripts(${scripts}); }
`;
responseCtx.body += ultraviolet.js.rewrite(
await response.text()
);
}
break;
case "style":
responseCtx.body = ultraviolet.rewriteCSS(
await response.text()
);
break;
case "iframe":
case "document":
if (isHtml(
ultraviolet.meta.url,
responseCtx.headers["content-type"] || ""
)) {
responseCtx.body = ultraviolet.rewriteHtml(
await response.text(),
{
document: true,
injectHead: ultraviolet.createHtmlInject(
ultraviolet.handlerScript,
ultraviolet.bundleScript,
ultraviolet.clientScript,
ultraviolet.configScript,
this.address,
this.bareClient.manifest,
ultraviolet.cookie.serialize(
cookies,
ultraviolet.meta,
true
),
request.referrer
)
}
);
}
}
}
if (requestCtx.headers.accept === "text/event-stream") {
responseCtx.headers["content-type"] = "text/event-stream";
}
if (crossOriginIsolated) {
responseCtx.headers["Cross-Origin-Embedder-Policy"] = "require-corp";
}
this.emit("response", resEvent);
if (resEvent.intercepted)
return resEvent.returnValue;
return new Response(responseCtx.body, {
headers: responseCtx.headers,
status: responseCtx.status,
statusText: responseCtx.statusText
});
} catch (err) {
if (!["document", "iframe"].includes(request.destination))
return new Response(void 0, { status: 500 });
console.error(err);
return renderError(err, fetchedURL, this.address);
}
}
static Ultraviolet = Ultraviolet;
};
self.UVServiceWorker = UVServiceWorker;
var ResponseContext = class {
/**
*
* @param {RequestContext} request
* @param {import("@tomphttp/bare-client").BareResponseFetch} response
*/
constructor(request, response) {
this.request = request;
this.raw = response;
this.ultraviolet = request.ultraviolet;
this.headers = {};
for (const key in response.rawHeaders)
this.headers[key.toLowerCase()] = response.rawHeaders[key];
this.status = response.status;
this.statusText = response.statusText;
this.body = response.body;
}
get url() {
return this.request.url;
}
get base() {
return this.request.base;
}
set base(val) {
this.request.base = val;
}
};
var RequestContext = class {
/**
*
* @param {Request} request
* @param {UVServiceWorker} worker
* @param {Ultraviolet} ultraviolet
* @param {BodyInit} body
*/
constructor(request, worker, ultraviolet, body = null) {
this.ultraviolet = ultraviolet;
this.request = request;
this.headers = Object.fromEntries(request.headers.entries());
this.method = request.method;
this.address = worker.address;
this.body = body || null;
this.cache = request.cache;
this.redirect = request.redirect;
this.credentials = "omit";
this.mode = request.mode === "cors" ? request.mode : "same-origin";
this.blob = false;
}
get url() {
return this.ultraviolet.meta.url;
}
set url(val) {
this.ultraviolet.meta.url = val;
}
get base() {
return this.ultraviolet.meta.base;
}
set base(val) {
this.ultraviolet.meta.base = val;
}
};
function isHtml(url, contentType = "") {
return (Ultraviolet.mime.contentType(contentType || url.pathname) || "text/html").split(";")[0] === "text/html";
}
var HookEvent = class {
#intercepted;
#returnValue;
constructor(data = {}, target = null, that = null) {
this.#intercepted = false;
this.#returnValue = null;
this.data = data;
this.target = target;
this.that = that;
}
get intercepted() {
return this.#intercepted;
}
get returnValue() {
return this.#returnValue;
}
respondWith(input) {
this.#returnValue = input;
this.#intercepted = true;
}
};
function hostnameErrorTemplate(fetchedURL, bareServer) {
const parsedFetchedURL = new URL(fetchedURL);
const script = `remoteHostname.textContent = ${JSON.stringify(
parsedFetchedURL.hostname
)};bareServer.href = ${JSON.stringify(bareServer)};uvHostname.textContent = ${JSON.stringify(location.hostname)};reload.addEventListener("click", () => location.reload());uvVersion.textContent = ${JSON.stringify(
"2.0.0"
)};`;
return `<!DOCTYPE html><html><head><meta charset='utf-8' /><title>Error</title></head><body><h1>This site can\u2019t be reached</h1><hr /><p><b id="remoteHostname"></b>\u2019s server IP address could not be found.</p><p>Try:</p><ul><li>Verifying you entered the correct address</li><li>Clearing the site data</li><li>Contacting <b id="uvHostname"></b>'s administrator</li><li>Verifying the <a id='bareServer' title='Bare server'>${config.bare}</a> isn't censored</li></ul><button id="reload">Reload</button><hr /><p><i>Ultraviolet v<span id="uvVersion"></span></i></p><script src="${"data:application/javascript," + encodeURIComponent(script)}"><\/script></body></html>`;
}
function errorTemplate(title, code, id, message, trace, fetchedURL, bareServer) {
if (message === "The specified host could not be resolved.")
return hostnameErrorTemplate(fetchedURL, bareServer);
const script = `errorTitle.textContent = ${JSON.stringify(title)};errorCode.textContent = ${JSON.stringify(code)};` + (id ? `errorId.textContent = ${JSON.stringify(id)};` : "") + `errorMessage.textContent = ${JSON.stringify(message)};errorTrace.value = ${JSON.stringify(trace)};fetchedURL.textContent = ${JSON.stringify(fetchedURL)};bareServer.href = ${JSON.stringify(bareServer)};for (const node of document.querySelectorAll("#uvHostname")) node.textContent = ${JSON.stringify(
location.hostname
)};reload.addEventListener("click", () => location.reload());uvVersion.textContent = ${JSON.stringify(
"2.0.0"
)};`;
return `<!DOCTYPE html><html><head><meta charset='utf-8' /><title>Error</title></head><body><h1 id='errorTitle'></h1><hr /><p>Failed to load <b id="fetchedURL"></b></p><p id="errorMessage"></p><table><tbody><tr><td>Code:</td><td id="errorCode"></td></tr>` + (id ? '<tr><td>ID:</td><td id="errorId"></td></tr>' : "") + `</tbody></table><textarea id="errorTrace" cols="40" rows="10" readonly></textarea><p>Try:</p><ul><li>Checking your internet connection</li><li>Verifying you entered the correct address</li><li>Clearing the site data</li><li>Contacting <b id="uvHostname"></b>'s administrator</li><li>Verify the <a id='bareServer' title='Bare server'>${config.bare}</a> isn't censored</li></ul><p>If you're the administrator of <b id="uvHostname"></b>, try:</p><ul><li>Restarting your Bare server</li><li>Updating Ultraviolet</li><li>Troubleshooting the error on the <a href="https://github.com/titaniumnetwork-dev/Ultraviolet" target="_blank">GitHub repository</a></li></ul><button id="reload">Reload</button><hr /><p><i>Ultraviolet v<span id="uvVersion"></span></i></p><script src="${"data:application/javascript," + encodeURIComponent(script)}"><\/script></body></html>`;
}
function isBareError(err) {
return err instanceof Error && typeof err.body === "object";
}
function renderError(err, fetchedURL, bareServer) {
let status;
let title;
let code;
let id = "";
let message;
if (isBareError(err)) {
status = err.status;
title = "Error communicating with the Bare server";
message = err.body.message;
code = err.body.code;
id = err.body.id;
} else {
status = 500;
title = "Error processing your request";
message = "Internal Server Error";
code = err instanceof Error ? err.name : "UNKNOWN";
}
return new Response(
errorTemplate(
title,
code,
id,
message,
String(err),
fetchedURL,
bareServer
),
{
status,
headers: {
"content-type": "text/html"
}
}
);
}
})();
//# sourceMappingURL=uv.sw.js.map

BIN
uv.sw.js.gz Normal file

Binary file not shown.

7
uv.sw.js.map Normal file

File diff suppressed because one or more lines are too long