autotel-devtools 23.0.0 → 23.1.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.
- package/dist/cli.cjs +2 -2
- package/dist/cli.js +2 -2
- package/dist/{exporter-BrEcnzoT.d.ts → exporter-C88W22vY.d.ts} +30 -0
- package/dist/{exporter-C4uKgo7l.d.cts → exporter-OoWkSMCR.d.cts} +30 -0
- package/dist/fullpage.global.js +8 -8
- package/dist/{grpc-CSWjMRiB.cjs → grpc-D0B3P9sI.cjs} +1 -1
- package/dist/{grpc-CZEDUYCM.js → grpc-DY-C1jSU.js} +1 -1
- package/dist/{http-Cqm_MAtc.cjs → http-1afd_01N.cjs} +54 -5
- package/dist/{http-Dbd9TIYU.js → http-gk1xapnA.js} +54 -5
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/server/exporter.d.cts +1 -1
- package/dist/server/exporter.d.ts +1 -1
- package/dist/server/index.cjs +2 -2
- package/dist/server/index.d.cts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +2 -2
- package/package.json +1 -1
package/dist/fullpage.global.js
CHANGED
|
@@ -28,12 +28,12 @@ var AutotelDevtools=(function(e){Object.defineProperty(e,Symbol.toStringTag,{val
|
|
|
28
28
|
${z(u).count===1?`call`:`calls`}`)},[()=>K(Q(`inline-block w-2 h-2 rounded-sm`,z(t).dot))]),H(e,n)};W(le,e=>{z(u)&&e(E)}),D(re),D(t),R(()=>{J(se,`width`,z(s).width),J(se,`height`,z(s).height),J(se,`viewBox`,`0 0 ${z(s).width} ${z(s).height}`)}),B(`focusin`,ie,()=>P(x,!0)),B(`focusout`,ie,()=>P(x,!1)),H(e,t)};W(w,e=>{!z(a)||!z(s)||z(s).nodes.length===0?e(T):e(ee,-1)}),H(e,C),at()}na([`focusin`,`focusout`,`click`,`keydown`]);var DP=(e,t=p,n=p)=>{var r=kP(),i=F(r),a=F(i,!0);D(i);var o=L(i,2),s=F(o,!0);D(o),D(r),R(()=>{U(a,t()),U(s,n())}),H(e,r)},OP=(e,t=p,n=p,r=p)=>{var i=da(),a=I(i),o=e=>{var i=AP(),a=F(i),o=F(a,!0);D(a);var s=L(a,2),c=F(s,!0);D(s),D(i),R(e=>{J(i,`title`,e),U(o,t()),U(c,n())},[()=>`View ${t().toLowerCase()} in the ${r()} tab`]),B(`click`,i,()=>Mu(r())),H(e,i)},s=e=>{DP(e,t,n)};W(a,e=>{n()>0?e(o):e(s,-1)}),H(e,i)},kP=V(`<div><div class="text-[11px] uppercase tracking-wide text-fg-subtle"> </div> <div class="text-sm text-fg"> </div></div>`),AP=V(`<button type="button" class="group/stat text-left rounded -m-1 p-1 hover:bg-hover transition-colors"><div class="text-[11px] uppercase tracking-wide text-fg-subtle"> </div> <div class="text-sm text-accent group-hover/stat:underline"> </div></button>`),jP=V(`<div class="border border-line rounded-md p-3 bg-surface"><div class="flex items-start justify-between gap-2 mb-2"><div><div class="text-sm font-medium text-fg"> </div> <div class="text-xs text-fg-subtle uppercase tracking-wide"> </div></div> <span> </span></div> <div class="grid grid-cols-2 gap-2 text-xs text-fg-muted sm:grid-cols-5"><!> <!> <!> <!> <!></div></div>`),MP=V(`<option> </option>`),NP=V(`<div class="text-center text-fg-subtle text-sm py-12">No resources derived yet. Send traces or logs with resource metadata.</div>`),PP=V(`<div class="space-y-2"></div>`),FP=V(`<div class="flex flex-col h-full p-4"><div class="flex flex-col gap-3 mb-4 pb-3 border-b border-line"><div class="flex items-center justify-between gap-2"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg"><!> </h3></div> <div class="flex flex-wrap gap-2"><input type="search" placeholder="Filter resources" class="px-3 py-2 text-xs border border-line rounded-md min-w-[180px]"/> <select class="px-3 py-2 text-xs border border-line rounded-md bg-surface"><option>All types</option><!></select></div></div> <div class="flex-1 overflow-auto"><!></div></div>`);function IP(e,t){it(t,!0);let n=(e,t=p)=>{var n=jP(),r=F(n),a=F(r),o=F(a),s=F(o,!0);D(o);var c=L(o,2),l=F(c,!0);D(c),D(a);var u=L(a,2),d=F(u,!0);D(u),D(r);var f=L(r,2),m=F(f);DP(m,()=>`Requests`,()=>t().requestCount);var h=L(m,2);OP(h,()=>`Errors`,()=>t().errorCount,()=>`errors`);var g=L(h,2);OP(g,()=>`Traces`,()=>t().traceCount,()=>`traces`);var _=L(g,2);OP(_,()=>`Logs`,()=>t().logCount,()=>`logs`);var v=L(_,2);{let e=M(()=>t().lastSeen?od(t().lastSeen):`n/a`);DP(v,()=>`Last Seen`,()=>z(e))}D(f),D(n),R(e=>{U(s,t().name),U(l,t().type),q(u,1,e),U(d,t().health)},[()=>K(Q(`px-2 py-1 rounded border text-[11px] font-medium capitalize`,i(t().health)))]),H(e,n)},r=[`service`,`database`,`cache`,`messaging`,`external`,`unknown`];function i(e){switch(e){case`healthy`:return`bg-success-bg text-success border-success-border`;case`degraded`:return`bg-warning-bg text-warning border-warning-border`;case`unhealthy`:return`bg-danger-bg text-danger border-danger-border`;default:return`bg-subtle text-fg-muted border-line`}}let a=M(()=>eu.value),o=N(``),s=N(`all`),c=M(()=>{let e=z(o).trim().toLowerCase();return z(a).filter(t=>(z(s)===`all`||t.type===z(s))&&I_(e,[t.name]))});var l=FP(),u=F(l),d=F(u),f=F(d),m=F(f);lp(m,{size:16});var h=L(m);D(f),D(d);var g=L(d,2),_=F(g);Co(_);var v=L(_,2),y=F(v);y.value=y.__value=`all`,G(L(y),16,()=>r,e=>e,(e,t)=>{var n=MP(),r=F(n,!0);D(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),D(v);var b;uo(v),D(g),D(u);var x=L(u,2),S=F(x),C=e=>{H(e,NP())},w=e=>{var t=PP();G(t,21,()=>z(c),e=>e.name,(e,t)=>{n(e,()=>z(t))}),D(t),H(e,t)};W(S,e=>{z(c).length===0?e(C):e(w,-1)}),D(x),D(l),R(()=>{U(h,` Resources (${z(a).length??``})`),wo(_,z(o)),b!==(b=z(s))&&(v.value=(v.__value=z(s))??``,lo(v,z(s)))}),B(`input`,_,e=>P(o,e.currentTarget.value,!0)),B(`change`,v,e=>P(s,e.currentTarget.value,!0)),H(e,l),at()}na([`click`,`input`,`change`]);var LP=200,RP=70,zP=20;function BP(e,t){return _s(e,t)}function VP(e){let t=e.attributes||{};return t[`db.system`]||t[`db.name`]||t[`db.statement`]?`database`:t[`messaging.system`]||t[`messaging.destination`]||t[`messaging.url`]?`messaging`:t[`rpc.system`]||t[`rpc.service`]||t[`peer.service`]?`external`:`service`}function HP(e,t){if(e.length===0)return 0;let n=Math.ceil(t/100*e.length)-1;return e[Math.max(0,n)]}function UP(e){let t=new Map,n=new Map;for(let r of e){let e=new Map;for(let t of r.spans)e.set(t.spanId,t);for(let i of r.spans){let a=BP(i,r.service),o=t.get(a);o||(o={id:a,name:a,requestCount:0,errorCount:0,avgLatency:0,minLatency:1/0,maxLatency:0,spanKinds:new Set,nodeType:`service`},t.set(a,o)),o.requestCount++,i.status.code===`ERROR`&&o.errorCount++,o.avgLatency=(o.avgLatency*(o.requestCount-1)+i.duration)/o.requestCount,o.minLatency=Math.min(o.minLatency,i.duration),o.maxLatency=Math.max(o.maxLatency,i.duration),o.spanKinds.add(i.kind);let s=VP(i),c=String(i.attributes?.[`service.name`]||r.service||a);if(s!==`service`&&a!==c&&(o.nodeType=s),i.kind===`CLIENT`){let e=r.spans.find(e=>e.parentSpanId===i.spanId&&e.kind===`SERVER`),o=String(i.attributes?.[`service.name`]||r.service||a),s=(e?BP(e,r.service):void 0)||fs(i.attributes,`peer.service`,`http.host`,`db.system`,`net.peer.name`,`rpc.service`,`messaging.system`)||`external`;if(t.has(o)||t.set(o,{id:o,name:o,requestCount:0,errorCount:0,avgLatency:0,minLatency:1/0,maxLatency:0,spanKinds:new Set,nodeType:`service`}),o!==s){let e=`${o}->${s}`,r=n.get(e);if(!r)if(r={id:e,source:o,target:s,requestCount:0,errorCount:0,avgLatency:0,p50Latency:0,p99Latency:0,latencies:[]},n.set(e,r),!t.has(s))t.set(s,{id:s,name:s,requestCount:0,errorCount:0,avgLatency:0,minLatency:1/0,maxLatency:0,spanKinds:new Set,nodeType:VP(i)});else{let e=t.get(s),n=VP(i);n!==`service`&&(e.nodeType=n)}r.requestCount++,i.status.code===`ERROR`&&r.errorCount++,r.avgLatency=(r.avgLatency*(r.requestCount-1)+i.duration)/r.requestCount,r.latencies.push(i.duration);let a=[...r.latencies].sort((e,t)=>e-t);r.p50Latency=HP(a,50),r.p99Latency=HP(a,99)}}if(i.kind!==`SERVER`||!i.parentSpanId)continue;let l=e.get(i.parentSpanId);if(!l||l.kind!==`CLIENT`)continue;let u=BP(l,r.service);if(u===a)continue;let d=`${u}->${a}`;n.has(d)||n.set(d,{id:d,source:u,target:a,requestCount:1,errorCount:+(i.status.code===`ERROR`),avgLatency:i.duration,p50Latency:i.duration,p99Latency:i.duration,latencies:[i.duration]})}}return{nodes:[...t.values()].map(e=>({...e,minLatency:e.minLatency===1/0?0:e.minLatency})),connections:[...n.values()]}}function WP(e,t){let n=new Map;if(e.length===0)return n;if(e.length===1)return n.set(e[0].id,{x:180,y:92}),n;let r=e.map(e=>e.id),i=new Map,a=new Map;for(let e of r)i.set(e,[]),a.set(e,[]);for(let e of t)i.has(e.source)&&i.get(e.source).push(e.target),a.has(e.target)&&a.get(e.target).push(e.source);let o=new Map,s=r.filter(e=>(a.get(e)?.length??0)===0),c=s.length>0?s:r,l=[...c];for(let e of c)o.set(e,0);for(;l.length>0;){let e=l.shift(),t=o.get(e)??0;for(let n of i.get(e)??[])(o.get(n)??-1)<=t&&(o.set(n,t+1),l.push(n))}for(let e of r)o.has(e)||o.set(e,0);let u=Math.max(...Array.from(o.values())),d=Array.from({length:u+1},()=>[]);for(let e of r)d[o.get(e)].push(e);for(let e=0;e<2;e++)for(let e=1;e<=u;e++){let t=d[e-1],n=new Map;t.forEach((e,t)=>n.set(e,t)),d[e].sort((e,t)=>{let r=a.get(e)??[],i=a.get(t)??[];return(r.length>0?r.reduce((e,t)=>e+(n.get(t)??0),0)/r.length:999)-(i.length>0?i.reduce((e,t)=>e+(n.get(t)??0),0)/i.length:999)})}let f=Math.max(...d.map(e=>e.length)),p=Math.max(f*122-RP,52);for(let e=0;e<=u;e++){let t=d[e],r=(p-(t.length*122-RP))/2,i=e*LP+140/2+zP;t.forEach((e,t)=>{n.set(e,{x:i-140/2,y:r+t*122+zP})})}return n}function GP(e,t,n){return Math.min(n,Math.max(t,e))}function KP(e,t,n,r,i){let a=GP(t,r,i);if(a===e.scale)return e;let o=(n.x-e.translate.x)/e.scale,s=(n.y-e.translate.y)/e.scale;return{scale:a,translate:{x:n.x-o*a,y:n.y-s*a}}}function qP(e,t,n,r,i,a){let o=e.maxX-e.minX,s=e.maxY-e.minY,c=t-r*2,l=n-r*2,u=GP(Math.min(o>0?c/o:a,s>0?l/s:a),i,a);return{scale:u,translate:{x:(t-o*u)/2-e.minX*u,y:(n-s*u)/2-e.minY*u}}}function JP(e){let{viewWidth:t,viewHeight:n,svg:r,contentBounds:i,minScale:a=.2,maxScale:o=3,zoomStep:s=1.2,fitPadding:c=24}=e,l=N(1),u=N(yr({x:0,y:0})),d=N(!1),f={x:0,y:0,tx:0,ty:0},p=(e,i)=>{let a=r();if(!a)return{x:e,y:i};let o=a.getBoundingClientRect(),s=o.width>0?t()/o.width:1,c=o.height>0?n()/o.height:1;return{x:(e-o.left)*s,y:(i-o.top)*c}},m=e=>{P(l,e.scale,!0),P(u,e.translate,!0)},h=(e,t)=>m(KP({scale:z(l),translate:z(u)},e,t,a,o)),g=()=>{P(l,1),P(u,{x:0,y:0},!0)},_=e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let t=p(e.clientX,e.clientY),n=e.deltaY<0?s:1/s;h(z(l)*n,t)},v=e=>{e.button===0&&(e.target?.closest(`[data-node]`)||(P(d,!0),f={x:e.clientX,y:e.clientY,tx:z(u).x,ty:z(u).y},r()?.setPointerCapture?.(e.pointerId)))},y=e=>{let i=r();if(!z(d)||!i)return;let a=i.getBoundingClientRect(),o=a.width>0?t()/a.width:1,s=a.height>0?n()/a.height:1;P(u,{x:f.tx+(e.clientX-f.x)*o,y:f.ty+(e.clientY-f.y)*s},!0)},b=e=>{z(d)&&(P(d,!1),r()?.releasePointerCapture?.(e.pointerId))},x=()=>({x:t()/2,y:n()/2});return{get scale(){return z(l)},get translate(){return z(u)},get isPanning(){return z(d)},onWheel:_,onPointerDown:v,onPointerMove:y,onPointerEnd:b,zoomIn:()=>h(z(l)*s,x()),zoomOut:()=>h(z(l)/s,x()),fit:()=>{let e=i();if(!e){g();return}m(qP(e,t(),n(),c,a,o))},reset:g}}var YP=(e,t=p,n=p,r)=>{let i=pn(()=>g(r?.(),!1));var a=XP(),o=F(a),s=F(o,!0);D(o);var c=L(o,2),l=F(c,!0);D(c),D(a),R(e=>{U(s,t()),q(c,1,e),U(l,n())},[()=>K(Q(`font-medium`,z(i)?`text-danger`:`text-fg`))]),H(e,a)},XP=V(`<div class="flex justify-between text-xs"><span class="text-fg-subtle"> </span> <span> </span></div>`),ZP=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle p-8"><!> <p class="text-sm text-center">No traces available to build service map. <br/> Traces will appear here as they are captured.</p></div>`),QP=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle p-8"><!> <p class="text-sm text-center">No services detected in traces. <br/> Service information is extracted from span attributes.</p></div>`),$P=V(`<span class="text-xs text-fg-subtle flex-shrink-0">No service matches</span>`),eF=ua(`<g><path fill="none" stroke-linecap="round"></path><text text-anchor="middle"> </text></g>`),tF=ua(`<rect fill="none" class="stroke-accent"></rect>`),nF=ua(`<rect></rect><path></path><ellipse></ellipse>`,1),rF=ua(`<polygon></polygon>`),iF=ua(`<rect></rect>`),aF=ua(`<rect fill="#64748b"></rect>`),oF=ua(`<tspan fill="#dc2626" class="font-semibold"> </tspan>`),sF=ua(`<g role="button" tabindex="0"><!><g filter="url(#nodeShadow)"><!></g><!><text text-anchor="middle" class="text-[11px] font-semibold" fill="#1f2937"> </text><text text-anchor="middle" class="text-[10px]" fill="#475569"> <!></text></g>`),cF=V(`<div class="space-y-3 pr-8"><!> <!> <!> <!> <!> <!></div>`),lF=V(`<span class="text-danger"> </span>`),uF=V(`<div class="text-xs p-2 bg-surface rounded border border-line"><div class="flex items-center gap-1 text-fg-muted"><span class="font-medium"> </span> <!></div> <div class="flex items-center gap-2 mt-1 text-fg-subtle"><span> </span> <!> <span> </span></div></div>`),dF=V(`<div class="mt-4 pt-4 border-t border-line"><div class="group flex items-center justify-between mb-2"><h5 class="text-xs font-medium text-fg-muted">Connections</h5> <!></div> <div class="space-y-2"></div></div>`),fF=V(`<div class="w-64 border-l border-line bg-subtle overflow-auto"><div class="p-4"><div class="flex items-center justify-between mb-4"><div class="group flex items-center gap-1 min-w-0"><h4 class="font-semibold text-fg truncate"> </h4> <!></div> <button class="text-fg-subtle hover:text-fg-muted">×</button></div> <!> <!></div></div>`),pF=V(`<div class="flex flex-col h-full"><div class="px-4 py-3 border-b border-line flex items-center justify-between"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg"><!> </h3> <div class="text-xs text-fg-subtle"> </div></div> <div class="px-4 py-2 border-b border-line flex items-center gap-2"><!> <!></div> <div class="flex-1 overflow-hidden flex"><div class="relative flex-1 overflow-auto p-4"><svg role="application" aria-label="Service map. Drag to pan, ctrl or cmd and scroll to zoom."><defs><marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto"><polygon points="0 0, 10 3.5, 0 7" fill="#94a3b8"></polygon></marker><marker id="arrowhead-error" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto"><polygon points="0 0, 10 3.5, 0 7" fill="#ef4444"></polygon></marker><filter id="nodeShadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="1" stdDeviation="2" flood-color="#0f172a" flood-opacity="0.14"></feDropShadow></filter></defs><g><!><!></g></svg> <div class="absolute bottom-3 right-3 flex flex-col gap-1 rounded-md border border-line bg-surface p-1 shadow-sm"><button type="button" class="flex h-7 w-7 items-center justify-center rounded text-fg-muted hover:bg-hover hover:text-fg focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent transition-colors" title="Zoom in" aria-label="Zoom in"><!></button> <button type="button" class="flex h-7 w-7 items-center justify-center rounded text-fg-muted hover:bg-hover hover:text-fg focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent transition-colors" title="Zoom out" aria-label="Zoom out"><!></button> <button type="button" class="flex h-7 w-7 items-center justify-center rounded text-fg-muted hover:bg-hover hover:text-fg focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent transition-colors" title="Fit to content" aria-label="Fit to content"><!></button> <button type="button" class="flex h-7 w-7 items-center justify-center rounded text-fg-muted hover:bg-hover hover:text-fg focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent transition-colors" title="Reset to 1:1" aria-label="Reset zoom to 1:1"><!></button></div></div> <!></div> <div class="flex items-center gap-4 px-4 py-2 border-t border-line bg-subtle text-xs"><div class="flex items-center gap-1"><div class="w-4 h-4 rounded-full border-2 border-accent bg-surface"></div> <span class="text-fg-muted">Healthy</span></div> <div class="flex items-center gap-1"><div class="w-4 h-4 rounded-full border-2 border-danger-border bg-surface"></div> <span class="text-fg-muted">Has Errors</span></div> <div class="flex items-center gap-1"><div class="w-6 h-0.5 bg-fg-subtle"></div> <span class="text-fg-muted">Connection</span></div></div></div>`);function mF(e,t){it(t,!0);let n=M(()=>vl.value),r=N(null),i=N(null),a=N(``),o=M(()=>UP(z(n))),s=M(()=>z(o).nodes),c=M(()=>z(o).connections),l=M(()=>z(a).length>0);function u(e){return I_(z(a).toLowerCase(),[e.name])}let d=M(()=>z(s).filter(u)),f=M(()=>new Set(z(d).map(e=>e.id))),p=M(()=>z(d).length>0),m=M(()=>WP(z(s),z(c))),h=M(()=>{let e=400;for(let[,t]of z(m))t.x+140+20>e&&(e=t.x+140+20);return e}),g=M(()=>{let e=300;for(let[,t]of z(m))t.y+52+20>e&&(e=t.y+52+20);return e}),_=N(null),v=JP({viewWidth:()=>z(h),viewHeight:()=>z(g),svg:()=>z(_),contentBounds:()=>{let e=1/0,t=1/0,n=-1/0,r=-1/0;for(let[,i]of z(m))e=Math.min(e,i.x),t=Math.min(t,i.y),n=Math.max(n,i.x+140),r=Math.max(r,i.y+52);return Number.isFinite(e)?{minX:e,minY:t,maxX:n,maxY:r}:null}}),y=M(()=>z(r)?z(s).find(e=>e.id===z(r))??null:null);function b(e,t){if(e.key===`Enter`||e.key===` `){e.preventDefault(),P(r,z(r)===t?null:t,!0);return}e.key===`Escape`&&z(r)&&(e.stopPropagation(),P(r,null))}let x=M(()=>z(r)?z(c).filter(e=>e.source===z(r)||e.target===z(r)):[]),S=M(()=>z(x).length>0?JSON.stringify(z(x).map(e=>({source:e.source,target:e.target,requests:e.requestCount,errors:e.errorCount,avgLatency:ad(e.avgLatency)})),null,2):``),C=M(()=>{if(!z(y))return``;let e=z(y);return JSON.stringify({service:e.name,requests:e.requestCount,errors:e.errorCount,errorRate:`${(e.errorCount/e.requestCount*100).toFixed(1)}%`,avgLatency:ad(e.avgLatency),minLatency:ad(e.minLatency),maxLatency:ad(e.maxLatency),connections:z(x).map(e=>({source:e.source,target:e.target,requests:e.requestCount,errors:e.errorCount,avgLatency:ad(e.avgLatency)}))},null,2)});var w=da(),T=I(w),ee=e=>{var t=ZP();Yf(F(t),{size:48,class:`mb-4 opacity-50`}),Ke(2),D(t),H(e,t)},te=e=>{var t=QP();Ch(F(t),{size:48,class:`mb-4 opacity-50`}),Ke(2),D(t),H(e,t)},ne=e=>{var t=pF(),n=F(t),o=F(n),u=F(o);Yf(u,{size:16});var w=L(u);D(o);var T=L(o,2),ee=F(T);D(T),D(n);var te=L(n,2),ne=F(te);F_(ne,{placeholder:`Find a service by name…`,ariaLabel:`Find a service by name`,get value(){return z(a)},set value(e){P(a,e,!0)}});var re=L(ne,2),ie=e=>{H(e,$P())};W(re,e=>{z(l)&&!z(p)&&e(ie)}),D(te);var ae=L(te,2),oe=F(ae),se=F(oe);co(se,`min-height: 300px;`);var ce=L(F(se)),le=F(ce);G(le,17,()=>z(c),e=>e.id,(e,t)=>{let n=M(()=>z(m).get(z(t).source)),i=M(()=>z(m).get(z(t).target));var a=da(),o=I(a),s=e=>{let a=M(()=>z(r)===z(t).source||z(r)===z(t).target),o=M(()=>z(t).errorCount>0),s=M(()=>z(n).x+140),c=M(()=>z(n).y+52/2),l=M(()=>z(i).x),u=M(()=>z(i).y+52/2),d=M(()=>Math.abs(z(l)-z(s))*.5),f=M(()=>z(t).requestCount>0?z(t).errorCount/z(t).requestCount*100:0),p=M(()=>z(o)?`${z(t).requestCount}× · ${z(f).toFixed(0)}% err · ${ad(z(t).p50Latency)}`:`${z(t).requestCount}× · ${ad(z(t).p50Latency)}`);var m=eF(),h=F(m),g=L(h),_=F(g,!0);D(g),D(m),R(e=>{J(h,`d`,`M${z(s)},${z(c)} C${z(s)+z(d)},${z(c)} ${z(l)-z(d)},${z(u)} ${z(l)},${z(u)}`),J(h,`stroke`,z(o)?`#ef4444`:`#94a3b8`),J(h,`stroke-width`,z(o)||z(a)?2.5:1.5),J(h,`stroke-dasharray`,z(o)?`6 4`:void 0),J(h,`stroke-opacity`,z(r)&&!z(a)?.2:1),J(h,`marker-end`,`url(#${z(o)?`arrowhead-error`:`arrowhead`})`),J(g,`x`,(z(s)+z(l))/2),J(g,`y`,(z(c)+z(u))/2-6),q(g,0,e),J(g,`opacity`,z(r)&&!z(a)?.25:1),U(_,z(p))},[()=>K(Q(`at-edge-label text-[10px]`,z(o)?`fill-danger font-medium`:`fill-fg-subtle`))]),H(e,m)};W(o,e=>{z(n)&&z(i)&&e(s)}),H(e,a)}),G(L(le),17,()=>z(s),e=>e.id,(e,t)=>{let n=M(()=>z(m).get(z(t).id));var a=da(),o=I(a),s=e=>{let a=M(()=>z(r)===z(t).id),o=M(()=>z(i)===z(t).id),s=M(()=>z(t).errorCount>0),c=M(()=>z(f).has(z(t).id)),u=M(()=>z(l)&&!z(c)),d=M(()=>pg(z(t).id)),p=M(()=>z(d).fill),m=M(()=>z(s)?`#ef4444`:z(d).stroke),h=M(()=>z(a)||z(s)?2.5:z(o)?2:1.5);var g=sF(),_=F(g),v=e=>{var t=tF();J(t,`x`,-3),J(t,`y`,-3),J(t,`rx`,11),J(t,`stroke-width`,2.5),R(()=>{J(t,`width`,146),J(t,`height`,58)}),H(e,t)};W(_,e=>{z(l)&&z(c)&&e(v)});var y=L(_),S=F(y),C=e=>{var t=nF(),n=I(t);J(n,`x`,2),J(n,`y`,6);var r=L(n),i=L(r);J(i,`cy`,6),J(i,`ry`,6),R(()=>{J(n,`width`,136),J(n,`height`,40),J(n,`fill`,z(p)),J(r,`d`,`M2,46 A${140/2-2},6 0 0,0 138,46 L138,6 A${140/2-2},6 0 0,1 2,6 Z`),J(r,`fill`,z(p)),J(r,`stroke`,z(m)),J(r,`stroke-width`,z(h)),J(i,`cx`,140/2),J(i,`rx`,140/2-2),J(i,`fill`,z(p)),J(i,`stroke`,z(m)),J(i,`stroke-width`,z(h))}),H(e,t)},w=e=>{var t=rF();R(()=>{J(t,`points`,`${140/2},2 138,${52/4} 138,${156/4} ${140/2},50 2,${156/4} 2,${52/4}`),J(t,`fill`,z(p)),J(t,`stroke`,z(m)),J(t,`stroke-width`,z(h))}),H(e,t)},T=e=>{var t=iF();J(t,`x`,2),J(t,`y`,2),J(t,`rx`,8),R(()=>{J(t,`width`,136),J(t,`height`,48),J(t,`fill`,z(p)),J(t,`stroke`,z(m)),J(t,`stroke-width`,z(h))}),H(e,t)};W(S,e=>{z(t).nodeType===`database`?e(C):z(t).nodeType===`messaging`?e(w,1):e(T,-1)}),D(y);var ee=L(y),te=e=>{var t=aF();J(t,`x`,0),J(t,`y`,0),J(t,`rx`,8),J(t,`opacity`,.4),R(()=>{J(t,`width`,140),J(t,`height`,52)}),H(e,t)},ne=M(()=>z(r)&&!z(a)&&!z(x).some(e=>e.source===z(t).id||e.target===z(t).id));W(ee,e=>{z(ne)&&e(te)});var re=L(ee),ie=F(re,!0);D(re);var ae=L(re),oe=F(ae),se=L(oe),ce=e=>{var n=oF(),r=F(n);D(n),R(()=>U(r,` · ${z(t).errorCount??``} err`)),H(e,n)};W(se,e=>{z(s)&&e(ce)}),D(ae),D(g),R((e,r)=>{J(g,`data-node`,z(t).id),J(g,`transform`,`translate(${z(n).x}, ${z(n).y})`),q(g,0,e),J(g,`aria-label`,z(t).name),J(re,`x`,140/2),J(re,`y`,52/2-3),U(ie,r),J(ae,`x`,140/2),J(ae,`y`,38),U(oe,`${z(t).requestCount??``} span${z(t).requestCount===1?``:`s`} `)},[()=>K(Q(`cursor-pointer`,z(u)&&`opacity-30`)),()=>z(t).name.length>16?z(t).name.slice(0,14)+`…`:z(t).name]),B(`click`,g,()=>P(r,z(a)?null:z(t).id,!0)),B(`keydown`,g,e=>b(e,z(t).id)),ta(`mouseenter`,g,()=>P(i,z(t).id,!0)),ta(`mouseleave`,g,()=>P(i,null)),H(e,g)};W(o,e=>{z(n)&&e(s)}),H(e,a)}),D(ce),D(se),Uo(se,e=>P(_,e),()=>z(_));var E=L(se,2),ue=F(E);sh(F(ue),{size:14}),D(ue);var de=L(ue,2);zm(F(de),{size:14}),D(de);var fe=L(de,2);_h(F(fe),{size:14}),D(fe);var pe=L(fe,2);ph(F(pe),{size:14}),D(pe),D(E),D(oe);var me=L(oe,2),he=e=>{var t=fF(),n=F(t),i=F(n),a=F(i),o=F(a),s=F(o,!0);D(o),X_(L(o,2),{get value(){return z(y).name},label:`Copy service name`,class:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`}),D(a);var c=L(a,2);D(i);var l=L(i,2);M_(l,{get content(){return z(C)},children:(e,t)=>{var n=cF(),r=F(n);{let e=M(()=>z(y).requestCount.toString());YP(r,()=>`Requests`,()=>z(e))}var i=L(r,2);{let e=M(()=>z(y).errorCount.toString());YP(i,()=>`Errors`,()=>z(e),()=>z(y).errorCount>0)}var a=L(i,2);{let e=M(()=>`${(z(y).errorCount/z(y).requestCount*100).toFixed(1)}%`);YP(a,()=>`Error Rate`,()=>z(e),()=>z(y).errorCount>0)}var o=L(a,2);{let e=M(()=>ad(z(y).avgLatency));YP(o,()=>`Avg Latency`,()=>z(e))}var s=L(o,2);{let e=M(()=>ad(z(y).minLatency));YP(s,()=>`Min Latency`,()=>z(e))}var c=L(s,2);{let e=M(()=>ad(z(y).maxLatency));YP(c,()=>`Max Latency`,()=>z(e))}D(n),H(e,n)},$$slots:{default:!0}});var u=L(l,2),d=e=>{var t=dF(),n=F(t);X_(L(F(n),2),{get value(){return z(S)},label:`Copy connections`,class:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`}),D(n);var i=L(n,2);G(i,21,()=>z(x),e=>e.id,(e,t)=>{var n=uF(),i=F(n),a=F(i),o=F(a,!0);D(a);var s=L(a,2),c=e=>{tp(e,{size:10})},l=e=>{tp(e,{size:10,class:`rotate-180`})};W(s,e=>{z(t).source===z(r)?e(c):e(l,-1)}),D(i);var u=L(i,2),d=F(u),f=F(d);D(d);var p=L(d,2),m=e=>{var n=lF(),r=F(n);D(n),R(()=>U(r,`${z(t).errorCount??``} err`)),H(e,n)};W(p,e=>{z(t).errorCount>0&&e(m)});var h=L(p,2),g=F(h,!0);D(h),D(u),D(n),R(e=>{U(o,z(t).source===z(r)?z(t).target:z(t).source),U(f,`${z(t).requestCount??``} req`),U(g,e)},[()=>ad(z(t).avgLatency)]),H(e,n)}),D(i),D(t),H(e,t)};W(u,e=>{z(x).length>0&&e(d)}),D(n),D(t),R(()=>U(s,z(y).name)),B(`click`,c,()=>P(r,null)),H(e,t)};W(me,e=>{z(y)&&e(he)}),D(ae),Ke(2),D(t),R(e=>{U(w,` Service Map (${(z(l)?`${z(d).length} of ${z(s).length}`:z(s).length)??``} services)`),U(ee,`${z(c).length??``} connections`),J(se,`viewBox`,`0 0 ${z(h)} ${z(g)}`),q(se,0,e),J(ce,`transform`,`translate(${v.translate.x}, ${v.translate.y}) scale(${v.scale})`)},[()=>K(Q(`w-full h-full`,v.isPanning?`cursor-grabbing`:`cursor-grab`))]),ta(`wheel`,se,function(...e){v.onWheel?.apply(this,e)}),B(`pointerdown`,se,function(...e){v.onPointerDown?.apply(this,e)}),B(`pointermove`,se,function(...e){v.onPointerMove?.apply(this,e)}),B(`pointerup`,se,function(...e){v.onPointerEnd?.apply(this,e)}),ta(`pointercancel`,se,function(...e){v.onPointerEnd?.apply(this,e)}),ta(`pointerleave`,se,function(...e){v.onPointerEnd?.apply(this,e)}),B(`click`,ue,function(...e){v.zoomIn?.apply(this,e)}),B(`click`,de,function(...e){v.zoomOut?.apply(this,e)}),B(`click`,fe,function(...e){v.fit?.apply(this,e)}),B(`click`,pe,function(...e){v.reset?.apply(this,e)}),H(e,t)};W(T,e=>{z(n).length===0?e(ee):z(s).length===0?e(te,1):e(ne,-1)}),H(e,w),at()}na([`pointerdown`,`pointermove`,`pointerup`,`click`,`keydown`]);async function hF(e,t=``){let n=t?`?q=${encodeURIComponent(t)}`:``;return vF(`${e.baseUrl}/api/metrics${n}`,{method:`GET`,signal:e.signal},e,e=>e.metrics??[])}async function gF(e,t){let n={name:e.name};return e.window&&(n.window=e.window),n.maxPoints=e.maxPoints??1500,vF(`${t.baseUrl}/api/query/metrics`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(n),signal:t.signal},t,e=>e.series??[])}async function _F(e,t){return vF(`${t.baseUrl}/api/metrics?name=${encodeURIComponent(e)}`,{method:`DELETE`,signal:t.signal},t,e=>e.deletedSeries??0)}async function vF(e,t,n,r){let i;try{i=await n.fetch(e,t)}catch(e){return yF(e)?{status:`aborted`}:{status:`error`,message:e instanceof Error?`Network error: ${e.message}`:`Network error`}}if(i.status===403)return{status:`error`,message:`Forbidden: the devtools server rejected this origin. Open the viewer from the same machine.`};let a;try{a=await i.json()}catch{return{status:`error`,message:`Unexpected response from ${n.baseUrl} (not JSON)`}}return i.ok?{status:`ok`,data:r(a)}:{status:`error`,message:`Server error: ${a.error??i.statusText}`}}function yF(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`}function bF(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function xF(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function SF(e){let t,n,r;e.length===2?(t=e===bF||e===xF?e:CF,n=e,r=e):(t=bF,n=(t,n)=>bF(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function CF(){return 0}function wF(e){return e===null?NaN:+e}var TF=SF(bF),EF=TF.right;TF.left,SF(wF).center;var DF=Math.sqrt(50),OF=Math.sqrt(10),kF=Math.sqrt(2);function AF(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=DF?10:a>=OF?5:a>=kF?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?AF(e,t,n*2):[s,c,l]}function jF(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?AF(t,e,n):AF(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r)if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o;else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function MF(e,t,n){return t=+t,e=+e,n=+n,AF(e,t,n)[2]}function NF(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?MF(t,e,n):MF(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function PF(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function FF(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function IF(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function LF(){}var RF=.7,zF=1/RF,BF=`\\s*([+-]?\\d+)\\s*`,VF=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,HF=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,UF=/^#([0-9a-f]{3,8})$/,WF=RegExp(`^rgb\\(${BF},${BF},${BF}\\)$`),GF=RegExp(`^rgb\\(${HF},${HF},${HF}\\)$`),KF=RegExp(`^rgba\\(${BF},${BF},${BF},${VF}\\)$`),qF=RegExp(`^rgba\\(${HF},${HF},${HF},${VF}\\)$`),JF=RegExp(`^hsl\\(${VF},${HF},${HF}\\)$`),YF=RegExp(`^hsla\\(${VF},${HF},${HF},${VF}\\)$`),XF={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};FF(LF,tI,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ZF,formatHex:ZF,formatHex8:QF,formatHsl:$F,formatRgb:eI,toString:eI});function ZF(){return this.rgb().formatHex()}function QF(){return this.rgb().formatHex8()}function $F(){return mI(this).formatHsl()}function eI(){return this.rgb().formatRgb()}function tI(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=UF.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?nI(t):n===3?new oI(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?rI(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?rI(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=WF.exec(e))?new oI(t[1],t[2],t[3],1):(t=GF.exec(e))?new oI(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=KF.exec(e))?rI(t[1],t[2],t[3],t[4]):(t=qF.exec(e))?rI(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=JF.exec(e))?pI(t[1],t[2]/100,t[3]/100,1):(t=YF.exec(e))?pI(t[1],t[2]/100,t[3]/100,t[4]):XF.hasOwnProperty(e)?nI(XF[e]):e===`transparent`?new oI(NaN,NaN,NaN,0):null}function nI(e){return new oI(e>>16&255,e>>8&255,e&255,1)}function rI(e,t,n,r){return r<=0&&(e=t=n=NaN),new oI(e,t,n,r)}function iI(e){return e instanceof LF||(e=tI(e)),e?(e=e.rgb(),new oI(e.r,e.g,e.b,e.opacity)):new oI}function aI(e,t,n,r){return arguments.length===1?iI(e):new oI(e,t,n,r??1)}function oI(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}FF(oI,aI,IF(LF,{brighter(e){return e=e==null?zF:zF**+e,new oI(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?RF:RF**+e,new oI(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new oI(dI(this.r),dI(this.g),dI(this.b),uI(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:sI,formatHex:sI,formatHex8:cI,formatRgb:lI,toString:lI}));function sI(){return`#${fI(this.r)}${fI(this.g)}${fI(this.b)}`}function cI(){return`#${fI(this.r)}${fI(this.g)}${fI(this.b)}${fI((isNaN(this.opacity)?1:this.opacity)*255)}`}function lI(){let e=uI(this.opacity);return`${e===1?`rgb(`:`rgba(`}${dI(this.r)}, ${dI(this.g)}, ${dI(this.b)}${e===1?`)`:`, ${e})`}`}function uI(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function dI(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function fI(e){return e=dI(e),(e<16?`0`:``)+e.toString(16)}function pI(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new gI(e,t,n,r)}function mI(e){if(e instanceof gI)return new gI(e.h,e.s,e.l,e.opacity);if(e instanceof LF||(e=tI(e)),!e)return new gI;if(e instanceof gI)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new gI(o,s,c,e.opacity)}function hI(e,t,n,r){return arguments.length===1?mI(e):new gI(e,t,n,r??1)}function gI(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}FF(gI,hI,IF(LF,{brighter(e){return e=e==null?zF:zF**+e,new gI(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?RF:RF**+e,new gI(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new oI(yI(e>=240?e-240:e+120,i,r),yI(e,i,r),yI(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new gI(_I(this.h),vI(this.s),vI(this.l),uI(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=uI(this.opacity);return`${e===1?`hsl(`:`hsla(`}${_I(this.h)}, ${vI(this.s)*100}%, ${vI(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function _I(e){return e=(e||0)%360,e<0?e+360:e}function vI(e){return Math.max(0,Math.min(1,e||0))}function yI(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var bI=e=>()=>e;function xI(e,t){return function(n){return e+n*t}}function SI(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function CI(e){return(e=+e)==1?wI:function(t,n){return n-t?SI(t,n,e):bI(isNaN(t)?n:t)}}function wI(e,t){var n=t-e;return n?xI(e,n):bI(isNaN(e)?t:e)}var TI=(function e(t){var n=CI(t);function r(e,t){var r=n((e=aI(e)).r,(t=aI(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=wI(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function EI(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function DI(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function OI(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=LI(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function kI(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function AI(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function jI(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=LI(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var MI=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,NI=new RegExp(MI.source,`g`);function PI(e){return function(){return e}}function FI(e){return function(t){return e(t)+``}}function II(e,t){var n=MI.lastIndex=NI.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=MI.exec(e))&&(i=NI.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:AI(r,i)})),n=NI.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?FI(c[0].x):PI(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function LI(e,t){var n=typeof t,r;return t==null||n===`boolean`?bI(t):(n===`number`?AI:n===`string`?(r=tI(t))?(t=r,TI):II:t instanceof tI?TI:t instanceof Date?kI:DI(t)?EI:Array.isArray(t)?OI:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?jI:AI)(e,t)}function RI(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function zI(e){return function(){return e}}function BI(e){return+e}var VI=[0,1];function HI(e){return e}function UI(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:zI(isNaN(t)?NaN:.5)}function WI(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function GI(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=UI(i,r),a=n(o,a)):(r=UI(r,i),a=n(a,o)),function(e){return a(r(e))}}function KI(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=UI(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=EF(e,t,1,r)-1;return a[n](i[n](t))}}function qI(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function JI(){var e=VI,t=VI,n=LI,r,i,a,o=HI,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==HI&&(o=WI(e[0],e[n-1])),s=n>2?KI:GI,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||(c=s(e.map(r),t,n)))(r(o(i)))}return d.invert=function(n){return o(i((l||(l=s(t,e.map(r),AI)))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,BI),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=RI,u()},d.clamp=function(e){return arguments.length?(o=e?!0:HI,u()):o!==HI},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function YI(){return JI()(HI,HI)}function XI(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function ZI(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function QI(e){return e=ZI(Math.abs(e)),e?e[1]:NaN}function $I(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function eL(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var tL=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function nL(e){if(!(t=tL.exec(e)))throw Error(`invalid format: `+e);var t;return new rL({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}nL.prototype=rL.prototype;function rL(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}rL.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function iL(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var aL;function oL(e,t){var n=ZI(e,t);if(!n)return e+``;var r=n[0],i=n[1],a=i-(aL=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+ZI(e,Math.max(0,t+a-1))[0]}function sL(e,t){var n=ZI(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var cL={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:XI,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>sL(e*100,t),r:sL,s:oL,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function lL(e){return e}var uL=Array.prototype.map,dL=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function fL(e){var t=e.grouping===void 0||e.thousands===void 0?lL:$I(uL.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?lL:eL(uL.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e){e=nL(e);var l=e.fill,u=e.align,d=e.sign,f=e.symbol,p=e.zero,m=e.width,h=e.comma,g=e.precision,_=e.trim,v=e.type;v===`n`?(h=!0,v=`g`):cL[v]||(g===void 0&&(g=12),_=!0,v=`g`),(p||l===`0`&&u===`=`)&&(p=!0,l=`0`,u=`=`);var y=f===`$`?n:f===`#`&&/[boxX]/.test(v)?`0`+v.toLowerCase():``,b=f===`$`?r:/[%p]/.test(v)?o:``,x=cL[v],S=/[defgprs%]/.test(v);g=g===void 0?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g));function C(e){var n=y,r=b,o,f,C;if(v===`c`)r=x(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:x(Math.abs(e),g),_&&(e=iL(e)),w&&+e==0&&d!==`+`&&(w=!1),n=(w?d===`(`?d:s:d===`-`||d===`(`?``:d)+n,r=(v===`s`?dL[8+aL/3]:``)+r+(w&&d===`(`?`)`:``),S){for(o=-1,f=e.length;++o<f;)if(C=e.charCodeAt(o),48>C||C>57){r=(C===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}h&&!p&&(e=t(e,1/0));var T=n.length+e.length+r.length,ee=T<m?Array(m-T+1).join(l):``;switch(h&&p&&(e=t(ee+e,ee.length?m-r.length:1/0),ee=``),u){case`<`:e=n+e+r+ee;break;case`=`:e=n+ee+e+r;break;case`^`:e=ee.slice(0,T=ee.length>>1)+n+e+r+ee.slice(T);break;default:e=ee+n+e+r;break}return a(e)}return C.toString=function(){return e+``},C}function u(e,t){var n=l((e=nL(e),e.type=`f`,e)),r=Math.max(-8,Math.min(8,Math.floor(QI(t)/3)))*3,i=10**-r,a=dL[8+r/3];return function(e){return n(i*e)+a}}return{format:l,formatPrefix:u}}var pL,mL,hL;gL({thousands:`,`,grouping:[3],currency:[`$`,``]});function gL(e){return pL=fL(e),mL=pL.format,hL=pL.formatPrefix,pL}function _L(e){return Math.max(0,-QI(Math.abs(e)))}function vL(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(QI(t)/3)))*3-QI(Math.abs(e)))}function yL(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,QI(t)-QI(e))+1}function bL(e,t,n,r){var i=NF(e,t,n),a;switch(r=nL(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=vL(i,o))&&(r.precision=a),hL(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=yL(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=_L(i))&&(r.precision=a-(r.type===`%`)*2);break}return mL(r)}function xL(e){var t=e.domain;return e.ticks=function(e){var n=t();return jF(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return bL(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??(n=10);var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=MF(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function SL(){var e=YI();return e.copy=function(){return qI(e,SL())},PF.apply(e,arguments),xL(e)}function CL(e){return function(){return e}}var wL=Math.PI,TL=2*wL,EL=1e-6,DL=TL-EL;function OL(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function kL(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return OL;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var AL=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?OL:kL(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>EL)if(!(Math.abs(u*s-c*l)>EL)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((wL-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>EL&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>EL||Math.abs(this._y1-l)>EL)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%TL+TL),d>DL?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>EL&&this._append`A${n},${n},0,${+(d>=wL)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function jL(){return new AL}jL.prototype=AL.prototype;function ML(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new AL(t)}Array.prototype.slice;function NL(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function PL(e){this._context=e}PL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function FL(e){return new PL(e)}function IL(e){return e[0]}function LL(e){return e[1]}function RL(e,t){var n=CL(!0),r=null,i=FL,a=null,o=ML(s);e=typeof e==`function`?e:e===void 0?IL:CL(e),t=typeof t==`function`?t:t===void 0?LL:CL(t);function s(s){var c,l=(s=NL(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return s.x=function(t){return arguments.length?(e=typeof t==`function`?t:CL(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:CL(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:CL(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),s):r},s}function zL(e,t,n){var r=null,i=CL(!0),a=null,o=FL,s=null,c=ML(l);e=typeof e==`function`?e:e===void 0?IL:CL(+e),t=typeof t==`function`?t:CL(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?LL:CL(+n);function l(l){var u,d,f,p=(l=NL(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h)if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return RL().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:CL(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:CL(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:CL(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:CL(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:CL(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:CL(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:CL(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var BL=ua(`<svg role="img"><path fill="none" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"></path></svg>`),VL=V(`<span>—</span>`);function HL(e,t){it(t,!0);let n=Z(t,`width`,3,80),r=Z(t,`height`,3,20),i=Z(t,`color`,3,`var(--color-accent)`),a=M(()=>t.points.map(e=>e.value??0)),o=M(()=>{if(t.points.length<2)return null;let e=SL().domain([t.points[0].timestamp,t.points[t.points.length-1].timestamp]).range([1,n()-1]),i=Math.min(...z(a)),o=Math.max(...z(a)),s=SL().domain(i===o?[i-1,o+1]:[i,o]).range([r()-1,1]);return RL().x(t=>e(t.timestamp)).y(e=>s(e.value??0))(t.points)});var s=da(),c=I(s),l=e=>{var a=BL(),s=F(a);D(a),R(e=>{J(a,`width`,n()),J(a,`height`,r()),J(a,`viewBox`,`0 0 ${n()??``} ${r()??``}`),J(a,`aria-label`,t.ariaLabel??`Sparkline, ${t.points.length} points`),q(a,0,e),J(s,`d`,z(o)),J(s,`stroke`,i())},[()=>K(Q(`overflow-visible`,t.class))]),H(e,a)},u=e=>{var i=VL();R(e=>{q(i,1,e),co(i,`width:${n()??``}px;height:${r()??``}px`)},[()=>K(Q(`text-[10px] text-fg-subtle`,t.class))]),H(e,i)};W(c,e=>{z(o)?e(l):e(u,-1)}),H(e,s),at()}function UL(e,t){if(t===void 0)return e;if(t===`cumulative`&&e.length<2)return[];let n=[],r=+(t===`cumulative`);for(let i=r;i<e.length;i++){let r=e[i-1],a=r?.value??0,o=e[i].value??0,s=o;t===`cumulative`&&o>=a&&(s=o-a);let c=e[i].startTimestamp??r?.timestamp,l=c===void 0?0:(e[i].timestamp-c)/1e3;n.push({...e[i],value:l>0?s/l:s})}return n}function WL(e,t,n){if(e.length!==t.length+1)return;let r=e.reduce((e,t)=>e+t,0);if(r===0)return;let i=n*r,a=0;for(let n=0;n<e.length;n++){let r=e[n];if(a+r>=i){let e=n===0?0:t[n-1],o=n<t.length?t[n]:t[t.length-1];if(r===0)return o;let s=(i-a)/r;return e+(o-e)*s}a+=r}return t[t.length-1]}function GL(e,t){return e.length===t.length+1?t.length===0?[{label:`all`,count:e[0],from:-1/0,to:1/0}]:e.map((e,n)=>{let r=n===0?-1/0:t[n-1],i=n<t.length?t[n]:1/0;return{label:n===0?`≤${QL(t[0])}`:n===t.length?`>${QL(t[t.length-1])}`:`${QL(t[n-1])}–${QL(t[n])}`,count:e,from:r,to:i}}):[]}function KL(e){if(e.bucketCounts&&e.explicitBounds)return GL(e.bucketCounts,e.explicitBounds);if(e.scale===void 0)return[];let t=2**2**-e.scale,n=[];if(qL(n,e.negative,t,!0),e.zeroCount!==void 0){let t=e.zeroThreshold??0;n.push({label:t>0?`−${QL(t)}–${QL(t)}`:`0`,count:e.zeroCount,from:-t,to:t})}return qL(n,e.positive,t,!1),n.sort((e,t)=>e.from-t.from)}function qL(e,t,n,r){if(t)for(let i=0;i<t.bucketCounts.length;i++){let a=t.offset+i,o=n**a,s=n**(a+1),c=r?-s:o,l=r?-o:s;e.push({label:`${QL(c)}–${QL(l)}`,count:t.bucketCounts[i],from:c,to:l})}}function JL(e,t){if(e.bucketCounts&&e.explicitBounds)return WL(e.bucketCounts,e.explicitBounds,t);let n=KL(e),r=n.reduce((e,t)=>e+t.count,0);if(r===0)return;let i=t*r,a=0;for(let e of n){if(a+e.count>=i)return e.count===0?e.to:e.from+(i-a)/e.count*(e.to-e.from);a+=e.count}return n[n.length-1]?.to}function YL(e,t){if(e.length===0)return;let n=e.map(e=>e.value??0);switch(t){case`sum`:return n.reduce((e,t)=>e+t,0);case`avg`:return n.reduce((e,t)=>e+t,0)/n.length;case`min`:return Math.min(...n);case`max`:return Math.max(...n);case`last`:return n[n.length-1];case`count`:return e.length}}function XL(e,t,n){if(!Number.isFinite(e)||!Number.isFinite(t)||e===t)return[e];let r=(t-e)/Math.max(1,n),i=10**Math.floor(Math.log10(r)),a=r/i,o=(a<=1?1:a<=2?2:a<=5?5:10)*i,s=Math.floor(e/o)*o,c=Math.ceil(t/o)*o,l=[],u=Math.round((c-s)/o);for(let e=0;e<=u;e++)l.push(s+e*o);return l}function ZL(e,t){if(e.length<=t||t<3)return e;let n=Math.max(1,Math.floor((t-2)/2)),r=e.length/n,i=new Map;i.set(0,e[0]),i.set(e.length-1,e[e.length-1]);for(let t=0;t<n;t++){let n=Math.floor(t*r),a=Math.min(e.length,Math.floor((t+1)*r));if(n>=a)continue;let o=n,s=n;for(let t=n;t<a;t++){let n=e[t].value??0;n<(e[o].value??0)&&(o=t),n>(e[s].value??0)&&(s=t)}i.set(o,e[o]),i.set(s,e[s])}return[...i.entries()].sort((e,t)=>e[0]-t[0]).map(([,e])=>e)}function QL(e){return Number.isFinite(e)?Math.abs(e)>=1e3?e.toLocaleString(void 0,{maximumFractionDigits:0}):String(Math.round(e*100)/100):`∞`}function $L(e){if(e.length===0)return[];let t=[...new Set(e.flatMap(e=>e.map(e=>e.timestamp)))].sort((e,t)=>e-t),n=e.map(e=>new Map(e.map(e=>[e.timestamp,e.value??0]))),r=new Map(t.map(e=>[e,0]));return n.map(e=>t.map(t=>{let n=r.get(t)??0,i=e.get(t)??0,a=n+Math.max(0,i);return r.set(t,a),{timestamp:t,y0:n,y1:a}}))}function eR(e,t){return t.map(t=>({quantile:t,points:e.flatMap(e=>{let n=JL(e,t);return n===void 0?[]:[{timestamp:e.timestamp,value:n}]})}))}function tR(e){let t=e.filter(e=>KL(e).length>0);if(t.length===0)return{columns:[],rows:[],max:0};let n=t[0],r=KL(n),i=r.map(e=>({label:e.label,from:e.from,to:e.to}));if(i.length===0)return{columns:[],rows:[],max:0};let a=t.filter(e=>KL(e).length===r.length&&KL(e).every((e,t)=>e.label===r[t].label)),o=Math.max(0,...a.flatMap(e=>KL(e).map(e=>e.count)));return{columns:a.slice().sort((e,t)=>e.timestamp-t.timestamp).map(e=>({timestamp:e.timestamp,cells:KL(e).map(({count:e})=>({count:e,intensity:o>0?e/o:0}))})),rows:i,max:o}}var nR=V(`<div>No data in this window</div>`),rR=ua(`<line x1="0" stroke="var(--color-line-subtle)" stroke-width="1"></line><text x="-6" text-anchor="end" dominant-baseline="middle" class="fill-[var(--color-fg-subtle)] text-[10px]"> </text>`,1),iR=ua(`<text text-anchor="middle" class="fill-[var(--color-fg-subtle)] text-[10px]"> </text>`),aR=ua(`<path opacity="0.75" stroke="var(--color-surface)" stroke-width="0.5" data-testid="stack-band"></path>`),oR=ua(`<path opacity="0.15"></path>`),sR=ua(`<path fill="none" stroke-width="1.5" stroke-linejoin="round"></path>`),cR=ua(`<circle r="2.5"></circle>`),lR=ua(`<!><!>`,1),uR=ua(`<circle r="3.5" fill="var(--color-warning)" stroke="var(--color-surface)" stroke-width="1" role="button" tabindex="0" class="cursor-pointer"></circle>`),dR=ua(`<svg role="img"><g><!><!><!><!></g></svg>`);function fR(e,t){it(t,!0);let n=Z(t,`width`,3,640),r=Z(t,`height`,3,220),i=Z(t,`area`,3,!1),a=Z(t,`stacked`,3,!1),o={top:8,right:12,bottom:22,left:44},s=M(()=>Math.max(1,n()-o.left-o.right)),c=M(()=>Math.max(1,r()-o.top-o.bottom)),l=M(()=>t.series.map(e=>({...e,points:ZL(e.points,400)}))),u=M(()=>z(l).filter(e=>!t.isolated?.size||t.isolated.has(e.seriesId))),d=M(()=>a()?$L(z(u).map(e=>e.points)):null),f=M(()=>{let e=z(u).flatMap(e=>e.points);if(e.length===0)return null;let t=e.map(e=>e.timestamp),n=z(d)?z(d).flatMap(e=>e.map(e=>e.y1)):e.map(e=>e.value??0),r=Math.min(...t),i=Math.max(...t),a=Math.min(0,...n),o=Math.max(...n);return{minTime:r,maxTime:i===r?r+1:i,minValue:a,maxValue:o===a?a+1:o}}),p=M(()=>z(f)?SL().domain([z(f).minTime,z(f).maxTime]).range([0,z(s)]):null),m=M(()=>z(f)?SL().domain([z(f).minValue,z(f).maxValue]).range([z(c),0]):null),h=M(()=>z(f)?XL(z(f).minValue,z(f).maxValue,4):[]),g=M(()=>z(f)?XL(z(f).minTime,z(f).maxTime,4):[]);function _(e){return!z(p)||!z(m)||e.length===0||e.length===1?null:RL().x(e=>z(p)(e.timestamp)).y(e=>z(m)(e.value??0))(e)}function v(e){return!z(p)||!z(m)||e.length<2?null:zL().x(e=>z(p)(e.timestamp)).y0(z(m)(Math.max(0,z(f)?.minValue??0))).y1(e=>z(m)(e.value??0))(e)}function y(e){return pg(e.seriesId).stroke}function b(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function x(e){return Math.abs(e)>=1e3?e.toLocaleString(void 0,{maximumFractionDigits:0}):String(Math.round(e*1e3)/1e3)}function S(e){return!z(p)||!z(m)||e.length<2?null:zL().x(e=>z(p)(e.timestamp)).y0(e=>z(m)(e.y0)).y1(e=>z(m)(e.y1))(e)}let C=M(()=>!z(p)||!z(m)?[]:z(u).flatMap(e=>e.points.flatMap(t=>(t.exemplars??[]).filter(e=>e.traceId).map(n=>({key:`${e.seriesId}:${n.timestamp}:${n.traceId}`,x:z(p)(n.timestamp||t.timestamp),y:z(m)(n.value),traceId:n.traceId,spanId:n.spanId,value:n.value})))));var w=da(),T=I(w),ee=e=>{var n=nR();R(e=>{q(n,1,e),co(n,`height:${r()??``}px`)},[()=>K(Q(`flex items-center justify-center text-xs text-fg-subtle border border-line rounded`,t.class))]),H(e,n)},te=e=>{var a=dR(),l=F(a),f=F(l);G(f,16,()=>z(h),e=>e,(e,t)=>{let n=M(()=>z(m)?z(m)(t):0);var r=da(),i=I(r),a=e=>{var r=rR(),i=I(r),a=L(i),o=F(a,!0);D(a),R(e=>{J(i,`x2`,z(s)),J(i,`y1`,z(n)),J(i,`y2`,z(n)),J(a,`y`,z(n)),U(o,e)},[()=>x(t)]),H(e,r)};W(i,e=>{z(n)>=0&&z(n)<=z(c)&&e(a)}),H(e,r)});var w=L(f);G(w,16,()=>z(g),e=>e,(e,t)=>{let n=M(()=>z(p)?z(p)(t):0);var r=da(),i=I(r),a=e=>{var r=iR(),i=F(r,!0);D(r),R(e=>{J(r,`x`,z(n)),J(r,`y`,z(c)+14),U(i,e)},[()=>b(t)]),H(e,r)};W(i,e=>{z(n)>=0&&z(n)<=z(s)&&e(a)}),H(e,r)});var T=L(w),ee=e=>{var t=da();G(I(t),19,()=>z(u),e=>e.seriesId,(e,t,n)=>{let r=M(()=>S(z(d)[z(n)]));var i=da(),a=I(i),o=e=>{var n=aR();R(e=>{J(n,`d`,z(r)),J(n,`fill`,e)},[()=>y(z(t))]),H(e,n)};W(a,e=>{z(r)&&e(o)}),H(e,i)}),H(e,t)},te=e=>{var t=da();G(I(t),17,()=>z(u),e=>e.seriesId,(e,t)=>{let n=M(()=>_(z(t).points));var r=lR(),a=I(r),o=e=>{let n=M(()=>v(z(t).points));var r=da(),i=I(r),a=e=>{var r=oR();R(e=>{J(r,`d`,z(n)),J(r,`fill`,e)},[()=>y(z(t))]),H(e,r)};W(i,e=>{z(n)&&e(a)}),H(e,r)};W(a,e=>{i()&&e(o)});var s=L(a),c=e=>{var r=sR();R(e=>{J(r,`d`,z(n)),J(r,`stroke`,e)},[()=>y(z(t))]),H(e,r)},l=e=>{var n=cR();R((e,t,r)=>{J(n,`cx`,e),J(n,`cy`,t),J(n,`fill`,r)},[()=>z(p)?z(p)(z(t).points[0].timestamp):0,()=>z(m)?z(m)(z(t).points[0].value??0):0,()=>y(z(t))]),H(e,n)};W(s,e=>{z(n)?e(c):z(t).points.length===1&&e(l,1)}),H(e,r)}),H(e,t)};W(T,e=>{z(d)?e(ee):e(te,-1)}),G(L(T),17,()=>z(C),e=>e.key,(e,n)=>{var r=uR();R(e=>{J(r,`cx`,z(n).x),J(r,`cy`,z(n).y),J(r,`aria-label`,`Open trace ${z(n).traceId??``} (${e??``})`)},[()=>x(z(n).value)]),B(`click`,r,()=>t.onExemplar?.(z(n).traceId,z(n).spanId)),B(`keydown`,r,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.onExemplar?.(z(n).traceId,z(n).spanId))}),H(e,r)}),D(l),D(a),R(e=>{J(a,`width`,n()),J(a,`height`,r()),J(a,`viewBox`,`0 0 ${n()??``} ${r()??``}`),J(a,`aria-label`,`Time series chart, ${z(u).length??``} series`),q(a,0,e),J(l,`transform`,`translate(${o.left??``},${o.top??``})`)},[()=>K(Q(`overflow-visible`,t.class))]),H(e,a)};W(T,e=>{z(f)?e(te,-1):e(ee)}),H(e,w),at()}na([`click`,`keydown`]);var pR=V(`<div>No bucket data on this point</div>`),mR=V(`<div class="flex-1 flex flex-col items-center justify-end h-full gap-1"><span class="text-[10px] text-fg-subtle tabular-nums"> </span> <div class="w-full rounded-t bg-accent/70 hover:bg-accent transition-colors"></div> <span class="text-[10px] text-fg-subtle truncate w-full text-center"> </span></div>`),hR=V(`<span><span class="text-fg-subtle"> </span> <span class="font-mono text-fg"> </span></span>`),gR=V(`<span class="ml-auto"><span class="text-fg-subtle">count</span> <span class="font-mono text-fg"> </span></span>`),_R=V(`<div><div class="flex items-end gap-1" role="img"></div> <div class="flex items-center gap-4 text-[11px] text-fg-muted border-t border-line pt-2"><!> <!></div></div>`);function vR(e,t){it(t,!0);let n=Z(t,`height`,3,160),r=M(()=>KL(t.point)),i=M(()=>Math.max(1,...z(r).map(e=>e.count))),a=M(()=>z(r).reduce((e,t)=>e+t.count,0)),o=M(()=>[.5,.9,.99].map(e=>({label:`p${e*100}`,value:JL(t.point,e)})));function s(e){if(e===void 0)return`—`;let n=Math.round(e*100)/100;return t.unit?`${n}${t.unit}`:String(n)}function c(e){return z(a)===0?`0%`:`${Math.round(e/z(a)*100)}%`}var l=da(),u=I(l),d=e=>{var r=pR();R(e=>{q(r,1,e),co(r,`height:${n()??``}px`)},[()=>K(Q(`flex items-center justify-center text-xs text-fg-subtle border border-line rounded`,t.class))]),H(e,r)},f=e=>{var l=_R(),u=F(l);G(u,21,()=>z(r),e=>e.label,(e,t)=>{var n=mR(),r=F(n),a=F(r,!0);D(r);var o=L(r,2),s=L(o,2),l=F(s,!0);D(s),D(n),R(e=>{U(a,z(t).count),co(o,`height:${z(t).count/z(i)*100}%`),J(o,`title`,`${z(t).label??``}: ${z(t).count??``} (${e??``})`),U(l,z(t).label)},[()=>c(z(t).count)]),H(e,n)}),D(u);var d=L(u,2),f=F(d);G(f,17,()=>z(o),e=>e.label,(e,t)=>{var n=hR(),r=F(n),i=F(r,!0);D(r);var a=L(r,2),o=F(a,!0);D(a),D(n),R(e=>{U(i,z(t).label),U(o,e)},[()=>s(z(t).value)]),H(e,n)});var p=L(f,2),m=e=>{var n=gR(),r=L(F(n),2),i=F(r,!0);D(r),D(n),R(()=>U(i,t.point.count)),H(e,n)};W(p,e=>{t.point.count!==void 0&&e(m)}),D(d),D(l),R(e=>{q(l,1,e),co(u,`height:${n()??``}px`),J(u,`aria-label`,`Histogram, ${z(r).length??``} buckets, ${z(a)??``} observations`)},[()=>K(Q(`flex flex-col gap-2`,t.class))]),H(e,l)};W(u,e=>{z(r).length===0?e(d):e(f,-1)}),H(e,l),at()}var yR=V(`<div>No bucketed data in this window</div>`),bR=V(`<span class="ml-0.5"> </span>`),xR=V(`<div class="text-[10px] text-fg-subtle flex items-center justify-end"> <!></div>`),SR=V(`<button type="button" class="w-full rounded-[1px] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent"></button>`),CR=V(`<div class="flex-1 min-w-[8px] flex flex-col gap-px"></div>`),wR=V(`<div><div class="flex" role="img"><div class="shrink-0 pr-2 text-right"></div> <div class="flex-1 min-w-0 overflow-x-auto"><div class="flex gap-px h-full"></div></div></div> <div class="flex items-center gap-2 text-[10px] text-fg-subtle pl-2"><span> </span> <span class="flex-1 border-t border-line-subtle"></span> <span> </span> <span class="ml-2"> </span></div></div>`);function TR(e,t){it(t,!0);let n=Z(t,`rowHeight`,3,22),r=M(()=>tR(t.points));function i(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function a(e){return e===0?`background: var(--color-subtle)`:`background: color-mix(in oklch, var(--color-accent) ${(.12+e*.88)*100}%, transparent)`}var o=da(),s=I(o),c=e=>{var n=yR();R(e=>q(n,1,e),[()=>K(Q(`flex items-center justify-center text-xs text-fg-subtle border border-line rounded p-6`,t.class))]),H(e,n)},l=e=>{var o=wR(),s=F(o),c=F(s);G(c,21,()=>[...z(r).rows].reverse(),e=>e.label,(e,r)=>{var i=xR(),a=F(i,!0),o=L(a),s=e=>{var n=bR(),r=F(n,!0);D(n),R(()=>U(r,t.unit)),H(e,n)};W(o,e=>{t.unit&&e(s)}),D(i),R(()=>{co(i,`height:${n()??``}px`),U(a,z(r).label)}),H(e,i)}),D(c);var l=L(c,2),u=F(l);G(u,21,()=>z(r).columns,e=>e.timestamp,(e,o)=>{var s=CR();G(s,21,()=>[...z(o).cells].reverse(),Aa,(e,s,c)=>{let l=M(()=>z(o).cells.length-1-c);var u=SR();R((e,i,a)=>{co(u,`height:${n()??``}px; ${e??``}`),J(u,`title`,`${z(r).rows[z(l)].label??``}${t.unit??``??``} at ${i??``}: ${z(s).count??``}`),J(u,`aria-label`,`${z(r).rows[z(l)].label??``} at ${a??``}: ${z(s).count??``} observations`)},[()=>a(z(s).intensity),()=>i(z(o).timestamp),()=>i(z(o).timestamp)]),B(`click`,u,()=>t.onCell?.(z(o).timestamp,z(l))),H(e,u)}),D(s),H(e,s)}),D(u),D(l),D(s);var d=L(s,2),f=F(d),p=F(f,!0);D(f);var m=L(f,4),h=F(m,!0);D(m);var g=L(m,2),_=F(g);D(g),D(d),D(o),R((e,t,n)=>{q(o,1,e),J(s,`aria-label`,`Distribution heatmap, ${z(r).rows.length??``} buckets over ${z(r).columns.length??``} intervals, busiest cell ${z(r).max??``}`),U(p,t),U(h,n),U(_,`busiest ${z(r).max??``}`)},[()=>K(Q(`flex flex-col gap-1`,t.class)),()=>i(z(r).columns[0].timestamp),()=>i(z(r).columns[z(r).columns.length-1].timestamp)]),H(e,o)};W(s,e=>{z(r).columns.length===0?e(c):e(l,-1)}),H(e,o),at()}na([`click`]);var ER=V(`<div>No bucketed data in this window</div>`),DR=ua(`<line x1="0" stroke="var(--color-line-subtle)"></line><text x="-6" text-anchor="end" dominant-baseline="middle" class="fill-[var(--color-fg-subtle)] text-[10px]"> </text>`,1),OR=ua(`<text text-anchor="middle" class="fill-[var(--color-fg-subtle)] text-[10px]"> </text>`),kR=ua(`<path fill="var(--color-accent)"></path>`),AR=ua(`<path fill="none" stroke="var(--color-accent)" stroke-width="1.25"></path>`),jR=V(`<span><span class="text-fg-subtle"> </span> <span class="font-mono text-fg ml-1"> </span></span>`),MR=V(`<div><svg role="img" class="overflow-visible"><g><!><!><!><!></g></svg> <div class="flex items-center gap-4 text-[11px] border-t border-line pt-2"></div></div>`);function NR(e,t){it(t,!0);let n=Z(t,`quantiles`,19,()=>[.5,.9,.99]),r=Z(t,`width`,3,640),i=Z(t,`height`,3,220),a={top:8,right:12,bottom:22,left:48},o=M(()=>Math.max(1,r()-a.left-a.right)),s=M(()=>Math.max(1,i()-a.top-a.bottom)),c=M(()=>[...n()].sort((e,t)=>e-t)),l=M(()=>eR(t.points,z(c))),u=M(()=>{let e=z(l).flatMap(e=>e.points);if(e.length===0)return null;let t=e.map(e=>e.timestamp),n=e.map(e=>e.value),r=Math.min(...t),i=Math.max(...t),a=Math.max(...n);return{minTime:r,maxTime:i===r?r+1:i,maxValue:a===0?1:a}}),d=M(()=>z(u)?SL().domain([z(u).minTime,z(u).maxTime]).range([0,z(o)]):null),f=M(()=>z(u)?SL().domain([0,z(u).maxValue]).range([z(s),0]):null),p=M(()=>z(u)?XL(0,z(u).maxValue,4):[]),m=M(()=>z(u)?XL(z(u).minTime,z(u).maxTime,4):[]);function h(e){return!z(d)||!z(f)||e.points.length<2?null:zL().x(e=>z(d)(e.timestamp)).y0(z(s)).y1(e=>z(f)(e.value))(e.points)}function g(e){return!z(d)||!z(f)||e.points.length<2?null:RL().x(e=>z(d)(e.timestamp)).y(e=>z(f)(e.value))(e.points)}function _(e){return .3-e*.08}function v(e){return`p${Math.round(e*100)}`}function y(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function b(e){let n=Math.round(e*10)/10;return t.unit?`${n}${t.unit}`:String(n)}let x=M(()=>z(l).map(e=>({quantile:e.quantile,value:e.points[e.points.length-1]?.value})));var S=da(),C=I(S),w=e=>{var n=ER();R(e=>{q(n,1,e),co(n,`height:${i()??``}px`)},[()=>K(Q(`flex items-center justify-center text-xs text-fg-subtle border border-line rounded`,t.class))]),H(e,n)},T=e=>{var n=MR(),u=F(n),S=F(u),C=F(S);G(C,16,()=>z(p),e=>e,(e,t)=>{let n=M(()=>z(f)?z(f)(t):0);var r=da(),i=I(r),a=e=>{var r=DR(),i=I(r),a=L(i),s=F(a,!0);D(a),R(e=>{J(i,`x2`,z(o)),J(i,`y1`,z(n)),J(i,`y2`,z(n)),J(a,`y`,z(n)),U(s,e)},[()=>b(t)]),H(e,r)};W(i,e=>{z(n)>=0&&z(n)<=z(s)&&e(a)}),H(e,r)});var w=L(C);G(w,16,()=>z(m),e=>e,(e,t)=>{let n=M(()=>z(d)?z(d)(t):0);var r=da(),i=I(r),a=e=>{var r=OR(),i=F(r,!0);D(r),R(e=>{J(r,`x`,z(n)),J(r,`y`,z(s)+14),U(i,e)},[()=>y(t)]),H(e,r)};W(i,e=>{z(n)>=0&&z(n)<=z(o)&&e(a)}),H(e,r)});var T=L(w);G(T,19,()=>[...z(l)].reverse(),e=>e.quantile,(e,t,n)=>{let r=M(()=>h(z(t)));var i=da(),a=I(i),o=e=>{var i=kR();R((e,t)=>{J(i,`d`,z(r)),J(i,`opacity`,e),J(i,`data-testid`,`band-${t??``}`)},[()=>_(z(l).length-1-z(n)),()=>v(z(t).quantile)]),H(e,i)};W(a,e=>{z(r)&&e(o)}),H(e,i)}),G(L(T),17,()=>z(l),e=>e.quantile,(e,t)=>{let n=M(()=>g(z(t)));var r=da(),i=I(r),a=e=>{var r=AR();R(e=>{J(r,`d`,z(n)),J(r,`data-testid`,`line-${e??``}`)},[()=>v(z(t).quantile)]),H(e,r)};W(i,e=>{z(n)&&e(a)}),H(e,r)}),D(S),D(u);var ee=L(u,2);G(ee,21,()=>z(x),e=>e.quantile,(e,t)=>{var n=jR(),r=F(n),i=F(r,!0);D(r);var a=L(r,2),o=F(a,!0);D(a),D(n),R((e,t)=>{U(i,e),U(o,t)},[()=>v(z(t).quantile),()=>z(t).value===void 0?`—`:b(z(t).value)]),H(e,n)}),D(ee),D(n),R((e,t)=>{q(n,1,e),J(u,`width`,r()),J(u,`height`,i()),J(u,`viewBox`,`0 0 ${r()??``} ${i()??``}`),J(u,`aria-label`,`Percentile bands: ${t??``}`),J(S,`transform`,`translate(${a.left??``},${a.top??``})`)},[()=>K(Q(`flex flex-col gap-2`,t.class)),()=>z(c).map(v).join(`, `)]),H(e,n)};W(C,e=>{z(u)?e(T,-1):e(w)}),H(e,S),at()}var PR=V(`<button type="button"><!> </button>`),FR=V(`<div class="flex rounded border border-line overflow-hidden" role="group" aria-label="Chart type"></div>`),IR=V(`<option> </option>`),LR=V(`<label class="flex items-center gap-1.5 text-[11px] text-fg-muted cursor-pointer" title="Show cumulative or delta counter change per second"><input type="checkbox" class="w-3 h-3 rounded border-line"/> Rate</label>`),RR=V(`<label class="flex items-center gap-1.5 text-[11px] text-fg-muted cursor-pointer" title="Stack the series so each sits on the sum of those below"><input type="checkbox" class="w-3 h-3 rounded border-line"/> <!> Stack</label>`),zR=V(`<label class="flex items-center gap-1 text-[11px] text-fg-muted"><span class="text-fg-subtle">Summarise</span> <select aria-label="Summary statistic" class="rounded border border-line bg-surface px-1.5 py-1 text-[11px] text-fg"></select></label> <!> <!>`,1),BR=V(`<div><!> <!></div>`);function VR(e,t){it(t,!0);let n=M(()=>t.kind===`histogram`||t.kind===`exponentialHistogram`),r=M(()=>t.kind!==`gauge`),i=M(()=>t.kind===`sum`),a=[{id:`timeseries`,label:`Time series`,icon:Vh},{id:`percentiles`,label:`Percentiles`,icon:hp},{id:`heatmap`,label:`Heatmap`,icon:hm}],o=M(()=>z(n)?a:a.filter(e=>e.id===`timeseries`)),s=[{id:`sum`,label:`Sum`},{id:`avg`,label:`Avg`},{id:`min`,label:`Min`},{id:`max`,label:`Max`},{id:`last`,label:`Last`},{id:`count`,label:`Count`}];var c=BR(),l=F(c),u=e=>{var n=FR();G(n,21,()=>z(o),e=>e.id,(e,n)=>{let r=M(()=>z(n).icon);var i=PR(),a=F(i);Ba(a,()=>z(r),(e,t)=>{t(e,{size:11})});var o=L(a);D(i),R(e=>{J(i,`aria-pressed`,t.mode===z(n).id),J(i,`title`,z(n).label),q(i,1,e),U(o,` ${z(n).label??``}`)},[()=>K(Q(`flex items-center gap-1 px-2 py-1 text-[11px] transition-colors`,`focus-visible:outline-none focus-visible:bg-hover`,t.mode===z(n).id?`bg-selected text-fg font-medium`:`text-fg-muted hover:bg-hover`))]),B(`click`,i,()=>t.onMode(z(n).id)),H(e,i)}),D(n),H(e,n)};W(l,e=>{z(o).length>1&&e(u)});var d=L(l,2),f=e=>{var n=zR(),a=I(n),o=L(F(a),2);G(o,21,()=>s,e=>e.id,(e,t)=>{var n=IR(),r=F(n,!0);D(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).id)&&(n.value=(n.__value=z(t).id)??``)}),H(e,n)}),D(o);var c;uo(o),D(a);var l=L(a,2),u=e=>{var n=LR(),r=F(n);Co(r),Ke(),D(n),R(()=>To(r,t.rate)),B(`change`,r,e=>t.onRate(e.currentTarget.checked)),H(e,n)};W(l,e=>{z(i)&&e(u)});var d=L(l,2),f=e=>{var n=RR(),r=F(n);Co(r),Cm(L(r,2),{size:11}),Ke(),D(n),R(()=>To(r,t.stacked)),B(`change`,r,e=>t.onStacked(e.currentTarget.checked)),H(e,n)};W(d,e=>{z(r)&&e(f)}),R(()=>{c!==(c=t.aggregate)&&(o.value=(o.__value=t.aggregate)??``,lo(o,t.aggregate))}),B(`change`,o,e=>t.onAggregate(e.currentTarget.value)),H(e,n)};W(d,e=>{t.mode===`timeseries`&&e(f)}),D(c),R(e=>q(c,1,e),[()=>K(Q(`flex items-center gap-3 flex-wrap`,t.class))]),H(e,c),at()}na([`click`,`change`]);var HR=V(`<button type="button" title="Delete this metric stream" aria-label="Delete selected metric" class="p-1.5 hover:bg-danger-bg rounded transition-colors text-fg-subtle hover:text-danger"><!></button>`),UR=V(`<div role="alert" class="m-4 rounded border border-danger-border bg-danger-bg px-3 py-2 text-xs text-danger"> </div>`),WR=V(`<div class="flex-1 flex items-center justify-center text-sm text-fg-subtle">No metrics received yet. Point an OTLP exporter at this server.</div>`),GR=V(`<span> </span>`),KR=V(`<button type="button" role="option"><div class="flex items-center justify-between gap-2"><span class="text-xs font-medium text-fg truncate"> </span> <!></div> <div class="mt-0.5 flex items-center gap-2 text-[10px] text-fg-subtle"><span class="uppercase tracking-wide"> </span> <!> <span> </span></div></button>`),qR=V(`<div class="p-3 text-xs text-fg-subtle">No metric matches that filter.</div>`),JR=V(`<div class="text-sm text-fg-subtle">Select a metric.</div>`),YR=V(`<p class="text-xs text-fg-muted mt-0.5"> </p>`),XR=V(`<div class="text-xs text-fg-subtle">No data for this metric in the selected window.</div>`),ZR=V(`<button type="button"><span class="w-2.5 h-2.5 rounded-sm shrink-0"></span> <span class="truncate text-fg-muted font-mono"> </span> <span class="ml-auto font-mono text-fg tabular-nums"> </span></button>`),QR=V(`<div class="mt-3 border-t border-line pt-2 space-y-1" role="group" aria-label="Series"></div>`),$R=V(`<div class="mb-3"><h4 class="text-sm font-semibold text-fg"> </h4> <!></div> <!> <!> <!>`,1),ez=V(`<div class="flex-1 flex min-h-0"><div class="w-72 shrink-0 border-r border-line flex flex-col min-h-0"><div class="p-2 border-b border-line"><!></div> <div class="flex-1 overflow-auto" role="listbox" aria-label="Metrics"><!> <!></div></div> <div class="flex-1 min-w-0 overflow-auto p-4"><!></div></div>`),tz=V(`<div class="flex flex-col h-full"><div class="flex items-center justify-between px-4 py-2 border-b border-line gap-2"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg shrink-0"><!> Metrics</h3> <!> <div class="flex items-center gap-1"><!> <button type="button" title="Refresh" aria-label="Refresh metrics" class="p-1.5 hover:bg-hover rounded transition-colors text-fg-subtle"><!></button></div></div> <!> <!></div>`);function nz(e,t){it(t,!0);function n(){let e=pl.value;return(e?$o(e):null)??globalThis.location.origin}let r=N(yr([])),i=N(null),a=N(yr([])),o=N(null),s=N(!1),c=N(``),l=M(()=>ml.value),u=N(yr(new Set)),d=N(`timeseries`),f=N(`sum`),p=N(!1),m=N(!0),h=()=>({fetch:globalThis.fetch.bind(globalThis),baseUrl:n()});async function g(e=z(c)){let t=await hF(h(),e);t.status===`ok`?(P(r,t.data,!0),P(o,null),!z(i)&&z(r).length>0&&v(z(r)[0].name)):t.status===`error`&&P(o,t.message,!0)}async function _(e){P(s,!0);let t=await gF({name:e,window:Ms(Es(ml.value,Date.now()))},h());t.status!==`aborted`&&(P(s,!1),t.status===`ok`?(P(a,t.data,!0),P(o,null)):P(o,t.message,!0))}function v(e){P(i,e,!0),P(u,new Set,!0),P(d,`timeseries`),P(f,`sum`),P(p,!1),_(e)}function y(){g(),z(i)&&_(z(i))}function b(e){ml.value=e,z(i)&&_(z(i))}function x(e,t){Nu(e),Wc(e,t),Mu(`traces`)}function S(e){let t=new Set(z(u));t.has(e)?t.delete(e):t.add(e),P(u,t,!0)}async function C(){if(!z(i)||!globalThis.confirm(`Delete every stored series for “${z(i)}”?`))return;let e=await _F(z(i),h());if(e.status!==`ok`){e.status===`error`&&P(o,e.message,!0);return}P(i,null),P(a,[],!0),await g(``)}zr(()=>{let e=z(c),t=setTimeout(()=>void g(e),200);return()=>clearTimeout(t)});let w=M(()=>z(r).find(e=>e.name===z(i))),T=M(()=>z(w)?.kind===`histogram`||z(w)?.kind===`exponentialHistogram`),ee=M(()=>z(a).map(e=>({...e,points:z(m)?UL(e.points,e.temporality):e.points}))),te=M(()=>z(a).flatMap(e=>e.points).sort((e,t)=>e.timestamp-t.timestamp)),ne=M(()=>z(r)),re=M(()=>z(a).map(e=>({id:e.seriesId,color:pg(e.seriesId).stroke,label:ie(e),value:YL(z(m)?UL(e.points,e.temporality):e.points,e.kind===`gauge`?`last`:z(f))})));function ie(e){let t=Object.entries(e.attributes),n=Object.entries(e.resource??{}).filter(([e])=>e!==`service.name`);return[...t,...n].map(([e,t])=>`${e}=${String(t)}`).join(` `)||e.service}function ae(e,t){return e===void 0?`—`:`${(Math.round(e*100)/100).toLocaleString(void 0,{maximumFractionDigits:2})}${t&&t!==`1`?` ${t}`:``}${z(m)&&z(w)?.kind===`sum`?`/s`:``}`}var oe=tz(),se=F(oe),ce=F(se);_p(F(ce),{size:16}),Ke(),D(ce);var le=L(ce,2);gA(le,{get selection(){return z(l)},onChange:b});var E=L(le,2),ue=F(E),de=e=>{var t=HR();zh(F(t),{size:14}),D(t),B(`click`,t,C),H(e,t)};W(ue,e=>{z(i)&&e(de)});var fe=L(ue,2),pe=F(fe);{let e=M(()=>z(s)?`animate-spin`:``);dh(pe,{size:14,get class(){return z(e)}})}D(fe),D(E),D(se);var me=L(se,2),he=e=>{var t=UR(),n=F(t,!0);D(t),R(()=>U(n,z(o))),H(e,t)};W(me,e=>{z(o)&&e(he)});var ge=L(me,2),_e=e=>{H(e,WR())},ve=e=>{var t=ez(),n=F(t),r=F(n);F_(F(r),{get value(){return z(c)},onValue:e=>P(c,e,!0),placeholder:`Filter metrics…`,ariaLabel:`Filter metrics`}),D(r);var o=L(r,2),s=F(o);G(s,17,()=>z(ne),e=>e.name+e.kind,(e,t)=>{var n=KR(),r=F(n),o=F(r),s=F(o,!0);D(o);var c=L(o,2),l=e=>{{let n=M(()=>z(m)?UL(z(a)[0].points,z(a)[0].temporality):z(a)[0].points);HL(e,{get points(){return z(n)},width:48,height:14,get ariaLabel(){return`${z(t).name??``} trend`}})}};W(c,e=>{z(t).name===z(i)&&z(a).length>0&&e(l)}),D(r);var u=L(r,2),d=F(u),f=F(d,!0);D(d);var p=L(d,2),h=e=>{var n=GR(),r=F(n,!0);D(n),R(()=>U(r,z(t).unit)),H(e,n)};W(p,e=>{z(t).unit&&z(t).unit!==`1`&&e(h)});var g=L(p,2),_=F(g);D(g),D(u),D(n),R(e=>{J(n,`aria-selected`,z(t).name===z(i)),q(n,1,e),U(s,z(t).name),U(f,z(t).kind),U(_,`${z(t).seriesCount??``}
|
|
29
29
|
series`)},[()=>K(Q(`w-full text-left px-3 py-2 border-b border-line-subtle hover:bg-hover`,`focus-visible:outline-none focus-visible:bg-hover`,z(t).name===z(i)&&`bg-selected`))]),B(`click`,n,()=>v(z(t).name)),H(e,n)});var l=L(s,2),h=e=>{H(e,qR())};W(l,e=>{z(ne).length===0&&e(h)}),D(o),D(n);var g=L(n,2),_=F(g),y=e=>{H(e,JR())},b=e=>{var t=$R(),n=I(t),r=F(n),i=F(r,!0);D(r);var o=L(r,2),s=e=>{var t=YR(),n=F(t,!0);D(t),R(()=>U(n,z(w).description)),H(e,t)};W(o,e=>{z(w).description&&e(s)}),D(n);var c=L(n,2);VR(c,{get kind(){return z(w).kind},get mode(){return z(d)},onMode:e=>P(d,e,!0),get aggregate(){return z(f)},onAggregate:e=>P(f,e,!0),get stacked(){return z(p)},onStacked:e=>P(p,e,!0),get rate(){return z(m)},onRate:e=>P(m,e,!0),class:`mb-3`});var l=L(c,2),h=e=>{H(e,XR())},g=e=>{TR(e,{get points(){return z(te)},get unit(){return z(w).unit}})},_=e=>{NR(e,{get points(){return z(te)},get unit(){return z(w).unit}})},v=e=>{vR(e,{get point(){return z(te)[z(te).length-1]},get unit(){return z(w).unit}})},y=e=>{{let t=M(()=>z(ee).length===1&&!z(p));fR(e,{get series(){return z(ee)},get isolated(){return z(u)},get stacked(){return z(p)},get area(){return z(t)},onExemplar:x})}};W(l,e=>{z(a).length===0?e(h):z(d)===`heatmap`?e(g,1):z(d)===`percentiles`?e(_,2):z(T)?e(v,3):e(y,-1)});var b=L(l,2),C=e=>{var t=QR();G(t,21,()=>z(re),e=>e.id,(e,t)=>{var n=ZR(),r=F(n),i=L(r,2),a=F(i,!0);D(i);var o=L(i,2),s=F(o,!0);D(o),D(n),R((e,i,o)=>{J(n,`aria-pressed`,e),q(n,1,i),co(r,`background:${z(t).color??``}`),U(a,z(t).label),U(s,o)},[()=>z(u).has(z(t).id),()=>K(Q(`w-full flex items-center gap-2 px-1 py-0.5 rounded text-[11px] hover:bg-hover`,`focus-visible:outline-none focus-visible:bg-hover`,z(u).size>0&&!z(u).has(z(t).id)&&`opacity-40`)),()=>ae(z(t).value,z(w).unit)]),B(`click`,n,()=>S(z(t).id)),H(e,n)}),D(t),H(e,t)};W(b,e=>{z(a).length>0&&z(d)===`timeseries`&&e(C)}),R(()=>U(i,z(w).name)),H(e,t)};W(_,e=>{z(w)?e(b,-1):e(y)}),D(g),D(t),H(e,t)};W(ge,e=>{z(r).length===0?e(_e):e(ve,-1)}),D(oe),B(`click`,fe,y),H(e,oe),at()}na([`click`]);function rz(e){let t=e.severityNumber,n=(e.severityText??``).toUpperCase();return n===`ERROR`||t!==void 0&&t>=17?`error`:n===`WARN`||n===`WARNING`||t!==void 0&&t>=13?`warn`:`info`}function iz(e){if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function az(e){try{return JSON.stringify({body:e.body,severity:e.severityText??null,severityNumber:e.severityNumber??null,timestamp:e.timestamp,traceId:e.traceId??null,attributes:e.attributes??{}},null,2)}catch{return iz(e.body)}}function oz(e,t,n){if(n!==`all`){let t=rz(e);if(n===`error`&&t!==`error`||n===`warn`&&t!==`warn`&&t!==`error`||n===`info`&&t!==`info`)return!1}return I_(t.toLowerCase(),[iz(e.body),e.severityText,e.resourceName,e.traceId])}function sz(e){let t=rz(e);return t===`error`?`text-danger`:t===`warn`?`text-warning`:`text-fg-subtle`}function cz(e){let t=rz(e);return t===`error`?`bg-danger`:t===`warn`?`bg-warning`:`bg-line`}function lz(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function uz(e){try{return JSON.stringify(e.attributes??{},null,2)}catch{return`{}`}}var dz=V(`<span class="flex-shrink-0 text-fg-subtle truncate max-w-[10rem]"> </span>`),fz=V(`<button type="button" title="Go to trace" aria-label="Go to trace" class="flex-shrink-0 inline-flex items-center justify-center p-1 rounded text-fg-subtle hover:text-fg hover:bg-hover opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity"><!></button>`),pz=V(`<div class="font-mono text-xs break-words whitespace-pre-wrap pr-6"> </div>`),mz=V(`<pre class="font-mono text-[11px] text-fg-muted whitespace-pre-wrap break-words pr-6"> </pre>`),hz=V(`<div class="flex items-center gap-1"><button type="button" class="inline-flex items-center gap-1 text-xs text-fg-muted hover:underline"><!> Go to trace</button> <!></div>`),gz=V(`<div class="pl-3 pr-2 pb-2 space-y-2"><!> <!> <!></div>`),_z=V(`<div class="group relative flex flex-col border-b border-line-subtle hover:bg-hover"><span aria-hidden="true"></span> <div class="flex items-center gap-2 pl-3 pr-2 py-1 text-xs"><button type="button" class="flex flex-1 items-center gap-2 min-w-0 text-left"><span class="font-mono tabular-nums text-fg-subtle flex-shrink-0"> </span> <span> </span> <span class="font-mono text-fg truncate min-w-0 flex-1"> </span> <!></button> <!> <!></div> <!></div>`),vz=V(`<button class="px-2 py-1 text-xs rounded text-fg-subtle hover:bg-hover transition-colors" title="Drop buffered logs received while paused">Drop buffer</button>`),yz=V(`<div class="text-center text-fg-subtle text-sm py-12">Loading logs…</div>`),bz=V(`<div class="text-center text-fg-subtle text-sm py-12">No logs yet. Send logs via AutotelLogExporter or POST /ingest/logs.</div>`),xz=V(`<div class="text-center text-fg-subtle text-sm py-12">No logs match the current filter.</div>`),Sz=V(`<div class="px-4 py-3 text-center text-xs text-fg-subtle"> </div>`),Cz=V(`<!> <!>`,1),wz=V(`<div class="flex flex-col h-full"><div class="px-4 py-3 border-b border-line flex items-center justify-between gap-2"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg"><!> </h3> <div class="flex items-center gap-1"><button><!> </button> <!></div></div> <div class="px-4 py-2 border-b border-line flex items-center gap-2"><!> <!> <!> <select class="text-xs border border-line rounded px-1.5 py-1 bg-surface text-fg-muted"><option>All</option><option>Errors</option><option>Warn+</option><option>Info</option></select></div> <div class="flex-1 overflow-auto space-y-0"><!></div></div>`);function Tz(e,t){it(t,!0);let n=(e,t=p)=>{let n=M(()=>iz(t().body)),r=M(()=>sz(t())),i=M(()=>cz(t())),a=M(()=>z(c).has(t().id));var o=_z(),s=F(o),u=L(s,2),d=F(u),f=F(d),m=F(f,!0);D(f);var h=L(f,2),g=F(h,!0);D(h);var _=L(h,2),v=F(_,!0);D(_);var b=L(_,2),x=e=>{var n=dz(),r=F(n,!0);D(n),R(()=>U(r,t().resourceName)),H(e,n)};W(b,e=>{t().resourceName&&e(x)}),D(d);var S=L(d,2),C=e=>{var n=fz();Dm(F(n),{size:12}),D(n),B(`click`,n,()=>y(t())),H(e,n)};W(S,e=>{t().traceId&&e(C)});var w=L(S,2);{let e=M(()=>az(t()));X_(w,{get value(){return z(e)},label:`Copy log as JSON`,class:`flex-shrink-0 opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`})}D(u);var T=L(u,2),ee=e=>{var r=gz(),i=F(r);M_(i,{get content(){return z(n)},children:(e,t)=>{var r=pz(),i=F(r,!0);D(r),R(()=>U(i,z(n))),H(e,r)},$$slots:{default:!0}});var a=L(i,2),o=e=>{{let n=M(()=>uz(t()));M_(e,{get content(){return z(n)},children:(e,n)=>{var r=mz(),i=F(r,!0);D(r),R(e=>U(i,e),[()=>uz(t())]),H(e,r)},$$slots:{default:!0}})}},s=M(()=>t().attributes&&Object.keys(t().attributes).length>0);W(a,e=>{z(s)&&e(o)});var c=L(a,2),l=e=>{var n=hz(),r=F(n);Dm(F(r),{size:12}),Ke(),D(r),X_(L(r,2),{get value(){return t().traceId},label:`Copy trace ID`}),D(n),B(`click`,r,()=>y(t())),H(e,n)};W(c,e=>{t().traceId&&e(l)}),D(r),H(e,r)};W(T,e=>{z(a)&&e(ee)}),D(o),R((e,r,i)=>{q(s,1,e),J(d,`aria-expanded`,z(a)),J(d,`title`,z(a)?`Collapse log`:`Expand log`),U(m,r),q(h,1,i),U(g,t().severityText??`LOG`),U(v,z(n))},[()=>K(Q(`absolute inset-y-0 left-0 w-0.5`,z(i))),()=>lz(t().timestamp),()=>K(Q(`flex-shrink-0 font-medium uppercase tracking-wide text-[10px]`,z(r)))]),B(`click`,d,()=>l(t().id)),H(e,o)},r=M(()=>ql.value),i=M(()=>wl.value),a=M(()=>Ol.value),o=N(``),s=N(`all`),c=N(yr(new Set));function l(e){let t=new Set(z(c));t.has(e)?t.delete(e):t.add(e),P(c,t,!0)}let u=IA({client:{fetch:globalThis.fetch.bind(globalThis),baseUrl:()=>(pl.value?$o(pl.value):null)??globalThis.location.origin}});zr(()=>()=>u.dispose());let d=N(null),f=N(yr([]));zr(()=>{let e=(pl.value?$o(pl.value):null)??globalThis.location.origin;e!==z(d)&&(P(d,e,!0),yA(`logs`,{fetch:globalThis.fetch.bind(globalThis),baseUrl:e}).then(e=>P(f,e,!0)),u.refresh())});let m=N(0);zr(()=>{let e=z(r).length;e>z(m)&&u.arrived(e-z(m)),P(m,e,!0)});let h=M(()=>u.results.value),g=M(()=>{let e=u.ready.value&&u.failure.value===null,t=z(r);return e&&(t=z(o).length>0?z(h):_(z(h),z(r))),t.filter(t=>oz(t,e?``:z(o),z(s)))});function _(e,t){let n=new Set(e.map(e=>e.id));return[...e,...t.filter(e=>!n.has(e.id))]}let v=M(()=>z(o).length>0||z(s)!==`all`);function y(e){e.traceId&&(Nu(e.traceId),Mu(`traces`))}var b=wz(),x=F(b),S=F(x),C=F(S);tm(C,{size:16});var w=L(C);D(S);var T=L(S,2),ee=F(T),te=F(ee),ne=e=>{rh(e,{size:12})},re=e=>{$m(e,{size:12})};W(te,e=>{z(i)?e(ne):e(re,-1)});var ie=L(te);D(ee);var ae=L(ee,2),oe=e=>{var t=vz();B(`click`,t,function(...e){Ou?.apply(this,e)}),H(e,t)};W(ae,e=>{z(i)&&z(a)>0&&e(oe)}),D(T),D(x);var se=L(x,2),ce=F(se);kb(ce,{get value(){return u.text.value},onInput:e=>{u.setText(e),P(o,e,!0)},onSubmit:()=>u.submit(),get serverErrors(){return u.errors.value},get fields(){return z(f)},placeholder:`Filter — e.g. severity_number >= 17 AND service = api`,class:`flex-1`});var le=L(ce,2);gA(le,{get selection(){return u.window.value},onChange:e=>u.setWindow(e)});var E=L(le,2);vA(E,{get count(){return u.pending},get live(){return u.live},onResume:()=>{P(o,``),u.resume()}});var ue=L(E,2),de=F(ue);de.value=de.__value=`all`;var fe=L(de);fe.value=fe.__value=`error`;var pe=L(fe);pe.value=pe.__value=`warn`;var me=L(pe);me.value=me.__value=`info`,D(ue);var he;uo(ue),D(se);var ge=L(se,2),_e=F(ge),ve=e=>{H(e,yz())},ye=e=>{H(e,bz())},be=e=>{H(e,xz())},xe=e=>{var t=Cz(),r=I(t);G(r,17,()=>z(g),e=>e.id,(e,t)=>{n(e,()=>z(t))});var i=L(r,2),a=e=>{var t=Sz(),n=F(t,!0);D(t),Qa(t,(e,t)=>LA?.(e,t),()=>({onReach:()=>u.loadMore(),disabled:u.loading.value})),R(()=>U(n,u.loading.value?`Loading…`:`Scroll for more`)),H(e,t)};W(i,e=>{u.nextCursor.value&&e(a)}),H(e,t)};W(_e,e=>{u.loading.value&&!u.ready.value&&z(r).length===0?e(ve):z(g).length===0&&!z(v)?e(ye,1):z(g).length===0?e(be,2):e(xe,-1)}),D(ge),D(b),R(e=>{U(w,` Logs (${z(g).length??``})`),q(ee,1,e),J(ee,`title`,z(i)?`Resume live tail`:`Pause live tail`),U(ie,` ${z(i)?`Resume${z(a)>0?` (+${z(a)})`:``}`:`Pause`}`),he!==(he=z(s))&&(ue.value=(ue.__value=z(s))??``,lo(ue,z(s)))},[()=>K(Q(`flex items-center gap-1 px-2 py-1 text-xs rounded transition-colors`,z(i)?`bg-warning-bg text-warning hover:bg-warning-bg`:`hover:bg-hover text-fg-muted`))]),B(`click`,ee,function(...e){Du?.apply(this,e)}),B(`change`,ue,e=>P(s,e.currentTarget.value,!0)),H(e,b),at()}na([`click`,`change`]);var Ez=V(`<p class="p-3 text-xs text-fg-muted">No stack frames on this error.</p>`),Dz=V(`<button type="button"><span class="font-mono text-xs text-fg"> </span> <span class="font-mono text-[11px] text-fg-subtle"> </span></button>`),Oz=V(`<div class="flex flex-col items-start gap-0.5 px-3 py-2"><span class="flex items-center gap-2"><span class="font-mono text-xs text-fg-muted"> </span> <span class="rounded bg-subtle px-1.5 py-0.5 text-[10px] text-fg-subtle"> </span></span> <span class="font-mono text-[11px] text-fg-muted"> </span></div>`),kz=V(`<li><!></li>`),Az=V(`<ol class="divide-y divide-line-subtle"></ol>`);function jz(e,t){it(t,!0);let n=Z(t,`selected`,3,null),r={dependency:`node_modules`,native:`runtime`};function i(e){return`${e.file}:${e.line}:${e.column}`}function a(e){return n()!==null&&n().file===e.file&&n().line===e.line&&n().column===e.column}var o=da(),s=I(o),c=e=>{H(e,Ez())},l=e=>{var n=Az();G(n,21,()=>t.frames,Aa,(e,n)=>{let o=M(()=>z(n).kind===`app`?null:r[z(n).kind]);var s=kz(),c=F(s),l=e=>{var r=Dz(),o=F(r),s=F(o,!0);D(o);var c=L(o,2),l=F(c,!0);D(c),D(r),R((e,t)=>{q(r,1,e),U(s,z(n).function??`(anonymous)`),U(l,t)},[()=>K(Q(`flex w-full flex-col items-start gap-0.5 px-3 py-2 text-left transition-colors hover:bg-hover`,a(z(n))&&`bg-subtle border-l-2 border-accent`)),()=>i(z(n))]),B(`click`,r,()=>t.onselect?.(z(n))),H(e,r)},u=e=>{var t=Oz(),r=F(t),a=F(r),s=F(a,!0);D(a);var c=L(a,2),l=F(c,!0);D(c),D(r);var u=L(r,2),d=F(u,!0);D(u),D(t),R(e=>{U(s,z(n).function??`(anonymous)`),U(l,z(o)),U(d,e)},[()=>i(z(n))]),H(e,t)};W(c,e=>{z(n).kind===`app`?e(l):e(u,-1)}),D(s),H(e,s)}),D(n),H(e,n)};W(s,e=>{t.frames.length===0?e(c):e(l,-1)}),H(e,o),at()}na([`click`]);var Mz=V(`<p class="p-3 text-xs text-fg-muted">This file could not be read. It may be outside the project, or generated
|
|
30
30
|
rather than written.</p>`),Nz=V(`<button type="button" class="rounded px-1.5 py-0.5 text-[11px] text-accent hover:bg-hover">Open in editor</button>`),Pz=V(`<li><span class="w-8 shrink-0 select-none text-right text-fg-subtle"> </span> <span class="whitespace-pre"> </span></li>`),Fz=V(`<div class="flex flex-col"><div class="flex items-center justify-between border-b border-line px-3 py-1.5"><span class="font-mono text-[11px] text-fg-subtle"> </span> <!></div> <ol class="overflow-x-auto py-1"></ol></div>`);function Iz(e,t){it(t,!0);var n=da(),r=I(n),i=e=>{H(e,Mz())},a=e=>{var n=Fz(),r=F(n),i=F(r),a=F(i);D(i);var o=L(i,2),s=e=>{var n=Nz();B(`click`,n,()=>t.onopen?.(t.window)),H(e,n)};W(o,e=>{t.onopen&&e(s)}),D(r);var c=L(r,2);G(c,21,()=>t.window.lines,Aa,(e,n,r)=>{let i=M(()=>t.window.startLine+r),a=M(()=>z(i)===t.window.line);var o=Pz(),s=F(o),c=F(s,!0);D(s);var l=L(s,2),u=F(l,!0);D(l),D(o),R(e=>{J(o,`aria-current`,z(a)?`true`:void 0),q(o,1,e),U(c,z(i)),U(u,z(n))},[()=>K(Q(`flex gap-3 px-3 font-mono text-[11px] leading-5`,z(a)?`bg-danger-bg text-fg`:`text-fg-muted`))]),H(e,o)}),D(c),D(n),R(()=>U(a,`${t.window.file??``}:${t.window.line??``}`)),H(e,n)};W(r,e=>{t.window===null?e(i):e(a,-1)}),H(e,n),at()}na([`click`]);function Lz(e){return e.startsWith(`node:`)||e.startsWith(`[`)||e.startsWith(`<`)?`native`:/(^|[/\\])node_modules([/\\]|$)/.test(e)?`dependency`:`app`}var Rz=/^\s*at\s+(?:async\s+)?(.+?)\s+\((.+?):(\d+):(\d+)\)$/,zz=/^\s*at\s+(?:async\s+)?(.+?):(\d+):(\d+)$/;function Bz(e){if(!e.startsWith(`file://`))return e;try{let t=decodeURIComponent(new URL(e).pathname);return/^\/[A-Za-z]:/.test(t)?t.slice(1):t}catch{return e}}function Vz(e){let t=[];for(let n of e.split(`
|
|
31
|
-
`)){let e=Rz.exec(n);if(e){let n=Bz(e[2]);t.push({function:e[1],file:n,line:Number(e[3]),column:Number(e[4]),kind:Lz(n)});continue}let r=zz.exec(n);if(r){let e=Bz(r[1]);t.push({file:e,line:Number(r[2]),column:Number(r[3]),kind:Lz(e)})}}return t}var Hz=V(`<div class="overflow-hidden rounded border border-line"><!></div>`),Uz=V(`<div class="flex flex-col gap-2"><div class="overflow-hidden rounded border border-line"><!></div> <!></div>`);function Wz(e,t){it(t,!0);let n=Z(t,`context`,3,4),r=M(()=>Vz(t.stackTrace)),i=N(null),a=N(null),o=N(!1),s=0;async function c(e){P(i,e,!0),P(o,!1);let r=++s,c=await t.loadSource(e,n());r===s&&(P(a,c,!0),P(o,!0))}var l=da(),u=I(l),d=e=>{var t=Uz(),n=F(t);jz(F(n),{get frames(){return z(r)},get selected(){return z(i)},onselect:c}),D(n);var s=L(n,2),l=e=>{var t=Hz();Iz(F(t),{get window(){return z(a)}}),D(t),H(e,t)};W(s,e=>{z(o)&&e(l)}),D(t),H(e,t)};W(u,e=>{z(r).length>0&&e(d)}),H(e,l),at()}function Gz(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s ago`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}var Kz=V(`<span class="px-1.5 py-0.5 text-xs font-medium bg-hover text-fg-muted rounded"> </span>`),qz=V(`<pre class="text-xs font-mono bg-code text-fg p-2 rounded overflow-x-auto whitespace-pre-wrap"> </pre>`),Jz=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Stack Trace</h5> <!> <details class="mt-2"><summary class="cursor-pointer text-[11px] text-fg-subtle hover:text-fg">Raw stack</summary> <!></details></div>`),Yz=V(`<span class="px-2 py-0.5 text-xs font-mono bg-hover text-fg-muted rounded"> </span>`),Xz=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Affected Operations</h5> <div class="flex flex-wrap gap-1"></div></div>`),Zz=V(`<div class="group flex items-center gap-1"><button class="flex items-center gap-1 text-xs text-fg-muted hover:text-fg font-mono"><!> <!></button> <!></div>`),Qz=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Recent Traces</h5> <div class="space-y-1"></div></div>`),$z=V(`<div class="flex gap-2"><span class="text-fg-subtle"> </span> <span class="font-mono text-fg-muted"> </span></div>`),eB=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Context</h5> <div class="text-xs space-y-0.5"></div></div>`),tB=V(`<div class="border-t border-line p-3 bg-subtle space-y-3"><!> <!> <!> <!> <div class="text-xs text-fg-subtle pt-2 border-t border-line"><div class="flex gap-4"><span> </span> <span> </span></div></div></div>`),nB=V(`<div role="option"><button class="w-full p-3 flex items-start gap-3 hover:bg-subtle transition-colors text-left"><div class="mt-0.5"><!></div> <div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-1"><span class="text-sm font-semibold text-danger"> </span> <span class="px-1.5 py-0.5 text-xs font-medium bg-danger-bg text-danger rounded"> </span> <!></div> <div class="group flex items-start gap-1 mb-2"><p class="text-sm text-fg-muted truncate"> </p> <!></div> <div class="flex items-center gap-4 text-xs text-fg-subtle"><span class="flex items-center gap-1"><!> </span> <span class="flex items-center gap-1"><!> </span></div></div></button> <!></div>`),rB=V(`<span class="text-xs font-normal text-fg-muted"> </span>`),iB=V(`<span class="ml-1 px-2 py-0.5 text-xs font-medium bg-danger-bg text-danger rounded-full"> </span>`),aB=V(`<div class="flex gap-4 mb-4 p-3 bg-subtle rounded-md border border-line"><div class="text-sm"><span class="text-fg-muted">Groups:</span> <span class="font-semibold text-fg"> </span></div> <div class="text-sm"><span class="text-fg-muted">Total:</span> <span class="font-semibold text-fg"> </span></div> <div class="text-sm"><span class="text-fg-muted">Last hour:</span> <span class="font-semibold text-danger"> </span></div></div>`),oB=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle py-12"><!> <p class="text-sm">No errors captured</p> <p class="text-xs text-fg-subtle mt-1">Errors from failed traces will appear here</p></div>`),sB=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle py-12"><!> <p class="text-sm">No matching errors</p> <p class="text-xs text-fg-subtle mt-1">No error groups match the current filter</p></div>`),cB=V(`<div class="flex flex-col h-full p-4"><div class="flex items-center justify-between mb-4 pb-3 border-b border-line"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg"><!> Errors <!> <!></h3> <div class="flex items-center gap-2"><select class="text-xs border border-line rounded px-2 py-1 bg-surface text-fg-muted"><option>Most Recent</option><option>Most Frequent</option></select></div></div> <!> <!> <div role="listbox" tabindex="0" aria-label="Error groups" class="flex-1 overflow-auto space-y-2 focus:outline-none"><!></div></div>`);function lB(e,t){it(t,!0);let n=(e,t=p,n=p,r=p,i=p)=>{let a=M(()=>Date.now()-t().firstSeen),o=M(()=>Date.now()-t().lastSeen);var s=nB(),c=F(s),l=F(c),u=F(l),d=e=>{xp(e,{size:16,class:`text-fg-subtle`})},f=e=>{Tp(e,{size:16,class:`text-fg-subtle`})};W(u,e=>{n()?e(d):e(f,-1)}),D(l);var v=L(l,2),y=F(v),b=F(y),x=F(b,!0);D(b);var S=L(b,2),C=F(S);D(S);var w=L(S,2),T=e=>{var n=Kz(),r=F(n,!0);D(n),R(()=>U(r,t().service)),H(e,n)};W(w,e=>{t().service&&e(T)}),D(y);var ee=L(y,2),te=F(ee),ne=F(te,!0);D(te);var re=L(te,2);{let e=M(()=>`${t().type}: ${t().message}`);X_(re,{get value(){return z(e)},label:`Copy error message`,class:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`})}D(ee);var ie=L(ee,2),ae=F(ie),oe=F(ae);jp(oe,{size:12});var se=L(oe);D(ae);var ce=L(ae,2),le=F(ce);jp(le,{size:12});var E=L(le);D(ce),D(ie),D(v),D(c);var ue=L(c,2),de=e=>{var n=tB(),r=F(n),i=e=>{var n=Jz(),r=L(F(n),2);Wz(r,{get stackTrace(){return t().stackTrace},get loadSource(){return rs}});var i=L(r,2);M_(L(F(i),2),{get content(){return t().stackTrace},children:(e,n)=>{var r=qz(),i=F(r,!0);D(r),R(()=>U(i,t().stackTrace)),H(e,r)},$$slots:{default:!0}}),D(i),D(n),H(e,n)};W(r,e=>{t().stackTrace&&e(i)});var a=L(r,2),o=e=>{var n=Xz(),r=L(F(n),2);G(r,21,()=>t().affectedSpans,Aa,(e,t)=>{var n=Yz(),r=F(n,!0);D(n),R(()=>U(r,z(t))),H(e,n)}),D(r),D(n),H(e,n)};W(a,e=>{t().affectedSpans.length>0&&e(o)});var s=L(a,2),c=e=>{var n=Qz(),r=L(F(n),2);G(r,20,()=>t().affectedTraces.slice(0,5),e=>e,(e,t)=>{var n=Zz(),r=F(n),i=F(r);ym(i,{size:10});var a=L(i);qp(L(a),{size:10}),D(r),X_(L(r,2),{get value(){return t},label:`Copy trace ID`,size:10,class:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`}),D(n),R(e=>U(a,` ${e??``}... `),[()=>t.slice(0,16)]),B(`click`,r,()=>g(t)),H(e,n)}),D(r),D(n),H(e,n)};W(s,e=>{t().affectedTraces.length>0&&e(c)});var l=L(s,2),u=e=>{var n=eB(),r=L(F(n),2);G(r,21,()=>Object.entries(t().attributes),([e,t])=>e,(e,t)=>{var n=M(()=>_(z(t),2));let r=()=>z(n)[0],i=()=>z(n)[1];var a=$z(),o=F(a),s=F(o);D(o);var c=L(o,2),l=F(c,!0);D(c),D(a),R(e=>{U(s,`${r()??``}:`),U(l,e)},[()=>String(i())]),H(e,a)}),D(r),D(n),H(e,n)},d=M(()=>t().attributes&&Object.keys(t().attributes).length>0);W(l,e=>{z(d)&&e(u)});var f=L(l,2),p=F(f),m=F(p),h=F(m);D(m);var v=L(m,2),y=F(v);D(v),D(p),D(f),D(n),R((e,t)=>{U(h,`First seen: ${e??``}`),U(y,`Last seen: ${t??``}`)},[()=>od(t().firstSeen),()=>od(t().lastSeen)]),H(e,n)};W(ue,e=>{n()&&e(de)}),D(s),R((e,n)=>{J(s,`aria-selected`,i()),J(s,`data-row-index`,r()),q(s,1,`border border-line rounded-md bg-surface overflow-hidden${i()?` ring-1 ring-inset ring-accent bg-accent/10`:``}`),U(x,t().type),U(C,`${t().count??``}x`),U(ne,t().message),U(se,` First: ${e??``}`),U(E,` Last: ${n??``}`)},[()=>Gz(z(a)),()=>Gz(z(o))]),B(`click`,c,()=>{m.cursor=r(),h(t().fingerprint)}),H(e,s)};function r(e,t){return I_(t.toLowerCase(),[e.type,e.message,...e.affectedTraces])}let i=N(`recent`),a=N(null),o=N(``),s=N(void 0),c=M(()=>z(i)===`recent`?au.value:ou.value),l=M(()=>z(c).filter(e=>r(e,z(o)))),u=M(()=>z(o).length>0),d=M(()=>su.value),f=M(()=>cu.value),m=VA({count:()=>z(l).length,onActivate:e=>{let t=z(l)[e];t&&h(t.fingerprint)},scrollToIndex:e=>z(s)?.querySelector(`[data-row-index="${e}"]`)?.scrollIntoView({block:`nearest`})});function h(e){P(a,z(a)===e?null:e,!0)}function g(e){Nu(e),Mu(`traces`)}var v=cB(),y=F(v),b=F(y),x=F(b);Uh(x,{size:16,class:`text-danger`});var S=L(x,2),C=e=>{var t=rB(),n=F(t);D(t),R(()=>U(n,`(${z(l).length??``} of ${z(c).length??``})`)),H(e,t)};W(S,e=>{z(u)&&e(C)});var w=L(S,2),T=e=>{var t=iB(),n=F(t,!0);D(t),R(()=>U(n,z(d))),H(e,t)};W(w,e=>{z(d)>0&&e(T)}),D(b);var ee=L(b,2),te=F(ee),ne=F(te);ne.value=ne.__value=`recent`;var re=L(ne);re.value=re.__value=`frequent`,D(te);var ie;uo(te),D(ee),D(y);var ae=L(y,2),oe=e=>{F_(e,{class:`mb-4`,inputClass:`border-line bg-subtle text-fg focus:border-line focus:ring-1 focus:ring-accent`,placeholder:`Filter by type, message, trace id…`,ariaLabel:`Filter errors`,get value(){return z(o)},set value(e){P(o,e,!0)}})};W(ae,e=>{z(c).length>0&&e(oe)});var se=L(ae,2),ce=e=>{var t=aB(),n=F(t),r=L(F(n),2),i=F(r,!0);D(r),D(n);var a=L(n,2),o=L(F(a),2),s=F(o,!0);D(o),D(a);var p=L(a,2),m=L(F(p),2),h=F(m,!0);D(m),D(p),D(t),R(()=>{U(i,z(u)?`${z(l).length} of ${z(c).length}`:z(c).length),U(s,z(d)),U(h,z(f))}),H(e,t)};W(se,e=>{z(d)>0&&e(ce)});var le=L(se,2),E=F(le),ue=e=>{var t=oB();Uh(F(t),{size:32,class:`mb-2 text-fg-subtle`}),Ke(4),D(t),H(e,t)},de=e=>{var t=sB();xh(F(t),{size:32,class:`mb-2 text-fg-subtle`}),Ke(4),D(t),H(e,t)},fe=e=>{var t=da();G(I(t),19,()=>z(l),e=>e.fingerprint,(e,t,r)=>{n(e,()=>z(t),()=>z(a)===z(t).fingerprint,()=>z(r),()=>m.cursor===z(r))}),H(e,t)};W(E,e=>{z(c).length===0?e(ue):z(l).length===0?e(de,1):e(fe,-1)}),D(le),Uo(le,e=>P(s,e),()=>z(s)),D(v),R(()=>{ie!==(ie=z(i))&&(te.value=(te.__value=z(i))??``,lo(te,z(i)))}),B(`change`,te,e=>P(i,e.target.value,!0)),B(`keydown`,le,function(...e){m.onKeyDown?.apply(this,e)}),H(e,v),at()}na([`click`,`change`,`keydown`]);var uB={info:0,warning:1,error:2,critical:3};function dB(e,t=`info`){return typeof e==`string`&&e in uB?e:t}function fB(e,t){return uB[e]>=uB[t]}var pB={marker:`autotel.security`,forceKeep:`autotel.security.force_keep`,event:`security.event`,category:`security.category`,outcome:`security.outcome`,severity:`security.severity`,actorId:`security.actor_id`,targetType:`security.target_type`,targetId:`security.target_id`,tenantId:`security.tenant_id`,reason:`security.reason`,droppedKeys:`security.dropped_keys`,suspiciousRequest:`security.suspicious_request`,signal:`security.signal`};function mB(e){return typeof e==`string`&&e.length>0?e:void 0}function hB(e,t){let n=e.attributes??{},r=mB(n[pB.event]),i=n[pB.suspiciousRequest]===!0;return!r&&!i?null:{traceId:e.traceId,spanId:e.spanId,spanName:e.name,service:t,timestamp:e.startTime,event:r,category:mB(n[pB.category]),outcome:mB(n[pB.outcome]),severity:dB(n[pB.severity],i?`warning`:`info`),reason:mB(n[pB.reason]),suspicious:i,signal:mB(n[pB.signal])}}function gB(e){let t=[];for(let n of e)for(let e of n.spans){let r=hB(e,n.service);r&&t.push(r)}return t.sort((e,t)=>t.timestamp-e.timestamp)}function _B(e){let t={info:0,warning:0,error:0,critical:0};for(let n of e)t[n.severity]+=1;return t}function vB(e,t){return fB(e.severity,t)}function yB(e){switch(e){case`critical`:return`bg-red-100 text-red-700`;case`error`:return`bg-orange-100 text-orange-700`;case`warning`:return`bg-amber-100 text-amber-700`;default:return`bg-hover text-fg-muted`}}var bB=V(`<span class="ml-1 px-2 py-0.5 text-xs font-medium bg-red-100 text-red-700 rounded-full"> </span>`),xB=V(`<div class="flex gap-4 mb-4 p-3 bg-subtle rounded-md border border-line"><div class="text-sm"><span class="text-fg-muted">Critical:</span> <span class="font-semibold text-red-600"> </span></div> <div class="text-sm"><span class="text-fg-muted">Error:</span> <span class="font-semibold text-orange-600"> </span></div> <div class="text-sm"><span class="text-fg-muted">Warning:</span> <span class="font-semibold text-amber-600"> </span></div> <div class="text-sm"><span class="text-fg-muted">Info:</span> <span class="font-semibold text-fg"> </span></div></div>`),SB=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle py-12"><!> <p class="text-sm">No security events captured</p> <p class="text-xs text-fg-subtle mt-1">Spans with security.* attributes (autotel-audit) will appear here</p></div>`),CB=V(`<span class="px-1.5 py-0.5 text-xs font-medium bg-hover text-fg-muted rounded"> </span>`),wB=V(`<span class="text-fg-subtle"> </span>`),TB=V(`<div class="border border-line rounded-md bg-surface p-3"><div class="flex items-center gap-2 mb-1"><!> <span class="text-sm font-semibold text-fg"> </span> <span> </span> <!> <!> <!></div> <p class="text-xs text-fg-muted truncate mb-2 font-mono"> <!></p> <div class="flex items-center gap-4 text-xs text-fg-subtle"><span> </span> <button class="flex items-center gap-1 text-fg-muted hover:text-fg font-mono"><!> <!></button></div></div>`),EB=V(`<div class="flex flex-col h-full p-4"><div class="flex items-center justify-between mb-4 pb-3 border-b border-line"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg"><!> Security <!></h3> <select class="text-xs border border-line rounded px-2 py-1 bg-surface text-fg-muted"><option>All severities</option><option>Warning+</option><option>Error+</option><option>Critical only</option></select></div> <!> <div class="flex-1 overflow-auto space-y-2"><!></div></div>`);function DB(e,t){it(t,!0);let n=N(`info`),r=M(()=>gB(vl.value)),i=M(()=>_B(z(r))),a=M(()=>z(r).filter(e=>vB(e,z(n))));function o(e,t){Nu(e,t),Mu(`traces`)}function s(e){return e.event?e.event:e.signal?`probe: ${e.signal}`:`suspicious request`}var c=EB(),l=F(c),u=F(l),d=F(u);Dh(d,{size:16,class:`text-red-500`});var f=L(d,2),p=e=>{var t=bB(),n=F(t,!0);D(t),R(()=>U(n,z(r).length)),H(e,t)};W(f,e=>{z(r).length>0&&e(p)}),D(u);var m=L(u,2),h=F(m);h.value=h.__value=`info`;var g=L(h);g.value=g.__value=`warning`;var _=L(g);_.value=_.__value=`error`;var v=L(_);v.value=v.__value=`critical`,D(m);var y;uo(m),D(l);var b=L(l,2),x=e=>{var t=xB(),n=F(t),r=L(F(n),2),a=F(r,!0);D(r),D(n);var o=L(n,2),s=L(F(o),2),c=F(s,!0);D(s),D(o);var l=L(o,2),u=L(F(l),2),d=F(u,!0);D(u),D(l);var f=L(l,2),p=L(F(f),2),m=F(p,!0);D(p),D(f),D(t),R(()=>{U(a,z(i).critical),U(c,z(i).error),U(d,z(i).warning),U(m,z(i).info)}),H(e,t)};W(b,e=>{z(r).length>0&&e(x)});var S=L(b,2),C=F(S),w=e=>{var t=SB();Dh(F(t),{size:32,class:`mb-2 text-fg-subtle`}),Ke(4),D(t),H(e,t)},T=e=>{var t=da();G(I(t),17,()=>z(a),e=>e.traceId+e.spanId,(e,t)=>{var n=TB(),r=F(n),i=F(r),a=e=>{lh(e,{size:14,class:`text-amber-500`})};W(i,e=>{z(t).suspicious&&e(a)});var c=L(i,2),l=F(c,!0);D(c);var u=L(c,2),d=F(u,!0);D(u);var f=L(u,2),p=e=>{var n=CB(),r=F(n,!0);D(n),R(()=>U(r,z(t).category)),H(e,n)};W(f,e=>{z(t).category&&e(p)});var m=L(f,2),h=e=>{var n=CB(),r=F(n,!0);D(n),R(()=>U(r,z(t).outcome)),H(e,n)};W(m,e=>{z(t).outcome&&e(h)});var g=L(m,2),_=e=>{var n=CB(),r=F(n,!0);D(n),R(()=>U(r,z(t).service)),H(e,n)};W(g,e=>{z(t).service&&e(_)}),D(r);var v=L(r,2),y=F(v),b=L(y),x=e=>{var n=wB(),r=F(n);D(n),R(()=>U(r,`— ${z(t).reason??``}`)),H(e,n)};W(b,e=>{z(t).reason&&e(x)}),D(v);var S=L(v,2),C=F(S),w=F(C,!0);D(C);var T=L(C,2),ee=F(T);ym(ee,{size:10});var te=L(ee);qp(L(te),{size:10}),D(T),D(S),D(n),R((e,n,r,i)=>{U(l,e),q(u,1,n),U(d,z(t).severity),U(y,`${z(t).spanName??``} `),U(w,r),U(te,` ${i??``}... `)},[()=>s(z(t)),()=>`px-1.5 py-0.5 text-xs font-medium rounded `+yB(z(t).severity),()=>od(z(t).timestamp),()=>z(t).traceId.slice(0,16)]),B(`click`,T,()=>o(z(t).traceId,z(t).spanId)),H(e,n)}),H(e,t)};W(C,e=>{z(a).length===0?e(w):e(T,-1)}),D(S),D(c),R(()=>{y!==(y=z(n))&&(m.value=(m.__value=z(n))??``,lo(m,z(n)))}),B(`change`,m,e=>P(n,e.target.value,!0)),H(e,c),at()}na([`change`,`click`]);async function OB(e,t){let n;try{n=await t.fetch(`${t.baseUrl}/api/analysis/compare`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e),signal:t.signal})}catch(e){return e?.name===`AbortError`?{status:`aborted`}:{status:`error`,message:e instanceof Error?`Network error: ${e.message}`:`Network error`}}let r;try{r=await n.json()}catch{return{status:`error`,message:`Unexpected response (not JSON)`}}let i=r;if(n.status===501)return{status:`unavailable`,message:i.message??`Comparison is unavailable on this server.`};if(n.status===400)return{status:`invalid`,message:i.message??i.error??`Invalid query`};if(!n.ok)return{status:`error`,message:i.error??n.statusText};let a=i.outlierCount??0,o=i.baselineCount??0;return a===0||o===0?{status:`empty`,outlierCount:a,baselineCount:o}:{status:`ok`,differences:i.differences??[],outlierCount:a,baselineCount:o}}var kB=V(`<!> Mark now`,1),AB=V(`<!> Comparing since mark`,1),jB=V(`<label class="mb-1 block text-[11px] text-fg-muted">Investigating <input placeholder="duration > 500" class="mt-0.5 w-full rounded border border-line bg-subtle px-2 py-1 font-mono text-xs text-fg focus:border-accent focus:outline-none"/></label>`),MB=V(`<p class="mb-1 text-[11px] text-fg-subtle">Comparing spans since the mark against those before it, within the
|
|
32
|
-
current time window.</p>`),
|
|
31
|
+
`)){let e=Rz.exec(n);if(e){let n=Bz(e[2]);t.push({function:e[1],file:n,line:Number(e[3]),column:Number(e[4]),kind:Lz(n)});continue}let r=zz.exec(n);if(r){let e=Bz(r[1]);t.push({file:e,line:Number(r[2]),column:Number(r[3]),kind:Lz(e)})}}return t}var Hz=V(`<div class="overflow-hidden rounded border border-line"><!></div>`),Uz=V(`<div class="flex flex-col gap-2"><div class="overflow-hidden rounded border border-line"><!></div> <!></div>`);function Wz(e,t){it(t,!0);let n=Z(t,`context`,3,4),r=M(()=>Vz(t.stackTrace)),i=N(null),a=N(null),o=N(!1),s=0;async function c(e){P(i,e,!0),P(o,!1);let r=++s,c=await t.loadSource(e,n());r===s&&(P(a,c,!0),P(o,!0))}var l=da(),u=I(l),d=e=>{var t=Uz(),n=F(t);jz(F(n),{get frames(){return z(r)},get selected(){return z(i)},onselect:c}),D(n);var s=L(n,2),l=e=>{var t=Hz();Iz(F(t),{get window(){return z(a)}}),D(t),H(e,t)};W(s,e=>{z(o)&&e(l)}),D(t),H(e,t)};W(u,e=>{z(r).length>0&&e(d)}),H(e,l),at()}function Gz(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s ago`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}var Kz=V(`<span class="px-1.5 py-0.5 text-xs font-medium bg-hover text-fg-muted rounded"> </span>`),qz=V(`<pre class="text-xs font-mono bg-code text-fg p-2 rounded overflow-x-auto whitespace-pre-wrap"> </pre>`),Jz=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Stack Trace</h5> <!> <details class="mt-2"><summary class="cursor-pointer text-[11px] text-fg-subtle hover:text-fg">Raw stack</summary> <!></details></div>`),Yz=V(`<span class="px-2 py-0.5 text-xs font-mono bg-hover text-fg-muted rounded"> </span>`),Xz=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Affected Operations</h5> <div class="flex flex-wrap gap-1"></div></div>`),Zz=V(`<div class="group flex items-center gap-1"><button class="flex items-center gap-1 text-xs text-fg-muted hover:text-fg font-mono"><!> <!></button> <!></div>`),Qz=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Recent Traces</h5> <div class="space-y-1"></div></div>`),$z=V(`<div class="flex gap-2"><span class="text-fg-subtle"> </span> <span class="font-mono text-fg-muted"> </span></div>`),eB=V(`<div><h5 class="text-xs font-semibold text-fg-muted mb-1.5">Context</h5> <div class="text-xs space-y-0.5"></div></div>`),tB=V(`<div class="border-t border-line p-3 bg-subtle space-y-3"><!> <!> <!> <!> <div class="text-xs text-fg-subtle pt-2 border-t border-line"><div class="flex gap-4"><span> </span> <span> </span></div></div></div>`),nB=V(`<div role="option"><button class="w-full p-3 flex items-start gap-3 hover:bg-subtle transition-colors text-left"><div class="mt-0.5"><!></div> <div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-1"><span class="text-sm font-semibold text-danger"> </span> <span class="px-1.5 py-0.5 text-xs font-medium bg-danger-bg text-danger rounded"> </span> <!></div> <div class="group flex items-start gap-1 mb-2"><p class="text-sm text-fg-muted truncate"> </p> <!></div> <div class="flex items-center gap-4 text-xs text-fg-subtle"><span class="flex items-center gap-1"><!> </span> <span class="flex items-center gap-1"><!> </span></div></div></button> <!></div>`),rB=V(`<span class="text-xs font-normal text-fg-muted"> </span>`),iB=V(`<span class="ml-1 px-2 py-0.5 text-xs font-medium bg-danger-bg text-danger rounded-full"> </span>`),aB=V(`<div class="flex gap-4 mb-4 p-3 bg-subtle rounded-md border border-line"><div class="text-sm"><span class="text-fg-muted">Groups:</span> <span class="font-semibold text-fg"> </span></div> <div class="text-sm"><span class="text-fg-muted">Total:</span> <span class="font-semibold text-fg"> </span></div> <div class="text-sm"><span class="text-fg-muted">Last hour:</span> <span class="font-semibold text-danger"> </span></div></div>`),oB=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle py-12"><!> <p class="text-sm">No errors captured</p> <p class="text-xs text-fg-subtle mt-1">Errors from failed traces will appear here</p></div>`),sB=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle py-12"><!> <p class="text-sm">No matching errors</p> <p class="text-xs text-fg-subtle mt-1">No error groups match the current filter</p></div>`),cB=V(`<div class="flex flex-col h-full p-4"><div class="flex items-center justify-between mb-4 pb-3 border-b border-line"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg"><!> Errors <!> <!></h3> <div class="flex items-center gap-2"><select class="text-xs border border-line rounded px-2 py-1 bg-surface text-fg-muted"><option>Most Recent</option><option>Most Frequent</option></select></div></div> <!> <!> <div role="listbox" tabindex="0" aria-label="Error groups" class="flex-1 overflow-auto space-y-2 focus:outline-none"><!></div></div>`);function lB(e,t){it(t,!0);let n=(e,t=p,n=p,r=p,i=p)=>{let a=M(()=>Date.now()-t().firstSeen),o=M(()=>Date.now()-t().lastSeen);var s=nB(),c=F(s),l=F(c),u=F(l),d=e=>{xp(e,{size:16,class:`text-fg-subtle`})},f=e=>{Tp(e,{size:16,class:`text-fg-subtle`})};W(u,e=>{n()?e(d):e(f,-1)}),D(l);var v=L(l,2),y=F(v),b=F(y),x=F(b,!0);D(b);var S=L(b,2),C=F(S);D(S);var w=L(S,2),T=e=>{var n=Kz(),r=F(n,!0);D(n),R(()=>U(r,t().service)),H(e,n)};W(w,e=>{t().service&&e(T)}),D(y);var ee=L(y,2),te=F(ee),ne=F(te,!0);D(te);var re=L(te,2);{let e=M(()=>`${t().type}: ${t().message}`);X_(re,{get value(){return z(e)},label:`Copy error message`,class:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`})}D(ee);var ie=L(ee,2),ae=F(ie),oe=F(ae);jp(oe,{size:12});var se=L(oe);D(ae);var ce=L(ae,2),le=F(ce);jp(le,{size:12});var E=L(le);D(ce),D(ie),D(v),D(c);var ue=L(c,2),de=e=>{var n=tB(),r=F(n),i=e=>{var n=Jz(),r=L(F(n),2);Wz(r,{get stackTrace(){return t().stackTrace},get loadSource(){return rs}});var i=L(r,2);M_(L(F(i),2),{get content(){return t().stackTrace},children:(e,n)=>{var r=qz(),i=F(r,!0);D(r),R(()=>U(i,t().stackTrace)),H(e,r)},$$slots:{default:!0}}),D(i),D(n),H(e,n)};W(r,e=>{t().stackTrace&&e(i)});var a=L(r,2),o=e=>{var n=Xz(),r=L(F(n),2);G(r,21,()=>t().affectedSpans,Aa,(e,t)=>{var n=Yz(),r=F(n,!0);D(n),R(()=>U(r,z(t))),H(e,n)}),D(r),D(n),H(e,n)};W(a,e=>{t().affectedSpans.length>0&&e(o)});var s=L(a,2),c=e=>{var n=Qz(),r=L(F(n),2);G(r,20,()=>t().affectedTraces.slice(0,5),e=>e,(e,t)=>{var n=Zz(),r=F(n),i=F(r);ym(i,{size:10});var a=L(i);qp(L(a),{size:10}),D(r),X_(L(r,2),{get value(){return t},label:`Copy trace ID`,size:10,class:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`}),D(n),R(e=>U(a,` ${e??``}... `),[()=>t.slice(0,16)]),B(`click`,r,()=>g(t)),H(e,n)}),D(r),D(n),H(e,n)};W(s,e=>{t().affectedTraces.length>0&&e(c)});var l=L(s,2),u=e=>{var n=eB(),r=L(F(n),2);G(r,21,()=>Object.entries(t().attributes),([e,t])=>e,(e,t)=>{var n=M(()=>_(z(t),2));let r=()=>z(n)[0],i=()=>z(n)[1];var a=$z(),o=F(a),s=F(o);D(o);var c=L(o,2),l=F(c,!0);D(c),D(a),R(e=>{U(s,`${r()??``}:`),U(l,e)},[()=>String(i())]),H(e,a)}),D(r),D(n),H(e,n)},d=M(()=>t().attributes&&Object.keys(t().attributes).length>0);W(l,e=>{z(d)&&e(u)});var f=L(l,2),p=F(f),m=F(p),h=F(m);D(m);var v=L(m,2),y=F(v);D(v),D(p),D(f),D(n),R((e,t)=>{U(h,`First seen: ${e??``}`),U(y,`Last seen: ${t??``}`)},[()=>od(t().firstSeen),()=>od(t().lastSeen)]),H(e,n)};W(ue,e=>{n()&&e(de)}),D(s),R((e,n)=>{J(s,`aria-selected`,i()),J(s,`data-row-index`,r()),q(s,1,`border border-line rounded-md bg-surface overflow-hidden${i()?` ring-1 ring-inset ring-accent bg-accent/10`:``}`),U(x,t().type),U(C,`${t().count??``}x`),U(ne,t().message),U(se,` First: ${e??``}`),U(E,` Last: ${n??``}`)},[()=>Gz(z(a)),()=>Gz(z(o))]),B(`click`,c,()=>{m.cursor=r(),h(t().fingerprint)}),H(e,s)};function r(e,t){return I_(t.toLowerCase(),[e.type,e.message,...e.affectedTraces])}let i=N(`recent`),a=N(null),o=N(``),s=N(void 0),c=M(()=>z(i)===`recent`?au.value:ou.value),l=M(()=>z(c).filter(e=>r(e,z(o)))),u=M(()=>z(o).length>0),d=M(()=>su.value),f=M(()=>cu.value),m=VA({count:()=>z(l).length,onActivate:e=>{let t=z(l)[e];t&&h(t.fingerprint)},scrollToIndex:e=>z(s)?.querySelector(`[data-row-index="${e}"]`)?.scrollIntoView({block:`nearest`})});function h(e){P(a,z(a)===e?null:e,!0)}function g(e){Nu(e),Mu(`traces`)}var v=cB(),y=F(v),b=F(y),x=F(b);Uh(x,{size:16,class:`text-danger`});var S=L(x,2),C=e=>{var t=rB(),n=F(t);D(t),R(()=>U(n,`(${z(l).length??``} of ${z(c).length??``})`)),H(e,t)};W(S,e=>{z(u)&&e(C)});var w=L(S,2),T=e=>{var t=iB(),n=F(t,!0);D(t),R(()=>U(n,z(d))),H(e,t)};W(w,e=>{z(d)>0&&e(T)}),D(b);var ee=L(b,2),te=F(ee),ne=F(te);ne.value=ne.__value=`recent`;var re=L(ne);re.value=re.__value=`frequent`,D(te);var ie;uo(te),D(ee),D(y);var ae=L(y,2),oe=e=>{F_(e,{class:`mb-4`,inputClass:`border-line bg-subtle text-fg focus:border-line focus:ring-1 focus:ring-accent`,placeholder:`Filter by type, message, trace id…`,ariaLabel:`Filter errors`,get value(){return z(o)},set value(e){P(o,e,!0)}})};W(ae,e=>{z(c).length>0&&e(oe)});var se=L(ae,2),ce=e=>{var t=aB(),n=F(t),r=L(F(n),2),i=F(r,!0);D(r),D(n);var a=L(n,2),o=L(F(a),2),s=F(o,!0);D(o),D(a);var p=L(a,2),m=L(F(p),2),h=F(m,!0);D(m),D(p),D(t),R(()=>{U(i,z(u)?`${z(l).length} of ${z(c).length}`:z(c).length),U(s,z(d)),U(h,z(f))}),H(e,t)};W(se,e=>{z(d)>0&&e(ce)});var le=L(se,2),E=F(le),ue=e=>{var t=oB();Uh(F(t),{size:32,class:`mb-2 text-fg-subtle`}),Ke(4),D(t),H(e,t)},de=e=>{var t=sB();xh(F(t),{size:32,class:`mb-2 text-fg-subtle`}),Ke(4),D(t),H(e,t)},fe=e=>{var t=da();G(I(t),19,()=>z(l),e=>e.fingerprint,(e,t,r)=>{n(e,()=>z(t),()=>z(a)===z(t).fingerprint,()=>z(r),()=>m.cursor===z(r))}),H(e,t)};W(E,e=>{z(c).length===0?e(ue):z(l).length===0?e(de,1):e(fe,-1)}),D(le),Uo(le,e=>P(s,e),()=>z(s)),D(v),R(()=>{ie!==(ie=z(i))&&(te.value=(te.__value=z(i))??``,lo(te,z(i)))}),B(`change`,te,e=>P(i,e.target.value,!0)),B(`keydown`,le,function(...e){m.onKeyDown?.apply(this,e)}),H(e,v),at()}na([`click`,`change`,`keydown`]);var uB={info:0,warning:1,error:2,critical:3};function dB(e,t=`info`){return typeof e==`string`&&e in uB?e:t}function fB(e,t){return uB[e]>=uB[t]}var pB={marker:`autotel.security`,forceKeep:`autotel.security.force_keep`,event:`security.event`,category:`security.category`,outcome:`security.outcome`,severity:`security.severity`,actorId:`security.actor_id`,targetType:`security.target_type`,targetId:`security.target_id`,tenantId:`security.tenant_id`,reason:`security.reason`,droppedKeys:`security.dropped_keys`,suspiciousRequest:`security.suspicious_request`,signal:`security.signal`};function mB(e){return typeof e==`string`&&e.length>0?e:void 0}function hB(e,t){let n=e.attributes??{},r=mB(n[pB.event]),i=n[pB.suspiciousRequest]===!0;return!r&&!i?null:{traceId:e.traceId,spanId:e.spanId,spanName:e.name,service:t,timestamp:e.startTime,event:r,category:mB(n[pB.category]),outcome:mB(n[pB.outcome]),severity:dB(n[pB.severity],i?`warning`:`info`),reason:mB(n[pB.reason]),suspicious:i,signal:mB(n[pB.signal])}}function gB(e){let t=[];for(let n of e)for(let e of n.spans){let r=hB(e,n.service);r&&t.push(r)}return t.sort((e,t)=>t.timestamp-e.timestamp)}function _B(e){let t={info:0,warning:0,error:0,critical:0};for(let n of e)t[n.severity]+=1;return t}function vB(e,t){return fB(e.severity,t)}function yB(e){switch(e){case`critical`:return`bg-red-100 text-red-700`;case`error`:return`bg-orange-100 text-orange-700`;case`warning`:return`bg-amber-100 text-amber-700`;default:return`bg-hover text-fg-muted`}}var bB=V(`<span class="ml-1 px-2 py-0.5 text-xs font-medium bg-red-100 text-red-700 rounded-full"> </span>`),xB=V(`<div class="flex gap-4 mb-4 p-3 bg-subtle rounded-md border border-line"><div class="text-sm"><span class="text-fg-muted">Critical:</span> <span class="font-semibold text-red-600"> </span></div> <div class="text-sm"><span class="text-fg-muted">Error:</span> <span class="font-semibold text-orange-600"> </span></div> <div class="text-sm"><span class="text-fg-muted">Warning:</span> <span class="font-semibold text-amber-600"> </span></div> <div class="text-sm"><span class="text-fg-muted">Info:</span> <span class="font-semibold text-fg"> </span></div></div>`),SB=V(`<div class="flex flex-col items-center justify-center h-full text-fg-subtle py-12"><!> <p class="text-sm">No security events captured</p> <p class="text-xs text-fg-subtle mt-1">Spans with security.* attributes (autotel-audit) will appear here</p></div>`),CB=V(`<span class="px-1.5 py-0.5 text-xs font-medium bg-hover text-fg-muted rounded"> </span>`),wB=V(`<span class="text-fg-subtle"> </span>`),TB=V(`<div class="border border-line rounded-md bg-surface p-3"><div class="flex items-center gap-2 mb-1"><!> <span class="text-sm font-semibold text-fg"> </span> <span> </span> <!> <!> <!></div> <p class="text-xs text-fg-muted truncate mb-2 font-mono"> <!></p> <div class="flex items-center gap-4 text-xs text-fg-subtle"><span> </span> <button class="flex items-center gap-1 text-fg-muted hover:text-fg font-mono"><!> <!></button></div></div>`),EB=V(`<div class="flex flex-col h-full p-4"><div class="flex items-center justify-between mb-4 pb-3 border-b border-line"><h3 class="text-sm font-semibold flex items-center gap-2 text-fg"><!> Security <!></h3> <select class="text-xs border border-line rounded px-2 py-1 bg-surface text-fg-muted"><option>All severities</option><option>Warning+</option><option>Error+</option><option>Critical only</option></select></div> <!> <div class="flex-1 overflow-auto space-y-2"><!></div></div>`);function DB(e,t){it(t,!0);let n=N(`info`),r=M(()=>gB(vl.value)),i=M(()=>_B(z(r))),a=M(()=>z(r).filter(e=>vB(e,z(n))));function o(e,t){Nu(e,t),Mu(`traces`)}function s(e){return e.event?e.event:e.signal?`probe: ${e.signal}`:`suspicious request`}var c=EB(),l=F(c),u=F(l),d=F(u);Dh(d,{size:16,class:`text-red-500`});var f=L(d,2),p=e=>{var t=bB(),n=F(t,!0);D(t),R(()=>U(n,z(r).length)),H(e,t)};W(f,e=>{z(r).length>0&&e(p)}),D(u);var m=L(u,2),h=F(m);h.value=h.__value=`info`;var g=L(h);g.value=g.__value=`warning`;var _=L(g);_.value=_.__value=`error`;var v=L(_);v.value=v.__value=`critical`,D(m);var y;uo(m),D(l);var b=L(l,2),x=e=>{var t=xB(),n=F(t),r=L(F(n),2),a=F(r,!0);D(r),D(n);var o=L(n,2),s=L(F(o),2),c=F(s,!0);D(s),D(o);var l=L(o,2),u=L(F(l),2),d=F(u,!0);D(u),D(l);var f=L(l,2),p=L(F(f),2),m=F(p,!0);D(p),D(f),D(t),R(()=>{U(a,z(i).critical),U(c,z(i).error),U(d,z(i).warning),U(m,z(i).info)}),H(e,t)};W(b,e=>{z(r).length>0&&e(x)});var S=L(b,2),C=F(S),w=e=>{var t=SB();Dh(F(t),{size:32,class:`mb-2 text-fg-subtle`}),Ke(4),D(t),H(e,t)},T=e=>{var t=da();G(I(t),17,()=>z(a),e=>e.traceId+e.spanId,(e,t)=>{var n=TB(),r=F(n),i=F(r),a=e=>{lh(e,{size:14,class:`text-amber-500`})};W(i,e=>{z(t).suspicious&&e(a)});var c=L(i,2),l=F(c,!0);D(c);var u=L(c,2),d=F(u,!0);D(u);var f=L(u,2),p=e=>{var n=CB(),r=F(n,!0);D(n),R(()=>U(r,z(t).category)),H(e,n)};W(f,e=>{z(t).category&&e(p)});var m=L(f,2),h=e=>{var n=CB(),r=F(n,!0);D(n),R(()=>U(r,z(t).outcome)),H(e,n)};W(m,e=>{z(t).outcome&&e(h)});var g=L(m,2),_=e=>{var n=CB(),r=F(n,!0);D(n),R(()=>U(r,z(t).service)),H(e,n)};W(g,e=>{z(t).service&&e(_)}),D(r);var v=L(r,2),y=F(v),b=L(y),x=e=>{var n=wB(),r=F(n);D(n),R(()=>U(r,`— ${z(t).reason??``}`)),H(e,n)};W(b,e=>{z(t).reason&&e(x)}),D(v);var S=L(v,2),C=F(S),w=F(C,!0);D(C);var T=L(C,2),ee=F(T);ym(ee,{size:10});var te=L(ee);qp(L(te),{size:10}),D(T),D(S),D(n),R((e,n,r,i)=>{U(l,e),q(u,1,n),U(d,z(t).severity),U(y,`${z(t).spanName??``} `),U(w,r),U(te,` ${i??``}... `)},[()=>s(z(t)),()=>`px-1.5 py-0.5 text-xs font-medium rounded `+yB(z(t).severity),()=>od(z(t).timestamp),()=>z(t).traceId.slice(0,16)]),B(`click`,T,()=>o(z(t).traceId,z(t).spanId)),H(e,n)}),H(e,t)};W(C,e=>{z(a).length===0?e(w):e(T,-1)}),D(S),D(c),R(()=>{y!==(y=z(n))&&(m.value=(m.__value=z(n))??``,lo(m,z(n)))}),B(`change`,m,e=>P(n,e.target.value,!0)),H(e,c),at()}na([`change`,`click`]);async function OB(e,t){let n;try{n=await t.fetch(`${t.baseUrl}/api/analysis/compare`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e),signal:t.signal})}catch(e){return e?.name===`AbortError`?{status:`aborted`}:{status:`error`,message:e instanceof Error?`Network error: ${e.message}`:`Network error`}}let r;try{r=await n.json()}catch{return{status:`error`,message:`Unexpected response (not JSON)`}}let i=r;if(n.status===501)return{status:`unavailable`,message:i.message??`Comparison is unavailable on this server.`};if(n.status===400)return{status:`invalid`,message:i.message??i.error??`Invalid query`};if(!n.ok)return{status:`error`,message:i.error??n.statusText};let a=i.outlierCount??0,o=i.baselineCount??0;return a===0||o===0?{status:`empty`,outlierCount:a,baselineCount:o}:{status:`ok`,differences:i.differences??[],outlierCount:a,baselineCount:o}}var kB=V(`<!> Mark now`,1),AB=V(`<!> Comparing since mark`,1),jB=V(`<option> </option>`),MB=V(`<div class="mb-2 grid grid-cols-2 gap-2"><label class="block text-[11px] text-fg-muted">Arm <select class="mt-0.5 w-full rounded border border-line bg-subtle px-2 py-1 text-xs text-fg focus:border-accent focus:outline-none"></select></label> <label class="block text-[11px] text-fg-muted">Against <select class="mt-0.5 w-full rounded border border-line bg-subtle px-2 py-1 text-xs text-fg focus:border-accent focus:outline-none"><option>Every other arm</option><!></select></label></div>`),NB=V(`<label class="mb-2 block text-[11px] text-fg-muted">Experiment <select class="mt-0.5 w-full rounded border border-line bg-subtle px-2 py-1 text-xs text-fg focus:border-accent focus:outline-none"><option>Compare by query instead</option><!></select></label> <!>`,1),PB=V(`<label class="mb-1 block text-[11px] text-fg-muted">Investigating <input placeholder="duration > 500" class="mt-0.5 w-full rounded border border-line bg-subtle px-2 py-1 font-mono text-xs text-fg focus:border-accent focus:outline-none"/></label>`),FB=V(`<p class="mb-1 text-[11px] text-fg-subtle">Comparing spans since the mark against those before it, within the
|
|
32
|
+
current time window.</p>`),IB=V(`<p class="text-xs text-fg-subtle">Describe the spans you are investigating, or mark a moment and compare
|
|
33
33
|
what came after it. The result ranks the attributes that tell the two
|
|
34
|
-
groups apart.</p>`),
|
|
35
|
-
spans. A share of zero events says nothing about either group.`)),H(e,t)},
|
|
36
|
-
${z(
|
|
37
|
-
hypothesis to check against individual traces, not a conclusion.`)),H(e,t)};W(n,e=>{z(
|
|
38
|
-
nothing`)),H(e,t)},u=e=>{H(e,VB())};W(c,e=>{z(n).status===`ok`?e(l):e(u,-1)}),D(s);var d=L(s,2);dh(F(d),{size:12}),Ke(),D(d),D(o);var f=L(o,2),p=F(f),m=e=>{H(e,HB())},h=e=>{var t=UB(),r=F(t);$p(r,{size:14,class:`mt-0.5 shrink-0`});var i=L(r,2),a=F(i,!0);D(i),D(t),R(()=>U(a,z(n).message)),H(e,t)},g=e=>{var t=WB(),r=F(t,!0);D(t),R(()=>U(r,z(n).message)),H(e,t)},_=e=>{H(e,GB())},v=e=>{var t=JB(),r=L(F(t));G(r,21,()=>z(n).entries,e=>`${e.method??``} ${e.path}`,(e,t)=>{var n=qB(),r=F(n),a=F(r),o=e=>{H(e,KB())};W(a,e=>{z(t).seen||e(o)});var s=L(a);D(r);var c=L(r),l=F(c,!0);D(c);var u=L(c),d=F(u),f=F(d,!0);D(d),D(u),D(n),R(e=>{U(s,` ${z(t).method?`${z(t).method} `:``}${z(t).path??``}`),q(c,1,K(z(t).seen?`py-1 pr-2 tabular-nums text-fg-muted`:`py-1 pr-2 text-danger`)),U(l,z(t).seen?z(t).spanCount:`none`),J(d,`href`,e),U(f,z(t).file)},[()=>i(z(t))]),H(e,n)}),D(r),D(t),H(e,t)};W(p,e=>{z(n).status===`loading`||z(n).status===`idle`?e(m):z(n).status===`missing`?e(h,1):z(n).status===`error`?e(g,2):z(n).entries.length===0?e(_,3):e(v,-1)}),D(f),D(a),B(`click`,d,r),H(e,a),at()}na([`click`]);var ZB={traces:tj,agents:jj,genai:NN,flow:EP,resources:IP,"service-map":mF,metrics:nz,logs:Tz,errors:lB,security:DB,compare:zB,coverage:XB},QB=[{id:`traces`,label:`Traces`,icon:Vp},{id:`agents`,label:`Agents`,icon:sp},{id:`genai`,label:`GenAI`,icon:jh},{id:`flow`,label:`Flow`,icon:Zh},{id:`resources`,label:`Resources`,icon:lp},{id:`service-map`,label:`Service Map`,icon:Gm},{id:`metrics`,label:`Metrics`,icon:_p},{id:`logs`,label:`Logs`,icon:tm},{id:`errors`,label:`Errors`,icon:Uh},{id:`security`,label:`Security`,icon:Dh},{id:`compare`,label:`Compare`,icon:pm},{id:`coverage`,label:`Coverage`,icon:hh}].filter(e=>ZB[e.id]!==void 0),$B=QB.map(e=>e.id),eV=16,tV=48;function nV(e){let{isVertical:t,dock:n,axisSize:r,setSize:i,resetSize:a}=e,o=N(!1);return{get resizing(){return z(o)},onPointerDown:e=>{e.stopPropagation();let a=t(),s=a?`vertical`:`horizontal`,c=a?e.clientY:e.clientX,l=r(),u=n()===`bottom`||n()===`right`?-1:1;gy(e,{cursor:a?`ns-resize`:`ew-resize`,onStart:()=>P(o,!0),onMove:e=>{let t=a?e.clientY:e.clientX;i(s,l+(t-c)*u)},onEnd:()=>P(o,!1)})},onKeyDown:e=>{let a=t()?`vertical`:`horizontal`,o=e.shiftKey?tV:eV,s=t()?{ArrowUp:n()===`bottom`?o:-o,ArrowDown:n()===`bottom`?-o:o}:{ArrowLeft:n()===`right`?o:-o,ArrowRight:n()===`right`?-o:o};e.key in s&&(e.preventDefault(),i(a,r()+s[e.key]))},onDblClick:()=>a(t()?`vertical`:`horizontal`)}}function rV(e,t,n,r){let i={left:e,right:n-e,top:t,bottom:r-t};return Object.keys(i).reduce((e,t)=>i[t]<i[e]?t:e)}function iV(e){let{dock:t,pipActive:n,onDock:r}=e,i=N(!1),a=N(null);return{get dragging(){return z(i)},get dropTarget(){return z(a)},onHeaderPointerDown:e=>{e.button===0&&(e.target.closest(`button`)||n()||gy(e,{cursor:`grabbing`,onStart:()=>{P(i,!0),P(a,t(),!0)},onMove:e=>{P(a,rV(e.clientX,e.clientY,window.innerWidth,window.innerHeight),!0)},onEnd:()=>{P(i,!1),z(a)&&z(a)!==t()&&r(z(a)),P(a,null)}}))}}}function aV(e,t){it(t,!0);let n=M(()=>Bc.value),r=M(()=>ZB[z(n)]??ZB.traces);var i=da(),a=I(i),o=e=>{var t=da();Ba(I(t),()=>z(r),(e,t)=>{t(e,{})}),H(e,t)};W(a,e=>{z(r)&&e(o)}),H(e,i),at()}var oV=V(`<span class="absolute inset-0 rounded-full bg-success opacity-75 animate-ping" aria-hidden="true"></span>`),sV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry ingest rate"> </span>`),cV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry store usage and retention cap"> </span>`),lV=V(`<span> </span> <!> <!>`,1),uV=V(`<div role="status"><span class="relative inline-flex w-2 h-2 shrink-0"><!> <span aria-hidden="true"></span></span> <!></div>`);function dV(e,t){it(t,!0);let n=Z(t,`compact`,3,!1),r=M(()=>fl.value),i=M(()=>z(r)===`connected`?{dot:`bg-success`,label:`Connected`,text:`text-success`}:z(r)===`connecting`?{dot:`bg-warning animate-pulse`,label:`Connecting…`,text:`text-warning`}:{dot:`bg-danger`,label:`Disconnected`,text:`text-fg-subtle`}),a=M(()=>yl.value),o=N(!1);zr(()=>{if(z(a),z(a)===0)return;P(o,!0);let e=setTimeout(()=>P(o,!1),900);return()=>clearTimeout(e)});let s=N(0);zr(()=>{if(n())return;let e=()=>{P(s,Math.round(Cl(5e3).total),!0)};e();let t=setInterval(e,1e3);return()=>clearInterval(t)});let c=M(()=>!n()&&z(r)===`connected`&&z(s)>0),l=N(null);zr(()=>{if(n()||z(r)!==`connected`)return;let e=!0,t=async()=>{let t=pl.value,n=(t?$o(t):null)??globalThis.location?.origin;if(n)try{let t=await fetch(`${n}/api/stats`);t.ok&&e&&P(l,await t.json(),!0)}catch{}};t();let i=setInterval(t,3e4);return()=>{e=!1,clearInterval(i)}});function u(e){return e<1024**2?`${Math.round(e/1024)} KB`:e<1024**3?`${(e/1024**2).toFixed(1)} MB`:`${(e/1024**3).toFixed(1)} GB`}var d=uV(),f=F(d),p=F(f),m=e=>{H(e,oV())};W(p,e=>{z(o)&&z(r)===`connected`&&e(m)});var h=L(p,2);D(f);var g=L(f,2),_=e=>{var t=lV(),n=I(t),r=F(n,!0);D(n);var a=L(n,2),o=e=>{var t=sV(),n=F(t);D(t),R(()=>U(n,`· ${z(s)??``}/s`)),H(e,t)};W(a,e=>{z(c)&&e(o)});var d=L(a,2),f=e=>{var t=cV(),n=F(t);D(t),R((e,t)=>U(n,`· ${e??``} / ${t??``}`),[()=>u(z(l).bytesUsed),()=>u(z(l).maxBytes)]),H(e,t)};W(d,e=>{z(l)&&e(f)}),R(e=>{q(n,1,e),U(r,z(i).label)},[()=>K(Q(`text-xs font-medium`,z(i).text))]),H(e,t)};W(g,e=>{n()||e(_)}),D(d),R((e,t)=>{q(d,1,e),J(d,`aria-label`,`OTLP receiver: ${z(i).label}`),J(d,`title`,`OTLP receiver: ${z(i).label}${z(s)>0?` · ${z(s)}/s`:``}`),q(h,1,t)},[()=>K(Q(`flex items-center gap-1.5`,!n()&&`px-3 py-2`)),()=>K(Q(`relative inline-block w-2 h-2 rounded-full`,z(i).dot))]),H(e,d),at()}var fV=V(`<kbd class="inline-block px-1.5 py-0.5 font-mono text-xs font-semibold bg-hover border border-line rounded text-fg mr-1 last:mr-0 shadow-[0_1px_0_#d4d4d8]"> </kbd>`),pV=V(`<tr class="border-b border-line-subtle last:border-b-0"><td class="py-2.5 px-4 whitespace-nowrap align-middle w-[1%]"></td><td class="py-2.5 pr-4 pl-1 text-sm text-fg-muted align-middle"> </td></tr>`),mV=V(`<div class="fixed inset-0 z-[1000] flex items-center justify-center" role="dialog" aria-modal="true" aria-label="Keyboard shortcuts"><button type="button" aria-label="Close" class="absolute inset-0 bg-black/55 backdrop-blur-[2px] at-backdrop-in"></button> <div tabindex="-1" class="at-modal-in relative z-[1] bg-surface border border-line rounded-lg shadow-xl w-[480px] max-w-[90vw] max-h-[80vh] flex flex-col overflow-hidden outline-none"><div class="flex items-center justify-between px-4 py-3 border-b border-line bg-subtle flex-shrink-0"><span class="text-sm font-semibold text-fg">Keyboard Shortcuts</span> <button class="inline-flex items-center justify-center w-7 h-7 p-0 bg-transparent border border-line rounded cursor-pointer text-sm text-fg-subtle hover:bg-danger-bg hover:border-danger-border hover:text-danger transition-colors" title="Close (Esc)"><!></button></div> <div class="overflow-y-auto py-2"><table class="w-full border-collapse"><tbody></tbody></table></div></div></div>`);function hV(e,t){it(t,!0);let n=N(void 0);zr(()=>{let e=e=>{e.key===`Escape`&&(e.stopPropagation(),t.onClose())},r=z(n);return r&&(r.addEventListener(`keydown`,e),r.focus()),window.addEventListener(`keydown`,e),()=>{r&&r.removeEventListener(`keydown`,e),window.removeEventListener(`keydown`,e)}});var r=mV(),i=F(r),a=L(i,2),o=F(a),s=L(F(o),2);tg(F(s),{size:14}),D(s),D(o);var c=L(o,2),l=F(c),u=F(l);G(u,21,()=>t.shortcuts,Aa,(e,t)=>{var n=pV(),r=F(n);G(r,21,()=>z(t).keys,Aa,(e,t)=>{var n=fV(),r=F(n,!0);D(n),R(()=>U(r,z(t)===`CmdOrCtrl`?yg?`⌘`:`Ctrl`:z(t)===`AltOrOpt`?yg?`⌥`:`Alt`:z(t))),H(e,n)}),D(r);var i=L(r),a=F(i,!0);D(i),D(n),R(()=>U(a,z(t).description)),H(e,n)}),D(u),D(l),D(c),D(a),Uo(a,e=>P(n,e),()=>z(n)),D(r),B(`click`,i,function(...e){t.onClose?.apply(this,e)}),B(`click`,s,function(...e){t.onClose?.apply(this,e)}),H(e,r),at()}na([`click`]);var gV=V(`<div role="separator" aria-label="Resize panel" tabindex="0" title="Drag to resize · double-click to reset"><div></div> <div></div></div>`),_V=V(`<span class="text-fg-subtle/60 flex-shrink-0 pl-0.5" aria-hidden="true"><!></span>`),vV=V(`<span> </span>`),yV=V(`<button><!> <span> </span> <!></button>`),bV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Dock position (click to cycle: bottom → right → left) — or drag the header to an edge" aria-label="Change dock position"><!></button>`),xV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors"><!></button>`),SV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Close (Esc)" aria-label="Close devtools"><!></button>`),CV=V(`<span class="px-2.5 py-1 rounded-md bg-accent text-white text-xs font-semibold shadow-lg"> </span>`),wV=V(`<div><!></div>`),TV=V(`<div class="fixed inset-0 z-[1001] pointer-events-none" aria-hidden="true"></div>`),EV=V(`<section aria-label="Autotel devtools"><!> <header><!> <div class="flex items-center gap-2 flex-shrink-0 pr-1 mr-0.5"><!> <span class="text-xs font-semibold tracking-tight text-fg hidden sm:inline">autotel</span></div> <nav class="flex items-center gap-0.5 overflow-x-auto min-w-0 flex-1 at-no-scrollbar" aria-label="Devtools sections"></nav> <div class="flex items-center gap-1 flex-shrink-0 pl-1"><!> <button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Keyboard shortcuts (?)" aria-label="Keyboard shortcuts"><!></button> <!> <!> <!></div></header> <div class="flex-1 min-h-0 overflow-hidden"><!></div> <!></section> <!>`,1);function DV(e,t){it(t,!0);let n=N(void 0),r=M(()=>Fc.value),i=M(()=>Bc.value),a=M(()=>Rc.value??`bottom`),o=M(()=>il.value),s=M(()=>zc.value),c=og(),l=M(()=>z(a)===`bottom`||z(a)===`top`),u=M(()=>z(l)?z(o).vertical:z(o).horizontal),d=M(()=>al(z(l)?`vertical`:`horizontal`)),f=M(()=>su.value),p=M(()=>nu.value),m=M(()=>ru.value),h=M(()=>({genai:z(p)>0?z(p):void 0,flow:z(m)>0?z(m):void 0,errors:z(f)>0?z(f):void 0})),g=M(()=>QB.map(e=>({...e,badge:z(h)[e.id]}))),_=nV({isVertical:()=>z(l),dock:()=>z(a),axisSize:()=>z(u),setSize:ol,resetSize:sl}),v=iV({dock:()=>z(a),pipActive:()=>z(s),onDock:Lu});async function y(){if(z(s)){ug(()=>zc.value=!1);return}let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot?e.host:null;t&&await lg(t,()=>zc.value=!1,{width:760,height:600})&&(zc.value=!0)}let b=globalThis.window!==void 0&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function x(e,{dock:t}){if(b||z(s))return{duration:0};let n=t===`left`||t===`right`?`X`:`Y`,r=t===`bottom`||t===`right`?1:-1;return{duration:240,easing:ig,css:(e,t)=>`transform: translate${n}(${t*r*100}%)`}}let S=[`traces`,`genai`,`flow`,`service-map`,`metrics`,`logs`,`errors`],C=M(()=>$c.value);function w(){return Vc.value?gg:Bc.value===`traces`?hg:mg}zr(()=>{let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot||e instanceof Document?e:window,r=e=>{let t=e;if(t.key===`Escape`){if($c.value){tl();return}if(_g())return;if(zc.value){ug(()=>zc.value=!1);return}ju();return}if(t.key===`?`&&!_g()){t.preventDefault(),nl(w());return}if(!$c.value&&!_g()&&t.key>=`1`&&t.key<=`7`){let e=Number.parseInt(t.key,10)-1;e<S.length&&Mu(S[e])}};return t.addEventListener(`keydown`,r),()=>t.removeEventListener(`keydown`,r)});let T=M(()=>z(s)?`inset-0`:{bottom:`left-0 right-0 bottom-0`,top:`left-0 right-0 top-0`,right:`top-0 bottom-0 right-0`,left:`top-0 bottom-0 left-0`}[z(a)]),ee=M(()=>z(s)?``:{bottom:`border-t`,top:`border-b`,right:`border-l`,left:`border-r`}[z(a)]),te=M(()=>({bottom:`-top-1 left-0 right-0 h-2 cursor-ns-resize`,top:`-bottom-1 left-0 right-0 h-2 cursor-ns-resize`,right:`-left-1 top-0 bottom-0 w-2 cursor-ew-resize`,left:`-right-1 top-0 bottom-0 w-2 cursor-ew-resize`})[z(a)]),ne=M(()=>({bottom:`inset-x-0 top-1 h-px`,top:`inset-x-0 bottom-1 h-px`,right:`inset-y-0 left-1 w-px`,left:`inset-y-0 right-1 w-px`})[z(a)]),re=M(()=>z(s)?``:z(l)?`height: ${z(u)}px;`:`width: ${z(u)}px;`),ie=M(()=>z(s)?``:{bottom:`box-shadow: 0 -12px 32px -14px var(--at-shadow), 0 -2px 6px -4px var(--at-shadow);`,top:`box-shadow: 0 12px 32px -14px var(--at-shadow), 0 2px 6px -4px var(--at-shadow);`,right:`box-shadow: -12px 0 32px -14px var(--at-shadow), -2px 0 6px -4px var(--at-shadow);`,left:`box-shadow: 12px 0 32px -14px var(--at-shadow), 2px 0 6px -4px var(--at-shadow);`}[z(a)]),ae=M(()=>z(a)===`right`?Zm:z(a)===`left`?Ym:qm),oe=[{edge:`bottom`,pos:`left-0 right-0 bottom-0 h-24`,label:`Dock bottom`},{edge:`top`,pos:`left-0 right-0 top-0 h-24`,label:`Dock top`},{edge:`left`,pos:`top-0 bottom-0 left-0 w-44`,label:`Dock left`},{edge:`right`,pos:`top-0 bottom-0 right-0 w-44`,label:`Dock right`}];var se=da(),ce=I(se),le=e=>{var t=EV(),r=I(t),o=F(r),f=e=>{var t=gV(),n=F(t),r=L(n,2);D(t),R((e,i,a,o)=>{J(t,`aria-orientation`,z(l)?`horizontal`:`vertical`),J(t,`aria-valuenow`,e),J(t,`aria-valuemin`,z(d).min),J(t,`aria-valuemax`,z(d).max),q(t,1,i),q(n,1,a),q(r,1,o)},[()=>Math.round(z(u)),()=>K(Q(`absolute z-20 group touch-none select-none outline-none`,z(te))),()=>K(Q(`absolute bg-line-subtle transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(ne))),()=>K(Q(`absolute rounded-full bg-line transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(l)?`left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 w-9 h-1`:`top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2 h-9 w-1`))]),B(`pointerdown`,t,function(...e){_.onPointerDown?.apply(this,e)}),B(`keydown`,t,function(...e){_.onKeyDown?.apply(this,e)}),B(`dblclick`,t,function(...e){_.onDblClick?.apply(this,e)}),H(e,t)};W(o,e=>{z(s)||e(f)});var p=L(o,2),m=F(p),h=e=>{var t=_V();_m(F(t),{size:14}),D(t),H(e,t)};W(m,e=>{z(s)||e(h)});var b=L(m,2);id(F(b),{width:18,height:18}),Ke(2),D(b);var S=L(b,2);G(S,21,()=>z(g),e=>e.id,(e,t)=>{let n=M(()=>z(t).icon),r=M(()=>z(i)===z(t).id);var a=yV(),o=F(a);{let e=M(()=>z(t).id===`errors`&&z(t).badge?`text-danger`:void 0);Ba(o,()=>z(n),(t,n)=>{n(t,{size:14,get class(){return z(e)}})})}var s=L(o,2),c=F(s,!0);D(s);var l=L(s,2),u=e=>{var n=vV(),r=F(n,!0);D(n),R(e=>{q(n,1,e),U(r,z(t).badge>99?`99+`:z(t).badge)},[()=>K(Q(`px-1.5 py-px text-[10px] font-semibold rounded-full`,z(t).id===`errors`?`bg-danger-bg text-danger`:`bg-accent/15 text-fg-muted`))]),H(e,n)};W(l,e=>{z(t).badge&&e(u)}),D(a),R(e=>{J(a,`aria-current`,z(r)?`page`:void 0),q(a,1,e),U(c,z(t).label)},[()=>K(Q(`flex items-center gap-1.5 px-2.5 h-8 rounded-md flex-shrink-0`,`text-xs transition-colors cursor-pointer`,z(r)?`bg-accent/12 text-fg font-semibold ring-1 ring-inset ring-accent/20`:`text-fg-subtle font-medium hover:text-fg hover:bg-subtle`))]),B(`click`,a,()=>Mu(z(t).id)),H(e,a)}),D(S);var se=L(S,2);{let e=e=>{let t=M(()=>z(ae));var n=da();Ba(I(n),()=>z(t),(e,t)=>{t(e,{size:15})}),H(e,n)};var ce=F(se);dV(ce,{compact:!0});var le=L(ce,2);kp(F(le),{size:15}),D(le);var E=L(le,2),ue=t=>{var n=bV(),r=F(n);e(r),D(n),B(`click`,n,function(...e){Ru?.apply(this,e)}),H(t,n)};W(E,e=>{z(s)||e(ue)});var de=L(E,2),fe=e=>{var t=xV(),n=F(t),r=e=>{Lm(e,{size:15})},i=e=>{th(e,{size:15})};W(n,e=>{z(s)?e(r):e(i,-1)}),D(t),R(()=>{J(t,`title`,z(s)?`Return to docked panel`:`Pop out to a separate window`),J(t,`aria-label`,z(s)?`Return to docked panel`:`Pop out to window`)}),B(`click`,t,y),H(e,t)};W(de,e=>{c&&e(fe)});var pe=L(de,2),me=e=>{var t=SV();tg(F(t),{size:16}),D(t),B(`click`,t,function(...e){ju?.apply(this,e)}),H(e,t)};W(pe,e=>{z(s)||e(me)}),D(se),B(`click`,le,()=>nl(w()))}D(p);var he=L(p,2);aV(F(he),{}),D(he);var ge=L(he,2),_e=e=>{hV(e,{get shortcuts(){return z(C)},get onClose(){return tl}})};W(ge,e=>{z(C)&&e(_e)}),D(r),Uo(r,e=>P(n,e),()=>z(n));var ve=L(r,2),ye=e=>{var t=TV();G(t,21,()=>oe,e=>e.edge,(e,t)=>{let n=M(()=>v.dropTarget===z(t).edge);var r=wV(),i=F(r),a=e=>{var n=CV(),r=F(n,!0);D(n),R(()=>U(r,z(t).label)),H(e,n)};W(i,e=>{z(n)&&e(a)}),D(r),R(e=>q(r,1,e),[()=>K(Q(`absolute flex items-center justify-center transition-colors duration-100`,z(t).pos,z(n)?`bg-accent/15 ring-2 ring-inset ring-accent`:`bg-accent/5`))]),H(e,r)}),D(t),H(e,t)};W(ve,e=>{v.dragging&&e(ye)}),R((e,t)=>{q(r,1,e),co(r,`${z(re)} ${z(ie)}`),q(p,1,t)},[()=>K(Q(`fixed z-[1000] flex flex-col`,`bg-surface text-fg`,z(T),z(ee),`border-line`)),()=>K(Q(`flex items-center gap-1 pl-2 pr-2 h-11 flex-shrink-0`,`border-b border-line bg-surface`,z(s)?``:`cursor-grab active:cursor-grabbing`))]),B(`pointerdown`,p,function(...e){v.onHeaderPointerDown?.apply(this,e)}),Ya(3,r,()=>x,()=>({dock:z(a)})),H(e,t)};W(ce,e=>{z(r)&&e(le)}),H(e,se),at()}na([`pointerdown`,`keydown`,`dblclick`,`click`]);var OV=V(`<button><!> </button>`),kV=V(`<nav></nav>`);function AV(e,t){it(t,!0);let n=Z(t,`orientation`,3,`horizontal`),r=M(()=>Bc.value);var i=kV();G(i,21,()=>QB,({id:e,label:t,icon:n})=>e,(e,t)=>{let n=()=>z(t).id,i=()=>z(t).label,a=()=>z(t).icon;var o=OV(),s=F(o);Ba(s,a,(e,t)=>{t(e,{size:14})});var c=L(s);D(o),R(e=>{q(o,1,e),U(c,` ${i()??``}`)},[()=>K(Q(`flex items-center gap-2 px-3 py-2 text-xs font-medium rounded transition-colors whitespace-nowrap`,z(r)===n()?`bg-accent text-white`:`text-fg-subtle hover:bg-hover hover:text-fg`))]),B(`click`,o,()=>Mu(n())),H(e,o)}),D(i),R(e=>q(i,1,e),[()=>K(Q(`flex gap-1 p-1`,n()===`vertical`?`flex-col w-48 border-r border-line`:`border-b border-line overflow-x-auto`))]),H(e,i),at()}na([`click`]);var jV=V(`<!> <span class="font-medium">Snapshot mode</span> <span class="text-warning">— live updates paused.</span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-warning-bg transition-colors" title="Exit snapshot and clear data"><!> Exit</button>`,1),MV=V(`<span class="text-fg-subtle"> </span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent"><!> Download snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors" title="Load a snapshot file"><!> Load snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover hover:text-danger transition-colors" title="Clear all captured data — traces, logs, metrics and errors"><!> Clear</button>`,1),NV=V(`<span class="text-danger truncate"> </span>`),PV=V(`<span class="text-warning truncate"> </span>`),FV=V(`<div><!> <input type="file" accept="application/json,.json" class="hidden"/> <!> <!></div>`);function IV(e,t){it(t,!0);let n=N(void 0),r=N(null),i=N(null),a=M(()=>kl.value),o=M(()=>[{n:cl.value.length,one:`trace`,many:`traces`},{n:dl.value.length,one:`log`,many:`logs`},{n:ul.value.length,one:`error`,many:`errors`}].filter(e=>e.n>0).map(e=>`${e.n} ${e.n===1?e.one:e.many}`)),s=M(()=>z(o).length===0),c=()=>{P(r,null),P(i,null),Ky({traces:cl.value,logs:dl.value,errors:ul.value})},l=()=>{z(n)?.click()},u=()=>{P(r,null),P(i,null),Bu()},d=async e=>{P(r,null),P(i,null);let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n)return;let a=await Yy(n);if(!a.success||!a.snapshot){P(r,a.errors.join(`; `)||`Failed to load snapshot`,!0);return}a.warnings.length>0&&P(i,a.warnings.join(`; `),!0),ku(a.snapshot)};var f=FV(),p=F(f),m=e=>{var t=jV(),n=I(t);pp(n,{size:12});var r=L(n,6);tg(F(r),{size:12}),Ke(),D(r),B(`click`,r,function(...e){Au?.apply(this,e)}),H(e,t)},h=e=>{var t=MV(),n=I(t),r=F(n,!0);D(n);var i=L(n,2);pp(F(i),{size:12}),Ke(),D(i);var a=L(i,2);Gh(F(a),{size:12}),Ke(),D(a);var d=L(a,2);zh(F(d),{size:12}),Ke(),D(d),R(e=>{U(r,e),i.disabled=z(s),J(i,`title`,z(s)?`Nothing captured yet`:`Download a snapshot of traces, logs, errors and metrics`)},[()=>z(s)?`No data captured`:z(o).join(` · `)]),B(`click`,i,c),B(`click`,a,l),B(`click`,d,u),H(e,t)};W(p,e=>{z(a)?e(m):e(h,-1)});var g=L(p,2);Uo(g,e=>P(n,e),()=>z(n));var _=L(g,2),v=e=>{var t=NV(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(r)),U(n,z(r))}),H(e,t)};W(_,e=>{z(r)&&e(v)});var y=L(_,2),b=e=>{var t=PV(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(i)),U(n,z(i))}),H(e,t)};W(y,e=>{z(i)&&!z(r)&&e(b)}),D(f),R(e=>q(f,1,e),[()=>K(Q(`border-b border-line px-3 py-1.5 text-xs flex items-center gap-2`,z(a)?`bg-warning-bg text-warning`:`bg-subtle text-fg-muted`))]),B(`change`,g,d),H(e,f),at()}na([`click`,`change`]);var LV=V(`<div class="flex h-screen w-screen bg-surface text-fg"><div class="hidden md:flex flex-col border-r border-line"><!> <div class="mt-auto p-2 border-t border-line flex flex-col gap-1"><!> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors"><!> </button> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors" title="Keyboard shortcuts (?)"><!> Shortcuts</button></div></div> <div class="flex-1 flex flex-col min-w-0"><!> <div class="md:hidden"><!></div> <div class="flex-1 overflow-hidden"><!></div></div> <!></div>`);function RV(e,t){it(t,!0);function n(){return Vc.value?gg:Bc.value===`traces`?hg:mg}let r=M(()=>Gc.value),i=M(()=>$c.value);zr(()=>{Gc.value=Kc()});let a=N(void 0);zr(()=>{let e=null,t=z(a)?.getRootNode();t instanceof ShadowRoot?e=t.host:globalThis.document!==void 0&&(e=document.documentElement),e&&e.setAttribute(`data-theme`,z(r))}),zr(()=>{let e=e=>{if(e.key===`?`&&!_g()){e.preventDefault(),nl(n());return}if(!$c.value&&!_g()&&e.key>=`1`&&e.key<=`9`){let t=parseInt(e.key,10)-1;t<$B.length&&Mu($B[t])}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let o=M(()=>z(r)===`dark`?`Dark`:z(r)===`light`?`Light`:`System`);var s=LV(),c=F(s),l=F(c);AV(l,{orientation:`vertical`});var u=L(l,2),d=F(u);dV(d,{});var f=L(d,2),p=F(f),m=e=>{Um(e,{size:14})},h=e=>{Nh(e,{size:14})},g=e=>{Vm(e,{size:14})};W(p,e=>{z(r)===`dark`?e(m):z(r)===`light`?e(h,1):e(g,-1)});var _=L(p);D(f);var v=L(f,2);kp(F(v),{size:14}),Ke(),D(v),D(u),D(c);var y=L(c,2),b=F(y);IV(b,{});var x=L(b,2);AV(F(x),{orientation:`horizontal`}),D(x);var S=L(x,2);aV(F(S),{}),D(S),D(y);var C=L(y,2),w=e=>{hV(e,{get shortcuts(){return z(i)},get onClose(){return tl}})};W(C,e=>{z(i)&&e(w)}),D(s),Uo(s,e=>P(a,e),()=>z(a)),R(()=>{J(f,`title`,`Theme: ${z(o)} (click to cycle)`),U(_,` ${z(o)??``}`)}),B(`click`,f,function(...e){Jc?.apply(this,e)}),B(`click`,v,()=>el(n())),H(e,s),at()}na([`click`]);var zV=250,BV=5e3;function VV(e={}){let t=e.now??(()=>Date.now()),n=e.debounceMs??zV,r=e.limit??BV,i=0,a=null,o=null,s=!1;function c(){let t=pl.value,n=e.baseUrl??(t?$o(t):null)??globalThis.location?.origin??``;return{fetch:e.fetch??globalThis.fetch.bind(globalThis),baseUrl:n}}async function l(){if(s)return;let e=++i;a?.abort();let n=new AbortController;a=n;let o={query:``,window:Ms(Es(ml.value,t())),limit:r},l={...c(),signal:n.signal},[u,d]=await Promise.all([HV(o,l),wA(o,l)]);e!==i||s||(u.status===`ok`?(hl.value=u.traces,_l.value=`ready`):u.status===`error`&&(_l.value=`unavailable`),d.status===`ok`&&(gl.value=d.errors))}function u(){if(!s){if(o&&clearTimeout(o),n<=0){l();return}o=setTimeout(()=>{o=null,l()},n)}}return{refresh:l,invalidate:u,dispose(){s=!0,o&&clearTimeout(o),a?.abort()}}}async function HV(e,t){let n=[],r=new Set,i;do{let a=await xA({...e,cursor:i},t);if(a.status!==`ok`)return a;if(n.push(...a.traces),i=a.nextCursor??void 0,i&&r.has(i))return{status:`error`,message:`The trace query returned a repeated pagination cursor.`};i&&r.add(i)}while(i);return{status:`ok`,traces:n,nextCursor:null}}var UV=`data-autotel-portal`;function WV(e){let t=e.querySelector(`[${UV}]`);if(t)return t;let n=document.createElement(`div`);return n.setAttribute(UV,``),n.style.position=`absolute`,n.style.top=`0`,n.style.left=`0`,n.style.zIndex=`2147483000`,e.appendChild(n),n}var GV=V(`<!> <!>`,1),KV=V(`<div class="contents"><!></div>`);function qV(e,t){it(t,!0);function n(e){Mu(e.tab??`traces`),Nl.value=e.q??``,Pl.value=e.status??`all`,Fl.value=e.minDuration??0,ml.value=e.window??Cs,Ml.value=e.sort??Zu,zl.value=e.genaiQuery??``,e.traceId&&Wc(e.traceId,e.spanId)}zr(()=>{pl.value=t.wsUrl});let r=VV();zr(()=>(r.refresh(),()=>r.dispose())),zr(()=>{ml.value,cl.value.length,r.invalidate()});let i=N(void 0),a=N(void 0);zr(()=>{if(!z(i))return;let e=z(i).getRootNode();P(a,WV(e instanceof ShadowRoot?e:document.body),!0)}),zr(()=>{t.deepLink&&n(t.deepLink)}),zr(()=>{let e=Uc.value;e&&cl.value.some(t=>t.traceId===e.traceId)&&(Nu(e.traceId,e.spanId??null),Mu(`traces`),Uc.value=null)});let o=null;zr(()=>{if(t.mode!==`fullpage`)return;let e={tab:Bc.value,traceId:Vc.value??void 0,spanId:Hc.value??void 0,q:Nl.value||void 0,status:Pl.value,minDuration:Fl.value,window:ml.value,sort:Ml.value,genaiQuery:zl.value||void 0};if(Uc.value)return;let n=ed(e);if(n===location.hash)return;let r=td(o,e);o=e;let i=`${location.pathname}${location.search}${n}`;r===`push`?history.pushState(history.state,``,i):history.replaceState(history.state,``,i)}),zr(()=>{if(t.mode!==`fullpage`)return;let e=()=>{let e=$u(location.hash);o=e,n(e)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)}),zr(()=>{Wu(),ns($o(t.wsUrl));let e=new Qo(t.wsUrl);fl.value=`connecting`;let n=e.onStatusChange(e=>{fl.value=e}),r=e.onMessage(Tu);return e.connect(),()=>{r(),n(),e.disconnect()}});var s=KV();uE(F(s),{get defaultPortalTo(){return z(a)},children:(e,n)=>{var r=da(),i=I(r),a=e=>{RV(e,{})},o=e=>{var t=GV(),n=I(t);Vf(n,{}),DV(L(n,2),{}),H(e,t)};W(i,e=>{t.mode===`fullpage`?e(a):e(o,-1)}),H(e,r)},$$slots:{default:!0}}),D(s),Uo(s,e=>P(i,e),()=>z(i)),H(e,s),at()}function JV(e,t){let n=ha(qV,{target:e,props:t});return()=>{ya(n)}}var YV=`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
39
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-outline-style:solid}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:"Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--color-red-100:#ffe2e2;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-700:#bf000f;--color-orange-100:#ffedd5;--color-orange-400:#ff8b1a;--color-orange-500:#fe6e00;--color-orange-600:#f05100;--color-orange-700:#c53c00;--color-amber-100:#fef3c6;--color-amber-500:#f99c00;--color-amber-600:#dd7400;--color-amber-700:#b75000;--color-yellow-100:#fef9c2;--color-yellow-500:#edb200;--color-yellow-600:#cd8900;--color-green-100:#dcfce7;--color-green-400:#05df72;--color-green-500:#00c758;--color-green-600:#00a544;--color-emerald-500:#00bb7f;--color-emerald-600:#009767;--color-teal-500:#00baa7;--color-teal-600:#009588;--color-cyan-100:#cefafe;--color-cyan-500:#00b7d7;--color-cyan-600:#0092b5;--color-sky-500:#00a5ef;--color-sky-600:#0084cc;--color-blue-100:#dbeafe;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-indigo-500:#625fff;--color-indigo-600:#4f39f6;--color-violet-100:#ede9fe;--color-violet-500:#8d54ff;--color-violet-600:#7f22fe;--color-violet-700:#7008e7;--color-purple-100:#f3e8ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-purple-600:#9810fa;--color-fuchsia-500:#e12afb;--color-fuchsia-600:#c600db;--color-rose-500:#ff2357;--color-rose-600:#e70044;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-900:#101828;--color-stone-500:#79716b;--color-stone-600:#57534d;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:var(--at-surface);--color-subtle:var(--at-muted);--color-hover:var(--at-surface-hover);--color-code:var(--at-code);--color-fg:var(--at-text-primary);--color-fg-muted:var(--at-text-secondary);--color-fg-subtle:var(--at-text-muted);--color-line:var(--at-border);--color-line-subtle:var(--at-border-light);--color-accent:var(--at-accent);--color-danger:var(--at-error-text);--color-danger-bg:var(--at-error-bg);--color-danger-border:var(--at-error-border);--color-success:var(--at-ok-text);--color-success-bg:var(--at-ok-bg);--color-success-border:var(--at-ok-border);--color-warning:var(--at-warn-text);--color-warning-bg:var(--at-warn-bg);--color-warning-border:var(--at-warn-border);--color-selected:var(--at-selected-bg)}@supports (color:color(display-p3 0 0 0)){:root,:host{--color-red-100:color(display-p3 .980386 .889727 .887779);--color-red-400:color(display-p3 .933534 .431676 .423491);--color-red-500:color(display-p3 .903738 .262579 .253307);--color-red-600:color(display-p3 .830323 .140383 .133196);--color-red-700:color(display-p3 .692737 .116232 .104679);--color-orange-100:color(display-p3 .988762 .931393 .843273);--color-orange-400:color(display-p3 .950192 .561807 .211017);--color-orange-500:color(display-p3 .946589 .449788 .0757345);--color-orange-600:color(display-p3 .887467 .341665 .0219962);--color-orange-700:color(display-p3 .729844 .257256 .0511062);--color-amber-100:color(display-p3 .989391 .954583 .796328);--color-amber-500:color(display-p3 .93994 .620584 .0585367);--color-amber-600:color(display-p3 .827144 .467166 .0336006);--color-amber-700:color(display-p3 .67989 .32771 .0520514);--color-yellow-100:color(display-p3 .993436 .977463 .782913);--color-yellow-500:color(display-p3 .903651 .703062 .0745389);--color-yellow-600:color(display-p3 .776342 .542492 .041709);--color-green-100:color(display-p3 .885269 .984329 .910368);--color-green-400:color(display-p3 .399536 .862346 .49324);--color-green-500:color(display-p3 .308734 .774754 .374307);--color-green-600:color(display-p3 .243882 .640824 .294808);--color-emerald-500:color(display-p3 .267113 .726847 .508397);--color-emerald-600:color(display-p3 .206557 .589057 .413962);--color-teal-500:color(display-p3 .266569 .721518 .655462);--color-teal-600:color(display-p3 .207114 .579584 .53668);--color-cyan-100:color(display-p3 .843085 .97553 .992573);--color-cyan-500:color(display-p3 .246703 .710032 .841444);--color-cyan-600:color(display-p3 .193249 .564651 .707197);--color-sky-500:color(display-p3 .219113 .639027 .931479);--color-sky-600:color(display-p3 .162505 .509376 .796082);--color-blue-100:color(display-p3 .869214 .915931 .989622);--color-blue-400:color(display-p3 .397443 .62813 .992116);--color-blue-500:color(display-p3 .266422 .491219 .988624);--color-blue-600:color(display-p3 .174493 .358974 .950247);--color-indigo-500:color(display-p3 .380374 .372235 .971707);--color-indigo-600:color(display-p3 .297656 .227891 .929242);--color-violet-100:color(display-p3 .926222 .913546 .990178);--color-violet-500:color(display-p3 .523372 .329605 .990884);--color-violet-600:color(display-p3 .459951 .162666 .957985);--color-violet-700:color(display-p3 .40161 .0841901 .871151);--color-purple-100:color(display-p3 .945034 .910569 .992972);--color-purple-400:color(display-p3 .719919 .492497 .995173);--color-purple-500:color(display-p3 .629519 .30089 .990817);--color-purple-600:color(display-p3 .546729 .130167 .94439);--color-fuchsia-500:color(display-p3 .81268 .241966 .951571);--color-fuchsia-600:color(display-p3 .716587 .083681 .841036);--color-rose-500:color(display-p3 .921824 .240748 .355666);--color-rose-600:color(display-p3 .848792 .102011 .269259);--color-gray-50:color(display-p3 .977213 .98084 .985102);--color-gray-100:color(display-p3 .953567 .956796 .964321);--color-gray-400:color(display-p3 .605734 .630385 .680158);--color-gray-500:color(display-p3 .421287 .446085 .504784);--color-gray-900:color(display-p3 .070423 .0928982 .151928);--color-stone-500:color(display-p3 .467445 .443064 .42264);--color-stone-600:color(display-p3 .339543 .325291 .304619)}}@supports (color:lab(0% 0 0)){:root,:host{--color-red-100:lab(92.243% 10.2865 3.83865);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-orange-100:lab(94.7127% 3.58394 14.3151);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-500:lab(64.272% 57.1788 90.3583);--color-orange-600:lab(57.1026% 64.2584 89.8886);--color-orange-700:lab(46.4615% 57.7275 70.8507);--color-amber-100:lab(95.916% -1.21653 23.111);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-yellow-100:lab(97.3564% -4.51407 27.344);--color-yellow-500:lab(76.3898% 14.5258 98.4589);--color-yellow-600:lab(62.7799% 22.4197 86.1544);--color-green-100:lab(96.1861% -13.8464 6.52365);--color-green-400:lab(78.503% -64.9265 39.7492);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-green-600:lab(59.0978% -58.6621 41.2579);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-emerald-600:lab(55.0481% -49.9246 15.93);--color-teal-500:lab(67.3859% -49.0983 -2.63511);--color-teal-600:lab(55.0223% -41.0774 -3.90277);--color-cyan-100:lab(95.3146% -13.8285 -6.84732);--color-cyan-500:lab(67.805% -35.3952 -30.2018);--color-cyan-600:lab(55.1767% -26.7496 -30.5139);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-sky-600:lab(51.7754% -11.4712 -49.8349);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-indigo-500:lab(48.295% 38.3129 -81.9673);--color-indigo-600:lab(38.4009% 52.6132 -92.3857);--color-violet-100:lab(93.0838% 4.35197 -9.88284);--color-violet-500:lab(49.9355% 55.1776 -81.8963);--color-violet-600:lab(41.088% 68.9966 -91.995);--color-violet-700:lab(35.2783% 67.9912 -88.793);--color-purple-100:lab(93.3333% 6.97437 -9.83434);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-purple-600:lab(43.0295% 75.21 -86.5669);--color-fuchsia-500:lab(56.4256% 83.132 -64.639);--color-fuchsia-600:lab(47.5131% 83.4271 -63.0363);--color-rose-500:lab(56.101% 79.4328 31.4532);--color-rose-600:lab(49.1882% 81.577 36.0311);--color-gray-50:lab(98.2596% -.247031 -.706708);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-900:lab(8.11897% .811279 -12.254);--color-stone-500:lab(48.1164% 2.35701 4.26852);--color-stone-600:lab(35.5168% 1.08604 4.07829)}}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::-webkit-file-upload-button{margin-inline-end:4px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{-webkit-appearance:button;appearance:button}input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;bottom:0;left:0;right:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-\\[7px\\]{top:7px}.top-\\[9px\\]{top:9px}.top-\\[calc\\(100\\%-2px\\)\\]{top:calc(100% - 2px)}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.-right-1\\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-0{bottom:0}.bottom-0\\.5{bottom:calc(var(--spacing) * .5)}.bottom-1{bottom:var(--spacing)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-1{left:calc(var(--spacing) * -1)}.-left-1\\.5{left:calc(var(--spacing) * -1.5)}.-left-px{left:-1px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\\[1\\]{z-index:1}.z-\\[1000\\]{z-index:1000}.z-\\[1001\\]{z-index:1001}.z-\\[1100\\]{z-index:1100}.z-\\[1200\\]{z-index:1200}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-1{margin:calc(var(--spacing) * -1)}.m-4{margin:calc(var(--spacing) * 4)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline-start:auto;margin-inline-end:auto}.my-1{margin-block:var(--spacing)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-0\\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-1\\/2{height:50%}.h-2{height:calc(var(--spacing) * 2)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-24{height:calc(var(--spacing) * 24)}.h-\\[300px\\]{height:300px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\\[60vh\\]{max-height:60vh}.max-h-\\[80vh\\]{max-height:80vh}.max-h-\\[85vh\\]{max-height:85vh}.max-h-\\[160px\\]{max-height:160px}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[240px\\]{max-height:240px}.min-h-0{min-height:0}.min-h-\\[120px\\]{min-height:120px}.w-0\\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-24{width:calc(var(--spacing) * 24)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\\[1\\%\\]{width:1%}.w-\\[80px\\]{width:80px}.w-\\[200px\\]{width:200px}.w-\\[480px\\]{width:480px}.w-\\[min\\(560px\\,92vw\\)\\]{width:min(560px,92vw)}.w-\\[min\\(700px\\,92vw\\)\\]{width:min(700px,92vw)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[10rem\\]{max-width:10rem}.max-w-\\[14rem\\]{max-width:14rem}.max-w-\\[16rem\\]{max-width:16rem}.max-w-\\[90vw\\]{max-width:90vw}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[420px\\]{max-width:420px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\\[8px\\]{min-width:8px}.min-w-\\[16px\\]{min-width:16px}.min-w-\\[180px\\]{min-width:180px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\\[80px_1fr\\]{grid-template-columns:80px 1fr}.grid-cols-\\[100px_1fr\\]{grid-template-columns:100px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-px{gap:1px}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:0;margin-block-end:0}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)){border-color:var(--color-line)}:where(.divide-line-subtle>:not(:last-child)){border-color:var(--color-line-subtle)}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent,.border-accent\\/30{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\\/30{border-color:color-mix(in oklab, var(--color-accent) 30%, transparent)}}.border-accent\\/40{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-amber-500\\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-amber-500\\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-blue-500\\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/30{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.border-cyan-500\\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\\/30{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.border-danger-border{border-color:var(--color-danger-border)}.border-danger\\/30{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\\/30{border-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.border-emerald-500\\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-fuchsia-500\\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\\/30{border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.border-green-500\\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-indigo-500\\/30{border-color:#625fff4d}@supports (color:color-mix(in lab, red, red)){.border-indigo-500\\/30{border-color:color-mix(in oklab, var(--color-indigo-500) 30%, transparent)}}.border-line{border-color:var(--color-line)}.border-line-subtle{border-color:var(--color-line-subtle)}.border-line\\/50{border-color:var(--color-line)}@supports (color:color-mix(in lab, red, red)){.border-line\\/50{border-color:color-mix(in oklab, var(--color-line) 50%, transparent)}}.border-line\\/60{border-color:var(--color-line)}@supports (color:color-mix(in lab, red, red)){.border-line\\/60{border-color:color-mix(in oklab, var(--color-line) 60%, transparent)}}.border-orange-500\\/30{border-color:#fe6e004d}@supports (color:color-mix(in lab, red, red)){.border-orange-500\\/30{border-color:color-mix(in oklab, var(--color-orange-500) 30%, transparent)}}.border-purple-500\\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-red-500\\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-stone-500\\/30{border-color:#79716b4d}@supports (color:color-mix(in lab, red, red)){.border-stone-500\\/30{border-color:color-mix(in oklab, var(--color-stone-500) 30%, transparent)}}.border-success-border{border-color:var(--color-success-border)}.border-violet-500\\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab, red, red)){.border-violet-500\\/30{border-color:color-mix(in oklab, var(--color-violet-500) 30%, transparent)}}.border-warning-border{border-color:var(--color-warning-border)}.border-white{border-color:var(--color-white)}.border-l-warning{border-left-color:var(--color-warning)}.\\!bg-accent{background-color:var(--color-accent)!important}.bg-accent,.bg-accent\\/5{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/5{background-color:color-mix(in oklab, var(--color-accent) 5%, transparent)}}.bg-accent\\/10{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/10{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.bg-accent\\/12{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/12{background-color:color-mix(in oklab, var(--color-accent) 12%, transparent)}}.bg-accent\\/15{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/15{background-color:color-mix(in oklab, var(--color-accent) 15%, transparent)}}.bg-accent\\/70{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/70{background-color:color-mix(in oklab, var(--color-accent) 70%, transparent)}}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-black\\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\\/55{background-color:color-mix(in oklab, var(--color-black) 55%, transparent)}}.bg-black\\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-blue-500\\/15{background-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/15{background-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.bg-code{background-color:var(--color-code)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-500\\/15{background-color:#00b7d726}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\\/15{background-color:color-mix(in oklab, var(--color-cyan-500) 15%, transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-danger-bg,.bg-danger-bg\\/40{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.bg-danger-bg\\/40{background-color:color-mix(in oklab, var(--color-danger-bg) 40%, transparent)}}.bg-danger\\/5{background-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/5{background-color:color-mix(in oklab, var(--color-danger) 5%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-fg-subtle{background-color:var(--color-fg-subtle)}.bg-fuchsia-500\\/15{background-color:#e12afb26}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-500\\/15{background-color:color-mix(in oklab, var(--color-fuchsia-500) 15%, transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/15{background-color:#00c75826}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/15{background-color:color-mix(in oklab, var(--color-green-500) 15%, transparent)}}.bg-hover{background-color:var(--color-hover)}.bg-indigo-500\\/15{background-color:#625fff26}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\\/15{background-color:color-mix(in oklab, var(--color-indigo-500) 15%, transparent)}}.bg-line{background-color:var(--color-line)}.bg-line-subtle{background-color:var(--color-line-subtle)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\\/15{background-color:#fe6e0026}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\\/15{background-color:color-mix(in oklab, var(--color-orange-500) 15%, transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\\/15{background-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/15{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-selected{background-color:var(--color-selected)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-stone-500\\/15{background-color:#79716b26}@supports (color:color-mix(in lab, red, red)){.bg-stone-500\\/15{background-color:color-mix(in oklab, var(--color-stone-500) 15%, transparent)}}.bg-subtle,.bg-subtle\\/40{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/40{background-color:color-mix(in oklab, var(--color-subtle) 40%, transparent)}}.bg-subtle\\/50{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/50{background-color:color-mix(in oklab, var(--color-subtle) 50%, transparent)}}.bg-subtle\\/60{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/60{background-color:color-mix(in oklab, var(--color-subtle) 60%, transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-surface{background-color:var(--color-surface)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\\/10{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.bg-violet-500\\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\\/15{background-color:color-mix(in oklab, var(--color-violet-500) 15%, transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.bg-warning\\/5{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\\/5{background-color:color-mix(in oklab, var(--color-warning) 5%, transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.fill-\\[var\\(--color-fg-subtle\\)\\]{fill:var(--color-fg-subtle)}.fill-amber-500\\/15{fill:#f99c0026}@supports (color:color-mix(in lab, red, red)){.fill-amber-500\\/15{fill:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.fill-amber-600{fill:var(--color-amber-600)}.fill-blue-500\\/15{fill:#3080ff26}@supports (color:color-mix(in lab, red, red)){.fill-blue-500\\/15{fill:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.fill-blue-600{fill:var(--color-blue-600)}.fill-danger{fill:var(--color-danger)}.fill-emerald-500\\/15{fill:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.fill-emerald-500\\/15{fill:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.fill-emerald-600{fill:var(--color-emerald-600)}.fill-fg-muted{fill:var(--color-fg-muted)}.fill-fg-subtle{fill:var(--color-fg-subtle)}.fill-red-500{fill:var(--color-red-500)}.fill-rose-500\\/15{fill:#ff235726}@supports (color:color-mix(in lab, red, red)){.fill-rose-500\\/15{fill:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.fill-rose-600{fill:var(--color-rose-600)}.fill-sky-500\\/15{fill:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.fill-sky-500\\/15{fill:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.fill-sky-600{fill:var(--color-sky-600)}.fill-teal-500\\/15{fill:#00baa726}@supports (color:color-mix(in lab, red, red)){.fill-teal-500\\/15{fill:color-mix(in oklab, var(--color-teal-500) 15%, transparent)}}.fill-teal-600{fill:var(--color-teal-600)}.fill-violet-500\\/15{fill:#8d54ff26}@supports (color:color-mix(in lab, red, red)){.fill-violet-500\\/15{fill:color-mix(in oklab, var(--color-violet-500) 15%, transparent)}}.fill-violet-600{fill:var(--color-violet-600)}.fill-warning{fill:var(--color-warning)}.fill-white{fill:var(--color-white)}.stroke-accent{stroke:var(--color-accent)}.stroke-amber-500\\/60{stroke:#f99c0099}@supports (color:color-mix(in lab, red, red)){.stroke-amber-500\\/60{stroke:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.stroke-blue-500\\/60{stroke:#3080ff99}@supports (color:color-mix(in lab, red, red)){.stroke-blue-500\\/60{stroke:color-mix(in oklab, var(--color-blue-500) 60%, transparent)}}.stroke-emerald-500\\/60{stroke:#00bb7f99}@supports (color:color-mix(in lab, red, red)){.stroke-emerald-500\\/60{stroke:color-mix(in oklab, var(--color-emerald-500) 60%, transparent)}}.stroke-fg-subtle{stroke:var(--color-fg-subtle)}.stroke-red-500{stroke:var(--color-red-500)}.stroke-rose-500\\/60{stroke:#ff235799}@supports (color:color-mix(in lab, red, red)){.stroke-rose-500\\/60{stroke:color-mix(in oklab, var(--color-rose-500) 60%, transparent)}}.stroke-sky-500\\/60{stroke:#00a5ef99}@supports (color:color-mix(in lab, red, red)){.stroke-sky-500\\/60{stroke:color-mix(in oklab, var(--color-sky-500) 60%, transparent)}}.stroke-teal-500\\/60{stroke:#00baa799}@supports (color:color-mix(in lab, red, red)){.stroke-teal-500\\/60{stroke:color-mix(in oklab, var(--color-teal-500) 60%, transparent)}}.stroke-violet-500\\/60{stroke:#8d54ff99}@supports (color:color-mix(in lab, red, red)){.stroke-violet-500\\/60{stroke:color-mix(in oklab, var(--color-violet-500) 60%, transparent)}}.stroke-\\[2\\.5px\\]{stroke-width:2.5px}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block-start:1px;padding-block-end:1px}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent,.text-accent\\/80{color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.text-accent\\/80{color:color-mix(in oklab, var(--color-accent) 80%, transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-cyan-500{color:var(--color-cyan-500)}.text-cyan-600{color:var(--color-cyan-600)}.text-danger{color:var(--color-danger)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-fg{color:var(--color-fg)}.text-fg-muted,.text-fg-muted\\/70{color:var(--color-fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\\/70{color:color-mix(in oklab, var(--color-fg-muted) 70%, transparent)}}.text-fg-muted\\/80{color:var(--color-fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\\/80{color:color-mix(in oklab, var(--color-fg-muted) 80%, transparent)}}.text-fg-subtle,.text-fg-subtle\\/60{color:var(--color-fg-subtle)}@supports (color:color-mix(in lab, red, red)){.text-fg-subtle\\/60{color:color-mix(in oklab, var(--color-fg-subtle) 60%, transparent)}}.text-fuchsia-500{color:var(--color-fuchsia-500)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-100{color:var(--color-gray-100)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-600{color:var(--color-indigo-600)}.text-line{color:var(--color-line)}.text-line-subtle{color:var(--color-line-subtle)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-sky-500{color:var(--color-sky-500)}.text-sky-600{color:var(--color-sky-600)}.text-stone-600{color:var(--color-stone-600)}.text-success{color:var(--color-success)}.text-surface{color:var(--color-surface)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-600\\/70{color:#7f22feb3}@supports (color:color-mix(in lab, red, red)){.text-violet-600\\/70{color:color-mix(in oklab, var(--color-violet-600) 70%, transparent)}}.text-violet-700{color:var(--color-violet-700)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[0_1px_0_\\#d4d4d8\\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#d4d4d8);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent,.ring-accent\\/20{--tw-ring-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ring-accent\\/20{--tw-ring-color:color-mix(in oklab, var(--color-accent) 20%, transparent)}}.ring-danger{--tw-ring-color:var(--color-danger)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\\[2px\\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.row-virtual{content-visibility:auto;contain-intrinsic-size:auto 32px}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\\:bg-accent:is(:where(.group):hover *){background-color:var(--color-accent)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\\/stat\\:underline:is(:where(.group\\/stat):hover *){text-decoration-line:underline}}.group-focus-visible\\:bg-accent:is(:where(.group):focus-visible *){background-color:var(--color-accent)}.last\\:mr-0:last-child{margin-right:0}.last\\:mb-0:last-child{margin-bottom:0}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:border-danger-border:hover{border-color:var(--color-danger-border)}.hover\\:bg-accent:hover,.hover\\:bg-accent\\/5:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/5:hover{background-color:color-mix(in oklab, var(--color-accent) 5%, transparent)}}.hover\\:bg-accent\\/10:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/10:hover{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.hover\\:bg-accent\\/15:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/15:hover{background-color:color-mix(in oklab, var(--color-accent) 15%, transparent)}}.hover\\:bg-accent\\/20:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/20:hover{background-color:color-mix(in oklab, var(--color-accent) 20%, transparent)}}.hover\\:bg-accent\\/90:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/90:hover{background-color:color-mix(in oklab, var(--color-accent) 90%, transparent)}}.hover\\:bg-blue-400:hover{background-color:var(--color-blue-400)}.hover\\:bg-danger-bg:hover,.hover\\:bg-danger-bg\\/60:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/60:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 60%, transparent)}}.hover\\:bg-danger-bg\\/70:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/70:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 70%, transparent)}}.hover\\:bg-danger-bg\\/80:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/80:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 80%, transparent)}}.hover\\:bg-emerald-500\\/25:hover{background-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-emerald-500\\/25:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.hover\\:bg-gray-400:hover{background-color:var(--color-gray-400)}.hover\\:bg-green-400:hover{background-color:var(--color-green-400)}.hover\\:bg-hover:hover,.hover\\:bg-hover\\/50:hover{background-color:var(--color-hover)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-hover\\/50:hover{background-color:color-mix(in oklab, var(--color-hover) 50%, transparent)}}.hover\\:bg-orange-400:hover{background-color:var(--color-orange-400)}.hover\\:bg-purple-400:hover{background-color:var(--color-purple-400)}.hover\\:bg-red-400:hover{background-color:var(--color-red-400)}.hover\\:bg-red-500\\/25:hover{background-color:#fb2c3640}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/25:hover{background-color:color-mix(in oklab, var(--color-red-500) 25%, transparent)}}.hover\\:bg-subtle:hover{background-color:var(--color-subtle)}.hover\\:bg-violet-500\\/25:hover{background-color:#8d54ff40}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-violet-500\\/25:hover{background-color:color-mix(in oklab, var(--color-violet-500) 25%, transparent)}}.hover\\:bg-warning-bg:hover,.hover\\:bg-warning-bg\\/80:hover{background-color:var(--color-warning-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-warning-bg\\/80:hover{background-color:color-mix(in oklab, var(--color-warning-bg) 80%, transparent)}}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-fg:hover{color:var(--color-fg)}.hover\\:text-fg-muted:hover{color:var(--color-fg-muted)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-90:hover{opacity:.9}.hover\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.focus\\:border-line:focus{border-color:var(--color-line)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-accent:focus{--tw-ring-color:var(--color-accent)}.focus\\:ring-danger:focus{--tw-ring-color:var(--color-danger)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:bg-hover:focus-visible{background-color:var(--color-hover)}.focus-visible\\:opacity-100:focus-visible{opacity:1}.focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-accent:focus-visible{--tw-ring-color:var(--color-accent)}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-accent:focus-visible{outline-color:var(--color-accent)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\\:hover\\:bg-transparent:disabled:hover{background-color:#0000}}@media (min-width:40rem){.sm\\:inline{display:inline}.sm\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:48rem){.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width>=28rem){.\\@md\\:block{display:block}.\\@md\\:flex{display:flex}.\\@md\\:hidden{display:none}.\\@md\\:w-72{width:calc(var(--spacing) * 72)}.\\@md\\:shrink-0{flex-shrink:0}.\\@md\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}}}*{box-sizing:border-box}:host,:root{--at-surface:#fcfdfe;--at-surface-hover:#f5f6f9;--at-muted:#f2f5f8;--at-code:#f3f6fa;--at-text-primary:#1a1f29;--at-text-secondary:#515864;--at-text-muted:#868d97;--at-border:#dfe1e5;--at-border-light:#eef0f3;--at-shadow:#171f2e1a;--at-accent:#3177dc;--at-error-bg:#ffecea;--at-error-text:#cc2827;--at-error-border:#f8a49d;--at-ok-bg:#e0fae4;--at-ok-text:#0e8c41;--at-ok-border:#89da9b;--at-warn-bg:#fff0d1;--at-warn-text:#a16500;--at-warn-border:#e5c379;--at-highlight-bg:#fff6d1;--at-selected-bg:#e9f3ff;--at-scrollbar-thumb:#ced1d6;--at-scrollbar-thumb-hover:#999fa8}@supports (color:color(display-p3 0 0 0)){:host,:root{--at-surface:color(display-p3 .989609 .992382 .997175);--at-surface-hover:color(display-p3 .960878 .966392 .975929);--at-muted:color(display-p3 .951795 .958673 .970576);--at-code:color(display-p3 .955784 .964045 .978342);--at-text-primary:color(display-p3 .106201 .12247 .157281);--at-text-secondary:color(display-p3 .323937 .346032 .388256);--at-text-muted:color(display-p3 .528711 .550898 .589512);--at-border:color(display-p3 .875378 .883503 .897566);--at-border-light:color(display-p3 .934839 .941694 .953557);--at-shadow:color(display-p3 .0979137 .121845 .174352/.1);--at-accent:color(display-p3 .266557 .461859 .837181);--at-error-bg:color(display-p3 1.00853 .923821 .911661);--at-error-text:color(display-p3 .7372 .221951 .191652);--at-error-border:color(display-p3 .924106 .659231 .626897);--at-ok-bg:color(display-p3 .896905 .977035 .900254);--at-ok-text:color(display-p3 .247857 .539374 .286752);--at-ok-border:color(display-p3 .609805 .847347 .627399);--at-warn-bg:color(display-p3 .997819 .943515 .816698);--at-warn-text:color(display-p3 .607081 .403503 .0845266);--at-warn-border:color(display-p3 .876737 .768181 .515098);--at-highlight-bg:color(display-p3 .994932 .96424 .830533);--at-selected-bg:color(display-p3 .910207 .951093 1.02232);--at-scrollbar-thumb:color(display-p3 .80912 .819793 .838278);--at-scrollbar-thumb-hover:color(display-p3 .60332 .622263 .655172)}}@supports (color:lab(0% 0 0)){:host,:root{--at-surface:lab(99.2988% -.132054 -.745118);--at-surface-hover:lab(96.9735% -.261605 -1.48877);--at-muted:lab(96.2747% -.325292 -1.86008);--at-code:lab(96.736% -.388592 -2.23104);--at-text-primary:lab(11.741% -.349499 -7.30943);--at-text-secondary:lab(37.2801% -.862852 -7.73156);--at-text-muted:lab(58.1854% -1.04666 -6.62941);--at-border:lab(89.5439% -.387847 -2.23061);--at-border-light:lab(94.7667% -.325233 -1.86);--at-shadow:lab(11.6682% -.113927 -10.842/.1);--at-accent:lab(49.8997% 5.63273 -59.1615);--at-error-bg:lab(95.0829% 9.19622 4.96011);--at-error-text:lab(45.8049% 62.9533 44.1);--at-error-border:lab(75.8489% 31.0226 17.1029);--at-ok-bg:lab(95.8936% -11.84 7.56052);--at-ok-text:lab(50.824% -45.5785 30.3918);--at-ok-border:lab(80.6679% -35.8792 23.2774);--at-warn-bg:lab(95.5261% 2.02972 19.535);--at-warn-text:lab(48.6413% 21.7782 63.415);--at-warn-border:lab(80.5062% 5.88706 41.41);--at-highlight-bg:lab(96.7959% -.972748 19.4827);--at-selected-bg:lab(95.2674% -1.71572 -11.035);--at-scrollbar-thumb:lab(83.7382% -.510752 -2.97043);--at-scrollbar-thumb-hover:lab(65.1562% -.902712 -5.53997)}}:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:#151b25;--at-surface-hover:#1d2431;--at-muted:#191f2b;--at-code:#1b222d;--at-text-primary:#dfe5ed;--at-text-secondary:#9ca5b3;--at-text-muted:#727b88;--at-border:#2e3643;--at-border-light:#232934;--at-shadow:#00000073;--at-accent:#63a6ff;--at-error-bg:#742e2940;--at-error-text:#ff7f73;--at-error-border:#cf413a;--at-ok-bg:#39794933;--at-ok-text:#6ed889;--at-ok-border:#2e9e52;--at-warn-bg:#7e5d1d38;--at-warn-text:#f1bf5b;--at-warn-border:#b07b00;--at-highlight-bg:#b8a4571f;--at-selected-bg:#6087c22e;--at-scrollbar-thumb:#3d434d;--at-scrollbar-thumb-hover:#565e6c}@supports (color:color(display-p3 0 0 0)){:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:color(display-p3 .0866362 .104012 .141551);--at-surface-hover:color(display-p3 .119527 .140938 .187194);--at-muted:color(display-p3 .10291 .122282 .164135);--at-code:color(display-p3 .112011 .131618 .173879);--at-text-primary:color(display-p3 .880198 .897517 .925177);--at-text-secondary:color(display-p3 .618009 .647763 .695453);--at-text-muted:color(display-p3 .454817 .481202 .527256);--at-border:color(display-p3 .187231 .209329 .256415);--at-border-light:color(display-p3 .14159 .16023 .200008);--at-shadow:color(display-p3 0 0 0/.45);--at-accent:color(display-p3 .445537 .644287 .978823);--at-error-bg:color(display-p3 .422373 .197971 .171651/.25);--at-error-text:color(display-p3 .938127 .52257 .468553);--at-error-border:color(display-p3 .751519 .297873 .256966);--at-ok-bg:color(display-p3 .287508 .467968 .304198/.2);--at-ok-text:color(display-p3 .538207 .838899 .565385);--at-ok-border:color(display-p3 .319936 .612208 .354223);--at-warn-bg:color(display-p3 .474062 .369044 .161788/.22);--at-warn-text:color(display-p3 .915105 .755059 .421563);--at-warn-border:color(display-p3 .660566 .489104 .15495);--at-highlight-bg:color(display-p3 .708898 .646062 .385093/.12);--at-selected-bg:color(display-p3 .407909 .526271 .742584/.18);--at-scrollbar-thumb:color(display-p3 .241934 .260441 .299404);--at-scrollbar-thumb-hover:color(display-p3 .342885 .367416 .419047)}}@supports (color:lab(0% 0 0)){:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:lab(9.40435% -.26536 -8.00193);--at-surface-hover:lab(14.0233% -.313595 -9.45683);--at-muted:lab(11.7138% -.289485 -8.72938);--at-code:lab(12.8756% -.320837 -8.73908);--at-text-primary:lab(90.6923% -.891328 -4.41389);--at-text-secondary:lab(67.4629% -1.51783 -8.03232);--at-text-muted:lab(51.2096% -1.21292 -8.07107);--at-border:lab(22.1597% -.497714 -9.15806);--at-border-light:lab(16.373% -.418156 -8.05204);--at-shadow:lab(0% 0 0/.45);--at-accent:lab(66.6499% -1.4444 -52.3046);--at-error-bg:lab(29.4384% 31.1218 19.7271/.25);--at-error-text:lab(68.3188% 49.5998 30.86);--at-error-border:lab(49.5145% 56.3761 37.3383);--at-ok-bg:lab(45.5916% -30.0637 19.6786/.2);--at-ok-text:lab(78.7102% -45.0683 29.4705);--at-ok-border:lab(57.7987% -45.4011 30.0617);--at-warn-bg:lab(42.0282% 9.23485 40.2236/.22);--at-warn-text:lab(80.4197% 11.1201 56.0991);--at-warn-border:lab(55.853% 15.6735 62.0226);--at-highlight-bg:lab(67.9375% .259876 42.1122/.12);--at-selected-bg:lab(55.3782% -1.45972 -35.4324/.18);--at-scrollbar-thumb:lab(27.992% -.544697 -7.38333);--at-scrollbar-thumb-hover:lab(39.5702% -.685155 -9.23098)}}@media (prefers-color-scheme:dark){:host([data-theme=system]),:root[data-theme=system]{--at-surface:#151b25;--at-surface-hover:#1d2431;--at-muted:#191f2b;--at-code:#1b222d;--at-text-primary:#dfe5ed;--at-text-secondary:#9ca5b3;--at-text-muted:#727b88;--at-border:#2e3643;--at-border-light:#232934;--at-shadow:#00000073;--at-accent:#63a6ff;--at-error-bg:#742e2940;--at-error-text:#ff7f73;--at-error-border:#cf413a;--at-ok-bg:#39794933;--at-ok-text:#6ed889;--at-ok-border:#2e9e52;--at-highlight-bg:#b8a4571f;--at-selected-bg:#6087c22e;--at-scrollbar-thumb:#3d434d;--at-scrollbar-thumb-hover:#565e6c}@supports (color:color(display-p3 0 0 0)){:host([data-theme=system]),:root[data-theme=system]{--at-surface:color(display-p3 .0866362 .104012 .141551);--at-surface-hover:color(display-p3 .119527 .140938 .187194);--at-muted:color(display-p3 .10291 .122282 .164135);--at-code:color(display-p3 .112011 .131618 .173879);--at-text-primary:color(display-p3 .880198 .897517 .925177);--at-text-secondary:color(display-p3 .618009 .647763 .695453);--at-text-muted:color(display-p3 .454817 .481202 .527256);--at-border:color(display-p3 .187231 .209329 .256415);--at-border-light:color(display-p3 .14159 .16023 .200008);--at-shadow:color(display-p3 0 0 0/.45);--at-accent:color(display-p3 .445537 .644287 .978823);--at-error-bg:color(display-p3 .422373 .197971 .171651/.25);--at-error-text:color(display-p3 .938127 .52257 .468553);--at-error-border:color(display-p3 .751519 .297873 .256966);--at-ok-bg:color(display-p3 .287508 .467968 .304198/.2);--at-ok-text:color(display-p3 .538207 .838899 .565385);--at-ok-border:color(display-p3 .319936 .612208 .354223);--at-highlight-bg:color(display-p3 .708898 .646062 .385093/.12);--at-selected-bg:color(display-p3 .407909 .526271 .742584/.18);--at-scrollbar-thumb:color(display-p3 .241934 .260441 .299404);--at-scrollbar-thumb-hover:color(display-p3 .342885 .367416 .419047)}}@supports (color:lab(0% 0 0)){:host([data-theme=system]),:root[data-theme=system]{--at-surface:lab(9.40435% -.26536 -8.00193);--at-surface-hover:lab(14.0233% -.313595 -9.45683);--at-muted:lab(11.7138% -.289485 -8.72938);--at-code:lab(12.8756% -.320837 -8.73908);--at-text-primary:lab(90.6923% -.891328 -4.41389);--at-text-secondary:lab(67.4629% -1.51783 -8.03232);--at-text-muted:lab(51.2096% -1.21292 -8.07107);--at-border:lab(22.1597% -.497714 -9.15806);--at-border-light:lab(16.373% -.418156 -8.05204);--at-shadow:lab(0% 0 0/.45);--at-accent:lab(66.6499% -1.4444 -52.3046);--at-error-bg:lab(29.4384% 31.1218 19.7271/.25);--at-error-text:lab(68.3188% 49.5998 30.86);--at-error-border:lab(49.5145% 56.3761 37.3383);--at-ok-bg:lab(45.5916% -30.0637 19.6786/.2);--at-ok-text:lab(78.7102% -45.0683 29.4705);--at-ok-border:lab(57.7987% -45.4011 30.0617);--at-highlight-bg:lab(67.9375% .259876 42.1122/.12);--at-selected-bg:lab(55.3782% -1.45972 -35.4324/.18);--at-scrollbar-thumb:lab(27.992% -.544697 -7.38333);--at-scrollbar-thumb-hover:lab(39.5702% -.685155 -9.23098)}}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--at-scrollbar-thumb,#d4d4d8);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--at-scrollbar-thumb-hover,#a1a1aa)}.waterfall-row:hover .waterfall-bar{filter:brightness(1.1)}.waterfall-bar{transition:all .15s ease-out}.trace-list-container{container-type:inline-size}.trace-grid{grid-template-columns:20px 104px minmax(0,1fr) 84px 52px 88px 60px 16px;align-items:center;gap:.75rem;display:grid}@container (width<=640px){.trace-grid{grid-template-columns:20px 92px minmax(0,1fr) 80px 58px 16px}.trace-col-spans,.trace-col-time{display:none}}@keyframes at-modal-in{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes at-fade-in{0%{opacity:0}to{opacity:1}}.at-modal-in{animation:.17s cubic-bezier(.22,1,.36,1) at-modal-in}.at-backdrop-in{animation:.17s ease-out at-fade-in}.at-wrap-anywhere{overflow-wrap:anywhere;word-break:normal}.at-no-scrollbar{scrollbar-width:none}.at-no-scrollbar::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){.at-modal-in,.at-backdrop-in{animation:none}}.at-edge-label{paint-order:stroke;stroke:var(--color-surface);stroke-width:3px;stroke-linejoin:round}:where(a,button,[role=button],input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--at-accent);outline-offset:2px}:where([data-focus-inset]):focus-visible{outline-offset:-2px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}`,XV=class extends HTMLElement{constructor(...e){super(...e),x(this,`cleanup`,null)}connectedCallback(){let e=this.attachShadow({mode:`open`}),t=document.createElement(`link`);t.rel=`stylesheet`,t.href=`https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap`,e.appendChild(t);let n=document.createElement(`style`);n.textContent=YV,e.appendChild(n);let r=this.getAttribute(`mode`)||`widget`,i=this.getAttribute(`ws-url`)||this.deriveWsUrl();this.cleanup=JV(e,{mode:r,wsUrl:i})}disconnectedCallback(){this.cleanup?.(),this.cleanup=null}deriveWsUrl(){return`ws://${location.host}/ws`}};x(XV,`observedAttributes`,[`mode`,`ws-url`]);function ZV(){customElements.get(`autotel-devtools`)||customElements.define(`autotel-devtools`,XV)}var QV=document.currentScript;function $V(){let e=$u(location.hash);return Object.keys(e).length>0?e:void 0}function eH(){let e=$V();if(!QV?.src)return{mode:`widget`,wsUrl:`ws://${location.host}/ws`,deepLink:e};let t=new URL(QV.src),n=t.searchParams;return{mode:n.get(`mode`)||`widget`,wsUrl:n.get(`ws`)||`ws://${t.host}/ws`,deepLink:e}}function tH(){if(ZV(),document.querySelector(`autotel-devtools`))return;let{mode:e,wsUrl:t,deepLink:n}=eH(),r=document.createElement(`div`);r.id=`autotel-devtools-root`,document.body.appendChild(r);let i=r.attachShadow({mode:`open`}),a=document.createElement(`style`);a.textContent=YV,i.appendChild(a),JV(i,{mode:e,wsUrl:t,deepLink:n})}return document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,tH):tH(),e.mountWidget=JV,e.registerElement=ZV,e})({});
|
|
34
|
+
groups apart.</p>`),LB=V(`<p class="text-xs text-danger"> </p>`),RB=V(`<p class="text-xs text-fg-muted"> </p>`),zB=V(`<tr class="border-t border-line-subtle"><td class="py-1 pr-2 font-mono"> <span class="text-fg-subtle">=</span> </td><td class="py-1 pr-2 tabular-nums"> </td><td class="py-1 pr-2 tabular-nums text-fg-muted"> </td></tr>`),BB=V(`<p class="mb-2 text-[11px] text-fg-subtle"> </p> <table class="w-full text-left text-xs"><thead class="text-[11px] uppercase tracking-wide text-fg-muted"><tr><th class="py-1 pr-2 font-medium">Attribute</th><th class="py-1 pr-2 font-medium">These</th><th class="py-1 pr-2 font-medium">Those</th></tr></thead><tbody></tbody></table>`,1),VB=V(`<div class="flex h-full flex-col overflow-hidden"><div class="border-b border-line px-4 py-3"><div class="mb-2 flex items-center gap-2"><button type="button"><!></button> <button type="button" class="flex items-center gap-1 rounded bg-accent px-2 py-1 text-xs text-white hover:opacity-90 disabled:opacity-40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent"><!> </button></div> <!> <!> <label class="block text-[11px] text-fg-muted"> <input placeholder="everything else" class="mt-0.5 w-full rounded border border-line bg-subtle px-2 py-1 font-mono text-xs text-fg focus:border-accent focus:outline-none"/></label></div> <div class="flex-1 overflow-auto px-4 py-3"><!></div></div>`);function HB(e,t){it(t,!0);let n=N(`duration > 500`),r=N(``),i=N(yr([])),a=N(``),o=N(``),s=N(``),c=e=>z(i).find(t=>t.name===e)?.arms??[];function l(){let e=pl.value;return e===null?null:$o(e)}let u=e=>`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`;async function d(){let e=l();if(e!==null)try{let t=await fetch(`${e}/api/query/attributes?key=experiment.name&pair=experiment.variant`);if(!t.ok)return;let n=await t.json(),r=new Map;for(let e of n.pairs??[]){let t=String(e.value),n=String(e.paired);if(t===``||n===``)continue;let i=r.get(t)??[];i.includes(n)||i.push(n),r.set(t,i)}P(i,[...r].map(([e,t])=>({name:e,arms:t})),!0)}catch{}}zr(()=>{d()});function f(e){P(a,e,!0);let t=c(e);P(o,t[0]??``,!0),P(s,t[1]??``,!0),e!==``&&P(h,null),m()}function p(e){P(o,e,!0),z(s)===e&&P(s,``),m()}function m(){if(z(a)===``||z(o)===``)return;let e=`experiment.name = ${u(z(a))}`;P(n,`${e} AND experiment.variant = ${u(z(o))}`),P(r,z(s)===``?`${e} AND experiment.variant != ${u(z(o))}`:`${e} AND experiment.variant = ${u(z(s))}`,!0)}let h=N(null),g=N(!1),_=N(null),v=e=>`${Math.round(e*100)}%`;function y(){let e=Es(ml.value,Date.now());if(z(h)===null){let t=Ms(e);return{outlier:{query:z(n),window:t},baseline:{query:z(r),window:t}}}return{outlier:{query:z(r),window:{start:z(h),end:Date.now()}},baseline:{query:z(r),window:{start:e?.start??0,end:z(h)}}}}async function b(){let e=pl.value,t=e===null?null:$o(e);if(t===null){P(_,{status:`error`,message:`The telemetry receiver is not connected.`},!0);return}P(g,!0);try{P(_,await OB({...y(),ignoreFields:z(a)===``?void 0:[`experiment.name`,`experiment.variant`]},{fetch:globalThis.fetch.bind(globalThis),baseUrl:t}),!0)}finally{P(g,!1)}}var x=VB(),S=F(x),C=F(S),w=F(C),T=F(w),ee=e=>{var t=kB();rm(I(t),{size:12}),Ke(),H(e,t)},te=e=>{var t=AB();tg(I(t),{size:12}),Ke(),H(e,t)};W(T,e=>{z(h)===null?e(ee):e(te,-1)}),D(w);var ne=L(w,2),re=F(ne);rh(re,{size:12});var ie=L(re);D(ne),D(C);var ae=L(C,2),oe=e=>{var t=NB(),n=I(t),r=L(F(n)),l=F(r);l.value=l.__value=``,G(L(l),17,()=>z(i),e=>e.name,(e,t)=>{var n=jB(),r=F(n,!0);D(n);var i={};R(()=>{U(r,z(t).name),i!==(i=z(t).name)&&(n.value=(n.__value=z(t).name)??``)}),H(e,n)}),D(r);var u;uo(r),D(n);var d=L(n,2),h=e=>{var t=MB(),n=F(t),r=L(F(n));G(r,20,()=>c(z(a)),e=>e,(e,t)=>{var n=jB(),r=F(n,!0);D(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),D(r);var i;uo(r),D(n);var l=L(n,2),u=L(F(l)),d=F(u);d.value=d.__value=``,G(L(d),16,()=>c(z(a)).filter(e=>e!==z(o)),e=>e,(e,t)=>{var n=jB(),r=F(n,!0);D(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),D(u);var f;uo(u),D(l),D(t),R(()=>{i!==(i=z(o))&&(r.value=(r.__value=z(o))??``,lo(r,z(o))),f!==(f=z(s))&&(u.value=(u.__value=z(s))??``,lo(u,z(s)))}),B(`change`,r,e=>p(e.currentTarget.value)),B(`change`,u,e=>{P(s,e.currentTarget.value,!0),m()}),H(e,t)};W(d,e=>{z(a)!==``&&e(h)}),R(()=>{u!==(u=z(a))&&(r.value=(r.__value=z(a))??``,lo(r,z(a)))}),B(`change`,r,e=>f(e.currentTarget.value)),H(e,t)};W(ae,e=>{z(i).length>0&&e(oe)});var se=L(ae,2),ce=e=>{var t=PB(),r=L(F(t));Co(r),D(t),Mo(r,()=>z(n),e=>P(n,e)),H(e,t)},le=e=>{H(e,FB())};W(se,e=>{z(h)===null?e(ce):e(le,-1)});var E=L(se,2),ue=F(E),de=L(ue);Co(de),D(E),D(S);var fe=L(S,2),pe=F(fe),me=e=>{H(e,IB())},he=e=>{var t=LB(),n=F(t,!0);D(t),R(()=>U(n,z(_).message)),H(e,t)},ge=e=>{var t=RB(),n=F(t);D(t),R(()=>U(n,`Nothing to compare: ${z(_).outlierCount??``} against ${z(_).baselineCount??``}
|
|
35
|
+
spans. A share of zero events says nothing about either group.`)),H(e,t)},_e=e=>{var t=da(),n=I(t),r=e=>{var t=RB(),n=F(t);D(t),R(()=>U(n,`No attribute separates these ${z(_).outlierCount??``} spans from the
|
|
36
|
+
${z(_).baselineCount??``} they were compared with.`)),H(e,t)},i=e=>{var t=BB(),n=I(t),r=F(n);D(n);var i=L(n,2),a=L(F(i));G(a,21,()=>z(_).differences,e=>`${e.field}=${e.value}`,(e,t)=>{var n=zB(),r=F(n),i=F(r,!0),a=L(i,2,!0);D(r);var o=L(r),s=F(o,!0);D(o);var c=L(o),l=F(c,!0);D(c),D(n),R((e,n)=>{U(i,z(t).field),U(a,z(t).value),U(s,e),U(l,n)},[()=>v(z(t).outlierFraction),()=>v(z(t).baselineFraction)]),H(e,n)}),D(a),D(i),R(()=>U(r,`${z(_).outlierCount??``} spans against ${z(_).baselineCount??``}. A
|
|
37
|
+
hypothesis to check against individual traces, not a conclusion.`)),H(e,t)};W(n,e=>{z(_).differences.length===0?e(r):e(i,-1)}),H(e,t)};W(pe,e=>{z(_)?z(_).status===`unavailable`||z(_).status===`invalid`||z(_).status===`error`?e(he,1):z(_).status===`empty`?e(ge,2):z(_).status===`ok`&&e(_e,3):e(me)}),D(fe),D(x),R(e=>{q(w,1,e),ne.disabled=z(g),U(ie,` ${z(g)?`Comparing…`:`Compare`}`),U(ue,`${z(h)===null?`Compared with`:`Restricted to`} `)},[()=>K(Q(`flex items-center gap-1 rounded px-2 py-1 text-xs`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,z(h)===null?`border border-line text-fg-muted hover:text-fg`:`bg-accent text-white`))]),B(`click`,w,()=>P(h,z(h)===null?Date.now():null,!0)),B(`click`,ne,b),Mo(de,()=>z(r),e=>P(r,e)),H(e,x),at()}na([`click`,`change`]);var UB=V(`<span class="text-xs text-fg"> </span>`),WB=V(`<span class="text-xs text-fg-muted">Instrumentation coverage</span>`),GB=V(`<p class="text-xs text-fg-subtle">Loading…</p>`),KB=V(`<div class="flex items-start gap-2 text-xs text-fg-muted"><!> <p> </p></div>`),qB=V(`<p class="text-xs text-danger"> </p>`),JB=V(`<p class="text-xs text-fg-muted">The map records no entry points.</p>`),YB=V(`<span class="mr-1 inline-block h-1.5 w-1.5 rounded-full bg-danger" aria-label="never seen"></span>`),XB=V(`<tr class="border-t border-line-subtle"><td class="py-1 pr-2 font-mono"><!> </td><td> </td><td class="py-1"><a class="text-fg-subtle hover:text-accent hover:underline"> </a></td></tr>`),ZB=V(`<table class="w-full text-left text-xs"><thead class="text-[11px] uppercase tracking-wide text-fg-muted"><tr><th class="py-1 pr-2 font-medium">Entry point</th><th class="py-1 pr-2 font-medium">Spans</th><th class="py-1 font-medium">Source</th></tr></thead><tbody></tbody></table>`),QB=V(`<div class="flex h-full flex-col overflow-hidden"><div class="flex items-center justify-between border-b border-line px-4 py-3"><div><!></div> <button type="button" class="flex items-center gap-1 rounded border border-line px-2 py-1 text-xs text-fg-muted hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent"><!> Refresh</button></div> <div class="flex-1 overflow-auto px-4 py-3"><!></div></div>`);function $B(e,t){it(t,!0);let n=N(yr({status:`idle`}));async function r(){P(n,{status:`loading`},!0);try{let e=pl.value,t=e===null?null:$o(e);if(t===null){P(n,{status:`error`,message:`The telemetry receiver is not connected.`},!0);return}let r=await fetch(`${t}/api/coverage`),i=await r.json();r.status===404?P(n,{status:`missing`,message:i.message??`No map found.`},!0):r.ok?P(n,{status:`ok`,...i},!0):P(n,{status:`error`,message:i.message??r.statusText},!0)}catch(e){P(n,{status:`error`,message:e instanceof Error?e.message:`Request failed`},!0)}}zr(()=>{r()});let i=e=>`vscode://file/${e.file}${e.handler?.line?`:${e.handler.line}`:``}`;var a=QB(),o=F(a),s=F(o),c=F(s),l=e=>{var t=UB(),r=F(t);D(t),R(()=>U(r,`${z(n).total-z(n).seenCount} of ${z(n).total??``} entry points have emitted
|
|
38
|
+
nothing`)),H(e,t)},u=e=>{H(e,WB())};W(c,e=>{z(n).status===`ok`?e(l):e(u,-1)}),D(s);var d=L(s,2);dh(F(d),{size:12}),Ke(),D(d),D(o);var f=L(o,2),p=F(f),m=e=>{H(e,GB())},h=e=>{var t=KB(),r=F(t);$p(r,{size:14,class:`mt-0.5 shrink-0`});var i=L(r,2),a=F(i,!0);D(i),D(t),R(()=>U(a,z(n).message)),H(e,t)},g=e=>{var t=qB(),r=F(t,!0);D(t),R(()=>U(r,z(n).message)),H(e,t)},_=e=>{H(e,JB())},v=e=>{var t=ZB(),r=L(F(t));G(r,21,()=>z(n).entries,e=>`${e.method??``} ${e.path}`,(e,t)=>{var n=XB(),r=F(n),a=F(r),o=e=>{H(e,YB())};W(a,e=>{z(t).seen||e(o)});var s=L(a);D(r);var c=L(r),l=F(c,!0);D(c);var u=L(c),d=F(u),f=F(d,!0);D(d),D(u),D(n),R(e=>{U(s,` ${z(t).method?`${z(t).method} `:``}${z(t).path??``}`),q(c,1,K(z(t).seen?`py-1 pr-2 tabular-nums text-fg-muted`:`py-1 pr-2 text-danger`)),U(l,z(t).seen?z(t).spanCount:`none`),J(d,`href`,e),U(f,z(t).file)},[()=>i(z(t))]),H(e,n)}),D(r),D(t),H(e,t)};W(p,e=>{z(n).status===`loading`||z(n).status===`idle`?e(m):z(n).status===`missing`?e(h,1):z(n).status===`error`?e(g,2):z(n).entries.length===0?e(_,3):e(v,-1)}),D(f),D(a),B(`click`,d,r),H(e,a),at()}na([`click`]);var eV={traces:tj,agents:jj,genai:NN,flow:EP,resources:IP,"service-map":mF,metrics:nz,logs:Tz,errors:lB,security:DB,compare:HB,coverage:$B},tV=[{id:`traces`,label:`Traces`,icon:Vp},{id:`agents`,label:`Agents`,icon:sp},{id:`genai`,label:`GenAI`,icon:jh},{id:`flow`,label:`Flow`,icon:Zh},{id:`resources`,label:`Resources`,icon:lp},{id:`service-map`,label:`Service Map`,icon:Gm},{id:`metrics`,label:`Metrics`,icon:_p},{id:`logs`,label:`Logs`,icon:tm},{id:`errors`,label:`Errors`,icon:Uh},{id:`security`,label:`Security`,icon:Dh},{id:`compare`,label:`Compare`,icon:pm},{id:`coverage`,label:`Coverage`,icon:hh}].filter(e=>eV[e.id]!==void 0),nV=tV.map(e=>e.id),rV=16,iV=48;function aV(e){let{isVertical:t,dock:n,axisSize:r,setSize:i,resetSize:a}=e,o=N(!1);return{get resizing(){return z(o)},onPointerDown:e=>{e.stopPropagation();let a=t(),s=a?`vertical`:`horizontal`,c=a?e.clientY:e.clientX,l=r(),u=n()===`bottom`||n()===`right`?-1:1;gy(e,{cursor:a?`ns-resize`:`ew-resize`,onStart:()=>P(o,!0),onMove:e=>{let t=a?e.clientY:e.clientX;i(s,l+(t-c)*u)},onEnd:()=>P(o,!1)})},onKeyDown:e=>{let a=t()?`vertical`:`horizontal`,o=e.shiftKey?iV:rV,s=t()?{ArrowUp:n()===`bottom`?o:-o,ArrowDown:n()===`bottom`?-o:o}:{ArrowLeft:n()===`right`?o:-o,ArrowRight:n()===`right`?-o:o};e.key in s&&(e.preventDefault(),i(a,r()+s[e.key]))},onDblClick:()=>a(t()?`vertical`:`horizontal`)}}function oV(e,t,n,r){let i={left:e,right:n-e,top:t,bottom:r-t};return Object.keys(i).reduce((e,t)=>i[t]<i[e]?t:e)}function sV(e){let{dock:t,pipActive:n,onDock:r}=e,i=N(!1),a=N(null);return{get dragging(){return z(i)},get dropTarget(){return z(a)},onHeaderPointerDown:e=>{e.button===0&&(e.target.closest(`button`)||n()||gy(e,{cursor:`grabbing`,onStart:()=>{P(i,!0),P(a,t(),!0)},onMove:e=>{P(a,oV(e.clientX,e.clientY,window.innerWidth,window.innerHeight),!0)},onEnd:()=>{P(i,!1),z(a)&&z(a)!==t()&&r(z(a)),P(a,null)}}))}}}function cV(e,t){it(t,!0);let n=M(()=>Bc.value),r=M(()=>eV[z(n)]??eV.traces);var i=da(),a=I(i),o=e=>{var t=da();Ba(I(t),()=>z(r),(e,t)=>{t(e,{})}),H(e,t)};W(a,e=>{z(r)&&e(o)}),H(e,i),at()}var lV=V(`<span class="absolute inset-0 rounded-full bg-success opacity-75 animate-ping" aria-hidden="true"></span>`),uV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry ingest rate"> </span>`),dV=V(`<span class="text-xs font-mono tabular-nums text-fg-subtle" title="Telemetry store usage and retention cap"> </span>`),fV=V(`<span> </span> <!> <!>`,1),pV=V(`<div role="status"><span class="relative inline-flex w-2 h-2 shrink-0"><!> <span aria-hidden="true"></span></span> <!></div>`);function mV(e,t){it(t,!0);let n=Z(t,`compact`,3,!1),r=M(()=>fl.value),i=M(()=>z(r)===`connected`?{dot:`bg-success`,label:`Connected`,text:`text-success`}:z(r)===`connecting`?{dot:`bg-warning animate-pulse`,label:`Connecting…`,text:`text-warning`}:{dot:`bg-danger`,label:`Disconnected`,text:`text-fg-subtle`}),a=M(()=>yl.value),o=N(!1);zr(()=>{if(z(a),z(a)===0)return;P(o,!0);let e=setTimeout(()=>P(o,!1),900);return()=>clearTimeout(e)});let s=N(0);zr(()=>{if(n())return;let e=()=>{P(s,Math.round(Cl(5e3).total),!0)};e();let t=setInterval(e,1e3);return()=>clearInterval(t)});let c=M(()=>!n()&&z(r)===`connected`&&z(s)>0),l=N(null);zr(()=>{if(n()||z(r)!==`connected`)return;let e=!0,t=async()=>{let t=pl.value,n=(t?$o(t):null)??globalThis.location?.origin;if(n)try{let t=await fetch(`${n}/api/stats`);t.ok&&e&&P(l,await t.json(),!0)}catch{}};t();let i=setInterval(t,3e4);return()=>{e=!1,clearInterval(i)}});function u(e){return e<1024**2?`${Math.round(e/1024)} KB`:e<1024**3?`${(e/1024**2).toFixed(1)} MB`:`${(e/1024**3).toFixed(1)} GB`}var d=pV(),f=F(d),p=F(f),m=e=>{H(e,lV())};W(p,e=>{z(o)&&z(r)===`connected`&&e(m)});var h=L(p,2);D(f);var g=L(f,2),_=e=>{var t=fV(),n=I(t),r=F(n,!0);D(n);var a=L(n,2),o=e=>{var t=uV(),n=F(t);D(t),R(()=>U(n,`· ${z(s)??``}/s`)),H(e,t)};W(a,e=>{z(c)&&e(o)});var d=L(a,2),f=e=>{var t=dV(),n=F(t);D(t),R((e,t)=>U(n,`· ${e??``} / ${t??``}`),[()=>u(z(l).bytesUsed),()=>u(z(l).maxBytes)]),H(e,t)};W(d,e=>{z(l)&&e(f)}),R(e=>{q(n,1,e),U(r,z(i).label)},[()=>K(Q(`text-xs font-medium`,z(i).text))]),H(e,t)};W(g,e=>{n()||e(_)}),D(d),R((e,t)=>{q(d,1,e),J(d,`aria-label`,`OTLP receiver: ${z(i).label}`),J(d,`title`,`OTLP receiver: ${z(i).label}${z(s)>0?` · ${z(s)}/s`:``}`),q(h,1,t)},[()=>K(Q(`flex items-center gap-1.5`,!n()&&`px-3 py-2`)),()=>K(Q(`relative inline-block w-2 h-2 rounded-full`,z(i).dot))]),H(e,d),at()}var hV=V(`<kbd class="inline-block px-1.5 py-0.5 font-mono text-xs font-semibold bg-hover border border-line rounded text-fg mr-1 last:mr-0 shadow-[0_1px_0_#d4d4d8]"> </kbd>`),gV=V(`<tr class="border-b border-line-subtle last:border-b-0"><td class="py-2.5 px-4 whitespace-nowrap align-middle w-[1%]"></td><td class="py-2.5 pr-4 pl-1 text-sm text-fg-muted align-middle"> </td></tr>`),_V=V(`<div class="fixed inset-0 z-[1000] flex items-center justify-center" role="dialog" aria-modal="true" aria-label="Keyboard shortcuts"><button type="button" aria-label="Close" class="absolute inset-0 bg-black/55 backdrop-blur-[2px] at-backdrop-in"></button> <div tabindex="-1" class="at-modal-in relative z-[1] bg-surface border border-line rounded-lg shadow-xl w-[480px] max-w-[90vw] max-h-[80vh] flex flex-col overflow-hidden outline-none"><div class="flex items-center justify-between px-4 py-3 border-b border-line bg-subtle flex-shrink-0"><span class="text-sm font-semibold text-fg">Keyboard Shortcuts</span> <button class="inline-flex items-center justify-center w-7 h-7 p-0 bg-transparent border border-line rounded cursor-pointer text-sm text-fg-subtle hover:bg-danger-bg hover:border-danger-border hover:text-danger transition-colors" title="Close (Esc)"><!></button></div> <div class="overflow-y-auto py-2"><table class="w-full border-collapse"><tbody></tbody></table></div></div></div>`);function vV(e,t){it(t,!0);let n=N(void 0);zr(()=>{let e=e=>{e.key===`Escape`&&(e.stopPropagation(),t.onClose())},r=z(n);return r&&(r.addEventListener(`keydown`,e),r.focus()),window.addEventListener(`keydown`,e),()=>{r&&r.removeEventListener(`keydown`,e),window.removeEventListener(`keydown`,e)}});var r=_V(),i=F(r),a=L(i,2),o=F(a),s=L(F(o),2);tg(F(s),{size:14}),D(s),D(o);var c=L(o,2),l=F(c),u=F(l);G(u,21,()=>t.shortcuts,Aa,(e,t)=>{var n=gV(),r=F(n);G(r,21,()=>z(t).keys,Aa,(e,t)=>{var n=hV(),r=F(n,!0);D(n),R(()=>U(r,z(t)===`CmdOrCtrl`?yg?`⌘`:`Ctrl`:z(t)===`AltOrOpt`?yg?`⌥`:`Alt`:z(t))),H(e,n)}),D(r);var i=L(r),a=F(i,!0);D(i),D(n),R(()=>U(a,z(t).description)),H(e,n)}),D(u),D(l),D(c),D(a),Uo(a,e=>P(n,e),()=>z(n)),D(r),B(`click`,i,function(...e){t.onClose?.apply(this,e)}),B(`click`,s,function(...e){t.onClose?.apply(this,e)}),H(e,r),at()}na([`click`]);var yV=V(`<div role="separator" aria-label="Resize panel" tabindex="0" title="Drag to resize · double-click to reset"><div></div> <div></div></div>`),bV=V(`<span class="text-fg-subtle/60 flex-shrink-0 pl-0.5" aria-hidden="true"><!></span>`),xV=V(`<span> </span>`),SV=V(`<button><!> <span> </span> <!></button>`),CV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Dock position (click to cycle: bottom → right → left) — or drag the header to an edge" aria-label="Change dock position"><!></button>`),wV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors"><!></button>`),TV=V(`<button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Close (Esc)" aria-label="Close devtools"><!></button>`),EV=V(`<span class="px-2.5 py-1 rounded-md bg-accent text-white text-xs font-semibold shadow-lg"> </span>`),DV=V(`<div><!></div>`),OV=V(`<div class="fixed inset-0 z-[1001] pointer-events-none" aria-hidden="true"></div>`),kV=V(`<section aria-label="Autotel devtools"><!> <header><!> <div class="flex items-center gap-2 flex-shrink-0 pr-1 mr-0.5"><!> <span class="text-xs font-semibold tracking-tight text-fg hidden sm:inline">autotel</span></div> <nav class="flex items-center gap-0.5 overflow-x-auto min-w-0 flex-1 at-no-scrollbar" aria-label="Devtools sections"></nav> <div class="flex items-center gap-1 flex-shrink-0 pl-1"><!> <button class="p-1.5 rounded-md text-fg-subtle hover:text-fg hover:bg-subtle transition-colors" title="Keyboard shortcuts (?)" aria-label="Keyboard shortcuts"><!></button> <!> <!> <!></div></header> <div class="flex-1 min-h-0 overflow-hidden"><!></div> <!></section> <!>`,1);function AV(e,t){it(t,!0);let n=N(void 0),r=M(()=>Fc.value),i=M(()=>Bc.value),a=M(()=>Rc.value??`bottom`),o=M(()=>il.value),s=M(()=>zc.value),c=og(),l=M(()=>z(a)===`bottom`||z(a)===`top`),u=M(()=>z(l)?z(o).vertical:z(o).horizontal),d=M(()=>al(z(l)?`vertical`:`horizontal`)),f=M(()=>su.value),p=M(()=>nu.value),m=M(()=>ru.value),h=M(()=>({genai:z(p)>0?z(p):void 0,flow:z(m)>0?z(m):void 0,errors:z(f)>0?z(f):void 0})),g=M(()=>tV.map(e=>({...e,badge:z(h)[e.id]}))),_=aV({isVertical:()=>z(l),dock:()=>z(a),axisSize:()=>z(u),setSize:ol,resetSize:sl}),v=sV({dock:()=>z(a),pipActive:()=>z(s),onDock:Lu});async function y(){if(z(s)){ug(()=>zc.value=!1);return}let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot?e.host:null;t&&await lg(t,()=>zc.value=!1,{width:760,height:600})&&(zc.value=!0)}let b=globalThis.window!==void 0&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function x(e,{dock:t}){if(b||z(s))return{duration:0};let n=t===`left`||t===`right`?`X`:`Y`,r=t===`bottom`||t===`right`?1:-1;return{duration:240,easing:ig,css:(e,t)=>`transform: translate${n}(${t*r*100}%)`}}let S=[`traces`,`genai`,`flow`,`service-map`,`metrics`,`logs`,`errors`],C=M(()=>$c.value);function w(){return Vc.value?gg:Bc.value===`traces`?hg:mg}zr(()=>{let e=z(n)?.getRootNode(),t=e instanceof ShadowRoot||e instanceof Document?e:window,r=e=>{let t=e;if(t.key===`Escape`){if($c.value){tl();return}if(_g())return;if(zc.value){ug(()=>zc.value=!1);return}ju();return}if(t.key===`?`&&!_g()){t.preventDefault(),nl(w());return}if(!$c.value&&!_g()&&t.key>=`1`&&t.key<=`7`){let e=Number.parseInt(t.key,10)-1;e<S.length&&Mu(S[e])}};return t.addEventListener(`keydown`,r),()=>t.removeEventListener(`keydown`,r)});let T=M(()=>z(s)?`inset-0`:{bottom:`left-0 right-0 bottom-0`,top:`left-0 right-0 top-0`,right:`top-0 bottom-0 right-0`,left:`top-0 bottom-0 left-0`}[z(a)]),ee=M(()=>z(s)?``:{bottom:`border-t`,top:`border-b`,right:`border-l`,left:`border-r`}[z(a)]),te=M(()=>({bottom:`-top-1 left-0 right-0 h-2 cursor-ns-resize`,top:`-bottom-1 left-0 right-0 h-2 cursor-ns-resize`,right:`-left-1 top-0 bottom-0 w-2 cursor-ew-resize`,left:`-right-1 top-0 bottom-0 w-2 cursor-ew-resize`})[z(a)]),ne=M(()=>({bottom:`inset-x-0 top-1 h-px`,top:`inset-x-0 bottom-1 h-px`,right:`inset-y-0 left-1 w-px`,left:`inset-y-0 right-1 w-px`})[z(a)]),re=M(()=>z(s)?``:z(l)?`height: ${z(u)}px;`:`width: ${z(u)}px;`),ie=M(()=>z(s)?``:{bottom:`box-shadow: 0 -12px 32px -14px var(--at-shadow), 0 -2px 6px -4px var(--at-shadow);`,top:`box-shadow: 0 12px 32px -14px var(--at-shadow), 0 2px 6px -4px var(--at-shadow);`,right:`box-shadow: -12px 0 32px -14px var(--at-shadow), -2px 0 6px -4px var(--at-shadow);`,left:`box-shadow: 12px 0 32px -14px var(--at-shadow), 2px 0 6px -4px var(--at-shadow);`}[z(a)]),ae=M(()=>z(a)===`right`?Zm:z(a)===`left`?Ym:qm),oe=[{edge:`bottom`,pos:`left-0 right-0 bottom-0 h-24`,label:`Dock bottom`},{edge:`top`,pos:`left-0 right-0 top-0 h-24`,label:`Dock top`},{edge:`left`,pos:`top-0 bottom-0 left-0 w-44`,label:`Dock left`},{edge:`right`,pos:`top-0 bottom-0 right-0 w-44`,label:`Dock right`}];var se=da(),ce=I(se),le=e=>{var t=kV(),r=I(t),o=F(r),f=e=>{var t=yV(),n=F(t),r=L(n,2);D(t),R((e,i,a,o)=>{J(t,`aria-orientation`,z(l)?`horizontal`:`vertical`),J(t,`aria-valuenow`,e),J(t,`aria-valuemin`,z(d).min),J(t,`aria-valuemax`,z(d).max),q(t,1,i),q(n,1,a),q(r,1,o)},[()=>Math.round(z(u)),()=>K(Q(`absolute z-20 group touch-none select-none outline-none`,z(te))),()=>K(Q(`absolute bg-line-subtle transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(ne))),()=>K(Q(`absolute rounded-full bg-line transition-colors duration-150`,`group-hover:bg-accent group-focus-visible:bg-accent`,_.resizing&&`!bg-accent`,z(l)?`left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 w-9 h-1`:`top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2 h-9 w-1`))]),B(`pointerdown`,t,function(...e){_.onPointerDown?.apply(this,e)}),B(`keydown`,t,function(...e){_.onKeyDown?.apply(this,e)}),B(`dblclick`,t,function(...e){_.onDblClick?.apply(this,e)}),H(e,t)};W(o,e=>{z(s)||e(f)});var p=L(o,2),m=F(p),h=e=>{var t=bV();_m(F(t),{size:14}),D(t),H(e,t)};W(m,e=>{z(s)||e(h)});var b=L(m,2);id(F(b),{width:18,height:18}),Ke(2),D(b);var S=L(b,2);G(S,21,()=>z(g),e=>e.id,(e,t)=>{let n=M(()=>z(t).icon),r=M(()=>z(i)===z(t).id);var a=SV(),o=F(a);{let e=M(()=>z(t).id===`errors`&&z(t).badge?`text-danger`:void 0);Ba(o,()=>z(n),(t,n)=>{n(t,{size:14,get class(){return z(e)}})})}var s=L(o,2),c=F(s,!0);D(s);var l=L(s,2),u=e=>{var n=xV(),r=F(n,!0);D(n),R(e=>{q(n,1,e),U(r,z(t).badge>99?`99+`:z(t).badge)},[()=>K(Q(`px-1.5 py-px text-[10px] font-semibold rounded-full`,z(t).id===`errors`?`bg-danger-bg text-danger`:`bg-accent/15 text-fg-muted`))]),H(e,n)};W(l,e=>{z(t).badge&&e(u)}),D(a),R(e=>{J(a,`aria-current`,z(r)?`page`:void 0),q(a,1,e),U(c,z(t).label)},[()=>K(Q(`flex items-center gap-1.5 px-2.5 h-8 rounded-md flex-shrink-0`,`text-xs transition-colors cursor-pointer`,z(r)?`bg-accent/12 text-fg font-semibold ring-1 ring-inset ring-accent/20`:`text-fg-subtle font-medium hover:text-fg hover:bg-subtle`))]),B(`click`,a,()=>Mu(z(t).id)),H(e,a)}),D(S);var se=L(S,2);{let e=e=>{let t=M(()=>z(ae));var n=da();Ba(I(n),()=>z(t),(e,t)=>{t(e,{size:15})}),H(e,n)};var ce=F(se);mV(ce,{compact:!0});var le=L(ce,2);kp(F(le),{size:15}),D(le);var E=L(le,2),ue=t=>{var n=CV(),r=F(n);e(r),D(n),B(`click`,n,function(...e){Ru?.apply(this,e)}),H(t,n)};W(E,e=>{z(s)||e(ue)});var de=L(E,2),fe=e=>{var t=wV(),n=F(t),r=e=>{Lm(e,{size:15})},i=e=>{th(e,{size:15})};W(n,e=>{z(s)?e(r):e(i,-1)}),D(t),R(()=>{J(t,`title`,z(s)?`Return to docked panel`:`Pop out to a separate window`),J(t,`aria-label`,z(s)?`Return to docked panel`:`Pop out to window`)}),B(`click`,t,y),H(e,t)};W(de,e=>{c&&e(fe)});var pe=L(de,2),me=e=>{var t=TV();tg(F(t),{size:16}),D(t),B(`click`,t,function(...e){ju?.apply(this,e)}),H(e,t)};W(pe,e=>{z(s)||e(me)}),D(se),B(`click`,le,()=>nl(w()))}D(p);var he=L(p,2);cV(F(he),{}),D(he);var ge=L(he,2),_e=e=>{vV(e,{get shortcuts(){return z(C)},get onClose(){return tl}})};W(ge,e=>{z(C)&&e(_e)}),D(r),Uo(r,e=>P(n,e),()=>z(n));var ve=L(r,2),ye=e=>{var t=OV();G(t,21,()=>oe,e=>e.edge,(e,t)=>{let n=M(()=>v.dropTarget===z(t).edge);var r=DV(),i=F(r),a=e=>{var n=EV(),r=F(n,!0);D(n),R(()=>U(r,z(t).label)),H(e,n)};W(i,e=>{z(n)&&e(a)}),D(r),R(e=>q(r,1,e),[()=>K(Q(`absolute flex items-center justify-center transition-colors duration-100`,z(t).pos,z(n)?`bg-accent/15 ring-2 ring-inset ring-accent`:`bg-accent/5`))]),H(e,r)}),D(t),H(e,t)};W(ve,e=>{v.dragging&&e(ye)}),R((e,t)=>{q(r,1,e),co(r,`${z(re)} ${z(ie)}`),q(p,1,t)},[()=>K(Q(`fixed z-[1000] flex flex-col`,`bg-surface text-fg`,z(T),z(ee),`border-line`)),()=>K(Q(`flex items-center gap-1 pl-2 pr-2 h-11 flex-shrink-0`,`border-b border-line bg-surface`,z(s)?``:`cursor-grab active:cursor-grabbing`))]),B(`pointerdown`,p,function(...e){v.onHeaderPointerDown?.apply(this,e)}),Ya(3,r,()=>x,()=>({dock:z(a)})),H(e,t)};W(ce,e=>{z(r)&&e(le)}),H(e,se),at()}na([`pointerdown`,`keydown`,`dblclick`,`click`]);var jV=V(`<button><!> </button>`),MV=V(`<nav></nav>`);function NV(e,t){it(t,!0);let n=Z(t,`orientation`,3,`horizontal`),r=M(()=>Bc.value);var i=MV();G(i,21,()=>tV,({id:e,label:t,icon:n})=>e,(e,t)=>{let n=()=>z(t).id,i=()=>z(t).label,a=()=>z(t).icon;var o=jV(),s=F(o);Ba(s,a,(e,t)=>{t(e,{size:14})});var c=L(s);D(o),R(e=>{q(o,1,e),U(c,` ${i()??``}`)},[()=>K(Q(`flex items-center gap-2 px-3 py-2 text-xs font-medium rounded transition-colors whitespace-nowrap`,z(r)===n()?`bg-accent text-white`:`text-fg-subtle hover:bg-hover hover:text-fg`))]),B(`click`,o,()=>Mu(n())),H(e,o)}),D(i),R(e=>q(i,1,e),[()=>K(Q(`flex gap-1 p-1`,n()===`vertical`?`flex-col w-48 border-r border-line`:`border-b border-line overflow-x-auto`))]),H(e,i),at()}na([`click`]);var PV=V(`<!> <span class="font-medium">Snapshot mode</span> <span class="text-warning">— live updates paused.</span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-warning-bg transition-colors" title="Exit snapshot and clear data"><!> Exit</button>`,1),FV=V(`<span class="text-fg-subtle"> </span> <button class="ml-auto inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent"><!> Download snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover transition-colors" title="Load a snapshot file"><!> Load snapshot</button> <button class="inline-flex items-center gap-1 px-2 py-0.5 rounded hover:bg-hover hover:text-danger transition-colors" title="Clear all captured data — traces, logs, metrics and errors"><!> Clear</button>`,1),IV=V(`<span class="text-danger truncate"> </span>`),LV=V(`<span class="text-warning truncate"> </span>`),RV=V(`<div><!> <input type="file" accept="application/json,.json" class="hidden"/> <!> <!></div>`);function zV(e,t){it(t,!0);let n=N(void 0),r=N(null),i=N(null),a=M(()=>kl.value),o=M(()=>[{n:cl.value.length,one:`trace`,many:`traces`},{n:dl.value.length,one:`log`,many:`logs`},{n:ul.value.length,one:`error`,many:`errors`}].filter(e=>e.n>0).map(e=>`${e.n} ${e.n===1?e.one:e.many}`)),s=M(()=>z(o).length===0),c=()=>{P(r,null),P(i,null),Ky({traces:cl.value,logs:dl.value,errors:ul.value})},l=()=>{z(n)?.click()},u=()=>{P(r,null),P(i,null),Bu()},d=async e=>{P(r,null),P(i,null);let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n)return;let a=await Yy(n);if(!a.success||!a.snapshot){P(r,a.errors.join(`; `)||`Failed to load snapshot`,!0);return}a.warnings.length>0&&P(i,a.warnings.join(`; `),!0),ku(a.snapshot)};var f=RV(),p=F(f),m=e=>{var t=PV(),n=I(t);pp(n,{size:12});var r=L(n,6);tg(F(r),{size:12}),Ke(),D(r),B(`click`,r,function(...e){Au?.apply(this,e)}),H(e,t)},h=e=>{var t=FV(),n=I(t),r=F(n,!0);D(n);var i=L(n,2);pp(F(i),{size:12}),Ke(),D(i);var a=L(i,2);Gh(F(a),{size:12}),Ke(),D(a);var d=L(a,2);zh(F(d),{size:12}),Ke(),D(d),R(e=>{U(r,e),i.disabled=z(s),J(i,`title`,z(s)?`Nothing captured yet`:`Download a snapshot of traces, logs, errors and metrics`)},[()=>z(s)?`No data captured`:z(o).join(` · `)]),B(`click`,i,c),B(`click`,a,l),B(`click`,d,u),H(e,t)};W(p,e=>{z(a)?e(m):e(h,-1)});var g=L(p,2);Uo(g,e=>P(n,e),()=>z(n));var _=L(g,2),v=e=>{var t=IV(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(r)),U(n,z(r))}),H(e,t)};W(_,e=>{z(r)&&e(v)});var y=L(_,2),b=e=>{var t=LV(),n=F(t,!0);D(t),R(()=>{J(t,`title`,z(i)),U(n,z(i))}),H(e,t)};W(y,e=>{z(i)&&!z(r)&&e(b)}),D(f),R(e=>q(f,1,e),[()=>K(Q(`border-b border-line px-3 py-1.5 text-xs flex items-center gap-2`,z(a)?`bg-warning-bg text-warning`:`bg-subtle text-fg-muted`))]),B(`change`,g,d),H(e,f),at()}na([`click`,`change`]);var BV=V(`<div class="flex h-screen w-screen bg-surface text-fg"><div class="hidden md:flex flex-col border-r border-line"><!> <div class="mt-auto p-2 border-t border-line flex flex-col gap-1"><!> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors"><!> </button> <button class="flex items-center gap-2 px-3 py-2 text-xs text-fg-subtle hover:bg-hover hover:text-fg rounded transition-colors" title="Keyboard shortcuts (?)"><!> Shortcuts</button></div></div> <div class="flex-1 flex flex-col min-w-0"><!> <div class="md:hidden"><!></div> <div class="flex-1 overflow-hidden"><!></div></div> <!></div>`);function VV(e,t){it(t,!0);function n(){return Vc.value?gg:Bc.value===`traces`?hg:mg}let r=M(()=>Gc.value),i=M(()=>$c.value);zr(()=>{Gc.value=Kc()});let a=N(void 0);zr(()=>{let e=null,t=z(a)?.getRootNode();t instanceof ShadowRoot?e=t.host:globalThis.document!==void 0&&(e=document.documentElement),e&&e.setAttribute(`data-theme`,z(r))}),zr(()=>{let e=e=>{if(e.key===`?`&&!_g()){e.preventDefault(),nl(n());return}if(!$c.value&&!_g()&&e.key>=`1`&&e.key<=`9`){let t=parseInt(e.key,10)-1;t<nV.length&&Mu(nV[t])}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let o=M(()=>z(r)===`dark`?`Dark`:z(r)===`light`?`Light`:`System`);var s=BV(),c=F(s),l=F(c);NV(l,{orientation:`vertical`});var u=L(l,2),d=F(u);mV(d,{});var f=L(d,2),p=F(f),m=e=>{Um(e,{size:14})},h=e=>{Nh(e,{size:14})},g=e=>{Vm(e,{size:14})};W(p,e=>{z(r)===`dark`?e(m):z(r)===`light`?e(h,1):e(g,-1)});var _=L(p);D(f);var v=L(f,2);kp(F(v),{size:14}),Ke(),D(v),D(u),D(c);var y=L(c,2),b=F(y);zV(b,{});var x=L(b,2);NV(F(x),{orientation:`horizontal`}),D(x);var S=L(x,2);cV(F(S),{}),D(S),D(y);var C=L(y,2),w=e=>{vV(e,{get shortcuts(){return z(i)},get onClose(){return tl}})};W(C,e=>{z(i)&&e(w)}),D(s),Uo(s,e=>P(a,e),()=>z(a)),R(()=>{J(f,`title`,`Theme: ${z(o)} (click to cycle)`),U(_,` ${z(o)??``}`)}),B(`click`,f,function(...e){Jc?.apply(this,e)}),B(`click`,v,()=>el(n())),H(e,s),at()}na([`click`]);var HV=250,UV=5e3;function WV(e={}){let t=e.now??(()=>Date.now()),n=e.debounceMs??HV,r=e.limit??UV,i=0,a=null,o=null,s=!1;function c(){let t=pl.value,n=e.baseUrl??(t?$o(t):null)??globalThis.location?.origin??``;return{fetch:e.fetch??globalThis.fetch.bind(globalThis),baseUrl:n}}async function l(){if(s)return;let e=++i;a?.abort();let n=new AbortController;a=n;let o={query:``,window:Ms(Es(ml.value,t())),limit:r},l={...c(),signal:n.signal},[u,d]=await Promise.all([GV(o,l),wA(o,l)]);e!==i||s||(u.status===`ok`?(hl.value=u.traces,_l.value=`ready`):u.status===`error`&&(_l.value=`unavailable`),d.status===`ok`&&(gl.value=d.errors))}function u(){if(!s){if(o&&clearTimeout(o),n<=0){l();return}o=setTimeout(()=>{o=null,l()},n)}}return{refresh:l,invalidate:u,dispose(){s=!0,o&&clearTimeout(o),a?.abort()}}}async function GV(e,t){let n=[],r=new Set,i;do{let a=await xA({...e,cursor:i},t);if(a.status!==`ok`)return a;if(n.push(...a.traces),i=a.nextCursor??void 0,i&&r.has(i))return{status:`error`,message:`The trace query returned a repeated pagination cursor.`};i&&r.add(i)}while(i);return{status:`ok`,traces:n,nextCursor:null}}var KV=`data-autotel-portal`;function qV(e){let t=e.querySelector(`[${KV}]`);if(t)return t;let n=document.createElement(`div`);return n.setAttribute(KV,``),n.style.position=`absolute`,n.style.top=`0`,n.style.left=`0`,n.style.zIndex=`2147483000`,e.appendChild(n),n}var JV=V(`<!> <!>`,1),YV=V(`<div class="contents"><!></div>`);function XV(e,t){it(t,!0);function n(e){Mu(e.tab??`traces`),Nl.value=e.q??``,Pl.value=e.status??`all`,Fl.value=e.minDuration??0,ml.value=e.window??Cs,Ml.value=e.sort??Zu,zl.value=e.genaiQuery??``,e.traceId&&Wc(e.traceId,e.spanId)}zr(()=>{pl.value=t.wsUrl});let r=WV();zr(()=>(r.refresh(),()=>r.dispose())),zr(()=>{ml.value,cl.value.length,r.invalidate()});let i=N(void 0),a=N(void 0);zr(()=>{if(!z(i))return;let e=z(i).getRootNode();P(a,qV(e instanceof ShadowRoot?e:document.body),!0)}),zr(()=>{t.deepLink&&n(t.deepLink)}),zr(()=>{let e=Uc.value;e&&cl.value.some(t=>t.traceId===e.traceId)&&(Nu(e.traceId,e.spanId??null),Mu(`traces`),Uc.value=null)});let o=null;zr(()=>{if(t.mode!==`fullpage`)return;let e={tab:Bc.value,traceId:Vc.value??void 0,spanId:Hc.value??void 0,q:Nl.value||void 0,status:Pl.value,minDuration:Fl.value,window:ml.value,sort:Ml.value,genaiQuery:zl.value||void 0};if(Uc.value)return;let n=ed(e);if(n===location.hash)return;let r=td(o,e);o=e;let i=`${location.pathname}${location.search}${n}`;r===`push`?history.pushState(history.state,``,i):history.replaceState(history.state,``,i)}),zr(()=>{if(t.mode!==`fullpage`)return;let e=()=>{let e=$u(location.hash);o=e,n(e)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)}),zr(()=>{Wu(),ns($o(t.wsUrl));let e=new Qo(t.wsUrl);fl.value=`connecting`;let n=e.onStatusChange(e=>{fl.value=e}),r=e.onMessage(Tu);return e.connect(),()=>{r(),n(),e.disconnect()}});var s=YV();uE(F(s),{get defaultPortalTo(){return z(a)},children:(e,n)=>{var r=da(),i=I(r),a=e=>{VV(e,{})},o=e=>{var t=JV(),n=I(t);Vf(n,{}),AV(L(n,2),{}),H(e,t)};W(i,e=>{t.mode===`fullpage`?e(a):e(o,-1)}),H(e,r)},$$slots:{default:!0}}),D(s),Uo(s,e=>P(i,e),()=>z(i)),H(e,s),at()}function ZV(e,t){let n=ha(XV,{target:e,props:t});return()=>{ya(n)}}var QV=`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
39
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-outline-style:solid}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:"Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--color-red-100:#ffe2e2;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-700:#bf000f;--color-orange-100:#ffedd5;--color-orange-400:#ff8b1a;--color-orange-500:#fe6e00;--color-orange-600:#f05100;--color-orange-700:#c53c00;--color-amber-100:#fef3c6;--color-amber-500:#f99c00;--color-amber-600:#dd7400;--color-amber-700:#b75000;--color-yellow-100:#fef9c2;--color-yellow-500:#edb200;--color-yellow-600:#cd8900;--color-green-100:#dcfce7;--color-green-400:#05df72;--color-green-500:#00c758;--color-green-600:#00a544;--color-emerald-500:#00bb7f;--color-emerald-600:#009767;--color-teal-500:#00baa7;--color-teal-600:#009588;--color-cyan-100:#cefafe;--color-cyan-500:#00b7d7;--color-cyan-600:#0092b5;--color-sky-500:#00a5ef;--color-sky-600:#0084cc;--color-blue-100:#dbeafe;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-indigo-500:#625fff;--color-indigo-600:#4f39f6;--color-violet-100:#ede9fe;--color-violet-500:#8d54ff;--color-violet-600:#7f22fe;--color-violet-700:#7008e7;--color-purple-100:#f3e8ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-purple-600:#9810fa;--color-fuchsia-500:#e12afb;--color-fuchsia-600:#c600db;--color-rose-500:#ff2357;--color-rose-600:#e70044;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-900:#101828;--color-stone-500:#79716b;--color-stone-600:#57534d;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:var(--at-surface);--color-subtle:var(--at-muted);--color-hover:var(--at-surface-hover);--color-code:var(--at-code);--color-fg:var(--at-text-primary);--color-fg-muted:var(--at-text-secondary);--color-fg-subtle:var(--at-text-muted);--color-line:var(--at-border);--color-line-subtle:var(--at-border-light);--color-accent:var(--at-accent);--color-danger:var(--at-error-text);--color-danger-bg:var(--at-error-bg);--color-danger-border:var(--at-error-border);--color-success:var(--at-ok-text);--color-success-bg:var(--at-ok-bg);--color-success-border:var(--at-ok-border);--color-warning:var(--at-warn-text);--color-warning-bg:var(--at-warn-bg);--color-warning-border:var(--at-warn-border);--color-selected:var(--at-selected-bg)}@supports (color:color(display-p3 0 0 0)){:root,:host{--color-red-100:color(display-p3 .980386 .889727 .887779);--color-red-400:color(display-p3 .933534 .431676 .423491);--color-red-500:color(display-p3 .903738 .262579 .253307);--color-red-600:color(display-p3 .830323 .140383 .133196);--color-red-700:color(display-p3 .692737 .116232 .104679);--color-orange-100:color(display-p3 .988762 .931393 .843273);--color-orange-400:color(display-p3 .950192 .561807 .211017);--color-orange-500:color(display-p3 .946589 .449788 .0757345);--color-orange-600:color(display-p3 .887467 .341665 .0219962);--color-orange-700:color(display-p3 .729844 .257256 .0511062);--color-amber-100:color(display-p3 .989391 .954583 .796328);--color-amber-500:color(display-p3 .93994 .620584 .0585367);--color-amber-600:color(display-p3 .827144 .467166 .0336006);--color-amber-700:color(display-p3 .67989 .32771 .0520514);--color-yellow-100:color(display-p3 .993436 .977463 .782913);--color-yellow-500:color(display-p3 .903651 .703062 .0745389);--color-yellow-600:color(display-p3 .776342 .542492 .041709);--color-green-100:color(display-p3 .885269 .984329 .910368);--color-green-400:color(display-p3 .399536 .862346 .49324);--color-green-500:color(display-p3 .308734 .774754 .374307);--color-green-600:color(display-p3 .243882 .640824 .294808);--color-emerald-500:color(display-p3 .267113 .726847 .508397);--color-emerald-600:color(display-p3 .206557 .589057 .413962);--color-teal-500:color(display-p3 .266569 .721518 .655462);--color-teal-600:color(display-p3 .207114 .579584 .53668);--color-cyan-100:color(display-p3 .843085 .97553 .992573);--color-cyan-500:color(display-p3 .246703 .710032 .841444);--color-cyan-600:color(display-p3 .193249 .564651 .707197);--color-sky-500:color(display-p3 .219113 .639027 .931479);--color-sky-600:color(display-p3 .162505 .509376 .796082);--color-blue-100:color(display-p3 .869214 .915931 .989622);--color-blue-400:color(display-p3 .397443 .62813 .992116);--color-blue-500:color(display-p3 .266422 .491219 .988624);--color-blue-600:color(display-p3 .174493 .358974 .950247);--color-indigo-500:color(display-p3 .380374 .372235 .971707);--color-indigo-600:color(display-p3 .297656 .227891 .929242);--color-violet-100:color(display-p3 .926222 .913546 .990178);--color-violet-500:color(display-p3 .523372 .329605 .990884);--color-violet-600:color(display-p3 .459951 .162666 .957985);--color-violet-700:color(display-p3 .40161 .0841901 .871151);--color-purple-100:color(display-p3 .945034 .910569 .992972);--color-purple-400:color(display-p3 .719919 .492497 .995173);--color-purple-500:color(display-p3 .629519 .30089 .990817);--color-purple-600:color(display-p3 .546729 .130167 .94439);--color-fuchsia-500:color(display-p3 .81268 .241966 .951571);--color-fuchsia-600:color(display-p3 .716587 .083681 .841036);--color-rose-500:color(display-p3 .921824 .240748 .355666);--color-rose-600:color(display-p3 .848792 .102011 .269259);--color-gray-50:color(display-p3 .977213 .98084 .985102);--color-gray-100:color(display-p3 .953567 .956796 .964321);--color-gray-400:color(display-p3 .605734 .630385 .680158);--color-gray-500:color(display-p3 .421287 .446085 .504784);--color-gray-900:color(display-p3 .070423 .0928982 .151928);--color-stone-500:color(display-p3 .467445 .443064 .42264);--color-stone-600:color(display-p3 .339543 .325291 .304619)}}@supports (color:lab(0% 0 0)){:root,:host{--color-red-100:lab(92.243% 10.2865 3.83865);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-orange-100:lab(94.7127% 3.58394 14.3151);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-500:lab(64.272% 57.1788 90.3583);--color-orange-600:lab(57.1026% 64.2584 89.8886);--color-orange-700:lab(46.4615% 57.7275 70.8507);--color-amber-100:lab(95.916% -1.21653 23.111);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-yellow-100:lab(97.3564% -4.51407 27.344);--color-yellow-500:lab(76.3898% 14.5258 98.4589);--color-yellow-600:lab(62.7799% 22.4197 86.1544);--color-green-100:lab(96.1861% -13.8464 6.52365);--color-green-400:lab(78.503% -64.9265 39.7492);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-green-600:lab(59.0978% -58.6621 41.2579);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-emerald-600:lab(55.0481% -49.9246 15.93);--color-teal-500:lab(67.3859% -49.0983 -2.63511);--color-teal-600:lab(55.0223% -41.0774 -3.90277);--color-cyan-100:lab(95.3146% -13.8285 -6.84732);--color-cyan-500:lab(67.805% -35.3952 -30.2018);--color-cyan-600:lab(55.1767% -26.7496 -30.5139);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-sky-600:lab(51.7754% -11.4712 -49.8349);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-indigo-500:lab(48.295% 38.3129 -81.9673);--color-indigo-600:lab(38.4009% 52.6132 -92.3857);--color-violet-100:lab(93.0838% 4.35197 -9.88284);--color-violet-500:lab(49.9355% 55.1776 -81.8963);--color-violet-600:lab(41.088% 68.9966 -91.995);--color-violet-700:lab(35.2783% 67.9912 -88.793);--color-purple-100:lab(93.3333% 6.97437 -9.83434);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-purple-600:lab(43.0295% 75.21 -86.5669);--color-fuchsia-500:lab(56.4256% 83.132 -64.639);--color-fuchsia-600:lab(47.5131% 83.4271 -63.0363);--color-rose-500:lab(56.101% 79.4328 31.4532);--color-rose-600:lab(49.1882% 81.577 36.0311);--color-gray-50:lab(98.2596% -.247031 -.706708);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-900:lab(8.11897% .811279 -12.254);--color-stone-500:lab(48.1164% 2.35701 4.26852);--color-stone-600:lab(35.5168% 1.08604 4.07829)}}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::-webkit-file-upload-button{margin-inline-end:4px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{-webkit-appearance:button;appearance:button}input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;bottom:0;left:0;right:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-0\\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.top-\\[7px\\]{top:7px}.top-\\[9px\\]{top:9px}.top-\\[calc\\(100\\%-2px\\)\\]{top:calc(100% - 2px)}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.-right-1\\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-0{bottom:0}.bottom-0\\.5{bottom:calc(var(--spacing) * .5)}.bottom-1{bottom:var(--spacing)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-1{left:calc(var(--spacing) * -1)}.-left-1\\.5{left:calc(var(--spacing) * -1.5)}.-left-px{left:-1px}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\\[1\\]{z-index:1}.z-\\[1000\\]{z-index:1000}.z-\\[1001\\]{z-index:1001}.z-\\[1100\\]{z-index:1100}.z-\\[1200\\]{z-index:1200}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-1{margin:calc(var(--spacing) * -1)}.m-4{margin:calc(var(--spacing) * 4)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline-start:auto;margin-inline-end:auto}.my-1{margin-block:var(--spacing)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0\\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-0\\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-1\\/2{height:50%}.h-2{height:calc(var(--spacing) * 2)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-24{height:calc(var(--spacing) * 24)}.h-\\[300px\\]{height:300px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\\[60vh\\]{max-height:60vh}.max-h-\\[80vh\\]{max-height:80vh}.max-h-\\[85vh\\]{max-height:85vh}.max-h-\\[160px\\]{max-height:160px}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[240px\\]{max-height:240px}.min-h-0{min-height:0}.min-h-\\[120px\\]{min-height:120px}.w-0\\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-24{width:calc(var(--spacing) * 24)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\\[1\\%\\]{width:1%}.w-\\[80px\\]{width:80px}.w-\\[200px\\]{width:200px}.w-\\[480px\\]{width:480px}.w-\\[min\\(560px\\,92vw\\)\\]{width:min(560px,92vw)}.w-\\[min\\(700px\\,92vw\\)\\]{width:min(700px,92vw)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[10rem\\]{max-width:10rem}.max-w-\\[14rem\\]{max-width:14rem}.max-w-\\[16rem\\]{max-width:16rem}.max-w-\\[90vw\\]{max-width:90vw}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[420px\\]{max-width:420px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\\[8px\\]{min-width:8px}.min-w-\\[16px\\]{min-width:16px}.min-w-\\[180px\\]{min-width:180px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\\[80px_1fr\\]{grid-template-columns:80px 1fr}.grid-cols-\\[100px_1fr\\]{grid-template-columns:100px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-px{gap:1px}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:0;margin-block-end:0}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)){border-color:var(--color-line)}:where(.divide-line-subtle>:not(:last-child)){border-color:var(--color-line-subtle)}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent,.border-accent\\/30{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\\/30{border-color:color-mix(in oklab, var(--color-accent) 30%, transparent)}}.border-accent\\/40{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\\/40{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.border-amber-500\\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-amber-500\\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-blue-500\\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/30{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.border-cyan-500\\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\\/30{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.border-danger-border{border-color:var(--color-danger-border)}.border-danger\\/30{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\\/30{border-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.border-emerald-500\\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-fuchsia-500\\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\\/30{border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.border-green-500\\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-indigo-500\\/30{border-color:#625fff4d}@supports (color:color-mix(in lab, red, red)){.border-indigo-500\\/30{border-color:color-mix(in oklab, var(--color-indigo-500) 30%, transparent)}}.border-line{border-color:var(--color-line)}.border-line-subtle{border-color:var(--color-line-subtle)}.border-line\\/50{border-color:var(--color-line)}@supports (color:color-mix(in lab, red, red)){.border-line\\/50{border-color:color-mix(in oklab, var(--color-line) 50%, transparent)}}.border-line\\/60{border-color:var(--color-line)}@supports (color:color-mix(in lab, red, red)){.border-line\\/60{border-color:color-mix(in oklab, var(--color-line) 60%, transparent)}}.border-orange-500\\/30{border-color:#fe6e004d}@supports (color:color-mix(in lab, red, red)){.border-orange-500\\/30{border-color:color-mix(in oklab, var(--color-orange-500) 30%, transparent)}}.border-purple-500\\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-red-500\\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-stone-500\\/30{border-color:#79716b4d}@supports (color:color-mix(in lab, red, red)){.border-stone-500\\/30{border-color:color-mix(in oklab, var(--color-stone-500) 30%, transparent)}}.border-success-border{border-color:var(--color-success-border)}.border-violet-500\\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab, red, red)){.border-violet-500\\/30{border-color:color-mix(in oklab, var(--color-violet-500) 30%, transparent)}}.border-warning-border{border-color:var(--color-warning-border)}.border-white{border-color:var(--color-white)}.border-l-warning{border-left-color:var(--color-warning)}.\\!bg-accent{background-color:var(--color-accent)!important}.bg-accent,.bg-accent\\/5{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/5{background-color:color-mix(in oklab, var(--color-accent) 5%, transparent)}}.bg-accent\\/10{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/10{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.bg-accent\\/12{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/12{background-color:color-mix(in oklab, var(--color-accent) 12%, transparent)}}.bg-accent\\/15{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/15{background-color:color-mix(in oklab, var(--color-accent) 15%, transparent)}}.bg-accent\\/70{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/70{background-color:color-mix(in oklab, var(--color-accent) 70%, transparent)}}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-black\\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\\/55{background-color:color-mix(in oklab, var(--color-black) 55%, transparent)}}.bg-black\\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-blue-500\\/15{background-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/15{background-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.bg-code{background-color:var(--color-code)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-500\\/15{background-color:#00b7d726}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\\/15{background-color:color-mix(in oklab, var(--color-cyan-500) 15%, transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-danger-bg,.bg-danger-bg\\/40{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.bg-danger-bg\\/40{background-color:color-mix(in oklab, var(--color-danger-bg) 40%, transparent)}}.bg-danger\\/5{background-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.bg-danger\\/5{background-color:color-mix(in oklab, var(--color-danger) 5%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-fg-subtle{background-color:var(--color-fg-subtle)}.bg-fuchsia-500\\/15{background-color:#e12afb26}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-500\\/15{background-color:color-mix(in oklab, var(--color-fuchsia-500) 15%, transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/15{background-color:#00c75826}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/15{background-color:color-mix(in oklab, var(--color-green-500) 15%, transparent)}}.bg-hover{background-color:var(--color-hover)}.bg-indigo-500\\/15{background-color:#625fff26}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\\/15{background-color:color-mix(in oklab, var(--color-indigo-500) 15%, transparent)}}.bg-line{background-color:var(--color-line)}.bg-line-subtle{background-color:var(--color-line-subtle)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\\/15{background-color:#fe6e0026}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\\/15{background-color:color-mix(in oklab, var(--color-orange-500) 15%, transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\\/15{background-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/15{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-selected{background-color:var(--color-selected)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-stone-500\\/15{background-color:#79716b26}@supports (color:color-mix(in lab, red, red)){.bg-stone-500\\/15{background-color:color-mix(in oklab, var(--color-stone-500) 15%, transparent)}}.bg-subtle,.bg-subtle\\/40{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/40{background-color:color-mix(in oklab, var(--color-subtle) 40%, transparent)}}.bg-subtle\\/50{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/50{background-color:color-mix(in oklab, var(--color-subtle) 50%, transparent)}}.bg-subtle\\/60{background-color:var(--color-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-subtle\\/60{background-color:color-mix(in oklab, var(--color-subtle) 60%, transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-surface{background-color:var(--color-surface)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-transparent{background-color:#0000}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\\/10{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.bg-violet-500\\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\\/15{background-color:color-mix(in oklab, var(--color-violet-500) 15%, transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.bg-warning\\/5{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\\/5{background-color:color-mix(in oklab, var(--color-warning) 5%, transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.fill-\\[var\\(--color-fg-subtle\\)\\]{fill:var(--color-fg-subtle)}.fill-amber-500\\/15{fill:#f99c0026}@supports (color:color-mix(in lab, red, red)){.fill-amber-500\\/15{fill:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.fill-amber-600{fill:var(--color-amber-600)}.fill-blue-500\\/15{fill:#3080ff26}@supports (color:color-mix(in lab, red, red)){.fill-blue-500\\/15{fill:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.fill-blue-600{fill:var(--color-blue-600)}.fill-danger{fill:var(--color-danger)}.fill-emerald-500\\/15{fill:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.fill-emerald-500\\/15{fill:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.fill-emerald-600{fill:var(--color-emerald-600)}.fill-fg-muted{fill:var(--color-fg-muted)}.fill-fg-subtle{fill:var(--color-fg-subtle)}.fill-red-500{fill:var(--color-red-500)}.fill-rose-500\\/15{fill:#ff235726}@supports (color:color-mix(in lab, red, red)){.fill-rose-500\\/15{fill:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.fill-rose-600{fill:var(--color-rose-600)}.fill-sky-500\\/15{fill:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.fill-sky-500\\/15{fill:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.fill-sky-600{fill:var(--color-sky-600)}.fill-teal-500\\/15{fill:#00baa726}@supports (color:color-mix(in lab, red, red)){.fill-teal-500\\/15{fill:color-mix(in oklab, var(--color-teal-500) 15%, transparent)}}.fill-teal-600{fill:var(--color-teal-600)}.fill-violet-500\\/15{fill:#8d54ff26}@supports (color:color-mix(in lab, red, red)){.fill-violet-500\\/15{fill:color-mix(in oklab, var(--color-violet-500) 15%, transparent)}}.fill-violet-600{fill:var(--color-violet-600)}.fill-warning{fill:var(--color-warning)}.fill-white{fill:var(--color-white)}.stroke-accent{stroke:var(--color-accent)}.stroke-amber-500\\/60{stroke:#f99c0099}@supports (color:color-mix(in lab, red, red)){.stroke-amber-500\\/60{stroke:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.stroke-blue-500\\/60{stroke:#3080ff99}@supports (color:color-mix(in lab, red, red)){.stroke-blue-500\\/60{stroke:color-mix(in oklab, var(--color-blue-500) 60%, transparent)}}.stroke-emerald-500\\/60{stroke:#00bb7f99}@supports (color:color-mix(in lab, red, red)){.stroke-emerald-500\\/60{stroke:color-mix(in oklab, var(--color-emerald-500) 60%, transparent)}}.stroke-fg-subtle{stroke:var(--color-fg-subtle)}.stroke-red-500{stroke:var(--color-red-500)}.stroke-rose-500\\/60{stroke:#ff235799}@supports (color:color-mix(in lab, red, red)){.stroke-rose-500\\/60{stroke:color-mix(in oklab, var(--color-rose-500) 60%, transparent)}}.stroke-sky-500\\/60{stroke:#00a5ef99}@supports (color:color-mix(in lab, red, red)){.stroke-sky-500\\/60{stroke:color-mix(in oklab, var(--color-sky-500) 60%, transparent)}}.stroke-teal-500\\/60{stroke:#00baa799}@supports (color:color-mix(in lab, red, red)){.stroke-teal-500\\/60{stroke:color-mix(in oklab, var(--color-teal-500) 60%, transparent)}}.stroke-violet-500\\/60{stroke:#8d54ff99}@supports (color:color-mix(in lab, red, red)){.stroke-violet-500\\/60{stroke:color-mix(in oklab, var(--color-violet-500) 60%, transparent)}}.stroke-\\[2\\.5px\\]{stroke-width:2.5px}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block-start:1px;padding-block-end:1px}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-0\\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent,.text-accent\\/80{color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.text-accent\\/80{color:color-mix(in oklab, var(--color-accent) 80%, transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-cyan-500{color:var(--color-cyan-500)}.text-cyan-600{color:var(--color-cyan-600)}.text-danger{color:var(--color-danger)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-fg{color:var(--color-fg)}.text-fg-muted,.text-fg-muted\\/70{color:var(--color-fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\\/70{color:color-mix(in oklab, var(--color-fg-muted) 70%, transparent)}}.text-fg-muted\\/80{color:var(--color-fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\\/80{color:color-mix(in oklab, var(--color-fg-muted) 80%, transparent)}}.text-fg-subtle,.text-fg-subtle\\/60{color:var(--color-fg-subtle)}@supports (color:color-mix(in lab, red, red)){.text-fg-subtle\\/60{color:color-mix(in oklab, var(--color-fg-subtle) 60%, transparent)}}.text-fuchsia-500{color:var(--color-fuchsia-500)}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-gray-50{color:var(--color-gray-50)}.text-gray-100{color:var(--color-gray-100)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-600{color:var(--color-indigo-600)}.text-line{color:var(--color-line)}.text-line-subtle{color:var(--color-line-subtle)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-sky-500{color:var(--color-sky-500)}.text-sky-600{color:var(--color-sky-600)}.text-stone-600{color:var(--color-stone-600)}.text-success{color:var(--color-success)}.text-surface{color:var(--color-surface)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-600\\/70{color:#7f22feb3}@supports (color:color-mix(in lab, red, red)){.text-violet-600\\/70{color:color-mix(in oklab, var(--color-violet-600) 70%, transparent)}}.text-violet-700{color:var(--color-violet-700)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[0_1px_0_\\#d4d4d8\\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#d4d4d8);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent,.ring-accent\\/20{--tw-ring-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ring-accent\\/20{--tw-ring-color:color-mix(in oklab, var(--color-accent) 20%, transparent)}}.ring-danger{--tw-ring-color:var(--color-danger)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\\[2px\\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.row-virtual{content-visibility:auto;contain-intrinsic-size:auto 32px}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\\:bg-accent:is(:where(.group):hover *){background-color:var(--color-accent)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\\/stat\\:underline:is(:where(.group\\/stat):hover *){text-decoration-line:underline}}.group-focus-visible\\:bg-accent:is(:where(.group):focus-visible *){background-color:var(--color-accent)}.last\\:mr-0:last-child{margin-right:0}.last\\:mb-0:last-child{margin-bottom:0}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:border-danger-border:hover{border-color:var(--color-danger-border)}.hover\\:bg-accent:hover,.hover\\:bg-accent\\/5:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/5:hover{background-color:color-mix(in oklab, var(--color-accent) 5%, transparent)}}.hover\\:bg-accent\\/10:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/10:hover{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.hover\\:bg-accent\\/15:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/15:hover{background-color:color-mix(in oklab, var(--color-accent) 15%, transparent)}}.hover\\:bg-accent\\/20:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/20:hover{background-color:color-mix(in oklab, var(--color-accent) 20%, transparent)}}.hover\\:bg-accent\\/90:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/90:hover{background-color:color-mix(in oklab, var(--color-accent) 90%, transparent)}}.hover\\:bg-blue-400:hover{background-color:var(--color-blue-400)}.hover\\:bg-danger-bg:hover,.hover\\:bg-danger-bg\\/60:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/60:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 60%, transparent)}}.hover\\:bg-danger-bg\\/70:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/70:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 70%, transparent)}}.hover\\:bg-danger-bg\\/80:hover{background-color:var(--color-danger-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger-bg\\/80:hover{background-color:color-mix(in oklab, var(--color-danger-bg) 80%, transparent)}}.hover\\:bg-emerald-500\\/25:hover{background-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-emerald-500\\/25:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.hover\\:bg-gray-400:hover{background-color:var(--color-gray-400)}.hover\\:bg-green-400:hover{background-color:var(--color-green-400)}.hover\\:bg-hover:hover,.hover\\:bg-hover\\/50:hover{background-color:var(--color-hover)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-hover\\/50:hover{background-color:color-mix(in oklab, var(--color-hover) 50%, transparent)}}.hover\\:bg-orange-400:hover{background-color:var(--color-orange-400)}.hover\\:bg-purple-400:hover{background-color:var(--color-purple-400)}.hover\\:bg-red-400:hover{background-color:var(--color-red-400)}.hover\\:bg-red-500\\/25:hover{background-color:#fb2c3640}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/25:hover{background-color:color-mix(in oklab, var(--color-red-500) 25%, transparent)}}.hover\\:bg-subtle:hover{background-color:var(--color-subtle)}.hover\\:bg-violet-500\\/25:hover{background-color:#8d54ff40}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-violet-500\\/25:hover{background-color:color-mix(in oklab, var(--color-violet-500) 25%, transparent)}}.hover\\:bg-warning-bg:hover,.hover\\:bg-warning-bg\\/80:hover{background-color:var(--color-warning-bg)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-warning-bg\\/80:hover{background-color:color-mix(in oklab, var(--color-warning-bg) 80%, transparent)}}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-fg:hover{color:var(--color-fg)}.hover\\:text-fg-muted:hover{color:var(--color-fg-muted)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-90:hover{opacity:.9}.hover\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.focus\\:border-line:focus{border-color:var(--color-line)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-accent:focus{--tw-ring-color:var(--color-accent)}.focus\\:ring-danger:focus{--tw-ring-color:var(--color-danger)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:bg-hover:focus-visible{background-color:var(--color-hover)}.focus-visible\\:opacity-100:focus-visible{opacity:1}.focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-accent:focus-visible{--tw-ring-color:var(--color-accent)}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-accent:focus-visible{outline-color:var(--color-accent)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\\:hover\\:bg-transparent:disabled:hover{background-color:#0000}}@media (min-width:40rem){.sm\\:inline{display:inline}.sm\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:48rem){.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width>=28rem){.\\@md\\:block{display:block}.\\@md\\:flex{display:flex}.\\@md\\:hidden{display:none}.\\@md\\:w-72{width:calc(var(--spacing) * 72)}.\\@md\\:shrink-0{flex-shrink:0}.\\@md\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}}}*{box-sizing:border-box}:host,:root{--at-surface:#fcfdfe;--at-surface-hover:#f5f6f9;--at-muted:#f2f5f8;--at-code:#f3f6fa;--at-text-primary:#1a1f29;--at-text-secondary:#515864;--at-text-muted:#868d97;--at-border:#dfe1e5;--at-border-light:#eef0f3;--at-shadow:#171f2e1a;--at-accent:#3177dc;--at-error-bg:#ffecea;--at-error-text:#cc2827;--at-error-border:#f8a49d;--at-ok-bg:#e0fae4;--at-ok-text:#0e8c41;--at-ok-border:#89da9b;--at-warn-bg:#fff0d1;--at-warn-text:#a16500;--at-warn-border:#e5c379;--at-highlight-bg:#fff6d1;--at-selected-bg:#e9f3ff;--at-scrollbar-thumb:#ced1d6;--at-scrollbar-thumb-hover:#999fa8}@supports (color:color(display-p3 0 0 0)){:host,:root{--at-surface:color(display-p3 .989609 .992382 .997175);--at-surface-hover:color(display-p3 .960878 .966392 .975929);--at-muted:color(display-p3 .951795 .958673 .970576);--at-code:color(display-p3 .955784 .964045 .978342);--at-text-primary:color(display-p3 .106201 .12247 .157281);--at-text-secondary:color(display-p3 .323937 .346032 .388256);--at-text-muted:color(display-p3 .528711 .550898 .589512);--at-border:color(display-p3 .875378 .883503 .897566);--at-border-light:color(display-p3 .934839 .941694 .953557);--at-shadow:color(display-p3 .0979137 .121845 .174352/.1);--at-accent:color(display-p3 .266557 .461859 .837181);--at-error-bg:color(display-p3 1.00853 .923821 .911661);--at-error-text:color(display-p3 .7372 .221951 .191652);--at-error-border:color(display-p3 .924106 .659231 .626897);--at-ok-bg:color(display-p3 .896905 .977035 .900254);--at-ok-text:color(display-p3 .247857 .539374 .286752);--at-ok-border:color(display-p3 .609805 .847347 .627399);--at-warn-bg:color(display-p3 .997819 .943515 .816698);--at-warn-text:color(display-p3 .607081 .403503 .0845266);--at-warn-border:color(display-p3 .876737 .768181 .515098);--at-highlight-bg:color(display-p3 .994932 .96424 .830533);--at-selected-bg:color(display-p3 .910207 .951093 1.02232);--at-scrollbar-thumb:color(display-p3 .80912 .819793 .838278);--at-scrollbar-thumb-hover:color(display-p3 .60332 .622263 .655172)}}@supports (color:lab(0% 0 0)){:host,:root{--at-surface:lab(99.2988% -.132054 -.745118);--at-surface-hover:lab(96.9735% -.261605 -1.48877);--at-muted:lab(96.2747% -.325292 -1.86008);--at-code:lab(96.736% -.388592 -2.23104);--at-text-primary:lab(11.741% -.349499 -7.30943);--at-text-secondary:lab(37.2801% -.862852 -7.73156);--at-text-muted:lab(58.1854% -1.04666 -6.62941);--at-border:lab(89.5439% -.387847 -2.23061);--at-border-light:lab(94.7667% -.325233 -1.86);--at-shadow:lab(11.6682% -.113927 -10.842/.1);--at-accent:lab(49.8997% 5.63273 -59.1615);--at-error-bg:lab(95.0829% 9.19622 4.96011);--at-error-text:lab(45.8049% 62.9533 44.1);--at-error-border:lab(75.8489% 31.0226 17.1029);--at-ok-bg:lab(95.8936% -11.84 7.56052);--at-ok-text:lab(50.824% -45.5785 30.3918);--at-ok-border:lab(80.6679% -35.8792 23.2774);--at-warn-bg:lab(95.5261% 2.02972 19.535);--at-warn-text:lab(48.6413% 21.7782 63.415);--at-warn-border:lab(80.5062% 5.88706 41.41);--at-highlight-bg:lab(96.7959% -.972748 19.4827);--at-selected-bg:lab(95.2674% -1.71572 -11.035);--at-scrollbar-thumb:lab(83.7382% -.510752 -2.97043);--at-scrollbar-thumb-hover:lab(65.1562% -.902712 -5.53997)}}:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:#151b25;--at-surface-hover:#1d2431;--at-muted:#191f2b;--at-code:#1b222d;--at-text-primary:#dfe5ed;--at-text-secondary:#9ca5b3;--at-text-muted:#727b88;--at-border:#2e3643;--at-border-light:#232934;--at-shadow:#00000073;--at-accent:#63a6ff;--at-error-bg:#742e2940;--at-error-text:#ff7f73;--at-error-border:#cf413a;--at-ok-bg:#39794933;--at-ok-text:#6ed889;--at-ok-border:#2e9e52;--at-warn-bg:#7e5d1d38;--at-warn-text:#f1bf5b;--at-warn-border:#b07b00;--at-highlight-bg:#b8a4571f;--at-selected-bg:#6087c22e;--at-scrollbar-thumb:#3d434d;--at-scrollbar-thumb-hover:#565e6c}@supports (color:color(display-p3 0 0 0)){:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:color(display-p3 .0866362 .104012 .141551);--at-surface-hover:color(display-p3 .119527 .140938 .187194);--at-muted:color(display-p3 .10291 .122282 .164135);--at-code:color(display-p3 .112011 .131618 .173879);--at-text-primary:color(display-p3 .880198 .897517 .925177);--at-text-secondary:color(display-p3 .618009 .647763 .695453);--at-text-muted:color(display-p3 .454817 .481202 .527256);--at-border:color(display-p3 .187231 .209329 .256415);--at-border-light:color(display-p3 .14159 .16023 .200008);--at-shadow:color(display-p3 0 0 0/.45);--at-accent:color(display-p3 .445537 .644287 .978823);--at-error-bg:color(display-p3 .422373 .197971 .171651/.25);--at-error-text:color(display-p3 .938127 .52257 .468553);--at-error-border:color(display-p3 .751519 .297873 .256966);--at-ok-bg:color(display-p3 .287508 .467968 .304198/.2);--at-ok-text:color(display-p3 .538207 .838899 .565385);--at-ok-border:color(display-p3 .319936 .612208 .354223);--at-warn-bg:color(display-p3 .474062 .369044 .161788/.22);--at-warn-text:color(display-p3 .915105 .755059 .421563);--at-warn-border:color(display-p3 .660566 .489104 .15495);--at-highlight-bg:color(display-p3 .708898 .646062 .385093/.12);--at-selected-bg:color(display-p3 .407909 .526271 .742584/.18);--at-scrollbar-thumb:color(display-p3 .241934 .260441 .299404);--at-scrollbar-thumb-hover:color(display-p3 .342885 .367416 .419047)}}@supports (color:lab(0% 0 0)){:host([data-theme=dark]),:root[data-theme=dark]{--at-surface:lab(9.40435% -.26536 -8.00193);--at-surface-hover:lab(14.0233% -.313595 -9.45683);--at-muted:lab(11.7138% -.289485 -8.72938);--at-code:lab(12.8756% -.320837 -8.73908);--at-text-primary:lab(90.6923% -.891328 -4.41389);--at-text-secondary:lab(67.4629% -1.51783 -8.03232);--at-text-muted:lab(51.2096% -1.21292 -8.07107);--at-border:lab(22.1597% -.497714 -9.15806);--at-border-light:lab(16.373% -.418156 -8.05204);--at-shadow:lab(0% 0 0/.45);--at-accent:lab(66.6499% -1.4444 -52.3046);--at-error-bg:lab(29.4384% 31.1218 19.7271/.25);--at-error-text:lab(68.3188% 49.5998 30.86);--at-error-border:lab(49.5145% 56.3761 37.3383);--at-ok-bg:lab(45.5916% -30.0637 19.6786/.2);--at-ok-text:lab(78.7102% -45.0683 29.4705);--at-ok-border:lab(57.7987% -45.4011 30.0617);--at-warn-bg:lab(42.0282% 9.23485 40.2236/.22);--at-warn-text:lab(80.4197% 11.1201 56.0991);--at-warn-border:lab(55.853% 15.6735 62.0226);--at-highlight-bg:lab(67.9375% .259876 42.1122/.12);--at-selected-bg:lab(55.3782% -1.45972 -35.4324/.18);--at-scrollbar-thumb:lab(27.992% -.544697 -7.38333);--at-scrollbar-thumb-hover:lab(39.5702% -.685155 -9.23098)}}@media (prefers-color-scheme:dark){:host([data-theme=system]),:root[data-theme=system]{--at-surface:#151b25;--at-surface-hover:#1d2431;--at-muted:#191f2b;--at-code:#1b222d;--at-text-primary:#dfe5ed;--at-text-secondary:#9ca5b3;--at-text-muted:#727b88;--at-border:#2e3643;--at-border-light:#232934;--at-shadow:#00000073;--at-accent:#63a6ff;--at-error-bg:#742e2940;--at-error-text:#ff7f73;--at-error-border:#cf413a;--at-ok-bg:#39794933;--at-ok-text:#6ed889;--at-ok-border:#2e9e52;--at-highlight-bg:#b8a4571f;--at-selected-bg:#6087c22e;--at-scrollbar-thumb:#3d434d;--at-scrollbar-thumb-hover:#565e6c}@supports (color:color(display-p3 0 0 0)){:host([data-theme=system]),:root[data-theme=system]{--at-surface:color(display-p3 .0866362 .104012 .141551);--at-surface-hover:color(display-p3 .119527 .140938 .187194);--at-muted:color(display-p3 .10291 .122282 .164135);--at-code:color(display-p3 .112011 .131618 .173879);--at-text-primary:color(display-p3 .880198 .897517 .925177);--at-text-secondary:color(display-p3 .618009 .647763 .695453);--at-text-muted:color(display-p3 .454817 .481202 .527256);--at-border:color(display-p3 .187231 .209329 .256415);--at-border-light:color(display-p3 .14159 .16023 .200008);--at-shadow:color(display-p3 0 0 0/.45);--at-accent:color(display-p3 .445537 .644287 .978823);--at-error-bg:color(display-p3 .422373 .197971 .171651/.25);--at-error-text:color(display-p3 .938127 .52257 .468553);--at-error-border:color(display-p3 .751519 .297873 .256966);--at-ok-bg:color(display-p3 .287508 .467968 .304198/.2);--at-ok-text:color(display-p3 .538207 .838899 .565385);--at-ok-border:color(display-p3 .319936 .612208 .354223);--at-highlight-bg:color(display-p3 .708898 .646062 .385093/.12);--at-selected-bg:color(display-p3 .407909 .526271 .742584/.18);--at-scrollbar-thumb:color(display-p3 .241934 .260441 .299404);--at-scrollbar-thumb-hover:color(display-p3 .342885 .367416 .419047)}}@supports (color:lab(0% 0 0)){:host([data-theme=system]),:root[data-theme=system]{--at-surface:lab(9.40435% -.26536 -8.00193);--at-surface-hover:lab(14.0233% -.313595 -9.45683);--at-muted:lab(11.7138% -.289485 -8.72938);--at-code:lab(12.8756% -.320837 -8.73908);--at-text-primary:lab(90.6923% -.891328 -4.41389);--at-text-secondary:lab(67.4629% -1.51783 -8.03232);--at-text-muted:lab(51.2096% -1.21292 -8.07107);--at-border:lab(22.1597% -.497714 -9.15806);--at-border-light:lab(16.373% -.418156 -8.05204);--at-shadow:lab(0% 0 0/.45);--at-accent:lab(66.6499% -1.4444 -52.3046);--at-error-bg:lab(29.4384% 31.1218 19.7271/.25);--at-error-text:lab(68.3188% 49.5998 30.86);--at-error-border:lab(49.5145% 56.3761 37.3383);--at-ok-bg:lab(45.5916% -30.0637 19.6786/.2);--at-ok-text:lab(78.7102% -45.0683 29.4705);--at-ok-border:lab(57.7987% -45.4011 30.0617);--at-highlight-bg:lab(67.9375% .259876 42.1122/.12);--at-selected-bg:lab(55.3782% -1.45972 -35.4324/.18);--at-scrollbar-thumb:lab(27.992% -.544697 -7.38333);--at-scrollbar-thumb-hover:lab(39.5702% -.685155 -9.23098)}}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--at-scrollbar-thumb,#d4d4d8);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--at-scrollbar-thumb-hover,#a1a1aa)}.waterfall-row:hover .waterfall-bar{filter:brightness(1.1)}.waterfall-bar{transition:all .15s ease-out}.trace-list-container{container-type:inline-size}.trace-grid{grid-template-columns:20px 104px minmax(0,1fr) 84px 52px 88px 60px 16px;align-items:center;gap:.75rem;display:grid}@container (width<=640px){.trace-grid{grid-template-columns:20px 92px minmax(0,1fr) 80px 58px 16px}.trace-col-spans,.trace-col-time{display:none}}@keyframes at-modal-in{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes at-fade-in{0%{opacity:0}to{opacity:1}}.at-modal-in{animation:.17s cubic-bezier(.22,1,.36,1) at-modal-in}.at-backdrop-in{animation:.17s ease-out at-fade-in}.at-wrap-anywhere{overflow-wrap:anywhere;word-break:normal}.at-no-scrollbar{scrollbar-width:none}.at-no-scrollbar::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){.at-modal-in,.at-backdrop-in{animation:none}}.at-edge-label{paint-order:stroke;stroke:var(--color-surface);stroke-width:3px;stroke-linejoin:round}:where(a,button,[role=button],input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--at-accent);outline-offset:2px}:where([data-focus-inset]):focus-visible{outline-offset:-2px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}`,$V=class extends HTMLElement{constructor(...e){super(...e),x(this,`cleanup`,null)}connectedCallback(){let e=this.attachShadow({mode:`open`}),t=document.createElement(`link`);t.rel=`stylesheet`,t.href=`https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap`,e.appendChild(t);let n=document.createElement(`style`);n.textContent=QV,e.appendChild(n);let r=this.getAttribute(`mode`)||`widget`,i=this.getAttribute(`ws-url`)||this.deriveWsUrl();this.cleanup=ZV(e,{mode:r,wsUrl:i})}disconnectedCallback(){this.cleanup?.(),this.cleanup=null}deriveWsUrl(){return`ws://${location.host}/ws`}};x($V,`observedAttributes`,[`mode`,`ws-url`]);function eH(){customElements.get(`autotel-devtools`)||customElements.define(`autotel-devtools`,$V)}var tH=document.currentScript;function nH(){let e=$u(location.hash);return Object.keys(e).length>0?e:void 0}function rH(){let e=nH();if(!tH?.src)return{mode:`widget`,wsUrl:`ws://${location.host}/ws`,deepLink:e};let t=new URL(tH.src),n=t.searchParams;return{mode:n.get(`mode`)||`widget`,wsUrl:n.get(`ws`)||`ws://${t.host}/ws`,deepLink:e}}function iH(){if(eH(),document.querySelector(`autotel-devtools`))return;let{mode:e,wsUrl:t,deepLink:n}=rH(),r=document.createElement(`div`);r.id=`autotel-devtools-root`,document.body.appendChild(r);let i=r.attachShadow({mode:`open`}),a=document.createElement(`style`);a.textContent=QV,i.appendChild(a),ZV(i,{mode:e,wsUrl:t,deepLink:n})}return document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,iH):iH(),e.mountWidget=ZV,e.registerElement=eH,e})({});
|