uilint-react 0.2.150 → 0.2.151
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/{SchemaPanel-RQBsmPjs.js → SchemaPanel-BgWsM1N-.js} +2 -2
- package/dist/{SchemaPanel-RQBsmPjs.js.map → SchemaPanel-BgWsM1N-.js.map} +1 -1
- package/dist/core/plugin-system/loader.d.ts.map +1 -1
- package/dist/devtools.js +1 -1
- package/dist/devtools.js.map +1 -1
- package/dist/{index-DvUhgZLk.js → index-BbRSb5XO.js} +4 -3
- package/dist/{index-DvUhgZLk.js.map → index-BbRSb5XO.js.map} +1 -1
- package/dist/index.js +1 -1
- package/package.json +10 -6
package/dist/devtools.js
CHANGED
|
@@ -253,7 +253,7 @@ You might need to use a local HTTP server (instead of file://): https://react.de
|
|
|
253
253
|
`);return{content:l.content,lines:c,totalLines:c.length,relativePath:l.filePath}}let Nr=null;function zk(a){const r=x7({manifestUrl:a});Nr={mode:"static",manifestUrl:a,fetcher:r,manifest:null},$e("[ESLint Plugin] Configured for static mode:",a)}function Tb(){return Nr!==null}function Ok(){Nr=null}function T7(a){if(!Nr)return yn("[ESLint Plugin] Static mode not configured"),()=>{};const{fetcher:r}=Nr;$e("[ESLint Plugin] Initializing in static mode..."),a.setState({scanStatus:"scanning"}),r.fetch().then(({manifest:c})=>{Nr.manifest=c,E7(a,c)}).catch(c=>{yn("[ESLint Plugin] Failed to fetch manifest:",c),a.setState({scanStatus:"error"})});const l=a.domObserver.onElementsAdded(c=>{Nr?.manifest&&$e("[ESLint Plugin] Static mode: DOM elements detected:",c.length)});return()=>{l(),$e("[ESLint Plugin] Static mode disposed")}}function A7(){if(!Nr?.manifest)return null;const{manifest:a}=Nr;return{generatedAt:a.generatedAt,commitSha:a.commitSha,branch:a.branch,summary:a.summary}}const HS=new Map;function C7({filePath:a,enabled:r=!0}){const[l,c]=U.useState(null),[d,p]=U.useState(!1),[g,v]=U.useState(null),b=Ce(C=>C.wsConnected),S=U.useRef(null),A=U.useCallback(()=>{if(!r||!a)return;const C=Mk(a);if(C){c(C),p(!1),v(null);return}if(!b&&Tb()){const B=BS(a);if(B){const H=Sb(a,B.content,B.totalLines,B.relativePath);c(H),p(!1),v(null)}else c(null),p(!1),v("Source not available in manifest");return}if(!b)return;const k=HS.get(a);if(k){p(!0),k.then(B=>{B&&(c(B),v(null)),p(!1)});return}p(!0),v(null);const M=`source-full-${a}-${Date.now()}`;S.current=M;const L=new Promise(B=>{const H=Ho.on("source:result",K=>{if(K.filePath===a){const q=Sb(K.filePath,K.content,K.totalLines,K.relativePath);H(),Q(),B(q)}}),Q=Ho.on("source:error",K=>{K.filePath===a&&(v(K.error),H(),Q(),B(null))});Ho.send({type:"source:fetch",filePath:a,requestId:M}),setTimeout(()=>{H(),Q(),B(null)},1e4)});HS.set(a,L),L.then(B=>{B&&c(B),p(!1)}).finally(()=>{HS.delete(a)})},[a,r,b]);return U.useEffect(()=>{A()},[A]),U.useEffect(()=>a?Ho.on("file:changed",k=>{(k.filePath===a||k.filePath.endsWith(a)||a.endsWith(k.filePath))&&(Dk(a),c(null),r&&A())}):void 0,[a,r,A]),{source:l,lines:l?.lines??[],totalLines:l?.totalLines??0,isLoading:d,error:g,refetch:A}}function k7(a){switch(a){case"error":return{border:"border-error/20",bg:"bg-error/[0.06]",dot:"bg-error/70"};case"warning":return{border:"border-warning/20",bg:"bg-warning/[0.06]",dot:"bg-warning/70"};case"info":return{border:"border-info/20",bg:"bg-info/[0.06]",dot:"bg-info/70"}}}function R7({issue:a,isSelected:r,onSelect:l,gutterWidth:c=40,className:d}){const p=U.useRef(null),g=k7(a.severity);return U.useLayoutEffect(()=>{r&&p.current?.scrollIntoView&&p.current.scrollIntoView({block:"nearest",behavior:"smooth"})},[r]),E.jsxs(Ne.div,{ref:p,onClick:l,layout:!0,layoutId:`issue-${a.id}`,initial:!1,animate:{opacity:1,y:0,scale:1},exit:{opacity:0,scale:.98},transition:{duration:.15,ease:[.32,.72,0,1],layout:{duration:.2}},className:be("flex items-start gap-2 cursor-pointer","mx-2 my-1","py-2 px-3","rounded-lg","border",g.border,g.bg,r&&"ring-1 ring-foreground/20","hover:brightness-[0.97]","transition-all duration-100",d),style:{marginLeft:c+8},children:[E.jsx("div",{className:be("flex-shrink-0 mt-1","w-1.5 h-1.5 rounded-full",g.dot)}),E.jsx("p",{className:be("flex-1 min-w-0","text-[11px] leading-relaxed","text-foreground/80","font-sans",r?"line-clamp-none":"line-clamp-2"),children:a.message})]})}function M7(a){switch(a){case"error":return"bg-error/60";case"warning":return"bg-warning/60";case"info":return"bg-info/60"}}function D7({issue:a,firstLine:r,isSelected:l,onSelect:c,gutterWidth:d=40,className:p}){const g=U.useRef(null);return U.useLayoutEffect(()=>{l&&g.current?.scrollIntoView&&g.current.scrollIntoView({block:"nearest",behavior:"smooth"})},[l]),E.jsxs(Ne.button,{ref:g,type:"button",onClick:c,layout:!0,layoutId:`issue-ref-${a.id}`,initial:!1,animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:.12,ease:[.32,.72,0,1],layout:{duration:.15}},className:be("flex items-center gap-1.5 cursor-pointer","mx-2 my-0.5","py-1 px-2","rounded","text-[10px] text-muted-foreground/50","hover:text-muted-foreground/70 hover:bg-foreground/[0.02]",l&&"text-muted-foreground/70 bg-foreground/[0.03]","transition-colors duration-100",p),style:{marginLeft:d+8},children:[E.jsx("div",{className:be("w-1 h-1 rounded-full flex-shrink-0",M7(a.severity))}),E.jsxs("span",{className:"font-mono",children:["↳ line ",r]})]})}function _7(a){switch(a){case"error":return"bg-error/80";case"warning":return"bg-warning/80";case"info":return"bg-info/80"}}function z7(a){switch(a){case"error":return"hover:bg-error/10";case"warning":return"hover:bg-warning/10";case"info":return"hover:bg-info/10"}}function O7(a){switch(a){case"error":return"border-error/30";case"warning":return"border-warning/30";case"info":return"border-info/30"}}function j7({issue:a,onSelect:r,gutterWidth:l=40,className:c}){const d=U.useRef(null),[p,g]=U.useState(!1);return U.useLayoutEffect(()=>{const v=d.current;if(!v)return;const b=()=>{v.scrollIntoView({block:"nearest",behavior:"smooth"})};return v.addEventListener("focus",b),()=>v.removeEventListener("focus",b)},[]),E.jsxs(Ne.button,{ref:d,type:"button",onClick:r,onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),layout:!0,layoutId:`issue-collapsed-${a.id}`,initial:!1,animate:{opacity:1,scale:1,x:0},exit:{opacity:0,scale:.8},transition:{duration:.15,ease:[.32,.72,0,1],layout:{duration:.2}},className:be("relative flex items-center gap-1.5","mx-2 my-0.5","py-1 px-2","rounded-full","border","bg-foreground/[0.02]",O7(a.severity),z7(a.severity),"cursor-pointer","transition-colors duration-100","focus:outline-none focus:ring-1 focus:ring-foreground/20",c),style:{marginLeft:l+8},"aria-label":`Issue on line ${a.line}: ${a.message}`,children:[E.jsx("div",{className:be("w-1.5 h-1.5 rounded-full flex-shrink-0",_7(a.severity))}),E.jsxs("span",{className:"text-[10px] font-mono text-muted-foreground/60 tabular-nums",children:["L",a.line]}),E.jsx(ga,{children:p&&E.jsxs(Ne.div,{initial:{opacity:0,y:4,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:4,scale:.95},transition:{duration:.15},className:be("absolute left-0 top-full mt-1 z-50","max-w-xs","py-1.5 px-2.5","rounded-lg","bg-popover","border border-foreground/10","shadow-lg shadow-black/10","pointer-events-none"),children:[E.jsx("p",{className:"text-[11px] text-foreground/80 leading-relaxed line-clamp-3",children:a.message}),E.jsx("p",{className:"text-[9px] text-muted-foreground/50 mt-1 font-mono",children:a.ruleId})]})})]})}function N7(a,r,l=2){if(a.length===0)return r>0?{regions:[],gaps:[{id:0,startLine:1,endLine:r,lineCount:r,position:"start"}]}:{regions:[],gaps:[]};const c=[...a].sort((b,S)=>b.line-S.line),d=[];for(const b of c){const S=Math.max(1,b.line-l),A=Math.min(r,b.line+l),C=d[d.length-1];C&&S<=C.end+1?(C.end=Math.max(C.end,A),C.issues.push(b)):d.push({start:S,end:A,issues:[b]})}const p=d.map(b=>({startLine:b.start,endLine:b.end,issues:b.issues})),g=[];let v=0;p.length>0&&p[0].startLine>1&&g.push({id:v++,startLine:1,endLine:p[0].startLine-1,lineCount:p[0].startLine-1,position:"start"});for(let b=0;b<p.length-1;b++){const S=p[b].endLine,A=p[b+1].startLine;A>S+1&&g.push({id:v++,startLine:S+1,endLine:A-1,lineCount:A-S-1,position:"middle"})}if(p.length>0){const b=p[p.length-1];b.endLine<r&&g.push({id:v++,startLine:b.endLine+1,endLine:r,lineCount:r-b.endLine,position:"end"})}return{regions:p,gaps:g}}function L7(a,r){const l=a.gaps.findIndex(g=>g.id===r);if(l===-1)return a;const c=a.gaps[l],d=[...a.regions],p=a.gaps.filter(g=>g.id!==r);if(c.position==="start")d.length>0?d[0]={...d[0],startLine:c.startLine}:d.push({startLine:c.startLine,endLine:c.endLine,issues:[]});else if(c.position==="end")if(d.length>0){const g=d.length-1;d[g]={...d[g],endLine:c.endLine}}else d.push({startLine:c.startLine,endLine:c.endLine,issues:[]});else{const g=d.findIndex(b=>b.endLine===c.startLine-1),v=d.findIndex(b=>b.startLine===c.endLine+1);if(g!==-1&&v!==-1){const b={startLine:d[g].startLine,endLine:d[v].endLine,issues:[...d[g].issues,...d[v].issues]};v>g?(d.splice(v,1),d.splice(g,1,b)):(d.splice(g,1),d.splice(v,1,b))}}return{regions:d,gaps:p}}function U7(a,r){return a.filter(l=>l.line===r)}function B7(a){if(a.length===0)return null;const r={error:0,warning:1,info:2};return[...a].sort((c,d)=>r[c.severity]-r[d.severity])[0].severity}function H7(a,r){if(!r)return"";switch(a){case"error":return"bg-error/[0.04]";case"warning":return"bg-warning/[0.04]";case"info":return"bg-info/[0.04]";default:return""}}function V7(a,r){if(!r)return"border-l border-l-transparent";switch(a){case"error":return"border-l border-l-error/50";case"warning":return"border-l border-l-warning/50";case"info":return"border-l border-l-info/50";default:return"border-l border-l-transparent"}}function q7({lines:a,startLine:r,issues:l,selectedIssueId:c,onIssueSelect:d,gutterWidth:p=40,firstOccurrenceMap:g,className:v}){return E.jsx("div",{className:be("font-mono text-xs leading-relaxed","overflow-x-auto",v),children:a.map((b,S)=>{const A=r+S,C=U7(l,A),k=C.length>0,M=B7(C);return E.jsxs("div",{className:"group",children:[E.jsxs("div",{className:be("flex",H7(M,k),V7(M,k)),children:[E.jsx("span",{className:be("flex-shrink-0 select-none text-right pr-3 py-0.5","text-muted-foreground/40","bg-foreground/[0.02]","border-r border-foreground/[0.06]",k&&"text-muted-foreground/60"),style:{width:p},children:A}),E.jsx("code",{className:be("flex-1 pl-3 pr-4 py-0.5","text-foreground/80","whitespace-pre",k&&"text-foreground/90"),children:b||" "})]}),E.jsx(ga,{mode:"sync",children:C.map(L=>{const B=c===L.id;if(c!==null&&!B)return E.jsx(j7,{issue:L,onSelect:()=>d(L.id),gutterWidth:p},L.id);const Q=g?.get(L.message);return!Q||Q===A?E.jsx(R7,{issue:L,isSelected:B,onSelect:()=>d(L.id),gutterWidth:p},L.id):E.jsx(D7,{issue:L,firstLine:Q,isSelected:B,onSelect:()=>d(L.id),gutterWidth:p},L.id)})})]},A)})})}function Y7({startLine:a,endLine:r,lineCount:l,onExpand:c,gutterWidth:d=40,className:p}){return E.jsxs(Ne.button,{type:"button",onClick:c,initial:!1,animate:{opacity:1},exit:{opacity:0},whileHover:{backgroundColor:"rgba(var(--foreground-rgb), 0.04)"},className:be("w-full flex items-center","text-xs text-muted-foreground/60 hover:text-muted-foreground/80","bg-foreground/[0.01]","border-y border-dashed border-foreground/[0.06]","cursor-pointer","transition-colors duration-100","group",p),children:[E.jsx("span",{className:"flex-shrink-0 py-1.5 bg-foreground/[0.02] border-r border-foreground/[0.06]",style:{width:d}}),E.jsxs("span",{className:"flex items-center gap-2 px-3 py-1.5",children:[E.jsx(Mg,{size:12,className:"text-muted-foreground/40 group-hover:text-muted-foreground/60 transition-colors"}),E.jsxs("span",{children:["Show ",l," hidden ",l===1?"line":"lines"]}),E.jsxs("span",{className:"text-muted-foreground/40",children:["(",a,"–",r,")"]})]})]})}const G7=2,X7=32,$7=8,Q7=16;function VS({filePath:a,issues:r,contextLines:l=G7,selectedIssueId:c,onIssueSelect:d,enabled:p=!0,className:g}){const{lines:v,totalLines:b,isLoading:S,error:A}=C7({filePath:a,enabled:p}),[C,k]=U.useState(new Set),M=U.useMemo(()=>b===0?{regions:[],gaps:[]}:N7(r,b,l),[r,b,l]),L=U.useMemo(()=>{let J=M;for(const $ of C)J=L7(J,$);return J},[M,C,b]),B=U.useCallback(J=>{k($=>new Set([...$,J]))},[]),H=U.useMemo(()=>{const J=Math.max(3,String(b).length);return Math.max(X7,J*$7+Q7)},[b]),Q=U.useMemo(()=>{const J=new Map,$=[...r].sort((ge,we)=>ge.line-we.line);for(const ge of $)J.has(ge.message)||J.set(ge.message,ge.line);return J},[r]),K=U.useCallback((J,$)=>v.slice(J-1,$),[v]);if(S)return E.jsx("div",{className:be("py-6 text-center",g),children:E.jsx("div",{className:"text-xs text-muted-foreground/60",children:"Loading source..."})});if(A)return E.jsx("div",{className:be("py-6 text-center",g),children:E.jsxs("div",{className:"text-xs text-muted-foreground/60",children:["Could not load source: ",A]})});if(b===0)return E.jsx("div",{className:be("py-6 text-center",g),children:E.jsx("div",{className:"text-xs text-muted-foreground/60",children:"Source not available"})});const q=[];let ae=0,he=0;const Ae=[...L.gaps].sort((J,$)=>J.startLine-$.startLine);for(;ae<Ae.length||he<L.regions.length;){const J=Ae[ae],$=L.regions[he];if(J&&(!$||J.startLine<$.startLine)&&J)q.push(E.jsx(Y7,{startLine:J.startLine,endLine:J.endLine,lineCount:J.lineCount,onExpand:()=>B(J.id),gutterWidth:H},`gap-${J.id}`)),ae++;else if($){const we=K($.startLine,$.endLine);q.push(E.jsx(q7,{lines:we,startLine:$.startLine,issues:$.issues,selectedIssueId:c,onIssueSelect:d,gutterWidth:H,firstOccurrenceMap:Q},`region-${$.startLine}-${$.endLine}`)),he++}}return E.jsx("div",{className:be("border-t border-foreground/[0.06]","bg-background/50",g),children:E.jsx(ga,{mode:"sync",children:q})})}function I7({severity:a}){switch(a){case"error":return E.jsx(Dg,{size:14,className:"text-error flex-shrink-0"});case"warning":return E.jsx(_u,{size:14,className:"text-warning flex-shrink-0"});case"info":return E.jsx(us,{size:14,className:"text-info flex-shrink-0"})}}function Z7({issue:a,isSelected:r,onClick:l,index:c}){return E.jsxs(Ne.button,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.1,delay:Math.min(c*.02,.2)},onClick:l,className:be("w-full text-left","flex items-center gap-2 px-3 py-2","border-b border-foreground/[0.03]","transition-colors duration-100","hover:bg-foreground/[0.03]","group",r&&"bg-foreground/[0.05]"),children:[E.jsx(I7,{severity:a.severity}),E.jsx("span",{className:"flex-shrink-0 text-[11px] font-mono text-muted-foreground/60 tabular-nums w-8",children:a.line}),E.jsx("span",{className:"flex-1 min-w-0 text-xs text-foreground/70 truncate",children:a.message}),E.jsx(_h,{size:12,className:"flex-shrink-0 text-muted-foreground/30 opacity-0 group-hover:opacity-100 transition-opacity"})]})}function F7({issues:a,selectedIssueId:r,onIssueClick:l,onShowFullSource:c,className:d}){const p=nn.useMemo(()=>[...a].sort((v,b)=>v.line-b.line),[a]),g=U.useCallback(v=>{l(v)},[l]);return E.jsxs(Ne.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.1},className:be("flex flex-col",d),children:[E.jsx("div",{className:"flex-1",children:p.map((v,b)=>E.jsx(Z7,{issue:v,isSelected:r===v.id,onClick:()=>g(v),index:b},v.id))}),E.jsxs("button",{onClick:c,className:be("flex items-center justify-center gap-1.5","px-3 py-2 mt-1","text-xs text-muted-foreground/60 hover:text-foreground/80","hover:bg-foreground/[0.03]","transition-colors duration-100","border-t border-foreground/[0.03]"),children:[E.jsx(N6,{size:12}),E.jsx("span",{children:"View source"})]})]})}const P7={common:{bg:"bg-transparent",border:"border-l-transparent",gutter:"text-text-disabled",code:"text-text-secondary"},removed:{bg:"bg-warning-bg",border:"border-l-warning",gutter:"text-text-primary",code:"text-text-primary"},added:{bg:"bg-warning-bg",border:"border-l-warning",gutter:"text-text-primary",code:"text-text-primary"},modified:{bg:"bg-info-bg",border:"border-l-info",gutter:"text-text-primary",code:"text-text-primary"}};function jk({lines:a,label:r,maxHeight:l=250,className:c}){const d=a.length>0?Math.max(...a.map(g=>g.lineNumber)):0,p=Math.max(3,String(d).length)*8+16;return E.jsxs("div",{className:be("bg-background rounded-lg overflow-hidden border border-border",c),children:[E.jsx("div",{className:"flex items-center gap-2 py-1.5 px-3 bg-surface-elevated border-b border-border",children:E.jsx("span",{className:"text-xs font-medium text-text-primary",children:r})}),E.jsx("div",{className:"overflow-auto text-xs font-mono leading-relaxed",style:{maxHeight:l},children:a.map((g,v)=>{const b=P7[g.type];return E.jsxs("div",{className:be("flex border-l-[3px]",b.bg,b.border),children:[E.jsx("span",{className:be("py-0 px-2 text-right bg-surface-elevated select-none shrink-0 border-r border-border",b.gutter),style:{width:p,minWidth:p},children:g.lineNumber}),E.jsx("code",{className:be("py-0 px-3 whitespace-pre flex-1",b.code),children:g.content||" "})]},v)})})]})}function K7(a,r){const l=a.length,c=r.length,d=Array.from({length:l+1},()=>new Array(c+1).fill(0));for(let p=1;p<=l;p++)for(let g=1;g<=c;g++)a[p-1].trim()===r[g-1].trim()?d[p][g]=d[p-1][g-1]+1:d[p][g]=Math.max(d[p-1][g],d[p][g-1]);return d}function J7(a,r,l,c,d){const p=[],g=[];let v=r.length,b=l.length;const S=[];for(;v>0&&b>0;)r[v-1].trim()===l[b-1].trim()?(S.push({type:"common",ai:v-1,bj:b-1}),v--,b--):a[v-1][b]>=a[v][b-1]?(S.push({type:"remove",ai:v-1,bj:-1}),v--):(S.push({type:"add",ai:-1,bj:b-1}),b--);for(;v>0;)S.push({type:"remove",ai:v-1,bj:-1}),v--;for(;b>0;)S.push({type:"add",ai:-1,bj:b-1}),b--;S.reverse();for(const A of S)A.type==="common"?(p.push({type:"common",content:r[A.ai],lineNumber:c+A.ai}),g.push({type:"common",content:l[A.bj],lineNumber:d+A.bj})):A.type==="remove"?p.push({type:"removed",content:r[A.ai],lineNumber:c+A.ai}):g.push({type:"added",content:l[A.bj],lineNumber:d+A.bj});return{sourceLines:p,targetLines:g}}function W7(a,r,l=1,c=1){const d=a===""?[]:a.split(`
|
|
254
254
|
`),p=r===""?[]:r.split(`
|
|
255
255
|
`),g=K7(d,p);return J7(g,d,p,l,c)}function Nk(a){if(typeof a!="string")return null;try{const r=JSON.parse(a);return{filePath:r.filePath??"",startLine:r.startLine??1,endLine:r.endLine??1}}catch{return null}}function Lk(a){const r=a.split("/");return r[r.length-1]||a}function e9(a){return a>=90?"error":a>=80?"warning":"info"}function t9({issue:a,onIgnore:r,isIgnored:l=!1,className:c}){const[d,p]=U.useState("stacked"),g=a.metadata??{},v=g.sourceCode||"",b=g.targetCode||"",S=g.sourceName||"(anonymous)",A=g.targetName||"(anonymous)",C=parseInt(g.similarity||"0",10),k=g.kind||"code",M=Nk(g.sourceLocation),L=Nk(g.targetLocation),B=U.useMemo(()=>W7(v,b,M?.startLine??1,L?.startLine??1),[v,b,M?.startLine,L?.startLine]);if(!v&&!b)return E.jsx("div",{className:"p-6 text-center text-muted-foreground text-xs",children:"No code comparison data available for this issue."});const H=d==="side-by-side";return E.jsxs(Ne.div,{initial:{opacity:0},animate:{opacity:l?.4:1},transition:{duration:.15},className:be("flex flex-col gap-3",c),children:[E.jsxs("div",{className:"flex items-center gap-2 px-1",children:[E.jsxs(vl,{variant:e9(C),size:"sm",disableAnimation:!0,children:[C,"% similar"]}),E.jsx("span",{className:"text-[11px] text-muted-foreground",children:k}),E.jsx("div",{className:"flex-1"}),E.jsxs("div",{className:"flex items-center gap-1",children:[E.jsx("button",{type:"button",onClick:()=>p("stacked"),className:be("p-1 rounded transition-colors",H?"text-muted-foreground hover:text-foreground":"bg-foreground/[0.08] text-foreground"),title:"Stacked view",children:E.jsx(J6,{size:14})}),E.jsx("button",{type:"button",onClick:()=>p("side-by-side"),className:be("p-1 rounded transition-colors",H?"bg-foreground/[0.08] text-foreground":"text-muted-foreground hover:text-foreground"),title:"Side by side view",children:E.jsx(U6,{size:14})})]})]}),E.jsxs("div",{className:be(H?"grid grid-cols-2 gap-3":"flex flex-col gap-3"),children:[E.jsxs("div",{className:"flex flex-col gap-1.5",children:[E.jsxs("div",{className:"flex items-center gap-1.5 px-1",children:[E.jsx("span",{className:"text-xs font-medium text-text-primary truncate",children:S}),M&&E.jsxs("span",{className:"text-[11px] text-muted-foreground font-mono truncate",children:[Lk(M.filePath),":",M.startLine]})]}),E.jsx(jk,{lines:B.sourceLines,label:"This Code",maxHeight:H?300:220})]}),E.jsxs("div",{className:"flex flex-col gap-1.5",children:[E.jsxs("div",{className:"flex items-center gap-1.5 px-1",children:[E.jsx("span",{className:"text-xs font-medium text-text-primary truncate",children:A}),L&&E.jsxs("span",{className:"text-[11px] text-muted-foreground font-mono truncate",children:[Lk(L.filePath),":",L.startLine]})]}),E.jsx(jk,{lines:B.targetLines,label:"Similar Code",maxHeight:H?300:220})]})]}),E.jsxs("div",{className:"flex items-center gap-2 px-1",children:[M&&E.jsx(Uk,{icon:E.jsx(_g,{size:12}),label:`Open ${S}`,href:M.filePath}),L&&E.jsx(Uk,{icon:E.jsx(_g,{size:12}),label:`Open ${A}`,href:L.filePath}),E.jsx("div",{className:"flex-1"}),r&&E.jsxs("button",{type:"button",onClick:()=>r(a.id),className:be("inline-flex items-center gap-1.5 px-2 py-1 rounded","text-[11px] transition-colors",l?"text-foreground/80 bg-foreground/[0.06]":"text-muted-foreground hover:text-foreground hover:bg-foreground/[0.04]"),children:[l?E.jsx(pC,{size:12}):E.jsx(fC,{size:12}),l?"Restore":"Ignore"]})]})]})}function Uk({icon:a,label:r,href:l}){return E.jsxs("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground/60 truncate",title:l,children:[a,E.jsx("span",{className:"truncate",children:r})]})}function qS(a){return parseInt(a.metadata?.similarity||"0",10)}function n9(a){return a.metadata?.targetName||"(anonymous)"}function a9(a){return a.metadata?.sourceName||"(anonymous)"}function i9(a){try{const r=JSON.parse(a.metadata?.targetLocation||"{}"),l=r.filePath;if(!l)return null;const c=l.split("/");return`${c[c.length-1]}:${r.startLine}`}catch{return null}}function o9(a){return a>=90?"text-error":a>=80?"text-warning":"text-info"}function r9({issue:a,isExpanded:r,isIgnored:l,onClick:c,onIgnore:d,index:p}){const g=qS(a),v=a9(a),b=n9(a),S=i9(a);return E.jsxs(Ne.div,{initial:{opacity:0},animate:{opacity:l?.4:1},transition:{duration:.1,delay:Math.min(p*.03,.2)},className:be("border border-foreground/[0.06] rounded-lg overflow-hidden","transition-colors duration-100",r?"bg-foreground/[0.02] border-foreground/[0.1]":"hover:bg-foreground/[0.02]"),children:[E.jsxs("button",{type:"button",onClick:c,className:be("w-full text-left flex items-center gap-2 px-3 py-2.5","transition-colors duration-100","group"),children:[E.jsx(_h,{size:14,className:be("text-muted-foreground/40 transition-transform duration-150 shrink-0",r&&"rotate-90")}),E.jsxs("span",{className:be("text-xs font-semibold tabular-nums shrink-0",o9(g)),children:[g,"%"]}),E.jsxs("div",{className:"flex items-center gap-1.5 min-w-0 flex-1",children:[E.jsx("span",{className:"text-xs text-foreground/80 truncate",children:v}),E.jsx(G6,{size:10,className:"text-muted-foreground/40 shrink-0"}),E.jsx("span",{className:"text-xs text-foreground/80 truncate",children:b})]}),S&&E.jsx("span",{className:"text-[10px] text-muted-foreground/50 font-mono shrink-0 hidden sm:inline",children:S}),l&&E.jsx(fC,{size:12,className:"text-muted-foreground/40 shrink-0"})]}),E.jsx(ga,{children:r&&E.jsx(Ne.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"overflow-hidden",children:E.jsx("div",{className:"px-3 pb-3 pt-1 border-t border-foreground/[0.04]",children:E.jsx(t9,{issue:a,onIgnore:d,isIgnored:l})})})})]})}function l9({issues:a,selectedIssueId:r,onIssueClick:l,ignoredIssueIds:c,onIgnore:d,showIgnored:p=!1,className:g}){const[v,b]=U.useState(r),S=U.useMemo(()=>[...a].sort((M,L)=>qS(L)-qS(M)),[a]),A=U.useMemo(()=>!c||c.size===0||p?S:S.filter(M=>!c.has(M.id)),[S,c,p]),C=U.useMemo(()=>c?S.filter(M=>c.has(M.id)).length:0,[S,c]),k=U.useCallback(M=>{const L=v!==M.id;b(L?M.id:null),l(M)},[v,l]);return E.jsxs(Ne.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.1},className:be("flex flex-col gap-2 p-3",g),children:[E.jsxs("div",{className:"flex items-center gap-2 px-1",children:[E.jsxs("span",{className:"text-xs text-muted-foreground",children:[A.length," duplicate",A.length!==1?"s":""," found"]}),C>0&&E.jsxs(vl,{variant:"outline",size:"sm",disableAnimation:!0,children:[C," ignored"]})]}),A.map((M,L)=>E.jsx(r9,{issue:M,isExpanded:v===M.id,isIgnored:c?.has(M.id)??!1,onClick:()=>k(M),onIgnore:d,index:L},M.id)),A.length===0&&E.jsx("div",{className:"py-8 text-center text-xs text-muted-foreground/60",children:C>0?"All duplicates in this file are ignored.":"No duplicates found."})]})}function Bk(){return E.jsx(_h,{size:12,className:"text-muted-foreground/30 flex-shrink-0 mx-1"})}function YS({children:a,onClick:r,isActive:l=!1,icon:c}){const d=!!r&&!l;return E.jsxs(Ne.button,{onClick:d?r:void 0,disabled:!d,className:be("flex items-center gap-1 px-1.5 py-0.5 rounded text-xs","transition-colors duration-100",d&&"hover:bg-foreground/[0.05] cursor-pointer",l?"text-foreground/80 font-medium":"text-muted-foreground/60",!d&&!l&&"cursor-default"),whileHover:d?{scale:1.02}:void 0,whileTap:d?{scale:.98}:void 0,children:[c,E.jsx("span",{className:"truncate max-w-[120px]",children:a})]})}function Hk({expandedRuleName:a,expandedFileName:r,onCollapseToRoot:l,onCollapseFile:c,variant:d="standalone",className:p}){return a?E.jsxs(Ne.div,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},className:be("flex items-center px-4 py-2",d!=="embedded"&&"border-b border-foreground/[0.04] bg-foreground/[0.01]",p),children:[E.jsx(YS,{onClick:l,icon:E.jsx(Y6,{size:11,className:"opacity-50"}),children:"All Rules"}),E.jsx(Bk,{}),E.jsx(YS,{onClick:r?c:void 0,isActive:!r,children:a}),r&&E.jsxs(E.Fragment,{children:[E.jsx(Bk,{}),E.jsx(YS,{isActive:!0,children:r})]})]}):null}U.createContext(null);function s9(a,r){const l=a===1?"issue":"issues";return r!==void 0&&r>0?`${a} ${l} in ${r} ${r===1?"file":"files"}`:`${a} ${l}`}function u9({label:a,subtitle:r,tileType:l,count:c,fileCount:d,onBack:p,className:g}){const v=c!==void 0?s9(c,d):void 0;return E.jsx(Ne.div,{variants:X8,initial:"hidden",animate:"visible",exit:"exit",transition:$8,className:be("flex items-center justify-between gap-2 px-3 py-2","border-b border-foreground/[0.04]",g),children:E.jsxs("div",{className:"flex items-center gap-1.5 min-w-0 flex-1",children:[E.jsx(Ne.button,{onClick:p,variants:Q8,initial:"rest",whileHover:"hover",whileTap:"tap",transition:I8,className:be("flex items-center justify-center","w-6 h-6 rounded-md","text-muted-foreground/70 hover:text-foreground","hover:bg-foreground/[0.05]","transition-colors duration-100","flex-shrink-0"),"aria-label":"Go back",children:E.jsx(M6,{size:16,strokeWidth:2})}),E.jsxs("div",{className:"min-w-0 flex-1 flex flex-col",children:[E.jsxs("div",{className:"flex items-baseline gap-2",children:[E.jsx(Ne.h3,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:"text-sm font-medium text-foreground truncate",children:a}),v&&E.jsx(Ne.span,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.1,delay:.05},className:"text-[11px] text-muted-foreground/50 truncate hidden sm:inline",children:v})]}),r&&E.jsx(Ne.p,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:be("text-[10px] text-muted-foreground/50 truncate",l==="file"&&"font-mono"),children:r})]})]})})}const c9=14,d9={top:0,right:0,bottom:0,left:0},Vk=12;function f9({item:a,children:r,childrenHeight:l,availableWidth:c,onBack:d,onChildClick:p}){return E.jsxs(Ne.div,{layoutId:`tile-${a.id}`,initial:{opacity:.9},animate:{opacity:1},exit:{opacity:.9},transition:{duration:Nu.expand,ease:Cd},className:be("rounded-2xl","border border-foreground/[0.08]","bg-background/60 backdrop-blur-md","overflow-hidden","shadow-lg","h-full"),children:[E.jsx(u9,{label:a.label,subtitle:a.subtitle,tileType:a.tileType,count:a.count,fileCount:a.fileCount,onBack:d}),E.jsx(Ne.div,{variants:G8,initial:"hidden",animate:"visible",exit:"exit",className:"p-3",style:{height:l+Vk*2},children:E.jsx(Ek,{items:r,onTileClick:p,selectedIndex:-1,availableWidth:c-Vk*2,padding:{top:0,right:0,bottom:0,left:0}})})]})}function h9({items:a,expandedId:r,expandedChildren:l,onTileClick:c,onExpandedChildClick:d,onBack:p,availableWidth:g,selectedIndex:v=-1,gap:b=c9,padding:S=d9,extraExpandedHeight:A=0,renderExpandedContent:C}){const k=U.useMemo(()=>Ng(a,{availableWidth:g,gap:b,padding:S}),[a,g,b,S]),M=U.useMemo(()=>a.map(ae=>({id:ae.id,count:ae.count})),[a]),L=U.useMemo(()=>l.map(ae=>({id:ae.id,count:ae.count})),[l]),B=U.useMemo(()=>V8({items:M,expandedId:r,children:L,config:{availableWidth:g,gap:b,padding:S},extraExpandedHeight:A}),[M,r,L,g,b,S,A]),H=B.positions,Q=B.totalHeight,K=U.useMemo(()=>{const ae=new Map;return[...a].sort((Ae,J)=>{const $=H.get(Ae.id),ge=H.get(J.id),we=($?.y??0)-(ge?.y??0);return Math.abs(we)>10?we:($?.x??0)-(ge?.x??0)}).forEach((Ae,J)=>ae.set(Ae.id,J)),ae},[a,H]),q=U.useMemo(()=>a.find(ae=>ae.id===r)||null,[a,r]);return E.jsx("div",{className:"relative",style:{height:Q,minHeight:200},children:E.jsx(ga,{mode:"popLayout",children:a.map((ae,he)=>{const Ae=H.get(ae.id),J=k.tiles.get(ae.id);if(!Ae||!J)return null;const $=K.get(ae.id)??he,ge=ae.id===r,we=$===v;return ge&&q?E.jsx(Ne.div,{className:"absolute",style:{left:Ae.x,width:Ae.width,height:Ae.height},initial:{top:Ae.y,opacity:.9},animate:{top:Ae.y,opacity:1},exit:{opacity:.9},transition:{duration:Nu.expand,ease:Cd},children:C?C(ae,l,B.childrenHeight,g):E.jsx(f9,{item:ae,children:l,childrenHeight:B.childrenHeight,availableWidth:g,onBack:p,onChildClick:d})},ae.id):E.jsx(Ne.div,{className:"absolute",style:{left:Ae.x,width:Ae.width,height:Ae.height},initial:{top:J.y,opacity:0,scale:.9},animate:{top:Ae.y,opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:Nu.standard,ease:Cd,delay:Math.min(he*.02,.15)},children:E.jsx(yk,{id:ae.id,label:ae.label,subtitle:ae.subtitle,tileType:ae.tileType??ae.metadata?.tileType,count:ae.count,fileCount:ae.fileCount,configTags:Sk(ae.metadata),bucket:J.bucket,isSelected:we,onClick:()=>c(ae)})},ae.id)})})})}function p9(a,r){return`${a} ${a===1?"issue":"issues"} in ${r} ${r===1?"file":"files"}`}function m9(a){return a.includes("/")&&a.split("/").pop()||a}function g9(a){const r=new Map;for(const c of a)for(const d of c.issues){const p=d.ruleId||"unknown",g=m9(p);r.has(p)||r.set(p,{ruleId:p,ruleName:g,totalCount:0,severityCounts:{error:0,warning:0,info:0},highestSeverity:"info",files:new Map});const v=r.get(p);v.totalCount++,v.severityCounts[d.severity]++,d.severity==="error"?v.highestSeverity="error":d.severity==="warning"&&v.highestSeverity!=="error"&&(v.highestSeverity="warning"),v.files.has(c.filePath)||v.files.set(c.filePath,{filePath:c.filePath,fileName:c.fileName,directory:c.directory,issueCount:0,severityCounts:{error:0,warning:0,info:0},issues:[]});const b=v.files.get(c.filePath);b.issueCount++,b.severityCounts[d.severity]++,b.issues.push({id:d.id,message:d.message,severity:d.severity,line:d.line,column:d.column})}return Array.from(r.values()).sort((c,d)=>{const p={error:0,warning:1,info:2},g=p[c.highestSeverity]-p[d.highestSeverity];return g!==0?g:d.totalCount-c.totalCount}).map(c=>{const p=Array.from(c.files.values()).flatMap(g=>g.issues).slice(0,3).map(g=>g.message);return{id:c.ruleId,label:c.ruleName,subtitle:p9(c.totalCount,c.files.size),count:c.totalCount,previewMessages:p,fileCount:c.files.size,data:{ruleId:c.ruleId,ruleName:c.ruleName,highestSeverity:c.highestSeverity,files:Array.from(c.files.values())},hasChildren:!0,isLeaf:!1}})}function v9(a){return a.data.files.sort((r,l)=>{const c={error:0,warning:1,info:2},d=r.severityCounts.error>0?"error":r.severityCounts.warning>0?"warning":"info",p=l.severityCounts.error>0?"error":l.severityCounts.warning>0?"warning":"info",g=c[d]-c[p];return g!==0?g:l.issueCount-r.issueCount}).map(r=>({id:`${a.id}:${r.filePath}`,label:r.fileName,subtitle:r.filePath,tileType:"file",count:r.issueCount,severityCounts:r.severityCounts,data:r,isLeaf:!0}))}function y9(a,r){return{id:a.id,label:a.label,count:a.count??0,fileCount:a.fileCount,metadata:{isRule:!0,ruleId:a.id,tileType:"rule",category:r?.category,currentSeverity:r?.currentSeverity,defaultSeverity:r?.defaultSeverity,currentOptions:r?.currentOptions,optionSchema:r?.optionSchema},data:a.data}}function b9(a){return{id:a.id,label:a.label,subtitle:a.subtitle,tileType:a.tileType,count:a.count??0,severityCounts:a.severityCounts,data:a.data}}function x9(){return E.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-4 text-center",children:[E.jsx("div",{className:"text-4xl mb-4 opacity-30",children:"✨"}),E.jsx("h3",{className:"text-lg font-medium text-foreground/80 mb-2",children:"No issues found"}),E.jsx("p",{className:"text-sm text-muted-foreground/60 max-w-xs",children:"Great job! Your code looks clean."})]})}const qk=34,Yk=40,w9=300;function S9({className:a}){const r=U.useRef(null),l=Ce(sD),c=Ce(fe=>fe.inspector.expandedRuleId),d=Ce(fe=>fe.inspector.expandedFilePath),p=Ce(fe=>fe.inspector.selectedIssueId),g=Ce(fe=>fe.inspector.showFullSource),v=Ce(fe=>fe.inspector.layoutAvailableWidth),b=Ce(fe=>fe.plugins?.eslint?.availableRules),S=Ce(fe=>fe.expandRule),A=Ce(fe=>fe.collapseRule),C=Ce(fe=>fe.expandFileInRule),k=Ce(fe=>fe.collapseFileInRule),M=Ce(fe=>fe.selectIssue),L=Ce(fe=>fe.showFullSourceView),B=U.useMemo(()=>g9(l),[l]),H=U.useMemo(()=>B.find(fe=>fe.id===c)||null,[B,c]),Q=U.useMemo(()=>H?v9(H):[],[H]),K=U.useMemo(()=>Q.find(fe=>fe.data.filePath===d)||null,[Q,d]),q=U.useMemo(()=>{const fe=new Map;for(const ke of b??[])fe.set(ke.id,ke);return fe},[b]),ae=U.useMemo(()=>B.map(fe=>y9(fe,q.get(fe.id))),[B,q]),he=U.useMemo(()=>Q.map(b9),[Q]),Ae=U.useMemo(()=>!d||!K||!H?[]:K.data.issues.map(fe=>({...fe,ruleId:H.id,pluginId:"eslint",filePath:d,dataLoc:`${d}:${fe.line}:${fe.column??0}`})),[d,K,H]);U.useEffect(()=>{if(p){for(const fe of B)for(const ke of fe.data.files)if(ke.issues.some(ft=>ft.id===p)){c!==fe.id&&S(fe.id),d!==ke.filePath&&C(ke.filePath);return}}},[p,B,c,d,S,C]),U.useEffect(()=>{if(!c||!r.current)return;const fe=setTimeout(()=>{const ke=r.current?.querySelector(`[data-tile-id="${c}"]`);ke&&typeof ke.scrollIntoView=="function"&&ke.scrollIntoView({behavior:"smooth",block:"start"})},50);return()=>clearTimeout(fe)},[c]);const J=U.useCallback(fe=>{M(p===fe?null:fe)},[p,M]),$=Ce(fe=>{if(!c)return null;const ke=fe.plugins?.eslint;return ke?.ruleConfigs?ke.ruleConfigs.get(c):null}),ge=Ce(fe=>{if(!c)return null;const ke=fe.plugins?.eslint;return ke?.availableRules?ke.availableRules.find(Tt=>Tt.id===c):null}),we=Ce(fe=>{if(!c)return!1;const ke=fe.plugins?.eslint;return ke?.ruleConfigUpdating?ke.ruleConfigUpdating.get(c)??!1:!1}),Ke=U.useCallback(fe=>{if(!c)return;const ke=fe==="warn"?"warning":fe;Kn.setRuleSeverity(c,ke)},[c]),Me=U.useCallback((fe,ke)=>{if(!c)return;const ft={...$?.options??{},[fe]:ke};Kn.setRuleConfig(c,ft)},[c,$?.options]),qe=U.useCallback(()=>{if(!c||!ge?.defaultOptions)return;const fe=Array.isArray(ge.defaultOptions)?ge.defaultOptions[0]??{}:ge.defaultOptions??{};Kn.setRuleConfig(c,fe)},[c,ge?.defaultOptions]),Se=U.useMemo(()=>$?.severity?$.severity:"warn",[$?.severity]),Ue=U.useMemo(()=>ge?.defaultOptions?Array.isArray(ge.defaultOptions)?ge.defaultOptions[0]??{}:ge.defaultOptions??{}:{},[ge?.defaultOptions]),N=U.useMemo(()=>c?Kn.getRuleContribution(c)?.contentRenderer??null:null,[c]),W=Ce(fe=>fe.ignoredIssueIds),ne=Ce(fe=>fe.showIgnoredIssues),De=Ce(fe=>fe.addIgnoredIssue),Be=Ce(fe=>fe.removeIgnoredIssue),j=Ce(fe=>fe.toggleShowIgnoredIssues),ie=U.useCallback(fe=>{W.has(fe)?Be(fe):De(fe)},[W,De,Be]),ve=U.useMemo(()=>{if(!c||W.size===0)return 0;const fe=B.find(Tt=>Tt.id===c);if(!fe)return 0;let ke=0;for(const Tt of fe.data.files)for(const ft of Tt.issues)W.has(ft.id)&&ke++;return ke},[c,B,W]),ye=d?qk+Yk+w9:qk+Yk,Xe=U.useCallback((fe,ke,Tt,ft)=>{const Un=d!==null;return E.jsxs(Ne.div,{"data-tile-id":fe.id,layoutId:`tile-${fe.id}`,initial:{opacity:.9},animate:{opacity:1},exit:{opacity:.9},transition:{duration:Nu.expand,ease:Cd},className:be("rounded-xl","border border-foreground/[0.05]","bg-background/80","overflow-hidden","shadow-sm","h-full flex flex-col"),children:[E.jsx(Hk,{variant:"embedded",expandedRuleName:H?.label??null,expandedFileName:K?.label??null,onCollapseToRoot:A,onCollapseFile:k}),E.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[E.jsx(l7,{ruleFilter:{type:"rule",id:fe.id,label:fe.label},description:ge?.description??E9(fe.id),category:ge?.category??T9(fe.id),docsUrl:ge?.docs??A9(fe.id),onClear:A,showCloseButton:!1,highestSeverity:H?.data.highestSeverity,issueCount:H?.count,currentSeverity:Se,onSeverityChange:Ke,optionSchema:ge?.optionSchema,currentOptions:$?.options,defaultOptions:Ue,onOptionChange:Me,onResetOptions:qe,isUpdating:we,ignoredCount:ve,showIgnored:ne,onToggleShowIgnored:j}),Un?N==="duplicate-comparison"?E.jsx("div",{className:"flex-1 overflow-auto",children:E.jsx(l9,{issues:Ae,selectedIssueId:p,onIssueClick:ze=>{M(ze.id)},ignoredIssueIds:W,onIgnore:ie,showIgnored:ne})}):g?E.jsx("div",{className:"flex-1 overflow-auto p-3",children:E.jsx(VS,{filePath:d,issues:Ae,contextLines:2,selectedIssueId:p,onIssueSelect:J,enabled:!0})}):E.jsx("div",{className:"flex-1 overflow-auto",children:E.jsx(F7,{issues:Ae,selectedIssueId:p,onIssueClick:ze=>{M(ze.id),L()},onShowFullSource:L})}):E.jsx("div",{className:"p-3",children:E.jsx(Ek,{items:ke,onTileClick:ze=>{const Ta=Q.find(Vo=>Vo.id===ze.id);Ta&&C(Ta.data.filePath)},selectedIndex:-1,availableWidth:ft-24,padding:{top:0,right:0,bottom:0,left:0}})})]})]})},[A,ge,Se,Ke,$?.options,Ue,Me,qe,we,Q,C,d,g,Ae,p,M,L,J,H,N,W,ne,ie,ve,j]);return E.jsx("div",{className:be("flex flex-col h-full",a),children:E.jsx("div",{ref:r,className:"flex-1 p-4 overflow-auto",children:l.length===0?E.jsx(x9,{}):E.jsx(h9,{items:ae,expandedId:c,expandedChildren:he,onTileClick:fe=>S(fe.id),onExpandedChildClick:fe=>{const ke=Q.find(Tt=>Tt.id===fe.id);ke&&C(ke.data.filePath)},onBack:A,availableWidth:v,extraExpandedHeight:ye,padding:{top:0,right:0,bottom:0,left:0},renderExpandedContent:Xe})})})}function E9(a){return{"no-unused-vars":"Disallow variables that are declared but never used in the code.","@typescript-eslint/no-unused-vars":"Disallow variables that are declared but never used in the code.","no-console":"Disallow the use of console methods.","react-hooks/exhaustive-deps":"Checks effect dependencies and warns when dependencies are missing.","react-hooks/rules-of-hooks":"Enforces the Rules of Hooks.","no-explicit-any":"Disallow the any type to encourage more precise typing.","@typescript-eslint/no-explicit-any":"Disallow the any type to encourage more precise typing."}[a]}function T9(a){return a.startsWith("@typescript-eslint/")?"TypeScript":a.startsWith("react-hooks/")?"React Hooks":a.startsWith("react/")?"React":"ESLint"}function A9(a){return a.startsWith("@typescript-eslint/")?`https://typescript-eslint.io/rules/${a.replace("@typescript-eslint/","")}`:a.startsWith("react-hooks/")?"https://reactjs.org/docs/hooks-rules.html":a.startsWith("react/")?`https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/${a.replace("react/","")}.md`:`https://eslint.org/docs/latest/rules/${a}`}function C9({filePath:a,line:r,contextAbove:l=5,contextBelow:c=5,enabled:d=!0}){const[p,g]=U.useState(null),[v,b]=U.useState(!1),[S,A]=U.useState(null),C=Ce(L=>L.wsConnected),k=U.useRef(null),M=U.useCallback(()=>{if(!d||!a)return;const L=Mk(a);if(L){g(Eb(L,r,l,c)),b(!1),A(null);return}if(!C&&Tb()){const K=BS(a);if(K){const q=Sb(a,K.content,K.totalLines,K.relativePath);g(Eb(q,r,l,c)),b(!1),A(null)}else g(null),b(!1),A("Source not available in manifest");return}if(!C)return;const B=v7(a);if(B){b(!0),B.then(K=>{K&&(g(Eb(K,r,l,c)),A(null)),b(!1)});return}b(!0),A(null);const H=`source-${a}-${Date.now()}`;k.current=H;const Q=new Promise(K=>{const q=Ho.on("source:result",he=>{if(he.filePath===a){const Ae=Sb(he.filePath,he.content,he.totalLines,he.relativePath);q(),ae(),K(Ae)}}),ae=Ho.on("source:error",he=>{he.filePath===a&&(A(he.error),q(),ae(),K(null))});Ho.send({type:"source:fetch",filePath:a,requestId:H}),setTimeout(()=>{q(),ae(),K(null)},1e4)});y7(a,Q),Q.then(K=>{K&&g(Eb(K,r,l,c)),b(!1)})},[a,r,l,c,d,C]);return U.useEffect(()=>{M()},[M]),U.useEffect(()=>a?Ho.on("file:changed",B=>{(B.filePath===a||B.filePath.endsWith(a)||a.endsWith(B.filePath))&&(Dk(a),d&&M())}):void 0,[a,d,M]),{context:p,isLoading:v,error:S,refetch:M}}function k9(a){const r=a.match(/^[\t ]+/);return r?r[0]:""}function R9(a){if(!a.length)return{lines:a,removed:0};const r=a.filter(c=>c.trim().length>0);if(!r.length)return{lines:a,removed:0};let l=1/0;for(const c of r)if(l=Math.min(l,k9(c).length),l===0)break;return!Number.isFinite(l)||l<=0?{lines:a,removed:0}:{removed:l,lines:a.map(c=>c.length>=l?c.slice(l):"")}}function M9({filePath:a,line:r,column:l,contextLines:c=5,defaultExpanded:d=!0}){const[p,g]=U.useState(d),{context:v,isLoading:b,error:S}=C9({filePath:a,line:r,contextAbove:c,contextBelow:c,enabled:p}),A=v?R9(v.lines):null,C=v?v.startLine+v.lines.length-1:0,k=Math.max(3,String(C).length)*8+16;return E.jsxs("div",{className:"bg-background rounded-lg overflow-hidden border border-border",children:[E.jsxs("button",{onClick:()=>g(!p),className:be("w-full flex items-center gap-2 py-2 px-3 bg-surface-elevated border-none cursor-pointer text-text-primary text-xs font-inherit",p&&"border-b border-border"),children:[p?E.jsx(Mg,{size:14}):E.jsx(_h,{size:14}),E.jsx("span",{className:"font-medium",children:"Source"}),E.jsxs("span",{className:"text-text-muted ml-auto font-mono",children:["L",r,l?`:${l}`:""]})]}),p&&E.jsxs("div",{className:"p-0",children:[b&&E.jsx("div",{className:"p-6 text-text-muted text-center text-xs",children:"Loading..."}),S&&E.jsx("div",{className:"p-6 text-error text-center text-xs",children:S}),A&&v&&E.jsx("div",{className:"overflow-x-auto text-xs font-mono leading-relaxed",children:A.lines.map((M,L)=>{const B=v.startLine+L,H=B===r;return E.jsxs("div",{className:be("flex border-l-[3px]",H?"bg-warning-bg border-l-warning":"bg-transparent border-l-transparent"),children:[E.jsx("span",{className:be("py-0 px-2 text-right bg-surface-elevated select-none shrink-0 border-r border-border",H?"text-text-primary":"text-text-disabled"),style:{width:k,minWidth:k},children:B}),E.jsx("code",{className:be("py-0 px-3 whitespace-pre flex-1",H?"text-text-primary":"text-text-secondary"),children:M||" "})]},B)})})]})]})}function D9(a){const r=a.split("/");return r[r.length-1]||a}function _9({issue:a}){const r=a.severity==="error"?cb:a.severity==="warning"?_u:us;return E.jsxs("div",{className:"p-4 flex flex-col gap-4",children:[E.jsxs("div",{className:"flex items-start gap-2.5",children:[E.jsxs(vl,{variant:a.severity==="error"?"error":a.severity==="warning"?"warning":"info",size:"sm",disableAnimation:!0,className:"shrink-0 mt-0.5",children:[E.jsx(r,{size:12,color:"currentColor",className:"mr-1"}),a.severity]}),E.jsxs("div",{className:"flex-1 min-w-0",children:[E.jsx("div",{className:"text-sm font-medium text-text-primary leading-snug",children:a.message}),E.jsx(vl,{variant:"outline",size:"sm",disableAnimation:!0,className:"mt-1.5 font-mono",children:a.ruleId})]})]}),E.jsx(M9,{filePath:a.filePath,line:a.line,column:a.column,contextLines:5}),E.jsxs("div",{className:"flex flex-wrap gap-y-1 gap-x-3 text-[11px] text-text-muted font-mono",children:[E.jsxs("span",{title:a.filePath,children:[D9(a.filePath),":",a.line,a.column?`:${a.column}`:""]}),E.jsx("span",{className:"opacity-50",children:"|"}),E.jsx("span",{children:a.pluginId})]})]})}function z9(){const a=Ce(hD),r=Ce(pD),l=Ce(ew),c=Ce(mD),d=Ce(gD),p=U.useCallback(g=>l.get(g)||[],[l]);return{allIssues:a,byFile:r,byDataLoc:l,getIssuesForDataLoc:p,totalCount:c,countBySeverity:d}}function O9({dataLoc:a,onSelectIssue:r}){const{getIssuesForDataLoc:l}=z9(),c=l(a);return c.length===0?E.jsx("div",{className:"p-4 text-center text-text-muted",children:"No issues for this element"}):E.jsxs("div",{className:"p-4",children:[E.jsxs("div",{className:"text-sm font-semibold text-text-primary mb-3",children:[c.length," issue",c.length!==1?"s":""," at this location"]}),E.jsx(jS,{variant:"elevated",className:"overflow-hidden",children:c.map((d,p)=>{const g=d.severity==="error"?cb:d.severity==="warning"?_u:us;return E.jsxs("div",{onClick:()=>r(d),className:be("flex items-start gap-2.5 p-3 cursor-pointer",p<c.length-1&&"border-b border-border"),children:[E.jsx(vl,{variant:d.severity==="error"?"error":d.severity==="warning"?"warning":"info",size:"sm",disableAnimation:!0,className:"shrink-0",children:E.jsx(g,{size:12,color:"currentColor"})}),E.jsxs("div",{className:"flex-1",children:[E.jsx("div",{className:"text-[13px] text-text-primary",children:d.message}),E.jsx("div",{className:"text-[11px] text-text-muted mt-0.5",children:d.ruleId})]})]},d.id)})}),E.jsx("div",{className:"mt-3 text-[11px] text-text-disabled break-all",children:a})]})}function Gk({direction:a,onResize:r,onResizeStart:l,onResizeEnd:c}){const d=U.useRef(!1),p=U.useRef({x:0,y:0}),g=U.useCallback(S=>{S.preventDefault(),S.stopPropagation(),d.current=!0,p.current={x:S.clientX,y:S.clientY},l?.()},[l]);U.useEffect(()=>{const S=C=>{if(!d.current)return;const k=C.clientX-p.current.x,M=C.clientY-p.current.y;p.current={x:C.clientX,y:C.clientY},r(k,M)},A=()=>{d.current&&(d.current=!1,c?.())};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",A),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",A)}},[r,c]);const v={position:"absolute",zIndex:10},b={horizontal:{...v,top:0,left:0,width:4,height:"100%",cursor:"col-resize"},vertical:{...v,bottom:0,left:0,width:"100%",height:4,cursor:"row-resize"},corner:{...v,bottom:0,right:0,width:12,height:12,cursor:"nwse-resize"}};return E.jsx("div",{onMouseDown:g,style:{...b[a],background:"transparent"},onMouseEnter:S=>{S.target.style.background="rgba(59, 130, 246, 0.2)"},onMouseLeave:S=>{d.current||(S.target.style.background="transparent")}})}const Xk=320,$k=800,Ab=450,Qk=500;function j9(){const a=Ce(Se=>Se.inspector.open),r=Ce(Se=>Se.inspector.panelId),l=Ce(Se=>Se.inspector.data),c=Ce(Se=>Se.inspector.docked),d=Ce(Se=>Se.inspector.width),p=Ce(Se=>Se.inspector.floatingPosition),g=Ce(Se=>Se.inspector.floatingSize),v=Ce(Se=>Se.closeInspector),b=Ce(Se=>Se.openInspector),S=Ce(Se=>Se.toggleInspectorDocked),A=Ce(Se=>Se.setInspectorWidth),C=Ce(Se=>Se.setInspectorFloatingPosition),k=Ce(Se=>Se.setInspectorFloatingSize),[M,L]=U.useState(!1),B=Ce(Se=>Se.mobile.isMobile),H=Ce(Se=>Se.activeDrag),Q=Ce(Se=>Se.startDrag),K=H?.type==="inspector-floating",q=U.useMemo(()=>Kn.getAllInspectorPanels(),[]),ae=U.useCallback(Se=>{b("issue",{issue:Se})},[b]),{content:he,title:Ae}=U.useMemo(()=>{let Se=null,Ue="Issues";const N=q.find(W=>W.id===r);if(N){const W=bh(),ne=N.component,De=l??void 0;Ue=typeof N.title=="function"?N.title({data:De,services:W}):N.title,Se=W?E.jsx(ne,{data:De,services:W}):E.jsx("div",{className:"p-4 text-text-muted text-center",children:"Loading..."})}else if(r==="issue"&&l?.issue){const W=l.issue,ne=W.ruleId?Kn.getRuleContribution(W.ruleId)||Kn.getRuleContribution(W.ruleId.replace("uilint/","")):void 0;if(ne?.inspectorPanel){const De=bh(),Be=ne.inspectorPanel;Ue="Issue Details",Se=De?E.jsx(Be,{data:l,services:De}):E.jsx("div",{className:"p-4 text-text-muted text-center",children:"Loading..."})}else Ue="Issue Details",Se=E.jsx(_9,{issue:W})}else r==="element"&&l?.dataLoc?(Ue="Element Issues",Se=E.jsx(O9,{dataLoc:l.dataLoc,onSelectIssue:ae})):(Ue="Issues",Se=E.jsx(S9,{}));return{content:Se,title:Ue}},[r,l,q,ae]);U.useEffect(()=>{L(!0)},[]),U.useLayoutEffect(()=>{if(!M)return;const Se=document.documentElement;return a&&c?(Se.style.marginRight=`${d}px`,Se.style.transition="margin-right 0.2s ease-out"):(Se.style.marginRight="",Se.style.transition="margin-right 0.2s ease-out"),()=>{Se.style.marginRight="",Se.style.transition=""}},[M,a,c,d]),U.useLayoutEffect(()=>{if(!K||!H||!H.elementStartPos)return;const{currentPos:Se,startPos:Ue,elementStartPos:N}=H,W=Se.x-Ue.x,ne=Se.y-Ue.y;C({x:N.x+W,y:N.y+ne})},[K,H,C]);const J=U.useCallback(Se=>{const Ue=Math.min($k,Math.max(Xk,d-Se));A(Ue)},[d,A]),$=U.useCallback((Se,Ue)=>{const N=g??{width:Ab,height:Qk},W=Math.min($k,Math.max(Xk,N.width+Se)),ne=Math.max(300,N.height+Ue);k({width:W,height:ne})},[g,k]),ge=U.useCallback(Se=>{if(!p||B)return;Se.preventDefault();const Ue={x:Se.clientX,y:Se.clientY};Q("inspector-floating",Ue,{x:0,y:0},p)},[p,B,Q]),we=U.useCallback(Se=>{if(!p||B)return;const Ue=Se.touches[0],N={x:Ue.clientX,y:Ue.clientY};Q("inspector-floating",N,{x:0,y:0},p)},[p,B,Q]);U.useEffect(()=>{!c&&!p&&M&&C({x:window.innerWidth-Ab-20,y:80})},[c,p,C,M]);const Ke=document.getElementById("uilint-portal")||document.body,Me=({isDraggable:Se=!1})=>E.jsxs("div",{className:be("flex items-center justify-between border-b border-border bg-surface-elevated select-none",B?"px-4 py-4":"px-4 py-3",Se&&!B?"cursor-move":"cursor-default"),style:{paddingTop:B?"calc(16px + env(safe-area-inset-top, 0px))":void 0},onMouseDown:Se&&!B?ge:void 0,onTouchStart:Se&&!B?we:void 0,children:[E.jsx("span",{className:"font-semibold text-text-primary",children:Ae}),E.jsxs("div",{className:be("flex items-center",B?"gap-2":"gap-1"),onMouseDown:Ue=>Ue.stopPropagation(),onTouchStart:Ue=>Ue.stopPropagation(),children:[!B&&E.jsx(Og,{variant:"ghost",size:"sm",onClick:S,title:c?"Undock to floating window":"Dock to side",children:c?E.jsx(Q6,{size:16}):E.jsx(Z6,{size:16})}),E.jsx(Og,{variant:"ghost",size:B?"default":"sm",onClick:v,title:"Close",className:B?"min-w-[44px] min-h-[44px]":void 0,children:E.jsx(fb,{size:B?20:16})})]})]}),qe=ju("heavy","none",!1);return yd.createPortal(E.jsxs(ga,{children:[a&&c&&E.jsxs(Ne.div,{initial:{x:d,opacity:0},animate:{x:0,opacity:1},exit:{x:d,opacity:0},transition:{duration:.15,ease:[.25,.1,.25,1]},className:"fixed inset-y-0 right-0 flex flex-col border-l border-glass-border shadow-default z-[99997] pointer-events-auto",style:{width:d,...qe},children:[E.jsx(Gk,{direction:"horizontal",onResize:Se=>J(Se)}),E.jsx(Me,{}),E.jsx("div",{className:"flex-1 overflow-y-auto",children:he})]},"docked"),a&&!c&&E.jsxs(Ne.div,{initial:{opacity:0,scale:B?1:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:B?1:.95},transition:{duration:.15},style:B?{position:"fixed",inset:0,width:"100%",height:"100%",...qe,border:"none",borderRadius:0,boxShadow:"none",zIndex:99997,display:"flex",flexDirection:"column",overflow:"hidden",pointerEvents:"auto"}:{position:"fixed",left:p?.x??window.innerWidth-Ab-20,top:p?.y??80,width:g?.width??Ab,height:g?.height??Qk,...qe,border:"1px solid var(--uilint-glass-border)",borderRadius:12,boxShadow:"var(--uilint-shadow)",zIndex:99997,display:"flex",flexDirection:"column",overflow:"hidden",pointerEvents:"auto"},children:[E.jsx(Me,{isDraggable:!0}),E.jsx("div",{className:"flex-1 overflow-y-auto min-h-0",style:{paddingBottom:B?"env(safe-area-inset-bottom, 0px)":void 0},children:he}),!B&&E.jsx(Gk,{direction:"corner",onResize:$})]},"floating")]}),Ke)}function N9({group:a,isMobile:r,disabled:l}){const[c,d]=U.useState(!1),p=r?44:36,g=U.useCallback(()=>{d(S=>!S)},[]),v=U.useCallback(S=>{const A=bh();A&&S.onClick&&S.onClick(A),d(!1)},[]),b=typeof document<"u"?document.getElementById("uilint-portal")||document.body:null;if(a.actions.length===1){const S=a.actions[0];return E.jsx(Ne.button,{whileHover:l?void 0:{scale:1.05},whileTap:l?void 0:{scale:.95},onClick:l?void 0:()=>v(S),disabled:l,"aria-label":S.tooltip,title:l?`${S.tooltip} (unavailable)`:S.tooltip,style:{width:p,height:p,borderRadius:p/2,border:"none",cursor:l?"default":"pointer",display:"flex",alignItems:"center",justifyContent:"center",opacity:l?.4:1,color:"var(--uilint-text-secondary)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:S.icon})}return E.jsxs("div",{style:{position:"relative"},children:[E.jsxs(Ne.button,{whileHover:l?void 0:{scale:1.05},whileTap:l?void 0:{scale:.95},onClick:l?void 0:g,disabled:l,"aria-label":a.tooltip,title:l?`${a.tooltip} (unavailable)`:a.tooltip,"aria-expanded":c,style:{height:p,padding:"0 10px",borderRadius:p/2,border:"none",cursor:l?"default":"pointer",display:"flex",alignItems:"center",justifyContent:"center",gap:4,opacity:l?.4:1,color:"var(--uilint-text-secondary)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:[a.icon,E.jsx(Mg,{size:12,style:{opacity:.5,transform:c?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.15s ease"}})]}),b&&yd.createPortal(E.jsx(ga,{children:c&&E.jsxs(E.Fragment,{children:[E.jsx("div",{style:{position:"fixed",inset:0,zIndex:99991,pointerEvents:"auto"},onClick:()=>d(!1)}),E.jsx(L9,{actions:a.actions,onAction:v,buttonSize:p})]})}),b)]})}function L9({actions:a,onAction:r,buttonSize:l}){return E.jsx(Ne.div,{initial:{opacity:0,scale:.95,y:-4},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:-4},transition:{duration:.15,ease:[.32,.72,0,1]},style:{position:"fixed",top:16+l+8,right:16,zIndex:99992,minWidth:180,borderRadius:12,overflow:"hidden",pointerEvents:"auto",...ju("heavy","lg",!0),border:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.12)"},children:E.jsx("div",{style:{padding:4},children:a.map(c=>E.jsxs(Ne.button,{whileHover:{backgroundColor:"var(--uilint-hover, rgba(0, 0, 0, 0.05))"},onClick:()=>r(c),title:c.tooltip,style:{width:"100%",display:"flex",alignItems:"center",gap:10,padding:"8px 12px",border:"none",borderRadius:8,background:"transparent",cursor:"pointer",color:"var(--uilint-text-secondary)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:13,fontWeight:500,textAlign:"left"},children:[E.jsx("span",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,opacity:.7},children:c.icon}),E.jsx("span",{children:c.tooltip}),c.shortcut&&E.jsx("span",{style:{marginLeft:"auto",fontSize:11,opacity:.4,fontWeight:400},children:c.shortcut})]},c.id))})})}function U9(){const a=Ce(v=>v.mobile.isMobile),r=Ce(v=>v.inspector.open),l=Ce(v=>v.commandPalette.open);Ce(v=>v.plugins);const c=Kn.getAllToolbarActionGroups(),d=Ce(v=>v),p=c.filter(v=>v.isVisible?v.isVisible(d):!0);if(process.env.NODE_ENV==="development"&&c.length>0&&console.debug(`[PluginToolbar] ${c.length} group(s) registered, ${p.length} visible`),r||l||c.length===0)return null;const g=new Set(p.map(v=>v.id));return E.jsx(E.Fragment,{children:c.map(v=>E.jsx(N9,{group:v,isMobile:a,disabled:!g.has(v.id)},v.id))})}function B9(a){return a.map(r=>{const l=`${r.pluginId}: ${r.operationName}`;return r.current!=null&&r.total!=null?`${l} (${r.current}/${r.total})`:r.message?`${l} — ${r.message}`:l}).join(`
|
|
256
|
-
`)}function H9(){const a=Ce(p=>p.activePluginOperations),r=Ce(p=>p.mobile.isMobile),l=Object.values(a).filter(p=>p.status==="active");if(l.length===0)return null;const c=r?44:36,d=B9(l);return E.jsxs("div",{className:"relative flex items-center justify-center rounded-full border border-border bg-glass-medium",style:{width:c,height:c},title:d,"aria-label":`${l.length} operation${l.length>1?"s":""} in progress`,children:[E.jsx("div",{className:"animate-spin rounded-full border-2 border-muted-foreground/30 border-t-muted-foreground",style:{width:c*.5,height:c*.5}}),l.length>1&&E.jsx("span",{className:"absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-accent text-[10px] font-semibold text-accent-foreground",children:l.length})]})}function V9(){return typeof navigator>"u"?!1:navigator.platform.toUpperCase().indexOf("MAC")>=0}function q9(){const a=Ce(M=>M.inspector.open),r=Ce(M=>M.commandPalette.open),l=Ce(M=>M.openInspectorPanel),c=Ce(M=>M.openCommandPalette),d=Ce(M=>M.mobile.isMobile),p=Ce(M=>M.mobile.isTouchDevice),g=Ce(M=>M.wsConnected),v=Ce(M=>M.connectionStatus.mode),b=document.getElementById("uilint-portal")||document.body;if(a||r)return null;const S=d?44:36,A=V9()?"⌘":"Ctrl+",C=!p,k=v==="websocket"&&!g;return yd.createPortal(E.jsx(ga,{children:E.jsxs(Ne.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15,ease:[.32,.72,0,1]},style:{position:"fixed",top:16,right:16,display:"flex",alignItems:"center",gap:8,pointerEvents:"auto"},children:[E.jsx(U9,{}),E.jsx(H9,{}),C&&E.jsxs(Ne.div,{initial:{opacity:0,x:10},animate:{opacity:1,x:0},transition:{duration:.2,delay:.1},style:{height:S,padding:"0 12px",borderRadius:S/2,display:"flex",alignItems:"center",justifyContent:"center",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:12,fontWeight:500,color:"var(--uilint-text-muted)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:[E.jsxs("span",{style:{opacity:.7},children:[A,"K"]}),E.jsx("span",{style:{marginLeft:6,opacity:.5},children:"to search"})]}),p&&E.jsx(Ne.button,{initial:{opacity:0,x:10},animate:{opacity:1,x:0},whileHover:{scale:1.05},whileTap:{scale:.95},transition:{duration:.15,ease:[.32,.72,0,1]},onClick:c,"aria-label":"Open search",title:"Search issues",style:{width:S,height:S,borderRadius:S/2,border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--uilint-text-secondary)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:E.jsx(bS,{size:d?20:18})}),E.jsxs("div",{style:{position:"relative"},children:[E.jsx(Ne.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:l,"aria-label":"Open inspector",title:k?"Server not connected - click to see setup instructions":"Open inspector",style:{width:S,height:S,borderRadius:S/2,border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--uilint-text-secondary)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:E.jsx(zN,{size:d?20:18})}),k&&E.jsx(Ne.div,{initial:{scale:0},animate:{scale:1},style:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:"50%",background:"var(--uilint-warning, #fbbf24)",border:"2px solid var(--uilint-surface, #fff)",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.15)"},title:"Server not connected"})]})]})}),b)}const Ik=10,Y9={isSelecting:!1,startPoint:null,currentPoint:null,mounted:!1};function G9(a,r){switch(r.type){case"MOUNT":return{...a,mounted:!0};case"START_SELECTION":return{...a,isSelecting:!0,startPoint:r.point,currentPoint:r.point};case"UPDATE_SELECTION":return{...a,currentPoint:r.point};case"COMPLETE_SELECTION":return{...a,isSelecting:!1,startPoint:null,currentPoint:null};default:return a}}const Lr={overlayBg:"rgba(0, 0, 0, 0.5)",selectionBorder:"var(--uilint-accent, #fbbf24)",selectionBg:"transparent",textBg:"var(--uilint-backdrop, rgba(0, 0, 0, 0.8))",textColor:"var(--uilint-text-primary, #ffffff)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontMono:'"SF Mono", Monaco, "Cascadia Code", monospace'};function X9({active:a,onRegionSelected:r,onCancel:l}){const[c,d]=U.useReducer(G9,Y9),{isSelecting:p,startPoint:g,currentPoint:v,mounted:b}=c;U.useEffect(()=>{d({type:"MOUNT"})},[]);const S=U.useCallback(()=>{if(!g||!v)return null;const H=Math.min(g.x,v.x),Q=Math.min(g.y,v.y),K=Math.abs(v.x-g.x),q=Math.abs(v.y-g.y);return{x:H,y:Q,width:K,height:q}},[g,v]),A=U.useCallback(H=>{H.button===0&&d({type:"START_SELECTION",point:{x:H.clientX,y:H.clientY}})},[]),C=U.useCallback(H=>{!p||!g||d({type:"UPDATE_SELECTION",point:{x:H.clientX,y:H.clientY}})},[p,g]),k=U.useCallback(()=>{if(!p||!g)return;const H=S();H&&H.width>Ik&&H.height>Ik?r(H):l(),d({type:"COMPLETE_SELECTION"})},[p,g,S,r,l]);if(U.useEffect(()=>{if(!a)return;const H=Q=>{Q.key==="Escape"&&(Q.preventDefault(),Q.stopPropagation(),l())};return document.addEventListener("keydown",H,!0),()=>{document.removeEventListener("keydown",H,!0)}},[a,l]),U.useLayoutEffect(()=>{if(!a)return;const H=Q=>{Q.preventDefault()};return document.body.style.overflow="hidden",document.addEventListener("wheel",H,{passive:!1}),document.addEventListener("touchmove",H,{passive:!1}),()=>{document.body.style.overflow="",document.removeEventListener("wheel",H),document.removeEventListener("touchmove",H)}},[a]),!a||!b)return null;const M=S(),L=typeof document<"u"?document.getElementById("uilint-portal")||document.body:null;if(!L)return null;const B=E.jsxs("div",{"data-testid":"region-selector-overlay","data-ui-lint":!0,onMouseDown:A,onMouseMove:C,onMouseUp:k,style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:999999,cursor:"crosshair",backgroundColor:Lr.overlayBg,fontFamily:Lr.fontFamily},children:[E.jsxs("div",{style:{position:"absolute",top:"20px",left:"50%",transform:"translateX(-50%)",padding:"12px 20px",borderRadius:"12px",backgroundColor:Lr.textBg,color:Lr.textColor,fontSize:"14px",fontWeight:500,boxShadow:"0 4px 20px rgba(0, 0, 0, 0.4)",backdropFilter:"blur(16px)",WebkitBackdropFilter:"blur(16px)",pointerEvents:"none",userSelect:"none"},children:["Click and drag to select a region"," ",E.jsx("kbd",{style:{padding:"2px 6px",borderRadius:"4px",backgroundColor:"rgba(255, 255, 255, 0.1)",border:"1px solid rgba(255, 255, 255, 0.2)",fontSize:"11px",fontFamily:Lr.fontMono,marginLeft:"4px"},children:"Esc"})," ","to cancel"]}),M&&M.width>0&&M.height>0&&E.jsxs(E.Fragment,{children:[E.jsx("div",{"data-testid":"selection-rectangle",style:{position:"absolute",left:`${M.x}px`,top:`${M.y}px`,width:`${M.width}px`,height:`${M.height}px`,border:`2px solid ${Lr.selectionBorder}`,backgroundColor:Lr.selectionBg,pointerEvents:"none",boxShadow:`0 0 0 9999px ${Lr.overlayBg}`}}),E.jsxs("div",{"data-testid":"dimensions-label",style:{position:"absolute",left:`${M.x}px`,top:`${M.y-32}px`,padding:"6px 10px",borderRadius:"6px",backgroundColor:Lr.textBg,color:Lr.textColor,fontSize:"12px",fontFamily:Lr.fontMono,fontWeight:500,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.3)",pointerEvents:"none",userSelect:"none",whiteSpace:"nowrap"},children:[Math.round(M.width)," x ",Math.round(M.height)]})]})]});return yd.createPortal(B,L)}let GS=!1;function $9(){if(typeof document>"u")return;let a=document.getElementById("uilint-portal");return a||(a=document.createElement("div"),a.id="uilint-portal",a.style.cssText="position: fixed; top: 0; left: 0; z-index: 99990; pointer-events: none;",document.body.appendChild(a),GS=!0),a}function Q9(){if(!GS)return;const a=document.getElementById("uilint-portal");a&&(a.remove(),GS=!1)}function I9({enabled:a=!0}){const r=Ce(v=>v.overlayInteraction),l=Ce(v=>v.completeOverlayInteraction),c=Ce(v=>v.cancelOverlayInteraction),d=r?.type==="region-select",p=U.useCallback(v=>{l(v)},[l]),g=U.useCallback(()=>{c()},[c]);return U.useEffect(()=>(a&&$9(),()=>{Q9()}),[a]),a?E.jsxs(E.Fragment,{children:[E.jsx(q9,{}),E.jsx(VD,{}),E.jsx(S8,{}),E.jsx(j9,{}),E.jsx(X9,{active:d,onRegionSelected:p,onCancel:g})]}):null}const Cb="data-loc",Z9=100;function F9(a,r){return`loc:${a}#${r}`}function P9(a){if(!a)return null;let r=a;if(r.startsWith("loc:")){r=r.slice(4);const l=r.lastIndexOf("#");l!==-1&&(r=r.slice(0,l))}return r||null}function K9(a,r){return r&&a.includes("node_modules")}class J9{observer=null;reconcileTimeout=null;knownElements=new Map;addedHandlers=new Set;removedHandlers=new Set;isRunning=!1;hideNodeModules=!0;options;constructor(r={}){this.options=r}setHideNodeModules(r){this.hideNodeModules=r,this.isRunning&&this.reconcile()}start(){if(typeof window>"u"&&!this.options.root||this.isRunning)return;this.isRunning=!0;const r=this.options.MutationObserverImpl??(typeof window<"u"?window.MutationObserver:void 0),l=this.options.root??(typeof document<"u"?document.body:void 0);r&&l&&(this.observer=new r(this.handleMutations.bind(this)),this.observer.observe(l,{childList:!0,subtree:!0})),this.reconcile()}stop(){this.isRunning=!1,this.observer&&(this.observer.disconnect(),this.observer=null),this.reconcileTimeout&&(clearTimeout(this.reconcileTimeout),this.reconcileTimeout=null),this.knownElements.clear()}onElementsAdded(r){return this.addedHandlers.add(r),()=>{this.addedHandlers.delete(r)}}onElementsRemoved(r){return this.removedHandlers.add(r),()=>{this.removedHandlers.delete(r)}}getElements(){return this.scanElements()}handleMutations(r){let l=!1;for(const c of r){for(const d of c.addedNodes)if(this.hasDataLocElements(d)){l=!0;break}if(l)break;for(const d of c.removedNodes)if(this.hasDataLocElements(d)){l=!0;break}if(l)break}l&&this.debouncedReconcile()}hasDataLocElements(r){return r instanceof Element?!!(r.hasAttribute(Cb)||r.querySelector(`[${Cb}]`)):!1}debouncedReconcile(){this.reconcileTimeout&&clearTimeout(this.reconcileTimeout),this.reconcileTimeout=setTimeout(()=>{this.reconcile(),this.reconcileTimeout=null},Z9)}reconcile(){if(typeof window>"u")return;const r=this.scanElements(),l=new Map(r.map(v=>[v.id,v])),c=new Set(l.keys()),d=new Set(this.knownElements.keys()),p=[];for(const v of r)d.has(v.id)||p.push(v);const g=[];for(const v of d)c.has(v)||g.push(v);this.knownElements.clear();for(const v of r)this.knownElements.set(v.id,v.element);if(p.length>0)for(const v of this.addedHandlers)try{v(p)}catch(b){yn("[DOMObserverService] Error in added handler:",b)}if(g.length>0)for(const v of this.removedHandlers)try{v(g)}catch(b){yn("[DOMObserverService] Error in removed handler:",b)}}scanElements(){const r=this.options.querySelectorAll??(typeof document<"u"?document.querySelectorAll.bind(document):void 0);if(!r)return[];const l=[],c=new Map,d=r(`[${Cb}]`);for(const p of d){if(this.isInsideUILintUI(p))continue;const g=p.getAttribute(Cb),v=P9(g??"");if(!v||K9(v,this.hideNodeModules))continue;const b=(c.get(v)??0)+1;c.set(v,b);const S=F9(v,b);l.push({id:S,dataLoc:v,element:p,tagName:p.tagName.toLowerCase(),rect:p.getBoundingClientRect()})}return l}isInsideUILintUI(r){return r.closest("[data-ui-lint]")!==null}}const Lg=new J9,W9={target:nj,link:X6,"external-link":_g,"chevron-right":_h,"chevron-down":Mg,"chevron-up":D6,x:fb,check:cC,"alert-triangle":_u,"alert-circle":Dg,info:us,"help-circle":z6,eye:hC,camera:R6,crop:B6,scan:W6,search:bS,filter:pC,brain:k6,sparkles:gC,code:L6,file:H6,"file-code":db,folder:V6,"git-branch":q6,copy:dC,clipboard:O6,book:A6,"book-open":T6,bookmark:C6,play:P6,pause:F6,refresh:mC,trash:ij,edit:tj,settings:xS,plus:K6,minus:I6,loader:$6,"check-circle":_6,"x-circle":cb,clock:j6};function Uu(a){return W9[a]??us}const Zk=new Map;function eL(a,r){Zk.set(a,r)}async function tL(a,r){const l=Zk.get(a);return l?l(r):{success:!1,error:`Unknown browser action: ${a}`}}function Uh(a,r,l){return{getState:()=>a.getState().plugins?.[r],setState:c=>{a.setState(c)},dispatch:(c,d)=>{if(l&&l[c]){const p=Uh(a,r,l);return l[c](p,d)}},websocket:a.websocket,getCurrentRoute:()=>window.location.pathname,requestBrowserAction:async(c,d)=>tL(c,d),registerBrowserAction:(c,d)=>{eL(c,d)},openInEditor:c=>{const[d,p]=c.split(":"),g=`vscode://file/${d}:${p}`;window.open(g,"_self")},setHeatmapFilter:(c,d)=>{a.getState().setHeatmapFilter?.(c,d)},clearHeatmapFilter:()=>{a.getState().clearHeatmapFilter?.()},openInspector:(c,d)=>{a.openInspector(c,{...d})},closeInspector:()=>{a.closeInspector()},requestOverlayInteraction:(c,d)=>new Promise((p,g)=>{const v=a.getState();if(!v.startOverlayInteraction){g(new Error("Overlay interactions not supported by host"));return}v.startOverlayInteraction({type:c,pluginId:r,onComplete:p,onCancel:()=>g(new Error("Overlay interaction cancelled"))})})}}function kb(a,r){if(!a)return!0;if(Hy(a)){const l=a.binding.split(".");let c=r;for(const d of l)if(c&&typeof c=="object")c=c[d];else return!1;return!!c}if(GE(a)){const l=a.expression,c=l.match(/^(\w+(?:\.\w+)*)\s*===?\s*(.+)$/);if(c){const[,p,g]=c;let v=r;for(const S of p.split("."))if(v&&typeof v=="object")v=v[S];else{v=void 0;break}const b=g.trim();return b==="true"?v===!0:b==="false"?v===!1:b==="null"?v===null:b==="0"?v===0:b.startsWith('"')&&b.endsWith('"')?v===b.slice(1,-1):String(v)===b}const d=l.match(/^(\w+(?:\.\w+)*)\.length\s*===?\s*(\d+)$/);if(d){const[,p,g]=d;let v=r;for(const b of p.split("."))if(v&&typeof v=="object")v=v[b];else{v=void 0;break}return Array.isArray(v)||typeof v=="string"||v instanceof Map?(v instanceof Map?v.size:v.length)===parseInt(g,10):!1}return!1}return!0}function nL(a,r,l){return{id:a.id,title:a.title,keywords:a.keywords,category:a.category,subtitle:a.subtitle,icon:a.icon?nn.createElement(Uu(a.icon),{size:16}):void 0,shortcut:a.shortcut,hideFromAllCategory:a.hideFromAllCategory,isAvailable:a.isAvailable?c=>{const d=c?.plugins?.[r];return kb(a.isAvailable,d)}:void 0,execute:c=>{const d=Uh(c,r,l);return XS(a.action,d,l)}}}function aL(a,r,l){return{id:a.id,icon:nn.createElement(Uu(a.icon),{size:16}),tooltip:a.tooltip,isVisible:a.isVisible?c=>{const d=c?.plugins?.[r];return kb(a.isVisible,d)}:void 0,isEnabled:a.isEnabled?c=>{const d=c?.plugins?.[r];return kb(a.isEnabled,d)}:void 0,onClick:c=>{const d=Uh(c,r,l);return XS(a.action,d,l)}}}function iL(a,r,l){return{id:a.id,icon:nn.createElement(Uu(a.icon),{size:16}),tooltip:a.tooltip,priority:a.priority,isVisible:a.isVisible?c=>{const d=c?.plugins?.[r];return kb(a.isVisible,d)}:void 0,actions:a.actions.map(c=>aL(c,r,l))}}function XS(a,r,l){if(!l||!l[a.type]){console.warn(`No handler found for action: ${a.type}`);return}const c=a.payload?{...a.payload}:{};if(a.payloadBindings){const d=r.getState();for(const[p,g]of Object.entries(a.payloadBindings)){const v=g.split(".");let b=d;for(const S of v)if(b&&typeof b=="object")b=b[S];else{b=void 0;break}c[p]=b}}return l[a.type](r,c)}function oL(a){const r=a.id,l=a.actions;return{id:a.id,name:a.name,version:a.version,description:a.description,icon:a.icon?nn.createElement(Uu(a.icon),{size:16}):void 0,dependencies:a.dependencies,createSlice:d=>{const p=a.state.initialState,g={...p};for(const v of Object.keys(p)){const b=`set${v.charAt(0).toUpperCase()}${v.slice(1)}`;g[b]=S=>{d.setState({[v]:S})}}return g},commands:a.commands?.map(d=>nL(d,r,l)),toolbarActionGroups:a.toolbarGroups?.map(d=>iL(d,r,l)),inspectorPanels:a.panels?.map(d=>({id:d.id,title:typeof d.title=="string"?d.title:d.title.binding,priority:d.priority,component:nn.lazy(()=>Promise.resolve().then(()=>fU).then(p=>({default:g=>{const b=g.services.getState().plugins?.[r]??{},S=(C,k)=>{const M=Uh(g.services,r,l);XS({type:C,payload:k},M,l)},A=p.SchemaPanel;return nn.createElement(A,{panel:d,data:g.data||{},state:b,onAction:S})}})))})),ruleContributions:a.rules?.filter(d=>d.contentRenderer||d.heatmapColor).map(d=>({ruleId:d.id,contentRenderer:d.contentRenderer,heatmapColor:d.heatmapColor})),handlesRules:a.handlesRuleCategories?d=>!!(d.category&&a.handlesRuleCategories?.includes(d.category)):void 0,getIssues:a.getIssues?d=>{const p=a.getIssues(d);return{pluginId:p.pluginId,issues:p.issues}}:void 0,initialize:d=>{const p=Uh(d,r,l),g=[];if(a.messageHandlers){for(const[b,S]of Object.entries(a.messageHandlers)){const A=d.websocket.on(b,C=>{S(p,C)});g.push(A)}const v=d.websocket.onConnectionChange(b=>{b&&a.onLoad&&a.onLoad(p)});g.push(v)}if(a.onLoad&&a.onLoad(p),g.length>0)return()=>{g.forEach(v=>v())}},dispose:a.onUnload?d=>{const p=Uh(d,r,l);return a.onUnload(p)}:void 0}}const rL=[{id:"eslint",name:"ESLint Analysis",load:()=>Promise.resolve().then(()=>NL),enabled:!0}],lL=[];async function sL(a){try{return(await a.load()).default}catch(r){return yn(`Failed to load plugin "${a.id}":`,r),null}}const uL=["uilint-vision/plugin","uilint-semantic/plugin","uilint-duplicates/plugin"];async function cL(){const a=uL.map(async d=>{try{await import(d),$e(`[Loader] Discovered external plugin: ${d}`)}catch{$e(`[Loader] Optional plugin not available: ${d}`)}}),r=lL.map(async d=>{try{await d()}catch(p){Ft("Failed to import external plugin:",p)}});await Promise.all([...a,...r]);const l=X3.getAll();$e(`[Loader] Found ${l.length} plugins in core registry`);const c=[];for(const d of l)try{const p=oL(d);c.push(p),$e(`[Loader] Adapted plugin: ${d.id}`)}catch(p){yn(`[Loader] Failed to adapt plugin "${d.id}":`,p)}return c}async function dL(a=rL,r){const l=[],c=await cL();l.push(...c);const d=a.filter(b=>b.enabled);d.length+c.length;const p=d.map(async(b,S)=>await sL(b)),v=(await Promise.all(p)).filter(b=>b?b.id?!0:(Ft("Plugin missing id, skipping:",b),!1):!1);return l.push(...v),tw(l)}const $S=[{id:"eslint:toggle-scan",title:"Toggle ESLint Scan",keywords:["eslint","scan","toggle","enable","disable","start","stop"],category:"eslint",subtitle:"Enable or disable real-time ESLint analysis",icon:void 0,hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.scanStatus==="scanning"?l.stopScanning():l.startScanning(),a.closeCommandPalette()},isAvailable:a=>a.wsConnected===!0},{id:"eslint:start-scan",title:"Start ESLint Scan",keywords:["eslint","scan","start","analyze","lint","check"],category:"eslint",subtitle:"Scan all elements on the current page",hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.scanStatus!=="scanning"&&l.startScanning(),a.closeCommandPalette()},isAvailable:a=>{const r=a;return r.wsConnected===!0&&r.plugins?.eslint?.scanStatus!=="scanning"}},{id:"eslint:stop-scan",title:"Stop ESLint Scan",keywords:["eslint","scan","stop","disable","off"],category:"eslint",subtitle:"Stop scanning and clear results",hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.stopScanning(),a.closeCommandPalette()},isAvailable:a=>a.plugins?.eslint?.scanStatus==="scanning"},{id:"eslint:open-fixes",title:"Fix All Issues",keywords:["eslint","fix","fixes","autofix","repair","issues"],category:"eslint",subtitle:"Open the fixes inspector panel",hideFromAllCategory:!0,execute:a=>{a.openInspector("fixes",{}),a.closeCommandPalette()},isAvailable:a=>{const l=a.plugins?.eslint;return l?.scanStatus!=="scanning"||!l?.issues?!1:l.issues.size>0}},{id:"eslint:clear-rescan",title:"Clear & Rescan",keywords:["eslint","cache","clear","refresh","reset","rescan"],category:"eslint",subtitle:"Clear cached results and re-scan all files",hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.clearIssues(),l.startScanning(),a.closeCommandPalette()},isAvailable:a=>a.wsConnected===!0}];function fL(a){return a==="scanning"}const Fk={issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set,scanStatus:"scanning",lintingFiles:new Map,availableRules:[],disabledRules:new Set,workspaceRoot:null,ruleConfigs:new Map,ruleConfigUpdating:new Map,workspaceCapabilities:null};function Pk(a){return{...Fk}}function Kk(a,r,l){return{startScanning:()=>{l({scanStatus:"scanning"})},stopScanning:()=>{l({scanStatus:"idle",issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},setIssues:(c,d)=>{const p=r(),g=new Map(p.issues);d.length>0?g.set(c,d):g.delete(c),l({issues:g})},clearIssues:()=>{l({issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},toggleRule:c=>{const d=r(),p=new Set(d.disabledRules);p.has(c)?p.delete(c):p.add(c),l({disabledRules:p})},setAvailableRules:c=>{l({availableRules:c})},setWorkspaceRoot:c=>{l({workspaceRoot:c})},markScanned:c=>{const d=r(),p=new Set(d.scannedDataLocs);p.add(c),l({scannedDataLocs:p})},markFileRequested:c=>{const d=r(),p=new Set(d.requestedFiles);p.add(c),l({requestedFiles:p})},setScanStatus:c=>{l({scanStatus:c})}}}function hL(a,r){return r.size===0?a:a.filter(l=>!r.has(l.ruleId))}function pL(a){if(!a)return null;const r=a.lastIndexOf(":");if(r===-1)return null;const l=a.lastIndexOf(":",r-1);if(l===-1)return null;const c=a.substring(0,l);return c||null}function Jk(a){const r=new Set;for(const l of a){const c=pL(l);c&&r.add(c)}return r}function mL({value:a,onChange:r,disabled:l}){const c=[{value:"error",label:"E",color:"var(--uilint-error, oklch(0.72 0.17 25))"},{value:"warning",label:"W",color:"var(--uilint-warning, oklch(0.82 0.165 80))"},{value:"off",label:"Off",color:"#6b7280"}];return E.jsx("div",{style:{display:"flex",gap:4},children:c.map(d=>E.jsx("button",{onClick:()=>r(d.value),disabled:l,style:{padding:"4px 8px",fontSize:12,fontWeight:500,border:"none",borderRadius:4,cursor:l?"not-allowed":"pointer",background:a===d.value?d.color:"var(--uilint-surface-elevated)",color:a===d.value?"white":"var(--uilint-text-disabled)",opacity:l?.5:1},children:d.label},d.value))})}function gL({data:a}){const r=a?.ruleId,l=Ce(b=>{const S=b.plugins?.eslint;return!S?.availableRules||!r?null:S.availableRules.find(A=>A.id===r)}),c=Ce(b=>{const S=b.plugins?.eslint;return S?.ruleConfigs?S.ruleConfigs.get(r||""):null}),d=Ce(b=>{const S=b.plugins?.eslint;return S?.ruleConfigUpdating?S.ruleConfigUpdating.get(r||"")??!1:!1}),p=Ce(b=>{const S=b.plugins?.eslint;if(!S?.issues)return 0;let A=0;return S.issues.forEach(C=>{A+=C.filter(k=>k.ruleId===r).length}),A}),g=U.useCallback(b=>{r&&Kn.setRuleSeverity(r,b)},[r]);if(!r)return E.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"No rule selected"});if(!l)return E.jsxs("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:["Rule not found: ",r]});const v=c?.severity?c.severity==="warn"?"warning":c.severity:l.currentSeverity==="warn"?"warning":l.currentSeverity??"off";return E.jsxs("div",{style:{padding:16},children:[E.jsxs("div",{style:{marginBottom:16},children:[E.jsx("div",{style:{fontSize:16,fontWeight:600,color:"var(--uilint-text-primary)",marginBottom:4},children:l.name}),E.jsx("div",{style:{fontSize:12,color:"var(--uilint-text-muted)",fontFamily:"monospace"},children:l.id})]}),E.jsx("div",{style:{fontSize:14,color:"var(--uilint-text-secondary)",marginBottom:16,lineHeight:1.5},children:l.description}),E.jsxs("div",{style:{display:"flex",gap:8,marginBottom:16},children:[E.jsx("span",{style:{fontSize:11,fontWeight:500,textTransform:"uppercase",background:l.category!=="static"?"rgba(59, 130, 246, 0.1)":"var(--uilint-surface-elevated)",color:l.category!=="static"?"var(--uilint-accent)":"var(--uilint-text-muted)",padding:"2px 6px",borderRadius:4},children:l.category}),p>0&&E.jsxs("span",{style:{fontSize:11,fontWeight:500,background:"rgba(239, 68, 68, 0.1)",color:"#dc2626",padding:"2px 6px",borderRadius:4},children:[p," issue",p!==1?"s":""]})]}),E.jsxs("div",{style:{marginBottom:16},children:[E.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--uilint-text-muted)",marginBottom:8},children:"Severity"}),E.jsx(mL,{value:v,onChange:g,disabled:d}),d&&E.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)",marginTop:4},children:"Updating..."})]}),l.docs&&E.jsx("div",{style:{marginTop:16},children:E.jsx("a",{href:l.docs,target:"_blank",rel:"noopener noreferrer",style:{fontSize:12,color:"var(--uilint-accent)",textDecoration:"none"},children:"View documentation"})})]})}function kd(a){const r={error:0,warning:0,info:0};for(const l of a)l.severity==="error"?r.error++:l.severity==="warning"?r.warning++:l.severity==="info"&&r.info++;return r}function vL(a,r=[]){const l=new Map;for(const p of a){const g=p.ruleId,v=l.get(g)||[];l.set(g,[...v,p])}const c=new Map;for(const p of r)c.set(p.id,p);const d=[];for(const[p,g]of l){const v=c.get(p),b=kd(g),S=p.includes("/")?p.split("/").pop():p;d.push({id:`rule:${p}`,label:v?.name||S,subtitle:v?.description||p,count:g.length,severityCounts:b,metadata:{isRule:!0,ruleId:p,tileType:"rule",category:v?.category,currentSeverity:v?.currentSeverity,defaultSeverity:v?.defaultSeverity,currentOptions:v?.currentOptions,optionSchema:v?.optionSchema}})}return d.sort((p,g)=>{const v=p.severityCounts?.error??0,b=g.severityCounts?.error??0;return v!==b?b-v:g.count-p.count}),d}function Wk(a,r){const l=a.filter(p=>p.ruleId===r),c=new Map;for(const p of l){const g=p.filePath,v=c.get(g)||[];c.set(g,[...v,p])}const d=[];for(const[p,g]of c){const v=kd(g),S=p.split("/").pop()||p;d.push({id:`file:${p}:${r}`,label:S,subtitle:p,count:g.length,severityCounts:v,metadata:{isFile:!0,filePath:p,ruleId:r,tileType:"file"}})}return d.sort((p,g)=>{const v=p.severityCounts?.error??0,b=g.severityCounts?.error??0;return v!==b?b-v:g.count-p.count}),d}function yL(a){const r=new Map;for(const c of a){const d=c.filePath,p=r.get(d)||[];r.set(d,[...p,c])}const l=[];for(const[c,d]of r){const p=kd(d),v=c.split("/").pop()||c,b=new Set(d.map(S=>S.ruleId));l.push({id:`file:${c}`,label:v,subtitle:c,count:d.length,severityCounts:p,metadata:{isFile:!0,filePath:c,tileType:"file",ruleCount:b.size,issues:d}})}return l.sort((c,d)=>{const p=c.severityCounts?.error??0,g=d.severityCounts?.error??0;return p!==g?g-p:d.count-c.count}),l}function bL(a,r=[]){if(a.length===0)return[];const l=xL(a,r),c=yL(a),d=[...l,...c];return d.sort((p,g)=>{const v=p.severityCounts?.error??0,b=g.severityCounts?.error??0;return v!==b?b-v:g.count-p.count}),d}function xL(a,r=[]){const l=new Map;for(const p of a){const g=p.ruleId,v=l.get(g)||[];l.set(g,[...v,p])}const c=new Map;for(const p of r)c.set(p.id,p);const d=[];for(const[p,g]of l){const v=c.get(p),b=kd(g),S=p.includes("/")?p.split("/").pop():p,A=new Set(g.map(C=>C.filePath));d.push({id:`rule:${p}`,label:v?.name||S,subtitle:v?.description||p,count:g.length,severityCounts:b,fileCount:A.size,metadata:{isRule:!0,ruleId:p,tileType:"rule",issues:g,category:v?.category,currentSeverity:v?.currentSeverity,defaultSeverity:v?.defaultSeverity,currentOptions:v?.currentOptions,optionSchema:v?.optionSchema}})}return d}function Ug(a){const l=a.getState()?.plugins?.eslint;if(!l?.issues)return[];const c=l.disabledRules??new Set,d=[];for(const p of l.issues.values())for(const g of p)c.has(g.ruleId)||d.push(g);return d}function QS(a){return a.getState()?.plugins?.eslint?.availableRules??[]}function eR(a,r){const l=Ug(a);if(l.length===0)return[];const c=QS(a);return bL(l,c)}function tR(a){const r=a.metadata??{};if(r.isRule)return{type:"rule",id:r.ruleId,label:a.label,providerId:"eslint"};if(r.isFile){const l=r.filePath,c=l.split("/").pop()||l;return{type:"file",id:l,label:c,providerId:"eslint"}}return{type:"scope",id:a.id,label:a.label,providerId:"eslint"}}function nR(a){const r=a.some(c=>c.type==="rule"),l=a.some(c=>c.type==="file");return r&&l}function aR(a){const r=a.metadata??{};return r.isRule?{panelId:"eslint-rule",data:{ruleId:r.ruleId}}:r.isFile?{panelId:"eslint-rule",data:{ruleId:r.ruleId,filePath:r.filePath}}:r.isIssue?{panelId:"eslint-rule",data:{ruleId:r.ruleId,filePath:r.filePath,issueId:r.issueId,line:r.line}}:{panelId:"eslint-rule",data:{}}}function wL(a,r,l){let c=a.filter(d=>d.filePath===r);return l&&(c=c.filter(d=>d.ruleId===l)),c.sort((d,p)=>d.line-p.line),c.map(d=>({id:`issue:${d.id}`,label:d.message,subtitle:`Line ${d.line}${d.column?`:${d.column}`:""}`,count:1,severityCounts:{error:d.severity==="error"?1:0,warning:d.severity==="warning"?1:0,info:d.severity==="info"?1:0},metadata:{isIssue:!0,issueId:d.id,ruleId:d.ruleId,filePath:d.filePath,line:d.line,column:d.column,severity:d.severity,issue:d}}))}function SL(a,r){const l=a.metadata??{},c=Ug(r);if(c.length!==0){if(l.isRule){const d=l.ruleId;return Wk(c,d)}if(l.isFile){const d=l.filePath,p=l.ruleId;return wL(c,d,p)}l.isIssue}}function EL(a){const r=a.metadata??{};return!!(r.isRule||r.isFile)}function TL({severity:a}){switch(a){case"error":return E.jsx(Dg,{size:13,className:"text-error flex-shrink-0"});case"warning":return E.jsx(_u,{size:13,className:"text-warning flex-shrink-0"});case"info":return E.jsx(us,{size:13,className:"text-info flex-shrink-0"})}}function AL({severity:a}){const r=a==="error"?"text-error bg-error/10":a==="warning"?"text-warning bg-warning/10":"text-info bg-info/10";return E.jsx("span",{className:be("inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium",r),children:a})}function CL(a,r,l){const c=[],d=a?.category;d&&d!=="static"&&c.push({label:d,accent:!0});const p=a?.defaultSeverity;p&&r!==p&&c.push({label:r});const g=a?.optionSchema,v=a?.defaultOptions,b=Array.isArray(v)?v[0]??{}:{};if(l&&g?.fields)for(const S of g.fields){const A=l[S.key];if(A!==void 0&&A!==b[S.key]){const C=typeof A=="boolean"?`${S.label}: ${A?"on":"off"}`:`${S.label}: ${String(A)}`;if(c.push({label:C}),c.length>=3)break}}return c}function kL({ruleId:a,currentSeverity:r,ruleMeta:l,currentOptions:c,defaultOptions:d,onSeverityChange:p,onOptionChange:g,onResetOptions:v,isUpdating:b}){const[S,A]=U.useState(!1),C=U.useMemo(()=>CL(l,r,c),[l,r,c]),k=[{value:"off",label:"Off",dot:"bg-muted-foreground/30"},{value:"warn",label:"Warn",dot:"bg-warning/70"},{value:"error",label:"Error",dot:"bg-error/70"}];return E.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-foreground/[0.06]",children:[E.jsx("div",{className:"flex items-center gap-0.5 p-0.5 bg-foreground/[0.02] rounded-md border border-foreground/[0.04]",children:k.map(M=>E.jsxs("button",{type:"button",onClick:()=>p(M.value),className:be("flex items-center gap-1 px-1.5 py-0.5 rounded","text-[10px] transition-colors duration-100",r===M.value?"bg-foreground/[0.08] text-foreground font-medium":"text-foreground/50 hover:bg-foreground/[0.04] hover:text-foreground/70"),children:[E.jsx("span",{className:be("w-1.5 h-1.5 rounded-full flex-shrink-0",M.dot)}),M.label]},M.value))}),C.map(M=>E.jsx("span",{className:be("rounded-full px-2 py-0.5 text-[10px] leading-tight","border border-foreground/[0.06]",M.accent?"text-purple-500/70 bg-purple-500/[0.06]":"text-muted-foreground/60 bg-foreground/[0.02]"),children:M.label},M.label)),E.jsx("div",{className:"flex-1"}),E.jsx("div",{onKeyDown:M=>{M.key==="Escape"&&S&&M.stopPropagation()},children:E.jsx(hk,{open:S,onClose:()=>A(!1),placement:"bottom",align:"end",width:320,trigger:E.jsxs("button",{type:"button",onClick:()=>A(!S),className:be("inline-flex items-center gap-1.5","px-2 py-1 rounded","text-[11px] text-muted-foreground/60 hover:text-foreground/80","hover:bg-foreground/[0.04]","transition-colors duration-100",S&&"bg-foreground/[0.04] text-foreground/80"),children:[E.jsx(xS,{size:12}),"Configure"]}),children:E.jsx("div",{className:"p-1",children:E.jsx(Ak,{ruleId:a,currentSeverity:r,onSeverityChange:p,optionSchema:l?.optionSchema,currentOptions:c,defaultOptions:d,onOptionChange:g,onResetOptions:v,isUpdating:b})})})})]})}function RL({filePath:a,issues:r,defaultExpanded:l,onIssueClick:c}){const[d,p]=U.useState(l),g=a.split("/").pop()||a,v=U.useMemo(()=>[...r].sort((b,S)=>b.line-S.line),[r]);return E.jsxs("div",{className:"border-b border-foreground/[0.04] last:border-b-0",children:[E.jsxs("button",{onClick:()=>p(!d),className:be("w-full flex items-center gap-2 px-3 py-2","text-left hover:bg-foreground/[0.03] transition-colors duration-100"),children:[d?E.jsx(Mg,{size:12,className:"text-muted-foreground/50 flex-shrink-0"}):E.jsx(_h,{size:12,className:"text-muted-foreground/50 flex-shrink-0"}),E.jsx(db,{size:13,className:"text-muted-foreground/60 flex-shrink-0"}),E.jsx("span",{className:"text-xs font-medium text-foreground/80 truncate flex-1",children:g}),E.jsx("span",{className:"text-[10px] text-muted-foreground/50 tabular-nums flex-shrink-0",children:r.length})]}),d&&E.jsx(Ne.div,{initial:!1,animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.1},children:v.map(b=>E.jsxs("button",{type:"button",onClick:()=>c(a,b.id),className:be("w-full flex items-center gap-2 pl-8 pr-3 py-1.5","border-t border-foreground/[0.02]","text-left hover:bg-foreground/[0.03] transition-colors duration-100","cursor-pointer"),children:[E.jsx(TL,{severity:b.severity}),E.jsx("span",{className:"text-[11px] font-mono text-muted-foreground/50 tabular-nums w-7 flex-shrink-0",children:b.line}),E.jsx("span",{className:"text-[11px] text-foreground/60 truncate",children:b.message})]},b.id))})]})}function ML({ruleId:a,services:r}){const l=Ug(r),c=QS(r),[d,p]=U.useState(null),[g,v]=U.useState(null);U.useEffect(()=>{p(null),v(null)},[a]);const b=U.useMemo(()=>c.find(J=>J.id===a),[c,a]),S=U.useMemo(()=>l.filter(J=>J.ruleId===a),[l,a]),A=U.useMemo(()=>{const J=new Map;for(const $ of S){const ge=J.get($.filePath)||[];J.set($.filePath,[...ge,$])}return Array.from(J.entries()).sort(([,$],[,ge])=>ge.length-$.length)},[S]),C=U.useMemo(()=>d?S.filter(J=>J.filePath===d):[],[S,d]),k=Ce(J=>J.plugins?.eslint?.ruleConfigs?.get(a)),M=Ce(J=>J.plugins?.eslint?.ruleConfigUpdating?.get(a)??!1),L=U.useMemo(()=>k?.severity??b?.defaultSeverity??"warn",[k?.severity,b?.defaultSeverity]),B=U.useMemo(()=>b?.defaultOptions?Array.isArray(b.defaultOptions)?b.defaultOptions[0]??{}:b.defaultOptions??{}:{},[b?.defaultOptions]),H=U.useCallback(J=>{const $=J==="warn"?"warning":J;Kn.setRuleSeverity(a,$)},[a]),Q=U.useCallback((J,$)=>{const we={...k?.options??{},[J]:$};Kn.setRuleConfig(a,we)},[a,k?.options]),K=U.useCallback(()=>{if(!b?.defaultOptions)return;const J=Array.isArray(b.defaultOptions)?b.defaultOptions[0]??{}:b.defaultOptions??{};Kn.setRuleConfig(a,J)},[a,b?.defaultOptions]),q=U.useCallback((J,$)=>{p(J),v($)},[]),ae=U.useCallback(()=>{p(null),v(null)},[]),he=a.includes("/")?a.split("/").pop():a,Ae=S.some(J=>J.severity==="error")?"error":S.some(J=>J.severity==="warning")?"warning":"info";if(d){const J=d.split("/").pop()||d;return E.jsxs("div",{className:"flex flex-col h-full",children:[E.jsx(Hk,{expandedRuleName:b?.name||he,expandedFileName:J,onCollapseToRoot:ae,onCollapseFile:ae,variant:"embedded"}),E.jsx("div",{className:"flex-1 overflow-y-auto",children:C.length>0?E.jsx(VS,{filePath:d,issues:C,contextLines:2,selectedIssueId:g,onIssueSelect:v}):E.jsx("div",{className:"flex items-center justify-center py-12 text-xs text-muted-foreground/50",children:"No issues in this file"})})]})}return E.jsxs("div",{className:"flex flex-col h-full",children:[E.jsxs("div",{className:"px-4 pt-4 pb-3 border-b border-foreground/[0.06]",children:[E.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[E.jsx("h3",{className:"text-sm font-semibold text-foreground/90 truncate",children:b?.name||he}),S.length>0&&E.jsx(AL,{severity:Ae})]}),b?.description&&E.jsx("p",{className:"text-xs text-muted-foreground/70 leading-relaxed line-clamp-2",children:b.description}),E.jsxs("div",{className:"flex items-center gap-3 mt-2 text-[10px] text-muted-foreground/50",children:[E.jsxs("span",{className:"tabular-nums",children:[S.length," issue",S.length!==1?"s":""]}),E.jsxs("span",{className:"tabular-nums",children:[A.length," file",A.length!==1?"s":""]})]})]}),E.jsx(kL,{ruleId:a,currentSeverity:L,ruleMeta:b,currentOptions:k?.options,defaultOptions:B,onSeverityChange:H,onOptionChange:Q,onResetOptions:K,isUpdating:M}),E.jsx("div",{className:"flex-1 overflow-y-auto",children:A.length>0?A.map(([J,$],ge)=>E.jsx(RL,{filePath:J,issues:$,defaultExpanded:ge<3,onIssueClick:q},J)):E.jsx("div",{className:"flex items-center justify-center py-12 text-xs text-muted-foreground/50",children:"No issues found for this rule"})})]})}function DL({filePath:a,services:r}){const[l,c]=U.useState(null),d=Ug(r),p=U.useMemo(()=>d.filter(C=>C.filePath===a),[d,a]),g=U.useCallback(C=>{c(C)},[]),v=a.split("/").pop()||a,b=p.filter(C=>C.severity==="error").length,S=p.filter(C=>C.severity==="warning").length,A=p.filter(C=>C.severity==="info").length;return E.jsxs("div",{className:"flex flex-col h-full",children:[E.jsxs("div",{className:"px-4 pt-4 pb-3 border-b border-foreground/[0.06]",children:[E.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[E.jsx(db,{size:14,className:"text-muted-foreground/60 flex-shrink-0"}),E.jsx("h3",{className:"text-sm font-semibold text-foreground/90 truncate",children:v})]}),E.jsx("p",{className:"text-[11px] text-muted-foreground/50 truncate mb-2",children:a}),E.jsxs("div",{className:"flex items-center gap-3 text-[10px]",children:[b>0&&E.jsxs("span",{className:"flex items-center gap-1 text-error/80",children:[E.jsx(Dg,{size:10}),E.jsx("span",{className:"tabular-nums",children:b})]}),S>0&&E.jsxs("span",{className:"flex items-center gap-1 text-warning/80",children:[E.jsx(_u,{size:10}),E.jsx("span",{className:"tabular-nums",children:S})]}),A>0&&E.jsxs("span",{className:"flex items-center gap-1 text-info/80",children:[E.jsx(us,{size:10}),E.jsx("span",{className:"tabular-nums",children:A})]})]})]}),E.jsx("div",{className:"flex-1 overflow-y-auto",children:p.length>0?E.jsx(VS,{filePath:a,issues:p,contextLines:2,selectedIssueId:l,onIssueSelect:g}):E.jsx("div",{className:"flex items-center justify-center py-12 text-xs text-muted-foreground/50",children:"No issues in this file"})})]})}function _L(a){const r=Ug(a),l=QS(a),c=[],d=new Map;for(const v of r){const b=d.get(v.ruleId)||[];d.set(v.ruleId,[...b,v])}const p=new Map(l.map(v=>[v.id,v]));for(const[v,b]of d){const S=p.get(v),A=v.includes("/")?v.split("/").pop():v,C=new Set(b.map(k=>k.filePath));c.push({id:`rule:${v}`,section:"rules",label:S?.name||A,subtitle:S?.description||v,severityCounts:kd(b),count:b.length,fileCount:C.size,searchFields:{label:S?.name||A,subtitle:S?.description,keywords:[v,A,S?.category||""].filter(Boolean),extra:b.slice(0,20).map(k=>k.message)},metadata:{ruleId:v,tileType:"rule"}})}for(const v of l){if(d.has(v.id))continue;const b=v.id.includes("/")?v.id.split("/").pop():v.id;c.push({id:`rule:${v.id}`,section:"rules",label:v.name||b,subtitle:v.description||v.id,severityCounts:{error:0,warning:0,info:0},count:0,fileCount:0,searchFields:{label:v.name||b,subtitle:v.description,keywords:[v.id,b,v.category||""].filter(Boolean)},metadata:{ruleId:v.id,tileType:"rule"}})}const g=new Map;for(const v of r){const b=g.get(v.filePath)||[];g.set(v.filePath,[...b,v])}for(const[v,b]of g){const S=v.split("/").pop()||v,A=new Set(b.map(C=>C.ruleId));c.push({id:`file:${v}`,section:"files",label:S,subtitle:v,severityCounts:kd(b),count:b.length,fileCount:A.size,searchFields:{label:S,subtitle:v,keywords:Array.from(A),extra:b.slice(0,20).map(C=>C.message)},metadata:{filePath:v,tileType:"file"}})}return c.sort((v,b)=>{const S=v.severityCounts?.error??0,A=b.severityCounts?.error??0;return S!==A?A-S:(b.count??0)-(v.count??0)}),c}function zL(a,r){const l=a.metadata?.tileType;if(l==="rule"){const c=a.metadata?.ruleId;return{element:U.createElement(ML,{ruleId:c,services:r})}}if(l==="file"){const c=a.metadata?.filePath;return{element:U.createElement(DL,{filePath:c,services:r})}}return null}const OL={eslint:{onPageLoad:!1,onFileChange:!0},vision:{onRouteChange:!1,onInitialLoad:!1}},iR=["lint:result","lint:progress","file:changed","workspace:info","workspace:capabilities","rules:metadata","rule:config:result","rule:config:changed"],IS={id:"eslint",name:"ESLint Analysis",version:"1.0.0",description:"Real-time ESLint analysis with heatmap visualization",ruleCategories:["static"],meta:{id:"eslint",name:"ESLint Analysis",version:"1.0.0",description:"Real-time ESLint analysis with heatmap visualization"},createSlice:a=>{const r=Pk();let l=r;const p=Kk(a,()=>l,g=>{l={...l,...g},a.setState(g)});return{...r,...p}},commands:$S,inspectorPanels:[{id:"eslint-rule",title:({data:a})=>a?.ruleId?`Rule: ${a.ruleId}`:"Rule Details",component:gL,priority:10}],tileProvider:{getTileItems:eR,createFilter:tR,isTerminal:nR,getInspectorData:aR,getChildItems:SL,canExpand:EL},getSearchItems:_L,getPreviewPanel:zL,handlesRules:a=>a.id.startsWith("uilint/")||a.category==="static"?!0:(a.id==="uilint/semantic-vision",!1),getIssues:a=>{const r=a,l=new Map;return r.issues.forEach((c,d)=>{const p=c.map(g=>({id:g.id,message:g.message,severity:g.severity,dataLoc:g.dataLoc,line:g.line,column:g.column,ruleId:g.ruleId}));p.length>0&&l.set(d,p)}),{pluginId:"eslint",issues:l}},getPaletteItems:a=>{const r=[],l=a.getState(),c=l?.plugins?.eslint;if(c?.issues)for(const[,d]of c.issues)for(const p of d){const g=p.filePath.split("/").pop()||p.filePath,v=p.ruleId.includes("/")?p.ruleId.split("/").pop():p.ruleId;r.push({id:`eslint:issue:${p.id}`,title:p.message,subtitle:`${g}:${p.line}`,keywords:["Lint",p.ruleId,v,g,p.severity].filter((b,S,A)=>A.indexOf(b)===S),execute:b=>{b.openInspector("issue",{issue:p}),b.closeCommandPalette()},metadata:{issue:p,providerId:"eslint"}})}for(const d of $S)d.isAvailable&&!d.isAvailable(l)||r.push({id:d.id,title:d.title,subtitle:d.subtitle,keywords:["Command","ESLint",...d.keywords],execute:d.execute,metadata:{isCommand:!0}});return r},getRules:a=>{const r=a.getState();if(!r?.availableRules)return[];const l=r.ruleConfigs??new Map;return r.availableRules.map(c=>{const p=l.get(c.id)?.severity??c.currentSeverity??c.defaultSeverity,g=p==="warn"?"warning":p;return{id:c.id,name:c.name,description:c.description,category:c.category,severity:g,fixable:!1,pluginId:"eslint",docs:c.docs}})},setRuleSeverity:(a,r,l)=>{const c=r==="warning"?"warn":r,d=l.getState(),p=new Map(d.ruleConfigUpdating??new Map);p.set(a,!0),l.setState({ruleConfigUpdating:p}),l.websocket.send({type:"rule:config:set",ruleId:a,severity:c,requestId:`rule-severity-${Date.now()}`}),$e("[ESLint Plugin] Setting rule severity:",a,"->",c)},getRuleConfig:(a,r)=>(r.getState()?.ruleConfigs??new Map).get(a)?.options??{},setRuleConfig:(a,r,l)=>{const c=l.getState(),d=new Map(c.ruleConfigUpdating??new Map);d.set(a,!0),l.setState({ruleConfigUpdating:d}),l.websocket.send({type:"rule:config:set",ruleId:a,options:r,requestId:`rule-config-${Date.now()}`}),$e("[ESLint Plugin] Setting rule config:",a,r)},initialize:a=>{if($e("[ESLint Plugin] Initializing..."),Tb())return $e("[ESLint Plugin] Running in STATIC mode (manifest-based)"),T7(a);$e("[ESLint Plugin] Running in WEBSOCKET mode");const r=[];for(const c of iR){const d=a.websocket.on(c,p=>{rR(a,p)});r.push(d)}$e("[ESLint Plugin] Subscribed to",iR.length,"message types");const l=a.domObserver.onElementsAdded(c=>{jL(a,c)});return r.push(l),$e("[ESLint Plugin] Subscribed to DOM observer"),()=>{$e("[ESLint Plugin] Disposing..."),r.forEach(c=>c())}},dispose:a=>{$e("[ESLint Plugin] Disposed")}};function oR(a){const r=a.domObserver.getElements();if(r.length===0)return;const l=r.map(p=>p.dataLoc),c=Jk(l);if(c.size===0)return;const d=new Set;for(const p of c){const g=`lint-${Date.now()}-${p.replace(/[^a-zA-Z0-9]/g,"-")}`;a.websocket.send({type:"lint:file",filePath:p,requestId:g}),d.add(p)}a.setState({requestedFiles:d}),$e("[ESLint Plugin] Re-requested linting for",c.size,"files after config change")}function jL(a,r){const l=a.getState();if($e("[ESLint Plugin] handleElementsAdded called with",r.length,"elements"),$e("[ESLint Plugin] State check - scanStatus:",l?.scanStatus,"wsConnected:",a.websocket.isConnected),l.scanStatus!=="scanning"){$e("[ESLint Plugin] Scanning not active (status:",l.scanStatus,"), skipping lint requests");return}if(!a.websocket.isConnected){$e("[ESLint Plugin] WebSocket not connected, skipping lint requests");return}const c=r.map(v=>v.dataLoc),d=Jk(c);if(d.size===0){$e("[ESLint Plugin] No file paths extracted from",r.length,"elements");return}$e("[ESLint Plugin] Detected",r.length,"elements from",d.size,"unique files:",Array.from(d).slice(0,3));const p=l.requestedFiles??new Set,g=[];for(const v of d)if(!p.has(v)){g.push(v);const b=`lint-${Date.now()}-${v.replace(/[^a-zA-Z0-9]/g,"-")}`;a.websocket.send({type:"lint:file",filePath:v,requestId:b}),$e("[ESLint Plugin] Sent lint:file request for",v)}if(g.length>0){const v=new Set(p);for(const b of g)v.add(b);a.setState({requestedFiles:v}),$e("[ESLint Plugin] Updated requestedFiles with",g.length,"new files")}else $e("[ESLint Plugin] All files already requested, skipping")}function rR(a,r){switch(r.type){case"lint:result":{const{filePath:l,issues:c}=r;$e("[ESLint Plugin] Received lint result:",l,c.length,"issues");const d=c.map(b=>BD({...b,dataLoc:b.dataLoc||`${l}:${b.line}:${b.column||0}`})).filter(b=>b!==null),p=new Map;for(const b of d){const S=p.get(b.dataLoc)||[];p.set(b.dataLoc,[...S,b])}const g=a.getState(),v=new Map(g.issues);for(const[b,S]of p)v.set(b,S);a.setState({issues:v});break}case"lint:progress":{const{filePath:l,phase:c}=r;$e("[ESLint Plugin] Lint progress:",l,c);const d=a.getState(),p=new Map(d.lintingFiles);if(c.startsWith("Done"))p.delete(l);else{const g=p.get(l);p.set(l,{phase:c,startedAt:g?.startedAt??Date.now()})}a.setState({lintingFiles:p});break}case"file:changed":{const{filePath:l}=r;$e("[ESLint Plugin] File changed:",l);const c=a.getState(),d=new Map(c.issues);for(const[g]of d)g.startsWith(l+":")&&d.delete(g);const p=new Set(c.requestedFiles??new Set);p.delete(l),a.setState({issues:d,requestedFiles:p});break}case"workspace:info":{const{appRoot:l,workspaceRoot:c,serverCwd:d}=r;$e("[ESLint Plugin] Workspace info:",{appRoot:l,workspaceRoot:c,serverCwd:d}),a.setState({appRoot:l,workspaceRoot:c,serverCwd:d});break}case"workspace:capabilities":{const{postToolUseHook:l}=r;$e("[ESLint Plugin] Workspace capabilities:",{postToolUseHook:l}),a.setState({workspaceCapabilities:{postToolUseHook:l}});break}case"rules:metadata":{const{rules:l}=r;$e("[ESLint Plugin] Received rules metadata:",l.length,"rules");const c=new Map;for(const d of l)c.set(d.id,{severity:d.currentSeverity??d.defaultSeverity,options:d.currentOptions??(d.defaultOptions&&d.defaultOptions.length>0?d.defaultOptions[0]:void 0)});a.setState({availableRules:l,ruleConfigs:c});break}case"rule:config:result":{const{ruleId:l,severity:c,options:d,success:p,error:g}=r,v=a.getState(),b=new Map(v.ruleConfigUpdating);if(b.delete(l),a.setState({ruleConfigUpdating:b}),p){const S=a.getState(),A=new Map(S.ruleConfigs);A.set(l,{severity:c,options:d}),a.setState({ruleConfigs:A,issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set}),oR(a),$e("[ESLint Plugin] Rule config updated:",l,"->",c,"- refreshing lint results")}else yn("[ESLint Plugin] Failed to update rule config:",g);break}case"rule:config:changed":{const{ruleId:l,severity:c,options:d}=r,p=a.getState(),g=new Map(p.ruleConfigs);g.set(l,{severity:c,options:d}),a.setState({ruleConfigs:g,issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set}),oR(a),$e("[ESLint Plugin] Rule config changed (broadcast):",l,"->",c,"- refreshing lint results");break}}}const NL=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_AUTO_SCAN_SETTINGS:OL,_handleWebSocketMessageForTesting:rR,aggregateByFile:Wk,aggregateByRule:vL,clearStaticMode:Ok,configureStaticMode:zk,countSeverities:kd,createESLintActions:Kk,createESLintSlice:Pk,createEslintTileFilter:tR,default:IS,eslintCommands:$S,eslintPlugin:IS,filterByDisabledRules:hL,getEslintInspectorData:aR,getEslintTileItems:eR,getFileSource:BS,getManifestMetadata:A7,initialESLintState:Fk,isEslintTileTerminal:nR,isScanning:fL,isStaticMode:Tb},Symbol.toStringTag,{value:"Module"}));function LL(a){const r=new Map;for(const l of a){const c=l.filePath||"unknown",d=r.get(c)||[];d.push(l),r.set(c,d)}for(const[l,c]of r)r.set(l,c.sort((d,p)=>d.line-p.line));return r}function UL(a,r,l){const c=Array.from(a.values()).reduce((g,v)=>g+v.length,0),d=a.size;if(c===0)return"No lint issues found on the current page.";const p=[];if(p.push("# Fix Lint Issues"),p.push(""),p.push(`There are **${c} lint issue${c===1?"":"s"}** across **${d} file${d===1?"":"s"}** that need to be fixed.`),p.push(""),p.push("## Instructions"),p.push(""),p.push("1. Fix ALL of the lint issues in the files listed below"),p.push("2. Do NOT ignore or suppress any issues with eslint-disable comments"),p.push("3. Do NOT skip any issues - each one must be properly addressed"),p.push("4. Run the linter after fixing to verify all issues are resolved"),p.push("5. If an issue cannot be fixed without breaking functionality, explain why and propose an alternative solution"),p.push(""),l){p.push("## Affected Files"),p.push(""),p.push("The following files have lint issues. When you edit each file, you will receive the specific lint errors automatically."),p.push("");for(const[g,v]of a){const b=r&&g.startsWith(r)?g.slice(r.length+1):g;p.push(`- \`${b}\` (${v.length} issue${v.length===1?"":"s"})`)}p.push(""),p.push("---"),p.push(""),p.push("Open each file above and fix all reported lint issues. The linter will provide specific error details when you edit each file.")}else{p.push("## Affected Files"),p.push("");for(const[g,v]of a){const b=r&&g.startsWith(r)?g.slice(r.length+1):g;p.push(`### ${b}`),p.push("");for(const S of v){const A=S.column?`Line ${S.line}, Column ${S.column}`:`Line ${S.line}`,C=S.severity==="error"?"ERROR":"WARNING",k=S.ruleId?` (${S.ruleId})`:"";p.push(`- **[${C}]** ${A}${k}`),p.push(` ${S.message}`)}p.push("")}p.push("---"),p.push(""),p.push(`Please fix all ${c} issues listed above. Do not use eslint-disable comments or any other method to suppress warnings. Each issue must be properly resolved.`)}return p.join(`
|
|
256
|
+
`)}function H9(){const a=Ce(p=>p.activePluginOperations),r=Ce(p=>p.mobile.isMobile),l=Object.values(a).filter(p=>p.status==="active");if(l.length===0)return null;const c=r?44:36,d=B9(l);return E.jsxs("div",{className:"relative flex items-center justify-center rounded-full border border-border bg-glass-medium",style:{width:c,height:c},title:d,"aria-label":`${l.length} operation${l.length>1?"s":""} in progress`,children:[E.jsx("div",{className:"animate-spin rounded-full border-2 border-muted-foreground/30 border-t-muted-foreground",style:{width:c*.5,height:c*.5}}),l.length>1&&E.jsx("span",{className:"absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-accent text-[10px] font-semibold text-accent-foreground",children:l.length})]})}function V9(){return typeof navigator>"u"?!1:navigator.platform.toUpperCase().indexOf("MAC")>=0}function q9(){const a=Ce(M=>M.inspector.open),r=Ce(M=>M.commandPalette.open),l=Ce(M=>M.openInspectorPanel),c=Ce(M=>M.openCommandPalette),d=Ce(M=>M.mobile.isMobile),p=Ce(M=>M.mobile.isTouchDevice),g=Ce(M=>M.wsConnected),v=Ce(M=>M.connectionStatus.mode),b=document.getElementById("uilint-portal")||document.body;if(a||r)return null;const S=d?44:36,A=V9()?"⌘":"Ctrl+",C=!p,k=v==="websocket"&&!g;return yd.createPortal(E.jsx(ga,{children:E.jsxs(Ne.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15,ease:[.32,.72,0,1]},style:{position:"fixed",top:16,right:16,display:"flex",alignItems:"center",gap:8,pointerEvents:"auto"},children:[E.jsx(U9,{}),E.jsx(H9,{}),C&&E.jsxs(Ne.div,{initial:{opacity:0,x:10},animate:{opacity:1,x:0},transition:{duration:.2,delay:.1},style:{height:S,padding:"0 12px",borderRadius:S/2,display:"flex",alignItems:"center",justifyContent:"center",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:12,fontWeight:500,color:"var(--uilint-text-muted)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:[E.jsxs("span",{style:{opacity:.7},children:[A,"K"]}),E.jsx("span",{style:{marginLeft:6,opacity:.5},children:"to search"})]}),p&&E.jsx(Ne.button,{initial:{opacity:0,x:10},animate:{opacity:1,x:0},whileHover:{scale:1.05},whileTap:{scale:.95},transition:{duration:.15,ease:[.32,.72,0,1]},onClick:c,"aria-label":"Open search",title:"Search issues",style:{width:S,height:S,borderRadius:S/2,border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--uilint-text-secondary)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:E.jsx(bS,{size:d?20:18})}),E.jsxs("div",{style:{position:"relative"},children:[E.jsx(Ne.button,{whileHover:{scale:1.05},whileTap:{scale:.95},onClick:l,"aria-label":"Open inspector",title:k?"Server not connected - click to see setup instructions":"Open inspector",style:{width:S,height:S,borderRadius:S/2,border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--uilint-text-secondary)",...ju("medium","md",!1),borderTop:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderBottom:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))",borderLeft:"1px solid var(--uilint-glass-border-light, rgba(255, 255, 255, 0.8))",borderRight:"1px solid var(--uilint-glass-border, rgba(255, 255, 255, 0.5))"},children:E.jsx(zN,{size:d?20:18})}),k&&E.jsx(Ne.div,{initial:{scale:0},animate:{scale:1},style:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:"50%",background:"var(--uilint-warning, #fbbf24)",border:"2px solid var(--uilint-surface, #fff)",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.15)"},title:"Server not connected"})]})]})}),b)}const Ik=10,Y9={isSelecting:!1,startPoint:null,currentPoint:null,mounted:!1};function G9(a,r){switch(r.type){case"MOUNT":return{...a,mounted:!0};case"START_SELECTION":return{...a,isSelecting:!0,startPoint:r.point,currentPoint:r.point};case"UPDATE_SELECTION":return{...a,currentPoint:r.point};case"COMPLETE_SELECTION":return{...a,isSelecting:!1,startPoint:null,currentPoint:null};default:return a}}const Lr={overlayBg:"rgba(0, 0, 0, 0.5)",selectionBorder:"var(--uilint-accent, #fbbf24)",selectionBg:"transparent",textBg:"var(--uilint-backdrop, rgba(0, 0, 0, 0.8))",textColor:"var(--uilint-text-primary, #ffffff)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontMono:'"SF Mono", Monaco, "Cascadia Code", monospace'};function X9({active:a,onRegionSelected:r,onCancel:l}){const[c,d]=U.useReducer(G9,Y9),{isSelecting:p,startPoint:g,currentPoint:v,mounted:b}=c;U.useEffect(()=>{d({type:"MOUNT"})},[]);const S=U.useCallback(()=>{if(!g||!v)return null;const H=Math.min(g.x,v.x),Q=Math.min(g.y,v.y),K=Math.abs(v.x-g.x),q=Math.abs(v.y-g.y);return{x:H,y:Q,width:K,height:q}},[g,v]),A=U.useCallback(H=>{H.button===0&&d({type:"START_SELECTION",point:{x:H.clientX,y:H.clientY}})},[]),C=U.useCallback(H=>{!p||!g||d({type:"UPDATE_SELECTION",point:{x:H.clientX,y:H.clientY}})},[p,g]),k=U.useCallback(()=>{if(!p||!g)return;const H=S();H&&H.width>Ik&&H.height>Ik?r(H):l(),d({type:"COMPLETE_SELECTION"})},[p,g,S,r,l]);if(U.useEffect(()=>{if(!a)return;const H=Q=>{Q.key==="Escape"&&(Q.preventDefault(),Q.stopPropagation(),l())};return document.addEventListener("keydown",H,!0),()=>{document.removeEventListener("keydown",H,!0)}},[a,l]),U.useLayoutEffect(()=>{if(!a)return;const H=Q=>{Q.preventDefault()};return document.body.style.overflow="hidden",document.addEventListener("wheel",H,{passive:!1}),document.addEventListener("touchmove",H,{passive:!1}),()=>{document.body.style.overflow="",document.removeEventListener("wheel",H),document.removeEventListener("touchmove",H)}},[a]),!a||!b)return null;const M=S(),L=typeof document<"u"?document.getElementById("uilint-portal")||document.body:null;if(!L)return null;const B=E.jsxs("div",{"data-testid":"region-selector-overlay","data-ui-lint":!0,onMouseDown:A,onMouseMove:C,onMouseUp:k,style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:999999,cursor:"crosshair",backgroundColor:Lr.overlayBg,fontFamily:Lr.fontFamily},children:[E.jsxs("div",{style:{position:"absolute",top:"20px",left:"50%",transform:"translateX(-50%)",padding:"12px 20px",borderRadius:"12px",backgroundColor:Lr.textBg,color:Lr.textColor,fontSize:"14px",fontWeight:500,boxShadow:"0 4px 20px rgba(0, 0, 0, 0.4)",backdropFilter:"blur(16px)",WebkitBackdropFilter:"blur(16px)",pointerEvents:"none",userSelect:"none"},children:["Click and drag to select a region"," ",E.jsx("kbd",{style:{padding:"2px 6px",borderRadius:"4px",backgroundColor:"rgba(255, 255, 255, 0.1)",border:"1px solid rgba(255, 255, 255, 0.2)",fontSize:"11px",fontFamily:Lr.fontMono,marginLeft:"4px"},children:"Esc"})," ","to cancel"]}),M&&M.width>0&&M.height>0&&E.jsxs(E.Fragment,{children:[E.jsx("div",{"data-testid":"selection-rectangle",style:{position:"absolute",left:`${M.x}px`,top:`${M.y}px`,width:`${M.width}px`,height:`${M.height}px`,border:`2px solid ${Lr.selectionBorder}`,backgroundColor:Lr.selectionBg,pointerEvents:"none",boxShadow:`0 0 0 9999px ${Lr.overlayBg}`}}),E.jsxs("div",{"data-testid":"dimensions-label",style:{position:"absolute",left:`${M.x}px`,top:`${M.y-32}px`,padding:"6px 10px",borderRadius:"6px",backgroundColor:Lr.textBg,color:Lr.textColor,fontSize:"12px",fontFamily:Lr.fontMono,fontWeight:500,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.3)",pointerEvents:"none",userSelect:"none",whiteSpace:"nowrap"},children:[Math.round(M.width)," x ",Math.round(M.height)]})]})]});return yd.createPortal(B,L)}let GS=!1;function $9(){if(typeof document>"u")return;let a=document.getElementById("uilint-portal");return a||(a=document.createElement("div"),a.id="uilint-portal",a.style.cssText="position: fixed; top: 0; left: 0; z-index: 99990; pointer-events: none;",document.body.appendChild(a),GS=!0),a}function Q9(){if(!GS)return;const a=document.getElementById("uilint-portal");a&&(a.remove(),GS=!1)}function I9({enabled:a=!0}){const r=Ce(v=>v.overlayInteraction),l=Ce(v=>v.completeOverlayInteraction),c=Ce(v=>v.cancelOverlayInteraction),d=r?.type==="region-select",p=U.useCallback(v=>{l(v)},[l]),g=U.useCallback(()=>{c()},[c]);return U.useEffect(()=>(a&&$9(),()=>{Q9()}),[a]),a?E.jsxs(E.Fragment,{children:[E.jsx(q9,{}),E.jsx(VD,{}),E.jsx(S8,{}),E.jsx(j9,{}),E.jsx(X9,{active:d,onRegionSelected:p,onCancel:g})]}):null}const Cb="data-loc",Z9=100;function F9(a,r){return`loc:${a}#${r}`}function P9(a){if(!a)return null;let r=a;if(r.startsWith("loc:")){r=r.slice(4);const l=r.lastIndexOf("#");l!==-1&&(r=r.slice(0,l))}return r||null}function K9(a,r){return r&&a.includes("node_modules")}class J9{observer=null;reconcileTimeout=null;knownElements=new Map;addedHandlers=new Set;removedHandlers=new Set;isRunning=!1;hideNodeModules=!0;options;constructor(r={}){this.options=r}setHideNodeModules(r){this.hideNodeModules=r,this.isRunning&&this.reconcile()}start(){if(typeof window>"u"&&!this.options.root||this.isRunning)return;this.isRunning=!0;const r=this.options.MutationObserverImpl??(typeof window<"u"?window.MutationObserver:void 0),l=this.options.root??(typeof document<"u"?document.body:void 0);r&&l&&(this.observer=new r(this.handleMutations.bind(this)),this.observer.observe(l,{childList:!0,subtree:!0})),this.reconcile()}stop(){this.isRunning=!1,this.observer&&(this.observer.disconnect(),this.observer=null),this.reconcileTimeout&&(clearTimeout(this.reconcileTimeout),this.reconcileTimeout=null),this.knownElements.clear()}onElementsAdded(r){return this.addedHandlers.add(r),()=>{this.addedHandlers.delete(r)}}onElementsRemoved(r){return this.removedHandlers.add(r),()=>{this.removedHandlers.delete(r)}}getElements(){return this.scanElements()}handleMutations(r){let l=!1;for(const c of r){for(const d of c.addedNodes)if(this.hasDataLocElements(d)){l=!0;break}if(l)break;for(const d of c.removedNodes)if(this.hasDataLocElements(d)){l=!0;break}if(l)break}l&&this.debouncedReconcile()}hasDataLocElements(r){return r instanceof Element?!!(r.hasAttribute(Cb)||r.querySelector(`[${Cb}]`)):!1}debouncedReconcile(){this.reconcileTimeout&&clearTimeout(this.reconcileTimeout),this.reconcileTimeout=setTimeout(()=>{this.reconcile(),this.reconcileTimeout=null},Z9)}reconcile(){if(typeof window>"u")return;const r=this.scanElements(),l=new Map(r.map(v=>[v.id,v])),c=new Set(l.keys()),d=new Set(this.knownElements.keys()),p=[];for(const v of r)d.has(v.id)||p.push(v);const g=[];for(const v of d)c.has(v)||g.push(v);this.knownElements.clear();for(const v of r)this.knownElements.set(v.id,v.element);if(p.length>0)for(const v of this.addedHandlers)try{v(p)}catch(b){yn("[DOMObserverService] Error in added handler:",b)}if(g.length>0)for(const v of this.removedHandlers)try{v(g)}catch(b){yn("[DOMObserverService] Error in removed handler:",b)}}scanElements(){const r=this.options.querySelectorAll??(typeof document<"u"?document.querySelectorAll.bind(document):void 0);if(!r)return[];const l=[],c=new Map,d=r(`[${Cb}]`);for(const p of d){if(this.isInsideUILintUI(p))continue;const g=p.getAttribute(Cb),v=P9(g??"");if(!v||K9(v,this.hideNodeModules))continue;const b=(c.get(v)??0)+1;c.set(v,b);const S=F9(v,b);l.push({id:S,dataLoc:v,element:p,tagName:p.tagName.toLowerCase(),rect:p.getBoundingClientRect()})}return l}isInsideUILintUI(r){return r.closest("[data-ui-lint]")!==null}}const Lg=new J9,W9={target:nj,link:X6,"external-link":_g,"chevron-right":_h,"chevron-down":Mg,"chevron-up":D6,x:fb,check:cC,"alert-triangle":_u,"alert-circle":Dg,info:us,"help-circle":z6,eye:hC,camera:R6,crop:B6,scan:W6,search:bS,filter:pC,brain:k6,sparkles:gC,code:L6,file:H6,"file-code":db,folder:V6,"git-branch":q6,copy:dC,clipboard:O6,book:A6,"book-open":T6,bookmark:C6,play:P6,pause:F6,refresh:mC,trash:ij,edit:tj,settings:xS,plus:K6,minus:I6,loader:$6,"check-circle":_6,"x-circle":cb,clock:j6};function Uu(a){return W9[a]??us}const Zk=new Map;function eL(a,r){Zk.set(a,r)}async function tL(a,r){const l=Zk.get(a);return l?l(r):{success:!1,error:`Unknown browser action: ${a}`}}function Uh(a,r,l){return{getState:()=>a.getState().plugins?.[r],setState:c=>{a.setState(c)},dispatch:(c,d)=>{if(l&&l[c]){const p=Uh(a,r,l);return l[c](p,d)}},websocket:a.websocket,getCurrentRoute:()=>window.location.pathname,requestBrowserAction:async(c,d)=>tL(c,d),registerBrowserAction:(c,d)=>{eL(c,d)},openInEditor:c=>{const[d,p]=c.split(":"),g=`vscode://file/${d}:${p}`;window.open(g,"_self")},setHeatmapFilter:(c,d)=>{a.getState().setHeatmapFilter?.(c,d)},clearHeatmapFilter:()=>{a.getState().clearHeatmapFilter?.()},openInspector:(c,d)=>{a.openInspector(c,{...d})},closeInspector:()=>{a.closeInspector()},requestOverlayInteraction:(c,d)=>new Promise((p,g)=>{const v=a.getState();if(!v.startOverlayInteraction){g(new Error("Overlay interactions not supported by host"));return}v.startOverlayInteraction({type:c,pluginId:r,onComplete:p,onCancel:()=>g(new Error("Overlay interaction cancelled"))})})}}function kb(a,r){if(!a)return!0;if(Hy(a)){const l=a.binding.split(".");let c=r;for(const d of l)if(c&&typeof c=="object")c=c[d];else return!1;return!!c}if(GE(a)){const l=a.expression,c=l.match(/^(\w+(?:\.\w+)*)\s*===?\s*(.+)$/);if(c){const[,p,g]=c;let v=r;for(const S of p.split("."))if(v&&typeof v=="object")v=v[S];else{v=void 0;break}const b=g.trim();return b==="true"?v===!0:b==="false"?v===!1:b==="null"?v===null:b==="0"?v===0:b.startsWith('"')&&b.endsWith('"')?v===b.slice(1,-1):String(v)===b}const d=l.match(/^(\w+(?:\.\w+)*)\.length\s*===?\s*(\d+)$/);if(d){const[,p,g]=d;let v=r;for(const b of p.split("."))if(v&&typeof v=="object")v=v[b];else{v=void 0;break}return Array.isArray(v)||typeof v=="string"||v instanceof Map?(v instanceof Map?v.size:v.length)===parseInt(g,10):!1}return!1}return!0}function nL(a,r,l){return{id:a.id,title:a.title,keywords:a.keywords,category:a.category,subtitle:a.subtitle,icon:a.icon?nn.createElement(Uu(a.icon),{size:16}):void 0,shortcut:a.shortcut,hideFromAllCategory:a.hideFromAllCategory,isAvailable:a.isAvailable?c=>{const d=c?.plugins?.[r];return kb(a.isAvailable,d)}:void 0,execute:c=>{const d=Uh(c,r,l);return XS(a.action,d,l)}}}function aL(a,r,l){return{id:a.id,icon:nn.createElement(Uu(a.icon),{size:16}),tooltip:a.tooltip,isVisible:a.isVisible?c=>{const d=c?.plugins?.[r];return kb(a.isVisible,d)}:void 0,isEnabled:a.isEnabled?c=>{const d=c?.plugins?.[r];return kb(a.isEnabled,d)}:void 0,onClick:c=>{const d=Uh(c,r,l);return XS(a.action,d,l)}}}function iL(a,r,l){return{id:a.id,icon:nn.createElement(Uu(a.icon),{size:16}),tooltip:a.tooltip,priority:a.priority,isVisible:a.isVisible?c=>{const d=c?.plugins?.[r];return kb(a.isVisible,d)}:void 0,actions:a.actions.map(c=>aL(c,r,l))}}function XS(a,r,l){if(!l||!l[a.type]){console.warn(`No handler found for action: ${a.type}`);return}const c=a.payload?{...a.payload}:{};if(a.payloadBindings){const d=r.getState();for(const[p,g]of Object.entries(a.payloadBindings)){const v=g.split(".");let b=d;for(const S of v)if(b&&typeof b=="object")b=b[S];else{b=void 0;break}c[p]=b}}return l[a.type](r,c)}function oL(a){const r=a.id,l=a.actions;return{id:a.id,name:a.name,version:a.version,description:a.description,icon:a.icon?nn.createElement(Uu(a.icon),{size:16}):void 0,dependencies:a.dependencies,createSlice:d=>{const p=a.state.initialState,g={...p};for(const v of Object.keys(p)){const b=`set${v.charAt(0).toUpperCase()}${v.slice(1)}`;g[b]=S=>{d.setState({[v]:S})}}return g},commands:a.commands?.map(d=>nL(d,r,l)),toolbarActionGroups:a.toolbarGroups?.map(d=>iL(d,r,l)),inspectorPanels:a.panels?.map(d=>({id:d.id,title:typeof d.title=="string"?d.title:d.title.binding,priority:d.priority,component:nn.lazy(()=>Promise.resolve().then(()=>fU).then(p=>({default:g=>{const b=g.services.getState().plugins?.[r]??{},S=(C,k)=>{const M=Uh(g.services,r,l);XS({type:C,payload:k},M,l)},A=p.SchemaPanel;return nn.createElement(A,{panel:d,data:g.data||{},state:b,onAction:S})}})))})),ruleContributions:a.rules?.filter(d=>d.contentRenderer||d.heatmapColor).map(d=>({ruleId:d.id,contentRenderer:d.contentRenderer,heatmapColor:d.heatmapColor})),handlesRules:a.handlesRuleCategories?d=>!!(d.category&&a.handlesRuleCategories?.includes(d.category)):void 0,getIssues:a.getIssues?d=>{const p=a.getIssues(d);return{pluginId:p.pluginId,issues:p.issues}}:void 0,initialize:d=>{const p=Uh(d,r,l),g=[];if(a.messageHandlers){for(const[b,S]of Object.entries(a.messageHandlers)){const A=d.websocket.on(b,C=>{S(p,C)});g.push(A)}const v=d.websocket.onConnectionChange(b=>{b&&a.onLoad&&a.onLoad(p)});g.push(v)}if(a.onLoad&&a.onLoad(p),g.length>0)return()=>{g.forEach(v=>v())}},dispose:a.onUnload?d=>{const p=Uh(d,r,l);return a.onUnload(p)}:void 0}}const rL=[{id:"eslint",name:"ESLint Analysis",load:()=>Promise.resolve().then(()=>NL),enabled:!0}],lL=[];async function sL(a){try{return(await a.load()).default}catch(r){return yn(`Failed to load plugin "${a.id}":`,r),null}}const uL=["uilint-vision/plugin","uilint-semantic/plugin","uilint-duplicates/plugin","uilint-coverage/plugin"];async function cL(){const a=uL.map(async d=>{try{await import(d),$e(`[Loader] Discovered external plugin: ${d}`)}catch{$e(`[Loader] Optional plugin not available: ${d}`)}}),r=lL.map(async d=>{try{await d()}catch(p){Ft("Failed to import external plugin:",p)}});await Promise.all([...a,...r]);const l=X3.getAll();$e(`[Loader] Found ${l.length} plugins in core registry`);const c=[];for(const d of l)try{const p=oL(d);c.push(p),$e(`[Loader] Adapted plugin: ${d.id}`)}catch(p){yn(`[Loader] Failed to adapt plugin "${d.id}":`,p)}return c}async function dL(a=rL,r){const l=[],c=await cL();l.push(...c);const d=a.filter(b=>b.enabled);d.length+c.length;const p=d.map(async(b,S)=>await sL(b)),v=(await Promise.all(p)).filter(b=>b?b.id?!0:(Ft("Plugin missing id, skipping:",b),!1):!1);return l.push(...v),tw(l)}const $S=[{id:"eslint:toggle-scan",title:"Toggle ESLint Scan",keywords:["eslint","scan","toggle","enable","disable","start","stop"],category:"eslint",subtitle:"Enable or disable real-time ESLint analysis",icon:void 0,hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.scanStatus==="scanning"?l.stopScanning():l.startScanning(),a.closeCommandPalette()},isAvailable:a=>a.wsConnected===!0},{id:"eslint:start-scan",title:"Start ESLint Scan",keywords:["eslint","scan","start","analyze","lint","check"],category:"eslint",subtitle:"Scan all elements on the current page",hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.scanStatus!=="scanning"&&l.startScanning(),a.closeCommandPalette()},isAvailable:a=>{const r=a;return r.wsConnected===!0&&r.plugins?.eslint?.scanStatus!=="scanning"}},{id:"eslint:stop-scan",title:"Stop ESLint Scan",keywords:["eslint","scan","stop","disable","off"],category:"eslint",subtitle:"Stop scanning and clear results",hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.stopScanning(),a.closeCommandPalette()},isAvailable:a=>a.plugins?.eslint?.scanStatus==="scanning"},{id:"eslint:open-fixes",title:"Fix All Issues",keywords:["eslint","fix","fixes","autofix","repair","issues"],category:"eslint",subtitle:"Open the fixes inspector panel",hideFromAllCategory:!0,execute:a=>{a.openInspector("fixes",{}),a.closeCommandPalette()},isAvailable:a=>{const l=a.plugins?.eslint;return l?.scanStatus!=="scanning"||!l?.issues?!1:l.issues.size>0}},{id:"eslint:clear-rescan",title:"Clear & Rescan",keywords:["eslint","cache","clear","refresh","reset","rescan"],category:"eslint",subtitle:"Clear cached results and re-scan all files",hideFromAllCategory:!0,execute:a=>{const l=a.getState().plugins.eslint;if(!l){Ft("[ESLint Command] ESLint plugin slice not found");return}l.clearIssues(),l.startScanning(),a.closeCommandPalette()},isAvailable:a=>a.wsConnected===!0}];function fL(a){return a==="scanning"}const Fk={issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set,scanStatus:"scanning",lintingFiles:new Map,availableRules:[],disabledRules:new Set,workspaceRoot:null,ruleConfigs:new Map,ruleConfigUpdating:new Map,workspaceCapabilities:null};function Pk(a){return{...Fk}}function Kk(a,r,l){return{startScanning:()=>{l({scanStatus:"scanning"})},stopScanning:()=>{l({scanStatus:"idle",issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},setIssues:(c,d)=>{const p=r(),g=new Map(p.issues);d.length>0?g.set(c,d):g.delete(c),l({issues:g})},clearIssues:()=>{l({issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},toggleRule:c=>{const d=r(),p=new Set(d.disabledRules);p.has(c)?p.delete(c):p.add(c),l({disabledRules:p})},setAvailableRules:c=>{l({availableRules:c})},setWorkspaceRoot:c=>{l({workspaceRoot:c})},markScanned:c=>{const d=r(),p=new Set(d.scannedDataLocs);p.add(c),l({scannedDataLocs:p})},markFileRequested:c=>{const d=r(),p=new Set(d.requestedFiles);p.add(c),l({requestedFiles:p})},setScanStatus:c=>{l({scanStatus:c})}}}function hL(a,r){return r.size===0?a:a.filter(l=>!r.has(l.ruleId))}function pL(a){if(!a)return null;const r=a.lastIndexOf(":");if(r===-1)return null;const l=a.lastIndexOf(":",r-1);if(l===-1)return null;const c=a.substring(0,l);return c||null}function Jk(a){const r=new Set;for(const l of a){const c=pL(l);c&&r.add(c)}return r}function mL({value:a,onChange:r,disabled:l}){const c=[{value:"error",label:"E",color:"var(--uilint-error, oklch(0.72 0.17 25))"},{value:"warning",label:"W",color:"var(--uilint-warning, oklch(0.82 0.165 80))"},{value:"off",label:"Off",color:"#6b7280"}];return E.jsx("div",{style:{display:"flex",gap:4},children:c.map(d=>E.jsx("button",{onClick:()=>r(d.value),disabled:l,style:{padding:"4px 8px",fontSize:12,fontWeight:500,border:"none",borderRadius:4,cursor:l?"not-allowed":"pointer",background:a===d.value?d.color:"var(--uilint-surface-elevated)",color:a===d.value?"white":"var(--uilint-text-disabled)",opacity:l?.5:1},children:d.label},d.value))})}function gL({data:a}){const r=a?.ruleId,l=Ce(b=>{const S=b.plugins?.eslint;return!S?.availableRules||!r?null:S.availableRules.find(A=>A.id===r)}),c=Ce(b=>{const S=b.plugins?.eslint;return S?.ruleConfigs?S.ruleConfigs.get(r||""):null}),d=Ce(b=>{const S=b.plugins?.eslint;return S?.ruleConfigUpdating?S.ruleConfigUpdating.get(r||"")??!1:!1}),p=Ce(b=>{const S=b.plugins?.eslint;if(!S?.issues)return 0;let A=0;return S.issues.forEach(C=>{A+=C.filter(k=>k.ruleId===r).length}),A}),g=U.useCallback(b=>{r&&Kn.setRuleSeverity(r,b)},[r]);if(!r)return E.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"No rule selected"});if(!l)return E.jsxs("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:["Rule not found: ",r]});const v=c?.severity?c.severity==="warn"?"warning":c.severity:l.currentSeverity==="warn"?"warning":l.currentSeverity??"off";return E.jsxs("div",{style:{padding:16},children:[E.jsxs("div",{style:{marginBottom:16},children:[E.jsx("div",{style:{fontSize:16,fontWeight:600,color:"var(--uilint-text-primary)",marginBottom:4},children:l.name}),E.jsx("div",{style:{fontSize:12,color:"var(--uilint-text-muted)",fontFamily:"monospace"},children:l.id})]}),E.jsx("div",{style:{fontSize:14,color:"var(--uilint-text-secondary)",marginBottom:16,lineHeight:1.5},children:l.description}),E.jsxs("div",{style:{display:"flex",gap:8,marginBottom:16},children:[E.jsx("span",{style:{fontSize:11,fontWeight:500,textTransform:"uppercase",background:l.category!=="static"?"rgba(59, 130, 246, 0.1)":"var(--uilint-surface-elevated)",color:l.category!=="static"?"var(--uilint-accent)":"var(--uilint-text-muted)",padding:"2px 6px",borderRadius:4},children:l.category}),p>0&&E.jsxs("span",{style:{fontSize:11,fontWeight:500,background:"rgba(239, 68, 68, 0.1)",color:"#dc2626",padding:"2px 6px",borderRadius:4},children:[p," issue",p!==1?"s":""]})]}),E.jsxs("div",{style:{marginBottom:16},children:[E.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--uilint-text-muted)",marginBottom:8},children:"Severity"}),E.jsx(mL,{value:v,onChange:g,disabled:d}),d&&E.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)",marginTop:4},children:"Updating..."})]}),l.docs&&E.jsx("div",{style:{marginTop:16},children:E.jsx("a",{href:l.docs,target:"_blank",rel:"noopener noreferrer",style:{fontSize:12,color:"var(--uilint-accent)",textDecoration:"none"},children:"View documentation"})})]})}function kd(a){const r={error:0,warning:0,info:0};for(const l of a)l.severity==="error"?r.error++:l.severity==="warning"?r.warning++:l.severity==="info"&&r.info++;return r}function vL(a,r=[]){const l=new Map;for(const p of a){const g=p.ruleId,v=l.get(g)||[];l.set(g,[...v,p])}const c=new Map;for(const p of r)c.set(p.id,p);const d=[];for(const[p,g]of l){const v=c.get(p),b=kd(g),S=p.includes("/")?p.split("/").pop():p;d.push({id:`rule:${p}`,label:v?.name||S,subtitle:v?.description||p,count:g.length,severityCounts:b,metadata:{isRule:!0,ruleId:p,tileType:"rule",category:v?.category,currentSeverity:v?.currentSeverity,defaultSeverity:v?.defaultSeverity,currentOptions:v?.currentOptions,optionSchema:v?.optionSchema}})}return d.sort((p,g)=>{const v=p.severityCounts?.error??0,b=g.severityCounts?.error??0;return v!==b?b-v:g.count-p.count}),d}function Wk(a,r){const l=a.filter(p=>p.ruleId===r),c=new Map;for(const p of l){const g=p.filePath,v=c.get(g)||[];c.set(g,[...v,p])}const d=[];for(const[p,g]of c){const v=kd(g),S=p.split("/").pop()||p;d.push({id:`file:${p}:${r}`,label:S,subtitle:p,count:g.length,severityCounts:v,metadata:{isFile:!0,filePath:p,ruleId:r,tileType:"file"}})}return d.sort((p,g)=>{const v=p.severityCounts?.error??0,b=g.severityCounts?.error??0;return v!==b?b-v:g.count-p.count}),d}function yL(a){const r=new Map;for(const c of a){const d=c.filePath,p=r.get(d)||[];r.set(d,[...p,c])}const l=[];for(const[c,d]of r){const p=kd(d),v=c.split("/").pop()||c,b=new Set(d.map(S=>S.ruleId));l.push({id:`file:${c}`,label:v,subtitle:c,count:d.length,severityCounts:p,metadata:{isFile:!0,filePath:c,tileType:"file",ruleCount:b.size,issues:d}})}return l.sort((c,d)=>{const p=c.severityCounts?.error??0,g=d.severityCounts?.error??0;return p!==g?g-p:d.count-c.count}),l}function bL(a,r=[]){if(a.length===0)return[];const l=xL(a,r),c=yL(a),d=[...l,...c];return d.sort((p,g)=>{const v=p.severityCounts?.error??0,b=g.severityCounts?.error??0;return v!==b?b-v:g.count-p.count}),d}function xL(a,r=[]){const l=new Map;for(const p of a){const g=p.ruleId,v=l.get(g)||[];l.set(g,[...v,p])}const c=new Map;for(const p of r)c.set(p.id,p);const d=[];for(const[p,g]of l){const v=c.get(p),b=kd(g),S=p.includes("/")?p.split("/").pop():p,A=new Set(g.map(C=>C.filePath));d.push({id:`rule:${p}`,label:v?.name||S,subtitle:v?.description||p,count:g.length,severityCounts:b,fileCount:A.size,metadata:{isRule:!0,ruleId:p,tileType:"rule",issues:g,category:v?.category,currentSeverity:v?.currentSeverity,defaultSeverity:v?.defaultSeverity,currentOptions:v?.currentOptions,optionSchema:v?.optionSchema}})}return d}function Ug(a){const l=a.getState()?.plugins?.eslint;if(!l?.issues)return[];const c=l.disabledRules??new Set,d=[];for(const p of l.issues.values())for(const g of p)c.has(g.ruleId)||d.push(g);return d}function QS(a){return a.getState()?.plugins?.eslint?.availableRules??[]}function eR(a,r){const l=Ug(a);if(l.length===0)return[];const c=QS(a);return bL(l,c)}function tR(a){const r=a.metadata??{};if(r.isRule)return{type:"rule",id:r.ruleId,label:a.label,providerId:"eslint"};if(r.isFile){const l=r.filePath,c=l.split("/").pop()||l;return{type:"file",id:l,label:c,providerId:"eslint"}}return{type:"scope",id:a.id,label:a.label,providerId:"eslint"}}function nR(a){const r=a.some(c=>c.type==="rule"),l=a.some(c=>c.type==="file");return r&&l}function aR(a){const r=a.metadata??{};return r.isRule?{panelId:"eslint-rule",data:{ruleId:r.ruleId}}:r.isFile?{panelId:"eslint-rule",data:{ruleId:r.ruleId,filePath:r.filePath}}:r.isIssue?{panelId:"eslint-rule",data:{ruleId:r.ruleId,filePath:r.filePath,issueId:r.issueId,line:r.line}}:{panelId:"eslint-rule",data:{}}}function wL(a,r,l){let c=a.filter(d=>d.filePath===r);return l&&(c=c.filter(d=>d.ruleId===l)),c.sort((d,p)=>d.line-p.line),c.map(d=>({id:`issue:${d.id}`,label:d.message,subtitle:`Line ${d.line}${d.column?`:${d.column}`:""}`,count:1,severityCounts:{error:d.severity==="error"?1:0,warning:d.severity==="warning"?1:0,info:d.severity==="info"?1:0},metadata:{isIssue:!0,issueId:d.id,ruleId:d.ruleId,filePath:d.filePath,line:d.line,column:d.column,severity:d.severity,issue:d}}))}function SL(a,r){const l=a.metadata??{},c=Ug(r);if(c.length!==0){if(l.isRule){const d=l.ruleId;return Wk(c,d)}if(l.isFile){const d=l.filePath,p=l.ruleId;return wL(c,d,p)}l.isIssue}}function EL(a){const r=a.metadata??{};return!!(r.isRule||r.isFile)}function TL({severity:a}){switch(a){case"error":return E.jsx(Dg,{size:13,className:"text-error flex-shrink-0"});case"warning":return E.jsx(_u,{size:13,className:"text-warning flex-shrink-0"});case"info":return E.jsx(us,{size:13,className:"text-info flex-shrink-0"})}}function AL({severity:a}){const r=a==="error"?"text-error bg-error/10":a==="warning"?"text-warning bg-warning/10":"text-info bg-info/10";return E.jsx("span",{className:be("inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium",r),children:a})}function CL(a,r,l){const c=[],d=a?.category;d&&d!=="static"&&c.push({label:d,accent:!0});const p=a?.defaultSeverity;p&&r!==p&&c.push({label:r});const g=a?.optionSchema,v=a?.defaultOptions,b=Array.isArray(v)?v[0]??{}:{};if(l&&g?.fields)for(const S of g.fields){const A=l[S.key];if(A!==void 0&&A!==b[S.key]){const C=typeof A=="boolean"?`${S.label}: ${A?"on":"off"}`:`${S.label}: ${String(A)}`;if(c.push({label:C}),c.length>=3)break}}return c}function kL({ruleId:a,currentSeverity:r,ruleMeta:l,currentOptions:c,defaultOptions:d,onSeverityChange:p,onOptionChange:g,onResetOptions:v,isUpdating:b}){const[S,A]=U.useState(!1),C=U.useMemo(()=>CL(l,r,c),[l,r,c]),k=[{value:"off",label:"Off",dot:"bg-muted-foreground/30"},{value:"warn",label:"Warn",dot:"bg-warning/70"},{value:"error",label:"Error",dot:"bg-error/70"}];return E.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-foreground/[0.06]",children:[E.jsx("div",{className:"flex items-center gap-0.5 p-0.5 bg-foreground/[0.02] rounded-md border border-foreground/[0.04]",children:k.map(M=>E.jsxs("button",{type:"button",onClick:()=>p(M.value),className:be("flex items-center gap-1 px-1.5 py-0.5 rounded","text-[10px] transition-colors duration-100",r===M.value?"bg-foreground/[0.08] text-foreground font-medium":"text-foreground/50 hover:bg-foreground/[0.04] hover:text-foreground/70"),children:[E.jsx("span",{className:be("w-1.5 h-1.5 rounded-full flex-shrink-0",M.dot)}),M.label]},M.value))}),C.map(M=>E.jsx("span",{className:be("rounded-full px-2 py-0.5 text-[10px] leading-tight","border border-foreground/[0.06]",M.accent?"text-purple-500/70 bg-purple-500/[0.06]":"text-muted-foreground/60 bg-foreground/[0.02]"),children:M.label},M.label)),E.jsx("div",{className:"flex-1"}),E.jsx("div",{onKeyDown:M=>{M.key==="Escape"&&S&&M.stopPropagation()},children:E.jsx(hk,{open:S,onClose:()=>A(!1),placement:"bottom",align:"end",width:320,trigger:E.jsxs("button",{type:"button",onClick:()=>A(!S),className:be("inline-flex items-center gap-1.5","px-2 py-1 rounded","text-[11px] text-muted-foreground/60 hover:text-foreground/80","hover:bg-foreground/[0.04]","transition-colors duration-100",S&&"bg-foreground/[0.04] text-foreground/80"),children:[E.jsx(xS,{size:12}),"Configure"]}),children:E.jsx("div",{className:"p-1",children:E.jsx(Ak,{ruleId:a,currentSeverity:r,onSeverityChange:p,optionSchema:l?.optionSchema,currentOptions:c,defaultOptions:d,onOptionChange:g,onResetOptions:v,isUpdating:b})})})})]})}function RL({filePath:a,issues:r,defaultExpanded:l,onIssueClick:c}){const[d,p]=U.useState(l),g=a.split("/").pop()||a,v=U.useMemo(()=>[...r].sort((b,S)=>b.line-S.line),[r]);return E.jsxs("div",{className:"border-b border-foreground/[0.04] last:border-b-0",children:[E.jsxs("button",{onClick:()=>p(!d),className:be("w-full flex items-center gap-2 px-3 py-2","text-left hover:bg-foreground/[0.03] transition-colors duration-100"),children:[d?E.jsx(Mg,{size:12,className:"text-muted-foreground/50 flex-shrink-0"}):E.jsx(_h,{size:12,className:"text-muted-foreground/50 flex-shrink-0"}),E.jsx(db,{size:13,className:"text-muted-foreground/60 flex-shrink-0"}),E.jsx("span",{className:"text-xs font-medium text-foreground/80 truncate flex-1",children:g}),E.jsx("span",{className:"text-[10px] text-muted-foreground/50 tabular-nums flex-shrink-0",children:r.length})]}),d&&E.jsx(Ne.div,{initial:!1,animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.1},children:v.map(b=>E.jsxs("button",{type:"button",onClick:()=>c(a,b.id),className:be("w-full flex items-center gap-2 pl-8 pr-3 py-1.5","border-t border-foreground/[0.02]","text-left hover:bg-foreground/[0.03] transition-colors duration-100","cursor-pointer"),children:[E.jsx(TL,{severity:b.severity}),E.jsx("span",{className:"text-[11px] font-mono text-muted-foreground/50 tabular-nums w-7 flex-shrink-0",children:b.line}),E.jsx("span",{className:"text-[11px] text-foreground/60 truncate",children:b.message})]},b.id))})]})}function ML({ruleId:a,services:r}){const l=Ug(r),c=QS(r),[d,p]=U.useState(null),[g,v]=U.useState(null);U.useEffect(()=>{p(null),v(null)},[a]);const b=U.useMemo(()=>c.find(J=>J.id===a),[c,a]),S=U.useMemo(()=>l.filter(J=>J.ruleId===a),[l,a]),A=U.useMemo(()=>{const J=new Map;for(const $ of S){const ge=J.get($.filePath)||[];J.set($.filePath,[...ge,$])}return Array.from(J.entries()).sort(([,$],[,ge])=>ge.length-$.length)},[S]),C=U.useMemo(()=>d?S.filter(J=>J.filePath===d):[],[S,d]),k=Ce(J=>J.plugins?.eslint?.ruleConfigs?.get(a)),M=Ce(J=>J.plugins?.eslint?.ruleConfigUpdating?.get(a)??!1),L=U.useMemo(()=>k?.severity??b?.defaultSeverity??"warn",[k?.severity,b?.defaultSeverity]),B=U.useMemo(()=>b?.defaultOptions?Array.isArray(b.defaultOptions)?b.defaultOptions[0]??{}:b.defaultOptions??{}:{},[b?.defaultOptions]),H=U.useCallback(J=>{const $=J==="warn"?"warning":J;Kn.setRuleSeverity(a,$)},[a]),Q=U.useCallback((J,$)=>{const we={...k?.options??{},[J]:$};Kn.setRuleConfig(a,we)},[a,k?.options]),K=U.useCallback(()=>{if(!b?.defaultOptions)return;const J=Array.isArray(b.defaultOptions)?b.defaultOptions[0]??{}:b.defaultOptions??{};Kn.setRuleConfig(a,J)},[a,b?.defaultOptions]),q=U.useCallback((J,$)=>{p(J),v($)},[]),ae=U.useCallback(()=>{p(null),v(null)},[]),he=a.includes("/")?a.split("/").pop():a,Ae=S.some(J=>J.severity==="error")?"error":S.some(J=>J.severity==="warning")?"warning":"info";if(d){const J=d.split("/").pop()||d;return E.jsxs("div",{className:"flex flex-col h-full",children:[E.jsx(Hk,{expandedRuleName:b?.name||he,expandedFileName:J,onCollapseToRoot:ae,onCollapseFile:ae,variant:"embedded"}),E.jsx("div",{className:"flex-1 overflow-y-auto",children:C.length>0?E.jsx(VS,{filePath:d,issues:C,contextLines:2,selectedIssueId:g,onIssueSelect:v}):E.jsx("div",{className:"flex items-center justify-center py-12 text-xs text-muted-foreground/50",children:"No issues in this file"})})]})}return E.jsxs("div",{className:"flex flex-col h-full",children:[E.jsxs("div",{className:"px-4 pt-4 pb-3 border-b border-foreground/[0.06]",children:[E.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[E.jsx("h3",{className:"text-sm font-semibold text-foreground/90 truncate",children:b?.name||he}),S.length>0&&E.jsx(AL,{severity:Ae})]}),b?.description&&E.jsx("p",{className:"text-xs text-muted-foreground/70 leading-relaxed line-clamp-2",children:b.description}),E.jsxs("div",{className:"flex items-center gap-3 mt-2 text-[10px] text-muted-foreground/50",children:[E.jsxs("span",{className:"tabular-nums",children:[S.length," issue",S.length!==1?"s":""]}),E.jsxs("span",{className:"tabular-nums",children:[A.length," file",A.length!==1?"s":""]})]})]}),E.jsx(kL,{ruleId:a,currentSeverity:L,ruleMeta:b,currentOptions:k?.options,defaultOptions:B,onSeverityChange:H,onOptionChange:Q,onResetOptions:K,isUpdating:M}),E.jsx("div",{className:"flex-1 overflow-y-auto",children:A.length>0?A.map(([J,$],ge)=>E.jsx(RL,{filePath:J,issues:$,defaultExpanded:ge<3,onIssueClick:q},J)):E.jsx("div",{className:"flex items-center justify-center py-12 text-xs text-muted-foreground/50",children:"No issues found for this rule"})})]})}function DL({filePath:a,services:r}){const[l,c]=U.useState(null),d=Ug(r),p=U.useMemo(()=>d.filter(C=>C.filePath===a),[d,a]),g=U.useCallback(C=>{c(C)},[]),v=a.split("/").pop()||a,b=p.filter(C=>C.severity==="error").length,S=p.filter(C=>C.severity==="warning").length,A=p.filter(C=>C.severity==="info").length;return E.jsxs("div",{className:"flex flex-col h-full",children:[E.jsxs("div",{className:"px-4 pt-4 pb-3 border-b border-foreground/[0.06]",children:[E.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[E.jsx(db,{size:14,className:"text-muted-foreground/60 flex-shrink-0"}),E.jsx("h3",{className:"text-sm font-semibold text-foreground/90 truncate",children:v})]}),E.jsx("p",{className:"text-[11px] text-muted-foreground/50 truncate mb-2",children:a}),E.jsxs("div",{className:"flex items-center gap-3 text-[10px]",children:[b>0&&E.jsxs("span",{className:"flex items-center gap-1 text-error/80",children:[E.jsx(Dg,{size:10}),E.jsx("span",{className:"tabular-nums",children:b})]}),S>0&&E.jsxs("span",{className:"flex items-center gap-1 text-warning/80",children:[E.jsx(_u,{size:10}),E.jsx("span",{className:"tabular-nums",children:S})]}),A>0&&E.jsxs("span",{className:"flex items-center gap-1 text-info/80",children:[E.jsx(us,{size:10}),E.jsx("span",{className:"tabular-nums",children:A})]})]})]}),E.jsx("div",{className:"flex-1 overflow-y-auto",children:p.length>0?E.jsx(VS,{filePath:a,issues:p,contextLines:2,selectedIssueId:l,onIssueSelect:g}):E.jsx("div",{className:"flex items-center justify-center py-12 text-xs text-muted-foreground/50",children:"No issues in this file"})})]})}function _L(a){const r=Ug(a),l=QS(a),c=[],d=new Map;for(const v of r){const b=d.get(v.ruleId)||[];d.set(v.ruleId,[...b,v])}const p=new Map(l.map(v=>[v.id,v]));for(const[v,b]of d){const S=p.get(v),A=v.includes("/")?v.split("/").pop():v,C=new Set(b.map(k=>k.filePath));c.push({id:`rule:${v}`,section:"rules",label:S?.name||A,subtitle:S?.description||v,severityCounts:kd(b),count:b.length,fileCount:C.size,searchFields:{label:S?.name||A,subtitle:S?.description,keywords:[v,A,S?.category||""].filter(Boolean),extra:b.slice(0,20).map(k=>k.message)},metadata:{ruleId:v,tileType:"rule"}})}for(const v of l){if(d.has(v.id))continue;const b=v.id.includes("/")?v.id.split("/").pop():v.id;c.push({id:`rule:${v.id}`,section:"rules",label:v.name||b,subtitle:v.description||v.id,severityCounts:{error:0,warning:0,info:0},count:0,fileCount:0,searchFields:{label:v.name||b,subtitle:v.description,keywords:[v.id,b,v.category||""].filter(Boolean)},metadata:{ruleId:v.id,tileType:"rule"}})}const g=new Map;for(const v of r){const b=g.get(v.filePath)||[];g.set(v.filePath,[...b,v])}for(const[v,b]of g){const S=v.split("/").pop()||v,A=new Set(b.map(C=>C.ruleId));c.push({id:`file:${v}`,section:"files",label:S,subtitle:v,severityCounts:kd(b),count:b.length,fileCount:A.size,searchFields:{label:S,subtitle:v,keywords:Array.from(A),extra:b.slice(0,20).map(C=>C.message)},metadata:{filePath:v,tileType:"file"}})}return c.sort((v,b)=>{const S=v.severityCounts?.error??0,A=b.severityCounts?.error??0;return S!==A?A-S:(b.count??0)-(v.count??0)}),c}function zL(a,r){const l=a.metadata?.tileType;if(l==="rule"){const c=a.metadata?.ruleId;return{element:U.createElement(ML,{ruleId:c,services:r})}}if(l==="file"){const c=a.metadata?.filePath;return{element:U.createElement(DL,{filePath:c,services:r})}}return null}const OL={eslint:{onPageLoad:!1,onFileChange:!0},vision:{onRouteChange:!1,onInitialLoad:!1}},iR=["lint:result","lint:progress","file:changed","workspace:info","workspace:capabilities","rules:metadata","rule:config:result","rule:config:changed"],IS={id:"eslint",name:"ESLint Analysis",version:"1.0.0",description:"Real-time ESLint analysis with heatmap visualization",ruleCategories:["static"],meta:{id:"eslint",name:"ESLint Analysis",version:"1.0.0",description:"Real-time ESLint analysis with heatmap visualization"},createSlice:a=>{const r=Pk();let l=r;const p=Kk(a,()=>l,g=>{l={...l,...g},a.setState(g)});return{...r,...p}},commands:$S,inspectorPanels:[{id:"eslint-rule",title:({data:a})=>a?.ruleId?`Rule: ${a.ruleId}`:"Rule Details",component:gL,priority:10}],tileProvider:{getTileItems:eR,createFilter:tR,isTerminal:nR,getInspectorData:aR,getChildItems:SL,canExpand:EL},getSearchItems:_L,getPreviewPanel:zL,handlesRules:a=>a.id.startsWith("uilint/")||a.category==="static"?!0:(a.id==="uilint/semantic-vision",!1),getIssues:a=>{const r=a,l=new Map;return r.issues.forEach((c,d)=>{const p=c.map(g=>({id:g.id,message:g.message,severity:g.severity,dataLoc:g.dataLoc,line:g.line,column:g.column,ruleId:g.ruleId}));p.length>0&&l.set(d,p)}),{pluginId:"eslint",issues:l}},getPaletteItems:a=>{const r=[],l=a.getState(),c=l?.plugins?.eslint;if(c?.issues)for(const[,d]of c.issues)for(const p of d){const g=p.filePath.split("/").pop()||p.filePath,v=p.ruleId.includes("/")?p.ruleId.split("/").pop():p.ruleId;r.push({id:`eslint:issue:${p.id}`,title:p.message,subtitle:`${g}:${p.line}`,keywords:["Lint",p.ruleId,v,g,p.severity].filter((b,S,A)=>A.indexOf(b)===S),execute:b=>{b.openInspector("issue",{issue:p}),b.closeCommandPalette()},metadata:{issue:p,providerId:"eslint"}})}for(const d of $S)d.isAvailable&&!d.isAvailable(l)||r.push({id:d.id,title:d.title,subtitle:d.subtitle,keywords:["Command","ESLint",...d.keywords],execute:d.execute,metadata:{isCommand:!0}});return r},getRules:a=>{const r=a.getState();if(!r?.availableRules)return[];const l=r.ruleConfigs??new Map;return r.availableRules.map(c=>{const p=l.get(c.id)?.severity??c.currentSeverity??c.defaultSeverity,g=p==="warn"?"warning":p;return{id:c.id,name:c.name,description:c.description,category:c.category,severity:g,fixable:!1,pluginId:"eslint",docs:c.docs}})},setRuleSeverity:(a,r,l)=>{const c=r==="warning"?"warn":r,d=l.getState(),p=new Map(d.ruleConfigUpdating??new Map);p.set(a,!0),l.setState({ruleConfigUpdating:p}),l.websocket.send({type:"rule:config:set",ruleId:a,severity:c,requestId:`rule-severity-${Date.now()}`}),$e("[ESLint Plugin] Setting rule severity:",a,"->",c)},getRuleConfig:(a,r)=>(r.getState()?.ruleConfigs??new Map).get(a)?.options??{},setRuleConfig:(a,r,l)=>{const c=l.getState(),d=new Map(c.ruleConfigUpdating??new Map);d.set(a,!0),l.setState({ruleConfigUpdating:d}),l.websocket.send({type:"rule:config:set",ruleId:a,options:r,requestId:`rule-config-${Date.now()}`}),$e("[ESLint Plugin] Setting rule config:",a,r)},initialize:a=>{if($e("[ESLint Plugin] Initializing..."),Tb())return $e("[ESLint Plugin] Running in STATIC mode (manifest-based)"),T7(a);$e("[ESLint Plugin] Running in WEBSOCKET mode");const r=[];for(const c of iR){const d=a.websocket.on(c,p=>{rR(a,p)});r.push(d)}$e("[ESLint Plugin] Subscribed to",iR.length,"message types");const l=a.domObserver.onElementsAdded(c=>{jL(a,c)});return r.push(l),$e("[ESLint Plugin] Subscribed to DOM observer"),()=>{$e("[ESLint Plugin] Disposing..."),r.forEach(c=>c())}},dispose:a=>{$e("[ESLint Plugin] Disposed")}};function oR(a){const r=a.domObserver.getElements();if(r.length===0)return;const l=r.map(p=>p.dataLoc),c=Jk(l);if(c.size===0)return;const d=new Set;for(const p of c){const g=`lint-${Date.now()}-${p.replace(/[^a-zA-Z0-9]/g,"-")}`;a.websocket.send({type:"lint:file",filePath:p,requestId:g}),d.add(p)}a.setState({requestedFiles:d}),$e("[ESLint Plugin] Re-requested linting for",c.size,"files after config change")}function jL(a,r){const l=a.getState();if($e("[ESLint Plugin] handleElementsAdded called with",r.length,"elements"),$e("[ESLint Plugin] State check - scanStatus:",l?.scanStatus,"wsConnected:",a.websocket.isConnected),l.scanStatus!=="scanning"){$e("[ESLint Plugin] Scanning not active (status:",l.scanStatus,"), skipping lint requests");return}if(!a.websocket.isConnected){$e("[ESLint Plugin] WebSocket not connected, skipping lint requests");return}const c=r.map(v=>v.dataLoc),d=Jk(c);if(d.size===0){$e("[ESLint Plugin] No file paths extracted from",r.length,"elements");return}$e("[ESLint Plugin] Detected",r.length,"elements from",d.size,"unique files:",Array.from(d).slice(0,3));const p=l.requestedFiles??new Set,g=[];for(const v of d)if(!p.has(v)){g.push(v);const b=`lint-${Date.now()}-${v.replace(/[^a-zA-Z0-9]/g,"-")}`;a.websocket.send({type:"lint:file",filePath:v,requestId:b}),$e("[ESLint Plugin] Sent lint:file request for",v)}if(g.length>0){const v=new Set(p);for(const b of g)v.add(b);a.setState({requestedFiles:v}),$e("[ESLint Plugin] Updated requestedFiles with",g.length,"new files")}else $e("[ESLint Plugin] All files already requested, skipping")}function rR(a,r){switch(r.type){case"lint:result":{const{filePath:l,issues:c}=r;$e("[ESLint Plugin] Received lint result:",l,c.length,"issues");const d=c.map(b=>BD({...b,dataLoc:b.dataLoc||`${l}:${b.line}:${b.column||0}`})).filter(b=>b!==null),p=new Map;for(const b of d){const S=p.get(b.dataLoc)||[];p.set(b.dataLoc,[...S,b])}const g=a.getState(),v=new Map(g.issues);for(const[b,S]of p)v.set(b,S);a.setState({issues:v});break}case"lint:progress":{const{filePath:l,phase:c}=r;$e("[ESLint Plugin] Lint progress:",l,c);const d=a.getState(),p=new Map(d.lintingFiles);if(c.startsWith("Done"))p.delete(l);else{const g=p.get(l);p.set(l,{phase:c,startedAt:g?.startedAt??Date.now()})}a.setState({lintingFiles:p});break}case"file:changed":{const{filePath:l}=r;$e("[ESLint Plugin] File changed:",l);const c=a.getState(),d=new Map(c.issues);for(const[g]of d)g.startsWith(l+":")&&d.delete(g);const p=new Set(c.requestedFiles??new Set);p.delete(l),a.setState({issues:d,requestedFiles:p});break}case"workspace:info":{const{appRoot:l,workspaceRoot:c,serverCwd:d}=r;$e("[ESLint Plugin] Workspace info:",{appRoot:l,workspaceRoot:c,serverCwd:d}),a.setState({appRoot:l,workspaceRoot:c,serverCwd:d});break}case"workspace:capabilities":{const{postToolUseHook:l}=r;$e("[ESLint Plugin] Workspace capabilities:",{postToolUseHook:l}),a.setState({workspaceCapabilities:{postToolUseHook:l}});break}case"rules:metadata":{const{rules:l}=r;$e("[ESLint Plugin] Received rules metadata:",l.length,"rules");const c=new Map;for(const d of l)c.set(d.id,{severity:d.currentSeverity??d.defaultSeverity,options:d.currentOptions??(d.defaultOptions&&d.defaultOptions.length>0?d.defaultOptions[0]:void 0)});a.setState({availableRules:l,ruleConfigs:c});break}case"rule:config:result":{const{ruleId:l,severity:c,options:d,success:p,error:g}=r,v=a.getState(),b=new Map(v.ruleConfigUpdating);if(b.delete(l),a.setState({ruleConfigUpdating:b}),p){const S=a.getState(),A=new Map(S.ruleConfigs);A.set(l,{severity:c,options:d}),a.setState({ruleConfigs:A,issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set}),oR(a),$e("[ESLint Plugin] Rule config updated:",l,"->",c,"- refreshing lint results")}else yn("[ESLint Plugin] Failed to update rule config:",g);break}case"rule:config:changed":{const{ruleId:l,severity:c,options:d}=r,p=a.getState(),g=new Map(p.ruleConfigs);g.set(l,{severity:c,options:d}),a.setState({ruleConfigs:g,issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set}),oR(a),$e("[ESLint Plugin] Rule config changed (broadcast):",l,"->",c,"- refreshing lint results");break}}}const NL=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_AUTO_SCAN_SETTINGS:OL,_handleWebSocketMessageForTesting:rR,aggregateByFile:Wk,aggregateByRule:vL,clearStaticMode:Ok,configureStaticMode:zk,countSeverities:kd,createESLintActions:Kk,createESLintSlice:Pk,createEslintTileFilter:tR,default:IS,eslintCommands:$S,eslintPlugin:IS,filterByDisabledRules:hL,getEslintInspectorData:aR,getEslintTileItems:eR,getFileSource:BS,getManifestMetadata:A7,initialESLintState:Fk,isEslintTileTerminal:nR,isScanning:fL,isStaticMode:Tb},Symbol.toStringTag,{value:"Module"}));function LL(a){const r=new Map;for(const l of a){const c=l.filePath||"unknown",d=r.get(c)||[];d.push(l),r.set(c,d)}for(const[l,c]of r)r.set(l,c.sort((d,p)=>d.line-p.line));return r}function UL(a,r,l){const c=Array.from(a.values()).reduce((g,v)=>g+v.length,0),d=a.size;if(c===0)return"No lint issues found on the current page.";const p=[];if(p.push("# Fix Lint Issues"),p.push(""),p.push(`There are **${c} lint issue${c===1?"":"s"}** across **${d} file${d===1?"":"s"}** that need to be fixed.`),p.push(""),p.push("## Instructions"),p.push(""),p.push("1. Fix ALL of the lint issues in the files listed below"),p.push("2. Do NOT ignore or suppress any issues with eslint-disable comments"),p.push("3. Do NOT skip any issues - each one must be properly addressed"),p.push("4. Run the linter after fixing to verify all issues are resolved"),p.push("5. If an issue cannot be fixed without breaking functionality, explain why and propose an alternative solution"),p.push(""),l){p.push("## Affected Files"),p.push(""),p.push("The following files have lint issues. When you edit each file, you will receive the specific lint errors automatically."),p.push("");for(const[g,v]of a){const b=r&&g.startsWith(r)?g.slice(r.length+1):g;p.push(`- \`${b}\` (${v.length} issue${v.length===1?"":"s"})`)}p.push(""),p.push("---"),p.push(""),p.push("Open each file above and fix all reported lint issues. The linter will provide specific error details when you edit each file.")}else{p.push("## Affected Files"),p.push("");for(const[g,v]of a){const b=r&&g.startsWith(r)?g.slice(r.length+1):g;p.push(`### ${b}`),p.push("");for(const S of v){const A=S.column?`Line ${S.line}, Column ${S.column}`:`Line ${S.line}`,C=S.severity==="error"?"ERROR":"WARNING",k=S.ruleId?` (${S.ruleId})`:"";p.push(`- **[${C}]** ${A}${k}`),p.push(` ${S.message}`)}p.push("")}p.push("---"),p.push(""),p.push(`Please fix all ${c} issues listed above. Do not use eslint-disable comments or any other method to suppress warnings. Each issue must be properly resolved.`)}return p.join(`
|
|
257
257
|
`)}function BL({text:a,onCopy:r}){const[l,c]=U.useState(!1),d=U.useCallback(async()=>{try{await navigator.clipboard.writeText(a),c(!0),r(),setTimeout(()=>c(!1),2e3)}catch(p){yn("Failed to copy:",p)}},[a,r]);return E.jsx("button",{onClick:d,className:"flex items-center gap-1.5 px-4 py-2 text-white border-none rounded-md cursor-pointer font-medium text-sm transition-colors",style:{background:l?"var(--uilint-success)":"var(--uilint-primary)"},children:l?E.jsxs(E.Fragment,{children:[E.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:E.jsx("polyline",{points:"20 6 9 17 4 12"})}),"Copied!"]}):E.jsxs(E.Fragment,{children:[E.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[E.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),E.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy to Clipboard"]})})}function HL({data:a}){const r=a?.issues||[],l=a?.workspaceRoot||null,c=a?.hookAvailable||!1,d=U.useMemo(()=>LL(r),[r]),p=U.useMemo(()=>UL(d,l,c),[d,l,c]),g=r.length,v=d.size;return E.jsxs("div",{className:"flex flex-col h-full",children:[E.jsx("div",{className:"p-4 border-b",style:{borderColor:"var(--uilint-border)",background:"var(--uilint-surface)"},children:E.jsxs("div",{className:"flex items-center justify-between",children:[E.jsxs("div",{children:[E.jsx("div",{className:"text-sm mb-1",style:{color:"var(--uilint-text-muted)"},children:g===0?"No issues found":`${g} issue${g===1?"":"s"} in ${v} file${v===1?"":"s"}`}),E.jsx("div",{className:"text-xs",style:{color:"var(--uilint-text-muted)"},children:c?"Condensed format - hook will provide issue details":"Copy this prompt to Cursor or Claude Code"})]}),g>0&&E.jsx(BL,{text:p,onCopy:()=>{}})]})}),E.jsx("div",{className:"flex-1 overflow-auto p-4",children:E.jsx("pre",{className:"m-0 p-4 rounded-lg text-sm leading-relaxed whitespace-pre-wrap break-words font-mono",style:{background:"var(--uilint-code-bg, #1e1e1e)",color:"var(--uilint-code-text, #d4d4d4)"},children:p})}),E.jsxs("div",{className:"px-4 py-3 border-t text-xs",style:{borderColor:"var(--uilint-border)",background:"var(--uilint-surface-elevated)",color:"var(--uilint-text-muted)"},children:[E.jsx("strong",{children:"Tip:"})," Paste this prompt into Cursor, Claude Code, or any AI assistant to get help fixing these lint issues."]})]})}const ZS=nn.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},nn.createElement("path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}),nn.createElement("rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",ry:"1"}),nn.createElement("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),nn.createElement("line",{x1:"8",y1:"16",x2:"14",y2:"16"}));function VL(a){const l=a.getState().plugins?.eslint;if(!l?.issues)return{issues:[],workspaceRoot:null,hookAvailable:!1};const c=[];for(const p of l.issues.values())c.push(...p);const d=l.workspaceCapabilities?.postToolUseHook?.enabled??!1;return{issues:c,workspaceRoot:l.workspaceRoot,hookAvailable:d}}const qL={id:"fix-prompt",name:"Fix Prompt Generator",version:"1.0.0",description:"Generate copyable prompts for AI assistants to fix lint issues",meta:{id:"fix-prompt",name:"Fix Prompt Generator",version:"1.0.0",description:"Generate copyable prompts for AI assistants to fix lint issues",icon:ZS},toolbarActions:[{id:"fix-prompt:generate",icon:ZS,tooltip:"Generate Fix Prompt",priority:50,isVisible:a=>{const l=a.plugins?.eslint?.issues;if(!l)return!1;let c=0;for(const d of l.values())if(c+=d.length,c>0)return!0;return!1},onClick:a=>{const{issues:r,workspaceRoot:l,hookAvailable:c}=VL(a),d=a.getState();a.setState({inspector:{...d.inspector,open:!0,panelId:"fix-prompt",data:{issues:r,workspaceRoot:l,hookAvailable:c}}})}}],inspectorPanels:[{id:"fix-prompt",title:"Fix Prompt",icon:ZS,component:HL,priority:10}],createSlice:void 0,initialize:void 0};let lR=!1;function sR(a){if(typeof document>"u"||lR)return;const r=document.createElement("style");r.setAttribute("data-uilint-devtools-styles","true"),r.textContent=a,document.head.appendChild(r),lR=!0}const uR=`@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,::backdrop{--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-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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-outline-style:solid;--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-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--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: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--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-tile-rule:var(--uilint-tile-rule);--color-tile-file:var(--uilint-tile-file)}}@layer base{*,:after,:before,::backdrop{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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,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;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{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}::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:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::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:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-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{.dev-tool-root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}}@layer utilities{.pointer-events-auto{pointer-events:auto}.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{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.top-2\\.5{top:calc(var(--spacing)*2.5)}.top-3{top:calc(var(--spacing)*3)}.top-full{top:100%}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.-bottom-1{bottom:calc(var(--spacing)*-1)}.left-0{left:calc(var(--spacing)*0)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-90{z-index:90}.z-\\[99997\\]{z-index:99997}.z-\\[99998\\]{z-index:99998}.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-0{margin:calc(var(--spacing)*0)}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-0\\.5{margin-block:calc(var(--spacing)*.5)}.my-1{margin-block:calc(var(--spacing)*1)}.-mt-0\\.5{margin-top:calc(var(--spacing)*-.5)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-2\\.5{margin-top:calc(var(--spacing)*2.5)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-auto{margin-top:auto}.-mr-0\\.5{margin-right:calc(var(--spacing)*-.5)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.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)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-none{-webkit-line-clamp:unset;-webkit-box-orient:horizontal;display:block;overflow:visible}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing)*1)}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.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-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-20{height:calc(var(--spacing)*20)}.h-\\[18px\\]{height:18px}.h-\\[200px\\]{height:200px}.h-\\[var\\(--uilint-icon-button-size\\)\\]{height:var(--uilint-icon-button-size)}.h-\\[var\\(--uilint-icon-button-size-lg\\)\\]{height:var(--uilint-icon-button-size-lg)}.h-\\[var\\(--uilint-icon-button-size-sm\\)\\]{height:var(--uilint-icon-button-size-sm)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\\[2\\.25rem\\]{max-height:2.25rem}.max-h-\\[100px\\]{max-height:100px}.max-h-\\[520px\\]{max-height:520px}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-5{min-height:calc(var(--spacing)*5)}.min-h-6{min-height:calc(var(--spacing)*6)}.min-h-\\[44px\\]{min-height:44px}.min-h-\\[220px\\]{min-height:220px}.min-h-\\[260px\\]{min-height:260px}.w-1{width:calc(var(--spacing)*1)}.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-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-20{width:calc(var(--spacing)*20)}.w-\\[30\\%\\]{width:30%}.w-\\[340px\\]{width:340px}.w-\\[364px\\]{width:364px}.w-\\[860px\\]{width:860px}.w-\\[var\\(--uilint-icon-button-size\\)\\]{width:var(--uilint-icon-button-size)}.w-\\[var\\(--uilint-icon-button-size-lg\\)\\]{width:var(--uilint-icon-button-size-lg)}.w-\\[var\\(--uilint-icon-button-size-sm\\)\\]{width:var(--uilint-icon-button-size-sm)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.max-w-\\[120px\\]{max-width:120px}.max-w-\\[140px\\]{max-width:140px}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[580px\\]{max-width:580px}.max-w-\\[calc\\(100\\%-1rem\\)\\]{max-width:calc(100% - 1rem)}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-4{min-width:calc(var(--spacing)*4)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-6{min-width:calc(var(--spacing)*6)}.min-w-\\[18px\\]{min-width:18px}.min-w-\\[44px\\]{min-width:44px}.min-w-\\[80px\\]{min-width:80px}.min-w-\\[120px\\]{min-width:120px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-center{transform-origin:50%}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.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-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.appearance-none{appearance:none}.columns-2{columns:2}.break-inside-avoid{break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.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}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}: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)))}.gap-x-3{column-gap:calc(var(--spacing)*3)}.gap-y-1{row-gap:calc(var(--spacing)*1)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.\\[border-radius\\:var\\(--uilint-card-radius\\)\\]{border-radius:var(--uilint-card-radius)}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[0\\.8rem\\]{border-radius:.8rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-\\[20px\\]{border-radius:20px}.rounded-\\[calc\\(var\\(--uilint-icon-button-radius\\)\\+2px\\)\\]{border-radius:calc(var(--uilint-icon-button-radius) + 2px)}.rounded-\\[calc\\(var\\(--uilint-icon-button-radius\\)-2px\\)\\]{border-radius:calc(var(--uilint-icon-button-radius) - 2px)}.rounded-\\[calc\\(var\\(--uilint-input-radius\\)\\+2px\\)\\]{border-radius:calc(var(--uilint-input-radius) + 2px)}.rounded-\\[calc\\(var\\(--uilint-input-radius\\)-2px\\)\\]{border-radius:calc(var(--uilint-input-radius) - 2px)}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-\\[var\\(--uilint-button-radius\\)\\]{border-radius:var(--uilint-button-radius)}.rounded-\\[var\\(--uilint-icon-button-radius\\)\\]{border-radius:var(--uilint-icon-button-radius)}.rounded-\\[var\\(--uilint-input-radius\\)\\]{border-radius:var(--uilint-input-radius)}.rounded-\\[var\\(--uilint-radius\\,12px\\)\\]{border-radius:var(--uilint-radius,12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--uilint-radius-lg)}.rounded-md{border-radius:var(--uilint-radius)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--uilint-radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-tr-2xl{border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.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-l-\\[3px\\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\\[var\\(--uilint-error\\)\\]{border-color:var(--uilint-error)}.border-\\[var\\(--uilint-glass-border\\)\\]{border-color:var(--uilint-glass-border)}.border-\\[var\\(--uilint-input-border\\)\\]{border-color:var(--uilint-input-border)}.border-\\[var\\(--uilint-kbd-border\\,rgba\\(0\\,0\\,0\\,0\\.1\\)\\)\\]{border-color:var(--uilint-kbd-border,#0000001a)}.border-\\[var\\(--uilint-kbd-border-subtle\\,transparent\\)\\]{border-color:var(--uilint-kbd-border-subtle,transparent)}.border-accent,.border-accent\\/30{border-color:var(--uilint-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\\/30{border-color:color-mix(in oklab,var(--uilint-accent)30%,transparent)}}.border-border{border-color:var(--uilint-border)}.border-current\\/20{border-color:currentColor}@supports (color:color-mix(in lab,red,red)){.border-current\\/20{border-color:color-mix(in oklab,currentcolor 20%,transparent)}}.border-error,.border-error\\/20{border-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/20{border-color:color-mix(in oklab,var(--uilint-error)20%,transparent)}}.border-error\\/30{border-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/30{border-color:color-mix(in oklab,var(--uilint-error)30%,transparent)}}.border-error\\/50{border-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/50{border-color:color-mix(in oklab,var(--uilint-error)50%,transparent)}}.border-foreground\\/10{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/10{border-color:color-mix(in oklab,var(--uilint-foreground)10%,transparent)}}.border-foreground\\/12{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/12{border-color:color-mix(in oklab,var(--uilint-foreground)12%,transparent)}}.border-foreground\\/15{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/15{border-color:color-mix(in oklab,var(--uilint-foreground)15%,transparent)}}.border-foreground\\/\\[0\\.1\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.1\\]{border-color:color-mix(in oklab,var(--uilint-foreground)10%,transparent)}}.border-foreground\\/\\[0\\.02\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.02\\]{border-color:color-mix(in oklab,var(--uilint-foreground)2%,transparent)}}.border-foreground\\/\\[0\\.03\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.03\\]{border-color:color-mix(in oklab,var(--uilint-foreground)3%,transparent)}}.border-foreground\\/\\[0\\.04\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.04\\]{border-color:color-mix(in oklab,var(--uilint-foreground)4%,transparent)}}.border-foreground\\/\\[0\\.05\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.05\\]{border-color:color-mix(in oklab,var(--uilint-foreground)5%,transparent)}}.border-foreground\\/\\[0\\.06\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.06\\]{border-color:color-mix(in oklab,var(--uilint-foreground)6%,transparent)}}.border-foreground\\/\\[0\\.08\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.08\\]{border-color:color-mix(in oklab,var(--uilint-foreground)8%,transparent)}}.border-foreground\\/\\[0\\.12\\]{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\\/\\[0\\.12\\]{border-color:color-mix(in oklab,var(--uilint-foreground)12%,transparent)}}.border-glass-border{border-color:var(--uilint-glass-border)}.border-info,.border-info\\/20{border-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.border-info\\/20{border-color:color-mix(in oklab,var(--uilint-info)20%,transparent)}}.border-info\\/30{border-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.border-info\\/30{border-color:color-mix(in oklab,var(--uilint-info)30%,transparent)}}.border-muted-foreground\\/30{border-color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\\/30{border-color:color-mix(in oklab,var(--uilint-text-muted)30%,transparent)}}.border-purple-500\\/10{border-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.border-purple-500\\/10{border-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.border-transparent{border-color:#0000}.border-warning,.border-warning\\/20{border-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\\/20{border-color:color-mix(in oklab,var(--uilint-warning)20%,transparent)}}.border-warning\\/30{border-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\\/30{border-color:color-mix(in oklab,var(--uilint-warning)30%,transparent)}}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-950\\/10{border-color:#09090b1a}@supports (color:color-mix(in lab,red,red)){.border-zinc-950\\/10{border-color:color-mix(in oklab,var(--color-zinc-950)10%,transparent)}}.border-t-muted-foreground{border-top-color:var(--uilint-text-muted)}.border-t-transparent{border-top-color:#0000}.border-l-error\\/50{border-left-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.border-l-error\\/50{border-left-color:color-mix(in oklab,var(--uilint-error)50%,transparent)}}.border-l-foreground\\/20{border-left-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.border-l-foreground\\/20{border-left-color:color-mix(in oklab,var(--uilint-foreground)20%,transparent)}}.border-l-info,.border-l-info\\/50{border-left-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.border-l-info\\/50{border-left-color:color-mix(in oklab,var(--uilint-info)50%,transparent)}}.border-l-transparent{border-left-color:#0000}.border-l-warning,.border-l-warning\\/50{border-left-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.border-l-warning\\/50{border-left-color:color-mix(in oklab,var(--uilint-warning)50%,transparent)}}.bg-\\[rgba\\(128\\,128\\,128\\,0\\.15\\)\\]{background-color:#80808026}.bg-\\[var\\(--uilint-button-default-bg\\)\\]{background-color:var(--uilint-button-default-bg)}.bg-\\[var\\(--uilint-button-destructive-bg\\)\\]{background-color:var(--uilint-button-destructive-bg)}.bg-\\[var\\(--uilint-button-ghost-bg\\)\\]{background-color:var(--uilint-button-ghost-bg)}.bg-\\[var\\(--uilint-button-glass-bg\\)\\]{background-color:var(--uilint-button-glass-bg)}.bg-\\[var\\(--uilint-button-outline-bg\\)\\]{background-color:var(--uilint-button-outline-bg)}.bg-\\[var\\(--uilint-button-secondary-bg\\)\\]{background-color:var(--uilint-button-secondary-bg)}.bg-\\[var\\(--uilint-glass\\)\\]{background-color:var(--uilint-glass)}.bg-\\[var\\(--uilint-glass-medium\\)\\]{background-color:var(--uilint-glass-medium)}.bg-\\[var\\(--uilint-hover\\)\\]{background-color:var(--uilint-hover)}.bg-\\[var\\(--uilint-input-bg\\)\\]{background-color:var(--uilint-input-bg)}.bg-\\[var\\(--uilint-kbd-background\\,linear-gradient\\(180deg\\,\\#ffffff_0\\%\\,\\#f3f4f6_100\\%\\)\\)\\]{background-color:var(--uilint-kbd-background,linear-gradient(180deg,#fff 0%,#f3f4f6 100%))}.bg-\\[var\\(--uilint-kbd-background-subtle\\,rgba\\(0\\,0\\,0\\,0\\.04\\)\\)\\]{background-color:var(--uilint-kbd-background-subtle,#0000000a)}.bg-accent,.bg-accent\\/10{background-color:var(--uilint-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/10{background-color:color-mix(in oklab,var(--uilint-accent)10%,transparent)}}.bg-accent\\/15{background-color:var(--uilint-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\\/15{background-color:color-mix(in oklab,var(--uilint-accent)15%,transparent)}}.bg-amber-500\\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\\/20{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.bg-background,.bg-background\\/40{background-color:var(--uilint-background)}@supports (color:color-mix(in lab,red,red)){.bg-background\\/40{background-color:color-mix(in oklab,var(--uilint-background)40%,transparent)}}.bg-background\\/50{background-color:var(--uilint-background)}@supports (color:color-mix(in lab,red,red)){.bg-background\\/50{background-color:color-mix(in oklab,var(--uilint-background)50%,transparent)}}.bg-background\\/60{background-color:var(--uilint-background)}@supports (color:color-mix(in lab,red,red)){.bg-background\\/60{background-color:color-mix(in oklab,var(--uilint-background)60%,transparent)}}.bg-background\\/80{background-color:var(--uilint-background)}@supports (color:color-mix(in lab,red,red)){.bg-background\\/80{background-color:color-mix(in oklab,var(--uilint-background)80%,transparent)}}.bg-background\\/95{background-color:var(--uilint-background)}@supports (color:color-mix(in lab,red,red)){.bg-background\\/95{background-color:color-mix(in oklab,var(--uilint-background)95%,transparent)}}.bg-blue-300\\/20{background-color:#90c5ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-300\\/20{background-color:color-mix(in oklab,var(--color-blue-300)20%,transparent)}}.bg-emerald-500\\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\\/20{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.bg-error{background-color:var(--uilint-error)}.bg-error-bg{background-color:var(--uilint-error-bg)}.bg-error\\/10{background-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/10{background-color:color-mix(in oklab,var(--uilint-error)10%,transparent)}}.bg-error\\/60{background-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/60{background-color:color-mix(in oklab,var(--uilint-error)60%,transparent)}}.bg-error\\/70{background-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/70{background-color:color-mix(in oklab,var(--uilint-error)70%,transparent)}}.bg-error\\/80{background-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/80{background-color:color-mix(in oklab,var(--uilint-error)80%,transparent)}}.bg-error\\/\\[0\\.04\\]{background-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/\\[0\\.04\\]{background-color:color-mix(in oklab,var(--uilint-error)4%,transparent)}}.bg-error\\/\\[0\\.06\\]{background-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--uilint-error)6%,transparent)}}.bg-foreground,.bg-foreground\\/\\[0\\.01\\]{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/\\[0\\.01\\]{background-color:color-mix(in oklab,var(--uilint-foreground)1%,transparent)}}.bg-foreground\\/\\[0\\.02\\]{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/\\[0\\.02\\]{background-color:color-mix(in oklab,var(--uilint-foreground)2%,transparent)}}.bg-foreground\\/\\[0\\.03\\]{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/\\[0\\.03\\]{background-color:color-mix(in oklab,var(--uilint-foreground)3%,transparent)}}.bg-foreground\\/\\[0\\.04\\]{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/\\[0\\.04\\]{background-color:color-mix(in oklab,var(--uilint-foreground)4%,transparent)}}.bg-foreground\\/\\[0\\.05\\]{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/\\[0\\.05\\]{background-color:color-mix(in oklab,var(--uilint-foreground)5%,transparent)}}.bg-foreground\\/\\[0\\.06\\]{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--uilint-foreground)6%,transparent)}}.bg-foreground\\/\\[0\\.08\\]{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--uilint-foreground)8%,transparent)}}.bg-glass-medium{background-color:var(--uilint-glass-medium)}.bg-info{background-color:var(--uilint-info)}.bg-info-bg{background-color:var(--uilint-info-bg)}.bg-info\\/10{background-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\\/10{background-color:color-mix(in oklab,var(--uilint-info)10%,transparent)}}.bg-info\\/60{background-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\\/60{background-color:color-mix(in oklab,var(--uilint-info)60%,transparent)}}.bg-info\\/70{background-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\\/70{background-color:color-mix(in oklab,var(--uilint-info)70%,transparent)}}.bg-info\\/80{background-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\\/80{background-color:color-mix(in oklab,var(--uilint-info)80%,transparent)}}.bg-info\\/\\[0\\.04\\]{background-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\\/\\[0\\.04\\]{background-color:color-mix(in oklab,var(--uilint-info)4%,transparent)}}.bg-info\\/\\[0\\.06\\]{background-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--uilint-info)6%,transparent)}}.bg-muted-foreground\\/20{background-color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\\/20{background-color:color-mix(in oklab,var(--uilint-text-muted)20%,transparent)}}.bg-muted-foreground\\/30{background-color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\\/30{background-color:color-mix(in oklab,var(--uilint-text-muted)30%,transparent)}}.bg-muted-foreground\\/50{background-color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\\/50{background-color:color-mix(in oklab,var(--uilint-text-muted)50%,transparent)}}.bg-purple-500\\/\\[0\\.06\\]{background-color:#ac4bff0f}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--color-purple-500)6%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-success{background-color:var(--uilint-success)}.bg-success-bg{background-color:var(--uilint-success-bg)}.bg-success\\/20{background-color:var(--uilint-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\\/20{background-color:color-mix(in oklab,var(--uilint-success)20%,transparent)}}.bg-success\\/70{background-color:var(--uilint-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\\/70{background-color:color-mix(in oklab,var(--uilint-success)70%,transparent)}}.bg-surface{background-color:var(--uilint-surface)}.bg-surface-elevated{background-color:var(--uilint-surface-elevated)}.bg-surface\\/95{background-color:var(--uilint-surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\\/95{background-color:color-mix(in oklab,var(--uilint-surface)95%,transparent)}}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--uilint-warning)}.bg-warning-bg{background-color:var(--uilint-warning-bg)}.bg-warning\\/10{background-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\\/10{background-color:color-mix(in oklab,var(--uilint-warning)10%,transparent)}}.bg-warning\\/60{background-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\\/60{background-color:color-mix(in oklab,var(--uilint-warning)60%,transparent)}}.bg-warning\\/70{background-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\\/70{background-color:color-mix(in oklab,var(--uilint-warning)70%,transparent)}}.bg-warning\\/80{background-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\\/80{background-color:color-mix(in oklab,var(--uilint-warning)80%,transparent)}}.bg-warning\\/\\[0\\.04\\]{background-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\\/\\[0\\.04\\]{background-color:color-mix(in oklab,var(--uilint-warning)4%,transparent)}}.bg-warning\\/\\[0\\.06\\]{background-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--uilint-warning)6%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-100\\/50{background-color:#f4f4f580}@supports (color:color-mix(in lab,red,red)){.bg-zinc-100\\/50{background-color:color-mix(in oklab,var(--color-zinc-100)50%,transparent)}}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.from-foreground\\/2{--tw-gradient-from:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.from-foreground\\/2{--tw-gradient-from:color-mix(in oklab,var(--uilint-foreground)2%,transparent)}}.from-foreground\\/2{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-7{padding:calc(var(--spacing)*7)}.p-8{padding:calc(var(--spacing)*8)}.p-\\[1px\\],.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.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-3\\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.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-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-14{padding-block:calc(var(--spacing)*14)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-0\\.5{padding-top:calc(var(--spacing)*.5)}.pt-1{padding-top:calc(var(--spacing)*1)}.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)}.pt-14{padding-top:calc(var(--spacing)*14)}.pt-\\[100px\\]{padding-top:100px}.pt-\\[env\\(safe-area-inset-top\\,0px\\)\\]{padding-top:env(safe-area-inset-top,0px)}.pr-1\\.25{padding-right:calc(var(--spacing)*1.25)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-1\\.5{padding-bottom:calc(var(--spacing)*1.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-\\[env\\(safe-area-inset-bottom\\,0px\\)\\]{padding-bottom:env(safe-area-inset-bottom,0px)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-\\[-apple-system\\,BlinkMacSystemFont\\,\\'SF_Pro_Text\\'\\,\\'Segoe_UI\\'\\,sans-serif\\]{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--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-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.text-\\[17px\\]{font-size:17px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.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-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.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-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}.\\[color\\:var\\(--uilint-text-primary\\)\\]{color:var(--uilint-text-primary)}.\\[color\\:var\\(--uilint-text-secondary\\)\\]{color:var(--uilint-text-secondary)}.text-\\[var\\(--uilint-button-default-text\\)\\]{color:var(--uilint-button-default-text)}.text-\\[var\\(--uilint-button-destructive-text\\)\\]{color:var(--uilint-button-destructive-text)}.text-\\[var\\(--uilint-button-ghost-text\\)\\]{color:var(--uilint-button-ghost-text)}.text-\\[var\\(--uilint-button-glass-text\\)\\]{color:var(--uilint-button-glass-text)}.text-\\[var\\(--uilint-button-outline-text\\)\\]{color:var(--uilint-button-outline-text)}.text-\\[var\\(--uilint-button-secondary-text\\)\\]{color:var(--uilint-button-secondary-text)}.text-\\[var\\(--uilint-kbd-text\\,\\#6b7280\\)\\]{color:var(--uilint-kbd-text,#6b7280)}.text-\\[var\\(--uilint-kbd-text-subtle\\,\\#9ca3af\\)\\]{color:var(--uilint-kbd-text-subtle,#9ca3af)}.text-\\[var\\(--uilint-text-muted\\)\\]{color:var(--uilint-text-muted)}.text-\\[var\\(--uilint-text-primary\\)\\]{color:var(--uilint-text-primary)}.text-\\[var\\(--uilint-text-secondary\\)\\]{color:var(--uilint-text-secondary)}.text-accent{color:var(--uilint-accent)}.text-accent-foreground{color:var(--uilint-accent-foreground)}.text-amber-700{color:var(--color-amber-700)}.text-blue-700{color:var(--color-blue-700)}.text-emerald-700{color:var(--color-emerald-700)}.text-error,.text-error\\/80{color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.text-error\\/80{color:color-mix(in oklab,var(--uilint-error)80%,transparent)}}.text-foreground,.text-foreground\\/50{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/50{color:color-mix(in oklab,var(--uilint-foreground)50%,transparent)}}.text-foreground\\/60{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/60{color:color-mix(in oklab,var(--uilint-foreground)60%,transparent)}}.text-foreground\\/70{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/70{color:color-mix(in oklab,var(--uilint-foreground)70%,transparent)}}.text-foreground\\/80{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/80{color:color-mix(in oklab,var(--uilint-foreground)80%,transparent)}}.text-foreground\\/85{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/85{color:color-mix(in oklab,var(--uilint-foreground)85%,transparent)}}.text-foreground\\/90{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/90{color:color-mix(in oklab,var(--uilint-foreground)90%,transparent)}}.text-info,.text-info\\/80{color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.text-info\\/80{color:color-mix(in oklab,var(--uilint-info)80%,transparent)}}.text-muted-foreground,.text-muted-foreground\\/30{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\\/30{color:color-mix(in oklab,var(--uilint-text-muted)30%,transparent)}}.text-muted-foreground\\/40{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\\/40{color:color-mix(in oklab,var(--uilint-text-muted)40%,transparent)}}.text-muted-foreground\\/50{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\\/50{color:color-mix(in oklab,var(--uilint-text-muted)50%,transparent)}}.text-muted-foreground\\/60{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\\/60{color:color-mix(in oklab,var(--uilint-text-muted)60%,transparent)}}.text-muted-foreground\\/70{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\\/70{color:color-mix(in oklab,var(--uilint-text-muted)70%,transparent)}}.text-purple-500\\/70{color:#ac4bffb3}@supports (color:color-mix(in lab,red,red)){.text-purple-500\\/70{color:color-mix(in oklab,var(--color-purple-500)70%,transparent)}}.text-red-700{color:var(--color-red-700)}.text-success{color:var(--uilint-success)}.text-text-disabled{color:var(--uilint-text-disabled)}.text-text-muted{color:var(--uilint-text-muted)}.text-text-primary{color:var(--uilint-text-primary)}.text-text-secondary{color:var(--uilint-text-secondary)}.text-warning,.text-warning\\/80{color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.text-warning\\/80{color:color-mix(in oklab,var(--uilint-warning)80%,transparent)}}.text-white{color:var(--color-white)}.text-zinc-50{color:var(--color-zinc-50)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-900{color:var(--color-zinc-900)}.text-zinc-950{color:var(--color-zinc-950)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.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_0_0_1px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0px_2px_2px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\,0px_8px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#00000014),0px 2px 2px var(--tw-shadow-color,#0000000a),0px 8px 16px -4px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0px_1px_1px_0px_hsla\\(0\\,0\\%\\,0\\%\\,0\\.02\\)_inset\\,0px_1px_1px_0px_hsla\\(0\\,0\\%\\,0\\%\\,0\\.02\\)_inset\\,0px_0px_0px_1px_rgba\\(255\\,255\\,255\\,0\\.25\\)\\]{--tw-shadow:0px 1px 1px 0px var(--tw-shadow-color,#00000005)inset,0px 1px 1px 0px var(--tw-shadow-color,#00000005)inset,0px 0px 0px 1px var(--tw-shadow-color,#ffffff40);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0px_1px_1px_0px_rgba\\(0\\,0\\,0\\,0\\.05\\)\\,0px_1px_1px_0px_rgba\\(255\\,252\\,240\\,0\\.5\\)_inset\\,0px_0px_0px_1px_hsla\\(0\\,0\\%\\,100\\%\\,0\\.1\\)_inset\\,0px_0px_1px_0px_rgba\\(28\\,27\\,26\\,0\\.5\\)\\]{--tw-shadow:0px 1px 1px 0px var(--tw-shadow-color,#0000000d),0px 1px 1px 0px var(--tw-shadow-color,#fffcf080)inset,0px 0px 0px 1px var(--tw-shadow-color,#ffffff1a)inset,0px 0px 1px 0px var(--tw-shadow-color,#1c1b1a80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[inset_0_0_1px_1px_hsl\\(var\\(--border\\)\\/0\\.3\\)\\]{--tw-shadow:inset 0 0 1px 1px var(--tw-shadow-color,hsl(var(--border)/.3));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[var\\(--uilint-button-shadow\\)\\]{--tw-shadow:var(--uilint-button-shadow);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[var\\(--uilint-kbd-shadow\\,0_1px_0_rgba\\(0\\,0\\,0\\,0\\.08\\)\\)\\]{--tw-shadow:var(--uilint-kbd-shadow,0 1px 0 #00000014);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:var(--uilint-shadow-lg);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:var(--uilint-shadow);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:var(--uilint-card-shadow);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)}.\\[box-shadow\\:var\\(--uilint-card-elevated-shadow\\)\\]{box-shadow:var(--uilint-card-elevated-shadow)}.\\[box-shadow\\:var\\(--uilint-card-shadow\\)\\]{box-shadow:var(--uilint-card-shadow)}.shadow-black\\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.shadow-black\\/10{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)10%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-foreground\\/20{--tw-ring-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\\/20{--tw-ring-color:color-mix(in oklab,var(--uilint-foreground)20%,transparent)}}.ring-zinc-200\\/50{--tw-ring-color:#e4e4e780}@supports (color:color-mix(in lab,red,red)){.ring-zinc-200\\/50{--tw-ring-color:color-mix(in oklab,var(--color-zinc-200)50%,transparent)}}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.blur-lg{--tw-blur:blur(var(--blur-lg));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,)}.blur-md{--tw-blur:blur(var(--blur-md));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,)}.blur-sm{--tw-blur:blur(var(--blur-sm));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-\\[1px\\]{--tw-backdrop-blur:blur(1px);-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,)}.backdrop-blur-\\[var\\(--uilint-glass-blur-medium\\)\\]{--tw-backdrop-blur:blur(var(--uilint-glass-blur-medium));-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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,)}.backdrop-filter{-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,)}.\\[backdrop-filter\\:blur\\(var\\(--uilint-glass-blur-medium\\)\\)\\]{-webkit-backdrop-filter:blur(var(--uilint-glass-blur-medium));backdrop-filter:blur(var(--uilint-glass-blur-medium))}.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-\\[colors\\]{transition-property:colors;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[scale\\]{transition-property:scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[width\\]{transition-property:width;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-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-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[-ms-overflow-style\\:none\\]{-ms-overflow-style:none}.\\[-webkit-overflow-scrolling\\:touch\\]{-webkit-overflow-scrolling:touch}.\\[background\\:var\\(--uilint-card-bg\\)\\]{background:var(--uilint-card-bg)}.\\[background\\:var\\(--uilint-card-elevated-bg\\)\\]{background:var(--uilint-card-elevated-bg)}.\\[background\\:var\\(--uilint-card-glass-bg\\)\\]{background:var(--uilint-card-glass-bg)}.\\[border-top\\:1px_solid_var\\(--uilint-card-border\\)\\]{border-top:1px solid var(--uilint-card-border)}.\\[border\\:1px_solid_var\\(--uilint-card-border\\)\\]{border:1px solid var(--uilint-card-border)}.\\[border\\:1px_solid_var\\(--uilint-card-glass-border\\)\\]{border:1px solid var(--uilint-card-glass-border)}.\\[scrollbar-width\\:thin\\]{scrollbar-width:thin}@media(hover:hover){.group-hover\\:text-muted-foreground\\/60:is(:where(.group):hover *){color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.group-hover\\:text-muted-foreground\\/60:is(:where(.group):hover *){color:color-mix(in oklab,var(--uilint-text-muted)60%,transparent)}}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\\:bg-transparent::file-selector-button{background-color:#0000}.file\\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\\:text-\\[var\\(--uilint-input-placeholder\\)\\]::placeholder{color:var(--uilint-input-placeholder)}.placeholder\\:text-muted-foreground\\/40::placeholder{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.placeholder\\:text-muted-foreground\\/40::placeholder{color:color-mix(in oklab,var(--uilint-text-muted)40%,transparent)}}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:inset-x-0:before{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.before\\:inset-y-0:before{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.before\\:top-0:before{content:var(--tw-content);top:calc(var(--spacing)*0)}.before\\:left-0:before{content:var(--tw-content);left:calc(var(--spacing)*0)}.before\\:h-\\(--top-fade-height\\):before{content:var(--tw-content);height:var(--top-fade-height)}.before\\:h-px:before{content:var(--tw-content);height:1px}.before\\:w-\\(--left-fade-width\\):before{content:var(--tw-content);width:var(--left-fade-width)}.before\\:bg-gradient-to-b:before{content:var(--tw-content);--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.before\\:bg-gradient-to-r:before{content:var(--tw-content);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.before\\:from-background:before{content:var(--tw-content);--tw-gradient-from:var(--uilint-background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.before\\:to-transparent:before{content:var(--tw-content);--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.before\\:opacity-0:before{content:var(--tw-content);opacity:0}.before\\:opacity-100:before{content:var(--tw-content);opacity:1}.before\\:transition-\\[height\\,opacity\\]:before{content:var(--tw-content);transition-property:height,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.before\\:transition-\\[width\\,opacity\\]:before{content:var(--tw-content);transition-property:width,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.before\\:duration-300:before{content:var(--tw-content);--tw-duration:.3s;transition-duration:.3s}.before\\:\\[background\\:var\\(--uilint-glass-highlight\\)\\]:before{content:var(--tw-content);background:var(--uilint-glass-highlight)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:inset-x-0:after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.after\\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\\:right-0:after{content:var(--tw-content);right:calc(var(--spacing)*0)}.after\\:bottom-0:after{content:var(--tw-content);bottom:calc(var(--spacing)*0)}.after\\:h-\\(--bottom-fade-height\\):after{content:var(--tw-content);height:var(--bottom-fade-height)}.after\\:w-\\(--right-fade-width\\):after{content:var(--tw-content);width:var(--right-fade-width)}.after\\:bg-gradient-to-l:after{content:var(--tw-content);--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.after\\:bg-gradient-to-t:after{content:var(--tw-content);--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.after\\:from-background:after{content:var(--tw-content);--tw-gradient-from:var(--uilint-background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.after\\:to-transparent:after{content:var(--tw-content);--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.after\\:opacity-0:after{content:var(--tw-content);opacity:0}.after\\:opacity-100:after{content:var(--tw-content);opacity:1}.after\\:transition-\\[height\\,opacity\\]:after{content:var(--tw-content);transition-property:height,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:transition-\\[width\\,opacity\\]:after{content:var(--tw-content);transition-property:width,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:duration-300:after{content:var(--tw-content);--tw-duration:.3s;transition-duration:.3s}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\\:border-foreground\\/\\[0\\.08\\]:hover{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:border-foreground\\/\\[0\\.08\\]:hover{border-color:color-mix(in oklab,var(--uilint-foreground)8%,transparent)}}.hover\\:bg-\\[var\\(--uilint-active\\)\\]:hover{background-color:var(--uilint-active)}.hover\\:bg-\\[var\\(--uilint-button-destructive-bg\\)\\]\\/90:hover{background-color:var(--uilint-button-destructive-bg)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-\\[var\\(--uilint-button-destructive-bg\\)\\]\\/90:hover{background-color:color-mix(in oklab,var(--uilint-button-destructive-bg)90%,transparent)}}.hover\\:bg-\\[var\\(--uilint-button-ghost-text\\)\\]\\/10:hover{background-color:var(--uilint-button-ghost-text)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-\\[var\\(--uilint-button-ghost-text\\)\\]\\/10:hover{background-color:color-mix(in oklab,var(--uilint-button-ghost-text)10%,transparent)}}.hover\\:bg-\\[var\\(--uilint-button-outline-text\\)\\]\\/10:hover{background-color:var(--uilint-button-outline-text)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-\\[var\\(--uilint-button-outline-text\\)\\]\\/10:hover{background-color:color-mix(in oklab,var(--uilint-button-outline-text)10%,transparent)}}.hover\\:bg-\\[var\\(--uilint-button-secondary-bg\\)\\]\\/80:hover{background-color:var(--uilint-button-secondary-bg)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-\\[var\\(--uilint-button-secondary-bg\\)\\]\\/80:hover{background-color:color-mix(in oklab,var(--uilint-button-secondary-bg)80%,transparent)}}.hover\\:bg-\\[var\\(--uilint-glass-medium\\)\\]:hover{background-color:var(--uilint-glass-medium)}.hover\\:bg-\\[var\\(--uilint-hover\\)\\]:hover{background-color:var(--uilint-hover)}.hover\\:bg-error\\/10:hover{background-color:var(--uilint-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/10:hover{background-color:color-mix(in oklab,var(--uilint-error)10%,transparent)}}.hover\\:bg-foreground\\/6:hover{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-foreground\\/6:hover{background-color:color-mix(in oklab,var(--uilint-foreground)6%,transparent)}}.hover\\:bg-foreground\\/\\[0\\.02\\]:hover{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-foreground\\/\\[0\\.02\\]:hover{background-color:color-mix(in oklab,var(--uilint-foreground)2%,transparent)}}.hover\\:bg-foreground\\/\\[0\\.03\\]:hover{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-foreground\\/\\[0\\.03\\]:hover{background-color:color-mix(in oklab,var(--uilint-foreground)3%,transparent)}}.hover\\:bg-foreground\\/\\[0\\.04\\]:hover{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-foreground\\/\\[0\\.04\\]:hover{background-color:color-mix(in oklab,var(--uilint-foreground)4%,transparent)}}.hover\\:bg-foreground\\/\\[0\\.05\\]:hover{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-foreground\\/\\[0\\.05\\]:hover{background-color:color-mix(in oklab,var(--uilint-foreground)5%,transparent)}}.hover\\:bg-foreground\\/\\[0\\.06\\]:hover{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-foreground\\/\\[0\\.06\\]:hover{background-color:color-mix(in oklab,var(--uilint-foreground)6%,transparent)}}.hover\\:bg-foreground\\/\\[0\\.08\\]:hover{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-foreground\\/\\[0\\.08\\]:hover{background-color:color-mix(in oklab,var(--uilint-foreground)8%,transparent)}}.hover\\:bg-info\\/10:hover{background-color:var(--uilint-info)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-info\\/10:hover{background-color:color-mix(in oklab,var(--uilint-info)10%,transparent)}}.hover\\:bg-red-500\\/80:hover{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-red-500\\/80:hover{background-color:color-mix(in oklab,var(--color-red-500)80%,transparent)}}.hover\\:bg-red-500\\/90:hover{background-color:#fb2c36e6}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-red-500\\/90:hover{background-color:color-mix(in oklab,var(--color-red-500)90%,transparent)}}.hover\\:bg-warning\\/10:hover{background-color:var(--uilint-warning)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-warning\\/10:hover{background-color:color-mix(in oklab,var(--uilint-warning)10%,transparent)}}.hover\\:bg-white\\/30:hover{background-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/30:hover{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\\:bg-zinc-100:hover{background-color:var(--color-zinc-100)}.hover\\:bg-zinc-100\\/60:hover{background-color:#f4f4f599}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-zinc-100\\/60:hover{background-color:color-mix(in oklab,var(--color-zinc-100)60%,transparent)}}.hover\\:bg-zinc-100\\/80:hover{background-color:#f4f4f5cc}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-zinc-100\\/80:hover{background-color:color-mix(in oklab,var(--color-zinc-100)80%,transparent)}}.hover\\:bg-zinc-900\\/80:hover{background-color:#18181bcc}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-zinc-900\\/80:hover{background-color:color-mix(in oklab,var(--color-zinc-900)80%,transparent)}}.hover\\:bg-zinc-900\\/90:hover{background-color:#18181be6}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-zinc-900\\/90:hover{background-color:color-mix(in oklab,var(--color-zinc-900)90%,transparent)}}.hover\\:text-\\[var\\(--uilint-text-primary\\)\\]:hover{color:var(--uilint-text-primary)}.hover\\:text-\\[var\\(--uilint-text-secondary\\)\\]:hover{color:var(--uilint-text-secondary)}.hover\\:text-foreground:hover,.hover\\:text-foreground\\/70:hover{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-foreground\\/70:hover{color:color-mix(in oklab,var(--uilint-foreground)70%,transparent)}}.hover\\:text-foreground\\/80:hover{color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-foreground\\/80:hover{color:color-mix(in oklab,var(--uilint-foreground)80%,transparent)}}.hover\\:text-muted-foreground:hover,.hover\\:text-muted-foreground\\/70:hover{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-muted-foreground\\/70:hover{color:color-mix(in oklab,var(--uilint-text-muted)70%,transparent)}}.hover\\:text-muted-foreground\\/80:hover{color:var(--uilint-text-muted)}@supports (color:color-mix(in lab,red,red)){.hover\\:text-muted-foreground\\/80:hover{color:color-mix(in oklab,var(--uilint-text-muted)80%,transparent)}}.hover\\:text-zinc-800:hover{color:var(--color-zinc-800)}.hover\\:text-zinc-900:hover{color:var(--color-zinc-900)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-\\[var\\(--uilint-button-shadow-hover\\)\\]:hover{--tw-shadow:var(--uilint-button-shadow-hover);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:brightness-\\[0\\.97\\]:hover{--tw-brightness:brightness(.97);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,)}}.focus\\:border-\\[var\\(--uilint-error\\)\\]:focus{border-color:var(--uilint-error)}.focus\\:border-\\[var\\(--uilint-input-border-focus\\)\\]:focus{border-color:var(--uilint-input-border-focus)}.focus\\:border-error:focus{border-color:var(--uilint-error)}.focus\\:border-foreground\\/\\[0\\.12\\]:focus{border-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.focus\\:border-foreground\\/\\[0\\.12\\]:focus{border-color:color-mix(in oklab,var(--uilint-foreground)12%,transparent)}}.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-2:focus{--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\\:ring-foreground\\/20:focus{--tw-ring-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.focus\\:ring-foreground\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--uilint-foreground)20%,transparent)}}.focus\\:ring-zinc-950:focus{--tw-ring-color:var(--color-zinc-950)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.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-\\[var\\(--uilint-button-default-bg\\)\\]:focus-visible{--tw-ring-color:var(--uilint-button-default-bg)}.focus-visible\\:ring-\\[var\\(--uilint-button-destructive-bg\\)\\]:focus-visible{--tw-ring-color:var(--uilint-button-destructive-bg)}.focus-visible\\:ring-\\[var\\(--uilint-button-ghost-text\\)\\]:focus-visible{--tw-ring-color:var(--uilint-button-ghost-text)}.focus-visible\\:ring-\\[var\\(--uilint-button-outline-text\\)\\]:focus-visible{--tw-ring-color:var(--uilint-button-outline-text)}.focus-visible\\:ring-\\[var\\(--uilint-button-secondary-bg\\)\\]:focus-visible{--tw-ring-color:var(--uilint-button-secondary-bg)}.focus-visible\\:ring-ring:focus-visible{--tw-ring-color:var(--uilint-border-focus)}.focus-visible\\:ring-white\\/50:focus-visible{--tw-ring-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.focus-visible\\:ring-white\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.focus-visible\\:ring-zinc-950:focus-visible{--tw-ring-color:var(--color-zinc-950)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:scale-x-98:active{--tw-scale-x:98%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:scale-y-95:active{--tw-scale-y:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:scale-\\[0\\.98\\]:active{scale:.98}.active\\:bg-zinc-100\\/70:active{background-color:#f4f4f5b3}@supports (color:color-mix(in lab,red,red)){.active\\:bg-zinc-100\\/70:active{background-color:color-mix(in oklab,var(--color-zinc-100)70%,transparent)}}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:inline{display:inline}.sm\\:h-5{height:calc(var(--spacing)*5)}.sm\\:min-h-0{min-height:calc(var(--spacing)*0)}.sm\\:w-5{width:calc(var(--spacing)*5)}.sm\\:max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:columns-3{columns:3}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:rounded-lg{border-radius:var(--uilint-radius-lg)}.sm\\:rounded-xl{border-radius:var(--radius-xl)}.sm\\:p-1\\.5{padding:calc(var(--spacing)*1.5)}.sm\\:p-3{padding:calc(var(--spacing)*3)}.sm\\:px-0{padding-inline:calc(var(--spacing)*0)}.sm\\:px-2{padding-inline:calc(var(--spacing)*2)}.sm\\:px-4{padding-inline:calc(var(--spacing)*4)}.sm\\:py-4{padding-block:calc(var(--spacing)*4)}.sm\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\\:shadow-\\[inset_0_0_2px_1px_hsl\\(var\\(--border\\)\\/0\\.3\\)\\]{--tw-shadow:inset 0 0 2px 1px var(--tw-shadow-color,hsl(var(--border)/.3));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@media(min-width:48rem){.md\\:max-w-\\[calc\\(100\\%-4rem\\)\\]{max-width:calc(100% - 4rem)}.md\\:rounded-3xl{border-radius:var(--radius-3xl)}.md\\:rounded-\\[2rem\\]{border-radius:2rem}.md\\:p-2{padding:calc(var(--spacing)*2)}.md\\:p-4{padding:calc(var(--spacing)*4)}}@media(prefers-color-scheme:dark){.dark\\:border-purple-400\\/10{border-color:#c07eff1a}@supports (color:color-mix(in lab,red,red)){.dark\\:border-purple-400\\/10{border-color:color-mix(in oklab,var(--color-purple-400)10%,transparent)}}.dark\\:border-zinc-50\\/10{border-color:#fafafa1a}@supports (color:color-mix(in lab,red,red)){.dark\\:border-zinc-50\\/10{border-color:color-mix(in oklab,var(--color-zinc-50)10%,transparent)}}.dark\\:border-zinc-800{border-color:var(--color-zinc-800)}.dark\\:bg-amber-500\\/25{background-color:#f99c0040}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-amber-500\\/25{background-color:color-mix(in oklab,var(--color-amber-500)25%,transparent)}}.dark\\:bg-blue-500\\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-blue-500\\/20{background-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.dark\\:bg-emerald-500\\/25{background-color:#00bb7f40}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-emerald-500\\/25{background-color:color-mix(in oklab,var(--color-emerald-500)25%,transparent)}}.dark\\:bg-purple-400\\/\\[0\\.06\\]{background-color:#c07eff0f}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-purple-400\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--color-purple-400)6%,transparent)}}.dark\\:bg-red-500\\/25{background-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-red-500\\/25{background-color:color-mix(in oklab,var(--color-red-500)25%,transparent)}}.dark\\:bg-red-900{background-color:var(--color-red-900)}.dark\\:bg-zinc-50{background-color:var(--color-zinc-50)}.dark\\:bg-zinc-100{background-color:var(--color-zinc-100)}.dark\\:bg-zinc-700{background-color:var(--color-zinc-700)}.dark\\:bg-zinc-800{background-color:var(--color-zinc-800)}.dark\\:bg-zinc-800\\/50{background-color:#27272a80}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-zinc-800\\/50{background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.dark\\:bg-zinc-950{background-color:var(--color-zinc-950)}.dark\\:text-amber-300{color:var(--color-amber-300)}.dark\\:text-blue-400{color:var(--color-blue-400)}.dark\\:text-emerald-300{color:var(--color-emerald-300)}.dark\\:text-purple-400\\/70{color:#c07effb3}@supports (color:color-mix(in lab,red,red)){.dark\\:text-purple-400\\/70{color:color-mix(in oklab,var(--color-purple-400)70%,transparent)}}.dark\\:text-red-300{color:var(--color-red-300)}.dark\\:text-zinc-50{color:var(--color-zinc-50)}.dark\\:text-zinc-100{color:var(--color-zinc-100)}.dark\\:text-zinc-400{color:var(--color-zinc-400)}.dark\\:text-zinc-900{color:var(--color-zinc-900)}.dark\\:shadow-\\[0_0_0_1px_rgba\\(255\\,252\\,240\\,0\\.08\\)\\,0px_2px_2px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\,0px_8px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.3\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#fffcf014),0px 2px 2px var(--tw-shadow-color,#0003),0px 8px 16px -4px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\\:shadow-\\[0px_1px_1px_0px_hsla\\(0\\,0\\%\\,100\\%\\,0\\.02\\)_inset\\,0px_1px_1px_0px_rgba\\(255\\,255\\,255\\,0\\.05\\)_inset\\,0px_0px_0px_1px_hsla\\(0\\,0\\%\\,100\\%\\,0\\.05\\)_inset\\,0px_0px_1px_0px_rgba\\(0\\,0\\,0\\,0\\.25\\)\\]{--tw-shadow:0px 1px 1px 0px var(--tw-shadow-color,#ffffff05)inset,0px 1px 1px 0px var(--tw-shadow-color,#ffffff0d)inset,0px 0px 0px 1px var(--tw-shadow-color,#ffffff0d)inset,0px 0px 1px 0px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\\:shadow-\\[0px_1px_1px_0px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\,0px_1px_1px_0px_rgba\\(255\\,255\\,255\\,0\\.05\\)_inset\\,0px_0px_0px_1px_hsla\\(0\\,0\\%\\,100\\%\\,0\\.05\\)_inset\\,0px_0px_1px_0px_rgba\\(0\\,0\\,0\\,0\\.8\\)\\]{--tw-shadow:0px 1px 1px 0px var(--tw-shadow-color,#0003),0px 1px 1px 0px var(--tw-shadow-color,#ffffff0d)inset,0px 0px 0px 1px var(--tw-shadow-color,#ffffff0d)inset,0px 0px 1px 0px var(--tw-shadow-color,#000c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\\:shadow-\\[inset_0_0_1px_1px_hsl\\(var\\(--border\\)\\/0\\.5\\)\\]{--tw-shadow:inset 0 0 1px 1px var(--tw-shadow-color,hsl(var(--border)/.5));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\\:ring-zinc-800\\/50{--tw-ring-color:#27272a80}@supports (color:color-mix(in lab,red,red)){.dark\\:ring-zinc-800\\/50{--tw-ring-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.dark\\:ring-offset-zinc-950{--tw-ring-offset-color:var(--color-zinc-950)}@media(hover:hover){.dark\\:dark\\:hover\\:bg-zinc-800\\/50:hover{background-color:#27272a80}@supports (color:color-mix(in lab,red,red)){.dark\\:dark\\:hover\\:bg-zinc-800\\/50:hover{background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}}@media(hover:hover){.dark\\:hover\\:bg-red-900\\/80:hover{background-color:#82181acc}@supports (color:color-mix(in lab,red,red)){.dark\\:hover\\:bg-red-900\\/80:hover{background-color:color-mix(in oklab,var(--color-red-900)80%,transparent)}}.dark\\:hover\\:bg-red-900\\/90:hover{background-color:#82181ae6}@supports (color:color-mix(in lab,red,red)){.dark\\:hover\\:bg-red-900\\/90:hover{background-color:color-mix(in oklab,var(--color-red-900)90%,transparent)}}.dark\\:hover\\:bg-zinc-50\\/80:hover{background-color:#fafafacc}@supports (color:color-mix(in lab,red,red)){.dark\\:hover\\:bg-zinc-50\\/80:hover{background-color:color-mix(in oklab,var(--color-zinc-50)80%,transparent)}}.dark\\:hover\\:bg-zinc-50\\/90:hover{background-color:#fafafae6}@supports (color:color-mix(in lab,red,red)){.dark\\:hover\\:bg-zinc-50\\/90:hover{background-color:color-mix(in oklab,var(--color-zinc-50)90%,transparent)}}.dark\\:hover\\:bg-zinc-100\\/50:hover{background-color:#f4f4f580}@supports (color:color-mix(in lab,red,red)){.dark\\:hover\\:bg-zinc-100\\/50:hover{background-color:color-mix(in oklab,var(--color-zinc-100)50%,transparent)}}.dark\\:hover\\:bg-zinc-700:hover{background-color:var(--color-zinc-700)}.dark\\:hover\\:bg-zinc-800:hover{background-color:var(--color-zinc-800)}.dark\\:hover\\:bg-zinc-800\\/60:hover{background-color:#27272a99}@supports (color:color-mix(in lab,red,red)){.dark\\:hover\\:bg-zinc-800\\/60:hover{background-color:color-mix(in oklab,var(--color-zinc-800)60%,transparent)}}.dark\\:hover\\:bg-zinc-800\\/80:hover{background-color:#27272acc}@supports (color:color-mix(in lab,red,red)){.dark\\:hover\\:bg-zinc-800\\/80:hover{background-color:color-mix(in oklab,var(--color-zinc-800)80%,transparent)}}.dark\\:hover\\:text-zinc-50:hover{color:var(--color-zinc-50)}}.dark\\:focus\\:ring-zinc-300:focus,.dark\\:focus-visible\\:ring-zinc-300:focus-visible{--tw-ring-color:var(--color-zinc-300)}.dark\\:active\\:bg-zinc-800\\/70:active{background-color:#27272ab3}@supports (color:color-mix(in lab,red,red)){.dark\\:active\\:bg-zinc-800\\/70:active{background-color:color-mix(in oklab,var(--color-zinc-800)70%,transparent)}}@media(min-width:40rem){.dark\\:sm\\:shadow-\\[inset_0_0_2px_1px_hsl\\(var\\(--border\\)\\/0\\.5\\)\\]{--tw-shadow:inset 0 0 2px 1px var(--tw-shadow-color,hsl(var(--border)/.5));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\\[\\&_svg\\]\\:h-4 svg{height:calc(var(--spacing)*4)}.\\[\\&_svg\\]\\:h-5 svg{height:calc(var(--spacing)*5)}.\\[\\&_svg\\]\\:h-\\[18px\\] svg{height:18px}.\\[\\&_svg\\]\\:w-4 svg{width:calc(var(--spacing)*4)}.\\[\\&_svg\\]\\:w-5 svg{width:calc(var(--spacing)*5)}.\\[\\&_svg\\]\\:w-\\[18px\\] svg{width:18px}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\:not\\(\\[class\\*\\=size-\\]\\)\\]\\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\\[\\&\\:\\:-webkit-scrollbar\\]\\:h-1::-webkit-scrollbar{height:calc(var(--spacing)*1)}.\\[\\&\\:\\:-webkit-scrollbar-thumb\\]\\:rounded-full::-webkit-scrollbar-thumb{border-radius:3.40282e38px}.\\[\\&\\:\\:-webkit-scrollbar-thumb\\]\\:bg-foreground\\/10::-webkit-scrollbar-thumb{background-color:var(--uilint-foreground)}@supports (color:color-mix(in lab,red,red)){.\\[\\&\\:\\:-webkit-scrollbar-thumb\\]\\:bg-foreground\\/10::-webkit-scrollbar-thumb{background-color:color-mix(in oklab,var(--uilint-foreground)10%,transparent)}}.\\[\\&\\:\\:-webkit-scrollbar-track\\]\\:bg-transparent::-webkit-scrollbar-track{background-color:#0000}.\\[\\&\\>div\\]\\:\\!block>div{display:block!important}[data-slot=tooltip-content] .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-white\\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){[data-slot=tooltip-content] .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-white\\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}[data-slot=tooltip-content] .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:text-white{color:var(--color-white)}@media(prefers-color-scheme:dark){[data-slot=tooltip-content] .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){[data-slot=tooltip-content] .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}[data-slot=tooltip-content] .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-zinc-950\\/20{background-color:#09090b33}@supports (color:color-mix(in lab,red,red)){[data-slot=tooltip-content] .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-zinc-950\\/20{background-color:color-mix(in oklab,var(--color-zinc-950)20%,transparent)}}[data-slot=tooltip-content] .dark\\:dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-zinc-950\\/10{background-color:#09090b1a}@supports (color:color-mix(in lab,red,red)){[data-slot=tooltip-content] .dark\\:dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-zinc-950\\/10{background-color:color-mix(in oklab,var(--color-zinc-950)10%,transparent)}}[data-slot=tooltip-content] .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:text-zinc-950{color:var(--color-zinc-950)}}}:root{--uilint-tile-rule:oklch(65% .15 259);--uilint-tile-file:oklch(68% .14 142);--uilint-background:oklch(98.5% .002 265);--uilint-background-elevated:oklch(96.7% .003 265);--uilint-foreground:oklch(14.1% .005 265);--uilint-surface:oklch(98.5% .002 265);--uilint-surface-elevated:oklch(96.7% .003 265);--uilint-text-primary:oklch(14.1% .005 265);--uilint-text-secondary:oklch(37% .013 265);--uilint-text-muted:oklch(55.2% .016 265);--uilint-text-disabled:oklch(70.5% .015 265);--uilint-hover:oklch(55.2% .016 265/.12);--uilint-active:oklch(44.2% .017 265/.16);--uilint-border:oklch(92% .004 265);--uilint-border-focus:oklch(55.2% .016 265);--uilint-accent:oklch(44.2% .017 265);--uilint-accent-foreground:oklch(98.5% .002 265);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.15);--uilint-warning:oklch(82% .165 80);--uilint-warning-bg:oklch(82% .165 80/.15);--uilint-error:oklch(72% .17 25);--uilint-error-bg:oklch(72% .17 25/.15);--uilint-info:oklch(62.3% .214 259);--uilint-info-bg:oklch(62.3% .214 259/.15);--uilint-shadow:0 4px 20px oklch(14.1% .005 265/.12);--uilint-shadow-lg:0 8px 32px oklch(14.1% .005 265/.18);--uilint-backdrop:oklch(98.5% .002 265/.92);--uilint-glass:oklch(99% .002 265/.7);--uilint-glass-border:oklch(100% .002 265/.25);--uilint-glass-highlight:oklch(100% 0 0/.4);--uilint-glass-blur-light:8px;--uilint-glass-blur-medium:16px;--uilint-glass-blur-heavy:24px;--uilint-glass-light:oklch(99% .002 265/.5);--uilint-glass-medium:oklch(99% .002 265/.7);--uilint-glass-heavy:oklch(99% .002 265/.85);--uilint-kbd-background:linear-gradient(180deg,oklch(100% 0 0) 0%,oklch(96.7% .003 265) 100%);--uilint-kbd-border:oklch(0% 0 0/.1);--uilint-kbd-shadow:0 1px 0 oklch(0% 0 0/.08);--uilint-kbd-text:oklch(44.2% .017 265);--uilint-badge-radius:6px;--uilint-button-radius:8px;--uilint-button-shadow:0 1px 2px oklch(0% 0 0/.05);--uilint-button-shadow-hover:0 2px 4px oklch(0% 0 0/.1);--uilint-button-default-bg:var(--uilint-accent);--uilint-button-default-text:var(--uilint-accent-foreground);--uilint-button-default-border:transparent;--uilint-button-secondary-bg:oklch(96.7% .003 265);--uilint-button-secondary-text:var(--uilint-text-primary);--uilint-button-secondary-border:var(--uilint-border);--uilint-button-ghost-bg:transparent;--uilint-button-ghost-text:var(--uilint-text-secondary);--uilint-button-ghost-border:transparent;--uilint-button-destructive-bg:var(--uilint-error);--uilint-button-destructive-text:oklch(100% 0 0);--uilint-button-destructive-border:transparent;--uilint-button-outline-bg:transparent;--uilint-button-outline-text:var(--uilint-text-primary);--uilint-button-outline-border:var(--uilint-border);--uilint-button-glass-bg:var(--uilint-glass-medium);--uilint-button-glass-text:var(--uilint-text-primary);--uilint-button-glass-border:var(--uilint-glass-border);--uilint-input-bg:oklch(100% 0 0/.6);--uilint-input-border:var(--uilint-border);--uilint-input-border-focus:var(--uilint-border-focus);--uilint-input-placeholder:var(--uilint-text-muted);--uilint-input-radius:8px;--uilint-input-ring:oklch(55.2% .016 265/.25);--uilint-card-bg:var(--uilint-surface);--uilint-card-border:var(--uilint-border);--uilint-card-radius:12px;--uilint-card-shadow:0 1px 3px oklch(0% 0 0/.04);--uilint-card-shadow-hover:0 4px 12px oklch(0% 0 0/.08);--uilint-card-elevated-bg:var(--uilint-surface-elevated);--uilint-card-elevated-shadow:0 4px 16px oklch(0% 0 0/.1);--uilint-card-glass-bg:var(--uilint-glass-medium);--uilint-card-glass-border:var(--uilint-glass-border);--uilint-icon-button-size:32px;--uilint-icon-button-size-sm:28px;--uilint-icon-button-size-lg:40px;--uilint-icon-button-radius:8px;--uilint-scrollbar-track:oklch(92% .004 265);--uilint-scrollbar-thumb:oklch(70.5% .015 265);--uilint-scrollbar-thumb-hover:oklch(55.2% .016 265);--uilint-radius:12px;--uilint-radius-sm:8px;--uilint-radius-lg:16px;--uilint-transition-fast:.1s ease;--uilint-transition-normal:.15s ease;--uilint-transition-slow:.25s ease;color-scheme:light}.dev-tool-root{color-scheme:light}.dark,.dark .dev-tool-root,.dev-tool-root.dark,.dev-tool-root[data-theme=dark]{--uilint-background:oklch(14.1% .005 265);--uilint-background-elevated:oklch(21% .006 265);--uilint-foreground:oklch(98.5% .002 265);--uilint-surface:oklch(14.1% .005 265);--uilint-surface-elevated:oklch(21% .006 265);--uilint-text-primary:oklch(98.5% .002 265);--uilint-text-secondary:oklch(87% .006 265);--uilint-text-muted:oklch(70.5% .015 265);--uilint-text-disabled:oklch(44.2% .017 265);--uilint-hover:oklch(70.5% .015 265/.12);--uilint-active:oklch(70.5% .015 265/.18);--uilint-border:oklch(98.5% .002 265/.12);--uilint-border-focus:oklch(70.5% .015 265);--uilint-accent:oklch(70.5% .015 265);--uilint-accent-foreground:oklch(14.1% .005 265);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.2);--uilint-warning:oklch(82% .165 80);--uilint-warning-bg:oklch(82% .165 80/.2);--uilint-error:oklch(72% .17 25);--uilint-error-bg:oklch(72% .17 25/.2);--uilint-info:oklch(62.3% .214 259);--uilint-info-bg:oklch(62.3% .214 259/.2);--uilint-shadow:0 4px 20px oklch(0% 0 0/.4);--uilint-shadow-lg:0 8px 32px oklch(0% 0 0/.5);--uilint-backdrop:oklch(14.1% .005 265/.92);--uilint-glass:oklch(21% .006 265/.7);--uilint-glass-border:oklch(100% .002 265/.12);--uilint-glass-highlight:oklch(100% 0 0/.1);--uilint-glass-light:oklch(23% .006 265/.5);--uilint-glass-medium:oklch(21% .006 265/.7);--uilint-glass-heavy:oklch(18% .005 265/.85);--uilint-kbd-background:linear-gradient(180deg,oklch(27.4% .006 265) 0%,oklch(21% .006 265) 100%);--uilint-kbd-border:oklch(100% 0 0/.1);--uilint-kbd-shadow:0 1px 0 oklch(0% 0 0/.2);--uilint-kbd-text:oklch(70.5% .015 265);--uilint-button-default-bg:var(--uilint-accent);--uilint-button-default-text:var(--uilint-accent-foreground);--uilint-button-default-border:transparent;--uilint-button-secondary-bg:oklch(27.4% .006 265);--uilint-button-secondary-text:var(--uilint-text-primary);--uilint-button-secondary-border:var(--uilint-border);--uilint-button-ghost-bg:transparent;--uilint-button-ghost-text:var(--uilint-text-secondary);--uilint-button-ghost-border:transparent;--uilint-button-destructive-bg:var(--uilint-error);--uilint-button-destructive-text:oklch(100% 0 0);--uilint-button-destructive-border:transparent;--uilint-button-outline-bg:transparent;--uilint-button-outline-text:var(--uilint-text-primary);--uilint-button-outline-border:var(--uilint-border);--uilint-button-glass-bg:var(--uilint-glass-medium);--uilint-button-glass-text:var(--uilint-text-primary);--uilint-button-glass-border:var(--uilint-glass-border);--uilint-input-bg:oklch(23% .006 265/.6);--uilint-input-border:var(--uilint-border);--uilint-input-border-focus:var(--uilint-border-focus);--uilint-input-placeholder:var(--uilint-text-muted);--uilint-input-ring:oklch(70.5% .015 265/.25);--uilint-card-bg:var(--uilint-surface);--uilint-card-border:var(--uilint-border);--uilint-card-shadow:0 1px 3px oklch(0% 0 0/.2);--uilint-card-shadow-hover:0 4px 12px oklch(0% 0 0/.3);--uilint-card-elevated-bg:var(--uilint-surface-elevated);--uilint-card-elevated-shadow:0 4px 16px oklch(0% 0 0/.4);--uilint-card-glass-bg:var(--uilint-glass-medium);--uilint-card-glass-border:var(--uilint-glass-border);--uilint-scrollbar-track:oklch(21% .006 265);--uilint-scrollbar-thumb:oklch(37% .013 265);--uilint-scrollbar-thumb-hover:oklch(44.2% .017 265);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not(.light) .dev-tool-root:not(.light):not([data-theme=light]),.dev-tool-root:not(.light):not([data-theme=light]){--uilint-background:oklch(14.1% .005 265);--uilint-background-elevated:oklch(21% .006 265);--uilint-foreground:oklch(98.5% .002 265);--uilint-surface:oklch(14.1% .005 265);--uilint-surface-elevated:oklch(21% .006 265);--uilint-text-primary:oklch(98.5% .002 265);--uilint-text-secondary:oklch(87% .006 265);--uilint-text-muted:oklch(70.5% .015 265);--uilint-text-disabled:oklch(44.2% .017 265);--uilint-hover:oklch(70.5% .015 265/.12);--uilint-active:oklch(70.5% .015 265/.18);--uilint-border:oklch(98.5% .002 265/.12);--uilint-border-focus:oklch(70.5% .015 265);--uilint-accent:oklch(70.5% .015 265);--uilint-accent-foreground:oklch(14.1% .005 265);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.2);--uilint-warning:oklch(82% .165 80);--uilint-warning-bg:oklch(82% .165 80/.2);--uilint-error:oklch(72% .17 25);--uilint-error-bg:oklch(72% .17 25/.2);--uilint-shadow:0 4px 20px oklch(0% 0 0/.4);--uilint-backdrop:oklch(14.1% .005 265/.92);--uilint-glass:oklch(21% .006 265/.7);--uilint-glass-border:oklch(100% .002 265/.12);--uilint-scrollbar-track:oklch(21% .006 265);--uilint-scrollbar-thumb:oklch(37% .013 265);--uilint-scrollbar-thumb-hover:oklch(44.2% .017 265);color-scheme:dark}}.light,.light .dev-tool-root,.dev-tool-root.light,.dev-tool-root[data-theme=light]{--uilint-background:oklch(98.5% .002 265);--uilint-background-elevated:oklch(96.7% .003 265);--uilint-foreground:oklch(14.1% .005 265);--uilint-surface:oklch(98.5% .002 265);--uilint-surface-elevated:oklch(96.7% .003 265);--uilint-text-primary:oklch(14.1% .005 265);--uilint-text-secondary:oklch(37% .013 265);--uilint-text-muted:oklch(55.2% .016 265);--uilint-text-disabled:oklch(70.5% .015 265);--uilint-hover:oklch(55.2% .016 265/.12);--uilint-active:oklch(44.2% .017 265/.16);--uilint-border:oklch(92% .004 265);--uilint-border-focus:oklch(55.2% .016 265);--uilint-accent:oklch(44.2% .017 265);--uilint-accent-foreground:oklch(98.5% .002 265);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.15);--uilint-warning:oklch(82% .165 80);--uilint-warning-bg:oklch(82% .165 80/.15);--uilint-error:oklch(72% .17 25);--uilint-error-bg:oklch(72% .17 25/.15);--uilint-shadow:0 4px 20px oklch(14.1% .005 265/.12);--uilint-backdrop:oklch(98.5% .002 265/.92);--uilint-glass:oklch(99% .002 265/.7);--uilint-glass-border:oklch(100% .002 265/.25);--uilint-scrollbar-track:oklch(92% .004 265);--uilint-scrollbar-thumb:oklch(70.5% .015 265);--uilint-scrollbar-thumb-hover:oklch(55.2% .016 265);color-scheme:light}@keyframes uilint-fade-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes uilint-fade-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes uilint-pulse{0%,to{box-shadow:0 0 6px 2px var(--uilint-pulse-color,#ffa50066)}50%{box-shadow:0 0 16px 6px var(--uilint-pulse-color,#ffa50099)}}@keyframes uilint-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes uilint-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes uilint-popover-appear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-ui-lint] *{scrollbar-width:thin;scrollbar-color:var(--uilint-scrollbar-thumb)var(--uilint-scrollbar-track)}[data-ui-lint] ::-webkit-scrollbar{width:8px;height:8px}[data-ui-lint] ::-webkit-scrollbar-track{background:var(--uilint-scrollbar-track);border-radius:4px}[data-ui-lint] ::-webkit-scrollbar-thumb{background:var(--uilint-scrollbar-thumb);border-radius:4px}[data-ui-lint] ::-webkit-scrollbar-thumb:hover{background:var(--uilint-scrollbar-thumb-hover)}@media(max-width:767px){.dev-tool-root{--uilint-radius:16px}}.safe-area-padding-top{padding-top:env(safe-area-inset-top,0px)}.safe-area-padding-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.safe-area-padding-left{padding-left:env(safe-area-inset-left,0px)}.safe-area-padding-right{padding-right:env(safe-area-inset-right,0px)}@keyframes uilint-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes uilint-sheet-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media(pointer:coarse){.dev-tool-root button:focus-visible,.dev-tool-root [role=button]:focus-visible{outline-offset:2px}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}`;let FS=!1;const cR="uilint-devtool-root";function dR(){return typeof window<"u"}function YL({enabled:a=!0,mode:r="websocket",manifestUrl:l}){const[c,d]=U.useState(!1),[p,g]=U.useState(FS),v=U.useRef(null),b=U.useRef(!1);return r==="static"&&!l&&Ft("[DevTool] Static mode requires manifestUrl prop"),U.useEffect(()=>{d(!0)},[]),U.useEffect(()=>{if(!dR()||!a)return;sR(uR);const S=document.querySelector(`.${cR}`);if(S){v.current=S,b.current=!1;return}const A=document.createElement("div");return A.className=cR,A.setAttribute("data-ui-lint-root","true"),document.body.appendChild(A),v.current=A,b.current=!0,()=>{b.current&&v.current?.remove(),v.current=null,b.current=!1}},[a]),U.useEffect(()=>{if(!dR()||!a||!c)return;let S=null;const A=r==="static"&&l;async function C(){if(A?($e("[DevTool] Configuring static mode with manifest:",l),zk(l)):Ok(),!FS){Kn.register(IS),Kn.register(qL);const M=await dL([]);for(const L of M)Kn.register(L);$e(`[DevTool] Loaded ${M.length} external plugin(s):`,M.map(L=>L.id).join(", ")),await OD({websocket:Ho,domObserver:Lg}),FS=!0,$e("[DevTool] Plugins initialized in",A?"static":"websocket","mode")}const k=jD();if(k&&k.getState().setConnectionStatus({mode:A?"static":"websocket",maxReconnectAttempts:Lu}),g(!0),A)$e("[DevTool] Static mode: starting DOM observer"),Lg.start();else{const M=await m7(),L=M?`ws://localhost:${M.port}`:void 0;M&&$e(`[DevTool] Discovered server on port ${M.port}`),Ho.connect(L),S=Ho.onConnectionChange(B=>{B?($e("[DevTool] WebSocket connected, starting DOM observer"),Lg.start()):($e("[DevTool] WebSocket disconnected, stopping DOM observer"),Lg.stop())})}}return C(),()=>{S?.(),A||Ho.disconnect(),Lg.stop()}},[a,c,r,l]),!a||!c||!p?null:E.jsx(I9,{enabled:a})}function fR(a,r){a.setAttribute("data-position",r)}function GL(){if(typeof document>"u")return"light";const a=document.documentElement,r=document.body;if(a.classList.contains("dark")||r.classList.contains("dark"))return"dark";if(a.classList.contains("light")||r.classList.contains("light"))return"light";const l=a.getAttribute("data-theme"),c=r.getAttribute("data-theme");if(l==="dark"||c==="dark")return"dark";if(l==="light"||c==="light")return"light";const d=a.getAttribute("data-mode"),p=r.getAttribute("data-mode");return d==="dark"||p==="dark"?"dark":d==="light"||p==="light"?"light":window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function hR(a,r){a.classList.remove("light","dark"),a.removeAttribute("data-theme"),r!=="system"&&(a.classList.add(r),a.setAttribute("data-theme",r))}function XL(){if(typeof window>"u"||customElements.get("uilint-devtools"))return;class a extends HTMLElement{static get observedAttributes(){return["enabled","position","theme","mode","manifest-url"]}rootEl=null;reactRoot=null;themeObserver=null;mediaQueryListener=null;connectedCallback(){sR(uR);const l=document.createElement("div");l.className="dev-tool-root",l.setAttribute("data-ui-lint-root","true"),document.body.appendChild(l),this.rootEl=l,fR(l,this.getPosition()),this.syncTheme(),this.setupThemeObserver(),this.reactRoot=B3.createRoot(l),this.render()}disconnectedCallback(){this.reactRoot?.unmount(),this.reactRoot=null,this.rootEl?.remove(),this.rootEl=null,this.themeObserver?.disconnect(),this.themeObserver=null,this.mediaQueryListener&&(window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",this.mediaQueryListener),this.mediaQueryListener=null)}attributeChangedCallback(){this.rootEl&&(fR(this.rootEl,this.getPosition()),this.syncTheme(),this.render())}getEnabled(){const l=this.getAttribute("enabled");return l==null?!0:l!=="false"}getPosition(){const l=this.getAttribute("position");switch(l){case"bottom-right":case"top-left":case"top-right":case"bottom-left":case"top-center":case"bottom-center":return l;default:return"top-center"}}getTheme(){const l=this.getAttribute("theme");switch(l){case"light":case"dark":return l;default:return"system"}}getMode(){return this.getAttribute("mode")==="static"?"static":"websocket"}getManifestUrl(){return this.getAttribute("manifest-url")??void 0}syncTheme(){if(!this.rootEl)return;const l=this.getTheme();if(l==="system"){const c=GL();hR(this.rootEl,c)}else hR(this.rootEl,l)}setupThemeObserver(){this.themeObserver=new MutationObserver(()=>{this.getTheme()==="system"&&this.syncTheme()});const l={attributes:!0,attributeFilter:["class","data-theme","data-mode"]};this.themeObserver.observe(document.documentElement,l),this.themeObserver.observe(document.body,l);const c=window.matchMedia("(prefers-color-scheme: dark)");this.mediaQueryListener=()=>{this.getTheme()==="system"&&this.syncTheme()},c.addEventListener("change",this.mediaQueryListener)}render(){this.reactRoot&&this.reactRoot.render(E.jsx(YL,{enabled:this.getEnabled(),mode:this.getMode(),manifestUrl:this.getManifestUrl()}))}}customElements.define("uilint-devtools",a)}XL();function PS(a,r){const l=r.split(".");let c=a;for(const d of l){if(c==null)return;if(typeof c=="object")c=c[d];else return}return c}function La(a,r){const l=a.binding;let c=PS(r.data,l);return c===void 0&&(c=PS(r.state,l)),c===void 0&&(c=PS(r.computed,l)),c}function $L(a,r){const l=a.expression,c={...r.data,...r.state,...r.computed};try{const d=Object.keys(c),p=Object.values(c);return new Function(...d,`return (${l});`)(...p)}catch(d){console.warn(`[SchemaRenderer] Failed to evaluate expression: ${l}`,d);return}}function fs(a,r){return Hy(a)?La(a,r):a}function QL(a,r){return La(a.condition,r)?a.true:a.false}function pR(a,r){return XE(a)?QL(a,r):Hy(a)?La(a,r):a}function KS(a,r){return GE(a)?!!$L(a,r):!!La(a,r)}function JS(a,r,l){const c={...a};if(r)for(const[d,p]of Object.entries(r))c[d]=La({binding:p},l);return c}function IL({section:a,ctx:r}){const l=fs(a.text,r),c=fs(a.subtitle,r),d=a.icon?Uu(a.icon):null;return E.jsxs("div",{className:be("flex items-start gap-2 mb-3",a.sticky&&"sticky top-0 bg-surface py-2 z-10"),children:[d&&E.jsx("span",{className:"text-muted-foreground shrink-0 mt-0.5",children:E.jsx(d,{size:16})}),E.jsxs("div",{children:[E.jsx("h3",{className:"m-0 text-sm font-semibold text-text-primary",children:String(l??"")}),c&&E.jsx("p",{className:"mt-1 mb-0 text-xs text-muted-foreground",children:String(c)})]})]})}function ZL({code:a,startLine:r=1,highlightLines:l,maxHeight:c}){const d=a.split(`
|
|
258
258
|
`),p=new Set(l||[]);return E.jsx("div",{className:"font-mono text-xs bg-surface rounded border border-border overflow-auto",style:{maxHeight:c||200},children:d.map((g,v)=>{const b=r+v,S=p.has(b);return E.jsxs("div",{className:`flex ${S?"bg-accent/15":"bg-transparent"}`,children:[E.jsx("span",{className:"w-12 pr-2 text-right text-muted-foreground select-none shrink-0 border-r border-border",children:b}),E.jsx("pre",{className:"m-0 px-2 whitespace-pre-wrap break-all flex-1",children:g||" "})]},v)})})}function WS({section:a,ctx:r,onAction:l,onFetch:c}){const[d,p]=nn.useState(null),[g,v]=nn.useState(!1),b=a.code;nn.useEffect(()=>{if(Hy(b)){const M=La(b,r);p(typeof M=="string"?M:null)}else if("fetch"in b&&c){v(!0);const M=b.fetch,L={};M.params.filePath&&(L.filePath=La(M.params.filePath,r)),M.params.line&&(L.line=La(M.params.line,r)),M.params.contextAbove!==void 0&&(L.contextAbove=M.params.contextAbove),M.params.contextBelow!==void 0&&(L.contextBelow=M.params.contextBelow),c(M.type,L).then(B=>{p(typeof B=="string"?B:JSON.stringify(B,null,2))}).catch(B=>{console.error("[CodeViewerSection] Fetch failed:",B),p(`// Error loading code: ${B.message}`)}).finally(()=>{v(!1)})}},[b,r,c]);const S=fs(a.startLine,r),A=a.highlightLines?La(a.highlightLines,r):void 0,C=a.icon?Uu(a.icon):null,k=a.onNavigate?()=>{const M=JS(a.onNavigate.payload,a.onNavigate.payloadBindings,r);l(a.onNavigate.type,M)}:void 0;return E.jsxs("div",{className:"mb-3",children:[a.label&&E.jsxs("div",{className:"flex items-center justify-between mb-2",children:[E.jsxs("div",{className:"flex items-center gap-1.5",children:[C&&E.jsx("span",{className:"text-muted-foreground",children:E.jsx(C,{size:14})}),E.jsx("span",{className:"text-xs font-medium text-text-secondary",children:a.label})]}),k&&E.jsx("button",{onClick:k,className:"bg-transparent border-none p-1 cursor-pointer text-accent text-xs",children:"Open in editor"})]}),g?E.jsx("div",{className:"p-4 text-center text-muted-foreground text-xs bg-surface rounded border border-border",children:"Loading code..."}):d?E.jsx(ZL,{code:d,startLine:typeof S=="number"?S:1,highlightLines:A,maxHeight:a.maxHeight}):E.jsx("div",{className:"p-4 text-center text-muted-foreground text-xs bg-surface rounded border border-border",children:"No code available"})]})}function FL({section:a,ctx:r,onAction:l,onFetch:c}){const p=a.mode==="stacked"?{display:"flex",flexDirection:"column",gap:"1rem",marginBottom:"0.75rem"}:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1rem",marginBottom:"0.75rem"},g={type:"code-viewer",label:a.source.label,icon:a.source.icon,code:a.source.code,location:a.source.location,diffHighlighting:a.computeDiff,maxHeight:a.maxHeight},v={type:"code-viewer",label:a.target.label,icon:a.target.icon,code:a.target.code,location:a.target.location,diffHighlighting:a.computeDiff,maxHeight:a.maxHeight};return E.jsxs("div",{style:p,children:[E.jsx(WS,{section:g,ctx:r,onAction:l,onFetch:c}),E.jsx(WS,{section:v,ctx:r,onAction:l,onFetch:c})]})}function PL(a){return a>=85?"error":a>=70?"warning":"info"}function KL(a){return a>=90?"Very High":a>=75?"High":a>=60?"Moderate":"Low"}function JL({section:a,ctx:r}){const l=La(a.value,r),c=be("mb-3",a.centered&&"flex justify-center");switch(a.variant){case"similarity":{const p=Math.round((typeof l=="number"?l:0)*100),g=PL(p),v=KL(p);return E.jsx("div",{className:c,children:E.jsxs(vl,{variant:g,children:[p,"% Match - ",v]})})}case"severity":{const d=String(l||"info"),g={error:"error",warning:"warning",info:"info",success:"success"}[d]||"info";return E.jsx("div",{className:c,children:E.jsxs(vl,{variant:g,children:[a.label?`${a.label}: `:"",d]})})}case"status":{const d=String(l||"unknown"),g={ready:"success",indexing:"info",error:"error",idle:"info",loading:"info"}[d]||"info";return E.jsx("div",{className:c,children:E.jsxs(vl,{variant:g,children:[a.label?`${a.label}: `:"",d]})})}case"category":{const d=String(l||"");return E.jsx("div",{className:c,children:E.jsx(jN,{children:d})})}case"count":{const d=typeof l=="number"?l:0;return E.jsxs("div",{className:c,children:[a.label&&E.jsxs("span",{className:"mr-2 text-xs text-muted-foreground",children:[a.label,":"]}),E.jsx(NN,{count:d})]})}default:return null}}function WL(a){const r={marginBottom:"0.5rem",lineHeight:1.5};switch(a){case"caption":return{...r,fontSize:"0.75rem",color:"var(--uilint-text-muted)"};case"muted":return{...r,fontSize:"0.875rem",color:"var(--uilint-text-muted)"};case"error":return{...r,fontSize:"0.875rem",color:"var(--uilint-error)"};case"success":return{...r,fontSize:"0.875rem",color:"var(--uilint-success)"};default:return{...r,fontSize:"0.875rem",color:"var(--uilint-text-primary)"}}}function eU({section:a,ctx:r}){const l=fs(a.content,r);if(l==null)return null;const c=WL(a.variant);return E.jsx("p",{style:c,children:String(l)})}function tU(a){switch(a){case"primary":return"default";case"secondary":return"outline";case"ghost":return"ghost";case"danger":return"destructive";default:return"default"}}function nU({button:a,ctx:r,onAction:l}){if(a.visible&&!!!La(a.visible,r))return null;const c=a.disabled?!!La(a.disabled,r):!1;let d;XE(a.label),d=String(pR(a.label,r)??"");const p=a.icon?Uu(a.icon):null,g=()=>{const v=JS(a.action.payload,a.action.payloadBindings,r);l(a.action.type,v)};return E.jsxs(rk,{variant:tU(a.variant),size:"sm",disabled:c,onClick:g,children:[p&&E.jsx(p,{size:14,style:{marginRight:"0.25rem"}}),d]})}function aU({section:a,ctx:r,onAction:l}){const c=a.direction!=="column";return E.jsx("div",{style:{display:"flex",flexDirection:c?"row":"column",gap:"0.5rem",marginBottom:"0.75rem",...c&&{flexWrap:"wrap"}},children:a.actions.map(d=>E.jsx(nU,{button:d,ctx:r,onAction:l},d.id))})}function iU(a){switch(a){case"small":return"0.5rem 0";case"large":return"1.5rem 0";default:return"1rem 0"}}function oU({section:a}){const r=iU(a.spacing);return E.jsx("hr",{style:{margin:r,border:"none",borderTop:"1px solid var(--uilint-border)"}})}function rU({section:a,ctx:r,renderSection:l}){const d=KS(a.condition,r)?a.then:a.else;return!d||d.length===0?null:E.jsx(E.Fragment,{children:d.map((p,g)=>E.jsx(nn.Fragment,{children:l(p,g)},g))})}function lU({section:a,ctx:r,renderSection:l}){const c=La(a.items,r);return!Array.isArray(c)||c.length===0?a.emptyMessage?E.jsx("div",{className:"p-4 text-center text-muted-foreground text-sm",children:a.emptyMessage}):null:E.jsx("div",{className:"mb-3",children:c.map((d,p)=>{const g={...r,data:{...r.data,item:d,itemIndex:p}};return E.jsx("div",{className:"mb-2",children:a.itemLayout.map((v,b)=>l(v,b,g))},p)})})}function sU({section:a,ctx:r}){const l=La(a.src,r),c=a.highlightRegion?La(a.highlightRegion,r):void 0;return!l||typeof l!="string"?null:E.jsxs("div",{className:"relative mb-3 overflow-hidden",style:{maxHeight:a.maxHeight},children:[E.jsx("img",{src:l,alt:a.alt||"Image",className:"w-full h-auto object-contain rounded border border-border",style:{maxHeight:a.maxHeight}}),c&&E.jsx("div",{className:"absolute border-2 border-accent rounded bg-accent/10 pointer-events-none",style:{left:`${c.x}px`,top:`${c.y}px`,width:`${c.width}px`,height:`${c.height}px`}})]})}function uU({section:a,ctx:r,onAction:l}){const c=fs(a.title,r),d=fs(a.subtitle,r),p=a.thumbnail?La(a.thumbnail,r):void 0,g=a.badge?La(a.badge.value,r):void 0,v=a.onClick?()=>{const b=JS(a.onClick.payload,a.onClick.payloadBindings,r);l(a.onClick.type,b)}:void 0;return E.jsx(jS,{className:be("mb-2",v&&"cursor-pointer"),onClick:v,role:v?"button":void 0,tabIndex:v?0:void 0,children:E.jsxs("div",{className:"flex items-start gap-3",children:[typeof p=="string"&&p&&E.jsx("img",{src:p,alt:"",className:"w-12 h-12 rounded object-cover shrink-0"}),E.jsx("div",{className:"flex-1 min-w-0",children:E.jsxs(sk,{className:"px-3 pt-3 pb-0",children:[E.jsxs("div",{className:"flex justify-between items-start",children:[E.jsx(uk,{className:"text-sm mb-0",children:String(c??"")}),a.badge&&g!==void 0&&E.jsxs(vl,{variant:a.badge.variant==="severity"?"warning":"info",children:[a.badge.label?`${a.badge.label}: `:"",String(g)]})]}),d&&E.jsx(ck,{className:"text-xs mt-1",children:String(d)})]})})]})})}function cU({section:a,ctx:r}){const l=fs(a.value,r),c=fs(a.label,r),d=typeof l=="number"?Math.min(100,Math.max(0,l)):0;return E.jsxs("div",{className:"mb-3",children:[c&&E.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:String(c)}),E.jsx("div",{className:"h-1.5 bg-surface rounded-sm overflow-hidden",children:a.indeterminate?E.jsx("div",{className:"h-full w-[30%] bg-accent rounded-sm",style:{animation:"progress-indeterminate 1.5s infinite linear"}}):E.jsx("div",{className:"h-full bg-accent rounded-sm transition-[width] duration-300 ease-in-out",style:{width:`${d}%`}})}),!a.indeterminate&&typeof l=="number"&&E.jsxs("div",{className:"text-xs text-muted-foreground mt-1 text-right",children:[d,"%"]})]})}function dU({panel:a,data:r,state:l,computed:c={},onAction:d,onFetch:p}){const g={data:r,state:l,computed:c};if(a.loading&&KS(a.loading.when,g))return E.jsxs("div",{className:"p-8 text-center text-muted-foreground",children:[E.jsx("div",{className:"mb-2 animate-spin",children:E.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:E.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"2",strokeDasharray:"31.4",strokeLinecap:"round"})})}),E.jsx("div",{className:"text-sm",children:a.loading.message||"Loading..."}),a.loading.submessage&&E.jsx("div",{className:"text-xs mt-1",children:a.loading.submessage})]});if(a.empty&&KS(a.empty.when,g)){const A=a.empty.icon?Uu(a.empty.icon):null;return E.jsxs("div",{className:"p-8 text-center text-muted-foreground",children:[A&&E.jsx("div",{className:"mb-2",children:E.jsx(A,{size:32,strokeWidth:1.5})}),E.jsx("div",{className:"text-sm",children:a.empty.message}),a.empty.submessage&&E.jsx("div",{className:"text-xs mt-1",children:a.empty.submessage})]})}const v=(S,A,C)=>{const k=C||g,M=`section-${A}`;switch(S.type){case"header":return E.jsx(IL,{section:S,ctx:k},M);case"code-viewer":return E.jsx(WS,{section:S,ctx:k,onAction:d,onFetch:p},M);case"code-comparison":return E.jsx(FL,{section:S,ctx:k,onAction:d,onFetch:p},M);case"badge":return E.jsx(JL,{section:S,ctx:k},M);case"text":return E.jsx(eU,{section:S,ctx:k},M);case"actions":return E.jsx(aU,{section:S,ctx:k,onAction:d},M);case"divider":return E.jsx(oU,{section:S},M);case"conditional":return E.jsx(rU,{section:S,ctx:k,renderSection:v},M);case"list":return E.jsx(lU,{section:S,ctx:k,renderSection:v},M);case"image":return E.jsx(sU,{section:S,ctx:k},M);case"card":return E.jsx(uU,{section:S,ctx:k,onAction:d},M);case"progress":return E.jsx(cU,{section:S,ctx:k},M);default:return console.warn(`[SchemaPanel] Unknown section type: ${S.type}`),null}},b=fs(a.title,g);return E.jsxs("div",{className:"p-4",children:[b&&E.jsx("h2",{className:"m-0 mb-4 text-base font-semibold text-text-primary",children:String(b)}),a.layout.map((S,A)=>v(S,A))]})}const fU=Object.freeze(Object.defineProperty({__proto__:null,SchemaPanel:dU},Symbol.toStringTag,{value:"Module"}))})();
|
|
259
259
|
//# sourceMappingURL=devtools.js.map
|