diff --git a/README.md b/README.md index 908b197..a75807c 100644 --- a/README.md +++ b/README.md @@ -81,8 +81,15 @@ If you forget the password, run `sudo sbm` and choose `Reset administrator passw - Copy a single-node URL or display its QR code - Automatic UUID, Reality key pair, short ID, and Hysteria2 password generation - Manual traffic reset or monthly reset on days 1–28 +- Automatic, prefer IPv4, prefer IPv6, IPv4-only, or IPv6-only proxy egress strategy - Automatic sing-box validation and rollback when a protocol change fails +### IPv4 / IPv6 egress + +Choose an address-family strategy under `Settings → Proxy egress network`. If IPv6 has more accurate geolocation, use **Prefer IPv6**: sing-box prefers IPv6 for destinations with AAAA records and falls back to IPv4 when needed. IPv6-only makes IPv4-only destinations unreachable. + +This setting requires sing-box 1.12 or newer and only affects domain destinations received by sing-box. The server cannot switch address family after a client has already resolved a domain to an IP. IPv6 client access also requires a correct AAAA record and matching rules in both the cloud and host firewalls. + ## Manage SBM from the terminal ```bash diff --git a/README.zh-CN.md b/README.zh-CN.md index dc24328..e5b0229 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -81,8 +81,15 @@ https://node.example.com:2096/ - 复制单节点链接或显示二维码 - 自动生成 UUID、Reality 密钥、short ID 和 Hysteria2 密码 - 手动重置流量,或设置每月 1~28 日自动重置 +- 可选自动、优先 IPv4、优先 IPv6、仅 IPv4 或仅 IPv6 的代理出口策略 - 协议变更前自动校验 sing-box,失败时恢复原配置 +### IPv4 / IPv6 出口 + +在 `设置 → 代理出口网络` 中可选择地址族策略。IPv6 地区归属更准确时建议使用“优先 IPv6”:目标有 AAAA 记录时优先走 IPv6,没有时仍回退 IPv4;“仅 IPv6”会让 IPv4-only 目标无法访问。 + +该策略要求 sing-box 1.12 或更高版本,并且只影响 sing-box 收到的域名目标。客户端已经把域名解析成 IP 时,服务端无法再切换地址族。客户端通过 IPv6 接入还需要域名有正确的 AAAA 记录,并在云防火墙和主机防火墙中放行对应端口。 + ## 用 `sbm` 管理服务 ```bash diff --git a/internal/core/render.go b/internal/core/render.go index 5fd7d42..b194a93 100644 --- a/internal/core/render.go +++ b/internal/core/render.go @@ -29,15 +29,20 @@ func (r Renderer) Render(cfg model.Config) ([]byte, error) { } inbounds = append(inbounds, built) } + direct := map[string]any{"type": "direct", "tag": "direct"} doc := map[string]any{ "log": map[string]any{"level": "warn", "timestamp": true}, "inbounds": inbounds, - "outbounds": []any{map[string]any{"type": "direct", "tag": "direct"}}, + "outbounds": []any{direct}, "route": map[string]any{"rules": []any{}, "final": "direct"}, "experimental": map[string]any{"clash_api": map[string]any{ "external_controller": "127.0.0.1:9090", "secret": cfg.ClashAPISecret, }}, } + if cfg.OutboundStrategy != "" && cfg.OutboundStrategy != model.OutboundStrategyAuto { + doc["dns"] = map[string]any{"servers": []any{map[string]any{"type": "local", "tag": "local"}}} + direct["domain_resolver"] = map[string]any{"server": "local", "strategy": cfg.OutboundStrategy} + } data, err := json.MarshalIndent(doc, "", " ") if err != nil { return nil, err diff --git a/internal/core/render_test.go b/internal/core/render_test.go index 64d5a77..76ae3b5 100644 --- a/internal/core/render_test.go +++ b/internal/core/render_test.go @@ -1,6 +1,7 @@ package core import ( + "encoding/json" "strings" "testing" @@ -28,3 +29,61 @@ func TestRenderConfig(t *testing.T) { } } } + +func TestRenderOutboundStrategy(t *testing.T) { + cfg := validRenderConfig() + cfg.OutboundStrategy = model.OutboundStrategyPreferIPv6 + data, err := (Renderer{Registry: protocol.DefaultRegistry()}).Render(cfg) + if err != nil { + t.Fatal(err) + } + var rendered struct { + DNS struct { + Servers []map[string]any `json:"servers"` + } `json:"dns"` + Outbounds []map[string]any `json:"outbounds"` + } + if err := json.Unmarshal(data, &rendered); err != nil { + t.Fatal(err) + } + if len(rendered.DNS.Servers) != 1 || rendered.DNS.Servers[0]["type"] != "local" || rendered.DNS.Servers[0]["tag"] != "local" { + t.Fatalf("unexpected DNS servers: %#v", rendered.DNS.Servers) + } + resolver, ok := rendered.Outbounds[0]["domain_resolver"].(map[string]any) + if !ok || resolver["server"] != "local" || resolver["strategy"] != model.OutboundStrategyPreferIPv6 { + t.Fatalf("unexpected domain resolver: %#v", rendered.Outbounds[0]["domain_resolver"]) + } +} + +func TestRenderAutomaticOutboundStrategyNeedsNoDNSSection(t *testing.T) { + for _, strategy := range []string{"", model.OutboundStrategyAuto} { + cfg := validRenderConfig() + cfg.OutboundStrategy = strategy + data, err := (Renderer{Registry: protocol.DefaultRegistry()}).Render(cfg) + if err != nil { + t.Fatal(err) + } + var rendered map[string]any + if err := json.Unmarshal(data, &rendered); err != nil { + t.Fatal(err) + } + if _, exists := rendered["dns"]; exists { + t.Fatalf("strategy %q unexpectedly rendered a DNS section", strategy) + } + outbounds := rendered["outbounds"].([]any) + if _, exists := outbounds[0].(map[string]any)["domain_resolver"]; exists { + t.Fatalf("strategy %q unexpectedly rendered a domain resolver", strategy) + } + } +} + +func validRenderConfig() model.Config { + secret := strings.Repeat("s", 43) + cfg := model.DefaultConfig() + cfg.Domain = "node.example.com" + cfg.AdminPasswordHash = "hash" + cfg.SessionSecret = secret + cfg.ClashAPISecret = secret + cfg.SubscriptionToken = secret + return cfg +} diff --git a/internal/model/model.go b/internal/model/model.go index 3bb2efe..315a1dd 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -5,6 +5,12 @@ import "time" const ( ConfigVersion = 1 StateVersion = 1 + + OutboundStrategyAuto = "auto" + OutboundStrategyPreferIPv4 = "prefer_ipv4" + OutboundStrategyPreferIPv6 = "prefer_ipv6" + OutboundStrategyIPv4Only = "ipv4_only" + OutboundStrategyIPv6Only = "ipv6_only" ) type Config struct { @@ -18,6 +24,7 @@ type Config struct { SubscriptionToken string `json:"subscriptionToken"` TotalBytes int64 `json:"totalBytes"` Reset ResetConfig `json:"reset"` + OutboundStrategy string `json:"outboundStrategy,omitempty"` Inbounds []Inbound `json:"inbounds"` } @@ -68,7 +75,8 @@ func (s State) Total() int64 { return s.Upload + s.Download } func DefaultConfig() Config { return Config{ Version: ConfigVersion, PanelPort: 2096, AdminUsername: "admin", - Reset: ResetConfig{Mode: "none", Day: 1, Timezone: "Local"}, + Reset: ResetConfig{Mode: "none", Day: 1, Timezone: "Local"}, + OutboundStrategy: OutboundStrategyAuto, } } diff --git a/internal/protocol/driver.go b/internal/protocol/driver.go index d86c6e9..18bc46c 100644 --- a/internal/protocol/driver.go +++ b/internal/protocol/driver.go @@ -70,6 +70,9 @@ func (r *Registry) ValidateConfig(cfg model.Config) error { if err := ValidateReset(cfg.Reset); err != nil { return err } + if err := ValidateOutboundStrategy(cfg.OutboundStrategy); err != nil { + return err + } type endpoint struct { id string port int @@ -107,6 +110,15 @@ func (r *Registry) ValidateConfig(cfg model.Config) error { return nil } +func ValidateOutboundStrategy(strategy string) error { + switch strategy { + case "", model.OutboundStrategyAuto, model.OutboundStrategyPreferIPv4, model.OutboundStrategyPreferIPv6, model.OutboundStrategyIPv4Only, model.OutboundStrategyIPv6Only: + return nil + default: + return errors.New("出站地址策略无效") + } +} + func ValidateReset(reset model.ResetConfig) error { if reset.Mode != "none" && reset.Mode != "monthly" { return errors.New("重置模式只能是 none 或 monthly") diff --git a/internal/server/server.go b/internal/server/server.go index bff10ab..09afa6d 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -482,18 +482,44 @@ func (s *Server) saveConfig(change func(*model.Config)) error { func (s *Server) getSettings(w http.ResponseWriter, _ *http.Request) { cfg := s.Config.Get() - writeJSON(w, 200, map[string]any{"domain": cfg.Domain, "panelPort": cfg.PanelPort, "totalBytes": cfg.TotalBytes, "reset": cfg.Reset, "subscriptionURL": subscriptionURL(cfg)}) + outboundStrategy := cfg.OutboundStrategy + if outboundStrategy == "" { + outboundStrategy = model.OutboundStrategyAuto + } + writeJSON(w, 200, map[string]any{ + "domain": cfg.Domain, "panelPort": cfg.PanelPort, "totalBytes": cfg.TotalBytes, "reset": cfg.Reset, + "outboundStrategy": outboundStrategy, "subscriptionURL": subscriptionURL(cfg), + }) } func (s *Server) updateSettings(w http.ResponseWriter, r *http.Request) { var input struct { - TotalBytes int64 `json:"totalBytes"` - Reset model.ResetConfig `json:"reset"` + TotalBytes int64 `json:"totalBytes"` + Reset model.ResetConfig `json:"reset"` + OutboundStrategy string `json:"outboundStrategy"` } if decodeJSON(r, &input) != nil { writeError(w, 400, "请求格式无效") return } - if err := s.saveConfig(func(cfg *model.Config) { cfg.TotalBytes = input.TotalBytes; cfg.Reset = input.Reset }); err != nil { + if input.OutboundStrategy == "" { + input.OutboundStrategy = model.OutboundStrategyAuto + } + change := func(cfg *model.Config) { + cfg.TotalBytes = input.TotalBytes + cfg.Reset = input.Reset + cfg.OutboundStrategy = input.OutboundStrategy + } + currentStrategy := s.Config.Get().OutboundStrategy + if currentStrategy == "" { + currentStrategy = model.OutboundStrategyAuto + } + var err error + if currentStrategy != input.OutboundStrategy { + err = s.mutate(r.Context(), change) + } else { + err = s.saveConfig(change) + } + if err != nil { writeError(w, 400, err.Error()) return } diff --git a/internal/server/server_test.go b/internal/server/server_test.go index 73ec1af..e201551 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -11,6 +11,7 @@ import ( "log" "net/http" "net/http/httptest" + "os" "path/filepath" "slices" "strings" @@ -31,10 +32,22 @@ import ( type successCommander struct{} -func (successCommander) Run(context.Context, string, ...string) ([]byte, error) { +func (successCommander) Run(_ context.Context, name string, args ...string) ([]byte, error) { + if name == "systemctl" && len(args) > 0 && args[0] == "is-active" { + return []byte("active"), nil + } return []byte("sing-box version 1.12.0"), nil } +type checkFailureCommander struct{ successCommander } + +func (c checkFailureCommander) Run(ctx context.Context, name string, args ...string) ([]byte, error) { + if len(args) > 0 && args[0] == "check" { + return []byte("invalid configuration"), errors.New("exit status 1") + } + return c.successCommander.Run(ctx, name, args...) +} + type fakeReleases struct { calls int info releasecheck.Info @@ -186,6 +199,81 @@ func TestChangePassword(t *testing.T) { } } +func TestSettingsUpdatesOutboundStrategyAndCoreConfig(t *testing.T) { + s, cfg := testServer(t) + response := httptest.NewRecorder() + req := authenticatedRequest(t, s, http.MethodPut, "/api/settings", map[string]any{ + "totalBytes": cfg.TotalBytes, + "reset": cfg.Reset, + "outboundStrategy": model.OutboundStrategyPreferIPv6, + }) + s.Handler().ServeHTTP(response, req) + if response.Code != http.StatusOK { + t.Fatalf("status=%d body=%s", response.Code, response.Body.String()) + } + if got := s.Config.Get().OutboundStrategy; got != model.OutboundStrategyPreferIPv6 { + t.Fatalf("outbound strategy=%q", got) + } + coreConfig, err := os.ReadFile(s.Core.ConfigPath) + if err != nil { + t.Fatal(err) + } + if !strings.Contains(string(coreConfig), `"strategy": "prefer_ipv6"`) || !strings.Contains(string(coreConfig), `"type": "local"`) { + t.Fatalf("core config missing IPv6 preference: %s", coreConfig) + } +} + +func TestSettingsReturnsAutomaticStrategyForLegacyConfig(t *testing.T) { + s, cfg := testServer(t) + cfg.OutboundStrategy = "" + if err := s.Config.Replace(cfg); err != nil { + t.Fatal(err) + } + response := httptest.NewRecorder() + s.Handler().ServeHTTP(response, authenticatedRequest(t, s, http.MethodGet, "/api/settings", nil)) + if response.Code != http.StatusOK { + t.Fatalf("status=%d body=%s", response.Code, response.Body.String()) + } + if !strings.Contains(response.Body.String(), `"outboundStrategy":"auto"`) { + t.Fatalf("legacy config was not normalized: %s", response.Body.String()) + } +} + +func TestSettingsRollsBackOutboundStrategyWhenCoreCheckFails(t *testing.T) { + s, cfg := testServer(t) + s.Core.Commands = checkFailureCommander{} + response := httptest.NewRecorder() + req := authenticatedRequest(t, s, http.MethodPut, "/api/settings", map[string]any{ + "totalBytes": cfg.TotalBytes, + "reset": cfg.Reset, + "outboundStrategy": model.OutboundStrategyPreferIPv6, + }) + s.Handler().ServeHTTP(response, req) + if response.Code != http.StatusBadRequest { + t.Fatalf("status=%d body=%s", response.Code, response.Body.String()) + } + if got := s.Config.Get().OutboundStrategy; got != model.OutboundStrategyAuto { + t.Fatalf("failed strategy change was not rolled back: %q", got) + } +} + +func TestSettingsRejectsUnknownOutboundStrategy(t *testing.T) { + s, cfg := testServer(t) + response := httptest.NewRecorder() + req := authenticatedRequest(t, s, http.MethodPut, "/api/settings", map[string]any{ + "totalBytes": cfg.TotalBytes, + "reset": cfg.Reset, + "outboundStrategy": "fastest_magic", + }) + s.Handler().ServeHTTP(response, req) + if response.Code != http.StatusBadRequest { + t.Fatalf("status=%d body=%s", response.Code, response.Body.String()) + } + if got := s.Config.Get().OutboundStrategy; got != model.OutboundStrategyAuto { + t.Fatalf("invalid outbound strategy was stored: %q", got) + } +} + func TestSubscriptionContentAndHeaders(t *testing.T) { s, cfg := testServer(t) response := httptest.NewRecorder() diff --git a/internal/webembed/dist/assets/index-Bh0S8hUn.js b/internal/webembed/dist/assets/index-QCFoy2tR.js similarity index 52% rename from internal/webembed/dist/assets/index-Bh0S8hUn.js rename to internal/webembed/dist/assets/index-QCFoy2tR.js index bd39ccc..43233e6 100644 --- a/internal/webembed/dist/assets/index-Bh0S8hUn.js +++ b/internal/webembed/dist/assets/index-QCFoy2tR.js @@ -1,17 +1,17 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function o(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();function Gs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const be={},Nn=[],Ot=()=>{},la=()=>!1,rr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),sr=e=>e.startsWith("onUpdate:"),je=Object.assign,Ys=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},cc=Object.prototype.hasOwnProperty,he=(e,t)=>cc.call(e,t),ne=Array.isArray,Ln=e=>yo(e)==="[object Map]",aa=e=>yo(e)==="[object Set]",Ri=e=>yo(e)==="[object Date]",se=e=>typeof e=="function",Te=e=>typeof e=="string",lt=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",ua=e=>(ge(e)||se(e))&&se(e.then)&&se(e.catch),ca=Object.prototype.toString,yo=e=>ca.call(e),dc=e=>yo(e).slice(8,-1),da=e=>yo(e)==="[object Object]",ir=e=>Te(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,no=Gs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),lr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},fc=/-\w/g,Ve=lr(e=>e.replace(fc,t=>t.slice(1).toUpperCase())),pc=/\B([A-Z])/g,un=lr(e=>e.replace(pc,"-$1").toLowerCase()),ar=lr(e=>e.charAt(0).toUpperCase()+e.slice(1)),No=lr(e=>e?`on${ar(e)}`:""),ht=(e,t)=>!Object.is(e,t),Lo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Js=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Mi;const ur=()=>Mi||(Mi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function st(e){if(ne(e)){const t={};for(let n=0;n{if(n){const o=n.split(gc);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Ie(e){let t="";if(Te(e))t=e;else if(ne(e))for(let n=0;n!!(e&&e.__v_isRef===!0),O=e=>Te(e)?e:e==null?"":ne(e)||ge(e)&&(e.toString===ca||!se(e.toString))?ha(e)?O(e.value):JSON.stringify(e,ga,2):String(e),ga=(e,t)=>ha(t)?ga(e,t.value):Ln(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],s)=>(n[Dr(o,s)+" =>"]=r,n),{})}:aa(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Dr(n))}:lt(t)?Dr(t):ge(t)&&!ne(t)&&!da(t)?String(t):t,Dr=(e,t="")=>{var n;return lt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let De;class va{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&De&&(De.active?(this.parent=De,this.index=(De.scopes||(De.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if(De===this)De=this.prevScope;else{let t=De;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(ro){let t=ro;for(ro=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;oo;){let t=oo;for(oo=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function _a(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ca(e){let t,n=e.depsTail,o=n;for(;o;){const r=o.prevDep;o.version===-1?(o===n&&(n=r),ni(o),_c(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}e.deps=t,e.depsTail=n}function _s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Sa(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Sa(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===lo)||(e.globalVersion=lo,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_s(e))))return;e.flags|=2;const t=e.dep,n=_e,o=gt;_e=e,gt=!0;try{_a(e);const r=e.fn(e._value);(t.version===0||ht(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{_e=n,gt=o,Ca(e),e.flags&=-3}}function ni(e,t=!1){const{dep:n,prevSub:o,nextSub:r}=e;if(o&&(o.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)ni(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function _c(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let gt=!0;const Ea=[];function Kt(){Ea.push(gt),gt=!1}function Wt(){const e=Ea.pop();gt=e===void 0?!0:e}function Di(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=_e;_e=void 0;try{t()}finally{_e=n}}}let lo=0;class Cc{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class cr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!_e||!gt||_e===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==_e)n=this.activeLink=new Cc(_e,this),_e.deps?(n.prevDep=_e.depsTail,_e.depsTail.nextDep=n,_e.depsTail=n):_e.deps=_e.depsTail=n,xa(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=_e.depsTail,n.nextDep=void 0,_e.depsTail.nextDep=n,_e.depsTail=n,_e.deps===n&&(_e.deps=o)}return n}trigger(t){this.version++,lo++,this.notify(t)}notify(t){ei();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ti()}}}function xa(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)xa(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ho=new WeakMap,wn=Symbol(""),Cs=Symbol(""),ao=Symbol("");function Ke(e,t,n){if(gt&&_e){let o=Ho.get(e);o||Ho.set(e,o=new Map);let r=o.get(n);r||(o.set(n,r=new cr),r.map=o,r.key=n),r.track()}}function Lt(e,t,n,o,r,s){const i=Ho.get(e);if(!i){lo++;return}const l=a=>{a&&a.trigger()};if(ei(),t==="clear")i.forEach(l);else{const a=ne(e),u=a&&ir(n);if(a&&n==="length"){const c=Number(o);i.forEach((d,h)=>{(h==="length"||h===ao||!lt(h)&&h>=c)&&l(d)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(ao)),t){case"add":a?u&&l(i.get("length")):(l(i.get(wn)),Ln(e)&&l(i.get(Cs)));break;case"delete":a||(l(i.get(wn)),Ln(e)&&l(i.get(Cs)));break;case"set":Ln(e)&&l(i.get(wn));break}}ti()}function Sc(e,t){const n=Ho.get(e);return n&&n.get(t)}function Mn(e){const t=pe(e);return t===e?t:(Ke(t,"iterate",ao),it(e)?t:t.map(vt))}function dr(e){return Ke(e=pe(e),"iterate",ao),e}function At(e,t){return zt(e)?jn(_n(e)?vt(t):t):vt(t)}const Ec={__proto__:null,[Symbol.iterator](){return Br(this,Symbol.iterator,e=>At(this,e))},concat(...e){return Mn(this).concat(...e.map(t=>ne(t)?Mn(t):t))},entries(){return Br(this,"entries",e=>(e[1]=At(this,e[1]),e))},every(e,t){return $t(this,"every",e,t,void 0,arguments)},filter(e,t){return $t(this,"filter",e,t,n=>n.map(o=>At(this,o)),arguments)},find(e,t){return $t(this,"find",e,t,n=>At(this,n),arguments)},findIndex(e,t){return $t(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return $t(this,"findLast",e,t,n=>At(this,n),arguments)},findLastIndex(e,t){return $t(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return $t(this,"forEach",e,t,void 0,arguments)},includes(...e){return kr(this,"includes",e)},indexOf(...e){return kr(this,"indexOf",e)},join(e){return Mn(this).join(e)},lastIndexOf(...e){return kr(this,"lastIndexOf",e)},map(e,t){return $t(this,"map",e,t,void 0,arguments)},pop(){return Yn(this,"pop")},push(...e){return Yn(this,"push",e)},reduce(e,...t){return Ii(this,"reduce",e,t)},reduceRight(e,...t){return Ii(this,"reduceRight",e,t)},shift(){return Yn(this,"shift")},some(e,t){return $t(this,"some",e,t,void 0,arguments)},splice(...e){return Yn(this,"splice",e)},toReversed(){return Mn(this).toReversed()},toSorted(e){return Mn(this).toSorted(e)},toSpliced(...e){return Mn(this).toSpliced(...e)},unshift(...e){return Yn(this,"unshift",e)},values(){return Br(this,"values",e=>At(this,e))}};function Br(e,t,n){const o=dr(e),r=o[t]();return o!==e&&!it(e)&&(r._next=r.next,r.next=()=>{const s=r._next();return s.done||(s.value=n(s.value)),s}),r}const xc=Array.prototype;function $t(e,t,n,o,r,s){const i=dr(e),l=i!==e&&!it(e),a=i[t];if(a!==xc[t]){const d=a.apply(e,s);return l?vt(d):d}let u=n;i!==e&&(l?u=function(d,h){return n.call(this,At(e,d),h,e)}:n.length>2&&(u=function(d,h){return n.call(this,d,h,e)}));const c=a.call(i,u,o);return l&&r?r(c):c}function Ii(e,t,n,o){const r=dr(e),s=r!==e&&!it(e);let i=n,l=!1;r!==e&&(s?(l=o.length===0,i=function(u,c,d){return l&&(l=!1,u=At(e,u)),n.call(this,u,At(e,c),d,e)}):n.length>3&&(i=function(u,c,d){return n.call(this,u,c,d,e)}));const a=r[t](i,...o);return l?At(e,a):a}function kr(e,t,n){const o=pe(e);Ke(o,"iterate",ao);const r=o[t](...n);return(r===-1||r===!1)&&hr(n[0])?(n[0]=pe(n[0]),o[t](...n)):r}function Yn(e,t,n=[]){Kt(),ei();const o=pe(e)[t].apply(e,n);return ti(),Wt(),o}const Ac=Gs("__proto__,__v_isRef,__isVue"),Aa=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(lt));function Tc(e){lt(e)||(e=String(e));const t=pe(this);return Ke(t,"has",e),t.hasOwnProperty(e)}class Ta{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return s;if(n==="__v_raw")return o===(r?s?Ia:Da:s?Ma:Ra).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=ne(t);if(!r){let a;if(i&&(a=Ec[n]))return a;if(n==="hasOwnProperty")return Tc}const l=Reflect.get(t,n,Be(t)?t:o);if((lt(n)?Aa.has(n):Ac(n))||(r||Ke(t,"get",n),s))return l;if(Be(l)){const a=i&&ir(n)?l:l.value;return r&&ge(a)?Es(a):a}return ge(l)?r?Es(l):bo(l):l}}class Pa extends Ta{constructor(t=!1){super(!1,t)}set(t,n,o,r){let s=t[n];const i=ne(t)&&ir(n);if(!this._isShallow){const u=zt(s);if(!it(o)&&!zt(o)&&(s=pe(s),o=pe(o)),!i&&Be(s)&&!Be(o))return u||(s.value=o),!0}const l=i?Number(n)e,Po=e=>Reflect.getPrototypeOf(e);function Dc(e,t,n){return function(...o){const r=this.__v_raw,s=pe(r),i=Ln(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,u=r[e](...o),c=n?Ss:t?jn:vt;return!t&&Ke(s,"iterate",a?Cs:wn),je(Object.create(u),{next(){const{value:d,done:h}=u.next();return h?{value:d,done:h}:{value:l?[c(d[0]),c(d[1])]:c(d),done:h}}})}}function Oo(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ic(e,t){const n={get(r){const s=this.__v_raw,i=pe(s),l=pe(r);e||(ht(r,l)&&Ke(i,"get",r),Ke(i,"get",l));const{has:a}=Po(i),u=t?Ss:e?jn:vt;if(a.call(i,r))return u(s.get(r));if(a.call(i,l))return u(s.get(l));s!==i&&s.get(r)},get size(){const r=this.__v_raw;return!e&&Ke(pe(r),"iterate",wn),r.size},has(r){const s=this.__v_raw,i=pe(s),l=pe(r);return e||(ht(r,l)&&Ke(i,"has",r),Ke(i,"has",l)),r===l?s.has(r):s.has(r)||s.has(l)},forEach(r,s){const i=this,l=i.__v_raw,a=pe(l),u=t?Ss:e?jn:vt;return!e&&Ke(a,"iterate",wn),l.forEach((c,d)=>r.call(s,u(c),u(d),i))}};return je(n,e?{add:Oo("add"),set:Oo("set"),delete:Oo("delete"),clear:Oo("clear")}:{add(r){const s=pe(this),i=Po(s),l=pe(r),a=!t&&!it(r)&&!zt(r)?l:r;return i.has.call(s,a)||ht(r,a)&&i.has.call(s,r)||ht(l,a)&&i.has.call(s,l)||(s.add(a),Lt(s,"add",a,a)),this},set(r,s){!t&&!it(s)&&!zt(s)&&(s=pe(s));const i=pe(this),{has:l,get:a}=Po(i);let u=l.call(i,r);u||(r=pe(r),u=l.call(i,r));const c=a.call(i,r);return i.set(r,s),u?ht(s,c)&&Lt(i,"set",r,s):Lt(i,"add",r,s),this},delete(r){const s=pe(this),{has:i,get:l}=Po(s);let a=i.call(s,r);a||(r=pe(r),a=i.call(s,r)),l&&l.call(s,r);const u=s.delete(r);return a&&Lt(s,"delete",r,void 0),u},clear(){const r=pe(this),s=r.size!==0,i=r.clear();return s&&Lt(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Dc(r,e,t)}),n}function fr(e,t){const n=Ic(e,t);return(o,r,s)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(he(n,r)&&r in o?n:o,r,s)}const Bc={get:fr(!1,!1)},kc={get:fr(!1,!0)},$c={get:fr(!0,!1)},qc={get:fr(!0,!0)},Ra=new WeakMap,Ma=new WeakMap,Da=new WeakMap,Ia=new WeakMap;function Nc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function bo(e){return zt(e)?e:pr(e,!1,Pc,Bc,Ra)}function Lc(e){return pr(e,!1,Rc,kc,Ma)}function Es(e){return pr(e,!0,Oc,$c,Da)}function rn(e){return pr(e,!0,Mc,qc,Ia)}function pr(e,t,n,o,r){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=r.get(e);if(s)return s;const i=Nc(dc(e));if(i===0)return e;const l=new Proxy(e,i===2?o:n);return r.set(e,l),l}function _n(e){return zt(e)?_n(e.__v_raw):!!(e&&e.__v_isReactive)}function zt(e){return!!(e&&e.__v_isReadonly)}function it(e){return!!(e&&e.__v_isShallow)}function hr(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function Ba(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&fa(e,"__v_skip",!0),e}const vt=e=>ge(e)?bo(e):e,jn=e=>ge(e)?Es(e):e;function Be(e){return e?e.__v_isRef===!0:!1}function F(e){return ka(e,!1)}function gr(e){return ka(e,!0)}function ka(e,t){return Be(e)?e:new Fc(e,t)}class Fc{constructor(t,n){this.dep=new cr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:vt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||it(t)||zt(t);t=o?t:pe(t),ht(t,n)&&(this._rawValue=t,this._value=o?t:vt(t),this.dep.trigger())}}function Vc(e){e.dep&&e.dep.trigger()}function f(e){return Be(e)?e.value:e}function He(e){return se(e)?e():f(e)}const Hc={get:(e,t,n)=>t==="__v_raw"?e:f(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Be(r)&&!Be(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function $a(e){return _n(e)?e:new Proxy(e,Hc)}class Uc{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new cr,{get:o,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function jc(e){return new Uc(e)}function cn(e){const t=ne(e)?new Array(e.length):{};for(const n in e)t[n]=qa(e,n);return t}class Kc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=lt(n)?n:String(n),this._raw=pe(t);let r=!0,s=t;if(!ne(t)||lt(this._key)||!ir(this._key))do r=!hr(s)||it(s);while(r&&(s=s.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=f(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Be(this._raw[this._key])){const n=this._object[this._key];if(Be(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Sc(this._raw,this._key)}}class Wc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function zc(e,t,n){return Be(e)?e:se(e)?new Wc(e):ge(e)&&arguments.length>1?qa(e,t,n):F(e)}function qa(e,t,n){return new Kc(e,t,n)}class Gc{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new cr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=lo-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&_e!==this)return wa(this,!0),!0}get value(){const t=this.dep.track();return Sa(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Yc(e,t,n=!1){let o,r;return se(e)?o=e:(o=e.get,r=e.set),new Gc(o,r,n)}const Ro={},Uo=new WeakMap;let yn;function Jc(e,t=!1,n=yn){if(n){let o=Uo.get(n);o||Uo.set(n,o=[]),o.push(e)}}function Xc(e,t,n=be){const{immediate:o,deep:r,once:s,scheduler:i,augmentJob:l,call:a}=n,u=_=>r?_:it(_)||r===!1||r===0?Ft(_,1):Ft(_);let c,d,h,p,y=!1,C=!1;if(Be(e)?(d=()=>e.value,y=it(e)):_n(e)?(d=()=>u(e),y=!0):ne(e)?(C=!0,y=e.some(_=>_n(_)||it(_)),d=()=>e.map(_=>{if(Be(_))return _.value;if(_n(_))return u(_);if(se(_))return a?a(_,2):_()})):se(e)?t?d=a?()=>a(e,2):e:d=()=>{if(h){Kt();try{h()}finally{Wt()}}const _=yn;yn=c;try{return a?a(e,3,[p]):e(p)}finally{yn=_}}:d=Ot,t&&r){const _=d,R=r===!0?1/0:r;d=()=>Ft(_(),R)}const b=Qs(),m=()=>{c.stop(),b&&b.active&&Ys(b.effects,c)};if(s&&t){const _=t;t=(...R)=>{const T=_(...R);return m(),T}}let E=C?new Array(e.length).fill(Ro):Ro;const x=_=>{if(!(!(c.flags&1)||!c.dirty&&!_))if(t){const R=c.run();if(_||r||y||(C?R.some((T,v)=>ht(T,E[v])):ht(R,E))){h&&h();const T=yn;yn=c;try{const v=[R,E===Ro?void 0:C&&E[0]===Ro?[]:E,p];E=R,a?a(t,3,v):t(...v)}finally{yn=T}}}else c.run()};return l&&l(x),c=new ya(d),c.scheduler=i?()=>i(x,!1):x,p=_=>Jc(_,!1,c),h=c.onStop=()=>{const _=Uo.get(c);if(_){if(a)a(_,4);else for(const R of _)R();Uo.delete(c)}},t?o?x(!0):E=c.run():i?i(x.bind(null,!0),!0):c.run(),m.pause=c.pause.bind(c),m.resume=c.resume.bind(c),m.stop=m,m}function Ft(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Be(e))Ft(e.value,t,n);else if(ne(e))for(let o=0;o{Ft(o,t,n)});else if(da(e)){for(const o in e)Ft(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Ft(e[o],t,n)}return e}function wo(e,t,n,o){try{return o?e(...o):e()}catch(r){vr(r,t,n)}}function mt(e,t,n,o){if(se(e)){const r=wo(e,t,n,o);return r&&ua(r)&&r.catch(s=>{vr(s,t,n)}),r}if(ne(e)){const r=[];for(let s=0;s>>1,r=Qe[o],s=uo(r);s=uo(n)?Qe.push(e):Qe.splice(Zc(t),0,e),e.flags|=1,La()}}function La(){jo||(jo=Na.then(Va))}function ed(e){ne(e)?Fn.push(...e):sn&&e.id===-1?sn.splice(kn+1,0,e):e.flags&1||(Fn.push(e),e.flags|=1),La()}function Bi(e,t,n=xt+1){for(;nuo(n)-uo(o));if(Fn.length=0,sn){sn.push(...t);return}for(sn=t,kn=0;kne.id==null?e.flags&2?-1:1/0:e.id;function Va(e){try{for(xt=0;xt{o._d&&Go(-1);const s=Ko(t),i=Vt.length;let l;try{l=e(...r)}finally{for(let a=Vt.length;a>i;a--)ci();Ko(s),o._d&&Go(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function nt(e,t){if(Fe===null)return e;const n=Cr(Fe),o=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&se(t)?t.call(o&&o.proxy):t}}const td=Symbol.for("v-scx"),nd=()=>Cn(td);function yt(e,t){return mr(e,null,t)}function Ua(e,t){return mr(e,null,{flush:"post"})}function we(e,t,n){return mr(e,t,n)}function mr(e,t,n=be){const{immediate:o,deep:r,flush:s,once:i}=n,l=je({},n),a=t&&o||!t&&s!=="post";let u;if(fo){if(s==="sync"){const p=nd();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!a){const p=()=>{};return p.stop=Ot,p.resume=Ot,p.pause=Ot,p}}const c=We;l.call=(p,y,C)=>mt(p,c,y,C);let d=!1;s==="post"?l.scheduler=p=>{Xe(p,c&&c.suspense)}:s!=="sync"&&(d=!0,l.scheduler=(p,y)=>{y?p():oi(p)}),l.augmentJob=p=>{t&&(p.flags|=4),d&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const h=Xc(e,t,l);return fo&&(u?u.push(h):a&&h()),h}function od(e,t,n){const o=this.proxy,r=Te(e)?e.includes(".")?ja(o,e):()=>o[e]:e.bind(o,o);let s;se(t)?s=t:(s=t.handler,n=t);const i=Co(this),l=mr(r,s.bind(o),n);return i(),l}function ja(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;re.__isTeleport,bn=e=>e&&(e.disabled||e.disabled===""),sd=e=>e&&(e.defer||e.defer===""),ki=e=>typeof SVGElement<"u"&&e instanceof SVGElement,$i=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,xs=(e,t)=>{const n=e&&e.to;return Te(n)?t?t(n):null:n},id={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,s,i,l,a,u){const{mc:c,pc:d,pbc:h,o:{insert:p,querySelector:y,createText:C,createComment:b,parentNode:m}}=u,E=bn(t.props);let{dynamicChildren:x}=t;const _=(v,S,M)=>{v.shapeFlag&16&&c(v.children,S,M,r,s,i,l,a)},R=(v=t)=>{const S=bn(v.props),M=v.target=xs(v.props,y),B=As(M,v,C,p);M&&(i!=="svg"&&ki(M)?i="svg":i!=="mathml"&&$i(M)&&(i="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(M),S||(_(v,M,B),Zn(v,!1)))},T=v=>{const S=()=>{if(nn.get(v)===S){if(nn.delete(v),bn(v.props)){const M=m(v.el)||n;_(v,M,v.anchor),Zn(v,!0)}R(v)}};nn.set(v,S),Xe(S,s)};if(e==null){const v=t.el=C(""),S=t.anchor=C("");if(p(v,n,o),p(S,n,o),sd(t.props)||s&&s.pendingBranch){T(t);return}E&&(_(t,n,S),Zn(t,!0)),R()}else{t.el=e.el;const v=t.anchor=e.anchor,S=nn.get(e);if(S){S.flags|=8,nn.delete(e),T(t);return}t.targetStart=e.targetStart;const M=t.target=e.target,B=t.targetAnchor=e.targetAnchor,j=bn(e.props),X=j?n:M,H=j?v:B;if(i==="svg"||ki(M)?i="svg":(i==="mathml"||$i(M))&&(i="mathml"),x?(h(e.dynamicChildren,x,X,r,s,i,l),ui(e,t,!0)):a||d(e,t,X,H,r,s,i,l,!1),E)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mo(t,n,v,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const W=xs(t.props,y);W&&(t.target=W,Mo(t,W,null,u,0))}else j&&Mo(t,M,B,u,1);Zn(t,E)}},remove(e,t,n,{um:o,o:{remove:r}},s){const{shapeFlag:i,children:l,anchor:a,targetStart:u,targetAnchor:c,target:d,props:h}=e,p=bn(h),y=s||!p,C=nn.get(e);if(C&&(C.flags|=8,nn.delete(e)),d&&(r(u),r(c)),s&&r(a),!C&&(p||d)&&i&16)for(let b=0;bso(C,t&&(ne(t)?t[b]:t),n,o,r));return}if(Vn(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&so(e,t,n,o.component.subTree);return}const s=o.shapeFlag&4?Cr(o.component):o.el,i=r?null:s,{i:l,r:a}=e,u=t&&t.r,c=l.refs===be?l.refs={}:l.refs,d=l.setupState,h=pe(d),p=d===be?la:C=>qi(c,C)?!1:he(h,C),y=(C,b)=>!(b&&qi(c,b));if(u!=null&&u!==a){if(Ni(t),Te(u))c[u]=null,p(u)&&(d[u]=null);else if(Be(u)){const C=t;y(u,C.k)&&(u.value=null),C.k&&(c[C.k]=null)}}if(se(a))wo(a,l,12,[i,c]);else{const C=Te(a),b=Be(a);if(C||b){const m=()=>{if(e.f){const E=C?p(a)?d[a]:c[a]:y()||!e.k?a.value:c[e.k];if(r)ne(E)&&Ys(E,s);else if(ne(E))E.includes(s)||E.push(s);else if(C)c[a]=[s],p(a)&&(d[a]=c[a]);else{const x=[s];y(a,e.k)&&(a.value=x),e.k&&(c[e.k]=x)}}else C?(c[a]=i,p(a)&&(d[a]=i)):b&&(y(a,e.k)&&(a.value=i),e.k&&(c[e.k]=i))};if(i){const E=()=>{m(),Wo.delete(e)};E.id=-1,Wo.set(e,E),Xe(E,n)}else Ni(e),m()}}}function Ni(e){const t=Wo.get(e);t&&(t.flags|=8,Wo.delete(e))}ur().requestIdleCallback;ur().cancelIdleCallback;const Vn=e=>!!e.type.__asyncLoader,za=e=>e.type.__isKeepAlive;function ud(e,t){Ga(e,"a",t)}function cd(e,t){Ga(e,"da",t)}function Ga(e,t,n=We){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(yr(t,o,n),n){let r=n.parent;for(;r&&r.parent;)za(r.parent.vnode)&&dd(o,t,n,r),r=r.parent}}function dd(e,t,n,o){const r=yr(t,e,o,!0);Xt(()=>{Ys(o[t],r)},n)}function yr(e,t,n=We,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{Kt();const l=Co(n),a=mt(t,n,e,i);return l(),Wt(),a});return o?r.unshift(s):r.push(s),s}}const Jt=e=>(t,n=We)=>{(!fo||e==="sp")&&yr(e,(...o)=>t(...o),n)},fd=Jt("bm"),Re=Jt("m"),pd=Jt("bu"),Ya=Jt("u"),br=Jt("bum"),Xt=Jt("um"),hd=Jt("sp"),gd=Jt("rtg"),vd=Jt("rtc");function md(e,t=We){yr("ec",e,t)}const yd="components",Ja=Symbol.for("v-ndc");function Xa(e){return Te(e)?bd(yd,e,!1)||e:e||Ja}function bd(e,t,n=!0,o=!1){const r=Fe||We;if(r){const s=r.type;{const l=tf(s,!1);if(l&&(l===t||l===Ve(t)||l===ar(Ve(t))))return s}const i=Li(r[e]||s[e],t)||Li(r.appContext[e],t);return!i&&o?s:i}}function Li(e,t){return e&&(e[t]||e[Ve(t)]||e[ar(Ve(t))])}function _o(e,t,n,o){let r;const s=n,i=ne(e);if(i||Te(e)){const l=i&&_n(e);let a=!1,u=!1;l&&(a=!it(e),u=zt(e),e=dr(e)),r=new Array(e.length);for(let c=0,d=e.length;ct(l,a,void 0,s));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,u=l.length;a0;return I(),G(Ae,null,[L("slot",u,o&&o())],c?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const l=Vt.length;I();let a;try{const u=i&&Qa(i(n)),c=n.key||s||u&&u.key;a=G(Ae,{key:(c&&!lt(c)?c:`_${t}`)+(!u&&o?"_fb":"")},u||(o?o():[]),u&&e._===1?64:-2)}catch(u){for(let c=Vt.length;c>l;c--)ci();throw u}finally{i&&i._c&&(i._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function Qa(e){return e.some(t=>co(t)?!(t.type===Rt||t.type===Ae&&!Qa(t.children)):!0)?e:null}const Ts=e=>e?mu(e)?Cr(e):Ts(e.parent):null,io=je(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ts(e.parent),$root:e=>Ts(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>eu(e),$forceUpdate:e=>e.f||(e.f=()=>{oi(e.update)}),$nextTick:e=>e.n||(e.n=Le.bind(e.proxy)),$watch:e=>od.bind(e)}),qr=(e,t)=>e!==be&&!e.__isScriptSetup&&he(e,t),wd={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:s,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(qr(o,t))return i[t]=1,o[t];if(r!==be&&he(r,t))return i[t]=2,r[t];if(he(s,t))return i[t]=3,s[t];if(n!==be&&he(n,t))return i[t]=4,n[t];Os&&(i[t]=0)}}const u=io[t];let c,d;if(u)return t==="$attrs"&&Ke(e.attrs,"get",""),u(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==be&&he(n,t))return i[t]=4,n[t];if(d=a.config.globalProperties,he(d,t))return d[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return qr(r,t)?(r[t]=n,!0):o!==be&&he(o,t)?(o[t]=n,!0):he(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,props:s,type:i}},l){let a;return!!(n[l]||e!==be&&l[0]!=="$"&&he(e,l)||qr(t,l)||he(s,l)||he(o,l)||he(io,l)||he(r.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ps(e){return ne(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function _d(e,t){const n=Ps(e);for(const o in t){if(o.startsWith("__skip"))continue;let r=n[o];r?ne(r)||se(r)?r=n[o]={type:r,default:t[o]}:r.default=t[o]:r===null&&(r=n[o]={default:t[o]}),r&&t[`__skip_${o}`]&&(r.skipFactory=!0)}return n}let Os=!0;function Cd(e){const t=eu(e),n=e.proxy,o=e.ctx;Os=!1,t.beforeCreate&&Fi(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:i,watch:l,provide:a,inject:u,created:c,beforeMount:d,mounted:h,beforeUpdate:p,updated:y,activated:C,deactivated:b,beforeDestroy:m,beforeUnmount:E,destroyed:x,unmounted:_,render:R,renderTracked:T,renderTriggered:v,errorCaptured:S,serverPrefetch:M,expose:B,inheritAttrs:j,components:X,directives:H,filters:W}=t;if(u&&Sd(u,o,null),i)for(const ue in i){const ie=i[ue];se(ie)&&(o[ue]=ie.bind(n))}if(r){const ue=r.call(n,n);ge(ue)&&(e.data=bo(ue))}if(Os=!0,s)for(const ue in s){const ie=s[ue],Ee=se(ie)?ie.bind(n,n):se(ie.get)?ie.get.bind(n,n):Ot,Ge=!se(ie)&&se(ie.set)?ie.set.bind(n):Ot,tt=z({get:Ee,set:Ge});Object.defineProperty(o,ue,{enumerable:!0,configurable:!0,get:()=>tt.value,set:ke=>tt.value=ke})}if(l)for(const ue in l)Za(l[ue],o,n,ue);if(a){const ue=se(a)?a.call(n):a;Reflect.ownKeys(ue).forEach(ie=>{ri(ie,ue[ie])})}c&&Fi(c,e,"c");function le(ue,ie){ne(ie)?ie.forEach(Ee=>ue(Ee.bind(n))):ie&&ue(ie.bind(n))}if(le(fd,d),le(Re,h),le(pd,p),le(Ya,y),le(ud,C),le(cd,b),le(md,S),le(vd,T),le(gd,v),le(br,E),le(Xt,_),le(hd,M),ne(B))if(B.length){const ue=e.exposed||(e.exposed={});B.forEach(ie=>{Object.defineProperty(ue,ie,{get:()=>n[ie],set:Ee=>n[ie]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});R&&e.render===Ot&&(e.render=R),j!=null&&(e.inheritAttrs=j),X&&(e.components=X),H&&(e.directives=H),M&&Wa(e)}function Sd(e,t,n=Ot){ne(e)&&(e=Rs(e));for(const o in e){const r=e[o];let s;ge(r)?"default"in r?s=Cn(r.from||o,r.default,!0):s=Cn(r.from||o):s=Cn(r),Be(s)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[o]=s}}function Fi(e,t,n){mt(ne(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Za(e,t,n,o){let r=o.includes(".")?ja(n,o):()=>n[o];if(Te(e)){const s=t[e];se(s)&&we(r,s)}else if(se(e))we(r,e.bind(n));else if(ge(e))if(ne(e))e.forEach(s=>Za(s,t,n,o));else{const s=se(e.handler)?e.handler.bind(n):t[e.handler];se(s)&&we(r,s,e)}}function eu(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!r.length&&!n&&!o?a=t:(a={},r.length&&r.forEach(u=>zo(a,u,i,!0)),zo(a,t,i)),ge(t)&&s.set(t,a),a}function zo(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&zo(e,s,n,!0),r&&r.forEach(i=>zo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const l=Ed[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ed={data:Vi,props:Hi,emits:Hi,methods:eo,computed:eo,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:eo,directives:eo,watch:Ad,provide:Vi,inject:xd};function Vi(e,t){return t?e?function(){return je(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function xd(e,t){return eo(Rs(e),Rs(t))}function Rs(e){if(ne(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ve(t)}Modifiers`]||e[`${un(t)}Modifiers`];function Rd(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||be;let r=n;const s=t.startsWith("update:"),i=s&&Od(o,t.slice(7));i&&(i.trim&&(r=n.map(c=>Te(c)?c.trim():c)),i.number&&(r=n.map(Js)));let l,a=o[l=No(t)]||o[l=No(Ve(t))];!a&&s&&(a=o[l=No(un(t))]),a&&mt(a,e,6,r);const u=o[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,mt(u,e,6,r)}}const Md=new WeakMap;function nu(e,t,n=!1){const o=n?Md:t.emitsCache,r=o.get(e);if(r!==void 0)return r;const s=e.emits;let i={},l=!1;if(!se(e)){const a=u=>{const c=nu(u,t,!0);c&&(l=!0,je(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(ge(e)&&o.set(e,null),null):(ne(s)?s.forEach(a=>i[a]=null):je(i,s),ge(e)&&o.set(e,i),i)}function wr(e,t){return!e||!rr(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,un(t))||he(e,t))}function Ui(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[s],slots:i,attrs:l,emit:a,render:u,renderCache:c,props:d,data:h,setupState:p,ctx:y,inheritAttrs:C}=e,b=Ko(e);let m,E;try{if(n.shapeFlag&4){const _=r||o,R=_;m=Tt(u.call(R,_,c,d,p,h,y)),E=l}else{const _=t;m=Tt(_.length>1?_(d,{attrs:l,slots:i,emit:a}):_(d,null)),E=t.props?l:Dd(l)}}catch(_){Vt.length=0,vr(_,e,1),m=L(Rt)}let x=m;if(E&&C!==!1){const _=Object.keys(E),{shapeFlag:R}=x;_.length&&R&7&&(s&&_.some(sr)&&(E=Id(E,s)),x=En(x,E,!1,!0))}return n.dirs&&(x=En(x,null,!1,!0),x.dirs=x.dirs?x.dirs.concat(n.dirs):n.dirs),n.transition&&ii(x,n.transition),m=x,Ko(b),m}const Dd=e=>{let t;for(const n in e)(n==="class"||n==="style"||rr(n))&&((t||(t={}))[n]=e[n]);return t},Id=(e,t)=>{const n={};for(const o in e)(!sr(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Bd(e,t,n){const{props:o,children:r,component:s}=e,{props:i,children:l,patchFlag:a}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return o?ji(o,i,u):!!i;if(a&8){const c=t.dynamicProps;for(let d=0;dObject.create(ru),iu=e=>Object.getPrototypeOf(e)===ru;function $d(e,t,n,o=!1){const r={},s=su();e.propsDefaults=Object.create(null),lu(e,t,r,s);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:Lc(r):e.type.props?e.props=r:e.props=s,e.attrs=s}function qd(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,l=pe(r),[a]=e.propsOptions;let u=!1;if((o||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let d=0;d{a=!0;const[h,p]=au(d,t,!0);je(i,h),p&&l.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!a)return ge(e)&&o.set(e,Nn),Nn;if(ne(s))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",ai=e=>ne(e)?e.map(Tt):[Tt(e)],Ld=(e,t,n)=>{if(t._n)return t;const o=k((...r)=>ai(t(...r)),n);return o._c=!1,o},uu=(e,t,n)=>{const o=e._ctx;for(const r in e){if(li(r))continue;const s=e[r];if(se(s))t[r]=Ld(r,s,o);else if(s!=null){const i=ai(s);t[r]=()=>i}}},cu=(e,t)=>{const n=ai(t);e.slots.default=()=>n},du=(e,t,n)=>{for(const o in t)(n||!li(o))&&(e[o]=t[o])},Fd=(e,t,n)=>{const o=e.slots=su();if(e.vnode.shapeFlag&32){const r=t._;r?(du(o,t,n),n&&fa(o,"_",r,!0)):uu(t,o)}else t&&cu(e,t)},Vd=(e,t,n)=>{const{vnode:o,slots:r}=e;let s=!0,i=be;if(o.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:du(r,t,n):(s=!t.$stable,uu(t,r)),i=t}else t&&(cu(e,t),i={default:1});if(s)for(const l in r)!li(l)&&i[l]==null&&delete r[l]},Xe=Wd;function Hd(e){return Ud(e)}function Ud(e,t){const n=ur();n.__VUE__=!0;const{insert:o,remove:r,patchProp:s,createElement:i,createText:l,createComment:a,setText:u,setElementText:c,parentNode:d,nextSibling:h,setScopeId:p=Ot,insertStaticContent:y}=e,C=(w,A,D,V=null,N=null,$=null,Y=void 0,K=null,U=!!A.dynamicChildren)=>{if(w===A)return;w&&!Jn(w,A)&&(V=Pe(w),ke(w,N,$,!0),w=null),A.patchFlag===-2&&(U=!1,A.dynamicChildren=null);const{type:q,ref:te,shapeFlag:Q}=A;switch(q){case _r:b(w,A,D,V);break;case Rt:m(w,A,D,V);break;case Lr:w==null&&E(A,D,V,Y);break;case Ae:X(w,A,D,V,N,$,Y,K,U);break;default:Q&1?R(w,A,D,V,N,$,Y,K,U):Q&6?H(w,A,D,V,N,$,Y,K,U):(Q&64||Q&128)&&q.process(w,A,D,V,N,$,Y,K,U,qe)}te!=null&&N?so(te,w&&w.ref,$,A||w,!A):te==null&&w&&w.ref!=null&&so(w.ref,null,$,w,!0)},b=(w,A,D,V)=>{if(w==null)o(A.el=l(A.children),D,V);else{const N=A.el=w.el;A.children!==w.children&&u(N,A.children)}},m=(w,A,D,V)=>{w==null?o(A.el=a(A.children||""),D,V):A.el=w.el},E=(w,A,D,V)=>{[w.el,w.anchor]=y(w.children,A,D,V,w.el,w.anchor)},x=({el:w,anchor:A},D,V)=>{let N;for(;w&&w!==A;)N=h(w),o(w,D,V),w=N;o(A,D,V)},_=({el:w,anchor:A})=>{let D;for(;w&&w!==A;)D=h(w),r(w),w=D;r(A)},R=(w,A,D,V,N,$,Y,K,U)=>{if(A.type==="svg"?Y="svg":A.type==="math"&&(Y="mathml"),w==null)T(A,D,V,N,$,Y,K,U);else{const q=w.el&&w.el._isVueCE?w.el:null;try{q&&q._beginPatch(),M(w,A,N,$,Y,K,U)}finally{q&&q._endPatch()}}},T=(w,A,D,V,N,$,Y,K)=>{let U,q;const{props:te,shapeFlag:Q,transition:ee,dirs:re}=w;if(U=w.el=i(w.type,$,te&&te.is,te),Q&8?c(U,w.children):Q&16&&S(w.children,U,null,V,N,Nr(w,$),Y,K),re&&gn(w,null,V,"created"),v(U,w,w.scopeId,Y,V),te){for(const ye in te)ye!=="value"&&!no(ye)&&s(U,ye,null,te[ye],$,V);"value"in te&&s(U,"value",null,te.value,$),(q=te.onVnodeBeforeMount)&&St(q,V,w)}re&&gn(w,null,V,"beforeMount");const fe=jd(N,ee);fe&&ee.beforeEnter(U),o(U,A,D),((q=te&&te.onVnodeMounted)||fe||re)&&Xe(()=>{q&&St(q,V,w),fe&&ee.enter(U),re&&gn(w,null,V,"mounted")},N)},v=(w,A,D,V,N)=>{if(D&&p(w,D),V)for(let $=0;${for(let q=U;q{const K=A.el=w.el;let{patchFlag:U,dynamicChildren:q,dirs:te}=A;U|=w.patchFlag&16;const Q=w.props||be,ee=A.props||be;let re;if(D&&vn(D,!1),(re=ee.onVnodeBeforeUpdate)&&St(re,D,A,w),te&&gn(A,w,D,"beforeUpdate"),D&&vn(D,!0),q&&(!w.dynamicChildren||w.dynamicChildren.length!==q.length)&&(U=0,Y=!1,q=null),(Q.innerHTML&&ee.innerHTML==null||Q.textContent&&ee.textContent==null)&&c(K,""),q?B(w.dynamicChildren,q,K,D,V,Nr(A,N),$):Y||ie(w,A,K,null,D,V,Nr(A,N),$,!1),U>0){if(U&16)j(K,Q,ee,D,N);else if(U&2&&Q.class!==ee.class&&s(K,"class",null,ee.class,N),U&4&&s(K,"style",Q.style,ee.style,N),U&8){const fe=A.dynamicProps;for(let ye=0;ye{re&&St(re,D,A,w),te&&gn(A,w,D,"updated")},V)},B=(w,A,D,V,N,$,Y)=>{for(let K=0;K{if(A!==D){if(A!==be)for(const $ in A)!no($)&&!($ in D)&&s(w,$,A[$],null,N,V);for(const $ in D){if(no($))continue;const Y=D[$],K=A[$];Y!==K&&$!=="value"&&s(w,$,K,Y,N,V)}"value"in D&&s(w,"value",A.value,D.value,N)}},X=(w,A,D,V,N,$,Y,K,U)=>{const q=A.el=w?w.el:l(""),te=A.anchor=w?w.anchor:l("");let{patchFlag:Q,dynamicChildren:ee,slotScopeIds:re}=A;re&&(K=K?K.concat(re):re),w==null?(o(q,D,V),o(te,D,V),S(A.children||[],D,te,N,$,Y,K,U)):Q>0&&Q&64&&ee&&w.dynamicChildren&&w.dynamicChildren.length===ee.length?(B(w.dynamicChildren,ee,D,N,$,Y,K),(A.key!=null||N&&A===N.subTree)&&ui(w,A,!0)):ie(w,A,D,te,N,$,Y,K,U)},H=(w,A,D,V,N,$,Y,K,U)=>{A.slotScopeIds=K,w==null?A.shapeFlag&512?N.ctx.activate(A,D,V,Y,U):W(A,D,V,N,$,Y,U):ve(w,A,U)},W=(w,A,D,V,N,$,Y)=>{const K=w.component=Jd(w,V,N);if(za(w)&&(K.ctx.renderer=qe),Xd(K,!1,Y),K.asyncDep){if(N&&N.registerDep(K,le,Y),!w.el){const U=K.subTree=L(Rt);m(null,U,A,D),w.placeholder=U.el}}else le(K,w,A,D,N,$,Y)},ve=(w,A,D)=>{const V=A.component=w.component;if(Bd(w,A,D))if(V.asyncDep&&!V.asyncResolved){ue(V,A,D);return}else V.next=A,V.update();else A.el=w.el,V.vnode=A},le=(w,A,D,V,N,$,Y)=>{const K=()=>{if(w.isMounted){let{next:Q,bu:ee,u:re,parent:fe,vnode:ye}=w;{const _t=fu(w);if(_t){Q&&(Q.el=ye.el,ue(w,Q,Y)),_t.asyncDep.then(()=>{Xe(()=>{w.isUnmounted||q()},N)});return}}let me=Q,Me;vn(w,!1),Q?(Q.el=ye.el,ue(w,Q,Y)):Q=ye,ee&&Lo(ee),(Me=Q.props&&Q.props.onVnodeBeforeUpdate)&&St(Me,fe,Q,ye),vn(w,!0);const Ne=Ui(w),wt=w.subTree;w.subTree=Ne,C(wt,Ne,d(wt.el),Pe(wt),w,N,$),Q.el=Ne.el,me===null&&kd(w,Ne.el),re&&Xe(re,N),(Me=Q.props&&Q.props.onVnodeUpdated)&&Xe(()=>St(Me,fe,Q,ye),N)}else{let Q;const{el:ee,props:re}=A,{bm:fe,m:ye,parent:me,root:Me,type:Ne}=w,wt=Vn(A);vn(w,!1),fe&&Lo(fe),!wt&&(Q=re&&re.onVnodeBeforeMount)&&St(Q,me,A),vn(w,!0);{Me.ce&&Me.ce._hasShadowRoot()&&Me.ce._injectChildStyle(Ne,w.parent?w.parent.type:void 0);const _t=w.subTree=Ui(w);C(null,_t,D,V,w,N,$),A.el=_t.el}if(ye&&Xe(ye,N),!wt&&(Q=re&&re.onVnodeMounted)){const _t=A;Xe(()=>St(Q,me,_t),N)}(A.shapeFlag&256||me&&Vn(me.vnode)&&me.vnode.shapeFlag&256)&&w.a&&Xe(w.a,N),w.isMounted=!0,A=D=V=null}};w.scope.on();const U=w.effect=new ya(K);w.scope.off();const q=w.update=U.run.bind(U),te=w.job=U.runIfDirty.bind(U);te.i=w,te.id=w.uid,U.scheduler=()=>oi(te),vn(w,!0),q()},ue=(w,A,D)=>{A.component=w;const V=w.vnode.props;w.vnode=A,w.next=null,qd(w,A.props,V,D),Vd(w,A.children,D),Kt(),Bi(w),Wt()},ie=(w,A,D,V,N,$,Y,K,U=!1)=>{const q=w&&w.children,te=w?w.shapeFlag:0,Q=A.children,{patchFlag:ee,shapeFlag:re}=A;if(ee>0){if(ee&128){Ge(q,Q,D,V,N,$,Y,K,U);return}else if(ee&256){Ee(q,Q,D,V,N,$,Y,K,U);return}}re&8?(te&16&&kt(q,N,$),Q!==q&&c(D,Q)):te&16?re&16?Ge(q,Q,D,V,N,$,Y,K,U):kt(q,N,$,!0):(te&8&&c(D,""),re&16&&S(Q,D,V,N,$,Y,K,U))},Ee=(w,A,D,V,N,$,Y,K,U)=>{w=w||Nn,A=A||Nn;const q=w.length,te=A.length,Q=Math.min(q,te);let ee;for(ee=0;eete?kt(w,N,$,!0,!1,Q):S(A,D,V,N,$,Y,K,U,Q)},Ge=(w,A,D,V,N,$,Y,K,U)=>{let q=0;const te=A.length;let Q=w.length-1,ee=te-1;for(;q<=Q&&q<=ee;){const re=w[q],fe=A[q]=U?Nt(A[q]):Tt(A[q]);if(Jn(re,fe))C(re,fe,D,null,N,$,Y,K,U);else break;q++}for(;q<=Q&&q<=ee;){const re=w[Q],fe=A[ee]=U?Nt(A[ee]):Tt(A[ee]);if(Jn(re,fe))C(re,fe,D,null,N,$,Y,K,U);else break;Q--,ee--}if(q>Q){if(q<=ee){const re=ee+1,fe=reee)for(;q<=Q;)ke(w[q],N,$,!0),q++;else{const re=q,fe=q,ye=new Map;for(q=fe;q<=ee;q++){const rt=A[q]=U?Nt(A[q]):Tt(A[q]);rt.key!=null&&ye.set(rt.key,q)}let me,Me=0;const Ne=ee-fe+1;let wt=!1,_t=0;const Gn=new Array(Ne);for(q=0;q=Ne){ke(rt,N,$,!0);continue}let Ct;if(rt.key!=null)Ct=ye.get(rt.key);else for(me=fe;me<=ee;me++)if(Gn[me-fe]===0&&Jn(rt,A[me])){Ct=me;break}Ct===void 0?ke(rt,N,$,!0):(Gn[Ct-fe]=q+1,Ct>=_t?_t=Ct:wt=!0,C(rt,A[Ct],D,null,N,$,Y,K,U),Me++)}const Ti=wt?Kd(Gn):Nn;for(me=Ti.length-1,q=Ne-1;q>=0;q--){const rt=fe+q,Ct=A[rt],Pi=A[rt+1],Oi=rt+1{const{el:$,type:Y,transition:K,children:U,shapeFlag:q}=w;if(q&6){tt(w.component.subTree,A,D,V);return}if(q&128){w.suspense.move(A,D,V);return}if(q&64){Y.move(w,A,D,qe);return}if(Y===Ae){o($,A,D);for(let Q=0;QK.enter($),N));else{const{leave:Q,delayLeave:ee,afterLeave:re}=K,fe=()=>{w.ctx.isUnmounted?r($):o($,A,D)},ye=()=>{const me=$._isLeaving||!!$[$r];$._isLeaving&&$[$r](!0),K.persisted&&!me?fe():Q($,()=>{fe(),re&&re()})};ee?ee($,fe,ye):ye()}else o($,A,D)},ke=(w,A,D,V=!1,N=!1)=>{const{type:$,props:Y,ref:K,children:U,dynamicChildren:q,shapeFlag:te,patchFlag:Q,dirs:ee,cacheIndex:re,memo:fe}=w;if(Q===-2&&(N=!1),K!=null&&(Kt(),so(K,null,D,w,!0),Wt()),re!=null&&(A.renderCache[re]=void 0),te&256){A.ctx.deactivate(w);return}const ye=te&1&&ee,me=!Vn(w);let Me;if(me&&(Me=Y&&Y.onVnodeBeforeUnmount)&&St(Me,A,w),te&6)hn(w.component,D,V);else{if(te&128){w.suspense.unmount(D,V);return}ye&&gn(w,null,A,"beforeUnmount"),te&64?w.type.remove(w,A,D,qe,V):q&&!q.hasOnce&&($!==Ae||Q>0&&Q&64)?kt(q,A,D,!1,!0):($===Ae&&Q&384||!N&&te&16)&&kt(U,A,D),V&&Zt(w)}const Ne=fe!=null&&re==null;(me&&(Me=Y&&Y.onVnodeUnmounted)||ye||Ne)&&Xe(()=>{Me&&St(Me,A,w),ye&&gn(w,null,A,"unmounted"),Ne&&(w.el=null)},D)},Zt=w=>{const{type:A,el:D,anchor:V,transition:N}=w;if(A===Ae){en(D,V);return}if(A===Lr){_(w);return}const $=()=>{r(D),N&&!N.persisted&&N.afterLeave&&N.afterLeave()};if(w.shapeFlag&1&&N&&!N.persisted){const{leave:Y,delayLeave:K}=N,U=()=>Y(D,$);K?K(w.el,$,U):U()}else $()},en=(w,A)=>{let D;for(;w!==A;)D=h(w),r(w),w=D;r(A)},hn=(w,A,D)=>{const{bum:V,scope:N,job:$,subTree:Y,um:K,m:U,a:q}=w;Wi(U),Wi(q),V&&Lo(V),N.stop(),$&&($.flags|=8,ke(Y,w,A,D)),K&&Xe(K,A),Xe(()=>{w.isUnmounted=!0},A)},kt=(w,A,D,V=!1,N=!1,$=0)=>{for(let Y=$;Y{if(w.shapeFlag&6)return Pe(w.component.subTree);if(w.shapeFlag&128)return w.suspense.next();const A=h(w.anchor||w.el),D=A&&A[Ka];return D?h(D):A};let Oe=!1;const $e=(w,A,D)=>{let V;w==null?A._vnode&&(ke(A._vnode,null,null,!0),V=A._vnode.component):C(A._vnode||null,w,A,null,null,null,D),A._vnode=w,Oe||(Oe=!0,Bi(V),Fa(),Oe=!1)},qe={p:C,um:ke,m:tt,r:Zt,mt:W,mc:S,pc:ie,pbc:B,n:Pe,o:e};return{render:$e,hydrate:void 0,createApp:Pd($e)}}function Nr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function vn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function jd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ui(e,t,n=!1){const o=e.children,r=t.children;if(ne(o)&&ne(r))for(let s=0;s>1,e[n[l]]0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function fu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:fu(t)}function Wi(e){if(e)for(let t=0;te.__isSuspense;function Wd(e,t){t&&t.pendingBranch?ne(e)?t.effects.push(...e):t.effects.push(e):ed(e)}const Ae=Symbol.for("v-fgt"),_r=Symbol.for("v-txt"),Rt=Symbol.for("v-cmt"),Lr=Symbol.for("v-stc"),Vt=[];let Ze=null;function I(e=!1){Vt.push(Ze=e?null:[])}function ci(){Vt.pop(),Ze=Vt[Vt.length-1]||null}let Kn=1;function Go(e,t=!1){Kn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function gu(e){return e.dynamicChildren=Kn>0?Ze||Nn:null,ci(),Kn>0&&Ze&&Ze.push(e),e}function ae(e,t,n,o,r,s){return gu(g(e,t,n,o,r,s,!0))}function G(e,t,n,o,r){return gu(L(e,t,n,o,r,!0))}function co(e){return e?e.__v_isVNode===!0:!1}function Jn(e,t){return e.type===t.type&&e.key===t.key}const vu=({key:e})=>e??null,Fo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Te(e)||Be(e)||se(e)?{i:Fe,r:e,k:t,f:!!n}:e:null);function g(e,t=null,n=null,o=0,r=null,s=e===Ae?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vu(t),ref:t&&Fo(t),scopeId:Ha,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Fe};return l?(Yo(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=Te(n)?8:16),Kn>0&&!i&&Ze&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Ze.push(a),a}const L=zd;function zd(e,t=null,n=null,o=0,r=null,s=!1){if((!e||e===Ja)&&(e=Rt),co(e)){const l=En(e,t,!0);return n&&Yo(l,n),Kn>0&&!s&&Ze&&(l.shapeFlag&6?Ze[Ze.indexOf(e)]=l:Ze.push(l)),l.patchFlag=-2,l}if(nf(e)&&(e=e.__vccOpts),t){t=ct(t);let{class:l,style:a}=t;l&&!Te(l)&&(t.class=Ie(l)),ge(a)&&(hr(a)&&!ne(a)&&(a=je({},a)),t.style=st(a))}const i=Te(e)?1:hu(e)?128:rd(e)?64:ge(e)?4:se(e)?2:0;return g(e,t,n,o,r,i,s,!0)}function ct(e){return e?hr(e)||iu(e)?je({},e):e:null}function En(e,t,n=!1,o=!1){const{props:r,ref:s,patchFlag:i,children:l,transition:a}=e,u=t?ce(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&vu(u),ref:t&&t.ref?n&&s?ne(s)?s.concat(Fo(t)):[s,Fo(t)]:Fo(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ae?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&En(e.ssContent),ssFallback:e.ssFallback&&En(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&ii(c,a.clone(c)),c}function oe(e=" ",t=0){return L(_r,null,e,t)}function Ce(e="",t=!1){return t?(I(),G(Rt,null,e)):L(Rt,null,e)}function Tt(e){return e==null||typeof e=="boolean"?L(Rt):ne(e)?L(Ae,null,e.slice()):co(e)?Nt(e):L(_r,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:En(e)}function Yo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ne(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Yo(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!iu(t)?t._ctx=Fe:r===3&&Fe&&(Fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(se(t)){if(o&65){Yo(e,{default:t});return}t={default:t,_ctx:Fe},n=32}else t=String(t),o&64?(n=16,t=[oe(t)]):n=8;e.children=t,e.shapeFlag|=n}function ce(...e){const t={};for(let n=0;nWe||Fe;let Jo,Ds;{const e=ur(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),s=>{r.length>1?r.forEach(i=>i(s)):r[0](s)}};Jo=t("__VUE_INSTANCE_SETTERS__",n=>We=n),Ds=t("__VUE_SSR_SETTERS__",n=>fo=n)}const Co=e=>{const t=We;return Jo(e),e.scope.on(),()=>{e.scope.off(),Jo(t)}},zi=()=>{We&&We.scope.off(),Jo(null)};function mu(e){return e.vnode.shapeFlag&4}let fo=!1;function Xd(e,t=!1,n=!1){t&&Ds(t);const{props:o,children:r}=e.vnode,s=mu(e);$d(e,o,s,t),Fd(e,r,n||t);const i=s?Qd(e,t):void 0;return t&&Ds(!1),i}function Qd(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,wd);const{setup:o}=n;if(o){Kt();const r=e.setupContext=o.length>1?ef(e):null,s=Co(e),i=wo(o,e,0,[e.props,r]),l=ua(i);if(Wt(),s(),(l||e.sp)&&!Vn(e)&&Wa(e),l){if(i.then(zi,zi),t)return i.then(a=>{Gi(e,a)}).catch(a=>{vr(a,e,0)});e.asyncDep=i}else Gi(e,i)}else yu(e)}function Gi(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=$a(t)),yu(e)}function yu(e,t,n){const o=e.type;e.render||(e.render=o.render||Ot);{const r=Co(e);Kt();try{Cd(e)}finally{Wt(),r()}}}const Zd={get(e,t){return Ke(e,"get",""),e[t]}};function ef(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Zd),slots:e.slots,emit:e.emit,expose:t}}function Cr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy($a(Ba(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in io)return io[n](e)},has(t,n){return n in t||n in io}})):e.proxy}function tf(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function nf(e){return se(e)&&"__vccOpts"in e}const z=(e,t)=>Yc(e,t,fo);function Ht(e,t,n){try{Go(-1);const o=arguments.length;return o===2?ge(t)&&!ne(t)?co(t)?L(e,null,[t]):L(e,t):L(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&co(n)&&(n=[n]),L(e,t,n))}finally{Go(1)}}function of(e,t,n,o){const r=n[o];if(r&&rf(r,e))return r;const s=t();return s.memo=e.slice(),s.cacheIndex=o,n[o]=s}function rf(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let o=0;o0&&Ze&&Ze.push(e),!0}const sf="3.5.40";let Is;const Yi=typeof window<"u"&&window.trustedTypes;if(Yi)try{Is=Yi.createPolicy("vue",{createHTML:e=>e})}catch{}const bu=Is?e=>Is.createHTML(e):e=>e,lf="http://www.w3.org/2000/svg",af="http://www.w3.org/1998/Math/MathML",qt=typeof document<"u"?document:null,Ji=qt&&qt.createElement("template"),uf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?qt.createElementNS(lf,e):t==="mathml"?qt.createElementNS(af,e):n?qt.createElement(e,{is:n}):qt.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>qt.createTextNode(e),createComment:e=>qt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===s||!(r=r.nextSibling)););else{Ji.innerHTML=bu(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const l=Ji.content;if(o==="svg"||o==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},cf=Symbol("_vtc");function df(e,t,n){const o=e[cf];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Xo=Symbol("_vod"),wu=Symbol("_vsh"),Bs={name:"show",beforeMount(e,{value:t},{transition:n}){e[Xo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Xn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Xn(e,!0),o.enter(e)):o.leave(e,()=>{Xn(e,!1)}):Xn(e,t))},beforeUnmount(e,{value:t}){Xn(e,t)}};function Xn(e,t){e.style.display=t?e[Xo]:"none",e[wu]=!t}const ff=Symbol(""),pf=/(?:^|;)\s*display\s*:/;function hf(e,t,n){const o=e.style,r=Te(n);let s=!1;if(n&&!r){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&to(o,l,"")}else for(const i in t)n[i]==null&&to(o,i,"");for(const i in n){i==="display"&&(s=!0);const l=n[i];l!=null?vf(e,i,!Te(t)&&t?t[i]:void 0,l)||to(o,i,l):to(o,i,"")}}else if(r){if(t!==n){const i=o[ff];i&&(n+=";"+i),o.cssText=n,s=pf.test(n)}}else t&&e.removeAttribute("style");Xo in e&&(e[Xo]=s?o.display:"",e[wu]&&(o.display="none"))}const Xi=/\s*!important$/;function to(e,t,n){if(ne(n))n.forEach(o=>to(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=gf(e,t);Xi.test(n)?e.setProperty(un(o),n.replace(Xi,""),"important"):e[o]=n}}const Qi=["Webkit","Moz","ms"],Fr={};function gf(e,t){const n=Fr[t];if(n)return n;let o=Ve(t);if(o!=="filter"&&o in e)return Fr[t]=o;o=ar(o);for(let r=0;rVr||(Cf.then(()=>Vr=0),Vr=Date.now());function Ef(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const r=n.value;if(ne(r)){const s=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{s.call(o),o._stopped=!0};const i=r.slice(),l=[o];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,xf=(e,t,n,o,r,s)=>{const i=r==="svg";t==="class"?df(e,o,i):t==="style"?hf(e,n,o):rr(t)?sr(t)||yf(e,t,n,o,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Af(e,t,o,i))?(tl(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&el(e,t,o,i,s,t!=="value")):e._isVueCE&&(Tf(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Te(o)))?tl(e,Ve(t),o,s,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),el(e,t,o,i))};function Af(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ol(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return ol(t)&&Te(n)?!1:t in e}function Tf(e,t){const n=e._def.props;if(!n)return!1;const o=Ve(t);return Array.isArray(n)?n.some(r=>Ve(r)===o):Object.keys(n).some(r=>Ve(r)===o)}const rl=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ne(t)?n=>Lo(t,n):t};function Pf(e){e.target.composing=!0}function sl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Hr=Symbol("_assign");function il(e,t,n){return t&&(e=e.trim()),n&&(e=Js(e)),e}const pt={created(e,{modifiers:{lazy:t,trim:n,number:o}},r){e[Hr]=rl(r);const s=o||r.props&&r.props.type==="number";$n(e,t?"change":"input",i=>{i.target.composing||e[Hr](il(e.value,n,s))}),(n||s)&&$n(e,"change",()=>{e.value=il(e.value,n,s)}),t||($n(e,"compositionstart",Pf),$n(e,"compositionend",sl),$n(e,"change",sl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:r,number:s}},i){if(e[Hr]=rl(i),e.composing)return;const l=(s||e.type==="number")&&!/^0\d/.test(e.value)?Js(e.value):e.value,a=t??"";if(l===a)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(o&&t===n||r&&e.value.trim()===a)||(e.value=a)}},Of=["ctrl","shift","alt","meta"],Rf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Of.some(n=>e[`${n}Key`]&&!t.includes(n))},Ue=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=((r,...s)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=(r=>{if(!("key"in r))return;const s=un(r.key);if(t.some(i=>i===s||Mf[i]===s))return e(r)}))},If=je({patchProp:xf},uf);let ll;function Bf(){return ll||(ll=Hd(If))}const kf=((...e)=>{const t=Bf().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=qf(o);if(!r)return;const s=t._component;!se(s)&&!s.render&&!s.template&&(s.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,$f(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t});function $f(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function qf(e){return Te(e)?document.querySelector(e):e}function al(e){return typeof e=="string"?`'${e}'`:new Nf().serialize(e)}const Nf=(function(){class e{#e=new Map;compare(n,o){const r=typeof n,s=typeof o;return r==="string"&&s==="string"?n.localeCompare(o):r==="number"&&s==="number"?n-o:String.prototype.localeCompare.call(this.serialize(n,!0),this.serialize(o,!0))}serialize(n,o){if(n===null)return"null";switch(typeof n){case"string":return o?n:`'${n}'`;case"bigint":return`${n}n`;case"object":return this.$object(n);case"function":return this.$function(n)}return String(n)}serializeObject(n){const o=Object.prototype.toString.call(n);if(o!=="[object Object]")return this.serializeBuiltInType(o.length<10?`unknown:${o}`:o.slice(8,-1),n);const r=n.constructor,s=r===Object||r===void 0?"":r.name;if(s!==""&&globalThis[s]===r)return this.serializeBuiltInType(s,n);if(typeof n.toJSON=="function"){const i=n.toJSON();return s+(i!==null&&typeof i=="object"?this.$object(i):`(${this.serialize(i)})`)}return this.serializeObjectEntries(s,Object.entries(n))}serializeBuiltInType(n,o){const r=this["$"+n];if(r)return r.call(this,o);if(typeof o?.entries=="function")return this.serializeObjectEntries(n,o.entries());throw new Error(`Cannot serialize ${n}`)}serializeObjectEntries(n,o){const r=Array.from(o).sort((i,l)=>this.compare(i[0],l[0]));let s=`${n}{`;for(let i=0;ithis.compare(o,r)))}`}$Map(n){return this.serializeObjectEntries("Map",n.entries())}}for(const t of["Error","RegExp","URL"])e.prototype["$"+t]=function(n){return`${t}(${n})`};for(const t of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join(",")}]`};for(const t of["BigInt64Array","BigUint64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join("n,")}${n.length>0?"n":""}]`};return e})();function Lf(e,t){return e===t||al(e)===al(t)}function ul(e,t=Number.NEGATIVE_INFINITY,n=Number.POSITIVE_INFINITY){return Math.min(n,Math.max(t,e))}function dt(e,t){const n=typeof e=="string"&&!t?`${e}Context`:t,o=Symbol(n);return[i=>{const l=Cn(o,i);if(l||l===null)return l;throw new Error(`Injection \`${o.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(", ")}`:`\`${e}\``}`)},i=>(ri(o,i),i)]}function ze(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function di(e,t,n){const o=n.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),o.dispatchEvent(r)}function ks(e){return e==null}function So(e,t){return Qs()?(Zs(e,t),!0):!1}function Ff(e){let t=!1,n;const o=ma(!0);return((...r)=>(t||(n=o.run(()=>e(...r)),t=!0),n))}const at=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Vf=e=>typeof e<"u",Hf=Object.prototype.toString,Uf=e=>Hf.call(e)==="[object Object]",jf=()=>{},cl=Kf();function Kf(){var e,t,n;return at&&!!(!((e=window)===null||e===void 0||(e=e.navigator)===null||e===void 0)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)===null||t===void 0||(t=t.navigator)===null||t===void 0?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test((n=window)===null||n===void 0?void 0:n.navigator.userAgent))}function Ur(e){return Array.isArray(e)?e:[e]}function Wf(e){return It()}function zf(e){if(!at)return e;let t=0,n,o;const r=()=>{t-=1,o&&t<=0&&(o.stop(),n=void 0,o=void 0)};return((...s)=>(t+=1,o||(o=ma(!0),n=o.run(()=>e(...s))),So(r),n))}function Gf(e,t=1e4){return jc((n,o)=>{let r=He(e),s;const i=()=>setTimeout(()=>{r=He(e),o()},He(t));return So(()=>{clearTimeout(s)}),{get(){return n(),r},set(l){r=l,o(),clearTimeout(s),s=i()}}})}function Yf(e,t){Wf()&&br(e,t)}function Jf(e,t,n={}){const{immediate:o=!0,immediateCallback:r=!1}=n,s=gr(!1);let i;function l(){i&&(clearTimeout(i),i=void 0)}function a(){s.value=!1,l()}function u(...c){r&&e(),l(),s.value=!0,i=setTimeout(()=>{s.value=!1,i=void 0,e(...c)},He(t))}return o&&(s.value=!0,at&&u()),So(a),{isPending:rn(s),start:u,stop:a}}function Xf(e=1e3,t={}){const{controls:n=!1,callback:o}=t,r=Jf(o??jf,e,t),s=z(()=>!r.isPending.value);return n?{ready:s,...r}:s}function Qf(e,t,n){return we(e,t,{...n,immediate:!0})}const Eo=at?window:void 0;function ut(e){var t;const n=He(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function _u(...e){const t=(o,r,s,i)=>(o.addEventListener(r,s,i),()=>o.removeEventListener(r,s,i)),n=z(()=>{const o=Ur(He(e[0])).filter(r=>r!=null);return o.every(r=>typeof r!="string")?o:void 0});return Qf(()=>{var o,r;return[(o=(r=n.value)===null||r===void 0?void 0:r.map(s=>ut(s)))!==null&&o!==void 0?o:[Eo].filter(s=>s!=null),Ur(He(n.value?e[1]:e[0])),Ur(f(n.value?e[2]:e[1])),He(n.value?e[3]:e[2])]},([o,r,s,i],l,a)=>{if(!o?.length||!r?.length||!s?.length)return;const u=Uf(i)?{...i}:i,c=o.flatMap(d=>r.flatMap(h=>s.map(p=>t(d,h,p,u))));a(()=>{c.forEach(d=>d())})},{flush:"post"})}function Cu(){const e=gr(!1),t=It();return t&&Re(()=>{e.value=!0},t),e}function Zf(e){const t=Cu();return z(()=>(t.value,!!e()))}function ep(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function fi(...e){let t,n,o={};e.length===3?(t=e[0],n=e[1],o=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],o=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Eo,eventName:s="keydown",passive:i=!1,dedupe:l=!1}=o,a=ep(t);return _u(r,s,c=>{c.repeat&&He(l)||a(c)&&n(c)},i)}function tp(e,t={}){const{immediate:n=!0,fpsLimit:o=null,window:r=Eo,once:s=!1}=t,i=gr(!1),l=z(()=>{const p=He(o);return p?1e3/p:null});let a=0,u=null;function c(p){if(!i.value||!r)return;a||(a=p);const y=p-a;if(l.value&&yo&&"ResizeObserver"in o),l=()=>{s&&(s.disconnect(),s=void 0)},a=we(z(()=>{const c=He(e);return Array.isArray(c)?c.map(d=>ut(d)):[ut(c)]}),c=>{if(l(),i.value&&o){s=new ResizeObserver(t);for(const d of c)d&&s.observe(d,r)}},{immediate:!0,flush:"post"}),u=()=>{l(),a()};return So(u),{isSupported:i,stop:u}}function po(e,t,n,o={}){var r,s;const{clone:i=!1,passive:l=!1,eventName:a,deep:u=!1,defaultValue:c,shouldEmit:d}=o,h=It(),p=n||h?.emit||(h==null||(r=h.$emit)===null||r===void 0?void 0:r.bind(h))||(h==null||(s=h.proxy)===null||s===void 0||(s=s.$emit)===null||s===void 0?void 0:s.bind(h?.proxy));let y=a;t||(t="modelValue"),y=y||`update:${t.toString()}`;const C=E=>i?typeof i=="function"?i(E):np(E):E,b=()=>Vf(e[t])?C(e[t]):c,m=E=>{d?d(E)&&p(y,E):p(y,E)};if(l){const E=F(b());let x=!1;return we(()=>e[t],_=>{x||(x=!0,E.value=C(_),Le(()=>x=!1))}),we(E,_=>{!x&&(_!==e[t]||u)&&m(_)},{deep:u}),E}else return z({get(){return b()},set(E){m(E)}})}function pi(e){return e?e.flatMap(t=>t.type===Ae?pi(t.children):[t]):[]}const[xo]=dt("ConfigProvider");function jr(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function $s(e,t,n=".",o){if(!jr(t))return $s(e,{},n,o);const r={...t};for(const s of Object.keys(e)){if(s==="__proto__"||s==="constructor")continue;const i=e[s];i!=null&&(o&&o(r,s,i,n)||(Array.isArray(i)&&Array.isArray(r[s])?r[s]=[...i,...r[s]]:jr(i)&&jr(r[s])?r[s]=$s(i,r[s],(n?`${n}.`:"")+s.toString(),o):r[s]=i))}return r}function rp(e){return(...t)=>t.reduce((n,o)=>$s(n,o,"",e),{})}const sp=rp(),ip=zf(()=>{const e=F(new Map),t=F(),n=z(()=>{for(const i of e.value.values())if(i)return!0;return!1}),o=xo({scrollBody:F(!0)});let r=null;const s=()=>{document.body.style.paddingRight="",document.body.style.marginRight="",document.body.style.pointerEvents="",document.documentElement.style.removeProperty("--scrollbar-width"),document.body.style.overflow=t.value??"",cl&&r?.(),t.value=void 0};return we(n,(i,l)=>{if(!at)return;if(!i){l&&s();return}t.value===void 0&&(t.value=document.body.style.overflow);const a=window.innerWidth-document.documentElement.clientWidth,u={padding:a,margin:0},c=o.scrollBody?.value?typeof o.scrollBody.value=="object"?sp({padding:o.scrollBody.value.padding===!0?a:o.scrollBody.value.padding,margin:o.scrollBody.value.margin===!0?a:o.scrollBody.value.margin},u):u:{padding:0,margin:0};a>0&&(document.body.style.paddingRight=typeof c.padding=="number"?`${c.padding}px`:String(c.padding),document.body.style.marginRight=typeof c.margin=="number"?`${c.margin}px`:String(c.margin),document.documentElement.style.setProperty("--scrollbar-width",`${a}px`),document.body.style.overflow="hidden"),cl&&(r=_u(document,"touchmove",d=>lp(d),{passive:!1})),Le(()=>{n.value&&(document.body.style.pointerEvents="none",document.body.style.overflow="hidden")})},{immediate:!0,flush:"sync"}),e});function Su(e){const t=Math.random().toString(36).substring(2,7),n=ip();n.value.set(t,e??!1);const o=z({get:()=>n.value.get(t)??!1,set:r=>n.value.set(t,r)});return Yf(()=>{n.value.delete(t)}),o}function Eu(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function xu(e){const t=xo({dir:F("ltr")});return z(()=>e?.value||t.dir?.value||"ltr")}function Ao(e){const t=It(),n=t?.type.emits,o={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(r=>{o[No(Ve(r))]=(...s)=>e(r,...s)}),o}let Kr=0;function ap(){yt(e=>{if(!at)return;const t=document.querySelectorAll("[data-reka-focus-guard]");document.body.insertAdjacentElement("afterbegin",t[0]??dl()),document.body.insertAdjacentElement("beforeend",t[1]??dl()),Kr++,e(()=>{Kr===1&&document.querySelectorAll("[data-reka-focus-guard]").forEach(n=>n.remove()),Kr--})})}function dl(){const e=document.createElement("span");return e.setAttribute("data-reka-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}function Au(e){return z(()=>He(e)?!!ut(e)?.closest("form"):!0)}function de(){const e=It(),t=F(),n=z(()=>o());Ya(()=>{n.value!==o()&&Vc(t)});function o(){return t.value&&"$el"in t.value&&["#text","#comment"].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:ut(t)}const r=Object.assign({},e.exposed),s={};for(const l in e.props)Object.defineProperty(s,l,{enumerable:!0,configurable:!0,get:()=>e.props[l]});if(Object.keys(r).length>0)for(const l in r)Object.defineProperty(s,l,{enumerable:!0,configurable:!0,get:()=>r[l]});Object.defineProperty(s,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=s;function i(l){if(t.value=l,!!l&&(Object.defineProperty(s,"$el",{enumerable:!0,configurable:!0,get:()=>l instanceof Element?l:l.$el}),!(l instanceof Element)&&!Object.hasOwn(l,"$el"))){const a=l.$.exposed,u=Object.assign({},s);for(const c in a)Object.defineProperty(u,c,{enumerable:!0,configurable:!0,get:()=>a[c]});e.exposed=u}}return{forwardRef:i,currentRef:t,currentElement:n}}function hi(e){const t=It(),n=Object.keys(t?.type.props??{}).reduce((r,s)=>{const i=(t?.type.props[s]).default;return i!==void 0&&(r[s]=i),r},{}),o=zc(e);return z(()=>{const r={},s=t?.vnode.props??{};return Object.keys(s).forEach(i=>{r[Ve(i)]=s[i]}),Object.keys({...n,...r}).reduce((i,l)=>(o.value[l]!==void 0&&(i[l]=o.value[l]),i),{})})}function Tu(e,t){const n=hi(e),o=t?Ao(t):{};return z(()=>({...n.value,...o}))}function up(){const e=It()?.vnode?.scopeId;return e?{[e]:""}:{}}var cp=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Dn=new WeakMap,Do=new WeakMap,Io={},Wr=0,Pu=function(e){return e&&(e.host||Pu(e.parentNode))},dp=function(e,t){return t.map(function(n){if(e.contains(n))return n;var o=Pu(n);return o&&e.contains(o)?o:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},fp=function(e,t,n,o){var r=dp(t,Array.isArray(e)?e:[e]);Io[n]||(Io[n]=new WeakMap);var s=Io[n],i=[],l=new Set,a=new Set(r),u=function(d){!d||l.has(d)||(l.add(d),u(d.parentNode))};r.forEach(u);var c=function(d){!d||a.has(d)||Array.prototype.forEach.call(d.children,function(h){if(l.has(h))c(h);else try{var p=h.getAttribute(o),y=p!==null&&p!=="false",C=(Dn.get(h)||0)+1,b=(s.get(h)||0)+1;Dn.set(h,C),s.set(h,b),i.push(h),C===1&&y&&Do.set(h,!0),b===1&&h.setAttribute(n,"true"),y||h.setAttribute(o,"true")}catch(m){console.error("aria-hidden: cannot operate on ",h,m)}})};return c(t),l.clear(),Wr++,function(){i.forEach(function(d){var h=Dn.get(d)-1,p=s.get(d)-1;Dn.set(d,h),s.set(d,p),h||(Do.has(d)||d.removeAttribute(o),Do.delete(d)),p||d.removeAttribute(n)}),Wr--,Wr||(Dn=new WeakMap,Dn=new WeakMap,Do=new WeakMap,Io={})}},pp=function(e,t,n){n===void 0&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=cp(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),fp(o,r,n,"aria-hidden")):function(){return null}};function Ou(e){let t;we(()=>ut(e),n=>{let o=!1;try{o=!!n?.closest("[popover]:not(:popover-open)")}catch{}n&&!o?t=pp(n):t&&t()}),Xt(()=>{t&&t()})}function ho(e,t="reka"){let n;const o=xo({useId:void 0});return o.useId?n=o.useId():n=ad?.(),t?`${t}-${n}`:n}function hp(e){const t=F(),n=z(()=>t.value?.width??0),o=z(()=>t.value?.height??0);let r;return Re(()=>{const s=ut(e);s?(t.value={width:s.offsetWidth,height:s.offsetHeight},r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const l=i[0];let a,u;if("borderBoxSize"in l){const c=l.borderBoxSize,d=Array.isArray(c)?c[0]:c;a=d.inlineSize,u=d.blockSize}else a=s.offsetWidth,u=s.offsetHeight;t.value={width:a,height:u}}),r.observe(s,{box:"border-box"})):t.value=void 0}),Xt(()=>{r?.disconnect(),r=void 0}),{width:n,height:o}}function gp(e,t){const n=F(e);function o(s){return t[n.value][s]??n.value}return{state:n,dispatch:s=>{n.value=o(s)}}}function Ru(e){const t=Gf("",1e3);return{search:t,handleTypeaheadSearch:(r,s)=>{t.value=t.value+r;{const i=ze(),l=s.map(h=>({...h,textValue:h.value?.textValue??h.ref.textContent?.trim()??""})),a=l.find(h=>h.ref===i),u=l.map(h=>h.textValue),c=mp(u,t.value,a?.textValue),d=l.find(h=>h.textValue===c);return d&&d.ref.focus(),d?.ref}},resetTypeahead:()=>{t.value=""}}}function vp(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function mp(e,t,n){const r=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let i=vp(e,Math.max(s,0));r.length===1&&(i=i.filter(u=>u!==n));const a=i.find(u=>u.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function yp(e,t){const n=F({}),o=F("none"),r=F(e),s=e.value?"mounted":"unmounted";let i;const l=t.value?.ownerDocument.defaultView??Eo,{state:a,dispatch:u}=gp(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}}),c=b=>{if(at){const m=new CustomEvent(b,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(m)}};we(e,async(b,m)=>{const E=m!==b;if(await Le(),E){const x=o.value,_=Bo(t.value);b?(u("MOUNT"),c("enter"),_==="none"&&c("after-enter")):_==="none"||_==="undefined"||n.value?.display==="none"?(u("UNMOUNT"),c("leave"),c("after-leave")):m&&x!==_?(u("ANIMATION_OUT"),c("leave")):(u("UNMOUNT"),c("after-leave"))}},{immediate:!0});const d=b=>{const m=Bo(t.value),E=m.includes(CSS.escape(b.animationName)),x=a.value==="mounted"?"enter":"leave";if(b.target===t.value&&E&&(c(`after-${x}`),u("ANIMATION_END"),!r.value)){const _=t.value.style.animationFillMode;t.value.style.animationFillMode="forwards",i=l?.setTimeout(()=>{t.value?.style.animationFillMode==="forwards"&&(t.value.style.animationFillMode=_)})}b.target===t.value&&m==="none"&&u("ANIMATION_END")},h=b=>{b.target===t.value&&(o.value=Bo(t.value))},p=we(t,(b,m)=>{b?(n.value=getComputedStyle(b),b.addEventListener("animationstart",h),b.addEventListener("animationcancel",d),b.addEventListener("animationend",d)):(u("ANIMATION_END"),i!==void 0&&l?.clearTimeout(i),m?.removeEventListener("animationstart",h),m?.removeEventListener("animationcancel",d),m?.removeEventListener("animationend",d))},{immediate:!0}),y=we(a,()=>{const b=Bo(t.value);o.value=a.value==="mounted"?b:"none"});return Xt(()=>{p(),y(),t.value&&(t.value.removeEventListener("animationstart",h),t.value.removeEventListener("animationcancel",d),t.value.removeEventListener("animationend",d)),i!==void 0&&l?.clearTimeout(i)}),{isPresent:z(()=>["mounted","unmountSuspended"].includes(a.value))}}function Bo(e){return e&&getComputedStyle(e).animationName||"none"}var Sr=J({name:"Presence",props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){const{present:o,forceMount:r}=cn(e),s=F(),{isPresent:i}=yp(o,s);n({present:i});let l=t.default({present:i.value});l=pi(l||[]);const a=It();if(l&&l?.length>1){const u=a?.parent?.type.name?`<${a.parent.type.name} />`:"component";throw new Error([`Detected an invalid children for \`${u}\` for \`Presence\` component.`,"","Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.","You can apply a few solutions:",["Provide a single child element so that `presence` directive attach correctly.","Ensure the first child is an actual element instead of a raw text node or comment node."].map(c=>` - ${c}`).join(` +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function o(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();function Gs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const be={},Nn=[],Ot=()=>{},la=()=>!1,rr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),sr=e=>e.startsWith("onUpdate:"),je=Object.assign,Ys=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},cc=Object.prototype.hasOwnProperty,he=(e,t)=>cc.call(e,t),oe=Array.isArray,Ln=e=>bo(e)==="[object Map]",aa=e=>bo(e)==="[object Set]",Ri=e=>bo(e)==="[object Date]",se=e=>typeof e=="function",Te=e=>typeof e=="string",lt=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",ua=e=>(ge(e)||se(e))&&se(e.then)&&se(e.catch),ca=Object.prototype.toString,bo=e=>ca.call(e),dc=e=>bo(e).slice(8,-1),da=e=>bo(e)==="[object Object]",ir=e=>Te(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,no=Gs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),lr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},fc=/-\w/g,Ve=lr(e=>e.replace(fc,t=>t.slice(1).toUpperCase())),pc=/\B([A-Z])/g,un=lr(e=>e.replace(pc,"-$1").toLowerCase()),ar=lr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Lo=lr(e=>e?`on${ar(e)}`:""),ht=(e,t)=>!Object.is(e,t),Fo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Js=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Ii;const ur=()=>Ii||(Ii=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function st(e){if(oe(e)){const t={};for(let n=0;n{if(n){const o=n.split(gc);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function De(e){let t="";if(Te(e))t=e;else if(oe(e))for(let n=0;n!!(e&&e.__v_isRef===!0),O=e=>Te(e)?e:e==null?"":oe(e)||ge(e)&&(e.toString===ca||!se(e.toString))?ha(e)?O(e.value):JSON.stringify(e,ga,2):String(e),ga=(e,t)=>ha(t)?ga(e,t.value):Ln(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],s)=>(n[Mr(o,s)+" =>"]=r,n),{})}:aa(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Mr(n))}:lt(t)?Mr(t):ge(t)&&!oe(t)&&!da(t)?String(t):t,Mr=(e,t="")=>{var n;return lt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Me;class va{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Me&&(Me.active?(this.parent=Me,this.index=(Me.scopes||(Me.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t0&&--this._on===0){if(Me===this)Me=this.prevScope;else{let t=Me;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(ro){let t=ro;for(ro=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;oo;){let t=oo;for(oo=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function _a(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ca(e){let t,n=e.depsTail,o=n;for(;o;){const r=o.prevDep;o.version===-1?(o===n&&(n=r),ni(o),_c(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}e.deps=t,e.depsTail=n}function _s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Sa(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Sa(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ao)||(e.globalVersion=ao,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_s(e))))return;e.flags|=2;const t=e.dep,n=_e,o=gt;_e=e,gt=!0;try{_a(e);const r=e.fn(e._value);(t.version===0||ht(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{_e=n,gt=o,Ca(e),e.flags&=-3}}function ni(e,t=!1){const{dep:n,prevSub:o,nextSub:r}=e;if(o&&(o.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)ni(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function _c(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let gt=!0;const Ea=[];function Kt(){Ea.push(gt),gt=!1}function Wt(){const e=Ea.pop();gt=e===void 0?!0:e}function Mi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=_e;_e=void 0;try{t()}finally{_e=n}}}let ao=0;class Cc{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class cr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!_e||!gt||_e===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==_e)n=this.activeLink=new Cc(_e,this),_e.deps?(n.prevDep=_e.depsTail,_e.depsTail.nextDep=n,_e.depsTail=n):_e.deps=_e.depsTail=n,xa(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=_e.depsTail,n.nextDep=void 0,_e.depsTail.nextDep=n,_e.depsTail=n,_e.deps===n&&(_e.deps=o)}return n}trigger(t){this.version++,ao++,this.notify(t)}notify(t){ei();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ti()}}}function xa(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)xa(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Uo=new WeakMap,wn=Symbol(""),Cs=Symbol(""),uo=Symbol("");function Ke(e,t,n){if(gt&&_e){let o=Uo.get(e);o||Uo.set(e,o=new Map);let r=o.get(n);r||(o.set(n,r=new cr),r.map=o,r.key=n),r.track()}}function Lt(e,t,n,o,r,s){const i=Uo.get(e);if(!i){ao++;return}const l=a=>{a&&a.trigger()};if(ei(),t==="clear")i.forEach(l);else{const a=oe(e),u=a&&ir(n);if(a&&n==="length"){const c=Number(o);i.forEach((d,h)=>{(h==="length"||h===uo||!lt(h)&&h>=c)&&l(d)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(uo)),t){case"add":a?u&&l(i.get("length")):(l(i.get(wn)),Ln(e)&&l(i.get(Cs)));break;case"delete":a||(l(i.get(wn)),Ln(e)&&l(i.get(Cs)));break;case"set":Ln(e)&&l(i.get(wn));break}}ti()}function Sc(e,t){const n=Uo.get(e);return n&&n.get(t)}function In(e){const t=pe(e);return t===e?t:(Ke(t,"iterate",uo),it(e)?t:t.map(vt))}function dr(e){return Ke(e=pe(e),"iterate",uo),e}function At(e,t){return zt(e)?jn(_n(e)?vt(t):t):vt(t)}const Ec={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>At(this,e))},concat(...e){return In(this).concat(...e.map(t=>oe(t)?In(t):t))},entries(){return kr(this,"entries",e=>(e[1]=At(this,e[1]),e))},every(e,t){return $t(this,"every",e,t,void 0,arguments)},filter(e,t){return $t(this,"filter",e,t,n=>n.map(o=>At(this,o)),arguments)},find(e,t){return $t(this,"find",e,t,n=>At(this,n),arguments)},findIndex(e,t){return $t(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return $t(this,"findLast",e,t,n=>At(this,n),arguments)},findLastIndex(e,t){return $t(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return $t(this,"forEach",e,t,void 0,arguments)},includes(...e){return Br(this,"includes",e)},indexOf(...e){return Br(this,"indexOf",e)},join(e){return In(this).join(e)},lastIndexOf(...e){return Br(this,"lastIndexOf",e)},map(e,t){return $t(this,"map",e,t,void 0,arguments)},pop(){return Yn(this,"pop")},push(...e){return Yn(this,"push",e)},reduce(e,...t){return Di(this,"reduce",e,t)},reduceRight(e,...t){return Di(this,"reduceRight",e,t)},shift(){return Yn(this,"shift")},some(e,t){return $t(this,"some",e,t,void 0,arguments)},splice(...e){return Yn(this,"splice",e)},toReversed(){return In(this).toReversed()},toSorted(e){return In(this).toSorted(e)},toSpliced(...e){return In(this).toSpliced(...e)},unshift(...e){return Yn(this,"unshift",e)},values(){return kr(this,"values",e=>At(this,e))}};function kr(e,t,n){const o=dr(e),r=o[t]();return o!==e&&!it(e)&&(r._next=r.next,r.next=()=>{const s=r._next();return s.done||(s.value=n(s.value)),s}),r}const xc=Array.prototype;function $t(e,t,n,o,r,s){const i=dr(e),l=i!==e&&!it(e),a=i[t];if(a!==xc[t]){const d=a.apply(e,s);return l?vt(d):d}let u=n;i!==e&&(l?u=function(d,h){return n.call(this,At(e,d),h,e)}:n.length>2&&(u=function(d,h){return n.call(this,d,h,e)}));const c=a.call(i,u,o);return l&&r?r(c):c}function Di(e,t,n,o){const r=dr(e),s=r!==e&&!it(e);let i=n,l=!1;r!==e&&(s?(l=o.length===0,i=function(u,c,d){return l&&(l=!1,u=At(e,u)),n.call(this,u,At(e,c),d,e)}):n.length>3&&(i=function(u,c,d){return n.call(this,u,c,d,e)}));const a=r[t](i,...o);return l?At(e,a):a}function Br(e,t,n){const o=pe(e);Ke(o,"iterate",uo);const r=o[t](...n);return(r===-1||r===!1)&&hr(n[0])?(n[0]=pe(n[0]),o[t](...n)):r}function Yn(e,t,n=[]){Kt(),ei();const o=pe(e)[t].apply(e,n);return ti(),Wt(),o}const Ac=Gs("__proto__,__v_isRef,__isVue"),Aa=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(lt));function Tc(e){lt(e)||(e=String(e));const t=pe(this);return Ke(t,"has",e),t.hasOwnProperty(e)}class Ta{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return s;if(n==="__v_raw")return o===(r?s?Da:Ma:s?Ia:Ra).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=oe(t);if(!r){let a;if(i&&(a=Ec[n]))return a;if(n==="hasOwnProperty")return Tc}const l=Reflect.get(t,n,ke(t)?t:o);if((lt(n)?Aa.has(n):Ac(n))||(r||Ke(t,"get",n),s))return l;if(ke(l)){const a=i&&ir(n)?l:l.value;return r&&ge(a)?Es(a):a}return ge(l)?r?Es(l):wo(l):l}}class Pa extends Ta{constructor(t=!1){super(!1,t)}set(t,n,o,r){let s=t[n];const i=oe(t)&&ir(n);if(!this._isShallow){const u=zt(s);if(!it(o)&&!zt(o)&&(s=pe(s),o=pe(o)),!i&&ke(s)&&!ke(o))return u||(s.value=o),!0}const l=i?Number(n)e,Oo=e=>Reflect.getPrototypeOf(e);function Mc(e,t,n){return function(...o){const r=this.__v_raw,s=pe(r),i=Ln(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,u=r[e](...o),c=n?Ss:t?jn:vt;return!t&&Ke(s,"iterate",a?Cs:wn),je(Object.create(u),{next(){const{value:d,done:h}=u.next();return h?{value:d,done:h}:{value:l?[c(d[0]),c(d[1])]:c(d),done:h}}})}}function Ro(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Dc(e,t){const n={get(r){const s=this.__v_raw,i=pe(s),l=pe(r);e||(ht(r,l)&&Ke(i,"get",r),Ke(i,"get",l));const{has:a}=Oo(i),u=t?Ss:e?jn:vt;if(a.call(i,r))return u(s.get(r));if(a.call(i,l))return u(s.get(l));s!==i&&s.get(r)},get size(){const r=this.__v_raw;return!e&&Ke(pe(r),"iterate",wn),r.size},has(r){const s=this.__v_raw,i=pe(s),l=pe(r);return e||(ht(r,l)&&Ke(i,"has",r),Ke(i,"has",l)),r===l?s.has(r):s.has(r)||s.has(l)},forEach(r,s){const i=this,l=i.__v_raw,a=pe(l),u=t?Ss:e?jn:vt;return!e&&Ke(a,"iterate",wn),l.forEach((c,d)=>r.call(s,u(c),u(d),i))}};return je(n,e?{add:Ro("add"),set:Ro("set"),delete:Ro("delete"),clear:Ro("clear")}:{add(r){const s=pe(this),i=Oo(s),l=pe(r),a=!t&&!it(r)&&!zt(r)?l:r;return i.has.call(s,a)||ht(r,a)&&i.has.call(s,r)||ht(l,a)&&i.has.call(s,l)||(s.add(a),Lt(s,"add",a,a)),this},set(r,s){!t&&!it(s)&&!zt(s)&&(s=pe(s));const i=pe(this),{has:l,get:a}=Oo(i);let u=l.call(i,r);u||(r=pe(r),u=l.call(i,r));const c=a.call(i,r);return i.set(r,s),u?ht(s,c)&&Lt(i,"set",r,s):Lt(i,"add",r,s),this},delete(r){const s=pe(this),{has:i,get:l}=Oo(s);let a=i.call(s,r);a||(r=pe(r),a=i.call(s,r)),l&&l.call(s,r);const u=s.delete(r);return a&&Lt(s,"delete",r,void 0),u},clear(){const r=pe(this),s=r.size!==0,i=r.clear();return s&&Lt(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Mc(r,e,t)}),n}function fr(e,t){const n=Dc(e,t);return(o,r,s)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(he(n,r)&&r in o?n:o,r,s)}const kc={get:fr(!1,!1)},Bc={get:fr(!1,!0)},$c={get:fr(!0,!1)},qc={get:fr(!0,!0)},Ra=new WeakMap,Ia=new WeakMap,Ma=new WeakMap,Da=new WeakMap;function Nc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function wo(e){return zt(e)?e:pr(e,!1,Pc,kc,Ra)}function Lc(e){return pr(e,!1,Rc,Bc,Ia)}function Es(e){return pr(e,!0,Oc,$c,Ma)}function rn(e){return pr(e,!0,Ic,qc,Da)}function pr(e,t,n,o,r){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=r.get(e);if(s)return s;const i=Nc(dc(e));if(i===0)return e;const l=new Proxy(e,i===2?o:n);return r.set(e,l),l}function _n(e){return zt(e)?_n(e.__v_raw):!!(e&&e.__v_isReactive)}function zt(e){return!!(e&&e.__v_isReadonly)}function it(e){return!!(e&&e.__v_isShallow)}function hr(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function ka(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&fa(e,"__v_skip",!0),e}const vt=e=>ge(e)?wo(e):e,jn=e=>ge(e)?Es(e):e;function ke(e){return e?e.__v_isRef===!0:!1}function F(e){return Ba(e,!1)}function gr(e){return Ba(e,!0)}function Ba(e,t){return ke(e)?e:new Fc(e,t)}class Fc{constructor(t,n){this.dep=new cr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:vt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||it(t)||zt(t);t=o?t:pe(t),ht(t,n)&&(this._rawValue=t,this._value=o?t:vt(t),this.dep.trigger())}}function Vc(e){e.dep&&e.dep.trigger()}function f(e){return ke(e)?e.value:e}function He(e){return se(e)?e():f(e)}const Hc={get:(e,t,n)=>t==="__v_raw"?e:f(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return ke(r)&&!ke(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function $a(e){return _n(e)?e:new Proxy(e,Hc)}class Uc{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new cr,{get:o,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function jc(e){return new Uc(e)}function cn(e){const t=oe(e)?new Array(e.length):{};for(const n in e)t[n]=qa(e,n);return t}class Kc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=lt(n)?n:String(n),this._raw=pe(t);let r=!0,s=t;if(!oe(t)||lt(this._key)||!ir(this._key))do r=!hr(s)||it(s);while(r&&(s=s.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=f(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ke(this._raw[this._key])){const n=this._object[this._key];if(ke(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Sc(this._raw,this._key)}}class Wc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function zc(e,t,n){return ke(e)?e:se(e)?new Wc(e):ge(e)&&arguments.length>1?qa(e,t,n):F(e)}function qa(e,t,n){return new Kc(e,t,n)}class Gc{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new cr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ao-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&_e!==this)return wa(this,!0),!0}get value(){const t=this.dep.track();return Sa(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Yc(e,t,n=!1){let o,r;return se(e)?o=e:(o=e.get,r=e.set),new Gc(o,r,n)}const Io={},jo=new WeakMap;let yn;function Jc(e,t=!1,n=yn){if(n){let o=jo.get(n);o||jo.set(n,o=[]),o.push(e)}}function Xc(e,t,n=be){const{immediate:o,deep:r,once:s,scheduler:i,augmentJob:l,call:a}=n,u=w=>r?w:it(w)||r===!1||r===0?Ft(w,1):Ft(w);let c,d,h,p,y=!1,S=!1;if(ke(e)?(d=()=>e.value,y=it(e)):_n(e)?(d=()=>u(e),y=!0):oe(e)?(S=!0,y=e.some(w=>_n(w)||it(w)),d=()=>e.map(w=>{if(ke(w))return w.value;if(_n(w))return u(w);if(se(w))return a?a(w,2):w()})):se(e)?t?d=a?()=>a(e,2):e:d=()=>{if(h){Kt();try{h()}finally{Wt()}}const w=yn;yn=c;try{return a?a(e,3,[p]):e(p)}finally{yn=w}}:d=Ot,t&&r){const w=d,R=r===!0?1/0:r;d=()=>Ft(w(),R)}const E=Qs(),m=()=>{c.stop(),E&&E.active&&Ys(E.effects,c)};if(s&&t){const w=t;t=(...R)=>{const P=w(...R);return m(),P}}let _=S?new Array(e.length).fill(Io):Io;const x=w=>{if(!(!(c.flags&1)||!c.dirty&&!w))if(t){const R=c.run();if(w||r||y||(S?R.some((P,v)=>ht(P,_[v])):ht(R,_))){h&&h();const P=yn;yn=c;try{const v=[R,_===Io?void 0:S&&_[0]===Io?[]:_,p];_=R,a?a(t,3,v):t(...v)}finally{yn=P}}}else c.run()};return l&&l(x),c=new ya(d),c.scheduler=i?()=>i(x,!1):x,p=w=>Jc(w,!1,c),h=c.onStop=()=>{const w=jo.get(c);if(w){if(a)a(w,4);else for(const R of w)R();jo.delete(c)}},t?o?x(!0):_=c.run():i?i(x.bind(null,!0),!0):c.run(),m.pause=c.pause.bind(c),m.resume=c.resume.bind(c),m.stop=m,m}function Ft(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ke(e))Ft(e.value,t,n);else if(oe(e))for(let o=0;o{Ft(o,t,n)});else if(da(e)){for(const o in e)Ft(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Ft(e[o],t,n)}return e}function _o(e,t,n,o){try{return o?e(...o):e()}catch(r){vr(r,t,n)}}function mt(e,t,n,o){if(se(e)){const r=_o(e,t,n,o);return r&&ua(r)&&r.catch(s=>{vr(s,t,n)}),r}if(oe(e)){const r=[];for(let s=0;s>>1,r=Qe[o],s=co(r);s=co(n)?Qe.push(e):Qe.splice(Zc(t),0,e),e.flags|=1,La()}}function La(){Ko||(Ko=Na.then(Va))}function ed(e){oe(e)?Fn.push(...e):sn&&e.id===-1?sn.splice(Bn+1,0,e):e.flags&1||(Fn.push(e),e.flags|=1),La()}function ki(e,t,n=xt+1){for(;nco(n)-co(o));if(Fn.length=0,sn){sn.push(...t);return}for(sn=t,Bn=0;Bne.id==null?e.flags&2?-1:1/0:e.id;function Va(e){try{for(xt=0;xt{o._d&&Yo(-1);const s=Wo(t),i=Vt.length;let l;try{l=e(...r)}finally{for(let a=Vt.length;a>i;a--)ci();Wo(s),o._d&&Yo(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function nt(e,t){if(Fe===null)return e;const n=Cr(Fe),o=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&se(t)?t.call(o&&o.proxy):t}}const td=Symbol.for("v-scx"),nd=()=>Cn(td);function yt(e,t){return mr(e,null,t)}function Ua(e,t){return mr(e,null,{flush:"post"})}function we(e,t,n){return mr(e,t,n)}function mr(e,t,n=be){const{immediate:o,deep:r,flush:s,once:i}=n,l=je({},n),a=t&&o||!t&&s!=="post";let u;if(po){if(s==="sync"){const p=nd();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!a){const p=()=>{};return p.stop=Ot,p.resume=Ot,p.pause=Ot,p}}const c=We;l.call=(p,y,S)=>mt(p,c,y,S);let d=!1;s==="post"?l.scheduler=p=>{Xe(p,c&&c.suspense)}:s!=="sync"&&(d=!0,l.scheduler=(p,y)=>{y?p():oi(p)}),l.augmentJob=p=>{t&&(p.flags|=4),d&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const h=Xc(e,t,l);return po&&(u?u.push(h):a&&h()),h}function od(e,t,n){const o=this.proxy,r=Te(e)?e.includes(".")?ja(o,e):()=>o[e]:e.bind(o,o);let s;se(t)?s=t:(s=t.handler,n=t);const i=So(this),l=mr(r,s.bind(o),n);return i(),l}function ja(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;re.__isTeleport,bn=e=>e&&(e.disabled||e.disabled===""),sd=e=>e&&(e.defer||e.defer===""),Bi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,$i=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,xs=(e,t)=>{const n=e&&e.to;return Te(n)?t?t(n):null:n},id={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,s,i,l,a,u){const{mc:c,pc:d,pbc:h,o:{insert:p,querySelector:y,createText:S,createComment:E,parentNode:m}}=u,_=bn(t.props);let{dynamicChildren:x}=t;const w=(v,C,I)=>{v.shapeFlag&16&&c(v.children,C,I,r,s,i,l,a)},R=(v=t)=>{const C=bn(v.props),I=v.target=xs(v.props,y),k=As(I,v,S,p);I&&(i!=="svg"&&Bi(I)?i="svg":i!=="mathml"&&$i(I)&&(i="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(I),C||(w(v,I,k),Zn(v,!1)))},P=v=>{const C=()=>{if(nn.get(v)===C){if(nn.delete(v),bn(v.props)){const I=m(v.el)||n;w(v,I,v.anchor),Zn(v,!0)}R(v)}};nn.set(v,C),Xe(C,s)};if(e==null){const v=t.el=S(""),C=t.anchor=S("");if(p(v,n,o),p(C,n,o),sd(t.props)||s&&s.pendingBranch){P(t);return}_&&(w(t,n,C),Zn(t,!0)),R()}else{t.el=e.el;const v=t.anchor=e.anchor,C=nn.get(e);if(C){C.flags|=8,nn.delete(e),P(t);return}t.targetStart=e.targetStart;const I=t.target=e.target,k=t.targetAnchor=e.targetAnchor,j=bn(e.props),X=j?n:I,H=j?v:k;if(i==="svg"||Bi(I)?i="svg":(i==="mathml"||$i(I))&&(i="mathml"),x?(h(e.dynamicChildren,x,X,r,s,i,l),ui(e,t,!0)):a||d(e,t,X,H,r,s,i,l,!1),_)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Mo(t,n,v,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const z=xs(t.props,y);z&&(t.target=z,Mo(t,z,null,u,0))}else j&&Mo(t,I,k,u,1);Zn(t,_)}},remove(e,t,n,{um:o,o:{remove:r}},s){const{shapeFlag:i,children:l,anchor:a,targetStart:u,targetAnchor:c,target:d,props:h}=e,p=bn(h),y=s||!p,S=nn.get(e);if(S&&(S.flags|=8,nn.delete(e)),d&&(r(u),r(c)),s&&r(a),!S&&(p||d)&&i&16)for(let E=0;Eso(S,t&&(oe(t)?t[E]:t),n,o,r));return}if(Vn(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&so(e,t,n,o.component.subTree);return}const s=o.shapeFlag&4?Cr(o.component):o.el,i=r?null:s,{i:l,r:a}=e,u=t&&t.r,c=l.refs===be?l.refs={}:l.refs,d=l.setupState,h=pe(d),p=d===be?la:S=>qi(c,S)?!1:he(h,S),y=(S,E)=>!(E&&qi(c,E));if(u!=null&&u!==a){if(Ni(t),Te(u))c[u]=null,p(u)&&(d[u]=null);else if(ke(u)){const S=t;y(u,S.k)&&(u.value=null),S.k&&(c[S.k]=null)}}if(se(a))_o(a,l,12,[i,c]);else{const S=Te(a),E=ke(a);if(S||E){const m=()=>{if(e.f){const _=S?p(a)?d[a]:c[a]:y()||!e.k?a.value:c[e.k];if(r)oe(_)&&Ys(_,s);else if(oe(_))_.includes(s)||_.push(s);else if(S)c[a]=[s],p(a)&&(d[a]=c[a]);else{const x=[s];y(a,e.k)&&(a.value=x),e.k&&(c[e.k]=x)}}else S?(c[a]=i,p(a)&&(d[a]=i)):E&&(y(a,e.k)&&(a.value=i),e.k&&(c[e.k]=i))};if(i){const _=()=>{m(),zo.delete(e)};_.id=-1,zo.set(e,_),Xe(_,n)}else Ni(e),m()}}}function Ni(e){const t=zo.get(e);t&&(t.flags|=8,zo.delete(e))}ur().requestIdleCallback;ur().cancelIdleCallback;const Vn=e=>!!e.type.__asyncLoader,za=e=>e.type.__isKeepAlive;function ud(e,t){Ga(e,"a",t)}function cd(e,t){Ga(e,"da",t)}function Ga(e,t,n=We){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(yr(t,o,n),n){let r=n.parent;for(;r&&r.parent;)za(r.parent.vnode)&&dd(o,t,n,r),r=r.parent}}function dd(e,t,n,o){const r=yr(t,e,o,!0);Xt(()=>{Ys(o[t],r)},n)}function yr(e,t,n=We,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{Kt();const l=So(n),a=mt(t,n,e,i);return l(),Wt(),a});return o?r.unshift(s):r.push(s),s}}const Jt=e=>(t,n=We)=>{(!po||e==="sp")&&yr(e,(...o)=>t(...o),n)},fd=Jt("bm"),Re=Jt("m"),pd=Jt("bu"),Ya=Jt("u"),br=Jt("bum"),Xt=Jt("um"),hd=Jt("sp"),gd=Jt("rtg"),vd=Jt("rtc");function md(e,t=We){yr("ec",e,t)}const yd="components",Ja=Symbol.for("v-ndc");function Xa(e){return Te(e)?bd(yd,e,!1)||e:e||Ja}function bd(e,t,n=!0,o=!1){const r=Fe||We;if(r){const s=r.type;{const l=tf(s,!1);if(l&&(l===t||l===Ve(t)||l===ar(Ve(t))))return s}const i=Li(r[e]||s[e],t)||Li(r.appContext[e],t);return!i&&o?s:i}}function Li(e,t){return e&&(e[t]||e[Ve(t)]||e[ar(Ve(t))])}function Co(e,t,n,o){let r;const s=n,i=oe(e);if(i||Te(e)){const l=i&&_n(e);let a=!1,u=!1;l&&(a=!it(e),u=zt(e),e=dr(e)),r=new Array(e.length);for(let c=0,d=e.length;ct(l,a,void 0,s));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,u=l.length;a0;return D(),G(Ae,null,[L("slot",u,o&&o())],c?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const l=Vt.length;D();let a;try{const u=i&&Qa(i(n)),c=n.key||s||u&&u.key;a=G(Ae,{key:(c&&!lt(c)?c:`_${t}`)+(!u&&o?"_fb":"")},u||(o?o():[]),u&&e._===1?64:-2)}catch(u){for(let c=Vt.length;c>l;c--)ci();throw u}finally{i&&i._c&&(i._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function Qa(e){return e.some(t=>fo(t)?!(t.type===Rt||t.type===Ae&&!Qa(t.children)):!0)?e:null}const Ts=e=>e?mu(e)?Cr(e):Ts(e.parent):null,io=je(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ts(e.parent),$root:e=>Ts(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>eu(e),$forceUpdate:e=>e.f||(e.f=()=>{oi(e.update)}),$nextTick:e=>e.n||(e.n=Le.bind(e.proxy)),$watch:e=>od.bind(e)}),qr=(e,t)=>e!==be&&!e.__isScriptSetup&&he(e,t),wd={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:s,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(qr(o,t))return i[t]=1,o[t];if(r!==be&&he(r,t))return i[t]=2,r[t];if(he(s,t))return i[t]=3,s[t];if(n!==be&&he(n,t))return i[t]=4,n[t];Os&&(i[t]=0)}}const u=io[t];let c,d;if(u)return t==="$attrs"&&Ke(e.attrs,"get",""),u(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==be&&he(n,t))return i[t]=4,n[t];if(d=a.config.globalProperties,he(d,t))return d[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return qr(r,t)?(r[t]=n,!0):o!==be&&he(o,t)?(o[t]=n,!0):he(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,props:s,type:i}},l){let a;return!!(n[l]||e!==be&&l[0]!=="$"&&he(e,l)||qr(t,l)||he(s,l)||he(o,l)||he(io,l)||he(r.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ps(e){return oe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function _d(e,t){const n=Ps(e);for(const o in t){if(o.startsWith("__skip"))continue;let r=n[o];r?oe(r)||se(r)?r=n[o]={type:r,default:t[o]}:r.default=t[o]:r===null&&(r=n[o]={default:t[o]}),r&&t[`__skip_${o}`]&&(r.skipFactory=!0)}return n}let Os=!0;function Cd(e){const t=eu(e),n=e.proxy,o=e.ctx;Os=!1,t.beforeCreate&&Fi(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:i,watch:l,provide:a,inject:u,created:c,beforeMount:d,mounted:h,beforeUpdate:p,updated:y,activated:S,deactivated:E,beforeDestroy:m,beforeUnmount:_,destroyed:x,unmounted:w,render:R,renderTracked:P,renderTriggered:v,errorCaptured:C,serverPrefetch:I,expose:k,inheritAttrs:j,components:X,directives:H,filters:z}=t;if(u&&Sd(u,o,null),i)for(const ue in i){const ie=i[ue];se(ie)&&(o[ue]=ie.bind(n))}if(r){const ue=r.call(n,n);ge(ue)&&(e.data=wo(ue))}if(Os=!0,s)for(const ue in s){const ie=s[ue],Ee=se(ie)?ie.bind(n,n):se(ie.get)?ie.get.bind(n,n):Ot,Ge=!se(ie)&&se(ie.set)?ie.set.bind(n):Ot,tt=W({get:Ee,set:Ge});Object.defineProperty(o,ue,{enumerable:!0,configurable:!0,get:()=>tt.value,set:Be=>tt.value=Be})}if(l)for(const ue in l)Za(l[ue],o,n,ue);if(a){const ue=se(a)?a.call(n):a;Reflect.ownKeys(ue).forEach(ie=>{ri(ie,ue[ie])})}c&&Fi(c,e,"c");function le(ue,ie){oe(ie)?ie.forEach(Ee=>ue(Ee.bind(n))):ie&&ue(ie.bind(n))}if(le(fd,d),le(Re,h),le(pd,p),le(Ya,y),le(ud,S),le(cd,E),le(md,C),le(vd,P),le(gd,v),le(br,_),le(Xt,w),le(hd,I),oe(k))if(k.length){const ue=e.exposed||(e.exposed={});k.forEach(ie=>{Object.defineProperty(ue,ie,{get:()=>n[ie],set:Ee=>n[ie]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});R&&e.render===Ot&&(e.render=R),j!=null&&(e.inheritAttrs=j),X&&(e.components=X),H&&(e.directives=H),I&&Wa(e)}function Sd(e,t,n=Ot){oe(e)&&(e=Rs(e));for(const o in e){const r=e[o];let s;ge(r)?"default"in r?s=Cn(r.from||o,r.default,!0):s=Cn(r.from||o):s=Cn(r),ke(s)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[o]=s}}function Fi(e,t,n){mt(oe(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Za(e,t,n,o){let r=o.includes(".")?ja(n,o):()=>n[o];if(Te(e)){const s=t[e];se(s)&&we(r,s)}else if(se(e))we(r,e.bind(n));else if(ge(e))if(oe(e))e.forEach(s=>Za(s,t,n,o));else{const s=se(e.handler)?e.handler.bind(n):t[e.handler];se(s)&&we(r,s,e)}}function eu(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!r.length&&!n&&!o?a=t:(a={},r.length&&r.forEach(u=>Go(a,u,i,!0)),Go(a,t,i)),ge(t)&&s.set(t,a),a}function Go(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&Go(e,s,n,!0),r&&r.forEach(i=>Go(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const l=Ed[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ed={data:Vi,props:Hi,emits:Hi,methods:eo,computed:eo,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:eo,directives:eo,watch:Ad,provide:Vi,inject:xd};function Vi(e,t){return t?e?function(){return je(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function xd(e,t){return eo(Rs(e),Rs(t))}function Rs(e){if(oe(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ve(t)}Modifiers`]||e[`${un(t)}Modifiers`];function Rd(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||be;let r=n;const s=t.startsWith("update:"),i=s&&Od(o,t.slice(7));i&&(i.trim&&(r=n.map(c=>Te(c)?c.trim():c)),i.number&&(r=n.map(Js)));let l,a=o[l=Lo(t)]||o[l=Lo(Ve(t))];!a&&s&&(a=o[l=Lo(un(t))]),a&&mt(a,e,6,r);const u=o[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,mt(u,e,6,r)}}const Id=new WeakMap;function nu(e,t,n=!1){const o=n?Id:t.emitsCache,r=o.get(e);if(r!==void 0)return r;const s=e.emits;let i={},l=!1;if(!se(e)){const a=u=>{const c=nu(u,t,!0);c&&(l=!0,je(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(ge(e)&&o.set(e,null),null):(oe(s)?s.forEach(a=>i[a]=null):je(i,s),ge(e)&&o.set(e,i),i)}function wr(e,t){return!e||!rr(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,un(t))||he(e,t))}function Ui(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[s],slots:i,attrs:l,emit:a,render:u,renderCache:c,props:d,data:h,setupState:p,ctx:y,inheritAttrs:S}=e,E=Wo(e);let m,_;try{if(n.shapeFlag&4){const w=r||o,R=w;m=Tt(u.call(R,w,c,d,p,h,y)),_=l}else{const w=t;m=Tt(w.length>1?w(d,{attrs:l,slots:i,emit:a}):w(d,null)),_=t.props?l:Md(l)}}catch(w){Vt.length=0,vr(w,e,1),m=L(Rt)}let x=m;if(_&&S!==!1){const w=Object.keys(_),{shapeFlag:R}=x;w.length&&R&7&&(s&&w.some(sr)&&(_=Dd(_,s)),x=En(x,_,!1,!0))}return n.dirs&&(x=En(x,null,!1,!0),x.dirs=x.dirs?x.dirs.concat(n.dirs):n.dirs),n.transition&&ii(x,n.transition),m=x,Wo(E),m}const Md=e=>{let t;for(const n in e)(n==="class"||n==="style"||rr(n))&&((t||(t={}))[n]=e[n]);return t},Dd=(e,t)=>{const n={};for(const o in e)(!sr(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function kd(e,t,n){const{props:o,children:r,component:s}=e,{props:i,children:l,patchFlag:a}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return o?ji(o,i,u):!!i;if(a&8){const c=t.dynamicProps;for(let d=0;dObject.create(ru),iu=e=>Object.getPrototypeOf(e)===ru;function $d(e,t,n,o=!1){const r={},s=su();e.propsDefaults=Object.create(null),lu(e,t,r,s);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:Lc(r):e.type.props?e.props=r:e.props=s,e.attrs=s}function qd(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,l=pe(r),[a]=e.propsOptions;let u=!1;if((o||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let d=0;d{a=!0;const[h,p]=au(d,t,!0);je(i,h),p&&l.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!a)return ge(e)&&o.set(e,Nn),Nn;if(oe(s))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",ai=e=>oe(e)?e.map(Tt):[Tt(e)],Ld=(e,t,n)=>{if(t._n)return t;const o=B((...r)=>ai(t(...r)),n);return o._c=!1,o},uu=(e,t,n)=>{const o=e._ctx;for(const r in e){if(li(r))continue;const s=e[r];if(se(s))t[r]=Ld(r,s,o);else if(s!=null){const i=ai(s);t[r]=()=>i}}},cu=(e,t)=>{const n=ai(t);e.slots.default=()=>n},du=(e,t,n)=>{for(const o in t)(n||!li(o))&&(e[o]=t[o])},Fd=(e,t,n)=>{const o=e.slots=su();if(e.vnode.shapeFlag&32){const r=t._;r?(du(o,t,n),n&&fa(o,"_",r,!0)):uu(t,o)}else t&&cu(e,t)},Vd=(e,t,n)=>{const{vnode:o,slots:r}=e;let s=!0,i=be;if(o.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:du(r,t,n):(s=!t.$stable,uu(t,r)),i=t}else t&&(cu(e,t),i={default:1});if(s)for(const l in r)!li(l)&&i[l]==null&&delete r[l]},Xe=Wd;function Hd(e){return Ud(e)}function Ud(e,t){const n=ur();n.__VUE__=!0;const{insert:o,remove:r,patchProp:s,createElement:i,createText:l,createComment:a,setText:u,setElementText:c,parentNode:d,nextSibling:h,setScopeId:p=Ot,insertStaticContent:y}=e,S=(b,A,M,V=null,N=null,$=null,Y=void 0,K=null,U=!!A.dynamicChildren)=>{if(b===A)return;b&&!Jn(b,A)&&(V=Pe(b),Be(b,N,$,!0),b=null),A.patchFlag===-2&&(U=!1,A.dynamicChildren=null);const{type:q,ref:te,shapeFlag:Q}=A;switch(q){case _r:E(b,A,M,V);break;case Rt:m(b,A,M,V);break;case Lr:b==null&&_(A,M,V,Y);break;case Ae:X(b,A,M,V,N,$,Y,K,U);break;default:Q&1?R(b,A,M,V,N,$,Y,K,U):Q&6?H(b,A,M,V,N,$,Y,K,U):(Q&64||Q&128)&&q.process(b,A,M,V,N,$,Y,K,U,qe)}te!=null&&N?so(te,b&&b.ref,$,A||b,!A):te==null&&b&&b.ref!=null&&so(b.ref,null,$,b,!0)},E=(b,A,M,V)=>{if(b==null)o(A.el=l(A.children),M,V);else{const N=A.el=b.el;A.children!==b.children&&u(N,A.children)}},m=(b,A,M,V)=>{b==null?o(A.el=a(A.children||""),M,V):A.el=b.el},_=(b,A,M,V)=>{[b.el,b.anchor]=y(b.children,A,M,V,b.el,b.anchor)},x=({el:b,anchor:A},M,V)=>{let N;for(;b&&b!==A;)N=h(b),o(b,M,V),b=N;o(A,M,V)},w=({el:b,anchor:A})=>{let M;for(;b&&b!==A;)M=h(b),r(b),b=M;r(A)},R=(b,A,M,V,N,$,Y,K,U)=>{if(A.type==="svg"?Y="svg":A.type==="math"&&(Y="mathml"),b==null)P(A,M,V,N,$,Y,K,U);else{const q=b.el&&b.el._isVueCE?b.el:null;try{q&&q._beginPatch(),I(b,A,N,$,Y,K,U)}finally{q&&q._endPatch()}}},P=(b,A,M,V,N,$,Y,K)=>{let U,q;const{props:te,shapeFlag:Q,transition:ee,dirs:re}=b;if(U=b.el=i(b.type,$,te&&te.is,te),Q&8?c(U,b.children):Q&16&&C(b.children,U,null,V,N,Nr(b,$),Y,K),re&&gn(b,null,V,"created"),v(U,b,b.scopeId,Y,V),te){for(const ye in te)ye!=="value"&&!no(ye)&&s(U,ye,null,te[ye],$,V);"value"in te&&s(U,"value",null,te.value,$),(q=te.onVnodeBeforeMount)&&St(q,V,b)}re&&gn(b,null,V,"beforeMount");const fe=jd(N,ee);fe&&ee.beforeEnter(U),o(U,A,M),((q=te&&te.onVnodeMounted)||fe||re)&&Xe(()=>{q&&St(q,V,b),fe&&ee.enter(U),re&&gn(b,null,V,"mounted")},N)},v=(b,A,M,V,N)=>{if(M&&p(b,M),V)for(let $=0;${for(let q=U;q{const K=A.el=b.el;let{patchFlag:U,dynamicChildren:q,dirs:te}=A;U|=b.patchFlag&16;const Q=b.props||be,ee=A.props||be;let re;if(M&&vn(M,!1),(re=ee.onVnodeBeforeUpdate)&&St(re,M,A,b),te&&gn(A,b,M,"beforeUpdate"),M&&vn(M,!0),q&&(!b.dynamicChildren||b.dynamicChildren.length!==q.length)&&(U=0,Y=!1,q=null),(Q.innerHTML&&ee.innerHTML==null||Q.textContent&&ee.textContent==null)&&c(K,""),q?k(b.dynamicChildren,q,K,M,V,Nr(A,N),$):Y||ie(b,A,K,null,M,V,Nr(A,N),$,!1),U>0){if(U&16)j(K,Q,ee,M,N);else if(U&2&&Q.class!==ee.class&&s(K,"class",null,ee.class,N),U&4&&s(K,"style",Q.style,ee.style,N),U&8){const fe=A.dynamicProps;for(let ye=0;ye{re&&St(re,M,A,b),te&&gn(A,b,M,"updated")},V)},k=(b,A,M,V,N,$,Y)=>{for(let K=0;K{if(A!==M){if(A!==be)for(const $ in A)!no($)&&!($ in M)&&s(b,$,A[$],null,N,V);for(const $ in M){if(no($))continue;const Y=M[$],K=A[$];Y!==K&&$!=="value"&&s(b,$,K,Y,N,V)}"value"in M&&s(b,"value",A.value,M.value,N)}},X=(b,A,M,V,N,$,Y,K,U)=>{const q=A.el=b?b.el:l(""),te=A.anchor=b?b.anchor:l("");let{patchFlag:Q,dynamicChildren:ee,slotScopeIds:re}=A;re&&(K=K?K.concat(re):re),b==null?(o(q,M,V),o(te,M,V),C(A.children||[],M,te,N,$,Y,K,U)):Q>0&&Q&64&&ee&&b.dynamicChildren&&b.dynamicChildren.length===ee.length?(k(b.dynamicChildren,ee,M,N,$,Y,K),(A.key!=null||N&&A===N.subTree)&&ui(b,A,!0)):ie(b,A,M,te,N,$,Y,K,U)},H=(b,A,M,V,N,$,Y,K,U)=>{A.slotScopeIds=K,b==null?A.shapeFlag&512?N.ctx.activate(A,M,V,Y,U):z(A,M,V,N,$,Y,U):ve(b,A,U)},z=(b,A,M,V,N,$,Y)=>{const K=b.component=Jd(b,V,N);if(za(b)&&(K.ctx.renderer=qe),Xd(K,!1,Y),K.asyncDep){if(N&&N.registerDep(K,le,Y),!b.el){const U=K.subTree=L(Rt);m(null,U,A,M),b.placeholder=U.el}}else le(K,b,A,M,N,$,Y)},ve=(b,A,M)=>{const V=A.component=b.component;if(kd(b,A,M))if(V.asyncDep&&!V.asyncResolved){ue(V,A,M);return}else V.next=A,V.update();else A.el=b.el,V.vnode=A},le=(b,A,M,V,N,$,Y)=>{const K=()=>{if(b.isMounted){let{next:Q,bu:ee,u:re,parent:fe,vnode:ye}=b;{const _t=fu(b);if(_t){Q&&(Q.el=ye.el,ue(b,Q,Y)),_t.asyncDep.then(()=>{Xe(()=>{b.isUnmounted||q()},N)});return}}let me=Q,Ie;vn(b,!1),Q?(Q.el=ye.el,ue(b,Q,Y)):Q=ye,ee&&Fo(ee),(Ie=Q.props&&Q.props.onVnodeBeforeUpdate)&&St(Ie,fe,Q,ye),vn(b,!0);const Ne=Ui(b),wt=b.subTree;b.subTree=Ne,S(wt,Ne,d(wt.el),Pe(wt),b,N,$),Q.el=Ne.el,me===null&&Bd(b,Ne.el),re&&Xe(re,N),(Ie=Q.props&&Q.props.onVnodeUpdated)&&Xe(()=>St(Ie,fe,Q,ye),N)}else{let Q;const{el:ee,props:re}=A,{bm:fe,m:ye,parent:me,root:Ie,type:Ne}=b,wt=Vn(A);vn(b,!1),fe&&Fo(fe),!wt&&(Q=re&&re.onVnodeBeforeMount)&&St(Q,me,A),vn(b,!0);{Ie.ce&&Ie.ce._hasShadowRoot()&&Ie.ce._injectChildStyle(Ne,b.parent?b.parent.type:void 0);const _t=b.subTree=Ui(b);S(null,_t,M,V,b,N,$),A.el=_t.el}if(ye&&Xe(ye,N),!wt&&(Q=re&&re.onVnodeMounted)){const _t=A;Xe(()=>St(Q,me,_t),N)}(A.shapeFlag&256||me&&Vn(me.vnode)&&me.vnode.shapeFlag&256)&&b.a&&Xe(b.a,N),b.isMounted=!0,A=M=V=null}};b.scope.on();const U=b.effect=new ya(K);b.scope.off();const q=b.update=U.run.bind(U),te=b.job=U.runIfDirty.bind(U);te.i=b,te.id=b.uid,U.scheduler=()=>oi(te),vn(b,!0),q()},ue=(b,A,M)=>{A.component=b;const V=b.vnode.props;b.vnode=A,b.next=null,qd(b,A.props,V,M),Vd(b,A.children,M),Kt(),ki(b),Wt()},ie=(b,A,M,V,N,$,Y,K,U=!1)=>{const q=b&&b.children,te=b?b.shapeFlag:0,Q=A.children,{patchFlag:ee,shapeFlag:re}=A;if(ee>0){if(ee&128){Ge(q,Q,M,V,N,$,Y,K,U);return}else if(ee&256){Ee(q,Q,M,V,N,$,Y,K,U);return}}re&8?(te&16&&Bt(q,N,$),Q!==q&&c(M,Q)):te&16?re&16?Ge(q,Q,M,V,N,$,Y,K,U):Bt(q,N,$,!0):(te&8&&c(M,""),re&16&&C(Q,M,V,N,$,Y,K,U))},Ee=(b,A,M,V,N,$,Y,K,U)=>{b=b||Nn,A=A||Nn;const q=b.length,te=A.length,Q=Math.min(q,te);let ee;for(ee=0;eete?Bt(b,N,$,!0,!1,Q):C(A,M,V,N,$,Y,K,U,Q)},Ge=(b,A,M,V,N,$,Y,K,U)=>{let q=0;const te=A.length;let Q=b.length-1,ee=te-1;for(;q<=Q&&q<=ee;){const re=b[q],fe=A[q]=U?Nt(A[q]):Tt(A[q]);if(Jn(re,fe))S(re,fe,M,null,N,$,Y,K,U);else break;q++}for(;q<=Q&&q<=ee;){const re=b[Q],fe=A[ee]=U?Nt(A[ee]):Tt(A[ee]);if(Jn(re,fe))S(re,fe,M,null,N,$,Y,K,U);else break;Q--,ee--}if(q>Q){if(q<=ee){const re=ee+1,fe=reee)for(;q<=Q;)Be(b[q],N,$,!0),q++;else{const re=q,fe=q,ye=new Map;for(q=fe;q<=ee;q++){const rt=A[q]=U?Nt(A[q]):Tt(A[q]);rt.key!=null&&ye.set(rt.key,q)}let me,Ie=0;const Ne=ee-fe+1;let wt=!1,_t=0;const Gn=new Array(Ne);for(q=0;q=Ne){Be(rt,N,$,!0);continue}let Ct;if(rt.key!=null)Ct=ye.get(rt.key);else for(me=fe;me<=ee;me++)if(Gn[me-fe]===0&&Jn(rt,A[me])){Ct=me;break}Ct===void 0?Be(rt,N,$,!0):(Gn[Ct-fe]=q+1,Ct>=_t?_t=Ct:wt=!0,S(rt,A[Ct],M,null,N,$,Y,K,U),Ie++)}const Ti=wt?Kd(Gn):Nn;for(me=Ti.length-1,q=Ne-1;q>=0;q--){const rt=fe+q,Ct=A[rt],Pi=A[rt+1],Oi=rt+1{const{el:$,type:Y,transition:K,children:U,shapeFlag:q}=b;if(q&6){tt(b.component.subTree,A,M,V);return}if(q&128){b.suspense.move(A,M,V);return}if(q&64){Y.move(b,A,M,qe);return}if(Y===Ae){o($,A,M);for(let Q=0;QK.enter($),N));else{const{leave:Q,delayLeave:ee,afterLeave:re}=K,fe=()=>{b.ctx.isUnmounted?r($):o($,A,M)},ye=()=>{const me=$._isLeaving||!!$[$r];$._isLeaving&&$[$r](!0),K.persisted&&!me?fe():Q($,()=>{fe(),re&&re()})};ee?ee($,fe,ye):ye()}else o($,A,M)},Be=(b,A,M,V=!1,N=!1)=>{const{type:$,props:Y,ref:K,children:U,dynamicChildren:q,shapeFlag:te,patchFlag:Q,dirs:ee,cacheIndex:re,memo:fe}=b;if(Q===-2&&(N=!1),K!=null&&(Kt(),so(K,null,M,b,!0),Wt()),re!=null&&(A.renderCache[re]=void 0),te&256){A.ctx.deactivate(b);return}const ye=te&1&&ee,me=!Vn(b);let Ie;if(me&&(Ie=Y&&Y.onVnodeBeforeUnmount)&&St(Ie,A,b),te&6)hn(b.component,M,V);else{if(te&128){b.suspense.unmount(M,V);return}ye&&gn(b,null,A,"beforeUnmount"),te&64?b.type.remove(b,A,M,qe,V):q&&!q.hasOnce&&($!==Ae||Q>0&&Q&64)?Bt(q,A,M,!1,!0):($===Ae&&Q&384||!N&&te&16)&&Bt(U,A,M),V&&Zt(b)}const Ne=fe!=null&&re==null;(me&&(Ie=Y&&Y.onVnodeUnmounted)||ye||Ne)&&Xe(()=>{Ie&&St(Ie,A,b),ye&&gn(b,null,A,"unmounted"),Ne&&(b.el=null)},M)},Zt=b=>{const{type:A,el:M,anchor:V,transition:N}=b;if(A===Ae){en(M,V);return}if(A===Lr){w(b);return}const $=()=>{r(M),N&&!N.persisted&&N.afterLeave&&N.afterLeave()};if(b.shapeFlag&1&&N&&!N.persisted){const{leave:Y,delayLeave:K}=N,U=()=>Y(M,$);K?K(b.el,$,U):U()}else $()},en=(b,A)=>{let M;for(;b!==A;)M=h(b),r(b),b=M;r(A)},hn=(b,A,M)=>{const{bum:V,scope:N,job:$,subTree:Y,um:K,m:U,a:q}=b;Wi(U),Wi(q),V&&Fo(V),N.stop(),$&&($.flags|=8,Be(Y,b,A,M)),K&&Xe(K,A),Xe(()=>{b.isUnmounted=!0},A)},Bt=(b,A,M,V=!1,N=!1,$=0)=>{for(let Y=$;Y{if(b.shapeFlag&6)return Pe(b.component.subTree);if(b.shapeFlag&128)return b.suspense.next();const A=h(b.anchor||b.el),M=A&&A[Ka];return M?h(M):A};let Oe=!1;const $e=(b,A,M)=>{let V;b==null?A._vnode&&(Be(A._vnode,null,null,!0),V=A._vnode.component):S(A._vnode||null,b,A,null,null,null,M),A._vnode=b,Oe||(Oe=!0,ki(V),Fa(),Oe=!1)},qe={p:S,um:Be,m:tt,r:Zt,mt:z,mc:C,pc:ie,pbc:k,n:Pe,o:e};return{render:$e,hydrate:void 0,createApp:Pd($e)}}function Nr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function vn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function jd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ui(e,t,n=!1){const o=e.children,r=t.children;if(oe(o)&&oe(r))for(let s=0;s>1,e[n[l]]0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function fu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:fu(t)}function Wi(e){if(e)for(let t=0;te.__isSuspense;function Wd(e,t){t&&t.pendingBranch?oe(e)?t.effects.push(...e):t.effects.push(e):ed(e)}const Ae=Symbol.for("v-fgt"),_r=Symbol.for("v-txt"),Rt=Symbol.for("v-cmt"),Lr=Symbol.for("v-stc"),Vt=[];let Ze=null;function D(e=!1){Vt.push(Ze=e?null:[])}function ci(){Vt.pop(),Ze=Vt[Vt.length-1]||null}let Kn=1;function Yo(e,t=!1){Kn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function gu(e){return e.dynamicChildren=Kn>0?Ze||Nn:null,ci(),Kn>0&&Ze&&Ze.push(e),e}function ae(e,t,n,o,r,s){return gu(g(e,t,n,o,r,s,!0))}function G(e,t,n,o,r){return gu(L(e,t,n,o,r,!0))}function fo(e){return e?e.__v_isVNode===!0:!1}function Jn(e,t){return e.type===t.type&&e.key===t.key}const vu=({key:e})=>e??null,Vo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Te(e)||ke(e)||se(e)?{i:Fe,r:e,k:t,f:!!n}:e:null);function g(e,t=null,n=null,o=0,r=null,s=e===Ae?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vu(t),ref:t&&Vo(t),scopeId:Ha,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Fe};return l?(Jo(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=Te(n)?8:16),Kn>0&&!i&&Ze&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Ze.push(a),a}const L=zd;function zd(e,t=null,n=null,o=0,r=null,s=!1){if((!e||e===Ja)&&(e=Rt),fo(e)){const l=En(e,t,!0);return n&&Jo(l,n),Kn>0&&!s&&Ze&&(l.shapeFlag&6?Ze[Ze.indexOf(e)]=l:Ze.push(l)),l.patchFlag=-2,l}if(nf(e)&&(e=e.__vccOpts),t){t=ct(t);let{class:l,style:a}=t;l&&!Te(l)&&(t.class=De(l)),ge(a)&&(hr(a)&&!oe(a)&&(a=je({},a)),t.style=st(a))}const i=Te(e)?1:hu(e)?128:rd(e)?64:ge(e)?4:se(e)?2:0;return g(e,t,n,o,r,i,s,!0)}function ct(e){return e?hr(e)||iu(e)?je({},e):e:null}function En(e,t,n=!1,o=!1){const{props:r,ref:s,patchFlag:i,children:l,transition:a}=e,u=t?ce(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&vu(u),ref:t&&t.ref?n&&s?oe(s)?s.concat(Vo(t)):[s,Vo(t)]:Vo(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ae?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&En(e.ssContent),ssFallback:e.ssFallback&&En(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&ii(c,a.clone(c)),c}function ne(e=" ",t=0){return L(_r,null,e,t)}function Ce(e="",t=!1){return t?(D(),G(Rt,null,e)):L(Rt,null,e)}function Tt(e){return e==null||typeof e=="boolean"?L(Rt):oe(e)?L(Ae,null,e.slice()):fo(e)?Nt(e):L(_r,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:En(e)}function Jo(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(oe(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Jo(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!iu(t)?t._ctx=Fe:r===3&&Fe&&(Fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(se(t)){if(o&65){Jo(e,{default:t});return}t={default:t,_ctx:Fe},n=32}else t=String(t),o&64?(n=16,t=[ne(t)]):n=8;e.children=t,e.shapeFlag|=n}function ce(...e){const t={};for(let n=0;nWe||Fe;let Xo,Ms;{const e=ur(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),s=>{r.length>1?r.forEach(i=>i(s)):r[0](s)}};Xo=t("__VUE_INSTANCE_SETTERS__",n=>We=n),Ms=t("__VUE_SSR_SETTERS__",n=>po=n)}const So=e=>{const t=We;return Xo(e),e.scope.on(),()=>{e.scope.off(),Xo(t)}},zi=()=>{We&&We.scope.off(),Xo(null)};function mu(e){return e.vnode.shapeFlag&4}let po=!1;function Xd(e,t=!1,n=!1){t&&Ms(t);const{props:o,children:r}=e.vnode,s=mu(e);$d(e,o,s,t),Fd(e,r,n||t);const i=s?Qd(e,t):void 0;return t&&Ms(!1),i}function Qd(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,wd);const{setup:o}=n;if(o){Kt();const r=e.setupContext=o.length>1?ef(e):null,s=So(e),i=_o(o,e,0,[e.props,r]),l=ua(i);if(Wt(),s(),(l||e.sp)&&!Vn(e)&&Wa(e),l){if(i.then(zi,zi),t)return i.then(a=>{Gi(e,a)}).catch(a=>{vr(a,e,0)});e.asyncDep=i}else Gi(e,i)}else yu(e)}function Gi(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=$a(t)),yu(e)}function yu(e,t,n){const o=e.type;e.render||(e.render=o.render||Ot);{const r=So(e);Kt();try{Cd(e)}finally{Wt(),r()}}}const Zd={get(e,t){return Ke(e,"get",""),e[t]}};function ef(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Zd),slots:e.slots,emit:e.emit,expose:t}}function Cr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy($a(ka(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in io)return io[n](e)},has(t,n){return n in t||n in io}})):e.proxy}function tf(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function nf(e){return se(e)&&"__vccOpts"in e}const W=(e,t)=>Yc(e,t,po);function Ht(e,t,n){try{Yo(-1);const o=arguments.length;return o===2?ge(t)&&!oe(t)?fo(t)?L(e,null,[t]):L(e,t):L(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&fo(n)&&(n=[n]),L(e,t,n))}finally{Yo(1)}}function of(e,t,n,o){const r=n[o];if(r&&rf(r,e))return r;const s=t();return s.memo=e.slice(),s.cacheIndex=o,n[o]=s}function rf(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let o=0;o0&&Ze&&Ze.push(e),!0}const sf="3.5.40";let Ds;const Yi=typeof window<"u"&&window.trustedTypes;if(Yi)try{Ds=Yi.createPolicy("vue",{createHTML:e=>e})}catch{}const bu=Ds?e=>Ds.createHTML(e):e=>e,lf="http://www.w3.org/2000/svg",af="http://www.w3.org/1998/Math/MathML",qt=typeof document<"u"?document:null,Ji=qt&&qt.createElement("template"),uf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?qt.createElementNS(lf,e):t==="mathml"?qt.createElementNS(af,e):n?qt.createElement(e,{is:n}):qt.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>qt.createTextNode(e),createComment:e=>qt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===s||!(r=r.nextSibling)););else{Ji.innerHTML=bu(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const l=Ji.content;if(o==="svg"||o==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},cf=Symbol("_vtc");function df(e,t,n){const o=e[cf];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Qo=Symbol("_vod"),wu=Symbol("_vsh"),ks={name:"show",beforeMount(e,{value:t},{transition:n}){e[Qo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Xn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Xn(e,!0),o.enter(e)):o.leave(e,()=>{Xn(e,!1)}):Xn(e,t))},beforeUnmount(e,{value:t}){Xn(e,t)}};function Xn(e,t){e.style.display=t?e[Qo]:"none",e[wu]=!t}const ff=Symbol(""),pf=/(?:^|;)\s*display\s*:/;function hf(e,t,n){const o=e.style,r=Te(n);let s=!1;if(n&&!r){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&to(o,l,"")}else for(const i in t)n[i]==null&&to(o,i,"");for(const i in n){i==="display"&&(s=!0);const l=n[i];l!=null?vf(e,i,!Te(t)&&t?t[i]:void 0,l)||to(o,i,l):to(o,i,"")}}else if(r){if(t!==n){const i=o[ff];i&&(n+=";"+i),o.cssText=n,s=pf.test(n)}}else t&&e.removeAttribute("style");Qo in e&&(e[Qo]=s?o.display:"",e[wu]&&(o.display="none"))}const Xi=/\s*!important$/;function to(e,t,n){if(oe(n))n.forEach(o=>to(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=gf(e,t);Xi.test(n)?e.setProperty(un(o),n.replace(Xi,""),"important"):e[o]=n}}const Qi=["Webkit","Moz","ms"],Fr={};function gf(e,t){const n=Fr[t];if(n)return n;let o=Ve(t);if(o!=="filter"&&o in e)return Fr[t]=o;o=ar(o);for(let r=0;rVr||(Cf.then(()=>Vr=0),Vr=Date.now());function Ef(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const r=n.value;if(oe(r)){const s=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{s.call(o),o._stopped=!0};const i=r.slice(),l=[o];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,xf=(e,t,n,o,r,s)=>{const i=r==="svg";t==="class"?df(e,o,i):t==="style"?hf(e,n,o):rr(t)?sr(t)||yf(e,t,n,o,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Af(e,t,o,i))?(tl(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&el(e,t,o,i,s,t!=="value")):e._isVueCE&&(Tf(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Te(o)))?tl(e,Ve(t),o,s,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),el(e,t,o,i))};function Af(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ol(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return ol(t)&&Te(n)?!1:t in e}function Tf(e,t){const n=e._def.props;if(!n)return!1;const o=Ve(t);return Array.isArray(n)?n.some(r=>Ve(r)===o):Object.keys(n).some(r=>Ve(r)===o)}const rl=e=>{const t=e.props["onUpdate:modelValue"]||!1;return oe(t)?n=>Fo(t,n):t};function Pf(e){e.target.composing=!0}function sl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Hr=Symbol("_assign");function il(e,t,n){return t&&(e=e.trim()),n&&(e=Js(e)),e}const pt={created(e,{modifiers:{lazy:t,trim:n,number:o}},r){e[Hr]=rl(r);const s=o||r.props&&r.props.type==="number";$n(e,t?"change":"input",i=>{i.target.composing||e[Hr](il(e.value,n,s))}),(n||s)&&$n(e,"change",()=>{e.value=il(e.value,n,s)}),t||($n(e,"compositionstart",Pf),$n(e,"compositionend",sl),$n(e,"change",sl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:r,number:s}},i){if(e[Hr]=rl(i),e.composing)return;const l=(s||e.type==="number")&&!/^0\d/.test(e.value)?Js(e.value):e.value,a=t??"";if(l===a)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(o&&t===n||r&&e.value.trim()===a)||(e.value=a)}},Of=["ctrl","shift","alt","meta"],Rf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Of.some(n=>e[`${n}Key`]&&!t.includes(n))},Ue=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=((r,...s)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=(r=>{if(!("key"in r))return;const s=un(r.key);if(t.some(i=>i===s||If[i]===s))return e(r)}))},Df=je({patchProp:xf},uf);let ll;function kf(){return ll||(ll=Hd(Df))}const Bf=((...e)=>{const t=kf().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=qf(o);if(!r)return;const s=t._component;!se(s)&&!s.render&&!s.template&&(s.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,$f(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t});function $f(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function qf(e){return Te(e)?document.querySelector(e):e}function al(e){return typeof e=="string"?`'${e}'`:new Nf().serialize(e)}const Nf=(function(){class e{#e=new Map;compare(n,o){const r=typeof n,s=typeof o;return r==="string"&&s==="string"?n.localeCompare(o):r==="number"&&s==="number"?n-o:String.prototype.localeCompare.call(this.serialize(n,!0),this.serialize(o,!0))}serialize(n,o){if(n===null)return"null";switch(typeof n){case"string":return o?n:`'${n}'`;case"bigint":return`${n}n`;case"object":return this.$object(n);case"function":return this.$function(n)}return String(n)}serializeObject(n){const o=Object.prototype.toString.call(n);if(o!=="[object Object]")return this.serializeBuiltInType(o.length<10?`unknown:${o}`:o.slice(8,-1),n);const r=n.constructor,s=r===Object||r===void 0?"":r.name;if(s!==""&&globalThis[s]===r)return this.serializeBuiltInType(s,n);if(typeof n.toJSON=="function"){const i=n.toJSON();return s+(i!==null&&typeof i=="object"?this.$object(i):`(${this.serialize(i)})`)}return this.serializeObjectEntries(s,Object.entries(n))}serializeBuiltInType(n,o){const r=this["$"+n];if(r)return r.call(this,o);if(typeof o?.entries=="function")return this.serializeObjectEntries(n,o.entries());throw new Error(`Cannot serialize ${n}`)}serializeObjectEntries(n,o){const r=Array.from(o).sort((i,l)=>this.compare(i[0],l[0]));let s=`${n}{`;for(let i=0;ithis.compare(o,r)))}`}$Map(n){return this.serializeObjectEntries("Map",n.entries())}}for(const t of["Error","RegExp","URL"])e.prototype["$"+t]=function(n){return`${t}(${n})`};for(const t of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join(",")}]`};for(const t of["BigInt64Array","BigUint64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join("n,")}${n.length>0?"n":""}]`};return e})();function Lf(e,t){return e===t||al(e)===al(t)}function ul(e,t=Number.NEGATIVE_INFINITY,n=Number.POSITIVE_INFINITY){return Math.min(n,Math.max(t,e))}function dt(e,t){const n=typeof e=="string"&&!t?`${e}Context`:t,o=Symbol(n);return[i=>{const l=Cn(o,i);if(l||l===null)return l;throw new Error(`Injection \`${o.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(", ")}`:`\`${e}\``}`)},i=>(ri(o,i),i)]}function ze(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function di(e,t,n){const o=n.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),o.dispatchEvent(r)}function Bs(e){return e==null}function Eo(e,t){return Qs()?(Zs(e,t),!0):!1}function Ff(e){let t=!1,n;const o=ma(!0);return((...r)=>(t||(n=o.run(()=>e(...r)),t=!0),n))}const at=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Vf=e=>typeof e<"u",Hf=Object.prototype.toString,Uf=e=>Hf.call(e)==="[object Object]",jf=()=>{},cl=Kf();function Kf(){var e,t,n;return at&&!!(!((e=window)===null||e===void 0||(e=e.navigator)===null||e===void 0)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)===null||t===void 0||(t=t.navigator)===null||t===void 0?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test((n=window)===null||n===void 0?void 0:n.navigator.userAgent))}function Ur(e){return Array.isArray(e)?e:[e]}function Wf(e){return Dt()}function zf(e){if(!at)return e;let t=0,n,o;const r=()=>{t-=1,o&&t<=0&&(o.stop(),n=void 0,o=void 0)};return((...s)=>(t+=1,o||(o=ma(!0),n=o.run(()=>e(...s))),Eo(r),n))}function Gf(e,t=1e4){return jc((n,o)=>{let r=He(e),s;const i=()=>setTimeout(()=>{r=He(e),o()},He(t));return Eo(()=>{clearTimeout(s)}),{get(){return n(),r},set(l){r=l,o(),clearTimeout(s),s=i()}}})}function Yf(e,t){Wf()&&br(e,t)}function Jf(e,t,n={}){const{immediate:o=!0,immediateCallback:r=!1}=n,s=gr(!1);let i;function l(){i&&(clearTimeout(i),i=void 0)}function a(){s.value=!1,l()}function u(...c){r&&e(),l(),s.value=!0,i=setTimeout(()=>{s.value=!1,i=void 0,e(...c)},He(t))}return o&&(s.value=!0,at&&u()),Eo(a),{isPending:rn(s),start:u,stop:a}}function Xf(e=1e3,t={}){const{controls:n=!1,callback:o}=t,r=Jf(o??jf,e,t),s=W(()=>!r.isPending.value);return n?{ready:s,...r}:s}function Qf(e,t,n){return we(e,t,{...n,immediate:!0})}const xo=at?window:void 0;function ut(e){var t;const n=He(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function _u(...e){const t=(o,r,s,i)=>(o.addEventListener(r,s,i),()=>o.removeEventListener(r,s,i)),n=W(()=>{const o=Ur(He(e[0])).filter(r=>r!=null);return o.every(r=>typeof r!="string")?o:void 0});return Qf(()=>{var o,r;return[(o=(r=n.value)===null||r===void 0?void 0:r.map(s=>ut(s)))!==null&&o!==void 0?o:[xo].filter(s=>s!=null),Ur(He(n.value?e[1]:e[0])),Ur(f(n.value?e[2]:e[1])),He(n.value?e[3]:e[2])]},([o,r,s,i],l,a)=>{if(!o?.length||!r?.length||!s?.length)return;const u=Uf(i)?{...i}:i,c=o.flatMap(d=>r.flatMap(h=>s.map(p=>t(d,h,p,u))));a(()=>{c.forEach(d=>d())})},{flush:"post"})}function Cu(){const e=gr(!1),t=Dt();return t&&Re(()=>{e.value=!0},t),e}function Zf(e){const t=Cu();return W(()=>(t.value,!!e()))}function ep(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function fi(...e){let t,n,o={};e.length===3?(t=e[0],n=e[1],o=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],o=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=xo,eventName:s="keydown",passive:i=!1,dedupe:l=!1}=o,a=ep(t);return _u(r,s,c=>{c.repeat&&He(l)||a(c)&&n(c)},i)}function tp(e,t={}){const{immediate:n=!0,fpsLimit:o=null,window:r=xo,once:s=!1}=t,i=gr(!1),l=W(()=>{const p=He(o);return p?1e3/p:null});let a=0,u=null;function c(p){if(!i.value||!r)return;a||(a=p);const y=p-a;if(l.value&&yo&&"ResizeObserver"in o),l=()=>{s&&(s.disconnect(),s=void 0)},a=we(W(()=>{const c=He(e);return Array.isArray(c)?c.map(d=>ut(d)):[ut(c)]}),c=>{if(l(),i.value&&o){s=new ResizeObserver(t);for(const d of c)d&&s.observe(d,r)}},{immediate:!0,flush:"post"}),u=()=>{l(),a()};return Eo(u),{isSupported:i,stop:u}}function ho(e,t,n,o={}){var r,s;const{clone:i=!1,passive:l=!1,eventName:a,deep:u=!1,defaultValue:c,shouldEmit:d}=o,h=Dt(),p=n||h?.emit||(h==null||(r=h.$emit)===null||r===void 0?void 0:r.bind(h))||(h==null||(s=h.proxy)===null||s===void 0||(s=s.$emit)===null||s===void 0?void 0:s.bind(h?.proxy));let y=a;t||(t="modelValue"),y=y||`update:${t.toString()}`;const S=_=>i?typeof i=="function"?i(_):np(_):_,E=()=>Vf(e[t])?S(e[t]):c,m=_=>{d?d(_)&&p(y,_):p(y,_)};if(l){const _=F(E());let x=!1;return we(()=>e[t],w=>{x||(x=!0,_.value=S(w),Le(()=>x=!1))}),we(_,w=>{!x&&(w!==e[t]||u)&&m(w)},{deep:u}),_}else return W({get(){return E()},set(_){m(_)}})}function pi(e){return e?e.flatMap(t=>t.type===Ae?pi(t.children):[t]):[]}const[Ao]=dt("ConfigProvider");function jr(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function $s(e,t,n=".",o){if(!jr(t))return $s(e,{},n,o);const r={...t};for(const s of Object.keys(e)){if(s==="__proto__"||s==="constructor")continue;const i=e[s];i!=null&&(o&&o(r,s,i,n)||(Array.isArray(i)&&Array.isArray(r[s])?r[s]=[...i,...r[s]]:jr(i)&&jr(r[s])?r[s]=$s(i,r[s],(n?`${n}.`:"")+s.toString(),o):r[s]=i))}return r}function rp(e){return(...t)=>t.reduce((n,o)=>$s(n,o,"",e),{})}const sp=rp(),ip=zf(()=>{const e=F(new Map),t=F(),n=W(()=>{for(const i of e.value.values())if(i)return!0;return!1}),o=Ao({scrollBody:F(!0)});let r=null;const s=()=>{document.body.style.paddingRight="",document.body.style.marginRight="",document.body.style.pointerEvents="",document.documentElement.style.removeProperty("--scrollbar-width"),document.body.style.overflow=t.value??"",cl&&r?.(),t.value=void 0};return we(n,(i,l)=>{if(!at)return;if(!i){l&&s();return}t.value===void 0&&(t.value=document.body.style.overflow);const a=window.innerWidth-document.documentElement.clientWidth,u={padding:a,margin:0},c=o.scrollBody?.value?typeof o.scrollBody.value=="object"?sp({padding:o.scrollBody.value.padding===!0?a:o.scrollBody.value.padding,margin:o.scrollBody.value.margin===!0?a:o.scrollBody.value.margin},u):u:{padding:0,margin:0};a>0&&(document.body.style.paddingRight=typeof c.padding=="number"?`${c.padding}px`:String(c.padding),document.body.style.marginRight=typeof c.margin=="number"?`${c.margin}px`:String(c.margin),document.documentElement.style.setProperty("--scrollbar-width",`${a}px`),document.body.style.overflow="hidden"),cl&&(r=_u(document,"touchmove",d=>lp(d),{passive:!1})),Le(()=>{n.value&&(document.body.style.pointerEvents="none",document.body.style.overflow="hidden")})},{immediate:!0,flush:"sync"}),e});function Su(e){const t=Math.random().toString(36).substring(2,7),n=ip();n.value.set(t,e??!1);const o=W({get:()=>n.value.get(t)??!1,set:r=>n.value.set(t,r)});return Yf(()=>{n.value.delete(t)}),o}function Eu(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function xu(e){const t=Ao({dir:F("ltr")});return W(()=>e?.value||t.dir?.value||"ltr")}function To(e){const t=Dt(),n=t?.type.emits,o={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(r=>{o[Lo(Ve(r))]=(...s)=>e(r,...s)}),o}let Kr=0;function ap(){yt(e=>{if(!at)return;const t=document.querySelectorAll("[data-reka-focus-guard]");document.body.insertAdjacentElement("afterbegin",t[0]??dl()),document.body.insertAdjacentElement("beforeend",t[1]??dl()),Kr++,e(()=>{Kr===1&&document.querySelectorAll("[data-reka-focus-guard]").forEach(n=>n.remove()),Kr--})})}function dl(){const e=document.createElement("span");return e.setAttribute("data-reka-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}function Au(e){return W(()=>He(e)?!!ut(e)?.closest("form"):!0)}function de(){const e=Dt(),t=F(),n=W(()=>o());Ya(()=>{n.value!==o()&&Vc(t)});function o(){return t.value&&"$el"in t.value&&["#text","#comment"].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:ut(t)}const r=Object.assign({},e.exposed),s={};for(const l in e.props)Object.defineProperty(s,l,{enumerable:!0,configurable:!0,get:()=>e.props[l]});if(Object.keys(r).length>0)for(const l in r)Object.defineProperty(s,l,{enumerable:!0,configurable:!0,get:()=>r[l]});Object.defineProperty(s,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=s;function i(l){if(t.value=l,!!l&&(Object.defineProperty(s,"$el",{enumerable:!0,configurable:!0,get:()=>l instanceof Element?l:l.$el}),!(l instanceof Element)&&!Object.hasOwn(l,"$el"))){const a=l.$.exposed,u=Object.assign({},s);for(const c in a)Object.defineProperty(u,c,{enumerable:!0,configurable:!0,get:()=>a[c]});e.exposed=u}}return{forwardRef:i,currentRef:t,currentElement:n}}function hi(e){const t=Dt(),n=Object.keys(t?.type.props??{}).reduce((r,s)=>{const i=(t?.type.props[s]).default;return i!==void 0&&(r[s]=i),r},{}),o=zc(e);return W(()=>{const r={},s=t?.vnode.props??{};return Object.keys(s).forEach(i=>{r[Ve(i)]=s[i]}),Object.keys({...n,...r}).reduce((i,l)=>(o.value[l]!==void 0&&(i[l]=o.value[l]),i),{})})}function Tu(e,t){const n=hi(e),o=t?To(t):{};return W(()=>({...n.value,...o}))}function up(){const e=Dt()?.vnode?.scopeId;return e?{[e]:""}:{}}var cp=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Mn=new WeakMap,Do=new WeakMap,ko={},Wr=0,Pu=function(e){return e&&(e.host||Pu(e.parentNode))},dp=function(e,t){return t.map(function(n){if(e.contains(n))return n;var o=Pu(n);return o&&e.contains(o)?o:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},fp=function(e,t,n,o){var r=dp(t,Array.isArray(e)?e:[e]);ko[n]||(ko[n]=new WeakMap);var s=ko[n],i=[],l=new Set,a=new Set(r),u=function(d){!d||l.has(d)||(l.add(d),u(d.parentNode))};r.forEach(u);var c=function(d){!d||a.has(d)||Array.prototype.forEach.call(d.children,function(h){if(l.has(h))c(h);else try{var p=h.getAttribute(o),y=p!==null&&p!=="false",S=(Mn.get(h)||0)+1,E=(s.get(h)||0)+1;Mn.set(h,S),s.set(h,E),i.push(h),S===1&&y&&Do.set(h,!0),E===1&&h.setAttribute(n,"true"),y||h.setAttribute(o,"true")}catch(m){console.error("aria-hidden: cannot operate on ",h,m)}})};return c(t),l.clear(),Wr++,function(){i.forEach(function(d){var h=Mn.get(d)-1,p=s.get(d)-1;Mn.set(d,h),s.set(d,p),h||(Do.has(d)||d.removeAttribute(o),Do.delete(d)),p||d.removeAttribute(n)}),Wr--,Wr||(Mn=new WeakMap,Mn=new WeakMap,Do=new WeakMap,ko={})}},pp=function(e,t,n){n===void 0&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=cp(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),fp(o,r,n,"aria-hidden")):function(){return null}};function Ou(e){let t;we(()=>ut(e),n=>{let o=!1;try{o=!!n?.closest("[popover]:not(:popover-open)")}catch{}n&&!o?t=pp(n):t&&t()}),Xt(()=>{t&&t()})}function go(e,t="reka"){let n;const o=Ao({useId:void 0});return o.useId?n=o.useId():n=ad?.(),t?`${t}-${n}`:n}function hp(e){const t=F(),n=W(()=>t.value?.width??0),o=W(()=>t.value?.height??0);let r;return Re(()=>{const s=ut(e);s?(t.value={width:s.offsetWidth,height:s.offsetHeight},r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const l=i[0];let a,u;if("borderBoxSize"in l){const c=l.borderBoxSize,d=Array.isArray(c)?c[0]:c;a=d.inlineSize,u=d.blockSize}else a=s.offsetWidth,u=s.offsetHeight;t.value={width:a,height:u}}),r.observe(s,{box:"border-box"})):t.value=void 0}),Xt(()=>{r?.disconnect(),r=void 0}),{width:n,height:o}}function gp(e,t){const n=F(e);function o(s){return t[n.value][s]??n.value}return{state:n,dispatch:s=>{n.value=o(s)}}}function Ru(e){const t=Gf("",1e3);return{search:t,handleTypeaheadSearch:(r,s)=>{t.value=t.value+r;{const i=ze(),l=s.map(h=>({...h,textValue:h.value?.textValue??h.ref.textContent?.trim()??""})),a=l.find(h=>h.ref===i),u=l.map(h=>h.textValue),c=mp(u,t.value,a?.textValue),d=l.find(h=>h.textValue===c);return d&&d.ref.focus(),d?.ref}},resetTypeahead:()=>{t.value=""}}}function vp(e,t){return e.map((n,o)=>e[(t+o)%e.length])}function mp(e,t,n){const r=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let i=vp(e,Math.max(s,0));r.length===1&&(i=i.filter(u=>u!==n));const a=i.find(u=>u.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function yp(e,t){const n=F({}),o=F("none"),r=F(e),s=e.value?"mounted":"unmounted";let i;const l=t.value?.ownerDocument.defaultView??xo,{state:a,dispatch:u}=gp(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}}),c=E=>{if(at){const m=new CustomEvent(E,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(m)}};we(e,async(E,m)=>{const _=m!==E;if(await Le(),_){const x=o.value,w=Bo(t.value);E?(u("MOUNT"),c("enter"),w==="none"&&c("after-enter")):w==="none"||w==="undefined"||n.value?.display==="none"?(u("UNMOUNT"),c("leave"),c("after-leave")):m&&x!==w?(u("ANIMATION_OUT"),c("leave")):(u("UNMOUNT"),c("after-leave"))}},{immediate:!0});const d=E=>{const m=Bo(t.value),_=m.includes(CSS.escape(E.animationName)),x=a.value==="mounted"?"enter":"leave";if(E.target===t.value&&_&&(c(`after-${x}`),u("ANIMATION_END"),!r.value)){const w=t.value.style.animationFillMode;t.value.style.animationFillMode="forwards",i=l?.setTimeout(()=>{t.value?.style.animationFillMode==="forwards"&&(t.value.style.animationFillMode=w)})}E.target===t.value&&m==="none"&&u("ANIMATION_END")},h=E=>{E.target===t.value&&(o.value=Bo(t.value))},p=we(t,(E,m)=>{E?(n.value=getComputedStyle(E),E.addEventListener("animationstart",h),E.addEventListener("animationcancel",d),E.addEventListener("animationend",d)):(u("ANIMATION_END"),i!==void 0&&l?.clearTimeout(i),m?.removeEventListener("animationstart",h),m?.removeEventListener("animationcancel",d),m?.removeEventListener("animationend",d))},{immediate:!0}),y=we(a,()=>{const E=Bo(t.value);o.value=a.value==="mounted"?E:"none"});return Xt(()=>{p(),y(),t.value&&(t.value.removeEventListener("animationstart",h),t.value.removeEventListener("animationcancel",d),t.value.removeEventListener("animationend",d)),i!==void 0&&l?.clearTimeout(i)}),{isPresent:W(()=>["mounted","unmountSuspended"].includes(a.value))}}function Bo(e){return e&&getComputedStyle(e).animationName||"none"}var Sr=J({name:"Presence",props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){const{present:o,forceMount:r}=cn(e),s=F(),{isPresent:i}=yp(o,s);n({present:i});let l=t.default({present:i.value});l=pi(l||[]);const a=Dt();if(l&&l?.length>1){const u=a?.parent?.type.name?`<${a.parent.type.name} />`:"component";throw new Error([`Detected an invalid children for \`${u}\` for \`Presence\` component.`,"","Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.","You can apply a few solutions:",["Provide a single child element so that `presence` directive attach correctly.","Ensure the first child is an actual element instead of a raw text node or comment node."].map(c=>` - ${c}`).join(` `)].join(` -`))}return()=>r.value||o.value||i.value?Ht(t.default({present:i.value})[0],{ref:u=>{const c=ut(u);return typeof c?.hasAttribute>"u"||(c?.hasAttribute("data-reka-popper-content-wrapper")?s.value=c.firstElementChild:s.value=c),c}}):null}});const qs=J({name:"PrimitiveSlot",inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;const o=pi(n.default()),r=o.findIndex(a=>a.type!==Rt);if(r===-1)return o;const s=o[r];delete s.props?.ref;const i=s.props?ce(t,s.props):t,l=En({...s,props:{}},i);return o.length===1?l:(o[r]=l,o)}}}),bp=["area","img","input"],Se=J({name:"Primitive",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:"div"}},setup(e,{attrs:t,slots:n}){const o=e.asChild?"template":e.as;return typeof o=="string"&&bp.includes(o)?()=>Ht(o,t):o!=="template"?()=>Ht(e.as,t,{default:n.default}):()=>Ht(qs,t,{default:n.default})}});function Ns(){const e=F(),t=z(()=>["#text","#comment"].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:ut(e));return{primitiveElement:e,currentElement:t}}const[Bt,wp]=dt("DialogRoot");var _p=J({inheritAttrs:!1,__name:"DialogRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:t}){const n=e,r=po(n,"open",t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),s=F(),i=F(),{modal:l,unmountOnHide:a}=cn(n);return wp({open:r,modal:l,unmountOnHide:a,openModal:()=>{r.value=!0},onOpenChange:u=>{r.value=u},onOpenToggle:()=>{r.value=!r.value},contentId:"",titleId:"",descriptionId:"",triggerElement:s,contentElement:i}),(u,c)=>Z(u.$slots,"default",{open:f(r),close:()=>r.value=!1})}}),Mu=_p,Cp=J({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;de();const n=Bt();return(o,r)=>(I(),G(f(Se),ce(t,{type:o.as==="button"?"button":void 0,onClick:r[0]||(r[0]=s=>f(n).onOpenChange(!1))}),{default:k(()=>[Z(o.$slots,"default")]),_:3},16,["type"]))}}),gi=Cp;const Sp="dismissableLayer.pointerDownOutside",Ep="dismissableLayer.focusOutside";function Du(e,t){if(!(t instanceof Element))return!1;const n=t.closest("[data-dismissable-layer]"),o=e.dataset.dismissableLayer===""?e:e.querySelector("[data-dismissable-layer]"),r=Array.from(e.ownerDocument.querySelectorAll("[data-dismissable-layer]"));return!!(n&&(o===n||r.indexOf(o){});return yt(i=>{if(!at||!He(n))return;const l=async u=>{const c=u.target;if(!(!t?.value||!c)){if(Du(t.value,c)){r.value=!1;return}if(u.target&&!r.value){let p=function(){di(Sp,e,h)};var d=p;const h={originalEvent:u};u.pointerType==="touch"?(o.removeEventListener("click",s.value),s.value=p,o.addEventListener("click",s.value,{once:!0})):p()}else o.removeEventListener("click",s.value);r.value=!1}},a=window.setTimeout(()=>{o.addEventListener("pointerdown",l)},0);i(()=>{window.clearTimeout(a),o.removeEventListener("pointerdown",l),o.removeEventListener("click",s.value)})}),{onPointerDownCapture:()=>{He(n)&&(r.value=!0)}}}function Ap(e,t,n=!0){const o=t?.value?.ownerDocument??globalThis?.document,r=F(!1);return yt(s=>{if(!at||!He(n))return;const i=async l=>{if(!t?.value)return;await Le(),await Le();const a=l.target;!t.value||!a||Du(t.value,a)||l.target&&!r.value&&di(Ep,e,{originalEvent:l})};o.addEventListener("focusin",i),s(()=>o.removeEventListener("focusin",i))}),{onFocusCapture:()=>{He(n)&&(r.value=!0)},onBlurCapture:()=>{He(n)&&(r.value=!1)}}}const Je=bo({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set});var Tp=J({__name:"DismissableLayer",props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","dismiss"],setup(e,{emit:t}){const n=e,o=t,{forwardRef:r,currentElement:s}=de(),i=z(()=>s.value?.ownerDocument??globalThis.document),l=z(()=>Je.layersRoot),a=z(()=>s.value?Array.from(l.value).indexOf(s.value):-1),u=z(()=>Je.layersWithOutsidePointerEventsDisabled.size>0),c=z(()=>{const p=Array.from(l.value),[y]=[...Je.layersWithOutsidePointerEventsDisabled].slice(-1),C=p.indexOf(y);return a.value>=C}),d=xp(async p=>{const y=[...Je.branches].some(C=>C?.contains(p.target));!n.present||!c.value||y||(o("pointerDownOutside",p),o("interactOutside",p),await Le(),p.defaultPrevented||o("dismiss"))},s),h=Ap(p=>{const y=[...Je.branches].some(C=>C?.contains(p.target));!n.present||y||(o("focusOutside",p),o("interactOutside",p),p.defaultPrevented||o("dismiss"))},s);return fi("Escape",p=>{!n.present||!(a.value===l.value.size-1)||(o("escapeKeyDown",p),p.defaultPrevented||o("dismiss"))}),we([s,()=>n.disableOutsidePointerEvents,()=>n.present],([p,y,C],b,m)=>{!p||!C||y&&(Je.layersWithOutsidePointerEventsDisabled.size===0&&(Je.originalBodyPointerEvents=i.value.body.style.pointerEvents,i.value.body.style.pointerEvents="none"),Je.layersWithOutsidePointerEventsDisabled.add(p),m(()=>{Je.layersWithOutsidePointerEventsDisabled.delete(p),Je.layersWithOutsidePointerEventsDisabled.size===0&&!ks(Je.originalBodyPointerEvents)&&(i.value.body.style.pointerEvents=Je.originalBodyPointerEvents)}))},{immediate:!0}),we([s,()=>n.present],([p,y],C,b)=>{!p||!y||(l.value.add(p),b(()=>{l.value.delete(p)}))},{immediate:!0}),yt(p=>{p(()=>{s.value&&(l.value.delete(s.value),Je.layersWithOutsidePointerEventsDisabled.delete(s.value))})}),(p,y)=>(I(),G(f(Se),{ref:f(r),"as-child":p.asChild,as:p.as,"data-dismissable-layer":"",style:st({pointerEvents:u.value?c.value?"auto":"none":void 0}),onFocusCapture:f(h).onFocusCapture,onBlurCapture:f(h).onBlurCapture,onPointerdownCapture:f(d).onPointerDownCapture},{default:k(()=>[Z(p.$slots,"default")]),_:3},8,["as-child","as","style","onFocusCapture","onBlurCapture","onPointerdownCapture"]))}}),Iu=Tp,Pp=J({__name:"DismissableLayerBranch",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{forwardRef:n,currentElement:o}=de();return Re(()=>{Je.branches.add(o.value)}),Xt(()=>{Je.branches.delete(o.value)}),(r,s)=>(I(),G(f(Se),ce({ref:f(n)},t),{default:k(()=>[Z(r.$slots,"default")]),_:3},16))}}),Op=Pp;const Rp=Ff(()=>F([]));function Mp(){const e=Rp();return{add(t){const n=e.value[0];t!==n&&n?.pause(),e.value=fl(e.value,t),e.value.unshift(t)},remove(t){e.value=fl(e.value,t),e.value[0]?.resume()}}}function fl(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}const zr="focusScope.autoFocusOnMount",Gr="focusScope.autoFocusOnUnmount",pl={bubbles:!1,cancelable:!0};function Vo(e,{select:t=!1}={}){const n=ze();for(const o of e)if(on(o,{select:t}),ze()!==n)return!0}function Dp(e){const t=vi(e),n=hl(t,e),o=hl(t.reverse(),e);return[n,o]}function vi(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function hl(e,t){for(const n of e)if(!Ip(n,{upTo:t}))return n}function Ip(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Bp(e){return e instanceof HTMLInputElement&&"select"in e}function on(e,{select:t=!1}={}){if(e&&e.focus){const n=ze();e.focus({preventScroll:!0}),e!==n&&Bp(e)&&t&&e.select()}}var kp=J({__name:"FocusScope",props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},present:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["mountAutoFocus","unmountAutoFocus"],setup(e,{emit:t}){const n=e,o=t,{currentRef:r,currentElement:s}=de(),i=F(null),l=Mp(),a=bo({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});yt(d=>{if(!at)return;const h=s.value;if(!n.trapped)return;function p(m){if(a.paused||!h)return;const E=m.target;h.contains(E)?i.value=E:on(i.value,{select:!0})}function y(m){if(a.paused||!h)return;const E=m.relatedTarget;E!==null&&(h.contains(E)||on(i.value,{select:!0}))}function C(m){const E=i.value;if(E===null||!m.some(R=>R.removedNodes.length>0))return;h.contains(E)||on(h)}document.addEventListener("focusin",p),document.addEventListener("focusout",y);const b=new MutationObserver(C);h&&b.observe(h,{childList:!0,subtree:!0}),d(()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",y),b.disconnect()})});function u(d,h){const p=new CustomEvent(zr,pl),y=C=>o("mountAutoFocus",C);d.addEventListener(zr,y),d.dispatchEvent(p),d.removeEventListener(zr,y),p.defaultPrevented||(Vo(vi(d),{select:!0}),ze()===h&&on(d))}yt(async d=>{const h=s.value;if(await Le(),!h)return;n.present!==!1&&l.add(a);const p=ze();!h.contains(p)&&n.present!==!1&&u(h,p),d(()=>{const C=new CustomEvent(Gr,pl),b=m=>{o("unmountAutoFocus",m)};h.addEventListener(Gr,b),h.dispatchEvent(C),h.setAttribute("data-focus-scope-unmounting",""),setTimeout(()=>{C.defaultPrevented||on(p??document.body,{select:!0}),h.removeEventListener(Gr,b),l.remove(a),h.removeAttribute("data-focus-scope-unmounting")},0)})}),we(()=>n.present,async(d,h)=>{if(!at)return;if(d===!1&&h===!0){l.remove(a);return}if(d!==!0||h!==!1)return;l.add(a),await Le();const p=s.value;if(!p)return;const y=ze();p.contains(y)||u(p,y)});function c(d){if(!n.loop&&!n.trapped||a.paused)return;const h=d.key==="Tab"&&!d.altKey&&!d.ctrlKey&&!d.metaKey,p=ze();if(h&&p){const y=d.currentTarget,[C,b]=Dp(y);C&&b?!d.shiftKey&&p===b?(d.preventDefault(),n.loop&&on(C,{select:!0})):d.shiftKey&&p===C&&(d.preventDefault(),n.loop&&on(b,{select:!0})):p===y&&d.preventDefault()}}return(d,h)=>(I(),G(f(Se),{ref_key:"currentRef",ref:r,tabindex:"-1","as-child":d.asChild,as:d.as,onKeydown:c},{default:k(()=>[Z(d.$slots,"default")]),_:3},8,["as-child","as"]))}}),Bu=kp;function $p(e){return e?"open":"closed"}function gl(e){const t=ze();for(const n of e)if(n===t||(n.focus(),ze()!==t))return}var qp=J({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,o=t,r=Bt(),{forwardRef:s,currentElement:i}=de();return r.titleId||=ho(void 0,"reka-dialog-title"),r.descriptionId||=ho(void 0,"reka-dialog-description"),Re(()=>{r.contentElement=i,ze()!==document.body&&(r.triggerElement.value=ze())}),(l,a)=>(I(),G(f(Bu),{"as-child":"",loop:"",trapped:n.trapFocus,present:n.present,onMountAutoFocus:a[5]||(a[5]=u=>o("openAutoFocus",u)),onUnmountAutoFocus:a[6]||(a[6]=u=>o("closeAutoFocus",u))},{default:k(()=>[L(f(Iu),ce({id:f(r).contentId,ref:f(s),as:l.as,"as-child":l.asChild,present:n.present,"disable-outside-pointer-events":l.disableOutsidePointerEvents,role:"dialog","aria-describedby":f(r).descriptionId,"aria-labelledby":f(r).titleId,"data-state":f($p)(f(r).open.value)},l.$attrs,{onDismiss:a[0]||(a[0]=u=>f(r).onOpenChange(!1)),onEscapeKeyDown:a[1]||(a[1]=u=>o("escapeKeyDown",u)),onFocusOutside:a[2]||(a[2]=u=>o("focusOutside",u)),onInteractOutside:a[3]||(a[3]=u=>o("interactOutside",u)),onPointerDownOutside:a[4]||(a[4]=u=>o("pointerDownOutside",u))}),{default:k(()=>[Z(l.$slots,"default")]),_:3},16,["id","as","as-child","present","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped","present"]))}}),ku=qp,Np=J({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,o=t,r=Bt(),s=Ao(o),{forwardRef:i,currentElement:l}=de(),a=z(()=>n.present?l.value:void 0);Ou(a);const u=z(()=>{const{present:c,...d}=n;return d});return we(()=>n.present,(c,d)=>{!c&&d&&r.triggerElement.value?.focus()}),(c,d)=>(I(),G(ku,ce({...u.value,...f(s)},{ref:f(i),present:c.present,"trap-focus":f(r).open.value,"disable-outside-pointer-events":n.disableOutsidePointerEvents,onCloseAutoFocus:d[0]||(d[0]=h=>{h.defaultPrevented||(h.preventDefault(),f(r).triggerElement.value?.focus())}),onPointerDownOutside:d[1]||(d[1]=h=>{const p=h.detail.originalEvent,y=p.button===0&&p.ctrlKey===!0;(p.button===2||y)&&h.preventDefault()}),onFocusOutside:d[2]||(d[2]=h=>{h.preventDefault()})}),{default:k(()=>[Z(c.$slots,"default")]),_:3},16,["present","trap-focus","disable-outside-pointer-events"]))}}),Lp=Np,Fp=J({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,r=Ao(t);de();const s=Bt(),i=F(!1),l=F(!1),a=z(()=>{const{present:u,...c}=n;return c});return we(()=>n.present,(u,c)=>{!u&&c&&(i.value||s.triggerElement.value?.focus(),i.value=!1,l.value=!1)}),(u,c)=>(I(),G(ku,ce({...a.value,...f(r)},{present:u.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:c[0]||(c[0]=d=>{d.defaultPrevented||(i.value||f(s).triggerElement.value?.focus(),d.preventDefault()),i.value=!1,l.value=!1}),onInteractOutside:c[1]||(c[1]=d=>{d.defaultPrevented||(i.value=!0,d.detail.originalEvent.type==="pointerdown"&&(l.value=!0));const h=d.target;f(s).triggerElement.value?.contains(h)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&l.value&&d.preventDefault()})}),{default:k(()=>[Z(u.$slots,"default")]),_:3},16,["present"]))}}),Vp=Fp,Hp=J({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,o=t,r=Bt(),s=Ao(o),{forwardRef:i}=de();return(l,a)=>(I(),G(f(Sr),{present:l.forceMount||f(r).open.value,"force-mount":l.forceMount||!f(r).unmountOnHide.value},{default:k(({present:u})=>[f(r).modal.value?nt((I(),G(Lp,ce({key:0,ref:f(i),present:f(r).unmountOnHide.value||u},{...n,...f(s),...l.$attrs}),{default:k(()=>[Z(l.$slots,"default")]),_:2},1040,["present"])),[[Bs,f(r).unmountOnHide.value||u]]):nt((I(),G(Vp,ce({key:1,ref:f(i),present:f(r).unmountOnHide.value||u},{...n,...f(s),...l.$attrs}),{default:k(()=>[Z(l.$slots,"default")]),_:2},1040,["present"])),[[Bs,f(r).unmountOnHide.value||u]])]),_:3},8,["present","force-mount"]))}}),$u=Hp,Up=J({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;de();const n=Bt();return(o,r)=>(I(),G(f(Se),ce(t,{id:f(n).descriptionId}),{default:k(()=>[Z(o.$slots,"default")]),_:3},16,["id"]))}}),qu=Up,jp=J({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(e){const t=e,n=Bt(),o=Su(t.present);return we(()=>t.present,r=>o.value=r),de(),(r,s)=>(I(),G(f(Se),{as:r.as,"as-child":r.asChild,"data-state":f(n).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:s[0]||(s[0]=Ue(()=>{},["left","self","prevent"]))},{default:k(()=>[Z(r.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),Kp=jp,Wp=J({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=Bt(),{forwardRef:n}=de();return(o,r)=>f(t)?.modal.value?(I(),G(f(Sr),{key:0,present:o.forceMount||f(t).open.value,"force-mount":o.forceMount||!f(t).unmountOnHide.value},{default:k(({present:s})=>[nt(L(Kp,ce(o.$attrs,{ref:f(n),as:o.as,"as-child":o.asChild,present:f(t).unmountOnHide.value||s}),{default:k(()=>[Z(o.$slots,"default")]),_:2},1040,["as","as-child","present"]),[[Bs,f(t).unmountOnHide.value||s]])]),_:3},8,["present","force-mount"])):Ce("v-if",!0)}}),Nu=Wp,zp=J({__name:"Teleport",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e,n=xo({}),o=z(()=>t.to??n.teleportTo?.value??"body"),r=Cu();return(s,i)=>f(r)||s.forceMount?(I(),G(si,{key:0,to:o.value,disabled:s.disabled,defer:s.defer},[Z(s.$slots,"default")],8,["to","disabled","defer"])):Ce("v-if",!0)}}),mi=zp,Gp=J({__name:"DialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,o)=>(I(),G(f(mi),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),Yp=Gp,Jp=J({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e,n=Bt();return de(),(o,r)=>(I(),G(f(Se),ce(t,{id:f(n).titleId}),{default:k(()=>[Z(o.$slots,"default")]),_:3},16,["id"]))}}),Lu=Jp,Xp=J({__name:"DialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=Bt(),{forwardRef:o,currentElement:r}=de();return n.contentId||=ho(void 0,"reka-dialog-content"),Re(()=>{n.triggerElement.value=r.value}),(s,i)=>(I(),G(f(Se),ce(t,{ref:f(o),type:s.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":f(n).open.value||!1,"aria-controls":f(n).open.value?f(n).contentId:void 0,"data-state":f(n).open.value?"open":"closed",onClick:f(n).onOpenToggle}),{default:k(()=>[Z(s.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","onClick"]))}}),Qp=Xp,Zp=J({__name:"AlertDialogAction",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;return de(),(n,o)=>(I(),G(f(gi),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),eh=Zp;const[th,nh]=dt("AlertDialogContent");var oh=J({__name:"AlertDialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,r=Ao(t);de();const s=F();return nh({onCancelElementChange:i=>{s.value=i}}),(i,l)=>(I(),G(f($u),ce({...n,...f(r)},{role:"alertdialog",onPointerDownOutside:l[0]||(l[0]=Ue(()=>{},["prevent"])),onInteractOutside:l[1]||(l[1]=Ue(()=>{},["prevent"])),onOpenAutoFocus:l[2]||(l[2]=()=>{Le(()=>{s.value?.focus({preventScroll:!0})})})}),{default:k(()=>[Z(i.$slots,"default")]),_:3},16))}}),rh=oh,sh=J({__name:"AlertDialogCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=th(),{forwardRef:o,currentElement:r}=de();return Re(()=>{n.onCancelElementChange(r.value)}),(s,i)=>(I(),G(f(gi),ce(t,{ref:f(o)}),{default:k(()=>[Z(s.$slots,"default")]),_:3},16))}}),ih=sh,lh=J({__name:"AlertDialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;return de(),(n,o)=>(I(),G(f(qu),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),ah=lh,uh=J({__name:"AlertDialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return de(),(n,o)=>(I(),G(f(Nu),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),ch=uh,dh=J({__name:"AlertDialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,o)=>(I(),G(f(mi),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),fh=dh,ph=J({__name:"AlertDialogRoot",props:{open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1}},emits:["update:open"],setup(e,{emit:t}){const r=Tu(e,t);return de(),(s,i)=>(I(),G(f(Mu),ce(f(r),{modal:!0}),{default:k(l=>[Z(s.$slots,"default",bt(ct(l)))]),_:3},16))}}),hh=ph,gh=J({__name:"AlertDialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e;return de(),(n,o)=>(I(),G(f(Lu),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),vh=gh,mh=J({__name:"AlertDialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;return de(),(n,o)=>(I(),G(f(Qp),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),yh=mh;const vl="data-reka-collection-item";function dn(e={}){const{key:t="",isProvider:n=!1}=e,o=`${t}CollectionProvider`;let r;n?(r={collectionRef:F(),itemMap:F(new Map)},ri(o,r)):r=Cn(o);const s=(c=!1)=>{const d=r.collectionRef.value;if(!d)return[];const h=Array.from(d.querySelectorAll(`[${vl}]`)),p=new Map(h.map((b,m)=>[b,m])),C=Array.from(r.itemMap.value.values()).sort((b,m)=>(p.get(b.ref)??-1)-(p.get(m.ref)??-1));return c?C:C.filter(b=>b.ref.dataset.disabled!=="")},i=J({name:"CollectionSlot",inheritAttrs:!1,setup(c,{slots:d,attrs:h}){const{primitiveElement:p,currentElement:y}=Ns();return we(y,()=>{r.collectionRef.value=y.value}),()=>Ht(qs,{ref:p,...h},d)}}),l=J({name:"CollectionItem",inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(c,{slots:d,attrs:h}){const{primitiveElement:p,currentElement:y}=Ns();return yt(C=>{if(y.value){const b=Ba(y.value);r.itemMap.value.set(b,{ref:y.value,value:c.value}),C(()=>r.itemMap.value.delete(b))}}),()=>Ht(qs,{...h,[vl]:"",ref:p},d)}}),a=z(()=>Array.from(r.itemMap.value.values())),u=z(()=>r.itemMap.value.size);return{getItems:s,reactiveItems:a,itemMapSize:u,CollectionSlot:i,CollectionItem:l}}var bh=J({__name:"VisuallyHidden",props:{feature:{type:String,required:!1,default:"focusable"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){return(t,n)=>(I(),G(f(Se),{as:t.as,"as-child":t.asChild,"aria-hidden":t.feature==="focusable"||t.feature==="fully-hidden"?"true":void 0,"data-hidden":t.feature==="fully-hidden"?"":void 0,tabindex:t.feature==="fully-hidden"?"-1":void 0,style:{position:"absolute",border:0,width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",wordWrap:"normal",top:"-1px",left:"-1px"}},{default:k(()=>[Z(t.$slots,"default")]),_:3},8,["as","as-child","aria-hidden","data-hidden","tabindex"]))}}),Er=bh,wh=J({inheritAttrs:!1,__name:"VisuallyHiddenInputBubble",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(e){const t=e,{primitiveElement:n,currentElement:o}=Ns(),r=z(()=>t.checked??t.value);return we(r,(s,i)=>{if(!o.value)return;const l=o.value,a=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(a,"value").set;if(c&&s!==i){const d=new Event("input",{bubbles:!0}),h=new Event("change",{bubbles:!0});c.call(l,s),l.dispatchEvent(d),l.dispatchEvent(h)}}),(s,i)=>(I(),G(Er,ce({ref_key:"primitiveElement",ref:n},{...t,...s.$attrs},{as:"input"}),null,16))}}),ml=wh,_h=J({inheritAttrs:!1,__name:"VisuallyHiddenInput",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(e){const t=e,n=z(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),o=z(()=>typeof t.value=="string"||typeof t.value=="number"||typeof t.value=="boolean"||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value=="object"&&Array.isArray(t.value)?t.value.flatMap((r,s)=>typeof r=="object"?Object.entries(r).map(([i,l])=>({name:`${t.name}[${s}][${i}]`,value:l})):{name:`${t.name}[${s}]`,value:r}):t.value!==null&&typeof t.value=="object"&&!Array.isArray(t.value)?Object.entries(t.value).map(([r,s])=>({name:`${t.name}[${r}]`,value:s})):[]);return(r,s)=>(I(),ae(Ae,null,[Ce(" We render single input if it's required "),n.value?(I(),G(ml,ce({key:r.name},{...t,...r.$attrs},{name:r.name,value:r.value}),null,16,["name","value"])):(I(!0),ae(Ae,{key:1},_o(o.value,i=>(I(),G(ml,ce({key:i.name},{ref_for:!0},{...t,...r.$attrs},{name:i.name,value:i.value}),null,16,["name","value"]))),128))],2112))}}),Ch=_h;const[Fu,Sh]=dt("PopperRoot");var Eh=J({inheritAttrs:!1,__name:"PopperRoot",setup(e){const t=F();return Sh({anchor:t,onAnchorChange:n=>t.value=n}),(n,o)=>Z(n.$slots,"default")}}),xh=Eh,Ah=J({__name:"PopperAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{forwardRef:n,currentElement:o}=de(),r=Fu();return Ua(()=>{r.onAnchorChange(t.reference??o.value)}),(s,i)=>(I(),G(f(Se),{ref:f(n),as:s.as,"as-child":s.asChild},{default:k(()=>[Z(s.$slots,"default")]),_:3},8,["as","as-child"]))}}),Th=Ah;function Ph(e){return e!==null}function Oh(e){return{name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,i=r.arrow?.centerOffset!==0,l=i?0:e.arrowWidth,a=i?0:e.arrowHeight,[u,c]=Ls(n),d={start:e.dir==="rtl"?"100%":"0%",center:"50%",end:e.dir==="rtl"?"0%":"100%"}[c],h={start:"0%",center:"50%",end:"100%"}[c],p=(r.arrow?.x??0)+l/2,y=(r.arrow?.y??0)+a/2;let C="",b="";return u==="bottom"?(C=i?d:`${p}px`,b=`${-a}px`):u==="top"?(C=i?d:`${p}px`,b=`${o.floating.height+a}px`):u==="right"?(C=`${-a}px`,b=i?h:`${y}px`):u==="left"&&(C=`${o.floating.width+a}px`,b=i?h:`${y}px`),{data:{x:C,y:b}}}}}function Ls(e){const[t,n="center"]=e.split("-");return[t,n]}const Rh=["top","right","bottom","left"],ln=Math.min,Ut=Math.max,Qo=Math.round,ko=Math.floor,jt=e=>({x:e,y:e}),Mh={left:"right",right:"left",bottom:"top",top:"bottom"};function Vu(e,t,n){return Ut(e,ln(t,n))}function Gt(e,t){return typeof e=="function"?e(t):e}function an(e){return e.split("-")[0]}function Wn(e){return e.split("-")[1]}function yi(e){return e==="x"?"y":"x"}function bi(e){return e==="y"?"height":"width"}function Pt(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function wi(e){return yi(Pt(e))}function Dh(e,t,n){n===void 0&&(n=!1);const o=Wn(e),r=wi(e),s=bi(r);let i=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=Zo(i)),[i,Zo(i)]}function Ih(e){const t=Zo(e);return[Fs(e),t,Fs(t)]}function Fs(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const yl=["left","right"],bl=["right","left"],Bh=["top","bottom"],kh=["bottom","top"];function $h(e,t,n){switch(e){case"top":case"bottom":return n?t?bl:yl:t?yl:bl;case"left":case"right":return t?Bh:kh;default:return[]}}function qh(e,t,n,o){const r=Wn(e);let s=$h(an(e),n==="start",o);return r&&(s=s.map(i=>i+"-"+r),t&&(s=s.concat(s.map(Fs)))),s}function Zo(e){const t=an(e);return Mh[t]+e.slice(t.length)}function Nh(e){var t,n,o,r;return{top:(t=e.top)!=null?t:0,right:(n=e.right)!=null?n:0,bottom:(o=e.bottom)!=null?o:0,left:(r=e.left)!=null?r:0}}function Hu(e){return typeof e!="number"?Nh(e):{top:e,right:e,bottom:e,left:e}}function er(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function wl(e,t,n){let{reference:o,floating:r}=e;const s=Pt(t),i=wi(t),l=bi(i),a=an(t),u=s==="y",c=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,h=o[l]/2-r[l]/2;let p;switch(a){case"top":p={x:c,y:o.y-r.height};break;case"bottom":p={x:c,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.y}}const y=Wn(t);return y&&(p[i]+=h*(y==="end"?1:-1)*(n&&u?-1:1)),p}async function Lh(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:s,rects:i,elements:l,strategy:a}=e,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:d="floating",altBoundary:h=!1,padding:p=0}=Gt(t,e),y=Hu(p),b=l[h?d==="floating"?"reference":"floating":d],m=er(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(b)))==null||n?b:b.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:u,rootBoundary:c,strategy:a})),E=d==="floating"?{x:o,y:r,width:i.floating.width,height:i.floating.height}:i.reference,x=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),_=await(s.isElement==null?void 0:s.isElement(x))&&await(s.getScale==null?void 0:s.getScale(x))||{x:1,y:1},R=er(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:E,offsetParent:x,strategy:a}):E);return{top:(m.top-R.top+y.top)/_.y,bottom:(R.bottom-m.bottom+y.bottom)/_.y,left:(m.left-R.left+y.left)/_.x,right:(R.right-m.right+y.right)/_.x}}const Fh=50,Vh=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:s=[],platform:i}=n,l=i.detectOverflow?i:{...i,detectOverflow:Lh},a=await(i.isRTL==null?void 0:i.isRTL(t));let u=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:c,y:d}=wl(u,o,a),h=o,p=0;const y={};for(let C=0;C({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:s,platform:i,elements:l,middlewareData:a}=t,{element:u,padding:c=0}=Gt(e,t)||{};if(u==null)return{};const d=Hu(c),h={x:n,y:o},p=wi(r),y=bi(p),C=await i.getDimensions(u),b=p==="y",m=b?"top":"left",E=b?"bottom":"right",x=b?"clientHeight":"clientWidth",_=s.reference[y]+s.reference[p]-h[p]-s.floating[y],R=h[p]-s.reference[p],T=await(i.getOffsetParent==null?void 0:i.getOffsetParent(u));let v=T?T[x]:0;(!v||!await(i.isElement==null?void 0:i.isElement(T)))&&(v=l.floating[x]||s.floating[y]);const S=_/2-R/2,M=v/2-C[y]/2-1,B=ln(d[m],M),j=ln(d[E],M),X=v-C[y]-j,H=v/2-C[y]/2+S,W=Vu(B,H,X),ve=!a.arrow&&Wn(r)!=null&&H!==W&&s.reference[y]/2-(HW<=0)){var j,X;const W=(((j=s.flip)==null?void 0:j.index)||0)+1,ve=v[W];if(ve&&(!(d==="alignment"?E!==Pt(ve):!1)||B.every(ie=>Pt(ie.placement)===E?ie.overflows[0]>0:!0)))return{data:{index:W,overflows:B},reset:{placement:ve}};let le=(X=B.filter(ue=>ue.overflows[0]<=0).sort((ue,ie)=>ue.overflows[1]-ie.overflows[1])[0])==null?void 0:X.placement;if(!le)switch(p){case"bestFit":{var H;const ue=(H=B.filter(ie=>{if(T){const Ee=Pt(ie.placement);return Ee===E||Ee==="y"}return!0}).map(ie=>[ie.placement,ie.overflows.filter(Ee=>Ee>0).reduce((Ee,Ge)=>Ee+Ge,0)]).sort((ie,Ee)=>ie[1]-Ee[1])[0])==null?void 0:H[0];ue&&(le=ue);break}case"initialPlacement":le=l;break}if(r!==le)return{reset:{placement:le}}}return{}}}};function _l(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Cl(e){return Rh.some(t=>e[t]>=0)}const jh=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:o}=t,{strategy:r="referenceHidden",...s}=Gt(e,t);switch(r){case"referenceHidden":{const i=await o.detectOverflow(t,{...s,elementContext:"reference"}),l=_l(i,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:Cl(l)}}}case"escaped":{const i=await o.detectOverflow(t,{...s,altBoundary:!0}),l=_l(i,n.floating);return{data:{escapedOffsets:l,escaped:Cl(l)}}}default:return{}}}}},Uu=new Set(["left","top"]);async function Kh(e,t){const{placement:n,platform:o,elements:r}=e,s=await(o.isRTL==null?void 0:o.isRTL(r.floating)),i=an(n),l=Wn(n),a=Pt(n)==="y",u=Uu.has(i)?-1:1,c=s&&a?-1:1,d=Gt(t,e);let{mainAxis:h,crossAxis:p,alignmentAxis:y}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof y=="number"&&(p=l==="end"?y*-1:y),a?{x:p*c,y:h*u}:{x:h*u,y:p*c}}const Wh=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:s,placement:i,middlewareData:l}=t,a=await Kh(t,e);return i===((n=l.offset)==null?void 0:n.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:r+a.x,y:s+a.y,data:{...a,placement:i}}}}},zh=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r,platform:s}=t,{mainAxis:i=!0,crossAxis:l=!1,limiter:a={fn:E=>{let{x,y:_}=E;return{x,y:_}}},...u}=Gt(e,t),c={x:n,y:o},d=await s.detectOverflow(t,u),h=Pt(r),p=yi(h);let y=c[p],C=c[h];const b=(E,x)=>Vu(x+d[E==="y"?"top":"left"],x,x-d[E==="y"?"bottom":"right"]);i&&(y=b(p,y)),l&&(C=b(h,C));const m=a.fn({...t,[p]:y,[h]:C});return{...m,data:{x:m.x-n,y:m.y-o,enabled:{[p]:i,[h]:l}}}}}},Gh=function(e){return e===void 0&&(e={}),{options:e,fn(t){var n,o;const{x:r,y:s,placement:i,rects:l,middlewareData:a}=t,{offset:u=0,mainAxis:c=!0,crossAxis:d=!0}=Gt(e,t),h={x:r,y:s},p=Pt(i),y=yi(p);let C=h[y],b=h[p];const m=Gt(u,t),E=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:(n=m.mainAxis)!=null?n:0,crossAxis:(o=m.crossAxis)!=null?o:0};if(c){const R=y==="y"?"height":"width",T=l.reference[y]-l.floating[R]+E.mainAxis,v=l.reference[y]+l.reference[R]-E.mainAxis;Cv&&(C=v)}if(d){var x,_;const R=y==="y"?"width":"height",T=Uu.has(an(i)),v=l.reference[p]-l.floating[R]+(T&&((x=a.offset)==null?void 0:x[p])||0)+(T?0:E.crossAxis),S=l.reference[p]+l.reference[R]+(T?0:((_=a.offset)==null?void 0:_[p])||0)-(T?E.crossAxis:0);bS&&(b=S)}return{[y]:C,[p]:b}}}},Yh=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:o,platform:r,elements:s}=t,{apply:i=()=>{},...l}=Gt(e,t),a=await r.detectOverflow(t,l),u=an(n),c=Wn(n),d=Pt(n)==="y",{width:h,height:p}=o.floating;let y,C;u==="top"||u==="bottom"?(y=u,C=c===(await(r.isRTL==null?void 0:r.isRTL(s.floating))?"start":"end")?"left":"right"):(C=u,y=c==="end"?"top":"bottom");const b=p-a.top-a.bottom,m=h-a.left-a.right,E=ln(p-a[y],b),x=ln(h-a[C],m),_=t.middlewareData.shift,R=!_;let T=E,v=x;_!=null&&_.enabled.x&&(v=m),_!=null&&_.enabled.y&&(T=b),R&&!c&&(d?v=h-2*Ut(a.left,a.right):T=p-2*Ut(a.top,a.bottom)),await i({...t,availableWidth:v,availableHeight:T});const S=await r.getDimensions(s.floating);return h!==S.width||p!==S.height?{reset:{rects:!0}}:{}}}};function xr(){return typeof window<"u"}function Pn(e){return _i(e)?(e.nodeName||"").toLowerCase():"#document"}function ot(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Qt(e){var t;return(t=(_i(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function _i(e){return xr()?e instanceof Node||e instanceof ot(e).Node:!1}function Mt(e){return xr()?e instanceof Element||e instanceof ot(e).Element:!1}function fn(e){return xr()?e instanceof HTMLElement||e instanceof ot(e).HTMLElement:!1}function Sl(e){return!xr()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ot(e).ShadowRoot}function Ar(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=Dt(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&r!=="inline"&&r!=="contents"}function Jh(e){return/^(table|td|th)$/.test(Pn(e))}function Tr(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const Xh=/transform|translate|scale|rotate|perspective|filter/,Qh=/paint|layout|strict|content/,mn=e=>!!e&&e!=="none";let Yr;function Ci(e){const t=Mt(e)?Dt(e):e;return mn(t.transform)||mn(t.translate)||mn(t.scale)||mn(t.rotate)||mn(t.perspective)||!Si()&&(mn(t.backdropFilter)||mn(t.filter))||Xh.test(t.willChange||"")||Qh.test(t.contain||"")}function Zh(e){let t=xn(e);for(;fn(t)&&!go(t);){if(Ci(t))return t;if(Tr(t))return null;t=xn(t)}return null}function Si(){return Yr==null&&(Yr=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Yr}function go(e){return/^(html|body|#document)$/.test(Pn(e))}function Dt(e){return ot(e).getComputedStyle(e)}function Pr(e){return Mt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function xn(e){if(Pn(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Sl(e)&&e.host||Qt(e);return Sl(t)?t.host:t}function ju(e){const t=xn(e);return go(t)?(e.ownerDocument||e).body:fn(t)&&Ar(t)?t:ju(t)}function vo(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=ju(e),s=r===((o=e.ownerDocument)==null?void 0:o.body),i=ot(r);if(s){const l=Vs(i);return t.concat(i,i.visualViewport||[],Ar(r)?r:[],l&&n?vo(l):[])}else return t.concat(r,vo(r,[],n))}function Vs(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ku(e){const t=Dt(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=fn(e),s=r?e.offsetWidth:n,i=r?e.offsetHeight:o,l=Qo(n)!==s||Qo(o)!==i;return l&&(n=s,o=i),{width:n,height:o,$:l}}function Ei(e){return Mt(e)?e:e.contextElement}function Un(e){const t=Ei(e);if(!fn(t))return jt(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:s}=Ku(t);let i=(s?Qo(n.width):n.width)/o,l=(s?Qo(n.height):n.height)/r;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const eg=jt(0);function Wu(e){const t=ot(e);return!Si()||!t.visualViewport?eg:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function tg(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===ot(e)}function An(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),s=Ei(e);let i=jt(1);t&&(o?Mt(o)&&(i=Un(o)):i=Un(e));const l=tg(s,n,o)?Wu(s):jt(0);let a=(r.left+l.x)/i.x,u=(r.top+l.y)/i.y,c=r.width/i.x,d=r.height/i.y;if(s&&o){const h=ot(s),p=Mt(o)?ot(o):o;let y=h,C=Vs(y);for(;C&&p!==y;){const b=Un(C),m=C.getBoundingClientRect(),E=Dt(C),x=m.left+(C.clientLeft+parseFloat(E.paddingLeft))*b.x,_=m.top+(C.clientTop+parseFloat(E.paddingTop))*b.y;a*=b.x,u*=b.y,c*=b.x,d*=b.y,a+=x,u+=_,y=ot(C),C=Vs(y)}}return er({width:c,height:d,x:a,y:u})}function Or(e,t){const n=Pr(e).scrollLeft;return t?t.left+n:An(Qt(e)).left+n}function zu(e,t){const n=e.getBoundingClientRect(),o=n.left+t.scrollLeft-Or(e,n),r=n.top+t.scrollTop;return{x:o,y:r}}function ng(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const s=r==="fixed",i=Qt(o),l=t?Tr(t.floating):!1;if(o===i||l&&s)return n;let a={scrollLeft:0,scrollTop:0},u=jt(1);const c=jt(0),d=fn(o);if((d||!s)&&((Pn(o)!=="body"||Ar(i))&&(a=Pr(o)),d)){const p=An(o);u=Un(o),c.x=p.x+o.clientLeft,c.y=p.y+o.clientTop}const h=i&&!d&&!s?zu(i,a):jt(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-a.scrollLeft*u.x+c.x+h.x,y:n.y*u.y-a.scrollTop*u.y+c.y+h.y}}function og(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function rg(e){const t=Pr(e),n=e.ownerDocument.body,o=Ut(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=Ut(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let s=-t.scrollLeft+Or(e);const i=-t.scrollTop;return Dt(n).direction==="rtl"&&(s+=Ut(e.clientWidth,n.clientWidth)-o),{width:o,height:r,x:s,y:i}}const sg=25;function ig(e,t,n){n===void 0&&(n="viewport");const o=n==="layoutViewport",r=ot(e),s=Qt(e),i=r.visualViewport;let l=s.clientWidth,a=s.clientHeight,u=0,c=0;if(i){const h=!Si()||t==="fixed";o?h||(u=-i.offsetLeft,c=-i.offsetTop):(l=i.width,a=i.height,h&&(u=i.offsetLeft,c=i.offsetTop))}if(Or(s)<=0){const h=s.ownerDocument,p=h.body,y=getComputedStyle(p),C=h.compatMode==="CSS1Compat"&&parseFloat(y.marginLeft)+parseFloat(y.marginRight)||0,b=Math.abs(s.clientWidth-p.clientWidth-C),m=getComputedStyle(s).scrollbarGutter==="stable both-edges"?b/2:b;m<=sg&&(l-=m)}return{width:l,height:a,x:u,y:c}}function lg(e,t){const n=An(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,s=Un(e),i=e.clientWidth*s.x,l=e.clientHeight*s.y,a=r*s.x,u=o*s.y;return{width:i,height:l,x:a,y:u}}function El(e,t,n){let o;if(t==="viewport"||t==="layoutViewport")o=ig(e,n,t);else if(t==="document")o=rg(Qt(e));else if(Mt(t))o=lg(t,n);else{const r=Wu(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return er(o)}function ag(e,t){const n=t.get(e);if(n)return n;let o=vo(e,[],!1).filter(l=>Mt(l)&&Pn(l)!=="body"),r=null;const s=Dt(e).position==="fixed";let i=s?xn(e):e;for(;Mt(i)&&!go(i);){const l=Dt(i),a=Ci(i),u=r?r.position:s?"fixed":"";!a&&(u==="fixed"||u==="absolute"&&l.position==="static")?o=o.filter(d=>d!==i):r=l,i=xn(i)}return t.set(e,o),o}function ug(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const i=[...n==="clippingAncestors"?Tr(t)?[]:ag(t,this._c):[].concat(n),o],l=El(t,i[0],r);let a=l.top,u=l.right,c=l.bottom,d=l.left;for(let h=1;h{l(!1,1e-7)},1e3)}v=!1}try{o=new IntersectionObserver(S,{...T,root:s.ownerDocument})}catch{o=new IntersectionObserver(S,T)}o.observe(e)}const a=ot(e),u=()=>l(n);return a.addEventListener("resize",u),l(!0),()=>{a.removeEventListener("resize",u),i()}}function vg(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:a=!1}=o,u=Ei(e),c=r||s?[...u?vo(u):[],...t?vo(t):[]]:[];c.forEach(m=>{r&&m.addEventListener("scroll",n),s&&m.addEventListener("resize",n)});const d=u&&l?gg(u,n,s):null;let h=-1,p=null;i&&(p=new ResizeObserver(m=>{let[E]=m;E&&E.target===u&&p&&t&&(p.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var x;(x=p)==null||x.observe(t)})),n()}),u&&!a&&p.observe(u),t&&p.observe(t));let y,C=a?An(e):null;a&&b();function b(){const m=An(e);C&&!Yu(C,m)&&n(),C=m,y=requestAnimationFrame(b)}return n(),()=>{var m;c.forEach(E=>{r&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),d?.(),(m=p)==null||m.disconnect(),p=null,a&&cancelAnimationFrame(y)}}const mg=Wh,yg=zh,Al=Uh,bg=Yh,wg=jh,_g=Hh,Cg=Gh,Sg=(e,t,n)=>{const o=new Map,r=n??{},s={...hg,...r.platform,_c:o};return Vh(e,t,{...r,platform:s})};function Eg(e){return e!=null&&typeof e=="object"&&"$el"in e}function Hs(e){if(Eg(e)){const t=e.$el;return _i(t)&&Pn(t)==="#comment"?null:t}return e}function qn(e){return typeof e=="function"?e():f(e)}function xg(e){return{name:"arrow",options:e,fn(t){const n=Hs(qn(e.element));return n==null?{}:_g({element:n,padding:e.padding}).fn(t)}}}function Ju(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Tl(e,t){const n=Ju(e);return Math.round(t*n)/n}function Ag(e,t,n){n===void 0&&(n={});const o=n.whileElementsMounted,r=z(()=>{var v;return(v=qn(n.open))!=null?v:!0}),s=z(()=>qn(n.middleware)),i=z(()=>{var v;return(v=qn(n.placement))!=null?v:"bottom"}),l=z(()=>{var v;return(v=qn(n.strategy))!=null?v:"absolute"}),a=z(()=>{var v;return(v=qn(n.transform))!=null?v:!0}),u=z(()=>Hs(e.value)),c=z(()=>Hs(t.value)),d=F(0),h=F(0),p=F(l.value),y=F(i.value),C=gr({}),b=F(!1),m=z(()=>{const v={position:p.value,left:"0",top:"0"};if(!c.value)return v;const S=Tl(c.value,d.value),M=Tl(c.value,h.value);return a.value?{...v,transform:"translate("+S+"px, "+M+"px)",...Ju(c.value)>=1.5&&{willChange:"transform"}}:{position:p.value,left:S+"px",top:M+"px"}});let E;function x(){if(u.value==null||c.value==null)return;const v=r.value;Sg(u.value,c.value,{middleware:s.value,placement:i.value,strategy:l.value}).then(S=>{d.value=S.x,h.value=S.y,p.value=S.strategy,y.value=S.placement,C.value=S.middlewareData,b.value=v!==!1})}function _(){typeof E=="function"&&(E(),E=void 0)}function R(){if(_(),o===void 0){x();return}if(u.value!=null&&c.value!=null){E=o(u.value,c.value,x);return}}function T(){r.value||(b.value=!1)}return we([s,i,l,r],x,{flush:"sync"}),we([u,c],R,{flush:"sync"}),we(r,T,{flush:"sync"}),Qs()&&Zs(_),{x:rn(d),y:rn(h),strategy:rn(p),placement:rn(y),middlewareData:rn(C),isPositioned:rn(b),floatingStyles:m,update:x}}const Tg=["dir"],Pg={side:"bottom",sideOffset:0,sideFlip:!0,align:"center",alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:"partial",hideWhenDetached:!1,positionStrategy:"fixed",updatePositionStrategy:"optimized",prioritizePosition:!1},[h1,Og]=dt("PopperContent");var Rg=J({inheritAttrs:!1,__name:"PopperContent",props:_d({memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Pg}),emits:["placed"],setup(e,{emit:t}){const n=e,o=t,r=Fu(),{forwardRef:s,currentElement:i}=de(),l=xu(z(()=>n.dir)),a=F(),u=F(),{width:c,height:d}=hp(u),h=z(()=>n.side+(n.align!=="center"?`-${n.align}`:"")),p=z(()=>typeof n.collisionPadding=="number"?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),y=z(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),C=z(()=>({padding:p.value,boundary:y.value.filter(Ph),altBoundary:y.value.length>0})),b=z(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),m=z(()=>[mg({mainAxis:n.sideOffset+d.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&Al({...C.value,...b.value}),n.avoidCollisions&&yg({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky==="partial"?Cg():void 0,...C.value}),!n.prioritizePosition&&n.avoidCollisions&&Al({...C.value,...b.value}),bg({...C.value,apply:({elements:H,rects:W,availableWidth:ve,availableHeight:le})=>{const{width:ue,height:ie}=W.reference,Ee=H.floating.style;Ee.setProperty("--reka-popper-available-width",`${ve}px`),Ee.setProperty("--reka-popper-available-height",`${le}px`),Ee.setProperty("--reka-popper-anchor-width",`${ue}px`),Ee.setProperty("--reka-popper-anchor-height",`${ie}px`)}}),u.value&&xg({element:u.value,padding:n.arrowPadding}),Oh({arrowWidth:c.value,arrowHeight:d.value,dir:l.value}),n.hideWhenDetached&&wg({strategy:"referenceHidden",...C.value})]),E=z(()=>n.reference??r.anchor.value),{floatingStyles:x,placement:_,isPositioned:R,middlewareData:T}=Ag(E,a,{strategy:n.positionStrategy,placement:h,whileElementsMounted:(...H)=>vg(...H,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy==="always"}),middleware:m}),v=z(()=>Ls(_.value)[0]),S=z(()=>Ls(_.value)[1]);Ua(()=>{R.value&&o("placed")});const M=z(()=>{const H=T.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&H}),B=F("");yt(()=>{i.value&&(B.value=window.getComputedStyle(i.value).zIndex)});const j=z(()=>T.value.arrow?.x??0),X=z(()=>T.value.arrow?.y??0);return Og({placedSide:v,onArrowChange:H=>u.value=H,arrowX:j,arrowY:X,shouldHideArrow:M}),(H,W)=>(I(),ae("div",{ref_key:"floatingRef",ref:a,"data-reka-popper-content-wrapper":"",dir:f(l),style:st({...f(x),transform:f(R)?f(x).transform:"translate(0, -200%)",minWidth:"max-content",zIndex:B.value,"--reka-popper-transform-origin":[f(T).transformOrigin?.x,f(T).transformOrigin?.y].join(" "),...f(T).hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}})},[n.memoDependencies?of([n.asChild,n.as,v.value,S.value,f(R),...Object.values(H.$attrs),...n.memoDependencies],()=>(I(),G(f(Se),ce({key:0,ref:f(s)},H.$attrs,{"as-child":n.asChild,as:n.as,"data-side":v.value,"data-align":S.value,style:{animation:f(R)?void 0:"none"}}),{default:k(()=>[Z(H.$slots,"default")]),_:3},16,["as-child","as","data-side","data-align","style"])),W,0):(I(),G(f(Se),ce({key:1,ref:f(s)},H.$attrs,{"as-child":n.asChild,as:n.as,"data-side":v.value,"data-align":S.value,dir:f(l),style:{animation:f(R)?void 0:"none"}}),{default:k(()=>[Z(H.$slots,"default")]),_:3},16,["as-child","as","data-side","data-align","dir","style"]))],12,Tg))}}),Mg=Rg;function Dg(e){const t=xo({nonce:F()});return z(()=>e?.value||t.nonce?.value)}const Ig=[" ","Enter","ArrowUp","ArrowDown"],Bg=[" ","Enter"],ft=10;function mo(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(o=>Us(o,t,n)):Us(e,t,n)}function Us(e,t,n){return e===void 0||t===void 0?!1:typeof e=="string"?e===t:typeof n=="function"?n(e,t):typeof n=="string"?e?.[n]===t?.[n]:Lf(e,t)}function kg(e){return e==null||e===""||Array.isArray(e)&&e.length===0}const $g=["value"],[pn,Xu]=dt("SelectRoot");var qg=J({inheritAttrs:!1,__name:"SelectRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},nullableValue:{type:String,required:!1,default:""},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","update:open"],setup(e,{emit:t}){const n=e,o=t,{required:r,disabled:s,multiple:i,dir:l}=cn(n),a=po(n,"modelValue",o,{defaultValue:n.defaultValue??(i.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),u=po(n,"open",o,{defaultValue:n.defaultOpen,passive:n.open===void 0}),c=F(),d=F(),h=F({x:0,y:0}),p=z(()=>i.value&&Array.isArray(a.value)?a.value?.length===0:ks(a.value));dn({isProvider:!0});const y=xu(l),C=Au(c),b=F(new Set),m=z(()=>Array.from(b.value).map(_=>_.value).join(";"));function E(_){if(i.value){const R=Array.isArray(a.value)?[...a.value]:[],T=R.findIndex(v=>Us(v,_,n.by));T===-1?R.push(_):R.splice(T,1),a.value=[...R]}else a.value=_}function x(_){return Array.from(b.value).find(R=>mo(_,R.value,n.by))}return Xu({triggerElement:c,onTriggerChange:_=>{c.value=_},valueElement:d,onValueElementChange:_=>{d.value=_},contentId:"",modelValue:a,onValueChange:E,by:n.by,open:u,multiple:i,required:r,onOpenChange:_=>{u.value=_},dir:y,triggerPointerDownPosRef:h,disabled:s,isEmptyModelValue:p,optionsSet:b,onOptionAdd:_=>{const R=x(_.value);R&&b.value.delete(R),b.value.add(_)},onOptionRemove:_=>{const R=x(_.value);R&&b.value.delete(R)}}),(_,R)=>(I(),G(f(xh),null,{default:k(()=>[Z(_.$slots,"default",{modelValue:f(a),open:f(u)}),f(C)&&_.name?(I(),G(Fg,{key:m.value,"aria-hidden":"true",tabindex:"-1",multiple:f(i),required:f(r),name:_.name,autocomplete:_.autocomplete,disabled:f(s),value:f(a)},{default:k(()=>[f(ks)(f(a))?(I(),ae("option",{key:0,value:_.nullableValue},null,8,$g)):Ce("v-if",!0),(I(!0),ae(Ae,null,_o(Array.from(b.value),T=>(I(),ae("option",ce({key:T.value??""},{ref_for:!0},T),null,16))),128))]),_:1},8,["multiple","required","name","autocomplete","disabled","value"])):Ce("v-if",!0)]),_:3}))}}),Ng=qg,Lg=J({__name:"BubbleSelect",props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){const t=e,n=F(),o=pn();we(()=>t.value,(s,i)=>{const l=window.HTMLSelectElement.prototype,u=Object.getOwnPropertyDescriptor(l,"value").set;if(s!==i&&u&&n.value){const c=new Event("change",{bubbles:!0});u.call(n.value,s),n.value.dispatchEvent(c)}});function r(s){o.onValueChange(s.target.value)}return(s,i)=>(I(),G(f(Er),{"as-child":""},{default:k(()=>[g("select",ce({ref_key:"selectElement",ref:n},t,{onInput:r}),[Z(s.$slots,"default")],16)]),_:3}))}}),Fg=Lg,Vg=J({__name:"SelectPopperPosition",props:{memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:ft},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const n=hi(e);return(o,r)=>(I(),G(f(Mg),ce(f(n),{style:{boxSizing:"border-box","--reka-select-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-select-content-available-width":"var(--reka-popper-available-width)","--reka-select-content-available-height":"var(--reka-popper-available-height)","--reka-select-trigger-width":"var(--reka-popper-anchor-width)","--reka-select-trigger-height":"var(--reka-popper-anchor-height)"}}),{default:k(()=>[Z(o.$slots,"default")]),_:3},16))}}),Hg=Vg;const Ug={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[Rr,Qu]=dt("SelectContent");var jg=J({__name:"SelectContentImpl",props:{position:{type:String,required:!1,default:"item-aligned"},bodyLock:{type:Boolean,required:!1,default:!0},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(e,{emit:t}){const n=e,o=t,r=pn();ap(),Su(n.bodyLock);const{CollectionSlot:s,getItems:i}=dn(),l=F();Ou(l);const{search:a,handleTypeaheadSearch:u}=Ru(),c=F(),d=F(),h=F(),p=F(!1),y=F(!1),C=F(!1);function b(){d.value&&l.value&&gl([d.value,l.value])}we(p,()=>{b()});const{onOpenChange:m,triggerPointerDownPosRef:E}=r;yt(T=>{if(!l.value)return;let v={x:0,y:0};const S=B=>{v={x:Math.abs(Math.round(B.pageX)-(E.value?.x??0)),y:Math.abs(Math.round(B.pageY)-(E.value?.y??0))}},M=B=>{B.pointerType!=="touch"&&(v.x<=10&&v.y<=10?B.preventDefault():l.value?.contains(B.target)||m(!1),document.removeEventListener("pointermove",S),E.value=null)};E.value!==null&&(document.addEventListener("pointermove",S),document.addEventListener("pointerup",M,{capture:!0,once:!0})),T(()=>{document.removeEventListener("pointermove",S),document.removeEventListener("pointerup",M,{capture:!0})})});function x(T){const v=T.ctrlKey||T.altKey||T.metaKey;if(T.key==="Tab"&&T.preventDefault(),!v&&T.key.length===1&&u(T.key,i()),["ArrowUp","ArrowDown","Home","End"].includes(T.key)){let M=[...i().map(B=>B.ref)];if(["ArrowUp","End"].includes(T.key)&&(M=M.slice().reverse()),["ArrowUp","ArrowDown"].includes(T.key)){const B=T.target,j=M.indexOf(B);M=M.slice(j+1)}setTimeout(()=>gl(M)),T.preventDefault()}}const _=z(()=>n.position==="popper"?n:{}),R=hi(_.value);return Qu({content:l,viewport:c,onViewportChange:T=>{c.value=T},itemRefCallback:(T,v,S)=>{const M=!y.value&&!S,B=mo(r.modelValue.value,v,r.by);if(r.multiple.value){if(C.value)return;(B||M)&&(d.value=T,B&&(C.value=!0))}else(B||M)&&(d.value=T);M&&(y.value=!0)},selectedItem:d,selectedItemText:h,onItemLeave:()=>{l.value?.focus()},itemTextRefCallback:(T,v,S)=>{const M=!y.value&&!S;(mo(r.modelValue.value,v,r.by)||M)&&(h.value=T)},focusSelectedItem:b,position:n.position,isPositioned:p,searchRef:a}),(T,v)=>(I(),G(f(s),null,{default:k(()=>[L(f(Bu),{"as-child":"",onMountAutoFocus:v[6]||(v[6]=Ue(()=>{},["prevent"])),onUnmountAutoFocus:v[7]||(v[7]=S=>{o("closeAutoFocus",S),!S.defaultPrevented&&(f(r).triggerElement.value?.focus({preventScroll:!0}),S.preventDefault())})},{default:k(()=>[L(f(Iu),{"as-child":"","disable-outside-pointer-events":T.disableOutsidePointerEvents,onFocusOutside:v[2]||(v[2]=Ue(()=>{},["prevent"])),onDismiss:v[3]||(v[3]=S=>f(r).onOpenChange(!1)),onEscapeKeyDown:v[4]||(v[4]=S=>o("escapeKeyDown",S)),onPointerDownOutside:v[5]||(v[5]=S=>o("pointerDownOutside",S))},{default:k(()=>[(I(),G(Xa(T.position==="popper"?Hg:Yg),ce({...T.$attrs,...f(R)},{id:f(r).contentId,ref:S=>{if(!S)return;const M=f(ut)(S);M?.hasAttribute("data-reka-popper-content-wrapper")?l.value=M.firstElementChild:l.value=M},role:"listbox","data-state":f(r).open.value?"open":"closed",dir:f(r).dir.value,style:{display:"flex",flexDirection:"column",outline:"none"},onContextmenu:v[0]||(v[0]=Ue(()=>{},["prevent"])),onPlaced:v[1]||(v[1]=S=>p.value=!0),onKeydown:x}),{default:k(()=>[Z(T.$slots,"default")]),_:3},16,["id","data-state","dir","onKeydown"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Kg=jg;const[Wg,zg]=dt("SelectItemAlignedPosition");var Gg=J({inheritAttrs:!1,__name:"SelectItemAlignedPosition",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["placed"],setup(e,{emit:t}){const n=e,o=t,{getItems:r}=dn(),s=pn(),i=Rr(),l=F(!1),a=F(!0),u=F(),{forwardRef:c,currentElement:d}=de(),{viewport:h,selectedItem:p,selectedItemText:y,focusSelectedItem:C}=i;function b(){if(s.triggerElement.value&&s.valueElement.value&&u.value&&d.value&&h?.value&&p?.value&&y?.value){const x=s.triggerElement.value.getBoundingClientRect(),_=d.value.getBoundingClientRect(),R=s.valueElement.value.getBoundingClientRect(),T=y.value.getBoundingClientRect();if(s.dir.value!=="rtl"){const Pe=T.left-_.left,Oe=R.left-Pe,$e=x.left-Oe,qe=x.width+$e,To=Math.max(qe,_.width),w=window.innerWidth-ft,A=ul(Oe,ft,Math.max(ft,w-To));u.value.style.minWidth=`${qe}px`,u.value.style.left=`${A}px`}else{const Pe=_.right-T.right,Oe=window.innerWidth-R.right-Pe,$e=window.innerWidth-x.right-Oe,qe=x.width+$e,To=Math.max(qe,_.width),w=window.innerWidth-ft,A=ul(Oe,ft,Math.max(ft,w-To));u.value.style.minWidth=`${qe}px`,u.value.style.right=`${A}px`}const v=r().map(Pe=>Pe.ref),S=window.innerHeight-ft*2,M=h.value.scrollHeight,B=window.getComputedStyle(d.value),j=Number.parseInt(B.borderTopWidth,10),X=Number.parseInt(B.paddingTop,10),H=Number.parseInt(B.borderBottomWidth,10),W=Number.parseInt(B.paddingBottom,10),ve=j+X+M+W+H,le=Math.min(p.value.offsetHeight*5,ve),ue=window.getComputedStyle(h.value),ie=Number.parseInt(ue.paddingTop,10),Ee=Number.parseInt(ue.paddingBottom,10),Ge=x.top+x.height/2-ft,tt=S-Ge,ke=p.value.offsetHeight/2,Zt=p.value.offsetTop+ke,en=j+X+Zt,hn=ve-en;if(en<=Ge){const Pe=p.value===v.at(-1);u.value.style.bottom="0px";const Oe=d.value.clientHeight-h.value.offsetTop-h.value.offsetHeight,$e=Math.max(tt,ke+(Pe?Ee:0)+Oe+H),qe=en+$e;u.value.style.height=`${qe}px`}else{const Pe=p.value===v[0];u.value.style.top="0px";const $e=Math.max(Ge,j+h.value.offsetTop+(Pe?ie:0)+ke)+hn;u.value.style.height=`${$e}px`,h.value.scrollTop=en-Ge+h.value.offsetTop}u.value.style.margin=`${ft}px 0`,u.value.style.minHeight=`${le}px`,u.value.style.maxHeight=`${S}px`,o("placed"),requestAnimationFrame(()=>l.value=!0)}}const m=F("");Re(async()=>{await Le(),b(),d.value&&(m.value=window.getComputedStyle(d.value).zIndex)});function E(x){x&&a.value===!0&&(b(),C?.(),a.value=!1)}return op(s.triggerElement,()=>{b()}),zg({contentWrapper:u,shouldExpandOnScrollRef:l,onScrollButtonChange:E}),(x,_)=>(I(),ae("div",{ref_key:"contentWrapperElement",ref:u,style:st({display:"flex",flexDirection:"column",position:"fixed",zIndex:m.value})},[L(f(Se),ce({ref:f(c),style:{boxSizing:"border-box",maxHeight:"100%"}},{...x.$attrs,...n}),{default:k(()=>[Z(x.$slots,"default")]),_:3},16)],4))}}),Yg=Gg,Jg=J({inheritAttrs:!1,__name:"SelectProvider",props:{context:{type:Object,required:!0}},setup(e){return Xu(e.context),Qu(Ug),(n,o)=>Z(n.$slots,"default")}}),Xg=Jg;const Qg={key:1};var Zg=J({inheritAttrs:!1,__name:"SelectContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(e,{emit:t}){const n=e,r=Tu(n,t),s=pn(),i=F();Re(()=>{i.value=new DocumentFragment});const l=F(),a=z(()=>n.forceMount||s.open.value),u=F(a.value);let c;function d(){c&&(clearTimeout(c),c=void 0)}return we(a,(h,p,y)=>{d(),c=setTimeout(()=>{u.value=a.value,c=void 0}),y(d)}),Xt(d),(h,p)=>a.value||u.value||l.value?.present?(I(),G(f(Sr),{key:0,ref_key:"presenceRef",ref:l,present:a.value},{default:k(()=>[L(Kg,bt(ct({...f(r),...h.$attrs})),{default:k(()=>[Z(h.$slots,"default")]),_:3},16)]),_:3},8,["present"])):i.value?(I(),ae("div",Qg,[(I(),G(si,{to:i.value},[L(Xg,{context:f(s)},{default:k(()=>[Z(h.$slots,"default")]),_:3},8,["context"])],8,["to"]))])):Ce("v-if",!0)}}),ev=Zg,tv=J({__name:"SelectIcon",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){return(t,n)=>(I(),G(f(Se),{"aria-hidden":"true",as:t.as,"as-child":t.asChild},{default:k(()=>[Z(t.$slots,"default",{},()=>[n[0]||(n[0]=oe("▼"))])]),_:3},8,["as","as-child"]))}}),nv=tv;const[Zu,ov]=dt("SelectItem");var rv=J({__name:"SelectItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(e,{emit:t}){const n=e,o=t,{disabled:r}=cn(n),s=pn(),i=Rr(),{forwardRef:l,currentElement:a}=de(),{CollectionItem:u}=dn(),c=z(()=>mo(s.modelValue?.value,n.value,s.by)),d=F(!1),h=F(n.textValue??""),p=ho(void 0,"reka-select-item-text"),y="select.select";async function C(_){if(_.defaultPrevented)return;const R={originalEvent:_,value:n.value};di(y,b,R)}async function b(_){await Le(),o("select",_),!_.defaultPrevented&&(r.value||(s.onValueChange(n.value),s.multiple.value||s.onOpenChange(!1)))}async function m(_){await Le(),!_.defaultPrevented&&(r.value?i.onItemLeave?.():_.currentTarget?.focus({preventScroll:!0}))}async function E(_){await Le(),!_.defaultPrevented&&_.currentTarget===ze()&&i.onItemLeave?.()}async function x(_){await Le(),!(_.defaultPrevented||i.searchRef?.value!==""&&_.key===" ")&&(Bg.includes(_.key)&&C(_),_.key===" "&&_.preventDefault())}if(n.value==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return Re(()=>{a.value&&i.itemRefCallback(a.value,n.value,n.disabled)}),ov({value:n.value,disabled:r,textId:p,isSelected:c,onItemTextChange:_=>{h.value=((h.value||_?.textContent)??"").trim()}}),(_,R)=>(I(),G(f(u),{value:{textValue:h.value}},{default:k(()=>[L(f(Se),{ref:f(l),role:"option","aria-labelledby":f(p),"data-highlighted":d.value?"":void 0,"aria-selected":c.value,"data-state":c.value?"checked":"unchecked","aria-disabled":f(r)||void 0,"data-disabled":f(r)?"":void 0,tabindex:f(r)?void 0:-1,as:_.as,"as-child":_.asChild,onFocus:R[0]||(R[0]=T=>d.value=!0),onBlur:R[1]||(R[1]=T=>d.value=!1),onPointerup:C,onPointerdown:R[2]||(R[2]=T=>{T.currentTarget.focus({preventScroll:!0})}),onTouchend:R[3]||(R[3]=Ue(()=>{},["prevent","stop"])),onPointermove:m,onPointerleave:E,onKeydown:x},{default:k(()=>[Z(_.$slots,"default")]),_:3},8,["aria-labelledby","data-highlighted","aria-selected","data-state","aria-disabled","data-disabled","tabindex","as","as-child"])]),_:3},8,["value"]))}}),sv=rv,iv=J({__name:"SelectItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,n=Zu();return(o,r)=>f(n).isSelected.value?(I(),G(f(Se),ce({key:0,"aria-hidden":"true"},t),{default:k(()=>[Z(o.$slots,"default")]),_:3},16)):Ce("v-if",!0)}}),lv=iv,av=J({inheritAttrs:!1,__name:"SelectItemText",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,n=pn(),o=Rr(),r=Zu(),{forwardRef:s,currentElement:i}=de(),l=z(()=>({value:r.value,disabled:r.disabled.value,textContent:i.value?.textContent??r.value?.toString()??""}));return Re(()=>{i.value&&(r.onItemTextChange(i.value),o.itemTextRefCallback(i.value,r.value,r.disabled.value),n.onOptionAdd(l.value))}),Xt(()=>{n.onOptionRemove(l.value)}),(a,u)=>(I(),G(f(Se),ce({id:f(r).textId,ref:f(s)},{...t,...a.$attrs}),{default:k(()=>[Z(a.$slots,"default")]),_:3},16,["id"]))}}),uv=av,cv=J({__name:"SelectPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,o)=>(I(),G(f(mi),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),dv=cv,fv=J({__name:"SelectTrigger",props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=pn(),{forwardRef:o,currentElement:r}=de(),s=z(()=>n.disabled?.value||t.disabled);n.contentId||=ho(void 0,"reka-select-content"),Re(()=>{n.onTriggerChange(r.value)});const{getItems:i}=dn(),{search:l,handleTypeaheadSearch:a,resetTypeahead:u}=Ru();function c(){s.value||(n.onOpenChange(!0),u())}function d(m){c(),n.triggerPointerDownPosRef.value={x:Math.round(m.pageX),y:Math.round(m.pageY)}}function h(m){return m.button===0&&m.ctrlKey===!1}let p=!1;function y(m){if(m.pointerType==="touch")return m.preventDefault();const E=m.target;E.hasPointerCapture(m.pointerId)&&E.releasePointerCapture(m.pointerId),h(m)&&(d(m),p=!0)}function C(m){h(m)&&m.preventDefault()}function b(m){p||m.currentTarget?.focus(),p=!1}return(m,E)=>(I(),G(f(Th),{"as-child":"",reference:m.reference},{default:k(()=>[L(f(Se),{ref:f(o),role:"combobox",type:m.as==="button"?"button":void 0,"aria-controls":f(n).contentId,"aria-expanded":f(n).open.value||!1,"aria-required":f(n).required?.value,"aria-autocomplete":"none",disabled:s.value,dir:f(n)?.dir.value,"data-state":f(n)?.open.value?"open":"closed","data-disabled":s.value?"":void 0,"data-placeholder":f(kg)(f(n).modelValue?.value)?"":void 0,"as-child":m.asChild,as:m.as,onClick:b,onPointerdown:y,onMousedown:C,onPointerup:E[0]||(E[0]=Ue(x=>{x.pointerType==="touch"&&d(x)},["prevent"])),onKeydown:E[1]||(E[1]=x=>{const _=f(l)!=="";!(x.ctrlKey||x.altKey||x.metaKey)&&x.key.length===1&&_&&x.key===" "||(f(a)(x.key,f(i)()),f(Ig).includes(x.key)&&(c(),x.preventDefault()))})},{default:k(()=>[Z(m.$slots,"default")]),_:3},8,["type","aria-controls","aria-expanded","aria-required","disabled","dir","data-state","data-disabled","data-placeholder","as-child","as"])]),_:3},8,["reference"]))}}),pv=fv,hv=J({__name:"SelectValue",props:{placeholder:{type:String,required:!1,default:""},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,{forwardRef:n,currentElement:o}=de(),r=pn();Re(()=>{r.valueElement=o});const s=z(()=>{let l=[];const a=Array.from(r.optionsSet.value),u=c=>a.find(d=>mo(c,d.value,r.by));return Array.isArray(r.modelValue.value)?l=r.modelValue.value.map(c=>u(c)?.textContent??""):l=[u(r.modelValue.value)?.textContent??""],l.filter(Boolean)}),i=z(()=>s.value.length?s.value.join(", "):t.placeholder);return(l,a)=>(I(),G(f(Se),{ref:f(n),as:l.as,"as-child":l.asChild,style:{pointerEvents:"none"},"data-placeholder":s.value.length?void 0:t.placeholder},{default:k(()=>[Z(l.$slots,"default",{selectedLabel:s.value,modelValue:f(r).modelValue.value},()=>[oe(O(i.value),1)])]),_:3},8,["as","as-child","data-placeholder"]))}}),gv=hv,vv=J({__name:"SelectViewport",props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{nonce:n}=cn(t),o=Dg(n),r=Rr(),s=r.position==="item-aligned"?Wg():void 0,{forwardRef:i,currentElement:l}=de();Re(()=>{r?.onViewportChange(l.value)});const a=F(0);function u(c){const d=c.currentTarget,{shouldExpandOnScrollRef:h,contentWrapper:p}=s??{};if(h?.value&&p?.value){const y=Math.abs(a.value-d.scrollTop);if(y>0){const C=window.innerHeight-ft*2,b=Number.parseFloat(p.value.style.minHeight),m=Number.parseFloat(p.value.style.height),E=Math.max(b,m);if(E0?R:0,p.value.style.justifyContent="flex-end")}}}a.value=d.scrollTop}return(c,d)=>(I(),ae(Ae,null,[L(f(Se),ce({ref:f(i),"data-reka-select-viewport":"",role:"presentation"},{...c.$attrs,...t},{style:{position:"relative",flex:1,overflow:"hidden auto"},onScroll:u}),{default:k(()=>[Z(c.$slots,"default")]),_:3},16),L(f(Se),{as:"style",nonce:f(o)},{default:k(()=>d[0]||(d[0]=[oe(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } ")])),_:1,__:[0]},8,["nonce"])],64))}}),mv=vv;const[yv,bv]=dt("SwitchRoot");var wv=J({inheritAttrs:!1,__name:"SwitchRoot",props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:"on"},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,{disabled:r}=cn(n),s=po(n,"modelValue",o,{defaultValue:n.defaultValue??n.falseValue,passive:n.modelValue===void 0}),i=z(()=>s.value===n.trueValue);function l(){r.value||(s.value=i.value?n.falseValue:n.trueValue)}const{forwardRef:a,currentElement:u}=de(),c=Au(u),d=up(),h=z(()=>n.id&&u.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return bv({checked:i,toggleCheck:l,disabled:r}),(p,y)=>(I(),ae(Ae,null,[L(f(Se),ce({id:p.id,ref:f(a),role:"switch",type:p.as==="button"?"button":void 0,value:p.value,"aria-label":p.$attrs["aria-label"]||h.value,"aria-checked":i.value,"aria-required":p.required,"data-state":i.value?"checked":"unchecked","data-disabled":f(r)?"":void 0,"as-child":p.asChild,as:p.as,disabled:f(r)},{...f(d),...p.$attrs},{onClick:l,onKeydown:Df(Ue(l,["prevent"]),["enter"])}),{default:k(()=>[Z(p.$slots,"default",{modelValue:f(s),checked:i.value})]),_:3},16,["id","type","value","aria-label","aria-checked","aria-required","data-state","data-disabled","as-child","as","disabled","onKeydown"]),f(c)&&p.name?(I(),G(f(Ch),ce({key:0,type:"checkbox",name:p.name,disabled:f(r),required:p.required,value:p.value,checked:i.value},f(d)),null,16,["name","disabled","required","value","checked"])):Ce("v-if",!0)],64))}}),_v=wv,Cv=J({__name:"SwitchThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=yv();return de(),(n,o)=>(I(),G(f(Se),{"data-state":f(t).checked.value?"checked":"unchecked","data-disabled":f(t).disabled.value?"":void 0,"as-child":n.asChild,as:n.as},{default:k(()=>[Z(n.$slots,"default")]),_:3},8,["data-state","data-disabled","as-child","as"]))}}),Sv=Cv;const[Mr,Ev]=dt("ToastProvider");var xv=J({inheritAttrs:!1,__name:"ToastProvider",props:{label:{type:String,required:!1,default:"Notification"},duration:{type:Number,required:!1,default:5e3},disableSwipe:{type:Boolean,required:!1},swipeDirection:{type:String,required:!1,default:"right"},swipeThreshold:{type:Number,required:!1,default:50}},setup(e){const t=e,{label:n,duration:o,disableSwipe:r,swipeDirection:s,swipeThreshold:i}=cn(t);dn({isProvider:!0});const l=F(),a=F(0),u=F(!1),c=F(!1);if(t.label&&typeof t.label=="string"&&!t.label.trim()){const d="Invalid prop `label` supplied to `ToastProvider`. Expected non-empty `string`.";throw new Error(d)}return Ev({label:n,duration:o,disableSwipe:r,swipeDirection:s,swipeThreshold:i,toastCount:a,viewport:l,onViewportChange(d){l.value=d},onToastAdd(){a.value++},onToastRemove(){a.value--},isFocusedToastEscapeKeyDownRef:u,isClosePausedRef:c}),(d,h)=>Z(d.$slots,"default")}}),Av=xv,Tv=J({__name:"ToastAnnounce",setup(e){const t=Mr(),n=Xf(1e3),o=F(!1);let r=0,s=0;return at&&(r=requestAnimationFrame(()=>{s=requestAnimationFrame(()=>{o.value=!0})}),Zs(()=>{cancelAnimationFrame(r),cancelAnimationFrame(s)})),(i,l)=>f(n)||o.value?(I(),G(f(Er),{key:0,feature:"fully-hidden"},{default:k(()=>[oe(O(f(t).label.value)+" ",1),Z(i.$slots,"default")]),_:3})):Ce("v-if",!0)}}),Pv=Tv;const Ov="toast.swipeStart",Rv="toast.swipeMove",Mv="toast.swipeCancel",Dv="toast.swipeEnd",js="toast.viewportPause",Ks="toast.viewportResume";function $o(e,t,n){const o=n.originalEvent.currentTarget,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),o.dispatchEvent(r)}function Pl(e,t,n=0){const o=Math.abs(e.x),r=Math.abs(e.y),s=o>r;return t==="left"||t==="right"?s&&o>n:!s&&r>n}function Iv(e){return e.nodeType===e.ELEMENT_NODE}function ec(e){const t=[];return Array.from(e.childNodes).forEach(o=>{if(o.nodeType===o.TEXT_NODE&&o.textContent&&t.push(o.textContent),Iv(o)){const r=o.ariaHidden||o.hidden||o.style.display==="none",s=o.dataset.rekaToastAnnounceExclude==="";if(!r)if(s){const i=o.dataset.rekaToastAnnounceAlt;i&&t.push(i)}else t.push(...ec(o))}}),t}const[g1,Bv]=dt("ToastRoot");var kv=J({inheritAttrs:!1,__name:"ToastRootImpl",props:{type:{type:String,required:!1},open:{type:Boolean,required:!1,default:!1},duration:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},emits:["close","escapeKeyDown","pause","resume","swipeStart","swipeMove","swipeCancel","swipeEnd"],setup(e,{emit:t}){const n=e,o=t,{forwardRef:r,currentElement:s}=de(),{CollectionItem:i}=dn(),l=Mr(),a=F(null),u=F(null),c=z(()=>typeof n.duration=="number"?n.duration:l.duration.value),d=F(0),h=F(c.value),p=F(0),y=F(c.value),C=tp(()=>{const x=Date.now()-d.value;y.value=Math.max(h.value-x,0)},{fpsLimit:60});function b(x){x<=0||x===Number.POSITIVE_INFINITY||at&&(window.clearTimeout(p.value),d.value=Date.now(),p.value=window.setTimeout(m,x))}function m(x){const _=x?.pointerType==="";s.value?.contains(ze())&&_&&l.viewport.value?.focus(),_&&(l.isClosePausedRef.value=!1),o("close")}const E=z(()=>s.value?ec(s.value):null);if(n.type&&!["foreground","background"].includes(n.type)){const x="Invalid prop `type` supplied to `Toast`. Expected `foreground | background`.";throw new Error(x)}return yt(x=>{const _=l.viewport.value;if(_){const R=()=>{b(h.value),C.resume(),o("resume")},T=()=>{const v=Date.now()-d.value;h.value=h.value-v,window.clearTimeout(p.value),C.pause(),o("pause")};return _.addEventListener(js,T),_.addEventListener(Ks,R),()=>{_.removeEventListener(js,T),_.removeEventListener(Ks,R)}}}),we(()=>[n.open,c.value],()=>{h.value=c.value,n.open&&!l.isClosePausedRef.value&&b(c.value)},{immediate:!0}),fi("Escape",x=>{o("escapeKeyDown",x),x.defaultPrevented||(l.isFocusedToastEscapeKeyDownRef.value=!0,m())}),Re(()=>{l.onToastAdd()}),Xt(()=>{l.onToastRemove()}),Bv({onClose:m}),(x,_)=>(I(),ae(Ae,null,[E.value?(I(),G(Pv,{key:0,role:"alert","aria-live":x.type==="foreground"?"assertive":"polite"},{default:k(()=>[Ce(` +`))}return()=>r.value||o.value||i.value?Ht(t.default({present:i.value})[0],{ref:u=>{const c=ut(u);return typeof c?.hasAttribute>"u"||(c?.hasAttribute("data-reka-popper-content-wrapper")?s.value=c.firstElementChild:s.value=c),c}}):null}});const qs=J({name:"PrimitiveSlot",inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;const o=pi(n.default()),r=o.findIndex(a=>a.type!==Rt);if(r===-1)return o;const s=o[r];delete s.props?.ref;const i=s.props?ce(t,s.props):t,l=En({...s,props:{}},i);return o.length===1?l:(o[r]=l,o)}}}),bp=["area","img","input"],Se=J({name:"Primitive",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:"div"}},setup(e,{attrs:t,slots:n}){const o=e.asChild?"template":e.as;return typeof o=="string"&&bp.includes(o)?()=>Ht(o,t):o!=="template"?()=>Ht(e.as,t,{default:n.default}):()=>Ht(qs,t,{default:n.default})}});function Ns(){const e=F(),t=W(()=>["#text","#comment"].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:ut(e));return{primitiveElement:e,currentElement:t}}const[kt,wp]=dt("DialogRoot");var _p=J({inheritAttrs:!1,__name:"DialogRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:t}){const n=e,r=ho(n,"open",t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),s=F(),i=F(),{modal:l,unmountOnHide:a}=cn(n);return wp({open:r,modal:l,unmountOnHide:a,openModal:()=>{r.value=!0},onOpenChange:u=>{r.value=u},onOpenToggle:()=>{r.value=!r.value},contentId:"",titleId:"",descriptionId:"",triggerElement:s,contentElement:i}),(u,c)=>Z(u.$slots,"default",{open:f(r),close:()=>r.value=!1})}}),Iu=_p,Cp=J({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;de();const n=kt();return(o,r)=>(D(),G(f(Se),ce(t,{type:o.as==="button"?"button":void 0,onClick:r[0]||(r[0]=s=>f(n).onOpenChange(!1))}),{default:B(()=>[Z(o.$slots,"default")]),_:3},16,["type"]))}}),gi=Cp;const Sp="dismissableLayer.pointerDownOutside",Ep="dismissableLayer.focusOutside";function Mu(e,t){if(!(t instanceof Element))return!1;const n=t.closest("[data-dismissable-layer]"),o=e.dataset.dismissableLayer===""?e:e.querySelector("[data-dismissable-layer]"),r=Array.from(e.ownerDocument.querySelectorAll("[data-dismissable-layer]"));return!!(n&&(o===n||r.indexOf(o){});return yt(i=>{if(!at||!He(n))return;const l=async u=>{const c=u.target;if(!(!t?.value||!c)){if(Mu(t.value,c)){r.value=!1;return}if(u.target&&!r.value){let p=function(){di(Sp,e,h)};var d=p;const h={originalEvent:u};u.pointerType==="touch"?(o.removeEventListener("click",s.value),s.value=p,o.addEventListener("click",s.value,{once:!0})):p()}else o.removeEventListener("click",s.value);r.value=!1}},a=window.setTimeout(()=>{o.addEventListener("pointerdown",l)},0);i(()=>{window.clearTimeout(a),o.removeEventListener("pointerdown",l),o.removeEventListener("click",s.value)})}),{onPointerDownCapture:()=>{He(n)&&(r.value=!0)}}}function Ap(e,t,n=!0){const o=t?.value?.ownerDocument??globalThis?.document,r=F(!1);return yt(s=>{if(!at||!He(n))return;const i=async l=>{if(!t?.value)return;await Le(),await Le();const a=l.target;!t.value||!a||Mu(t.value,a)||l.target&&!r.value&&di(Ep,e,{originalEvent:l})};o.addEventListener("focusin",i),s(()=>o.removeEventListener("focusin",i))}),{onFocusCapture:()=>{He(n)&&(r.value=!0)},onBlurCapture:()=>{He(n)&&(r.value=!1)}}}const Je=wo({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set});var Tp=J({__name:"DismissableLayer",props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","dismiss"],setup(e,{emit:t}){const n=e,o=t,{forwardRef:r,currentElement:s}=de(),i=W(()=>s.value?.ownerDocument??globalThis.document),l=W(()=>Je.layersRoot),a=W(()=>s.value?Array.from(l.value).indexOf(s.value):-1),u=W(()=>Je.layersWithOutsidePointerEventsDisabled.size>0),c=W(()=>{const p=Array.from(l.value),[y]=[...Je.layersWithOutsidePointerEventsDisabled].slice(-1),S=p.indexOf(y);return a.value>=S}),d=xp(async p=>{const y=[...Je.branches].some(S=>S?.contains(p.target));!n.present||!c.value||y||(o("pointerDownOutside",p),o("interactOutside",p),await Le(),p.defaultPrevented||o("dismiss"))},s),h=Ap(p=>{const y=[...Je.branches].some(S=>S?.contains(p.target));!n.present||y||(o("focusOutside",p),o("interactOutside",p),p.defaultPrevented||o("dismiss"))},s);return fi("Escape",p=>{!n.present||!(a.value===l.value.size-1)||(o("escapeKeyDown",p),p.defaultPrevented||o("dismiss"))}),we([s,()=>n.disableOutsidePointerEvents,()=>n.present],([p,y,S],E,m)=>{!p||!S||y&&(Je.layersWithOutsidePointerEventsDisabled.size===0&&(Je.originalBodyPointerEvents=i.value.body.style.pointerEvents,i.value.body.style.pointerEvents="none"),Je.layersWithOutsidePointerEventsDisabled.add(p),m(()=>{Je.layersWithOutsidePointerEventsDisabled.delete(p),Je.layersWithOutsidePointerEventsDisabled.size===0&&!Bs(Je.originalBodyPointerEvents)&&(i.value.body.style.pointerEvents=Je.originalBodyPointerEvents)}))},{immediate:!0}),we([s,()=>n.present],([p,y],S,E)=>{!p||!y||(l.value.add(p),E(()=>{l.value.delete(p)}))},{immediate:!0}),yt(p=>{p(()=>{s.value&&(l.value.delete(s.value),Je.layersWithOutsidePointerEventsDisabled.delete(s.value))})}),(p,y)=>(D(),G(f(Se),{ref:f(r),"as-child":p.asChild,as:p.as,"data-dismissable-layer":"",style:st({pointerEvents:u.value?c.value?"auto":"none":void 0}),onFocusCapture:f(h).onFocusCapture,onBlurCapture:f(h).onBlurCapture,onPointerdownCapture:f(d).onPointerDownCapture},{default:B(()=>[Z(p.$slots,"default")]),_:3},8,["as-child","as","style","onFocusCapture","onBlurCapture","onPointerdownCapture"]))}}),Du=Tp,Pp=J({__name:"DismissableLayerBranch",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{forwardRef:n,currentElement:o}=de();return Re(()=>{Je.branches.add(o.value)}),Xt(()=>{Je.branches.delete(o.value)}),(r,s)=>(D(),G(f(Se),ce({ref:f(n)},t),{default:B(()=>[Z(r.$slots,"default")]),_:3},16))}}),Op=Pp;const Rp=Ff(()=>F([]));function Ip(){const e=Rp();return{add(t){const n=e.value[0];t!==n&&n?.pause(),e.value=fl(e.value,t),e.value.unshift(t)},remove(t){e.value=fl(e.value,t),e.value[0]?.resume()}}}function fl(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}const zr="focusScope.autoFocusOnMount",Gr="focusScope.autoFocusOnUnmount",pl={bubbles:!1,cancelable:!0};function Ho(e,{select:t=!1}={}){const n=ze();for(const o of e)if(on(o,{select:t}),ze()!==n)return!0}function Mp(e){const t=vi(e),n=hl(t,e),o=hl(t.reverse(),e);return[n,o]}function vi(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function hl(e,t){for(const n of e)if(!Dp(n,{upTo:t}))return n}function Dp(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function kp(e){return e instanceof HTMLInputElement&&"select"in e}function on(e,{select:t=!1}={}){if(e&&e.focus){const n=ze();e.focus({preventScroll:!0}),e!==n&&kp(e)&&t&&e.select()}}var Bp=J({__name:"FocusScope",props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},present:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["mountAutoFocus","unmountAutoFocus"],setup(e,{emit:t}){const n=e,o=t,{currentRef:r,currentElement:s}=de(),i=F(null),l=Ip(),a=wo({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});yt(d=>{if(!at)return;const h=s.value;if(!n.trapped)return;function p(m){if(a.paused||!h)return;const _=m.target;h.contains(_)?i.value=_:on(i.value,{select:!0})}function y(m){if(a.paused||!h)return;const _=m.relatedTarget;_!==null&&(h.contains(_)||on(i.value,{select:!0}))}function S(m){const _=i.value;if(_===null||!m.some(R=>R.removedNodes.length>0))return;h.contains(_)||on(h)}document.addEventListener("focusin",p),document.addEventListener("focusout",y);const E=new MutationObserver(S);h&&E.observe(h,{childList:!0,subtree:!0}),d(()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",y),E.disconnect()})});function u(d,h){const p=new CustomEvent(zr,pl),y=S=>o("mountAutoFocus",S);d.addEventListener(zr,y),d.dispatchEvent(p),d.removeEventListener(zr,y),p.defaultPrevented||(Ho(vi(d),{select:!0}),ze()===h&&on(d))}yt(async d=>{const h=s.value;if(await Le(),!h)return;n.present!==!1&&l.add(a);const p=ze();!h.contains(p)&&n.present!==!1&&u(h,p),d(()=>{const S=new CustomEvent(Gr,pl),E=m=>{o("unmountAutoFocus",m)};h.addEventListener(Gr,E),h.dispatchEvent(S),h.setAttribute("data-focus-scope-unmounting",""),setTimeout(()=>{S.defaultPrevented||on(p??document.body,{select:!0}),h.removeEventListener(Gr,E),l.remove(a),h.removeAttribute("data-focus-scope-unmounting")},0)})}),we(()=>n.present,async(d,h)=>{if(!at)return;if(d===!1&&h===!0){l.remove(a);return}if(d!==!0||h!==!1)return;l.add(a),await Le();const p=s.value;if(!p)return;const y=ze();p.contains(y)||u(p,y)});function c(d){if(!n.loop&&!n.trapped||a.paused)return;const h=d.key==="Tab"&&!d.altKey&&!d.ctrlKey&&!d.metaKey,p=ze();if(h&&p){const y=d.currentTarget,[S,E]=Mp(y);S&&E?!d.shiftKey&&p===E?(d.preventDefault(),n.loop&&on(S,{select:!0})):d.shiftKey&&p===S&&(d.preventDefault(),n.loop&&on(E,{select:!0})):p===y&&d.preventDefault()}}return(d,h)=>(D(),G(f(Se),{ref_key:"currentRef",ref:r,tabindex:"-1","as-child":d.asChild,as:d.as,onKeydown:c},{default:B(()=>[Z(d.$slots,"default")]),_:3},8,["as-child","as"]))}}),ku=Bp;function $p(e){return e?"open":"closed"}function gl(e){const t=ze();for(const n of e)if(n===t||(n.focus(),ze()!==t))return}var qp=J({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,o=t,r=kt(),{forwardRef:s,currentElement:i}=de();return r.titleId||=go(void 0,"reka-dialog-title"),r.descriptionId||=go(void 0,"reka-dialog-description"),Re(()=>{r.contentElement=i,ze()!==document.body&&(r.triggerElement.value=ze())}),(l,a)=>(D(),G(f(ku),{"as-child":"",loop:"",trapped:n.trapFocus,present:n.present,onMountAutoFocus:a[5]||(a[5]=u=>o("openAutoFocus",u)),onUnmountAutoFocus:a[6]||(a[6]=u=>o("closeAutoFocus",u))},{default:B(()=>[L(f(Du),ce({id:f(r).contentId,ref:f(s),as:l.as,"as-child":l.asChild,present:n.present,"disable-outside-pointer-events":l.disableOutsidePointerEvents,role:"dialog","aria-describedby":f(r).descriptionId,"aria-labelledby":f(r).titleId,"data-state":f($p)(f(r).open.value)},l.$attrs,{onDismiss:a[0]||(a[0]=u=>f(r).onOpenChange(!1)),onEscapeKeyDown:a[1]||(a[1]=u=>o("escapeKeyDown",u)),onFocusOutside:a[2]||(a[2]=u=>o("focusOutside",u)),onInteractOutside:a[3]||(a[3]=u=>o("interactOutside",u)),onPointerDownOutside:a[4]||(a[4]=u=>o("pointerDownOutside",u))}),{default:B(()=>[Z(l.$slots,"default")]),_:3},16,["id","as","as-child","present","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped","present"]))}}),Bu=qp,Np=J({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,o=t,r=kt(),s=To(o),{forwardRef:i,currentElement:l}=de(),a=W(()=>n.present?l.value:void 0);Ou(a);const u=W(()=>{const{present:c,...d}=n;return d});return we(()=>n.present,(c,d)=>{!c&&d&&r.triggerElement.value?.focus()}),(c,d)=>(D(),G(Bu,ce({...u.value,...f(s)},{ref:f(i),present:c.present,"trap-focus":f(r).open.value,"disable-outside-pointer-events":n.disableOutsidePointerEvents,onCloseAutoFocus:d[0]||(d[0]=h=>{h.defaultPrevented||(h.preventDefault(),f(r).triggerElement.value?.focus())}),onPointerDownOutside:d[1]||(d[1]=h=>{const p=h.detail.originalEvent,y=p.button===0&&p.ctrlKey===!0;(p.button===2||y)&&h.preventDefault()}),onFocusOutside:d[2]||(d[2]=h=>{h.preventDefault()})}),{default:B(()=>[Z(c.$slots,"default")]),_:3},16,["present","trap-focus","disable-outside-pointer-events"]))}}),Lp=Np,Fp=J({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,r=To(t);de();const s=kt(),i=F(!1),l=F(!1),a=W(()=>{const{present:u,...c}=n;return c});return we(()=>n.present,(u,c)=>{!u&&c&&(i.value||s.triggerElement.value?.focus(),i.value=!1,l.value=!1)}),(u,c)=>(D(),G(Bu,ce({...a.value,...f(r)},{present:u.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:c[0]||(c[0]=d=>{d.defaultPrevented||(i.value||f(s).triggerElement.value?.focus(),d.preventDefault()),i.value=!1,l.value=!1}),onInteractOutside:c[1]||(c[1]=d=>{d.defaultPrevented||(i.value=!0,d.detail.originalEvent.type==="pointerdown"&&(l.value=!0));const h=d.target;f(s).triggerElement.value?.contains(h)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&l.value&&d.preventDefault()})}),{default:B(()=>[Z(u.$slots,"default")]),_:3},16,["present"]))}}),Vp=Fp,Hp=J({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,o=t,r=kt(),s=To(o),{forwardRef:i}=de();return(l,a)=>(D(),G(f(Sr),{present:l.forceMount||f(r).open.value,"force-mount":l.forceMount||!f(r).unmountOnHide.value},{default:B(({present:u})=>[f(r).modal.value?nt((D(),G(Lp,ce({key:0,ref:f(i),present:f(r).unmountOnHide.value||u},{...n,...f(s),...l.$attrs}),{default:B(()=>[Z(l.$slots,"default")]),_:2},1040,["present"])),[[ks,f(r).unmountOnHide.value||u]]):nt((D(),G(Vp,ce({key:1,ref:f(i),present:f(r).unmountOnHide.value||u},{...n,...f(s),...l.$attrs}),{default:B(()=>[Z(l.$slots,"default")]),_:2},1040,["present"])),[[ks,f(r).unmountOnHide.value||u]])]),_:3},8,["present","force-mount"]))}}),$u=Hp,Up=J({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;de();const n=kt();return(o,r)=>(D(),G(f(Se),ce(t,{id:f(n).descriptionId}),{default:B(()=>[Z(o.$slots,"default")]),_:3},16,["id"]))}}),qu=Up,jp=J({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(e){const t=e,n=kt(),o=Su(t.present);return we(()=>t.present,r=>o.value=r),de(),(r,s)=>(D(),G(f(Se),{as:r.as,"as-child":r.asChild,"data-state":f(n).open.value?"open":"closed",style:{"pointer-events":"auto"},onPointerdown:s[0]||(s[0]=Ue(()=>{},["left","self","prevent"]))},{default:B(()=>[Z(r.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),Kp=jp,Wp=J({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=kt(),{forwardRef:n}=de();return(o,r)=>f(t)?.modal.value?(D(),G(f(Sr),{key:0,present:o.forceMount||f(t).open.value,"force-mount":o.forceMount||!f(t).unmountOnHide.value},{default:B(({present:s})=>[nt(L(Kp,ce(o.$attrs,{ref:f(n),as:o.as,"as-child":o.asChild,present:f(t).unmountOnHide.value||s}),{default:B(()=>[Z(o.$slots,"default")]),_:2},1040,["as","as-child","present"]),[[ks,f(t).unmountOnHide.value||s]])]),_:3},8,["present","force-mount"])):Ce("v-if",!0)}}),Nu=Wp,zp=J({__name:"Teleport",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e,n=Ao({}),o=W(()=>t.to??n.teleportTo?.value??"body"),r=Cu();return(s,i)=>f(r)||s.forceMount?(D(),G(si,{key:0,to:o.value,disabled:s.disabled,defer:s.defer},[Z(s.$slots,"default")],8,["to","disabled","defer"])):Ce("v-if",!0)}}),mi=zp,Gp=J({__name:"DialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,o)=>(D(),G(f(mi),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),Yp=Gp,Jp=J({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e,n=kt();return de(),(o,r)=>(D(),G(f(Se),ce(t,{id:f(n).titleId}),{default:B(()=>[Z(o.$slots,"default")]),_:3},16,["id"]))}}),Lu=Jp,Xp=J({__name:"DialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=kt(),{forwardRef:o,currentElement:r}=de();return n.contentId||=go(void 0,"reka-dialog-content"),Re(()=>{n.triggerElement.value=r.value}),(s,i)=>(D(),G(f(Se),ce(t,{ref:f(o),type:s.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":f(n).open.value||!1,"aria-controls":f(n).open.value?f(n).contentId:void 0,"data-state":f(n).open.value?"open":"closed",onClick:f(n).onOpenToggle}),{default:B(()=>[Z(s.$slots,"default")]),_:3},16,["type","aria-expanded","aria-controls","data-state","onClick"]))}}),Qp=Xp,Zp=J({__name:"AlertDialogAction",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;return de(),(n,o)=>(D(),G(f(gi),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),eh=Zp;const[th,nh]=dt("AlertDialogContent");var oh=J({__name:"AlertDialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:t}){const n=e,r=To(t);de();const s=F();return nh({onCancelElementChange:i=>{s.value=i}}),(i,l)=>(D(),G(f($u),ce({...n,...f(r)},{role:"alertdialog",onPointerDownOutside:l[0]||(l[0]=Ue(()=>{},["prevent"])),onInteractOutside:l[1]||(l[1]=Ue(()=>{},["prevent"])),onOpenAutoFocus:l[2]||(l[2]=()=>{Le(()=>{s.value?.focus({preventScroll:!0})})})}),{default:B(()=>[Z(i.$slots,"default")]),_:3},16))}}),rh=oh,sh=J({__name:"AlertDialogCancel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=th(),{forwardRef:o,currentElement:r}=de();return Re(()=>{n.onCancelElementChange(r.value)}),(s,i)=>(D(),G(f(gi),ce(t,{ref:f(o)}),{default:B(()=>[Z(s.$slots,"default")]),_:3},16))}}),ih=sh,lh=J({__name:"AlertDialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(e){const t=e;return de(),(n,o)=>(D(),G(f(qu),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),ah=lh,uh=J({__name:"AlertDialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return de(),(n,o)=>(D(),G(f(Nu),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),ch=uh,dh=J({__name:"AlertDialogPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,o)=>(D(),G(f(mi),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),fh=dh,ph=J({__name:"AlertDialogRoot",props:{open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1}},emits:["update:open"],setup(e,{emit:t}){const r=Tu(e,t);return de(),(s,i)=>(D(),G(f(Iu),ce(f(r),{modal:!0}),{default:B(l=>[Z(s.$slots,"default",bt(ct(l)))]),_:3},16))}}),hh=ph,gh=J({__name:"AlertDialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(e){const t=e;return de(),(n,o)=>(D(),G(f(Lu),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),vh=gh,mh=J({__name:"AlertDialogTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e;return de(),(n,o)=>(D(),G(f(Qp),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),yh=mh;const vl="data-reka-collection-item";function dn(e={}){const{key:t="",isProvider:n=!1}=e,o=`${t}CollectionProvider`;let r;n?(r={collectionRef:F(),itemMap:F(new Map)},ri(o,r)):r=Cn(o);const s=(c=!1)=>{const d=r.collectionRef.value;if(!d)return[];const h=Array.from(d.querySelectorAll(`[${vl}]`)),p=new Map(h.map((E,m)=>[E,m])),S=Array.from(r.itemMap.value.values()).sort((E,m)=>(p.get(E.ref)??-1)-(p.get(m.ref)??-1));return c?S:S.filter(E=>E.ref.dataset.disabled!=="")},i=J({name:"CollectionSlot",inheritAttrs:!1,setup(c,{slots:d,attrs:h}){const{primitiveElement:p,currentElement:y}=Ns();return we(y,()=>{r.collectionRef.value=y.value}),()=>Ht(qs,{ref:p,...h},d)}}),l=J({name:"CollectionItem",inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(c,{slots:d,attrs:h}){const{primitiveElement:p,currentElement:y}=Ns();return yt(S=>{if(y.value){const E=ka(y.value);r.itemMap.value.set(E,{ref:y.value,value:c.value}),S(()=>r.itemMap.value.delete(E))}}),()=>Ht(qs,{...h,[vl]:"",ref:p},d)}}),a=W(()=>Array.from(r.itemMap.value.values())),u=W(()=>r.itemMap.value.size);return{getItems:s,reactiveItems:a,itemMapSize:u,CollectionSlot:i,CollectionItem:l}}var bh=J({__name:"VisuallyHidden",props:{feature:{type:String,required:!1,default:"focusable"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){return(t,n)=>(D(),G(f(Se),{as:t.as,"as-child":t.asChild,"aria-hidden":t.feature==="focusable"||t.feature==="fully-hidden"?"true":void 0,"data-hidden":t.feature==="fully-hidden"?"":void 0,tabindex:t.feature==="fully-hidden"?"-1":void 0,style:{position:"absolute",border:0,width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",wordWrap:"normal",top:"-1px",left:"-1px"}},{default:B(()=>[Z(t.$slots,"default")]),_:3},8,["as","as-child","aria-hidden","data-hidden","tabindex"]))}}),Er=bh,wh=J({inheritAttrs:!1,__name:"VisuallyHiddenInputBubble",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(e){const t=e,{primitiveElement:n,currentElement:o}=Ns(),r=W(()=>t.checked??t.value);return we(r,(s,i)=>{if(!o.value)return;const l=o.value,a=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(a,"value").set;if(c&&s!==i){const d=new Event("input",{bubbles:!0}),h=new Event("change",{bubbles:!0});c.call(l,s),l.dispatchEvent(d),l.dispatchEvent(h)}}),(s,i)=>(D(),G(Er,ce({ref_key:"primitiveElement",ref:n},{...t,...s.$attrs},{as:"input"}),null,16))}}),ml=wh,_h=J({inheritAttrs:!1,__name:"VisuallyHiddenInput",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(e){const t=e,n=W(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),o=W(()=>typeof t.value=="string"||typeof t.value=="number"||typeof t.value=="boolean"||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value=="object"&&Array.isArray(t.value)?t.value.flatMap((r,s)=>typeof r=="object"?Object.entries(r).map(([i,l])=>({name:`${t.name}[${s}][${i}]`,value:l})):{name:`${t.name}[${s}]`,value:r}):t.value!==null&&typeof t.value=="object"&&!Array.isArray(t.value)?Object.entries(t.value).map(([r,s])=>({name:`${t.name}[${r}]`,value:s})):[]);return(r,s)=>(D(),ae(Ae,null,[Ce(" We render single input if it's required "),n.value?(D(),G(ml,ce({key:r.name},{...t,...r.$attrs},{name:r.name,value:r.value}),null,16,["name","value"])):(D(!0),ae(Ae,{key:1},Co(o.value,i=>(D(),G(ml,ce({key:i.name},{ref_for:!0},{...t,...r.$attrs},{name:i.name,value:i.value}),null,16,["name","value"]))),128))],2112))}}),Ch=_h;const[Fu,Sh]=dt("PopperRoot");var Eh=J({inheritAttrs:!1,__name:"PopperRoot",setup(e){const t=F();return Sh({anchor:t,onAnchorChange:n=>t.value=n}),(n,o)=>Z(n.$slots,"default")}}),xh=Eh,Ah=J({__name:"PopperAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{forwardRef:n,currentElement:o}=de(),r=Fu();return Ua(()=>{r.onAnchorChange(t.reference??o.value)}),(s,i)=>(D(),G(f(Se),{ref:f(n),as:s.as,"as-child":s.asChild},{default:B(()=>[Z(s.$slots,"default")]),_:3},8,["as","as-child"]))}}),Th=Ah;function Ph(e){return e!==null}function Oh(e){return{name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,i=r.arrow?.centerOffset!==0,l=i?0:e.arrowWidth,a=i?0:e.arrowHeight,[u,c]=Ls(n),d={start:e.dir==="rtl"?"100%":"0%",center:"50%",end:e.dir==="rtl"?"0%":"100%"}[c],h={start:"0%",center:"50%",end:"100%"}[c],p=(r.arrow?.x??0)+l/2,y=(r.arrow?.y??0)+a/2;let S="",E="";return u==="bottom"?(S=i?d:`${p}px`,E=`${-a}px`):u==="top"?(S=i?d:`${p}px`,E=`${o.floating.height+a}px`):u==="right"?(S=`${-a}px`,E=i?h:`${y}px`):u==="left"&&(S=`${o.floating.width+a}px`,E=i?h:`${y}px`),{data:{x:S,y:E}}}}}function Ls(e){const[t,n="center"]=e.split("-");return[t,n]}const Rh=["top","right","bottom","left"],ln=Math.min,Ut=Math.max,Zo=Math.round,$o=Math.floor,jt=e=>({x:e,y:e}),Ih={left:"right",right:"left",bottom:"top",top:"bottom"};function Vu(e,t,n){return Ut(e,ln(t,n))}function Gt(e,t){return typeof e=="function"?e(t):e}function an(e){return e.split("-")[0]}function Wn(e){return e.split("-")[1]}function yi(e){return e==="x"?"y":"x"}function bi(e){return e==="y"?"height":"width"}function Pt(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function wi(e){return yi(Pt(e))}function Mh(e,t,n){n===void 0&&(n=!1);const o=Wn(e),r=wi(e),s=bi(r);let i=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=er(i)),[i,er(i)]}function Dh(e){const t=er(e);return[Fs(e),t,Fs(t)]}function Fs(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const yl=["left","right"],bl=["right","left"],kh=["top","bottom"],Bh=["bottom","top"];function $h(e,t,n){switch(e){case"top":case"bottom":return n?t?bl:yl:t?yl:bl;case"left":case"right":return t?kh:Bh;default:return[]}}function qh(e,t,n,o){const r=Wn(e);let s=$h(an(e),n==="start",o);return r&&(s=s.map(i=>i+"-"+r),t&&(s=s.concat(s.map(Fs)))),s}function er(e){const t=an(e);return Ih[t]+e.slice(t.length)}function Nh(e){var t,n,o,r;return{top:(t=e.top)!=null?t:0,right:(n=e.right)!=null?n:0,bottom:(o=e.bottom)!=null?o:0,left:(r=e.left)!=null?r:0}}function Hu(e){return typeof e!="number"?Nh(e):{top:e,right:e,bottom:e,left:e}}function tr(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function wl(e,t,n){let{reference:o,floating:r}=e;const s=Pt(t),i=wi(t),l=bi(i),a=an(t),u=s==="y",c=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,h=o[l]/2-r[l]/2;let p;switch(a){case"top":p={x:c,y:o.y-r.height};break;case"bottom":p={x:c,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.y}}const y=Wn(t);return y&&(p[i]+=h*(y==="end"?1:-1)*(n&&u?-1:1)),p}async function Lh(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:s,rects:i,elements:l,strategy:a}=e,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:d="floating",altBoundary:h=!1,padding:p=0}=Gt(t,e),y=Hu(p),E=l[h?d==="floating"?"reference":"floating":d],m=tr(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(E)))==null||n?E:E.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:u,rootBoundary:c,strategy:a})),_=d==="floating"?{x:o,y:r,width:i.floating.width,height:i.floating.height}:i.reference,x=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),w=await(s.isElement==null?void 0:s.isElement(x))&&await(s.getScale==null?void 0:s.getScale(x))||{x:1,y:1},R=tr(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:_,offsetParent:x,strategy:a}):_);return{top:(m.top-R.top+y.top)/w.y,bottom:(R.bottom-m.bottom+y.bottom)/w.y,left:(m.left-R.left+y.left)/w.x,right:(R.right-m.right+y.right)/w.x}}const Fh=50,Vh=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:s=[],platform:i}=n,l=i.detectOverflow?i:{...i,detectOverflow:Lh},a=await(i.isRTL==null?void 0:i.isRTL(t));let u=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:c,y:d}=wl(u,o,a),h=o,p=0;const y={};for(let S=0;S({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:s,platform:i,elements:l,middlewareData:a}=t,{element:u,padding:c=0}=Gt(e,t)||{};if(u==null)return{};const d=Hu(c),h={x:n,y:o},p=wi(r),y=bi(p),S=await i.getDimensions(u),E=p==="y",m=E?"top":"left",_=E?"bottom":"right",x=E?"clientHeight":"clientWidth",w=s.reference[y]+s.reference[p]-h[p]-s.floating[y],R=h[p]-s.reference[p],P=await(i.getOffsetParent==null?void 0:i.getOffsetParent(u));let v=P?P[x]:0;(!v||!await(i.isElement==null?void 0:i.isElement(P)))&&(v=l.floating[x]||s.floating[y]);const C=w/2-R/2,I=v/2-S[y]/2-1,k=ln(d[m],I),j=ln(d[_],I),X=v-S[y]-j,H=v/2-S[y]/2+C,z=Vu(k,H,X),ve=!a.arrow&&Wn(r)!=null&&H!==z&&s.reference[y]/2-(Hz<=0)){var j,X;const z=(((j=s.flip)==null?void 0:j.index)||0)+1,ve=v[z];if(ve&&(!(d==="alignment"?_!==Pt(ve):!1)||k.every(ie=>Pt(ie.placement)===_?ie.overflows[0]>0:!0)))return{data:{index:z,overflows:k},reset:{placement:ve}};let le=(X=k.filter(ue=>ue.overflows[0]<=0).sort((ue,ie)=>ue.overflows[1]-ie.overflows[1])[0])==null?void 0:X.placement;if(!le)switch(p){case"bestFit":{var H;const ue=(H=k.filter(ie=>{if(P){const Ee=Pt(ie.placement);return Ee===_||Ee==="y"}return!0}).map(ie=>[ie.placement,ie.overflows.filter(Ee=>Ee>0).reduce((Ee,Ge)=>Ee+Ge,0)]).sort((ie,Ee)=>ie[1]-Ee[1])[0])==null?void 0:H[0];ue&&(le=ue);break}case"initialPlacement":le=l;break}if(r!==le)return{reset:{placement:le}}}return{}}}};function _l(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Cl(e){return Rh.some(t=>e[t]>=0)}const jh=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:o}=t,{strategy:r="referenceHidden",...s}=Gt(e,t);switch(r){case"referenceHidden":{const i=await o.detectOverflow(t,{...s,elementContext:"reference"}),l=_l(i,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:Cl(l)}}}case"escaped":{const i=await o.detectOverflow(t,{...s,altBoundary:!0}),l=_l(i,n.floating);return{data:{escapedOffsets:l,escaped:Cl(l)}}}default:return{}}}}},Uu=new Set(["left","top"]);async function Kh(e,t){const{placement:n,platform:o,elements:r}=e,s=await(o.isRTL==null?void 0:o.isRTL(r.floating)),i=an(n),l=Wn(n),a=Pt(n)==="y",u=Uu.has(i)?-1:1,c=s&&a?-1:1,d=Gt(t,e);let{mainAxis:h,crossAxis:p,alignmentAxis:y}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof y=="number"&&(p=l==="end"?y*-1:y),a?{x:p*c,y:h*u}:{x:h*u,y:p*c}}const Wh=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:s,placement:i,middlewareData:l}=t,a=await Kh(t,e);return i===((n=l.offset)==null?void 0:n.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:r+a.x,y:s+a.y,data:{...a,placement:i}}}}},zh=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r,platform:s}=t,{mainAxis:i=!0,crossAxis:l=!1,limiter:a={fn:_=>{let{x,y:w}=_;return{x,y:w}}},...u}=Gt(e,t),c={x:n,y:o},d=await s.detectOverflow(t,u),h=Pt(r),p=yi(h);let y=c[p],S=c[h];const E=(_,x)=>Vu(x+d[_==="y"?"top":"left"],x,x-d[_==="y"?"bottom":"right"]);i&&(y=E(p,y)),l&&(S=E(h,S));const m=a.fn({...t,[p]:y,[h]:S});return{...m,data:{x:m.x-n,y:m.y-o,enabled:{[p]:i,[h]:l}}}}}},Gh=function(e){return e===void 0&&(e={}),{options:e,fn(t){var n,o;const{x:r,y:s,placement:i,rects:l,middlewareData:a}=t,{offset:u=0,mainAxis:c=!0,crossAxis:d=!0}=Gt(e,t),h={x:r,y:s},p=Pt(i),y=yi(p);let S=h[y],E=h[p];const m=Gt(u,t),_=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:(n=m.mainAxis)!=null?n:0,crossAxis:(o=m.crossAxis)!=null?o:0};if(c){const R=y==="y"?"height":"width",P=l.reference[y]-l.floating[R]+_.mainAxis,v=l.reference[y]+l.reference[R]-_.mainAxis;Sv&&(S=v)}if(d){var x,w;const R=y==="y"?"width":"height",P=Uu.has(an(i)),v=l.reference[p]-l.floating[R]+(P&&((x=a.offset)==null?void 0:x[p])||0)+(P?0:_.crossAxis),C=l.reference[p]+l.reference[R]+(P?0:((w=a.offset)==null?void 0:w[p])||0)-(P?_.crossAxis:0);EC&&(E=C)}return{[y]:S,[p]:E}}}},Yh=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:o,platform:r,elements:s}=t,{apply:i=()=>{},...l}=Gt(e,t),a=await r.detectOverflow(t,l),u=an(n),c=Wn(n),d=Pt(n)==="y",{width:h,height:p}=o.floating;let y,S;u==="top"||u==="bottom"?(y=u,S=c===(await(r.isRTL==null?void 0:r.isRTL(s.floating))?"start":"end")?"left":"right"):(S=u,y=c==="end"?"top":"bottom");const E=p-a.top-a.bottom,m=h-a.left-a.right,_=ln(p-a[y],E),x=ln(h-a[S],m),w=t.middlewareData.shift,R=!w;let P=_,v=x;w!=null&&w.enabled.x&&(v=m),w!=null&&w.enabled.y&&(P=E),R&&!c&&(d?v=h-2*Ut(a.left,a.right):P=p-2*Ut(a.top,a.bottom)),await i({...t,availableWidth:v,availableHeight:P});const C=await r.getDimensions(s.floating);return h!==C.width||p!==C.height?{reset:{rects:!0}}:{}}}};function xr(){return typeof window<"u"}function Pn(e){return _i(e)?(e.nodeName||"").toLowerCase():"#document"}function ot(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Qt(e){var t;return(t=(_i(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function _i(e){return xr()?e instanceof Node||e instanceof ot(e).Node:!1}function It(e){return xr()?e instanceof Element||e instanceof ot(e).Element:!1}function fn(e){return xr()?e instanceof HTMLElement||e instanceof ot(e).HTMLElement:!1}function Sl(e){return!xr()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ot(e).ShadowRoot}function Ar(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=Mt(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&r!=="inline"&&r!=="contents"}function Jh(e){return/^(table|td|th)$/.test(Pn(e))}function Tr(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const Xh=/transform|translate|scale|rotate|perspective|filter/,Qh=/paint|layout|strict|content/,mn=e=>!!e&&e!=="none";let Yr;function Ci(e){const t=It(e)?Mt(e):e;return mn(t.transform)||mn(t.translate)||mn(t.scale)||mn(t.rotate)||mn(t.perspective)||!Si()&&(mn(t.backdropFilter)||mn(t.filter))||Xh.test(t.willChange||"")||Qh.test(t.contain||"")}function Zh(e){let t=xn(e);for(;fn(t)&&!vo(t);){if(Ci(t))return t;if(Tr(t))return null;t=xn(t)}return null}function Si(){return Yr==null&&(Yr=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Yr}function vo(e){return/^(html|body|#document)$/.test(Pn(e))}function Mt(e){return ot(e).getComputedStyle(e)}function Pr(e){return It(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function xn(e){if(Pn(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Sl(e)&&e.host||Qt(e);return Sl(t)?t.host:t}function ju(e){const t=xn(e);return vo(t)?(e.ownerDocument||e).body:fn(t)&&Ar(t)?t:ju(t)}function mo(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=ju(e),s=r===((o=e.ownerDocument)==null?void 0:o.body),i=ot(r);if(s){const l=Vs(i);return t.concat(i,i.visualViewport||[],Ar(r)?r:[],l&&n?mo(l):[])}else return t.concat(r,mo(r,[],n))}function Vs(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ku(e){const t=Mt(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=fn(e),s=r?e.offsetWidth:n,i=r?e.offsetHeight:o,l=Zo(n)!==s||Zo(o)!==i;return l&&(n=s,o=i),{width:n,height:o,$:l}}function Ei(e){return It(e)?e:e.contextElement}function Un(e){const t=Ei(e);if(!fn(t))return jt(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:s}=Ku(t);let i=(s?Zo(n.width):n.width)/o,l=(s?Zo(n.height):n.height)/r;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const eg=jt(0);function Wu(e){const t=ot(e);return!Si()||!t.visualViewport?eg:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function tg(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===ot(e)}function An(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),s=Ei(e);let i=jt(1);t&&(o?It(o)&&(i=Un(o)):i=Un(e));const l=tg(s,n,o)?Wu(s):jt(0);let a=(r.left+l.x)/i.x,u=(r.top+l.y)/i.y,c=r.width/i.x,d=r.height/i.y;if(s&&o){const h=ot(s),p=It(o)?ot(o):o;let y=h,S=Vs(y);for(;S&&p!==y;){const E=Un(S),m=S.getBoundingClientRect(),_=Mt(S),x=m.left+(S.clientLeft+parseFloat(_.paddingLeft))*E.x,w=m.top+(S.clientTop+parseFloat(_.paddingTop))*E.y;a*=E.x,u*=E.y,c*=E.x,d*=E.y,a+=x,u+=w,y=ot(S),S=Vs(y)}}return tr({width:c,height:d,x:a,y:u})}function Or(e,t){const n=Pr(e).scrollLeft;return t?t.left+n:An(Qt(e)).left+n}function zu(e,t){const n=e.getBoundingClientRect(),o=n.left+t.scrollLeft-Or(e,n),r=n.top+t.scrollTop;return{x:o,y:r}}function ng(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const s=r==="fixed",i=Qt(o),l=t?Tr(t.floating):!1;if(o===i||l&&s)return n;let a={scrollLeft:0,scrollTop:0},u=jt(1);const c=jt(0),d=fn(o);if((d||!s)&&((Pn(o)!=="body"||Ar(i))&&(a=Pr(o)),d)){const p=An(o);u=Un(o),c.x=p.x+o.clientLeft,c.y=p.y+o.clientTop}const h=i&&!d&&!s?zu(i,a):jt(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-a.scrollLeft*u.x+c.x+h.x,y:n.y*u.y-a.scrollTop*u.y+c.y+h.y}}function og(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function rg(e){const t=Pr(e),n=e.ownerDocument.body,o=Ut(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=Ut(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let s=-t.scrollLeft+Or(e);const i=-t.scrollTop;return Mt(n).direction==="rtl"&&(s+=Ut(e.clientWidth,n.clientWidth)-o),{width:o,height:r,x:s,y:i}}const sg=25;function ig(e,t,n){n===void 0&&(n="viewport");const o=n==="layoutViewport",r=ot(e),s=Qt(e),i=r.visualViewport;let l=s.clientWidth,a=s.clientHeight,u=0,c=0;if(i){const h=!Si()||t==="fixed";o?h||(u=-i.offsetLeft,c=-i.offsetTop):(l=i.width,a=i.height,h&&(u=i.offsetLeft,c=i.offsetTop))}if(Or(s)<=0){const h=s.ownerDocument,p=h.body,y=getComputedStyle(p),S=h.compatMode==="CSS1Compat"&&parseFloat(y.marginLeft)+parseFloat(y.marginRight)||0,E=Math.abs(s.clientWidth-p.clientWidth-S),m=getComputedStyle(s).scrollbarGutter==="stable both-edges"?E/2:E;m<=sg&&(l-=m)}return{width:l,height:a,x:u,y:c}}function lg(e,t){const n=An(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,s=Un(e),i=e.clientWidth*s.x,l=e.clientHeight*s.y,a=r*s.x,u=o*s.y;return{width:i,height:l,x:a,y:u}}function El(e,t,n){let o;if(t==="viewport"||t==="layoutViewport")o=ig(e,n,t);else if(t==="document")o=rg(Qt(e));else if(It(t))o=lg(t,n);else{const r=Wu(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return tr(o)}function ag(e,t){const n=t.get(e);if(n)return n;let o=mo(e,[],!1).filter(l=>It(l)&&Pn(l)!=="body"),r=null;const s=Mt(e).position==="fixed";let i=s?xn(e):e;for(;It(i)&&!vo(i);){const l=Mt(i),a=Ci(i),u=r?r.position:s?"fixed":"";!a&&(u==="fixed"||u==="absolute"&&l.position==="static")?o=o.filter(d=>d!==i):r=l,i=xn(i)}return t.set(e,o),o}function ug(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const i=[...n==="clippingAncestors"?Tr(t)?[]:ag(t,this._c):[].concat(n),o],l=El(t,i[0],r);let a=l.top,u=l.right,c=l.bottom,d=l.left;for(let h=1;h{l(!1,1e-7)},1e3)}v=!1}try{o=new IntersectionObserver(C,{...P,root:s.ownerDocument})}catch{o=new IntersectionObserver(C,P)}o.observe(e)}const a=ot(e),u=()=>l(n);return a.addEventListener("resize",u),l(!0),()=>{a.removeEventListener("resize",u),i()}}function vg(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:a=!1}=o,u=Ei(e),c=r||s?[...u?mo(u):[],...t?mo(t):[]]:[];c.forEach(m=>{r&&m.addEventListener("scroll",n),s&&m.addEventListener("resize",n)});const d=u&&l?gg(u,n,s):null;let h=-1,p=null;i&&(p=new ResizeObserver(m=>{let[_]=m;_&&_.target===u&&p&&t&&(p.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var x;(x=p)==null||x.observe(t)})),n()}),u&&!a&&p.observe(u),t&&p.observe(t));let y,S=a?An(e):null;a&&E();function E(){const m=An(e);S&&!Yu(S,m)&&n(),S=m,y=requestAnimationFrame(E)}return n(),()=>{var m;c.forEach(_=>{r&&_.removeEventListener("scroll",n),s&&_.removeEventListener("resize",n)}),d?.(),(m=p)==null||m.disconnect(),p=null,a&&cancelAnimationFrame(y)}}const mg=Wh,yg=zh,Al=Uh,bg=Yh,wg=jh,_g=Hh,Cg=Gh,Sg=(e,t,n)=>{const o=new Map,r=n??{},s={...hg,...r.platform,_c:o};return Vh(e,t,{...r,platform:s})};function Eg(e){return e!=null&&typeof e=="object"&&"$el"in e}function Hs(e){if(Eg(e)){const t=e.$el;return _i(t)&&Pn(t)==="#comment"?null:t}return e}function qn(e){return typeof e=="function"?e():f(e)}function xg(e){return{name:"arrow",options:e,fn(t){const n=Hs(qn(e.element));return n==null?{}:_g({element:n,padding:e.padding}).fn(t)}}}function Ju(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Tl(e,t){const n=Ju(e);return Math.round(t*n)/n}function Ag(e,t,n){n===void 0&&(n={});const o=n.whileElementsMounted,r=W(()=>{var v;return(v=qn(n.open))!=null?v:!0}),s=W(()=>qn(n.middleware)),i=W(()=>{var v;return(v=qn(n.placement))!=null?v:"bottom"}),l=W(()=>{var v;return(v=qn(n.strategy))!=null?v:"absolute"}),a=W(()=>{var v;return(v=qn(n.transform))!=null?v:!0}),u=W(()=>Hs(e.value)),c=W(()=>Hs(t.value)),d=F(0),h=F(0),p=F(l.value),y=F(i.value),S=gr({}),E=F(!1),m=W(()=>{const v={position:p.value,left:"0",top:"0"};if(!c.value)return v;const C=Tl(c.value,d.value),I=Tl(c.value,h.value);return a.value?{...v,transform:"translate("+C+"px, "+I+"px)",...Ju(c.value)>=1.5&&{willChange:"transform"}}:{position:p.value,left:C+"px",top:I+"px"}});let _;function x(){if(u.value==null||c.value==null)return;const v=r.value;Sg(u.value,c.value,{middleware:s.value,placement:i.value,strategy:l.value}).then(C=>{d.value=C.x,h.value=C.y,p.value=C.strategy,y.value=C.placement,S.value=C.middlewareData,E.value=v!==!1})}function w(){typeof _=="function"&&(_(),_=void 0)}function R(){if(w(),o===void 0){x();return}if(u.value!=null&&c.value!=null){_=o(u.value,c.value,x);return}}function P(){r.value||(E.value=!1)}return we([s,i,l,r],x,{flush:"sync"}),we([u,c],R,{flush:"sync"}),we(r,P,{flush:"sync"}),Qs()&&Zs(w),{x:rn(d),y:rn(h),strategy:rn(p),placement:rn(y),middlewareData:rn(S),isPositioned:rn(E),floatingStyles:m,update:x}}const Tg=["dir"],Pg={side:"bottom",sideOffset:0,sideFlip:!0,align:"center",alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:"partial",hideWhenDetached:!1,positionStrategy:"fixed",updatePositionStrategy:"optimized",prioritizePosition:!1},[b1,Og]=dt("PopperContent");var Rg=J({inheritAttrs:!1,__name:"PopperContent",props:_d({memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Pg}),emits:["placed"],setup(e,{emit:t}){const n=e,o=t,r=Fu(),{forwardRef:s,currentElement:i}=de(),l=xu(W(()=>n.dir)),a=F(),u=F(),{width:c,height:d}=hp(u),h=W(()=>n.side+(n.align!=="center"?`-${n.align}`:"")),p=W(()=>typeof n.collisionPadding=="number"?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),y=W(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),S=W(()=>({padding:p.value,boundary:y.value.filter(Ph),altBoundary:y.value.length>0})),E=W(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),m=W(()=>[mg({mainAxis:n.sideOffset+d.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&Al({...S.value,...E.value}),n.avoidCollisions&&yg({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky==="partial"?Cg():void 0,...S.value}),!n.prioritizePosition&&n.avoidCollisions&&Al({...S.value,...E.value}),bg({...S.value,apply:({elements:H,rects:z,availableWidth:ve,availableHeight:le})=>{const{width:ue,height:ie}=z.reference,Ee=H.floating.style;Ee.setProperty("--reka-popper-available-width",`${ve}px`),Ee.setProperty("--reka-popper-available-height",`${le}px`),Ee.setProperty("--reka-popper-anchor-width",`${ue}px`),Ee.setProperty("--reka-popper-anchor-height",`${ie}px`)}}),u.value&&xg({element:u.value,padding:n.arrowPadding}),Oh({arrowWidth:c.value,arrowHeight:d.value,dir:l.value}),n.hideWhenDetached&&wg({strategy:"referenceHidden",...S.value})]),_=W(()=>n.reference??r.anchor.value),{floatingStyles:x,placement:w,isPositioned:R,middlewareData:P}=Ag(_,a,{strategy:n.positionStrategy,placement:h,whileElementsMounted:(...H)=>vg(...H,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy==="always"}),middleware:m}),v=W(()=>Ls(w.value)[0]),C=W(()=>Ls(w.value)[1]);Ua(()=>{R.value&&o("placed")});const I=W(()=>{const H=P.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&H}),k=F("");yt(()=>{i.value&&(k.value=window.getComputedStyle(i.value).zIndex)});const j=W(()=>P.value.arrow?.x??0),X=W(()=>P.value.arrow?.y??0);return Og({placedSide:v,onArrowChange:H=>u.value=H,arrowX:j,arrowY:X,shouldHideArrow:I}),(H,z)=>(D(),ae("div",{ref_key:"floatingRef",ref:a,"data-reka-popper-content-wrapper":"",dir:f(l),style:st({...f(x),transform:f(R)?f(x).transform:"translate(0, -200%)",minWidth:"max-content",zIndex:k.value,"--reka-popper-transform-origin":[f(P).transformOrigin?.x,f(P).transformOrigin?.y].join(" "),...f(P).hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}})},[n.memoDependencies?of([n.asChild,n.as,v.value,C.value,f(R),...Object.values(H.$attrs),...n.memoDependencies],()=>(D(),G(f(Se),ce({key:0,ref:f(s)},H.$attrs,{"as-child":n.asChild,as:n.as,"data-side":v.value,"data-align":C.value,style:{animation:f(R)?void 0:"none"}}),{default:B(()=>[Z(H.$slots,"default")]),_:3},16,["as-child","as","data-side","data-align","style"])),z,0):(D(),G(f(Se),ce({key:1,ref:f(s)},H.$attrs,{"as-child":n.asChild,as:n.as,"data-side":v.value,"data-align":C.value,dir:f(l),style:{animation:f(R)?void 0:"none"}}),{default:B(()=>[Z(H.$slots,"default")]),_:3},16,["as-child","as","data-side","data-align","dir","style"]))],12,Tg))}}),Ig=Rg;function Mg(e){const t=Ao({nonce:F()});return W(()=>e?.value||t.nonce?.value)}const Dg=[" ","Enter","ArrowUp","ArrowDown"],kg=[" ","Enter"],ft=10;function yo(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(o=>Us(o,t,n)):Us(e,t,n)}function Us(e,t,n){return e===void 0||t===void 0?!1:typeof e=="string"?e===t:typeof n=="function"?n(e,t):typeof n=="string"?e?.[n]===t?.[n]:Lf(e,t)}function Bg(e){return e==null||e===""||Array.isArray(e)&&e.length===0}const $g=["value"],[pn,Xu]=dt("SelectRoot");var qg=J({inheritAttrs:!1,__name:"SelectRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},nullableValue:{type:String,required:!1,default:""},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","update:open"],setup(e,{emit:t}){const n=e,o=t,{required:r,disabled:s,multiple:i,dir:l}=cn(n),a=ho(n,"modelValue",o,{defaultValue:n.defaultValue??(i.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),u=ho(n,"open",o,{defaultValue:n.defaultOpen,passive:n.open===void 0}),c=F(),d=F(),h=F({x:0,y:0}),p=W(()=>i.value&&Array.isArray(a.value)?a.value?.length===0:Bs(a.value));dn({isProvider:!0});const y=xu(l),S=Au(c),E=F(new Set),m=W(()=>Array.from(E.value).map(w=>w.value).join(";"));function _(w){if(i.value){const R=Array.isArray(a.value)?[...a.value]:[],P=R.findIndex(v=>Us(v,w,n.by));P===-1?R.push(w):R.splice(P,1),a.value=[...R]}else a.value=w}function x(w){return Array.from(E.value).find(R=>yo(w,R.value,n.by))}return Xu({triggerElement:c,onTriggerChange:w=>{c.value=w},valueElement:d,onValueElementChange:w=>{d.value=w},contentId:"",modelValue:a,onValueChange:_,by:n.by,open:u,multiple:i,required:r,onOpenChange:w=>{u.value=w},dir:y,triggerPointerDownPosRef:h,disabled:s,isEmptyModelValue:p,optionsSet:E,onOptionAdd:w=>{const R=x(w.value);R&&E.value.delete(R),E.value.add(w)},onOptionRemove:w=>{const R=x(w.value);R&&E.value.delete(R)}}),(w,R)=>(D(),G(f(xh),null,{default:B(()=>[Z(w.$slots,"default",{modelValue:f(a),open:f(u)}),f(S)&&w.name?(D(),G(Fg,{key:m.value,"aria-hidden":"true",tabindex:"-1",multiple:f(i),required:f(r),name:w.name,autocomplete:w.autocomplete,disabled:f(s),value:f(a)},{default:B(()=>[f(Bs)(f(a))?(D(),ae("option",{key:0,value:w.nullableValue},null,8,$g)):Ce("v-if",!0),(D(!0),ae(Ae,null,Co(Array.from(E.value),P=>(D(),ae("option",ce({key:P.value??""},{ref_for:!0},P),null,16))),128))]),_:1},8,["multiple","required","name","autocomplete","disabled","value"])):Ce("v-if",!0)]),_:3}))}}),Ng=qg,Lg=J({__name:"BubbleSelect",props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){const t=e,n=F(),o=pn();we(()=>t.value,(s,i)=>{const l=window.HTMLSelectElement.prototype,u=Object.getOwnPropertyDescriptor(l,"value").set;if(s!==i&&u&&n.value){const c=new Event("change",{bubbles:!0});u.call(n.value,s),n.value.dispatchEvent(c)}});function r(s){o.onValueChange(s.target.value)}return(s,i)=>(D(),G(f(Er),{"as-child":""},{default:B(()=>[g("select",ce({ref_key:"selectElement",ref:n},t,{onInput:r}),[Z(s.$slots,"default")],16)]),_:3}))}}),Fg=Lg,Vg=J({__name:"SelectPopperPosition",props:{memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:ft},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const n=hi(e);return(o,r)=>(D(),G(f(Ig),ce(f(n),{style:{boxSizing:"border-box","--reka-select-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-select-content-available-width":"var(--reka-popper-available-width)","--reka-select-content-available-height":"var(--reka-popper-available-height)","--reka-select-trigger-width":"var(--reka-popper-anchor-width)","--reka-select-trigger-height":"var(--reka-popper-anchor-height)"}}),{default:B(()=>[Z(o.$slots,"default")]),_:3},16))}}),Hg=Vg;const Ug={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[Rr,Qu]=dt("SelectContent");var jg=J({__name:"SelectContentImpl",props:{position:{type:String,required:!1,default:"item-aligned"},bodyLock:{type:Boolean,required:!1,default:!0},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(e,{emit:t}){const n=e,o=t,r=pn();ap(),Su(n.bodyLock);const{CollectionSlot:s,getItems:i}=dn(),l=F();Ou(l);const{search:a,handleTypeaheadSearch:u}=Ru(),c=F(),d=F(),h=F(),p=F(!1),y=F(!1),S=F(!1);function E(){d.value&&l.value&&gl([d.value,l.value])}we(p,()=>{E()});const{onOpenChange:m,triggerPointerDownPosRef:_}=r;yt(P=>{if(!l.value)return;let v={x:0,y:0};const C=k=>{v={x:Math.abs(Math.round(k.pageX)-(_.value?.x??0)),y:Math.abs(Math.round(k.pageY)-(_.value?.y??0))}},I=k=>{k.pointerType!=="touch"&&(v.x<=10&&v.y<=10?k.preventDefault():l.value?.contains(k.target)||m(!1),document.removeEventListener("pointermove",C),_.value=null)};_.value!==null&&(document.addEventListener("pointermove",C),document.addEventListener("pointerup",I,{capture:!0,once:!0})),P(()=>{document.removeEventListener("pointermove",C),document.removeEventListener("pointerup",I,{capture:!0})})});function x(P){const v=P.ctrlKey||P.altKey||P.metaKey;if(P.key==="Tab"&&P.preventDefault(),!v&&P.key.length===1&&u(P.key,i()),["ArrowUp","ArrowDown","Home","End"].includes(P.key)){let I=[...i().map(k=>k.ref)];if(["ArrowUp","End"].includes(P.key)&&(I=I.slice().reverse()),["ArrowUp","ArrowDown"].includes(P.key)){const k=P.target,j=I.indexOf(k);I=I.slice(j+1)}setTimeout(()=>gl(I)),P.preventDefault()}}const w=W(()=>n.position==="popper"?n:{}),R=hi(w.value);return Qu({content:l,viewport:c,onViewportChange:P=>{c.value=P},itemRefCallback:(P,v,C)=>{const I=!y.value&&!C,k=yo(r.modelValue.value,v,r.by);if(r.multiple.value){if(S.value)return;(k||I)&&(d.value=P,k&&(S.value=!0))}else(k||I)&&(d.value=P);I&&(y.value=!0)},selectedItem:d,selectedItemText:h,onItemLeave:()=>{l.value?.focus()},itemTextRefCallback:(P,v,C)=>{const I=!y.value&&!C;(yo(r.modelValue.value,v,r.by)||I)&&(h.value=P)},focusSelectedItem:E,position:n.position,isPositioned:p,searchRef:a}),(P,v)=>(D(),G(f(s),null,{default:B(()=>[L(f(ku),{"as-child":"",onMountAutoFocus:v[6]||(v[6]=Ue(()=>{},["prevent"])),onUnmountAutoFocus:v[7]||(v[7]=C=>{o("closeAutoFocus",C),!C.defaultPrevented&&(f(r).triggerElement.value?.focus({preventScroll:!0}),C.preventDefault())})},{default:B(()=>[L(f(Du),{"as-child":"","disable-outside-pointer-events":P.disableOutsidePointerEvents,onFocusOutside:v[2]||(v[2]=Ue(()=>{},["prevent"])),onDismiss:v[3]||(v[3]=C=>f(r).onOpenChange(!1)),onEscapeKeyDown:v[4]||(v[4]=C=>o("escapeKeyDown",C)),onPointerDownOutside:v[5]||(v[5]=C=>o("pointerDownOutside",C))},{default:B(()=>[(D(),G(Xa(P.position==="popper"?Hg:Yg),ce({...P.$attrs,...f(R)},{id:f(r).contentId,ref:C=>{if(!C)return;const I=f(ut)(C);I?.hasAttribute("data-reka-popper-content-wrapper")?l.value=I.firstElementChild:l.value=I},role:"listbox","data-state":f(r).open.value?"open":"closed",dir:f(r).dir.value,style:{display:"flex",flexDirection:"column",outline:"none"},onContextmenu:v[0]||(v[0]=Ue(()=>{},["prevent"])),onPlaced:v[1]||(v[1]=C=>p.value=!0),onKeydown:x}),{default:B(()=>[Z(P.$slots,"default")]),_:3},16,["id","data-state","dir","onKeydown"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Kg=jg;const[Wg,zg]=dt("SelectItemAlignedPosition");var Gg=J({inheritAttrs:!1,__name:"SelectItemAlignedPosition",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["placed"],setup(e,{emit:t}){const n=e,o=t,{getItems:r}=dn(),s=pn(),i=Rr(),l=F(!1),a=F(!0),u=F(),{forwardRef:c,currentElement:d}=de(),{viewport:h,selectedItem:p,selectedItemText:y,focusSelectedItem:S}=i;function E(){if(s.triggerElement.value&&s.valueElement.value&&u.value&&d.value&&h?.value&&p?.value&&y?.value){const x=s.triggerElement.value.getBoundingClientRect(),w=d.value.getBoundingClientRect(),R=s.valueElement.value.getBoundingClientRect(),P=y.value.getBoundingClientRect();if(s.dir.value!=="rtl"){const Pe=P.left-w.left,Oe=R.left-Pe,$e=x.left-Oe,qe=x.width+$e,Po=Math.max(qe,w.width),b=window.innerWidth-ft,A=ul(Oe,ft,Math.max(ft,b-Po));u.value.style.minWidth=`${qe}px`,u.value.style.left=`${A}px`}else{const Pe=w.right-P.right,Oe=window.innerWidth-R.right-Pe,$e=window.innerWidth-x.right-Oe,qe=x.width+$e,Po=Math.max(qe,w.width),b=window.innerWidth-ft,A=ul(Oe,ft,Math.max(ft,b-Po));u.value.style.minWidth=`${qe}px`,u.value.style.right=`${A}px`}const v=r().map(Pe=>Pe.ref),C=window.innerHeight-ft*2,I=h.value.scrollHeight,k=window.getComputedStyle(d.value),j=Number.parseInt(k.borderTopWidth,10),X=Number.parseInt(k.paddingTop,10),H=Number.parseInt(k.borderBottomWidth,10),z=Number.parseInt(k.paddingBottom,10),ve=j+X+I+z+H,le=Math.min(p.value.offsetHeight*5,ve),ue=window.getComputedStyle(h.value),ie=Number.parseInt(ue.paddingTop,10),Ee=Number.parseInt(ue.paddingBottom,10),Ge=x.top+x.height/2-ft,tt=C-Ge,Be=p.value.offsetHeight/2,Zt=p.value.offsetTop+Be,en=j+X+Zt,hn=ve-en;if(en<=Ge){const Pe=p.value===v.at(-1);u.value.style.bottom="0px";const Oe=d.value.clientHeight-h.value.offsetTop-h.value.offsetHeight,$e=Math.max(tt,Be+(Pe?Ee:0)+Oe+H),qe=en+$e;u.value.style.height=`${qe}px`}else{const Pe=p.value===v[0];u.value.style.top="0px";const $e=Math.max(Ge,j+h.value.offsetTop+(Pe?ie:0)+Be)+hn;u.value.style.height=`${$e}px`,h.value.scrollTop=en-Ge+h.value.offsetTop}u.value.style.margin=`${ft}px 0`,u.value.style.minHeight=`${le}px`,u.value.style.maxHeight=`${C}px`,o("placed"),requestAnimationFrame(()=>l.value=!0)}}const m=F("");Re(async()=>{await Le(),E(),d.value&&(m.value=window.getComputedStyle(d.value).zIndex)});function _(x){x&&a.value===!0&&(E(),S?.(),a.value=!1)}return op(s.triggerElement,()=>{E()}),zg({contentWrapper:u,shouldExpandOnScrollRef:l,onScrollButtonChange:_}),(x,w)=>(D(),ae("div",{ref_key:"contentWrapperElement",ref:u,style:st({display:"flex",flexDirection:"column",position:"fixed",zIndex:m.value})},[L(f(Se),ce({ref:f(c),style:{boxSizing:"border-box",maxHeight:"100%"}},{...x.$attrs,...n}),{default:B(()=>[Z(x.$slots,"default")]),_:3},16)],4))}}),Yg=Gg,Jg=J({inheritAttrs:!1,__name:"SelectProvider",props:{context:{type:Object,required:!0}},setup(e){return Xu(e.context),Qu(Ug),(n,o)=>Z(n.$slots,"default")}}),Xg=Jg;const Qg={key:1};var Zg=J({inheritAttrs:!1,__name:"SelectContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(e,{emit:t}){const n=e,r=Tu(n,t),s=pn(),i=F();Re(()=>{i.value=new DocumentFragment});const l=F(),a=W(()=>n.forceMount||s.open.value),u=F(a.value);let c;function d(){c&&(clearTimeout(c),c=void 0)}return we(a,(h,p,y)=>{d(),c=setTimeout(()=>{u.value=a.value,c=void 0}),y(d)}),Xt(d),(h,p)=>a.value||u.value||l.value?.present?(D(),G(f(Sr),{key:0,ref_key:"presenceRef",ref:l,present:a.value},{default:B(()=>[L(Kg,bt(ct({...f(r),...h.$attrs})),{default:B(()=>[Z(h.$slots,"default")]),_:3},16)]),_:3},8,["present"])):i.value?(D(),ae("div",Qg,[(D(),G(si,{to:i.value},[L(Xg,{context:f(s)},{default:B(()=>[Z(h.$slots,"default")]),_:3},8,["context"])],8,["to"]))])):Ce("v-if",!0)}}),ev=Zg,tv=J({__name:"SelectIcon",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){return(t,n)=>(D(),G(f(Se),{"aria-hidden":"true",as:t.as,"as-child":t.asChild},{default:B(()=>[Z(t.$slots,"default",{},()=>[n[0]||(n[0]=ne("▼"))])]),_:3},8,["as","as-child"]))}}),nv=tv;const[Zu,ov]=dt("SelectItem");var rv=J({__name:"SelectItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(e,{emit:t}){const n=e,o=t,{disabled:r}=cn(n),s=pn(),i=Rr(),{forwardRef:l,currentElement:a}=de(),{CollectionItem:u}=dn(),c=W(()=>yo(s.modelValue?.value,n.value,s.by)),d=F(!1),h=F(n.textValue??""),p=go(void 0,"reka-select-item-text"),y="select.select";async function S(w){if(w.defaultPrevented)return;const R={originalEvent:w,value:n.value};di(y,E,R)}async function E(w){await Le(),o("select",w),!w.defaultPrevented&&(r.value||(s.onValueChange(n.value),s.multiple.value||s.onOpenChange(!1)))}async function m(w){await Le(),!w.defaultPrevented&&(r.value?i.onItemLeave?.():w.currentTarget?.focus({preventScroll:!0}))}async function _(w){await Le(),!w.defaultPrevented&&w.currentTarget===ze()&&i.onItemLeave?.()}async function x(w){await Le(),!(w.defaultPrevented||i.searchRef?.value!==""&&w.key===" ")&&(kg.includes(w.key)&&S(w),w.key===" "&&w.preventDefault())}if(n.value==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return Re(()=>{a.value&&i.itemRefCallback(a.value,n.value,n.disabled)}),ov({value:n.value,disabled:r,textId:p,isSelected:c,onItemTextChange:w=>{h.value=((h.value||w?.textContent)??"").trim()}}),(w,R)=>(D(),G(f(u),{value:{textValue:h.value}},{default:B(()=>[L(f(Se),{ref:f(l),role:"option","aria-labelledby":f(p),"data-highlighted":d.value?"":void 0,"aria-selected":c.value,"data-state":c.value?"checked":"unchecked","aria-disabled":f(r)||void 0,"data-disabled":f(r)?"":void 0,tabindex:f(r)?void 0:-1,as:w.as,"as-child":w.asChild,onFocus:R[0]||(R[0]=P=>d.value=!0),onBlur:R[1]||(R[1]=P=>d.value=!1),onPointerup:S,onPointerdown:R[2]||(R[2]=P=>{P.currentTarget.focus({preventScroll:!0})}),onTouchend:R[3]||(R[3]=Ue(()=>{},["prevent","stop"])),onPointermove:m,onPointerleave:_,onKeydown:x},{default:B(()=>[Z(w.$slots,"default")]),_:3},8,["aria-labelledby","data-highlighted","aria-selected","data-state","aria-disabled","data-disabled","tabindex","as","as-child"])]),_:3},8,["value"]))}}),sv=rv,iv=J({__name:"SelectItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,n=Zu();return(o,r)=>f(n).isSelected.value?(D(),G(f(Se),ce({key:0,"aria-hidden":"true"},t),{default:B(()=>[Z(o.$slots,"default")]),_:3},16)):Ce("v-if",!0)}}),lv=iv,av=J({inheritAttrs:!1,__name:"SelectItemText",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,n=pn(),o=Rr(),r=Zu(),{forwardRef:s,currentElement:i}=de(),l=W(()=>({value:r.value,disabled:r.disabled.value,textContent:i.value?.textContent??r.value?.toString()??""}));return Re(()=>{i.value&&(r.onItemTextChange(i.value),o.itemTextRefCallback(i.value,r.value,r.disabled.value),n.onOptionAdd(l.value))}),Xt(()=>{n.onOptionRemove(l.value)}),(a,u)=>(D(),G(f(Se),ce({id:f(r).textId,ref:f(s)},{...t,...a.$attrs}),{default:B(()=>[Z(a.$slots,"default")]),_:3},16,["id"]))}}),uv=av,cv=J({__name:"SelectPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const t=e;return(n,o)=>(D(),G(f(mi),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),dv=cv,fv=J({__name:"SelectTrigger",props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const t=e,n=pn(),{forwardRef:o,currentElement:r}=de(),s=W(()=>n.disabled?.value||t.disabled);n.contentId||=go(void 0,"reka-select-content"),Re(()=>{n.onTriggerChange(r.value)});const{getItems:i}=dn(),{search:l,handleTypeaheadSearch:a,resetTypeahead:u}=Ru();function c(){s.value||(n.onOpenChange(!0),u())}function d(m){c(),n.triggerPointerDownPosRef.value={x:Math.round(m.pageX),y:Math.round(m.pageY)}}function h(m){return m.button===0&&m.ctrlKey===!1}let p=!1;function y(m){if(m.pointerType==="touch")return m.preventDefault();const _=m.target;_.hasPointerCapture(m.pointerId)&&_.releasePointerCapture(m.pointerId),h(m)&&(d(m),p=!0)}function S(m){h(m)&&m.preventDefault()}function E(m){p||m.currentTarget?.focus(),p=!1}return(m,_)=>(D(),G(f(Th),{"as-child":"",reference:m.reference},{default:B(()=>[L(f(Se),{ref:f(o),role:"combobox",type:m.as==="button"?"button":void 0,"aria-controls":f(n).contentId,"aria-expanded":f(n).open.value||!1,"aria-required":f(n).required?.value,"aria-autocomplete":"none",disabled:s.value,dir:f(n)?.dir.value,"data-state":f(n)?.open.value?"open":"closed","data-disabled":s.value?"":void 0,"data-placeholder":f(Bg)(f(n).modelValue?.value)?"":void 0,"as-child":m.asChild,as:m.as,onClick:E,onPointerdown:y,onMousedown:S,onPointerup:_[0]||(_[0]=Ue(x=>{x.pointerType==="touch"&&d(x)},["prevent"])),onKeydown:_[1]||(_[1]=x=>{const w=f(l)!=="";!(x.ctrlKey||x.altKey||x.metaKey)&&x.key.length===1&&w&&x.key===" "||(f(a)(x.key,f(i)()),f(Dg).includes(x.key)&&(c(),x.preventDefault()))})},{default:B(()=>[Z(m.$slots,"default")]),_:3},8,["type","aria-controls","aria-expanded","aria-required","disabled","dir","data-state","data-disabled","data-placeholder","as-child","as"])]),_:3},8,["reference"]))}}),pv=fv,hv=J({__name:"SelectValue",props:{placeholder:{type:String,required:!1,default:""},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,{forwardRef:n,currentElement:o}=de(),r=pn();Re(()=>{r.valueElement=o});const s=W(()=>{let l=[];const a=Array.from(r.optionsSet.value),u=c=>a.find(d=>yo(c,d.value,r.by));return Array.isArray(r.modelValue.value)?l=r.modelValue.value.map(c=>u(c)?.textContent??""):l=[u(r.modelValue.value)?.textContent??""],l.filter(Boolean)}),i=W(()=>s.value.length?s.value.join(", "):t.placeholder);return(l,a)=>(D(),G(f(Se),{ref:f(n),as:l.as,"as-child":l.asChild,style:{pointerEvents:"none"},"data-placeholder":s.value.length?void 0:t.placeholder},{default:B(()=>[Z(l.$slots,"default",{selectedLabel:s.value,modelValue:f(r).modelValue.value},()=>[ne(O(i.value),1)])]),_:3},8,["as","as-child","data-placeholder"]))}}),gv=hv,vv=J({__name:"SelectViewport",props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e,{nonce:n}=cn(t),o=Mg(n),r=Rr(),s=r.position==="item-aligned"?Wg():void 0,{forwardRef:i,currentElement:l}=de();Re(()=>{r?.onViewportChange(l.value)});const a=F(0);function u(c){const d=c.currentTarget,{shouldExpandOnScrollRef:h,contentWrapper:p}=s??{};if(h?.value&&p?.value){const y=Math.abs(a.value-d.scrollTop);if(y>0){const S=window.innerHeight-ft*2,E=Number.parseFloat(p.value.style.minHeight),m=Number.parseFloat(p.value.style.height),_=Math.max(E,m);if(_0?R:0,p.value.style.justifyContent="flex-end")}}}a.value=d.scrollTop}return(c,d)=>(D(),ae(Ae,null,[L(f(Se),ce({ref:f(i),"data-reka-select-viewport":"",role:"presentation"},{...c.$attrs,...t},{style:{position:"relative",flex:1,overflow:"hidden auto"},onScroll:u}),{default:B(()=>[Z(c.$slots,"default")]),_:3},16),L(f(Se),{as:"style",nonce:f(o)},{default:B(()=>d[0]||(d[0]=[ne(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } ")])),_:1,__:[0]},8,["nonce"])],64))}}),mv=vv;const[yv,bv]=dt("SwitchRoot");var wv=J({inheritAttrs:!1,__name:"SwitchRoot",props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:"on"},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,{disabled:r}=cn(n),s=ho(n,"modelValue",o,{defaultValue:n.defaultValue??n.falseValue,passive:n.modelValue===void 0}),i=W(()=>s.value===n.trueValue);function l(){r.value||(s.value=i.value?n.falseValue:n.trueValue)}const{forwardRef:a,currentElement:u}=de(),c=Au(u),d=up(),h=W(()=>n.id&&u.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return bv({checked:i,toggleCheck:l,disabled:r}),(p,y)=>(D(),ae(Ae,null,[L(f(Se),ce({id:p.id,ref:f(a),role:"switch",type:p.as==="button"?"button":void 0,value:p.value,"aria-label":p.$attrs["aria-label"]||h.value,"aria-checked":i.value,"aria-required":p.required,"data-state":i.value?"checked":"unchecked","data-disabled":f(r)?"":void 0,"as-child":p.asChild,as:p.as,disabled:f(r)},{...f(d),...p.$attrs},{onClick:l,onKeydown:Mf(Ue(l,["prevent"]),["enter"])}),{default:B(()=>[Z(p.$slots,"default",{modelValue:f(s),checked:i.value})]),_:3},16,["id","type","value","aria-label","aria-checked","aria-required","data-state","data-disabled","as-child","as","disabled","onKeydown"]),f(c)&&p.name?(D(),G(f(Ch),ce({key:0,type:"checkbox",name:p.name,disabled:f(r),required:p.required,value:p.value,checked:i.value},f(d)),null,16,["name","disabled","required","value","checked"])):Ce("v-if",!0)],64))}}),_v=wv,Cv=J({__name:"SwitchThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=yv();return de(),(n,o)=>(D(),G(f(Se),{"data-state":f(t).checked.value?"checked":"unchecked","data-disabled":f(t).disabled.value?"":void 0,"as-child":n.asChild,as:n.as},{default:B(()=>[Z(n.$slots,"default")]),_:3},8,["data-state","data-disabled","as-child","as"]))}}),Sv=Cv;const[Ir,Ev]=dt("ToastProvider");var xv=J({inheritAttrs:!1,__name:"ToastProvider",props:{label:{type:String,required:!1,default:"Notification"},duration:{type:Number,required:!1,default:5e3},disableSwipe:{type:Boolean,required:!1},swipeDirection:{type:String,required:!1,default:"right"},swipeThreshold:{type:Number,required:!1,default:50}},setup(e){const t=e,{label:n,duration:o,disableSwipe:r,swipeDirection:s,swipeThreshold:i}=cn(t);dn({isProvider:!0});const l=F(),a=F(0),u=F(!1),c=F(!1);if(t.label&&typeof t.label=="string"&&!t.label.trim()){const d="Invalid prop `label` supplied to `ToastProvider`. Expected non-empty `string`.";throw new Error(d)}return Ev({label:n,duration:o,disableSwipe:r,swipeDirection:s,swipeThreshold:i,toastCount:a,viewport:l,onViewportChange(d){l.value=d},onToastAdd(){a.value++},onToastRemove(){a.value--},isFocusedToastEscapeKeyDownRef:u,isClosePausedRef:c}),(d,h)=>Z(d.$slots,"default")}}),Av=xv,Tv=J({__name:"ToastAnnounce",setup(e){const t=Ir(),n=Xf(1e3),o=F(!1);let r=0,s=0;return at&&(r=requestAnimationFrame(()=>{s=requestAnimationFrame(()=>{o.value=!0})}),Zs(()=>{cancelAnimationFrame(r),cancelAnimationFrame(s)})),(i,l)=>f(n)||o.value?(D(),G(f(Er),{key:0,feature:"fully-hidden"},{default:B(()=>[ne(O(f(t).label.value)+" ",1),Z(i.$slots,"default")]),_:3})):Ce("v-if",!0)}}),Pv=Tv;const Ov="toast.swipeStart",Rv="toast.swipeMove",Iv="toast.swipeCancel",Mv="toast.swipeEnd",js="toast.viewportPause",Ks="toast.viewportResume";function qo(e,t,n){const o=n.originalEvent.currentTarget,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),o.dispatchEvent(r)}function Pl(e,t,n=0){const o=Math.abs(e.x),r=Math.abs(e.y),s=o>r;return t==="left"||t==="right"?s&&o>n:!s&&r>n}function Dv(e){return e.nodeType===e.ELEMENT_NODE}function ec(e){const t=[];return Array.from(e.childNodes).forEach(o=>{if(o.nodeType===o.TEXT_NODE&&o.textContent&&t.push(o.textContent),Dv(o)){const r=o.ariaHidden||o.hidden||o.style.display==="none",s=o.dataset.rekaToastAnnounceExclude==="";if(!r)if(s){const i=o.dataset.rekaToastAnnounceAlt;i&&t.push(i)}else t.push(...ec(o))}}),t}const[w1,kv]=dt("ToastRoot");var Bv=J({inheritAttrs:!1,__name:"ToastRootImpl",props:{type:{type:String,required:!1},open:{type:Boolean,required:!1,default:!1},duration:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},emits:["close","escapeKeyDown","pause","resume","swipeStart","swipeMove","swipeCancel","swipeEnd"],setup(e,{emit:t}){const n=e,o=t,{forwardRef:r,currentElement:s}=de(),{CollectionItem:i}=dn(),l=Ir(),a=F(null),u=F(null),c=W(()=>typeof n.duration=="number"?n.duration:l.duration.value),d=F(0),h=F(c.value),p=F(0),y=F(c.value),S=tp(()=>{const x=Date.now()-d.value;y.value=Math.max(h.value-x,0)},{fpsLimit:60});function E(x){x<=0||x===Number.POSITIVE_INFINITY||at&&(window.clearTimeout(p.value),d.value=Date.now(),p.value=window.setTimeout(m,x))}function m(x){const w=x?.pointerType==="";s.value?.contains(ze())&&w&&l.viewport.value?.focus(),w&&(l.isClosePausedRef.value=!1),o("close")}const _=W(()=>s.value?ec(s.value):null);if(n.type&&!["foreground","background"].includes(n.type)){const x="Invalid prop `type` supplied to `Toast`. Expected `foreground | background`.";throw new Error(x)}return yt(x=>{const w=l.viewport.value;if(w){const R=()=>{E(h.value),S.resume(),o("resume")},P=()=>{const v=Date.now()-d.value;h.value=h.value-v,window.clearTimeout(p.value),S.pause(),o("pause")};return w.addEventListener(js,P),w.addEventListener(Ks,R),()=>{w.removeEventListener(js,P),w.removeEventListener(Ks,R)}}}),we(()=>[n.open,c.value],()=>{h.value=c.value,n.open&&!l.isClosePausedRef.value&&E(c.value)},{immediate:!0}),fi("Escape",x=>{o("escapeKeyDown",x),x.defaultPrevented||(l.isFocusedToastEscapeKeyDownRef.value=!0,m())}),Re(()=>{l.onToastAdd()}),Xt(()=>{l.onToastRemove()}),kv({onClose:m}),(x,w)=>(D(),ae(Ae,null,[_.value?(D(),G(Pv,{key:0,role:"alert","aria-live":x.type==="foreground"?"assertive":"polite"},{default:B(()=>[Ce(` Render each chunk as its own text node so screen readers get the natural pause break between nodes (see comment in utils.ts). Interpolating the array directly with \`{{ announceTextContent }}\` would route through Vue's \`toDisplayString\`, which JSON-stringifies arrays — the live region would then announce literal \`[\`, quotes and commas instead of the toast title and description. - `),(I(!0),ae(Ae,null,_o(E.value,(R,T)=>(I(),ae(Ae,{key:T},[oe(O(R),1)],64))),128))]),_:1},8,["aria-live"])):Ce("v-if",!0),f(l).viewport.value?(I(),G(si,{key:1,to:f(l).viewport.value},[L(f(i),null,{default:k(()=>[L(f(Se),ce({ref:f(r),tabindex:"0"},x.$attrs,{as:x.as,"as-child":x.asChild,"data-state":x.open?"open":"closed","data-swipe-direction":f(l).swipeDirection.value,style:f(l).disableSwipe.value?void 0:{userSelect:"none",touchAction:"none"},onPointerdown:_[0]||(_[0]=Ue(R=>{f(l).disableSwipe.value||(a.value={x:R.clientX,y:R.clientY})},["left"])),onPointermove:_[1]||(_[1]=R=>{if(f(l).disableSwipe.value||!a.value)return;const T=R.clientX-a.value.x,v=R.clientY-a.value.y,S=!!u.value,M=["left","right"].includes(f(l).swipeDirection.value),B=["left","up"].includes(f(l).swipeDirection.value)?Math.min:Math.max,j=M?B(0,T):0,X=M?0:B(0,v),H=R.pointerType==="touch"?10:2,W={x:j,y:X},ve={originalEvent:R,delta:W};S?(u.value=W,f($o)(f(Rv),le=>o("swipeMove",le),ve)):f(Pl)(W,f(l).swipeDirection.value,H)?(u.value=W,f($o)(f(Ov),le=>o("swipeStart",le),ve),R.target.setPointerCapture(R.pointerId)):(Math.abs(T)>H||Math.abs(v)>H)&&(a.value=null)}),onPointerup:_[2]||(_[2]=R=>{if(f(l).disableSwipe.value)return;const T=u.value,v=R.target;if(v.hasPointerCapture(R.pointerId)&&v.releasePointerCapture(R.pointerId),u.value=null,a.value=null,T){const S=R.currentTarget,M={originalEvent:R,delta:T};f(Pl)(T,f(l).swipeDirection.value,f(l).swipeThreshold.value)?f($o)(f(Dv),B=>o("swipeEnd",B),M):f($o)(f(Mv),B=>o("swipeCancel",B),M),S?.addEventListener("click",B=>B.preventDefault(),{once:!0})}})}),{default:k(()=>[Z(x.$slots,"default",{remaining:y.value,duration:c.value})]),_:3},16,["as","as-child","data-state","data-swipe-direction","style"])]),_:3})],8,["to"])):Ce("v-if",!0)],64))}}),$v=kv,qv=J({__name:"ToastRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!0},forceMount:{type:Boolean,required:!1},type:{type:String,required:!1,default:"foreground"},open:{type:Boolean,required:!1,default:void 0},duration:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},emits:["escapeKeyDown","pause","resume","swipeStart","swipeMove","swipeCancel","swipeEnd","update:open"],setup(e,{emit:t}){const n=e,o=t,{forwardRef:r}=de(),s=po(n,"open",o,{defaultValue:n.defaultOpen,passive:n.open===void 0});return(i,l)=>(I(),G(f(Sr),{present:i.forceMount||f(s)},{default:k(()=>[L($v,ce({ref:f(r),open:f(s),type:i.type,as:i.as,"as-child":i.asChild,duration:i.duration},i.$attrs,{onClose:l[0]||(l[0]=a=>s.value=!1),onPause:l[1]||(l[1]=a=>o("pause")),onResume:l[2]||(l[2]=a=>o("resume")),onEscapeKeyDown:l[3]||(l[3]=a=>o("escapeKeyDown",a)),onSwipeStart:l[4]||(l[4]=a=>{o("swipeStart",a),a.defaultPrevented||a.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:l[5]||(l[5]=a=>{if(o("swipeMove",a),!a.defaultPrevented){const{x:u,y:c}=a.detail.delta,d=a.currentTarget;d.setAttribute("data-swipe","move"),d.style.setProperty("--reka-toast-swipe-move-x",`${u}px`),d.style.setProperty("--reka-toast-swipe-move-y",`${c}px`)}}),onSwipeCancel:l[6]||(l[6]=a=>{if(o("swipeCancel",a),!a.defaultPrevented){const u=a.currentTarget;u.setAttribute("data-swipe","cancel"),u.style.removeProperty("--reka-toast-swipe-move-x"),u.style.removeProperty("--reka-toast-swipe-move-y"),u.style.removeProperty("--reka-toast-swipe-end-x"),u.style.removeProperty("--reka-toast-swipe-end-y")}}),onSwipeEnd:l[7]||(l[7]=a=>{if(o("swipeEnd",a),!a.defaultPrevented){const{x:u,y:c}=a.detail.delta,d=a.currentTarget;d.setAttribute("data-swipe","end"),d.style.removeProperty("--reka-toast-swipe-move-x"),d.style.removeProperty("--reka-toast-swipe-move-y"),d.style.setProperty("--reka-toast-swipe-end-x",`${u}px`),d.style.setProperty("--reka-toast-swipe-end-y",`${c}px`),s.value=!1}})}),{default:k(({remaining:a,duration:u})=>[Z(i.$slots,"default",{remaining:a,duration:u,open:f(s)})]),_:3},16,["open","type","as","as-child","duration"])]),_:3},8,["present"]))}}),Nv=qv,Lv=J({__name:"ToastTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return de(),(n,o)=>(I(),G(f(Se),bt(ct(t)),{default:k(()=>[Z(n.$slots,"default")]),_:3},16))}}),Fv=Lv,Vv=J({__name:"FocusProxy",emits:["focusFromOutsideViewport"],setup(e,{emit:t}){const n=t,o=Mr();return(r,s)=>(I(),G(f(Er),{tabindex:"0",style:{position:"fixed"},onFocus:s[0]||(s[0]=i=>{const l=i.relatedTarget;!f(o).viewport.value?.contains(l)&&n("focusFromOutsideViewport")})},{default:k(()=>[Z(r.$slots,"default")]),_:3}))}}),Ol=Vv,Hv=J({inheritAttrs:!1,__name:"ToastViewport",props:{hotkey:{type:Array,required:!1,default:()=>["F8"]},label:{type:[String,Function],required:!1,default:"Notifications ({hotkey})"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"ol"}},setup(e){const t=e,{hotkey:n,label:o}=cn(t),{forwardRef:r,currentElement:s}=de(),{CollectionSlot:i,getItems:l}=dn(),a=Mr(),u=z(()=>a.toastCount.value>0),c=F(),d=F(),h=/Key/g,p=/Digit/g,y=z(()=>n.value.join("+").replace(h,"").replace(p,""));fi(n.value,()=>{s.value.focus()}),Re(()=>{a.onViewportChange(s.value)}),yt(b=>{const m=s.value;if(u.value&&m){const E=()=>{if(!a.isClosePausedRef.value){const v=new CustomEvent(js);m.dispatchEvent(v),a.isClosePausedRef.value=!0}},x=()=>{if(a.isClosePausedRef.value){const v=new CustomEvent(Ks);m.dispatchEvent(v),a.isClosePausedRef.value=!1}},_=v=>{!m.contains(v.relatedTarget)&&x()},R=()=>{m.contains(ze())||x()},T=v=>{const S=v.altKey||v.ctrlKey||v.metaKey;if(v.key==="Tab"&&!S){const B=ze(),j=v.shiftKey;if(v.target===m&&j){c.value?.focus();return}const W=C({tabbingDirection:j?"backwards":"forwards"}),ve=W.findIndex(le=>le===B);Vo(W.slice(ve+1))?v.preventDefault():j?c.value?.focus():d.value?.focus()}};m.addEventListener("focusin",E),m.addEventListener("focusout",_),m.addEventListener("pointermove",E),m.addEventListener("pointerleave",R),m.addEventListener("keydown",T),window.addEventListener("blur",E),window.addEventListener("focus",x),b(()=>{m.removeEventListener("focusin",E),m.removeEventListener("focusout",_),m.removeEventListener("pointermove",E),m.removeEventListener("pointerleave",R),m.removeEventListener("keydown",T),window.removeEventListener("blur",E),window.removeEventListener("focus",x)})}});function C({tabbingDirection:b}){const E=l().map(x=>x.ref).map(x=>{const _=[x,...vi(x)];return b==="forwards"?_:_.reverse()});return(b==="forwards"?E.reverse():E).flat()}return(b,m)=>(I(),G(f(Op),{role:"region","aria-label":typeof f(o)=="string"?f(o).replace("{hotkey}",y.value):f(o)(y.value),tabindex:"-1",style:st({pointerEvents:u.value?void 0:"none"})},{default:k(()=>[u.value?(I(),G(Ol,{key:0,ref:E=>{E&&(c.value=f(ut)(E))},onFocusFromOutsideViewport:m[0]||(m[0]=()=>{const E=C({tabbingDirection:"forwards"});f(Vo)(E)})},null,512)):Ce("v-if",!0),L(f(i),null,{default:k(()=>[L(f(Se),ce({ref:f(r),tabindex:"-1",as:b.as,"as-child":b.asChild},b.$attrs),{default:k(()=>[Z(b.$slots,"default")]),_:3},16,["as","as-child"])]),_:3}),u.value?(I(),G(Ol,{key:1,ref:E=>{E&&(d.value=f(ut)(E))},onFocusFromOutsideViewport:m[1]||(m[1]=()=>{const E=C({tabbingDirection:"backwards"});f(Vo)(E)})},null,512)):Ce("v-if",!0)]),_:3},8,["aria-label","style"]))}}),Uv=Hv;const Rl={"zh-CN":{"app.title":"SBM",language:"EN",close:"关闭",confirm:"确认",logout:"退出",overview:"概览",protocols:"协议",server:"服务器",settings:"设置",copied:"已复制","password.show":"显示密码","password.hide":"隐藏密码","login.title":"管理员登录","login.help":"凭据仅用于当前服务器。","login.username":"用户名","login.password":"密码","login.loading":"验证中…","login.submit":"进入控制台","login.expired":"会话已过期,请重新登录。","dashboard.title":"运行概览","dashboard.reset":"重置流量","dashboard.restart":"重启 sing-box","dashboard.exceeded":"配额已耗尽","dashboard.exceededHelp":"sing-box 已停止。重置流量或在设置中提高限额后可恢复。","dashboard.running":"运行中","dashboard.stopped":"已停止","dashboard.noReset":"不自动重置","dashboard.totalRemaining":"总额 {total} · 剩余 {remaining}","dashboard.unlimitedHelp":"未设置总流量限制","dashboard.unlimited":"不限量","dashboard.upload":"上传","dashboard.download":"下载","dashboard.refresh":"刷新","dashboard.refreshHelp":"页面每 5 秒自动刷新;点击立即拉取一次","dashboard.refreshed":"流量数据已刷新","dashboard.trafficSource":"统计来源:sing-box","dashboard.audit.collecting":"网卡校验采集中","dashboard.audit.normal":"网卡校验正常","dashboard.audit.different":"网卡流量差异较大","dashboard.audit.collectingHelp":"已观察 {amount} 代理流量,达到 64 MB 后判断。校验结果不参与限额或停机。","dashboard.audit.detail":"{interface} 同期数据:sing-box {proxy},网卡接收 {receive},发送 {transmit}。仅用于发现明显偏差,不参与限额或停机。","dashboard.audit.unavailableHelp":"当前无法识别公网默认网卡;配额统计不受影响。","dashboard.subscription":"总订阅","dashboard.subscriptionHelp":"协议变更会立即反映到这个地址,无需重新添加订阅。","dashboard.copy":"复制","dashboard.secretHelp":"订阅地址包含访问 Token,请勿公开分享。","dashboard.qrAlt":"总订阅二维码","dashboard.loading":"正在读取核心状态…","dashboard.resetConfirm":"确定清零本周期的上传和下载流量?","dashboard.restartConfirm":"这里只会重启 sing-box,不会重启 VPS 或 SBM 面板。当前代理连接会短暂断开,客户端通常会自动重连。继续吗?","dashboard.resetDone":"流量已重置","dashboard.restartDone":"sing-box 已重启","dashboard.copyDone":"订阅地址已复制","dashboard.checkUpdate":"检查面板新版本","dashboard.updateFound":"发现新版本 {version},SSH 运行 sudo sbm 后选择 6 更新","dashboard.updateCurrent":"当前已是最新版本","dashboard.updateFailed":"版本检查失败,请稍后重试","protocol.title":"协议管理","protocol.help":"每次变更都先经过 sing-box check,失败时自动回滚。","protocol.add":"新增协议","protocol.disable":"停用","protocol.enable":"启用","protocol.off":"关闭","protocol.copyLink":"复制链接","protocol.showQr":"显示二维码","protocol.edit":"编辑协议","protocol.delete":"删除协议","protocol.addAnother":"接入另一个协议","protocol.addAnotherHelp":"使用独立端口,不影响现有入站","protocol.newTitle":"新增协议","protocol.type":"协议类型","protocol.duplicate":"同一服务器上重复创建相同协议通常没有明显意义,除非使用不同端口或不同配置。","protocol.name":"节点名称","protocol.port":"监听端口","protocol.portHelp":"{network} 端口;还需在云安全组中放行","protocol.cancel":"取消","protocol.generate":"生成并应用","protocol.editTitle":"编辑协议","protocol.privateKey":"Reality 私钥","protocol.publicKey":"Reality 公钥","protocol.password":"认证密码","protocol.obfs":"混淆","protocol.obfsPassword":"混淆密码","protocol.firewall":"修改端口后,SBM 会处理 VPS 内部防火墙;云厂商安全组仍需手动检查。","protocol.apply":"校验并应用","protocol.qrAlt":"节点二维码","protocol.qrHelp":"扫描后直接导入该节点","protocol.created":"协议已创建并应用","protocol.saved":"配置已校验并应用","protocol.disabled":"协议已停用","protocol.enabled":"协议已启用","protocol.deleteConfirm":"确定删除“{name}”?","protocol.deleted":"协议已删除","protocol.linkCopied":"节点链接已复制","protocol.defaultName":"新节点","settings.title":"设置","settings.help":"配额按所有代理入站的总上传与下载累计。","settings.traffic":"流量与周期","settings.trafficHelp":"设为 0 表示无限流量。达到限额时核心自动停止。","settings.total":"代理流量配额(GB)","settings.autoReset":"自动重置","settings.noReset":"不自动重置","settings.monthly":"每月重置","settings.day":"每月日期","settings.timezone":"时区","settings.quotaGuideTitle":"按云厂商计费方式填写","settings.quotaGuideBidirectional":"双向计费(如部分 DMIT 套餐):套餐总量先除以 2,再预留 5%–10%。例如 1000 GB 建议填 450–475 GB。","settings.quotaGuideEgress":"仅计 VPS 出站(如 GCP 常见口径):套餐总量直接预留 5%–10%。例如 200 GB 建议填 180–190 GB。","settings.quotaGuideNote":"SBM 只统计 sing-box 代理流量,不含系统更新、SSH 和协议开销等;最终请以云厂商控制台为准。","settings.save":"保存流量设置","settings.subscription":"总订阅 Token","settings.subscriptionHelp":"重新生成后,所有使用旧地址的客户端都无法更新。","settings.copy":"复制","settings.regenerate":"重新生成 Token","settings.password":"管理员密码","settings.passwordHelp":"为防止会话被盗用,修改前需验证当前密码;成功后所有旧会话立即失效。","settings.currentPassword":"当前密码","settings.newPassword":"新密码","settings.confirmPassword":"确认新密码","settings.changePassword":"修改密码","settings.loading":"正在读取设置…","settings.saved":"设置已保存","settings.tokenConfirm":"旧订阅地址会立即失效,确定重新生成?","settings.tokenDone":"订阅 Token 已重新生成","settings.passwordMismatch":"两次输入的新密码不一致","settings.passwordDone":"密码已修改,请重新登录","server.title":"服务器状态","server.help":"当前 Linux 主机资源快照,每 5 秒自动刷新。","server.cpu":"CPU 使用率","server.memory":"内存","server.disk":"根分区磁盘","server.usedOf":"已用 {used} / {total}","server.load":"系统负载","server.loadHelp":"过去 1、5、15 分钟","server.uptime":"运行时长","server.days":"{days} 天 {hours} 小时","server.hours":"{hours} 小时 {minutes} 分钟","server.hostname":"主机名","server.system":"操作系统","server.kernel":"内核","server.arch":"架构","server.cores":"{count} 核","server.updated":"更新于 {time}","server.loading":"正在读取服务器状态…","api.failed":"请求失败 ({status})","api.unreachable":"无法连接面板,请检查网络后重试"},en:{"app.title":"SBM",language:"中文",close:"Close",confirm:"Confirm",logout:"Sign out",overview:"Overview",protocols:"Protocols",server:"Server",settings:"Settings",copied:"Copied","password.show":"Show password","password.hide":"Hide password","login.title":"Administrator sign in","login.help":"These credentials stay on this server.","login.username":"Username","login.password":"Password","login.loading":"Verifying…","login.submit":"Open console","login.expired":"Your session expired. Sign in again.","dashboard.title":"Runtime overview","dashboard.reset":"Reset traffic","dashboard.restart":"Restart sing-box","dashboard.exceeded":"Quota exhausted","dashboard.exceededHelp":"sing-box has stopped. Reset traffic or increase the quota in Settings to recover.","dashboard.running":"Running","dashboard.stopped":"Stopped","dashboard.noReset":"No automatic reset","dashboard.totalRemaining":"Total {total} · {remaining} remaining","dashboard.unlimitedHelp":"No traffic limit configured","dashboard.unlimited":"Unlimited","dashboard.upload":"Upload","dashboard.download":"Download","dashboard.refresh":"Refresh","dashboard.refreshHelp":"This page refreshes every 5 seconds; click to fetch once now","dashboard.refreshed":"Traffic data refreshed","dashboard.trafficSource":"Source: sing-box","dashboard.audit.collecting":"network check collecting","dashboard.audit.normal":"network check normal","dashboard.audit.different":"large network difference","dashboard.audit.collectingHelp":"{amount} of proxy traffic observed; evaluation starts at 64 MB. This check never affects the quota or core.","dashboard.audit.detail":"{interface} over the same window: sing-box {proxy}, interface received {receive} and sent {transmit}. This check only detects large differences and never affects the quota or core.","dashboard.audit.unavailableHelp":"The public default interface could not be identified. Quota tracking is unaffected.","dashboard.subscription":"Master subscription","dashboard.subscriptionHelp":"Protocol changes appear at this URL immediately—no need to add it again.","dashboard.copy":"Copy","dashboard.secretHelp":"This URL contains an access token. Keep it private.","dashboard.qrAlt":"Master subscription QR code","dashboard.loading":"Reading core status…","dashboard.resetConfirm":"Clear upload and download usage for the current period?","dashboard.restartConfirm":"This only restarts sing-box, not the VPS or SBM panel. Active proxy connections briefly disconnect and normally reconnect automatically. Continue?","dashboard.resetDone":"Traffic has been reset","dashboard.restartDone":"sing-box restarted","dashboard.copyDone":"Subscription URL copied","dashboard.checkUpdate":"Check for a panel update","dashboard.updateFound":"SBM {version} is available. Run sudo sbm over SSH and choose option 6.","dashboard.updateCurrent":"SBM is up to date","dashboard.updateFailed":"Could not check for updates. Try again later.","protocol.title":"Protocol management","protocol.help":"Every change passes sing-box check first and rolls back automatically on failure.","protocol.add":"Add protocol","protocol.disable":"Disable","protocol.enable":"Enable","protocol.off":"Off","protocol.copyLink":"Copy link","protocol.showQr":"Show QR code","protocol.edit":"Edit protocol","protocol.delete":"Delete protocol","protocol.addAnother":"Add another protocol","protocol.addAnotherHelp":"Use a separate port without disturbing current inbounds","protocol.newTitle":"Add protocol","protocol.type":"Protocol type","protocol.duplicate":"Creating the same protocol more than once on one server is rarely useful unless it uses a different port or configuration.","protocol.name":"Node name","protocol.port":"Listen port","protocol.portHelp":"{network} port; allow it in your cloud security group too","protocol.cancel":"Cancel","protocol.generate":"Generate and apply","protocol.editTitle":"Edit protocol","protocol.privateKey":"Reality private key","protocol.publicKey":"Reality public key","protocol.password":"Authentication password","protocol.obfs":"Obfuscation","protocol.obfsPassword":"Obfuscation password","protocol.firewall":"SBM handles the firewall inside the VPS after a port change. You must still check the cloud security group.","protocol.apply":"Validate and apply","protocol.qrAlt":"Node QR code","protocol.qrHelp":"Scan to import this node directly","protocol.created":"Protocol created and applied","protocol.saved":"Configuration validated and applied","protocol.disabled":"Protocol disabled","protocol.enabled":"Protocol enabled","protocol.deleteConfirm":"Delete “{name}”?","protocol.deleted":"Protocol deleted","protocol.linkCopied":"Node link copied","protocol.defaultName":"New node","settings.title":"Settings","settings.help":"The quota combines upload and download across every proxy inbound.","settings.traffic":"Traffic and period","settings.trafficHelp":"Set 0 for unlimited traffic. The core stops automatically at the limit.","settings.total":"Proxy traffic quota (GB)","settings.autoReset":"Automatic reset","settings.noReset":"No automatic reset","settings.monthly":"Monthly","settings.day":"Day of month","settings.timezone":"Timezone","settings.quotaGuideTitle":"Choose a limit for your provider’s billing method","settings.quotaGuideBidirectional":"Two-way billing (including some DMIT plans): divide the allowance by 2, then leave a 5%–10% margin. For 1000 GB, enter about 450–475 GB.","settings.quotaGuideEgress":"VPS egress-only billing (common on GCP): leave a 5%–10% margin from the allowance. For 200 GB, enter about 180–190 GB.","settings.quotaGuideNote":"SBM counts sing-box proxy traffic only. System updates, SSH, and protocol overhead are excluded; your provider dashboard remains authoritative.","settings.save":"Save traffic settings","settings.subscription":"Master subscription token","settings.subscriptionHelp":"Regenerating it prevents every client using the old URL from updating.","settings.copy":"Copy","settings.regenerate":"Regenerate token","settings.password":"Administrator password","settings.passwordHelp":"Re-enter the current password to prevent session abuse. A successful change invalidates every old session.","settings.currentPassword":"Current password","settings.newPassword":"New password","settings.confirmPassword":"Confirm new password","settings.changePassword":"Change password","settings.loading":"Reading settings…","settings.saved":"Settings saved","settings.tokenConfirm":"The old subscription URL will stop working immediately. Regenerate it?","settings.tokenDone":"Subscription token regenerated","settings.passwordMismatch":"The new passwords do not match","settings.passwordDone":"Password changed. Sign in again.","server.title":"Server status","server.help":"A live snapshot of this Linux host, refreshed every five seconds.","server.cpu":"CPU usage","server.memory":"Memory","server.disk":"Root filesystem","server.usedOf":"{used} used of {total}","server.load":"System load","server.loadHelp":"Over the last 1, 5, and 15 minutes","server.uptime":"Uptime","server.days":"{days}d {hours}h","server.hours":"{hours}h {minutes}m","server.hostname":"Hostname","server.system":"Operating system","server.kernel":"Kernel","server.arch":"Architecture","server.cores":"{count} cores","server.updated":"Updated {time}","server.loading":"Reading server status…","api.failed":"Request failed ({status})","api.unreachable":"Could not reach the panel. Check your connection and retry."}};function jv(){const e=localStorage.getItem("sbm_locale");return e==="zh-CN"||e==="en"?e:(navigator.languages?.[0]||navigator.language||"en").toLowerCase().startsWith("zh")?"zh-CN":"en"}const zn=F(jv());function P(e,t={}){let n=Rl[zn.value][e]||Rl.en[e]||e;for(const[o,r]of Object.entries(t))n=n.replaceAll(`{${o}}`,String(r));return n}function Kv(e){zn.value=e,localStorage.setItem("sbm_locale",e),document.documentElement.lang=e,document.title=P("app.title")}function tr(){Kv(zn.value==="zh-CN"?"en":"zh-CN")}function tc(){return zn.value==="zh-CN"?"zh-CN":"en-US"}document.documentElement.lang=zn.value;document.title=P("app.title");let nc="",oc=null;function Ws(e){nc=e}function Wv(e){oc=e}function rc(e){return(e instanceof Error?e.message:String(e))||P("api.unreachable")}function xi(e){return t=>async(...n)=>{try{await t(...n)}catch(o){e(rc(o))}}}async function Yt(e,t={}){const n=new Headers(t.headers);t.body&&n.set("Content-Type","application/json"),t.method&&!["GET","HEAD"].includes(t.method)&&n.set("X-CSRF-Token",nc);let o;try{o=await fetch(e,{...t,headers:n,credentials:"same-origin"})}catch{throw new Error(P("api.unreachable"))}const r=await o.json().catch(()=>({}));if(!o.ok){o.status===401&&e!=="/api/login"&&oc?.();const s=zn.value==="en"&&r.errorEn||r.error,i=new Error(s||P("api.failed",{status:o.status}));throw i.status=o.status,i}return r}const Tn=(e,t={})=>Yt(e,{method:"POST",body:JSON.stringify(t)}),zs=(e,t)=>Yt(e,{method:"PUT",body:JSON.stringify(t)}),zv=e=>Yt(e,{method:"DELETE",body:JSON.stringify({})});const Ml=e=>e==="";const Gv=(...e)=>e.filter((t,n,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===n).join(" ").trim();const Dl=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Yv=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,o)=>o?o.toUpperCase():n.toLowerCase());const Jv=e=>{const t=Yv(e);return t.charAt(0).toUpperCase()+t.slice(1)};var In={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const Xv=Symbol("lucide-icons");function Qv(){return Cn(Xv,{})}const Zv=({name:e,iconNode:t,"icon-node":n,absoluteStrokeWidth:o,"absolute-stroke-width":r,strokeWidth:s,"stroke-width":i,size:l,color:a,...u},{slots:c})=>{const{size:d,color:h,strokeWidth:p=2,absoluteStrokeWidth:y=!1,class:C=""}=Qv(),b=z(()=>{const m=Ml(o)||Ml(r)||o===!0||r===!0||y===!0,E=s||i||p||In["stroke-width"];return m?Number(E)*24/Number(l??d??In.width):E});return Ht("svg",{...In,...u,width:l??d??In.width,height:l??d??In.height,stroke:a??h??In.stroke,"stroke-width":b.value,class:Gv("lucide",C,...e?[`lucide-${Dl(Jv(e))}-icon`,`lucide-${Dl(e)}`]:["lucide-icon"])},[...(t??n??[]).map(m=>Ht(...m)),...c.default?[c.default()]:[]])};const et=(e,t)=>(n,{slots:o,attrs:r})=>Ht(Zv,{...r,...n,iconNode:t,name:e},o.default?{default:o.default}:void 0);const em=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],tm=et("check",em);const nm=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],om=et("copy",nm);const rm=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],sm=et("eye-off",rm);const im=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],lm=et("eye",im);const am=[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]],um=et("grid-2x2",am);const cm=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],dm=et("log-out",cm);const fm=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],pm=et("pencil",fm);const hm=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],gm=et("plus",hm);const vm=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],mm=et("power",vm);const ym=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],bm=et("rotate-ccw",ym);const wm=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],_m=et("route",wm);const Cm=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Sm=et("server",Cm);const Em=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],xm=et("sliders-horizontal",Em);const Am=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Tm=et("trash-2",Am);const Pm=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Om=et("x",Pm),Rm=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},Mm={},Dm={viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true"};function Im(e,t){return I(),ae("svg",Dm,[...t[0]||(t[0]=[g("path",{d:"M8 0C3.58 0 0 3.64 0 8.13c0 3.59 2.29 6.64 5.47 7.71.4.08.55-.18.55-.39 0-.19-.01-.82-.01-1.49-2.23.49-2.7-.98-2.7-.98-.36-.94-.89-1.19-.89-1.19-.73-.5.05-.49.05-.49.81.06 1.23.84 1.23.84.72 1.24 1.88.88 2.34.67.07-.53.28-.88.5-1.08-1.78-.21-3.65-.9-3.65-4.02 0-.89.31-1.61.82-2.18-.08-.2-.36-1.03.08-2.15 0 0 .67-.22 2.2.83A7.5 7.5 0 0 1 8 3.44c.68 0 1.36.09 2 .27 1.53-1.05 2.2-.83 2.2-.83.44 1.12.16 1.95.08 2.15.51.57.82 1.29.82 2.18 0 3.13-1.88 3.81-3.67 4.01.29.25.54.74.54 1.5 0 1.08-.01 1.95-.01 2.22 0 .21.15.47.55.39A8.02 8.02 0 0 0 16 8.13C16 3.64 12.42 0 8 0Z"},null,-1)])])}const Bm=Rm(Mm,[["render",Im]]),xe=J({__name:"Icon",props:{name:{}},setup(e){const t={grid:um,route:_m,server:Sm,sliders:xm,copy:om,refresh:bm,power:mm,logout:dm,plus:gm,x:Om,edit:pm,trash:Tm,check:tm,eye:lm,"eye-off":sm,github:Bm};return(n,o)=>(I(),G(Xa(t[e.name]),{class:"icon","stroke-width":1.8,"aria-hidden":"true"}))}}),km={class:"password-input"},$m=["value","type"],qm=["title","aria-label","aria-pressed"],Sn=J({inheritAttrs:!1,__name:"PasswordInput",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t,o=F(!1);function r(s){n("update:modelValue",s.target.value)}return(s,i)=>(I(),ae("span",km,[g("input",ce(s.$attrs,{value:e.modelValue,type:o.value?"text":"password",onInput:r}),null,16,$m),g("button",{type:"button",class:"password-toggle",title:o.value?f(P)("password.hide"):f(P)("password.show"),"aria-label":o.value?f(P)("password.hide"):f(P)("password.show"),"aria-pressed":o.value,onMousedown:i[0]||(i[0]=Ue(()=>{},["prevent"])),onClick:i[1]||(i[1]=Ue(l=>o.value=!o.value,["stop"]))},[L(xe,{name:o.value?"eye-off":"eye"},null,8,["name"])],40,qm)]))}}),Nm={class:"login-page"},Lm={class:"login-actions"},Fm={class:"app-header-control github-control",href:"https://github.com/boltguo/sbm",target:"_blank",rel:"noopener noreferrer",title:"GitHub","aria-label":"GitHub"},Vm={key:0,class:"form-error"},Hm=["disabled"],Um=J({__name:"LoginView",props:{expired:{type:Boolean}},emits:["loggedIn"],setup(e,{emit:t}){const n=e,o=t,r=F("admin"),s=F(""),i=F(""),l=F(!1),a=z(()=>i.value||(n.expired?P("login.expired"):""));async function u(){l.value=!0,i.value="";try{const c=await Tn("/api/login",{username:r.value,password:s.value});Ws(c.csrfToken),o("loggedIn",c.username)}catch(c){i.value=rc(c)}finally{l.value=!1}}return(c,d)=>(I(),ae("main",Nm,[g("div",Lm,[g("button",{class:"app-header-control locale-control",onClick:d[0]||(d[0]=(...h)=>f(tr)&&f(tr)(...h))},O(f(P)("language")),1),g("a",Fm,[L(xe,{name:"github"})])]),d[5]||(d[5]=g("div",{class:"login-grid","aria-hidden":"true"},null,-1)),g("form",{class:"login-card",onSubmit:Ue(u,["prevent"])},[d[4]||(d[4]=g("div",{class:"brand-mark large login-card-brand"},[g("span",null,"SB"),g("b",null,"M")],-1)),g("h2",null,O(f(P)("login.title")),1),g("p",null,O(f(P)("login.help")),1),g("label",null,[oe(O(f(P)("login.username")),1),nt(g("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>r.value=h),autocomplete:"username",required:""},null,512),[[pt,r.value]])]),g("label",null,[oe(O(f(P)("login.password")),1),L(Sn,{modelValue:s.value,"onUpdate:modelValue":d[2]||(d[2]=h=>s.value=h),"aria-label":f(P)("login.password"),autocomplete:"current-password",autofocus:"",required:""},null,8,["modelValue","aria-label"])]),a.value?(I(),ae("p",Vm,O(a.value),1)):Ce("",!0),g("button",{class:"primary full",disabled:l.value},[oe(O(l.value?f(P)("login.loading"):f(P)("login.submit")),1),d[3]||(d[3]=g("span",null,"↗",-1))],8,Hm)],32)]))}});function jm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Bn={},Xr,Il;function Km(){return Il||(Il=1,Xr=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),Xr}var Qr={},tn={},Bl;function On(){if(Bl)return tn;Bl=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return tn.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},tn.getSymbolTotalCodewords=function(o){return t[o]},tn.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},tn.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},tn.isKanjiModeEnabled=function(){return typeof e<"u"},tn.toSJIS=function(o){return e(o)},tn}var Zr={},kl;function Ai(){return kl||(kl=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(Zr)),Zr}var es,$l;function Wm(){if($l)return es;$l=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},es=e,es}var ts,ql;function zm(){if(ql)return ts;ql=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const s=t*this.size+n;this.data[s]=o,r&&(this.reservedBit[s]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},ts=e,ts}var ns={},Nl;function Gm(){return Nl||(Nl=1,(function(e){const t=On().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,s=t(o),i=s===145?26:Math.ceil((s-13)/(2*r-2))*2,l=[s-7];for(let a=1;a=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const s=r.size;let i=0,l=0,a=0,u=null,c=null;for(let d=0;d=5&&(i+=t.N1+(l-5)),u=p,l=1),p=r.get(h,d),p===c?a++:(a>=5&&(i+=t.N1+(a-5)),c=p,a=1)}l>=5&&(i+=t.N1+(l-5)),a>=5&&(i+=t.N1+(a-5))}return i},e.getPenaltyN2=function(r){const s=r.size;let i=0;for(let l=0;l=10&&(l===1488||l===93)&&i++,a=a<<1&2047|r.get(c,u),c>=10&&(a===1488||a===93)&&i++}return i*t.N3},e.getPenaltyN4=function(r){let s=0;const i=r.data.length;for(let a=0;a=0;){const i=s[0];for(let a=0;a0){const l=new Uint8Array(this.degree);return l.set(s,i),l}return s},is=t,is}var ls={},as={},us={},Kl;function ic(){return Kl||(Kl=1,us.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),us}var Et={},Wl;function lc(){if(Wl)return Et;Wl=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r -]))+`;Et.KANJI=new RegExp(n,"g"),Et.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Et.BYTE=new RegExp(o,"g"),Et.NUMERIC=new RegExp(e,"g"),Et.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),s=new RegExp("^"+e+"$"),i=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return Et.testKanji=function(a){return r.test(a)},Et.testNumeric=function(a){return s.test(a)},Et.testAlphanumeric=function(a){return i.test(a)},Et}var zl;function Rn(){return zl||(zl=1,(function(e){const t=ic(),n=lc();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(s,i){if(!s.ccBits)throw new Error("Invalid mode: "+s);if(!t.isValid(i))throw new Error("Invalid version: "+i);return i>=1&&i<10?s.ccBits[0]:i<27?s.ccBits[1]:s.ccBits[2]},e.getBestModeForData=function(s){return n.testNumeric(s)?e.NUMERIC:n.testAlphanumeric(s)?e.ALPHANUMERIC:n.testKanji(s)?e.KANJI:e.BYTE},e.toString=function(s){if(s&&s.id)return s.id;throw new Error("Invalid mode")},e.isValid=function(s){return s&&s.bit&&s.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(s,i){if(e.isValid(s))return s;try{return o(s)}catch{return i}}})(as)),as}var Gl;function ey(){return Gl||(Gl=1,(function(e){const t=On(),n=sc(),o=Ai(),r=Rn(),s=ic(),i=7973,l=t.getBCHDigit(i);function a(h,p,y){for(let C=1;C<=40;C++)if(p<=e.getCapacity(C,y,h))return C}function u(h,p){return r.getCharCountIndicator(h,p)+4}function c(h,p){let y=0;return h.forEach(function(C){const b=u(C.mode,p);y+=b+C.getBitsLength()}),y}function d(h,p){for(let y=1;y<=40;y++)if(c(h,y)<=e.getCapacity(y,p,r.MIXED))return y}e.from=function(p,y){return s.isValid(p)?parseInt(p,10):y},e.getCapacity=function(p,y,C){if(!s.isValid(p))throw new Error("Invalid QR Code version");typeof C>"u"&&(C=r.BYTE);const b=t.getSymbolTotalCodewords(p),m=n.getTotalCodewordsCount(p,y),E=(b-m)*8;if(C===r.MIXED)return E;const x=E-u(C,p);switch(C){case r.NUMERIC:return Math.floor(x/10*3);case r.ALPHANUMERIC:return Math.floor(x/11*2);case r.KANJI:return Math.floor(x/13);case r.BYTE:default:return Math.floor(x/8)}},e.getBestVersionForData=function(p,y){let C;const b=o.from(y,o.M);if(Array.isArray(p)){if(p.length>1)return d(p,b);if(p.length===0)return 1;C=p[0]}else C=p;return a(C.mode,C.getLength(),b)},e.getEncodedBits=function(p){if(!s.isValid(p)||p<7)throw new Error("Invalid QR Code version");let y=p<<12;for(;t.getBCHDigit(y)-l>=0;)y^=i<=0;)a^=t<0&&(s=this.data.substr(r),i=parseInt(s,10),o.put(i,l*3+1))},fs=t,fs}var ps,Xl;function oy(){if(Xl)return ps;Xl=1;const e=Rn(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let s;for(s=0;s+2<=this.data.length;s+=2){let i=t.indexOf(this.data[s])*45;i+=t.indexOf(this.data[s+1]),r.put(i,11)}this.data.length%2&&r.put(t.indexOf(this.data[s]),6)},ps=n,ps}var hs,Ql;function ry(){if(Ql)return hs;Ql=1;const e=Rn();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&s<=40956)s-=33088;else if(s>=57408&&s<=60351)s-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` -Make sure your charset is UTF-8`);s=(s>>>8&255)*192+(s&255),o.put(s,13)}},gs=n,gs}var vs={exports:{}},ea;function iy(){return ea||(ea=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var s={},i={};i[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var a,u,c,d,h,p,y,C,b;!l.empty();){a=l.pop(),u=a.value,d=a.cost,h=n[u]||{};for(c in h)h.hasOwnProperty(c)&&(p=h[c],y=d+p,C=i[c],b=typeof i[c]>"u",(b||C>y)&&(i[c]=y,l.push(c,y),s[c]=u))}if(typeof r<"u"&&typeof i[r]>"u"){var m=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(m)}return s},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],s=o;s;)r.push(s),n[s],s=n[s];return r.reverse(),r},find_path:function(n,o,r){var s=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(s,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},s;n=n||{};for(s in o)o.hasOwnProperty(s)&&(r[s]=o[s]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(vs)),vs.exports}var ta;function ly(){return ta||(ta=1,(function(e){const t=Rn(),n=ny(),o=oy(),r=ry(),s=sy(),i=lc(),l=On(),a=iy();function u(m){return unescape(encodeURIComponent(m)).length}function c(m,E,x){const _=[];let R;for(;(R=m.exec(x))!==null;)_.push({data:R[0],index:R.index,mode:E,length:R[0].length});return _}function d(m){const E=c(i.NUMERIC,t.NUMERIC,m),x=c(i.ALPHANUMERIC,t.ALPHANUMERIC,m);let _,R;return l.isKanjiModeEnabled()?(_=c(i.BYTE,t.BYTE,m),R=c(i.KANJI,t.KANJI,m)):(_=c(i.BYTE_KANJI,t.BYTE,m),R=[]),E.concat(x,_,R).sort(function(v,S){return v.index-S.index}).map(function(v){return{data:v.data,mode:v.mode,length:v.length}})}function h(m,E){switch(E){case t.NUMERIC:return n.getBitsLength(m);case t.ALPHANUMERIC:return o.getBitsLength(m);case t.KANJI:return s.getBitsLength(m);case t.BYTE:return r.getBitsLength(m)}}function p(m){return m.reduce(function(E,x){const _=E.length-1>=0?E[E.length-1]:null;return _&&_.mode===x.mode?(E[E.length-1].data+=x.data,E):(E.push(x),E)},[])}function y(m){const E=[];for(let x=0;x=0&&H<=6&&(W===0||W===6)||W>=0&&W<=6&&(H===0||H===6)||H>=2&&H<=4&&W>=2&&W<=4?T.set(j+H,X+W,!0,!0):T.set(j+H,X+W,!1,!0))}}function y(T){const v=T.size;for(let S=8;S>H&1)===1,T.set(B,j,X,!0),T.set(j,B,X,!0)}function m(T,v,S){const M=T.size,B=c.getEncodedBits(v,S);let j,X;for(j=0;j<15;j++)X=(B>>j&1)===1,j<6?T.set(j,8,X,!0):j<8?T.set(j+1,8,X,!0):T.set(M-15+j,8,X,!0),j<8?T.set(8,M-j-1,X,!0):j<9?T.set(8,15-j-1+1,X,!0):T.set(8,15-j-1,X,!0);T.set(M-8,8,1,!0)}function E(T,v){const S=T.size;let M=-1,B=S-1,j=7,X=0;for(let H=S-1;H>0;H-=2)for(H===6&&H--;;){for(let W=0;W<2;W++)if(!T.isReserved(B,H-W)){let ve=!1;X>>j&1)===1),T.set(B,H-W,ve),j--,j===-1&&(X++,j=7)}if(B+=M,B<0||S<=B){B-=M,M=-M;break}}}function x(T,v,S){const M=new n;S.forEach(function(W){M.put(W.mode.bit,4),M.put(W.getLength(),d.getCharCountIndicator(W.mode,T)),W.write(M)});const B=e.getSymbolTotalCodewords(T),j=l.getTotalCodewordsCount(T,v),X=(B-j)*8;for(M.getLengthInBits()+4<=X&&M.put(0,4);M.getLengthInBits()%8!==0;)M.putBit(0);const H=(X-M.getLengthInBits())/8;for(let W=0;W(D(),ae(Ae,{key:P},[ne(O(R),1)],64))),128))]),_:1},8,["aria-live"])):Ce("v-if",!0),f(l).viewport.value?(D(),G(si,{key:1,to:f(l).viewport.value},[L(f(i),null,{default:B(()=>[L(f(Se),ce({ref:f(r),tabindex:"0"},x.$attrs,{as:x.as,"as-child":x.asChild,"data-state":x.open?"open":"closed","data-swipe-direction":f(l).swipeDirection.value,style:f(l).disableSwipe.value?void 0:{userSelect:"none",touchAction:"none"},onPointerdown:w[0]||(w[0]=Ue(R=>{f(l).disableSwipe.value||(a.value={x:R.clientX,y:R.clientY})},["left"])),onPointermove:w[1]||(w[1]=R=>{if(f(l).disableSwipe.value||!a.value)return;const P=R.clientX-a.value.x,v=R.clientY-a.value.y,C=!!u.value,I=["left","right"].includes(f(l).swipeDirection.value),k=["left","up"].includes(f(l).swipeDirection.value)?Math.min:Math.max,j=I?k(0,P):0,X=I?0:k(0,v),H=R.pointerType==="touch"?10:2,z={x:j,y:X},ve={originalEvent:R,delta:z};C?(u.value=z,f(qo)(f(Rv),le=>o("swipeMove",le),ve)):f(Pl)(z,f(l).swipeDirection.value,H)?(u.value=z,f(qo)(f(Ov),le=>o("swipeStart",le),ve),R.target.setPointerCapture(R.pointerId)):(Math.abs(P)>H||Math.abs(v)>H)&&(a.value=null)}),onPointerup:w[2]||(w[2]=R=>{if(f(l).disableSwipe.value)return;const P=u.value,v=R.target;if(v.hasPointerCapture(R.pointerId)&&v.releasePointerCapture(R.pointerId),u.value=null,a.value=null,P){const C=R.currentTarget,I={originalEvent:R,delta:P};f(Pl)(P,f(l).swipeDirection.value,f(l).swipeThreshold.value)?f(qo)(f(Mv),k=>o("swipeEnd",k),I):f(qo)(f(Iv),k=>o("swipeCancel",k),I),C?.addEventListener("click",k=>k.preventDefault(),{once:!0})}})}),{default:B(()=>[Z(x.$slots,"default",{remaining:y.value,duration:c.value})]),_:3},16,["as","as-child","data-state","data-swipe-direction","style"])]),_:3})],8,["to"])):Ce("v-if",!0)],64))}}),$v=Bv,qv=J({__name:"ToastRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!0},forceMount:{type:Boolean,required:!1},type:{type:String,required:!1,default:"foreground"},open:{type:Boolean,required:!1,default:void 0},duration:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},emits:["escapeKeyDown","pause","resume","swipeStart","swipeMove","swipeCancel","swipeEnd","update:open"],setup(e,{emit:t}){const n=e,o=t,{forwardRef:r}=de(),s=ho(n,"open",o,{defaultValue:n.defaultOpen,passive:n.open===void 0});return(i,l)=>(D(),G(f(Sr),{present:i.forceMount||f(s)},{default:B(()=>[L($v,ce({ref:f(r),open:f(s),type:i.type,as:i.as,"as-child":i.asChild,duration:i.duration},i.$attrs,{onClose:l[0]||(l[0]=a=>s.value=!1),onPause:l[1]||(l[1]=a=>o("pause")),onResume:l[2]||(l[2]=a=>o("resume")),onEscapeKeyDown:l[3]||(l[3]=a=>o("escapeKeyDown",a)),onSwipeStart:l[4]||(l[4]=a=>{o("swipeStart",a),a.defaultPrevented||a.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:l[5]||(l[5]=a=>{if(o("swipeMove",a),!a.defaultPrevented){const{x:u,y:c}=a.detail.delta,d=a.currentTarget;d.setAttribute("data-swipe","move"),d.style.setProperty("--reka-toast-swipe-move-x",`${u}px`),d.style.setProperty("--reka-toast-swipe-move-y",`${c}px`)}}),onSwipeCancel:l[6]||(l[6]=a=>{if(o("swipeCancel",a),!a.defaultPrevented){const u=a.currentTarget;u.setAttribute("data-swipe","cancel"),u.style.removeProperty("--reka-toast-swipe-move-x"),u.style.removeProperty("--reka-toast-swipe-move-y"),u.style.removeProperty("--reka-toast-swipe-end-x"),u.style.removeProperty("--reka-toast-swipe-end-y")}}),onSwipeEnd:l[7]||(l[7]=a=>{if(o("swipeEnd",a),!a.defaultPrevented){const{x:u,y:c}=a.detail.delta,d=a.currentTarget;d.setAttribute("data-swipe","end"),d.style.removeProperty("--reka-toast-swipe-move-x"),d.style.removeProperty("--reka-toast-swipe-move-y"),d.style.setProperty("--reka-toast-swipe-end-x",`${u}px`),d.style.setProperty("--reka-toast-swipe-end-y",`${c}px`),s.value=!1}})}),{default:B(({remaining:a,duration:u})=>[Z(i.$slots,"default",{remaining:a,duration:u,open:f(s)})]),_:3},16,["open","type","as","as-child","duration"])]),_:3},8,["present"]))}}),Nv=qv,Lv=J({__name:"ToastTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const t=e;return de(),(n,o)=>(D(),G(f(Se),bt(ct(t)),{default:B(()=>[Z(n.$slots,"default")]),_:3},16))}}),Fv=Lv,Vv=J({__name:"FocusProxy",emits:["focusFromOutsideViewport"],setup(e,{emit:t}){const n=t,o=Ir();return(r,s)=>(D(),G(f(Er),{tabindex:"0",style:{position:"fixed"},onFocus:s[0]||(s[0]=i=>{const l=i.relatedTarget;!f(o).viewport.value?.contains(l)&&n("focusFromOutsideViewport")})},{default:B(()=>[Z(r.$slots,"default")]),_:3}))}}),Ol=Vv,Hv=J({inheritAttrs:!1,__name:"ToastViewport",props:{hotkey:{type:Array,required:!1,default:()=>["F8"]},label:{type:[String,Function],required:!1,default:"Notifications ({hotkey})"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"ol"}},setup(e){const t=e,{hotkey:n,label:o}=cn(t),{forwardRef:r,currentElement:s}=de(),{CollectionSlot:i,getItems:l}=dn(),a=Ir(),u=W(()=>a.toastCount.value>0),c=F(),d=F(),h=/Key/g,p=/Digit/g,y=W(()=>n.value.join("+").replace(h,"").replace(p,""));fi(n.value,()=>{s.value.focus()}),Re(()=>{a.onViewportChange(s.value)}),yt(E=>{const m=s.value;if(u.value&&m){const _=()=>{if(!a.isClosePausedRef.value){const v=new CustomEvent(js);m.dispatchEvent(v),a.isClosePausedRef.value=!0}},x=()=>{if(a.isClosePausedRef.value){const v=new CustomEvent(Ks);m.dispatchEvent(v),a.isClosePausedRef.value=!1}},w=v=>{!m.contains(v.relatedTarget)&&x()},R=()=>{m.contains(ze())||x()},P=v=>{const C=v.altKey||v.ctrlKey||v.metaKey;if(v.key==="Tab"&&!C){const k=ze(),j=v.shiftKey;if(v.target===m&&j){c.value?.focus();return}const z=S({tabbingDirection:j?"backwards":"forwards"}),ve=z.findIndex(le=>le===k);Ho(z.slice(ve+1))?v.preventDefault():j?c.value?.focus():d.value?.focus()}};m.addEventListener("focusin",_),m.addEventListener("focusout",w),m.addEventListener("pointermove",_),m.addEventListener("pointerleave",R),m.addEventListener("keydown",P),window.addEventListener("blur",_),window.addEventListener("focus",x),E(()=>{m.removeEventListener("focusin",_),m.removeEventListener("focusout",w),m.removeEventListener("pointermove",_),m.removeEventListener("pointerleave",R),m.removeEventListener("keydown",P),window.removeEventListener("blur",_),window.removeEventListener("focus",x)})}});function S({tabbingDirection:E}){const _=l().map(x=>x.ref).map(x=>{const w=[x,...vi(x)];return E==="forwards"?w:w.reverse()});return(E==="forwards"?_.reverse():_).flat()}return(E,m)=>(D(),G(f(Op),{role:"region","aria-label":typeof f(o)=="string"?f(o).replace("{hotkey}",y.value):f(o)(y.value),tabindex:"-1",style:st({pointerEvents:u.value?void 0:"none"})},{default:B(()=>[u.value?(D(),G(Ol,{key:0,ref:_=>{_&&(c.value=f(ut)(_))},onFocusFromOutsideViewport:m[0]||(m[0]=()=>{const _=S({tabbingDirection:"forwards"});f(Ho)(_)})},null,512)):Ce("v-if",!0),L(f(i),null,{default:B(()=>[L(f(Se),ce({ref:f(r),tabindex:"-1",as:E.as,"as-child":E.asChild},E.$attrs),{default:B(()=>[Z(E.$slots,"default")]),_:3},16,["as","as-child"])]),_:3}),u.value?(D(),G(Ol,{key:1,ref:_=>{_&&(d.value=f(ut)(_))},onFocusFromOutsideViewport:m[1]||(m[1]=()=>{const _=S({tabbingDirection:"backwards"});f(Ho)(_)})},null,512)):Ce("v-if",!0)]),_:3},8,["aria-label","style"]))}}),Uv=Hv;const Rl={"zh-CN":{"app.title":"SBM",language:"EN",close:"关闭",confirm:"确认",logout:"退出",overview:"概览",protocols:"协议",server:"服务器",settings:"设置",copied:"已复制","password.show":"显示密码","password.hide":"隐藏密码","login.title":"管理员登录","login.help":"凭据仅用于当前服务器。","login.username":"用户名","login.password":"密码","login.loading":"验证中…","login.submit":"进入控制台","login.expired":"会话已过期,请重新登录。","dashboard.title":"运行概览","dashboard.reset":"重置流量","dashboard.restart":"重启 sing-box","dashboard.exceeded":"配额已耗尽","dashboard.exceededHelp":"sing-box 已停止。重置流量或在设置中提高限额后可恢复。","dashboard.running":"运行中","dashboard.stopped":"已停止","dashboard.noReset":"不自动重置","dashboard.totalRemaining":"总额 {total} · 剩余 {remaining}","dashboard.unlimitedHelp":"未设置总流量限制","dashboard.unlimited":"不限量","dashboard.upload":"上传","dashboard.download":"下载","dashboard.refresh":"刷新","dashboard.refreshHelp":"页面每 5 秒自动刷新;点击立即拉取一次","dashboard.refreshed":"流量数据已刷新","dashboard.trafficSource":"统计来源:sing-box","dashboard.audit.collecting":"网卡校验采集中","dashboard.audit.normal":"网卡校验正常","dashboard.audit.different":"网卡流量差异较大","dashboard.audit.collectingHelp":"已观察 {amount} 代理流量,达到 64 MB 后判断。校验结果不参与限额或停机。","dashboard.audit.detail":"{interface} 同期数据:sing-box {proxy},网卡接收 {receive},发送 {transmit}。仅用于发现明显偏差,不参与限额或停机。","dashboard.audit.unavailableHelp":"当前无法识别公网默认网卡;配额统计不受影响。","dashboard.subscription":"总订阅","dashboard.subscriptionHelp":"协议变更会立即反映到这个地址,无需重新添加订阅。","dashboard.copy":"复制","dashboard.secretHelp":"订阅地址包含访问 Token,请勿公开分享。","dashboard.qrAlt":"总订阅二维码","dashboard.loading":"正在读取核心状态…","dashboard.resetConfirm":"确定清零本周期的上传和下载流量?","dashboard.restartConfirm":"这里只会重启 sing-box,不会重启 VPS 或 SBM 面板。当前代理连接会短暂断开,客户端通常会自动重连。继续吗?","dashboard.resetDone":"流量已重置","dashboard.restartDone":"sing-box 已重启","dashboard.copyDone":"订阅地址已复制","dashboard.checkUpdate":"检查面板新版本","dashboard.updateFound":"发现新版本 {version},SSH 运行 sudo sbm 后选择 6 更新","dashboard.updateCurrent":"当前已是最新版本","dashboard.updateFailed":"版本检查失败,请稍后重试","protocol.title":"协议管理","protocol.help":"每次变更都先经过 sing-box check,失败时自动回滚。","protocol.add":"新增协议","protocol.disable":"停用","protocol.enable":"启用","protocol.off":"关闭","protocol.copyLink":"复制链接","protocol.showQr":"显示二维码","protocol.edit":"编辑协议","protocol.delete":"删除协议","protocol.addAnother":"接入另一个协议","protocol.addAnotherHelp":"使用独立端口,不影响现有入站","protocol.newTitle":"新增协议","protocol.type":"协议类型","protocol.duplicate":"同一服务器上重复创建相同协议通常没有明显意义,除非使用不同端口或不同配置。","protocol.name":"节点名称","protocol.port":"监听端口","protocol.portHelp":"{network} 端口;还需在云安全组中放行","protocol.cancel":"取消","protocol.generate":"生成并应用","protocol.editTitle":"编辑协议","protocol.privateKey":"Reality 私钥","protocol.publicKey":"Reality 公钥","protocol.password":"认证密码","protocol.obfs":"混淆","protocol.obfsPassword":"混淆密码","protocol.firewall":"修改端口后,SBM 会处理 VPS 内部防火墙;云厂商安全组仍需手动检查。","protocol.apply":"校验并应用","protocol.qrAlt":"节点二维码","protocol.qrHelp":"扫描后直接导入该节点","protocol.created":"协议已创建并应用","protocol.saved":"配置已校验并应用","protocol.disabled":"协议已停用","protocol.enabled":"协议已启用","protocol.deleteConfirm":"确定删除“{name}”?","protocol.deleted":"协议已删除","protocol.linkCopied":"节点链接已复制","protocol.defaultName":"新节点","settings.title":"设置","settings.help":"管理代理出口、流量配额和安全参数。","settings.traffic":"流量与周期","settings.trafficHelp":"设为 0 表示无限流量。达到限额时核心自动停止。","settings.total":"代理流量配额(GB)","settings.autoReset":"自动重置","settings.noReset":"不自动重置","settings.monthly":"每月重置","settings.day":"每月日期","settings.timezone":"时区","settings.quotaGuideTitle":"按云厂商计费方式填写","settings.quotaGuideBidirectional":"双向计费(如部分 DMIT 套餐):套餐总量先除以 2,再预留 5%–10%。例如 1000 GB 建议填 450–475 GB。","settings.quotaGuideEgress":"仅计 VPS 出站(如 GCP 常见口径):套餐总量直接预留 5%–10%。例如 200 GB 建议填 180–190 GB。","settings.quotaGuideNote":"SBM 只统计 sing-box 代理流量,不含系统更新、SSH 和协议开销等;最终请以云厂商控制台为准。","settings.outbound":"代理出口网络","settings.outboundHelp":"控制 sing-box 访问目标域名时优先使用 IPv4 还是 IPv6。","settings.outboundStrategy":"地址族策略","settings.outboundAuto":"自动(系统默认)","settings.outboundPreferIPv4":"优先 IPv4,失败时回退 IPv6","settings.outboundPreferIPv6":"优先 IPv6,失败时回退 IPv4","settings.outboundIPv4Only":"仅 IPv4","settings.outboundIPv6Only":"仅 IPv6","settings.outboundGuideTitle":"一般选择“优先”,不要选择“仅”","settings.outboundGuidePrefer":"如果 IPv6 的地区归属更准确,可选“优先 IPv6”;不支持 IPv6 的目标仍会回退到 IPv4。","settings.outboundGuideOnly":"仅对 sing-box 收到的域名目标生效。若客户端已经把域名解析成 IP,服务端无法切换到另一个地址族。需要 sing-box 1.12 或更高版本。","settings.save":"校验并保存设置","settings.subscription":"总订阅 Token","settings.subscriptionHelp":"重新生成后,所有使用旧地址的客户端都无法更新。","settings.copy":"复制","settings.regenerate":"重新生成 Token","settings.password":"管理员密码","settings.passwordHelp":"为防止会话被盗用,修改前需验证当前密码;成功后所有旧会话立即失效。","settings.currentPassword":"当前密码","settings.newPassword":"新密码","settings.confirmPassword":"确认新密码","settings.changePassword":"修改密码","settings.loading":"正在读取设置…","settings.saved":"设置已校验并保存","settings.tokenConfirm":"旧订阅地址会立即失效,确定重新生成?","settings.tokenDone":"订阅 Token 已重新生成","settings.passwordMismatch":"两次输入的新密码不一致","settings.passwordDone":"密码已修改,请重新登录","server.title":"服务器状态","server.help":"当前 Linux 主机资源快照,每 5 秒自动刷新。","server.cpu":"CPU 使用率","server.memory":"内存","server.disk":"根分区磁盘","server.usedOf":"已用 {used} / {total}","server.load":"系统负载","server.loadHelp":"过去 1、5、15 分钟","server.uptime":"运行时长","server.days":"{days} 天 {hours} 小时","server.hours":"{hours} 小时 {minutes} 分钟","server.hostname":"主机名","server.system":"操作系统","server.kernel":"内核","server.arch":"架构","server.cores":"{count} 核","server.updated":"更新于 {time}","server.loading":"正在读取服务器状态…","api.failed":"请求失败 ({status})","api.unreachable":"无法连接面板,请检查网络后重试"},en:{"app.title":"SBM",language:"中文",close:"Close",confirm:"Confirm",logout:"Sign out",overview:"Overview",protocols:"Protocols",server:"Server",settings:"Settings",copied:"Copied","password.show":"Show password","password.hide":"Hide password","login.title":"Administrator sign in","login.help":"These credentials stay on this server.","login.username":"Username","login.password":"Password","login.loading":"Verifying…","login.submit":"Open console","login.expired":"Your session expired. Sign in again.","dashboard.title":"Runtime overview","dashboard.reset":"Reset traffic","dashboard.restart":"Restart sing-box","dashboard.exceeded":"Quota exhausted","dashboard.exceededHelp":"sing-box has stopped. Reset traffic or increase the quota in Settings to recover.","dashboard.running":"Running","dashboard.stopped":"Stopped","dashboard.noReset":"No automatic reset","dashboard.totalRemaining":"Total {total} · {remaining} remaining","dashboard.unlimitedHelp":"No traffic limit configured","dashboard.unlimited":"Unlimited","dashboard.upload":"Upload","dashboard.download":"Download","dashboard.refresh":"Refresh","dashboard.refreshHelp":"This page refreshes every 5 seconds; click to fetch once now","dashboard.refreshed":"Traffic data refreshed","dashboard.trafficSource":"Source: sing-box","dashboard.audit.collecting":"network check collecting","dashboard.audit.normal":"network check normal","dashboard.audit.different":"large network difference","dashboard.audit.collectingHelp":"{amount} of proxy traffic observed; evaluation starts at 64 MB. This check never affects the quota or core.","dashboard.audit.detail":"{interface} over the same window: sing-box {proxy}, interface received {receive} and sent {transmit}. This check only detects large differences and never affects the quota or core.","dashboard.audit.unavailableHelp":"The public default interface could not be identified. Quota tracking is unaffected.","dashboard.subscription":"Master subscription","dashboard.subscriptionHelp":"Protocol changes appear at this URL immediately—no need to add it again.","dashboard.copy":"Copy","dashboard.secretHelp":"This URL contains an access token. Keep it private.","dashboard.qrAlt":"Master subscription QR code","dashboard.loading":"Reading core status…","dashboard.resetConfirm":"Clear upload and download usage for the current period?","dashboard.restartConfirm":"This only restarts sing-box, not the VPS or SBM panel. Active proxy connections briefly disconnect and normally reconnect automatically. Continue?","dashboard.resetDone":"Traffic has been reset","dashboard.restartDone":"sing-box restarted","dashboard.copyDone":"Subscription URL copied","dashboard.checkUpdate":"Check for a panel update","dashboard.updateFound":"SBM {version} is available. Run sudo sbm over SSH and choose option 6.","dashboard.updateCurrent":"SBM is up to date","dashboard.updateFailed":"Could not check for updates. Try again later.","protocol.title":"Protocol management","protocol.help":"Every change passes sing-box check first and rolls back automatically on failure.","protocol.add":"Add protocol","protocol.disable":"Disable","protocol.enable":"Enable","protocol.off":"Off","protocol.copyLink":"Copy link","protocol.showQr":"Show QR code","protocol.edit":"Edit protocol","protocol.delete":"Delete protocol","protocol.addAnother":"Add another protocol","protocol.addAnotherHelp":"Use a separate port without disturbing current inbounds","protocol.newTitle":"Add protocol","protocol.type":"Protocol type","protocol.duplicate":"Creating the same protocol more than once on one server is rarely useful unless it uses a different port or configuration.","protocol.name":"Node name","protocol.port":"Listen port","protocol.portHelp":"{network} port; allow it in your cloud security group too","protocol.cancel":"Cancel","protocol.generate":"Generate and apply","protocol.editTitle":"Edit protocol","protocol.privateKey":"Reality private key","protocol.publicKey":"Reality public key","protocol.password":"Authentication password","protocol.obfs":"Obfuscation","protocol.obfsPassword":"Obfuscation password","protocol.firewall":"SBM handles the firewall inside the VPS after a port change. You must still check the cloud security group.","protocol.apply":"Validate and apply","protocol.qrAlt":"Node QR code","protocol.qrHelp":"Scan to import this node directly","protocol.created":"Protocol created and applied","protocol.saved":"Configuration validated and applied","protocol.disabled":"Protocol disabled","protocol.enabled":"Protocol enabled","protocol.deleteConfirm":"Delete “{name}”?","protocol.deleted":"Protocol deleted","protocol.linkCopied":"Node link copied","protocol.defaultName":"New node","settings.title":"Settings","settings.help":"Manage proxy egress, traffic quota, and security.","settings.traffic":"Traffic and period","settings.trafficHelp":"Set 0 for unlimited traffic. The core stops automatically at the limit.","settings.total":"Proxy traffic quota (GB)","settings.autoReset":"Automatic reset","settings.noReset":"No automatic reset","settings.monthly":"Monthly","settings.day":"Day of month","settings.timezone":"Timezone","settings.quotaGuideTitle":"Choose a limit for your provider’s billing method","settings.quotaGuideBidirectional":"Two-way billing (including some DMIT plans): divide the allowance by 2, then leave a 5%–10% margin. For 1000 GB, enter about 450–475 GB.","settings.quotaGuideEgress":"VPS egress-only billing (common on GCP): leave a 5%–10% margin from the allowance. For 200 GB, enter about 180–190 GB.","settings.quotaGuideNote":"SBM counts sing-box proxy traffic only. System updates, SSH, and protocol overhead are excluded; your provider dashboard remains authoritative.","settings.outbound":"Proxy egress network","settings.outboundHelp":"Choose whether sing-box prefers IPv4 or IPv6 when connecting to domain destinations.","settings.outboundStrategy":"Address-family strategy","settings.outboundAuto":"Automatic (system default)","settings.outboundPreferIPv4":"Prefer IPv4, fall back to IPv6","settings.outboundPreferIPv6":"Prefer IPv6, fall back to IPv4","settings.outboundIPv4Only":"IPv4 only","settings.outboundIPv6Only":"IPv6 only","settings.outboundGuideTitle":"Prefer is usually safer than only","settings.outboundGuidePrefer":"If your IPv6 has more accurate geolocation, prefer IPv6; destinations without IPv6 still fall back to IPv4.","settings.outboundGuideOnly":"This only affects domain destinations received by sing-box. The server cannot change address family after a client has already resolved a domain to an IP. Requires sing-box 1.12 or newer.","settings.save":"Validate and save settings","settings.subscription":"Master subscription token","settings.subscriptionHelp":"Regenerating it prevents every client using the old URL from updating.","settings.copy":"Copy","settings.regenerate":"Regenerate token","settings.password":"Administrator password","settings.passwordHelp":"Re-enter the current password to prevent session abuse. A successful change invalidates every old session.","settings.currentPassword":"Current password","settings.newPassword":"New password","settings.confirmPassword":"Confirm new password","settings.changePassword":"Change password","settings.loading":"Reading settings…","settings.saved":"Settings validated and saved","settings.tokenConfirm":"The old subscription URL will stop working immediately. Regenerate it?","settings.tokenDone":"Subscription token regenerated","settings.passwordMismatch":"The new passwords do not match","settings.passwordDone":"Password changed. Sign in again.","server.title":"Server status","server.help":"A live snapshot of this Linux host, refreshed every five seconds.","server.cpu":"CPU usage","server.memory":"Memory","server.disk":"Root filesystem","server.usedOf":"{used} used of {total}","server.load":"System load","server.loadHelp":"Over the last 1, 5, and 15 minutes","server.uptime":"Uptime","server.days":"{days}d {hours}h","server.hours":"{hours}h {minutes}m","server.hostname":"Hostname","server.system":"Operating system","server.kernel":"Kernel","server.arch":"Architecture","server.cores":"{count} cores","server.updated":"Updated {time}","server.loading":"Reading server status…","api.failed":"Request failed ({status})","api.unreachable":"Could not reach the panel. Check your connection and retry."}};function jv(){const e=localStorage.getItem("sbm_locale");return e==="zh-CN"||e==="en"?e:(navigator.languages?.[0]||navigator.language||"en").toLowerCase().startsWith("zh")?"zh-CN":"en"}const zn=F(jv());function T(e,t={}){let n=Rl[zn.value][e]||Rl.en[e]||e;for(const[o,r]of Object.entries(t))n=n.replaceAll(`{${o}}`,String(r));return n}function Kv(e){zn.value=e,localStorage.setItem("sbm_locale",e),document.documentElement.lang=e,document.title=T("app.title")}function nr(){Kv(zn.value==="zh-CN"?"en":"zh-CN")}function tc(){return zn.value==="zh-CN"?"zh-CN":"en-US"}document.documentElement.lang=zn.value;document.title=T("app.title");let nc="",oc=null;function Ws(e){nc=e}function Wv(e){oc=e}function rc(e){return(e instanceof Error?e.message:String(e))||T("api.unreachable")}function xi(e){return t=>async(...n)=>{try{await t(...n)}catch(o){e(rc(o))}}}async function Yt(e,t={}){const n=new Headers(t.headers);t.body&&n.set("Content-Type","application/json"),t.method&&!["GET","HEAD"].includes(t.method)&&n.set("X-CSRF-Token",nc);let o;try{o=await fetch(e,{...t,headers:n,credentials:"same-origin"})}catch{throw new Error(T("api.unreachable"))}const r=await o.json().catch(()=>({}));if(!o.ok){o.status===401&&e!=="/api/login"&&oc?.();const s=zn.value==="en"&&r.errorEn||r.error,i=new Error(s||T("api.failed",{status:o.status}));throw i.status=o.status,i}return r}const Tn=(e,t={})=>Yt(e,{method:"POST",body:JSON.stringify(t)}),zs=(e,t)=>Yt(e,{method:"PUT",body:JSON.stringify(t)}),zv=e=>Yt(e,{method:"DELETE",body:JSON.stringify({})});const Il=e=>e==="";const Gv=(...e)=>e.filter((t,n,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===n).join(" ").trim();const Ml=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Yv=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,o)=>o?o.toUpperCase():n.toLowerCase());const Jv=e=>{const t=Yv(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Dn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const Xv=Symbol("lucide-icons");function Qv(){return Cn(Xv,{})}const Zv=({name:e,iconNode:t,"icon-node":n,absoluteStrokeWidth:o,"absolute-stroke-width":r,strokeWidth:s,"stroke-width":i,size:l,color:a,...u},{slots:c})=>{const{size:d,color:h,strokeWidth:p=2,absoluteStrokeWidth:y=!1,class:S=""}=Qv(),E=W(()=>{const m=Il(o)||Il(r)||o===!0||r===!0||y===!0,_=s||i||p||Dn["stroke-width"];return m?Number(_)*24/Number(l??d??Dn.width):_});return Ht("svg",{...Dn,...u,width:l??d??Dn.width,height:l??d??Dn.height,stroke:a??h??Dn.stroke,"stroke-width":E.value,class:Gv("lucide",S,...e?[`lucide-${Ml(Jv(e))}-icon`,`lucide-${Ml(e)}`]:["lucide-icon"])},[...(t??n??[]).map(m=>Ht(...m)),...c.default?[c.default()]:[]])};const et=(e,t)=>(n,{slots:o,attrs:r})=>Ht(Zv,{...r,...n,iconNode:t,name:e},o.default?{default:o.default}:void 0);const em=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],tm=et("check",em);const nm=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],om=et("copy",nm);const rm=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],sm=et("eye-off",rm);const im=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],lm=et("eye",im);const am=[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]],um=et("grid-2x2",am);const cm=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],dm=et("log-out",cm);const fm=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],pm=et("pencil",fm);const hm=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],gm=et("plus",hm);const vm=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],mm=et("power",vm);const ym=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],bm=et("rotate-ccw",ym);const wm=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],_m=et("route",wm);const Cm=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Sm=et("server",Cm);const Em=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],xm=et("sliders-horizontal",Em);const Am=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Tm=et("trash-2",Am);const Pm=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Om=et("x",Pm),Rm=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},Im={},Mm={viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true"};function Dm(e,t){return D(),ae("svg",Mm,[...t[0]||(t[0]=[g("path",{d:"M8 0C3.58 0 0 3.64 0 8.13c0 3.59 2.29 6.64 5.47 7.71.4.08.55-.18.55-.39 0-.19-.01-.82-.01-1.49-2.23.49-2.7-.98-2.7-.98-.36-.94-.89-1.19-.89-1.19-.73-.5.05-.49.05-.49.81.06 1.23.84 1.23.84.72 1.24 1.88.88 2.34.67.07-.53.28-.88.5-1.08-1.78-.21-3.65-.9-3.65-4.02 0-.89.31-1.61.82-2.18-.08-.2-.36-1.03.08-2.15 0 0 .67-.22 2.2.83A7.5 7.5 0 0 1 8 3.44c.68 0 1.36.09 2 .27 1.53-1.05 2.2-.83 2.2-.83.44 1.12.16 1.95.08 2.15.51.57.82 1.29.82 2.18 0 3.13-1.88 3.81-3.67 4.01.29.25.54.74.54 1.5 0 1.08-.01 1.95-.01 2.22 0 .21.15.47.55.39A8.02 8.02 0 0 0 16 8.13C16 3.64 12.42 0 8 0Z"},null,-1)])])}const km=Rm(Im,[["render",Dm]]),xe=J({__name:"Icon",props:{name:{}},setup(e){const t={grid:um,route:_m,server:Sm,sliders:xm,copy:om,refresh:bm,power:mm,logout:dm,plus:gm,x:Om,edit:pm,trash:Tm,check:tm,eye:lm,"eye-off":sm,github:km};return(n,o)=>(D(),G(Xa(t[e.name]),{class:"icon","stroke-width":1.8,"aria-hidden":"true"}))}}),Bm={class:"password-input"},$m=["value","type"],qm=["title","aria-label","aria-pressed"],Sn=J({inheritAttrs:!1,__name:"PasswordInput",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t,o=F(!1);function r(s){n("update:modelValue",s.target.value)}return(s,i)=>(D(),ae("span",Bm,[g("input",ce(s.$attrs,{value:e.modelValue,type:o.value?"text":"password",onInput:r}),null,16,$m),g("button",{type:"button",class:"password-toggle",title:o.value?f(T)("password.hide"):f(T)("password.show"),"aria-label":o.value?f(T)("password.hide"):f(T)("password.show"),"aria-pressed":o.value,onMousedown:i[0]||(i[0]=Ue(()=>{},["prevent"])),onClick:i[1]||(i[1]=Ue(l=>o.value=!o.value,["stop"]))},[L(xe,{name:o.value?"eye-off":"eye"},null,8,["name"])],40,qm)]))}}),Nm={class:"login-page"},Lm={class:"login-actions"},Fm={class:"app-header-control github-control",href:"https://github.com/boltguo/sbm",target:"_blank",rel:"noopener noreferrer",title:"GitHub","aria-label":"GitHub"},Vm={key:0,class:"form-error"},Hm=["disabled"],Um=J({__name:"LoginView",props:{expired:{type:Boolean}},emits:["loggedIn"],setup(e,{emit:t}){const n=e,o=t,r=F("admin"),s=F(""),i=F(""),l=F(!1),a=W(()=>i.value||(n.expired?T("login.expired"):""));async function u(){l.value=!0,i.value="";try{const c=await Tn("/api/login",{username:r.value,password:s.value});Ws(c.csrfToken),o("loggedIn",c.username)}catch(c){i.value=rc(c)}finally{l.value=!1}}return(c,d)=>(D(),ae("main",Nm,[g("div",Lm,[g("button",{class:"app-header-control locale-control",onClick:d[0]||(d[0]=(...h)=>f(nr)&&f(nr)(...h))},O(f(T)("language")),1),g("a",Fm,[L(xe,{name:"github"})])]),d[5]||(d[5]=g("div",{class:"login-grid","aria-hidden":"true"},null,-1)),g("form",{class:"login-card",onSubmit:Ue(u,["prevent"])},[d[4]||(d[4]=g("div",{class:"brand-mark large login-card-brand"},[g("span",null,"SB"),g("b",null,"M")],-1)),g("h2",null,O(f(T)("login.title")),1),g("p",null,O(f(T)("login.help")),1),g("label",null,[ne(O(f(T)("login.username")),1),nt(g("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>r.value=h),autocomplete:"username",required:""},null,512),[[pt,r.value]])]),g("label",null,[ne(O(f(T)("login.password")),1),L(Sn,{modelValue:s.value,"onUpdate:modelValue":d[2]||(d[2]=h=>s.value=h),"aria-label":f(T)("login.password"),autocomplete:"current-password",autofocus:"",required:""},null,8,["modelValue","aria-label"])]),a.value?(D(),ae("p",Vm,O(a.value),1)):Ce("",!0),g("button",{class:"primary full",disabled:l.value},[ne(O(l.value?f(T)("login.loading"):f(T)("login.submit")),1),d[3]||(d[3]=g("span",null,"↗",-1))],8,Hm)],32)]))}});function jm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var kn={},Xr,Dl;function Km(){return Dl||(Dl=1,Xr=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),Xr}var Qr={},tn={},kl;function On(){if(kl)return tn;kl=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return tn.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},tn.getSymbolTotalCodewords=function(o){return t[o]},tn.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},tn.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},tn.isKanjiModeEnabled=function(){return typeof e<"u"},tn.toSJIS=function(o){return e(o)},tn}var Zr={},Bl;function Ai(){return Bl||(Bl=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(Zr)),Zr}var es,$l;function Wm(){if($l)return es;$l=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},es=e,es}var ts,ql;function zm(){if(ql)return ts;ql=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const s=t*this.size+n;this.data[s]=o,r&&(this.reservedBit[s]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},ts=e,ts}var ns={},Nl;function Gm(){return Nl||(Nl=1,(function(e){const t=On().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,s=t(o),i=s===145?26:Math.ceil((s-13)/(2*r-2))*2,l=[s-7];for(let a=1;a=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const s=r.size;let i=0,l=0,a=0,u=null,c=null;for(let d=0;d=5&&(i+=t.N1+(l-5)),u=p,l=1),p=r.get(h,d),p===c?a++:(a>=5&&(i+=t.N1+(a-5)),c=p,a=1)}l>=5&&(i+=t.N1+(l-5)),a>=5&&(i+=t.N1+(a-5))}return i},e.getPenaltyN2=function(r){const s=r.size;let i=0;for(let l=0;l=10&&(l===1488||l===93)&&i++,a=a<<1&2047|r.get(c,u),c>=10&&(a===1488||a===93)&&i++}return i*t.N3},e.getPenaltyN4=function(r){let s=0;const i=r.data.length;for(let a=0;a=0;){const i=s[0];for(let a=0;a0){const l=new Uint8Array(this.degree);return l.set(s,i),l}return s},is=t,is}var ls={},as={},us={},Kl;function ic(){return Kl||(Kl=1,us.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),us}var Et={},Wl;function lc(){if(Wl)return Et;Wl=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r +]))+`;Et.KANJI=new RegExp(n,"g"),Et.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Et.BYTE=new RegExp(o,"g"),Et.NUMERIC=new RegExp(e,"g"),Et.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),s=new RegExp("^"+e+"$"),i=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return Et.testKanji=function(a){return r.test(a)},Et.testNumeric=function(a){return s.test(a)},Et.testAlphanumeric=function(a){return i.test(a)},Et}var zl;function Rn(){return zl||(zl=1,(function(e){const t=ic(),n=lc();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(s,i){if(!s.ccBits)throw new Error("Invalid mode: "+s);if(!t.isValid(i))throw new Error("Invalid version: "+i);return i>=1&&i<10?s.ccBits[0]:i<27?s.ccBits[1]:s.ccBits[2]},e.getBestModeForData=function(s){return n.testNumeric(s)?e.NUMERIC:n.testAlphanumeric(s)?e.ALPHANUMERIC:n.testKanji(s)?e.KANJI:e.BYTE},e.toString=function(s){if(s&&s.id)return s.id;throw new Error("Invalid mode")},e.isValid=function(s){return s&&s.bit&&s.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(s,i){if(e.isValid(s))return s;try{return o(s)}catch{return i}}})(as)),as}var Gl;function ey(){return Gl||(Gl=1,(function(e){const t=On(),n=sc(),o=Ai(),r=Rn(),s=ic(),i=7973,l=t.getBCHDigit(i);function a(h,p,y){for(let S=1;S<=40;S++)if(p<=e.getCapacity(S,y,h))return S}function u(h,p){return r.getCharCountIndicator(h,p)+4}function c(h,p){let y=0;return h.forEach(function(S){const E=u(S.mode,p);y+=E+S.getBitsLength()}),y}function d(h,p){for(let y=1;y<=40;y++)if(c(h,y)<=e.getCapacity(y,p,r.MIXED))return y}e.from=function(p,y){return s.isValid(p)?parseInt(p,10):y},e.getCapacity=function(p,y,S){if(!s.isValid(p))throw new Error("Invalid QR Code version");typeof S>"u"&&(S=r.BYTE);const E=t.getSymbolTotalCodewords(p),m=n.getTotalCodewordsCount(p,y),_=(E-m)*8;if(S===r.MIXED)return _;const x=_-u(S,p);switch(S){case r.NUMERIC:return Math.floor(x/10*3);case r.ALPHANUMERIC:return Math.floor(x/11*2);case r.KANJI:return Math.floor(x/13);case r.BYTE:default:return Math.floor(x/8)}},e.getBestVersionForData=function(p,y){let S;const E=o.from(y,o.M);if(Array.isArray(p)){if(p.length>1)return d(p,E);if(p.length===0)return 1;S=p[0]}else S=p;return a(S.mode,S.getLength(),E)},e.getEncodedBits=function(p){if(!s.isValid(p)||p<7)throw new Error("Invalid QR Code version");let y=p<<12;for(;t.getBCHDigit(y)-l>=0;)y^=i<=0;)a^=t<0&&(s=this.data.substr(r),i=parseInt(s,10),o.put(i,l*3+1))},fs=t,fs}var ps,Xl;function oy(){if(Xl)return ps;Xl=1;const e=Rn(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let s;for(s=0;s+2<=this.data.length;s+=2){let i=t.indexOf(this.data[s])*45;i+=t.indexOf(this.data[s+1]),r.put(i,11)}this.data.length%2&&r.put(t.indexOf(this.data[s]),6)},ps=n,ps}var hs,Ql;function ry(){if(Ql)return hs;Ql=1;const e=Rn();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&s<=40956)s-=33088;else if(s>=57408&&s<=60351)s-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` +Make sure your charset is UTF-8`);s=(s>>>8&255)*192+(s&255),o.put(s,13)}},gs=n,gs}var vs={exports:{}},ea;function iy(){return ea||(ea=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var s={},i={};i[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var a,u,c,d,h,p,y,S,E;!l.empty();){a=l.pop(),u=a.value,d=a.cost,h=n[u]||{};for(c in h)h.hasOwnProperty(c)&&(p=h[c],y=d+p,S=i[c],E=typeof i[c]>"u",(E||S>y)&&(i[c]=y,l.push(c,y),s[c]=u))}if(typeof r<"u"&&typeof i[r]>"u"){var m=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(m)}return s},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],s=o;s;)r.push(s),n[s],s=n[s];return r.reverse(),r},find_path:function(n,o,r){var s=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(s,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},s;n=n||{};for(s in o)o.hasOwnProperty(s)&&(r[s]=o[s]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(vs)),vs.exports}var ta;function ly(){return ta||(ta=1,(function(e){const t=Rn(),n=ny(),o=oy(),r=ry(),s=sy(),i=lc(),l=On(),a=iy();function u(m){return unescape(encodeURIComponent(m)).length}function c(m,_,x){const w=[];let R;for(;(R=m.exec(x))!==null;)w.push({data:R[0],index:R.index,mode:_,length:R[0].length});return w}function d(m){const _=c(i.NUMERIC,t.NUMERIC,m),x=c(i.ALPHANUMERIC,t.ALPHANUMERIC,m);let w,R;return l.isKanjiModeEnabled()?(w=c(i.BYTE,t.BYTE,m),R=c(i.KANJI,t.KANJI,m)):(w=c(i.BYTE_KANJI,t.BYTE,m),R=[]),_.concat(x,w,R).sort(function(v,C){return v.index-C.index}).map(function(v){return{data:v.data,mode:v.mode,length:v.length}})}function h(m,_){switch(_){case t.NUMERIC:return n.getBitsLength(m);case t.ALPHANUMERIC:return o.getBitsLength(m);case t.KANJI:return s.getBitsLength(m);case t.BYTE:return r.getBitsLength(m)}}function p(m){return m.reduce(function(_,x){const w=_.length-1>=0?_[_.length-1]:null;return w&&w.mode===x.mode?(_[_.length-1].data+=x.data,_):(_.push(x),_)},[])}function y(m){const _=[];for(let x=0;x=0&&H<=6&&(z===0||z===6)||z>=0&&z<=6&&(H===0||H===6)||H>=2&&H<=4&&z>=2&&z<=4?P.set(j+H,X+z,!0,!0):P.set(j+H,X+z,!1,!0))}}function y(P){const v=P.size;for(let C=8;C>H&1)===1,P.set(k,j,X,!0),P.set(j,k,X,!0)}function m(P,v,C){const I=P.size,k=c.getEncodedBits(v,C);let j,X;for(j=0;j<15;j++)X=(k>>j&1)===1,j<6?P.set(j,8,X,!0):j<8?P.set(j+1,8,X,!0):P.set(I-15+j,8,X,!0),j<8?P.set(8,I-j-1,X,!0):j<9?P.set(8,15-j-1+1,X,!0):P.set(8,15-j-1,X,!0);P.set(I-8,8,1,!0)}function _(P,v){const C=P.size;let I=-1,k=C-1,j=7,X=0;for(let H=C-1;H>0;H-=2)for(H===6&&H--;;){for(let z=0;z<2;z++)if(!P.isReserved(k,H-z)){let ve=!1;X>>j&1)===1),P.set(k,H-z,ve),j--,j===-1&&(X++,j=7)}if(k+=I,k<0||C<=k){k-=I,I=-I;break}}}function x(P,v,C){const I=new n;C.forEach(function(z){I.put(z.mode.bit,4),I.put(z.getLength(),d.getCharCountIndicator(z.mode,P)),z.write(I)});const k=e.getSymbolTotalCodewords(P),j=l.getTotalCodewordsCount(P,v),X=(k-j)*8;for(I.getLengthInBits()+4<=X&&I.put(0,4);I.getLengthInBits()%8!==0;)I.putBit(0);const H=(X-I.getLengthInBits())/8;for(let z=0;z=7&&b(W,v),E(W,X),isNaN(M)&&(M=i.getBestMask(W,m.bind(null,W,S))),i.applyMask(M,W),m(W,S,M),{modules:W,version:v,errorCorrectionLevel:S,maskPattern:M,segments:B}}return Qr.create=function(v,S){if(typeof v>"u"||v==="")throw new Error("No input text");let M=t.M,B,j;return typeof S<"u"&&(M=t.from(S.errorCorrectionLevel,t.M),B=u.from(S.version),j=i.from(S.maskPattern),S.toSJISFunc&&e.setToSJISFunction(S.toSJISFunc)),R(v,B,M,j)},Qr}var ms={},ys={},oa;function ac(){return oa||(oa=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(s){return[s,s]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,s=o.width&&o.width>=21?o.width:void 0,i=o.scale||4;return{width:s,scale:s?4:i,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const s=e.getScale(o,r);return Math.floor((o+r.margin*2)*s)},e.qrToImageData=function(o,r,s){const i=r.modules.size,l=r.modules.data,a=e.getScale(i,s),u=Math.floor((i+s.margin*2)*a),c=s.margin*a,d=[s.color.light,s.color.dark];for(let h=0;h=c&&p>=c&&h"u"&&(!i||!i.getContext)&&(a=i,i=void 0),i||(u=o()),a=t.getOptions(a);const c=t.getImageWidth(s.modules.size,a),d=u.getContext("2d"),h=d.createImageData(c,c);return t.qrToImageData(h.data,s,a),n(d,u,c),d.putImageData(h,0,0),u},e.renderToDataURL=function(s,i,l){let a=l;typeof a>"u"&&(!i||!i.getContext)&&(a=i,i=void 0),a||(a={});const u=e.render(s,i,a),c=a.type||"image/png",d=a.rendererOpts||{};return u.toDataURL(c,d.quality)}})(ms)),ms}var bs={},sa;function cy(){if(sa)return bs;sa=1;const e=ac();function t(r,s){const i=r.a/255,l=s+'="'+r.hex+'"';return i<1?l+" "+s+'-opacity="'+i.toFixed(2).slice(1)+'"':l}function n(r,s,i){let l=r+s;return typeof i<"u"&&(l+=" "+i),l}function o(r,s,i){let l="",a=0,u=!1,c=0;for(let d=0;d0&&h>0&&r[d-1]||(l+=u?n("M",h+i,.5+p+i):n("m",a,0),a=0,u=!1),h+1':"",p="',y='viewBox="0 0 '+d+" "+d+'"',b=''+h+p+` -`;return typeof l=="function"&&l(null,b),b},bs}var ia;function dy(){if(ia)return Bn;ia=1;const e=Km(),t=ay(),n=uy(),o=cy();function r(s,i,l,a,u){const c=[].slice.call(arguments,1),d=c.length,h=typeof c[d-1]=="function";if(!h&&!e())throw new Error("Callback required as last argument");if(h){if(d<2)throw new Error("Too few arguments provided");d===2?(u=l,l=i,i=a=void 0):d===3&&(i.getContext&&typeof u>"u"?(u=a,a=void 0):(u=a,a=l,l=i,i=void 0))}else{if(d<1)throw new Error("Too few arguments provided");return d===1?(l=i,i=a=void 0):d===2&&!i.getContext&&(a=l,l=i,i=void 0),new Promise(function(p,y){try{const C=t.create(l,a);p(s(C,i,a))}catch(C){y(C)}})}try{const p=t.create(l,a);u(null,s(p,i,a))}catch(p){u(p)}}return Bn.create=t.create,Bn.toCanvas=r.bind(null,n.render),Bn.toDataURL=r.bind(null,n.renderToDataURL),Bn.toString=r.bind(null,function(s,i,l){return o.render(s,l)}),Bn}var fy=dy();const uc=jm(fy),py={class:"mt-6 flex justify-end gap-2"},nr=J({__name:"ConfirmAction",props:{title:{},message:{},destructive:{type:Boolean,default:!1}},emits:["confirm"],setup(e){return(t,n)=>(I(),G(f(hh),null,{default:k(()=>[L(f(yh),{"as-child":""},{default:k(()=>[Z(t.$slots,"default")]),_:3}),L(f(fh),null,{default:k(()=>[L(f(ch),{class:"fixed inset-0 z-[60] bg-[#151914]/35 backdrop-blur-[2px]"}),L(f(rh),{class:"fixed left-1/2 top-1/2 z-[61] w-[calc(100%-32px)] max-w-md -translate-x-1/2 -translate-y-1/2 border border-[var(--line)] bg-[var(--paper)] p-6 shadow-2xl outline-none"},{default:k(()=>[L(f(vh),{class:"font-[var(--display)] text-2xl font-extrabold"},{default:k(()=>[oe(O(e.title),1)]),_:1}),L(f(ah),{class:"mt-3 text-sm leading-6 text-[var(--muted)]"},{default:k(()=>[oe(O(e.message),1)]),_:1}),g("div",py,[L(f(ih),{class:"secondary"},{default:k(()=>[oe(O(f(P)("protocol.cancel")),1)]),_:1}),L(f(eh),{class:Ie(["primary",e.destructive?"!border-[var(--red)] !bg-[var(--red)] !text-white":""]),onClick:n[0]||(n[0]=o=>t.$emit("confirm"))},{default:k(()=>[oe(O(f(P)("confirm")),1)]),_:1},8,["class"])])]),_:1})]),_:1})]),_:3}))}}),hy={key:0,class:"page dashboard"},gy={class:"page-head"},vy={class:"head-actions"},my={class:"secondary"},yy=["disabled"],by={key:0,class:"alert danger"},wy={class:"status-strip"},_y={class:"version-cell"},Cy=["disabled","title","aria-label"],Sy={key:0,class:"version-update-dot"},Ey={class:"traffic-panel"},xy={class:"traffic-copy"},Ay={class:"traffic-kicker"},Ty=["disabled","title"],Py=["title"],Oy={class:"traffic-split"},Ry={class:"progress-track"},My={class:"subscription-card"},Dy={class:"sub-copy"},Iy={class:"copy-field"},By={class:"qr-frame"},ky=["src","alt"],$y={key:1,class:"loading"},qy=J({__name:"DashboardView",emits:["toast"],setup(e,{emit:t}){const n=t,o=F(null),r=F(null),s=F(!1),i=F(!1),l=F("");let a=0;const u=v=>{if(!v)return"0 B";const S=["B","KB","MB","GB","TB"],M=Math.min(Math.floor(Math.log(v)/Math.log(1024)),4);return`${(v/1024**M).toFixed(M>2?2:1)} ${S[M]}`},c=v=>!v||v.startsWith("0001")?P("dashboard.noReset"):new Intl.DateTimeFormat(tc(),{dateStyle:"medium",timeStyle:"short"}).format(new Date(v)),d=v=>v?v==="dev"||v.startsWith("v")?v:`v${v}`:"unknown",h=()=>r.value?.updateAvailable?P("dashboard.updateFound",{version:d(r.value.latestVersion)}):P("dashboard.checkUpdate"),p=()=>!o.value||o.value.trafficAudit.status==="unavailable"?P("dashboard.trafficSource"):`${P("dashboard.trafficSource")} · ${P(`dashboard.audit.${o.value.trafficAudit.status}`)}`,y=()=>{if(!o.value||o.value.trafficAudit.status==="unavailable")return P("dashboard.audit.unavailableHelp");const v=o.value.trafficAudit;return v.status==="collecting"?P("dashboard.audit.collectingHelp",{amount:u(v.proxyBytes)}):P("dashboard.audit.detail",{interface:v.interface||"WAN",proxy:u(v.proxyBytes),receive:u(v.receiveBytes),transmit:u(v.transmitBytes)})},C=xi(v=>n("toast",v));async function b(){const v=await Yt("/api/dashboard");(!o.value||o.value.subscriptionURL!==v.subscriptionURL)&&(l.value=await uc.toDataURL(v.subscriptionURL,{width:256,margin:1,color:{dark:"#111712",light:"#f4f1e8"}})),o.value=v}const m=()=>{b().catch(()=>{})},E=C(async()=>{if(!i.value){i.value=!0;try{await b(),n("toast",P("dashboard.refreshed"))}finally{i.value=!1}}}),x=C(async v=>{await navigator.clipboard.writeText(v),n("toast",P("dashboard.copyDone"))}),_=C(async()=>{await Tn("/api/core/restart"),n("toast",P("dashboard.restartDone")),await b()}),R=C(async()=>{await Tn("/api/traffic/reset"),n("toast",P("dashboard.resetDone")),await b()});async function T(v=!0){s.value=!0;try{r.value=await Yt("/api/update"),v&&n("toast",r.value.updateAvailable?P("dashboard.updateFound",{version:d(r.value.latestVersion)}):P("dashboard.updateCurrent"))}catch{v&&n("toast",P("dashboard.updateFailed"))}finally{s.value=!1}}return Re(()=>{m(),T(!1),a=window.setInterval(m,5e3)}),br(()=>clearInterval(a)),(v,S)=>o.value?(I(),ae("div",hy,[g("header",gy,[g("div",null,[S[3]||(S[3]=g("span",{class:"eyebrow"},"OVERVIEW / LIVE",-1)),g("h1",null,O(f(P)("dashboard.title")),1)]),g("div",vy,[L(nr,{title:f(P)("dashboard.reset"),message:f(P)("dashboard.resetConfirm"),onConfirm:f(R)},{default:k(()=>[g("button",my,[L(xe,{name:"refresh"}),oe(O(f(P)("dashboard.reset")),1)])]),_:1},8,["title","message","onConfirm"]),L(nr,{title:f(P)("dashboard.restart"),message:f(P)("dashboard.restartConfirm"),onConfirm:f(_)},{default:k(()=>[g("button",{class:"primary",disabled:o.value.quotaExceeded},[L(xe,{name:"power"}),oe(O(f(P)("dashboard.restart")),1)],8,yy)]),_:1},8,["title","message","onConfirm"])])]),o.value.quotaExceeded?(I(),ae("div",by,[g("strong",null,O(f(P)("dashboard.exceeded")),1),g("span",null,O(f(P)("dashboard.exceededHelp")),1)])):Ce("",!0),g("section",wy,[g("div",null,[g("span",{class:Ie(["status-dot",o.value.active?"online":"offline"])},null,2),S[4]||(S[4]=g("small",null,"CORE STATUS",-1)),g("strong",null,O(o.value.active?f(P)("dashboard.running"):f(P)("dashboard.stopped")),1)]),g("div",_y,[S[5]||(S[5]=g("small",null,"SBM VERSION",-1)),g("strong",null,O(d(o.value.panelVersion)),1),g("button",{class:Ie(["version-check",{checking:s.value}]),disabled:s.value,title:h(),"aria-label":h(),onClick:S[0]||(S[0]=M=>T())},[L(xe,{name:"refresh"}),r.value?.updateAvailable?(I(),ae("span",Sy)):Ce("",!0)],10,Cy)]),g("div",null,[S[6]||(S[6]=g("small",null,"SING-BOX VERSION",-1)),g("strong",null,O(o.value.coreVersion),1)]),g("div",null,[S[7]||(S[7]=g("small",null,"PERIOD START",-1)),g("strong",null,O(c(o.value.periodStartedAt)),1)]),g("div",null,[S[8]||(S[8]=g("small",null,"NEXT RESET",-1)),g("strong",null,O(c(o.value.nextResetAt)),1)])]),g("section",Ey,[g("div",xy,[g("div",Ay,[S[9]||(S[9]=g("span",{class:"eyebrow"},"SHARED TRAFFIC POOL",-1)),g("button",{class:Ie(["traffic-refresh",{refreshing:i.value}]),disabled:i.value,title:f(P)("dashboard.refreshHelp"),onClick:S[1]||(S[1]=(...M)=>f(E)&&f(E)(...M))},[L(xe,{name:"refresh"}),oe(O(f(P)("dashboard.refresh")),1)],10,Ty)]),g("h2",null,O(u(o.value.used)),1),g("p",null,O(o.value.totalBytes?f(P)("dashboard.totalRemaining",{total:u(o.value.totalBytes),remaining:u(o.value.remaining)}):f(P)("dashboard.unlimitedHelp")),1),g("small",{class:Ie(["traffic-source",{warning:o.value.trafficAudit.status==="different",pending:o.value.trafficAudit.status==="collecting"||o.value.trafficAudit.status==="unavailable"}]),title:y()},[S[10]||(S[10]=g("i",null,null,-1)),oe(O(p()),1)],10,Py)]),g("div",{class:"traffic-ring",style:st({"--progress":`${o.value.totalBytes?o.value.progress:0}%`})},[g("div",null,[g("b",null,O(o.value.totalBytes?Math.round(o.value.progress):"∞"),1),g("small",null,O(o.value.totalBytes?"%":f(P)("dashboard.unlimited")),1)])],4),g("div",Oy,[g("div",null,[S[11]||(S[11]=g("span",null,"↑",-1)),g("p",null,O(f(P)("dashboard.upload")),1),g("strong",null,O(u(o.value.upload)),1)]),g("div",null,[S[12]||(S[12]=g("span",null,"↓",-1)),g("p",null,O(f(P)("dashboard.download")),1),g("strong",null,O(u(o.value.download)),1)])]),g("div",Ry,[g("i",{style:st({width:o.value.totalBytes?`${o.value.progress}%`:"0%"})},null,4)])]),g("section",My,[g("div",Dy,[S[13]||(S[13]=g("span",{class:"eyebrow"},"ONE SUBSCRIPTION / ALL ENABLED INBOUNDS",-1)),g("h2",null,O(f(P)("dashboard.subscription")),1),g("p",null,O(f(P)("dashboard.subscriptionHelp")),1),g("div",Iy,[g("code",null,O(o.value.subscriptionURL),1),g("button",{onClick:S[2]||(S[2]=M=>f(x)(o.value.subscriptionURL))},[L(xe,{name:"copy"}),oe(O(f(P)("dashboard.copy")),1)])]),g("small",null,O(f(P)("dashboard.secretHelp")),1)]),g("div",By,[g("img",{src:l.value,alt:f(P)("dashboard.qrAlt")},null,8,ky),S[14]||(S[14]=g("span",null,"SCAN TO IMPORT",-1))])])])):(I(),ae("div",$y,O(f(P)("dashboard.loading")),1))}}),Ny={class:"flex items-center justify-between border-b border-[var(--line)] px-6 py-5"},ws=J({__name:"Modal",props:{title:{},description:{},wide:{type:Boolean}},emits:["close"],setup(e,{emit:t}){const n=t;return(o,r)=>(I(),G(f(Mu),{open:!0,"onUpdate:open":r[0]||(r[0]=s=>!s&&n("close"))},{default:k(()=>[L(f(Yp),null,{default:k(()=>[L(f(Nu),{class:"fixed inset-0 z-50 bg-[#151914]/35 backdrop-blur-[2px]"}),L(f($u),{class:Ie(["fixed bottom-0 left-1/2 z-50 max-h-[90vh] w-full -translate-x-1/2 overflow-y-auto border border-[var(--line)] bg-[var(--paper)] shadow-[0_12px_45px_rgba(20,25,20,.18)] outline-none sm:bottom-auto sm:top-1/2 sm:-translate-y-1/2",e.wide?"sm:max-w-[760px]":"sm:max-w-[520px]"])},{default:k(()=>[g("header",Ny,[g("div",null,[r[1]||(r[1]=g("span",{class:"eyebrow"},"CONFIGURATION",-1)),L(f(Lu),{class:"mt-1 font-[var(--display)] text-3xl font-extrabold"},{default:k(()=>[oe(O(e.title),1)]),_:1}),L(f(qu),{class:"sr-only"},{default:k(()=>[oe(O(e.description||e.title),1)]),_:1})]),L(f(gi),{class:"icon-button","aria-label":f(P)("close")},{default:k(()=>[L(xe,{name:"x"})]),_:1},8,["aria-label"])]),Z(o.$slots,"default")]),_:3},8,["class"])]),_:3})]),_:3}))}}),or=J({__name:"SelectControl",props:{modelValue:{},options:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,r=z(()=>n.options.find(i=>i.value===n.modelValue)?.label||"");function s(i){o("update:modelValue",String(i??""))}return(i,l)=>(I(),G(f(Ng),{"model-value":e.modelValue,"onUpdate:modelValue":s},{default:k(()=>[L(f(pv),{class:"flex min-h-11 w-full items-center justify-between border border-[var(--line)] bg-white/70 px-3 text-left outline-none focus:border-[var(--ink)] focus:shadow-[inset_3px_0_var(--signal)]"},{default:k(()=>[L(f(gv),null,{default:k(()=>[oe(O(r.value),1)]),_:1}),L(f(nv),{class:"text-[var(--muted)]","aria-hidden":"true"},{default:k(()=>[...l[0]||(l[0]=[oe("⌄",-1)])]),_:1})]),_:1}),L(f(dv),null,{default:k(()=>[L(f(ev),{position:"popper","side-offset":4,class:"z-[70] min-w-[var(--reka-select-trigger-width)] border border-[var(--line)] bg-[var(--paper)] p-1 shadow-xl"},{default:k(()=>[L(f(mv),null,{default:k(()=>[(I(!0),ae(Ae,null,_o(e.options,a=>(I(),G(f(sv),{key:a.value,value:a.value,class:"relative flex cursor-default select-none items-center px-8 py-2 text-sm outline-none data-[highlighted]:bg-[var(--signal)]"},{default:k(()=>[L(f(lv),{class:"absolute left-2"},{default:k(()=>[...l[1]||(l[1]=[oe("✓",-1)])]),_:1}),L(f(uv),null,{default:k(()=>[oe(O(a.label),1)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Ly={class:"page"},Fy={class:"page-head"},Vy={class:"protocol-grid"},Hy={class:"protocol-top"},Uy={class:"protocol-glyph"},jy={class:"pill"},Ky={class:"endpoint"},Wy={key:0},zy={key:1},Gy={class:"card-actions"},Yy=["onClick"],Jy=["aria-label","onClick"],Xy=["aria-label","onClick"],Qy=["aria-label"],Zy={key:0,class:"alert warning"},eb={class:"modal-actions"},tb={class:"primary"},nb={key:0,class:"span-two"},ob={class:"alert subtle span-two"},rb={class:"modal-actions span-two"},sb={class:"primary"},ib={class:"large-qr"},lb=["src","alt"],ab=J({__name:"ProtocolsView",emits:["toast"],setup(e,{emit:t}){const n=t,o=F([]),r=F(null),s=F(!1),i=F(""),l=F(null),a=F({type:"vless-reality",name:P("protocol.defaultName"),port:8443}),u=z(()=>o.value.some(T=>T.type===a.value.type)),c=[{value:"vless-reality",label:"VLESS + Vision + REALITY"},{value:"hysteria2",label:"Hysteria2"}],d=z(()=>[{value:"none",label:P("protocol.off")},{value:"salamander",label:"Salamander"}]),h=xi(T=>n("toast",T)),p=h(async()=>{o.value=await Yt("/api/inbounds")}),y=h(async()=>{await Tn("/api/inbounds",a.value),s.value=!1,n("toast",P("protocol.created")),await p()}),C=h(async()=>{r.value&&(await zs(`/api/inbounds/${r.value.id}`,r.value),r.value=null,n("toast",P("protocol.saved")),await p())}),b=h(async T=>{await zs(`/api/inbounds/${T.id}`,{...T,enabled:!T.enabled,link:void 0,network:void 0}),n("toast",T.enabled?P("protocol.disabled"):P("protocol.enabled")),await p()}),m=h(async T=>{await zv(`/api/inbounds/${T.id}`),n("toast",P("protocol.deleted")),await p()}),E=h(async T=>{await navigator.clipboard.writeText(T),n("toast",P("protocol.linkCopied"))}),x=h(async T=>{l.value=T,i.value=await uc.toDataURL(T.link,{width:320,margin:2,color:{dark:"#111712",light:"#f4f1e8"}})});function _(T){r.value=JSON.parse(JSON.stringify(T)),delete r.value.link,delete r.value.network}function R(){a.value={type:"vless-reality",name:P("protocol.defaultName"),port:8443},s.value=!0}return Re(p),(T,v)=>(I(),ae("div",Ly,[g("header",Fy,[g("div",null,[v[20]||(v[20]=g("span",{class:"eyebrow"},"INBOUND ROUTES",-1)),g("h1",null,O(f(P)("protocol.title")),1),g("p",null,O(f(P)("protocol.help")),1)]),g("button",{class:"primary",onClick:R},[L(xe,{name:"plus"}),oe(O(f(P)("protocol.add")),1)])]),g("div",Vy,[(I(!0),ae(Ae,null,_o(o.value,S=>(I(),ae("article",{key:S.id,class:Ie(["protocol-card",{disabled:!S.enabled}])},[g("div",Hy,[g("div",Uy,O(S.type==="vless-reality"?"VL":"H2"),1),g("div",null,[g("span",jy,O(S.type==="vless-reality"?"VLESS · REALITY":"HYSTERIA2"),1),g("h2",null,O(S.name),1)]),L(f(_v),{"model-value":S.enabled,class:"relative h-6 w-11 rounded-full border border-[var(--ink)] bg-transparent p-[3px] data-[state=checked]:bg-[var(--signal)]","aria-label":S.enabled?f(P)("protocol.disable"):f(P)("protocol.enable"),"onUpdate:modelValue":M=>f(b)(S)},{default:k(()=>[L(f(Sv),{class:"block size-4 rounded-full bg-[var(--muted)] transition-transform data-[state=checked]:translate-x-[18px] data-[state=checked]:bg-[var(--ink)]"})]),_:1},8,["model-value","aria-label","onUpdate:modelValue"])]),g("div",Ky,[g("span",null,O(S.network.toUpperCase()),1),g("code",null,O(S.port),1),g("b",null,O(S.enabled?"ACTIVE":"STOPPED"),1)]),S.vless?(I(),ae("dl",Wy,[g("div",null,[v[21]||(v[21]=g("dt",null,"SNI",-1)),g("dd",null,O(S.vless.sni),1)]),v[23]||(v[23]=g("div",null,[g("dt",null,"FLOW"),g("dd",null,"XTLS Vision")],-1)),g("div",null,[v[22]||(v[22]=g("dt",null,"SHORT ID",-1)),g("dd",null,O(S.vless.shortId),1)])])):(I(),ae("dl",zy,[v[25]||(v[25]=g("div",null,[g("dt",null,"TLS"),g("dd",null,"Server certificate")],-1)),v[26]||(v[26]=g("div",null,[g("dt",null,"ALPN"),g("dd",null,"h3")],-1)),g("div",null,[v[24]||(v[24]=g("dt",null,"OBFS",-1)),g("dd",null,O(S.hysteria2?.obfs||f(P)("protocol.off")),1)])])),g("div",Gy,[g("button",{onClick:M=>f(E)(S.link)},[L(xe,{name:"copy"}),oe(O(f(P)("protocol.copyLink")),1)],8,Yy),g("button",{"aria-label":f(P)("protocol.showQr"),onClick:M=>f(x)(S)},"QR",8,Jy),g("button",{"aria-label":f(P)("protocol.edit"),onClick:M=>_(S)},[L(xe,{name:"edit"})],8,Xy),L(nr,{title:S.name,message:f(P)("protocol.deleteConfirm",{name:S.name}),destructive:"",onConfirm:M=>f(m)(S)},{default:k(()=>[g("button",{class:"destructive","aria-label":f(P)("protocol.delete")},[L(xe,{name:"trash"})],8,Qy)]),_:1},8,["title","message","onConfirm"])])],2))),128)),g("button",{class:"add-card",onClick:R},[L(xe,{name:"plus"}),g("strong",null,O(f(P)("protocol.addAnother")),1),g("span",null,O(f(P)("protocol.addAnotherHelp")),1)])]),s.value?(I(),G(ws,{key:0,title:f(P)("protocol.newTitle"),description:f(P)("protocol.addAnotherHelp"),onClose:v[5]||(v[5]=S=>s.value=!1)},{default:k(()=>[g("form",{class:"form-grid",onSubmit:v[4]||(v[4]=Ue((...S)=>f(y)&&f(y)(...S),["prevent"]))},[g("label",null,[oe(O(f(P)("protocol.type")),1),L(or,{modelValue:a.value.type,"onUpdate:modelValue":v[0]||(v[0]=S=>a.value.type=S),options:c},null,8,["modelValue"])]),u.value?(I(),ae("div",Zy,O(f(P)("protocol.duplicate")),1)):Ce("",!0),g("label",null,[oe(O(f(P)("protocol.name")),1),nt(g("input",{"onUpdate:modelValue":v[1]||(v[1]=S=>a.value.name=S),maxlength:"80",required:""},null,512),[[pt,a.value.name,void 0,{trim:!0}]])]),g("label",null,[oe(O(f(P)("protocol.port")),1),nt(g("input",{"onUpdate:modelValue":v[2]||(v[2]=S=>a.value.port=S),type:"number",min:"1",max:"65535",required:""},null,512),[[pt,a.value.port,void 0,{number:!0}]]),g("small",null,O(f(P)("protocol.portHelp",{network:a.value.type==="vless-reality"?"TCP":"UDP"})),1)]),g("div",eb,[g("button",{type:"button",class:"secondary",onClick:v[3]||(v[3]=S=>s.value=!1)},O(f(P)("protocol.cancel")),1),g("button",tb,O(f(P)("protocol.generate")),1)])],32)]),_:1},8,["title","description"])):Ce("",!0),r.value?(I(),G(ws,{key:1,title:f(P)("protocol.editTitle"),description:f(P)("protocol.firewall"),wide:"",onClose:v[18]||(v[18]=S=>r.value=null)},{default:k(()=>[g("form",{class:"form-grid two",onSubmit:v[17]||(v[17]=Ue((...S)=>f(C)&&f(C)(...S),["prevent"]))},[g("label",null,[oe(O(f(P)("protocol.name")),1),nt(g("input",{"onUpdate:modelValue":v[6]||(v[6]=S=>r.value.name=S),maxlength:"80",required:""},null,512),[[pt,r.value.name,void 0,{trim:!0}]])]),g("label",null,[oe(O(f(P)("protocol.port")),1),nt(g("input",{"onUpdate:modelValue":v[7]||(v[7]=S=>r.value.port=S),type:"number",min:"1",max:"65535",required:""},null,512),[[pt,r.value.port,void 0,{number:!0}]])]),r.value.vless?(I(),ae(Ae,{key:0},[g("label",null,[v[27]||(v[27]=oe("UUID",-1)),nt(g("input",{"onUpdate:modelValue":v[8]||(v[8]=S=>r.value.vless.uuid=S),required:""},null,512),[[pt,r.value.vless.uuid]])]),g("label",null,[v[28]||(v[28]=oe("Reality SNI",-1)),nt(g("input",{"onUpdate:modelValue":v[9]||(v[9]=S=>r.value.vless.sni=S),required:""},null,512),[[pt,r.value.vless.sni,void 0,{trim:!0}]])]),g("label",null,[oe(O(f(P)("protocol.privateKey")),1),L(Sn,{modelValue:r.value.vless.privateKey,"onUpdate:modelValue":v[10]||(v[10]=S=>r.value.vless.privateKey=S),"aria-label":f(P)("protocol.privateKey"),autocomplete:"off",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[oe(O(f(P)("protocol.publicKey")),1),nt(g("input",{"onUpdate:modelValue":v[11]||(v[11]=S=>r.value.vless.publicKey=S),required:""},null,512),[[pt,r.value.vless.publicKey]])]),g("label",null,[v[29]||(v[29]=oe("Short ID",-1)),nt(g("input",{"onUpdate:modelValue":v[12]||(v[12]=S=>r.value.vless.shortId=S),required:""},null,512),[[pt,r.value.vless.shortId]])])],64)):Ce("",!0),r.value.hysteria2?(I(),ae(Ae,{key:1},[g("label",null,[oe(O(f(P)("protocol.password")),1),L(Sn,{modelValue:r.value.hysteria2.password,"onUpdate:modelValue":v[13]||(v[13]=S=>r.value.hysteria2.password=S),"aria-label":f(P)("protocol.password"),autocomplete:"off",minlength:"8",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[oe(O(f(P)("protocol.obfs")),1),L(or,{"model-value":r.value.hysteria2.obfs||"none",options:d.value,"onUpdate:modelValue":v[14]||(v[14]=S=>{r.value?.hysteria2&&(r.value.hysteria2.obfs=S==="none"?"":S)})},null,8,["model-value","options"])]),r.value.hysteria2.obfs?(I(),ae("label",nb,[oe(O(f(P)("protocol.obfsPassword")),1),L(Sn,{modelValue:r.value.hysteria2.obfsPassword,"onUpdate:modelValue":v[15]||(v[15]=S=>r.value.hysteria2.obfsPassword=S),"aria-label":f(P)("protocol.obfsPassword"),autocomplete:"off",minlength:"8",required:""},null,8,["modelValue","aria-label"])])):Ce("",!0)],64)):Ce("",!0),g("div",ob,O(f(P)("protocol.firewall")),1),g("div",rb,[g("button",{type:"button",class:"secondary",onClick:v[16]||(v[16]=S=>r.value=null)},O(f(P)("protocol.cancel")),1),g("button",sb,O(f(P)("protocol.apply")),1)])],32)]),_:1},8,["title","description"])):Ce("",!0),l.value?(I(),G(ws,{key:2,title:l.value.name,description:f(P)("protocol.qrHelp"),onClose:v[19]||(v[19]=S=>l.value=null)},{default:k(()=>[g("div",ib,[g("img",{src:i.value,alt:f(P)("protocol.qrAlt")},null,8,lb),g("p",null,O(f(P)("protocol.qrHelp")),1)])]),_:1},8,["title","description"])):Ce("",!0)]))}}),ub={key:0,class:"page server-page"},cb={class:"page-head"},db={class:"server-updated"},fb={class:"resource-grid"},pb={class:"resource-card"},hb={class:"resource-head"},gb={class:"resource-meter"},vb={class:"resource-card"},mb={class:"resource-head"},yb={class:"resource-meter"},bb={class:"resource-card"},wb={class:"resource-head"},_b={class:"resource-meter"},Cb={class:"host-grid"},Sb={class:"load-card"},Eb={class:"load-values"},xb={class:"uptime-card"},Ab={class:"system-facts"},Tb={key:1,class:"loading"},Pb=J({__name:"ServerView",setup(e){const t=F(null);let n=0;const o=l=>{if(!l)return"0 B";const a=["B","KB","MB","GB","TB"],u=Math.min(Math.floor(Math.log(l)/Math.log(1024)),a.length-1);return`${(l/1024**u).toFixed(u>2?1:0)} ${a[u]}`},r=l=>{const a=Math.floor(l/86400),u=Math.floor(l%86400/3600),c=Math.floor(l%3600/60);return a?P("server.days",{days:a,hours:u}):P("server.hours",{hours:u,minutes:c})},s=l=>new Intl.DateTimeFormat(tc(),{timeStyle:"medium"}).format(new Date(l)),i=()=>{Yt("/api/server").then(l=>{t.value=l}).catch(()=>{})};return Re(()=>{i(),n=window.setInterval(i,5e3)}),br(()=>clearInterval(n)),(l,a)=>t.value?(I(),ae("div",ub,[g("header",cb,[g("div",null,[a[0]||(a[0]=g("span",{class:"eyebrow"},"HOST / LIVE",-1)),g("h1",null,O(f(P)("server.title")),1),g("p",null,O(f(P)("server.help")),1)]),g("small",db,O(f(P)("server.updated",{time:s(t.value.collectedAt)})),1)]),g("section",fb,[g("article",pb,[g("div",hb,[g("span",null,O(f(P)("server.cpu")),1),g("strong",null,O(t.value.cpuPercent.toFixed(1))+"%",1)]),g("div",gb,[g("i",{style:st({width:`${t.value.cpuPercent}%`})},null,4)]),g("footer",null,[g("span",null,O(f(P)("server.cores",{count:t.value.cpuCores})),1),g("code",null,O(t.value.architecture),1)])]),g("article",vb,[g("div",mb,[g("span",null,O(f(P)("server.memory")),1),g("strong",null,O(t.value.memoryPercent.toFixed(1))+"%",1)]),g("div",yb,[g("i",{style:st({width:`${t.value.memoryPercent}%`})},null,4)]),g("footer",null,[g("span",null,O(f(P)("server.usedOf",{used:o(t.value.memoryUsed),total:o(t.value.memoryTotal)})),1)])]),g("article",bb,[g("div",wb,[g("span",null,O(f(P)("server.disk")),1),g("strong",null,O(t.value.diskPercent.toFixed(1))+"%",1)]),g("div",_b,[g("i",{style:st({width:`${t.value.diskPercent}%`})},null,4)]),g("footer",null,[g("span",null,O(f(P)("server.usedOf",{used:o(t.value.diskUsed),total:o(t.value.diskTotal)})),1)])])]),g("section",Cb,[g("article",Sb,[g("div",null,[a[1]||(a[1]=g("span",{class:"eyebrow"},"LOAD AVERAGE",-1)),g("h2",null,O(f(P)("server.load")),1),g("p",null,O(f(P)("server.loadHelp")),1)]),g("div",Eb,[g("div",null,[g("strong",null,O(t.value.load1.toFixed(2)),1),a[2]||(a[2]=g("small",null,"1 MIN",-1))]),g("div",null,[g("strong",null,O(t.value.load5.toFixed(2)),1),a[3]||(a[3]=g("small",null,"5 MIN",-1))]),g("div",null,[g("strong",null,O(t.value.load15.toFixed(2)),1),a[4]||(a[4]=g("small",null,"15 MIN",-1))])])]),g("article",xb,[a[5]||(a[5]=g("span",{class:"eyebrow"},"UPTIME",-1)),g("h2",null,O(r(t.value.uptimeSeconds)),1),g("p",null,O(f(P)("server.uptime")),1)])]),g("section",Ab,[g("div",null,[g("span",null,O(f(P)("server.hostname")),1),g("strong",null,O(t.value.hostname||"—"),1)]),g("div",null,[g("span",null,O(f(P)("server.system")),1),g("strong",null,O(t.value.os||"—"),1)]),g("div",null,[g("span",null,O(f(P)("server.kernel")),1),g("strong",null,O(t.value.kernel||"—"),1)]),g("div",null,[g("span",null,O(f(P)("server.arch")),1),g("strong",null,O(t.value.architecture),1)])])])):(I(),ae("div",Tb,O(f(P)("server.loading")),1))}}),Ob={key:0,class:"page settings-page"},Rb={class:"page-head"},Mb={class:"settings-section"},Db={class:"section-intro"},Ib={class:"settings-fields"},Bb={key:0},kb={key:1},$b={class:"quota-guide"},qb={class:"save-row"},Nb={class:"primary"},Lb={class:"settings-section"},Fb={class:"section-intro"},Vb={class:"settings-fields full-fields"},Hb={class:"copy-field"},Ub={class:"secondary danger-outline"},jb={class:"section-intro"},Kb={class:"settings-fields"},Wb={class:"secondary self-end"},zb={class:"machine-info"},Gb={key:1,class:"loading"},Yb=J({__name:"SettingsView",emits:["toast","loggedOut"],setup(e,{emit:t}){const n=t,o=F(null),r=F(0),s=F({currentPassword:"",newPassword:"",confirm:""}),i=["Asia/Shanghai","Asia/Hong_Kong","Asia/Tokyo","Europe/London","Europe/Berlin","America/New_York","America/Los_Angeles","UTC","Local"],l=z(()=>[{value:"none",label:P("settings.noReset")},{value:"monthly",label:P("settings.monthly")}]),a=i.map(C=>({value:C,label:C})),u=xi(C=>n("toast",C)),c=u(async()=>{o.value=await Yt("/api/settings"),r.value=Math.round(o.value.totalBytes/1024**3*100)/100}),d=u(async()=>{o.value&&(o.value.totalBytes=Math.round(r.value*1024**3),await zs("/api/settings",{totalBytes:o.value.totalBytes,reset:o.value.reset}),n("toast",P("settings.saved")))}),h=u(async()=>{const C=await Tn("/api/settings/token");o.value&&(o.value.subscriptionURL=C.subscriptionURL),n("toast",P("settings.tokenDone"))}),p=u(async()=>{if(s.value.newPassword!==s.value.confirm){n("toast",P("settings.passwordMismatch"));return}await Tn("/api/settings/password",{currentPassword:s.value.currentPassword,newPassword:s.value.newPassword}),n("toast",P("settings.passwordDone")),n("loggedOut")}),y=u(async C=>{await navigator.clipboard.writeText(C),n("toast",P("copied"))});return Re(c),(C,b)=>o.value?(I(),ae("div",Ob,[g("header",Rb,[g("div",null,[b[10]||(b[10]=g("span",{class:"eyebrow"},"SYSTEM PARAMETERS",-1)),g("h1",null,O(f(P)("settings.title")),1),g("p",null,O(f(P)("settings.help")),1)])]),g("form",{class:"settings-stack",onSubmit:b[4]||(b[4]=Ue((...m)=>f(d)&&f(d)(...m),["prevent"]))},[g("section",Mb,[g("div",Db,[g("h2",null,O(f(P)("settings.traffic")),1),g("p",null,O(f(P)("settings.trafficHelp")),1)]),g("div",Ib,[g("label",null,[oe(O(f(P)("settings.total")),1),nt(g("input",{"onUpdate:modelValue":b[0]||(b[0]=m=>r.value=m),type:"number",min:"0",step:"0.1"},null,512),[[pt,r.value,void 0,{number:!0}]])]),g("label",null,[oe(O(f(P)("settings.autoReset")),1),L(or,{modelValue:o.value.reset.mode,"onUpdate:modelValue":b[1]||(b[1]=m=>o.value.reset.mode=m),options:l.value},null,8,["modelValue","options"])]),o.value.reset.mode==="monthly"?(I(),ae("label",Bb,[oe(O(f(P)("settings.day")),1),nt(g("input",{"onUpdate:modelValue":b[2]||(b[2]=m=>o.value.reset.day=m),type:"number",min:"1",max:"28"},null,512),[[pt,o.value.reset.day,void 0,{number:!0}]])])):Ce("",!0),o.value.reset.mode==="monthly"?(I(),ae("label",kb,[oe(O(f(P)("settings.timezone")),1),L(or,{modelValue:o.value.reset.timezone,"onUpdate:modelValue":b[3]||(b[3]=m=>o.value.reset.timezone=m),options:f(a)},null,8,["modelValue","options"])])):Ce("",!0),g("aside",$b,[g("strong",null,O(f(P)("settings.quotaGuideTitle")),1),g("p",null,O(f(P)("settings.quotaGuideBidirectional")),1),g("p",null,O(f(P)("settings.quotaGuideEgress")),1),g("small",null,O(f(P)("settings.quotaGuideNote")),1)])])]),g("div",qb,[g("button",Nb,O(f(P)("settings.save")),1)])],32),g("section",Lb,[g("div",Fb,[g("h2",null,O(f(P)("settings.subscription")),1),g("p",null,O(f(P)("settings.subscriptionHelp")),1)]),g("div",Vb,[g("div",Hb,[g("code",null,O(o.value.subscriptionURL),1),g("button",{onClick:b[5]||(b[5]=m=>f(y)(o.value.subscriptionURL))},[L(xe,{name:"copy"}),oe(O(f(P)("settings.copy")),1)])]),L(nr,{title:f(P)("settings.regenerate"),message:f(P)("settings.tokenConfirm"),destructive:"",onConfirm:f(h)},{default:k(()=>[g("button",Ub,O(f(P)("settings.regenerate")),1)]),_:1},8,["title","message","onConfirm"])])]),g("form",{class:"settings-section",onSubmit:b[9]||(b[9]=Ue((...m)=>f(p)&&f(p)(...m),["prevent"]))},[b[11]||(b[11]=g("input",{type:"text",name:"username",value:"admin",autocomplete:"username",hidden:"",readonly:""},null,-1)),g("div",jb,[g("h2",null,O(f(P)("settings.password")),1),g("p",null,O(f(P)("settings.passwordHelp")),1)]),g("div",Kb,[g("label",null,[oe(O(f(P)("settings.currentPassword")),1),L(Sn,{modelValue:s.value.currentPassword,"onUpdate:modelValue":b[6]||(b[6]=m=>s.value.currentPassword=m),"aria-label":f(P)("settings.currentPassword"),autocomplete:"current-password",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[oe(O(f(P)("settings.newPassword")),1),L(Sn,{modelValue:s.value.newPassword,"onUpdate:modelValue":b[7]||(b[7]=m=>s.value.newPassword=m),"aria-label":f(P)("settings.newPassword"),autocomplete:"new-password",minlength:"12",maxlength:"128",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[oe(O(f(P)("settings.confirmPassword")),1),L(Sn,{modelValue:s.value.confirm,"onUpdate:modelValue":b[8]||(b[8]=m=>s.value.confirm=m),"aria-label":f(P)("settings.confirmPassword"),autocomplete:"new-password",minlength:"12",maxlength:"128",required:""},null,8,["modelValue","aria-label"])]),g("button",Wb,O(f(P)("settings.changePassword")),1)])],32),g("section",zb,[b[12]||(b[12]=g("span",null,"HOST",-1)),g("strong",null,O(o.value.domain),1),b[13]||(b[13]=g("span",null,"PANEL",-1)),g("strong",null,"TCP/"+O(o.value.panelPort),1),b[14]||(b[14]=g("span",null,"DATA",-1)),b[15]||(b[15]=g("strong",null,"JSON / LOCAL",-1))])])):(I(),ae("div",Gb,O(f(P)("settings.loading")),1))}}),Jb={key:0,class:"loading-screen"},Xb={key:2,class:"shell"},Qb={class:"app-header"},Zb={class:"app-header-actions"},e1={class:"app-header-control github-control",href:"https://github.com/boltguo/sbm",target:"_blank",rel:"noopener noreferrer",title:"GitHub","aria-label":"GitHub"},t1=["title","aria-label"],n1={class:"sidebar"},o1=["aria-current"],r1=["aria-current"],s1=["aria-current"],i1=["aria-current"],l1={class:"content"},a1={class:"mobile-nav"},u1=["aria-current"],c1=["aria-current"],d1=["aria-current"],f1=["aria-current"],p1=J({__name:"App",setup(e){const t=F(!1),n=F(""),o=F("dashboard"),r=F(""),s=F(!1),i=F(!1);async function l(h){s.value=!1,r.value=h,await Le(),s.value=!0}async function a(){try{const h=await Yt("/api/me");n.value=h.username,Ws(h.csrfToken)}catch{n.value=""}finally{t.value=!0}}async function u(){try{await Tn("/api/logout")}catch{}i.value=!1,n.value="",o.value="dashboard"}async function c(h){o.value=h,await Le(),window.scrollTo({top:0,behavior:"auto"})}function d(h){i.value=!1,n.value=h}return Wv(()=>{n.value&&(i.value=!0),Ws(""),n.value="",o.value="dashboard"}),Re(a),(h,p)=>t.value?n.value?(I(),ae("div",Xb,[L(f(Av),{duration:2800,"swipe-direction":"right"},{default:k(()=>[g("header",Qb,[p[11]||(p[11]=g("div",{class:"app-header-brand","aria-hidden":"true"},[g("div",{class:"brand-mark"},[g("span",null,"SB"),g("b",null,"M")])],-1)),g("div",Zb,[g("button",{class:"app-header-control locale-control",onClick:p[0]||(p[0]=(...y)=>f(tr)&&f(tr)(...y))},O(f(P)("language")),1),g("a",e1,[L(xe,{name:"github"})]),g("button",{class:"app-header-control logout-control",title:f(P)("logout"),"aria-label":f(P)("logout"),onClick:u},[L(xe,{name:"logout"}),g("span",null,O(f(P)("logout")),1)],8,t1)])]),g("aside",n1,[p[12]||(p[12]=g("div",{class:"brand-mark"},[g("span",null,"SB"),g("b",null,"M")],-1)),g("nav",null,[g("button",{class:Ie({active:o.value==="dashboard"}),"aria-current":o.value==="dashboard"?"page":void 0,onClick:p[1]||(p[1]=y=>c("dashboard"))},[L(xe,{name:"grid"}),g("span",null,O(f(P)("overview")),1)],10,o1),g("button",{class:Ie({active:o.value==="protocols"}),"aria-current":o.value==="protocols"?"page":void 0,onClick:p[2]||(p[2]=y=>c("protocols"))},[L(xe,{name:"route"}),g("span",null,O(f(P)("protocols")),1)],10,r1),g("button",{class:Ie({active:o.value==="server"}),"aria-current":o.value==="server"?"page":void 0,onClick:p[3]||(p[3]=y=>c("server"))},[L(xe,{name:"server"}),g("span",null,O(f(P)("server")),1)],10,s1),g("button",{class:Ie({active:o.value==="settings"}),"aria-current":o.value==="settings"?"page":void 0,onClick:p[4]||(p[4]=y=>c("settings"))},[L(xe,{name:"sliders"}),g("span",null,O(f(P)("settings")),1)],10,i1)])]),g("main",l1,[o.value==="dashboard"?(I(),G(qy,{key:0,onToast:l})):o.value==="protocols"?(I(),G(ab,{key:1,onToast:l})):o.value==="server"?(I(),G(Pb,{key:2})):(I(),G(Yb,{key:3,onToast:l,onLoggedOut:u}))]),g("nav",a1,[g("button",{class:Ie({active:o.value==="dashboard"}),"aria-current":o.value==="dashboard"?"page":void 0,onClick:p[5]||(p[5]=y=>c("dashboard"))},[L(xe,{name:"grid"}),g("span",null,O(f(P)("overview")),1)],10,u1),g("button",{class:Ie({active:o.value==="protocols"}),"aria-current":o.value==="protocols"?"page":void 0,onClick:p[6]||(p[6]=y=>c("protocols"))},[L(xe,{name:"route"}),g("span",null,O(f(P)("protocols")),1)],10,c1),g("button",{class:Ie({active:o.value==="server"}),"aria-current":o.value==="server"?"page":void 0,onClick:p[7]||(p[7]=y=>c("server"))},[L(xe,{name:"server"}),g("span",null,O(f(P)("server")),1)],10,d1),g("button",{class:Ie({active:o.value==="settings"}),"aria-current":o.value==="settings"?"page":void 0,onClick:p[8]||(p[8]=y=>c("settings"))},[L(xe,{name:"sliders"}),g("span",null,O(f(P)("settings")),1)],10,f1)]),L(f(Nv),{open:s.value,"onUpdate:open":p[9]||(p[9]=y=>s.value=y),class:"toast data-[state=open]:animate-[toast-in_.18s_ease-out] data-[state=closed]:animate-[toast-out_.15s_ease-in]"},{default:k(()=>[L(xe,{name:"check"}),L(f(Fv),null,{default:k(()=>[oe(O(r.value),1)]),_:1})]),_:1},8,["open"]),L(f(Uv),{class:"fixed bottom-7 right-7 z-[80] m-0 flex w-[min(390px,calc(100vw-32px))] list-none flex-col gap-2 outline-none max-sm:bottom-20 max-sm:right-4"})]),_:1})])):(I(),G(Um,{key:1,expired:i.value,onLoggedIn:d},null,8,["expired"])):(I(),ae("div",Jb,[...p[10]||(p[10]=[g("div",{class:"brand-mark"},[g("span",null,"SB"),g("b",null,"M")],-1)])]))}});kf(p1).mount("#app"); +`);const X=x(v,C,k),H=e.getSymbolSize(v),z=new o(H);return p(z,v),y(z),S(z,v),m(z,C,0),v>=7&&E(z,v),_(z,X),isNaN(I)&&(I=i.getBestMask(z,m.bind(null,z,C))),i.applyMask(I,z),m(z,C,I),{modules:z,version:v,errorCorrectionLevel:C,maskPattern:I,segments:k}}return Qr.create=function(v,C){if(typeof v>"u"||v==="")throw new Error("No input text");let I=t.M,k,j;return typeof C<"u"&&(I=t.from(C.errorCorrectionLevel,t.M),k=u.from(C.version),j=i.from(C.maskPattern),C.toSJISFunc&&e.setToSJISFunction(C.toSJISFunc)),R(v,k,I,j)},Qr}var ms={},ys={},oa;function ac(){return oa||(oa=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(s){return[s,s]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,s=o.width&&o.width>=21?o.width:void 0,i=o.scale||4;return{width:s,scale:s?4:i,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const s=e.getScale(o,r);return Math.floor((o+r.margin*2)*s)},e.qrToImageData=function(o,r,s){const i=r.modules.size,l=r.modules.data,a=e.getScale(i,s),u=Math.floor((i+s.margin*2)*a),c=s.margin*a,d=[s.color.light,s.color.dark];for(let h=0;h=c&&p>=c&&h"u"&&(!i||!i.getContext)&&(a=i,i=void 0),i||(u=o()),a=t.getOptions(a);const c=t.getImageWidth(s.modules.size,a),d=u.getContext("2d"),h=d.createImageData(c,c);return t.qrToImageData(h.data,s,a),n(d,u,c),d.putImageData(h,0,0),u},e.renderToDataURL=function(s,i,l){let a=l;typeof a>"u"&&(!i||!i.getContext)&&(a=i,i=void 0),a||(a={});const u=e.render(s,i,a),c=a.type||"image/png",d=a.rendererOpts||{};return u.toDataURL(c,d.quality)}})(ms)),ms}var bs={},sa;function cy(){if(sa)return bs;sa=1;const e=ac();function t(r,s){const i=r.a/255,l=s+'="'+r.hex+'"';return i<1?l+" "+s+'-opacity="'+i.toFixed(2).slice(1)+'"':l}function n(r,s,i){let l=r+s;return typeof i<"u"&&(l+=" "+i),l}function o(r,s,i){let l="",a=0,u=!1,c=0;for(let d=0;d0&&h>0&&r[d-1]||(l+=u?n("M",h+i,.5+p+i):n("m",a,0),a=0,u=!1),h+1':"",p="',y='viewBox="0 0 '+d+" "+d+'"',E=''+h+p+` +`;return typeof l=="function"&&l(null,E),E},bs}var ia;function dy(){if(ia)return kn;ia=1;const e=Km(),t=ay(),n=uy(),o=cy();function r(s,i,l,a,u){const c=[].slice.call(arguments,1),d=c.length,h=typeof c[d-1]=="function";if(!h&&!e())throw new Error("Callback required as last argument");if(h){if(d<2)throw new Error("Too few arguments provided");d===2?(u=l,l=i,i=a=void 0):d===3&&(i.getContext&&typeof u>"u"?(u=a,a=void 0):(u=a,a=l,l=i,i=void 0))}else{if(d<1)throw new Error("Too few arguments provided");return d===1?(l=i,i=a=void 0):d===2&&!i.getContext&&(a=l,l=i,i=void 0),new Promise(function(p,y){try{const S=t.create(l,a);p(s(S,i,a))}catch(S){y(S)}})}try{const p=t.create(l,a);u(null,s(p,i,a))}catch(p){u(p)}}return kn.create=t.create,kn.toCanvas=r.bind(null,n.render),kn.toDataURL=r.bind(null,n.renderToDataURL),kn.toString=r.bind(null,function(s,i,l){return o.render(s,l)}),kn}var fy=dy();const uc=jm(fy),py={class:"mt-6 flex justify-end gap-2"},or=J({__name:"ConfirmAction",props:{title:{},message:{},destructive:{type:Boolean,default:!1}},emits:["confirm"],setup(e){return(t,n)=>(D(),G(f(hh),null,{default:B(()=>[L(f(yh),{"as-child":""},{default:B(()=>[Z(t.$slots,"default")]),_:3}),L(f(fh),null,{default:B(()=>[L(f(ch),{class:"fixed inset-0 z-[60] bg-[#151914]/35 backdrop-blur-[2px]"}),L(f(rh),{class:"fixed left-1/2 top-1/2 z-[61] w-[calc(100%-32px)] max-w-md -translate-x-1/2 -translate-y-1/2 border border-[var(--line)] bg-[var(--paper)] p-6 shadow-2xl outline-none"},{default:B(()=>[L(f(vh),{class:"font-[var(--display)] text-2xl font-extrabold"},{default:B(()=>[ne(O(e.title),1)]),_:1}),L(f(ah),{class:"mt-3 text-sm leading-6 text-[var(--muted)]"},{default:B(()=>[ne(O(e.message),1)]),_:1}),g("div",py,[L(f(ih),{class:"secondary"},{default:B(()=>[ne(O(f(T)("protocol.cancel")),1)]),_:1}),L(f(eh),{class:De(["primary",e.destructive?"!border-[var(--red)] !bg-[var(--red)] !text-white":""]),onClick:n[0]||(n[0]=o=>t.$emit("confirm"))},{default:B(()=>[ne(O(f(T)("confirm")),1)]),_:1},8,["class"])])]),_:1})]),_:1})]),_:3}))}}),hy={key:0,class:"page dashboard"},gy={class:"page-head"},vy={class:"head-actions"},my={class:"secondary"},yy=["disabled"],by={key:0,class:"alert danger"},wy={class:"status-strip"},_y={class:"version-cell"},Cy=["disabled","title","aria-label"],Sy={key:0,class:"version-update-dot"},Ey={class:"traffic-panel"},xy={class:"traffic-copy"},Ay={class:"traffic-kicker"},Ty=["disabled","title"],Py=["title"],Oy={class:"traffic-split"},Ry={class:"progress-track"},Iy={class:"subscription-card"},My={class:"sub-copy"},Dy={class:"copy-field"},ky={class:"qr-frame"},By=["src","alt"],$y={key:1,class:"loading"},qy=J({__name:"DashboardView",emits:["toast"],setup(e,{emit:t}){const n=t,o=F(null),r=F(null),s=F(!1),i=F(!1),l=F("");let a=0;const u=v=>{if(!v)return"0 B";const C=["B","KB","MB","GB","TB"],I=Math.min(Math.floor(Math.log(v)/Math.log(1024)),4);return`${(v/1024**I).toFixed(I>2?2:1)} ${C[I]}`},c=v=>!v||v.startsWith("0001")?T("dashboard.noReset"):new Intl.DateTimeFormat(tc(),{dateStyle:"medium",timeStyle:"short"}).format(new Date(v)),d=v=>v?v==="dev"||v.startsWith("v")?v:`v${v}`:"unknown",h=()=>r.value?.updateAvailable?T("dashboard.updateFound",{version:d(r.value.latestVersion)}):T("dashboard.checkUpdate"),p=()=>!o.value||o.value.trafficAudit.status==="unavailable"?T("dashboard.trafficSource"):`${T("dashboard.trafficSource")} · ${T(`dashboard.audit.${o.value.trafficAudit.status}`)}`,y=()=>{if(!o.value||o.value.trafficAudit.status==="unavailable")return T("dashboard.audit.unavailableHelp");const v=o.value.trafficAudit;return v.status==="collecting"?T("dashboard.audit.collectingHelp",{amount:u(v.proxyBytes)}):T("dashboard.audit.detail",{interface:v.interface||"WAN",proxy:u(v.proxyBytes),receive:u(v.receiveBytes),transmit:u(v.transmitBytes)})},S=xi(v=>n("toast",v));async function E(){const v=await Yt("/api/dashboard");(!o.value||o.value.subscriptionURL!==v.subscriptionURL)&&(l.value=await uc.toDataURL(v.subscriptionURL,{width:256,margin:1,color:{dark:"#111712",light:"#f4f1e8"}})),o.value=v}const m=()=>{E().catch(()=>{})},_=S(async()=>{if(!i.value){i.value=!0;try{await E(),n("toast",T("dashboard.refreshed"))}finally{i.value=!1}}}),x=S(async v=>{await navigator.clipboard.writeText(v),n("toast",T("dashboard.copyDone"))}),w=S(async()=>{await Tn("/api/core/restart"),n("toast",T("dashboard.restartDone")),await E()}),R=S(async()=>{await Tn("/api/traffic/reset"),n("toast",T("dashboard.resetDone")),await E()});async function P(v=!0){s.value=!0;try{r.value=await Yt("/api/update"),v&&n("toast",r.value.updateAvailable?T("dashboard.updateFound",{version:d(r.value.latestVersion)}):T("dashboard.updateCurrent"))}catch{v&&n("toast",T("dashboard.updateFailed"))}finally{s.value=!1}}return Re(()=>{m(),P(!1),a=window.setInterval(m,5e3)}),br(()=>clearInterval(a)),(v,C)=>o.value?(D(),ae("div",hy,[g("header",gy,[g("div",null,[C[3]||(C[3]=g("span",{class:"eyebrow"},"OVERVIEW / LIVE",-1)),g("h1",null,O(f(T)("dashboard.title")),1)]),g("div",vy,[L(or,{title:f(T)("dashboard.reset"),message:f(T)("dashboard.resetConfirm"),onConfirm:f(R)},{default:B(()=>[g("button",my,[L(xe,{name:"refresh"}),ne(O(f(T)("dashboard.reset")),1)])]),_:1},8,["title","message","onConfirm"]),L(or,{title:f(T)("dashboard.restart"),message:f(T)("dashboard.restartConfirm"),onConfirm:f(w)},{default:B(()=>[g("button",{class:"primary",disabled:o.value.quotaExceeded},[L(xe,{name:"power"}),ne(O(f(T)("dashboard.restart")),1)],8,yy)]),_:1},8,["title","message","onConfirm"])])]),o.value.quotaExceeded?(D(),ae("div",by,[g("strong",null,O(f(T)("dashboard.exceeded")),1),g("span",null,O(f(T)("dashboard.exceededHelp")),1)])):Ce("",!0),g("section",wy,[g("div",null,[g("span",{class:De(["status-dot",o.value.active?"online":"offline"])},null,2),C[4]||(C[4]=g("small",null,"CORE STATUS",-1)),g("strong",null,O(o.value.active?f(T)("dashboard.running"):f(T)("dashboard.stopped")),1)]),g("div",_y,[C[5]||(C[5]=g("small",null,"SBM VERSION",-1)),g("strong",null,O(d(o.value.panelVersion)),1),g("button",{class:De(["version-check",{checking:s.value}]),disabled:s.value,title:h(),"aria-label":h(),onClick:C[0]||(C[0]=I=>P())},[L(xe,{name:"refresh"}),r.value?.updateAvailable?(D(),ae("span",Sy)):Ce("",!0)],10,Cy)]),g("div",null,[C[6]||(C[6]=g("small",null,"SING-BOX VERSION",-1)),g("strong",null,O(o.value.coreVersion),1)]),g("div",null,[C[7]||(C[7]=g("small",null,"PERIOD START",-1)),g("strong",null,O(c(o.value.periodStartedAt)),1)]),g("div",null,[C[8]||(C[8]=g("small",null,"NEXT RESET",-1)),g("strong",null,O(c(o.value.nextResetAt)),1)])]),g("section",Ey,[g("div",xy,[g("div",Ay,[C[9]||(C[9]=g("span",{class:"eyebrow"},"SHARED TRAFFIC POOL",-1)),g("button",{class:De(["traffic-refresh",{refreshing:i.value}]),disabled:i.value,title:f(T)("dashboard.refreshHelp"),onClick:C[1]||(C[1]=(...I)=>f(_)&&f(_)(...I))},[L(xe,{name:"refresh"}),ne(O(f(T)("dashboard.refresh")),1)],10,Ty)]),g("h2",null,O(u(o.value.used)),1),g("p",null,O(o.value.totalBytes?f(T)("dashboard.totalRemaining",{total:u(o.value.totalBytes),remaining:u(o.value.remaining)}):f(T)("dashboard.unlimitedHelp")),1),g("small",{class:De(["traffic-source",{warning:o.value.trafficAudit.status==="different",pending:o.value.trafficAudit.status==="collecting"||o.value.trafficAudit.status==="unavailable"}]),title:y()},[C[10]||(C[10]=g("i",null,null,-1)),ne(O(p()),1)],10,Py)]),g("div",{class:"traffic-ring",style:st({"--progress":`${o.value.totalBytes?o.value.progress:0}%`})},[g("div",null,[g("b",null,O(o.value.totalBytes?Math.round(o.value.progress):"∞"),1),g("small",null,O(o.value.totalBytes?"%":f(T)("dashboard.unlimited")),1)])],4),g("div",Oy,[g("div",null,[C[11]||(C[11]=g("span",null,"↑",-1)),g("p",null,O(f(T)("dashboard.upload")),1),g("strong",null,O(u(o.value.upload)),1)]),g("div",null,[C[12]||(C[12]=g("span",null,"↓",-1)),g("p",null,O(f(T)("dashboard.download")),1),g("strong",null,O(u(o.value.download)),1)])]),g("div",Ry,[g("i",{style:st({width:o.value.totalBytes?`${o.value.progress}%`:"0%"})},null,4)])]),g("section",Iy,[g("div",My,[C[13]||(C[13]=g("span",{class:"eyebrow"},"ONE SUBSCRIPTION / ALL ENABLED INBOUNDS",-1)),g("h2",null,O(f(T)("dashboard.subscription")),1),g("p",null,O(f(T)("dashboard.subscriptionHelp")),1),g("div",Dy,[g("code",null,O(o.value.subscriptionURL),1),g("button",{onClick:C[2]||(C[2]=I=>f(x)(o.value.subscriptionURL))},[L(xe,{name:"copy"}),ne(O(f(T)("dashboard.copy")),1)])]),g("small",null,O(f(T)("dashboard.secretHelp")),1)]),g("div",ky,[g("img",{src:l.value,alt:f(T)("dashboard.qrAlt")},null,8,By),C[14]||(C[14]=g("span",null,"SCAN TO IMPORT",-1))])])])):(D(),ae("div",$y,O(f(T)("dashboard.loading")),1))}}),Ny={class:"flex items-center justify-between border-b border-[var(--line)] px-6 py-5"},ws=J({__name:"Modal",props:{title:{},description:{},wide:{type:Boolean}},emits:["close"],setup(e,{emit:t}){const n=t;return(o,r)=>(D(),G(f(Iu),{open:!0,"onUpdate:open":r[0]||(r[0]=s=>!s&&n("close"))},{default:B(()=>[L(f(Yp),null,{default:B(()=>[L(f(Nu),{class:"fixed inset-0 z-50 bg-[#151914]/35 backdrop-blur-[2px]"}),L(f($u),{class:De(["fixed bottom-0 left-1/2 z-50 max-h-[90vh] w-full -translate-x-1/2 overflow-y-auto border border-[var(--line)] bg-[var(--paper)] shadow-[0_12px_45px_rgba(20,25,20,.18)] outline-none sm:bottom-auto sm:top-1/2 sm:-translate-y-1/2",e.wide?"sm:max-w-[760px]":"sm:max-w-[520px]"])},{default:B(()=>[g("header",Ny,[g("div",null,[r[1]||(r[1]=g("span",{class:"eyebrow"},"CONFIGURATION",-1)),L(f(Lu),{class:"mt-1 font-[var(--display)] text-3xl font-extrabold"},{default:B(()=>[ne(O(e.title),1)]),_:1}),L(f(qu),{class:"sr-only"},{default:B(()=>[ne(O(e.description||e.title),1)]),_:1})]),L(f(gi),{class:"icon-button","aria-label":f(T)("close")},{default:B(()=>[L(xe,{name:"x"})]),_:1},8,["aria-label"])]),Z(o.$slots,"default")]),_:3},8,["class"])]),_:3})]),_:3}))}}),lo=J({__name:"SelectControl",props:{modelValue:{},options:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,r=W(()=>n.options.find(i=>i.value===n.modelValue)?.label||"");function s(i){o("update:modelValue",String(i??""))}return(i,l)=>(D(),G(f(Ng),{"model-value":e.modelValue,"onUpdate:modelValue":s},{default:B(()=>[L(f(pv),{class:"flex min-h-11 w-full items-center justify-between border border-[var(--line)] bg-white/70 px-3 text-left outline-none focus:border-[var(--ink)] focus:shadow-[inset_3px_0_var(--signal)]"},{default:B(()=>[L(f(gv),null,{default:B(()=>[ne(O(r.value),1)]),_:1}),L(f(nv),{class:"text-[var(--muted)]","aria-hidden":"true"},{default:B(()=>[...l[0]||(l[0]=[ne("⌄",-1)])]),_:1})]),_:1}),L(f(dv),null,{default:B(()=>[L(f(ev),{position:"popper","side-offset":4,class:"z-[70] min-w-[var(--reka-select-trigger-width)] border border-[var(--line)] bg-[var(--paper)] p-1 shadow-xl"},{default:B(()=>[L(f(mv),null,{default:B(()=>[(D(!0),ae(Ae,null,Co(e.options,a=>(D(),G(f(sv),{key:a.value,value:a.value,class:"relative flex cursor-default select-none items-center px-8 py-2 text-sm outline-none data-[highlighted]:bg-[var(--signal)]"},{default:B(()=>[L(f(lv),{class:"absolute left-2"},{default:B(()=>[...l[1]||(l[1]=[ne("✓",-1)])]),_:1}),L(f(uv),null,{default:B(()=>[ne(O(a.label),1)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"]))}}),Ly={class:"page"},Fy={class:"page-head"},Vy={class:"protocol-grid"},Hy={class:"protocol-top"},Uy={class:"protocol-glyph"},jy={class:"pill"},Ky={class:"endpoint"},Wy={key:0},zy={key:1},Gy={class:"card-actions"},Yy=["onClick"],Jy=["aria-label","onClick"],Xy=["aria-label","onClick"],Qy=["aria-label"],Zy={key:0,class:"alert warning"},eb={class:"modal-actions"},tb={class:"primary"},nb={key:0,class:"span-two"},ob={class:"alert subtle span-two"},rb={class:"modal-actions span-two"},sb={class:"primary"},ib={class:"large-qr"},lb=["src","alt"],ab=J({__name:"ProtocolsView",emits:["toast"],setup(e,{emit:t}){const n=t,o=F([]),r=F(null),s=F(!1),i=F(""),l=F(null),a=F({type:"vless-reality",name:T("protocol.defaultName"),port:8443}),u=W(()=>o.value.some(P=>P.type===a.value.type)),c=[{value:"vless-reality",label:"VLESS + Vision + REALITY"},{value:"hysteria2",label:"Hysteria2"}],d=W(()=>[{value:"none",label:T("protocol.off")},{value:"salamander",label:"Salamander"}]),h=xi(P=>n("toast",P)),p=h(async()=>{o.value=await Yt("/api/inbounds")}),y=h(async()=>{await Tn("/api/inbounds",a.value),s.value=!1,n("toast",T("protocol.created")),await p()}),S=h(async()=>{r.value&&(await zs(`/api/inbounds/${r.value.id}`,r.value),r.value=null,n("toast",T("protocol.saved")),await p())}),E=h(async P=>{await zs(`/api/inbounds/${P.id}`,{...P,enabled:!P.enabled,link:void 0,network:void 0}),n("toast",P.enabled?T("protocol.disabled"):T("protocol.enabled")),await p()}),m=h(async P=>{await zv(`/api/inbounds/${P.id}`),n("toast",T("protocol.deleted")),await p()}),_=h(async P=>{await navigator.clipboard.writeText(P),n("toast",T("protocol.linkCopied"))}),x=h(async P=>{l.value=P,i.value=await uc.toDataURL(P.link,{width:320,margin:2,color:{dark:"#111712",light:"#f4f1e8"}})});function w(P){r.value=JSON.parse(JSON.stringify(P)),delete r.value.link,delete r.value.network}function R(){a.value={type:"vless-reality",name:T("protocol.defaultName"),port:8443},s.value=!0}return Re(p),(P,v)=>(D(),ae("div",Ly,[g("header",Fy,[g("div",null,[v[20]||(v[20]=g("span",{class:"eyebrow"},"INBOUND ROUTES",-1)),g("h1",null,O(f(T)("protocol.title")),1),g("p",null,O(f(T)("protocol.help")),1)]),g("button",{class:"primary",onClick:R},[L(xe,{name:"plus"}),ne(O(f(T)("protocol.add")),1)])]),g("div",Vy,[(D(!0),ae(Ae,null,Co(o.value,C=>(D(),ae("article",{key:C.id,class:De(["protocol-card",{disabled:!C.enabled}])},[g("div",Hy,[g("div",Uy,O(C.type==="vless-reality"?"VL":"H2"),1),g("div",null,[g("span",jy,O(C.type==="vless-reality"?"VLESS · REALITY":"HYSTERIA2"),1),g("h2",null,O(C.name),1)]),L(f(_v),{"model-value":C.enabled,class:"relative h-6 w-11 rounded-full border border-[var(--ink)] bg-transparent p-[3px] data-[state=checked]:bg-[var(--signal)]","aria-label":C.enabled?f(T)("protocol.disable"):f(T)("protocol.enable"),"onUpdate:modelValue":I=>f(E)(C)},{default:B(()=>[L(f(Sv),{class:"block size-4 rounded-full bg-[var(--muted)] transition-transform data-[state=checked]:translate-x-[18px] data-[state=checked]:bg-[var(--ink)]"})]),_:1},8,["model-value","aria-label","onUpdate:modelValue"])]),g("div",Ky,[g("span",null,O(C.network.toUpperCase()),1),g("code",null,O(C.port),1),g("b",null,O(C.enabled?"ACTIVE":"STOPPED"),1)]),C.vless?(D(),ae("dl",Wy,[g("div",null,[v[21]||(v[21]=g("dt",null,"SNI",-1)),g("dd",null,O(C.vless.sni),1)]),v[23]||(v[23]=g("div",null,[g("dt",null,"FLOW"),g("dd",null,"XTLS Vision")],-1)),g("div",null,[v[22]||(v[22]=g("dt",null,"SHORT ID",-1)),g("dd",null,O(C.vless.shortId),1)])])):(D(),ae("dl",zy,[v[25]||(v[25]=g("div",null,[g("dt",null,"TLS"),g("dd",null,"Server certificate")],-1)),v[26]||(v[26]=g("div",null,[g("dt",null,"ALPN"),g("dd",null,"h3")],-1)),g("div",null,[v[24]||(v[24]=g("dt",null,"OBFS",-1)),g("dd",null,O(C.hysteria2?.obfs||f(T)("protocol.off")),1)])])),g("div",Gy,[g("button",{onClick:I=>f(_)(C.link)},[L(xe,{name:"copy"}),ne(O(f(T)("protocol.copyLink")),1)],8,Yy),g("button",{"aria-label":f(T)("protocol.showQr"),onClick:I=>f(x)(C)},"QR",8,Jy),g("button",{"aria-label":f(T)("protocol.edit"),onClick:I=>w(C)},[L(xe,{name:"edit"})],8,Xy),L(or,{title:C.name,message:f(T)("protocol.deleteConfirm",{name:C.name}),destructive:"",onConfirm:I=>f(m)(C)},{default:B(()=>[g("button",{class:"destructive","aria-label":f(T)("protocol.delete")},[L(xe,{name:"trash"})],8,Qy)]),_:1},8,["title","message","onConfirm"])])],2))),128)),g("button",{class:"add-card",onClick:R},[L(xe,{name:"plus"}),g("strong",null,O(f(T)("protocol.addAnother")),1),g("span",null,O(f(T)("protocol.addAnotherHelp")),1)])]),s.value?(D(),G(ws,{key:0,title:f(T)("protocol.newTitle"),description:f(T)("protocol.addAnotherHelp"),onClose:v[5]||(v[5]=C=>s.value=!1)},{default:B(()=>[g("form",{class:"form-grid",onSubmit:v[4]||(v[4]=Ue((...C)=>f(y)&&f(y)(...C),["prevent"]))},[g("label",null,[ne(O(f(T)("protocol.type")),1),L(lo,{modelValue:a.value.type,"onUpdate:modelValue":v[0]||(v[0]=C=>a.value.type=C),options:c},null,8,["modelValue"])]),u.value?(D(),ae("div",Zy,O(f(T)("protocol.duplicate")),1)):Ce("",!0),g("label",null,[ne(O(f(T)("protocol.name")),1),nt(g("input",{"onUpdate:modelValue":v[1]||(v[1]=C=>a.value.name=C),maxlength:"80",required:""},null,512),[[pt,a.value.name,void 0,{trim:!0}]])]),g("label",null,[ne(O(f(T)("protocol.port")),1),nt(g("input",{"onUpdate:modelValue":v[2]||(v[2]=C=>a.value.port=C),type:"number",min:"1",max:"65535",required:""},null,512),[[pt,a.value.port,void 0,{number:!0}]]),g("small",null,O(f(T)("protocol.portHelp",{network:a.value.type==="vless-reality"?"TCP":"UDP"})),1)]),g("div",eb,[g("button",{type:"button",class:"secondary",onClick:v[3]||(v[3]=C=>s.value=!1)},O(f(T)("protocol.cancel")),1),g("button",tb,O(f(T)("protocol.generate")),1)])],32)]),_:1},8,["title","description"])):Ce("",!0),r.value?(D(),G(ws,{key:1,title:f(T)("protocol.editTitle"),description:f(T)("protocol.firewall"),wide:"",onClose:v[18]||(v[18]=C=>r.value=null)},{default:B(()=>[g("form",{class:"form-grid two",onSubmit:v[17]||(v[17]=Ue((...C)=>f(S)&&f(S)(...C),["prevent"]))},[g("label",null,[ne(O(f(T)("protocol.name")),1),nt(g("input",{"onUpdate:modelValue":v[6]||(v[6]=C=>r.value.name=C),maxlength:"80",required:""},null,512),[[pt,r.value.name,void 0,{trim:!0}]])]),g("label",null,[ne(O(f(T)("protocol.port")),1),nt(g("input",{"onUpdate:modelValue":v[7]||(v[7]=C=>r.value.port=C),type:"number",min:"1",max:"65535",required:""},null,512),[[pt,r.value.port,void 0,{number:!0}]])]),r.value.vless?(D(),ae(Ae,{key:0},[g("label",null,[v[27]||(v[27]=ne("UUID",-1)),nt(g("input",{"onUpdate:modelValue":v[8]||(v[8]=C=>r.value.vless.uuid=C),required:""},null,512),[[pt,r.value.vless.uuid]])]),g("label",null,[v[28]||(v[28]=ne("Reality SNI",-1)),nt(g("input",{"onUpdate:modelValue":v[9]||(v[9]=C=>r.value.vless.sni=C),required:""},null,512),[[pt,r.value.vless.sni,void 0,{trim:!0}]])]),g("label",null,[ne(O(f(T)("protocol.privateKey")),1),L(Sn,{modelValue:r.value.vless.privateKey,"onUpdate:modelValue":v[10]||(v[10]=C=>r.value.vless.privateKey=C),"aria-label":f(T)("protocol.privateKey"),autocomplete:"off",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[ne(O(f(T)("protocol.publicKey")),1),nt(g("input",{"onUpdate:modelValue":v[11]||(v[11]=C=>r.value.vless.publicKey=C),required:""},null,512),[[pt,r.value.vless.publicKey]])]),g("label",null,[v[29]||(v[29]=ne("Short ID",-1)),nt(g("input",{"onUpdate:modelValue":v[12]||(v[12]=C=>r.value.vless.shortId=C),required:""},null,512),[[pt,r.value.vless.shortId]])])],64)):Ce("",!0),r.value.hysteria2?(D(),ae(Ae,{key:1},[g("label",null,[ne(O(f(T)("protocol.password")),1),L(Sn,{modelValue:r.value.hysteria2.password,"onUpdate:modelValue":v[13]||(v[13]=C=>r.value.hysteria2.password=C),"aria-label":f(T)("protocol.password"),autocomplete:"off",minlength:"8",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[ne(O(f(T)("protocol.obfs")),1),L(lo,{"model-value":r.value.hysteria2.obfs||"none",options:d.value,"onUpdate:modelValue":v[14]||(v[14]=C=>{r.value?.hysteria2&&(r.value.hysteria2.obfs=C==="none"?"":C)})},null,8,["model-value","options"])]),r.value.hysteria2.obfs?(D(),ae("label",nb,[ne(O(f(T)("protocol.obfsPassword")),1),L(Sn,{modelValue:r.value.hysteria2.obfsPassword,"onUpdate:modelValue":v[15]||(v[15]=C=>r.value.hysteria2.obfsPassword=C),"aria-label":f(T)("protocol.obfsPassword"),autocomplete:"off",minlength:"8",required:""},null,8,["modelValue","aria-label"])])):Ce("",!0)],64)):Ce("",!0),g("div",ob,O(f(T)("protocol.firewall")),1),g("div",rb,[g("button",{type:"button",class:"secondary",onClick:v[16]||(v[16]=C=>r.value=null)},O(f(T)("protocol.cancel")),1),g("button",sb,O(f(T)("protocol.apply")),1)])],32)]),_:1},8,["title","description"])):Ce("",!0),l.value?(D(),G(ws,{key:2,title:l.value.name,description:f(T)("protocol.qrHelp"),onClose:v[19]||(v[19]=C=>l.value=null)},{default:B(()=>[g("div",ib,[g("img",{src:i.value,alt:f(T)("protocol.qrAlt")},null,8,lb),g("p",null,O(f(T)("protocol.qrHelp")),1)])]),_:1},8,["title","description"])):Ce("",!0)]))}}),ub={key:0,class:"page server-page"},cb={class:"page-head"},db={class:"server-updated"},fb={class:"resource-grid"},pb={class:"resource-card"},hb={class:"resource-head"},gb={class:"resource-meter"},vb={class:"resource-card"},mb={class:"resource-head"},yb={class:"resource-meter"},bb={class:"resource-card"},wb={class:"resource-head"},_b={class:"resource-meter"},Cb={class:"host-grid"},Sb={class:"load-card"},Eb={class:"load-values"},xb={class:"uptime-card"},Ab={class:"system-facts"},Tb={key:1,class:"loading"},Pb=J({__name:"ServerView",setup(e){const t=F(null);let n=0;const o=l=>{if(!l)return"0 B";const a=["B","KB","MB","GB","TB"],u=Math.min(Math.floor(Math.log(l)/Math.log(1024)),a.length-1);return`${(l/1024**u).toFixed(u>2?1:0)} ${a[u]}`},r=l=>{const a=Math.floor(l/86400),u=Math.floor(l%86400/3600),c=Math.floor(l%3600/60);return a?T("server.days",{days:a,hours:u}):T("server.hours",{hours:u,minutes:c})},s=l=>new Intl.DateTimeFormat(tc(),{timeStyle:"medium"}).format(new Date(l)),i=()=>{Yt("/api/server").then(l=>{t.value=l}).catch(()=>{})};return Re(()=>{i(),n=window.setInterval(i,5e3)}),br(()=>clearInterval(n)),(l,a)=>t.value?(D(),ae("div",ub,[g("header",cb,[g("div",null,[a[0]||(a[0]=g("span",{class:"eyebrow"},"HOST / LIVE",-1)),g("h1",null,O(f(T)("server.title")),1),g("p",null,O(f(T)("server.help")),1)]),g("small",db,O(f(T)("server.updated",{time:s(t.value.collectedAt)})),1)]),g("section",fb,[g("article",pb,[g("div",hb,[g("span",null,O(f(T)("server.cpu")),1),g("strong",null,O(t.value.cpuPercent.toFixed(1))+"%",1)]),g("div",gb,[g("i",{style:st({width:`${t.value.cpuPercent}%`})},null,4)]),g("footer",null,[g("span",null,O(f(T)("server.cores",{count:t.value.cpuCores})),1),g("code",null,O(t.value.architecture),1)])]),g("article",vb,[g("div",mb,[g("span",null,O(f(T)("server.memory")),1),g("strong",null,O(t.value.memoryPercent.toFixed(1))+"%",1)]),g("div",yb,[g("i",{style:st({width:`${t.value.memoryPercent}%`})},null,4)]),g("footer",null,[g("span",null,O(f(T)("server.usedOf",{used:o(t.value.memoryUsed),total:o(t.value.memoryTotal)})),1)])]),g("article",bb,[g("div",wb,[g("span",null,O(f(T)("server.disk")),1),g("strong",null,O(t.value.diskPercent.toFixed(1))+"%",1)]),g("div",_b,[g("i",{style:st({width:`${t.value.diskPercent}%`})},null,4)]),g("footer",null,[g("span",null,O(f(T)("server.usedOf",{used:o(t.value.diskUsed),total:o(t.value.diskTotal)})),1)])])]),g("section",Cb,[g("article",Sb,[g("div",null,[a[1]||(a[1]=g("span",{class:"eyebrow"},"LOAD AVERAGE",-1)),g("h2",null,O(f(T)("server.load")),1),g("p",null,O(f(T)("server.loadHelp")),1)]),g("div",Eb,[g("div",null,[g("strong",null,O(t.value.load1.toFixed(2)),1),a[2]||(a[2]=g("small",null,"1 MIN",-1))]),g("div",null,[g("strong",null,O(t.value.load5.toFixed(2)),1),a[3]||(a[3]=g("small",null,"5 MIN",-1))]),g("div",null,[g("strong",null,O(t.value.load15.toFixed(2)),1),a[4]||(a[4]=g("small",null,"15 MIN",-1))])])]),g("article",xb,[a[5]||(a[5]=g("span",{class:"eyebrow"},"UPTIME",-1)),g("h2",null,O(r(t.value.uptimeSeconds)),1),g("p",null,O(f(T)("server.uptime")),1)])]),g("section",Ab,[g("div",null,[g("span",null,O(f(T)("server.hostname")),1),g("strong",null,O(t.value.hostname||"—"),1)]),g("div",null,[g("span",null,O(f(T)("server.system")),1),g("strong",null,O(t.value.os||"—"),1)]),g("div",null,[g("span",null,O(f(T)("server.kernel")),1),g("strong",null,O(t.value.kernel||"—"),1)]),g("div",null,[g("span",null,O(f(T)("server.arch")),1),g("strong",null,O(t.value.architecture),1)])])])):(D(),ae("div",Tb,O(f(T)("server.loading")),1))}}),Ob={key:0,class:"page settings-page"},Rb={class:"page-head"},Ib={class:"settings-section"},Mb={class:"section-intro"},Db={class:"settings-fields"},kb={key:0},Bb={key:1},$b={class:"quota-guide"},qb={class:"settings-section"},Nb={class:"section-intro"},Lb={class:"settings-fields"},Fb={class:"span-two"},Vb={class:"quota-guide"},Hb={class:"save-row"},Ub={class:"primary"},jb={class:"settings-section"},Kb={class:"section-intro"},Wb={class:"settings-fields full-fields"},zb={class:"copy-field"},Gb={class:"secondary danger-outline"},Yb={class:"section-intro"},Jb={class:"settings-fields"},Xb={class:"secondary self-end"},Qb={class:"machine-info"},Zb={key:1,class:"loading"},e1=J({__name:"SettingsView",emits:["toast","loggedOut"],setup(e,{emit:t}){const n=t,o=F(null),r=F(0),s=F({currentPassword:"",newPassword:"",confirm:""}),i=["Asia/Shanghai","Asia/Hong_Kong","Asia/Tokyo","Europe/London","Europe/Berlin","America/New_York","America/Los_Angeles","UTC","Local"],l=W(()=>[{value:"none",label:T("settings.noReset")},{value:"monthly",label:T("settings.monthly")}]),a=W(()=>[{value:"auto",label:T("settings.outboundAuto")},{value:"prefer_ipv4",label:T("settings.outboundPreferIPv4")},{value:"prefer_ipv6",label:T("settings.outboundPreferIPv6")},{value:"ipv4_only",label:T("settings.outboundIPv4Only")},{value:"ipv6_only",label:T("settings.outboundIPv6Only")}]),u=i.map(E=>({value:E,label:E})),c=xi(E=>n("toast",E)),d=c(async()=>{o.value=await Yt("/api/settings"),r.value=Math.round(o.value.totalBytes/1024**3*100)/100}),h=c(async()=>{o.value&&(o.value.totalBytes=Math.round(r.value*1024**3),await zs("/api/settings",{totalBytes:o.value.totalBytes,reset:o.value.reset,outboundStrategy:o.value.outboundStrategy}),n("toast",T("settings.saved")))}),p=c(async()=>{const E=await Tn("/api/settings/token");o.value&&(o.value.subscriptionURL=E.subscriptionURL),n("toast",T("settings.tokenDone"))}),y=c(async()=>{if(s.value.newPassword!==s.value.confirm){n("toast",T("settings.passwordMismatch"));return}await Tn("/api/settings/password",{currentPassword:s.value.currentPassword,newPassword:s.value.newPassword}),n("toast",T("settings.passwordDone")),n("loggedOut")}),S=c(async E=>{await navigator.clipboard.writeText(E),n("toast",T("copied"))});return Re(d),(E,m)=>o.value?(D(),ae("div",Ob,[g("header",Rb,[g("div",null,[m[11]||(m[11]=g("span",{class:"eyebrow"},"SYSTEM PARAMETERS",-1)),g("h1",null,O(f(T)("settings.title")),1),g("p",null,O(f(T)("settings.help")),1)])]),g("form",{class:"settings-stack",onSubmit:m[5]||(m[5]=Ue((..._)=>f(h)&&f(h)(..._),["prevent"]))},[g("section",Ib,[g("div",Mb,[g("h2",null,O(f(T)("settings.traffic")),1),g("p",null,O(f(T)("settings.trafficHelp")),1)]),g("div",Db,[g("label",null,[ne(O(f(T)("settings.total")),1),nt(g("input",{"onUpdate:modelValue":m[0]||(m[0]=_=>r.value=_),type:"number",min:"0",step:"0.1"},null,512),[[pt,r.value,void 0,{number:!0}]])]),g("label",null,[ne(O(f(T)("settings.autoReset")),1),L(lo,{modelValue:o.value.reset.mode,"onUpdate:modelValue":m[1]||(m[1]=_=>o.value.reset.mode=_),options:l.value},null,8,["modelValue","options"])]),o.value.reset.mode==="monthly"?(D(),ae("label",kb,[ne(O(f(T)("settings.day")),1),nt(g("input",{"onUpdate:modelValue":m[2]||(m[2]=_=>o.value.reset.day=_),type:"number",min:"1",max:"28"},null,512),[[pt,o.value.reset.day,void 0,{number:!0}]])])):Ce("",!0),o.value.reset.mode==="monthly"?(D(),ae("label",Bb,[ne(O(f(T)("settings.timezone")),1),L(lo,{modelValue:o.value.reset.timezone,"onUpdate:modelValue":m[3]||(m[3]=_=>o.value.reset.timezone=_),options:f(u)},null,8,["modelValue","options"])])):Ce("",!0),g("aside",$b,[g("strong",null,O(f(T)("settings.quotaGuideTitle")),1),g("p",null,O(f(T)("settings.quotaGuideBidirectional")),1),g("p",null,O(f(T)("settings.quotaGuideEgress")),1),g("small",null,O(f(T)("settings.quotaGuideNote")),1)])])]),g("section",qb,[g("div",Nb,[g("h2",null,O(f(T)("settings.outbound")),1),g("p",null,O(f(T)("settings.outboundHelp")),1)]),g("div",Lb,[g("label",Fb,[ne(O(f(T)("settings.outboundStrategy")),1),L(lo,{modelValue:o.value.outboundStrategy,"onUpdate:modelValue":m[4]||(m[4]=_=>o.value.outboundStrategy=_),options:a.value},null,8,["modelValue","options"])]),g("aside",Vb,[g("strong",null,O(f(T)("settings.outboundGuideTitle")),1),g("p",null,O(f(T)("settings.outboundGuidePrefer")),1),g("small",null,O(f(T)("settings.outboundGuideOnly")),1)])])]),g("div",Hb,[g("button",Ub,O(f(T)("settings.save")),1)])],32),g("section",jb,[g("div",Kb,[g("h2",null,O(f(T)("settings.subscription")),1),g("p",null,O(f(T)("settings.subscriptionHelp")),1)]),g("div",Wb,[g("div",zb,[g("code",null,O(o.value.subscriptionURL),1),g("button",{onClick:m[6]||(m[6]=_=>f(S)(o.value.subscriptionURL))},[L(xe,{name:"copy"}),ne(O(f(T)("settings.copy")),1)])]),L(or,{title:f(T)("settings.regenerate"),message:f(T)("settings.tokenConfirm"),destructive:"",onConfirm:f(p)},{default:B(()=>[g("button",Gb,O(f(T)("settings.regenerate")),1)]),_:1},8,["title","message","onConfirm"])])]),g("form",{class:"settings-section",onSubmit:m[10]||(m[10]=Ue((..._)=>f(y)&&f(y)(..._),["prevent"]))},[m[12]||(m[12]=g("input",{type:"text",name:"username",value:"admin",autocomplete:"username",hidden:"",readonly:""},null,-1)),g("div",Yb,[g("h2",null,O(f(T)("settings.password")),1),g("p",null,O(f(T)("settings.passwordHelp")),1)]),g("div",Jb,[g("label",null,[ne(O(f(T)("settings.currentPassword")),1),L(Sn,{modelValue:s.value.currentPassword,"onUpdate:modelValue":m[7]||(m[7]=_=>s.value.currentPassword=_),"aria-label":f(T)("settings.currentPassword"),autocomplete:"current-password",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[ne(O(f(T)("settings.newPassword")),1),L(Sn,{modelValue:s.value.newPassword,"onUpdate:modelValue":m[8]||(m[8]=_=>s.value.newPassword=_),"aria-label":f(T)("settings.newPassword"),autocomplete:"new-password",minlength:"12",maxlength:"128",required:""},null,8,["modelValue","aria-label"])]),g("label",null,[ne(O(f(T)("settings.confirmPassword")),1),L(Sn,{modelValue:s.value.confirm,"onUpdate:modelValue":m[9]||(m[9]=_=>s.value.confirm=_),"aria-label":f(T)("settings.confirmPassword"),autocomplete:"new-password",minlength:"12",maxlength:"128",required:""},null,8,["modelValue","aria-label"])]),g("button",Xb,O(f(T)("settings.changePassword")),1)])],32),g("section",Qb,[m[13]||(m[13]=g("span",null,"HOST",-1)),g("strong",null,O(o.value.domain),1),m[14]||(m[14]=g("span",null,"PANEL",-1)),g("strong",null,"TCP/"+O(o.value.panelPort),1),m[15]||(m[15]=g("span",null,"DATA",-1)),m[16]||(m[16]=g("strong",null,"JSON / LOCAL",-1))])])):(D(),ae("div",Zb,O(f(T)("settings.loading")),1))}}),t1={key:0,class:"loading-screen"},n1={key:2,class:"shell"},o1={class:"app-header"},r1={class:"app-header-actions"},s1={class:"app-header-control github-control",href:"https://github.com/boltguo/sbm",target:"_blank",rel:"noopener noreferrer",title:"GitHub","aria-label":"GitHub"},i1=["title","aria-label"],l1={class:"sidebar"},a1=["aria-current"],u1=["aria-current"],c1=["aria-current"],d1=["aria-current"],f1={class:"content"},p1={class:"mobile-nav"},h1=["aria-current"],g1=["aria-current"],v1=["aria-current"],m1=["aria-current"],y1=J({__name:"App",setup(e){const t=F(!1),n=F(""),o=F("dashboard"),r=F(""),s=F(!1),i=F(!1);async function l(h){s.value=!1,r.value=h,await Le(),s.value=!0}async function a(){try{const h=await Yt("/api/me");n.value=h.username,Ws(h.csrfToken)}catch{n.value=""}finally{t.value=!0}}async function u(){try{await Tn("/api/logout")}catch{}i.value=!1,n.value="",o.value="dashboard"}async function c(h){o.value=h,await Le(),window.scrollTo({top:0,behavior:"auto"})}function d(h){i.value=!1,n.value=h}return Wv(()=>{n.value&&(i.value=!0),Ws(""),n.value="",o.value="dashboard"}),Re(a),(h,p)=>t.value?n.value?(D(),ae("div",n1,[L(f(Av),{duration:2800,"swipe-direction":"right"},{default:B(()=>[g("header",o1,[p[11]||(p[11]=g("div",{class:"app-header-brand","aria-hidden":"true"},[g("div",{class:"brand-mark"},[g("span",null,"SB"),g("b",null,"M")])],-1)),g("div",r1,[g("button",{class:"app-header-control locale-control",onClick:p[0]||(p[0]=(...y)=>f(nr)&&f(nr)(...y))},O(f(T)("language")),1),g("a",s1,[L(xe,{name:"github"})]),g("button",{class:"app-header-control logout-control",title:f(T)("logout"),"aria-label":f(T)("logout"),onClick:u},[L(xe,{name:"logout"}),g("span",null,O(f(T)("logout")),1)],8,i1)])]),g("aside",l1,[p[12]||(p[12]=g("div",{class:"brand-mark"},[g("span",null,"SB"),g("b",null,"M")],-1)),g("nav",null,[g("button",{class:De({active:o.value==="dashboard"}),"aria-current":o.value==="dashboard"?"page":void 0,onClick:p[1]||(p[1]=y=>c("dashboard"))},[L(xe,{name:"grid"}),g("span",null,O(f(T)("overview")),1)],10,a1),g("button",{class:De({active:o.value==="protocols"}),"aria-current":o.value==="protocols"?"page":void 0,onClick:p[2]||(p[2]=y=>c("protocols"))},[L(xe,{name:"route"}),g("span",null,O(f(T)("protocols")),1)],10,u1),g("button",{class:De({active:o.value==="server"}),"aria-current":o.value==="server"?"page":void 0,onClick:p[3]||(p[3]=y=>c("server"))},[L(xe,{name:"server"}),g("span",null,O(f(T)("server")),1)],10,c1),g("button",{class:De({active:o.value==="settings"}),"aria-current":o.value==="settings"?"page":void 0,onClick:p[4]||(p[4]=y=>c("settings"))},[L(xe,{name:"sliders"}),g("span",null,O(f(T)("settings")),1)],10,d1)])]),g("main",f1,[o.value==="dashboard"?(D(),G(qy,{key:0,onToast:l})):o.value==="protocols"?(D(),G(ab,{key:1,onToast:l})):o.value==="server"?(D(),G(Pb,{key:2})):(D(),G(e1,{key:3,onToast:l,onLoggedOut:u}))]),g("nav",p1,[g("button",{class:De({active:o.value==="dashboard"}),"aria-current":o.value==="dashboard"?"page":void 0,onClick:p[5]||(p[5]=y=>c("dashboard"))},[L(xe,{name:"grid"}),g("span",null,O(f(T)("overview")),1)],10,h1),g("button",{class:De({active:o.value==="protocols"}),"aria-current":o.value==="protocols"?"page":void 0,onClick:p[6]||(p[6]=y=>c("protocols"))},[L(xe,{name:"route"}),g("span",null,O(f(T)("protocols")),1)],10,g1),g("button",{class:De({active:o.value==="server"}),"aria-current":o.value==="server"?"page":void 0,onClick:p[7]||(p[7]=y=>c("server"))},[L(xe,{name:"server"}),g("span",null,O(f(T)("server")),1)],10,v1),g("button",{class:De({active:o.value==="settings"}),"aria-current":o.value==="settings"?"page":void 0,onClick:p[8]||(p[8]=y=>c("settings"))},[L(xe,{name:"sliders"}),g("span",null,O(f(T)("settings")),1)],10,m1)]),L(f(Nv),{open:s.value,"onUpdate:open":p[9]||(p[9]=y=>s.value=y),class:"toast data-[state=open]:animate-[toast-in_.18s_ease-out] data-[state=closed]:animate-[toast-out_.15s_ease-in]"},{default:B(()=>[L(xe,{name:"check"}),L(f(Fv),null,{default:B(()=>[ne(O(r.value),1)]),_:1})]),_:1},8,["open"]),L(f(Uv),{class:"fixed bottom-7 right-7 z-[80] m-0 flex w-[min(390px,calc(100vw-32px))] list-none flex-col gap-2 outline-none max-sm:bottom-20 max-sm:right-4"})]),_:1})])):(D(),G(Um,{key:1,expired:i.value,onLoggedIn:d},null,8,["expired"])):(D(),ae("div",t1,[...p[10]||(p[10]=[g("div",{class:"brand-mark"},[g("span",null,"SB"),g("b",null,"M")],-1)])]))}});Bf(y1).mount("#app"); diff --git a/internal/webembed/dist/index.html b/internal/webembed/dist/index.html index 57a758a..04f308b 100644 --- a/internal/webembed/dist/index.html +++ b/internal/webembed/dist/index.html @@ -7,7 +7,7 @@ SBM - + diff --git a/web/src/i18n.ts b/web/src/i18n.ts index e8241b1..044dd61 100644 --- a/web/src/i18n.ts +++ b/web/src/i18n.ts @@ -9,7 +9,7 @@ const messages: Record> = { 'login.title': '管理员登录', 'login.help': '凭据仅用于当前服务器。', 'login.username': '用户名', 'login.password': '密码', 'login.loading': '验证中…', 'login.submit': '进入控制台', 'login.expired': '会话已过期,请重新登录。', 'dashboard.title': '运行概览', 'dashboard.reset': '重置流量', 'dashboard.restart': '重启 sing-box', 'dashboard.exceeded': '配额已耗尽', 'dashboard.exceededHelp': 'sing-box 已停止。重置流量或在设置中提高限额后可恢复。', 'dashboard.running': '运行中', 'dashboard.stopped': '已停止', 'dashboard.noReset': '不自动重置', 'dashboard.totalRemaining': '总额 {total} · 剩余 {remaining}', 'dashboard.unlimitedHelp': '未设置总流量限制', 'dashboard.unlimited': '不限量', 'dashboard.upload': '上传', 'dashboard.download': '下载', 'dashboard.refresh': '刷新', 'dashboard.refreshHelp': '页面每 5 秒自动刷新;点击立即拉取一次', 'dashboard.refreshed': '流量数据已刷新', 'dashboard.trafficSource': '统计来源:sing-box', 'dashboard.audit.collecting': '网卡校验采集中', 'dashboard.audit.normal': '网卡校验正常', 'dashboard.audit.different': '网卡流量差异较大', 'dashboard.audit.collectingHelp': '已观察 {amount} 代理流量,达到 64 MB 后判断。校验结果不参与限额或停机。', 'dashboard.audit.detail': '{interface} 同期数据:sing-box {proxy},网卡接收 {receive},发送 {transmit}。仅用于发现明显偏差,不参与限额或停机。', 'dashboard.audit.unavailableHelp': '当前无法识别公网默认网卡;配额统计不受影响。', 'dashboard.subscription': '总订阅', 'dashboard.subscriptionHelp': '协议变更会立即反映到这个地址,无需重新添加订阅。', 'dashboard.copy': '复制', 'dashboard.secretHelp': '订阅地址包含访问 Token,请勿公开分享。', 'dashboard.qrAlt': '总订阅二维码', 'dashboard.loading': '正在读取核心状态…', 'dashboard.resetConfirm': '确定清零本周期的上传和下载流量?', 'dashboard.restartConfirm': '这里只会重启 sing-box,不会重启 VPS 或 SBM 面板。当前代理连接会短暂断开,客户端通常会自动重连。继续吗?', 'dashboard.resetDone': '流量已重置', 'dashboard.restartDone': 'sing-box 已重启', 'dashboard.copyDone': '订阅地址已复制', 'dashboard.checkUpdate': '检查面板新版本', 'dashboard.updateFound': '发现新版本 {version},SSH 运行 sudo sbm 后选择 6 更新', 'dashboard.updateCurrent': '当前已是最新版本', 'dashboard.updateFailed': '版本检查失败,请稍后重试', 'protocol.title': '协议管理', 'protocol.help': '每次变更都先经过 sing-box check,失败时自动回滚。', 'protocol.add': '新增协议', 'protocol.disable': '停用', 'protocol.enable': '启用', 'protocol.off': '关闭', 'protocol.copyLink': '复制链接', 'protocol.showQr': '显示二维码', 'protocol.edit': '编辑协议', 'protocol.delete': '删除协议', 'protocol.addAnother': '接入另一个协议', 'protocol.addAnotherHelp': '使用独立端口,不影响现有入站', 'protocol.newTitle': '新增协议', 'protocol.type': '协议类型', 'protocol.duplicate': '同一服务器上重复创建相同协议通常没有明显意义,除非使用不同端口或不同配置。', 'protocol.name': '节点名称', 'protocol.port': '监听端口', 'protocol.portHelp': '{network} 端口;还需在云安全组中放行', 'protocol.cancel': '取消', 'protocol.generate': '生成并应用', 'protocol.editTitle': '编辑协议', 'protocol.privateKey': 'Reality 私钥', 'protocol.publicKey': 'Reality 公钥', 'protocol.password': '认证密码', 'protocol.obfs': '混淆', 'protocol.obfsPassword': '混淆密码', 'protocol.firewall': '修改端口后,SBM 会处理 VPS 内部防火墙;云厂商安全组仍需手动检查。', 'protocol.apply': '校验并应用', 'protocol.qrAlt': '节点二维码', 'protocol.qrHelp': '扫描后直接导入该节点', 'protocol.created': '协议已创建并应用', 'protocol.saved': '配置已校验并应用', 'protocol.disabled': '协议已停用', 'protocol.enabled': '协议已启用', 'protocol.deleteConfirm': '确定删除“{name}”?', 'protocol.deleted': '协议已删除', 'protocol.linkCopied': '节点链接已复制', 'protocol.defaultName': '新节点', - 'settings.title': '设置', 'settings.help': '配额按所有代理入站的总上传与下载累计。', 'settings.traffic': '流量与周期', 'settings.trafficHelp': '设为 0 表示无限流量。达到限额时核心自动停止。', 'settings.total': '代理流量配额(GB)', 'settings.autoReset': '自动重置', 'settings.noReset': '不自动重置', 'settings.monthly': '每月重置', 'settings.day': '每月日期', 'settings.timezone': '时区', 'settings.quotaGuideTitle': '按云厂商计费方式填写', 'settings.quotaGuideBidirectional': '双向计费(如部分 DMIT 套餐):套餐总量先除以 2,再预留 5%–10%。例如 1000 GB 建议填 450–475 GB。', 'settings.quotaGuideEgress': '仅计 VPS 出站(如 GCP 常见口径):套餐总量直接预留 5%–10%。例如 200 GB 建议填 180–190 GB。', 'settings.quotaGuideNote': 'SBM 只统计 sing-box 代理流量,不含系统更新、SSH 和协议开销等;最终请以云厂商控制台为准。', 'settings.save': '保存流量设置', 'settings.subscription': '总订阅 Token', 'settings.subscriptionHelp': '重新生成后,所有使用旧地址的客户端都无法更新。', 'settings.copy': '复制', 'settings.regenerate': '重新生成 Token', 'settings.password': '管理员密码', 'settings.passwordHelp': '为防止会话被盗用,修改前需验证当前密码;成功后所有旧会话立即失效。', 'settings.currentPassword': '当前密码', 'settings.newPassword': '新密码', 'settings.confirmPassword': '确认新密码', 'settings.changePassword': '修改密码', 'settings.loading': '正在读取设置…', 'settings.saved': '设置已保存', 'settings.tokenConfirm': '旧订阅地址会立即失效,确定重新生成?', 'settings.tokenDone': '订阅 Token 已重新生成', 'settings.passwordMismatch': '两次输入的新密码不一致', 'settings.passwordDone': '密码已修改,请重新登录', + 'settings.title': '设置', 'settings.help': '管理代理出口、流量配额和安全参数。', 'settings.traffic': '流量与周期', 'settings.trafficHelp': '设为 0 表示无限流量。达到限额时核心自动停止。', 'settings.total': '代理流量配额(GB)', 'settings.autoReset': '自动重置', 'settings.noReset': '不自动重置', 'settings.monthly': '每月重置', 'settings.day': '每月日期', 'settings.timezone': '时区', 'settings.quotaGuideTitle': '按云厂商计费方式填写', 'settings.quotaGuideBidirectional': '双向计费(如部分 DMIT 套餐):套餐总量先除以 2,再预留 5%–10%。例如 1000 GB 建议填 450–475 GB。', 'settings.quotaGuideEgress': '仅计 VPS 出站(如 GCP 常见口径):套餐总量直接预留 5%–10%。例如 200 GB 建议填 180–190 GB。', 'settings.quotaGuideNote': 'SBM 只统计 sing-box 代理流量,不含系统更新、SSH 和协议开销等;最终请以云厂商控制台为准。', 'settings.outbound': '代理出口网络', 'settings.outboundHelp': '控制 sing-box 访问目标域名时优先使用 IPv4 还是 IPv6。', 'settings.outboundStrategy': '地址族策略', 'settings.outboundAuto': '自动(系统默认)', 'settings.outboundPreferIPv4': '优先 IPv4,失败时回退 IPv6', 'settings.outboundPreferIPv6': '优先 IPv6,失败时回退 IPv4', 'settings.outboundIPv4Only': '仅 IPv4', 'settings.outboundIPv6Only': '仅 IPv6', 'settings.outboundGuideTitle': '一般选择“优先”,不要选择“仅”', 'settings.outboundGuidePrefer': '如果 IPv6 的地区归属更准确,可选“优先 IPv6”;不支持 IPv6 的目标仍会回退到 IPv4。', 'settings.outboundGuideOnly': '仅对 sing-box 收到的域名目标生效。若客户端已经把域名解析成 IP,服务端无法切换到另一个地址族。需要 sing-box 1.12 或更高版本。', 'settings.save': '校验并保存设置', 'settings.subscription': '总订阅 Token', 'settings.subscriptionHelp': '重新生成后,所有使用旧地址的客户端都无法更新。', 'settings.copy': '复制', 'settings.regenerate': '重新生成 Token', 'settings.password': '管理员密码', 'settings.passwordHelp': '为防止会话被盗用,修改前需验证当前密码;成功后所有旧会话立即失效。', 'settings.currentPassword': '当前密码', 'settings.newPassword': '新密码', 'settings.confirmPassword': '确认新密码', 'settings.changePassword': '修改密码', 'settings.loading': '正在读取设置…', 'settings.saved': '设置已校验并保存', 'settings.tokenConfirm': '旧订阅地址会立即失效,确定重新生成?', 'settings.tokenDone': '订阅 Token 已重新生成', 'settings.passwordMismatch': '两次输入的新密码不一致', 'settings.passwordDone': '密码已修改,请重新登录', 'server.title': '服务器状态', 'server.help': '当前 Linux 主机资源快照,每 5 秒自动刷新。', 'server.cpu': 'CPU 使用率', 'server.memory': '内存', 'server.disk': '根分区磁盘', 'server.usedOf': '已用 {used} / {total}', 'server.load': '系统负载', 'server.loadHelp': '过去 1、5、15 分钟', 'server.uptime': '运行时长', 'server.days': '{days} 天 {hours} 小时', 'server.hours': '{hours} 小时 {minutes} 分钟', 'server.hostname': '主机名', 'server.system': '操作系统', 'server.kernel': '内核', 'server.arch': '架构', 'server.cores': '{count} 核', 'server.updated': '更新于 {time}', 'server.loading': '正在读取服务器状态…', 'api.failed': '请求失败 ({status})', 'api.unreachable': '无法连接面板,请检查网络后重试', }, @@ -18,7 +18,7 @@ const messages: Record> = { 'login.title': 'Administrator sign in', 'login.help': 'These credentials stay on this server.', 'login.username': 'Username', 'login.password': 'Password', 'login.loading': 'Verifying…', 'login.submit': 'Open console', 'login.expired': 'Your session expired. Sign in again.', 'dashboard.title': 'Runtime overview', 'dashboard.reset': 'Reset traffic', 'dashboard.restart': 'Restart sing-box', 'dashboard.exceeded': 'Quota exhausted', 'dashboard.exceededHelp': 'sing-box has stopped. Reset traffic or increase the quota in Settings to recover.', 'dashboard.running': 'Running', 'dashboard.stopped': 'Stopped', 'dashboard.noReset': 'No automatic reset', 'dashboard.totalRemaining': 'Total {total} · {remaining} remaining', 'dashboard.unlimitedHelp': 'No traffic limit configured', 'dashboard.unlimited': 'Unlimited', 'dashboard.upload': 'Upload', 'dashboard.download': 'Download', 'dashboard.refresh': 'Refresh', 'dashboard.refreshHelp': 'This page refreshes every 5 seconds; click to fetch once now', 'dashboard.refreshed': 'Traffic data refreshed', 'dashboard.trafficSource': 'Source: sing-box', 'dashboard.audit.collecting': 'network check collecting', 'dashboard.audit.normal': 'network check normal', 'dashboard.audit.different': 'large network difference', 'dashboard.audit.collectingHelp': '{amount} of proxy traffic observed; evaluation starts at 64 MB. This check never affects the quota or core.', 'dashboard.audit.detail': '{interface} over the same window: sing-box {proxy}, interface received {receive} and sent {transmit}. This check only detects large differences and never affects the quota or core.', 'dashboard.audit.unavailableHelp': 'The public default interface could not be identified. Quota tracking is unaffected.', 'dashboard.subscription': 'Master subscription', 'dashboard.subscriptionHelp': 'Protocol changes appear at this URL immediately—no need to add it again.', 'dashboard.copy': 'Copy', 'dashboard.secretHelp': 'This URL contains an access token. Keep it private.', 'dashboard.qrAlt': 'Master subscription QR code', 'dashboard.loading': 'Reading core status…', 'dashboard.resetConfirm': 'Clear upload and download usage for the current period?', 'dashboard.restartConfirm': 'This only restarts sing-box, not the VPS or SBM panel. Active proxy connections briefly disconnect and normally reconnect automatically. Continue?', 'dashboard.resetDone': 'Traffic has been reset', 'dashboard.restartDone': 'sing-box restarted', 'dashboard.copyDone': 'Subscription URL copied', 'dashboard.checkUpdate': 'Check for a panel update', 'dashboard.updateFound': 'SBM {version} is available. Run sudo sbm over SSH and choose option 6.', 'dashboard.updateCurrent': 'SBM is up to date', 'dashboard.updateFailed': 'Could not check for updates. Try again later.', 'protocol.title': 'Protocol management', 'protocol.help': 'Every change passes sing-box check first and rolls back automatically on failure.', 'protocol.add': 'Add protocol', 'protocol.disable': 'Disable', 'protocol.enable': 'Enable', 'protocol.off': 'Off', 'protocol.copyLink': 'Copy link', 'protocol.showQr': 'Show QR code', 'protocol.edit': 'Edit protocol', 'protocol.delete': 'Delete protocol', 'protocol.addAnother': 'Add another protocol', 'protocol.addAnotherHelp': 'Use a separate port without disturbing current inbounds', 'protocol.newTitle': 'Add protocol', 'protocol.type': 'Protocol type', 'protocol.duplicate': 'Creating the same protocol more than once on one server is rarely useful unless it uses a different port or configuration.', 'protocol.name': 'Node name', 'protocol.port': 'Listen port', 'protocol.portHelp': '{network} port; allow it in your cloud security group too', 'protocol.cancel': 'Cancel', 'protocol.generate': 'Generate and apply', 'protocol.editTitle': 'Edit protocol', 'protocol.privateKey': 'Reality private key', 'protocol.publicKey': 'Reality public key', 'protocol.password': 'Authentication password', 'protocol.obfs': 'Obfuscation', 'protocol.obfsPassword': 'Obfuscation password', 'protocol.firewall': 'SBM handles the firewall inside the VPS after a port change. You must still check the cloud security group.', 'protocol.apply': 'Validate and apply', 'protocol.qrAlt': 'Node QR code', 'protocol.qrHelp': 'Scan to import this node directly', 'protocol.created': 'Protocol created and applied', 'protocol.saved': 'Configuration validated and applied', 'protocol.disabled': 'Protocol disabled', 'protocol.enabled': 'Protocol enabled', 'protocol.deleteConfirm': 'Delete “{name}”?', 'protocol.deleted': 'Protocol deleted', 'protocol.linkCopied': 'Node link copied', 'protocol.defaultName': 'New node', - 'settings.title': 'Settings', 'settings.help': 'The quota combines upload and download across every proxy inbound.', 'settings.traffic': 'Traffic and period', 'settings.trafficHelp': 'Set 0 for unlimited traffic. The core stops automatically at the limit.', 'settings.total': 'Proxy traffic quota (GB)', 'settings.autoReset': 'Automatic reset', 'settings.noReset': 'No automatic reset', 'settings.monthly': 'Monthly', 'settings.day': 'Day of month', 'settings.timezone': 'Timezone', 'settings.quotaGuideTitle': 'Choose a limit for your provider’s billing method', 'settings.quotaGuideBidirectional': 'Two-way billing (including some DMIT plans): divide the allowance by 2, then leave a 5%–10% margin. For 1000 GB, enter about 450–475 GB.', 'settings.quotaGuideEgress': 'VPS egress-only billing (common on GCP): leave a 5%–10% margin from the allowance. For 200 GB, enter about 180–190 GB.', 'settings.quotaGuideNote': 'SBM counts sing-box proxy traffic only. System updates, SSH, and protocol overhead are excluded; your provider dashboard remains authoritative.', 'settings.save': 'Save traffic settings', 'settings.subscription': 'Master subscription token', 'settings.subscriptionHelp': 'Regenerating it prevents every client using the old URL from updating.', 'settings.copy': 'Copy', 'settings.regenerate': 'Regenerate token', 'settings.password': 'Administrator password', 'settings.passwordHelp': 'Re-enter the current password to prevent session abuse. A successful change invalidates every old session.', 'settings.currentPassword': 'Current password', 'settings.newPassword': 'New password', 'settings.confirmPassword': 'Confirm new password', 'settings.changePassword': 'Change password', 'settings.loading': 'Reading settings…', 'settings.saved': 'Settings saved', 'settings.tokenConfirm': 'The old subscription URL will stop working immediately. Regenerate it?', 'settings.tokenDone': 'Subscription token regenerated', 'settings.passwordMismatch': 'The new passwords do not match', 'settings.passwordDone': 'Password changed. Sign in again.', + 'settings.title': 'Settings', 'settings.help': 'Manage proxy egress, traffic quota, and security.', 'settings.traffic': 'Traffic and period', 'settings.trafficHelp': 'Set 0 for unlimited traffic. The core stops automatically at the limit.', 'settings.total': 'Proxy traffic quota (GB)', 'settings.autoReset': 'Automatic reset', 'settings.noReset': 'No automatic reset', 'settings.monthly': 'Monthly', 'settings.day': 'Day of month', 'settings.timezone': 'Timezone', 'settings.quotaGuideTitle': 'Choose a limit for your provider’s billing method', 'settings.quotaGuideBidirectional': 'Two-way billing (including some DMIT plans): divide the allowance by 2, then leave a 5%–10% margin. For 1000 GB, enter about 450–475 GB.', 'settings.quotaGuideEgress': 'VPS egress-only billing (common on GCP): leave a 5%–10% margin from the allowance. For 200 GB, enter about 180–190 GB.', 'settings.quotaGuideNote': 'SBM counts sing-box proxy traffic only. System updates, SSH, and protocol overhead are excluded; your provider dashboard remains authoritative.', 'settings.outbound': 'Proxy egress network', 'settings.outboundHelp': 'Choose whether sing-box prefers IPv4 or IPv6 when connecting to domain destinations.', 'settings.outboundStrategy': 'Address-family strategy', 'settings.outboundAuto': 'Automatic (system default)', 'settings.outboundPreferIPv4': 'Prefer IPv4, fall back to IPv6', 'settings.outboundPreferIPv6': 'Prefer IPv6, fall back to IPv4', 'settings.outboundIPv4Only': 'IPv4 only', 'settings.outboundIPv6Only': 'IPv6 only', 'settings.outboundGuideTitle': 'Prefer is usually safer than only', 'settings.outboundGuidePrefer': 'If your IPv6 has more accurate geolocation, prefer IPv6; destinations without IPv6 still fall back to IPv4.', 'settings.outboundGuideOnly': 'This only affects domain destinations received by sing-box. The server cannot change address family after a client has already resolved a domain to an IP. Requires sing-box 1.12 or newer.', 'settings.save': 'Validate and save settings', 'settings.subscription': 'Master subscription token', 'settings.subscriptionHelp': 'Regenerating it prevents every client using the old URL from updating.', 'settings.copy': 'Copy', 'settings.regenerate': 'Regenerate token', 'settings.password': 'Administrator password', 'settings.passwordHelp': 'Re-enter the current password to prevent session abuse. A successful change invalidates every old session.', 'settings.currentPassword': 'Current password', 'settings.newPassword': 'New password', 'settings.confirmPassword': 'Confirm new password', 'settings.changePassword': 'Change password', 'settings.loading': 'Reading settings…', 'settings.saved': 'Settings validated and saved', 'settings.tokenConfirm': 'The old subscription URL will stop working immediately. Regenerate it?', 'settings.tokenDone': 'Subscription token regenerated', 'settings.passwordMismatch': 'The new passwords do not match', 'settings.passwordDone': 'Password changed. Sign in again.', 'server.title': 'Server status', 'server.help': 'A live snapshot of this Linux host, refreshed every five seconds.', 'server.cpu': 'CPU usage', 'server.memory': 'Memory', 'server.disk': 'Root filesystem', 'server.usedOf': '{used} used of {total}', 'server.load': 'System load', 'server.loadHelp': 'Over the last 1, 5, and 15 minutes', 'server.uptime': 'Uptime', 'server.days': '{days}d {hours}h', 'server.hours': '{hours}h {minutes}m', 'server.hostname': 'Hostname', 'server.system': 'Operating system', 'server.kernel': 'Kernel', 'server.arch': 'Architecture', 'server.cores': '{count} cores', 'server.updated': 'Updated {time}', 'server.loading': 'Reading server status…', 'api.failed': 'Request failed ({status})', 'api.unreachable': 'Could not reach the panel. Check your connection and retry.', }, diff --git a/web/src/types.ts b/web/src/types.ts index 5119186..77e421b 100644 --- a/web/src/types.ts +++ b/web/src/types.ts @@ -49,7 +49,8 @@ export interface Inbound { } export interface ResetConfig { mode: 'none' | 'monthly'; day: number; timezone: string } -export interface Settings { domain: string; panelPort: number; totalBytes: number; reset: ResetConfig; subscriptionURL: string } +export type OutboundStrategy = 'auto' | 'prefer_ipv4' | 'prefer_ipv6' | 'ipv4_only' | 'ipv6_only' +export interface Settings { domain: string; panelPort: number; totalBytes: number; reset: ResetConfig; outboundStrategy: OutboundStrategy; subscriptionURL: string } export interface ServerStatus { hostname: string diff --git a/web/src/views/SettingsView.vue b/web/src/views/SettingsView.vue index 424379d..2b71bf5 100644 --- a/web/src/views/SettingsView.vue +++ b/web/src/views/SettingsView.vue @@ -14,10 +14,17 @@ const quotaGB = ref(0) const password = ref({ currentPassword: '', newPassword: '', confirm: '' }) const timezones = ['Asia/Shanghai', 'Asia/Hong_Kong', 'Asia/Tokyo', 'Europe/London', 'Europe/Berlin', 'America/New_York', 'America/Los_Angeles', 'UTC', 'Local'] const resetOptions = computed(() => [{ value: 'none', label: t('settings.noReset') }, { value: 'monthly', label: t('settings.monthly') }]) +const outboundOptions = computed(() => [ + { value: 'auto', label: t('settings.outboundAuto') }, + { value: 'prefer_ipv4', label: t('settings.outboundPreferIPv4') }, + { value: 'prefer_ipv6', label: t('settings.outboundPreferIPv6') }, + { value: 'ipv4_only', label: t('settings.outboundIPv4Only') }, + { value: 'ipv6_only', label: t('settings.outboundIPv6Only') }, +]) const timezoneOptions = timezones.map(value => ({ value, label: value })) const safe = guard(message => emit('toast', message)) const load = safe(async () => { settings.value = await api('/api/settings'); quotaGB.value = Math.round(settings.value.totalBytes / 1024 ** 3 * 100) / 100 }) -const save = safe(async () => { if (!settings.value) return; settings.value.totalBytes = Math.round(quotaGB.value * 1024 ** 3); await put('/api/settings', { totalBytes: settings.value.totalBytes, reset: settings.value.reset }); emit('toast', t('settings.saved')) }) +const save = safe(async () => { if (!settings.value) return; settings.value.totalBytes = Math.round(quotaGB.value * 1024 ** 3); await put('/api/settings', { totalBytes: settings.value.totalBytes, reset: settings.value.reset, outboundStrategy: settings.value.outboundStrategy }); emit('toast', t('settings.saved')) }) const token = safe(async () => { const result = await post<{ subscriptionURL: string }>('/api/settings/token'); if (settings.value) settings.value.subscriptionURL = result.subscriptionURL; emit('toast', t('settings.tokenDone')) }) const changePassword = safe(async () => { if (password.value.newPassword !== password.value.confirm) { emit('toast', t('settings.passwordMismatch')); return }; await post('/api/settings/password', { currentPassword: password.value.currentPassword, newPassword: password.value.newPassword }); emit('toast', t('settings.passwordDone')); emit('loggedOut') }) const copy = safe(async (value: string) => { await navigator.clipboard.writeText(value); emit('toast', t('copied')) }) @@ -29,6 +36,7 @@ onMounted(load)
SYSTEM PARAMETERS

{{ t('settings.title') }}

{{ t('settings.help') }}

{{ t('settings.traffic') }}

{{ t('settings.trafficHelp') }}

+

{{ t('settings.outbound') }}

{{ t('settings.outboundHelp') }}

{{ t('settings.subscription') }}

{{ t('settings.subscriptionHelp') }}

{{ settings.subscriptionURL }}