matrix-by-lmx 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of matrix-by-lmx might be problematic. Click here for more details.
- package/index.svg +6 -4
- package/package.json +1 -1
package/index.svg
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><title>Matrix, By LMX</title><foreignObject width="100%" height="100%"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="UTF-8"/><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><title>Matrix, By LMX</title><foreignObject width="100%" height="100%"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="UTF-8"/><script><![CDATA[
|
|
2
|
+
(function(){var N="http://www.w3.org/1999/xhtml",R=document.querySelector("foreignObject").firstElementChild,CE=document.createElement.bind(document),CEN=document.createElementNS.bind(document);Object.defineProperty(document,"head",{get:function(){return R.querySelector("head")},configurable:true});Object.defineProperty(document,"body",{get:function(){return R.querySelector("body")},configurable:true});Object.defineProperty(document,"documentElement",{get:function(){return R},configurable:true});document.createElement=function(n,o){return typeof n==="string"?CEN(N,n,o):CE(n,o)};document.createElementNS=function(ns,n,o){return ns==null||ns===N?CEN(N,n,o):CEN(ns,n,o)}})();
|
|
3
|
+
]]></script><style><![CDATA[
|
|
2
4
|
*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{color:#fafafa;background:#080d15;font-family:Arial,sans-serif}button,input{font:inherit}.shell{height:100%;display:grid;grid-template-columns:200px 1fr}.side{padding:20px 12px;border-right:1px solid #203354;background:#0b1422}.brand{font-size:20px;font-weight:bold;margin:0 10px 30px}.brand b{display:inline-grid;place-items:center;width:32px;height:32px;margin-right:8px;border:1px solid #4a9dff;border-radius:8px;color:#b9dcff}.nav{display:block;width:100%;padding:12px;border:0;border-radius:6px;color:#91a0b4;background:transparent;text-align:left;cursor:pointer}.nav:hover,.nav.on{color:#fff;background:#152843}.main{display:grid;grid-template-rows:58px 1fr;min-width:0}.top{display:flex;align-items:center;padding:0 25px;border-bottom:1px solid #203354;background:#0a111d}.view{display:none;height:100%;overflow:auto;padding:45px 5vw;background:radial-gradient(circle at 50% 8%,#10243d,#080d15 35%)}.view.on{display:block}.hero{min-height:80%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.tag{color:#7abbff;font:10px Consolas;letter-spacing:2px}.hero h1,.head h1{margin:18px 0;font-size:clamp(52px,8vw,90px);line-height:.9}.hero em{display:block;color:#a9cbed;font-style:normal;font-weight:normal}.hero p,.head p{color:#91a0b4}.search{width:min(680px,100%);display:grid;grid-template-columns:1fr 58px;margin-top:25px;border:1px solid #324f75;border-radius:8px;overflow:hidden}.search input{height:58px;padding:0 18px;border:0;color:#fff;background:#0a1320}.search button{border:0;background:#7abbff;cursor:pointer}.quick{display:flex;gap:8px;margin-top:15px}.quick button{padding:13px 25px;border:1px solid #203354;border-radius:6px;color:#b9c6d6;background:#101c2d;cursor:pointer}.tools{display:flex;gap:12px;margin:20px 0}.tools input{width:320px;padding:12px;border:1px solid #2a4164;border-radius:6px;color:#fff;background:#0c1624}.count{color:#71839b}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.card{min-height:155px;padding:18px;border:1px solid #203354;border-radius:8px;color:#fff;background:#0d1624;text-align:left;cursor:pointer}.card:hover{border-color:#7abbff}.card small{color:#66809e}.card strong{display:block;margin:35px 0 8px}.card span{color:#91a0b4;font-size:11px}.apps{grid-template-columns:repeat(3,1fr)}.panel{padding:22px;border:1px solid #203354;border-radius:8px;background:#0d1624}.player{position:fixed;inset:0;z-index:9;display:none;grid-template-rows:58px 1fr;background:#080d15}.player.on{display:grid}.bar{display:flex;align-items:center;gap:10px;padding:0 18px}.bar strong{flex:1}.bar button{padding:9px 14px}.player iframe{width:100%;height:100%;border:0}.msg{height:18px;color:#7abbff;font-size:11px}@media(max-width:750px){.shell{grid-template-columns:70px 1fr}.brand span,.nav span{display:none}.grid{grid-template-columns:repeat(2,1fr)}}]]></style></head><body><div class="shell"><aside class="side"><div class="brand"><b>M</b><span>Matrix</span></div><button class="nav on" data-v="home">⌂ <span>Home</span></button><button class="nav" data-v="games">◇ <span>Games</span></button><button class="nav" data-v="apps">◉ <span>Apps</span></button><button class="nav" data-v="tools">⌘ <span>Utilities</span></button><button class="nav" data-v="settings">⚙ <span>Settings</span></button></aside><main class="main"><header class="top"><strong id="title">New Tab</strong></header>
|
|
3
5
|
<section id="home" class="view on"><div class="hero"><b class="tag">MATRIX SVG CLIENT</b><h1>Matrix,<em>By LMX.</em></h1><p>Games, apps, search, and utilities inside one SVG document.</p><form id="search" class="search"><input id="q" placeholder="Search or enter a URL"/><button>→</button></form><p id="msg" class="msg"></p><div class="quick"><button data-go="games">Games</button><button data-go="apps">Apps</button><button data-go="tools">Utilities</button></div></div></section>
|
|
4
6
|
<section id="games" class="view"><div class="head"><b class="tag">MATRIX / CLOUD ARCADE</b><h1>Pick a game.</h1><p>Live community catalog loaded directly from its public CDN.</p></div><div class="tools"><input id="game-search" placeholder="Search games"/><span id="count" class="count">Loading…</span></div><div id="game-grid" class="grid"></div></section>
|
|
@@ -7,7 +9,7 @@
|
|
|
7
9
|
<section id="settings" class="view"><div class="head"><b class="tag">MATRIX / SETTINGS</b><h1>Preferences.</h1></div><div class="panel"><h3>Self-contained mode</h3><p>This Matrix interface runs directly inside the SVG. It does not load Vercel.</p></div></section></main></div>
|
|
8
10
|
<div id="player" class="player"><div class="bar"><strong id="pt">Matrix Player</strong><button id="reload">Reload</button><button id="close">Exit</button></div><iframe id="frame" title="Matrix player" allow="fullscreen;autoplay;gamepad"></iframe></div>
|
|
9
11
|
<script><![CDATA[
|
|
10
|
-
(function(){var names={home:"New Tab",games:"Games",apps:"Apps",tools:"Utilities",settings:"Settings"},all=[],player=document.getElementById("player"),frame=document.getElementById("frame");function show(v){document.querySelectorAll(".view").forEach(function(x){x.classList.toggle("on",x.id===v)});document.querySelectorAll(".nav").forEach(function(x){x.classList.toggle("on",x.dataset.v===v)});document.getElementById("title").textContent=names[v]}document.querySelectorAll("[data-v]").forEach(function(x){x.onclick=function(){show(x.dataset.v)}});document.querySelectorAll("[data-go]").forEach(function(x){x.onclick=function(){show(x.dataset.go)}});function open(t,u){document.getElementById("pt").textContent=t;frame.src=u;player.classList.add("on")}document.getElementById("close").onclick=function(){player.classList.remove("on");frame.src="about:blank"};document.getElementById("reload").onclick=function(){var u=frame.src;frame.src="about:blank";setTimeout(function(){frame.src=u},20)};document.getElementById("search").onsubmit=function(e){e.preventDefault();var q=document.getElementById("q").value.trim();if(!q)return;document.getElementById("msg").textContent="Opening inside Matrix…";open(q
|
|
11
|
-
var apps=[["YouTube","
|
|
12
|
-
function render(){var q=document.getElementById("game-search").value.toLowerCase(),list=all.filter(function(g){return g.name.toLowerCase().includes(q)}).slice(0,160),grid=document.getElementById("game-grid");grid.innerHTML="";list.forEach(function(g){var b=document.createElement("button");b.className="card";b.innerHTML="<small>COMMUNITY / HTML5</small><strong></strong><span>Launch inside Matrix ↗</span>";b.querySelector("strong").textContent=g.name;b.onclick=function(){
|
|
12
|
+
(function(){var names={home:"New Tab",games:"Games",apps:"Apps",tools:"Utilities",settings:"Settings"},all=[],blobUrl="",player=document.getElementById("player"),frame=document.getElementById("frame"),proxy="https://31i1-3tig0-2ri9g3i02g423g12d1.vercel.app";function show(v){document.querySelectorAll(".view").forEach(function(x){x.classList.toggle("on",x.id===v)});document.querySelectorAll(".nav").forEach(function(x){x.classList.toggle("on",x.dataset.v===v)});document.getElementById("title").textContent=names[v]}document.querySelectorAll("[data-v]").forEach(function(x){x.onclick=function(){show(x.dataset.v)}});document.querySelectorAll("[data-go]").forEach(function(x){x.onclick=function(){show(x.dataset.go)}});function open(t,u){document.getElementById("pt").textContent=t;frame.src=u;player.classList.add("on")}async function openGame(g){document.getElementById("pt").textContent=g.name+" · Loading";player.classList.add("on");try{var url=g.url.replace("{HTML_URL}","https://cdn.jsdelivr.net/gh/bubbls/ugs-singlefile/UGS-Files"),r=await fetch(url),html=await r.text(),base=new URL(".",url).href;html=/<head[\s>]/i.test(html)?html.replace(/<head([^>]*)>/i,"<head$1><base href=\""+base+"\">"):"<base href=\""+base+"\">"+html;if(blobUrl)URL.revokeObjectURL(blobUrl);blobUrl=URL.createObjectURL(new Blob([html],{type:"text/html"}));frame.src=blobUrl;document.getElementById("pt").textContent=g.name}catch(e){document.getElementById("pt").textContent="Could not load "+g.name;frame.src="about:blank"}}document.getElementById("close").onclick=function(){player.classList.remove("on");frame.src="about:blank";if(blobUrl){URL.revokeObjectURL(blobUrl);blobUrl=""}};document.getElementById("reload").onclick=function(){var u=frame.src;frame.src="about:blank";setTimeout(function(){frame.src=u},20)};document.getElementById("search").onsubmit=function(e){e.preventDefault();var q=document.getElementById("q").value.trim();if(!q)return;document.getElementById("msg").textContent="Opening search inside Matrix…";open(q,"https://html.duckduckgo.com/html/?q="+encodeURIComponent(q))};
|
|
13
|
+
var apps=[["YouTube","yt"],["Twitch","tw"],["ChatGPT","ai"],["Discord","dc"],["Instagram","ig"],["TikTok","tk"],["GitHub","gh"]],ag=document.getElementById("apps-grid");apps.forEach(function(a){var b=document.createElement("button");b.className="card";b.innerHTML="<small>PROXIED WEB APP</small><strong>"+a[0]+"</strong><span>Open through Matrix proxy ↗</span>";b.onclick=function(){open(a[0],proxy+"/browse?a="+a[1])};ag.appendChild(b)});
|
|
14
|
+
function render(){var q=document.getElementById("game-search").value.toLowerCase(),list=all.filter(function(g){return g.name.toLowerCase().includes(q)}).slice(0,160),grid=document.getElementById("game-grid");grid.innerHTML="";list.forEach(function(g){var b=document.createElement("button");b.className="card";b.innerHTML="<small>COMMUNITY / HTML5</small><strong></strong><span>Launch inside Matrix ↗</span>";b.querySelector("strong").textContent=g.name;b.onclick=function(){openGame(g)};grid.appendChild(b)});document.getElementById("count").textContent=list.length+" shown / "+all.length}fetch("https://cdn.jsdelivr.net/gh/TongSherbet/storage/ugs.json").then(function(r){return r.json()}).then(function(d){all=d.filter(function(g){return g.name&&g.url});render()}).catch(function(){document.getElementById("count").textContent="Catalog unavailable"});document.getElementById("game-search").oninput=render;setInterval(function(){document.getElementById("clock").textContent=new Date().toLocaleTimeString()},1000);document.getElementById("edit").onclick=function(){var b=document.querySelector("foreignObject body");b.contentEditable=b.contentEditable==="true"?"false":"true"};document.getElementById("reset").onclick=function(){show("home")};
|
|
13
15
|
})();]]></script></body></html></foreignObject></svg>
|