');const E=s=>{const[c,r]=L(s,["class"]);return(()=>{var a=Ne();return M(a,R({get class(){return V("toggle",c.class)}},r),!1,!1),a})()},B=s=>{const[c,r]=L(s,["class"]);return(()=>{var a=Be();return M(a,R({get class(){return V("input input-bordered min-w-0",c.class)}},r),!1,!1),a})()},T=s=>{const[c,r]=L(s,["class"]);return(()=>{var a=Ue();return M(a,R({get class(){return V("select select-bordered",c.class)}},r),!1,!0),t(a,()=>ee(()=>r.children)()),a})()},I=s=>{const[c,r]=L(s,["class"]);return(()=>{var a=Ee(),f=a.firstChild;return M(a,R({get class(){return V("label",c.class)}},r),!1,!0),t(f,()=>ee(()=>r.children)()),a})()},Je=y.object({name:y.string(),type:y.string()}),Ye=()=>{const[s]=j(),c=le(),{form:r,isSubmitting:a}=Z({extend:te({schema:Je}),onSubmit:n=>c.get("dns/query",{searchParams:{name:n.name,type:n.type}}).json().then(({Answer:i})=>p((i==null?void 0:i.map(({data:o})=>o))||[])).catch(i=>Ie.error(i.message))}),[f,p]=re([]);return(()=>{var n=Ve(),i=n.firstChild,o=i.firstChild;return J(r,i,()=>r),t(i,e(B,{type:"search",name:"name",class:"flex-1",placeholder:"google.com",onInput:b=>{b.target.value||p([])}}),o),t(o,e(T,{name:"type",get children(){return[je(),Le(),Me()]}}),null),t(o,e(w,{type:"submit",class:"btn-primary",get loading(){return a()},get children(){return s("dnsQuery")}}),null),t(n,e(S,{get when(){return f().length>0},get children(){var b=Re();return t(b,e(A,{get each(){return f()},children:l=>(()=>{var m=Qe();return t(m,l),m})()})),b}}),null),n})()},et=y.object({port:y.number(),"socks-port":y.number(),"redir-port":y.number(),"tproxy-port":y.number(),"mixed-port":y.number()}),tt=({isSingBox:s,fetchBackendVersion:c})=>{const[r]=j(),a=[{label:()=>r("port",{name:"Mixed"}),key:"mixed-port",onChange:l=>void $("mixed-port",Number(l.target.value),o)},{label:()=>r("port",{name:"HTTP"}),key:"port",onChange:l=>void $("port",Number(l.target.value),o)},{label:()=>r("port",{name:"Socks"}),key:"socks-port",onChange:l=>void $("socks-port",Number(l.target.value),o)},{label:()=>r("port",{name:"Redir"}),key:"redir-port",onChange:l=>void $("redir-port",Number(l.target.value),o)},{label:()=>r("port",{name:"TProxy"}),key:"tproxy-port",onChange:l=>void $("tproxy-port",Number(l.target.value),o)}],{form:f,setInitialValues:p,reset:n}=Z({extend:te({schema:et})}),[i,{refetch:o}]=U(Ae);Y(()=>{const l=i();l&&(p(l),n())});const b=W(()=>{const l=i();return(l==null?void 0:l["mode-list"])||(l==null?void 0:l.modes)||["rule","direct","global"]});return(()=>{var l=Oe(),m=l.firstChild,D=m.firstChild,g=D.nextSibling,x=g.nextSibling,F=m.nextSibling;return t(D,e(I,{for:"enable-allow-lan",get children(){return r("allowLan")}}),null),t(D,e(E,{id:"enable-allow-lan",get checked(){var u;return(u=i())==null?void 0:u["allow-lan"]},onChange:u=>void $("allow-lan",u.target.checked,o)}),null),t(g,e(I,{for:"mode",get children(){return r("runningMode")}}),null),t(g,e(T,{id:"mode",onChange:u=>void $("mode",u.target.value,o),get children(){return e(A,{get each(){return b()},children:u=>(()=>{var h=N();return h.value=u,t(h,()=>r(u)??u),P(()=>{var _;return h.selected=u===((_=i())==null?void 0:_.mode)}),h})()})}}),null),t(x,e(I,{for:"interface-name",get children(){return r("outboundInterfaceName")}}),null),t(x,e(B,{id:"interface-name",get value(){var u;return(u=i())==null?void 0:u["interface-name"]},onChange:u=>void $("interface-name",u.target.value,o)}),null),t(l,e(S,{get when(){return!s()},get children(){return[(()=>{var u=qe(),h=u.firstChild,_=h.nextSibling,Q=_.nextSibling;return t(h,e(I,{for:"enable-tun-device",get children(){return r("enableTunDevice")}}),null),t(h,e(E,{id:"enable-tun-device",get checked(){var v,k;return(k=(v=i())==null?void 0:v.tun)==null?void 0:k.enable},onChange:v=>void $("tun",{enable:v.target.checked},o)}),null),t(_,e(I,{for:"tun-ip-stack",get children(){return r("tunModeStack")}}),null),t(_,e(T,{id:"tun-ip-stack",onChange:v=>void $("tun",{stack:v.target.value},o),get children(){return e(A,{each:["Mixed","gVisor","System","LWIP"],children:v=>(()=>{var k=N();return k.value=v,t(k,v),P(()=>{var q,G;return k.selected=((G=(q=i())==null?void 0:q.tun)==null?void 0:G.stack)===v}),k})()})}}),null),t(Q,e(I,{for:"device-name",get children(){return r("tunDeviceName")}}),null),t(Q,e(B,{id:"device-name",get value(){var v,k;return(k=(v=i())==null?void 0:v.tun)==null?void 0:k.device},onChange:v=>void $("tun",{device:v.target.value},o)}),null),u})(),(()=>{var u=Ge();return J(f,u,()=>f),t(u,e(A,{each:a,children:h=>(()=>{var _=ze();return t(_,e(I,{get for(){return h.key},get children(){return h.label()}}),null),t(_,e(B,{get id(){return h.key},get name(){return h.key},type:"number",get placeholder(){return h.label()},get onChange(){return h.onChange}}),null),_})()})),u})()]}}),F),t(F,e(w,{class:"btn-primary",get loading(){return ne()},onClick:ae,get children(){return r("reloadConfig")}}),null),t(F,e(w,{class:"btn-accent",get loading(){return se()},onClick:ie,get children(){return r("flushFakeIP")}}),null),t(F,e(w,{class:"btn-warning",get loading(){return ce()},onClick:oe,get children(){return r("restartCore")}}),null),t(F,e(S,{get when(){return!s()},get children(){return[e(w,{class:"btn-secondary",get loading(){return ue()},onClick:de,get children(){return r("updateGEODatabases")}}),e(w,{class:"btn-info",get loading(){return ge()},onClick:he,get children(){return r("upgradeUI")}}),e(w,{class:"btn-error",get loading(){return ve()},onClick:async()=>{await fe(),await c()},get children(){return r("upgradeCore")}})]}}),null),l})()},lt=()=>{const[s]=j(),c=X(),r=[{label:()=>s("en"),value:O.EN},{label:()=>s("zh"),value:O.ZH}];return(()=>{var a=Xe(),f=a.firstChild,p=f.firstChild,n=p.nextSibling,i=n.nextSibling,o=f.nextSibling,b=o.firstChild;return t(p,e(C,{get children(){return s("useTwemoji")}}),null),t(p,e(E,{get checked(){return pe()},onChange:l=>me(l.target.checked)}),null),t(n,e(C,{get children(){return s("switchLanguage")}}),null),t(n,e(T,{onChange:l=>be(l.target.value),get children(){return e(A,{each:r,children:l=>(()=>{var m=N();return t(m,()=>l.label()),P(()=>m.selected=xe()===l.value),P(()=>m.value=l.value),m})()})}}),null),t(i,e(C,{get children(){var l;return(l=K())==null?void 0:l.url}}),null),t(i,e(w,{class:"btn-info",onClick:()=>{$e(""),c(_e.Setup)},get children(){return s("switchEndpoint")}}),null),t(b,e(C,{get children(){return s("autoSwitchTheme")}}),null),t(b,e(E,{get checked(){return z()},onChange:l=>ke(l.target.checked)}),null),t(o,e(S,{get when(){return z()},get children(){var l=He(),m=l.firstChild,D=m.nextSibling;return t(m,e(C,{get children(){return s("favDayTheme")}}),null),t(m,e(T,{onChange:g=>Ce(g.target.value),get children(){return e(A,{each:H,children:g=>(()=>{var x=N();return x.value=g,t(x,g),P(()=>x.selected=ye()===g),x})()})}}),null),t(D,e(C,{get children(){return s("favNightTheme")}}),null),t(D,e(T,{onChange:g=>we(g.target.value),get children(){return e(A,{each:H,children:g=>(()=>{var x=N();return x.value=g,t(x,g),P(()=>x.selected=Se()===g),x})()})}}),null),l}}),null),a})()},rt=({frontendVersion:s,backendVersion:c})=>{const[r]=U(()=>De(s)),[a,{refetch:f}]=U(()=>Pe(c()));Y(()=>{f()},c());const p=()=>Ke();return(()=>{var n=We(),i=n.firstChild,o=i.firstChild,b=i.nextSibling,l=b.firstChild;return t(i,e(S,{get when(){return r()},get children(){return e(p,{})}}),o),t(o,()=>"1.173.3"),t(b,e(S,{get when(){return a()},get children(){return e(p,{})}}),l),t(l,c),n})()},st=()=>{const s=X();if(!K())return s("/setup",{replace:!0}),null;const[c]=j(),r="v1.173.3",[a,{refetch:f}]=U(Te,{initialValue:""}),p=W(()=>{var n;return((n=a())==null?void 0:n.includes("sing-box"))||!1});return[e(Fe,{get children(){return c("config")}}),(()=>{var n=Ze();return t(n,e(S,{get when(){return!p()},get children(){return[e(C,{withDivider:!0,get children(){return c("dnsQuery")}}),e(Ye,{})]}}),null),t(n,e(C,{withDivider:!0,get children(){return c("coreConfig")}}),null),t(n,e(tt,{isSingBox:p,fetchBackendVersion:()=>f()}),null),t(n,e(C,{withDivider:!0,get children(){return c("xdConfig")}}),null),t(n,e(lt,{}),null),t(n,e(C,{withDivider:!0,get children(){return c("version")}}),null),t(n,e(S,{get when(){return!a.loading},get children(){return e(rt,{frontendVersion:r,backendVersion:a})}}),null),n})()]};export{st as default};
diff --git a/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/Connections-B_UhsQEk.js b/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/Connections-B_UhsQEk.js
new file mode 100644
index 0000000000..18f09d7123
--- /dev/null
+++ b/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/Connections-B_UhsQEk.js
@@ -0,0 +1,16 @@
+import{N as O,u as ie,d as n,O as Te,S as ze,i as s,P as ce,Q as Ge,t as g,b as Me,y as Ee,A as $,R as Ke,T as Y,U as i,B as x,V as J,I as W,W as ee,H as D,X as R,Y as te,Z as ae,_ as Re,r as Ne,w as Oe,D as b,g as y,$ as I,a0 as w,a1 as ne,E as Ae,a2 as He,a3 as je,F as T,a4 as N,a5 as Ve,a6 as Ue,a7 as Ze,a8 as Le,a9 as Qe,aa as qe,m as Be}from"./index-DNc1N1Rv.js";import{c as Xe,g as Ye,a as Je,b as We,d as et,e as tt,I as at,f as nt,h as z,i as lt,j as st,r as rt}from"./index-XbeMqmJa.js";import{D as ot}from"./DocumentTitle-D55F_IfB.js";import{f as it}from"./time-C4gqnMrH.js";/**
+ * @license @tabler/icons-solidjs v3.23.0 - MIT
+ *
+ * This source code is licensed under the MIT license.
+ * See the LICENSE file in the root directory of this source tree.
+ */var ct=O("outline","info-small","IconInfoSmall",[["path",{d:"M12 9h.01"}],["path",{d:"M11 12h1v4h1"}]]);/**
+ * @license @tabler/icons-solidjs v3.23.0 - MIT
+ *
+ * This source code is licensed under the MIT license.
+ * See the LICENSE file in the root directory of this source tree.
+ */var le=O("filled","zoom-in-filled","IconZoomInFilled",[["path",{d:"M14 3.072a8 8 0 0 1 2.617 11.424l4.944 4.943a1.5 1.5 0 0 1 -2.008 2.225l-.114 -.103l-4.943 -4.944a8 8 0 0 1 -12.49 -6.332l-.006 -.285l.005 -.285a8 8 0 0 1 11.995 -6.643zm-4 2.928a1 1 0 0 0 -.993 .883l-.007 .117v2h-2l-.117 .007a1 1 0 0 0 0 1.986l.117 .007h2v2l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-2h2l.117 -.007a1 1 0 0 0 0 -1.986l-.117 -.007h-2v-2l-.007 -.117a1 1 0 0 0 -.993 -.883z"}]]);/**
+ * @license @tabler/icons-solidjs v3.23.0 - MIT
+ *
+ * This source code is licensed under the MIT license.
+ * See the LICENSE file in the root directory of this source tree.
+ */var se=O("filled","zoom-out-filled","IconZoomOutFilled",[["path",{d:"M14 3.072a8 8 0 0 1 2.617 11.424l4.944 4.943a1.5 1.5 0 0 1 -2.008 2.225l-.114 -.103l-4.943 -4.944a8 8 0 0 1 -12.49 -6.332l-.006 -.285l.005 -.285a8 8 0 0 1 11.995 -6.643zm-1 5.928h-6l-.117 .007a1 1 0 0 0 0 1.986l.117 .007h6l.117 -.007a1 1 0 0 0 0 -1.986l-.117 -.007z"}]]),dt=g("
");const ut=d=>{const[f]=ie();return n(Ge,{ref:m=>{var a;return(a=d.ref)==null?void 0:a.call(d,m)},get icon(){return n(Te,{size:24})},get title(){return f("connectionsDetails")},get children(){return n(ze,{get when(){return d.selectedConnectionID},get children(){var m=dt(),a=m.firstChild;return s(a,()=>JSON.stringify(ce().find(({id:S})=>S===d.selectedConnectionID),null,2)),m}})}})};var gt=async d=>{typeof d=="string"?await navigator.clipboard.writeText(d):await navigator.clipboard.write(d)},re=g(''),mt=g('
'),pt=g('