import{j as o}from"./vendor-CIGJ9g2q.js";import{t as i,i as d,S as c,n as u}from"./ui-BeEpfTFY.js";function g(...e){return i(d(e))}function f(e){const t=/#([^#]*)/.exec(e);if(t)try{return decodeURIComponent(t[1])}catch(s){return console.error("Malformed URI component:",t[1],s),t[1]}if(e.startsWith("vmess://")){const s=e.replace("vmess://","");try{const n=atob(s);return JSON.parse(n).ps??"Unnamed Config"}catch(n){return console.error("Invalid vmess URL format:",n),"Invalid Config"}}return"Unknown"}function h(e){return e.startsWith("vmess://")||e.startsWith("vless://")||e.startsWith("trojan://")||e.startsWith("ss://")||e.startsWith("ssr://")}function l(e){if(e.includes(":")&&!e.includes("{")){const[r,t]=e.split(":");return{username:r,password:t}}try{const r=JSON.parse(e);return{username:r.username||r.user||"Unknown",password:r.password||r.pass||"Unknown"}}catch{return{username:"Username",password:e}}}const p=u("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function b({className:e,variant:r,size:t,asChild:s=!1,...n}){const a=s?c:"button";return o.jsx(a,{"data-slot":"button",className:g(p({variant:r,size:t,className:e})),...n})}export{b as B,l as a,g as c,f as e,h as i};
