@braydenyang/fdoc 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3717,4 +3717,4 @@ ${o}</${n}>`}const zy="fdoc_global_auth",Ey="fdoc_global_headers",Oy="fdoc_globa
3717
3717
  `)}return{currentRequest:e,currentResponse:t,sending:o,history:d,globalAuth:r,globalHeaders:i,globalCookies:l,disabledQueryKeys:a,disabledHeaderKeys:s,setGlobalAuth:g,setGlobalHeaders:b,setGlobalCookies:m,setDisabledQueryKeys:v,setDisabledHeaderKeys:h,saveCurrentToCache:u,initRequest:x,autoFill:S,toCurl:B,send:C,cancel:y,clearHistory:R,clearEndpointHistory:P,removeHistory:w,restoreFromHistory:_}});function HA(e){const t=new FormData;for(const o of e)!o.enabled||!o.key||(o.type==="file"&&o.file?t.append(o.key,o.file,o.file.name):o.type==="text"&&t.append(o.key,o.value));return t}function rl(e,t){const o={};for(const[n,r]of Object.entries(e))!n||n==="_"||t.has(n)||/^[\w!#$%&'*+\-.^`|~]+$/.test(n)&&(o[n]=r);return o}function Ay(e,t,o){if(e.type==="bearer"&&e.bearer)t.Authorization=`Bearer ${e.bearer}`;else if(e.type==="basic"&&e.basicUser){const n=btoa(`${e.basicUser}:${e.basicPass??""}`);t.Authorization=`Basic ${n}`}else e.type==="apikey"&&e.apiKeyName&&e.apiKeyValue&&(e.apiKeyIn==="query"?o[e.apiKeyName]=e.apiKeyValue:t[e.apiKeyName]=e.apiKeyValue)}function Fy(e){let t=e.url??"";const o=e.query??{},n=new URLSearchParams;for(const[i,l]of Object.entries(o))l!==""&&n.append(i,l);const r=n.toString();return r&&(t+=(t.includes("?")?"&":"?")+r),t}function My(){const e=_r(),t=Tr(),o=L(!1),n=L(null);async function r(s){const c=await a(async()=>{const p=!s.startsWith(window.location.origin)&&!1?`/proxy/${encodeURIComponent(s)}`:s,v={};for(const[b,m]of Object.entries(t.globalHeaders))b.trim()&&(v[b.trim()]=m);const h=Object.entries(t.globalCookies).filter(([b,m])=>b.trim()&&m.trim());if(h.length>0){const b=h.map(([m,x])=>`${m}=${x}`).join("; ");v.Cookie=v.Cookie?`${v.Cookie}; ${b}`:b}const g=await fetch(p,Object.keys(v).length?{headers:v}:void 0);if(!g.ok)throw new Error(`HTTP ${g.status}: ${g.statusText}`);return g.json()});return c.ok&&e.setSourceUrl(s),c}async function i(s){const c=await a(()=>new Promise((d,u)=>{const p=new FileReader;p.onload=()=>{try{d(JSON.parse(p.result))}catch{u(new Error("文件不是有效的 JSON"))}},p.onerror=()=>u(new Error("文件读取失败")),p.readAsText(s,"utf-8")}));return c.ok&&(e.setSourceUrl(null),e.setSourceName(s.name)),c}async function l(s){const c=await a(async()=>{try{return JSON.parse(s)}catch{throw new Error("粘贴内容不是有效的 JSON")}});return c.ok&&e.setSourceUrl(null),c}async function a(s){o.value=!0,n.value=null;try{const c=await s();return e.loadSpec(c),e.error?(n.value=e.error,{ok:!1,error:e.error}):{ok:!0}}catch(c){const d=c instanceof Error?c.message:String(c);return n.value=d,{ok:!1,error:d}}finally{o.value=!1}}return{loading:o,error:n,loadFromUrl:r,loadFromFile:i,loadFromText:l}}const Ot=(e,t)=>{const o=e.__vccOpts||e;for(const[n,r]of t)o[n]=r;return o},NA={},jA={width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-label":"fdoc"};function WA(e,t){return me(),Re("svg",jA,[...t[0]||(t[0]=[$l('<defs><linearGradient id="fdoc-grad" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#4338ca"></stop><stop offset="1" stop-color="#2563eb"></stop></linearGradient></defs><rect width="24" height="24" rx="6" fill="url(#fdoc-grad)"></rect><path d="M6 8.5 L11 12 L6 15.5" stroke="white" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" fill="none"></path><line x1="13.5" y1="8.5" x2="19" y2="8.5" stroke="white" stroke-width="2" stroke-linecap="round"></line><line x1="13.5" y1="12" x2="17.5" y2="12" stroke="white" stroke-width="2" stroke-linecap="round"></line><line x1="13.5" y1="15.5" x2="19" y2="15.5" stroke="white" stroke-width="2" stroke-linecap="round"></line>',6)])])}const VA=Ot(NA,[["render",WA]]),UA={class:"auth-editor"},KA={class:"auth-row auth-type-row"},qA={key:0,class:"auth-row"},GA={class:"auth-row"},XA={class:"auth-row"},YA={class:"auth-row"},JA={class:"auth-row"},ZA={class:"auth-row"},By=Ot(ge({__name:"AuthEditor",props:{modelValue:{},inheritLabel:{}},emits:["update:modelValue"],setup(e,{emit:t}){const o=e,n=t,r=E(()=>{const a=[];return o.inheritLabel&&a.push({label:o.inheritLabel,value:"inherit"}),a.push({label:"无认证",value:"none"},{label:"Bearer Token",value:"bearer"},{label:"Basic Auth",value:"basic"},{label:"API Key",value:"apikey"}),a}),i=[{label:"Header",value:"header"},{label:"Query",value:"query"}];function l(a){n("update:modelValue",{...o.modelValue,...a})}return(a,s)=>(me(),Re("div",UA,[K("div",KA,[s[7]||(s[7]=K("span",{class:"auth-label"},"认证方式",-1)),Se(he(la),{value:e.modelValue.type,options:r.value,size:"small",style:{width:"180px"},"onUpdate:value":s[0]||(s[0]=c=>l({type:c}))},null,8,["value","options"])]),e.modelValue.type==="bearer"?(me(),Re("div",qA,[s[8]||(s[8]=K("span",{class:"auth-label"},"Token",-1)),Se(he(qt),{value:e.modelValue.bearer??"",size:"small",placeholder:"Bearer token",class:"auth-input","onUpdate:value":s[1]||(s[1]=c=>l({bearer:c}))},null,8,["value"])])):et("",!0),e.modelValue.type==="basic"?(me(),Re(Ue,{key:1},[K("div",GA,[s[9]||(s[9]=K("span",{class:"auth-label"},"用户名",-1)),Se(he(qt),{value:e.modelValue.basicUser??"",size:"small",placeholder:"Username",class:"auth-input","onUpdate:value":s[2]||(s[2]=c=>l({basicUser:c}))},null,8,["value"])]),K("div",XA,[s[10]||(s[10]=K("span",{class:"auth-label"},"密码",-1)),Se(he(qt),{value:e.modelValue.basicPass??"",size:"small",type:"password","show-password-on":"click",placeholder:"Password",class:"auth-input","onUpdate:value":s[3]||(s[3]=c=>l({basicPass:c}))},null,8,["value"])])],64)):et("",!0),e.modelValue.type==="apikey"?(me(),Re(Ue,{key:2},[K("div",YA,[s[11]||(s[11]=K("span",{class:"auth-label"},"位置",-1)),Se(he(la),{value:e.modelValue.apiKeyIn??"header",options:i,size:"small",style:{width:"120px"},"onUpdate:value":s[4]||(s[4]=c=>l({apiKeyIn:c}))},null,8,["value"])]),K("div",JA,[s[12]||(s[12]=K("span",{class:"auth-label"},"Key",-1)),Se(he(qt),{value:e.modelValue.apiKeyName??"",size:"small",placeholder:"X-API-Key",class:"auth-input","onUpdate:value":s[5]||(s[5]=c=>l({apiKeyName:c}))},null,8,["value"])]),K("div",ZA,[s[13]||(s[13]=K("span",{class:"auth-label"},"Value",-1)),Se(he(qt),{value:e.modelValue.apiKeyValue??"",size:"small",placeholder:"your-api-key",class:"auth-input","onUpdate:value":s[6]||(s[6]=c=>l({apiKeyValue:c}))},null,8,["value"])])],64)):et("",!0)]))}}),[["__scopeId","data-v-e4396512"]]),QA=["width","height"],Ly=Ot(ge({__name:"DownloadButton",props:{data:{},filename:{},size:{}},setup(e){const t=e;function o(){const n=JSON.stringify(t.data,null,2),r=new Blob([n],{type:"application/json"}),i=URL.createObjectURL(r),l=document.createElement("a");l.href=i,l.download=t.filename,l.click(),URL.revokeObjectURL(i)}return(n,r)=>(me(),Re("button",{class:"download-btn",title:"下载 JSON",onClick:jr(o,["stop"])},[(me(),Re("svg",{width:e.size??14,height:e.size??14,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...r[0]||(r[0]=[K("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"},null,-1),K("polyline",{points:"7 10 12 15 17 10"},null,-1),K("line",{x1:"12",y1:"15",x2:"12",y2:"3"},null,-1)])],8,QA))]))}}),[["__scopeId","data-v-eed7ed43"]]),eF={class:"ls-wrap"},tF={class:"ls-body"},oF={class:"ls-keys"},nF={key:0,class:"ls-keys-empty"},rF=["onClick"],iF={class:"ls-key-name"},lF={key:0,class:"ls-key-badge"},aF={class:"ls-detail"},sF={class:"ls-section"},cF={class:"ls-code"},dF={class:"ls-section"},uF={key:0,class:"ls-section"},fF={class:"ls-section"},hF={key:1,class:"ls-detail-empty"},pF={class:"ls-footer"},Dy=Ot(ge({__name:"LsValuePicker",props:{show:{type:Boolean}},emits:["update:show","select"],setup(e,{emit:t}){const o=e,n=t,r=L([]),i=L(null),l=L(""),a=L(new Map),s=new Set(["fdoc_spec_cache","fdoc_spec_headers_map","fdoc_server","fdoc_spec_source_url","fdoc_global_auth","fdoc_global_headers","fdoc_global_cookies","fdoc_debug_cache","fdoc_debug_history"]);function c(){const m=[];for(let x=0;x<localStorage.length;x++){const S=localStorage.key(x);if(!S||s.has(S))continue;const C=localStorage.getItem(S)??"";let y=!1,R=null;try{const P=JSON.parse(C);P!==null&&typeof P=="object"&&(y=!0,R=P)}catch{}m.push({key:S,raw:C,isJson:y,parsed:R})}r.value=m,i.value&&!m.find(x=>x.key===i.value)&&(i.value=m.length>0?m[0].key:null)}Ze(()=>o.show,m=>{m&&(c(),i.value=r.value.length>0?r.value[0].key:null,l.value="",a.value.clear())});function d(m){i.value!==null&&a.value.set(i.value,l.value),i.value=m,l.value=a.value.get(m)??"",g.value=""}Ze(l,m=>{i.value!==null&&a.value.set(i.value,m)});const u=E(()=>r.value.find(m=>m.key===i.value)??null);function p(m,x){const S=x.replace(/\[(\d+)\]/g,".$1").split(".").filter(Boolean);let C=m;for(const y of S){if(C==null||typeof C!="object")return;C=C[y]}return C}const v=E(()=>{if(!u.value)return"";if(!u.value.isJson)return u.value.raw;if(!l.value.trim())return"";const m=p(u.value.parsed,l.value.trim());return m===void 0?"":typeof m=="object"?JSON.stringify(m,null,2):String(m)}),h=E(()=>{var m;return!((m=u.value)!=null&&m.isJson)||!l.value.trim()?"idle":v.value?"ok":"error"}),g=L("");Ze(v,m=>{u.value&&!u.value.isJson&&(g.value=m)},{immediate:!0});function b(){!g.value||h.value==="error"||(n("select",g.value),n("update:show",!1))}return(m,x)=>(me(),mt(he(el),{show:e.show,"mask-closable":!0,style:{width:"720px","max-width":"95vw"},"onUpdate:show":x[2]||(x[2]=S=>n("update:show",S))},{default:He(()=>[Se(he(ra),{title:"从 localStorage 选取值",bordered:!1,size:"small",role:"dialog"},{default:He(()=>[K("div",eF,[K("div",tF,[K("div",oF,[K("div",{class:"ls-keys-header"},[x[4]||(x[4]=K("span",{class:"ls-keys-title"},"条目列表",-1)),K("button",{class:"ls-refresh-btn",title:"刷新",onClick:c},[...x[3]||(x[3]=[K("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[K("polyline",{points:"23 4 23 10 17 10"}),K("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})],-1)])])]),r.value.length===0?(me(),Re("p",nF,"localStorage 无可用条目")):et("",!0),(me(!0),Re(Ue,null,To(r.value,S=>(me(),Re("button",{key:S.key,class:Pt(["ls-key-item",{"ls-key-item--active":i.value===S.key}]),onClick:C=>d(S.key)},[K("span",iF,Ve(S.key),1),S.isJson?(me(),Re("span",lF,"JSON")):et("",!0)],10,rF))),128))]),K("div",aF,[u.value?(me(),Re(Ue,{key:0},[K("div",sF,[x[5]||(x[5]=K("div",{class:"ls-section-label"},"完整值",-1)),K("pre",cF,Ve(u.value.isJson?JSON.stringify(u.value.parsed,null,2):u.value.raw),1)]),u.value.isJson?(me(),Re(Ue,{key:0},[K("div",dF,[x[6]||(x[6]=K("div",{class:"ls-section-label"},[it(" JSON 路径 "),K("span",{class:"ls-section-hint"},"例如 user.token 或 items[0].id")],-1)),Se(he(qt),{value:l.value,"onUpdate:value":x[0]||(x[0]=S=>l.value=S),size:"small",status:h.value==="error"?"error":void 0,placeholder:"输入路径以提取字段值",class:"ls-path-input"},null,8,["value","status"])]),l.value.trim()?(me(),Re("div",uF,[x[7]||(x[7]=K("div",{class:"ls-section-label"},"解析结果",-1)),K("pre",{class:Pt(["ls-code",{"ls-code--error":h.value==="error"}])},Ve(h.value==="error"?"路径不存在":v.value),3)])):et("",!0)],64)):et("",!0),K("div",fF,[x[8]||(x[8]=K("div",{class:"ls-section-label"},"待应用的值",-1)),Se(he(qt),{value:g.value,"onUpdate:value":x[1]||(x[1]=S=>g.value=S),size:"small",type:"textarea",rows:3,placeholder:u.value.isJson?h.value==="ok"?v.value:l.value.trim()?"路径不存在":"请填写 JSON 路径,或在此直接输入要应用的值":"",class:"ls-path-input"},null,8,["value","placeholder"])])],64)):(me(),Re("div",hF,"请从左侧选择一个条目"))])]),K("div",pF,[Se(he(ht),{type:"primary",size:"small",disabled:!g.value||h.value==="error",onClick:b},{default:He(()=>[...x[9]||(x[9]=[it(" 应用 ",-1)])]),_:1},8,["disabled"])])])]),_:1})]),_:1},8,["show"]))}}),[["__scopeId","data-v-086db566"]]),vF={class:"app-header"},gF={class:"header-left"},mF={key:0,class:"spec-title"},bF={class:"header-right"},xF={class:"server-wrap"},yF={class:"server-url"},CF={key:0,class:"server-desc"},wF={class:"global-auth-wrap"},SF={class:"ga-tabs"},kF={key:0,class:"ga-tab-badge"},RF={key:0,class:"ga-tab-badge"},PF={class:"ga-kv-editor"},_F={class:"doc-header-row"},$F={class:"ga-key-wrap"},TF=["onUpdate:modelValue","onFocus"],zF={key:0,class:"key-suggestions"},EF=["onMousedown"],OF=["onUpdate:modelValue"],IF=["onClick"],AF=["onClick"],FF={key:0,class:"doc-headers-empty"},MF={class:"ga-kv-editor"},BF=["onUpdate:modelValue"],LF=["onUpdate:modelValue"],DF=["onClick"],HF={key:0,class:"doc-headers-empty"},NF={class:"doc-wrap"},jF={class:"doc-meta"},WF={class:"doc-meta-row"},VF=["href","title"],UF={class:"doc-meta-value doc-meta-mono"},KF={class:"doc-meta-row"},qF={class:"doc-meta-value doc-meta-mono"},GF=["disabled"],XF=Ot(ge({__name:"AppHeader",props:{isDark:{type:Boolean}},emits:["toggleTheme"],setup(e,{emit:t}){const o=t,n=_r(),r=Tr(),{loading:i,loadFromUrl:l}=My(),a=E(()=>{if(n.specSourceUrl)try{return new URL(n.specSourceUrl).hostname}catch{return n.specSourceUrl}return n.specSourceName??null}),s=E(()=>{if(!n.loadedAt)return null;const D=n.loadedAt,M=D.getFullYear(),N=String(D.getMonth()+1).padStart(2,"0"),ve=String(D.getDate()).padStart(2,"0"),J=String(D.getHours()).padStart(2,"0"),Ce=String(D.getMinutes()).padStart(2,"0"),Z=String(D.getSeconds()).padStart(2,"0");return`${M}-${N}-${ve} ${J}:${Ce}:${Z}`});async function c(){n.specSourceUrl&&await l(n.specSourceUrl)}const d=L(!1),u=L("auth"),p=E(()=>{const D=r.globalAuth.type;return D==="bearer"?"Bearer":D==="basic"?"Basic":D==="apikey"?"API Key":"Auth"}),v=E(()=>!!(r.globalAuth.type!=="none"||Object.values(r.globalHeaders).some(D=>D)||Object.values(r.globalCookies).some(D=>D)));function h(D){r.setGlobalAuth(D)}const g=L([]);Ze(()=>r.globalHeaders,D=>{g.value=Object.entries(D).map(([M,N])=>({key:M,value:N}))},{immediate:!0});function b(){const D={};for(const{key:M,value:N}of g.value)M.trim()&&(D[M.trim()]=N);r.setGlobalHeaders(D)}function m(){g.value.push({key:"",value:""})}function x(D){g.value.splice(D,1),b()}const S=["Authorization","X-API-Key","X-Auth-Token","X-Token","X-Staff-Name","X-Real-Staff-Name","Content-Type","Accept","Accept-Language","Accept-Encoding","Cache-Control","Pragma","X-Request-ID","X-Correlation-ID","X-Trace-ID","X-User-ID","X-Tenant-ID","X-Forwarded-For","X-Real-IP","User-Agent","Referer","Origin"],C=L(null);function y(D){const M=D.trim().toLowerCase();return M?S.filter(N=>N.toLowerCase().includes(M)):S}function R(D){C.value=D}function P(){setTimeout(()=>{C.value=null},150)}function w(D,M){g.value[D].key=M,C.value=null,b()}const _=L(!1),B=L(null);function z(D){B.value=D,_.value=!0}function O(D){const M=B.value;M!==null&&(g.value[M].value=D,b())}const A=L([]);Ze(()=>r.globalCookies,D=>{A.value=Object.entries(D).map(([M,N])=>({key:M,value:N}))},{immediate:!0});function U(){const D={};for(const{key:M,value:N}of A.value)M.trim()&&(D[M.trim()]=N);r.setGlobalCookies(D)}function W(){A.value.push({key:"",value:""})}function F(D){A.value.splice(D,1),U()}function T(){const D=document.cookie;if(!D.trim())return;const M=D.split(";").map(ve=>{const J=ve.indexOf("=");return J===-1?null:{key:ve.slice(0,J).trim(),value:ve.slice(J+1).trim()}}).filter(ve=>ve!==null&&ve.key!==""),N=new Map(A.value.map(ve=>[ve.key,ve.value]));for(const{key:ve,value:J}of M)N.set(ve,J);A.value=Array.from(N.entries()).map(([ve,J])=>({key:ve,value:J})),U()}const k=E(()=>document.cookie.trim()?document.cookie.split(";").filter(D=>D.includes("=")).length:0),I=L(!1),Y=Ex(),j=L(!1);async function ee(){if(n.specSourceUrl)try{if(navigator.clipboard)await navigator.clipboard.writeText(n.specSourceUrl);else{const D=document.createElement("textarea");D.value=n.specSourceUrl,D.style.position="fixed",D.style.opacity="0",document.body.appendChild(D),D.select(),document.execCommand("copy"),document.body.removeChild(D)}Y.success("链接已复制")}catch{Y.error("复制失败")}}return(D,M)=>(me(),Re("header",vF,[K("div",gF,[Se(VA),M[12]||(M[12]=K("span",{class:"logo"},"FDOC",-1)),he(n).specTitle?(me(),Re("span",mF,Ve(he(n).specTitle),1)):et("",!0)]),K("div",bF,[he(n).servers.length>0?(me(),mt(he(Lo),{key:0,show:I.value,trigger:"manual",placement:"bottom-end","show-arrow":!0,onClickoutside:M[1]||(M[1]=N=>I.value=!1)},{trigger:He(()=>[Se(he(ht),{size:"small",quaternary:"",onClick:M[0]||(M[0]=N=>I.value=!I.value)},{default:He(()=>[...M[13]||(M[13]=[it(" 🌐 服务器 ",-1)])]),_:1})]),default:He(()=>[K("div",xF,[M[14]||(M[14]=K("div",{class:"section-title"},"服务器列表",-1)),M[15]||(M[15]=K("div",{class:"section-desc"},"后端提供的服务器列表,仅供参考",-1)),(me(!0),Re(Ue,null,To(he(n).servers,N=>(me(),Re("div",{key:N.url,class:"server-item"},[K("span",yF,Ve(N.url),1),N.description?(me(),Re("span",CF,Ve(N.description),1)):et("",!0)]))),128))])]),_:1},8,["show"])):et("",!0),he(n).groups.length>0?(me(),mt(he(Lo),{key:1,show:d.value,trigger:"manual",placement:"bottom-end","show-arrow":!0,onClickoutside:M[6]||(M[6]=()=>{_.value||(d.value=!1)})},{trigger:He(()=>[Se(he(ht),{size:"small",type:v.value?"primary":"default",quaternary:!v.value,onClick:M[2]||(M[2]=N=>d.value=!d.value)},{default:He(()=>[it(" 🔑 "+Ve(p.value),1)]),_:1},8,["type","quaternary"])]),default:He(()=>[K("div",wF,[K("div",SF,[K("button",{class:Pt(["ga-tab",{"ga-tab--active":u.value==="auth"}]),onClick:M[3]||(M[3]=N=>u.value="auth")},"认证",2),K("button",{class:Pt(["ga-tab",{"ga-tab--active":u.value==="headers"}]),onClick:M[4]||(M[4]=N=>u.value="headers")},[M[16]||(M[16]=it(" Headers ",-1)),g.value.length?(me(),Re("span",kF,Ve(g.value.length),1)):et("",!0)],2),K("button",{class:Pt(["ga-tab",{"ga-tab--active":u.value==="cookies"}]),onClick:M[5]||(M[5]=N=>u.value="cookies")},[M[17]||(M[17]=it(" Cookies ",-1)),A.value.length?(me(),Re("span",RF,Ve(A.value.length),1)):et("",!0)],2)]),u.value==="auth"?(me(),Re(Ue,{key:0},[M[18]||(M[18]=K("div",{class:"section-desc"},"适用于所有接口,接口级设置优先",-1)),Se(By,{"model-value":he(r).globalAuth,"onUpdate:modelValue":h},null,8,["model-value"])],64)):u.value==="headers"?(me(),Re(Ue,{key:1},[M[20]||(M[20]=K("div",{class:"section-desc"},"随每个请求发送的全局请求头,接口级同名 Header 优先",-1)),K("div",PF,[(me(!0),Re(Ue,null,To(g.value,(N,ve)=>(me(),Re("div",{key:ve,class:"ga-header-entry"},[K("div",_F,[K("div",$F,[Ut(K("input",{"onUpdate:modelValue":J=>N.key=J,class:"doc-hi doc-hi--key",placeholder:"Header",autocomplete:"off",onChange:b,onFocus:J=>R(ve),onBlur:P},null,40,TF),[[Ei,N.key]]),C.value===ve&&y(N.key).length>0?(me(),Re("div",zF,[(me(!0),Re(Ue,null,To(y(N.key),J=>(me(),Re("button",{key:J,class:"key-suggestion-item",onMousedown:jr(Ce=>w(ve,J),["prevent"])},Ve(J),41,EF))),128))])):et("",!0)]),Ut(K("input",{"onUpdate:modelValue":J=>N.value=J,class:"doc-hi doc-hi--val",placeholder:"Value",onChange:b},null,40,OF),[[Ei,N.value]]),K("button",{class:Pt(["doc-ls-btn",{"doc-ls-btn--active":B.value===ve&&_.value}]),title:"从 localStorage 取值",onClick:J=>z(ve)},"LS",10,IF),K("button",{class:"doc-header-del",onClick:J=>x(ve)},[...M[19]||(M[19]=[K("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round"},[K("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,AF)])]))),128)),g.value.length===0?(me(),Re("p",FF,"暂无全局请求头")):et("",!0),K("button",{class:"doc-add-btn ga-add-btn",onClick:m},"+ 添加")])],64)):(me(),Re(Ue,{key:2},[M[22]||(M[22]=K("div",{class:"section-desc"},"随每个请求发送的全局 Cookie,接口级同名 Cookie 附加在后",-1)),k.value>0?(me(),Re("button",{key:0,class:"doc-add-btn ga-load-btn",onClick:T},"从当前页面加载 ("+Ve(k.value)+")",1)):et("",!0),K("div",MF,[(me(!0),Re(Ue,null,To(A.value,(N,ve)=>(me(),Re("div",{key:ve,class:"doc-header-row"},[Ut(K("input",{"onUpdate:modelValue":J=>N.key=J,class:"doc-hi doc-hi--key",placeholder:"Name",onChange:U},null,40,BF),[[Ei,N.key]]),Ut(K("input",{"onUpdate:modelValue":J=>N.value=J,class:"doc-hi doc-hi--val",placeholder:"Value",onChange:U},null,40,LF),[[Ei,N.value]]),K("button",{class:"doc-header-del",onClick:J=>F(ve)},[...M[21]||(M[21]=[K("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round"},[K("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,DF)]))),128)),A.value.length===0?(me(),Re("p",HF,"暂无全局 Cookie")):et("",!0),K("button",{class:"doc-add-btn ga-add-btn",onClick:W},"+ 添加")])],64))])]),_:1},8,["show"])):et("",!0),Se(Dy,{show:_.value,"onUpdate:show":M[7]||(M[7]=N=>_.value=N),onSelect:O},null,8,["show"]),Se(he(Lo),{show:j.value,trigger:"manual",placement:"bottom-end","show-arrow":!0,onClickoutside:M[10]||(M[10]=N=>j.value=!1)},{trigger:He(()=>[Se(he(ht),{size:"small",quaternary:"",onClick:M[8]||(M[8]=N=>j.value=!j.value)},{default:He(()=>[...M[23]||(M[23]=[it(" 文档 ",-1)])]),_:1})]),default:He(()=>[K("div",NF,[he(n).rawSpec?(me(),Re(Ue,{key:0},[K("div",jF,[K("div",WF,[M[25]||(M[25]=K("span",{class:"doc-meta-label"},"来源",-1)),he(n).specSourceUrl?(me(),Re(Ue,{key:0},[K("a",{class:"doc-meta-link",href:he(n).specSourceUrl,target:"_blank",rel:"noopener",title:he(n).specSourceUrl},Ve(a.value),9,VF),K("button",{class:"doc-icon-btn",title:"复制链接",onClick:ee},[...M[24]||(M[24]=[K("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[K("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),K("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1)])]),Se(Ly,{data:he(n).rawSpec,filename:`${he(n).specTitle||"openapi"}.json`,size:12},null,8,["data","filename"])],64)):(me(),Re(Ue,{key:1},[K("span",UF,Ve(a.value??"本地文件"),1),Se(Ly,{data:he(n).rawSpec,filename:`${he(n).specTitle||"openapi"}.json`,size:12},null,8,["data","filename"])],64))]),K("div",KF,[M[26]||(M[26]=K("span",{class:"doc-meta-label"},"加载时间",-1)),K("span",qF,Ve(s.value??"—"),1)])]),M[27]||(M[27]=K("div",{class:"doc-divider"},null,-1))],64)):et("",!0),K("div",{class:Pt(["doc-actions",{"doc-actions--row":he(n).specSourceUrl}])},[he(n).specSourceUrl?(me(),Re("button",{key:0,class:"doc-action-btn",disabled:he(i),onClick:c},[(me(),Re("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round",class:Pt({spin:he(i)})},[...M[28]||(M[28]=[K("polyline",{points:"23 4 23 10 17 10"},null,-1),K("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"},null,-1)])],2)),it(" "+Ve(he(i)?"刷新中…":"重新加载"),1)],8,GF)):et("",!0),K("button",{class:"doc-action-btn",onClick:M[9]||(M[9]=N=>{j.value=!1,he(n).openImporter()})},[M[29]||(M[29]=K("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[K("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),K("polyline",{points:"17 8 12 3 7 8"}),K("line",{x1:"12",y1:"3",x2:"12",y2:"15"})],-1)),it(" "+Ve(he(n).rawSpec?"导入新文档":"导入文档"),1)])],2)])]),_:1},8,["show"]),Se(he(OI),{value:e.isDark,size:"small","onUpdate:value":M[11]||(M[11]=N=>o("toggleTheme"))},null,8,["value"])])]))}}),[["__scopeId","data-v-a3e00ef5"]]);function YF(e){const t=L(""),o=L("");let n=null;Ze(t,l=>{n&&clearTimeout(n),n=setTimeout(()=>{o.value=l.trim().toLowerCase()},300)});const r=E(()=>{const l=o.value;return l?e().map(a=>{const s=a.tag.toLowerCase().includes(l),c=a.endpoints.filter(d=>s||d.path.toLowerCase().includes(l)||(d.summary??"").toLowerCase().includes(l)||(d.operationId??"").toLowerCase().includes(l));return{...a,endpoints:c}}).filter(a=>a.endpoints.length>0):e()});function i(){t.value="",o.value=""}return{query:t,filteredGroups:r,clearSearch:i}}const JF={class:"sidebar-search"},ZF={key:0,class:"sidebar-empty"},QF={key:1,class:"sidebar-empty"},eM={key:2,class:"menu-wrap"},tM=["title"],oM={class:"info-path-row"},nM={class:"info-path"},rM={class:"info-field"},iM={class:"info-value"},lM={key:0,class:"info-field"},aM={class:"info-value"},sM={key:1,class:"info-field"},cM={class:"info-value"},dM={key:2,class:"info-field"},uM={class:"info-value"},fM={key:3,class:"info-field"},hM=Ot(ge({__name:"Sidebar",setup(e){const t=_r(),o=Av(),{query:n,filteredGroups:r}=YF(()=>t.groups),i=L(!1);function l(){i.value=!i.value}const a={GET:"#18a058",POST:"#2080f0",PUT:"#f0a020",PATCH:"#8a2be2",DELETE:"#d03050",HEAD:"#888",OPTIONS:"#888"},s=L(null),c=L(""),d=L(0),u=L(!1);let p=null;function v(y,R,P){var w;p&&(clearTimeout(p),p=null),s.value=y,c.value=R,d.value=((w=P.currentTarget.closest(".n-menu-item"))==null?void 0:w.getBoundingClientRect().top)??P.currentTarget.getBoundingClientRect().top,u.value=!0}function h(){p=setTimeout(()=>{u.value=!1},120)}function g(){p&&(clearTimeout(p),p=null)}function b(){p=setTimeout(()=>{u.value=!1},80)}function m(y,R){const P=y.operationId??y.summary??y.path,w=P!==y.path?y.path:null,_=a[y.method]??"#888";return f("span",{class:"mi-root",onMouseenter:B=>v(y,R,B),onMouseleave:h},[f("span",{class:"mi-row"},[f("span",{class:"mi-method",style:{color:_}},y.method),f("span",{class:"mi-primary",title:P},P)]),w?f("span",{class:"mi-secondary",title:w},w):null])}const x=E(()=>r.value.map(y=>({key:`group:${y.tag}`,label:y.tag,children:y.endpoints.map(R=>({key:R.id,label:()=>m(R,y.tag)}))}))),S=E(()=>r.value.map(y=>`group:${y.tag}`));function C(y){const R=String(y);R.startsWith("group:")||o.push({query:{ep:R}})}return(y,R)=>(me(),Re(Ue,null,[K("aside",{class:Pt(["sidebar",{"sidebar--collapsed":i.value}])},[i.value?et("",!0):(me(),Re(Ue,{key:0},[K("div",JF,[Se(he(qt),{value:he(n),"onUpdate:value":R[0]||(R[0]=P=>It(n)?n.value=P:null),size:"small",placeholder:"搜索接口...",clearable:""},null,8,["value"])]),Se(he(Yu),{class:"sidebar-scroll"},{default:He(()=>[he(t).groups.length===0?(me(),Re("p",ZF," 导入规范后显示接口列表 ")):he(r).length===0?(me(),Re("p",QF," 无匹配接口 ")):(me(),Re("div",eM,[Se(he(uI),{options:x.value,value:he(t).currentEndpointId,"default-expanded-keys":S.value,"root-indent":14,indent:12,"item-height":44,"onUpdate:value":C},null,8,["options","value","default-expanded-keys"])]))]),_:1})],64)),K("button",{class:"sidebar-toggle",title:i.value?"展开侧栏":"收起侧栏",onClick:l},[(me(),Re("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:$o({transform:i.value?"rotate(180deg)":""})},[...R[1]||(R[1]=[K("polyline",{points:"11 17 6 12 11 7"},null,-1),K("polyline",{points:"18 17 13 12 18 7"},null,-1)])],4))],8,tM)],2),Se(Jt,{name:"info-fade"},{default:He(()=>[u.value&&s.value?(me(),Re("div",{key:0,class:"ep-info-panel",style:$o({top:`${d.value}px`}),onMouseenter:g,onMouseleave:b},[K("div",oM,[K("span",{class:"info-method",style:$o({color:a[s.value.method]})},Ve(s.value.method),5),K("code",nM,Ve(s.value.path),1)]),R[7]||(R[7]=K("div",{class:"info-divider"},null,-1)),K("div",rM,[R[2]||(R[2]=K("span",{class:"info-label"},"Tag",-1)),K("span",iM,Ve(c.value),1)]),s.value.operationId?(me(),Re("div",lM,[R[3]||(R[3]=K("span",{class:"info-label"},"operationId",-1)),K("span",aM,Ve(s.value.operationId),1)])):et("",!0),s.value.summary?(me(),Re("div",sM,[R[4]||(R[4]=K("span",{class:"info-label"},"Summary",-1)),K("span",cM,Ve(s.value.summary),1)])):et("",!0),s.value.description?(me(),Re("div",dM,[R[5]||(R[5]=K("span",{class:"info-label"},"Desc",-1)),K("span",uM,Ve(s.value.description),1)])):et("",!0),s.value.deprecated?(me(),Re("div",fM,[...R[6]||(R[6]=[K("span",{class:"info-label"},"Status",-1),K("span",{class:"info-value",style:{color:"#f59e0b"}},"deprecated",-1)])])):et("",!0)],36)):et("",!0)]),_:1})],64))}}),[["__scopeId","data-v-bfbcccf4"]]),Hy=Ot(ge({__name:"MethodBadge",props:{method:{}},setup(e){const t=e;return(o,n)=>(me(),Re("span",{class:Pt(["method-badge",`method-${t.method.toLowerCase()}`])},Ve(t.method),3))}}),[["__scopeId","data-v-6bc10dbf"]]),pM=["title"],vM={key:0,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},gM={key:1,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},In=Ot(ge({__name:"CopyButton",props:{text:{}},setup(e){const t=e,o=L(!1);async function n(){try{if(navigator.clipboard)await navigator.clipboard.writeText(t.text);else{const r=document.createElement("textarea");r.value=t.text,r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r)}o.value=!0,setTimeout(()=>o.value=!1,1200)}catch{}}return(r,i)=>(me(),Re("button",{class:Pt(["copy-btn",{"copy-btn--ok":o.value}]),title:o.value?"已复制":"复制",onClick:jr(n,["stop"])},[o.value?(me(),Re("svg",gM,[...i[1]||(i[1]=[K("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(me(),Re("svg",vM,[...i[0]||(i[0]=[K("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),K("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])]))],10,pM))}}),[["__scopeId","data-v-fc68ea39"]]),mM={class:"schema-viewer"},bM={key:0,class:"circular-hint"},xM={key:1,class:"combiner-hint"},yM={class:"combiner-label"},CM={class:"combiner-count"},wM={key:2,class:"empty-hint"},SM=Ot(ge({__name:"SchemaViewer",props:{schema:{},maxDepth:{default:5},internalDepth:{default:0}},setup(e){const t=e,o=L(!1),n=L(null),r=L("");function i(x,S){r.value=x,n.value=S,o.value=!0}function l(x){if(x._circular)return"circular";if(x._combiner){if(x._combiner==="allOf"){const C=x.type??(x.properties||s(x)?"object":"any");return C==="array"&&x.items?"array":x.enum?`${C} enum`:C}return x.properties||s(x)?"object":x._combiner}const S=x.type??"object";return S==="array"&&x.items?"array":x.enum?`${S} enum`:S}function a(x){let S={},C=[...x.required??[]];if(x._combiner&&x._subSchemas)for(const y of x._subSchemas){const R=a(y);S={...S,...R.props},C=C.concat(R.required)}return x.properties&&(S={...S,...x.properties}),{props:S,required:C}}function s(x){return x.properties?!0:x._combiner&&x._subSchemas?x._subSchemas.some(s):x.type==="array"&&x.items?s(x.items):!1}function c(x){if(x.type==="array"&&x.items)return x.items;if(x._combiner==="allOf"&&x._subSchemas){for(const S of x._subSchemas)if(S.type==="array"&&S.items)return S.items}return x}function d(x,S,C,y){const{props:R}=a(x);return Object.keys(R).length===0?[]:Object.entries(R).map(([P,w])=>{const _=`${S}.${P}`,B=c(w),z=a(B),O=C<t.maxDepth&&Object.keys(z.props).length>0?d(B,_,C+1,new Set(z.required)):void 0;return{key:_,name:P,type:l(w),required:y.has(P),description:w.description??"",schema:w,depth:C,children:O&&O.length>0?O:void 0}})}const u=E(()=>{const x=t.schema;if(x._circular)return[];const{required:S}=a(x);return d(x,"root",t.internalDepth,new Set(S))}),p=L([]);function v(x){return x.depth>0?{class:`row-depth-${Math.min(x.depth,4)}`}:{}}const h={string:"#0ea5e9",number:"#f59e0b",integer:"#f59e0b",boolean:"#8b5cf6",array:"#10b981",object:"#6366f1",allOf:"#64748b",oneOf:"#64748b",anyOf:"#64748b",circular:"#ef4444"};function g(x){const S=x.split(" ")[0];return h[S]??"#94a3b8"}function b(x){const S=x.enum,C=x.enumVarnames,y=x.enumDescriptions,R=!!(C||y),P=()=>f(io,{size:"small",bordered:!1,style:{fontSize:"11px",cursor:"pointer",color:"#64748b",backgroundColor:"#64748b18"}},()=>`enum(${S.length})`),w=()=>f("div",{style:{maxWidth:"360px",maxHeight:"280px",overflowY:"auto"}},S.map((_,B)=>{const z=[],O=JSON.stringify(_);return z.push(f("div",{style:{display:"flex",alignItems:"baseline",gap:"6px"}},[f("code",{style:{fontFamily:"var(--font-mono)",fontSize:"12px",color:"#0ea5e9",background:"var(--color-code-bg, #f1f5f9)",padding:"1px 5px",borderRadius:"3px",flexShrink:0}},O),...C!=null&&C[B]?[f("span",{style:{fontFamily:"var(--font-mono)",fontSize:"11px",color:"#8b5cf6"}},C[B])]:[]])),y!=null&&y[B]&&z.push(f("div",{style:{fontSize:"11px",color:"var(--color-text-muted, #94a3b8)",paddingLeft:"4px",marginTop:"2px",lineHeight:"1.4"}},y[B])),f("div",{style:{padding:"4px 0",borderBottom:B<S.length-1?"1px solid var(--color-border, #e2e8f0)":"none"}},z)}));if(!R){const _=S.map(B=>JSON.stringify(B)).join(" | ");return f(Lo,{trigger:"hover"},{trigger:P,default:()=>f("code",{style:{fontSize:"12px"}},_)})}return f(Lo,{trigger:"hover",placement:"bottom"},{trigger:P,default:w})}const m=E(()=>[{key:"name",title:"字段名",width:360,tree:!0,render(x){return f("span",{style:{flex:"1",minWidth:"0",overflow:"hidden"}},[f(Gs,{trigger:"hover",placement:"top-start",delay:400},{trigger:()=>f("span",{style:{fontFamily:"var(--font-mono)",fontSize:"13px",display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",...x.depth>0?{paddingLeft:`${x.depth*10}px`}:{}}},x.name),default:()=>f("span",{style:{fontFamily:"var(--font-mono)",fontSize:"12px"}},x.name)})])}},{key:"type",title:"类型",width:140,render(x){const S=x.type,C=g(S);return x.schema._circular?f("span",{style:{color:"#ef4444",fontSize:"12px"}},"⟳ 循环引用"):x.schema._combiner&&x.schema._combiner!=="allOf"?f(ht,{text:!0,size:"tiny",style:{color:C,fontFamily:"var(--font-mono)",fontSize:"12px"},onClick:()=>i(x.name,x.schema)},()=>`${S} ↗`):f(io,{size:"small",bordered:!1,style:{backgroundColor:`${C}18`,color:C,fontFamily:"var(--font-mono)",fontSize:"11px",padding:"0 6px"}},()=>S)}},{key:"required",title:"必填",width:50,align:"center",render(x){const S=x.required?"#10b981":"#d1d5db",C=x.required?"M20 6L9 17l-5-5":"M18 6L6 18M6 6l12 12";return f("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:S,"stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[f("path",{d:C})])}},{key:"description",title:"描述",render(x){const S=x.description,C=[];return S&&C.push(f("span",{style:{fontSize:"13px"}},S)),x.schema.deprecated&&C.push(f(io,{size:"small",type:"warning",bordered:!1,style:{marginLeft:"6px",fontSize:"11px"}},()=>"deprecated")),x.schema.enum&&C.push(b(x.schema)),f("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"4px"}},C)}}]);return(x,S)=>{var y;const C=bC("SchemaViewer",!0);return me(),Re("div",mM,[e.schema._circular?(me(),Re("div",bM,"⟳ 循环引用")):e.schema._combiner&&e.schema._combiner!=="allOf"&&!e.schema.properties?(me(),Re("div",xM,[K("span",yM,Ve(e.schema._combiner),1),K("span",CM,"("+Ve(((y=e.schema._subSchemas)==null?void 0:y.length)??0)+" schemas)",1),(me(!0),Re(Ue,null,To(e.schema._subSchemas,(R,P)=>(me(),mt(he(ht),{key:P,size:"tiny",text:"",style:{"margin-left":"8px"},onClick:w=>i(`${e.schema._combiner}[${P}]`,R)},{default:He(()=>[it(" 查看 ["+Ve(P)+"] ",1)]),_:2},1032,["onClick"]))),128))])):u.value.length===0?(me(),Re("div",wM,"无 Schema 字段")):(me(),mt(he(Du),{key:3,columns:m.value,data:u.value,"row-key":R=>R.key,"expanded-row-keys":p.value,"row-props":v,indent:20,size:"small",pagination:!1,"onUpdate:expandedRowKeys":S[0]||(S[0]=R=>p.value=R)},null,8,["columns","data","row-key","expanded-row-keys"])),Se(he(el),{show:o.value,"onUpdate:show":S[2]||(S[2]=R=>o.value=R),style:{width:"600px","max-height":"80vh"},"mask-closable":!0},{default:He(()=>[Se(he(ra),{title:r.value,bordered:!1,size:"small",style:{"max-height":"80vh","overflow-y":"auto"}},{"header-extra":He(()=>[Se(he(ht),{text:"",size:"small",onClick:S[1]||(S[1]=R=>o.value=!1)},{default:He(()=>[...S[3]||(S[3]=[it("✕",-1)])]),_:1})]),default:He(()=>[n.value?(me(),mt(C,{key:0,schema:n.value,"max-depth":e.maxDepth,"internal-depth":0},null,8,["schema","max-depth"])):et("",!0)]),_:1},8,["title"])]),_:1},8,["show"])])}}}),[["__scopeId","data-v-bb66e54d"]]),kM={class:"pe"},RM={class:"pe-cell pe-cell--check"},PM={class:"pe-cell pe-cell--key"},_M={class:"pe-cell pe-cell--val"},$M=["onClick"],TM={class:"pe-cell pe-cell--act"},zM=["disabled","onClick"],sc=Ot(ge({__name:"ParamEditor",props:{modelValue:{},lockedKeys:{default:()=>[]},requiredKeys:{default:()=>[]},cachedDisabledKeys:{default:void 0},keySuggestions:{default:()=>[]},placeholder:{default:"value"}},emits:["update:modelValue","update:disabledKeys"],setup(e,{emit:t}){const o=e,n=t,r=L(new Set),i=L("");Ze(()=>o.modelValue,S=>{const C=Object.keys(S).sort().join(",");if(C!==i.value){if(i.value=C,o.cachedDisabledKeys){const y=new Set(o.cachedDisabledKeys),R=new Set(Object.keys(S)),P=new Set;for(const w of y)R.has(w)&&P.add(w);r.value=P}else{const y=new Set(o.requiredKeys),R=new Set;for(const P of Object.keys(S))y.has(P)||R.add(P);r.value=R}n("update:disabledKeys",[...r.value])}},{immediate:!0});const l=E(()=>{const S=new Set(o.lockedKeys);return Object.entries(o.modelValue).map(([C,y])=>({key:C,value:y,locked:S.has(C),enabled:!r.value.has(C)}))});function a(){n("update:disabledKeys",[...r.value])}function s(S,C){C?r.value.delete(S):r.value.add(S),r.value=new Set(r.value),a()}function c(S,C){n("update:modelValue",{...o.modelValue,[S]:C})}function d(S,C){const y={};for(const[R,P]of Object.entries(o.modelValue))y[R===S?C:R]=P;n("update:modelValue",y)}function u(S){const C={...o.modelValue};delete C[S],r.value.delete(S),n("update:modelValue",C)}function p(){if(v.value){let S="";for(;o.modelValue[S]!==void 0;)S=`_${S}`;n("update:modelValue",{...o.modelValue,[S]:""})}else{let S=1;for(;o.modelValue[`key${S}`]!==void 0;)S++;n("update:modelValue",{...o.modelValue,[`key${S}`]:""})}}const v=E(()=>o.keySuggestions.length>0);function h(S){const C=new Set(Object.keys(o.modelValue));C.delete(S);const y=S.replace(/^_+$/,"").toLowerCase();return o.keySuggestions.filter(R=>!C.has(R)&&(!y||R.toLowerCase().includes(y)))}const g=L(!1),b=L(null);function m(S){b.value=S,g.value=!0}function x(S){b.value!==null&&c(b.value,S)}return(S,C)=>(me(),Re("div",kM,[Se(Dy,{show:g.value,"onUpdate:show":C[0]||(C[0]=y=>g.value=y),onSelect:x},null,8,["show"]),C[4]||(C[4]=$l('<div class="pe-header" data-v-2006b456><span class="pe-hcell pe-hcell--check" data-v-2006b456></span><span class="pe-hcell pe-hcell--key" data-v-2006b456>参数名</span><span class="pe-hcell pe-hcell--eq" data-v-2006b456></span><span class="pe-hcell pe-hcell--val" data-v-2006b456>参数值</span><span class="pe-hcell pe-hcell--act" data-v-2006b456></span></div>',1)),(me(!0),Re(Ue,null,To(l.value,(y,R)=>(me(),Re("div",{key:R,class:Pt(["pe-row",{"pe-row--disabled":!y.enabled}])},[K("span",RM,[Se(he(ia),{checked:y.enabled,size:"small","onUpdate:checked":P=>s(y.key,P)},null,8,["checked","onUpdate:checked"])]),K("span",PM,[v.value&&!y.locked?(me(),mt(he(GT),{key:0,value:/^_*$/.test(y.key)?"":y.key,size:"small",clearable:"",options:h(y.key).map(P=>({label:P,value:P})),placeholder:"输入或选择 header","get-show":()=>!0,class:"pe-input pe-autocomplete","onUpdate:value":P=>d(y.key,P),onSelect:P=>d(y.key,P)},null,8,["value","options","onUpdate:value","onSelect"])):(me(),mt(he(qt),{key:1,value:y.key,size:"tiny",bordered:!1,readonly:y.locked,clearable:"",placeholder:"key",class:"pe-input","onUpdate:value":P=>d(y.key,P)},null,8,["value","readonly","onUpdate:value"]))]),C[2]||(C[2]=K("span",{class:"pe-cell pe-cell--eq"},"=",-1)),K("span",_M,[Se(he(qt),{value:y.value,size:"tiny",bordered:!1,clearable:"",placeholder:e.placeholder,class:"pe-input","onUpdate:value":P=>c(y.key,P)},null,8,["value","placeholder","onUpdate:value"]),v.value?(me(),Re("button",{key:0,class:Pt(["pe-ls-btn",{"pe-ls-btn--active":b.value===y.key&&g.value}]),title:"从 localStorage 取值",onClick:jr(P=>m(y.key),["stop"])},"LS",10,$M)):et("",!0)]),K("span",TM,[K("button",{class:"pe-del",disabled:y.locked,onClick:P=>u(y.key)},[...C[1]||(C[1]=[$l('<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-2006b456><polyline points="3 6 5 6 21 6" data-v-2006b456></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" data-v-2006b456></path><path d="M10 11v6" data-v-2006b456></path><path d="M14 11v6" data-v-2006b456></path><path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2" data-v-2006b456></path></svg>',1)])],8,zM)])],2))),128)),K("div",{class:"pe-add",onClick:p},[...C[3]||(C[3]=[K("svg",{class:"pe-add-icon",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[K("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),K("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1),K("span",null,"添加参数",-1)])])]))}}),[["__scopeId","data-v-2006b456"]]);function zr(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function EM(e){try{return JSON.parse(e),!0}catch{return!1}}const OM={class:"jbe"},IM={class:"jbe-toolbar"},AM={class:"jbe-wrap"},FM=Ot(ge({__name:"JsonBodyEditor",props:{modelValue:{default:null},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=_i(e,"modelValue");function o(){if(t.value)try{t.value=zr(JSON.parse(t.value))}catch{}}const n=()=>!t.value||EM(t.value);return(r,i)=>(me(),Re("div",OM,[K("div",IM,[K("span",{class:Pt(["jbe-hint",{"jbe-hint--err":!n()}])},Ve(n()?"application/json":"⚠ JSON 格式错误"),3),Se(he(ht),{size:"tiny",text:"",onClick:o},{default:He(()=>[...i[1]||(i[1]=[it("格式化",-1)])]),_:1})]),K("div",AM,[Se(he(qt),{value:t.value,"onUpdate:value":i[0]||(i[0]=l=>t.value=l),type:"textarea",placeholder:'{ "key": "value" }',rows:10,bordered:!1,status:n()?void 0:"error",class:"jbe-textarea"},null,8,["value","status"])])]))}}),[["__scopeId","data-v-4eb0272b"]]),MM=ge({__name:"FormBodyEditor",props:{modelValue:{default:null},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=_i(e,"modelValue"),o=E({get(){const n={};if(!t.value)return n;try{new URLSearchParams(t.value).forEach((r,i)=>{n[i]=r})}catch{}return n},set(n){const r=new URLSearchParams(n);t.value=r.toString()||null}});return(n,r)=>(me(),mt(sc,{modelValue:o.value,"onUpdate:modelValue":r[0]||(r[0]=i=>o.value=i),placeholder:"value"},null,8,["modelValue"]))}}),BM={class:"mp"},LM={class:"mp-cell mp-cell--check"},DM={class:"mp-cell mp-cell--key"},HM={class:"mp-cell mp-cell--type"},NM={class:"mp-cell mp-cell--val"},jM={key:1,class:"mp-file-row"},WM={class:"mp-cell mp-cell--act"},VM=["onClick"],UM={class:"mp-footer"},KM={key:0,class:"mp-stats"},qM=Ot(ge({__name:"MultipartEditor",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const o=e,n=t,r=[{label:"Text",value:"text"},{label:"File",value:"file"}];function i(){return crypto.randomUUID().slice(0,8)}function l(h,g){n("update:modelValue",o.modelValue.map(b=>b.id===h?{...b,...g}:b))}function a(h){n("update:modelValue",o.modelValue.filter(g=>g.id!==h))}function s(){n("update:modelValue",[...o.modelValue,{id:i(),key:"",type:"text",value:"",enabled:!0}])}function c(){n("update:modelValue",[...o.modelValue,{id:i(),key:"",type:"file",value:"",file:null,enabled:!0}])}function d(h,g){var m;const b=((m=g.fileList[0])==null?void 0:m.file)??null;l(h,{file:b,value:(b==null?void 0:b.name)??""})}const u=h=>h?`${(h.size/1024).toFixed(1)} KB`:"",p=E(()=>o.modelValue.filter(h=>h.enabled).length),v=E(()=>o.modelValue.length);return(h,g)=>(me(),Re("div",BM,[g[4]||(g[4]=$l('<div class="mp-header" data-v-dac4ff7c><span class="mp-hcell mp-hcell--check" data-v-dac4ff7c></span><span class="mp-hcell mp-hcell--key" data-v-dac4ff7c>字段名</span><span class="mp-hcell mp-hcell--type" data-v-dac4ff7c>类型</span><span class="mp-hcell mp-hcell--val" data-v-dac4ff7c>值</span><span class="mp-hcell mp-hcell--act" data-v-dac4ff7c></span></div>',1)),(me(!0),Re(Ue,null,To(e.modelValue,b=>(me(),Re("div",{key:b.id,class:Pt(["mp-row",{"mp-row--disabled":!b.enabled}])},[K("span",LM,[Se(he(ia),{checked:b.enabled,size:"small","onUpdate:checked":m=>l(b.id,{enabled:m})},null,8,["checked","onUpdate:checked"])]),K("span",DM,[Se(he(qt),{value:b.key,size:"tiny",bordered:!1,placeholder:"field name",class:"mp-input","onUpdate:value":m=>l(b.id,{key:m})},null,8,["value","onUpdate:value"])]),K("span",HM,[Se(he(la),{value:b.type,size:"tiny",options:r,bordered:!1,style:{width:"72px"},"onUpdate:value":m=>l(b.id,{type:m,value:"",file:null})},null,8,["value","onUpdate:value"])]),K("span",NM,[b.type==="text"?(me(),mt(he(qt),{key:0,value:b.value,size:"tiny",bordered:!1,placeholder:"value",class:"mp-input","onUpdate:value":m=>l(b.id,{value:m})},null,8,["value","onUpdate:value"])):(me(),Re("div",jM,[Se(he(oA),{max:1,"default-upload":!1,"show-file-list":!1,onChange:m=>d(b.id,m)},{default:He(()=>[Se(he(ht),{size:"tiny",quaternary:"",class:"mp-file-btn"},{default:He(()=>[it(Ve(b.file?b.file.name:"选择文件..."),1)]),_:2},1024)]),_:2},1032,["onChange"]),b.file?(me(),mt(he(io),{key:0,size:"small",bordered:!1,class:"mp-file-size"},{default:He(()=>[it(Ve(u(b.file)),1)]),_:2},1024)):et("",!0)]))]),K("span",WM,[K("button",{class:"mp-del",onClick:m=>a(b.id)},[...g[0]||(g[0]=[$l('<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-dac4ff7c><polyline points="3 6 5 6 21 6" data-v-dac4ff7c></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" data-v-dac4ff7c></path><path d="M10 11v6" data-v-dac4ff7c></path><path d="M14 11v6" data-v-dac4ff7c></path><path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2" data-v-dac4ff7c></path></svg>',1)])],8,VM)])],2))),128)),K("div",UM,[K("div",{class:"mp-add-btns"},[K("span",{class:"mp-add",onClick:s},[...g[1]||(g[1]=[K("svg",{class:"mp-add-icon",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[K("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),K("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1),it(" 文本字段 ",-1)])]),g[3]||(g[3]=K("span",{class:"mp-divider"},null,-1)),K("span",{class:"mp-add",onClick:c},[...g[2]||(g[2]=[K("svg",{class:"mp-add-icon",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[K("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),K("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1),it(" 文件字段 ",-1)])])]),v.value?(me(),Re("span",KM,Ve(p.value)+"/"+Ve(v.value)+" 已启用 ",1)):et("",!0)])]))}}),[["__scopeId","data-v-dac4ff7c"]]),GM=ge({__name:"RawBodyEditor",props:{modelValue:{default:null},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=_i(e,"modelValue");return(o,n)=>(me(),mt(he(qt),{value:t.value,"onUpdate:value":n[0]||(n[0]=r=>t.value=r),type:"textarea",placeholder:"请求体内容...",rows:10,style:{fontFamily:"var(--font-mono)",fontSize:"12.5px"}},null,8,["value"]))}}),XM={class:"xbe"},YM={class:"xbe-toolbar"},JM={class:"xbe-wrap"},ZM=Ot(ge({__name:"XmlBodyEditor",props:{modelValue:{default:null},modelModifiers:{}},emits:["update:modelValue"],setup(e){const t=_i(e,"modelValue");function o(){t.value&&(t.value=BA(t.value))}const n=()=>!t.value||MA(t.value);return(r,i)=>(me(),Re("div",XM,[K("div",YM,[K("span",{class:Pt(["xbe-hint",{"xbe-hint--err":!n()}])},Ve(n()?"application/xml":"⚠ XML 格式错误"),3),Se(he(ht),{size:"tiny",text:"",onClick:o},{default:He(()=>[...i[1]||(i[1]=[it("格式化",-1)])]),_:1})]),K("div",JM,[Se(he(qt),{value:t.value,"onUpdate:value":i[0]||(i[0]=l=>t.value=l),type:"textarea",placeholder:'<?xml version="1.0" encoding="UTF-8"?>',rows:10,bordered:!1,status:n()?void 0:"error",class:"xbe-textarea"},null,8,["value","status"])])]))}}),[["__scopeId","data-v-893f3881"]]),QM={class:"bbe"},eB={key:0,class:"bbe-file"},tB={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{"flex-shrink":"0"}},oB={class:"bbe-name"},nB={class:"bbe-size"},rB=Ot(ge({__name:"BinaryBodyEditor",props:{modelValue:{default:null},modelModifiers:{}},emits:["update:modelValue"],setup(e){_i(e,"modelValue");const t=Tr(),o=E({get:()=>t.currentRequest.binaryFile??null,set:s=>{t.currentRequest.binaryFile=s}}),n=L(null);function r(){var s;(s=n.value)==null||s.click()}function i(s){var d;const c=((d=s.target.files)==null?void 0:d[0])??null;o.value=c,n.value&&(n.value.value="")}function l(){o.value=null}function a(s){return s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/(1024*1024)).toFixed(1)} MB`}return(s,c)=>(me(),Re("div",QM,[K("input",{ref_key:"inputRef",ref:n,type:"file",style:{display:"none"},onChange:i},null,544),o.value?(me(),Re("div",eB,[(me(),Re("svg",tB,[...c[0]||(c[0]=[K("path",{d:"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"},null,-1),K("polyline",{points:"13 2 13 9 20 9"},null,-1)])])),K("span",oB,Ve(o.value.name),1),K("span",nB,Ve(a(o.value.size)),1),K("button",{class:"bbe-clear",title:"移除",onClick:l},"✕")])):et("",!0),Se(he(ht),{size:"small",onClick:r},{default:He(()=>[it(Ve(o.value?"重新选择":"选择文件"),1)]),_:1})]))}}),[["__scopeId","data-v-eed78a60"]]),iB={class:"body-editor"},lB={class:"type-pills"},aB=["onClick"],sB={key:0,class:"editor-wrap"},cB={key:1,class:"body-none"},dB=Ot(ge({__name:"BodyEditor",props:Uh({availableTypes:{}},{modelValue:{default:null},modelModifiers:{}}),emits:Uh(["update:contentType"],["update:modelValue"]),setup(e,{emit:t}){const o=[{label:"none",value:"__none__"},{label:"form-data",value:"multipart/form-data"},{label:"x-www-form-urlencoded",value:"application/x-www-form-urlencoded"},{label:"JSON",value:"application/json"},{label:"XML",value:"application/xml"},{label:"Text",value:"text/plain"},{label:"Binary",value:"application/octet-stream"}],n=t,r=_i(e,"modelValue"),i=Tr(),l=E(()=>i.currentRequest.contentType??"application/json"),a=E(()=>i.currentRequest.contentType?i.currentRequest.contentType:"__none__"),s=E(()=>vi(l.value)),c=E(()=>s.value==="multipart"),d=E(()=>a.value==="__none__"),u=E(()=>{switch(s.value){case"json":return FM;case"form":return MM;case"xml":return ZM;case"binary":return rB;default:return GM}}),p=E({get:()=>i.currentRequest.multipartFields??[],set:g=>{i.currentRequest.multipartFields=g}});function v(g){var m;const b=i.currentRequest.contentType;b&&(i.currentRequest.bodyCache||(i.currentRequest.bodyCache={}),i.currentRequest.bodyCache[b]=r.value),g==="__none__"?(i.currentRequest.contentType="",r.value=null):(i.currentRequest.contentType=g,r.value=((m=i.currentRequest.bodyCache)==null?void 0:m[g])??null,n("update:contentType",g))}function h(g){return g==="__none__"?!i.currentRequest.contentType:i.currentRequest.contentType===g}return(g,b)=>(me(),Re("div",iB,[K("div",lB,[(me(),Re(Ue,null,To(o,m=>K("button",{key:m.value,class:Pt(["pill",{"pill--active":h(m.value)}]),onClick:x=>v(m.value)},Ve(m.label),11,aB)),64))]),d.value?(me(),Re("div",cB," 不发送请求体 ")):(me(),Re("div",sB,[c.value?(me(),mt(qM,{key:0,"model-value":p.value,"onUpdate:modelValue":b[0]||(b[0]=m=>p.value=m)},null,8,["model-value"])):(me(),mt(Hh(u.value),{key:1,modelValue:r.value,"onUpdate:modelValue":b[1]||(b[1]=m=>r.value=m)},null,8,["modelValue"]))]))]))}}),[["__scopeId","data-v-aa464c78"]]),uB={type:"inherit"},fB={class:"request-form"},hB={class:"url-bar"},pB={class:"req-toolbar"},vB={class:"curl-wrap"},gB={class:"curl-code"},mB={class:"curl-actions"},bB=Ot(ge({__name:"RequestForm",setup(e){const t=Tr(),o=_r(),n=E(()=>t.currentRequest),r=L("params"),i=E(()=>n.value.endpointId?o.allEndpoints.find(T=>T.id===n.value.endpointId):void 0),l=E(()=>{var T;return((T=i.value)==null?void 0:T.parameters.filter(k=>k.in==="query").map(k=>k.name))??[]}),a=E(()=>{var T;return((T=i.value)==null?void 0:T.parameters.filter(k=>k.in==="query"&&k.required).map(k=>k.name))??[]}),s=E(()=>{var T;return((T=i.value)==null?void 0:T.parameters.filter(k=>k.in==="header").map(k=>k.name))??[]}),c=E(()=>{var T;return((T=i.value)==null?void 0:T.parameters.filter(k=>k.in==="header"&&k.required).map(k=>k.name))??[]}),d=E(()=>{var T,k;return((k=(T=i.value)==null?void 0:T.requestBody)==null?void 0:k.mediaTypes.map(I=>I.mediaType))??["application/json"]}),u=E(()=>t.currentRequest.body??null),p=E(()=>t.currentRequest.auth??{...uB});function v(T){t.currentRequest.auth=T}const h=E(()=>p.value.type!=="none"&&p.value.type!=="inherit"),g={GET:"#18a058",POST:"#2080f0",PUT:"#f0a020",PATCH:"#8a2be2",DELETE:"#d03050",HEAD:"#888",OPTIONS:"#888"},b=E(()=>g[n.value.method??"GET"]??"#888");function m(T){const k=T.indexOf("?");if(k===-1){t.currentRequest.url=T;return}t.currentRequest.url=T.slice(0,k);const I={...t.currentRequest.query??{}};new URLSearchParams(T.slice(k+1)).forEach((j,ee)=>{I[ee]=j}),t.currentRequest.query=I}function x(T){t.currentRequest.query=T}function S(T){t.currentRequest.headers=T}function C(T){t.currentRequest.headers={...t.currentRequest.headers,Cookie:Object.entries(T).map(([k,I])=>`${k}=${I}`).join("; ")}}function y(T){t.currentRequest.contentType=T}const R=E(()=>{const T=n.value.url??"",k=n.value.query??{},I=t.disabledQueryKeys,Y=new URLSearchParams;for(const[ee,D]of Object.entries(k))D!==""&&!I.has(ee)&&Y.append(ee,D);const j=Y.toString();return j?`${T}?${j}`:T});function P(){i.value&&t.autoFill(i.value)}const w=L(!1),_=E(()=>t.toCurl());let B=null;Ze(()=>t.currentRequest,()=>{B&&clearTimeout(B),B=setTimeout(()=>t.saveCurrentToCache(),600)},{deep:!0});const z=["Accept","Accept-Encoding","Accept-Language","Authorization","Cache-Control","Content-Type","Cookie","Host","If-Match","If-None-Match","If-Modified-Since","Origin","Referer","User-Agent","X-Requested-With","X-Forwarded-For","X-Api-Key","X-Auth-Token","X-Token","X-Staff-Name","X-Real-Staff-Name","X-Request-Id","X-Trace-Id"],O=E(()=>Object.keys(n.value.query??{}).length),A=E(()=>Object.keys(n.value.headers??{}).length),U=E(()=>{const T=(n.value.headers??{}).Cookie??"";if(!T)return{};const k={};return T.split(";").forEach(I=>{const Y=I.indexOf("=");Y>0&&(k[I.slice(0,Y).trim()]=I.slice(Y+1).trim())}),k}),W=E(()=>Object.keys(U.value).length);function F(T,k){return k?()=>f("span",{class:"tab-with-badge"},[T,f("span",{class:"tab-badge"},String(k))]):()=>T}return(T,k)=>(me(),Re("div",fB,[K("div",hB,[K("span",{class:"method-badge",style:$o({color:b.value})},Ve(n.value.method??"GET"),5),Se(he(qt),{value:R.value,size:"small",class:"url-input",placeholder:"请求路径,如 /api/users","onUpdate:value":m},null,8,["value"]),he(t).sending?(me(),mt(he(ht),{key:1,size:"small",class:"send-btn",onClick:k[1]||(k[1]=I=>he(t).cancel())},{default:He(()=>[...k[7]||(k[7]=[it(" 取消 ",-1)])]),_:1})):(me(),mt(he(ht),{key:0,type:"primary",size:"small",class:"send-btn",disabled:!n.value.url,onClick:k[0]||(k[0]=I=>he(t).send())},{default:He(()=>[...k[6]||(k[6]=[it(" 发送 ",-1)])]),_:1},8,["disabled"]))]),K("div",pB,[Se(he(ht),{size:"tiny",quaternary:"",onClick:P},{default:He(()=>[...k[8]||(k[8]=[it("⚡ 自动生成参数",-1)])]),_:1}),Se(he(ht),{size:"tiny",quaternary:"",onClick:k[2]||(k[2]=I=>w.value=!0)},{default:He(()=>[...k[9]||(k[9]=[it("cURL",-1)])]),_:1})]),Se(he(el),{show:w.value,"onUpdate:show":k[3]||(k[3]=I=>w.value=I)},{default:He(()=>[Se(he(ra),{title:"cURL 命令",bordered:!1,size:"small",style:{width:"600px","max-width":"90vw"}},{default:He(()=>[K("div",vB,[K("pre",gB,Ve(_.value),1),K("div",mB,[Se(In,{text:_.value},null,8,["text"])])])]),_:1})]),_:1},8,["show"]),Se(he(rc),{value:r.value,"onUpdate:value":k[5]||(k[5]=I=>r.value=I),type:"line",size:"small",class:"sub-tabs"},{default:He(()=>[Se(he(Ho),{name:"params",tab:F("Params",O.value),"display-directive":"show:lazy"},{default:He(()=>[Se(sc,{"model-value":n.value.query??{},"locked-keys":l.value,"required-keys":a.value,"cached-disabled-keys":[...he(t).disabledQueryKeys],"onUpdate:modelValue":x,"onUpdate:disabledKeys":he(t).setDisabledQueryKeys},null,8,["model-value","locked-keys","required-keys","cached-disabled-keys","onUpdate:disabledKeys"])]),_:1},8,["tab"]),Se(he(Ho),{name:"body",tab:"Body","display-directive":"show:lazy"},{default:He(()=>[Se(dB,{"model-value":u.value,"available-types":d.value,"onUpdate:modelValue":k[4]||(k[4]=I=>he(t).currentRequest.body=I),"onUpdate:contentType":y},null,8,["model-value","available-types"])]),_:1}),Se(he(Ho),{name:"headers",tab:F("Headers",A.value),"display-directive":"show:lazy"},{default:He(()=>[Se(sc,{"model-value":n.value.headers??{},"locked-keys":s.value,"required-keys":c.value,"cached-disabled-keys":[...he(t).disabledHeaderKeys],"key-suggestions":z,placeholder:"header value","onUpdate:modelValue":S,"onUpdate:disabledKeys":he(t).setDisabledHeaderKeys},null,8,["model-value","locked-keys","required-keys","cached-disabled-keys","onUpdate:disabledKeys"])]),_:1},8,["tab"]),Se(he(Ho),{name:"cookies",tab:F("Cookies",W.value),"display-directive":"show:lazy"},{default:He(()=>[Se(sc,{"model-value":U.value,placeholder:"cookie value","onUpdate:modelValue":C},null,8,["model-value"])]),_:1},8,["tab"]),Se(he(Ho),{name:"auth",tab:h.value?F("Auth",1):"Auth","display-directive":"show:lazy"},{default:He(()=>[k[10]||(k[10]=K("div",{class:"auth-hint"},' 接口级认证,优先于全局认证。选择"继承全局"则使用全局设置。 ',-1)),Se(By,{"model-value":p.value,"inherit-label":"继承全局","onUpdate:modelValue":v},null,8,["model-value"])]),_:1},8,["tab"])]),_:1},8,["value"])]))}}),[["__scopeId","data-v-d65b882d"]]);function xB(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ny(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const o=e[t],n=typeof o;(n==="object"||n==="function")&&!Object.isFrozen(o)&&Ny(o)}),e}class jy{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Wy(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function Er(e,...t){const o=Object.create(null);for(const n in e)o[n]=e[n];return t.forEach(function(n){for(const r in n)o[r]=n[r]}),o}const yB="</span>",Vy=e=>!!e.scope,CB=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const o=e.split(".");return[`${t}${o.shift()}`,...o.map((n,r)=>`${n}${"_".repeat(r+1)}`)].join(" ")}return`${t}${e}`};class wB{constructor(t,o){this.buffer="",this.classPrefix=o.classPrefix,t.walk(this)}addText(t){this.buffer+=Wy(t)}openNode(t){if(!Vy(t))return;const o=CB(t.scope,{prefix:this.classPrefix});this.span(o)}closeNode(t){Vy(t)&&(this.buffer+=yB)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}}const Uy=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class cf{constructor(){this.rootNode=Uy(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const o=Uy({scope:t});this.add(o),this.stack.push(o)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,o){return typeof o=="string"?t.addText(o):o.children&&(t.openNode(o),o.children.forEach(n=>this._walk(t,n)),t.closeNode(o)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(o=>typeof o=="string")?t.children=[t.children.join("")]:t.children.forEach(o=>{cf._collapse(o)}))}}class SB extends cf{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,o){const n=t.root;o&&(n.scope=`language:${o}`),this.add(n)}toHTML(){return new wB(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function da(e){return e?typeof e=="string"?e:e.source:null}function Ky(e){return gi("(?=",e,")")}function kB(e){return gi("(?:",e,")*")}function RB(e){return gi("(?:",e,")?")}function gi(...e){return e.map(o=>da(o)).join("")}function PB(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function df(...e){return"("+(PB(e).capture?"":"?:")+e.map(n=>da(n)).join("|")+")"}function qy(e){return new RegExp(e.toString()+"|").exec("").length-1}function _B(e,t){const o=e&&e.exec(t);return o&&o.index===0}const $B=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function uf(e,{joinWith:t}){let o=0;return e.map(n=>{o+=1;const r=o;let i=da(n),l="";for(;i.length>0;){const a=$B.exec(i);if(!a){l+=i;break}l+=i.substring(0,a.index),i=i.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?l+="\\"+String(Number(a[1])+r):(l+=a[0],a[0]==="("&&o++)}return l}).map(n=>`(${n})`).join(t)}const TB=/\b\B/,Gy="[a-zA-Z]\\w*",ff="[a-zA-Z_]\\w*",Xy="\\b\\d+(\\.\\d+)?",Yy="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Jy="\\b(0b[01]+)",zB="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",EB=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=gi(t,/.*\b/,e.binary,/\b.*/)),Er({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(o,n)=>{o.index!==0&&n.ignoreMatch()}},e)},ua={begin:"\\\\[\\s\\S]",relevance:0},OB={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ua]},IB={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ua]},AB={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},cc=function(e,t,o={}){const n=Er({scope:"comment",begin:e,end:t,contains:[]},o);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=df("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:gi(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},FB=cc("//","$"),MB=cc("/\\*","\\*/"),BB=cc("#","$"),LB={scope:"number",begin:Xy,relevance:0},DB={scope:"number",begin:Yy,relevance:0},HB={scope:"number",begin:Jy,relevance:0},NB={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ua,{begin:/\[/,end:/\]/,relevance:0,contains:[ua]}]},jB={scope:"title",begin:Gy,relevance:0},WB={scope:"title",begin:ff,relevance:0},VB={begin:"\\.\\s*"+ff,relevance:0};var dc=Object.freeze({__proto__:null,APOS_STRING_MODE:OB,BACKSLASH_ESCAPE:ua,BINARY_NUMBER_MODE:HB,BINARY_NUMBER_RE:Jy,COMMENT:cc,C_BLOCK_COMMENT_MODE:MB,C_LINE_COMMENT_MODE:FB,C_NUMBER_MODE:DB,C_NUMBER_RE:Yy,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(t,o)=>{o.data._beginMatch=t[1]},"on:end":(t,o)=>{o.data._beginMatch!==t[1]&&o.ignoreMatch()}})},HASH_COMMENT_MODE:BB,IDENT_RE:Gy,MATCH_NOTHING_RE:TB,METHOD_GUARD:VB,NUMBER_MODE:LB,NUMBER_RE:Xy,PHRASAL_WORDS_MODE:AB,QUOTE_STRING_MODE:IB,REGEXP_MODE:NB,RE_STARTERS_RE:zB,SHEBANG:EB,TITLE_MODE:jB,UNDERSCORE_IDENT_RE:ff,UNDERSCORE_TITLE_MODE:WB});function UB(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function KB(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function qB(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=UB,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function GB(e,t){Array.isArray(e.illegal)&&(e.illegal=df(...e.illegal))}function XB(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function YB(e,t){e.relevance===void 0&&(e.relevance=1)}const JB=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const o=Object.assign({},e);Object.keys(e).forEach(n=>{delete e[n]}),e.keywords=o.keywords,e.begin=gi(o.beforeMatch,Ky(o.begin)),e.starts={relevance:0,contains:[Object.assign(o,{endsParent:!0})]},e.relevance=0,delete o.beforeMatch},ZB=["of","and","for","in","not","or","if","then","parent","list","value"],QB="keyword";function Zy(e,t,o=QB){const n=Object.create(null);return typeof e=="string"?r(o,e.split(" ")):Array.isArray(e)?r(o,e):Object.keys(e).forEach(function(i){Object.assign(n,Zy(e[i],t,i))}),n;function r(i,l){t&&(l=l.map(a=>a.toLowerCase())),l.forEach(function(a){const s=a.split("|");n[s[0]]=[i,eL(s[0],s[1])]})}}function eL(e,t){return t?Number(t):tL(e)?0:1}function tL(e){return ZB.includes(e.toLowerCase())}const Qy={},mi=e=>{console.error(e)},e1=(e,...t)=>{console.log(`WARN: ${e}`,...t)},il=(e,t)=>{Qy[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Qy[`${e}/${t}`]=!0)},uc=new Error;function t1(e,t,{key:o}){let n=0;const r=e[o],i={},l={};for(let a=1;a<=t.length;a++)l[a+n]=r[a],i[a+n]=!0,n+=qy(t[a-1]);e[o]=l,e[o]._emit=i,e[o]._multi=!0}function oL(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw mi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),uc;if(typeof e.beginScope!="object"||e.beginScope===null)throw mi("beginScope must be object"),uc;t1(e,e.begin,{key:"beginScope"}),e.begin=uf(e.begin,{joinWith:""})}}function nL(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw mi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),uc;if(typeof e.endScope!="object"||e.endScope===null)throw mi("endScope must be object"),uc;t1(e,e.end,{key:"endScope"}),e.end=uf(e.end,{joinWith:""})}}function rL(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function iL(e){rL(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),oL(e),nL(e)}function lL(e){function t(l,a){return new RegExp(da(l),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class o{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,s){s.position=this.position++,this.matchIndexes[this.matchAt]=s,this.regexes.push([s,a]),this.matchAt+=qy(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(s=>s[1]);this.matcherRe=t(uf(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const s=this.matcherRe.exec(a);if(!s)return null;const c=s.findIndex((u,p)=>p>0&&u!==void 0),d=this.matchIndexes[c];return s.splice(0,c),Object.assign(s,d)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const s=new o;return this.rules.slice(a).forEach(([c,d])=>s.addRule(c,d)),s.compile(),this.multiRegexes[a]=s,s}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,s){this.rules.push([a,s]),s.type==="begin"&&this.count++}exec(a){const s=this.getMatcher(this.regexIndex);s.lastIndex=this.lastIndex;let c=s.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function r(l){const a=new n;return l.contains.forEach(s=>a.addRule(s.begin,{rule:s,type:"begin"})),l.terminatorEnd&&a.addRule(l.terminatorEnd,{type:"end"}),l.illegal&&a.addRule(l.illegal,{type:"illegal"}),a}function i(l,a){const s=l;if(l.isCompiled)return s;[KB,XB,iL,JB].forEach(d=>d(l,a)),e.compilerExtensions.forEach(d=>d(l,a)),l.__beforeBegin=null,[qB,GB,YB].forEach(d=>d(l,a)),l.isCompiled=!0;let c=null;return typeof l.keywords=="object"&&l.keywords.$pattern&&(l.keywords=Object.assign({},l.keywords),c=l.keywords.$pattern,delete l.keywords.$pattern),c=c||/\w+/,l.keywords&&(l.keywords=Zy(l.keywords,e.case_insensitive)),s.keywordPatternRe=t(c,!0),a&&(l.begin||(l.begin=/\B|\b/),s.beginRe=t(s.begin),!l.end&&!l.endsWithParent&&(l.end=/\B|\b/),l.end&&(s.endRe=t(s.end)),s.terminatorEnd=da(s.end)||"",l.endsWithParent&&a.terminatorEnd&&(s.terminatorEnd+=(l.end?"|":"")+a.terminatorEnd)),l.illegal&&(s.illegalRe=t(l.illegal)),l.contains||(l.contains=[]),l.contains=[].concat(...l.contains.map(function(d){return aL(d==="self"?l:d)})),l.contains.forEach(function(d){i(d,s)}),l.starts&&i(l.starts,a),s.matcher=r(s),s}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Er(e.classNameAliases||{}),i(e)}function o1(e){return e?e.endsWithParent||o1(e.starts):!1}function aL(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Er(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:o1(e)?Er(e,{starts:e.starts?Er(e.starts):null}):Object.isFrozen(e)?Er(e):e}var sL="11.11.1";class cL extends Error{constructor(t,o){super(t),this.name="HTMLInjectionError",this.html=o}}const hf=Wy,n1=Er,r1=Symbol("nomatch"),dL=7,i1=function(e){const t=Object.create(null),o=Object.create(null),n=[];let r=!0;const i="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:SB};function s(F){return a.noHighlightRe.test(F)}function c(F){let T=F.className+" ";T+=F.parentNode?F.parentNode.className:"";const k=a.languageDetectRe.exec(T);if(k){const I=w(k[1]);return I||(e1(i.replace("{}",k[1])),e1("Falling back to no-highlight mode for this block.",F)),I?k[1]:"no-highlight"}return T.split(/\s+/).find(I=>s(I)||w(I))}function d(F,T,k){let I="",Y="";typeof T=="object"?(I=F,k=T.ignoreIllegals,Y=T.language):(il("10.7.0","highlight(lang, code, ...args) has been deprecated."),il("10.7.0",`Please use highlight(code, options) instead.
3718
3718
  https://github.com/highlightjs/highlight.js/issues/2277`),Y=F,I=T),k===void 0&&(k=!0);const j={code:I,language:Y};U("before:highlight",j);const ee=j.result?j.result:u(j.language,j.code,k);return ee.code=j.code,U("after:highlight",ee),ee}function u(F,T,k,I){const Y=Object.create(null);function j(pe,ze){return pe.keywords[ze]}function ee(){if(!Q.keywords){se.addText(ae);return}let pe=0;Q.keywordPatternRe.lastIndex=0;let ze=Q.keywordPatternRe.exec(ae),Ie="";for(;ze;){Ie+=ae.substring(pe,ze.index);const je=xe.case_insensitive?ze[0].toLowerCase():ze[0],Ye=j(Q,je);if(Ye){const[ot,wt]=Ye;if(se.addText(Ie),Ie="",Y[je]=(Y[je]||0)+1,Y[je]<=dL&&(ie+=wt),ot.startsWith("_"))Ie+=ze[0];else{const Tt=xe.classNameAliases[ot]||ot;N(ze[0],Tt)}}else Ie+=ze[0];pe=Q.keywordPatternRe.lastIndex,ze=Q.keywordPatternRe.exec(ae)}Ie+=ae.substring(pe),se.addText(Ie)}function D(){if(ae==="")return;let pe=null;if(typeof Q.subLanguage=="string"){if(!t[Q.subLanguage]){se.addText(ae);return}pe=u(Q.subLanguage,ae,!0,be[Q.subLanguage]),be[Q.subLanguage]=pe._top}else pe=v(ae,Q.subLanguage.length?Q.subLanguage:null);Q.relevance>0&&(ie+=pe.relevance),se.__addSublanguage(pe._emitter,pe.language)}function M(){Q.subLanguage!=null?D():ee(),ae=""}function N(pe,ze){pe!==""&&(se.startScope(ze),se.addText(pe),se.endScope())}function ve(pe,ze){let Ie=1;const je=ze.length-1;for(;Ie<=je;){if(!pe._emit[Ie]){Ie++;continue}const Ye=xe.classNameAliases[pe[Ie]]||pe[Ie],ot=ze[Ie];Ye?N(ot,Ye):(ae=ot,ee(),ae=""),Ie++}}function J(pe,ze){return pe.scope&&typeof pe.scope=="string"&&se.openNode(xe.classNameAliases[pe.scope]||pe.scope),pe.beginScope&&(pe.beginScope._wrap?(N(ae,xe.classNameAliases[pe.beginScope._wrap]||pe.beginScope._wrap),ae=""):pe.beginScope._multi&&(ve(pe.beginScope,ze),ae="")),Q=Object.create(pe,{parent:{value:Q}}),Q}function Ce(pe,ze,Ie){let je=_B(pe.endRe,Ie);if(je){if(pe["on:end"]){const Ye=new jy(pe);pe["on:end"](ze,Ye),Ye.isMatchIgnored&&(je=!1)}if(je){for(;pe.endsParent&&pe.parent;)pe=pe.parent;return pe}}if(pe.endsWithParent)return Ce(pe.parent,ze,Ie)}function Z(pe){return Q.matcher.regexIndex===0?(ae+=pe[0],1):(ce=!0,0)}function ne(pe){const ze=pe[0],Ie=pe.rule,je=new jy(Ie),Ye=[Ie.__beforeBegin,Ie["on:begin"]];for(const ot of Ye)if(ot&&(ot(pe,je),je.isMatchIgnored))return Z(ze);return Ie.skip?ae+=ze:(Ie.excludeBegin&&(ae+=ze),M(),!Ie.returnBegin&&!Ie.excludeBegin&&(ae=ze)),J(Ie,pe),Ie.returnBegin?0:ze.length}function Ee(pe){const ze=pe[0],Ie=T.substring(pe.index),je=Ce(Q,pe,Ie);if(!je)return r1;const Ye=Q;Q.endScope&&Q.endScope._wrap?(M(),N(ze,Q.endScope._wrap)):Q.endScope&&Q.endScope._multi?(M(),ve(Q.endScope,pe)):Ye.skip?ae+=ze:(Ye.returnEnd||Ye.excludeEnd||(ae+=ze),M(),Ye.excludeEnd&&(ae=ze));do Q.scope&&se.closeNode(),!Q.skip&&!Q.subLanguage&&(ie+=Q.relevance),Q=Q.parent;while(Q!==je.parent);return je.starts&&J(je.starts,pe),Ye.returnEnd?0:ze.length}function H(){const pe=[];for(let ze=Q;ze!==xe;ze=ze.parent)ze.scope&&pe.unshift(ze.scope);pe.forEach(ze=>se.openNode(ze))}let G={};function le(pe,ze){const Ie=ze&&ze[0];if(ae+=pe,Ie==null)return M(),0;if(G.type==="begin"&&ze.type==="end"&&G.index===ze.index&&Ie===""){if(ae+=T.slice(ze.index,ze.index+1),!r){const je=new Error(`0 width match regex (${F})`);throw je.languageName=F,je.badRule=G.rule,je}return 1}if(G=ze,ze.type==="begin")return ne(ze);if(ze.type==="illegal"&&!k){const je=new Error('Illegal lexeme "'+Ie+'" for mode "'+(Q.scope||"<unnamed>")+'"');throw je.mode=Q,je}else if(ze.type==="end"){const je=Ee(ze);if(je!==r1)return je}if(ze.type==="illegal"&&Ie==="")return ae+=`
3719
3719
  `,1;if(te>1e5&&te>ze.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ae+=Ie,Ie.length}const xe=w(F);if(!xe)throw mi(i.replace("{}",F)),new Error('Unknown language: "'+F+'"');const we=lL(xe);let ue="",Q=I||we;const be={},se=new a.__emitter(a);H();let ae="",ie=0,re=0,te=0,ce=!1;try{if(xe.__emitTokens)xe.__emitTokens(T,se);else{for(Q.matcher.considerAll();;){te++,ce?ce=!1:Q.matcher.considerAll(),Q.matcher.lastIndex=re;const pe=Q.matcher.exec(T);if(!pe)break;const ze=T.substring(re,pe.index),Ie=le(ze,pe);re=pe.index+Ie}le(T.substring(re))}return se.finalize(),ue=se.toHTML(),{language:F,value:ue,relevance:ie,illegal:!1,_emitter:se,_top:Q}}catch(pe){if(pe.message&&pe.message.includes("Illegal"))return{language:F,value:hf(T),illegal:!0,relevance:0,_illegalBy:{message:pe.message,index:re,context:T.slice(re-100,re+100),mode:pe.mode,resultSoFar:ue},_emitter:se};if(r)return{language:F,value:hf(T),illegal:!1,relevance:0,errorRaised:pe,_emitter:se,_top:Q};throw pe}}function p(F){const T={value:hf(F),illegal:!1,relevance:0,_top:l,_emitter:new a.__emitter(a)};return T._emitter.addText(F),T}function v(F,T){T=T||a.languages||Object.keys(t);const k=p(F),I=T.filter(w).filter(B).map(M=>u(M,F,!1));I.unshift(k);const Y=I.sort((M,N)=>{if(M.relevance!==N.relevance)return N.relevance-M.relevance;if(M.language&&N.language){if(w(M.language).supersetOf===N.language)return 1;if(w(N.language).supersetOf===M.language)return-1}return 0}),[j,ee]=Y,D=j;return D.secondBest=ee,D}function h(F,T,k){const I=T&&o[T]||k;F.classList.add("hljs"),F.classList.add(`language-${I}`)}function g(F){let T=null;const k=c(F);if(s(k))return;if(U("before:highlightElement",{el:F,language:k}),F.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",F);return}if(F.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(F)),a.throwUnescapedHTML))throw new cL("One of your code blocks includes unescaped HTML.",F.innerHTML);T=F;const I=T.textContent,Y=k?d(I,{language:k,ignoreIllegals:!0}):v(I);F.innerHTML=Y.value,F.dataset.highlighted="yes",h(F,k,Y.language),F.result={language:Y.language,re:Y.relevance,relevance:Y.relevance},Y.secondBest&&(F.secondBest={language:Y.secondBest.language,relevance:Y.secondBest.relevance}),U("after:highlightElement",{el:F,result:Y,text:I})}function b(F){a=n1(a,F)}const m=()=>{C(),il("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function x(){C(),il("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let S=!1;function C(){function F(){C()}if(document.readyState==="loading"){S||window.addEventListener("DOMContentLoaded",F,!1),S=!0;return}document.querySelectorAll(a.cssSelector).forEach(g)}function y(F,T){let k=null;try{k=T(e)}catch(I){if(mi("Language definition for '{}' could not be registered.".replace("{}",F)),r)mi(I);else throw I;k=l}k.name||(k.name=F),t[F]=k,k.rawDefinition=T.bind(null,e),k.aliases&&_(k.aliases,{languageName:F})}function R(F){delete t[F];for(const T of Object.keys(o))o[T]===F&&delete o[T]}function P(){return Object.keys(t)}function w(F){return F=(F||"").toLowerCase(),t[F]||t[o[F]]}function _(F,{languageName:T}){typeof F=="string"&&(F=[F]),F.forEach(k=>{o[k.toLowerCase()]=T})}function B(F){const T=w(F);return T&&!T.disableAutodetect}function z(F){F["before:highlightBlock"]&&!F["before:highlightElement"]&&(F["before:highlightElement"]=T=>{F["before:highlightBlock"](Object.assign({block:T.el},T))}),F["after:highlightBlock"]&&!F["after:highlightElement"]&&(F["after:highlightElement"]=T=>{F["after:highlightBlock"](Object.assign({block:T.el},T))})}function O(F){z(F),n.push(F)}function A(F){const T=n.indexOf(F);T!==-1&&n.splice(T,1)}function U(F,T){const k=F;n.forEach(function(I){I[k]&&I[k](T)})}function W(F){return il("10.7.0","highlightBlock will be removed entirely in v12.0"),il("10.7.0","Please use highlightElement now."),g(F)}Object.assign(e,{highlight:d,highlightAuto:v,highlightAll:C,highlightElement:g,highlightBlock:W,configure:b,initHighlighting:m,initHighlightingOnLoad:x,registerLanguage:y,unregisterLanguage:R,listLanguages:P,getLanguage:w,registerAliases:_,autoDetection:B,inherit:n1,addPlugin:O,removePlugin:A}),e.debugMode=function(){r=!1},e.safeMode=function(){r=!0},e.versionString=sL,e.regex={concat:gi,lookahead:Ky,either:df,optional:RB,anyNumberOfTimes:kB};for(const F in dc)typeof dc[F]=="object"&&Ny(dc[F]);return Object.assign(e,dc),e},ll=i1({});ll.newInstance=()=>i1({});var uL=ll;ll.HighlightJS=ll,ll.default=ll;const fc=xB(uL);function fL(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},o={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],r={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:n},contains:[t,o,e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function hL(e){const t=e.regex,o=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},l=e.inherit(i,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:n,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[i,s,a,l,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,l,s,a]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(o,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:o,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(o,/>/))),contains:[{className:"name",begin:o,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}const pL={class:"toolbar"},vL={class:"lang-label"},gL={class:"hljs"},mL=["innerHTML"],bL={key:0,class:"fade-mask"},xL={key:0,class:"collapse-btn-row"},yL=300,CL="https://cdn.jsdelivr.net/npm/highlight.js@11/styles/github.min.css",wL="https://cdn.jsdelivr.net/npm/highlight.js@11/styles/github-dark.min.css",l1="hljs-theme",a1=Ot(ge({__name:"JsonHighlight",props:{code:{},language:{default:"json"},dark:{type:Boolean}},setup(e){fc.registerLanguage("json",fL),fc.registerLanguage("xml",hL);const t=e,o=L(t.dark!==void 0?t.dark:document.documentElement.getAttribute("data-theme")==="dark");let n=null;Bt(()=>{t.dark===void 0&&(n=new MutationObserver(()=>{o.value=document.documentElement.getAttribute("data-theme")==="dark"}),n.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}))}),wl(()=>n==null?void 0:n.disconnect());const r=E(()=>{try{return fc.highlight(t.code,{language:t.language}).value}catch{return fc.highlight(t.code,{language:"plaintext"}).value}}),i=E(()=>t.code.split(`
3720
- `).length),l=E(()=>i.value>yL),a=L(!1),s=L(!1);async function c(){try{await navigator.clipboard.writeText(t.code),s.value=!0,setTimeout(()=>s.value=!1,1500)}catch{}}function d(){let u=document.getElementById(l1);u||(u=document.createElement("link"),u.id=l1,u.rel="stylesheet",document.head.appendChild(u)),u.href=o.value?wL:CL}return Ze(o,d,{immediate:!0}),Bt(()=>$t(d)),(u,p)=>(me(),Re("div",{class:Pt(["json-highlight",{dark:o.value}])},[K("div",pL,[K("span",vL,Ve(e.language),1),Se(he(ht),{size:"tiny",text:"",class:"copy-btn",style:$o({color:s.value?"#10b981":void 0}),onClick:c},{default:He(()=>[it(Ve(s.value?"已复制":"复制"),1)]),_:1},8,["style"])]),K("div",{class:Pt(["code-wrap",{collapsed:l.value&&!a.value}])},[K("pre",gL,[K("code",{innerHTML:r.value},null,8,mL)]),l.value&&!a.value?(me(),Re("div",bL,[Se(he(ht),{size:"small",onClick:p[0]||(p[0]=v=>a.value=!0)},{default:He(()=>[it("展开全部 ("+Ve(i.value)+" 行)",1)]),_:1})])):et("",!0)],2),l.value&&a.value?(me(),Re("div",xL,[Se(he(ht),{size:"small",text:"",onClick:p[1]||(p[1]=v=>a.value=!1)},{default:He(()=>[...p[2]||(p[2]=[it("收起",-1)])]),_:1})])):et("",!0)],2))}}),[["__scopeId","data-v-aec27471"]]),SL=ge({__name:"JsonResponseView",props:{body:{}},setup(e){const t=e,o=E(()=>{try{return zr(JSON.parse(t.body))}catch{return t.body}});return(n,r)=>(me(),mt(a1,{code:o.value,language:"json"},null,8,["code"]))}}),kL={class:"image-view"},RL=["src","alt"],PL={class:"meta"},_L=["href"],$L=Ot(ge({__name:"ImageResponseView",props:{body:{},contentType:{}},setup(e){return(t,o)=>(me(),Re("div",kL,[K("img",{src:e.body,alt:e.contentType,class:"preview-img"},null,8,RL),K("div",PL,[K("a",{href:e.body,download:"response-image",class:"download-link"},"下载图片",8,_L)])]))}}),[["__scopeId","data-v-b9fd1d77"]]),TL=ge({__name:"HtmlResponseView",props:{body:{}},setup(e){return(t,o)=>(me(),mt(a1,{code:e.body,language:"xml"},null,8,["code"]))}}),zL={class:"raw-view"},EL={class:"toolbar"},OL={class:"hint"},IL={class:"raw-body"},AL=Ot(ge({__name:"RawResponseView",props:{body:{},contentType:{}},setup(e){const t=e;function o(){const n=t.contentType.includes("octet-stream")?"bin":"txt",r=new Blob([t.body],{type:t.contentType||"text/plain"}),i=URL.createObjectURL(r),l=document.createElement("a");l.href=i,l.download=`response.${n}`,l.click(),URL.revokeObjectURL(i)}return(n,r)=>(me(),Re("div",zL,[K("div",EL,[K("span",OL,Ve(e.contentType||"text/plain"),1),Se(he(ht),{size:"tiny",text:"",onClick:o},{default:He(()=>[...r[0]||(r[0]=[it("下载",-1)])]),_:1})]),K("pre",IL,Ve(e.body),1)]))}}),[["__scopeId","data-v-30120298"]]),FL={class:"response-viewer"},ML={key:0,class:"state-center"},BL={key:1,class:"state-center"},LL={class:"status-bar"},DL={class:"body-wrap"},HL={class:"headers-pre"},NL=Ot(ge({__name:"ResponseViewer",props:{response:{},loading:{type:Boolean}},setup(e){const t=e;function o(i){return i>=500?"#ef4444":i>=400?"#f59e0b":i>=300?"#0ea5e9":i>=200?"#10b981":"#94a3b8"}const n=E(()=>{if(!t.response)return null;switch(t.response.bodyType){case"json":return SL;case"image":return $L;case"html":return TL;default:return AL}}),r=E(()=>t.response?zr(t.response.headers):"");return(i,l)=>(me(),Re("div",FL,[e.loading?(me(),Re("div",ML,[Se(he(Ju),{size:"medium"}),l[0]||(l[0]=K("span",{class:"state-hint"},"请求中...",-1))])):e.response?(me(),Re(Ue,{key:2},[K("div",LL,[Se(he(io),{size:"small",bordered:!1,style:$o({backgroundColor:`${o(e.response.status)}18`,color:o(e.response.status),fontFamily:"var(--font-mono)",fontSize:"12px",padding:"0 8px"})},{default:He(()=>[it(Ve(e.response.status)+" "+Ve(e.response.statusText),1)]),_:1},8,["style"]),Se(he(io),{size:"small",bordered:!1,style:{"font-size":"11px",color:"var(--color-text-muted)",background:"var(--color-bg-subtle)"}},{default:He(()=>[it(Ve(e.response.duration)+" ms ",1)]),_:1}),Se(he(io),{size:"small",bordered:!1,style:{"font-size":"11px","font-family":"var(--font-mono)",color:"var(--color-text-muted)",background:"var(--color-bg-subtle)"}},{default:He(()=>[it(Ve(e.response.contentType||"—"),1)]),_:1})]),Se(he(rc),{type:"line",size:"small","default-value":"body"},{default:He(()=>[Se(he(Ho),{name:"body",tab:"响应体"},{default:He(()=>[K("div",DL,[(me(),mt(Hh(n.value),{body:e.response.body,"content-type":e.response.contentType},null,8,["body","content-type"]))])]),_:1}),Se(he(Ho),{name:"headers",tab:"响应头"},{default:He(()=>[K("pre",HL,Ve(r.value),1)]),_:1})]),_:1})],64)):(me(),Re("div",BL,[Se(he(kr),{description:"点击「▶ 发送」发起请求",size:"small"})]))]))}}),[["__scopeId","data-v-9c1034fa"]]),jL={class:"history-list"},WL={class:"list-header"},VL={key:0,class:"search-bar"},UL={key:0,class:"empty-state"},KL=["onClick"],qL={class:"item-left"},GL=["title"],XL={class:"item-right"},YL={class:"item-duration"},JL={class:"item-time"},ZL={class:"history-detail"},QL={class:"detail-section"},eD={class:"detail-url"},tD={class:"detail-url-text"},oD={class:"detail-block"},nD={class:"detail-block-header"},rD={class:"detail-pre"},iD={key:0,class:"detail-block"},lD={class:"detail-block-header"},aD={class:"detail-pre"},sD={class:"detail-section detail-section--response"},cD={class:"detail-section-header"},dD={class:"detail-duration"},uD={class:"detail-block"},fD={class:"detail-block-header"},hD={class:"detail-pre"},pD={class:"detail-block"},vD={class:"detail-block-header"},gD={class:"detail-pre"},mD=Ot(ge({__name:"HistoryList",setup(e){const t=Tr(),o=L(""),n=L(null),r=E(()=>{const p=t.currentRequest.endpointId;return p?t.history.filter(v=>v.request.endpointId===p):t.history}),i=E(()=>{const p=o.value.trim().toLowerCase();return p?r.value.filter(v=>v.request.method.toLowerCase().includes(p)||v.request.url.toLowerCase().includes(p)||String(v.response.status).includes(p)):r.value});function l(p){return p>=500?"#ef4444":p>=400?"#f59e0b":p>=300?"#0ea5e9":p>=200?"#10b981":"#94a3b8"}function a(p){return new Date(p).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function s(p){return p>=1e3?`${(p/1e3).toFixed(1)}s`:`${p}ms`}function c(p){try{const v=new URL(p);return v.pathname+v.search}catch{return p}}function d(p){n.value=n.value===p?null:p}function u(p){if(!p)return"(empty)";try{return zr(JSON.parse(p))}catch{return p.slice(0,2e3)}}return(p,v)=>(me(),Re("div",jL,[K("div",WL,[v[5]||(v[5]=K("span",{class:"list-title"},"调试历史",-1)),r.value.length?(me(),mt(he(ry),{key:0,onPositiveClick:v[0]||(v[0]=h=>he(t).clearEndpointHistory(he(t).currentRequest.endpointId))},{trigger:He(()=>[Se(he(ht),{size:"tiny",text:"",style:{color:"var(--color-text-muted)"}},{default:He(()=>[...v[3]||(v[3]=[it("清空",-1)])]),_:1})]),default:He(()=>[v[4]||(v[4]=it(" 确定清空该接口的调试历史? ",-1))]),_:1})):et("",!0)]),r.value.length?(me(),Re("div",VL,[Se(he(qt),{value:o.value,"onUpdate:value":v[1]||(v[1]=h=>o.value=h),size:"small",placeholder:"路径 / 方法 / 状态码",clearable:""},null,8,["value"])])):et("",!0),Se(he(Yu),{style:{"max-height":"520px"}},{default:He(()=>[i.value.length?et("",!0):(me(),Re("div",UL,[Se(he(kr),{description:r.value.length?"无匹配记录":"暂无调试历史",size:"small"},null,8,["description"])])),(me(!0),Re(Ue,null,To(i.value,h=>(me(),Re(Ue,{key:h.id},[K("div",{class:Pt(["history-item",{"history-item--expanded":n.value===h.id}]),onClick:g=>d(h.id)},[K("div",qL,[Se(Hy,{method:h.request.method},null,8,["method"]),K("span",{class:"item-path",title:h.request.url},Ve(c(h.request.url)),9,GL)]),K("div",XL,[K("span",{class:"item-status",style:$o({color:l(h.response.status)})},Ve(h.response.status),5),K("span",YL,Ve(s(h.response.duration)),1),K("span",JL,Ve(a(h.timestamp)),1),Se(he(ht),{text:"",size:"tiny",class:"action-btn",title:"回填请求",onClick:jr(g=>he(t).restoreFromHistory(h),["stop"])},{default:He(()=>[...v[6]||(v[6]=[K("svg",{xmlns:"http://www.w3.org/2000/svg",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[K("polyline",{points:"1 4 1 10 7 10"}),K("path",{d:"M3.51 15a9 9 0 1 0 .49-4.95"})],-1)])]),_:1},8,["onClick"]),Se(he(ry),{onPositiveClick:jr(g=>he(t).removeHistory(h.id),["stop"])},{trigger:He(()=>[Se(he(ht),{text:"",size:"tiny",class:"action-btn del-btn",onClick:v[2]||(v[2]=jr(()=>{},["stop"]))},{default:He(()=>[...v[7]||(v[7]=[K("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[K("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),_:1})]),default:He(()=>[v[8]||(v[8]=it(" 删除这条记录? ",-1))]),_:1},8,["onPositiveClick"])])],10,KL),Se(he(Az),{show:n.value===h.id},{default:He(()=>[K("div",ZL,[K("div",QL,[v[11]||(v[11]=K("div",{class:"detail-section-header"},[K("span",{class:"detail-section-title"},"请求")],-1)),K("div",eD,[K("span",tD,Ve(h.request.url),1),Se(In,{text:h.request.url},null,8,["text"])]),K("div",oD,[K("div",nD,[v[9]||(v[9]=K("span",{class:"detail-label"},"Headers",-1)),Se(In,{text:he(zr)(h.request.headers)},null,8,["text"])]),K("pre",rD,Ve(he(zr)(h.request.headers)),1)]),h.request.body?(me(),Re("div",iD,[K("div",lD,[v[10]||(v[10]=K("span",{class:"detail-label"},"Body",-1)),Se(In,{text:h.request.body},null,8,["text"])]),K("pre",aD,Ve(u(h.request.body)),1)])):et("",!0)]),K("div",sD,[K("div",cD,[v[12]||(v[12]=K("span",{class:"detail-section-title"},"响应",-1)),K("span",{class:"detail-status-text",style:$o({color:l(h.response.status)})},Ve(h.response.status)+" "+Ve(h.response.statusText),5),K("span",dD,Ve(s(h.response.duration)),1)]),K("div",uD,[K("div",fD,[v[13]||(v[13]=K("span",{class:"detail-label"},"Headers",-1)),Se(In,{text:he(zr)(h.response.headers)},null,8,["text"])]),K("pre",hD,Ve(he(zr)(h.response.headers)),1)]),K("div",pD,[K("div",vD,[v[14]||(v[14]=K("span",{class:"detail-label"},"Body",-1)),Se(In,{text:h.response.body??""},null,8,["text"])]),K("pre",gD,Ve(u(h.response.body)),1)])])])]),_:2},1032,["show"])],64))),128))]),_:1})]))}}),[["__scopeId","data-v-e429157a"]]),bD={class:"debug-panel"},xD={key:0,class:"empty-state"},yD={class:"panel-section"},CD={class:"panel-section"},wD={class:"tab-bar"},SD={key:0,class:"tab-count"},kD={class:"tab-content"},RD=Ot(ge({__name:"DebugPanel",setup(e){const t=Tr(),o=L("response"),n=E(()=>{const r=t.currentRequest.endpointId;return r?t.history.filter(i=>i.request.endpointId===r).length:0});return Ze(()=>t.currentRequest,r=>{console.log("currentRequest",r)}),Ze(()=>t.currentResponse,r=>{r&&(o.value="response")}),(r,i)=>(me(),Re("div",bD,[he(t).currentRequest.url?(me(),Re(Ue,{key:1},[K("section",yD,[Se(bB)]),i[3]||(i[3]=K("div",{class:"divider"},null,-1)),K("section",CD,[K("div",wD,[K("button",{class:Pt(["tab-btn",{"tab-btn--active":o.value==="response"}]),onClick:i[0]||(i[0]=l=>o.value="response")}," 响应 ",2),K("button",{class:Pt(["tab-btn",{"tab-btn--active":o.value==="history"}]),onClick:i[1]||(i[1]=l=>o.value="history")},[i[2]||(i[2]=it(" 历史 ",-1)),n.value?(me(),Re("span",SD,Ve(n.value),1)):et("",!0)],2)]),K("div",kD,[Ut(Se(NL,{response:he(t).currentResponse,loading:he(t).sending},null,8,["response","loading"]),[[Un,o.value==="response"]]),Ut(Se(mD,null,null,512),[[Un,o.value==="history"]])])])],64)):(me(),Re("div",xD,[Se(he(kr),{description:"切换到调试模式后自动初始化请求",size:"small"})]))]))}}),[["__scopeId","data-v-d5a6183a"]]),PD={class:"detail-inner"},_D={class:"endpoint-header"},$D={class:"endpoint-title-row"},TD={class:"endpoint-path"},zD={key:0,class:"endpoint-summary"},ED={key:1,class:"endpoint-description"},OD={key:0,class:"tab-empty"},ID={class:"param-group-header"},AD={class:"param-group-label"},FD={class:"param-group-count"},MD={key:0,class:"example-block"},BD={class:"example-header"},LD={class:"example-title"},DD={class:"example-code"},HD={class:"media-type-selector"},ND={key:0,class:"schema-section"},jD={key:1,class:"tab-empty"},WD={key:0,class:"example-block"},VD={class:"example-header"},UD={class:"example-code"},KD={key:0,class:"tab-empty"},qD=["onClick"],GD={key:0,class:"resp-media-tag"},XD={key:1,class:"resp-desc-text"},YD={key:1,class:"resp-no-schema"},JD={key:2,class:"example-block"},ZD={class:"example-header"},QD={class:"example-code"},e7=Ot(ge({__name:"EndpointDetail",props:{endpoint:{}},setup(e){const t=e,o=Tr(),n=L("params");function r(k){n.value=k,k==="debug"&&o.initRequest(t.endpoint)}Ze(()=>t.endpoint.id,()=>{n.value==="debug"&&o.initRequest(t.endpoint)});function i(k){return JSON.stringify(k,null,2)??""}const l={string:"#0ea5e9",number:"#f59e0b",integer:"#f59e0b",boolean:"#8b5cf6",array:"#10b981",object:"#6366f1"};function a(k){return k.properties&&Object.keys(k.properties).length>0?!0:k._subSchemas?k._subSchemas.some(a):!1}function s(k){if(k._combiner){if(k._combiner==="allOf"){const Y=k.type??(a(k)?"object":"any");return Y==="array"&&k.items?`array<${a(k.items)?"object":k.items.type??"any"}>`:k.enum?`${Y} enum`:Y}return a(k)?"object":k._combiner}const I=k.type??"any";return I==="array"&&k.items?`array<${a(k.items)?"object":k.items.type??"any"}>`:k.enum?`${I} enum`:I}function c(k){const I=k.split(/[< ]/)[0],Y=l[I]??"#94a3b8";return f(io,{size:"small",bordered:!1,style:{backgroundColor:`${Y}18`,color:Y,fontFamily:"var(--font-mono)",fontSize:"11px",padding:"0 6px"}},()=>k)}function d(k){const I=k.enum,Y=k.enumVarnames,j=k.enumDescriptions,ee=!!(Y||j),D=()=>f(io,{size:"small",bordered:!1,style:{fontSize:"11px",cursor:"pointer",color:"#64748b",backgroundColor:"#64748b18"}},()=>`enum(${I.length})`),M=()=>f("div",{style:{maxWidth:"360px",maxHeight:"280px",overflowY:"auto"}},I.map((N,ve)=>{const J=[],Ce=JSON.stringify(N);return J.push(f("div",{style:{display:"flex",alignItems:"baseline",gap:"6px"}},[f("code",{style:{fontFamily:"var(--font-mono)",fontSize:"12px",color:"#0ea5e9",background:"var(--color-code-bg, #f1f5f9)",padding:"1px 5px",borderRadius:"3px",flexShrink:0}},Ce),...Y!=null&&Y[ve]?[f("span",{style:{fontFamily:"var(--font-mono)",fontSize:"11px",color:"#8b5cf6"}},Y[ve])]:[]])),j!=null&&j[ve]&&J.push(f("div",{style:{fontSize:"11px",color:"var(--color-text-muted, #94a3b8)",paddingLeft:"4px",marginTop:"2px",lineHeight:"1.4"}},j[ve])),f("div",{style:{padding:"4px 0",borderBottom:ve<I.length-1?"1px solid var(--color-border, #e2e8f0)":"none"}},J)}));if(!ee){const N=I.map(ve=>JSON.stringify(ve)).join(" | ");return f(Lo,{trigger:"hover"},{trigger:D,default:()=>f("code",{style:{fontSize:"12px"}},N)})}return f(Lo,{trigger:"hover",placement:"bottom"},{trigger:D,default:M})}function u(k){let I={},Y=[...k.required??[]];if(k._combiner&&k._subSchemas)for(const j of k._subSchemas){const ee=u(j);I={...I,...ee.props},Y=Y.concat(ee.required)}return k.properties&&(I={...I,...k.properties}),{props:I,required:Y}}function p(k,I,Y){if(Y>4)return;const j=B(k),{props:ee,required:D}=u(j);if(Object.keys(ee).length===0)return;const M=new Set(D),N=Object.entries(ee).map(([ve,J])=>{const Ce=`${I}.${ve}`;return{key:Ce,name:ve,type:s(J),required:M.has(ve),description:J.description??"",example:J.example,schema:J,deprecated:J.deprecated,depth:Y,children:p(J,Ce,Y+1)}});return N.length>0?N:void 0}const v=["path","query","header","cookie"],h={path:"Path 参数",query:"Query 参数",header:"Header 参数",cookie:"Cookie 参数"},g={path:"#3b82f6",query:"#10b981",header:"#f59e0b",cookie:"#8b5cf6"},b=E(()=>{const k=[];for(const I of v){const Y=t.endpoint.parameters.filter(D=>D.in===I);if(!Y.length)continue;const j=Y.map(D=>({key:`param:${D.in}:${D.name}`,name:D.name,in:D.in,type:s(D.schema),required:D.required,description:D.description??"",example:D.example??D.schema.example,schema:D.schema,deprecated:D.deprecated,depth:0,children:p(D.schema,`param:${D.in}:${D.name}`,0)}));let ee;if(I==="path"){let D=t.endpoint.path;for(const M of Y){const N=M.example??M.schema.example??On(M.schema);D=D.replace(`{${M.name}}`,String(N??M.name))}ee=D}else{const D={};for(const M of Y)D[M.name]=M.example??M.schema.example??On(M.schema);ee=i(D)}k.push({location:I,label:h[I]??I,color:g[I]??"#94a3b8",rows:j,exampleJson:ee})}return k}),m=L([]);function x(k){return k==null?"":typeof k=="string"?k:JSON.stringify(k)}function S(k){const I=x(k);return I?f("code",{style:{fontFamily:"var(--font-mono)",fontSize:"11.5px",color:"#0ea5e9",background:"var(--color-code-bg)",padding:"1px 5px",borderRadius:"3px"}},I):f("span",{style:{color:"var(--color-text-muted)",fontSize:"13px"}},"-")}function C(k){return f("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:k?"#10b981":"#d1d5db","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[f("path",{d:k?"M20 6L9 17l-5-5":"M18 6L6 18M6 6l12 12"})])}function y(k){return k.depth>0?{class:`row-depth-${Math.min(k.depth,4)}`}:{}}function R(k){return f("span",{style:{fontFamily:"var(--font-mono)",fontSize:"13px"}},k)}const P=[{key:"name",title:"名称",width:360,tree:!0,ellipsis:{tooltip:!0},render:k=>R(k.name)},{key:"type",title:"类型",width:140,render:k=>c(k.type)},{key:"required",title:"必填",width:50,align:"center",render:k=>C(k.required)},{key:"example",title:"示例",width:160,ellipsis:{tooltip:!0},render:k=>S(k.example)},{key:"description",title:"描述",ellipsis:{tooltip:!0},render:k=>{const I=[];return k.description?I.push(f("span",{style:{fontSize:"13px"}},k.description)):!k.deprecated&&!k.schema.enum&&I.push(f("span",{style:{fontSize:"13px",color:"var(--color-text-muted)"}},"-")),k.deprecated&&I.push(f(io,{size:"small",type:"warning",bordered:!1,style:{fontSize:"11px",verticalAlign:"middle",marginLeft:"4px"}},()=>"deprecated")),k.schema.enum&&I.push(d(k.schema)),f("span",{},I)}}],w=L("");Ze(()=>t.endpoint,k=>{var I;(I=k.requestBody)!=null&&I.mediaTypes.length?w.value=k.requestBody.mediaTypes[0].mediaType:w.value=""},{immediate:!0,deep:!0});function _(k){const I=parseInt(k,10);return I>=500?"#ef4444":I>=400?"#f59e0b":I>=300?"#0ea5e9":I>=200?"#10b981":"#94a3b8"}function B(k){if(k.type==="array"&&k.items)return k.items;if(k._combiner==="allOf"&&k._subSchemas){for(const I of k._subSchemas)if(I.type==="array"&&I.items)return I.items}return k}function z(k,I,Y){if(Y>4)return;const j=B(k),{props:ee,required:D}=u(j);if(Object.keys(ee).length===0)return;const M=new Set(D),N=Object.entries(ee).map(([ve,J])=>{const Ce=`${I}.${ve}`;return{key:Ce,name:ve,type:s(J),required:M.has(ve),description:J.description??"",example:J.example,schema:J,depth:Y,children:z(J,Ce,Y+1)}});return N.length>0?N:void 0}const O=E(()=>t.endpoint.responses.map(k=>{var M;const I=k.mediaTypes.find(N=>N.schema),Y=I==null?void 0:I.schema,j=`resp:${k.statusCode}`,ee=Y?z(Y,j,0)??[]:[];let D="";return I&&(I.example!==void 0?D=i(I.example):((M=I.schema)==null?void 0:M.example)!==void 0?D=i(I.schema.example):I.schema&&(D=i(On(I.schema)))),{statusCode:k.statusCode,description:k.description,mediaType:I==null?void 0:I.mediaType,color:_(k.statusCode),rows:ee,exampleJson:D}})),A=L([]),U=L(new Set);function W(k){const I=new Set(U.value);I.has(k)?I.delete(k):I.add(k),U.value=I}const F=[{key:"name",title:"字段",width:360,tree:!0,ellipsis:{tooltip:!0},render:k=>R(k.name)},{key:"type",title:"类型",width:140,render:k=>c(k.type)},{key:"required",title:"必填",width:50,align:"center",render:k=>C(k.required)},{key:"example",title:"示例",width:160,ellipsis:{tooltip:!0},render:k=>S(k.example)},{key:"description",title:"描述",ellipsis:{tooltip:!0},render:k=>{const I=[];return k.description?I.push(f("span",{style:{fontSize:"13px"}},k.description)):I.push(f("span",{style:{fontSize:"13px",color:"var(--color-text-muted)"}},"-")),k.schema.enum&&I.push(d(k.schema)),f("span",{},I)}}],T=E(()=>{var I,Y;const k=(I=t.endpoint.requestBody)==null?void 0:I.mediaTypes.find(j=>j.mediaType===w.value);return k?k.example!==void 0?i(k.example):((Y=k.schema)==null?void 0:Y.example)!==void 0?i(k.schema.example):k.schema?i(On(k.schema)):"":""});return(k,I)=>(me(),mt(he(Yu),{class:"endpoint-detail"},{default:He(()=>[K("div",PD,[K("div",_D,[K("div",$D,[Se(Hy,{method:e.endpoint.method},null,8,["method"]),K("span",TD,Ve(e.endpoint.path),1),Se(In,{text:e.endpoint.path},null,8,["text"]),e.endpoint.deprecated?(me(),mt(he(io),{key:0,size:"small",type:"warning",bordered:!1,style:{"font-size":"11px"}},{default:He(()=>[...I[3]||(I[3]=[it(" deprecated ",-1)])]),_:1})):et("",!0),e.endpoint._isWebhook?(me(),mt(he(io),{key:1,size:"small",bordered:!1,style:{"font-size":"11px",background:"#8b5cf618",color:"#8b5cf6"}},{default:He(()=>[...I[4]||(I[4]=[it(" webhook ",-1)])]),_:1})):et("",!0)]),e.endpoint.summary?(me(),Re("p",zD,Ve(e.endpoint.summary),1)):et("",!0),e.endpoint.description?(me(),Re("p",ED,Ve(e.endpoint.description),1)):et("",!0)]),(me(),mt(he(rc),{key:e.endpoint.id,value:n.value,type:"line",size:"small",class:"detail-tabs","onUpdate:value":r},{default:He(()=>[Se(he(Ho),{name:"params",tab:"参数",disabled:!e.endpoint.parameters.length},{default:He(()=>[e.endpoint.parameters.length?(me(!0),Re(Ue,{key:1},To(b.value,Y=>(me(),Re("div",{key:Y.location,class:"param-group"},[K("div",ID,[K("span",{class:"param-group-dot",style:$o({background:Y.color})},null,4),K("span",AD,Ve(Y.label),1),K("span",FD,Ve(Y.rows.length),1)]),Se(he(Du),{columns:P,data:Y.rows,"row-key":j=>j.key,"expanded-row-keys":m.value,"row-props":y,indent:20,size:"small",pagination:!1,"onUpdate:expandedRowKeys":I[0]||(I[0]=j=>m.value=j)},null,8,["data","row-key","expanded-row-keys"]),Y.exampleJson?(me(),Re("div",MD,[K("div",BD,[K("span",LD,Ve(Y.location==="path"?"URL 示例":Y.label+" JSON 示例"),1),Se(In,{text:Y.exampleJson},null,8,["text"])]),K("pre",DD,Ve(Y.exampleJson),1)])):et("",!0)]))),128)):(me(),Re("div",OD,[Se(he(kr),{description:"无需参数",size:"small"})]))]),_:1},8,["disabled"]),Se(he(Ho),{name:"body",tab:"请求体",disabled:!e.endpoint.requestBody},{default:He(()=>[e.endpoint.requestBody?(me(),Re(Ue,{key:0},[K("div",HD,[Se(he(la),{value:w.value,"onUpdate:value":I[1]||(I[1]=Y=>w.value=Y),size:"small",style:{width:"240px"},options:e.endpoint.requestBody.mediaTypes.map(Y=>({label:Y.mediaType,value:Y.mediaType}))},null,8,["value","options"]),e.endpoint.requestBody.required?(me(),mt(he(io),{key:0,size:"small",type:"error",bordered:!1,style:{"font-size":"11px"}},{default:He(()=>[...I[5]||(I[5]=[it(" required ",-1)])]),_:1})):et("",!0)]),(me(!0),Re(Ue,null,To(e.endpoint.requestBody.mediaTypes,Y=>(me(),Re(Ue,{key:Y.mediaType},[Y.mediaType===w.value?(me(),Re("div",ND,[Y.schema?(me(),mt(SM,{key:0,schema:Y.schema},null,8,["schema"])):(me(),Re("div",jD,[Se(he(kr),{description:"无 Schema 定义",size:"small"})]))])):et("",!0)],64))),128)),T.value?(me(),Re("div",WD,[K("div",VD,[I[6]||(I[6]=K("span",{class:"example-title"},"JSON 示例",-1)),Se(In,{text:T.value},null,8,["text"])]),K("pre",UD,Ve(T.value),1)])):et("",!0)],64)):et("",!0)]),_:1},8,["disabled"]),Se(he(Ho),{name:"responses",tab:"响应"},{default:He(()=>[e.endpoint.responses.length?(me(!0),Re(Ue,{key:1},To(O.value,Y=>(me(),Re("div",{key:Y.statusCode,class:"param-group"},[K("div",{class:"param-group-header param-group-header--clickable",onClick:j=>W(Y.statusCode)},[(me(),Re("svg",{class:Pt(["collapse-arrow",{"collapse-arrow--collapsed":U.value.has(Y.statusCode)}]),xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...I[7]||(I[7]=[K("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),Se(he(io),{size:"small",bordered:!1,style:$o({backgroundColor:Y.color+"18",color:Y.color,fontFamily:"var(--font-mono)",fontSize:"12px",padding:"0 8px"})},{default:He(()=>[it(Ve(Y.statusCode),1)]),_:2},1032,["style"]),Y.mediaType?(me(),Re("span",GD,Ve(Y.mediaType),1)):et("",!0),Y.description?(me(),Re("span",XD,Ve(Y.description),1)):et("",!0)],8,qD),U.value.has(Y.statusCode)?et("",!0):(me(),Re(Ue,{key:0},[Y.rows.length?(me(),mt(he(Du),{key:0,columns:F,data:Y.rows,"row-key":j=>j.key,"expanded-row-keys":A.value,"row-props":y,indent:20,size:"small",pagination:!1,"onUpdate:expandedRowKeys":I[2]||(I[2]=j=>A.value=j)},null,8,["data","row-key","expanded-row-keys"])):(me(),Re("div",YD,"无 Schema 定义")),Y.exampleJson?(me(),Re("div",JD,[K("div",ZD,[I[8]||(I[8]=K("span",{class:"example-title"},"JSON 示例",-1)),Se(In,{text:Y.exampleJson},null,8,["text"])]),K("pre",QD,Ve(Y.exampleJson),1)])):et("",!0)],64))]))),128)):(me(),Re("div",KD,[Se(he(kr),{description:"无响应定义",size:"small"})]))]),_:1}),Se(he(Ho),{name:"debug",tab:"调试 ▶"},{default:He(()=>[Se(RD)]),_:1})]),_:1},8,["value"]))])]),_:1}))}}),[["__scopeId","data-v-26dfef0a"]]),t7={class:"main-content"},o7={key:0,class:"state-center"},n7={key:1,class:"state-center"},r7={class:"error-box"},i7={key:2,class:"state-center"},l7={class:"welcome-inner"},a7={key:0,class:"state-center"},s7=Ot(ge({__name:"MainContent",setup(e){const t=_r(),o=E(()=>t.groups.length>0),n=E(()=>t.currentEndpoint);return(r,i)=>(me(),Re("main",t7,[he(t).loading?(me(),Re("div",o7,[Se(he(Ju),{size:"large"})])):he(t).error?(me(),Re("div",n7,[K("div",r7,[Se(he(n0),{type:"error",title:"规范解析失败"},{default:He(()=>[it(Ve(he(t).error),1)]),_:1}),Se(he(ht),{size:"small",style:{"margin-top":"12px"},onClick:he(t).openImporter},{default:He(()=>[...i[0]||(i[0]=[it(" 重新导入 ",-1)])]),_:1},8,["onClick"])])])):o.value?(me(),Re(Ue,{key:3},[n.value?(me(),mt(e7,{key:1,endpoint:n.value},null,8,["endpoint"])):(me(),Re("div",a7,[...i[4]||(i[4]=[K("span",{class:"muted-hint"},"← 从左侧选择一个接口",-1)])]))],64)):(me(),Re("div",i7,[K("div",l7,[i[2]||(i[2]=K("h2",{class:"welcome-title"},"FDOC",-1)),i[3]||(i[3]=K("p",{class:"welcome-desc"},"OpenAPI 3.x 接口文档与调试工具",-1)),Se(he(ht),{type:"primary",onClick:he(t).openImporter},{default:He(()=>[...i[1]||(i[1]=[it("导入 OpenAPI",-1)])]),_:1},8,["onClick"])])]))]))}}),[["__scopeId","data-v-c1db5596"]]),c7={key:0},d7={key:1,class:"url-tab"},u7={class:"headers-section"},f7=["onUpdate:modelValue"],h7=["onUpdate:modelValue"],p7=["onClick"],v7={key:0,class:"headers-empty"},g7={class:"url-actions"},s1="fdoc_last_url",m7=Ot(ge({__name:"SpecImporter",setup(e){const t=_r(),{loading:o,error:n,loadFromUrl:r,loadFromFile:i}=My(),l=localStorage.getItem(s1)??"",a=L(l),s=L(l?"url":"file"),c=L([]);Ze(a,S=>{c.value=t.getHeadersFor(S.trim()).map(C=>({...C}))},{immediate:!0});function d(){c.value.push({key:"",value:""})}function u(S){c.value.splice(S,1)}const p=L(!1);function v(S){S.preventDefault(),p.value=!0}function h(){p.value=!1}async function g(S){var R,P;S.preventDefault(),p.value=!1;const C=(P=(R=S.dataTransfer)==null?void 0:R.files)==null?void 0:P[0];if(!C)return;(await i(C)).ok&&x()}async function b(S){var R;const C=(R=S.target.files)==null?void 0:R[0];if(!C)return;(await i(C)).ok&&x()}async function m(){const S=a.value.trim();if(!S)return;t.saveHeadersFor(S,c.value),(await r(S)).ok&&(localStorage.setItem(s1,S),x())}function x(){t.closeImporter(),n.value=null}return(S,C)=>(me(),mt(he(el),{show:he(t).importerOpen,"mask-closable":!he(o),style:{width:"520px"},"onUpdate:show":C[2]||(C[2]=y=>!y&&x())},{default:He(()=>[Se(he(ra),{title:"导入 OpenAPI",bordered:!1,size:"medium",role:"dialog"},{"header-extra":He(()=>[Se(he(ht),{text:"",size:"small",style:{color:"var(--color-text-muted)"},onClick:x},{default:He(()=>[...C[3]||(C[3]=[it("✕",-1)])]),_:1})]),default:He(()=>[Se(he(Ju),{show:he(o)},{default:He(()=>[Se(he(rc),{value:s.value,"onUpdate:value":C[0]||(C[0]=y=>s.value=y),type:"segment",size:"small",style:{"margin-bottom":"16px"}},{default:He(()=>[Se(he(Ho),{name:"file",tab:"上传文件"}),Se(he(Ho),{name:"url",tab:"URL 导入"})]),_:1},8,["value"]),s.value==="file"?(me(),Re("div",c7,[K("label",{class:Pt(["drop-zone",{dragging:p.value}]),onDragover:v,onDragleave:h,onDrop:g},[K("input",{type:"file",accept:".json",class:"file-input",onChange:b},null,32),C[4]||(C[4]=K("span",{class:"drop-icon"},[K("svg",{width:"36",height:"36",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[K("polyline",{points:"16 16 12 12 8 16"}),K("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),K("path",{d:"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"})])],-1)),C[5]||(C[5]=K("span",{class:"drop-text"},"点击或拖拽文件到此区域导入",-1)),C[6]||(C[6]=K("span",{class:"drop-hint"},"支持 OpenAPI 3.x JSON 格式",-1))],34)])):(me(),Re("div",d7,[Se(he(qt),{value:a.value,"onUpdate:value":C[1]||(C[1]=y=>a.value=y),placeholder:"https://example.com/openapi.json",clearable:"",size:"medium",onKeydown:Ow(m,["enter"])},null,8,["value"]),K("div",u7,[K("div",{class:"headers-bar"},[C[7]||(C[7]=K("span",{class:"headers-label"},"请求头",-1)),K("button",{class:"headers-add",onClick:d},"+ 添加")]),(me(!0),Re(Ue,null,To(c.value,(y,R)=>(me(),Re("div",{key:R,class:"header-row"},[Ut(K("input",{"onUpdate:modelValue":P=>y.key=P,class:"hi hi--key",placeholder:"Header"},null,8,f7),[[Ei,y.key]]),Ut(K("input",{"onUpdate:modelValue":P=>y.value=P,class:"hi hi--val",placeholder:"Value"},null,8,h7),[[Ei,y.value]]),K("button",{class:"header-del",onClick:P=>u(R)},[...C[8]||(C[8]=[K("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round"},[K("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,p7)]))),128)),c.value.length===0?(me(),Re("p",v7,"暂无自定义请求头")):et("",!0)]),K("div",g7,[Se(he(ht),{type:"primary",disabled:!a.value.trim(),onClick:m},{default:He(()=>[...C[9]||(C[9]=[it(" 导入 ",-1)])]),_:1},8,["disabled"])])])),he(n)?(me(),mt(he(n0),{key:2,type:"error",title:he(n),style:{"margin-top":"14px"}},null,8,["title"])):et("",!0)]),_:1},8,["show"])]),_:1})]),_:1},8,["show","mask-closable"]))}}),[["__scopeId","data-v-4eed4792"]]),b7={class:"app-root"},x7={class:"app-body"},c1="fdoc_theme",y7=Ot(ge({__name:"App",setup(e){const t=_r(),o=KS(),n=Av(),r=L2(),i=localStorage.getItem(c1),l=L(i),a=E(()=>l.value!==null?l.value==="dark":r.value==="dark"),s=E(()=>a.value?nA:null),c=E(()=>a.value?iA:rA);Lt(()=>{document.documentElement.setAttribute("data-theme",a.value?"dark":"light")});function d(){const v=a.value?"light":"dark";l.value=v,localStorage.setItem(c1,v)}const{message:u}=gO(["message"]);let p=!1;return Ze(()=>o.query.ep,v=>{var b;const h=typeof v=="string"?v:void 0;if(!h||h===t.currentEndpointId)return;if(t.allEndpoints.some(m=>m.id===h))t.selectEndpoint(h);else if(t.groups.length>0){u.warning(`接口 "${h}" 不存在,已加载第一个接口`);const m=(b=t.allEndpoints[0])==null?void 0:b.id;m&&t.selectEndpoint(m),n.replace({query:{}})}}),Ze(()=>t.currentEndpointId,v=>{if(!p)return;const h=o.query.ep;v&&v!==h?n.replace({query:{ep:v}}):!v&&h&&n.replace({query:{}})}),Bt(()=>{t.restoreCache();const v=o.query.ep;v&&t.groups.length>0&&(t.allEndpoints.some(g=>g.id===v)?t.selectEndpoint(v):(u.warning(`接口 "${v}" 不存在,自动选中第一个接口`),n.replace({query:{}}))),p=!0}),(v,h)=>(me(),mt(he(w0),{theme:s.value,"theme-overrides":c.value},{default:He(()=>[Se(he(zx),null,{default:He(()=>[K("div",b7,[Se(XF,{"is-dark":a.value,onToggleTheme:d},null,8,["is-dark"]),K("div",x7,[Se(hM),Se(s7)]),Se(m7)])]),_:1})]),_:1},8,["theme","theme-overrides"]))}}),[["__scopeId","data-v-4962dc25"]]);function C7(e,t){const o=typeof e=="string"?document.querySelector(e):e;if(!o)throw new Error(`[fdoc] mount: cannot find element "${String(e)}"`);const n=Bw(),r=US({history:kS(),routes:[{path:"/",component:{template:"<div/>"}}]}),i=ev(y7);if(i.use(n),i.use(r),r.isReady().then(()=>i.mount(o)),t!=null&&t.url){const l=_r(n);fetch(t.url).then(a=>a.json()).then(a=>{l.loadSpec(a),l.setSourceUrl(t.url)}).catch(a=>console.error("[fdoc] Failed to load spec from url:",a))}return()=>i.unmount()}return Co.mount=C7,Object.defineProperty(Co,Symbol.toStringTag,{value:"Module"}),Co}({});
3720
+ `).length),l=E(()=>i.value>yL),a=L(!1),s=L(!1);async function c(){try{await navigator.clipboard.writeText(t.code),s.value=!0,setTimeout(()=>s.value=!1,1500)}catch{}}function d(){let u=document.getElementById(l1);u||(u=document.createElement("link"),u.id=l1,u.rel="stylesheet",document.head.appendChild(u)),u.href=o.value?wL:CL}return Ze(o,d,{immediate:!0}),Bt(()=>$t(d)),(u,p)=>(me(),Re("div",{class:Pt(["json-highlight",{dark:o.value}])},[K("div",pL,[K("span",vL,Ve(e.language),1),Se(he(ht),{size:"tiny",text:"",class:"copy-btn",style:$o({color:s.value?"#10b981":void 0}),onClick:c},{default:He(()=>[it(Ve(s.value?"已复制":"复制"),1)]),_:1},8,["style"])]),K("div",{class:Pt(["code-wrap",{collapsed:l.value&&!a.value}])},[K("pre",gL,[K("code",{innerHTML:r.value},null,8,mL)]),l.value&&!a.value?(me(),Re("div",bL,[Se(he(ht),{size:"small",onClick:p[0]||(p[0]=v=>a.value=!0)},{default:He(()=>[it("展开全部 ("+Ve(i.value)+" 行)",1)]),_:1})])):et("",!0)],2),l.value&&a.value?(me(),Re("div",xL,[Se(he(ht),{size:"small",text:"",onClick:p[1]||(p[1]=v=>a.value=!1)},{default:He(()=>[...p[2]||(p[2]=[it("收起",-1)])]),_:1})])):et("",!0)],2))}}),[["__scopeId","data-v-aec27471"]]),SL=ge({__name:"JsonResponseView",props:{body:{}},setup(e){const t=e,o=E(()=>{try{return zr(JSON.parse(t.body))}catch{return t.body}});return(n,r)=>(me(),mt(a1,{code:o.value,language:"json"},null,8,["code"]))}}),kL={class:"image-view"},RL=["src","alt"],PL={class:"meta"},_L=["href"],$L=Ot(ge({__name:"ImageResponseView",props:{body:{},contentType:{}},setup(e){return(t,o)=>(me(),Re("div",kL,[K("img",{src:e.body,alt:e.contentType,class:"preview-img"},null,8,RL),K("div",PL,[K("a",{href:e.body,download:"response-image",class:"download-link"},"下载图片",8,_L)])]))}}),[["__scopeId","data-v-b9fd1d77"]]),TL=ge({__name:"HtmlResponseView",props:{body:{}},setup(e){return(t,o)=>(me(),mt(a1,{code:e.body,language:"xml"},null,8,["code"]))}}),zL={class:"raw-view"},EL={class:"toolbar"},OL={class:"hint"},IL={class:"raw-body"},AL=Ot(ge({__name:"RawResponseView",props:{body:{},contentType:{}},setup(e){const t=e;function o(){const n=t.contentType.includes("octet-stream")?"bin":"txt",r=new Blob([t.body],{type:t.contentType||"text/plain"}),i=URL.createObjectURL(r),l=document.createElement("a");l.href=i,l.download=`response.${n}`,l.click(),URL.revokeObjectURL(i)}return(n,r)=>(me(),Re("div",zL,[K("div",EL,[K("span",OL,Ve(e.contentType||"text/plain"),1),Se(he(ht),{size:"tiny",text:"",onClick:o},{default:He(()=>[...r[0]||(r[0]=[it("下载",-1)])]),_:1})]),K("pre",IL,Ve(e.body),1)]))}}),[["__scopeId","data-v-30120298"]]),FL={class:"response-viewer"},ML={key:0,class:"state-center"},BL={key:1,class:"state-center"},LL={class:"status-bar"},DL={class:"body-wrap"},HL={class:"headers-pre"},NL=Ot(ge({__name:"ResponseViewer",props:{response:{},loading:{type:Boolean}},setup(e){const t=e;function o(i){return i>=500?"#ef4444":i>=400?"#f59e0b":i>=300?"#0ea5e9":i>=200?"#10b981":"#94a3b8"}const n=E(()=>{if(!t.response)return null;switch(t.response.bodyType){case"json":return SL;case"image":return $L;case"html":return TL;default:return AL}}),r=E(()=>t.response?zr(t.response.headers):"");return(i,l)=>(me(),Re("div",FL,[e.loading?(me(),Re("div",ML,[Se(he(Ju),{size:"medium"}),l[0]||(l[0]=K("span",{class:"state-hint"},"请求中...",-1))])):e.response?(me(),Re(Ue,{key:2},[K("div",LL,[Se(he(io),{size:"small",bordered:!1,style:$o({backgroundColor:`${o(e.response.status)}18`,color:o(e.response.status),fontFamily:"var(--font-mono)",fontSize:"12px",padding:"0 8px"})},{default:He(()=>[it(Ve(e.response.status)+" "+Ve(e.response.statusText),1)]),_:1},8,["style"]),Se(he(io),{size:"small",bordered:!1,style:{"font-size":"11px",color:"var(--color-text-muted)",background:"var(--color-bg-subtle)"}},{default:He(()=>[it(Ve(e.response.duration)+" ms ",1)]),_:1}),Se(he(io),{size:"small",bordered:!1,style:{"font-size":"11px","font-family":"var(--font-mono)",color:"var(--color-text-muted)",background:"var(--color-bg-subtle)"}},{default:He(()=>[it(Ve(e.response.contentType||"—"),1)]),_:1})]),Se(he(rc),{type:"line",size:"small","default-value":"body"},{default:He(()=>[Se(he(Ho),{name:"body",tab:"响应体"},{default:He(()=>[K("div",DL,[(me(),mt(Hh(n.value),{body:e.response.body,"content-type":e.response.contentType},null,8,["body","content-type"]))])]),_:1}),Se(he(Ho),{name:"headers",tab:"响应头"},{default:He(()=>[K("pre",HL,Ve(r.value),1)]),_:1})]),_:1})],64)):(me(),Re("div",BL,[Se(he(kr),{description:"点击「▶ 发送」发起请求",size:"small"})]))]))}}),[["__scopeId","data-v-9c1034fa"]]),jL={class:"history-list"},WL={class:"list-header"},VL={key:0,class:"search-bar"},UL={key:0,class:"empty-state"},KL=["onClick"],qL={class:"item-left"},GL=["title"],XL={class:"item-right"},YL={class:"item-duration"},JL={class:"item-time"},ZL={class:"history-detail"},QL={class:"detail-section"},eD={class:"detail-url"},tD={class:"detail-url-text"},oD={class:"detail-block"},nD={class:"detail-block-header"},rD={class:"detail-pre"},iD={key:0,class:"detail-block"},lD={class:"detail-block-header"},aD={class:"detail-pre"},sD={class:"detail-section detail-section--response"},cD={class:"detail-section-header"},dD={class:"detail-duration"},uD={class:"detail-block"},fD={class:"detail-block-header"},hD={class:"detail-pre"},pD={class:"detail-block"},vD={class:"detail-block-header"},gD={class:"detail-pre"},mD=Ot(ge({__name:"HistoryList",setup(e){const t=Tr(),o=L(""),n=L(null),r=E(()=>{const p=t.currentRequest.endpointId;return p?t.history.filter(v=>v.request.endpointId===p):t.history}),i=E(()=>{const p=o.value.trim().toLowerCase();return p?r.value.filter(v=>v.request.method.toLowerCase().includes(p)||v.request.url.toLowerCase().includes(p)||String(v.response.status).includes(p)):r.value});function l(p){return p>=500?"#ef4444":p>=400?"#f59e0b":p>=300?"#0ea5e9":p>=200?"#10b981":"#94a3b8"}function a(p){return new Date(p).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function s(p){return p>=1e3?`${(p/1e3).toFixed(1)}s`:`${p}ms`}function c(p){try{const v=new URL(p);return v.pathname+v.search}catch{return p}}function d(p){n.value=n.value===p?null:p}function u(p){if(!p)return"(empty)";try{return zr(JSON.parse(p))}catch{return p.slice(0,2e3)}}return(p,v)=>(me(),Re("div",jL,[K("div",WL,[v[5]||(v[5]=K("span",{class:"list-title"},"调试历史",-1)),r.value.length?(me(),mt(he(ry),{key:0,onPositiveClick:v[0]||(v[0]=h=>he(t).clearEndpointHistory(he(t).currentRequest.endpointId))},{trigger:He(()=>[Se(he(ht),{size:"tiny",text:"",style:{color:"var(--color-text-muted)"}},{default:He(()=>[...v[3]||(v[3]=[it("清空",-1)])]),_:1})]),default:He(()=>[v[4]||(v[4]=it(" 确定清空该接口的调试历史? ",-1))]),_:1})):et("",!0)]),r.value.length?(me(),Re("div",VL,[Se(he(qt),{value:o.value,"onUpdate:value":v[1]||(v[1]=h=>o.value=h),size:"small",placeholder:"路径 / 方法 / 状态码",clearable:""},null,8,["value"])])):et("",!0),Se(he(Yu),{style:{"max-height":"520px"}},{default:He(()=>[i.value.length?et("",!0):(me(),Re("div",UL,[Se(he(kr),{description:r.value.length?"无匹配记录":"暂无调试历史",size:"small"},null,8,["description"])])),(me(!0),Re(Ue,null,To(i.value,h=>(me(),Re(Ue,{key:h.id},[K("div",{class:Pt(["history-item",{"history-item--expanded":n.value===h.id}]),onClick:g=>d(h.id)},[K("div",qL,[Se(Hy,{method:h.request.method},null,8,["method"]),K("span",{class:"item-path",title:h.request.url},Ve(c(h.request.url)),9,GL)]),K("div",XL,[K("span",{class:"item-status",style:$o({color:l(h.response.status)})},Ve(h.response.status),5),K("span",YL,Ve(s(h.response.duration)),1),K("span",JL,Ve(a(h.timestamp)),1),Se(he(ht),{text:"",size:"tiny",class:"action-btn",title:"回填请求",onClick:jr(g=>he(t).restoreFromHistory(h),["stop"])},{default:He(()=>[...v[6]||(v[6]=[K("svg",{xmlns:"http://www.w3.org/2000/svg",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[K("polyline",{points:"1 4 1 10 7 10"}),K("path",{d:"M3.51 15a9 9 0 1 0 .49-4.95"})],-1)])]),_:1},8,["onClick"]),Se(he(ry),{onPositiveClick:jr(g=>he(t).removeHistory(h.id),["stop"])},{trigger:He(()=>[Se(he(ht),{text:"",size:"tiny",class:"action-btn del-btn",onClick:v[2]||(v[2]=jr(()=>{},["stop"]))},{default:He(()=>[...v[7]||(v[7]=[K("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[K("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),_:1})]),default:He(()=>[v[8]||(v[8]=it(" 删除这条记录? ",-1))]),_:1},8,["onPositiveClick"])])],10,KL),Se(he(Az),{show:n.value===h.id},{default:He(()=>[K("div",ZL,[K("div",QL,[v[11]||(v[11]=K("div",{class:"detail-section-header"},[K("span",{class:"detail-section-title"},"请求")],-1)),K("div",eD,[K("span",tD,Ve(h.request.url),1),Se(In,{text:h.request.url},null,8,["text"])]),K("div",oD,[K("div",nD,[v[9]||(v[9]=K("span",{class:"detail-label"},"Headers",-1)),Se(In,{text:he(zr)(h.request.headers)},null,8,["text"])]),K("pre",rD,Ve(he(zr)(h.request.headers)),1)]),h.request.body?(me(),Re("div",iD,[K("div",lD,[v[10]||(v[10]=K("span",{class:"detail-label"},"Body",-1)),Se(In,{text:h.request.body},null,8,["text"])]),K("pre",aD,Ve(u(h.request.body)),1)])):et("",!0)]),K("div",sD,[K("div",cD,[v[12]||(v[12]=K("span",{class:"detail-section-title"},"响应",-1)),K("span",{class:"detail-status-text",style:$o({color:l(h.response.status)})},Ve(h.response.status)+" "+Ve(h.response.statusText),5),K("span",dD,Ve(s(h.response.duration)),1)]),K("div",uD,[K("div",fD,[v[13]||(v[13]=K("span",{class:"detail-label"},"Headers",-1)),Se(In,{text:he(zr)(h.response.headers)},null,8,["text"])]),K("pre",hD,Ve(he(zr)(h.response.headers)),1)]),K("div",pD,[K("div",vD,[v[14]||(v[14]=K("span",{class:"detail-label"},"Body",-1)),Se(In,{text:h.response.body??""},null,8,["text"])]),K("pre",gD,Ve(u(h.response.body)),1)])])])]),_:2},1032,["show"])],64))),128))]),_:1})]))}}),[["__scopeId","data-v-e429157a"]]),bD={class:"debug-panel"},xD={key:0,class:"empty-state"},yD={class:"panel-section"},CD={class:"panel-section"},wD={class:"tab-bar"},SD={key:0,class:"tab-count"},kD={class:"tab-content"},RD=Ot(ge({__name:"DebugPanel",setup(e){const t=Tr(),o=L("response"),n=E(()=>{const r=t.currentRequest.endpointId;return r?t.history.filter(i=>i.request.endpointId===r).length:0});return Ze(()=>t.currentRequest,r=>{console.log("currentRequest",r)}),Ze(()=>t.currentResponse,r=>{r&&(o.value="response")}),(r,i)=>(me(),Re("div",bD,[he(t).currentRequest.url?(me(),Re(Ue,{key:1},[K("section",yD,[Se(bB)]),i[3]||(i[3]=K("div",{class:"divider"},null,-1)),K("section",CD,[K("div",wD,[K("button",{class:Pt(["tab-btn",{"tab-btn--active":o.value==="response"}]),onClick:i[0]||(i[0]=l=>o.value="response")}," 响应 ",2),K("button",{class:Pt(["tab-btn",{"tab-btn--active":o.value==="history"}]),onClick:i[1]||(i[1]=l=>o.value="history")},[i[2]||(i[2]=it(" 历史 ",-1)),n.value?(me(),Re("span",SD,Ve(n.value),1)):et("",!0)],2)]),K("div",kD,[Ut(Se(NL,{response:he(t).currentResponse,loading:he(t).sending},null,8,["response","loading"]),[[Un,o.value==="response"]]),Ut(Se(mD,null,null,512),[[Un,o.value==="history"]])])])],64)):(me(),Re("div",xD,[Se(he(kr),{description:"切换到调试模式后自动初始化请求",size:"small"})]))]))}}),[["__scopeId","data-v-d5a6183a"]]),PD={class:"detail-inner"},_D={class:"endpoint-header"},$D={class:"endpoint-title-row"},TD={class:"endpoint-path"},zD={key:0,class:"endpoint-summary"},ED={key:1,class:"endpoint-description"},OD={key:0,class:"tab-empty"},ID={class:"param-group-header"},AD={class:"param-group-label"},FD={class:"param-group-count"},MD={key:0,class:"example-block"},BD={class:"example-header"},LD={class:"example-title"},DD={class:"example-code"},HD={class:"media-type-selector"},ND={key:0,class:"schema-section"},jD={key:1,class:"tab-empty"},WD={key:0,class:"example-block"},VD={class:"example-header"},UD={class:"example-code"},KD={key:0,class:"tab-empty"},qD=["onClick"],GD={key:0,class:"resp-media-tag"},XD={key:1,class:"resp-desc-text"},YD={key:1,class:"resp-no-schema"},JD={key:2,class:"example-block"},ZD={class:"example-header"},QD={class:"example-code"},e7=Ot(ge({__name:"EndpointDetail",props:{endpoint:{}},setup(e){const t=e,o=Tr(),n=L("params");function r(k){n.value=k,k==="debug"&&o.initRequest(t.endpoint)}Ze(()=>t.endpoint.id,()=>{n.value==="debug"&&o.initRequest(t.endpoint)});function i(k){return JSON.stringify(k,null,2)??""}const l={string:"#0ea5e9",number:"#f59e0b",integer:"#f59e0b",boolean:"#8b5cf6",array:"#10b981",object:"#6366f1"};function a(k){return k.properties&&Object.keys(k.properties).length>0?!0:k._subSchemas?k._subSchemas.some(a):!1}function s(k){if(k._combiner){if(k._combiner==="allOf"){const Y=k.type??(a(k)?"object":"any");return Y==="array"&&k.items?`array<${a(k.items)?"object":k.items.type??"any"}>`:k.enum?`${Y} enum`:Y}return a(k)?"object":k._combiner}const I=k.type??"any";return I==="array"&&k.items?`array<${a(k.items)?"object":k.items.type??"any"}>`:k.enum?`${I} enum`:I}function c(k){const I=k.split(/[< ]/)[0],Y=l[I]??"#94a3b8";return f(io,{size:"small",bordered:!1,style:{backgroundColor:`${Y}18`,color:Y,fontFamily:"var(--font-mono)",fontSize:"11px",padding:"0 6px"}},()=>k)}function d(k){const I=k.enum,Y=k.enumVarnames,j=k.enumDescriptions,ee=!!(Y||j),D=()=>f(io,{size:"small",bordered:!1,style:{fontSize:"11px",cursor:"pointer",color:"#64748b",backgroundColor:"#64748b18"}},()=>`enum(${I.length})`),M=()=>f("div",{style:{maxWidth:"360px",maxHeight:"280px",overflowY:"auto"}},I.map((N,ve)=>{const J=[],Ce=JSON.stringify(N);return J.push(f("div",{style:{display:"flex",alignItems:"baseline",gap:"6px"}},[f("code",{style:{fontFamily:"var(--font-mono)",fontSize:"12px",color:"#0ea5e9",background:"var(--color-code-bg, #f1f5f9)",padding:"1px 5px",borderRadius:"3px",flexShrink:0}},Ce),...Y!=null&&Y[ve]?[f("span",{style:{fontFamily:"var(--font-mono)",fontSize:"11px",color:"#8b5cf6"}},Y[ve])]:[]])),j!=null&&j[ve]&&J.push(f("div",{style:{fontSize:"11px",color:"var(--color-text-muted, #94a3b8)",paddingLeft:"4px",marginTop:"2px",lineHeight:"1.4"}},j[ve])),f("div",{style:{padding:"4px 0",borderBottom:ve<I.length-1?"1px solid var(--color-border, #e2e8f0)":"none"}},J)}));if(!ee){const N=I.map(ve=>JSON.stringify(ve)).join(" | ");return f(Lo,{trigger:"hover"},{trigger:D,default:()=>f("code",{style:{fontSize:"12px"}},N)})}return f(Lo,{trigger:"hover",placement:"bottom"},{trigger:D,default:M})}function u(k){let I={},Y=[...k.required??[]];if(k._combiner&&k._subSchemas)for(const j of k._subSchemas){const ee=u(j);I={...I,...ee.props},Y=Y.concat(ee.required)}return k.properties&&(I={...I,...k.properties}),{props:I,required:Y}}function p(k,I,Y){if(Y>4)return;const j=B(k),{props:ee,required:D}=u(j);if(Object.keys(ee).length===0)return;const M=new Set(D),N=Object.entries(ee).map(([ve,J])=>{const Ce=`${I}.${ve}`;return{key:Ce,name:ve,type:s(J),required:M.has(ve),description:J.description??"",example:J.example,schema:J,deprecated:J.deprecated,depth:Y,children:p(J,Ce,Y+1)}});return N.length>0?N:void 0}const v=["path","query","header","cookie"],h={path:"Path 参数",query:"Query 参数",header:"Header 参数",cookie:"Cookie 参数"},g={path:"#3b82f6",query:"#10b981",header:"#f59e0b",cookie:"#8b5cf6"},b=E(()=>{const k=[];for(const I of v){const Y=t.endpoint.parameters.filter(D=>D.in===I);if(!Y.length)continue;const j=Y.map(D=>({key:`param:${D.in}:${D.name}`,name:D.name,in:D.in,type:s(D.schema),required:D.required,description:D.description??"",example:D.example??D.schema.example,schema:D.schema,deprecated:D.deprecated,depth:0,children:p(D.schema,`param:${D.in}:${D.name}`,0)}));let ee;if(I==="path"){let D=t.endpoint.path;for(const M of Y){const N=M.example??M.schema.example??On(M.schema);D=D.replace(`{${M.name}}`,String(N??M.name))}ee=D}else{const D={};for(const M of Y)D[M.name]=M.example??M.schema.example??On(M.schema);ee=i(D)}k.push({location:I,label:h[I]??I,color:g[I]??"#94a3b8",rows:j,exampleJson:ee})}return k}),m=L([]);function x(k){return k==null?"":typeof k=="string"?k:JSON.stringify(k)}function S(k){const I=x(k);return I?f("code",{style:{fontFamily:"var(--font-mono)",fontSize:"11.5px",color:"#0ea5e9",background:"var(--color-code-bg)",padding:"1px 5px",borderRadius:"3px"}},I):f("span",{style:{color:"var(--color-text-muted)",fontSize:"13px"}},"-")}function C(k){return f("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:k?"#10b981":"#d1d5db","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[f("path",{d:k?"M20 6L9 17l-5-5":"M18 6L6 18M6 6l12 12"})])}function y(k){return k.depth>0?{class:`row-depth-${Math.min(k.depth,4)}`}:{}}function R(k){return f("span",{style:{fontFamily:"var(--font-mono)",fontSize:"13px"}},k)}const P=[{key:"name",title:"名称",width:360,tree:!0,ellipsis:{tooltip:!0},render:k=>R(k.name)},{key:"type",title:"类型",width:140,render:k=>c(k.type)},{key:"required",title:"必填",width:50,align:"center",render:k=>C(k.required)},{key:"example",title:"示例",width:160,ellipsis:{tooltip:!0},render:k=>S(k.example)},{key:"description",title:"描述",ellipsis:{tooltip:!0},render:k=>{const I=[];return k.description?I.push(f("span",{style:{fontSize:"13px"}},k.description)):!k.deprecated&&!k.schema.enum&&I.push(f("span",{style:{fontSize:"13px",color:"var(--color-text-muted)"}},"-")),k.deprecated&&I.push(f(io,{size:"small",type:"warning",bordered:!1,style:{fontSize:"11px",verticalAlign:"middle",marginLeft:"4px"}},()=>"deprecated")),k.schema.enum&&I.push(d(k.schema)),f("span",{},I)}}],w=L("");Ze(()=>t.endpoint,k=>{var I;(I=k.requestBody)!=null&&I.mediaTypes.length?w.value=k.requestBody.mediaTypes[0].mediaType:w.value=""},{immediate:!0,deep:!0});function _(k){const I=parseInt(k,10);return I>=500?"#ef4444":I>=400?"#f59e0b":I>=300?"#0ea5e9":I>=200?"#10b981":"#94a3b8"}function B(k){if(k.type==="array"&&k.items)return k.items;if(k._combiner==="allOf"&&k._subSchemas){for(const I of k._subSchemas)if(I.type==="array"&&I.items)return I.items}return k}function z(k,I,Y){if(Y>4)return;const j=B(k),{props:ee,required:D}=u(j);if(Object.keys(ee).length===0)return;const M=new Set(D),N=Object.entries(ee).map(([ve,J])=>{const Ce=`${I}.${ve}`;return{key:Ce,name:ve,type:s(J),required:M.has(ve),description:J.description??"",example:J.example,schema:J,depth:Y,children:z(J,Ce,Y+1)}});return N.length>0?N:void 0}const O=E(()=>t.endpoint.responses.map(k=>{var M;const I=k.mediaTypes.find(N=>N.schema),Y=I==null?void 0:I.schema,j=`resp:${k.statusCode}`,ee=Y?z(Y,j,0)??[]:[];let D="";return I&&(I.example!==void 0?D=i(I.example):((M=I.schema)==null?void 0:M.example)!==void 0?D=i(I.schema.example):I.schema&&(D=i(On(I.schema)))),{statusCode:k.statusCode,description:k.description,mediaType:I==null?void 0:I.mediaType,color:_(k.statusCode),rows:ee,exampleJson:D}})),A=L([]),U=L(new Set);function W(k){const I=new Set(U.value);I.has(k)?I.delete(k):I.add(k),U.value=I}const F=[{key:"name",title:"字段",width:360,tree:!0,ellipsis:{tooltip:!0},render:k=>R(k.name)},{key:"type",title:"类型",width:140,render:k=>c(k.type)},{key:"required",title:"必填",width:50,align:"center",render:k=>C(k.required)},{key:"example",title:"示例",width:160,ellipsis:{tooltip:!0},render:k=>S(k.example)},{key:"description",title:"描述",ellipsis:{tooltip:!0},render:k=>{const I=[];return k.description?I.push(f("span",{style:{fontSize:"13px"}},k.description)):I.push(f("span",{style:{fontSize:"13px",color:"var(--color-text-muted)"}},"-")),k.schema.enum&&I.push(d(k.schema)),f("span",{},I)}}],T=E(()=>{var I,Y;const k=(I=t.endpoint.requestBody)==null?void 0:I.mediaTypes.find(j=>j.mediaType===w.value);return k?k.example!==void 0?i(k.example):((Y=k.schema)==null?void 0:Y.example)!==void 0?i(k.schema.example):k.schema?i(On(k.schema)):"":""});return(k,I)=>(me(),mt(he(Yu),{class:"endpoint-detail"},{default:He(()=>[K("div",PD,[K("div",_D,[K("div",$D,[Se(Hy,{method:e.endpoint.method},null,8,["method"]),K("span",TD,Ve(e.endpoint.path),1),Se(In,{text:e.endpoint.path},null,8,["text"]),e.endpoint.deprecated?(me(),mt(he(io),{key:0,size:"small",type:"warning",bordered:!1,style:{"font-size":"11px"}},{default:He(()=>[...I[3]||(I[3]=[it(" deprecated ",-1)])]),_:1})):et("",!0),e.endpoint._isWebhook?(me(),mt(he(io),{key:1,size:"small",bordered:!1,style:{"font-size":"11px",background:"#8b5cf618",color:"#8b5cf6"}},{default:He(()=>[...I[4]||(I[4]=[it(" webhook ",-1)])]),_:1})):et("",!0)]),e.endpoint.summary?(me(),Re("p",zD,Ve(e.endpoint.summary),1)):et("",!0),e.endpoint.description?(me(),Re("p",ED,Ve(e.endpoint.description),1)):et("",!0)]),(me(),mt(he(rc),{key:e.endpoint.id,value:n.value,type:"line",size:"small",class:"detail-tabs","onUpdate:value":r},{default:He(()=>[Se(he(Ho),{name:"params",tab:"参数",disabled:!e.endpoint.parameters.length},{default:He(()=>[e.endpoint.parameters.length?(me(!0),Re(Ue,{key:1},To(b.value,Y=>(me(),Re("div",{key:Y.location,class:"param-group"},[K("div",ID,[K("span",{class:"param-group-dot",style:$o({background:Y.color})},null,4),K("span",AD,Ve(Y.label),1),K("span",FD,Ve(Y.rows.length),1)]),Se(he(Du),{columns:P,data:Y.rows,"row-key":j=>j.key,"expanded-row-keys":m.value,"row-props":y,indent:20,size:"small",pagination:!1,"onUpdate:expandedRowKeys":I[0]||(I[0]=j=>m.value=j)},null,8,["data","row-key","expanded-row-keys"]),Y.exampleJson?(me(),Re("div",MD,[K("div",BD,[K("span",LD,Ve(Y.location==="path"?"URL 示例":Y.label+" JSON 示例"),1),Se(In,{text:Y.exampleJson},null,8,["text"])]),K("pre",DD,Ve(Y.exampleJson),1)])):et("",!0)]))),128)):(me(),Re("div",OD,[Se(he(kr),{description:"无需参数",size:"small"})]))]),_:1},8,["disabled"]),Se(he(Ho),{name:"body",tab:"请求体",disabled:!e.endpoint.requestBody},{default:He(()=>[e.endpoint.requestBody?(me(),Re(Ue,{key:0},[K("div",HD,[Se(he(la),{value:w.value,"onUpdate:value":I[1]||(I[1]=Y=>w.value=Y),size:"small",style:{width:"240px"},options:e.endpoint.requestBody.mediaTypes.map(Y=>({label:Y.mediaType,value:Y.mediaType}))},null,8,["value","options"]),e.endpoint.requestBody.required?(me(),mt(he(io),{key:0,size:"small",type:"error",bordered:!1,style:{"font-size":"11px"}},{default:He(()=>[...I[5]||(I[5]=[it(" required ",-1)])]),_:1})):et("",!0)]),(me(!0),Re(Ue,null,To(e.endpoint.requestBody.mediaTypes,Y=>(me(),Re(Ue,{key:Y.mediaType},[Y.mediaType===w.value?(me(),Re("div",ND,[Y.schema?(me(),mt(SM,{key:0,schema:Y.schema},null,8,["schema"])):(me(),Re("div",jD,[Se(he(kr),{description:"无 Schema 定义",size:"small"})]))])):et("",!0)],64))),128)),T.value?(me(),Re("div",WD,[K("div",VD,[I[6]||(I[6]=K("span",{class:"example-title"},"JSON 示例",-1)),Se(In,{text:T.value},null,8,["text"])]),K("pre",UD,Ve(T.value),1)])):et("",!0)],64)):et("",!0)]),_:1},8,["disabled"]),Se(he(Ho),{name:"responses",tab:"响应"},{default:He(()=>[e.endpoint.responses.length?(me(!0),Re(Ue,{key:1},To(O.value,Y=>(me(),Re("div",{key:Y.statusCode,class:"param-group"},[K("div",{class:"param-group-header param-group-header--clickable",onClick:j=>W(Y.statusCode)},[(me(),Re("svg",{class:Pt(["collapse-arrow",{"collapse-arrow--collapsed":U.value.has(Y.statusCode)}]),xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...I[7]||(I[7]=[K("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),Se(he(io),{size:"small",bordered:!1,style:$o({backgroundColor:Y.color+"18",color:Y.color,fontFamily:"var(--font-mono)",fontSize:"12px",padding:"0 8px"})},{default:He(()=>[it(Ve(Y.statusCode),1)]),_:2},1032,["style"]),Y.mediaType?(me(),Re("span",GD,Ve(Y.mediaType),1)):et("",!0),Y.description?(me(),Re("span",XD,Ve(Y.description),1)):et("",!0)],8,qD),U.value.has(Y.statusCode)?et("",!0):(me(),Re(Ue,{key:0},[Y.rows.length?(me(),mt(he(Du),{key:0,columns:F,data:Y.rows,"row-key":j=>j.key,"expanded-row-keys":A.value,"row-props":y,indent:20,size:"small",pagination:!1,"onUpdate:expandedRowKeys":I[2]||(I[2]=j=>A.value=j)},null,8,["data","row-key","expanded-row-keys"])):(me(),Re("div",YD,"无 Schema 定义")),Y.exampleJson?(me(),Re("div",JD,[K("div",ZD,[I[8]||(I[8]=K("span",{class:"example-title"},"JSON 示例",-1)),Se(In,{text:Y.exampleJson},null,8,["text"])]),K("pre",QD,Ve(Y.exampleJson),1)])):et("",!0)],64))]))),128)):(me(),Re("div",KD,[Se(he(kr),{description:"无响应定义",size:"small"})]))]),_:1}),Se(he(Ho),{name:"debug",tab:"调试 ▶"},{default:He(()=>[Se(RD)]),_:1})]),_:1},8,["value"]))])]),_:1}))}}),[["__scopeId","data-v-26dfef0a"]]),t7={class:"main-content"},o7={key:0,class:"state-center"},n7={key:1,class:"state-center"},r7={class:"error-box"},i7={key:2,class:"state-center"},l7={class:"welcome-inner"},a7={key:0,class:"state-center"},s7=Ot(ge({__name:"MainContent",setup(e){const t=_r(),o=E(()=>t.groups.length>0),n=E(()=>t.currentEndpoint);return(r,i)=>(me(),Re("main",t7,[he(t).loading?(me(),Re("div",o7,[Se(he(Ju),{size:"large"})])):he(t).error?(me(),Re("div",n7,[K("div",r7,[Se(he(n0),{type:"error",title:"规范解析失败"},{default:He(()=>[it(Ve(he(t).error),1)]),_:1}),Se(he(ht),{size:"small",style:{"margin-top":"12px"},onClick:he(t).openImporter},{default:He(()=>[...i[0]||(i[0]=[it(" 重新导入 ",-1)])]),_:1},8,["onClick"])])])):o.value?(me(),Re(Ue,{key:3},[n.value?(me(),mt(e7,{key:1,endpoint:n.value},null,8,["endpoint"])):(me(),Re("div",a7,[...i[4]||(i[4]=[K("span",{class:"muted-hint"},"← 从左侧选择一个接口",-1)])]))],64)):(me(),Re("div",i7,[K("div",l7,[i[2]||(i[2]=K("h2",{class:"welcome-title"},"FDOC",-1)),i[3]||(i[3]=K("p",{class:"welcome-desc"},"OpenAPI 3.x 接口文档与调试工具",-1)),Se(he(ht),{type:"primary",onClick:he(t).openImporter},{default:He(()=>[...i[1]||(i[1]=[it("导入 OpenAPI",-1)])]),_:1},8,["onClick"])])]))]))}}),[["__scopeId","data-v-c1db5596"]]),c7={key:0},d7={key:1,class:"url-tab"},u7={class:"headers-section"},f7=["onUpdate:modelValue"],h7=["onUpdate:modelValue"],p7=["onClick"],v7={key:0,class:"headers-empty"},g7={class:"url-actions"},s1="fdoc_last_url",m7=Ot(ge({__name:"SpecImporter",setup(e){const t=_r(),{loading:o,error:n,loadFromUrl:r,loadFromFile:i}=My(),l=localStorage.getItem(s1)??"",a=L(l),s=L(l?"url":"file"),c=L([]);Ze(a,S=>{c.value=t.getHeadersFor(S.trim()).map(C=>({...C}))},{immediate:!0});function d(){c.value.push({key:"",value:""})}function u(S){c.value.splice(S,1)}const p=L(!1);function v(S){S.preventDefault(),p.value=!0}function h(){p.value=!1}async function g(S){var R,P;S.preventDefault(),p.value=!1;const C=(P=(R=S.dataTransfer)==null?void 0:R.files)==null?void 0:P[0];if(!C)return;(await i(C)).ok&&x()}async function b(S){var R;const C=(R=S.target.files)==null?void 0:R[0];if(!C)return;(await i(C)).ok&&x()}async function m(){const S=a.value.trim();if(!S)return;t.saveHeadersFor(S,c.value),(await r(S)).ok&&(localStorage.setItem(s1,S),x())}function x(){t.closeImporter(),n.value=null}return(S,C)=>(me(),mt(he(el),{show:he(t).importerOpen,"mask-closable":!he(o),style:{width:"520px"},"onUpdate:show":C[2]||(C[2]=y=>!y&&x())},{default:He(()=>[Se(he(ra),{title:"导入 OpenAPI",bordered:!1,size:"medium",role:"dialog"},{"header-extra":He(()=>[Se(he(ht),{text:"",size:"small",style:{color:"var(--color-text-muted)"},onClick:x},{default:He(()=>[...C[3]||(C[3]=[it("✕",-1)])]),_:1})]),default:He(()=>[Se(he(Ju),{show:he(o)},{default:He(()=>[Se(he(rc),{value:s.value,"onUpdate:value":C[0]||(C[0]=y=>s.value=y),type:"segment",size:"small",style:{"margin-bottom":"16px"}},{default:He(()=>[Se(he(Ho),{name:"file",tab:"上传文件"}),Se(he(Ho),{name:"url",tab:"URL 导入"})]),_:1},8,["value"]),s.value==="file"?(me(),Re("div",c7,[K("label",{class:Pt(["drop-zone",{dragging:p.value}]),onDragover:v,onDragleave:h,onDrop:g},[K("input",{type:"file",accept:".json",class:"file-input",onChange:b},null,32),C[4]||(C[4]=K("span",{class:"drop-icon"},[K("svg",{width:"36",height:"36",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[K("polyline",{points:"16 16 12 12 8 16"}),K("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),K("path",{d:"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"})])],-1)),C[5]||(C[5]=K("span",{class:"drop-text"},"点击或拖拽文件到此区域导入",-1)),C[6]||(C[6]=K("span",{class:"drop-hint"},"支持 OpenAPI 3.x JSON 格式",-1))],34)])):(me(),Re("div",d7,[Se(he(qt),{value:a.value,"onUpdate:value":C[1]||(C[1]=y=>a.value=y),placeholder:"https://example.com/openapi.json",clearable:"",size:"medium",onKeydown:Ow(m,["enter"])},null,8,["value"]),K("div",u7,[K("div",{class:"headers-bar"},[C[7]||(C[7]=K("span",{class:"headers-label"},"请求头",-1)),K("button",{class:"headers-add",onClick:d},"+ 添加")]),(me(!0),Re(Ue,null,To(c.value,(y,R)=>(me(),Re("div",{key:R,class:"header-row"},[Ut(K("input",{"onUpdate:modelValue":P=>y.key=P,class:"hi hi--key",placeholder:"Header"},null,8,f7),[[Ei,y.key]]),Ut(K("input",{"onUpdate:modelValue":P=>y.value=P,class:"hi hi--val",placeholder:"Value"},null,8,h7),[[Ei,y.value]]),K("button",{class:"header-del",onClick:P=>u(R)},[...C[8]||(C[8]=[K("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round"},[K("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,p7)]))),128)),c.value.length===0?(me(),Re("p",v7,"暂无自定义请求头")):et("",!0)]),K("div",g7,[Se(he(ht),{type:"primary",disabled:!a.value.trim(),onClick:m},{default:He(()=>[...C[9]||(C[9]=[it(" 导入 ",-1)])]),_:1},8,["disabled"])])])),he(n)?(me(),mt(he(n0),{key:2,type:"error",title:he(n),style:{"margin-top":"14px"}},null,8,["title"])):et("",!0)]),_:1},8,["show"])]),_:1})]),_:1},8,["show","mask-closable"]))}}),[["__scopeId","data-v-4eed4792"]]),b7={class:"app-root"},x7={class:"app-body"},c1="fdoc_theme",y7=Ot(ge({__name:"App",setup(e){const t=_r(),o=KS(),n=Av(),r=L2(),i=localStorage.getItem(c1),l=L(i),a=E(()=>l.value!==null?l.value==="dark":r.value==="dark"),s=E(()=>a.value?nA:null),c=E(()=>a.value?iA:rA);Lt(()=>{document.documentElement.setAttribute("data-theme",a.value?"dark":"light")});function d(){const v=a.value?"light":"dark";l.value=v,localStorage.setItem(c1,v)}const{message:u}=gO(["message"]);let p=!1;return Ze(()=>o.query.ep,v=>{var b;const h=typeof v=="string"?v:void 0;if(!h||h===t.currentEndpointId)return;if(t.allEndpoints.some(m=>m.id===h))t.selectEndpoint(h);else if(t.groups.length>0){u.warning(`接口 "${h}" 不存在,已加载第一个接口`);const m=(b=t.allEndpoints[0])==null?void 0:b.id;m&&t.selectEndpoint(m),n.replace({query:{}})}}),Ze(()=>t.currentEndpointId,v=>{if(!p)return;const h=o.query.ep;v&&v!==h?h&&t.allEndpoints.some(g=>g.id===h)?t.selectEndpoint(h):n.replace({query:{ep:v}}):!v&&h&&n.replace({query:{}})}),Bt(()=>{t.restoreCache();const v=o.query.ep;v&&t.groups.length>0&&(t.allEndpoints.some(g=>g.id===v)?t.selectEndpoint(v):(u.warning(`接口 "${v}" 不存在,自动选中第一个接口`),n.replace({query:{}}))),p=!0}),(v,h)=>(me(),mt(he(w0),{theme:s.value,"theme-overrides":c.value},{default:He(()=>[Se(he(zx),null,{default:He(()=>[K("div",b7,[Se(XF,{"is-dark":a.value,onToggleTheme:d},null,8,["is-dark"]),K("div",x7,[Se(hM),Se(s7)]),Se(m7)])]),_:1})]),_:1},8,["theme","theme-overrides"]))}}),[["__scopeId","data-v-b5984c8a"]]);function C7(e,t){const o=typeof e=="string"?document.querySelector(e):e;if(!o)throw new Error(`[fdoc] mount: cannot find element "${String(e)}"`);const n=Bw(),r=US({history:kS(),routes:[{path:"/",component:{template:"<div/>"}}]}),i=ev(y7);if(i.use(n),i.use(r),r.isReady().then(()=>i.mount(o)),t!=null&&t.url){const l=_r(n);fetch(t.url).then(a=>a.json()).then(a=>{l.loadSpec(a),l.setSourceUrl(t.url)}).catch(a=>console.error("[fdoc] Failed to load spec from url:",a))}return()=>i.unmount()}return Co.mount=C7,Object.defineProperty(Co,Symbol.toStringTag,{value:"Module"}),Co}({});
package/dist/lib/fdoc.js CHANGED
@@ -47722,7 +47722,7 @@ const YL = { class: "toolbar" }, JL = { class: "lang-label" }, ZL = { class: "hl
47722
47722
  (v) => {
47723
47723
  if (!p) return;
47724
47724
  const h = o.query.ep;
47725
- v && v !== h ? n.replace({ query: { ep: v } }) : !v && h && n.replace({ query: {} });
47725
+ v && v !== h ? h && t.allEndpoints.some((g) => g.id === h) ? t.selectEndpoint(h) : n.replace({ query: { ep: v } }) : !v && h && n.replace({ query: {} });
47726
47726
  }
47727
47727
  ), Mt(() => {
47728
47728
  t.restoreCache();
@@ -47753,7 +47753,7 @@ const YL = { class: "toolbar" }, JL = { class: "lang-label" }, ZL = { class: "hl
47753
47753
  _: 1
47754
47754
  }, 8, ["theme", "theme-overrides"]));
47755
47755
  }
47756
- }), fH = /* @__PURE__ */ Ot(uH, [["__scopeId", "data-v-4962dc25"]]);
47756
+ }), fH = /* @__PURE__ */ Ot(uH, [["__scopeId", "data-v-b5984c8a"]]);
47757
47757
  function pH(e, t) {
47758
47758
  const o = typeof e == "string" ? document.querySelector(e) : e;
47759
47759
  if (!o) throw new Error(`[fdoc] mount: cannot find element "${String(e)}"`);
@@ -1 +1 @@
1
- .auth-editor[data-v-e4396512]{display:flex;flex-direction:column;gap:10px;padding:8px 0}.auth-row[data-v-e4396512]{display:flex;align-items:center;gap:12px}.auth-label[data-v-e4396512]{flex-shrink:0;width:72px;font-size:12px;color:var(--color-text-muted);text-align:right}.auth-input[data-v-e4396512]{flex:1;max-width:360px;font-family:var(--font-mono);font-size:12.5px}.download-btn[data-v-eed7ed43]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s,background-color .15s;flex-shrink:0}.download-btn[data-v-eed7ed43]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.ls-wrap[data-v-086db566]{display:flex;flex-direction:column;gap:0}.ls-body[data-v-086db566]{display:flex;height:400px;overflow:hidden;border:1px solid var(--color-border);border-radius:6px 6px 0 0;border-bottom:none}.ls-keys[data-v-086db566]{width:200px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto;display:flex;flex-direction:column}.ls-keys-header[data-v-086db566]{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);flex-shrink:0}.ls-keys-title[data-v-086db566]{font-size:11px;font-weight:600;color:var(--color-text-muted)}.ls-refresh-btn[data-v-086db566]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.ls-refresh-btn[data-v-086db566]:hover{color:var(--color-primary, #18a058);background:var(--color-bg-subtle)}.ls-keys-empty[data-v-086db566]{font-size:12px;color:var(--color-text-muted);text-align:center;padding:20px 12px;margin:0}.ls-key-item[data-v-086db566]{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 12px;border:none;background:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--color-border);transition:background-color .1s;min-width:0}.ls-key-item[data-v-086db566]:last-child{border-bottom:none}.ls-key-item[data-v-086db566]:hover{background:var(--color-bg-subtle)}.ls-key-item--active[data-v-086db566]{background:color-mix(in srgb,var(--color-primary, #18a058) 10%,transparent)}.ls-key-name[data-v-086db566]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ls-key-badge[data-v-086db566]{flex-shrink:0;font-size:10px;font-weight:600;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--color-primary, #18a058) 15%,transparent);color:var(--color-primary, #18a058)}.ls-detail[data-v-086db566]{flex:1;min-width:0;padding:12px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.ls-detail-empty[data-v-086db566]{font-size:12px;color:var(--color-text-muted);margin:auto;text-align:center}.ls-section[data-v-086db566]{display:flex;flex-direction:column;gap:6px}.ls-section-label[data-v-086db566]{font-size:11px;font-weight:600;color:var(--color-text-muted);display:flex;align-items:center;gap:6px}.ls-section-hint[data-v-086db566]{font-weight:400;font-size:10px;color:var(--color-text-muted);opacity:.7}.ls-code[data-v-086db566]{margin:0;padding:8px 10px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:4px;font-family:var(--font-mono);font-size:11.5px;line-height:1.55;color:var(--color-text);white-space:pre-wrap;word-break:break-all;max-height:160px;overflow-y:auto}.ls-code--error[data-v-086db566]{color:#d03050;border-color:#d03050;background:color-mix(in srgb,#d03050 5%,transparent)}.ls-path-input[data-v-086db566] .n-input__input-el,.ls-path-input[data-v-086db566] .n-input__textarea-el{font-family:var(--font-mono);font-size:12px}.ls-footer[data-v-086db566]{display:flex;justify-content:flex-end;padding:8px 10px;border:1px solid var(--color-border);border-top:none;border-radius:0 0 6px 6px;background:var(--color-bg-subtle)}.app-header[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 16px;border-bottom:1px solid var(--color-border);background-color:var(--color-bg);flex-shrink:0}.header-left[data-v-a3e00ef5]{display:flex;align-items:center;gap:12px}.logo[data-v-a3e00ef5]{font-size:15px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.spec-title[data-v-a3e00ef5]{font-size:13px;color:var(--color-text-muted);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right[data-v-a3e00ef5]{display:flex;align-items:center;gap:12px}.server-wrap[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:8px;padding:4px;width:760px}.section-title[data-v-a3e00ef5]{font-size:13px;font-weight:600;color:var(--color-text)}.section-desc[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted);margin-bottom:4px}.server-item[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-top:1px solid var(--color-border)}.server-url[data-v-a3e00ef5]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);word-break:break-all}.server-desc[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted)}.global-auth-wrap[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px;padding:4px;width:760px}.ga-tabs[data-v-a3e00ef5]{display:flex;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:4px;padding-bottom:0}.ga-tab[data-v-a3e00ef5]{display:flex;align-items:center;gap:4px;padding:5px 10px;border:none;background:none;cursor:pointer;font-size:12px;color:var(--color-text-muted);border-radius:4px 4px 0 0;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s}.ga-tab[data-v-a3e00ef5]:hover{color:var(--color-text)}.ga-tab--active[data-v-a3e00ef5]{color:var(--color-text);border-bottom-color:var(--color-primary, #18a058);font-weight:500}.ga-tab-badge[data-v-a3e00ef5]{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--color-primary, #18a058);color:#fff;font-size:10px;font-weight:600;line-height:1}.ga-kv-editor[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px;padding-top:4px}.ga-add-btn[data-v-a3e00ef5]{margin-top:2px}.ga-load-btn[data-v-a3e00ef5]{align-self:flex-start;margin-bottom:2px}.ga-header-entry[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:2px}.ga-key-wrap[data-v-a3e00ef5]{position:relative;flex-shrink:0;width:160px}.ga-key-wrap .doc-hi--key[data-v-a3e00ef5]{width:100%}.key-suggestions[data-v-a3e00ef5]{position:absolute;top:calc(100% + 2px);left:0;z-index:100;width:180px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 4px 12px #0000001f;max-height:180px;overflow-y:auto;display:flex;flex-direction:column}.key-suggestion-item[data-v-a3e00ef5]{padding:5px 8px;border:none;background:none;cursor:pointer;text-align:left;font-family:var(--font-mono);font-size:11px;color:var(--color-text);border-bottom:1px solid var(--color-border);transition:background-color 80ms}.key-suggestion-item[data-v-a3e00ef5]:last-child{border-bottom:none}.key-suggestion-item[data-v-a3e00ef5]:hover{background:var(--color-bg-subtle);color:var(--color-primary, #18a058)}.doc-ls-btn[data-v-a3e00ef5]{flex-shrink:0;height:26px;padding:0 6px;border:1px solid var(--color-border);border-radius:4px;background:none;cursor:pointer;font-size:10px;font-weight:600;color:var(--color-text-muted);font-family:var(--font-mono);transition:color .12s,border-color .12s,background-color .12s}.doc-ls-btn[data-v-a3e00ef5]:hover,.doc-ls-btn--active[data-v-a3e00ef5]{color:var(--color-primary, #18a058);border-color:var(--color-primary, #18a058);background:color-mix(in srgb,var(--color-primary, #18a058) 8%,transparent)}.doc-wrap[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:6px;padding:4px;width:240px}.doc-meta[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px}.doc-meta-row[data-v-a3e00ef5]{display:flex;align-items:center;gap:6px;font-size:12px}.doc-meta-label[data-v-a3e00ef5]{flex-shrink:0;min-width:60px;font-size:11px;color:var(--color-text-muted)}.doc-meta-value[data-v-a3e00ef5]{color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-meta-link[data-v-a3e00ef5]{font-family:var(--font-mono);font-size:11px;color:var(--color-primary, #18a058);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.doc-meta-link[data-v-a3e00ef5]:hover{text-decoration:underline}.doc-icon-btn[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.doc-icon-btn[data-v-a3e00ef5]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.doc-meta-mono[data-v-a3e00ef5]{font-family:var(--font-mono);font-size:11px}.doc-divider[data-v-a3e00ef5]{height:1px;background:var(--color-border);margin:2px 0}.doc-actions[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:2px}.doc-actions--row[data-v-a3e00ef5]{flex-direction:row}.doc-actions--row .doc-action-btn[data-v-a3e00ef5]{flex:1;justify-content:center}.doc-action-btn[data-v-a3e00ef5]{display:flex;align-items:center;gap:7px;width:100%;padding:6px 8px;border:none;background:none;cursor:pointer;font-size:13px;color:var(--color-text);border-radius:5px;text-align:left;transition:background-color .12s}.doc-action-btn[data-v-a3e00ef5]:hover:not(:disabled){background:var(--color-bg-subtle)}.doc-action-btn[data-v-a3e00ef5]:disabled{opacity:.5;cursor:not-allowed}.doc-action-btn svg[data-v-a3e00ef5]{flex-shrink:0;color:var(--color-text-muted)}@keyframes spin-a3e00ef5{to{transform:rotate(360deg)}}.spin[data-v-a3e00ef5]{animation:spin-a3e00ef5 .6s linear infinite}.doc-headers[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px}.doc-headers-bar[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.doc-headers-title[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted)}.doc-add-btn[data-v-a3e00ef5]{font-size:11px;color:var(--color-primary, #18a058);background:none;border:none;cursor:pointer;padding:0}.doc-add-btn[data-v-a3e00ef5]:hover{opacity:.8}.doc-header-row[data-v-a3e00ef5]{display:flex;gap:4px;align-items:center}.doc-hi[data-v-a3e00ef5]{height:26px;padding:0 6px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);font-size:11px;outline:none;min-width:0}.doc-hi[data-v-a3e00ef5]:focus{border-color:var(--color-primary, #18a058)}.doc-hi--key[data-v-a3e00ef5]{width:160px;flex-shrink:0}.doc-hi--val[data-v-a3e00ef5]{flex:1}.doc-header-del[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.doc-header-del[data-v-a3e00ef5]:hover{color:#d03050;background:color-mix(in srgb,#d03050 10%,transparent)}.doc-headers-empty[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted);text-align:center;padding:4px 0;margin:0}.sidebar[data-v-bfbcccf4]{width:var(--sidebar-width);flex-shrink:0;border-right:1px solid var(--color-border);background-color:var(--color-bg);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:width .2s ease}.sidebar--collapsed[data-v-bfbcccf4]{width:40px}.sidebar-search[data-v-bfbcccf4]{padding:10px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.sidebar-scroll[data-v-bfbcccf4]{flex:1}.sidebar-empty[data-v-bfbcccf4]{padding:40px 16px;color:var(--color-text-muted);font-size:12px;text-align:center}.menu-wrap[data-v-bfbcccf4]{width:100%}.sidebar-toggle[data-v-bfbcccf4]{position:absolute;bottom:12px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;transition:color .12s,background-color .12s;z-index:1}.sidebar-toggle[data-v-bfbcccf4]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.sidebar--collapsed .sidebar-toggle[data-v-bfbcccf4]{right:auto;left:50%;transform:translate(-50%)}.ep-info-panel[data-v-bfbcccf4]{position:fixed;left:calc(var(--sidebar-width) + 6px);z-index:9999;min-width:220px;max-width:320px;padding:10px 14px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);box-shadow:0 4px 16px #0000001a;pointer-events:auto}[data-theme=dark] .ep-info-panel[data-v-bfbcccf4]{box-shadow:0 4px 20px #0006}.info-path-row[data-v-bfbcccf4]{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}.info-method[data-v-bfbcccf4]{font-family:var(--font-mono);font-size:11px;font-weight:700;flex-shrink:0}.info-path[data-v-bfbcccf4]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);word-break:break-all}.info-divider[data-v-bfbcccf4]{height:1px;background:var(--color-border);margin-bottom:8px}.info-field[data-v-bfbcccf4]{display:flex;gap:8px;font-size:12px;line-height:1.6;align-items:flex-start}.info-label[data-v-bfbcccf4]{flex-shrink:0;min-width:70px;font-size:11px;color:var(--color-text-muted)}.info-value[data-v-bfbcccf4]{color:var(--color-text);word-break:break-word}.info-fade-enter-active[data-v-bfbcccf4],.info-fade-leave-active[data-v-bfbcccf4]{transition:opacity .1s,transform .1s}.info-fade-enter-from[data-v-bfbcccf4],.info-fade-leave-to[data-v-bfbcccf4]{opacity:0;transform:translate(-4px)}.sidebar .n-submenu>.n-menu-item .n-menu-item-content__icon{display:none}.sidebar .n-submenu>.n-menu-item .n-menu-item-content-header{font-size:11px!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase!important}.mi-root{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;width:100%}.mi-row{display:flex;align-items:baseline;gap:6px;min-width:0}.mi-method{font-family:var(--font-mono);font-size:10px;font-weight:700;flex-shrink:0;letter-spacing:.03em;line-height:1}.mi-primary{font-size:12px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.mi-secondary{font-family:var(--font-mono);font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.55}.method-badge[data-v-6bc10dbf]{display:inline-block;width:52px;text-align:center;font-family:var(--font-mono);font-size:11px;font-weight:600;flex-shrink:0}.method-get[data-v-6bc10dbf]{color:var(--color-get)}.method-post[data-v-6bc10dbf]{color:var(--color-post)}.method-put[data-v-6bc10dbf]{color:var(--color-put)}.method-patch[data-v-6bc10dbf]{color:var(--color-patch)}.method-delete[data-v-6bc10dbf]{color:var(--color-delete)}.method-head[data-v-6bc10dbf],.method-options[data-v-6bc10dbf]{color:var(--color-head)}.copy-btn[data-v-fc68ea39]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s,background-color .15s;flex-shrink:0}.copy-btn[data-v-fc68ea39]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.copy-btn--ok[data-v-fc68ea39],.copy-btn--ok[data-v-fc68ea39]:hover{color:#10b981}.schema-viewer[data-v-bb66e54d]{width:100%}.circular-hint[data-v-bb66e54d],.empty-hint[data-v-bb66e54d]{padding:8px 0;font-size:12px;color:var(--color-text-muted)}.circular-hint[data-v-bb66e54d]{color:#ef4444}.combiner-hint[data-v-bb66e54d]{display:flex;align-items:center;gap:6px;padding:8px 0;font-size:12px}.combiner-label[data-v-bb66e54d]{font-family:var(--font-mono);font-size:12px;font-weight:600;color:#64748b;background:#64748b18;padding:1px 6px;border-radius:4px}.combiner-count[data-v-bb66e54d]{color:var(--color-text-muted)}[data-v-bb66e54d] tr.row-depth-1 td{background-color:#6366f10f!important}[data-v-bb66e54d] tr.row-depth-2 td{background-color:#10b9810f!important}[data-v-bb66e54d] tr.row-depth-3 td{background-color:#f59e0b0f!important}[data-v-bb66e54d] tr.row-depth-4 td{background-color:#0ea5e90f!important}[data-v-bb66e54d] td:has(.n-data-table-expand-trigger),[data-v-bb66e54d] td:has(.n-data-table-expand-placeholder){display:flex!important;align-items:center!important}.pe[data-v-2006b456]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden;font-size:13px}.pe-header[data-v-2006b456]{display:flex;align-items:center;height:32px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);font-weight:500}.pe-hcell[data-v-2006b456]{display:flex;align-items:center;padding:0 8px}.pe-hcell--check[data-v-2006b456]{width:36px;flex-shrink:0}.pe-hcell--key[data-v-2006b456]{flex:0 0 180px}.pe-hcell--eq[data-v-2006b456]{width:24px;flex-shrink:0;justify-content:center;color:transparent}.pe-hcell--val[data-v-2006b456]{flex:1;min-width:0}.pe-hcell--act[data-v-2006b456]{width:36px;flex-shrink:0}.pe-row[data-v-2006b456]{display:flex;align-items:center;min-height:36px;border-bottom:1px solid var(--color-border);transition:background-color .12s}.pe-row[data-v-2006b456]:last-of-type{border-bottom:1px solid var(--color-border)}.pe-row[data-v-2006b456]:hover{background:var(--color-bg-subtle)}.pe-row--disabled[data-v-2006b456]{opacity:.45}.pe-cell[data-v-2006b456]{display:flex;align-items:center;padding:0 8px;min-height:36px}.pe-cell--check[data-v-2006b456]{width:36px;flex-shrink:0;justify-content:center}.pe-cell--key[data-v-2006b456]{flex:0 0 180px;border-right:1px solid var(--color-border)}.pe-cell--eq[data-v-2006b456]{width:24px;flex-shrink:0;justify-content:center;font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}.pe-cell--val[data-v-2006b456]{flex:1;min-width:0;gap:4px}.pe-cell--act[data-v-2006b456]{width:36px;flex-shrink:0;justify-content:center}.pe-input[data-v-2006b456],.pe-autocomplete[data-v-2006b456] .n-input{font-family:var(--font-mono);font-size:12.5px}.pe-autocomplete[data-v-2006b456] .n-input .n-input__border,.pe-autocomplete[data-v-2006b456] .n-input .n-input__state-border{border:none!important;box-shadow:none!important}.pe-del[data-v-2006b456]{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;border-radius:4px;cursor:pointer;color:#e5484d;opacity:0;transition:opacity .12s,background-color .12s}.pe-del[data-v-2006b456]:disabled{color:#d1d5db;cursor:not-allowed}.pe-del[data-v-2006b456]:not(:disabled):hover{background-color:#fee2e2}.pe-row:hover .pe-del[data-v-2006b456]{opacity:1}.pe-add[data-v-2006b456]{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:12px;color:var(--color-text-muted);cursor:pointer;transition:color .12s,background-color .12s}.pe-add[data-v-2006b456]:hover{color:var(--color-primary, #2080f0);background:var(--color-bg-subtle)}.pe-add-icon[data-v-2006b456]{width:14px;height:14px;flex-shrink:0}.pe-ls-btn[data-v-2006b456]{flex-shrink:0;height:22px;padding:0 5px;border:1px solid var(--color-border);border-radius:3px;background:none;cursor:pointer;font-size:10px;font-weight:600;font-family:var(--font-mono);color:var(--color-text-muted);opacity:0;transition:opacity .12s,color .12s,border-color .12s,background-color .12s}.pe-row:hover .pe-ls-btn[data-v-2006b456]{opacity:1}.pe-ls-btn[data-v-2006b456]:hover,.pe-ls-btn--active[data-v-2006b456]{color:var(--color-primary, #18a058);border-color:var(--color-primary, #18a058);background:color-mix(in srgb,var(--color-primary, #18a058) 8%,transparent);opacity:1}.jbe[data-v-4eb0272b]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.jbe-toolbar[data-v-4eb0272b]{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.jbe-hint[data-v-4eb0272b]{font-size:11px;color:var(--color-text-muted)}.jbe-hint--err[data-v-4eb0272b]{color:#ef4444}.jbe-wrap[data-v-4eb0272b]{padding:2px}.jbe-textarea[data-v-4eb0272b]{font-family:var(--font-mono);font-size:12.5px}.mp[data-v-dac4ff7c]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden;font-size:13px}.mp-header[data-v-dac4ff7c]{display:flex;align-items:center;height:32px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);font-weight:500}.mp-hcell[data-v-dac4ff7c]{display:flex;align-items:center;padding:0 8px}.mp-hcell--check[data-v-dac4ff7c]{width:36px;flex-shrink:0}.mp-hcell--key[data-v-dac4ff7c]{flex:0 0 160px}.mp-hcell--type[data-v-dac4ff7c]{width:80px;flex-shrink:0}.mp-hcell--val[data-v-dac4ff7c]{flex:1;min-width:0}.mp-hcell--act[data-v-dac4ff7c]{width:36px;flex-shrink:0}.mp-row[data-v-dac4ff7c]{display:flex;align-items:center;min-height:36px;border-bottom:1px solid var(--color-border);transition:background-color .12s}.mp-row[data-v-dac4ff7c]:hover{background:var(--color-bg-subtle)}.mp-row--disabled[data-v-dac4ff7c]{opacity:.45}.mp-cell[data-v-dac4ff7c]{display:flex;align-items:center;padding:0 8px;min-height:36px}.mp-cell--check[data-v-dac4ff7c]{width:36px;flex-shrink:0;justify-content:center}.mp-cell--key[data-v-dac4ff7c]{flex:0 0 160px;border-right:1px solid var(--color-border)}.mp-cell--type[data-v-dac4ff7c]{width:80px;flex-shrink:0;border-right:1px solid var(--color-border)}.mp-cell--val[data-v-dac4ff7c]{flex:1;min-width:0}.mp-cell--act[data-v-dac4ff7c]{width:36px;flex-shrink:0;justify-content:center}.mp-input[data-v-dac4ff7c]{font-family:var(--font-mono);font-size:12.5px}.mp-file-row[data-v-dac4ff7c]{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mp-file-btn[data-v-dac4ff7c]{font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-file-size[data-v-dac4ff7c]{font-size:10px;color:var(--color-text-muted);flex-shrink:0}.mp-del[data-v-dac4ff7c]{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;border-radius:4px;cursor:pointer;color:#e5484d;opacity:0;transition:opacity .12s,background-color .12s}.mp-del[data-v-dac4ff7c]:hover{background-color:#fee2e2}.mp-row:hover .mp-del[data-v-dac4ff7c]{opacity:1}.mp-footer[data-v-dac4ff7c]{display:flex;align-items:center;justify-content:space-between;height:34px;padding:0 12px}.mp-add-btns[data-v-dac4ff7c]{display:flex;align-items:center;gap:0}.mp-add[data-v-dac4ff7c]{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-muted);cursor:pointer;padding:2px 8px;border-radius:4px;transition:color .12s,background-color .12s}.mp-add[data-v-dac4ff7c]:hover{color:var(--color-primary, #2080f0);background:var(--color-bg-subtle)}.mp-add-icon[data-v-dac4ff7c]{width:14px;height:14px;flex-shrink:0}.mp-divider[data-v-dac4ff7c]{width:1px;height:14px;background:var(--color-border);margin:0 4px}.mp-stats[data-v-dac4ff7c]{font-size:11px;color:var(--color-text-muted)}.xbe[data-v-893f3881]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.xbe-toolbar[data-v-893f3881]{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.xbe-hint[data-v-893f3881]{font-size:11px;color:var(--color-text-muted)}.xbe-hint--err[data-v-893f3881]{color:#ef4444}.xbe-wrap[data-v-893f3881]{padding:2px}.xbe-textarea[data-v-893f3881]{font-family:var(--font-mono);font-size:12.5px}.bbe[data-v-eed78a60]{display:flex;flex-direction:column;gap:10px;padding:4px 0}.bbe-file[data-v-eed78a60]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:6px;font-size:12px;color:var(--color-text)}.bbe-name[data-v-eed78a60]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.bbe-size[data-v-eed78a60]{color:var(--color-text-muted);flex-shrink:0}.bbe-clear[data-v-eed78a60]{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:0;font-size:11px;line-height:1}.bbe-clear[data-v-eed78a60]:hover{color:#ef4444}.body-editor[data-v-aa464c78]{display:flex;flex-direction:column;gap:10px}.type-pills[data-v-aa464c78]{display:flex;align-items:center;gap:0;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;background:var(--color-bg-subtle)}.pill[data-v-aa464c78]{flex:none;padding:5px 14px;font-size:12px;font-weight:500;line-height:1;color:var(--color-text-muted);background:transparent;border:none;border-right:1px solid var(--color-border);cursor:pointer;transition:color .12s,background-color .12s;white-space:nowrap}.pill[data-v-aa464c78]:last-child{border-right:none}.pill[data-v-aa464c78]:hover{color:var(--color-text);background:var(--color-bg)}.pill--active[data-v-aa464c78],.pill--active[data-v-aa464c78]:hover{color:#fff;background:var(--color-primary, #2080f0)}.editor-wrap[data-v-aa464c78]{padding-top:2px}.body-none[data-v-aa464c78]{padding:16px 0;font-size:12px;color:var(--color-text-muted)}.request-form[data-v-d65b882d]{display:flex;flex-direction:column;gap:12px}.url-bar[data-v-d65b882d]{display:flex;gap:0;align-items:stretch;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;height:36px}.method-badge[data-v-d65b882d]{display:flex;align-items:center;justify-content:center;min-width:64px;padding:0 12px;font-family:var(--font-mono);font-size:12px;font-weight:700;background:var(--color-bg-subtle);border-right:1px solid var(--color-border);flex-shrink:0;-webkit-user-select:none;user-select:none}.url-input[data-v-d65b882d]{flex:1;font-family:var(--font-mono);font-size:13px}.url-input[data-v-d65b882d] .n-input__border,.url-input[data-v-d65b882d] .n-input__state-border{border:none!important;box-shadow:none!important}.send-btn[data-v-d65b882d]{flex-shrink:0;border-radius:0;height:100%;min-width:64px;border:none;border-left:1px solid var(--color-border)}.req-toolbar[data-v-d65b882d]{display:flex;align-items:center}.sub-tabs[data-v-d65b882d]{margin-top:0}.tab-placeholder[data-v-d65b882d]{padding:16px 0;font-size:12px;color:var(--color-text-muted)}.auth-hint[data-v-d65b882d]{font-size:11px;color:var(--color-text-muted);margin-bottom:4px}.curl-wrap[data-v-d65b882d]{position:relative}.curl-code[data-v-d65b882d]{margin:0;padding:12px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:6px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:var(--color-text);max-height:400px;overflow:auto}.curl-actions[data-v-d65b882d]{position:absolute;top:8px;right:8px}.tab-with-badge{display:inline-flex;align-items:center;gap:5px}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;border-radius:8px;color:#10b981;background:#10b98118}.json-highlight[data-v-aec27471]{position:relative;border-radius:6px;overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg)}.toolbar[data-v-aec27471]{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle)}.lang-label[data-v-aec27471]{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.copy-btn[data-v-aec27471]{font-size:12px;opacity:0;transition:opacity .12s}.json-highlight:hover .copy-btn[data-v-aec27471]{opacity:1}.code-wrap[data-v-aec27471]{overflow:auto;position:relative}.code-wrap.collapsed[data-v-aec27471]{max-height:480px;overflow:hidden}pre.hljs[data-v-aec27471]{margin:0;padding:12px 14px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;background:transparent!important;overflow:visible}.fade-mask[data-v-aec27471]{position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(transparent,var(--color-bg));display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px}.collapse-btn-row[data-v-aec27471]{display:flex;justify-content:center;padding:6px;border-top:1px solid var(--color-border)}.image-view[data-v-b9fd1d77]{display:flex;flex-direction:column;gap:10px;padding:8px}.preview-img[data-v-b9fd1d77]{max-width:100%;max-height:400px;object-fit:contain;border-radius:4px;border:1px solid var(--color-border)}.meta[data-v-b9fd1d77]{font-size:12px}.download-link[data-v-b9fd1d77]{color:var(--color-primary);text-decoration:none}.download-link[data-v-b9fd1d77]:hover{text-decoration:underline}.raw-view[data-v-30120298]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.toolbar[data-v-30120298]{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:11px}.hint[data-v-30120298]{font-family:var(--font-mono);color:var(--color-text-muted)}.raw-body[data-v-30120298]{margin:0;padding:12px 14px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-all;overflow-x:auto;background:var(--color-bg);color:var(--color-text)}.response-viewer[data-v-9c1034fa]{display:flex;flex-direction:column;gap:10px;min-height:120px}.state-center[data-v-9c1034fa]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 0}.state-hint[data-v-9c1034fa]{font-size:12px;color:var(--color-text-muted)}.status-bar[data-v-9c1034fa]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.body-wrap[data-v-9c1034fa]{padding-top:8px}.headers-pre[data-v-9c1034fa]{margin:0;padding:12px;font-family:var(--font-mono);font-size:12px;line-height:1.6;background:var(--color-bg-subtle);border-radius:6px;white-space:pre-wrap;color:var(--color-text-muted)}.history-list[data-v-e429157a]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.list-header[data-v-e429157a]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.list-title[data-v-e429157a]{font-size:12px;font-weight:600;color:var(--color-text-muted)}.search-bar[data-v-e429157a]{padding:6px 10px;border-bottom:1px solid var(--color-border)}.empty-state[data-v-e429157a]{padding:20px 0;display:flex;justify-content:center}.history-item[data-v-e429157a]{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px 6px 10px;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background-color .1s}.history-item[data-v-e429157a]:hover,.history-item--expanded[data-v-e429157a]{background-color:var(--color-bg-subtle)}.item-left[data-v-e429157a]{display:flex;align-items:center;gap:4px;min-width:0;flex:1}.item-path[data-v-e429157a]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-right[data-v-e429157a]{display:flex;align-items:center;gap:4px;flex-shrink:0}.item-status[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;font-weight:600}.item-duration[data-v-e429157a]{font-size:11px;color:var(--color-text-muted);font-family:var(--font-mono)}.item-time[data-v-e429157a]{font-size:10px;color:var(--color-text-muted);letter-spacing:-.02em}.action-btn[data-v-e429157a]{opacity:0;transition:opacity .1s;color:var(--color-text-muted)}.del-btn[data-v-e429157a]:hover{color:#ef4444!important}.history-item:hover .action-btn[data-v-e429157a]{opacity:1}.history-detail[data-v-e429157a]{border-bottom:1px solid var(--color-border);background:var(--color-bg)}.detail-section[data-v-e429157a]{padding:8px 12px}.detail-section--response[data-v-e429157a]{border-top:1px solid var(--color-border)}.detail-section-header[data-v-e429157a]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.detail-section-title[data-v-e429157a]{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.detail-status-text[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;font-weight:600}.detail-duration[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);margin-left:auto}.detail-url[data-v-e429157a]{display:flex;align-items:center;gap:4px;margin-bottom:6px;padding:4px 8px;background:var(--color-bg-subtle);border-radius:4px;border:1px solid var(--color-border)}.detail-url-text[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.detail-block[data-v-e429157a]{margin-bottom:6px}.detail-block[data-v-e429157a]:last-child{margin-bottom:0}.detail-block-header[data-v-e429157a]{display:flex;align-items:center;justify-content:space-between;padding:2px 0;margin-bottom:2px}.detail-label[data-v-e429157a]{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.detail-pre[data-v-e429157a]{margin:0;padding:6px 8px;font-family:var(--font-mono);font-size:11px;line-height:1.5;color:var(--color-text);background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:4px;white-space:pre-wrap;word-break:break-all;max-height:140px;overflow-y:auto}.debug-panel[data-v-d5a6183a]{display:flex;flex-direction:column}.empty-state[data-v-d5a6183a]{padding:32px 0;display:flex;justify-content:center}.panel-section[data-v-d5a6183a]{padding:16px 0}.divider[data-v-d5a6183a]{height:1px;background:var(--color-border)}.tab-bar[data-v-d5a6183a]{display:flex;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:12px}.tab-btn[data-v-d5a6183a]{display:flex;align-items:center;gap:5px;padding:5px 12px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s}.tab-btn[data-v-d5a6183a]:hover{color:var(--color-text)}.tab-btn--active[data-v-d5a6183a]{color:var(--color-primary, #18a058);border-bottom-color:var(--color-primary, #18a058)}.tab-count[data-v-d5a6183a]{font-size:11px;font-weight:600;background:var(--color-bg-subtle);color:var(--color-text-muted);padding:0 5px;border-radius:8px;min-width:16px;text-align:center}.tab-btn--active .tab-count[data-v-d5a6183a]{background:color-mix(in srgb,var(--color-primary, #18a058) 12%,transparent);color:var(--color-primary, #18a058)}.tab-content[data-v-d5a6183a]{min-height:0}.endpoint-detail[data-v-26dfef0a]{flex:1;height:100%}.detail-inner[data-v-26dfef0a]{padding:24px;min-height:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;margin:16px}.endpoint-header[data-v-26dfef0a]{margin-bottom:20px}.endpoint-title-row[data-v-26dfef0a]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.endpoint-path[data-v-26dfef0a]{font-family:var(--font-mono);font-size:15px;color:var(--color-text);word-break:break-all}.endpoint-summary[data-v-26dfef0a]{font-size:14px;font-weight:500;color:var(--color-text);margin-bottom:4px}.endpoint-description[data-v-26dfef0a]{font-size:13px;color:var(--color-text-muted);line-height:1.6;white-space:pre-wrap}.detail-tabs[data-v-26dfef0a]{margin-top:4px}.tab-empty[data-v-26dfef0a]{padding:32px 0;display:flex;justify-content:center}.media-type-selector[data-v-26dfef0a]{display:flex;align-items:center;gap:10px;padding:12px 0}.schema-section[data-v-26dfef0a]{padding-top:8px}.param-group[data-v-26dfef0a]{margin-bottom:16px;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.param-group[data-v-26dfef0a]:last-child{margin-bottom:0}.param-group-header[data-v-26dfef0a]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.param-group-header--clickable[data-v-26dfef0a]{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .12s}.param-group-header--clickable[data-v-26dfef0a]:hover{background:var(--color-bg-subtle-hover, var(--color-border))}.collapse-arrow[data-v-26dfef0a]{flex-shrink:0;color:var(--color-text-muted);transition:transform .2s}.collapse-arrow--collapsed[data-v-26dfef0a]{transform:rotate(-90deg)}.param-group-dot[data-v-26dfef0a]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.param-group-label[data-v-26dfef0a]{font-size:13px;font-weight:600;color:var(--color-text)}.param-group-count[data-v-26dfef0a]{font-size:11px;color:var(--color-text-muted);background:var(--color-bg);padding:0 6px;border-radius:8px;line-height:18px}.param-group[data-v-26dfef0a] .n-data-table{border-radius:0}.param-group[data-v-26dfef0a] .n-data-table .n-data-table-wrapper{border:none}.resp-media-tag[data-v-26dfef0a]{font-size:11px;font-family:var(--font-mono);color:#64748b;background:#64748b18;padding:1px 6px;border-radius:4px}.resp-desc-text[data-v-26dfef0a]{font-size:12px;color:var(--color-text-muted);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.resp-no-schema[data-v-26dfef0a]{font-size:12px;color:var(--color-text-muted);padding:12px 16px}.param-group .example-block[data-v-26dfef0a]{margin-top:0;border-left:none;border-right:none;border-bottom:none;border-radius:0}.example-block[data-v-26dfef0a]{margin-top:16px;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.example-header[data-v-26dfef0a]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.example-title[data-v-26dfef0a]{font-size:12px;font-weight:500;color:var(--color-text-muted)}.example-status[data-v-26dfef0a]{font-family:var(--font-mono);font-size:11px;color:#10b981;background:#10b98118;padding:1px 5px;border-radius:3px;margin-left:6px}.example-code[data-v-26dfef0a]{padding:12px;margin:0;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color-text);background:var(--color-code-bg);overflow-x:auto;white-space:pre;max-height:400px}[data-v-26dfef0a] tr.row-depth-1 td{background-color:#6366f10f!important}[data-v-26dfef0a] tr.row-depth-2 td{background-color:#10b9810f!important}[data-v-26dfef0a] tr.row-depth-3 td{background-color:#f59e0b0f!important}[data-v-26dfef0a] tr.row-depth-4 td{background-color:#0ea5e90f!important}[data-v-26dfef0a] .n-data-table-td .n-ellipsis{max-width:calc(100% - var(--indent-offset, -1.2) * 20px - 24px)!important}.main-content[data-v-c1db5596]{flex:1;overflow-y:auto;background-color:var(--color-bg-subtle)}.state-center[data-v-c1db5596]{height:100%;display:flex;align-items:center;justify-content:center}.welcome-inner[data-v-c1db5596]{text-align:center}.welcome-title[data-v-c1db5596]{font-size:28px;font-weight:600;color:var(--color-text);margin-bottom:8px}.welcome-desc[data-v-c1db5596]{font-size:15px;color:var(--color-text-muted);margin-bottom:24px}.muted-hint[data-v-c1db5596]{font-size:13px;color:var(--color-text-muted)}.error-box[data-v-c1db5596]{text-align:center;max-width:480px}.drop-zone[data-v-4eed4792]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:200px;border:1.5px dashed var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background-color .15s;position:relative;background-color:var(--color-bg-subtle)}.drop-zone[data-v-4eed4792]:hover,.drop-zone.dragging[data-v-4eed4792]{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.drop-zone.dragging .drop-icon[data-v-4eed4792]{color:var(--color-primary)}.file-input[data-v-4eed4792]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.drop-icon[data-v-4eed4792]{color:var(--color-text-muted);transition:color .15s}.drop-zone:hover .drop-icon[data-v-4eed4792]{color:var(--color-primary)}.drop-text[data-v-4eed4792]{font-size:13px;color:var(--color-text);font-weight:500}.drop-hint[data-v-4eed4792]{font-size:12px;color:var(--color-text-muted)}.url-tab[data-v-4eed4792]{display:flex;flex-direction:column;gap:12px;padding:4px 0}.url-actions[data-v-4eed4792]{display:flex;justify-content:flex-end}.headers-section[data-v-4eed4792]{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-subtle)}.headers-bar[data-v-4eed4792]{display:flex;align-items:center;justify-content:space-between}.headers-label[data-v-4eed4792]{font-size:12px;font-weight:500;color:var(--color-text-muted)}.headers-add[data-v-4eed4792]{font-size:12px;color:var(--color-primary, #18a058);background:none;border:none;cursor:pointer;padding:0}.headers-add[data-v-4eed4792]:hover{opacity:.8}.header-row[data-v-4eed4792]{display:flex;gap:6px;align-items:center}.hi[data-v-4eed4792]{height:28px;padding:0 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);font-size:12px;outline:none;min-width:0}.hi[data-v-4eed4792]:focus{border-color:var(--color-primary, #18a058)}.hi--key[data-v-4eed4792]{width:140px;flex-shrink:0}.hi--val[data-v-4eed4792]{flex:1}.header-del[data-v-4eed4792]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.header-del[data-v-4eed4792]:hover{color:#d03050;background:color-mix(in srgb,#d03050 10%,transparent)}.headers-empty[data-v-4eed4792]{font-size:12px;color:var(--color-text-muted);text-align:center;padding:4px 0;margin:0}.app-root[data-v-4962dc25]{display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:var(--color-bg);color:var(--color-text)}.app-body[data-v-4962dc25]{display:flex;flex:1;overflow:hidden}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;width:100%}body{font-family:var(--font-sans);font-size:13px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--font-sans: "Inter", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--color-primary: #3b82f6;--color-primary-soft: #eff6ff;--color-bg: #ffffff;--color-bg-subtle: #f8fafc;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b;--color-code-bg: #f1f5f9;--color-success: #10b981;--color-success-soft: #ecfdf5;--color-warning: #f59e0b;--color-warning-soft: #fffbeb;--color-danger: #ef4444;--color-danger-soft: #fef2f2;--color-get: #10b981;--color-post: #3b82f6;--color-put: #f59e0b;--color-patch: #8b5cf6;--color-delete: #ef4444;--color-head: #94a3b8;--color-options: #94a3b8;--sidebar-width: 330px;--header-height: 44px}[data-theme=dark]{--color-primary: #60a5fa;--color-primary-soft: #1e3a5f;--color-bg: #0f1117;--color-bg-subtle: #161b27;--color-border: #1e2433;--color-text: #f1f5f9;--color-text-muted: #64748b;--color-code-bg: #161b27;--color-success: #34d399;--color-success-soft: #022c22;--color-warning: #fbbf24;--color-warning-soft: #1c1400;--color-danger: #f87171;--color-danger-soft: #2d0a0a;--color-get: #34d399;--color-post: #60a5fa;--color-put: #fbbf24;--color-patch: #a78bfa;--color-delete: #f87171}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.font-mono{font-family:var(--font-mono)}.text-muted{color:var(--color-text-muted)}:root .n-popover{--n-color: #ffffff !important;--n-text-color: #0f172a !important;--n-border-radius: 6px !important;--n-box-shadow: 0 4px 16px rgba(0, 0, 0, .08) !important}[data-theme=dark] .n-popover{--n-color: #1e2433 !important;--n-text-color: #e2e8f0 !important;--n-border-radius: 6px !important;--n-box-shadow: 0 4px 16px rgba(0, 0, 0, .4) !important}.fade-enter-active,.fade-leave-active{transition:opacity .1s ease-out}.fade-enter-from,.fade-leave-to{opacity:0}
1
+ .auth-editor[data-v-e4396512]{display:flex;flex-direction:column;gap:10px;padding:8px 0}.auth-row[data-v-e4396512]{display:flex;align-items:center;gap:12px}.auth-label[data-v-e4396512]{flex-shrink:0;width:72px;font-size:12px;color:var(--color-text-muted);text-align:right}.auth-input[data-v-e4396512]{flex:1;max-width:360px;font-family:var(--font-mono);font-size:12.5px}.download-btn[data-v-eed7ed43]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s,background-color .15s;flex-shrink:0}.download-btn[data-v-eed7ed43]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.ls-wrap[data-v-086db566]{display:flex;flex-direction:column;gap:0}.ls-body[data-v-086db566]{display:flex;height:400px;overflow:hidden;border:1px solid var(--color-border);border-radius:6px 6px 0 0;border-bottom:none}.ls-keys[data-v-086db566]{width:200px;flex-shrink:0;border-right:1px solid var(--color-border);overflow-y:auto;display:flex;flex-direction:column}.ls-keys-header[data-v-086db566]{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);flex-shrink:0}.ls-keys-title[data-v-086db566]{font-size:11px;font-weight:600;color:var(--color-text-muted)}.ls-refresh-btn[data-v-086db566]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.ls-refresh-btn[data-v-086db566]:hover{color:var(--color-primary, #18a058);background:var(--color-bg-subtle)}.ls-keys-empty[data-v-086db566]{font-size:12px;color:var(--color-text-muted);text-align:center;padding:20px 12px;margin:0}.ls-key-item[data-v-086db566]{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 12px;border:none;background:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--color-border);transition:background-color .1s;min-width:0}.ls-key-item[data-v-086db566]:last-child{border-bottom:none}.ls-key-item[data-v-086db566]:hover{background:var(--color-bg-subtle)}.ls-key-item--active[data-v-086db566]{background:color-mix(in srgb,var(--color-primary, #18a058) 10%,transparent)}.ls-key-name[data-v-086db566]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ls-key-badge[data-v-086db566]{flex-shrink:0;font-size:10px;font-weight:600;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--color-primary, #18a058) 15%,transparent);color:var(--color-primary, #18a058)}.ls-detail[data-v-086db566]{flex:1;min-width:0;padding:12px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.ls-detail-empty[data-v-086db566]{font-size:12px;color:var(--color-text-muted);margin:auto;text-align:center}.ls-section[data-v-086db566]{display:flex;flex-direction:column;gap:6px}.ls-section-label[data-v-086db566]{font-size:11px;font-weight:600;color:var(--color-text-muted);display:flex;align-items:center;gap:6px}.ls-section-hint[data-v-086db566]{font-weight:400;font-size:10px;color:var(--color-text-muted);opacity:.7}.ls-code[data-v-086db566]{margin:0;padding:8px 10px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:4px;font-family:var(--font-mono);font-size:11.5px;line-height:1.55;color:var(--color-text);white-space:pre-wrap;word-break:break-all;max-height:160px;overflow-y:auto}.ls-code--error[data-v-086db566]{color:#d03050;border-color:#d03050;background:color-mix(in srgb,#d03050 5%,transparent)}.ls-path-input[data-v-086db566] .n-input__input-el,.ls-path-input[data-v-086db566] .n-input__textarea-el{font-family:var(--font-mono);font-size:12px}.ls-footer[data-v-086db566]{display:flex;justify-content:flex-end;padding:8px 10px;border:1px solid var(--color-border);border-top:none;border-radius:0 0 6px 6px;background:var(--color-bg-subtle)}.app-header[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 16px;border-bottom:1px solid var(--color-border);background-color:var(--color-bg);flex-shrink:0}.header-left[data-v-a3e00ef5]{display:flex;align-items:center;gap:12px}.logo[data-v-a3e00ef5]{font-size:15px;font-weight:600;color:var(--color-text);letter-spacing:-.01em}.spec-title[data-v-a3e00ef5]{font-size:13px;color:var(--color-text-muted);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right[data-v-a3e00ef5]{display:flex;align-items:center;gap:12px}.server-wrap[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:8px;padding:4px;width:760px}.section-title[data-v-a3e00ef5]{font-size:13px;font-weight:600;color:var(--color-text)}.section-desc[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted);margin-bottom:4px}.server-item[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-top:1px solid var(--color-border)}.server-url[data-v-a3e00ef5]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);word-break:break-all}.server-desc[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted)}.global-auth-wrap[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px;padding:4px;width:760px}.ga-tabs[data-v-a3e00ef5]{display:flex;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:4px;padding-bottom:0}.ga-tab[data-v-a3e00ef5]{display:flex;align-items:center;gap:4px;padding:5px 10px;border:none;background:none;cursor:pointer;font-size:12px;color:var(--color-text-muted);border-radius:4px 4px 0 0;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s}.ga-tab[data-v-a3e00ef5]:hover{color:var(--color-text)}.ga-tab--active[data-v-a3e00ef5]{color:var(--color-text);border-bottom-color:var(--color-primary, #18a058);font-weight:500}.ga-tab-badge[data-v-a3e00ef5]{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--color-primary, #18a058);color:#fff;font-size:10px;font-weight:600;line-height:1}.ga-kv-editor[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px;padding-top:4px}.ga-add-btn[data-v-a3e00ef5]{margin-top:2px}.ga-load-btn[data-v-a3e00ef5]{align-self:flex-start;margin-bottom:2px}.ga-header-entry[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:2px}.ga-key-wrap[data-v-a3e00ef5]{position:relative;flex-shrink:0;width:160px}.ga-key-wrap .doc-hi--key[data-v-a3e00ef5]{width:100%}.key-suggestions[data-v-a3e00ef5]{position:absolute;top:calc(100% + 2px);left:0;z-index:100;width:180px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 4px 12px #0000001f;max-height:180px;overflow-y:auto;display:flex;flex-direction:column}.key-suggestion-item[data-v-a3e00ef5]{padding:5px 8px;border:none;background:none;cursor:pointer;text-align:left;font-family:var(--font-mono);font-size:11px;color:var(--color-text);border-bottom:1px solid var(--color-border);transition:background-color 80ms}.key-suggestion-item[data-v-a3e00ef5]:last-child{border-bottom:none}.key-suggestion-item[data-v-a3e00ef5]:hover{background:var(--color-bg-subtle);color:var(--color-primary, #18a058)}.doc-ls-btn[data-v-a3e00ef5]{flex-shrink:0;height:26px;padding:0 6px;border:1px solid var(--color-border);border-radius:4px;background:none;cursor:pointer;font-size:10px;font-weight:600;color:var(--color-text-muted);font-family:var(--font-mono);transition:color .12s,border-color .12s,background-color .12s}.doc-ls-btn[data-v-a3e00ef5]:hover,.doc-ls-btn--active[data-v-a3e00ef5]{color:var(--color-primary, #18a058);border-color:var(--color-primary, #18a058);background:color-mix(in srgb,var(--color-primary, #18a058) 8%,transparent)}.doc-wrap[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:6px;padding:4px;width:240px}.doc-meta[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px}.doc-meta-row[data-v-a3e00ef5]{display:flex;align-items:center;gap:6px;font-size:12px}.doc-meta-label[data-v-a3e00ef5]{flex-shrink:0;min-width:60px;font-size:11px;color:var(--color-text-muted)}.doc-meta-value[data-v-a3e00ef5]{color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-meta-link[data-v-a3e00ef5]{font-family:var(--font-mono);font-size:11px;color:var(--color-primary, #18a058);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.doc-meta-link[data-v-a3e00ef5]:hover{text-decoration:underline}.doc-icon-btn[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.doc-icon-btn[data-v-a3e00ef5]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.doc-meta-mono[data-v-a3e00ef5]{font-family:var(--font-mono);font-size:11px}.doc-divider[data-v-a3e00ef5]{height:1px;background:var(--color-border);margin:2px 0}.doc-actions[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:2px}.doc-actions--row[data-v-a3e00ef5]{flex-direction:row}.doc-actions--row .doc-action-btn[data-v-a3e00ef5]{flex:1;justify-content:center}.doc-action-btn[data-v-a3e00ef5]{display:flex;align-items:center;gap:7px;width:100%;padding:6px 8px;border:none;background:none;cursor:pointer;font-size:13px;color:var(--color-text);border-radius:5px;text-align:left;transition:background-color .12s}.doc-action-btn[data-v-a3e00ef5]:hover:not(:disabled){background:var(--color-bg-subtle)}.doc-action-btn[data-v-a3e00ef5]:disabled{opacity:.5;cursor:not-allowed}.doc-action-btn svg[data-v-a3e00ef5]{flex-shrink:0;color:var(--color-text-muted)}@keyframes spin-a3e00ef5{to{transform:rotate(360deg)}}.spin[data-v-a3e00ef5]{animation:spin-a3e00ef5 .6s linear infinite}.doc-headers[data-v-a3e00ef5]{display:flex;flex-direction:column;gap:4px}.doc-headers-bar[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.doc-headers-title[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted)}.doc-add-btn[data-v-a3e00ef5]{font-size:11px;color:var(--color-primary, #18a058);background:none;border:none;cursor:pointer;padding:0}.doc-add-btn[data-v-a3e00ef5]:hover{opacity:.8}.doc-header-row[data-v-a3e00ef5]{display:flex;gap:4px;align-items:center}.doc-hi[data-v-a3e00ef5]{height:26px;padding:0 6px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);font-size:11px;outline:none;min-width:0}.doc-hi[data-v-a3e00ef5]:focus{border-color:var(--color-primary, #18a058)}.doc-hi--key[data-v-a3e00ef5]{width:160px;flex-shrink:0}.doc-hi--val[data-v-a3e00ef5]{flex:1}.doc-header-del[data-v-a3e00ef5]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.doc-header-del[data-v-a3e00ef5]:hover{color:#d03050;background:color-mix(in srgb,#d03050 10%,transparent)}.doc-headers-empty[data-v-a3e00ef5]{font-size:11px;color:var(--color-text-muted);text-align:center;padding:4px 0;margin:0}.sidebar[data-v-bfbcccf4]{width:var(--sidebar-width);flex-shrink:0;border-right:1px solid var(--color-border);background-color:var(--color-bg);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:width .2s ease}.sidebar--collapsed[data-v-bfbcccf4]{width:40px}.sidebar-search[data-v-bfbcccf4]{padding:10px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.sidebar-scroll[data-v-bfbcccf4]{flex:1}.sidebar-empty[data-v-bfbcccf4]{padding:40px 16px;color:var(--color-text-muted);font-size:12px;text-align:center}.menu-wrap[data-v-bfbcccf4]{width:100%}.sidebar-toggle[data-v-bfbcccf4]{position:absolute;bottom:12px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;transition:color .12s,background-color .12s;z-index:1}.sidebar-toggle[data-v-bfbcccf4]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.sidebar--collapsed .sidebar-toggle[data-v-bfbcccf4]{right:auto;left:50%;transform:translate(-50%)}.ep-info-panel[data-v-bfbcccf4]{position:fixed;left:calc(var(--sidebar-width) + 6px);z-index:9999;min-width:220px;max-width:320px;padding:10px 14px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);box-shadow:0 4px 16px #0000001a;pointer-events:auto}[data-theme=dark] .ep-info-panel[data-v-bfbcccf4]{box-shadow:0 4px 20px #0006}.info-path-row[data-v-bfbcccf4]{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}.info-method[data-v-bfbcccf4]{font-family:var(--font-mono);font-size:11px;font-weight:700;flex-shrink:0}.info-path[data-v-bfbcccf4]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);word-break:break-all}.info-divider[data-v-bfbcccf4]{height:1px;background:var(--color-border);margin-bottom:8px}.info-field[data-v-bfbcccf4]{display:flex;gap:8px;font-size:12px;line-height:1.6;align-items:flex-start}.info-label[data-v-bfbcccf4]{flex-shrink:0;min-width:70px;font-size:11px;color:var(--color-text-muted)}.info-value[data-v-bfbcccf4]{color:var(--color-text);word-break:break-word}.info-fade-enter-active[data-v-bfbcccf4],.info-fade-leave-active[data-v-bfbcccf4]{transition:opacity .1s,transform .1s}.info-fade-enter-from[data-v-bfbcccf4],.info-fade-leave-to[data-v-bfbcccf4]{opacity:0;transform:translate(-4px)}.sidebar .n-submenu>.n-menu-item .n-menu-item-content__icon{display:none}.sidebar .n-submenu>.n-menu-item .n-menu-item-content-header{font-size:11px!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase!important}.mi-root{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;width:100%}.mi-row{display:flex;align-items:baseline;gap:6px;min-width:0}.mi-method{font-family:var(--font-mono);font-size:10px;font-weight:700;flex-shrink:0;letter-spacing:.03em;line-height:1}.mi-primary{font-size:12px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.mi-secondary{font-family:var(--font-mono);font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.55}.method-badge[data-v-6bc10dbf]{display:inline-block;width:52px;text-align:center;font-family:var(--font-mono);font-size:11px;font-weight:600;flex-shrink:0}.method-get[data-v-6bc10dbf]{color:var(--color-get)}.method-post[data-v-6bc10dbf]{color:var(--color-post)}.method-put[data-v-6bc10dbf]{color:var(--color-put)}.method-patch[data-v-6bc10dbf]{color:var(--color-patch)}.method-delete[data-v-6bc10dbf]{color:var(--color-delete)}.method-head[data-v-6bc10dbf],.method-options[data-v-6bc10dbf]{color:var(--color-head)}.copy-btn[data-v-fc68ea39]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s,background-color .15s;flex-shrink:0}.copy-btn[data-v-fc68ea39]:hover{color:var(--color-text);background:var(--color-bg-subtle)}.copy-btn--ok[data-v-fc68ea39],.copy-btn--ok[data-v-fc68ea39]:hover{color:#10b981}.schema-viewer[data-v-bb66e54d]{width:100%}.circular-hint[data-v-bb66e54d],.empty-hint[data-v-bb66e54d]{padding:8px 0;font-size:12px;color:var(--color-text-muted)}.circular-hint[data-v-bb66e54d]{color:#ef4444}.combiner-hint[data-v-bb66e54d]{display:flex;align-items:center;gap:6px;padding:8px 0;font-size:12px}.combiner-label[data-v-bb66e54d]{font-family:var(--font-mono);font-size:12px;font-weight:600;color:#64748b;background:#64748b18;padding:1px 6px;border-radius:4px}.combiner-count[data-v-bb66e54d]{color:var(--color-text-muted)}[data-v-bb66e54d] tr.row-depth-1 td{background-color:#6366f10f!important}[data-v-bb66e54d] tr.row-depth-2 td{background-color:#10b9810f!important}[data-v-bb66e54d] tr.row-depth-3 td{background-color:#f59e0b0f!important}[data-v-bb66e54d] tr.row-depth-4 td{background-color:#0ea5e90f!important}[data-v-bb66e54d] td:has(.n-data-table-expand-trigger),[data-v-bb66e54d] td:has(.n-data-table-expand-placeholder){display:flex!important;align-items:center!important}.pe[data-v-2006b456]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden;font-size:13px}.pe-header[data-v-2006b456]{display:flex;align-items:center;height:32px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);font-weight:500}.pe-hcell[data-v-2006b456]{display:flex;align-items:center;padding:0 8px}.pe-hcell--check[data-v-2006b456]{width:36px;flex-shrink:0}.pe-hcell--key[data-v-2006b456]{flex:0 0 180px}.pe-hcell--eq[data-v-2006b456]{width:24px;flex-shrink:0;justify-content:center;color:transparent}.pe-hcell--val[data-v-2006b456]{flex:1;min-width:0}.pe-hcell--act[data-v-2006b456]{width:36px;flex-shrink:0}.pe-row[data-v-2006b456]{display:flex;align-items:center;min-height:36px;border-bottom:1px solid var(--color-border);transition:background-color .12s}.pe-row[data-v-2006b456]:last-of-type{border-bottom:1px solid var(--color-border)}.pe-row[data-v-2006b456]:hover{background:var(--color-bg-subtle)}.pe-row--disabled[data-v-2006b456]{opacity:.45}.pe-cell[data-v-2006b456]{display:flex;align-items:center;padding:0 8px;min-height:36px}.pe-cell--check[data-v-2006b456]{width:36px;flex-shrink:0;justify-content:center}.pe-cell--key[data-v-2006b456]{flex:0 0 180px;border-right:1px solid var(--color-border)}.pe-cell--eq[data-v-2006b456]{width:24px;flex-shrink:0;justify-content:center;font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}.pe-cell--val[data-v-2006b456]{flex:1;min-width:0;gap:4px}.pe-cell--act[data-v-2006b456]{width:36px;flex-shrink:0;justify-content:center}.pe-input[data-v-2006b456],.pe-autocomplete[data-v-2006b456] .n-input{font-family:var(--font-mono);font-size:12.5px}.pe-autocomplete[data-v-2006b456] .n-input .n-input__border,.pe-autocomplete[data-v-2006b456] .n-input .n-input__state-border{border:none!important;box-shadow:none!important}.pe-del[data-v-2006b456]{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;border-radius:4px;cursor:pointer;color:#e5484d;opacity:0;transition:opacity .12s,background-color .12s}.pe-del[data-v-2006b456]:disabled{color:#d1d5db;cursor:not-allowed}.pe-del[data-v-2006b456]:not(:disabled):hover{background-color:#fee2e2}.pe-row:hover .pe-del[data-v-2006b456]{opacity:1}.pe-add[data-v-2006b456]{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:12px;color:var(--color-text-muted);cursor:pointer;transition:color .12s,background-color .12s}.pe-add[data-v-2006b456]:hover{color:var(--color-primary, #2080f0);background:var(--color-bg-subtle)}.pe-add-icon[data-v-2006b456]{width:14px;height:14px;flex-shrink:0}.pe-ls-btn[data-v-2006b456]{flex-shrink:0;height:22px;padding:0 5px;border:1px solid var(--color-border);border-radius:3px;background:none;cursor:pointer;font-size:10px;font-weight:600;font-family:var(--font-mono);color:var(--color-text-muted);opacity:0;transition:opacity .12s,color .12s,border-color .12s,background-color .12s}.pe-row:hover .pe-ls-btn[data-v-2006b456]{opacity:1}.pe-ls-btn[data-v-2006b456]:hover,.pe-ls-btn--active[data-v-2006b456]{color:var(--color-primary, #18a058);border-color:var(--color-primary, #18a058);background:color-mix(in srgb,var(--color-primary, #18a058) 8%,transparent);opacity:1}.jbe[data-v-4eb0272b]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.jbe-toolbar[data-v-4eb0272b]{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.jbe-hint[data-v-4eb0272b]{font-size:11px;color:var(--color-text-muted)}.jbe-hint--err[data-v-4eb0272b]{color:#ef4444}.jbe-wrap[data-v-4eb0272b]{padding:2px}.jbe-textarea[data-v-4eb0272b]{font-family:var(--font-mono);font-size:12.5px}.mp[data-v-dac4ff7c]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden;font-size:13px}.mp-header[data-v-dac4ff7c]{display:flex;align-items:center;height:32px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);font-weight:500}.mp-hcell[data-v-dac4ff7c]{display:flex;align-items:center;padding:0 8px}.mp-hcell--check[data-v-dac4ff7c]{width:36px;flex-shrink:0}.mp-hcell--key[data-v-dac4ff7c]{flex:0 0 160px}.mp-hcell--type[data-v-dac4ff7c]{width:80px;flex-shrink:0}.mp-hcell--val[data-v-dac4ff7c]{flex:1;min-width:0}.mp-hcell--act[data-v-dac4ff7c]{width:36px;flex-shrink:0}.mp-row[data-v-dac4ff7c]{display:flex;align-items:center;min-height:36px;border-bottom:1px solid var(--color-border);transition:background-color .12s}.mp-row[data-v-dac4ff7c]:hover{background:var(--color-bg-subtle)}.mp-row--disabled[data-v-dac4ff7c]{opacity:.45}.mp-cell[data-v-dac4ff7c]{display:flex;align-items:center;padding:0 8px;min-height:36px}.mp-cell--check[data-v-dac4ff7c]{width:36px;flex-shrink:0;justify-content:center}.mp-cell--key[data-v-dac4ff7c]{flex:0 0 160px;border-right:1px solid var(--color-border)}.mp-cell--type[data-v-dac4ff7c]{width:80px;flex-shrink:0;border-right:1px solid var(--color-border)}.mp-cell--val[data-v-dac4ff7c]{flex:1;min-width:0}.mp-cell--act[data-v-dac4ff7c]{width:36px;flex-shrink:0;justify-content:center}.mp-input[data-v-dac4ff7c]{font-family:var(--font-mono);font-size:12.5px}.mp-file-row[data-v-dac4ff7c]{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mp-file-btn[data-v-dac4ff7c]{font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-file-size[data-v-dac4ff7c]{font-size:10px;color:var(--color-text-muted);flex-shrink:0}.mp-del[data-v-dac4ff7c]{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;border-radius:4px;cursor:pointer;color:#e5484d;opacity:0;transition:opacity .12s,background-color .12s}.mp-del[data-v-dac4ff7c]:hover{background-color:#fee2e2}.mp-row:hover .mp-del[data-v-dac4ff7c]{opacity:1}.mp-footer[data-v-dac4ff7c]{display:flex;align-items:center;justify-content:space-between;height:34px;padding:0 12px}.mp-add-btns[data-v-dac4ff7c]{display:flex;align-items:center;gap:0}.mp-add[data-v-dac4ff7c]{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-muted);cursor:pointer;padding:2px 8px;border-radius:4px;transition:color .12s,background-color .12s}.mp-add[data-v-dac4ff7c]:hover{color:var(--color-primary, #2080f0);background:var(--color-bg-subtle)}.mp-add-icon[data-v-dac4ff7c]{width:14px;height:14px;flex-shrink:0}.mp-divider[data-v-dac4ff7c]{width:1px;height:14px;background:var(--color-border);margin:0 4px}.mp-stats[data-v-dac4ff7c]{font-size:11px;color:var(--color-text-muted)}.xbe[data-v-893f3881]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.xbe-toolbar[data-v-893f3881]{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.xbe-hint[data-v-893f3881]{font-size:11px;color:var(--color-text-muted)}.xbe-hint--err[data-v-893f3881]{color:#ef4444}.xbe-wrap[data-v-893f3881]{padding:2px}.xbe-textarea[data-v-893f3881]{font-family:var(--font-mono);font-size:12.5px}.bbe[data-v-eed78a60]{display:flex;flex-direction:column;gap:10px;padding:4px 0}.bbe-file[data-v-eed78a60]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:6px;font-size:12px;color:var(--color-text)}.bbe-name[data-v-eed78a60]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.bbe-size[data-v-eed78a60]{color:var(--color-text-muted);flex-shrink:0}.bbe-clear[data-v-eed78a60]{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:0;font-size:11px;line-height:1}.bbe-clear[data-v-eed78a60]:hover{color:#ef4444}.body-editor[data-v-aa464c78]{display:flex;flex-direction:column;gap:10px}.type-pills[data-v-aa464c78]{display:flex;align-items:center;gap:0;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;background:var(--color-bg-subtle)}.pill[data-v-aa464c78]{flex:none;padding:5px 14px;font-size:12px;font-weight:500;line-height:1;color:var(--color-text-muted);background:transparent;border:none;border-right:1px solid var(--color-border);cursor:pointer;transition:color .12s,background-color .12s;white-space:nowrap}.pill[data-v-aa464c78]:last-child{border-right:none}.pill[data-v-aa464c78]:hover{color:var(--color-text);background:var(--color-bg)}.pill--active[data-v-aa464c78],.pill--active[data-v-aa464c78]:hover{color:#fff;background:var(--color-primary, #2080f0)}.editor-wrap[data-v-aa464c78]{padding-top:2px}.body-none[data-v-aa464c78]{padding:16px 0;font-size:12px;color:var(--color-text-muted)}.request-form[data-v-d65b882d]{display:flex;flex-direction:column;gap:12px}.url-bar[data-v-d65b882d]{display:flex;gap:0;align-items:stretch;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;height:36px}.method-badge[data-v-d65b882d]{display:flex;align-items:center;justify-content:center;min-width:64px;padding:0 12px;font-family:var(--font-mono);font-size:12px;font-weight:700;background:var(--color-bg-subtle);border-right:1px solid var(--color-border);flex-shrink:0;-webkit-user-select:none;user-select:none}.url-input[data-v-d65b882d]{flex:1;font-family:var(--font-mono);font-size:13px}.url-input[data-v-d65b882d] .n-input__border,.url-input[data-v-d65b882d] .n-input__state-border{border:none!important;box-shadow:none!important}.send-btn[data-v-d65b882d]{flex-shrink:0;border-radius:0;height:100%;min-width:64px;border:none;border-left:1px solid var(--color-border)}.req-toolbar[data-v-d65b882d]{display:flex;align-items:center}.sub-tabs[data-v-d65b882d]{margin-top:0}.tab-placeholder[data-v-d65b882d]{padding:16px 0;font-size:12px;color:var(--color-text-muted)}.auth-hint[data-v-d65b882d]{font-size:11px;color:var(--color-text-muted);margin-bottom:4px}.curl-wrap[data-v-d65b882d]{position:relative}.curl-code[data-v-d65b882d]{margin:0;padding:12px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:6px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:var(--color-text);max-height:400px;overflow:auto}.curl-actions[data-v-d65b882d]{position:absolute;top:8px;right:8px}.tab-with-badge{display:inline-flex;align-items:center;gap:5px}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;border-radius:8px;color:#10b981;background:#10b98118}.json-highlight[data-v-aec27471]{position:relative;border-radius:6px;overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg)}.toolbar[data-v-aec27471]{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle)}.lang-label[data-v-aec27471]{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.copy-btn[data-v-aec27471]{font-size:12px;opacity:0;transition:opacity .12s}.json-highlight:hover .copy-btn[data-v-aec27471]{opacity:1}.code-wrap[data-v-aec27471]{overflow:auto;position:relative}.code-wrap.collapsed[data-v-aec27471]{max-height:480px;overflow:hidden}pre.hljs[data-v-aec27471]{margin:0;padding:12px 14px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;background:transparent!important;overflow:visible}.fade-mask[data-v-aec27471]{position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(transparent,var(--color-bg));display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px}.collapse-btn-row[data-v-aec27471]{display:flex;justify-content:center;padding:6px;border-top:1px solid var(--color-border)}.image-view[data-v-b9fd1d77]{display:flex;flex-direction:column;gap:10px;padding:8px}.preview-img[data-v-b9fd1d77]{max-width:100%;max-height:400px;object-fit:contain;border-radius:4px;border:1px solid var(--color-border)}.meta[data-v-b9fd1d77]{font-size:12px}.download-link[data-v-b9fd1d77]{color:var(--color-primary);text-decoration:none}.download-link[data-v-b9fd1d77]:hover{text-decoration:underline}.raw-view[data-v-30120298]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.toolbar[data-v-30120298]{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:11px}.hint[data-v-30120298]{font-family:var(--font-mono);color:var(--color-text-muted)}.raw-body[data-v-30120298]{margin:0;padding:12px 14px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-all;overflow-x:auto;background:var(--color-bg);color:var(--color-text)}.response-viewer[data-v-9c1034fa]{display:flex;flex-direction:column;gap:10px;min-height:120px}.state-center[data-v-9c1034fa]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 0}.state-hint[data-v-9c1034fa]{font-size:12px;color:var(--color-text-muted)}.status-bar[data-v-9c1034fa]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.body-wrap[data-v-9c1034fa]{padding-top:8px}.headers-pre[data-v-9c1034fa]{margin:0;padding:12px;font-family:var(--font-mono);font-size:12px;line-height:1.6;background:var(--color-bg-subtle);border-radius:6px;white-space:pre-wrap;color:var(--color-text-muted)}.history-list[data-v-e429157a]{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.list-header[data-v-e429157a]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.list-title[data-v-e429157a]{font-size:12px;font-weight:600;color:var(--color-text-muted)}.search-bar[data-v-e429157a]{padding:6px 10px;border-bottom:1px solid var(--color-border)}.empty-state[data-v-e429157a]{padding:20px 0;display:flex;justify-content:center}.history-item[data-v-e429157a]{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px 6px 10px;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background-color .1s}.history-item[data-v-e429157a]:hover,.history-item--expanded[data-v-e429157a]{background-color:var(--color-bg-subtle)}.item-left[data-v-e429157a]{display:flex;align-items:center;gap:4px;min-width:0;flex:1}.item-path[data-v-e429157a]{font-family:var(--font-mono);font-size:12px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-right[data-v-e429157a]{display:flex;align-items:center;gap:4px;flex-shrink:0}.item-status[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;font-weight:600}.item-duration[data-v-e429157a]{font-size:11px;color:var(--color-text-muted);font-family:var(--font-mono)}.item-time[data-v-e429157a]{font-size:10px;color:var(--color-text-muted);letter-spacing:-.02em}.action-btn[data-v-e429157a]{opacity:0;transition:opacity .1s;color:var(--color-text-muted)}.del-btn[data-v-e429157a]:hover{color:#ef4444!important}.history-item:hover .action-btn[data-v-e429157a]{opacity:1}.history-detail[data-v-e429157a]{border-bottom:1px solid var(--color-border);background:var(--color-bg)}.detail-section[data-v-e429157a]{padding:8px 12px}.detail-section--response[data-v-e429157a]{border-top:1px solid var(--color-border)}.detail-section-header[data-v-e429157a]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.detail-section-title[data-v-e429157a]{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.detail-status-text[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;font-weight:600}.detail-duration[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);margin-left:auto}.detail-url[data-v-e429157a]{display:flex;align-items:center;gap:4px;margin-bottom:6px;padding:4px 8px;background:var(--color-bg-subtle);border-radius:4px;border:1px solid var(--color-border)}.detail-url-text[data-v-e429157a]{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.detail-block[data-v-e429157a]{margin-bottom:6px}.detail-block[data-v-e429157a]:last-child{margin-bottom:0}.detail-block-header[data-v-e429157a]{display:flex;align-items:center;justify-content:space-between;padding:2px 0;margin-bottom:2px}.detail-label[data-v-e429157a]{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.detail-pre[data-v-e429157a]{margin:0;padding:6px 8px;font-family:var(--font-mono);font-size:11px;line-height:1.5;color:var(--color-text);background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:4px;white-space:pre-wrap;word-break:break-all;max-height:140px;overflow-y:auto}.debug-panel[data-v-d5a6183a]{display:flex;flex-direction:column}.empty-state[data-v-d5a6183a]{padding:32px 0;display:flex;justify-content:center}.panel-section[data-v-d5a6183a]{padding:16px 0}.divider[data-v-d5a6183a]{height:1px;background:var(--color-border)}.tab-bar[data-v-d5a6183a]{display:flex;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:12px}.tab-btn[data-v-d5a6183a]{display:flex;align-items:center;gap:5px;padding:5px 12px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s}.tab-btn[data-v-d5a6183a]:hover{color:var(--color-text)}.tab-btn--active[data-v-d5a6183a]{color:var(--color-primary, #18a058);border-bottom-color:var(--color-primary, #18a058)}.tab-count[data-v-d5a6183a]{font-size:11px;font-weight:600;background:var(--color-bg-subtle);color:var(--color-text-muted);padding:0 5px;border-radius:8px;min-width:16px;text-align:center}.tab-btn--active .tab-count[data-v-d5a6183a]{background:color-mix(in srgb,var(--color-primary, #18a058) 12%,transparent);color:var(--color-primary, #18a058)}.tab-content[data-v-d5a6183a]{min-height:0}.endpoint-detail[data-v-26dfef0a]{flex:1;height:100%}.detail-inner[data-v-26dfef0a]{padding:24px;min-height:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;margin:16px}.endpoint-header[data-v-26dfef0a]{margin-bottom:20px}.endpoint-title-row[data-v-26dfef0a]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.endpoint-path[data-v-26dfef0a]{font-family:var(--font-mono);font-size:15px;color:var(--color-text);word-break:break-all}.endpoint-summary[data-v-26dfef0a]{font-size:14px;font-weight:500;color:var(--color-text);margin-bottom:4px}.endpoint-description[data-v-26dfef0a]{font-size:13px;color:var(--color-text-muted);line-height:1.6;white-space:pre-wrap}.detail-tabs[data-v-26dfef0a]{margin-top:4px}.tab-empty[data-v-26dfef0a]{padding:32px 0;display:flex;justify-content:center}.media-type-selector[data-v-26dfef0a]{display:flex;align-items:center;gap:10px;padding:12px 0}.schema-section[data-v-26dfef0a]{padding-top:8px}.param-group[data-v-26dfef0a]{margin-bottom:16px;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.param-group[data-v-26dfef0a]:last-child{margin-bottom:0}.param-group-header[data-v-26dfef0a]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.param-group-header--clickable[data-v-26dfef0a]{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .12s}.param-group-header--clickable[data-v-26dfef0a]:hover{background:var(--color-bg-subtle-hover, var(--color-border))}.collapse-arrow[data-v-26dfef0a]{flex-shrink:0;color:var(--color-text-muted);transition:transform .2s}.collapse-arrow--collapsed[data-v-26dfef0a]{transform:rotate(-90deg)}.param-group-dot[data-v-26dfef0a]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.param-group-label[data-v-26dfef0a]{font-size:13px;font-weight:600;color:var(--color-text)}.param-group-count[data-v-26dfef0a]{font-size:11px;color:var(--color-text-muted);background:var(--color-bg);padding:0 6px;border-radius:8px;line-height:18px}.param-group[data-v-26dfef0a] .n-data-table{border-radius:0}.param-group[data-v-26dfef0a] .n-data-table .n-data-table-wrapper{border:none}.resp-media-tag[data-v-26dfef0a]{font-size:11px;font-family:var(--font-mono);color:#64748b;background:#64748b18;padding:1px 6px;border-radius:4px}.resp-desc-text[data-v-26dfef0a]{font-size:12px;color:var(--color-text-muted);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.resp-no-schema[data-v-26dfef0a]{font-size:12px;color:var(--color-text-muted);padding:12px 16px}.param-group .example-block[data-v-26dfef0a]{margin-top:0;border-left:none;border-right:none;border-bottom:none;border-radius:0}.example-block[data-v-26dfef0a]{margin-top:16px;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.example-header[data-v-26dfef0a]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border)}.example-title[data-v-26dfef0a]{font-size:12px;font-weight:500;color:var(--color-text-muted)}.example-status[data-v-26dfef0a]{font-family:var(--font-mono);font-size:11px;color:#10b981;background:#10b98118;padding:1px 5px;border-radius:3px;margin-left:6px}.example-code[data-v-26dfef0a]{padding:12px;margin:0;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color-text);background:var(--color-code-bg);overflow-x:auto;white-space:pre;max-height:400px}[data-v-26dfef0a] tr.row-depth-1 td{background-color:#6366f10f!important}[data-v-26dfef0a] tr.row-depth-2 td{background-color:#10b9810f!important}[data-v-26dfef0a] tr.row-depth-3 td{background-color:#f59e0b0f!important}[data-v-26dfef0a] tr.row-depth-4 td{background-color:#0ea5e90f!important}[data-v-26dfef0a] .n-data-table-td .n-ellipsis{max-width:calc(100% - var(--indent-offset, -1.2) * 20px - 24px)!important}.main-content[data-v-c1db5596]{flex:1;overflow-y:auto;background-color:var(--color-bg-subtle)}.state-center[data-v-c1db5596]{height:100%;display:flex;align-items:center;justify-content:center}.welcome-inner[data-v-c1db5596]{text-align:center}.welcome-title[data-v-c1db5596]{font-size:28px;font-weight:600;color:var(--color-text);margin-bottom:8px}.welcome-desc[data-v-c1db5596]{font-size:15px;color:var(--color-text-muted);margin-bottom:24px}.muted-hint[data-v-c1db5596]{font-size:13px;color:var(--color-text-muted)}.error-box[data-v-c1db5596]{text-align:center;max-width:480px}.drop-zone[data-v-4eed4792]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:200px;border:1.5px dashed var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background-color .15s;position:relative;background-color:var(--color-bg-subtle)}.drop-zone[data-v-4eed4792]:hover,.drop-zone.dragging[data-v-4eed4792]{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.drop-zone.dragging .drop-icon[data-v-4eed4792]{color:var(--color-primary)}.file-input[data-v-4eed4792]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.drop-icon[data-v-4eed4792]{color:var(--color-text-muted);transition:color .15s}.drop-zone:hover .drop-icon[data-v-4eed4792]{color:var(--color-primary)}.drop-text[data-v-4eed4792]{font-size:13px;color:var(--color-text);font-weight:500}.drop-hint[data-v-4eed4792]{font-size:12px;color:var(--color-text-muted)}.url-tab[data-v-4eed4792]{display:flex;flex-direction:column;gap:12px;padding:4px 0}.url-actions[data-v-4eed4792]{display:flex;justify-content:flex-end}.headers-section[data-v-4eed4792]{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-subtle)}.headers-bar[data-v-4eed4792]{display:flex;align-items:center;justify-content:space-between}.headers-label[data-v-4eed4792]{font-size:12px;font-weight:500;color:var(--color-text-muted)}.headers-add[data-v-4eed4792]{font-size:12px;color:var(--color-primary, #18a058);background:none;border:none;cursor:pointer;padding:0}.headers-add[data-v-4eed4792]:hover{opacity:.8}.header-row[data-v-4eed4792]{display:flex;gap:6px;align-items:center}.hi[data-v-4eed4792]{height:28px;padding:0 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);font-size:12px;outline:none;min-width:0}.hi[data-v-4eed4792]:focus{border-color:var(--color-primary, #18a058)}.hi--key[data-v-4eed4792]{width:140px;flex-shrink:0}.hi--val[data-v-4eed4792]{flex:1}.header-del[data-v-4eed4792]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);border-radius:3px;padding:0;transition:color .12s,background-color .12s}.header-del[data-v-4eed4792]:hover{color:#d03050;background:color-mix(in srgb,#d03050 10%,transparent)}.headers-empty[data-v-4eed4792]{font-size:12px;color:var(--color-text-muted);text-align:center;padding:4px 0;margin:0}.app-root[data-v-b5984c8a]{display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:var(--color-bg);color:var(--color-text)}.app-body[data-v-b5984c8a]{display:flex;flex:1;overflow:hidden}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;width:100%}body{font-family:var(--font-sans);font-size:13px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--font-sans: "Inter", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--color-primary: #3b82f6;--color-primary-soft: #eff6ff;--color-bg: #ffffff;--color-bg-subtle: #f8fafc;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b;--color-code-bg: #f1f5f9;--color-success: #10b981;--color-success-soft: #ecfdf5;--color-warning: #f59e0b;--color-warning-soft: #fffbeb;--color-danger: #ef4444;--color-danger-soft: #fef2f2;--color-get: #10b981;--color-post: #3b82f6;--color-put: #f59e0b;--color-patch: #8b5cf6;--color-delete: #ef4444;--color-head: #94a3b8;--color-options: #94a3b8;--sidebar-width: 330px;--header-height: 44px}[data-theme=dark]{--color-primary: #60a5fa;--color-primary-soft: #1e3a5f;--color-bg: #0f1117;--color-bg-subtle: #161b27;--color-border: #1e2433;--color-text: #f1f5f9;--color-text-muted: #64748b;--color-code-bg: #161b27;--color-success: #34d399;--color-success-soft: #022c22;--color-warning: #fbbf24;--color-warning-soft: #1c1400;--color-danger: #f87171;--color-danger-soft: #2d0a0a;--color-get: #34d399;--color-post: #60a5fa;--color-put: #fbbf24;--color-patch: #a78bfa;--color-delete: #f87171}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.font-mono{font-family:var(--font-mono)}.text-muted{color:var(--color-text-muted)}:root .n-popover{--n-color: #ffffff !important;--n-text-color: #0f172a !important;--n-border-radius: 6px !important;--n-box-shadow: 0 4px 16px rgba(0, 0, 0, .08) !important}[data-theme=dark] .n-popover{--n-color: #1e2433 !important;--n-text-color: #e2e8f0 !important;--n-border-radius: 6px !important;--n-box-shadow: 0 4px 16px rgba(0, 0, 0, .4) !important}.fade-enter-active,.fade-leave-active{transition:opacity .1s ease-out}.fade-enter-from,.fade-leave-to{opacity:0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@braydenyang/fdoc",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Embeddable OpenAPI 3.x documentation & debug UI",
5
5
  "license": "MIT",
6
6
  "keywords": [