@openapi-studio/core 0.4.0 → 0.6.0

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.
@@ -0,0 +1,2 @@
1
+ import{d as Ge,r as E,c as d,a as be,u as $e,w as ae,o as Ve,b as Xe,e as s,f as t,g as e,h as u,i as se,j as P,t as f,k as p,F as ne,l as oe,m as le,v as he,n as Ee,p as L,_ as He,q as Te,s as De,x as F,y as xe,E as ge,z as Ke,A as Qe,B as Ye,C as Ze,D as et,G as tt,H as st,S as nt,U as ot,I as Le}from"./app-BgTLLqSw.js";import{c as te,F as Ue}from"./file-text-BMdngXGt.js";const at=te("chart-no-axes-column-increasing",[["path",{d:"M5 21v-6",key:"1hz6c0"}],["path",{d:"M12 21V9",key:"uvy0l4"}],["path",{d:"M19 21V3",key:"11j9sm"}]]);const qe=te("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const je=te("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);const Se=te("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);const lt=te("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const it=te("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);const Ie=te("lock-open",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]]);const de=te("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);const rt=te("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);const Fe=te("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);const Ne=te("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);const ct=te("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),Oe=Ge("endpoint",()=>{const N=E(null),i=E(null),h=E(null),g=E(!1),x=E([]),I=E(new Map),k=($,m)=>!$||!m?null:`${m}:${$}`,z=d(()=>k(N.value,i.value)),O=d(()=>{const $=z.value;return $&&I.value.get($)||null}),V=d(()=>!N.value||!i.value?[]:x.value.filter($=>$.path===N.value&&$.method===i.value));function b($,m){N.value=$,i.value=m}function w($){h.value=$}function G($){$===null||h.value===$?h.value=null:h.value=$}function W(){g.value=!g.value}function K(){g.value=!0}function q(){g.value=!1}function A($,m,l){const r=k($,m);r&&I.value.set(r,{...l})}function S($,m){const l=k($,m);return l&&I.value.get(l)||null}function M($,m){const l=k($,m);l&&I.value.delete(l)}function X($){x.value.unshift($)}function _($,m){x.value=x.value.filter(l=>!(l.path===$&&l.method===m))}function J(){x.value=[]}return{selectedPath:N,selectedMethod:i,selectedAuthScheme:h,authMenuOpen:g,requestHistory:x,endpointFormState:I,currentEndpointKey:z,currentFormState:O,filteredRequestHistory:V,setSelectedEndpoint:b,setSelectedAuthScheme:w,toggleSelectedAuthScheme:G,toggleAuthMenu:W,openAuthMenu:K,closeAuthMenu:q,saveEndpointFormState:A,getEndpointFormState:S,clearEndpointFormState:M,addRequestHistory:X,clearEndpointHistory:_,clearAllHistory:J,getEndpointKey:k}}),ut={class:"service-host-dropdown-wrapper"},dt={key:0,class:"service-host-selected"},ht={key:1,class:"service-host-placeholder"},vt={class:"service-host-list"},pt={key:0,class:"service-host-empty-state"},mt=["onClick"],yt={class:"service-host-item-content"},ft={class:"service-host-item-label"},kt={class:"service-host-item-url"},_t=["onClick"],St={class:"service-host-add-section"},gt={key:1,class:"service-host-add-form"},bt={class:"service-host-add-actions"},$t=["disabled"],Ct=be({__name:"ServiceHostPicker",setup(N){const i=$e(),h=E(!1),g=E(!1),x=E(""),I=E(""),k=d(()=>i.serviceHosts),z=d(()=>i.selectedServiceHost),O=d(()=>z.value?.id||null),V=q=>q.label?q.label:q.baseUrl+(q.openApiPath?` (${q.openApiPath})`:""),b=async q=>{k.value.find(S=>S.id===q)&&(await i.selectHost(q),h.value=!1)},w=async()=>{if(!x.value.trim())return;const q={id:crypto.randomUUID(),baseUrl:x.value.trim(),openApiPath:I.value.trim()||void 0};await i.addHost(q),await i.selectHost(q.id),x.value="",I.value="",g.value=!1,h.value=!1},G=()=>{g.value=!1,x.value="",I.value=""},W=async q=>{await i.removeHost(q)},K=q=>{q.target.closest(".service-host-dropdown-wrapper")||(h.value=!1)};return ae(()=>i.serviceHosts,()=>{},{deep:!0}),Ve(async()=>{await i.loadConfigFromLocalStorage(),i.selectedServiceHost&&await i.loadOpenApiSpec(),document.addEventListener("click",K)}),Xe(()=>{document.removeEventListener("click",K)}),(q,A)=>(t(),s("div",ut,[e("div",{class:"service-host-dropdown",onClick:A[0]||(A[0]=se(S=>h.value=!h.value,["stop"]))},[z.value?(t(),s("span",dt,f(V(z.value)),1)):(t(),s("span",ht,"Select service host")),P(p(qe),{size:16,class:"service-host-chevron"})]),h.value?(t(),s("div",{key:0,class:"service-host-dropdown-menu",onClick:A[4]||(A[4]=se(()=>{},["stop"]))},[e("div",vt,[k.value.length===0?(t(),s("div",pt,[...A[5]||(A[5]=[e("p",{class:"service-host-empty-text"},"No service hosts yet",-1),e("p",{class:"service-host-empty-hint"},"Add one below to get started",-1)])])):u("",!0),(t(!0),s(ne,null,oe(k.value,S=>(t(),s("div",{key:S.id,class:L(["service-host-item",{selected:O.value===S.id}]),onClick:M=>b(S.id)},[e("div",yt,[e("div",ft,f(V(S)),1),e("div",kt,f(S.baseUrl),1)]),e("button",{class:"service-host-item-remove",onClick:se(M=>W(S.id),["stop"]),title:"Remove"},[P(p(Ne),{size:14})],8,_t)],10,mt))),128))]),e("div",St,[g.value?(t(),s("div",gt,[le(e("input",{"onUpdate:modelValue":A[2]||(A[2]=S=>x.value=S),type:"text",placeholder:"Base URL (e.g., https://api.example.com)",class:"service-host-add-input",onKeyup:Ee(w,["enter"])},null,544),[[he,x.value]]),le(e("input",{"onUpdate:modelValue":A[3]||(A[3]=S=>I.value=S),type:"text",placeholder:"OpenAPI Path (optional, e.g., /openapi.json)",class:"service-host-add-input",onKeyup:Ee(w,["enter"])},null,544),[[he,I.value]]),e("div",bt,[e("button",{onClick:w,class:"service-host-add-submit",disabled:!x.value.trim()}," Add ",8,$t),e("button",{onClick:G,class:"service-host-add-cancel"}," Cancel ")])])):(t(),s("button",{key:0,class:"service-host-add-btn",onClick:A[1]||(A[1]=S=>g.value=!0)}," + Add Service Host "))])])):u("",!0)]))}}),Je=He(Ct,[["__scopeId","data-v-2eb02fe1"]]),wt={class:"endpoint-tester"},At={class:"endpoint-header"},xt={class:"endpoint-title"},Et={class:"endpoint-path"},qt={key:0,class:"endpoint-info"},Ht={key:0,class:"endpoint-summary-text"},Bt={key:1,class:"endpoint-description"},Pt={key:0,class:"security-schemes-wrapper"},Rt={class:"security-schemes-section"},Mt=["onClick"],zt={class:"scheme-name"},Tt={class:"request-section"},It={key:0,class:"params-section"},Ot={class:"params-list"},Kt={class:"param-name"},Lt={key:0,class:"required"},Ut={key:1,class:"param-desc"},jt=["onUpdate:modelValue","placeholder"],Vt={key:1,class:"params-section"},Dt={class:"params-list"},Ft={class:"param-name"},Nt={key:0,class:"required"},Jt={key:1,class:"param-desc"},Wt=["onUpdate:modelValue","placeholder"],Gt={key:2,class:"body-section"},Xt={class:"body-section-header"},Qt={class:"view-toggle"},Yt={key:0,class:"schema-display"},Zt={class:"schema-text"},es={key:1,class:"json-editor-wrapper"},ts=["disabled"],ss={class:"response-section"},ns={class:"section-header"},os={key:0,class:"no-response"},as={key:1,class:"no-response"},ls={key:2,class:"request-history-list"},is={class:"history-item-header"},rs={class:"history-item-title"},cs={class:"history-url"},us={class:"history-meta-group"},ds={key:0,class:"history-auth-scheme"},hs={key:1,class:"history-auth-scheme"},vs={class:"history-timestamp"},ps={class:"history-curl-section"},ms=["onClick"],ys={class:"curl-header-left"},fs=["onClick"],ks={key:0,class:"curl-command"},_s={key:0,class:"history-request-body"},Ss={class:"json-editor-wrapper"},gs={key:1,class:"history-error"},bs={class:"error-message"},$s={key:2,class:"history-response"},Cs={class:"json-editor-wrapper"},ws={class:"app-footer"},_e="__clerk_bearer__",As=be({__name:"EndpointTester",props:{path:{},method:{}},setup(N){const i=N,h=Te(),g=Oe(),x=$e(),I=!!(x.clerkPublishableKey&&x.clerkPublishableKey.trim());let k=null;if(I)try{k=De()}catch(y){console.warn("Failed to initialize Clerk auth:",y),k=null}const z=d(()=>{if(!k)return!1;try{return k.isSignedIn.value??!1}catch{return!1}}),O=k?.getToken?.value??(()=>Promise.resolve(null)),V=d(()=>{if(!k)return!1;try{return k.isLoaded.value??!1}catch{return!1}}),b=E({}),w=E(""),G=E(null),W=E(null),K=E(!1),q=E({}),A=E(new Set),S=E(!1),M=d(()=>g.selectedAuthScheme),X=d(()=>g.filteredRequestHistory),_=d(()=>!i.path||!i.method?null:h.getSelectedEndpoint(i.path,i.method)),J=d(()=>h.endpoints),$=d(()=>!_.value||!_.value.parameters?[]:_.value.parameters.map(h.resolveParameter).filter(y=>y!==null&&y.in==="path")),m=d(()=>!_.value||!_.value.parameters?[]:_.value.parameters.map(h.resolveParameter).filter(y=>y!==null&&y.in==="query")),l=d({get:()=>{if(!w.value.trim())return"{}";try{return w.value}catch{return"{}"}},set:y=>{w.value=y}}),r=d(()=>_.value?h.getRequestBodySchema(_.value):null),H=d(()=>!r.value||!h.openApiSpec?null:h.formatSchemaForDisplay(r.value,h.openApiSpec)),ie=()=>{S.value=!S.value},Ce=d(()=>h.securitySchemes),we=d(()=>_.value?h.getAvailableSecuritySchemes(_.value):[]),Be=d(()=>(_.value?we.value:Ce.value).some(v=>v.scheme.type==="http"&&v.scheme.scheme==="bearer")),re=d(()=>{const y=_.value?[...we.value]:[...Ce.value];return Be.value&&I&&(y.some(n=>n.name===_e)||y.push({name:_e,scheme:{type:"http",scheme:"bearer",description:"Clerk Bearer Authentication"}})),y}),Z=y=>h.endpointRequiresSecurity(y),ve=y=>{g.toggleSelectedAuthScheme(y)},ye=y=>({GET:"#61affe",POST:"#49cc90",PUT:"#fca130",PATCH:"#50e3c2",DELETE:"#f93e3e"})[y]||"#999",Pe=async()=>{if(!i.path||!i.method)return;K.value=!0,G.value=null,W.value=null;const y={id:Date.now().toString()+Math.random().toString(36).substr(2,9),timestamp:new Date,method:i.method,path:i.path||"",url:"",requestBody:w.value.trim()?(()=>{try{return JSON.parse(w.value)}catch{return w.value}})():null,requestParams:{...b.value},headers:{},response:null,responseError:null,authScheme:M.value||null};try{let n=`${x.serviceHost||""}${i.path}`;const U={},Q=new URLSearchParams;for(const[T,B]of Object.entries(b.value))if(B!==""&&B!=null){const Y=J.value.find(o=>o.path===i.path&&o.method===i.method);let c=!1;if(Y?.operation.parameters)for(const o of Y.operation.parameters){const a=h.resolveParameter(o);if(a&&a.name===T){c=a.in==="path";break}}c?U[T]=String(B):Q.append(T,String(B))}for(const[T,B]of Object.entries(U))n=n.replace(`{${T}}`,encodeURIComponent(B));const D={"Content-Type":"application/json"};if(M.value===_e){if(z.value){V.value||await new Promise(B=>{const Y=setInterval(()=>{V.value&&(clearInterval(Y),B(void 0))},100)});const T=await O();T&&(D.Authorization=`Bearer ${T}`)}}else if(M.value&&h.openApiSpec?.components?.securitySchemes){const T=h.openApiSpec.components.securitySchemes[M.value];if(T&&typeof T=="object"&&!("$ref"in T)){const B=q.value[M.value];if(T.type==="apiKey"){const Y=T;B?.value&&(Y.in==="header"?D[Y.name]=B.value:Y.in==="query"&&Q.append(Y.name,B.value))}else if(T.type==="http"){const Y=T;if(Y.scheme==="basic"){if(B?.username&&B?.password){const c=`${B.username}:${B.password}`;D.Authorization=`Basic ${btoa(c)}`}}else Y.scheme==="bearer"&&B?.token&&(D.Authorization=`Bearer ${B.token}`)}else T.type==="oauth2"?B?.accessToken&&(D.Authorization=`Bearer ${B.accessToken}`):T.type==="openIdConnect"&&B?.idToken&&(D.Authorization=`Bearer ${B.idToken}`)}}Q.toString()&&(n+=`?${Q.toString()}`),y.url=n,y.headers={...D};const j={method:i.method,headers:D};if(["POST","PUT","PATCH"].includes(i.method)&&w.value.trim())try{j.body=JSON.stringify(JSON.parse(w.value))}catch{const B="Invalid JSON in request body";W.value=B,y.responseError=B,g.addRequestHistory(y),K.value=!1;return}const R=await fetch(n,j),ke=R.headers.get("content-type");let ce;if(ke?.includes("application/json"))ce={status:R.status,statusText:R.statusText,headers:Object.fromEntries(R.headers.entries()),body:await R.json()};else{const T=await R.text();ce={status:R.status,statusText:R.statusText,headers:Object.fromEntries(R.headers.entries()),body:T}}G.value=ce,y.response=ce,y.status=R.status,y.statusText=R.statusText}catch(v){const n=v instanceof Error?v.message:"Request failed";W.value=n,y.responseError=n}finally{K.value=!1,g.addRequestHistory(y)}},fe=y=>{const v=["curl"];y.method!=="GET"&&v.push(`-X ${y.method}`);for(const[n,U]of Object.entries(y.headers||{})){const Q=U.replace(/"/g,'\\"');v.push(`-H "${n}: ${Q}"`)}if(["POST","PUT","PATCH"].includes(y.method)&&y.requestBody){const U=(typeof y.requestBody=="string"?y.requestBody:JSON.stringify(y.requestBody,null,2)).replace(/'/g,"'\\''").replace(/\n/g,"\\n");v.push(`-d '${U}'`)}return v.push(`"${y.url}"`),v.join(` \\
2
+ `)},Re=async y=>{const v=fe(y);try{await navigator.clipboard.writeText(v)}catch(n){console.error("Failed to copy to clipboard:",n)}},Me=()=>{!i.path||!i.method||g.clearEndpointHistory(i.path,i.method)},pe=()=>{!i.path||!i.method||g.saveEndpointFormState(i.path,i.method,{requestParams:{...b.value},requestBody:w.value,selectedAuthScheme:M.value})};return ae([()=>i.path,()=>i.method],([y,v],[n,U])=>{if(y!==n||v!==U){n&&U&&pe(),G.value=null,W.value=null,A.value.clear();const Q=g.getEndpointFormState(y||"",v||""),D=!!Q;if(D&&Q?(b.value={...Q.requestParams},w.value=Q.requestBody,g.setSelectedAuthScheme(Q.selectedAuthScheme)):(b.value={},w.value="",g.setSelectedAuthScheme(null)),_.value?.parameters)for(const j of _.value.parameters){const R=h.resolveParameter(j);R&&(R.in==="query"||R.in==="path")&&(!D||!(R.name in b.value))&&(b.value[R.name]="")}else D||(b.value={});if(!D&&_.value?.requestBody){let j=_.value.requestBody;if(j&&typeof j=="object"&&"$ref"in j&&j.$ref&&h.openApiSpec){const R=h.resolveReference(j.$ref,h.openApiSpec);R&&typeof R=="object"&&(j=R)}if(j&&typeof j=="object"&&"content"in j&&j.content){const R=j.content["application/json"];if(R?.schema&&h.openApiSpec){const ke=h.generateExampleFromSchema(R.schema,h.openApiSpec);w.value=JSON.stringify(ke||{},null,2)}else w.value=JSON.stringify({},null,2)}}else D||(w.value="")}},{immediate:!0}),ae([b,w,M],()=>{i.path&&i.method&&pe()},{deep:!0}),(y,v)=>(t(),s("main",wt,[e("div",At,[e("div",xt,[e("span",{class:"method-badge large",style:xe({backgroundColor:ye(N.method||"")})},f(N.method),5),e("span",Et,f(N.path),1),_.value&&Z(_.value)?(t(),F(p(de),{key:0,size:18,class:"security-indicator-large",title:"Requires authentication"})):u("",!0)]),_.value&&(_.value.summary||_.value.description)?(t(),s("div",qt,[_.value.summary?(t(),s("p",Ht,f(_.value.summary),1)):u("",!0),_.value.description?(t(),s("p",Bt,f(_.value.description),1)):u("",!0)])):u("",!0)]),re.value.length>0?(t(),s("div",Pt,[v[1]||(v[1]=e("h4",{class:"security-schemes-title"},"Security Schemes",-1)),e("div",Rt,[(t(!0),s(ne,null,oe(re.value,n=>(t(),s("div",{key:n.name,class:L(["security-scheme-card",{selected:M.value===n.name}]),onClick:U=>ve(n.name)},[P(p(de),{size:12,class:"security-card-icon"}),e("span",zt,f(n.name===_e?"Clerk Bearer":n.name),1)],10,Mt))),128))])])):u("",!0),e("div",Tt,[v[5]||(v[5]=e("h3",null,"Request",-1)),$.value.length>0?(t(),s("div",It,[v[2]||(v[2]=e("h4",null,"Path Parameters",-1)),e("dl",Ot,[(t(!0),s(ne,null,oe($.value,n=>(t(),s("div",{key:n.name,class:"param-item"},[e("dt",null,[e("span",Kt,f(n.name),1),n.required?(t(),s("span",Lt,"*")):u("",!0),n.description?(t(),s("span",Ut," - "+f(n.description),1)):u("",!0)]),e("dd",null,[le(e("input",{"onUpdate:modelValue":U=>b.value[n.name]=U,type:"text",placeholder:n.schema&&"default"in n.schema?String(n.schema.default):""},null,8,jt),[[he,b.value[n.name]]])])]))),128))])])):u("",!0),m.value.length>0?(t(),s("div",Vt,[v[3]||(v[3]=e("h4",null,"Query Parameters",-1)),e("dl",Dt,[(t(!0),s(ne,null,oe(m.value,n=>(t(),s("div",{key:n.name,class:"param-item"},[e("dt",null,[e("span",Ft,f(n.name),1),n.required?(t(),s("span",Nt,"*")):u("",!0),n.description?(t(),s("span",Jt," - "+f(n.description),1)):u("",!0)]),e("dd",null,[le(e("input",{"onUpdate:modelValue":U=>b.value[n.name]=U,type:"text",placeholder:n.schema&&"default"in n.schema?String(n.schema.default):""},null,8,Wt),[[he,b.value[n.name]]])])]))),128))])])):u("",!0),_.value&&_.value.requestBody?(t(),s("div",Gt,[e("div",Xt,[v[4]||(v[4]=e("h4",null,"Request Body",-1)),e("div",Qt,[e("button",{onClick:ie,class:L([{active:!S.value},"toggle-btn small"])}," Edit ",2),e("button",{onClick:ie,class:L([{active:S.value},"toggle-btn small"])}," Schema ",2)])]),S.value&&H.value?(t(),s("div",Yt,[e("pre",Zt,f(H.value),1)])):S.value?u("",!0):(t(),s("div",es,[P(p(ge),{text:l.value,"onUpdate:text":v[0]||(v[0]=n=>l.value=n),mode:"text",mainMenuBar:!1,navigationBar:!1,statusBar:!1,darkTheme:!0},null,8,["text"])]))])):u("",!0),e("button",{onClick:Pe,class:"send-button",disabled:K.value},[P(p(Fe),{size:16,class:"send-button-icon"}),e("span",null,f(K.value?"Sending...":"Send Request"),1)],8,ts)]),e("div",ss,[e("div",ns,[v[6]||(v[6]=e("h3",null,"Request History",-1)),X.value.length>0?(t(),s("button",{key:0,onClick:Me,class:"clear-history-btn"}," Clear History ")):u("",!0)]),!N.path||!N.method?(t(),s("div",os," Select an endpoint to view request history. ")):X.value.length===0?(t(),s("div",as,' No requests sent yet. Click "Send Request" to test the endpoint. ')):(t(),s("div",ls,[(t(!0),s(ne,null,oe(X.value,n=>(t(),s("div",{key:n.id,class:"history-item"},[e("div",is,[e("div",rs,[e("span",{class:L(["status-code",{success:n.status&&n.status>=200&&n.status<300,error:n.status&&n.status>=400,redirect:n.status&&n.status>=300&&n.status<400}])},f(n.status||"N/A"),3),e("span",cs,f(n.url),1)]),e("div",us,[n.authScheme?(t(),s("span",ds,[P(p(de),{size:12}),Ke(" "+f(n.authScheme===_e?"Clerk Bearer":n.authScheme),1)])):(t(),s("span",hs,[P(p(Ie),{size:12}),v[7]||(v[7]=Ke(" Anonymous ",-1))])),e("span",vs,f(new Date(n.timestamp).toLocaleTimeString()),1)])]),e("div",ps,[e("div",{class:"curl-header",onClick:U=>A.value.has(n.id)?A.value.delete(n.id):A.value.add(n.id)},[e("div",ys,[A.value.has(n.id)?(t(),F(p(qe),{key:0,size:16,class:"curl-toggle-icon"})):(t(),F(p(Se),{key:1,size:16,class:"curl-toggle-icon"})),v[8]||(v[8]=e("h5",null,"cURL Command",-1))]),e("button",{onClick:se(U=>Re(n),["stop"]),class:"copy-curl-btn",title:"Copy cURL command"},[P(p(lt),{size:16}),v[9]||(v[9]=e("span",null,"Copy",-1))],8,fs)],8,ms),A.value.has(n.id)?(t(),s("div",ks,[e("pre",null,f(fe(n)),1)])):u("",!0)]),n.requestBody?(t(),s("div",_s,[v[10]||(v[10]=e("h5",null,"Request Body",-1)),e("div",Ss,[P(p(ge),{"model-value":n.requestBody,mode:"text",readOnly:!0,mainMenuBar:!1,navigationBar:!1,statusBar:!1,darkTheme:!0},null,8,["model-value"])])])):u("",!0),n.responseError?(t(),s("div",gs,[v[11]||(v[11]=e("h5",null,"Error",-1)),e("div",bs,f(n.responseError),1)])):n.response?(t(),s("div",$s,[v[12]||(v[12]=e("h5",null,"Response",-1)),e("div",Cs,[P(p(ge),{"model-value":(()=>{if(typeof n.response.body=="string")try{return JSON.parse(n.response.body)}catch{return{text:n.response.body}}return n.response.body||{}})(),mode:"text",readOnly:!0,mainMenuBar:!1,navigationBar:!1,statusBar:!1,darkTheme:!0},null,8,["model-value"])])])):u("",!0)]))),128))]))]),e("footer",ws,[e("p",null,"© "+f(new Date().getFullYear())+" Gamja Labs",1)])]))}}),xs=He(As,[["__scopeId","data-v-cab1bf2e"]]),Es={key:0,class:"auth-side-menu"},qs={class:"auth-menu-header"},Hs={class:"auth-menu-content"},Bs={class:"auth-scheme-header"},Ps={style:{display:"flex","align-items":"center",gap:"0.5rem"}},Rs={class:"auth-scheme-header"},Ms={style:{display:"flex","align-items":"center",gap:"0.5rem"}},zs=["onClick"],Ts={class:"auth-scheme-header"},Is={style:{display:"flex","align-items":"center",gap:"0.5rem"}},Os={class:"auth-scheme-type"},Ks={key:0,class:"auth-scheme-description"},Ls={class:"field-location"},Us=["value","onInput","placeholder"],js=["onClick"],Vs=["value","onInput"],Ds=["value","onInput"],Fs=["onClick"],Ns=["value","onInput"],Js=["onClick"],Ws=["value","onInput"],Gs=["onClick"],Xs=["value","onInput"],Qs=["onClick"],Ys={key:1,class:"clerk-key-card"},Zs={class:"clerk-key-description"},en={key:0},tn={key:1},sn={class:"clerk-key-fields"},nn=["disabled"],ze="__clerk_bearer__",on=be({__name:"SecuritySchemeMenu",setup(N,{expose:i}){const h=Te(),g=Oe(),x=$e(),I=Qe(),k=d(()=>!!(x.clerkPublishableKey&&x.clerkPublishableKey.trim())),z=d(()=>h.securitySchemes),O=d(()=>g.selectedAuthScheme),V=d(()=>g.authMenuOpen),b=E({});d(()=>{if(!O.value)return"Anonymous";if(O.value===ze)return"Clerk Bearer";const m=z.value.find(l=>l.name===O.value);return m?m.name:"Anonymous"});const w=d(()=>x.selectedServiceHost),G=E("");ae(w,m=>{G.value=m?.clerkPublishableKey||""},{immediate:!0});const W=d(()=>!!w.value?.clerkPublishableKey?.trim()),K=d(()=>{const m=q.value;return m==="config.json"||m==="env"}),q=d(()=>{const m=x.clerkPublishableKey,l=void 0,r=x.config;return w.value?.clerkPublishableKey?"serviceHost":m&&r.clerkPublishableKey===m&&m!==l?"config.json":m&&m===l?"env":null}),A=d(()=>{const m=q.value;return m==="config.json"?`Key loaded from ${I.getConfigJsonPath()}`:m==="env"?"Key loaded from environment variable":m==="serviceHost"?"Key stored with service host":null}),S=(m,l,r)=>{b.value[m]||(b.value[m]={}),b.value[m][l]=r},M=m=>{delete b.value[m]},X=m=>{g.toggleSelectedAuthScheme(m)},_=()=>{w.value&&(x.saveClerkPublishableKeyForSelectedHost(G.value),typeof window<"u"&&window.location.reload())},J=()=>{w.value&&(x.clearClerkPublishableKeyForSelectedHost(),typeof window<"u"&&window.location.reload())},$=()=>{g.closeAuthMenu()};return i({authCredentials:b}),(m,l)=>V.value?(t(),s("aside",Es,[e("div",qs,[l[8]||(l[8]=e("h2",null,"Security Scheme",-1)),e("button",{onClick:$,class:"close-auth-menu",title:"Close"},[P(p(Ne),{size:20})])]),e("div",Hs,[e("div",{class:L(["auth-scheme anonymous-option",{selected:O.value===null}]),onClick:l[0]||(l[0]=r=>X(null))},[e("div",Bs,[e("div",Ps,[P(p(Ie),{size:18}),l[9]||(l[9]=e("h3",null,"Anonymous",-1))]),l[10]||(l[10]=e("span",{class:"auth-scheme-type"},"NONE",-1))]),l[11]||(l[11]=e("div",{class:"auth-scheme-description"}," Make requests without authentication ",-1))],2),k.value?(t(),s("div",{key:0,class:L(["auth-scheme clerk-bearer-option",{selected:O.value===ze}]),onClick:l[1]||(l[1]=r=>X(ze))},[e("div",Rs,[e("div",Ms,[P(p(de),{size:18}),l[12]||(l[12]=e("h3",null,"Clerk Bearer",-1))]),l[13]||(l[13]=e("span",{class:"auth-scheme-type"},"CLERK",-1))]),l[14]||(l[14]=e("div",{class:"auth-scheme-description"}," Use Clerk authentication token for bearer authentication ",-1))],2)):u("",!0),(t(!0),s(ne,null,oe(z.value,r=>(t(),s("div",{key:r.name,class:L(["auth-scheme",{selected:O.value===r.name}]),onClick:H=>X(r.name)},[e("div",Ts,[e("div",Is,[P(p(de),{size:18}),e("h3",null,f(r.name),1)]),e("span",Os,f(r.scheme.type),1)]),r.scheme.description?(t(),s("div",Ks,f(r.scheme.description),1)):u("",!0),r.scheme.type==="apiKey"?(t(),s("div",{key:1,class:"auth-scheme-fields",onClick:l[2]||(l[2]=se(()=>{},["stop"]))},[e("label",null,[e("span",null,f(r.scheme.name),1),e("span",Ls,"("+f(r.scheme.in)+")",1),e("input",{type:"text",value:b.value[r.name]?.value||"",onInput:H=>S(r.name,"value",H.target.value),placeholder:`Enter ${r.scheme.name}`,class:"auth-input"},null,40,Us)]),b.value[r.name]?.value?(t(),s("button",{key:0,onClick:H=>M(r.name),class:"clear-credential-btn"}," Clear ",8,js)):u("",!0)])):r.scheme.type==="http"&&r.scheme.scheme==="basic"?(t(),s("div",{key:2,class:"auth-scheme-fields",onClick:l[3]||(l[3]=se(()=>{},["stop"]))},[e("label",null,[l[15]||(l[15]=e("span",null,"Username",-1)),e("input",{type:"text",value:b.value[r.name]?.username||"",onInput:H=>S(r.name,"username",H.target.value),placeholder:"Enter username",class:"auth-input"},null,40,Vs)]),e("label",null,[l[16]||(l[16]=e("span",null,"Password",-1)),e("input",{type:"text",value:b.value[r.name]?.password||"",onInput:H=>S(r.name,"password",H.target.value),placeholder:"Enter password",class:"auth-input"},null,40,Ds)]),b.value[r.name]?.username||b.value[r.name]?.password?(t(),s("button",{key:0,onClick:H=>M(r.name),class:"clear-credential-btn"}," Clear ",8,Fs)):u("",!0)])):r.scheme.type==="http"&&r.scheme.scheme==="bearer"?(t(),s("div",{key:3,class:"auth-scheme-fields",onClick:l[4]||(l[4]=se(()=>{},["stop"]))},[e("label",null,[l[17]||(l[17]=e("span",null,"Bearer Token",-1)),e("input",{type:"text",value:b.value[r.name]?.token||"",onInput:H=>S(r.name,"token",H.target.value),placeholder:"Enter bearer token",class:"auth-input"},null,40,Ns)]),b.value[r.name]?.token?(t(),s("button",{key:0,onClick:H=>M(r.name),class:"clear-credential-btn"}," Clear ",8,Js)):u("",!0)])):r.scheme.type==="oauth2"?(t(),s("div",{key:4,class:"auth-scheme-fields",onClick:l[5]||(l[5]=se(()=>{},["stop"]))},[e("label",null,[l[18]||(l[18]=e("span",null,"Access Token",-1)),e("input",{type:"text",value:b.value[r.name]?.accessToken||"",onInput:H=>S(r.name,"accessToken",H.target.value),placeholder:"Enter OAuth2 access token",class:"auth-input"},null,40,Ws)]),b.value[r.name]?.accessToken?(t(),s("button",{key:0,onClick:H=>M(r.name),class:"clear-credential-btn"}," Clear ",8,Gs)):u("",!0)])):r.scheme.type==="openIdConnect"?(t(),s("div",{key:5,class:"auth-scheme-fields",onClick:l[6]||(l[6]=se(()=>{},["stop"]))},[e("label",null,[l[19]||(l[19]=e("span",null,"ID Token",-1)),e("input",{type:"text",value:b.value[r.name]?.idToken||"",onInput:H=>S(r.name,"idToken",H.target.value),placeholder:"Enter OpenID Connect ID token",class:"auth-input"},null,40,Xs)]),b.value[r.name]?.idToken?(t(),s("button",{key:0,onClick:H=>M(r.name),class:"clear-credential-btn"}," Clear ",8,Qs)):u("",!0)])):u("",!0)],10,zs))),128)),w.value?(t(),s("div",Ys,[l[21]||(l[21]=e("div",{class:"clerk-key-header"},[e("h3",null,"Clerk Publishable Key")],-1)),e("div",Zs,[A.value?(t(),s("span",en,f(A.value),1)):(t(),s("span",tn," Enter your Clerk publishable key to enable authentication. This will be stored with the selected service host. "))]),e("div",sn,[e("label",null,[l[20]||(l[20]=e("span",null,"Publishable Key",-1)),le(e("input",{"onUpdate:modelValue":l[7]||(l[7]=r=>G.value=r),type:"text",placeholder:"pk_test_...",class:"clerk-key-input",disabled:W.value||K.value},null,8,nn),[[he,G.value]])]),!W.value&&!K.value?(t(),s("button",{key:0,onClick:_,class:"save-button"}," Save and reload ")):W.value&&!K.value?(t(),s("button",{key:1,onClick:J,class:"save-button"}," Clear and reload ")):u("",!0)])])):u("",!0)])])):u("",!0)}}),an=He(on,[["__scopeId","data-v-b8c2be74"]]),ln={key:0,class:"service-host-input-section"},rn={key:0,class:"welcome-description"},cn={key:1,class:"welcome-description"},un={key:3,class:"service-host-direct-form"},dn={class:"service-host-input-wrapper"},hn=["disabled"],vn=be({__name:"WelcomeServiceHostInput",setup(N){const i=$e(),h=E(""),g=E(""),x=d(()=>i.serviceHosts),I=d(()=>i.hasServiceHost),k=async()=>{if(!h.value.trim())return;const z={id:crypto.randomUUID(),baseUrl:h.value.trim(),openApiPath:g.value.trim()||void 0};await i.addHost(z),await i.selectHost(z.id),h.value="",g.value=""};return(z,O)=>p(i).isServiceHostPickerEnabled&&!I.value?(t(),s("div",ln,[x.value.length>0?(t(),s("p",rn," Please select or add a service host to get started. ")):(t(),s("p",cn," Please enter your service host URL to get started. ")),x.value.length>0?(t(),F(Je,{key:2})):(t(),s("div",un,[e("div",dn,[le(e("input",{"onUpdate:modelValue":O[0]||(O[0]=V=>h.value=V),type:"text",placeholder:"Base URL (e.g., https://api.example.com)",class:"service-host-input",onKeyup:Ee(k,["enter"])},null,544),[[he,h.value]]),le(e("input",{"onUpdate:modelValue":O[1]||(O[1]=V=>g.value=V),type:"text",placeholder:"OpenAPI Path (optional, e.g., /openapi.json)",class:"service-host-input",onKeyup:Ee(k,["enter"])},null,544),[[he,g.value]]),e("button",{onClick:k,class:"service-host-submit-btn",disabled:!h.value.trim()}," Connect ",8,hn)])]))])):u("",!0)}}),pn=He(vn,[["__scopeId","data-v-d0cf2fc7"]]),mn={class:"openapi-test"},yn={class:"test-header"},fn={class:"header-content"},kn={class:"header-title-section"},_n={class:"title-section-content"},Sn={class:"title-row"},gn={class:"logo"},bn={key:0,class:"api-version"},$n={key:0,class:"api-description"},Cn={key:0,class:"header-title-section"},wn=["disabled"],An={class:"header-actions"},xn={href:"https://github.com/gamja-labs/openapi-studio",target:"_blank",rel:"noopener noreferrer",class:"github-link",title:"View on GitHub"},En={key:1,class:"auth-section"},qn={key:1,class:"user-section"},Hn={class:"test-container"},Bn={class:"sidebar-header"},Pn=["title"],Rn={class:"sidebar-content"},Mn={key:0,class:"loading"},zn={key:1,class:"error"},Tn={key:2,class:"endpoints-groups"},In=["onClick"],On={class:"group-name"},Kn={class:"group-count"},Ln={class:"group-toggle"},Un={key:0,class:"group-endpoints"},jn=["onClick"],Vn={class:"endpoint-path"},Dn={key:0,class:"endpoint-summary"},Fn={key:2,class:"endpoint-content"},Nn={class:"examples-header"},Jn=["title"],Wn={class:"examples-content"},Gn={key:0,class:"example-section"},Xn={class:"example-section-header"},Qn={class:"view-toggle"},Yn={class:"example-content"},Zn={key:0,class:"schema-display"},eo={class:"schema-text"},to={key:1,class:"json-editor-wrapper"},so={key:1,class:"example-section"},no={class:"response-codes-list"},oo={class:"response-code-header"},ao={class:"response-code-number"},lo={class:"response-code-right"},io={key:0,class:"response-code-description"},ro={class:"view-toggle"},co=["onClick"],uo=["onClick"],ho={key:0,class:"example-content"},vo={key:0,class:"schema-display"},po={class:"schema-text"},mo={key:1,class:"json-editor-wrapper"},yo={key:1,class:"no-example"},fo={key:2,class:"no-examples"},ko={key:3,class:"example-section"},_o={class:"schema-references-list"},So=["onClick"],go={class:"schema-reference-toggle"},bo={class:"schema-reference-name"},$o={key:0,class:"example-content"},Co={class:"schema-display"},wo={class:"schema-text"},Ao={key:3,class:"endpoint-tester empty"},xo={class:"empty-state"},Eo={class:"welcome-content"},qo={class:"welcome-icon"},Ho={key:0,class:"welcome-description"},Bo={key:1,class:"welcome-tips"},Po={class:"tip-item"},Ro={class:"tip-item"},Mo={class:"tip-item"},zo={class:"app-footer"},To="__clerk_bearer__",Ko=be({__name:"Main",setup(N){const i=et(),h=$e(),g=d(()=>h.hasServiceHost),x=Ye(),I=Ze(),k=Te(),z=Oe();let O=!!(h.clerkPublishableKey&&h.clerkPublishableKey.trim()),V=null;if(O)try{V=De()}catch(c){console.warn("Failed to initialize Clerk auth:",c),O=!1,V=null}const b=d(()=>{if(!V)return!1;try{return V.isSignedIn.value??!1}catch{return!1}}),w=d(()=>k.openApiSpec),G=d(()=>k.loading),W=d(()=>k.error),K=d(()=>z.selectedPath),q=d(()=>z.selectedMethod),A=d(()=>z.selectedAuthScheme),S=E(new Set),M=E(new Set),X=E(new Map),_=E(!1),J=E(!1),$=E(500),m=E(400),l=E(!1),r=E(!1),H=d(()=>k.getSelectedEndpoint(K.value,q.value)),ie=d(()=>k.endpoints),Ce=d(()=>{if(ie.value.length===0)return[];const c=new Map;for(const o of ie.value){const a=o.operation.tags||[];if(a.length>0){const C=a[0];C&&(c.has(C)||c.set(C,{name:C,endpoints:[]}),c.get(C).endpoints.push(o))}else{const C=o.path.split("/").filter(ue=>ue),ee=C.length>0?`/${C[0]}`:"Other";c.has(ee)||c.set(ee,{name:ee,endpoints:[]}),c.get(ee).endpoints.push(o)}}return S.value.size===0&&c.forEach((o,a)=>S.value.add(a)),Array.from(c.values()).sort((o,a)=>o.name.localeCompare(a.name))}),we=c=>{S.value.has(c)?S.value.delete(c):S.value.add(c)},Be=c=>{M.value.has(c)?M.value.delete(c):M.value.add(c)},re=c=>{const o=X.value.get(c)||!1;X.value.set(c,!o)},Z=c=>X.value.get(c)||!1,ve=new Map;async function ye(c,o){const a=`${o}:${c}`;if(ve.has(a))return ve.get(a);const ee=new TextEncoder().encode(a),ue=await crypto.subtle.digest("SHA-256",ee),me=Array.from(new Uint8Array(ue)).map(We=>We.toString(16).padStart(2,"0")).join("").slice(0,16);return ve.set(a,me),me}function Pe(c,o){const a=`${o}:${c}`;return ve.get(a)||""}async function fe(){const c=I.query.endpoint;if(!c)return null;for(const o of ie.value)if(await ye(o.path,o.method)===c)return{path:o.path,method:o.method};return null}Ve(async()=>{_.value=i.loadSidebarCollapsed(),J.value=i.loadExamplesSidebarCollapsed(),$.value=i.loadEndpointsSidebarWidth(),m.value=i.loadExamplesSidebarWidth(),await h.loadOpenApiSpec();for(const o of ie.value)await ye(o.path,o.method);const c=await fe();c&&(await tt(),await pe(c.path,c.method,!1)),ae(()=>I.query.endpoint,async o=>{if(o){const a=await fe();a&&(K.value!==a.path||q.value!==a.method)&&await pe(a.path,a.method,!1)}else(K.value||q.value)&&z.setSelectedEndpoint(null,null)}),ae(_,o=>{i.saveSidebarCollapsed(o)}),ae(J,o=>{i.saveExamplesSidebarCollapsed(o)}),ae($,o=>{i.saveEndpointsSidebarWidth(o)}),ae(m,o=>{i.saveExamplesSidebarWidth(o)})});const Re=c=>{l.value=!0;const o=c.clientX,a=$.value,C=ue=>{const Ae=ue.clientX-o,me=Math.max(200,Math.min(800,a+Ae));$.value=me},ee=()=>{l.value=!1,document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",ee)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",ee)},Me=c=>{r.value=!0;const o=c.clientX,a=m.value,C=ue=>{const Ae=o-ue.clientX,me=Math.max(200,Math.min(800,a+Ae));m.value=me},ee=()=>{r.value=!1,document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",ee)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",ee)},pe=async(c,o,a=!0)=>{if(z.setSelectedEndpoint(c,o),M.value.clear(),X.value.clear(),a){const C=Pe(c,o)||await ye(c,o);I.query.endpoint!==C&&await x.replace({query:{...I.query,endpoint:C}})}},y=c=>({GET:"#61affe",POST:"#49cc90",PUT:"#fca130",PATCH:"#50e3c2",DELETE:"#f93e3e"})[c]||"#999",v=d(()=>H.value?k.getExampleFromRequestBody(H.value):null),n=d(()=>H.value?k.getRequestBodySchema(H.value):null),U=d(()=>!n.value||!w.value?null:k.formatSchemaForDisplay(n.value,w.value)),Q=c=>!c||!w.value?null:k.formatSchemaForDisplay(c,w.value),D=d(()=>H.value?k.getAllResponseExamples(H.value):[]),j=d(()=>H.value?k.getEndpointSchemaReferences(H.value):[]),R=c=>k.endpointRequiresSecurity(c),ke=d(()=>k.openApiTitle),ce=d(()=>k.openApiDescription),T=d(()=>k.openApiVersion),B=d(()=>{if(!A.value)return"Anonymous";if(A.value===To)return"Clerk Bearer";const o=k.securitySchemes.find(a=>a.name===A.value);return o?o.name:"Anonymous"}),Y=async()=>{await h.reload()};return(c,o)=>(t(),s("div",mn,[e("header",yn,[e("div",fn,[e("div",kn,[e("div",_n,[e("div",Sn,[e("h1",gn,f(ke.value),1),T.value?(t(),s("div",bn,"v"+f(T.value),1)):u("",!0)]),ce.value?(t(),s("p",$n,f(ce.value),1)):u("",!0)]),g.value?(t(),s("div",Cn,[g.value?(t(),s("button",{key:0,onClick:Y,class:"refresh-spec-btn",disabled:p(k).loading,title:"Refresh OpenAPI Spec"},[P(p(rt),{size:20,class:L({spinning:p(k).loading})},null,8,["class"])],8,wn)):u("",!0)])):u("",!0)]),e("div",An,[p(h).isServiceHostPickerEnabled?(t(),F(Je,{key:0})):u("",!0),e("button",{onClick:o[0]||(o[0]=a=>p(x).push("/spec")),class:"openapi-spec-link",title:"View OpenAPI Spec JSON"},[P(p(Ue),{size:20})]),e("a",xn,[P(p(it),{size:20})]),e("button",{onClick:o[1]||(o[1]=(...a)=>p(z).toggleAuthMenu&&p(z).toggleAuthMenu(...a)),class:L(["auth-menu-toggle",{active:p(z).authMenuOpen,"has-selection":A.value}]),title:"Security Scheme"},[A.value?(t(),F(p(de),{key:1,size:16})):(t(),F(p(Ie),{key:0,size:16})),e("span",null,f(A.value?B.value:"Security"),1)],2),p(O)?(t(),s("div",En,[b.value?(t(),s("div",qn,[P(p(ot))])):(t(),F(p(nt),{key:0,mode:"modal"},{default:st(()=>[...o[6]||(o[6]=[e("button",{class:"sign-in-btn"},"Sign In",-1)])]),_:1}))])):u("",!0)])])]),P(an),e("div",Hn,[g.value?(t(),s("aside",{key:0,class:L(["endpoints-sidebar",{collapsed:_.value,resizing:l.value}]),style:xe({width:_.value?"60px":`${$.value}px`})},[e("div",Bn,[o[7]||(o[7]=e("h2",null,"Endpoints ",-1)),e("button",{onClick:o[2]||(o[2]=a=>_.value=!_.value),class:"sidebar-toggle",title:_.value?"Expand sidebar":"Collapse sidebar"},[_.value?(t(),F(p(Se),{key:0,size:16})):(t(),F(p(je),{key:1,size:16}))],8,Pn)]),le(e("div",Rn,[G.value?(t(),s("div",Mn,"Loading OpenAPI spec...")):W.value?(t(),s("div",zn,f(W.value),1)):(t(),s("div",Tn,[(t(!0),s(ne,null,oe(Ce.value,a=>(t(),s("div",{key:a.name,class:"endpoint-group"},[e("div",{class:"group-header",onClick:C=>we(a.name)},[e("span",On,f(a.name),1),e("span",Kn,"("+f(a.endpoints.length)+")",1),e("span",Ln,[S.value.has(a.name)?(t(),F(p(qe),{key:0,size:14})):(t(),F(p(Se),{key:1,size:14}))])],8,In),S.value.has(a.name)?(t(),s("div",Un,[(t(!0),s(ne,null,oe(a.endpoints,C=>(t(),s("div",{key:`${C.method}-${C.path}`,class:L(["endpoint-item",{active:K.value===C.path&&q.value===C.method}]),onClick:se(ee=>pe(C.path,C.method),["stop"])},[e("span",{class:"method-badge",style:xe({backgroundColor:y(C.method)})},f(C.method),5),e("span",Vn,f(C.path),1),C.operation.summary?(t(),s("span",Dn,f(C.operation.summary),1)):u("",!0),R(C.operation)?(t(),F(p(de),{key:1,size:14,class:"security-indicator",title:"Requires authentication"})):u("",!0)],10,jn))),128))])):u("",!0)]))),128))]))],512),[[Le,!_.value]])],6)):u("",!0),g.value&&!_.value?(t(),s("div",{key:1,class:L(["resize-handle resize-handle-endpoints",{resizing:l.value}]),onMousedown:Re},null,34)):u("",!0),H.value?(t(),s("div",Fn,[P(xs,{path:K.value,method:q.value},null,8,["path","method"]),J.value?u("",!0):(t(),s("div",{key:0,class:L(["resize-handle resize-handle-examples",{resizing:r.value}]),onMousedown:Me},null,34)),e("aside",{class:L(["examples-sidebar",{collapsed:J.value,resizing:r.value}]),style:xe({width:J.value?"60px":`${m.value}px`})},[e("div",Nn,[o[8]||(o[8]=e("h3",null,"Examples",-1)),e("button",{onClick:o[3]||(o[3]=a=>J.value=!J.value),class:"examples-toggle",title:J.value?"Expand examples":"Collapse examples"},[J.value?(t(),F(p(je),{key:0,size:16})):(t(),F(p(Se),{key:1,size:16}))],8,Jn)]),le(e("div",Wn,[v.value||n.value?(t(),s("div",Gn,[e("div",Xn,[e("h4",null,f(Z("request-body")?"Request Body Schema":"Example Request Body"),1),e("div",Qn,[e("button",{onClick:o[4]||(o[4]=a=>re("request-body")),class:L([{active:!Z("request-body")},"toggle-btn"])}," Example ",2),e("button",{onClick:o[5]||(o[5]=a=>re("request-body")),class:L([{active:Z("request-body")},"toggle-btn"])}," Schema ",2)])]),e("div",Yn,[Z("request-body")&&U.value?(t(),s("div",Zn,[e("pre",eo,f(U.value),1)])):Z("request-body")?u("",!0):(t(),s("div",to,[P(p(ge),{"model-value":v.value,mode:"text",readOnly:!0,mainMenuBar:!1,navigationBar:!1,statusBar:!1,darkTheme:!0},null,8,["model-value"])]))])])):u("",!0),D.value.length>0?(t(),s("div",so,[o[9]||(o[9]=e("h4",null,"Response Codes",-1)),e("div",no,[(t(!0),s(ne,null,oe(D.value,a=>(t(),s("div",{key:a.code,class:"response-code-item"},[e("div",oo,[e("div",{class:L(["response-code-left",{success:a.isSuccess,error:!a.isSuccess}])},[e("span",ao,f(a.code),1)],2),e("div",lo,[a.description?(t(),s("div",io,f(a.description),1)):u("",!0),e("div",ro,[e("button",{onClick:C=>re(`response-${a.code}`),class:L([{active:!Z(`response-${a.code}`)},"toggle-btn small"])}," Example ",10,co),e("button",{onClick:C=>re(`response-${a.code}`),class:L([{active:Z(`response-${a.code}`)},"toggle-btn small"])}," Schema ",10,uo)])])]),(Z(`response-${a.code}`)?a.schema:a.example)?(t(),s("div",ho,[Z(`response-${a.code}`)&&a.schema?(t(),s("div",vo,[e("pre",po,f(Q(a.schema)),1)])):Z(`response-${a.code}`)?u("",!0):(t(),s("div",mo,[P(p(ge),{"model-value":a.example,mode:"text",readOnly:!0,mainMenuBar:!1,navigationBar:!1,statusBar:!1,darkTheme:!0},null,8,["model-value"])]))])):(t(),s("div",yo," No "+f(Z(`response-${a.code}`)?"schema":"example")+" available ",1))]))),128))])])):u("",!0),!v.value&&D.value.length===0?(t(),s("div",fo," No examples available for this endpoint. ")):u("",!0),j.value.length>0?(t(),s("div",ko,[o[10]||(o[10]=e("h4",null,"Referenced Schemas",-1)),e("div",_o,[(t(!0),s(ne,null,oe(j.value,a=>(t(),s("div",{key:a.name,class:"schema-reference-item"},[e("div",{class:"schema-reference-header",onClick:C=>Be(a.name)},[e("span",go,[M.value.has(a.name)?(t(),F(p(qe),{key:0,size:14})):(t(),F(p(Se),{key:1,size:14}))]),e("span",bo,f(a.name),1)],8,So),M.value.has(a.name)?(t(),s("div",$o,[e("div",Co,[e("pre",wo,f(p(k).formatSchemaForDisplay(a.schema,w.value)),1)])])):u("",!0)]))),128))])])):u("",!0)],512),[[Le,!J.value]])],6)])):(t(),s("main",Ao,[e("div",xo,[e("div",Eo,[e("div",qo,[P(p(Fe),{size:64})]),o[14]||(o[14]=e("h1",{class:"welcome-title"},"Welcome to OpenAPI Studio",-1)),g.value?(t(),s("p",Ho," Select an endpoint from the sidebar to start testing your API endpoints. ")):u("",!0),P(pn),g.value?(t(),s("div",Bo,[e("div",Po,[P(p(Ue),{size:20,class:"tip-icon"}),o[11]||(o[11]=e("span",null,"Browse available endpoints in the sidebar",-1))]),e("div",Ro,[P(p(ct),{size:20,class:"tip-icon"}),o[12]||(o[12]=e("span",null,"Test requests with custom parameters",-1))]),e("div",Mo,[P(p(at),{size:20,class:"tip-icon"}),o[13]||(o[13]=e("span",null,"View responses and schema documentation",-1))])])):u("",!0)])]),e("footer",zo,[e("p",null,"© "+f(new Date().getFullYear())+" Gamja Labs",1)])]))])]))}});export{Ko as default};
@@ -1 +1 @@
1
- .service-host-dropdown-wrapper[data-v-2eb02fe1]{position:relative;margin-left:auto}.service-host-dropdown[data-v-2eb02fe1]{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.875rem;min-width:200px;height:2rem;cursor:pointer;transition:border-color .2s}.service-host-dropdown[data-v-2eb02fe1]:hover{border-color:hsl(var(--ring))}.service-host-dropdown .service-host-selected[data-v-2eb02fe1]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-host-dropdown .service-host-placeholder[data-v-2eb02fe1]{flex:1;color:hsl(var(--muted-foreground))}.service-host-dropdown .service-host-chevron[data-v-2eb02fe1]{color:hsl(var(--muted-foreground));transition:transform .2s;flex-shrink:0}.service-host-dropdown-menu[data-v-2eb02fe1]{position:absolute;top:calc(100% + .25rem);right:0;min-width:300px;max-width:400px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:1000;max-height:400px;overflow-y:auto;overflow-x:hidden}.service-host-list[data-v-2eb02fe1]{padding:.5rem;min-height:2rem}.service-host-empty-state[data-v-2eb02fe1]{padding:1.5rem .5rem;text-align:center;color:hsl(var(--muted-foreground))}.service-host-empty-text[data-v-2eb02fe1]{font-size:.875rem;font-weight:500;margin:0 0 .25rem;color:hsl(var(--foreground))}.service-host-empty-hint[data-v-2eb02fe1]{font-size:.75rem;margin:0;color:hsl(var(--muted-foreground))}.service-host-item[data-v-2eb02fe1]{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background-color .2s}.service-host-item[data-v-2eb02fe1]:hover{background:hsl(var(--muted)/.5)}.service-host-item.selected[data-v-2eb02fe1]{background:hsl(var(--primary)/.1)}.service-host-item .service-host-item-content[data-v-2eb02fe1]{flex:1;min-width:0}.service-host-item .service-host-item-label[data-v-2eb02fe1]{font-size:.875rem;font-weight:500;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-host-item .service-host-item-url[data-v-2eb02fe1]{font-size:.75rem;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-host-item .service-host-item-remove[data-v-2eb02fe1]{padding:.25rem;border:none;background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;border-radius:calc(var(--radius) - 2px);display:flex;align-items:center;justify-content:center;transition:all .2s}.service-host-item .service-host-item-remove[data-v-2eb02fe1]:hover{background:hsl(var(--destructive)/.1);color:hsl(var(--destructive))}.service-host-add-section[data-v-2eb02fe1]{border-top:1px solid hsl(var(--border));padding:.5rem}.service-host-add-btn[data-v-2eb02fe1]{width:100%;padding:.5rem;border:1px dashed hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:transparent;color:hsl(var(--foreground));font-size:.875rem;cursor:pointer;transition:all .2s}.service-host-add-btn[data-v-2eb02fe1]:hover{border-color:hsl(var(--ring));background:hsl(var(--muted)/.3)}.service-host-add-form[data-v-2eb02fe1]{display:flex;flex-direction:column;gap:.5rem}.service-host-add-input[data-v-2eb02fe1]{padding:.5rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.875rem;outline:none;transition:border-color .2s}.service-host-add-input[data-v-2eb02fe1]:focus{border-color:hsl(var(--ring))}.service-host-add-input[data-v-2eb02fe1]::placeholder{color:hsl(var(--muted-foreground))}.service-host-add-actions[data-v-2eb02fe1]{display:flex;gap:.5rem;justify-content:flex-end}.service-host-add-submit[data-v-2eb02fe1],.service-host-add-cancel[data-v-2eb02fe1]{padding:.375rem .75rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);font-size:.875rem;cursor:pointer;transition:all .2s}.service-host-add-submit[data-v-2eb02fe1]{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.service-host-add-submit[data-v-2eb02fe1]:hover:not(:disabled){opacity:.9}.service-host-add-submit[data-v-2eb02fe1]:disabled{opacity:.5;cursor:not-allowed}.service-host-add-cancel[data-v-2eb02fe1]{background:transparent;color:hsl(var(--foreground))}.service-host-add-cancel[data-v-2eb02fe1]:hover{background:hsl(var(--muted)/.3)}.endpoint-tester[data-v-cab1bf2e]{flex:1;padding:1.5rem;overflow-y:auto;overflow-x:hidden;min-height:0;background-color:hsl(var(--background));background-image:linear-gradient(hsl(var(--border)/.3) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--border)/.3) 1px,transparent 1px);background-size:50px 50px;background-position:0 0,0 0;border-right:1px solid hsl(var(--border));display:flex;flex-direction:column}.endpoint-header[data-v-cab1bf2e]{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid hsl(var(--border))}.endpoint-title[data-v-cab1bf2e]{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.method-badge[data-v-cab1bf2e]{display:inline-flex;align-items:center;justify-content:center;padding:.125rem .375rem;border-radius:3px;color:#fff;font-weight:600;font-size:.625rem;text-transform:uppercase;flex-shrink:0;line-height:1.2;width:3.5rem;min-width:3.5rem;max-width:3.5rem;text-align:center;box-sizing:border-box}.method-badge.large[data-v-cab1bf2e]{font-size:.875rem;padding:.375rem .75rem;width:auto;min-width:auto;max-width:none}.endpoint-path[data-v-cab1bf2e]{font-family:Chivo Mono Variable,monospace;font-size:.75rem;color:hsl(var(--foreground));font-weight:500;flex:1 1 auto;min-width:0;line-height:1.3;word-break:break-all;overflow-wrap:break-word}.security-indicator-large[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));flex-shrink:0;opacity:.8}.endpoint-info[data-v-cab1bf2e]{margin-top:.75rem}.endpoint-summary-text[data-v-cab1bf2e]{color:hsl(var(--foreground));margin-top:0;margin-bottom:.5rem;line-height:1.5;font-size:1rem;font-weight:500}.endpoint-description[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));margin-top:0;margin-bottom:0;line-height:1.6;font-size:.9375rem}.security-schemes-wrapper[data-v-cab1bf2e]{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid hsl(var(--border))}.security-schemes-title[data-v-cab1bf2e]{font-size:.875rem;font-weight:600;color:hsl(var(--foreground));margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.security-schemes-section[data-v-cab1bf2e]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.security-scheme-card[data-v-cab1bf2e]{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background-color:hsl(var(--muted)/.5);border:1px solid hsl(var(--muted-foreground)/.2);border-radius:calc(var(--radius) - 2px);font-size:.6875rem;transition:all .2s ease;cursor:pointer}.security-scheme-card[data-v-cab1bf2e]:hover{background-color:hsl(var(--muted)/.7);border-color:hsl(var(--muted-foreground)/.3)}.security-scheme-card.selected[data-v-cab1bf2e]{border-color:hsl(var(--primary));background-color:hsla(var(--primary)/.1);box-shadow:0 0 0 2px hsla(var(--primary)/.2)}.security-scheme-card.selected .security-card-icon[data-v-cab1bf2e]{color:hsl(var(--primary));opacity:1}.security-scheme-card.selected .scheme-name[data-v-cab1bf2e]{color:hsl(var(--primary))}.security-card-icon[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));flex-shrink:0;opacity:.8;transition:all .2s ease}.scheme-name[data-v-cab1bf2e]{font-weight:500;color:hsl(var(--foreground));font-family:Chivo Mono Variable,monospace;font-size:.6875rem;transition:color .2s ease}.request-section[data-v-cab1bf2e]{margin-bottom:1.5rem;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem;background:hsl(var(--card));box-shadow:0 1px 2px #0000001a}.request-section h3[data-v-cab1bf2e]{font-size:1.125rem;margin-bottom:1.25rem;margin-top:0;font-weight:600;color:hsl(var(--foreground))}.params-section[data-v-cab1bf2e]{margin-bottom:1.25rem}.params-section[data-v-cab1bf2e]:last-child{margin-bottom:0}.params-section h4[data-v-cab1bf2e]{font-size:.75rem;margin-bottom:.75rem;margin-top:0;font-weight:600;color:hsl(var(--foreground));text-transform:uppercase;letter-spacing:.05em}.params-list[data-v-cab1bf2e]{display:flex;flex-direction:column;gap:.75rem}.param-item[data-v-cab1bf2e]{display:flex;flex-direction:row;align-items:center;gap:.75rem}.param-item dt[data-v-cab1bf2e]{font-size:.875rem;color:hsl(var(--foreground));margin:0;flex:1}.param-item dd[data-v-cab1bf2e]{margin:0;flex:1}.param-item .param-name[data-v-cab1bf2e]{font-weight:500;font-family:Chivo Mono Variable,monospace}.param-item .required[data-v-cab1bf2e]{color:hsl(var(--destructive));margin-left:.25rem}.param-item .param-desc[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));font-weight:400}.param-item input[data-v-cab1bf2e]{width:100%;padding:.5rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--input));color:hsl(var(--foreground));font-family:Chivo Mono Variable,monospace;font-size:.875rem}.param-item input[data-v-cab1bf2e]:focus{outline:none;border-color:hsl(var(--ring))}.body-section[data-v-cab1bf2e]{margin-bottom:1.25rem}.body-section[data-v-cab1bf2e]:last-child{margin-bottom:0}.body-section h4[data-v-cab1bf2e]{font-size:.75rem;margin-bottom:0;margin-top:0;font-weight:600;color:hsl(var(--foreground));text-transform:uppercase;letter-spacing:.05em}.body-section-header[data-v-cab1bf2e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.view-toggle[data-v-cab1bf2e]{display:inline-flex;gap:0;background:transparent;border-radius:calc(var(--radius) - 2px);padding:0;border:1px solid hsl(var(--border));overflow:hidden}.toggle-btn[data-v-cab1bf2e]{padding:.375rem .75rem;background:transparent;border:none;border-radius:0;cursor:pointer;font-size:.75rem;font-weight:500;color:hsl(var(--muted-foreground));transition:all .2s ease;white-space:nowrap;border-right:1px solid hsl(var(--border))}.toggle-btn[data-v-cab1bf2e]:last-child{border-right:none}.toggle-btn[data-v-cab1bf2e]:hover{color:hsl(var(--foreground))}.toggle-btn.active[data-v-cab1bf2e]{background:hsl(var(--muted));color:hsl(var(--foreground))}.toggle-btn.small[data-v-cab1bf2e]{padding:.25rem .5rem;font-size:.6875rem}.schema-display[data-v-cab1bf2e]{border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;background:hsl(var(--input));max-height:400px;min-height:150px;overflow-y:auto;overflow-x:auto}.schema-text[data-v-cab1bf2e]{margin:0;padding:1rem;font-family:Chivo Mono Variable,monospace;font-size:.8125rem;line-height:1.8;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e]{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:auto;background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e] .jsoneditor{border:none;background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e] .jsoneditor-menu{background:hsl(var(--muted));border-bottom:none}.json-editor-wrapper[data-v-cab1bf2e] .jsoneditor-outer{background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e] .ace_editor{background:hsl(var(--input))!important;color:hsl(var(--foreground))!important}.json-editor-wrapper[data-v-cab1bf2e] .ace_gutter{background:hsl(var(--muted))!important}.send-button[data-v-cab1bf2e]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:hsl(var(--primary)/.9);color:hsl(var(--primary-foreground));border:1px solid hsl(var(--primary)/.3);border-radius:var(--radius);cursor:pointer;font-weight:600;font-size:.8125rem;letter-spacing:.025em;margin:1.5rem auto 0;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.send-button[data-v-cab1bf2e]:hover:not(:disabled){background:hsl(var(--primary)/1);border-color:hsl(var(--primary)/.5);box-shadow:0 6px 12px -2px #0006,0 4px 6px -1px #0000004d}.send-button[data-v-cab1bf2e]:active:not(:disabled){box-shadow:0 2px 4px -1px #0000004d,0 1px 2px -1px #0003}.send-button[data-v-cab1bf2e]:disabled{opacity:.6;cursor:not-allowed}.send-button-icon[data-v-cab1bf2e]{flex-shrink:0}.response-section[data-v-cab1bf2e]{margin-bottom:1.5rem}.response-section h3[data-v-cab1bf2e]{font-size:1.125rem;margin-bottom:1.25rem;margin-top:0;font-weight:600;color:hsl(var(--foreground))}.section-header[data-v-cab1bf2e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.section-header h3[data-v-cab1bf2e]{margin-bottom:0}.clear-history-btn[data-v-cab1bf2e]{padding:.375rem .75rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all .2s}.clear-history-btn[data-v-cab1bf2e]:hover{background:hsl(var(--accent));border-color:hsl(var(--accent))}.no-response[data-v-cab1bf2e]{padding:1.5rem;text-align:center;color:hsl(var(--muted-foreground));border:1px dashed hsl(var(--border));border-radius:var(--radius)}.request-history-list[data-v-cab1bf2e]{display:flex;flex-direction:column;gap:1rem}.history-item[data-v-cab1bf2e]{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));padding:1rem;margin-bottom:1rem;box-shadow:0 1px 2px #0000001a}.history-item[data-v-cab1bf2e]:last-child{margin-bottom:0}.history-item-header[data-v-cab1bf2e]{padding:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;border-bottom:1px solid hsl(var(--border));padding-bottom:.75rem;flex-wrap:wrap}.history-item-title[data-v-cab1bf2e]{display:flex;align-items:center;gap:.75rem;flex:1 1 0;min-width:200px;flex-wrap:nowrap}.history-url[data-v-cab1bf2e]{font-family:Chivo Mono Variable,monospace;font-size:.8125rem;color:hsl(var(--foreground));flex:1 1 auto;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-meta-group[data-v-cab1bf2e]{display:flex;align-items:center;gap:0;flex:0 0 auto;flex-wrap:wrap;min-width:fit-content}@media(max-width:640px){.history-meta-group[data-v-cab1bf2e]{width:100%;flex-direction:column;align-items:flex-start;gap:.5rem}}.history-auth-scheme[data-v-cab1bf2e]{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;color:hsl(var(--muted-foreground));white-space:nowrap;flex-shrink:0;padding-right:.75rem}@media(max-width:640px){.history-auth-scheme[data-v-cab1bf2e]{padding-right:0;padding-bottom:.5rem;border-bottom:1px solid hsl(var(--border));width:100%}}.history-timestamp[data-v-cab1bf2e]{font-size:.75rem;color:hsl(var(--muted-foreground));white-space:nowrap;flex-shrink:0;padding:0 .75rem;border-left:1px solid hsl(var(--border))}@media(max-width:640px){.history-timestamp[data-v-cab1bf2e]{padding:0;padding-bottom:.5rem;border-left:none;border-bottom:1px solid hsl(var(--border));width:100%}}.status-code[data-v-cab1bf2e]{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:calc(var(--radius) - 2px);font-weight:600;font-size:.75rem;white-space:nowrap;flex-shrink:0}.status-code.success[data-v-cab1bf2e]{background-color:#49cc901a;color:#49cc90;border:1px solid rgba(73,204,144,.2)}.status-code.error[data-v-cab1bf2e]{background-color:#f93e3e1a;color:#f93e3e;border:1px solid rgba(249,62,62,.2)}.status-code.redirect[data-v-cab1bf2e]{background-color:#ffc1071a;color:#ffc107;border:1px solid rgba(255,193,7,.2)}.status-code[data-v-cab1bf2e]:not(.success):not(.error):not(.redirect){background-color:hsl(var(--muted));color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border))}.history-curl-section[data-v-cab1bf2e]{margin-bottom:1rem;padding:.75rem;background:hsl(var(--input));border-radius:calc(var(--radius) - 2px)}.history-curl-section .curl-header[data-v-cab1bf2e]{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:.25rem;border-radius:calc(var(--radius) - 2px);transition:background-color .2s}.history-curl-section .curl-header[data-v-cab1bf2e]:hover{background:hsl(var(--muted))}.history-curl-section .curl-header .curl-header-left[data-v-cab1bf2e]{display:flex;align-items:center;gap:.5rem}.history-curl-section .curl-header .curl-toggle-icon[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));flex-shrink:0}.history-curl-section .curl-header h5[data-v-cab1bf2e]{font-size:.875rem;font-weight:600;margin:0}.history-curl-section .copy-curl-btn[data-v-cab1bf2e]{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-size:.875rem;transition:all .2s}.history-curl-section .copy-curl-btn[data-v-cab1bf2e]:hover{background:hsl(var(--accent));opacity:.9}.history-curl-section .curl-command[data-v-cab1bf2e]{padding:.75rem 0;overflow-x:auto}.history-curl-section .curl-command pre[data-v-cab1bf2e]{margin:0;font-family:Chivo Mono Variable,monospace;font-size:.8125rem;line-height:1.6;color:hsl(var(--foreground));white-space:pre-wrap;word-break:break-all}.history-request-body[data-v-cab1bf2e],.history-response[data-v-cab1bf2e],.history-error[data-v-cab1bf2e]{padding:.75rem 0;margin-bottom:1rem}.history-request-body[data-v-cab1bf2e]:last-child,.history-response[data-v-cab1bf2e]:last-child,.history-error[data-v-cab1bf2e]:last-child{margin-bottom:0}.history-request-body h5[data-v-cab1bf2e],.history-response h5[data-v-cab1bf2e],.history-error h5[data-v-cab1bf2e]{font-size:.75rem;font-weight:600;margin-bottom:.625rem;margin-top:0;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.history-request-body .json-editor-wrapper[data-v-cab1bf2e],.history-response .json-editor-wrapper[data-v-cab1bf2e],.history-error .json-editor-wrapper[data-v-cab1bf2e]{border:1px solid hsl(var(--border));max-height:60vh;background:hsl(var(--input));overflow:auto}.history-error .error-message[data-v-cab1bf2e]{color:hsl(var(--destructive));font-size:.875rem;padding:.5rem 0;margin:0}.app-footer[data-v-cab1bf2e]{margin-top:auto;text-align:center}.app-footer p[data-v-cab1bf2e]{margin:0;font-size:.875rem;color:hsl(var(--muted-foreground))}.auth-side-menu[data-v-b8c2be74]{position:fixed;top:0;right:0;width:400px;height:100vh;background:hsl(var(--card));border-left:1px solid hsl(var(--border));z-index:1000;display:flex;flex-direction:column;box-shadow:-2px 0 8px #0000004d}.auth-menu-header[data-v-b8c2be74]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid hsl(var(--border))}.auth-menu-header h2[data-v-b8c2be74]{margin:0;font-size:1.25rem;font-weight:600;color:hsl(var(--foreground))}.close-auth-menu[data-v-b8c2be74]{background:none;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-auth-menu[data-v-b8c2be74]:hover{color:hsl(var(--foreground))}.auth-menu-content[data-v-b8c2be74]{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.auth-scheme[data-v-b8c2be74]{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem;transition:all .2s;box-shadow:0 1px 2px #0000001a;cursor:pointer;position:relative}.auth-scheme[data-v-b8c2be74]:hover{box-shadow:0 2px 4px #00000026;border-color:hsl(var(--ring))}.auth-scheme.selected[data-v-b8c2be74]{border-color:hsl(var(--primary));background:hsla(var(--primary)/.1);box-shadow:0 0 0 2px hsla(var(--primary)/.2)}.auth-scheme.selected .auth-scheme-header[data-v-b8c2be74]{border-bottom-color:hsla(var(--primary)/.3)}.auth-scheme.selected .auth-scheme-header h3[data-v-b8c2be74]{color:hsl(var(--primary))}.auth-scheme.selected .auth-scheme-type[data-v-b8c2be74]{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 0 0 1px hsla(var(--primary-foreground)/.2)}.auth-scheme.selected .auth-scheme-description[data-v-b8c2be74]{color:hsl(var(--muted-foreground))}.auth-scheme.selected[data-v-b8c2be74]:before{content:"";position:absolute;top:.75rem;right:.75rem;width:8px;height:8px;background:hsl(var(--primary));border-radius:50%}.auth-scheme-header[data-v-b8c2be74]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid hsl(var(--border))}.auth-scheme-header h3[data-v-b8c2be74]{font-size:1rem;font-weight:600;margin:0;color:hsl(var(--foreground))}.auth-scheme-type[data-v-b8c2be74]{font-size:.75rem;padding:.375rem .625rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-radius:calc(var(--radius) - 4px);text-transform:uppercase;font-weight:600;letter-spacing:.025em}.auth-scheme-description[data-v-b8c2be74]{font-size:.875rem;color:hsl(var(--muted-foreground));margin-bottom:1rem;margin-top:.5rem;line-height:1.5}.auth-scheme-fields[data-v-b8c2be74]{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.auth-scheme-fields label[data-v-b8c2be74]{display:flex;flex-direction:column;gap:.5rem}.auth-scheme-fields label span[data-v-b8c2be74]{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.auth-scheme-fields label .field-location[data-v-b8c2be74]{font-size:.75rem;color:hsl(var(--muted-foreground));font-weight:400}.auth-input[data-v-b8c2be74]{padding:.5rem .75rem;background:hsl(var(--input));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);font-size:.875rem;transition:border-color .2s}.auth-input[data-v-b8c2be74]:focus{outline:none;border-color:hsl(var(--ring))}.auth-input[data-v-b8c2be74]::placeholder{color:hsl(var(--muted-foreground))}.clear-credential-btn[data-v-b8c2be74]{padding:.5rem 1rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;align-self:flex-start;margin-top:.25rem}.clear-credential-btn[data-v-b8c2be74]:hover{background:hsl(var(--accent));opacity:.9}.save-button[data-v-b8c2be74]{padding:.75rem 1.5rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;border-radius:calc(var(--radius) - 2px);font-weight:500;cursor:pointer;transition:opacity .2s;align-self:flex-start;margin-top:.25rem}.save-button[data-v-b8c2be74]:hover{opacity:.9}.clerk-key-card[data-v-b8c2be74]{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem;margin-top:auto;border-top:2px solid hsl(var(--border));border-top-left-radius:0;border-top-right-radius:0;box-shadow:none}.clerk-key-card[data-v-b8c2be74]:hover{box-shadow:none;border-color:hsl(var(--border))}.clerk-key-header[data-v-b8c2be74]{margin-bottom:.5rem}.clerk-key-header h3[data-v-b8c2be74]{font-size:.875rem;font-weight:600;margin:0;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.clerk-key-description[data-v-b8c2be74]{font-size:.8125rem;color:hsl(var(--muted-foreground));margin-bottom:1rem;line-height:1.4}.clerk-key-fields[data-v-b8c2be74]{display:flex;flex-direction:column;gap:.75rem}.clerk-key-fields label[data-v-b8c2be74]{display:flex;flex-direction:column;gap:.375rem}.clerk-key-fields label span[data-v-b8c2be74]{font-size:.8125rem;color:hsl(var(--muted-foreground));font-weight:500}.clerk-key-input[data-v-b8c2be74]{width:100%;padding:.5rem .75rem;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));font-family:Chivo Mono Variable,monospace;font-size:.8125rem;transition:all .2s}.clerk-key-input[data-v-b8c2be74]:focus:not(:disabled){outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsla(var(--ring)/.2)}.clerk-key-input[data-v-b8c2be74]:disabled{background:hsl(var(--muted));color:hsl(var(--muted-foreground));cursor:not-allowed;opacity:.7}.clerk-key-input[data-v-b8c2be74]::placeholder{color:hsl(var(--muted-foreground))}.anonymous-option .auth-scheme-header h3[data-v-b8c2be74]{display:flex;align-items:center;gap:.5rem}.welcome-description[data-v-d0cf2fc7]{font-size:1.125rem;color:hsl(var(--muted-foreground));margin:0 0 2.5rem;line-height:1.6}.service-host-input-section[data-v-d0cf2fc7]{margin:2rem 0}.service-host-direct-form[data-v-d0cf2fc7]{margin-top:1.5rem}.service-host-direct-form .service-host-input-wrapper[data-v-d0cf2fc7]{display:flex;flex-direction:column;gap:.75rem;align-items:stretch;justify-content:center;max-width:500px;margin:0 auto}.service-host-input-wrapper[data-v-d0cf2fc7]{display:flex;gap:.75rem;align-items:center;justify-content:center;margin-top:1.5rem}.service-host-input[data-v-d0cf2fc7]{padding:.75rem 1rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:1rem;min-width:300px;transition:border-color .2s}.service-host-input[data-v-d0cf2fc7]:hover{border-color:hsl(var(--accent))}.service-host-input[data-v-d0cf2fc7]:focus{outline:none;border-color:hsl(var(--ring))}.service-host-input[data-v-d0cf2fc7]::placeholder{color:hsl(var(--muted-foreground))}.service-host-submit-btn[data-v-d0cf2fc7]{padding:.75rem 1.5rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.service-host-submit-btn[data-v-d0cf2fc7]:hover:not(:disabled){background:hsl(var(--primary)/.9)}.service-host-submit-btn[data-v-d0cf2fc7]:disabled{opacity:.5;cursor:not-allowed}.service-host-direct-form .service-host-submit-btn[data-v-d0cf2fc7]{width:100%}.openapi-test{height:100vh;display:flex;flex-direction:column;background:hsl(var(--background));color:hsl(var(--foreground));overflow:hidden}.test-header{border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));flex-shrink:0;z-index:100}.app-footer{margin-top:auto;text-align:center}.app-footer p{margin:0;font-size:.875rem;color:hsl(var(--muted-foreground))}.header-content{max-width:100%;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}.header-title-section{display:flex;flex-direction:row;align-items:center;gap:.75rem;flex:1;min-width:0}.title-section-content{display:flex;flex-direction:column;gap:.25rem;min-width:0}.title-row{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.logo{font-size:1.5rem;font-weight:700;margin:0;line-height:1.2}.api-version{font-size:.875rem;color:hsl(var(--muted-foreground));font-weight:500}.api-description{font-size:.75rem;color:hsl(var(--muted-foreground));margin:0;line-height:1.4;max-width:600px}.header-title-action{display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:1.5rem}.refresh-spec-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:hsl(var(--foreground));cursor:pointer;padding:.5rem;border-radius:calc(var(--radius) - 2px);transition:color .2s,opacity .2s,background-color .2s}.refresh-spec-btn:hover:not(:disabled){background:hsl(var(--muted)/.3);color:hsl(var(--primary))}.refresh-spec-btn:disabled{opacity:.5;cursor:not-allowed}.refresh-spec-btn .spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.openapi-spec-link,.github-link{display:flex;align-items:center;justify-content:center;color:hsl(var(--foreground));text-decoration:none;transition:color .2s,opacity .2s;padding:.5rem;border-radius:calc(var(--radius) - 2px)}.openapi-spec-link:hover,.github-link:hover{color:hsl(var(--primary));opacity:.8}.openapi-spec-link:focus,.github-link:focus{outline:none;color:hsl(var(--primary))}.auth-section{display:flex;align-items:center}.sign-in-btn{padding:.5rem 1rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;font-weight:500;transition:opacity .2s}.sign-in-btn:hover{opacity:.9}.user-section{display:flex;align-items:center}.auth-menu-toggle{padding:.5rem 1rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-weight:500;font-size:.875rem;transition:all .2s;display:flex;align-items:center;gap:.5rem}.auth-menu-toggle:hover{background:hsl(var(--accent));opacity:.9}.auth-menu-toggle.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.auth-menu-toggle.has-selection{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsla(var(--primary)/.2)}.auth-menu-toggle.has-selection svg{color:hsl(var(--primary-foreground))}.test-container{display:flex;flex:1;overflow:hidden;min-height:0}.endpoints-sidebar{background:hsl(var(--card));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width .3s ease}.endpoints-sidebar.resizing{transition:none}.endpoints-sidebar .sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;flex-shrink:0}.endpoints-sidebar .sidebar-header h2{font-size:1rem;margin:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.endpoints-sidebar.collapsed .sidebar-header{flex-direction:column;gap:.5rem;padding:1rem .5rem}.endpoints-sidebar.collapsed .sidebar-header h2{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg)}.sidebar-toggle{padding:.25rem .5rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;line-height:1;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-toggle:hover{background:hsl(var(--accent));opacity:.9}.sidebar-toggle:active{transform:scale(.95)}.sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding-left:1rem;padding-bottom:1rem}.resize-handle{width:8px;background:hsl(var(--card));cursor:col-resize;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;align-items:stretch}.resize-handle:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:8px;top:0;bottom:0;cursor:col-resize;transition:background-color .2s}.resize-handle:hover:before{background:hsl(var(--accent))}.resize-handle.resizing:before{background:hsl(var(--accent))}.resize-handle-endpoints{border-right:1px solid hsl(var(--border))}.resize-handle-examples{border-left:1px solid hsl(var(--border))}.loading,.error{padding:.75rem;text-align:center;color:hsl(var(--muted-foreground));font-size:.875rem}.error{color:hsl(var(--destructive))}.endpoints-groups{display:flex;flex-direction:column;gap:.5rem;padding-right:1rem}.endpoint-group{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);overflow:hidden}.group-header{padding:.5rem .75rem;background:hsl(var(--muted));cursor:pointer;display:flex;align-items:center;gap:.375rem;transition:background .2s;-webkit-user-select:none;user-select:none}.group-header:hover{background:hsl(var(--accent))}.group-name{font-weight:600;font-size:.8125rem;color:hsl(var(--foreground));flex:1}.group-count{font-size:.6875rem;color:hsl(var(--muted-foreground))}.group-toggle{color:hsl(var(--muted-foreground));width:.875rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.group-endpoints{display:flex;flex-direction:column;gap:.25rem;padding:.375rem;background:hsl(var(--card));min-width:0}.endpoint-item{padding:.375rem .5rem;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem;overflow:hidden}.endpoint-item:hover,.endpoint-item.active{background:hsl(var(--accent))}.method-badge{display:inline-flex;align-items:center;justify-content:center;padding:.125rem .375rem;border-radius:3px;color:#fff;font-weight:600;font-size:.625rem;text-transform:uppercase;flex-shrink:0;line-height:1.2;width:3.5rem;min-width:3.5rem;max-width:3.5rem;text-align:center;box-sizing:border-box}.endpoint-path{font-family:Chivo Mono Variable,monospace;font-size:.75rem;color:hsl(var(--foreground));font-weight:500;flex:1;line-height:1.3;white-space:nowrap;overflow:visible}.endpoint-summary{font-size:.6875rem;color:hsl(var(--muted-foreground));line-height:1.3;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:auto}.security-indicator{color:hsl(var(--muted-foreground));flex-shrink:0;opacity:.7}.endpoint-content{display:flex;flex:1;overflow:hidden;min-height:0}.endpoint-tester.empty{flex:1;padding:1.5rem;overflow-y:auto;overflow-x:hidden;min-height:0;background-color:hsl(var(--background));background-image:linear-gradient(hsl(var(--border)/.3) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--border)/.3) 1px,transparent 1px);background-size:50px 50px;background-position:0 0,0 0;border-right:1px solid hsl(var(--border));display:flex;flex-direction:column;align-items:center;justify-content:center}.examples-sidebar{border-right:1px solid hsl(var(--border));background:hsl(var(--card));display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;overflow-x:hidden;min-height:0;transition:width .3s ease}.examples-sidebar.resizing{transition:none}.examples-sidebar.collapsed{padding:1.5rem .5rem}.examples-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:1rem}.examples-header h3{font-size:1rem;margin-bottom:0;margin-top:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.examples-sidebar.collapsed .examples-header{flex-direction:column;gap:.5rem;margin-bottom:0}.examples-sidebar.collapsed .examples-header h3{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg)}.examples-toggle{padding:.25rem .5rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;line-height:1;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.examples-toggle:hover{background:hsl(var(--accent));opacity:.9}.examples-toggle:active{transform:scale(.95)}.examples-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding-left:1rem}.view-toggle{display:inline-flex;gap:0;background:transparent;border-radius:calc(var(--radius) - 2px);padding:0;border:1px solid hsl(var(--border));overflow:hidden}.toggle-btn{padding:.375rem .75rem;background:transparent;border:none;border-radius:0;cursor:pointer;font-size:.75rem;font-weight:500;color:hsl(var(--muted-foreground));transition:all .2s ease;white-space:nowrap;border-right:1px solid hsl(var(--border))}.toggle-btn:last-child{border-right:none}.toggle-btn:hover{color:hsl(var(--foreground))}.toggle-btn.active{background:hsl(var(--muted));color:hsl(var(--foreground))}.toggle-btn.small{padding:.25rem .5rem;font-size:.6875rem}.example-section{padding-right:1rem;margin-bottom:1.5rem;flex-shrink:0}.example-section h4{font-size:.75rem;margin-bottom:.75rem;margin-top:0;font-weight:600;color:hsl(var(--foreground));text-transform:uppercase;letter-spacing:.05em}.example-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.example-section-header h4{margin-bottom:0}.example-content{border:none;border-radius:var(--radius);overflow:hidden;background:hsl(var(--input));box-shadow:none}.example-content pre{margin:0;padding:1rem;font-family:Chivo Mono Variable,monospace;font-size:.875rem;white-space:pre-wrap;word-wrap:break-word;overflow-x:auto;max-height:400px;overflow-y:auto}.example-content .json-editor-wrapper{border-top-left-radius:0;border-top-right-radius:0;border:none;box-shadow:none}.example-content .schema-display{border:none;box-shadow:none;max-height:400px;min-height:150px;overflow-y:auto;overflow-x:auto;background:hsl(var(--input))}.example-content .schema-text{margin:0;padding:1rem;font-family:Chivo Mono Variable,monospace;font-size:.8125rem;line-height:1.8;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input));border-radius:calc(var(--radius) - 2px)}.no-examples{padding:1.5rem;text-align:center;color:hsl(var(--muted-foreground));border:1px dashed hsl(var(--border));border-radius:var(--radius);font-size:.875rem}.response-codes-list{display:flex;flex-direction:column;gap:.75rem}.response-code-item{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);overflow:hidden;background:hsl(var(--card));box-shadow:0 1px 2px #0000000d}.response-code-item .example-content{border:none;border-radius:0;box-shadow:none;margin-top:0;border-top:1px solid hsl(var(--border))}.response-code-item .example-content pre{max-height:300px}.response-code-item .example-content .json-editor-wrapper{border:none;box-shadow:none}.response-code-item .example-content .schema-display{border:none;box-shadow:none;max-height:300px;min-height:100px;overflow-y:auto;overflow-x:auto;background:hsl(var(--input))}.response-code-item .example-content .schema-text{margin:0;padding:.75rem;font-family:Chivo Mono Variable,monospace;font-size:.75rem;line-height:1.7;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input))}.response-code-header{display:flex;border-bottom:1px solid hsl(var(--border));min-height:0}.response-code-left{width:4rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.625rem .5rem;background:hsl(var(--muted)/.3);border-right:1px solid hsl(var(--border))}.response-code-left.success{background:#16a2491a;border-right-color:#16a24933}.response-code-left.error{background:#ef43431a;border-right-color:#ef434333}.response-code-number{font-weight:600;font-size:.75rem;font-family:Chivo Mono Variable,monospace;text-align:center;padding:.3125rem .5rem;border-radius:calc(var(--radius) - 4px);background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));line-height:1.2;width:100%}.response-code-left.success .response-code-number{background:#16a24926;color:#16a249;border-color:#16a2494d}.response-code-left.error .response-code-number{background:#ef434326;color:#ef4343;border-color:#ef43434d}.response-code-right{flex:1;display:flex;flex-direction:column;gap:.5rem;padding:.625rem .875rem;background:hsl(var(--card));min-width:0}.response-code-description{font-size:.8125rem;color:hsl(var(--muted-foreground));line-height:1.5;word-wrap:break-word;white-space:pre-wrap;display:block}.response-code-right .view-toggle{align-self:flex-end}.no-example{padding:.75rem;text-align:center;color:hsl(var(--muted-foreground));font-size:.8125rem;font-style:italic}.schema-references-list{display:flex;flex-direction:column;gap:1rem}.schema-reference-item{border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;background:hsl(var(--card))}.schema-reference-item .example-content{border:none;border-radius:0;box-shadow:none;margin-top:0}.schema-reference-item .example-content .schema-display{border:none;box-shadow:none;max-height:300px;min-height:100px;overflow-y:auto;overflow-x:auto;background:hsl(var(--input))}.schema-reference-item .example-content .schema-text{margin:0;padding:.875rem;font-family:Chivo Mono Variable,monospace;font-size:.75rem;line-height:1.7;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input))}.schema-reference-header{padding:.75rem 1rem;background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border));display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:background .2s;-webkit-user-select:none;user-select:none}.schema-reference-header:hover{background:hsl(var(--accent))}.schema-reference-toggle{color:hsl(var(--muted-foreground));width:.875rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.schema-reference-name{font-weight:700;font-size:.875rem;font-family:Chivo Mono Variable,monospace;color:hsl(var(--foreground));flex:1}.empty-state{display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.welcome-content{max-width:600px;text-align:center;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.welcome-icon{margin-bottom:1.5rem;display:flex;justify-content:center;color:hsl(var(--foreground));opacity:.9}.welcome-title{font-size:2rem;font-weight:600;color:hsl(var(--foreground));margin:0 0 1rem;letter-spacing:-.02em}.welcome-description{font-size:1.125rem;color:hsl(var(--muted-foreground));margin:0 0 2.5rem;line-height:1.6}.welcome-tips{display:flex;flex-direction:column;gap:1rem;margin-top:2rem;text-align:left}.tip-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:6px;color:hsl(var(--foreground));font-size:.9375rem;cursor:default;-webkit-user-select:none;user-select:none}.tip-icon{flex-shrink:0;color:hsl(var(--muted-foreground))}.json-editor-wrapper{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:auto;background:hsl(var(--input))}.json-editor-wrapper :deep(.jsoneditor){border:none;background:hsl(var(--input))}.json-editor-wrapper :deep(.jsoneditor-menu){background:hsl(var(--muted));border-bottom:none}.json-editor-wrapper :deep(.jsoneditor-outer){background:hsl(var(--input))}.json-editor-wrapper :deep(.ace_editor){background:hsl(var(--input))!important;color:hsl(var(--foreground))!important}.json-editor-wrapper :deep(.ace_gutter){background:hsl(var(--muted))!important}
1
+ .service-host-dropdown-wrapper[data-v-2eb02fe1]{position:relative;margin-left:auto}.service-host-dropdown[data-v-2eb02fe1]{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.875rem;min-width:200px;height:2rem;cursor:pointer;transition:border-color .2s}.service-host-dropdown[data-v-2eb02fe1]:hover{border-color:hsl(var(--ring))}.service-host-dropdown .service-host-selected[data-v-2eb02fe1]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-host-dropdown .service-host-placeholder[data-v-2eb02fe1]{flex:1;color:hsl(var(--muted-foreground))}.service-host-dropdown .service-host-chevron[data-v-2eb02fe1]{color:hsl(var(--muted-foreground));transition:transform .2s;flex-shrink:0}.service-host-dropdown-menu[data-v-2eb02fe1]{position:absolute;top:calc(100% + .25rem);right:0;min-width:300px;max-width:400px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:1000;max-height:400px;overflow-y:auto;overflow-x:hidden}.service-host-list[data-v-2eb02fe1]{padding:.5rem;min-height:2rem}.service-host-empty-state[data-v-2eb02fe1]{padding:1.5rem .5rem;text-align:center;color:hsl(var(--muted-foreground))}.service-host-empty-text[data-v-2eb02fe1]{font-size:.875rem;font-weight:500;margin:0 0 .25rem;color:hsl(var(--foreground))}.service-host-empty-hint[data-v-2eb02fe1]{font-size:.75rem;margin:0;color:hsl(var(--muted-foreground))}.service-host-item[data-v-2eb02fe1]{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background-color .2s}.service-host-item[data-v-2eb02fe1]:hover{background:hsl(var(--muted)/.5)}.service-host-item.selected[data-v-2eb02fe1]{background:hsl(var(--primary)/.1)}.service-host-item .service-host-item-content[data-v-2eb02fe1]{flex:1;min-width:0}.service-host-item .service-host-item-label[data-v-2eb02fe1]{font-size:.875rem;font-weight:500;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-host-item .service-host-item-url[data-v-2eb02fe1]{font-size:.75rem;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-host-item .service-host-item-remove[data-v-2eb02fe1]{padding:.25rem;border:none;background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;border-radius:calc(var(--radius) - 2px);display:flex;align-items:center;justify-content:center;transition:all .2s}.service-host-item .service-host-item-remove[data-v-2eb02fe1]:hover{background:hsl(var(--destructive)/.1);color:hsl(var(--destructive))}.service-host-add-section[data-v-2eb02fe1]{border-top:1px solid hsl(var(--border));padding:.5rem}.service-host-add-btn[data-v-2eb02fe1]{width:100%;padding:.5rem;border:1px dashed hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:transparent;color:hsl(var(--foreground));font-size:.875rem;cursor:pointer;transition:all .2s}.service-host-add-btn[data-v-2eb02fe1]:hover{border-color:hsl(var(--ring));background:hsl(var(--muted)/.3)}.service-host-add-form[data-v-2eb02fe1]{display:flex;flex-direction:column;gap:.5rem}.service-host-add-input[data-v-2eb02fe1]{padding:.5rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));font-size:.875rem;outline:none;transition:border-color .2s}.service-host-add-input[data-v-2eb02fe1]:focus{border-color:hsl(var(--ring))}.service-host-add-input[data-v-2eb02fe1]::placeholder{color:hsl(var(--muted-foreground))}.service-host-add-actions[data-v-2eb02fe1]{display:flex;gap:.5rem;justify-content:flex-end}.service-host-add-submit[data-v-2eb02fe1],.service-host-add-cancel[data-v-2eb02fe1]{padding:.375rem .75rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);font-size:.875rem;cursor:pointer;transition:all .2s}.service-host-add-submit[data-v-2eb02fe1]{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.service-host-add-submit[data-v-2eb02fe1]:hover:not(:disabled){opacity:.9}.service-host-add-submit[data-v-2eb02fe1]:disabled{opacity:.5;cursor:not-allowed}.service-host-add-cancel[data-v-2eb02fe1]{background:transparent;color:hsl(var(--foreground))}.service-host-add-cancel[data-v-2eb02fe1]:hover{background:hsl(var(--muted)/.3)}.endpoint-tester[data-v-cab1bf2e]{flex:1;padding:1.5rem;overflow-y:auto;overflow-x:hidden;min-height:0;background-color:hsl(var(--background));background-image:linear-gradient(hsl(var(--border)/.3) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--border)/.3) 1px,transparent 1px);background-size:50px 50px;background-position:0 0,0 0;border-right:1px solid hsl(var(--border));display:flex;flex-direction:column}.endpoint-header[data-v-cab1bf2e]{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid hsl(var(--border))}.endpoint-title[data-v-cab1bf2e]{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.method-badge[data-v-cab1bf2e]{display:inline-flex;align-items:center;justify-content:center;padding:.125rem .375rem;border-radius:3px;color:#fff;font-weight:600;font-size:.625rem;text-transform:uppercase;flex-shrink:0;line-height:1.2;width:3.5rem;min-width:3.5rem;max-width:3.5rem;text-align:center;box-sizing:border-box}.method-badge.large[data-v-cab1bf2e]{font-size:.875rem;padding:.375rem .75rem;width:auto;min-width:auto;max-width:none}.endpoint-path[data-v-cab1bf2e]{font-family:Chivo Mono Variable,monospace;font-size:.75rem;color:hsl(var(--foreground));font-weight:500;flex:1 1 auto;min-width:0;line-height:1.3;word-break:break-all;overflow-wrap:break-word}.security-indicator-large[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));flex-shrink:0;opacity:.8}.endpoint-info[data-v-cab1bf2e]{margin-top:.75rem}.endpoint-summary-text[data-v-cab1bf2e]{color:hsl(var(--foreground));margin-top:0;margin-bottom:.5rem;line-height:1.5;font-size:1rem;font-weight:500}.endpoint-description[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));margin-top:0;margin-bottom:0;line-height:1.6;font-size:.9375rem}.security-schemes-wrapper[data-v-cab1bf2e]{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid hsl(var(--border))}.security-schemes-title[data-v-cab1bf2e]{font-size:.875rem;font-weight:600;color:hsl(var(--foreground));margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.security-schemes-section[data-v-cab1bf2e]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.security-scheme-card[data-v-cab1bf2e]{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background-color:hsl(var(--muted)/.5);border:1px solid hsl(var(--muted-foreground)/.2);border-radius:calc(var(--radius) - 2px);font-size:.6875rem;transition:all .2s ease;cursor:pointer}.security-scheme-card[data-v-cab1bf2e]:hover{background-color:hsl(var(--muted)/.7);border-color:hsl(var(--muted-foreground)/.3)}.security-scheme-card.selected[data-v-cab1bf2e]{border-color:hsl(var(--primary));background-color:hsla(var(--primary)/.1);box-shadow:0 0 0 2px hsla(var(--primary)/.2)}.security-scheme-card.selected .security-card-icon[data-v-cab1bf2e]{color:hsl(var(--primary));opacity:1}.security-scheme-card.selected .scheme-name[data-v-cab1bf2e]{color:hsl(var(--primary))}.security-card-icon[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));flex-shrink:0;opacity:.8;transition:all .2s ease}.scheme-name[data-v-cab1bf2e]{font-weight:500;color:hsl(var(--foreground));font-family:Chivo Mono Variable,monospace;font-size:.6875rem;transition:color .2s ease}.request-section[data-v-cab1bf2e]{margin-bottom:1.5rem;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem;background:hsl(var(--card));box-shadow:0 1px 2px #0000001a}.request-section h3[data-v-cab1bf2e]{font-size:1.125rem;margin-bottom:1.25rem;margin-top:0;font-weight:600;color:hsl(var(--foreground))}.params-section[data-v-cab1bf2e]{margin-bottom:1.25rem}.params-section[data-v-cab1bf2e]:last-child{margin-bottom:0}.params-section h4[data-v-cab1bf2e]{font-size:.75rem;margin-bottom:.75rem;margin-top:0;font-weight:600;color:hsl(var(--foreground));text-transform:uppercase;letter-spacing:.05em}.params-list[data-v-cab1bf2e]{display:flex;flex-direction:column;gap:.75rem}.param-item[data-v-cab1bf2e]{display:flex;flex-direction:row;align-items:center;gap:.75rem}.param-item dt[data-v-cab1bf2e]{font-size:.875rem;color:hsl(var(--foreground));margin:0;flex:1}.param-item dd[data-v-cab1bf2e]{margin:0;flex:1}.param-item .param-name[data-v-cab1bf2e]{font-weight:500;font-family:Chivo Mono Variable,monospace}.param-item .required[data-v-cab1bf2e]{color:hsl(var(--destructive));margin-left:.25rem}.param-item .param-desc[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));font-weight:400}.param-item input[data-v-cab1bf2e]{width:100%;padding:.5rem;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--input));color:hsl(var(--foreground));font-family:Chivo Mono Variable,monospace;font-size:.875rem}.param-item input[data-v-cab1bf2e]:focus{outline:none;border-color:hsl(var(--ring))}.body-section[data-v-cab1bf2e]{margin-bottom:1.25rem}.body-section[data-v-cab1bf2e]:last-child{margin-bottom:0}.body-section h4[data-v-cab1bf2e]{font-size:.75rem;margin-bottom:0;margin-top:0;font-weight:600;color:hsl(var(--foreground));text-transform:uppercase;letter-spacing:.05em}.body-section-header[data-v-cab1bf2e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.view-toggle[data-v-cab1bf2e]{display:inline-flex;gap:0;background:transparent;border-radius:calc(var(--radius) - 2px);padding:0;border:1px solid hsl(var(--border));overflow:hidden}.toggle-btn[data-v-cab1bf2e]{padding:.375rem .75rem;background:transparent;border:none;border-radius:0;cursor:pointer;font-size:.75rem;font-weight:500;color:hsl(var(--muted-foreground));transition:all .2s ease;white-space:nowrap;border-right:1px solid hsl(var(--border))}.toggle-btn[data-v-cab1bf2e]:last-child{border-right:none}.toggle-btn[data-v-cab1bf2e]:hover{color:hsl(var(--foreground))}.toggle-btn.active[data-v-cab1bf2e]{background:hsl(var(--muted));color:hsl(var(--foreground))}.toggle-btn.small[data-v-cab1bf2e]{padding:.25rem .5rem;font-size:.6875rem}.schema-display[data-v-cab1bf2e]{border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;background:hsl(var(--input));max-height:400px;min-height:150px;overflow-y:auto;overflow-x:auto}.schema-text[data-v-cab1bf2e]{margin:0;padding:1rem;font-family:Chivo Mono Variable,monospace;font-size:.8125rem;line-height:1.8;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e]{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:auto;background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e] .jsoneditor{border:none;background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e] .jsoneditor-menu{background:hsl(var(--muted));border-bottom:none}.json-editor-wrapper[data-v-cab1bf2e] .jsoneditor-outer{background:hsl(var(--input))}.json-editor-wrapper[data-v-cab1bf2e] .ace_editor{background:hsl(var(--input))!important;color:hsl(var(--foreground))!important}.json-editor-wrapper[data-v-cab1bf2e] .ace_gutter{background:hsl(var(--muted))!important}.send-button[data-v-cab1bf2e]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:hsl(var(--primary)/.9);color:hsl(var(--primary-foreground));border:1px solid hsl(var(--primary)/.3);border-radius:var(--radius);cursor:pointer;font-weight:600;font-size:.8125rem;letter-spacing:.025em;margin:1.5rem auto 0;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.send-button[data-v-cab1bf2e]:hover:not(:disabled){background:hsl(var(--primary)/1);border-color:hsl(var(--primary)/.5);box-shadow:0 6px 12px -2px #0006,0 4px 6px -1px #0000004d}.send-button[data-v-cab1bf2e]:active:not(:disabled){box-shadow:0 2px 4px -1px #0000004d,0 1px 2px -1px #0003}.send-button[data-v-cab1bf2e]:disabled{opacity:.6;cursor:not-allowed}.send-button-icon[data-v-cab1bf2e]{flex-shrink:0}.response-section[data-v-cab1bf2e]{margin-bottom:1.5rem}.response-section h3[data-v-cab1bf2e]{font-size:1.125rem;margin-bottom:1.25rem;margin-top:0;font-weight:600;color:hsl(var(--foreground))}.section-header[data-v-cab1bf2e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.section-header h3[data-v-cab1bf2e]{margin-bottom:0}.clear-history-btn[data-v-cab1bf2e]{padding:.375rem .75rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all .2s}.clear-history-btn[data-v-cab1bf2e]:hover{background:hsl(var(--accent));border-color:hsl(var(--accent))}.no-response[data-v-cab1bf2e]{padding:1.5rem;text-align:center;color:hsl(var(--muted-foreground));border:1px dashed hsl(var(--border));border-radius:var(--radius)}.request-history-list[data-v-cab1bf2e]{display:flex;flex-direction:column;gap:1rem}.history-item[data-v-cab1bf2e]{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));padding:1rem;margin-bottom:1rem;box-shadow:0 1px 2px #0000001a}.history-item[data-v-cab1bf2e]:last-child{margin-bottom:0}.history-item-header[data-v-cab1bf2e]{padding:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;border-bottom:1px solid hsl(var(--border));padding-bottom:.75rem;flex-wrap:wrap}.history-item-title[data-v-cab1bf2e]{display:flex;align-items:center;gap:.75rem;flex:1 1 0;min-width:200px;flex-wrap:nowrap}.history-url[data-v-cab1bf2e]{font-family:Chivo Mono Variable,monospace;font-size:.8125rem;color:hsl(var(--foreground));flex:1 1 auto;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-meta-group[data-v-cab1bf2e]{display:flex;align-items:center;gap:0;flex:0 0 auto;flex-wrap:wrap;min-width:fit-content}@media(max-width:640px){.history-meta-group[data-v-cab1bf2e]{width:100%;flex-direction:column;align-items:flex-start;gap:.5rem}}.history-auth-scheme[data-v-cab1bf2e]{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;color:hsl(var(--muted-foreground));white-space:nowrap;flex-shrink:0;padding-right:.75rem}@media(max-width:640px){.history-auth-scheme[data-v-cab1bf2e]{padding-right:0;padding-bottom:.5rem;border-bottom:1px solid hsl(var(--border));width:100%}}.history-timestamp[data-v-cab1bf2e]{font-size:.75rem;color:hsl(var(--muted-foreground));white-space:nowrap;flex-shrink:0;padding:0 .75rem;border-left:1px solid hsl(var(--border))}@media(max-width:640px){.history-timestamp[data-v-cab1bf2e]{padding:0;padding-bottom:.5rem;border-left:none;border-bottom:1px solid hsl(var(--border));width:100%}}.status-code[data-v-cab1bf2e]{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:calc(var(--radius) - 2px);font-weight:600;font-size:.75rem;white-space:nowrap;flex-shrink:0}.status-code.success[data-v-cab1bf2e]{background-color:#49cc901a;color:#49cc90;border:1px solid rgba(73,204,144,.2)}.status-code.error[data-v-cab1bf2e]{background-color:#f93e3e1a;color:#f93e3e;border:1px solid rgba(249,62,62,.2)}.status-code.redirect[data-v-cab1bf2e]{background-color:#ffc1071a;color:#ffc107;border:1px solid rgba(255,193,7,.2)}.status-code[data-v-cab1bf2e]:not(.success):not(.error):not(.redirect){background-color:hsl(var(--muted));color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border))}.history-curl-section[data-v-cab1bf2e]{margin-bottom:1rem;padding:.75rem;background:hsl(var(--input));border-radius:calc(var(--radius) - 2px)}.history-curl-section .curl-header[data-v-cab1bf2e]{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:.25rem;border-radius:calc(var(--radius) - 2px);transition:background-color .2s}.history-curl-section .curl-header[data-v-cab1bf2e]:hover{background:hsl(var(--muted))}.history-curl-section .curl-header .curl-header-left[data-v-cab1bf2e]{display:flex;align-items:center;gap:.5rem}.history-curl-section .curl-header .curl-toggle-icon[data-v-cab1bf2e]{color:hsl(var(--muted-foreground));flex-shrink:0}.history-curl-section .curl-header h5[data-v-cab1bf2e]{font-size:.875rem;font-weight:600;margin:0}.history-curl-section .copy-curl-btn[data-v-cab1bf2e]{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-size:.875rem;transition:all .2s}.history-curl-section .copy-curl-btn[data-v-cab1bf2e]:hover{background:hsl(var(--accent));opacity:.9}.history-curl-section .curl-command[data-v-cab1bf2e]{padding:.75rem 0;overflow-x:auto}.history-curl-section .curl-command pre[data-v-cab1bf2e]{margin:0;font-family:Chivo Mono Variable,monospace;font-size:.8125rem;line-height:1.6;color:hsl(var(--foreground));white-space:pre-wrap;word-break:break-all}.history-request-body[data-v-cab1bf2e],.history-response[data-v-cab1bf2e],.history-error[data-v-cab1bf2e]{padding:.75rem 0;margin-bottom:1rem}.history-request-body[data-v-cab1bf2e]:last-child,.history-response[data-v-cab1bf2e]:last-child,.history-error[data-v-cab1bf2e]:last-child{margin-bottom:0}.history-request-body h5[data-v-cab1bf2e],.history-response h5[data-v-cab1bf2e],.history-error h5[data-v-cab1bf2e]{font-size:.75rem;font-weight:600;margin-bottom:.625rem;margin-top:0;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.history-request-body .json-editor-wrapper[data-v-cab1bf2e],.history-response .json-editor-wrapper[data-v-cab1bf2e],.history-error .json-editor-wrapper[data-v-cab1bf2e]{border:1px solid hsl(var(--border));max-height:60vh;background:hsl(var(--input));overflow:auto}.history-error .error-message[data-v-cab1bf2e]{color:hsl(var(--destructive));font-size:.875rem;padding:.5rem 0;margin:0}.app-footer[data-v-cab1bf2e]{margin-top:auto;text-align:center}.app-footer p[data-v-cab1bf2e]{margin:0;font-size:.875rem;color:hsl(var(--muted-foreground))}.auth-side-menu[data-v-b8c2be74]{position:fixed;top:0;right:0;width:400px;height:100vh;background:hsl(var(--card));border-left:1px solid hsl(var(--border));z-index:1000;display:flex;flex-direction:column;box-shadow:-2px 0 8px #0000004d}.auth-menu-header[data-v-b8c2be74]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid hsl(var(--border))}.auth-menu-header h2[data-v-b8c2be74]{margin:0;font-size:1.25rem;font-weight:600;color:hsl(var(--foreground))}.close-auth-menu[data-v-b8c2be74]{background:none;border:none;color:hsl(var(--muted-foreground));cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-auth-menu[data-v-b8c2be74]:hover{color:hsl(var(--foreground))}.auth-menu-content[data-v-b8c2be74]{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.auth-scheme[data-v-b8c2be74]{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem;transition:all .2s;box-shadow:0 1px 2px #0000001a;cursor:pointer;position:relative}.auth-scheme[data-v-b8c2be74]:hover{box-shadow:0 2px 4px #00000026;border-color:hsl(var(--ring))}.auth-scheme.selected[data-v-b8c2be74]{border-color:hsl(var(--primary));background:hsla(var(--primary)/.1);box-shadow:0 0 0 2px hsla(var(--primary)/.2)}.auth-scheme.selected .auth-scheme-header[data-v-b8c2be74]{border-bottom-color:hsla(var(--primary)/.3)}.auth-scheme.selected .auth-scheme-header h3[data-v-b8c2be74]{color:hsl(var(--primary))}.auth-scheme.selected .auth-scheme-type[data-v-b8c2be74]{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 0 0 1px hsla(var(--primary-foreground)/.2)}.auth-scheme.selected .auth-scheme-description[data-v-b8c2be74]{color:hsl(var(--muted-foreground))}.auth-scheme.selected[data-v-b8c2be74]:before{content:"";position:absolute;top:.75rem;right:.75rem;width:8px;height:8px;background:hsl(var(--primary));border-radius:50%}.auth-scheme-header[data-v-b8c2be74]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid hsl(var(--border))}.auth-scheme-header h3[data-v-b8c2be74]{font-size:1rem;font-weight:600;margin:0;color:hsl(var(--foreground))}.auth-scheme-type[data-v-b8c2be74]{font-size:.75rem;padding:.375rem .625rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-radius:calc(var(--radius) - 4px);text-transform:uppercase;font-weight:600;letter-spacing:.025em}.auth-scheme-description[data-v-b8c2be74]{font-size:.875rem;color:hsl(var(--muted-foreground));margin-bottom:1rem;margin-top:.5rem;line-height:1.5}.auth-scheme-fields[data-v-b8c2be74]{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.auth-scheme-fields label[data-v-b8c2be74]{display:flex;flex-direction:column;gap:.5rem}.auth-scheme-fields label span[data-v-b8c2be74]{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.auth-scheme-fields label .field-location[data-v-b8c2be74]{font-size:.75rem;color:hsl(var(--muted-foreground));font-weight:400}.auth-input[data-v-b8c2be74]{padding:.5rem .75rem;background:hsl(var(--input));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);font-size:.875rem;transition:border-color .2s}.auth-input[data-v-b8c2be74]:focus{outline:none;border-color:hsl(var(--ring))}.auth-input[data-v-b8c2be74]::placeholder{color:hsl(var(--muted-foreground))}.clear-credential-btn[data-v-b8c2be74]{padding:.5rem 1rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;align-self:flex-start;margin-top:.25rem}.clear-credential-btn[data-v-b8c2be74]:hover{background:hsl(var(--accent));opacity:.9}.save-button[data-v-b8c2be74]{padding:.75rem 1.5rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;border-radius:calc(var(--radius) - 2px);font-weight:500;cursor:pointer;transition:opacity .2s;align-self:flex-start;margin-top:.25rem}.save-button[data-v-b8c2be74]:hover{opacity:.9}.clerk-key-card[data-v-b8c2be74]{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem;margin-top:auto;border-top:2px solid hsl(var(--border));border-top-left-radius:0;border-top-right-radius:0;box-shadow:none}.clerk-key-card[data-v-b8c2be74]:hover{box-shadow:none;border-color:hsl(var(--border))}.clerk-key-header[data-v-b8c2be74]{margin-bottom:.5rem}.clerk-key-header h3[data-v-b8c2be74]{font-size:.875rem;font-weight:600;margin:0;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em}.clerk-key-description[data-v-b8c2be74]{font-size:.8125rem;color:hsl(var(--muted-foreground));margin-bottom:1rem;line-height:1.4}.clerk-key-fields[data-v-b8c2be74]{display:flex;flex-direction:column;gap:.75rem}.clerk-key-fields label[data-v-b8c2be74]{display:flex;flex-direction:column;gap:.375rem}.clerk-key-fields label span[data-v-b8c2be74]{font-size:.8125rem;color:hsl(var(--muted-foreground));font-weight:500}.clerk-key-input[data-v-b8c2be74]{width:100%;padding:.5rem .75rem;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));font-family:Chivo Mono Variable,monospace;font-size:.8125rem;transition:all .2s}.clerk-key-input[data-v-b8c2be74]:focus:not(:disabled){outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsla(var(--ring)/.2)}.clerk-key-input[data-v-b8c2be74]:disabled{background:hsl(var(--muted));color:hsl(var(--muted-foreground));cursor:not-allowed;opacity:.7}.clerk-key-input[data-v-b8c2be74]::placeholder{color:hsl(var(--muted-foreground))}.anonymous-option .auth-scheme-header h3[data-v-b8c2be74]{display:flex;align-items:center;gap:.5rem}.welcome-description[data-v-d0cf2fc7]{font-size:1.125rem;color:hsl(var(--muted-foreground));margin:0 0 2.5rem;line-height:1.6}.service-host-input-section[data-v-d0cf2fc7]{margin:2rem 0}.service-host-direct-form[data-v-d0cf2fc7]{margin-top:1.5rem}.service-host-direct-form .service-host-input-wrapper[data-v-d0cf2fc7]{display:flex;flex-direction:column;gap:.75rem;align-items:stretch;justify-content:center;max-width:500px;margin:0 auto}.service-host-input-wrapper[data-v-d0cf2fc7]{display:flex;gap:.75rem;align-items:center;justify-content:center;margin-top:1.5rem}.service-host-input[data-v-d0cf2fc7]{padding:.75rem 1rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font-size:1rem;min-width:300px;transition:border-color .2s}.service-host-input[data-v-d0cf2fc7]:hover{border-color:hsl(var(--accent))}.service-host-input[data-v-d0cf2fc7]:focus{outline:none;border-color:hsl(var(--ring))}.service-host-input[data-v-d0cf2fc7]::placeholder{color:hsl(var(--muted-foreground))}.service-host-submit-btn[data-v-d0cf2fc7]{padding:.75rem 1.5rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.service-host-submit-btn[data-v-d0cf2fc7]:hover:not(:disabled){background:hsl(var(--primary)/.9)}.service-host-submit-btn[data-v-d0cf2fc7]:disabled{opacity:.5;cursor:not-allowed}.service-host-direct-form .service-host-submit-btn[data-v-d0cf2fc7]{width:100%}.openapi-test{height:100vh;display:flex;flex-direction:column;background:hsl(var(--background));color:hsl(var(--foreground));overflow:hidden}.test-header{border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));flex-shrink:0;z-index:100}.app-footer{margin-top:auto;text-align:center}.app-footer p{margin:0;font-size:.875rem;color:hsl(var(--muted-foreground))}.header-content{max-width:100%;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}.header-title-section{display:flex;flex-direction:row;align-items:center;gap:.75rem;flex:1;min-width:0}.title-section-content{display:flex;flex-direction:column;gap:.25rem;min-width:0}.title-row{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.logo{font-size:1.5rem;font-weight:700;margin:0;line-height:1.2}.api-version{font-size:.875rem;color:hsl(var(--muted-foreground));font-weight:500}.api-description{font-size:.75rem;color:hsl(var(--muted-foreground));margin:0;line-height:1.4;max-width:600px}.header-title-action{display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:1.5rem}.refresh-spec-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:hsl(var(--foreground));cursor:pointer;padding:.5rem;border-radius:calc(var(--radius) - 2px);transition:color .2s,opacity .2s,background-color .2s}.refresh-spec-btn:hover:not(:disabled){background:hsl(var(--muted)/.3);color:hsl(var(--primary))}.refresh-spec-btn:disabled{opacity:.5;cursor:not-allowed}.refresh-spec-btn .spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.openapi-spec-link,.github-link{display:flex;align-items:center;justify-content:center;color:hsl(var(--foreground));text-decoration:none;transition:color .2s,opacity .2s;padding:.5rem;border-radius:calc(var(--radius) - 2px);background:transparent;border:none;cursor:pointer}.openapi-spec-link:hover,.github-link:hover{color:hsl(var(--primary));opacity:.8}.openapi-spec-link:focus,.github-link:focus{outline:none;color:hsl(var(--primary))}.auth-section{display:flex;align-items:center}.sign-in-btn{padding:.5rem 1rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;font-weight:500;transition:opacity .2s}.sign-in-btn:hover{opacity:.9}.user-section{display:flex;align-items:center}.auth-menu-toggle{padding:.5rem 1rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;font-weight:500;font-size:.875rem;transition:all .2s;display:flex;align-items:center;gap:.5rem}.auth-menu-toggle:hover{background:hsl(var(--accent));opacity:.9}.auth-menu-toggle.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.auth-menu-toggle.has-selection{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsla(var(--primary)/.2)}.auth-menu-toggle.has-selection svg{color:hsl(var(--primary-foreground))}.test-container{display:flex;flex:1;overflow:hidden;min-height:0}.endpoints-sidebar{background:hsl(var(--card));display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width .3s ease}.endpoints-sidebar.resizing{transition:none}.endpoints-sidebar .sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;flex-shrink:0}.endpoints-sidebar .sidebar-header h2{font-size:1rem;margin:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.endpoints-sidebar.collapsed .sidebar-header{flex-direction:column;gap:.5rem;padding:1rem .5rem}.endpoints-sidebar.collapsed .sidebar-header h2{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg)}.sidebar-toggle{padding:.25rem .5rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;line-height:1;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-toggle:hover{background:hsl(var(--accent));opacity:.9}.sidebar-toggle:active{transform:scale(.95)}.sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding-left:1rem;padding-bottom:1rem}.resize-handle{width:8px;background:hsl(var(--card));cursor:col-resize;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;align-items:stretch}.resize-handle:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:8px;top:0;bottom:0;cursor:col-resize;transition:background-color .2s}.resize-handle:hover:before{background:hsl(var(--accent))}.resize-handle.resizing:before{background:hsl(var(--accent))}.resize-handle-endpoints{border-right:1px solid hsl(var(--border))}.resize-handle-examples{border-left:1px solid hsl(var(--border))}.loading,.error{padding:.75rem;text-align:center;color:hsl(var(--muted-foreground));font-size:.875rem}.error{color:hsl(var(--destructive))}.endpoints-groups{display:flex;flex-direction:column;gap:.5rem;padding-right:1rem}.endpoint-group{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);overflow:hidden}.group-header{padding:.5rem .75rem;background:hsl(var(--muted));cursor:pointer;display:flex;align-items:center;gap:.375rem;transition:background .2s;-webkit-user-select:none;user-select:none}.group-header:hover{background:hsl(var(--accent))}.group-name{font-weight:600;font-size:.8125rem;color:hsl(var(--foreground));flex:1}.group-count{font-size:.6875rem;color:hsl(var(--muted-foreground))}.group-toggle{color:hsl(var(--muted-foreground));width:.875rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.group-endpoints{display:flex;flex-direction:column;gap:.25rem;padding:.375rem;background:hsl(var(--card));min-width:0}.endpoint-item{padding:.375rem .5rem;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem;overflow:hidden}.endpoint-item:hover,.endpoint-item.active{background:hsl(var(--accent))}.method-badge{display:inline-flex;align-items:center;justify-content:center;padding:.125rem .375rem;border-radius:3px;color:#fff;font-weight:600;font-size:.625rem;text-transform:uppercase;flex-shrink:0;line-height:1.2;width:3.5rem;min-width:3.5rem;max-width:3.5rem;text-align:center;box-sizing:border-box}.endpoint-path{font-family:Chivo Mono Variable,monospace;font-size:.75rem;color:hsl(var(--foreground));font-weight:500;flex:1;line-height:1.3;white-space:nowrap;overflow:visible}.endpoint-summary{font-size:.6875rem;color:hsl(var(--muted-foreground));line-height:1.3;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:auto}.security-indicator{color:hsl(var(--muted-foreground));flex-shrink:0;opacity:.7}.endpoint-content{display:flex;flex:1;overflow:hidden;min-height:0}.endpoint-tester.empty{flex:1;padding:1.5rem;overflow-y:auto;overflow-x:hidden;min-height:0;background-color:hsl(var(--background));background-image:linear-gradient(hsl(var(--border)/.3) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--border)/.3) 1px,transparent 1px);background-size:50px 50px;background-position:0 0,0 0;border-right:1px solid hsl(var(--border));display:flex;flex-direction:column;align-items:center;justify-content:center}.examples-sidebar{border-right:1px solid hsl(var(--border));background:hsl(var(--card));display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;overflow-x:hidden;min-height:0;transition:width .3s ease}.examples-sidebar.resizing{transition:none}.examples-sidebar.collapsed{padding:1.5rem .5rem}.examples-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:1rem}.examples-header h3{font-size:1rem;margin-bottom:0;margin-top:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.examples-sidebar.collapsed .examples-header{flex-direction:column;gap:.5rem;margin-bottom:0}.examples-sidebar.collapsed .examples-header h3{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg)}.examples-toggle{padding:.25rem .5rem;background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:pointer;line-height:1;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.examples-toggle:hover{background:hsl(var(--accent));opacity:.9}.examples-toggle:active{transform:scale(.95)}.examples-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding-left:1rem}.view-toggle{display:inline-flex;gap:0;background:transparent;border-radius:calc(var(--radius) - 2px);padding:0;border:1px solid hsl(var(--border));overflow:hidden}.toggle-btn{padding:.375rem .75rem;background:transparent;border:none;border-radius:0;cursor:pointer;font-size:.75rem;font-weight:500;color:hsl(var(--muted-foreground));transition:all .2s ease;white-space:nowrap;border-right:1px solid hsl(var(--border))}.toggle-btn:last-child{border-right:none}.toggle-btn:hover{color:hsl(var(--foreground))}.toggle-btn.active{background:hsl(var(--muted));color:hsl(var(--foreground))}.toggle-btn.small{padding:.25rem .5rem;font-size:.6875rem}.example-section{padding-right:1rem;margin-bottom:1.5rem;flex-shrink:0}.example-section h4{font-size:.75rem;margin-bottom:.75rem;margin-top:0;font-weight:600;color:hsl(var(--foreground));text-transform:uppercase;letter-spacing:.05em}.example-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.example-section-header h4{margin-bottom:0}.example-content{border:none;border-radius:var(--radius);overflow:hidden;background:hsl(var(--input));box-shadow:none}.example-content pre{margin:0;padding:1rem;font-family:Chivo Mono Variable,monospace;font-size:.875rem;white-space:pre-wrap;word-wrap:break-word;overflow-x:auto;max-height:400px;overflow-y:auto}.example-content .json-editor-wrapper{border-top-left-radius:0;border-top-right-radius:0;border:none;box-shadow:none}.example-content .schema-display{border:none;box-shadow:none;max-height:400px;min-height:150px;overflow-y:auto;overflow-x:auto;background:hsl(var(--input))}.example-content .schema-text{margin:0;padding:1rem;font-family:Chivo Mono Variable,monospace;font-size:.8125rem;line-height:1.8;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input));border-radius:calc(var(--radius) - 2px)}.no-examples{padding:1.5rem;text-align:center;color:hsl(var(--muted-foreground));border:1px dashed hsl(var(--border));border-radius:var(--radius);font-size:.875rem}.response-codes-list{display:flex;flex-direction:column;gap:.75rem}.response-code-item{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);overflow:hidden;background:hsl(var(--card));box-shadow:0 1px 2px #0000000d}.response-code-item .example-content{border:none;border-radius:0;box-shadow:none;margin-top:0;border-top:1px solid hsl(var(--border))}.response-code-item .example-content pre{max-height:300px}.response-code-item .example-content .json-editor-wrapper{border:none;box-shadow:none}.response-code-item .example-content .schema-display{border:none;box-shadow:none;max-height:300px;min-height:100px;overflow-y:auto;overflow-x:auto;background:hsl(var(--input))}.response-code-item .example-content .schema-text{margin:0;padding:.75rem;font-family:Chivo Mono Variable,monospace;font-size:.75rem;line-height:1.7;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input))}.response-code-header{display:flex;border-bottom:1px solid hsl(var(--border));min-height:0}.response-code-left{width:4rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.625rem .5rem;background:hsl(var(--muted)/.3);border-right:1px solid hsl(var(--border))}.response-code-left.success{background:#16a2491a;border-right-color:#16a24933}.response-code-left.error{background:#ef43431a;border-right-color:#ef434333}.response-code-number{font-weight:600;font-size:.75rem;font-family:Chivo Mono Variable,monospace;text-align:center;padding:.3125rem .5rem;border-radius:calc(var(--radius) - 4px);background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));line-height:1.2;width:100%}.response-code-left.success .response-code-number{background:#16a24926;color:#16a249;border-color:#16a2494d}.response-code-left.error .response-code-number{background:#ef434326;color:#ef4343;border-color:#ef43434d}.response-code-right{flex:1;display:flex;flex-direction:column;gap:.5rem;padding:.625rem .875rem;background:hsl(var(--card));min-width:0}.response-code-description{font-size:.8125rem;color:hsl(var(--muted-foreground));line-height:1.5;word-wrap:break-word;white-space:pre-wrap;display:block}.response-code-right .view-toggle{align-self:flex-end}.no-example{padding:.75rem;text-align:center;color:hsl(var(--muted-foreground));font-size:.8125rem;font-style:italic}.schema-references-list{display:flex;flex-direction:column;gap:1rem}.schema-reference-item{border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;background:hsl(var(--card))}.schema-reference-item .example-content{border:none;border-radius:0;box-shadow:none;margin-top:0}.schema-reference-item .example-content .schema-display{border:none;box-shadow:none;max-height:300px;min-height:100px;overflow-y:auto;overflow-x:auto;background:hsl(var(--input))}.schema-reference-item .example-content .schema-text{margin:0;padding:.875rem;font-family:Chivo Mono Variable,monospace;font-size:.75rem;line-height:1.7;color:hsl(var(--foreground));white-space:pre;overflow-x:auto;background:hsl(var(--input))}.schema-reference-header{padding:.75rem 1rem;background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border));display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:background .2s;-webkit-user-select:none;user-select:none}.schema-reference-header:hover{background:hsl(var(--accent))}.schema-reference-toggle{color:hsl(var(--muted-foreground));width:.875rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.schema-reference-name{font-weight:700;font-size:.875rem;font-family:Chivo Mono Variable,monospace;color:hsl(var(--foreground));flex:1}.empty-state{display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.welcome-content{max-width:600px;text-align:center;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.welcome-icon{margin-bottom:1.5rem;display:flex;justify-content:center;color:hsl(var(--foreground));opacity:.9}.welcome-title{font-size:2rem;font-weight:600;color:hsl(var(--foreground));margin:0 0 1rem;letter-spacing:-.02em}.welcome-description{font-size:1.125rem;color:hsl(var(--muted-foreground));margin:0 0 2.5rem;line-height:1.6}.welcome-tips{display:flex;flex-direction:column;gap:1rem;margin-top:2rem;text-align:left}.tip-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:6px;color:hsl(var(--foreground));font-size:.9375rem;cursor:default;-webkit-user-select:none;user-select:none}.tip-icon{flex-shrink:0;color:hsl(var(--muted-foreground))}.json-editor-wrapper{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:auto;background:hsl(var(--input))}.json-editor-wrapper :deep(.jsoneditor){border:none;background:hsl(var(--input))}.json-editor-wrapper :deep(.jsoneditor-menu){background:hsl(var(--muted));border-bottom:none}.json-editor-wrapper :deep(.jsoneditor-outer){background:hsl(var(--input))}.json-editor-wrapper :deep(.ace_editor){background:hsl(var(--input))!important;color:hsl(var(--foreground))!important}.json-editor-wrapper :deep(.ace_gutter){background:hsl(var(--muted))!important}
@@ -1 +1 @@
1
- import{d as n,I as r,c as a,q as e,o as d,B as c}from"./app-Cj7QqXAk.js";const i={class:"not-found-container"},l=n({__name:"NotFound",setup(p){const t=r(),s=()=>{t.replace("/")};return(u,o)=>(d(),a("div",i,[e("div",{class:"not-found-content"},[o[0]||(o[0]=e("div",{class:"error-code"},"404",-1)),o[1]||(o[1]=e("h1",{class:"error-title"},"Page Not Found",-1)),o[2]||(o[2]=e("p",{class:"error-description"}," The page you're looking for doesn't exist or has been moved. ",-1)),e("div",{class:"error-actions"},[e("button",{class:"btn btn-primary",onClick:s}," Go to Home ")])])]))}}),f=c(l,[["__scopeId","data-v-94836b5f"]]);export{f as default};
1
+ import{a as n,B as r,e as a,f as d,g as e,_ as c}from"./app-BgTLLqSw.js";const i={class:"not-found-container"},l=n({__name:"NotFound",setup(p){const t=r(),s=()=>{t.replace("/")};return(u,o)=>(d(),a("div",i,[e("div",{class:"not-found-content"},[o[0]||(o[0]=e("div",{class:"error-code"},"404",-1)),o[1]||(o[1]=e("h1",{class:"error-title"},"Page Not Found",-1)),o[2]||(o[2]=e("p",{class:"error-description"}," The page you're looking for doesn't exist or has been moved. ",-1)),e("div",{class:"error-actions"},[e("button",{class:"btn btn-primary",onClick:s}," Go to Home ")])])]))}}),m=c(l,[["__scopeId","data-v-94836b5f"]]);export{m as default};
@@ -0,0 +1 @@
1
+ import{a as A,B as g,q as O,u as V,c as l,o as B,J as x,e as t,f as s,g as e,h as k,k as c,j as d,t as p,_ as C}from"./app-BgTLLqSw.js";import{c as f,F as L}from"./file-text-BMdngXGt.js";const j=f("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const U=f("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),I={class:"spec-viewer"},N={class:"spec-viewer-header"},R={class:"header-content"},E={class:"header-title-section"},J={class:"title-row"},M={class:"spec-title"},z={key:0,class:"api-version"},D=["disabled"],P={key:0,class:"url-display"},T=["href"],F={class:"spec-viewer-content"},H={key:0,class:"loading-state"},q={key:1,class:"error-state"},$={key:2,class:"empty-state"},G={key:3,class:"json-viewer-container"},K=A({__name:"SpecViewer",setup(Q){const y=g(),n=O(),w=V(),a=l(()=>n.openApiSpec),u=l(()=>n.loading),v=l(()=>n.error),b=l(()=>n.openApiTitle),m=l(()=>n.openApiVersion),_=l(()=>n.openApiSpecUrl),S=()=>{if(!a.value)return;const h=JSON.stringify(a.value,null,2),o=new Blob([h],{type:"application/json"}),r=URL.createObjectURL(o),i=document.createElement("a");i.href=r,i.download="openapi-spec.json",document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)};return B(async()=>{!a.value&&!u.value&&!v.value&&await w.loadOpenApiSpec()}),(h,o)=>{const r=x("JsonEditorVue");return s(),t("div",I,[e("header",N,[e("div",R,[e("button",{onClick:o[0]||(o[0]=i=>c(y).push("/")),class:"back-button",title:"Back to main view"},[d(c(j),{size:20})]),e("div",E,[d(c(L),{size:24}),e("div",J,[e("h1",M,p(b.value),1),m.value?(s(),t("div",z,"v"+p(m.value),1)):k("",!0)])]),e("button",{onClick:S,class:"download-button",disabled:!a.value||u.value,title:"Download OpenAPI Spec JSON"},[d(c(U),{size:20}),o[1]||(o[1]=e("span",null,"Download",-1))],8,D)])]),_.value?(s(),t("div",P,[o[2]||(o[2]=e("span",{class:"url-label"},"OpenAPI Spec URL:",-1)),e("a",{href:_.value,target:"_blank",rel:"noopener noreferrer",class:"url-link"},p(_.value),9,T)])):k("",!0),e("main",F,[u.value?(s(),t("div",H,[...o[3]||(o[3]=[e("p",null,"Loading OpenAPI specification...",-1)])])):v.value?(s(),t("div",q,[e("p",null,"Error loading specification: "+p(v.value),1)])):a.value?(s(),t("div",G,[d(r,{"model-value":a.value,mode:"text",readOnly:!0,mainMenuBar:!0,navigationBar:!0,statusBar:!1,darkTheme:!0},null,8,["model-value"])])):(s(),t("div",$,[...o[4]||(o[4]=[e("p",null,"No OpenAPI specification available.",-1)])]))])])}}}),Y=C(K,[["__scopeId","data-v-aa7d1028"]]);export{Y as default};
@@ -0,0 +1 @@
1
+ .spec-viewer[data-v-aa7d1028]{height:100vh;display:flex;flex-direction:column;background:hsl(var(--background));color:hsl(var(--foreground));overflow:hidden}.spec-viewer-header[data-v-aa7d1028]{border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));flex-shrink:0;z-index:100}.url-display[data-v-aa7d1028]{padding:.75rem 2rem;background:hsl(var(--muted)/.3);border-bottom:1px solid hsl(var(--border));display:flex;align-items:center;gap:.5rem;flex-shrink:0;font-size:.875rem}.url-label[data-v-aa7d1028]{font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap}.url-link[data-v-aa7d1028]{color:hsl(var(--primary));text-decoration:none;font-family:Chivo Mono Variable,monospace;word-break:break-all;transition:opacity .2s}.url-link[data-v-aa7d1028]:hover{opacity:.8;text-decoration:underline}.header-content[data-v-aa7d1028]{max-width:100%;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;gap:1rem}.back-button[data-v-aa7d1028]{display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid hsl(var(--border));color:hsl(var(--foreground));cursor:pointer;padding:.5rem;border-radius:calc(var(--radius) - 2px);transition:all .2s;flex-shrink:0}.back-button[data-v-aa7d1028]:hover{background:hsl(var(--muted)/.3);color:hsl(var(--primary))}.header-title-section[data-v-aa7d1028]{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.header-title-section svg[data-v-aa7d1028]{flex-shrink:0;color:hsl(var(--muted-foreground))}.title-row[data-v-aa7d1028]{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;flex:1;min-width:0}.spec-title[data-v-aa7d1028]{font-size:1.25rem;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.api-version[data-v-aa7d1028]{font-size:.875rem;color:hsl(var(--muted-foreground));font-weight:500;white-space:nowrap}.download-button[data-v-aa7d1028]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;font-weight:500;transition:opacity .2s;flex-shrink:0}.download-button[data-v-aa7d1028]:hover:not(:disabled){opacity:.9}.download-button[data-v-aa7d1028]:disabled{opacity:.5;cursor:not-allowed}.spec-viewer-content[data-v-aa7d1028]{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;padding:1rem;min-height:0}.loading-state[data-v-aa7d1028],.error-state[data-v-aa7d1028],.empty-state[data-v-aa7d1028]{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.loading-state p[data-v-aa7d1028],.error-state p[data-v-aa7d1028],.empty-state p[data-v-aa7d1028]{font-size:1rem;color:hsl(var(--muted-foreground))}.error-state p[data-v-aa7d1028]{color:hsl(var(--destructive))}.json-viewer-container[data-v-aa7d1028]{flex:1;min-height:0;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--input));display:flex;flex-direction:column}.json-viewer-container[data-v-aa7d1028] .jsoneditor{border:none;background:hsl(var(--input));height:100%;display:flex;flex-direction:column;min-height:0}.json-viewer-container[data-v-aa7d1028] .jsoneditor-menu{background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border));flex-shrink:0}.json-viewer-container[data-v-aa7d1028] .jsoneditor-outer{background:hsl(var(--input));flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0;position:relative}.json-viewer-container[data-v-aa7d1028] .ace_editor{background:hsl(var(--input))!important;color:hsl(var(--foreground))!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important}.json-viewer-container[data-v-aa7d1028] .ace_scroller{overflow-y:auto!important;overflow-x:auto!important}.json-viewer-container[data-v-aa7d1028] .ace_gutter{background:hsl(var(--muted))!important}.json-viewer-container[data-v-aa7d1028] .ace_content{overflow-y:auto!important;overflow-x:auto!important}